- {!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 b3e9950e93..7d59d616d8 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 3fd8ff127d..6584364609 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 5e71da9d96..272a3cff00 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 36a8f58f8b..5ffa4353f1 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/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx
index d3fee272f0..b17b59a0e6 100644
--- a/app/javascript/mastodon/features/ui/index.jsx
+++ b/app/javascript/mastodon/features/ui/index.jsx
@@ -438,7 +438,7 @@ class UI extends PureComponent {
handleHotkeyNew = e => {
e.preventDefault();
- const element = this.node.querySelector('.compose-form__autosuggest-wrapper textarea');
+ const element = this.node.querySelector('.autosuggest-textarea__textarea');
if (element) {
element.focus();
diff --git a/app/javascript/mastodon/features/video/index.jsx b/app/javascript/mastodon/features/video/index.jsx
index e908715e91..89a8ba560a 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 6c37cdf5ca..baa7e7bf70 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.",
@@ -32,6 +33,7 @@
"account.follows.empty": "Die gebruiker volg nog niemand.",
"account.go_to_profile": "Gaan na profiel",
"account.hide_reblogs": "Versteek plasings wat deur @{name} aangestuur is",
+ "account.in_memoriam": "Ter nagedagtenis.",
"account.joined_short": "Aangesluit",
"account.link_verified_on": "Eienaarskap van hierdie skakel is nagegaan op {date}",
"account.locked_info": "Die rekening se privaatheidstatus is gesluit. Die eienaar hersien handmatig wie hom/haar kan volg.",
@@ -65,12 +67,12 @@
"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",
"bundle_column_error.retry": "Probeer weer",
"bundle_column_error.return": "Keer terug na die tuisblad",
+ "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Sluit",
"bundle_modal_error.message": "Die laai van die komponent het iewers skeefgeloop.",
"bundle_modal_error.retry": "Probeer weer",
@@ -110,19 +112,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",
@@ -156,6 +151,8 @@
"emoji_button.food": "Eet- en drinkgoed",
"emoji_button.nature": "Natuur",
"emoji_button.not_found": "Geen passende emoji gevind nie",
+ "emoji_button.objects": "Voorwerpe",
+ "emoji_button.people": "Mense",
"emoji_button.search": "Soek...",
"emoji_button.search_results": "Soekresultate",
"empty_column.account_timeline": "Geen plasings hier nie!",
@@ -168,7 +165,12 @@
"empty_column.lists": "Jy het nog geen lyste nie. Wanneer jy een skep, sal dit hier vertoon.",
"empty_column.notifications": "Jy het nog geen kennisgewings nie. Interaksie van ander mense met jou, sal hier vertoon.",
"explore.search_results": "Soekresultate",
+ "explore.suggested_follows": "Mense",
+ "explore.trending_links": "Nuus",
+ "filter_modal.added.settings_link": "instellings bladsy",
"filter_modal.select_filter.search": "Soek of skep",
+ "firehose.local": "Hierdie bediener",
+ "firehose.remote": "Ander bedieners",
"footer.about": "Oor",
"footer.directory": "Profielgids",
"footer.get_app": "Kry die app",
@@ -177,14 +179,21 @@
"footer.privacy_policy": "Privaatheidsbeleid",
"footer.source_code": "Wys bronkode",
"getting_started.heading": "Kom aan die gang",
+ "hashtag.column_header.tag_mode.all": "en {additional}",
+ "hashtag.column_header.tag_mode.any": "of {additional}",
+ "hashtag.column_header.tag_mode.none": "sonder {additional}",
"hashtag.column_settings.select.placeholder": "Voer hutsetikette inâĻ",
"hashtag.column_settings.tag_toggle": "Voeg meer etikette by hierdie kolom",
"hashtag.follow": "Volg hutsetiket",
"home.column_settings.show_reblogs": "Wys aangestuurde plasings",
"interaction_modal.description.reblog": "Met 'n rekening op Mastodon kan jy hierdie plasing aanstuur om dit met jou volgers te deel.",
"interaction_modal.description.reply": "Met 'n rekening op Mastodon kan jy op hierdie plasing reageer.",
+ "interaction_modal.title.follow": "Volg {name}",
"interaction_modal.title.reblog": "Stuur {name} se plasing aan",
"interaction_modal.title.reply": "Reageer op {name} se plasing",
+ "intervals.full.days": "{number, plural, one {# dag} other {# dae}}",
+ "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}",
+ "intervals.full.minutes": "{number, plural, one {# minuut} other {# minute}}",
"keyboard_shortcuts.back": "Navigeer terug",
"keyboard_shortcuts.blocked": "Vertoon lys van geblokkeerde gebruikers",
"keyboard_shortcuts.boost": "Stuur aan",
@@ -216,8 +225,11 @@
"keyboard_shortcuts.toot": "Begin ân nuwe plasing",
"keyboard_shortcuts.unfocus": "Fokus uit van teksveld/soekveld",
"keyboard_shortcuts.up": "Beweeg opwaarts in die lys",
+ "lightbox.next": "Volgende",
+ "lightbox.previous": "Vorige",
"limited_account_hint.action": "Vertoon profiel in elk geval",
"limited_account_hint.title": "Hierdie profiel is deur moderators van {domain} versteek.",
+ "link_preview.author": "Deur {name}",
"lists.account.add": "Voeg by lys",
"lists.account.remove": "Verwyder vanaf lys",
"lists.delete": "Verwyder lys",
@@ -233,7 +245,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",
@@ -245,6 +256,7 @@
"notification.reblog": "{name} het jou plasing aangestuur",
"notifications.column_settings.push": "Stootkennisgewings",
"notifications.column_settings.reblog": "Aangestuurde plasings:",
+ "notifications.column_settings.sound": "Speel klank",
"notifications.column_settings.status": "Nuwe plasings:",
"notifications.column_settings.unread_notifications.highlight": "Lig ongelese kennisgewings uit",
"notifications.filter.boosts": "Aangestuurde plasings",
@@ -266,14 +278,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!",
@@ -315,5 +320,8 @@
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
- "upload_progress.label": "UploadingâĻ"
+ "upload_progress.label": "UploadingâĻ",
+ "video.fullscreen": "Volskerm",
+ "video.mute": "Klank afskakel",
+ "video.unmute": "Klank aanskakel"
}
diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json
index 23899b1007..e9d609a1ce 100644
--- a/app/javascript/mastodon/locales/an.json
+++ b/app/javascript/mastodon/locales/an.json
@@ -75,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.",
@@ -126,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",
@@ -345,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",
@@ -429,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",
@@ -590,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 c0d07cc648..790a971cdf 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -21,6 +21,7 @@
"account.blocked": "Ų
ØظŲØą",
"account.browse_more_on_origin_server": "ØĒØĩŲØ Ø§ŲŲ
Ø˛Ųد ŲŲ اŲŲ
ŲŲ اŲØ´ØŽØĩŲ اŲØŖØĩŲŲ",
"account.cancel_follow_request": "ØĨŲØēØ§ØĄ ØˇŲب اŲŲ
ØĒابؚ؊",
+ "account.copy": "ŲØŗØŽ اŲØąØ§Ø¨Øˇ ØĨŲŲ اŲŲ
ŲŲ اŲØ´ØŽØĩŲ",
"account.direct": "ØĨØ´Ø§ØąØŠ ؎اØĩØŠ ŲŲ @{name}",
"account.disable_notifications": "ØĒŲŲŲ ØšŲ ØĨØ´ØšØ§ØąŲ ØšŲدŲ
ا ŲŲØ´Øą @{name}",
"account.domain_blocked": "اØŗŲ
اŲŲŲŲØˇØ§Ų Ų
ØظŲØą",
@@ -31,6 +32,7 @@
"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, zero{Ųا Ų
ŲØĒابؚ} one {Ų
ŲØĒابؚŲ ŲاØŲد} two {Ų
ŲØĒابؚاŲŲ اŲØĢŲاŲ} few {{counter} Ų
ŲØĒابŲØšŲŲ} many {{counter} Ų
ŲØĒابŲØšŲا} other {{counter} Ų
ŲØĒابؚ}}",
@@ -51,6 +53,7 @@
"account.mute_notifications_short": "ŲØĒŲ
اŲØĨØ´ØšØ§ØąØ§ØĒ",
"account.mute_short": "اŲØĒŲ
",
"account.muted": "Ų
ŲŲØĒŲŲ
",
+ "account.mutual": "Ų
ØĒبادŲ",
"account.no_bio": "ŲŲ
ŲØĒŲ
ØĒŲدŲŲ
ŲØĩŲ.",
"account.open_original_page": "اŲØĒØ Ø§ŲØĩŲØØŠ اŲØŖØĩŲŲØŠ",
"account.posts": "Ų
ŲØ´ŲØąØ§ØĒ",
@@ -86,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": "Ųا ŲŲ
ŲŲ ØĒŲدŲŲ
اŲØĩŲØØŠ اŲŲ
ØˇŲŲب؊. Ųد ŲŲŲŲ بØŗبب ØŽØˇØŖ ŲŲ اŲØĒØšŲŲŲ
اØĒ اŲØ¨ØąŲ
ØŦŲØŠØ ØŖŲ Ų
Ø´ŲŲØŠ ØĒŲاŲŲ اŲŲ
ØĒØĩŲØ.",
@@ -143,22 +145,20 @@
"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.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 {اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲŲØŗØˇ ŲŲ
ŲØØĒŲŲ ØØŗŲاØŗ} two{اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇØ§Ų ŲŲ
ŲØØĒŲŲاŲ ØØŗŲاØŗاŲ} other {اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗاØĻØˇ ŲŲ
ŲØØĒŲŲاØĒ ØØŗŲاØŗØŠ}}",
- "compose_form.sensitive.marked": "{count, plural, one {ØĒŲ
ŲŲ اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇ ŲŲ
ŲØØĒŲŲ ØØŗŲاØŗ} two{ØĒŲ
ŲŲ اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇØ§Ų ŲŲ
ŲØØĒŲŲاŲ ØØŗŲاØŗاŲ} other {ØĒŲ
ŲŲ اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗاØĻØˇ ŲŲ
ŲØØĒŲŲاØĒ ØØŗŲاØŗØŠ}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ŲŲ
ØĒŲØĒŲŲ
Ų اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇ ŲŲ
ŲØØĒŲŲ ØØŗŲاØŗ} two{ŲŲ
ØĒŲØĒŲŲ
Ų اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇØ§Ų ŲŲ
ŲØØĒŲŲاŲ ØØŗŲاØŗاŲ} 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": "ØØ¸Øą",
@@ -190,6 +190,7 @@
"conversation.mark_as_read": "اؚØĒØ¨ØąŲا ŲŲ
ŲØąŲØĄØŠ",
"conversation.open": "Ø§ØšØąØļ اŲŲ
ØادØĢØŠ",
"conversation.with": "Ų
Øš {names}",
+ "copy_icon_button.copied": "ŲŲØŗŲØŽ ØĨŲŲ اŲØاŲظ؊",
"copypaste.copied": "ØĒŲ
ŲØŗØŽŲ",
"copypaste.copy_to_clipboard": "ŲØŗØŽ ØĨŲŲ اŲØاŲظ؊",
"directory.federated": "Ų
ŲŲ اŲŲدŲŲØąØŗ اŲŲ
ØšØąŲŲ",
@@ -221,6 +222,7 @@
"emoji_button.search_results": "ŲØĒاØĻØŦ اŲبØØĢ",
"emoji_button.symbols": "ØąŲ
ŲØ˛",
"emoji_button.travel": "اŲØŖŲ
اŲŲ ŲاŲØŗŲØą",
+ "empty_column.account_hides_collections": "ا؎ØĒØ§Øą Ųذا اŲŲ
ØŗØĒ؎دŲ
ؚدŲ
ØĨØĒاØØŠ ŲØ°Ų اŲŲ
ØšŲŲŲ
اØĒ ŲŲؚاŲ
ØŠ",
"empty_column.account_suspended": "ØØŗاب Ų
ØšŲŲ",
"empty_column.account_timeline": "Ųا ØĒŲØŦد Ų
ŲØ´ŲØąØ§ØĒ ŲŲا!",
"empty_column.account_unavailable": "اŲŲ
ŲŲ اŲØĒØšØąŲŲŲ ØēŲØą Ų
ØĒŲŲØą",
@@ -275,6 +277,12 @@
"follow_request.authorize": "ØĒØąØŽŲØĩ",
"follow_request.reject": "ØąŲØļ",
"follow_requests.unlocked_explanation": "ØØĒŲ ŲØĨŲ ŲاŲ ØØŗابŲ ØēŲØą Ų
ŲŲŲØ ŲØšØĒŲد ŲØąŲŲ {domain} ØŖŲŲ Ųد ØĒØąØēب ŲŲ Ų
ØąØ§ØŦؚ؊ ØˇŲباØĒ اŲŲ
ØĒابؚ؊ Ų
Ų ŲØ°Ų اŲØØŗاباØĒ ŲدŲŲاŲ.",
+ "follow_suggestions.curated_suggestion": "ØŽŲØ§Øą اŲŲ
ØØąØą",
+ "follow_suggestions.dismiss": "Ųا ØĒŲظŲØąŲا Ų
ØŦدŲدŲا",
+ "follow_suggestions.personalized_suggestion": "ØĒŲØĩŲØŠ Ų
ØŽØĩØĩØŠ",
+ "follow_suggestions.popular_suggestion": "ØĒŲØĩŲØŠ ØąØ§ØĻØŦØŠ",
+ "follow_suggestions.view_all": "ØšØąØļ اŲŲŲ",
+ "follow_suggestions.who_to_follow": "ØØŗاباØĒ ŲŲŲ
ŲØĒابŲؚ؊",
"followed_tags": "اŲŲØŗŲŲ
اŲŲ
ØĒابŲؚ؊",
"footer.about": "ØšŲ",
"footer.directory": "دŲŲŲ اŲØĩŲØاØĒ اŲØĒØšØąŲŲŲØŠ",
@@ -301,13 +309,9 @@
"hashtag.follow": "اØĒبؚ اŲŲØŗŲ
",
"hashtag.unfollow": "ØŖŲØēŲ Ų
ØĒابؚ؊ اŲŲØŗŲ
",
"hashtags.and_other": "âĻŲ {count, plural, zero {} one {# ŲاØد ØĸØŽØą} two {# اØĢŲاŲ ØĸØŽØąØ§Ų} few {# ØĸØŽØąŲŲ} many {# ØĸØŽŲØąŲا}other {# ØĸØŽØąŲŲ}}",
- "home.actions.go_to_explore": "Ø§ØˇŲŲØš ØšŲŲ Ų
ا ŲŲ ØąØ§ØĻØŦ ØاŲŲا",
- "home.actions.go_to_suggestions": "ابØØĢ ØšŲ ØŖش؎اØĩ ŲŲŲ
ŲØĒابؚØĒŲŲ
",
"home.column_settings.basic": "اŲØŖØŗاØŗŲØŠ",
"home.column_settings.show_reblogs": "Ø§ØšØąØļ اŲŲ
ؚاد ŲØ´ØąŲا",
"home.column_settings.show_replies": "Ø§ØšØąØļ اŲØąØ¯Ųد",
- "home.explore_prompt.body": "ØŗŲŲ ŲØØĒŲŲ ØŽŲØˇ ØŖØŽØ¨Ø§ØąŲ اŲØąØĻŲØŗŲ ØšŲŲ Ų
Ø˛ŲØŦ Ų
Ų اŲŲ
ŲØ´ŲØąØ§ØĒ Ų
ŲŲŲا اŲØĒŲ ØĒØØĒŲŲ ØšŲŲ ŲØŗŲŲ
ا؎ØĒØąØĒŲ Ų
ØĒابؚØĒŲØ§Ø ŲØŖش؎اØĩ ا؎ØĒØąØĒŲ Ų
ØĒابؚØĒŲŲ
ŲاŲŲ
ŲØ´ŲØąØ§ØĒ اŲØĒŲ ØŖؚادŲا ŲØ´ØąŲا. ŲŲ
Øš Ø°ŲŲØ ØĨŲ Ųا Ø˛Ø§Ų ØŽŲØˇ ØŖØŽØ¨Ø§ØąŲ ŲبدŲ ŲادØĻا ØŦØ¯Ø§Ø Ų
اذا ŲŲ:",
- "home.explore_prompt.title": "ŲØ°Ų ŲŲ ØĩŲØØĒŲ اŲØąØĻŲØŗØŠ ŲŲ Ų
اØŗØĒدŲŲ.",
"home.hide_announcements": "ØĨØŽŲØ§ØĄ اŲØĨØšŲاŲاØĒ",
"home.pending_critical_update.body": "ŲØąØŦŲ ØĒØدŲØĢ ؎ادŲ
Ų
اØŗØĒدŲŲ ŲŲ ØŖŲØąØ¨ ŲŲØĒ Ų
Ų
ŲŲ!",
"home.pending_critical_update.link": "Ø§ØˇŲŲØš ØšŲŲ اŲØĒØدŲØĢاØĒ",
@@ -388,6 +392,7 @@
"lists.search": "ØĨبØØĢ ŲŲ ŲاØĻŲ
ØŠ اŲØØŗاباØĒ اŲØĒŲ ØĒŲØĒابŲØšŲا",
"lists.subheading": "ŲŲاØĻŲ
Ų",
"load_pending": "{count, plural, one {# ØšŲØĩØą ØŦدŲد} other {# ØšŲاØĩØą ØŦدŲد؊}}",
+ "loading_indicator.label": "ØŦØ§ØąŲ اŲØĒØŲ
ŲŲâĻ",
"media_gallery.toggle_visible": "{number, plural, zero {} one {ا؎Ų اŲØĩŲØąØŠ} two {ا؎Ų اŲØĩŲØąØĒŲŲ} few {ا؎Ų اŲØĩŲØą} many {ا؎Ų اŲØĩŲØą} other {ا؎Ų اŲØĩŲØą}}",
"moved_to_account_banner.text": "ØØŗابŲ {disabledAccount} Ų
ØšØˇŲ ØاŲŲŲا ŲØŖŲŲ اŲØĒŲŲØĒ ØĨŲŲ {movedToAccount}.",
"mute_modal.duration": "اŲŲ
د؊",
@@ -402,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": "اŲŲŲŲ
اØĒ اŲŲ
ŲØĒŲŲ
ØŠ",
@@ -476,6 +480,17 @@
"onboarding.follows.empty": "ŲØŖØŗŲØ Ųا ŲŲ
ŲŲ ØšØąØļ ŲØĒاØĻØŦ ŲŲ اŲŲŲØĒ اŲØاŲŲ. ØŦØąØ¨ اŲبØØĢ ØŖŲ اŲØĒŲŲ ŲØĩŲØØŠ اŲاØŗØĒŲشاŲ ŲØĨŲØŦاد ØŖش؎اØĩ ŲŲŲ
ØĒØ§Ø¨ØšØŠØ ØŖŲ ØاŲŲ Ų
ØąØŠ ØŖØŽØąŲ.",
"onboarding.follows.lead": "Ų
ŲØĒØˇŲاØĒ ØŽŲØˇŲ اŲØąØĻŲØŗ ŲŲ اŲØˇØąŲŲØŠ اŲØŖØŗاØŗŲØŠ ŲØĒØŦØąØ¨ØŠ Ų
اØŗØĒدŲŲ. ŲŲŲ
ا Ø˛Ø§Ø¯ ؚدد اŲØŖش؎اØĩ اŲØ°ŲŲ ØĒØĒبؚŲŲ
Ø ŲŲŲ
ا Ø˛Ø§Ø¯ ØŽŲØˇ ØŖØŽØ¨Ø§ØąŲ ŲØ´Ø§ØˇØ§ ŲØĨØĢØ§ØąØŠ ŲŲاŲØĒŲ
اŲ
. بداŲØŠØ ØĨŲŲŲ بؚØļ اŲاŲØĒØąØ§ØاØĒ:",
"onboarding.follows.title": "ØŖØļŲŲ ØˇØ§Ø¨ØšØ§ Ø´ØŽØĩŲا ØšŲŲ Ų
ŲØŦØ˛Ø§ØĒ ØŽŲØˇŲ اŲØąØĻŲØŗ",
+ "onboarding.profile.discoverable": "اØŦØšŲ Ų
ŲŲŲ اŲØ´ØŽØĩŲ ŲابŲاŲ ŲŲاŲØĒشاŲ",
+ "onboarding.profile.discoverable_hint": "ØšŲدŲ
ا ØĒØŽØĒØ§Øą ØĒŲØšŲŲ ØĨŲ
ŲاŲŲØŠ اŲاŲØĒشاŲ ØšŲŲ Ų
اØŗØĒدŲŲØ Ųد ØĒظŲØą Ų
ŲØ´ŲØąØ§ØĒŲ ŲŲ ŲØĒاØĻØŦ اŲبØØĢ ŲاŲŲ
ŲاØļŲØš اŲØąØ§ØĻØŦØŠØ ŲŲد ŲØĒŲ
اŲØĒØąØ§Ø Ų
ŲŲŲ اŲØ´ØŽØĩŲ ŲØŖش؎اØĩ Ø°ŲŲ اŲØĒŲ
اŲ
اØĒ Ų
Ų
اØĢŲØŠ Ų
ØšŲ.",
+ "onboarding.profile.display_name": "اŲاØŗŲ
اŲØšŲŲŲ",
+ "onboarding.profile.display_name_hint": "اØŗŲ
Ų اŲŲاŲ
Ų ØŖŲ اØŗŲ
Ų اŲŲ
ØąØâĻ",
+ "onboarding.profile.lead": "ŲŲ
ŲŲŲ داØĻŲ
Ųا ØĨŲŲ
اŲ Ø°ŲŲ ŲاØŲŲا ŲŲ اŲØĨؚداداØĒØ ØŲØĢ ŲØĒŲŲØą اŲŲ
Ø˛Ųد Ų
Ų ØŽŲØ§ØąØ§ØĒ اŲØĒØŽØĩŲØĩ.",
+ "onboarding.profile.note": "Ųبذ؊ ØšŲŲ",
+ "onboarding.profile.note_hint": "ŲŲ
ŲŲŲ @Ø°ŲŲØą ØŖش؎اØĩ ØĸØŽØąŲŲ ØŖŲ اØŗØĒØšŲ
اŲ #اŲŲØŗŲŲ
âĻ",
+ "onboarding.profile.save_and_continue": "ØŲظ Ų ØĨØŗØĒŲ
ØąØ§Øą",
+ "onboarding.profile.title": "ØĨؚداد اŲŲ
ŲŲ اŲØ´ØŽØĩŲ",
+ "onboarding.profile.upload_avatar": "ØĒØŲ
ŲŲ ØĩŲØąØŠ اŲŲ
ŲŲ اŲØ´ØŽØĩŲ",
+ "onboarding.profile.upload_header": "ØĒØŲ
ŲŲ ØąØŖØŗŲØŠ اŲŲ
ŲŲ اŲØ´ØŽØĩŲ",
"onboarding.share.lead": "اØŗŲ
Ø ŲŲØŖش؎اØĩ بŲ
ØšØąŲØŠ ØĨŲ
ŲاŲŲØŠ اŲŲØĩŲŲ ØĨŲŲŲ ØšŲŲ Ų
اØŗØĒدŲŲ!",
"onboarding.share.message": "ØŖŲا {username} ŲŲ #Mastodon! ØĒؚاŲ ŲŲ
ØĒابؚØĒŲ ØšŲŲ {url}",
"onboarding.share.next_steps": "اŲØŽØˇŲاØĒ اŲŲ
ØØĒŲ
ŲØŠ اŲØĒاŲŲØŠ:",
@@ -509,16 +524,18 @@
"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": "Ų
ŲØĩŲ بŲ",
"refresh": "ØŖŲØšŲØ´",
"regeneration_indicator.label": "ØŦØ§ØąŲ اŲØĒØŲ
ŲŲâĻ",
"regeneration_indicator.sublabel": "ØŦØ§ØąŲ ØĒØŦŲŲØ˛ Ų
ŲØŦØ˛Ø§ØĒ ØŽŲØˇŲ اŲØąØĻŲØŗ!",
@@ -533,7 +550,9 @@
"relative_time.minutes": "{number}د",
"relative_time.seconds": "{number}ØĢا",
"relative_time.today": "اŲŲŲŲ
",
+ "reply_indicator.attachments": "{count, plural, zero {}one {# Ų
ØąŲŲ} two {# اŲŲ
ØąŲŲاØĒ} few {# Ų
ØąŲŲاØĒ} many {# Ų
ØąŲŲاØĒ} other {# Ų
ØąŲŲŲا}}",
"reply_indicator.cancel": "ØĨŲØēØ§ØĄ",
+ "reply_indicator.poll": "اØŗØĒØˇŲاؚ ØąØŖŲ",
"report.block": "ØØ¸Øą",
"report.block_explanation": "ŲŲ ØĒØąŲ Ų
ŲØ´ŲØąØ§ØĒŲ ŲŲŲ ŲŲ
ŲŲŲ Ų
ØĒابؚØĒŲ ØŖŲ ØąØ¤ŲØŠ Ų
ŲØ´ŲØąØ§ØĒŲØ ØŗŲŲŲŲ بدŲŲŲا ŲŲ ØŖŲŲ Ų
ŲØĒŲŲ
.",
"report.categories.legal": "ØĨØ´ØšØ§ØąØ§ØĒ ŲاŲŲŲŲØŠ",
@@ -589,6 +608,7 @@
"search.quick_action.status_search": "اŲŲ
ŲØ´ŲØąØ§ØĒ اŲŲ
ØˇØ§Ø¨ŲØŠ ŲŲ {x}",
"search.search_or_paste": "ابØØĢ ØŖŲ ØŖد؎Ų ØąØ§Ø¨ØˇØ§ ØĒشؚبŲا URL",
"search_popout.full_text_search_disabled_message": "ØēŲØą Ų
ØĒŲŲØą ØšŲŲ {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Ų
ØĒØ§Ø ŲŲØˇ ØšŲد ØĒØŗØŦŲŲ اŲد؎ŲŲ.",
"search_popout.language_code": "ØąŲ
Ø˛ ŲØēØŠ ISO",
"search_popout.options": "ØŽŲØ§ØąØ§ØĒ اŲبØØĢ",
"search_popout.quick_actions": "اŲØĨØŦØąØ§ØĄØ§ØĒ اŲØŗØąŲؚ؊",
@@ -696,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/ast.json b/app/javascript/mastodon/locales/ast.json
index c4238edcd4..18bba99117 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,13 +26,11 @@
"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.",
@@ -42,7 +38,6 @@
"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}",
@@ -71,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.",
@@ -108,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",
@@ -150,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ÃĄ",
@@ -159,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",
@@ -207,6 +199,12 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Refugar",
"follow_requests.unlocked_explanation": "Magar que la to cuenta nun seya privada, el personal del dominiu ÂĢ{domain}Âģ pensÃŗ qu'a lo meyor quies revisar manualmente les solicitÃēes de siguimientu d'estes cuentes.",
+ "follow_suggestions.curated_suggestion": "Escoyeta del sirvidor",
+ "follow_suggestions.dismiss": "Nun volver amosar",
+ "follow_suggestions.personalized_suggestion": "Suxerencia personalizada",
+ "follow_suggestions.popular_suggestion": "Suxerencia popular",
+ "follow_suggestions.view_all": "Ver too",
+ "follow_suggestions.who_to_follow": "A quiÊn siguir",
"footer.about": "Tocante a",
"footer.directory": "Direutoriu de perfiles",
"footer.get_app": "Consiguir l'aplicaciÃŗn",
@@ -221,7 +219,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",
@@ -263,7 +260,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",
@@ -291,7 +287,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",
@@ -299,6 +294,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",
@@ -334,7 +330,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.",
@@ -350,12 +346,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",
@@ -372,6 +363,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",
@@ -415,12 +407,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}.",
@@ -463,6 +459,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",
@@ -491,9 +488,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 773af40343..7e21703b4a 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -89,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": "ĐĐ°ĐŋŅŅĐ°ĐŊĐ°Ņ ŅŅĐ°ŅĐžĐŊĐēĐ° ĐŊĐĩ ĐŧĐžĐļĐ° ĐąŅŅŅ Đ°Đ´ĐģŅŅŅŅаваĐŊĐ°Ņ. ĐŅŅĐ° ĐŧĐ°ĐŗĐģĐž ŅŅĐ°ŅŅĐ° ĐŋŅаС Ņ
ŅĐąŅ Ņ ĐŊĐ°ŅŅĐŧ ĐēОдСĐĩ, айО ĐŋŅаС ĐŋĐ°ĐŧŅĐģĐēŅ ŅŅĐŧŅŅŅĐ°ĐģŅĐŊĐ°ŅŅŅ С ĐąŅĐ°ŅСĐĩŅĐ°Đŧ.",
@@ -146,22 +145,20 @@
"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.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.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.poll.type": "ĐĄŅŅĐģŅ",
+ "compose_form.publish": "ĐĐ°ŅĐģĐ°ŅŅ",
+ "compose_form.publish_form": "ĐОвŅ Đ´ĐžĐŋŅŅ",
+ "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": "ĐĐ°ĐąĐģĐ°ĐēŅŅаваŅŅ",
@@ -280,6 +277,12 @@
"follow_request.authorize": "ĐŅŅĐ°ŅŅСаŅŅŅ",
"follow_request.reject": "ĐĐ´Ņ
ŅĐģŅŅŅ",
"follow_requests.unlocked_explanation": "ĐĐ°Ņ Đ°ĐēĐ°ŅĐŊŅ ĐŊĐĩ ŅŅ
аваĐŊŅ, Đ°Đ´ĐŊĐ°Đē ĐŋŅĐ°Đ´ŅŅĐ°ŅĐŊŅĐēŅ {domain} ĐŋĐ°ĐģŅŅŅĐģŅ, ŅŅĐž вŅ ĐŧĐžĐļĐ°ŅĐĩ СаŅ
Đ°ŅĐĩŅŅ ĐŋŅĐ°ĐŗĐģŅдСĐĩŅŅ СаĐŋŅŅŅ ĐŊĐ° ĐŋĐ°Đ´ĐŋŅŅĐēŅ С ĐŗŅŅŅŅ
ĐŋŅĐžŅŅĐģŅŅ ŅŅŅŅĐŊŅŅ.",
+ "follow_suggestions.curated_suggestion": "ĐŅйаŅ ŅĐĩŅвĐĩŅĐ°",
+ "follow_suggestions.dismiss": "ĐĐĩ ĐŋĐ°ĐēаСваŅŅ СĐŊĐžŅ",
+ "follow_suggestions.personalized_suggestion": "ĐĐĩŅŅĐ°ĐŊĐ°ĐģŅСаваĐŊĐ°Ņ ĐŋŅĐ°ĐŋĐ°ĐŊОва",
+ "follow_suggestions.popular_suggestion": "ĐĐ°ĐŋŅĐģŅŅĐŊĐ°Ņ ĐŋŅĐ°ĐŋĐ°ĐŊОва",
+ "follow_suggestions.view_all": "ĐŅĐ°ĐŗĐģŅдСĐĩŅŅ ŅŅŅ",
+ "follow_suggestions.who_to_follow": "ĐĐ° ĐēĐ°ĐŗĐž ĐŋĐ°Đ´ĐŋŅŅĐ°ŅŅĐ°",
"followed_tags": "ĐĐ°Đ´ĐŋŅŅĐēŅ",
"footer.about": "ĐŅĐ° ĐŊĐ°Ņ",
"footer.directory": "ĐŅŅŅĐēŅĐžŅŅŅ ĐŋŅĐžŅŅĐģŅŅ",
@@ -306,13 +309,9 @@
"hashtag.follow": "ĐĐ°Đ´ĐŋŅŅĐ°ŅŅĐ° ĐŊĐ° Ņ
ŅŅŅŅĐŗ",
"hashtag.unfollow": "ĐĐ´ĐŋŅŅĐ°ŅŅĐ° Đ°Đ´ Ņ
ŅŅŅŅĐŗĐ°",
"hashtags.and_other": "âĻŅ ŅŅŅŅ {count, plural, other {#}}",
- "home.actions.go_to_explore": "ĐĐ°ĐŗĐģŅдСŅŅĐĩ, ŅŅĐž Ņ ŅŅŅĐŊдСĐĩ",
- "home.actions.go_to_suggestions": "ĐĐŊĐ°ĐšŅŅŅ ĐģŅдСĐĩĐš, ĐēĐ°Đą ĐŋĐ°Đ´ĐŋŅŅĐ°ŅŅĐ°",
"home.column_settings.basic": "ĐŅĐŊĐžŅĐŊŅŅ",
"home.column_settings.show_reblogs": "ĐĐ°ĐēаСаŅŅ ĐŋĐ°ŅŅŅŅĐŊĐŊŅ",
"home.column_settings.show_replies": "ĐĐ°ĐēаСваŅŅ Đ°Đ´ĐēаСŅ",
- "home.explore_prompt.body": "ĐĐ°ŅĐ° ĐŗĐ°ĐģĐžŅĐŊĐ°Ņ ŅŅŅĐļĐēĐ° СĐŧŅŅŅĐ°Đĩ ŅŅĐŧĐĩŅŅ Đ´ĐžĐŋŅŅĐ°Ņ С Ņ
ŅŅŅŅĐŗĐ°ĐŧŅ, Са ŅĐēŅĐŧŅ вŅ вŅŅĐ°ŅŅĐģŅ ŅĐ°ŅŅŅŅ, Đ´ĐžĐŋŅŅĐ°Ņ Đ°Đ´ ĐģŅдСĐĩĐš, Са ŅĐēŅĐŧŅ вŅ вŅŅĐ°ŅŅĐģŅ ŅĐ°ŅŅŅŅ, Ņ Đ´ĐžĐŋŅŅĐ°Ņ, ŅĐēŅŅ ŅĐŊŅ ĐŋĐ°ŅŅŅĐ°ŅŅŅ. ĐĐ°ŅаС ŅŅŅ вŅĐŗĐģŅĐ´Đ°Đĩ давОĐģŅ ŅŅŅ
Đ°, ŅĐ°Đē ŅŅĐž ŅĐē ĐŊĐ°ĐēĐžĐŊŅ:",
- "home.explore_prompt.title": "ĐŅŅĐ° ваŅĐ° Đ°ĐŋĐžŅĐŊĐ°Ņ ĐēŅĐžĐŋĐēĐ° Ņ Mastodon.",
"home.hide_announcements": "ĐĄŅ
аваŅŅ Đ°Đą'ŅвŅ",
"home.pending_critical_update.body": "ĐĐ°ĐģŅ ĐģĐ°ŅĐēĐ°, Đ°ĐąĐŊавŅŅĐĩ ŅвОК ŅĐĩŅвĐĩŅ Mastodon ŅĐē ĐŧĐ°ĐŗĐ° Ņ
ŅŅŅŅĐš!",
"home.pending_critical_update.link": "ĐŅĐ°ĐŗĐģĐĩдСĐĩŅŅ Đ°ĐąĐŊĐ°ŅĐģĐĩĐŊĐŊŅ",
@@ -408,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": "ĐĐŗĐŊĐ°ŅаваĐŊŅŅ ŅĐģОвŅ",
@@ -526,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": "Đ ŅĐēĐ°ĐŧĐĩĐŊĐ´ŅĐĩĐŧ",
@@ -551,7 +550,9 @@
"relative_time.minutes": "{number} Ņ
в",
"relative_time.seconds": "{number} Ņ",
"relative_time.today": "ŅŅĐŊĐŊŅ",
+ "reply_indicator.attachments": "{count, plural, one {# Đ´Đ°ĐģŅŅŅĐŊĐŊĐĩ} few {# Đ´Đ°ĐģŅŅŅĐŊĐŊŅ} many {# Đ´Đ°ĐģŅŅŅĐŊĐŊŅŅ} other {# Đ´Đ°ĐģŅŅŅĐŊĐŊŅ}}",
"reply_indicator.cancel": "ĐĄĐēĐ°ŅаваŅŅ",
+ "reply_indicator.poll": "ĐĐŋŅŅĐ°ĐŊĐŊĐĩ",
"report.block": "ĐĐ°ĐąĐģĐ°ĐēŅŅаваŅŅ",
"report.block_explanation": "ĐŅ ĐŋĐĩŅĐ°ŅŅĐ°ĐŊĐĩŅĐĩ йаŅŅŅŅ Đ´ĐžĐŋŅŅŅ ĐŗŅŅĐ°ĐŗĐ° ĐēĐ°ŅŅŅŅĐ°ĐģŅĐŊŅĐēĐ°. ĐĐŊ ĐŊĐĩ СĐŧĐžĐļĐ° ŅĐ°ŅŅŅŅ Са ваĐŧŅ Ņ йаŅŅŅŅ ваŅŅ Đ´ĐžĐŋŅŅŅ. ĐĐŊ СĐŧĐžĐļĐ° СŅаСŅĐŧĐĩŅŅ, ŅŅĐž ŅĐŗĐž СайĐģĐ°ĐēŅŅаваĐģŅ.",
"report.categories.legal": "ĐŅава",
@@ -683,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 {Đ´Đ°ĐģŅŅŅĐŊĐŊĐĩ} few {{attachmentCount} Đ´Đ°ĐģŅŅŅĐŊĐŊŅ} many {{attachmentCount} Đ´Đ°ĐģŅŅŅĐŊĐŊŅŅ} other {{attachmentCount} Đ´Đ°ĐģŅŅŅĐŊĐŊŅ}}",
"status.translate": "ĐĐĩŅĐ°ĐēĐģĐ°ŅŅŅ",
"status.translated_from_with": "ĐĐĩŅĐ°ĐēĐģадСĐĩĐŊĐ° С {lang} С Đ´Đ°ĐŋĐ°ĐŧĐžĐŗĐ°Đš {provider}",
"status.uncached_media_warning": "ĐĐĩŅĐ°Đ´ĐŋŅĐ°ĐŗĐģŅĐ´ ĐŊĐĩĐ´Đ°ŅŅŅĐŋĐŊŅ",
@@ -715,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/bg.json b/app/javascript/mastodon/locales/bg.json
index 8a6d6040d6..3e7f6e51b2 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -3,12 +3,12 @@
"about.contact": "ĐĐ° ĐēĐžĐŊŅĐ°ĐēŅи:",
"about.disclaimer": "Mastodon Đĩ ĐąĐĩСĐŋĐģĐ°ŅĐĩĐŊ ŅĐžŅŅŅĐĩŅ Ņ ĐžŅвОŅĐĩĐŊ иСŅ
ОдĐĩĐŊ ĐēОд и ŅŅŅĐŗОвŅĐēĐ° ĐŧĐ°ŅĐēĐ° ĐŊĐ° Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "ĐŅĐŧĐ° ĐŊĐ°ĐģиŅĐŊĐ° ĐŋŅиŅиĐŊĐ°",
- "about.domain_blocks.preamble": "Mastodon ОйиĐēĐŊОвĐĩĐŊĐž ĐŋОСвОĐģŅва Đ´Đ° ŅаСĐŗĐģĐĩĐļĐ´Đ°ŅĐĩ ŅŅĐ´ŅŅĐļĐ°ĐŊиĐĩ и Đ´Đ° вСаиĐŧОдĐĩĐšŅŅваŅĐĩ Ņ Đ´ŅŅĐŗи ĐŋĐžŅŅĐĩйиŅĐĩĐģи ĐžŅ вŅŅĐēĐ°Đēви ŅŅŅвŅŅи вŅв ФĐĩдивŅŅŅ. ĐĐŧĐ° иСĐēĐģŅŅĐĩĐŊиŅ, ĐŊĐ°ĐŋŅавĐĩĐŊи ĐēĐžĐŊĐēŅĐĩŅĐŊĐž Са ŅОСи ŅŅŅвŅŅ.",
+ "about.domain_blocks.preamble": "Mastodon ОйиĐēĐŊОвĐĩĐŊĐž ĐŋОСвОĐģŅва Đ´Đ° ŅаСĐŗĐģĐĩĐļĐ´Đ°ŅĐĩ ŅŅĐ´ŅŅĐļĐ°ĐŊиĐĩ и Đ´Đ° вСаиĐŧОдĐĩĐšŅŅваŅĐĩ Ņ Đ´ŅŅĐŗи ĐŋĐžŅŅĐĩйиŅĐĩĐģи ĐžŅ вŅŅĐēĐ°Đēви ŅŅŅвŅŅи вŅв ФĐĩдивŅĐĩĐģĐĩĐŊĐ°ŅĐ°. ĐĐŧĐ° иСĐēĐģŅŅĐĩĐŊиŅ, ĐŊĐ°ĐŋŅавĐĩĐŊи ĐēĐžĐŊĐēŅĐĩŅĐŊĐž Са ŅОСи ŅŅŅвŅŅ.",
"about.domain_blocks.silenced.explanation": "ĐйиĐēĐŊОвĐĩĐŊĐž ĐŊŅĐŧĐ° Đ´Đ° виĐļĐ´Đ°ŅĐĩ ĐŋŅĐžŅиĐģи и ŅŅĐ´ŅŅĐļĐ°ĐŊиĐĩ, ĐžŅвĐĩĐŊ Đ°ĐēĐž иСŅиŅĐŊĐž ĐŊĐĩ ĐŗĐž ĐŋĐžŅŅŅŅиŅĐĩ иĐģи ŅĐĩ вĐēĐģŅŅĐĩŅĐĩ в ĐŊĐĩĐŗĐž, ŅĐģĐĩдваКĐēи ĐŗĐž.",
"about.domain_blocks.silenced.title": "ĐĐŗŅĐ°ĐŊиŅĐĩĐŊĐž",
"about.domain_blocks.suspended.explanation": "ĐиĐēĐ°Đēви Đ´Đ°ĐŊĐŊи ĐžŅ ŅОСи ŅŅŅвŅŅ ĐŊŅĐŧĐ° Đ´Đ° ŅĐĩ ОйŅайОŅваŅ, ŅŅŅ
ŅĐ°ĐŊŅваŅ иĐģи ОйĐŧĐĩĐŊŅŅ, ĐŋŅавĐĩŅи ĐŊĐĩвŅСĐŧĐžĐļĐŊĐž вŅŅĐēĐž вСаиĐŧОдĐĩĐšŅŅвиĐĩ иĐģи ĐēĐžĐŧŅĐŊиĐēĐ°ŅиŅ Ņ ĐŋĐžŅŅĐĩйиŅĐĩĐģи ĐžŅ ŅĐĩСи ŅŅŅвŅŅи.",
"about.domain_blocks.suspended.title": "ĐĄĐŋŅŅĐŊĐž",
- "about.not_available": "ĐĸаСи иĐŊŅĐžŅĐŧĐ°ŅиŅ ĐŊĐĩ Đĩ йиĐģĐ° ĐŊĐ°ĐŋŅавĐĩĐŊĐ° ĐŊĐ°ĐģиŅĐŊĐ° ĐŊĐ° ŅОСи ŅŅŅвŅŅ.",
+ "about.not_available": "ĐĸаСи иĐŊŅĐžŅĐŧĐ°ŅиŅ ĐŊĐĩ Đĩ ĐŋŅĐąĐģиŅĐŊĐ° ĐŊĐ° ŅОСи ŅŅŅвŅŅ.",
"about.powered_by": "ĐĐĩŅĐĩĐŊŅŅĐ°ĐģиСиŅĐ°ĐŊĐ° ŅĐžŅиаĐģĐŊĐ° ĐŧŅĐĩĐļĐ°, СаŅ
ŅĐ°ĐŊваĐŊĐ° ĐžŅ {mastodon}",
"about.rules": "ĐŅавиĐģĐ° ĐŊĐ° ŅŅŅвŅŅĐ°",
"account.account_note_header": "ĐĐĩĐģĐĩĐļĐēĐ°",
@@ -32,6 +32,7 @@
"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} ĐŋĐžŅĐģĐĩдОваŅĐĩĐģи}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "ĐĐ°ĐŗĐģŅŅаваĐŊĐĩ ĐŊĐ° иСвĐĩŅŅиŅŅĐ°",
"account.mute_short": "ĐĐ°ĐŗĐģŅŅаваĐŊĐĩ",
"account.muted": "ĐĐ°ĐŗĐģŅŅĐĩĐŊĐž",
+ "account.mutual": "ĐСаиĐŧĐŊи",
"account.no_bio": "ĐŅĐŧĐ° ĐŋŅĐĩĐ´ŅŅавĐĩĐŊ ĐžĐŋиŅ.",
"account.open_original_page": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ĐŋŅŅвООйŅаСĐŊĐ°ŅĐ° ŅŅŅĐ°ĐŊиŅĐ°",
"account.posts": "ĐŅĐąĐģиĐēĐ°Ņии",
@@ -87,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": "ĐĐ°ŅвĐĩĐŊĐ°ŅĐ° ŅŅŅĐ°ĐŊиŅĐ° ĐŊĐĩ ĐŧĐžĐļĐĩ Đ´Đ° ŅĐĩ иСОйŅаСи. ĐĸОва ĐŧĐžĐļĐĩ Đ´Đ° Đĩ СаŅади ĐŗŅĐĩŅĐēĐ° в ĐēОда ĐŊи иĐģи ĐŋŅОйĐģĐĩĐŧ ŅŅŅ ŅŅвĐŧĐĩŅŅиĐŧĐžŅŅŅĐ° ĐŊĐ° ĐąŅĐ°ŅСŅŅĐ°.",
@@ -109,7 +110,7 @@
"column.about": "ĐŅĐŊĐžŅĐŊĐž",
"column.blocks": "ĐĐģĐžĐēиŅĐ°ĐŊи ĐŋĐžŅŅĐĩйиŅĐĩĐģи",
"column.bookmarks": "ĐŅĐŧĐĩŅĐēи",
- "column.community": "ĐĐžĐēĐ°ĐģĐŊĐ° ŅĐ°ŅОва ĐžŅ",
+ "column.community": "ĐĐžĐēĐ°ĐģĐĩĐŊ иĐŊŅĐžĐŋĐžŅĐžĐē",
"column.direct": "ЧаŅŅĐŊи ŅĐŋĐžĐŧĐĩĐŊаваĐŊиŅ",
"column.directory": "РаСĐŗĐģĐĩĐļĐ´Đ°ĐŊĐĩ ĐŊĐ° ĐŋŅĐžŅиĐģи",
"column.domain_blocks": "ĐĐģĐžĐēиŅĐ°ĐŊи Đ´ĐžĐŧĐĩĐšĐŊи",
@@ -144,22 +145,20 @@
"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.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": "ĐĐģĐžĐēиŅĐ°ĐŊĐĩ",
@@ -202,7 +201,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} ŅĐģĐĩдваŅ.",
@@ -223,16 +222,16 @@
"emoji_button.search_results": "Đ ĐĩСŅĐģŅĐ°Ņи ĐžŅ ŅŅŅŅĐĩĐŊĐĩ",
"emoji_button.symbols": "ХиĐŧвОĐģи",
"emoji_button.travel": "ĐŅŅŅваĐŊĐĩ и ĐŧĐĩŅŅĐ°",
- "empty_column.account_hides_collections": "ĐĸОСи ĐŋĐžŅŅĐĩйиŅĐĩĐģ Đĩ иСйŅĐ°Đģ Đ´Đ° ĐŊĐĩ ĐŋŅави ŅОва ŅвĐĩĐ´ĐĩĐŊиĐĩ Đ´ĐžŅŅŅĐŋĐŊĐž",
+ "empty_column.account_hides_collections": "ĐĸОСи ĐŋĐžŅŅĐĩйиŅĐĩĐģ Đĩ иСйŅĐ°Đģ Đ´Đ° ĐŊĐĩ дава ŅаСи иĐŊŅĐžŅĐŧĐ°ŅиŅ",
"empty_column.account_suspended": "ĐĄĐŋŅŅĐŊ Đ°ĐēĐ°ŅĐŊŅ",
"empty_column.account_timeline": "ĐĸŅĐē ĐŊŅĐŧĐ° ĐŋŅĐąĐģиĐēĐ°Ņии!",
"empty_column.account_unavailable": "ĐŅĐžŅиĐģŅŅ ĐŊĐĩ Đĩ ĐŊĐ°ĐģиŅĐĩĐŊ",
"empty_column.blocks": "ĐŅĐĩ ĐŊĐĩ ŅŅĐĩ ĐąĐģĐžĐēиŅĐ°Đģи ĐŊиĐēĐ°Đēви ĐŋĐžŅŅĐĩйиŅĐĩĐģи.",
"empty_column.bookmarked_statuses": "ĐŅĐĩ ĐŊĐĩ ŅŅĐĩ ĐžŅĐŧĐĩŅĐŊĐ°Đģи ĐŋŅĐąĐģиĐēĐ°Ņии. ĐŅĐŧĐĩŅваКĐēи ĐŊŅĐēĐžŅ, ŅĐž ŅŅ ŅĐĩ ŅĐĩ ĐŋĐžĐēĐ°ĐļĐĩ ŅŅĐē.",
- "empty_column.community": "ĐĐĩŅŅĐŊĐ°ŅĐ° ŅĐ°ŅОва ĐžŅ Đĩ ĐŋŅаСĐŊĐ°. ĐĐ°ĐŋиŅĐĩŅĐĩ ĐŊĐĩŅĐž ОйŅĐĩŅŅвĐĩĐŊĐž, Са Đ´Đ° СавŅŅŅиŅĐĩ ĐŊĐĩŅĐ°ŅĐ°!",
+ "empty_column.community": "ĐĐžĐēĐ°ĐģĐŊиŅŅ иĐŊŅĐžĐŋĐžŅĐžĐē Đĩ ĐŋŅаСĐĩĐŊ. ĐŅĐąĐģиĐēŅваКŅĐĩ ĐŊĐĩŅĐž, Са Đ´Đ° СаĐŋĐžŅĐŊĐĩŅĐĩ!",
"empty_column.direct": "ĐŅĐĩ ĐŊŅĐŧĐ°ŅĐĩ ĐŊиĐēĐ°Đēви ŅĐ°ŅŅĐŊи ŅĐŋĐžĐŧĐĩĐŊаваĐŊиŅ. ĐĸŅĐē ŅĐĩ ŅĐĩ ĐŋĐžĐēаСваŅ, иСĐŋŅĐ°ŅĐ°ĐšĐēи иĐģи ĐŋĐžĐģŅŅаваКĐēи ĐĩĐ´ĐŊĐž.",
"empty_column.domain_blocks": "ĐŅĐĩ ĐŊŅĐŧĐ° ĐąĐģĐžĐēиŅĐ°ĐŊи Đ´ĐžĐŧĐĩĐšĐŊи.",
- "empty_column.explore_statuses": "ĐŅĐŧĐ° ĐŊиŅĐž ĐŊĐ°ĐģĐ°ĐŗĐ°ŅĐž ŅĐĩ в ĐŧĐžĐŧĐĩĐŊŅĐ°. ĐŅОвĐĩŅĐĩŅĐĩ ĐŋĐ°Đē ĐŋĐž-ĐēŅŅĐŊĐž!",
+ "empty_column.explore_statuses": "ĐŅĐŧĐ° ŅĐĩĐŊĐ´ĐĩĐŊŅии в ĐŧĐžĐŧĐĩĐŊŅĐ°. ĐŅОвĐĩŅĐĩŅĐĩ ĐŋĐ°Đē ĐŋĐž-ĐēŅŅĐŊĐž!",
"empty_column.favourited_statuses": "ĐŅĐĩ ĐŊŅĐŧĐ°ŅĐĩ ĐŊиĐēĐ°Đēви ĐģŅйиĐŧи ĐŋŅĐąĐģиĐēĐ°Ņии. ĐŅавĐĩĐšĐēи ĐģŅйиĐŧĐ°, ŅĐž ŅŅ ŅĐĩ ŅĐĩ ĐŋĐžĐēĐ°ĐļĐĩ ŅŅĐē.",
"empty_column.favourites": "ĐŅĐĩ ĐŊиĐēĐžĐŗĐž ĐŊĐĩ Đĩ ŅĐģĐ°ĐŗĐ°Đģ ĐŋŅĐąĐģиĐēĐ°ŅиŅŅĐ° в ĐģŅйиĐŧи. ĐĐžĐŗĐ°ŅĐž ĐŊŅĐēОК ĐŗĐž ĐŊĐ°ĐŋŅави, ŅОСи ŅОвĐĩĐē ŅĐĩ ŅĐĩ ĐŋĐžĐēĐ°ĐļĐĩ ŅŅĐē.",
"empty_column.follow_requests": "ĐŅĐĩ ĐŊŅĐŧĐ°ŅĐĩ СаŅвĐēи Са ĐŋĐžŅĐģĐĩдваĐŊĐĩ. ĐĐžĐģŅŅаваКĐēи ŅĐ°Đēава, ŅĐž ŅŅ ŅĐĩ ŅĐĩ ĐŋĐžĐēĐ°ĐļĐĩ ŅŅĐē.",
@@ -278,6 +277,12 @@
"follow_request.authorize": "ĐŖĐŋŅĐģĐŊĐžĐŧĐžŅаваĐŊĐĩ",
"follow_request.reject": "ĐŅŅ
вŅŅĐģŅĐŊĐĩ",
"follow_requests.unlocked_explanation": "ĐŅĐŋŅĐĩĐēи ŅĐĩ Đ°ĐēĐ°ŅĐŊŅŅŅ ви ĐŊĐĩ Đĩ СаĐēĐģŅŅĐĩĐŊ, ŅĐģŅĐļиŅĐĩĐģиŅĐĩ ĐŊĐ° {domain} ĐŋĐžĐŧиŅĐģиŅ
Đ°, ŅĐĩ ĐŧĐžĐļĐĩ Đ´Đ° иŅĐēĐ°ŅĐĩ Đ´Đ° ĐŋŅĐĩĐŗĐģĐĩĐļĐ´Đ°ŅĐĩ ŅŅŅĐŊĐž СаŅвĐēиŅĐĩ Са ĐŋĐžŅĐģĐĩдваĐŊĐĩ ĐŊĐ° ŅĐĩСи ĐŋŅĐžŅиĐģи.",
+ "follow_suggestions.curated_suggestion": "ĐСйОŅ ĐžŅ ŅĐĩĐ´Đ°ĐēŅĐžŅиŅĐĩ",
+ "follow_suggestions.dismiss": "ĐĐĩС ĐŊОвО ĐŋĐžĐēаСваĐŊĐĩ",
+ "follow_suggestions.personalized_suggestion": "ĐĐĩŅŅĐžĐŊĐ°ĐģиСиŅĐ°ĐŊĐž ĐŋŅĐĩĐ´ĐģĐžĐļĐĩĐŊиĐĩ",
+ "follow_suggestions.popular_suggestion": "ĐĐžĐŋŅĐģŅŅĐŊĐž ĐŋŅĐĩĐ´ĐģĐžĐļĐĩĐŊиĐĩ",
+ "follow_suggestions.view_all": "ĐŅĐĩĐŗĐģĐĩĐ´ ĐŊĐ° вŅиŅĐēи",
+ "follow_suggestions.who_to_follow": "ĐĐžĐŗĐž Đ´Đ° ŅĐĩ ŅĐģĐĩдва",
"followed_tags": "ĐĐžŅĐģĐĩдваĐŊи Ņ
Đ°ŅŅĐ°ĐŗОвĐĩ",
"footer.about": "ĐŅĐŊĐžŅĐŊĐž",
"footer.directory": "ĐиŅĐĩĐēŅĐžŅиŅ ĐŊĐ° ĐŋŅĐžŅиĐģиŅĐĩ",
@@ -304,13 +309,9 @@
"hashtag.follow": "ĐĄĐģĐĩдваĐŊĐĩ ĐŊĐ° Ņ
Đ°ŅŅĐ°Đŗ",
"hashtag.unfollow": "ĐĄĐŋиŅĐ°ĐŊĐĩ ĐŊĐ° ŅĐģĐĩдваĐŊĐĩ ĐŊĐ° Ņ
Đ°ŅŅĐ°Đŗ",
"hashtags.and_other": "âĻи {count, plural, other {# ĐžŅĐĩ}}",
- "home.actions.go_to_explore": "ĐиĐļŅĐĩ ĐēĐ°ĐēвО иСĐŗŅŅва",
- "home.actions.go_to_suggestions": "ĐĐ°ĐŧиŅĐ°ĐŊĐĩ ĐŊĐ° Ņ
ĐžŅĐ° Са ŅĐģĐĩдваĐŊĐĩ",
"home.column_settings.basic": "ĐŅĐŊОвĐŊĐž",
"home.column_settings.show_reblogs": "ĐĐžĐēаСваĐŊĐĩ ĐŊĐ° ĐŋОдŅиĐģваĐŊиŅŅĐ°",
"home.column_settings.show_replies": "ĐĐžĐēаСваĐŊĐĩ ĐŊĐ° ĐžŅĐŗОвОŅиŅĐĩ",
- "home.explore_prompt.body": "ĐĐ°ŅиŅŅ ĐŊĐ°ŅĐ°ĐģĐĩĐŊ иĐŊŅĐžĐēĐ°ĐŊĐ°Đģ ŅĐĩ Đĩ ŅĐŧĐĩŅ ĐŊĐ° ĐŋŅĐąĐģиĐēĐ°Ņии ĐžŅ Ņ
Đ°ŅŅĐ°ĐŗОвĐĩŅĐĩ, ĐēОиŅĐž ŅŅĐĩ иСйŅĐ°Đģи Đ´Đ° ŅĐģĐĩдваŅĐĩ, иСйŅĐ°ĐŊиŅĐĩ Ņ
ĐžŅĐ° Đ´Đ° ŅĐģĐĩдваŅĐĩ, Đ° и ĐŋŅĐąĐģиĐēĐ°ŅииŅĐĩ, ĐēОиŅĐž ŅĐ° ĐŋОдŅиĐģиĐģи. ĐĐēĐž иСĐŗĐģĐĩĐļĐ´Đ° ŅвŅŅĐ´Đĩ ŅиŅ
Đž в ĐŧĐžĐŧĐĩĐŊŅĐ°, ŅĐž ĐŧĐžĐļĐĩ Đ´Đ° иŅĐēĐ°ŅĐĩ Đ´Đ°:",
- "home.explore_prompt.title": "ĐĸОва Đĩ ĐŊĐ°ŅĐ°ĐģĐŊĐ°ŅĐ° ви йаСа Ņ Mastodon.",
"home.hide_announcements": "ĐĄĐēŅиваĐŊĐĩ ĐŊĐ° ĐžĐŋОвĐĩŅŅŅваĐŊиŅŅĐ°",
"home.pending_critical_update.body": "ĐĐąĐŊОвĐĩŅĐĩ ŅŅŅвŅŅĐ° Ņи в Mastodon вŅСĐŧĐžĐļĐŊĐž ĐŊĐ°Đš-ŅĐēĐžŅĐž!",
"home.pending_critical_update.link": "ĐŅĐĩĐŗĐģĐĩĐ´ ĐŊĐ° ОйĐŊОвŅваĐŊиŅŅĐ°",
@@ -347,10 +348,10 @@
"keyboard_shortcuts.favourites": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ŅĐŋиŅŅĐēĐ° Ņ ĐģŅйиĐŧи",
"keyboard_shortcuts.federated": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ŅĐĩĐ´ĐĩŅиŅĐ°ĐŊиŅ иĐŊŅĐžĐŋĐžŅĐžĐē",
"keyboard_shortcuts.heading": "ĐĐģавиŅĐŊи ŅŅŅĐĩŅĐ°ĐŊиŅ",
- "keyboard_shortcuts.home": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ĐŊĐ°ŅĐ°ĐģĐŊĐ°ŅĐ° ŅĐ°ŅОва ĐžŅ",
+ "keyboard_shortcuts.home": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ĐģиŅĐŊиŅ иĐŊŅĐžĐŋĐžŅĐžĐē",
"keyboard_shortcuts.hotkey": "ĐŅŅС ĐēĐģавиŅ",
"keyboard_shortcuts.legend": "ĐĐžĐēаСваĐŊĐĩ ĐŊĐ° ŅаСи ĐģĐĩĐŗĐĩĐŊĐ´Đ°",
- "keyboard_shortcuts.local": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ĐŧĐĩŅŅĐŊĐ° ŅĐ°ŅОва ĐžŅ",
+ "keyboard_shortcuts.local": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ĐģĐžĐēĐ°ĐģĐŊиŅ иĐŊŅĐžĐŋĐžŅĐžĐē",
"keyboard_shortcuts.mention": "ĐĄĐŋĐžĐŧĐĩĐŊаваĐŊĐĩ ĐŊĐ° авŅĐžŅĐ°",
"keyboard_shortcuts.muted": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ŅĐŋиŅŅĐēĐ° ŅŅŅ СаĐŗĐģŅŅĐĩĐŊи ĐŋĐžŅŅĐĩйиŅĐĩĐģи",
"keyboard_shortcuts.my_profile": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ĐŋŅĐžŅиĐģĐ° ви",
@@ -401,13 +402,12 @@
"navigation_bar.advanced_interface": "ĐŅваŅŅĐŊĐĩ в ŅаСŅиŅĐĩĐŊ ŅĐĩйиĐŊŅĐĩŅŅĐĩĐšŅ",
"navigation_bar.blocks": "ĐĐģĐžĐēиŅĐ°ĐŊи ĐŋĐžŅŅĐĩйиŅĐĩĐģи",
"navigation_bar.bookmarks": "ĐŅĐŧĐĩŅĐēи",
- "navigation_bar.community_timeline": "ĐĐžĐēĐ°ĐģĐŊĐ° ŅĐ°ŅОва ĐžŅ",
+ "navigation_bar.community_timeline": "ĐĐžĐēĐ°ĐģĐĩĐŊ иĐŊŅĐžĐŋĐžŅĐžĐē",
"navigation_bar.compose": "ĐĄŅŅŅавŅĐŊĐĩ ĐŊĐ° ĐŊОва ĐŋŅĐąĐģиĐēĐ°ŅиŅ",
"navigation_bar.direct": "ЧаŅŅĐŊи ŅĐŋĐžĐŧĐĩĐŊаваĐŊиŅ",
"navigation_bar.discover": "ĐŅĐēŅиваĐŊĐĩ",
"navigation_bar.domain_blocks": "ĐĐģĐžĐēиŅĐ°ĐŊи Đ´ĐžĐŧĐĩĐšĐŊи",
- "navigation_bar.edit_profile": "Đ ĐĩĐ´Đ°ĐēŅиŅĐ°ĐŊĐĩ ĐŊĐ° ĐŋŅĐžŅиĐģĐ°",
- "navigation_bar.explore": "ĐСŅĐģĐĩдваĐŊĐĩ",
+ "navigation_bar.explore": "РаСĐŗĐģĐĩĐļĐ´Đ°ĐŊĐĩ",
"navigation_bar.favourites": "ĐŅйиĐŧи",
"navigation_bar.filters": "ĐĐ°ĐŗĐģŅŅĐĩĐŊи Đ´ŅĐŧи",
"navigation_bar.follow_requests": "ĐĐ°ŅвĐēи Са ĐŋĐžŅĐģĐĩдваĐŊĐĩ",
@@ -474,10 +474,10 @@
"notifications_permission_banner.title": "ĐиĐēĐžĐŗĐ° ĐŊĐĩ ĐŋŅĐžĐŋŅŅĐēĐ°ŅĐĩ ĐŊĐĩŅĐž",
"onboarding.action.back": "ĐŅŅĐŊĐĩŅĐĩ ĐŧĐĩ ОйŅĐ°ŅĐŊĐž",
"onboarding.actions.back": "ĐŅŅĐŊĐĩŅĐĩ ĐŧĐĩ ОйŅĐ°ŅĐŊĐž",
- "onboarding.actions.go_to_explore": "ĐиĐļŅĐĩ ĐēĐ°ĐēвО иСĐŗŅŅва",
+ "onboarding.actions.go_to_explore": "ĐиĐļ ŅĐĩĐŊĐ´ĐĩĐŊŅии",
"onboarding.actions.go_to_home": "ĐŅĐŧ ĐŊĐ°ŅĐ°ĐģĐŊиŅ ви иĐŊŅĐžĐēĐ°ĐŊĐ°Đģ",
"onboarding.compose.template": "ĐĐ´ŅавĐĩĐšŅĐĩ, #Mastodon!",
- "onboarding.follows.empty": "ĐĐ° ŅŅĐļĐ°ĐģĐĩĐŊиĐĩ, в ĐŧĐžĐŧĐĩĐŊŅĐ° ĐŊĐĩ ĐŧĐžĐŗĐ°Ņ Đ´Đ° ŅĐĩ ĐŋĐžĐēаСваŅ ŅĐĩСŅĐģŅĐ°Ņи. ĐĐžĐļĐĩ Đ´Đ° ĐžĐŋиŅĐ°ŅĐĩ Đ´Đ° ŅĐŋĐžŅŅĐĩĐąŅваŅĐĩ ŅŅŅŅĐĩĐŊĐĩ иĐģи Đ´Đ° ĐŋŅĐĩĐŗĐģĐĩĐ´Đ°ŅĐĩ ŅŅŅĐ°ĐŊиŅĐ°ŅĐ° Са иСŅĐģĐĩдваĐŊĐĩ, Са Đ´Đ° ĐŊĐ°ĐŧĐĩŅиŅĐĩ ŅŅŅĐ°ĐŊиŅĐ° Са ĐŋĐžŅĐģĐĩдваĐŊĐĩ, иĐģи Đ´Đ° ĐžĐŋиŅĐ°ŅĐĩ ĐŋĐ°Đē ĐŋĐž-ĐēŅŅĐŊĐž.",
+ "onboarding.follows.empty": "ĐĐ° ŅŅĐļĐ°ĐģĐĩĐŊиĐĩ, в ĐŧĐžĐŧĐĩĐŊŅĐ° ĐŊĐĩ ĐŧĐžĐŗĐ°Ņ Đ´Đ° ĐąŅĐ´Đ°Ņ ĐŋĐžĐēаСаĐŊи ŅĐĩСŅĐģŅĐ°Ņи. ĐĐžĐļĐĩ Đ´Đ° ĐžĐŋиŅĐ°ŅĐĩ Đ´Đ° ŅŅŅŅиŅĐĩ иĐģи Đ´Đ° ŅаСĐŗĐģĐĩĐ´Đ°ŅĐĩ, Са Đ´Đ° ĐŊĐ°ĐŧĐĩŅиŅĐĩ ĐēĐžĐŗĐž Đ´Đ° ĐŋĐžŅĐģĐĩдваŅĐĩ, иĐģи ĐžĐŋиŅĐ°ĐšŅĐĩ ĐžŅĐŊОвО ĐŋĐž-ĐēŅŅĐŊĐž.",
"onboarding.follows.lead": "ĐĐžĐļĐĩ Đ´Đ° ĐąŅĐ´ĐĩŅĐĩ ĐēŅŅĐ°ŅĐžŅ ĐŊĐ° ĐŊĐ°ŅĐ°ĐģĐŊиŅ Ņи иĐŊŅĐžĐēĐ°ĐŊĐ°Đģ. ĐĐžŅĐģĐĩдваКĐēи ĐŋОвĐĩŅĐĩ Ņ
ĐžŅĐ°, ĐŋĐž-Đ´ĐĩĐĩĐŊ и ĐŋĐž-иĐŊŅĐĩŅĐĩŅĐĩĐŊ ŅĐĩ ŅŅава. ĐĸĐĩСи ĐŋŅĐžŅиĐģи ĐŧĐžĐļĐĩ Đ´Đ° ŅĐ° дОйŅĐ° ĐŊĐ°ŅĐ°ĐģĐŊĐ° ŅĐžŅĐēĐ°, ĐžŅ ĐēĐžŅŅĐž виĐŊĐ°Đŗи ĐŋĐž-ĐēŅŅĐŊĐž Đ´Đ° ŅĐŋŅĐĩŅĐĩ Đ´Đ° ŅĐģĐĩдваŅĐĩ!",
"onboarding.follows.title": "ĐĐžĐŋŅĐģŅŅĐŊĐž в Mastodon",
"onboarding.profile.discoverable": "ĐŅавĐĩĐŊĐĩ ĐŊĐ° ĐŧĐžŅ ĐŋŅĐžŅиĐģ ĐžŅĐēŅиваĐĩĐŧ",
@@ -524,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": "ĐŅĐĩĐŋĐžŅŅŅĐ°ĐŊĐž",
@@ -549,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": "ĐŅавĐŊи вŅĐŋŅĐžŅи",
@@ -713,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/bn.json b/app/javascript/mastodon/locales/bn.json
index fe3d2a627c..508caa2f42 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -85,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": "āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻžāĻāĻŋ āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋāĨ¤ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ āĻŦāĻž āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤",
@@ -142,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": "āĻŦā§āĻ˛āĻ āĻāĻ°ā§āĻ¨",
@@ -324,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": "āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻļāĻŦā§āĻĻ",
@@ -395,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": "āĻāĻĒāĻ¨āĻžāĻ° āĻŦāĻžā§āĻŋāĻ°-āĻ¸āĻŽā§āĻ°ā§āĻāĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§!",
@@ -506,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 bea8b27b77..8cbe4591d5 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,8 +30,9 @@
"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}}",
@@ -38,6 +41,7 @@
"account.follows.empty": "An implijer¡ez-maÃą na heul den ebet.",
"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}",
@@ -49,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Ú}}",
@@ -63,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",
@@ -70,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.",
@@ -77,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.",
@@ -100,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Ú",
@@ -122,28 +133,26 @@
"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.single": "Dibabit unan",
"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.poll.type": "Neuz",
"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.reply": "Respont",
+ "compose_form.save_changes": "Hizivadur",
"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Ãą",
@@ -158,6 +167,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",
@@ -172,7 +182,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",
@@ -209,7 +221,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Ãą.",
@@ -223,7 +236,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",
@@ -237,9 +254,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",
@@ -247,29 +268,37 @@
"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.column_settings.basic": "Diazez",
"home.column_settings.show_reblogs": "Diskouez ar skignadennoÚ",
"home.column_settings.show_replies": "Diskouez ar respontoÚ",
"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}",
@@ -285,6 +314,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",
@@ -314,6 +345,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",
@@ -328,6 +361,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 ?",
@@ -337,12 +371,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Ãą",
@@ -369,6 +405,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Ú",
@@ -386,6 +423,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Ú",
@@ -399,22 +437,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Ãą",
@@ -423,16 +477,11 @@
"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.private.short": "Heulierien",
"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!",
@@ -448,8 +497,10 @@
"relative_time.seconds": "{number}eil",
"relative_time.today": "hiziv",
"reply_indicator.cancel": "NullaÃą",
+ "reply_indicator.poll": "Sontadeg",
"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",
@@ -467,6 +518,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",
@@ -482,16 +534,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",
@@ -500,8 +568,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",
@@ -509,15 +579,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",
@@ -548,6 +624,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Ú",
@@ -575,10 +652,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Ãą",
@@ -592,6 +667,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 9b6b49c3d6..c978a8b01f 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 86f1fb4765..42de594cdc 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -32,7 +32,7 @@
"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",
+ "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}}",
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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.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": "Respon",
+ "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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Autoritza",
"follow_request.reject": "Rebutja",
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està blocat, el personal de {domain} ha pensat que Ês possible que vulguis revisar manualment les sol¡licituds de seguiment dâaquests comptes.",
+ "follow_suggestions.curated_suggestion": "Tria de l'editor",
+ "follow_suggestions.dismiss": "No ho tornis a mostrar",
+ "follow_suggestions.personalized_suggestion": "Suggeriment personalitzat",
+ "follow_suggestions.popular_suggestion": "Suggeriment popular",
+ "follow_suggestions.view_all": "Mostra-ho tot",
+ "follow_suggestions.who_to_follow": "A qui seguir",
"followed_tags": "Etiquetes seguides",
"footer.about": "Quant a",
"footer.directory": "Directori de perfils",
@@ -306,13 +309,9 @@
"hashtag.follow": "Segueix l'etiqueta",
"hashtag.unfollow": "Deixa de seguir l'etiqueta",
"hashtags.and_other": "âĻi {count, plural, other {# mÊs}}",
- "home.actions.go_to_explore": "Mira què Ês tendència",
- "home.actions.go_to_suggestions": "Troba persones a seguir",
"home.column_settings.basic": "BÃ sic",
"home.column_settings.show_reblogs": "Mostra els impulsos",
"home.column_settings.show_replies": "Mostra les respostes",
- "home.explore_prompt.body": "La teva lÃnia de temps Inici tindrà una barreja dels tuts de les etiquetes que has triat seguir, de les persones que has triat seguir i dels tuts que s'impulsen. Ara mateix es veu força tranquil¡la, què et sembla si:",
- "home.explore_prompt.title": "Aquesta Ês la teva base inicial a Mastodon.",
"home.hide_announcements": "Amaga els anuncis",
"home.pending_critical_update.body": "Si us plau actualitza el teu servidor Mastodon tant aviat com sigui possible!",
"home.pending_critical_update.link": "Veure actualitzacions",
@@ -408,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",
@@ -521,19 +519,20 @@
"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 a la 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.unlisted.additional": "Es comporta igual que pÃēblic, excepte que la publicaciÃŗ no apareixerà als canals en directe o etiquetes, l'explora o a la cerca de Mastodon, fins i tot si ho heu activat a nivell de compte.",
+ "privacy.unlisted.long": "Menys fanfà rries algorÃsmiques",
+ "privacy.unlisted.short": "PÃēblic silenciÃŗs",
"privacy_policy.last_updated": "Darrera actualitzaciÃŗ {date}",
"privacy_policy.title": "PolÃtica de Privacitat",
"recommended": "Recomanat",
@@ -551,7 +550,9 @@
"relative_time.minutes": "{number}min",
"relative_time.seconds": "{number}s",
"relative_time.today": "avui",
+ "reply_indicator.attachments": "{count, plural, one {# adjunt} other {# adjunts}}",
"reply_indicator.cancel": "Cancel¡la",
+ "reply_indicator.poll": "Enquesta",
"report.block": "Bloca",
"report.block_explanation": "No veuràs els seus tuts. Ells no podran veure els teus tuts ni et podran seguir. Podran saber que estan blocats.",
"report.categories.legal": "Legal",
@@ -607,7 +608,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",
@@ -715,10 +716,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 f1cafd1ac4..73910f9b7c 100644
--- a/app/javascript/mastodon/locales/ckb.json
+++ b/app/javascript/mastodon/locales/ckb.json
@@ -76,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": "ŲاŲžÛÚÛÛ Ø¯Ø§ŲØ§ÚŠØąØ§Ų ŲÛØĒŲاŲØąØ§ ÚÛŲدÛØą Ø¨ÚŠØąÛØĒ. دÛÚŠØąÛØĒ بÛŲÛÛ ŲÛÚĩÛÛÛÚŠÛ ÚŠÛدÛÚŠÛŲ
اŲÛŲÛ Ø¨ÛØĒØ ÛاŲ ÚŠÛØ´ÛÛ Ú¯ŲŲØŦاŲÛ ŲÛبگÛÚ.",
@@ -128,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": "بŲÛÚŠ",
@@ -354,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": "بÛدŲاداÚŲÛ Ø¯Ø§ŲØ§ÚŠØ§ØąÛÛڊاŲ بڊÛ",
@@ -439,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": "ŲŲÛÚŠØąØ¯ŲÛŲÛ",
@@ -610,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 9f90c3d211..9d0b0306c8 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -45,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à ",
@@ -80,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à ",
@@ -245,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",
@@ -318,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!",
@@ -409,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 e18cabcec1..24248db15c 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "ÅŊÃĄdnÊ pÅÃspÄvky",
"account.featured_tags.title": "Hlavnà hashtagy uŞivatele {name}",
"account.follow": "Sledovat",
+ "account.follow_back": "TakÊ sledovat",
"account.followers": "SledujÃcÃ",
"account.followers.empty": "Tohoto uÅživatele zatÃm nikdo nesleduje.",
"account.followers_counter": "{count, plural, one {{counter} SledujÃcÃ} few {{counter} SledujÃcÃ} many {{counter} SledujÃcÃch} other {{counter} SledujÃcÃch}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Ztlumit upozornÄnÃ",
"account.mute_short": "Ztlumit",
"account.muted": "SkrytÃŊ",
+ "account.mutual": "VzÃĄjemnÊ",
"account.no_bio": "Nebyl poskytnut ÅžÃĄdnÃŊ popis.",
"account.open_original_page": "OtevÅÃt původnà strÃĄnku",
"account.posts": "PÅÃspÄvky",
@@ -87,7 +89,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.",
@@ -144,22 +145,20 @@
"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.multiple": "VÃŊbÄr z vÃce moÅžnostÃ",
"compose_form.poll.option_placeholder": "Volba {number}",
- "compose_form.poll.remove_option": "Odebrat tuto volbu",
+ "compose_form.poll.single": "Vyber jednu",
"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.poll.type": "Styl",
+ "compose_form.publish": "Odeslat",
"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.reply": "OdpovÄdÄt",
+ "compose_form.save_changes": "Aktualizovat",
"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Ã",
+ "compose_form.spoiler_placeholder": "UpozornÄnà na obsah (nepovinnÊ)",
"confirmation_modal.cancel": "ZruÅĄit",
"confirmations.block.block_and_report": "Blokovat a nahlÃĄsit",
"confirmations.block.confirm": "Blokovat",
@@ -278,6 +277,9 @@
"follow_request.authorize": "Autorizovat",
"follow_request.reject": "ZamÃtnout",
"follow_requests.unlocked_explanation": "PÅestoÅže vÃĄÅĄ ÃēÄet nenà zamÄenÃŊ, administrÃĄtor {domain} usoudil, Åže byste mohli chtÃt tyto ÅžÃĄdosti o sledovÃĄnà zkontrolovat ruÄnÄ.",
+ "follow_suggestions.dismiss": "Znovu nezobrazovat",
+ "follow_suggestions.popular_suggestion": "PopulÃĄrnà nÃĄvrh",
+ "follow_suggestions.who_to_follow": "Koho sledovat",
"followed_tags": "SledovanÊ hashtagy",
"footer.about": "O aplikaci",
"footer.directory": "AdresÃĄÅ profilů",
@@ -300,13 +302,9 @@
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci dalÅĄÃ ÅĄtÃtky",
"hashtag.follow": "Sledovat hashtag",
"hashtag.unfollow": "PÅestat sledovat hashtag",
- "home.actions.go_to_explore": "PodÃvejte se, co frÄÃ",
- "home.actions.go_to_suggestions": "NajÃt lidi ke sledovÃĄnÃ",
"home.column_settings.basic": "ZÃĄkladnÃ",
"home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovÄdi",
- "home.explore_prompt.body": "VÃĄÅĄ domovskÃŊ kanÃĄl bude obsahovat smÄs pÅÃspÄvků z hashtagů, kterÊ jste se rozhodli sledovat, lidÃ, kterÊ jste se rozhodli sledovat, a pÅÃspÄvků, kterÊ boostujÃ. Pokud vÃĄm to pÅipadÃĄ pÅÃliÅĄ klidnÊ, moÅžnÃĄ budete chtÃt:",
- "home.explore_prompt.title": "Toto je vaÅĄe domovskÃĄ zÃĄkladna uvnitÅ Mastodonu.",
"home.hide_announcements": "SkrÃŊt oznÃĄmenÃ",
"home.pending_critical_update.body": "Aktualizujte, prosÃm, svůj Mastodon server co nejdÅÃve!",
"home.pending_critical_update.link": "Zobrazit aktualizace",
@@ -387,6 +385,7 @@
"lists.search": "Hledejte mezi lidmi, kterÊ sledujete",
"lists.subheading": "VaÅĄe seznamy",
"load_pending": "{count, plural, one {# novÃĄ poloÅžka} few {# novÊ poloÅžky} many {# novÃŊch poloÅžek} other {# novÃŊch poloÅžek}}",
+ "loading_indicator.label": "NaÄÃtÃĄnÃâĻ",
"media_gallery.toggle_visible": "{number, plural, one {SkrÃŊt obrÃĄzek} few {SkrÃŊt obrÃĄzky} many {SkrÃŊt obrÃĄzky} other {SkrÃŊt obrÃĄzky}}",
"moved_to_account_banner.text": "VÃĄÅĄ ÃēÄet {disabledAccount} je momentÃĄlnÄ deaktivovÃĄn, protoÅže jste se pÅesunul/a na {movedToAccount}.",
"mute_modal.duration": "TrvÃĄnÃ",
@@ -401,7 +400,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",
@@ -475,6 +473,17 @@
"onboarding.follows.empty": "BohuÅžel, ÅžÃĄdnÊ vÃŊsledky nelze momentÃĄlnÄ zobrazit. MůŞete zkusit vyhledat nebo prochÃĄzet strÃĄnku s průzkumem a najÃt lidi, kteÅà budou sledovat, nebo to zkuste znovu pozdÄji.",
"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": "PopulÃĄrnà na Mastodonu",
+ "onboarding.profile.discoverable": "UdÄlat svůj profil vyhledatelnÃŊm",
+ "onboarding.profile.discoverable_hint": "KdyÅž se rozhodnete bÃŊt vyhledatelnÃŊ na Mastodonu, vaÅĄe pÅÃspÄvky se mohou objevit ve vÃŊsledcÃch vyhledÃĄvÃĄnà a v populÃĄrnÃch, a vÃĄÅĄ profil můŞe bÃŊt navrhovÃĄn lidem s podobnÃŊmi zÃĄjmy.",
+ "onboarding.profile.display_name": "ZobrazovanÊ jmÊno",
+ "onboarding.profile.display_name_hint": "VaÅĄe celÊ jmÊno nebo pÅezdÃvkaâĻ",
+ "onboarding.profile.lead": "Toto můŞete vÅždy dokonÄit pozdÄji v nastavenÃ, kde je k dispozici jeÅĄtÄ vÃce moÅžnostà pÅizpůsobenÃ.",
+ "onboarding.profile.note": "O vÃĄs",
+ "onboarding.profile.note_hint": "MůŞete @zmÃnit jinÊ osoby nebo #hashtagyâĻ",
+ "onboarding.profile.save_and_continue": "UloÅžit a pokraÄovat",
+ "onboarding.profile.title": "Nastavenà profilu",
+ "onboarding.profile.upload_avatar": "NahrÃĄt profilovÃŊ obrÃĄzek",
+ "onboarding.profile.upload_header": "NahrÃĄt hlaviÄku profilu",
"onboarding.share.lead": "Dejte lidem vÄdÄt, jak vÃĄs mohou najÃt na Mastodonu!",
"onboarding.share.message": "Jsem {username} na #Mastodonu! PojÄ mÄ sledovat na {url}",
"onboarding.share.next_steps": "MoÅžnÊ dalÅĄÃ kroky:",
@@ -508,16 +517,17 @@
"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.direct.long": "VÅĄichni zmÃnÄnà v pÅÃspÄvku",
+ "privacy.direct.short": "Vybranà lidÊ",
+ "privacy.private.long": "Jen vaÅĄi sledujÃcÃ",
+ "privacy.private.short": "SledujÃcÃ",
+ "privacy.public.long": "Kdokoliv na Mastodonu i mimo nÄj",
"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.unlisted.additional": "ChovÃĄ se stejnÄ jako veÅejnÃŊ, aÅž na to, Åže se pÅÃspÄvek neobjevà v ÅživÃŊch kanÃĄlech nebo hashtazÃch, v objevovÃĄnà nebo vyhledÃĄvÃĄnà na Mastodonu, a to i kdyÅž je ÃēÄet nastaven tak, aby se zde vÅĄude tyto pÅÃspÄvky zobrazovaly.",
+ "privacy.unlisted.long": "MÊnÄ algoritmickÃŊch fanfÃĄr",
"privacy_policy.last_updated": "Naposledy aktualizovÃĄno {date}",
"privacy_policy.title": "ZÃĄsady ochrany osobnÃch Ãēdajů",
+ "recommended": "DoporuÄeno",
"refresh": "Obnovit",
"regeneration_indicator.label": "NaÄÃtÃĄnÃâĻ",
"regeneration_indicator.sublabel": "VÃĄÅĄ domovskÃŊ kanÃĄl se pÅipravuje!",
@@ -533,6 +543,7 @@
"relative_time.seconds": "{number} s",
"relative_time.today": "dnes",
"reply_indicator.cancel": "ZruÅĄit",
+ "reply_indicator.poll": "Anketa",
"report.block": "Blokovat",
"report.block_explanation": "NeuvidÃte pÅÃspÄvky tohoto uÅživatele. On neuvidà vaÅĄe pÅÃspÄvky, ani vÃĄs nebude moci sledovat. PoznÃĄ, Åže je blokovÃĄn.",
"report.categories.legal": "PrÃĄvnà ustanovenÃ",
@@ -588,6 +599,7 @@
"search.quick_action.status_search": "PÅÃspÄvky odpovÃdajÃcà {x}",
"search.search_or_paste": "Hledat nebo vloÅžit URL",
"search_popout.full_text_search_disabled_message": "NedostupnÊ na {domain}.",
+ "search_popout.full_text_search_logged_out_message": "DostupnÊ pouze po pÅihlÃĄÅĄenÃ.",
"search_popout.language_code": "KÃŗd jazyka podle ISO",
"search_popout.options": "MoÅžnosti hledÃĄnÃ",
"search_popout.quick_actions": "RychlÊ akce",
@@ -695,10 +707,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 17133631a5..f023c5a2a7 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,6 +32,7 @@
"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}}}",
@@ -51,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",
@@ -86,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.",
@@ -143,22 +145,20 @@
"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.multiple": "Dewis lluosog",
"compose_form.poll.option_placeholder": "Dewis {number}",
- "compose_form.poll.remove_option": "Tynnu'r dewis",
+ "compose_form.poll.single": "Ddewis un",
"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.poll.type": "Arddull",
+ "compose_form.publish": "Postiad",
"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.reply": "Ateb",
+ "compose_form.save_changes": "Diweddariad",
"compose_form.spoiler.marked": "Dileu rhybudd cynnwys",
"compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys",
- "compose_form.spoiler_placeholder": "Ysgrifenwch eich rhybudd yma",
+ "compose_form.spoiler_placeholder": "Rhybudd cynnwys (dewisol)",
"confirmation_modal.cancel": "Diddymu",
"confirmations.block.block_and_report": "Rhwystro ac Adrodd",
"confirmations.block.confirm": "Blocio",
@@ -168,9 +168,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",
@@ -277,6 +277,12 @@
"follow_request.authorize": "Awdurdodi",
"follow_request.reject": "Gwrthod",
"follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
+ "follow_suggestions.curated_suggestion": "Dewis y Golygydd",
+ "follow_suggestions.dismiss": "Peidio Ãĸ dangos hwn eto",
+ "follow_suggestions.personalized_suggestion": "Awgrym personol",
+ "follow_suggestions.popular_suggestion": "Awgrym poblogaidd",
+ "follow_suggestions.view_all": "Gweld y cyfan",
+ "follow_suggestions.who_to_follow": "Pwy i ddilyn",
"followed_tags": "Hashnodau rydych yn eu dilyn",
"footer.about": "Ynghylch",
"footer.directory": "Cyfeiriadur proffiliau",
@@ -303,13 +309,9 @@
"hashtag.follow": "Dilyn hashnod",
"hashtag.unfollow": "Dad-ddilyn hashnod",
"hashtags.and_other": "âĻa {count, plural, other {# more}}",
- "home.actions.go_to_explore": "Gweld beth yw'r tuedd",
- "home.actions.go_to_suggestions": "Ffeindio pobl i'w dilyn",
"home.column_settings.basic": "Syml",
"home.column_settings.show_reblogs": "Dangos hybiau",
"home.column_settings.show_replies": "Dangos atebion",
- "home.explore_prompt.body": "Bydd eich llif cartref yn cynnwys cymysgedd o bostiadau o'r hashnodau rydych chi wedi dewis eu dilyn, y bobl rydych chi wedi dewis eu dilyn, a'r postiadau maen nhw'n rhoi hwb iddyn nhw. Os yw hynny'n teimlo'n rhy dawel, efallai y byddwch eisiau:",
- "home.explore_prompt.title": "Dyma'ch cartref o fewn Mastodon.",
"home.hide_announcements": "Cuddio cyhoeddiadau",
"home.pending_critical_update.body": "Diweddarwch eich gweinydd Mastodon cyn gynted Ãĸ phosibl!",
"home.pending_critical_update.link": "Gweld y diweddariadau",
@@ -405,7 +407,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",
@@ -481,12 +482,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:",
@@ -520,14 +524,15 @@
"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.direct.long": "Pawb sydd Ãĸ son amdanyn nhw yn y postiad",
+ "privacy.direct.short": "Pobl benodol",
+ "privacy.private.long": "Eich dilynwyr yn unig",
+ "privacy.private.short": "Dilynwyr",
+ "privacy.public.long": "Unrhyw ar ac oddi ar Mastodon",
"privacy.public.short": "Cyhoeddus",
- "privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod",
- "privacy.unlisted.short": "Heb ei restru",
+ "privacy.unlisted.additional": "Mae hwn yn ymddwyn yn union fel y cyhoeddus, ac eithrio na fydd y postiad yn ymddangos mewn ffrydiau byw neu hashnodau, archwilio, neu chwiliad Mastodon, hyd yn oed os ydych wedi eich cynnwys ar draws y cyfrif.",
+ "privacy.unlisted.long": "Llai o ddathliadau algorithmig",
+ "privacy.unlisted.short": "Tewi'r cyhoeddus",
"privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}",
"privacy_policy.title": "Polisi Preifatrwydd",
"recommended": "Argymhellwyd",
@@ -545,7 +550,9 @@
"relative_time.minutes": "{number} munud",
"relative_time.seconds": "{number} eiliad",
"relative_time.today": "heddiw",
+ "reply_indicator.attachments": "{count, plural, one {# attachment} arall {# attachments}}",
"reply_indicator.cancel": "Canslo",
+ "reply_indicator.poll": "Arolwg",
"report.block": "Blocio",
"report.block_explanation": "Ni welwch chi eu postiadau. Ni allan nhw weld eich postiadau na'ch dilyn. Byddan nhw'n gallu gweld eu bod nhw wedi'u rhwystro.",
"report.categories.legal": "Cyfreithiol",
@@ -601,6 +608,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",
@@ -708,10 +716,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 3bc830ad27..548421b3c0 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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",
@@ -280,6 +277,11 @@
"follow_request.authorize": "Godkend",
"follow_request.reject": "Afvis",
"follow_requests.unlocked_explanation": "Selvom din konto ikke er lÃĨst, synes {domain}-personalet, du mÃĨske bør gennemgÃĨ disse anmodninger manuelt.",
+ "follow_suggestions.dismiss": "Vis ikke igen",
+ "follow_suggestions.personalized_suggestion": "Personligt forslag",
+ "follow_suggestions.popular_suggestion": "PopulÃĻrt forslag",
+ "follow_suggestions.view_all": "Vis alle",
+ "follow_suggestions.who_to_follow": "Hvem, som skal følges",
"followed_tags": "Hashtag, som følges",
"footer.about": "Om",
"footer.directory": "Profiloversigt",
@@ -306,13 +308,9 @@
"hashtag.follow": "Følg hashtag",
"hashtag.unfollow": "Stop med at følge hashtag",
"hashtags.and_other": "âĻog {count, plural, one {}other {# flere}}",
- "home.actions.go_to_explore": "Se, hvad som trender",
- "home.actions.go_to_suggestions": "Find nogle personer at følge",
"home.column_settings.basic": "GrundlÃĻggende",
"home.column_settings.show_reblogs": "Vis boosts",
"home.column_settings.show_replies": "Vis svar",
- "home.explore_prompt.body": "Dit hjemmefeed vil have en blanding af indlÃĻg fra de hashtags, du har valgt at følge, de personer, du har valgt at følge, og de indlÃĻg, de booster. Hvis her virker for stille, kan du prøve:",
- "home.explore_prompt.title": "Dette er din hjemmebase i Mastodon.",
"home.hide_announcements": "Skjul bekendtgørelser",
"home.pending_critical_update.body": "Opdater din Mastodon-server snarest muligt!",
"home.pending_critical_update.link": "Se opdateringer",
@@ -408,7 +406,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)",
@@ -526,14 +523,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",
@@ -551,7 +549,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",
@@ -715,10 +715,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 ddcbc58cee..f29d016b07 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -62,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",
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.duration": "Umfragedauer",
- "compose_form.poll.option_placeholder": "{number}. Auswahl",
- "compose_form.poll.remove_option": "Auswahlfeld entfernen",
+ "compose_form.poll.multiple": "MulÂtiÂple-Choice",
+ "compose_form.poll.option_placeholder": "Option {number}",
+ "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": "Stil",
"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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Genehmigen",
"follow_request.reject": "Ablehnen",
"follow_requests.unlocked_explanation": "Auch wenn dein Konto Ãļffentlich bzw. nicht geschÃŧtzt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
+ "follow_suggestions.curated_suggestion": "Auswahl des Herausgebers",
+ "follow_suggestions.dismiss": "Nicht mehr anzeigen",
+ "follow_suggestions.personalized_suggestion": "PersÃļnliche Empfehlung",
+ "follow_suggestions.popular_suggestion": "Beliebte Empfehlung",
+ "follow_suggestions.view_all": "Alle anzeigen",
+ "follow_suggestions.who_to_follow": "Empfohlene Profile",
"followed_tags": "Gefolgte Hashtags",
"footer.about": "Ãber",
"footer.directory": "Profilverzeichnis",
@@ -306,13 +309,9 @@
"hashtag.follow": "Hashtag folgen",
"hashtag.unfollow": "Hashtag entfolgen",
"hashtags.and_other": "âĻÂ und {count, plural, one{# weiterer} other {# weitere}}",
- "home.actions.go_to_explore": "Trends ansehen",
- "home.actions.go_to_suggestions": "Profile zum Folgen finden",
"home.column_settings.basic": "Allgemein",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen",
- "home.explore_prompt.body": "Deine Startseite wird eine Mischung aus Beiträgen mit Hashtags und den Profilen, denen du folgst sowie den Beiträgen, die sie teilen, enthalten. Sollte es sich zu still anfÃŧhlen:",
- "home.explore_prompt.title": "Das ist dein Zuhause bei Mastodon.",
"home.hide_announcements": "AnkÃŧndigungen ausblenden",
"home.pending_critical_update.body": "Bitte aktualisiere deinen Mastodon-Server so schnell wie mÃļglich!",
"home.pending_critical_update.link": "Updates ansehen",
@@ -408,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",
@@ -489,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",
@@ -526,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 in 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",
@@ -551,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",
@@ -715,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 83a986ba4e..a5ed320831 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,6 +32,7 @@
"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} ÎÎēĪÎģÎŋĪ
θÎŋΚ}}",
@@ -47,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": "ΤÎŋĪ
Ī ÎēιΚ ÎąĪÎąÎŊĪÎŽĪÎĩΚĪ",
@@ -63,6 +70,7 @@
"account.unendorse": "ÎÎą ÎŧΡÎŊ ĪÎąĪÎĪÎĩĪιΚ ĪĪÎŋ ĪĪÎŋĪίÎģ",
"account.unfollow": "ÎĪĪΡ ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
"account.unmute": "ÎΚιÎēÎŋĪÎŽ ĪίÎŗÎąĪΡĪ @{name}",
+ "account.unmute_notifications_short": "ÎŖίÎŗÎąĪΡ ÎĩΚδÎŋĪÎŋΚΎĪÎĩĪÎŊ",
"account.unmute_short": "ÎÎąĪÎŦĪÎŗΡĪΡ ĪίÎŗÎąĪΡĪ",
"account_note.placeholder": "ÎÎŦÎŊÎĩ ÎēÎģΚÎē ÎŗΚι ÎŊÎą ĪĪÎŋĪθÎĪÎĩΚĪ ĪΡÎŧÎĩίĪĪΡ",
"admin.dashboard.daily_retention": "Î ÎŋĪÎŋĪĪĪ ĪĪΡĪĪĪÎŊ ĪÎŋĪ
ĪÎąĪÎąÎŧÎÎŊÎŋĪ
ÎŊ ÎŧÎĩĪÎŦ ĪΡÎŊ ÎĩÎŗÎŗĪÎąĪÎŽ, ÎąÎŊÎŦ ΡÎŧÎĪÎą",
@@ -77,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": "ÎÎĩÎŊ ÎŽĪÎąÎŊ δĪ
ÎŊÎąĪÎŽ Ρ ÎąĪĪδÎŋĪΡ ĪΡĪ ĪÎĩÎģÎ¯Î´ÎąĪ ĪÎŋĪ
ÎļÎŽĪΡĪÎĩĪ. ÎĪÎŋĪÎĩί ÎŊÎą ÎŋĪÎĩίÎģÎĩĪιΚ ĪÎĩ ĪĪÎŦÎģÎŧÎą ĪĪÎŋÎŊ ÎēĪδΚÎēÎŦ ÎŧÎąĪ ÎŽ ĪÎĩ ĪĪĪβÎģΡÎŧÎą ĪĪ
ÎŧβιĪĪĪΡĪÎąĪ ĪÎŋĪ
ĪĪÎŋÎŗĪÎŦÎŧÎŧÎąĪÎŋĪ ĪÎĩĪΚΎÎŗΡĪΡĪ.",
@@ -103,6 +110,7 @@
"column.direct": "ÎδΚĪĪΚÎēÎĪ ÎąÎŊÎąĪÎŋĪÎĪ",
"column.directory": "Î ÎĩĪΚΎÎŗΡĪΡ ĪĪÎą ĪĪÎŋĪίÎģ",
"column.domain_blocks": "ÎĪÎŋÎēÎģÎĩΚĪÎŧÎÎŊÎŋΚ ĪÎŋÎŧÎĩίĪ",
+ "column.favourites": "ÎÎŗÎąĪΡÎŧÎÎŊÎą",
"column.follow_requests": "ÎΚĪÎŽÎŧÎąĪÎą ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
"column.home": "ÎĪĪΚÎēÎŽ",
"column.lists": "ÎίĪĪÎĩĪ",
@@ -123,28 +131,28 @@
"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": "ÎĪ
ĪÎŽ Ρ δΡÎŧÎŋĪίÎĩĪ
ĪΡ δÎĩÎŊ θι ÎĩÎŧĪÎąÎŊίÎļÎĩĪιΚ ÎēÎŦĪĪ ÎąĪĪ ÎŋĪÎŋΚιδΎĪÎŋĪÎĩ ÎĩĪΚÎēÎĪÎą ÎēιθĪĪ δÎĩÎŊ ÎĩίÎŊιΚ δΡÎŧĪĪΚι. ÎĪÎŊÎŋ ÎŋΚ δΡÎŧĪĪΚÎĩĪ δΡÎŧÎŋĪΚÎĩĪĪÎĩΚĪ ÎŧĪÎŋĪÎŋĪÎŊ ÎŊÎą ÎąÎŊÎąÎļΡĪΡθÎŋĪÎŊ ÎŧÎĩ ÎĩĪΚÎēÎĪÎą.",
"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.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": "ÎĪÎŋÎēÎģÎĩΚĪÎŧĪĪ",
@@ -176,6 +184,7 @@
"conversation.mark_as_read": "ÎŖÎŽÎŧÎąÎŊĪΡ ĪĪ ÎąÎŊÎąÎŗÎŊĪĪÎŧÎÎŊÎŋ",
"conversation.open": "Î ĪÎŋβÎŋÎģÎŽ ĪĪ
ÎŊÎŋÎŧΚÎģÎ¯ÎąĪ",
"conversation.with": "ÎÎĩ {names}",
+ "copy_icon_button.copied": "ÎÎŊĪΚÎŗĪÎŦĪΡÎēÎĩ ĪĪÎŋ ĪĪĪĪÎĩΚĪÎŋ",
"copypaste.copied": "ÎÎŊĪΚÎŗĪÎŦĪΡÎēÎĩ",
"copypaste.copy_to_clipboard": "ÎÎŊĪΚÎŗĪÎąĪÎŽ ĪĪÎŋ ĪĪĪĪÎĩΚĪÎŋ",
"directory.federated": "ÎĪĪ ĪÎŋ ÎŗÎŊĪĪĪĪ fediverse",
@@ -252,6 +261,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} θÎĩĪĪΡĪÎąÎŊ ĪĪĪ ίĪĪĪ ÎŊÎą θÎÎģÎĩΚĪ ÎŊÎą ÎĩÎģÎÎŗΞÎĩΚĪ ĪÎĩΚĪÎŋÎēίÎŊΡĪÎą ÎąĪ
ĪÎŦ ĪÎą ιΚĪÎŽÎŧÎąĪÎą ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ.",
@@ -280,8 +292,9 @@
"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.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, ÎŧĪÎŋĪÎĩίĪ ÎŊÎą ÎĩÎŊΚĪĪĪĪÎĩΚĪ ÎąĪ
ĪÎŽ ĪΡÎŊ ÎąÎŊÎŦĪĪΡĪΡ ÎŗΚι ÎŊÎą ĪΡ ÎŧÎŋΚĪÎąĪĪÎĩίĪ ÎŧÎĩ ĪÎŋĪ
Ī δΚÎēÎŋĪĪ ĪÎŋĪ
ÎąÎēÎŋÎģÎŋĪθÎŋĪ
Ī.",
@@ -306,6 +319,7 @@
"keyboard_shortcuts.direct": "ÎŗΚι ĪÎŋ ÎŦÎŊÎŋΚÎŗÎŧÎą ĪΡĪ ĪĪÎŽÎģΡĪ ΚδΚĪĪΚÎēĪÎŊ ÎĩĪΚĪΡÎŧÎŦÎŊĪÎĩĪÎŊ",
"keyboard_shortcuts.down": "ÎēίÎŊΡĪΡ ĪĪÎŋĪ ĪÎą ÎēÎŦĪĪ ĪĪΡ ÎģίĪĪÎą",
"keyboard_shortcuts.enter": "ÎÎŧĪÎŦÎŊΚĪΡ ÎąÎŊÎŦĪĪΡĪΡĪ",
+ "keyboard_shortcuts.favourite": "ÎÎŗÎąĪΡÎŧÎÎŊΡ δΡÎŧÎŋĪίÎĩĪ
ĪΡ",
"keyboard_shortcuts.federated": "ÎÎŊÎŋΚÎŗÎŧÎą ĪÎŋÎŽĪ ĪĪ
ÎŊÎąÎģÎģÎąÎŗĪÎŊ",
"keyboard_shortcuts.heading": "ÎŖĪ
ÎŊĪÎŋÎŧÎĩĪĪÎĩΚĪ ĪÎģΡÎēĪĪÎŋÎģÎŋÎŗίÎŋĪ
",
"keyboard_shortcuts.home": "ÎÎŊÎŋΚÎŗÎŧÎą ĪÎŋÎŽĪ ÎąĪĪΚÎēÎŽĪ ĪÎĩÎģÎ¯Î´ÎąĪ",
@@ -350,6 +364,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": "ÎΚÎŦĪÎēÎĩΚι",
@@ -363,7 +378,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": "ÎΚĪÎŽÎŧÎąĪÎą ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
@@ -372,6 +386,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": "Î ĪÎŋĪΚÎŧÎŽĪÎĩΚĪ",
@@ -395,6 +410,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": "ÎÎŧĪÎŦÎŊΚĪΡ ÎŧĪÎŦĪÎąĪ ĪίÎģĪĪÎŋĪ
",
@@ -431,6 +447,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:",
@@ -439,6 +461,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!",
@@ -448,6 +471,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": "ΨΎĪΚĪÎĩ",
@@ -456,16 +480,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": "Î ÎąĪĪΚÎēÎŽ ĪÎŋĪ
ĪÎŋÎŽ ÎĩĪÎŋΚÎŧÎŦÎļÎĩĪιΚ!",
@@ -481,8 +503,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": "ΤÎŋ ĪÎĩĪΚÎĩĪĪÎŧÎĩÎŊÎŋ ĪÎąĪιβΚÎŦÎļÎĩΚ ÎÎŊÎąÎŊ ÎŽ ĪÎĩĪΚĪĪĪĪÎĩĪÎŋĪ
Ī ÎēÎąÎŊĪÎŊÎĩĪ δΚιÎēÎŋÎŧΚĪĪÎŽ",
@@ -500,6 +524,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": "ÎίÎŊιΚ ĪĪÎąÎŧ",
@@ -533,10 +559,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 ΡÎŧÎĪÎĩĪ (ÎΡÎŊÎšÎąÎ¯Îą ÎÎŊÎĩĪÎŗÎŋί ΧĪÎŽĪĪÎĩĪ)",
@@ -547,6 +575,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": "ÎÎŊÎŋΚÎŗÎŧÎą ÎąĪ
ĪÎŽĪ ĪΡĪ ÎąÎŊÎŦĪĪΡĪΡĪ ĪÎĩ δΚÎĩĪÎąĪÎŽ ĪĪ
ÎŊĪÎŋÎŊΚĪÎŧÎŋĪ",
@@ -563,6 +593,7 @@
"status.edited": "ÎĪÎĩΞÎĩĪÎŗÎŦĪĪΡÎēÎĩ ĪĪΚĪ {date}",
"status.edited_x_times": "ÎĪÎĩΞÎĩĪÎŗÎŦĪĪΡÎēÎĩ {count, plural, one {{count} ĪÎŋĪÎŦ} other {{count} ĪÎŋĪÎĪ}}",
"status.embed": "ÎÎŊĪĪÎŧÎŦĪĪĪÎĩ",
+ "status.favourite": "ÎÎŗÎąĪΡÎŧÎÎŊÎą",
"status.filter": "ÎĻΚÎģĪĪÎŦĪΚĪÎŧÎą ÎąĪ
ĪÎŽĪ ĪΡĪ ÎąÎŊÎŦĪĪΡĪΡĪ",
"status.filtered": "ÎĻΚÎģĪĪÎąĪΚĪÎŧÎÎŊÎą",
"status.hide": "ÎĪĪÎēĪĪ
ĪΡ ÎąÎŊÎŦĪĪΡĪΡĪ",
@@ -627,10 +658,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 37e5efa5ba..3431d95cb6 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,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",
@@ -278,6 +277,12 @@
"follow_request.authorize": "Authorise",
"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": "Personalised 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",
@@ -304,13 +309,9 @@
"hashtag.follow": "Follow hashtag",
"hashtag.unfollow": "Unfollow hashtag",
"hashtags.and_other": "âĻand {count, plural, one {}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",
@@ -406,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": "Favourites",
"navigation_bar.filters": "Muted words",
@@ -524,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",
@@ -549,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",
@@ -713,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": "Analysing pictureâĻ",
"upload_modal.apply": "Apply",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index be7209d04a..12d0068d69 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -89,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.",
@@ -146,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",
@@ -280,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",
@@ -306,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",
@@ -408,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",
@@ -526,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",
@@ -551,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",
@@ -715,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 4daa699dcf..887d754a40 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,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",
@@ -304,13 +295,9 @@
"hashtag.follow": "Sekvi la kradvorton",
"hashtag.unfollow": "Ne plu sekvi la kradvorton",
"hashtags.and_other": "âĻkaj {count, plural,other {# pli}}",
- "home.actions.go_to_explore": "Vidi kio populariÄas",
- "home.actions.go_to_suggestions": "Trovi homojn por sekvi",
"home.column_settings.basic": "Bazaj agordoj",
"home.column_settings.show_reblogs": "Montri diskonigojn",
"home.column_settings.show_replies": "Montri respondojn",
- "home.explore_prompt.body": "Via hejmafiÅaro havos miksitajn afiÅojn de kradvortoj kiujn vi elektis sekvi, personoj kiujn vi elektis sekvi, kaj afiÅoj kiujn ili suprenigis.",
- "home.explore_prompt.title": "Äi tio estas via hejma paÄo en Mastodon.",
"home.hide_announcements": "KaÅi la anoncojn",
"home.pending_critical_update.body": "Äisdatigu vian servilon de Mastodon kiel eble plej baldau!",
"home.pending_critical_update.link": "Vidi Äisdatigojn",
@@ -406,7 +393,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",
@@ -509,6 +495,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",
@@ -522,16 +510,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!",
@@ -549,6 +531,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",
@@ -587,6 +570,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",
@@ -599,13 +583,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)",
@@ -616,6 +606,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",
@@ -632,6 +624,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",
@@ -699,10 +692,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 eb6c0f3e4f..87ab62cda2 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -32,7 +32,7 @@
"account.featured_tags.last_status_never": "Sin mensajes",
"account.featured_tags.title": "Etiquetas destacadas de {name}",
"account.follow": "Seguir",
- "account.follow_back": "Seguir tambiÊn",
+ "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}}",
@@ -53,7 +53,7 @@
"account.mute_notifications_short": "Silenciar notificaciones",
"account.mute_short": "Silenciar",
"account.muted": "Silenciado",
- "account.mutual": "Mutuo",
+ "account.mutual": "Seguimiento mutuo",
"account.no_bio": "Sin descripciÃŗn provista.",
"account.open_original_page": "Abrir pÃĄgina original",
"account.posts": "Mensajes",
@@ -89,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.",
@@ -146,22 +145,20 @@
"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": "MÃēltiples opciones",
"compose_form.poll.option_placeholder": "OpciÃŗn {number}",
- "compose_form.poll.remove_option": "Quitar esta opciÃŗn",
+ "compose_form.poll.single": "Elegà una",
"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.publish": "Publicar",
+ "compose_form.poll.type": "Estilo",
+ "compose_form.publish": "Enviar",
"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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el equipo de {domain} pensÃŗ que podrÃas querer revisar manualmente las solicitudes de seguimiento de estas cuentas.",
+ "follow_suggestions.curated_suggestion": "Cuentas elegidas del servidor",
+ "follow_suggestions.dismiss": "No mostrar de nuevo",
+ "follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
+ "follow_suggestions.popular_suggestion": "Sugerencia popular",
+ "follow_suggestions.view_all": "Ver todo",
+ "follow_suggestions.who_to_follow": "A quiÊn seguir",
"followed_tags": "Etiquetas seguidas",
"footer.about": "InformaciÃŗn",
"footer.directory": "Directorio de perfiles",
@@ -306,13 +309,9 @@
"hashtag.follow": "Seguir etiqueta",
"hashtag.unfollow": "Dejar de seguir etiqueta",
"hashtags.and_other": "âĻy {count, plural, other {# mÃĄs}}",
- "home.actions.go_to_explore": "Ver quÊ estÃĄ en tendencia",
- "home.actions.go_to_suggestions": "Encontrar cuentas para seguir",
"home.column_settings.basic": "BÃĄsico",
"home.column_settings.show_reblogs": "Mostrar adhesiones",
"home.column_settings.show_replies": "Mostrar respuestas",
- "home.explore_prompt.body": "Tu lÃnea temporal principal tendrÃĄ una mezcla de mensajes de etiquetas que hayÃĄs decidido seguir, cuentas que hayÃĄs seguido y mensajes a los que Êstas adhieran. Si estÃĄ muy tranquilo por acÃĄ, quizÃĄs quieras:",
- "home.explore_prompt.title": "Este es tu inicio en Mastodon.",
"home.hide_announcements": "Ocultar anuncios",
"home.pending_critical_update.body": "Por favor, ÂĄactualizÃĄ tu servidor de Mastodon lo antes posible!",
"home.pending_critical_update.link": "Ver actualizaciones",
@@ -408,7 +407,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",
@@ -526,14 +524,15 @@
"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.long": "Todas las cuentas mencionadas en el mensaje",
+ "privacy.direct.short": "Cuentas especÃficas",
+ "privacy.private.long": "Solo tus seguidores",
+ "privacy.private.short": "Seguidores",
+ "privacy.public.long": "Cualquier persona dentro y fuera de Mastodon",
"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.unlisted.additional": "Esto se comporta exactamente igual que con la configuraciÃŗn de privacidad de mensaje \"PÃēblico\", excepto que el mensaje no aparecerÃĄ en los lÃneas temporales en vivo, ni en las etiquetas, ni en la lÃnea temporal \"ExplorÃĄ\", ni en la bÃēsqueda de Mastodon; incluso si optaste por hacer tu cuenta visible.",
+ "privacy.unlisted.long": "Menos fanfarrias algorÃtmicas",
+ "privacy.unlisted.short": "PÃēblico silencioso",
"privacy_policy.last_updated": "Ãltima actualizaciÃŗn: {date}",
"privacy_policy.title": "PolÃtica de privacidad",
"recommended": "OpciÃŗn recomendada",
@@ -551,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 verÃĄs sus mensajes. No podrÃĄn ver tus mensajes ni seguirte. Se van a dar cuentra de que estÃĄn bloqueados.",
"report.categories.legal": "Legales",
@@ -651,8 +652,8 @@
"status.filter": "Filtrar este mensaje",
"status.filtered": "Filtrado",
"status.hide": "Ocultar mensaje",
- "status.history.created": "Creado por {name} el {date}",
- "status.history.edited": "Editado por {name} el {date}",
+ "status.history.created": "Creado por {name}, {date}",
+ "status.history.edited": "Editado por {name}, {date}",
"status.load_more": "Cargar mÃĄs",
"status.media.open": "Clic para abrir",
"status.media.show": "Clic para mostrar",
@@ -715,10 +716,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 fab5f6ec96..95b87b26dd 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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.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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizÃĄs deberÃas revisar manualmente las solicitudes de seguimiento de estas cuentas.",
+ "follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
+ "follow_suggestions.dismiss": "No mostrar de nuevo",
+ "follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
+ "follow_suggestions.popular_suggestion": "Sugerencia popular",
+ "follow_suggestions.view_all": "Ver todo",
+ "follow_suggestions.who_to_follow": "A quiÊn seguir",
"followed_tags": "Hashtags seguidos",
"footer.about": "Acerca de",
"footer.directory": "Directorio de perfiles",
@@ -306,13 +309,9 @@
"hashtag.follow": "Seguir etiqueta",
"hashtag.unfollow": "Dejar de seguir etiqueta",
"hashtags.and_other": "âĻy {count, plural, other {# mÃĄs}}",
- "home.actions.go_to_explore": "Ver tendencias",
- "home.actions.go_to_suggestions": "Encuentra gente a la que seguir",
"home.column_settings.basic": "BÃĄsico",
"home.column_settings.show_reblogs": "Mostrar retoots",
"home.column_settings.show_replies": "Mostrar respuestas",
- "home.explore_prompt.body": "Tu cronologÃa de inicio tendrÃĄ una mezcla de publicaciones de los hashtags que has escogido seguir, las personas que has decidido seguir y las publicaciones que impulsen. Si crees que estÃĄ demasiado tranquila, quizÃĄs quieras:",
- "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.",
"home.hide_announcements": "Ocultar anuncios",
"home.pending_critical_update.body": "ÂĄPor favor actualiza tu servidor Mastodon lo antes posible!",
"home.pending_critical_update.link": "Ver actualizaciones",
@@ -408,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",
@@ -526,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",
@@ -551,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",
@@ -715,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 0d6149f5f5..3e4f36ba5a 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizÃĄs deberÃas revisar manualmente las solicitudes de seguimiento de estas cuentas.",
+ "follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
+ "follow_suggestions.dismiss": "No mostrar de nuevo",
+ "follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
+ "follow_suggestions.popular_suggestion": "Sugerencia popular",
+ "follow_suggestions.view_all": "Ver todo",
+ "follow_suggestions.who_to_follow": "A quiÊn seguir",
"followed_tags": "Etiquetas seguidas",
"footer.about": "Acerca de",
"footer.directory": "Directorio de perfiles",
@@ -306,13 +309,9 @@
"hashtag.follow": "Seguir etiqueta",
"hashtag.unfollow": "Dejar de seguir etiqueta",
"hashtags.and_other": "âĻy {count, plural, other {# mÃĄs}}",
- "home.actions.go_to_explore": "Ver tendencias",
- "home.actions.go_to_suggestions": "Encuentra personas a las que seguir",
"home.column_settings.basic": "BÃĄsico",
"home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respuestas",
- "home.explore_prompt.body": "Tu cronologÃa de inicio tendrÃĄ una mezcla de publicaciones de las etiquetas que has escogido seguir, las personas que has decidido seguir y las publicaciones que impulsen. Si crees que estÃĄ demasiado tranquila, quizÃĄs quieras:",
- "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.",
"home.hide_announcements": "Ocultar anuncios",
"home.pending_critical_update.body": "Por favor, ÂĄactualiza tu servidor Mastodon lo antes posible!",
"home.pending_critical_update.link": "Ver actualizaciones",
@@ -408,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",
@@ -526,14 +524,15 @@
"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.long": "Todos los mencionados en el post",
+ "privacy.direct.short": "Personas especÃficas",
+ "privacy.private.long": "Solo 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 la publicaciÃŗn no aparecerÃĄ en la cronologÃa en directo o en las etiquetas, la exploraciÃŗn o bÃēsqueda de Mastodon, incluso si estÃĄ optado por activar la cuenta de usuario.",
+ "privacy.unlisted.long": "Menos fanfares algorÃtmicos",
+ "privacy.unlisted.short": "PÃēblico tranquilo",
"privacy_policy.last_updated": "Actualizado por Ãēltima vez {date}",
"privacy_policy.title": "PolÃtica de Privacidad",
"recommended": "Recomendado",
@@ -552,6 +551,7 @@
"relative_time.seconds": "{number} s",
"relative_time.today": "hoy",
"reply_indicator.cancel": "Cancelar",
+ "reply_indicator.poll": "Encuesta",
"report.block": "Bloquear",
"report.block_explanation": "No verÃĄs sus publicaciones. No podrÃĄn ver tus publicaciones ni seguirte. PodrÃĄn saber que estÃĄn bloqueados.",
"report.categories.legal": "Legal",
@@ -715,10 +715,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 c397334109..be8bec616d 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"compose_form.lock_disclaimer": "Su konto ei ole {locked}. IgaÃŧks saab sind jälgida, et näha su ainult-jälgijatele postitusi.",
"compose_form.lock_disclaimer.lock": "lukus",
"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",
@@ -304,13 +303,9 @@
"hashtag.follow": "Jälgi silti",
"hashtag.unfollow": "LÃĩpeta sildi jälgimine",
"hashtags.and_other": "âĻja {count, plural, one {}other {# veel}}",
- "home.actions.go_to_explore": "Vaata, mis on populaarne",
- "home.actions.go_to_suggestions": "Leia inimesi, keda jälgida",
"home.column_settings.basic": "Peamine",
"home.column_settings.show_reblogs": "Näita jagamisi",
"home.column_settings.show_replies": "Näita vastuseid",
- "home.explore_prompt.body": "Sinu koduvoos on koos jälgimiseks valitud siltidega postitused, sinu jälgitavate inimeste postitused ja postitused, mida nad jagavad. Kui see tundub liiga vaikne, vÃĩid sa soovida:",
- "home.explore_prompt.title": "See on sinu kodubaas Mastodonis.",
"home.hide_announcements": "Peida teadaanded",
"home.pending_critical_update.body": "Palun uuenda oma Mastodoni server nii ruttu kui vÃĩimalik!",
"home.pending_critical_update.link": "Vaata uuendusi",
@@ -406,7 +401,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",
@@ -524,14 +518,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",
@@ -549,7 +543,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",
@@ -713,10 +709,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 c75f697e4c..e80e7fcf46 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -25,7 +25,7 @@
"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",
@@ -89,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.",
@@ -133,7 +132,7 @@
"column_header.unpin": "Desfinkatu",
"column_subheading.settings": "Ezarpenak",
"community.column_settings.local_only": "Lokala soilik",
- "community.column_settings.media_only": "Multimedia besterik ez",
+ "community.column_settings.media_only": "Edukiak soilik",
"community.column_settings.remote_only": "Urrunekoa soilik",
"compose.language.change": "Aldatu hizkuntza",
"compose.language.search": "Bilatu hizkuntzak...",
@@ -146,22 +145,20 @@
"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.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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Baimendu",
"follow_request.reject": "Ukatu",
"follow_requests.unlocked_explanation": "Zure kontua blokeatuta ez badago ere, {domain} domeinuko arduradunek uste dute kontu hauetako jarraipen eskaerak agian eskuz begiratu nahiko dituzula.",
+ "follow_suggestions.curated_suggestion": "Zerbitzariaren iradokizunak",
+ "follow_suggestions.dismiss": "Ez erakutsi berriro",
+ "follow_suggestions.personalized_suggestion": "Iradokizun pertsonalizatua",
+ "follow_suggestions.popular_suggestion": "Iradokizun ezaguna",
+ "follow_suggestions.view_all": "Ikusi denak",
+ "follow_suggestions.who_to_follow": "Zein jarraitu",
"followed_tags": "Jarraitutako traolak",
"footer.about": "Honi buruz",
"footer.directory": "Profil-direktorioa",
@@ -306,13 +309,9 @@
"hashtag.follow": "Jarraitu traolari",
"hashtag.unfollow": "Utzi traola jarraitzeari",
"hashtags.and_other": "âĻeta {count, plural, one {}other {# gehiago}}",
- "home.actions.go_to_explore": "Ikusi zer dagoen pil-pilean",
- "home.actions.go_to_suggestions": "Aurkitu jendea jarraitzeko",
"home.column_settings.basic": "Oinarrizkoa",
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak",
- "home.explore_prompt.body": "Zure hasierako jarioak jarraitzeko aukeratu dituzun traolen, jarraitzeko aukeratu duzun jendearen eta beraiek bultzatutako argitalpenen nahasketa bat edukiko du. Nahiko isila dirudi oraintxe, beraz, zergatik ez:",
- "home.explore_prompt.title": "Hau zure hasiera da Mastodonen.",
"home.hide_announcements": "Ezkutatu iragarpenak",
"home.pending_critical_update.body": "Eguneratu zure Mastodoneko zerbitzaria leheinbailehen!",
"home.pending_critical_update.link": "Ikusi eguneraketak",
@@ -357,7 +356,7 @@
"keyboard_shortcuts.muted": "mutututako erabiltzaileen zerrenda irekitzeko",
"keyboard_shortcuts.my_profile": "zure profila irekitzeko",
"keyboard_shortcuts.notifications": "jakinarazpenen zutabea irekitzeko",
- "keyboard_shortcuts.open_media": "media zabaltzeko",
+ "keyboard_shortcuts.open_media": "Ireki edukia",
"keyboard_shortcuts.pinned": "Ireki finkatutako bidalketen zerrenda",
"keyboard_shortcuts.profile": "egilearen profila irekitzeko",
"keyboard_shortcuts.reply": "Erantzun bidalketari",
@@ -408,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",
@@ -526,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",
@@ -551,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",
@@ -715,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 a93d0f6617..4050ca9f9f 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,6 +32,7 @@
"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} ŲžÛâÚ¯ÛØąŲدŲ}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "ØŽŲ
ŲØ´Û ØĸگاŲÛâŲا",
"account.mute_short": "ØŽŲ
ŲØ´Û",
"account.muted": "ØŽŲ
ŲØ´",
+ "account.mutual": "دŲØˇØąŲŲ",
"account.no_bio": "Ø´ØąØÛ ŲØąØ§ŲŲ
ŲشدŲ.",
"account.open_original_page": "گشŲدŲ ØĩŲØŲŲ اØĩŲÛ",
"account.posts": "ŲØąØŗØĒŲ",
@@ -87,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": "ØĩŲØŲŲ Ø¯ØąØŽŲاØŗØĒÛ ŲØĒŲاŲØŗØĒ ŲžØąØ¯Ø§ØŽØĒ Ø´Ųد. Ų
Ų
ÚŠŲ اØŗØĒ بŲ ØŽØ§ØˇØą اشڊاŲÛ Ø¯Øą ڊدŲ
اŲ Ûا Ų
Ø´ÚŠŲ ØŗØ§Ø˛Ú¯Ø§ØąÛ Ų
ØąŲØąÚ¯Øą باشد.",
@@ -144,22 +145,20 @@
"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.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": "اŲØŗداد",
@@ -304,13 +303,9 @@
"hashtag.follow": "ŲžÛâÚ¯ØąŲØĒŲ Ø¨ØąÚØŗب",
"hashtag.unfollow": "ŲžÛâŲÚ¯ØąŲØĒŲ Ø¨ØąÚØŗب",
"hashtags.and_other": "âĻŲ {count, plural, other {# بÛØ´âØĒØą}}",
- "home.actions.go_to_explore": "ببÛŲÛد ÚŲ داØē اØŗØĒ",
- "home.actions.go_to_suggestions": "ÛاŲØĒŲ اŲØąØ§Ø¯ Ø¨ØąØ§Û ŲžÛâÚ¯ÛØąÛ",
"home.column_settings.basic": "ŲžØ§ÛŲâاÛ",
"home.column_settings.show_reblogs": "ŲŲ
اÛØ´ ØĒŲŲÛØĒâŲا",
"home.column_settings.show_replies": "ŲŲ
اÛØ´ ŲžØ§ØŗØŽâŲا",
- "home.explore_prompt.body": "ØŽŲØąØ§ÚŠ ؎اŲÚ¯ÛØĒاŲ ØĒØąÚŠÛØ¨Û Ø§Ø˛ ŲØąØŗØĒŲâŲا Ø§Ø˛ Ø¨ØąÚØŗبâŲاÛÛ ÚŠŲ Ø¨ØąØ§Û ŲžÛâÚ¯ÛØąÛ Ú¯Ø˛ÛدŲâاÛØ¯Ø Ø§ŲØąØ§Ø¯Û ÚŠŲ ŲžÛ Ų
ÛâÚ¯ÛØąÛد Ų ŲØąØŗØĒŲâŲاÛÛ ÚŠŲ ØĒŲŲÛØĒ Ų
ÛâÚŠŲŲد ØąØ§ ØŽŲاŲد داشØĒ. Ø§Ú¯Øą ØŽÛŲÛ ØŽŲŲØĒ بŲ ŲØ¸Øą Ų
ÛâØąØŗدØâ شاÛد ب؎ŲاŲÛد:",
- "home.explore_prompt.title": "اÛŲ ŲžØ§ÛگاŲ ؎اŲÚ¯ÛØĒاŲ Ø¯Øą Ų
اØŗØĒŲدŲŲ اØŗØĒ.",
"home.hide_announcements": "ŲŲŲØĒŲ اؚŲاŲ
ÛŲâŲا",
"home.pending_critical_update.body": "ŲØˇŲاŲ ÚŠØ§ØąØŗØ§Ø˛ Ų
اØŗØĒŲدŲŲØĒاŲ ØąØ§ Ø¯Øą ŲØŽØŗØĒÛŲ ŲØąØĩØĒ بŲâØąŲØ˛ ÚŠŲÛد!",
"home.pending_critical_update.link": "دÛدŲ بŲâØąŲØ˛Â ØąØŗاŲÛâŲا",
@@ -406,7 +401,6 @@
"navigation_bar.direct": "Ø§Ø´Ø§ØąŲâŲØ§Û ØŽØĩŲØĩÛ",
"navigation_bar.discover": "گشØĒ Ų Ú¯Ø°Ø§Øą",
"navigation_bar.domain_blocks": "داŲ
ŲŲâŲØ§Û Ų
ØŗدŲد شدŲ",
- "navigation_bar.edit_profile": "ŲÛØąØ§ÛØ´ ŲŲ
اÛŲ",
"navigation_bar.explore": "ڊاŲØ´",
"navigation_bar.favourites": "Ø¨ØąÚ¯Ø˛ÛدŲâŲا",
"navigation_bar.filters": "ŲاÚŲâŲØ§Û ØŽŲ
ŲØ´",
@@ -522,14 +516,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": "ŲžÛØ´ŲŲادشدŲ",
@@ -548,6 +542,7 @@
"relative_time.seconds": "{number} ØĢاŲÛŲ",
"relative_time.today": "اŲ
ØąŲØ˛",
"reply_indicator.cancel": "ŲØēŲ",
+ "reply_indicator.poll": "ŲØ¸ØąØŗŲØŦÛ",
"report.block": "اŲØŗداد",
"report.block_explanation": "Ø´Ų
ا ŲØąØŗØĒŲâŲاÛشاŲ ØąØ§ ŲØŽŲاŲÛد دÛد. ØĸŲâŲا ŲŲ
ÛâØĒŲاŲŲد ŲØąØŗØĒŲâŲاÛØĒاŲ ØąØ§ ببÛŲŲد Ûا Ø´Ų
ا ØąØ§ ŲžÛâبگÛØąŲد. ØĸŲŲا Ų
ÛâØĒŲاŲŲد بگŲÛŲد ÚŠŲ Ų
ØŗدŲد شدŲâاŲد.",
"report.categories.legal": "ØŲŲŲÛ",
@@ -711,10 +706,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 dab7eac1e9..277f0f2e72 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -2,8 +2,8 @@
"about.blocks": "Moderoidut palvelimet",
"about.contact": "Ota yhteys:",
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
- "about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu",
- "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältÃļä ja vuorovaikuttaa eri palvelinten käyttäjien kanssa. Nämä ovat tälle palvelimelle määritetyt poikkeukset.",
+ "about.domain_blocks.no_reason_available": "Syy ei ole tiedossa",
+ "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältÃļä, ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.",
"about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältÃļä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.",
"about.domain_blocks.silenced.title": "Rajoitettu",
"about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.",
@@ -19,15 +19,15 @@
"account.block_domain": "Estä verkkotunnus {domain}",
"account.block_short": "Estä",
"account.blocked": "Estetty",
- "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",
+ "account.browse_more_on_origin_server": "Selaile kattavampaa alkuperäprofiilia",
"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",
"account.edit_profile": "Muokkaa profiilia",
"account.enable_notifications": "Ilmoita minulle, kun @{name} julkaisee",
- "account.endorse": "Pidä esillä profiilissa",
+ "account.endorse": "Suosittele profiilissasi",
"account.featured_tags.last_status_at": "Viimeisin julkaisu {date}",
"account.featured_tags.last_status_never": "Ei julkaisuja",
"account.featured_tags.title": "Käyttäjän {name} esillä pidettävät aihetunnisteet",
@@ -39,7 +39,7 @@
"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.go_to_profile": "Avaa profiili",
+ "account.go_to_profile": "Mene profiiliin",
"account.hide_reblogs": "Piilota käyttäjän @{name} tehostukset",
"account.in_memoriam": "Muistoissamme.",
"account.joined_short": "Liittynyt",
@@ -53,7 +53,7 @@
"account.mute_notifications_short": "Mykistä ilmoitukset",
"account.mute_short": "Mykistä",
"account.muted": "Mykistetty",
- "account.mutual": "Molemmat",
+ "account.mutual": "Seuraatte toisianne",
"account.no_bio": "Kuvausta ei ole annettu.",
"account.open_original_page": "Avaa alkuperäinen sivu",
"account.posts": "Julkaisut",
@@ -64,10 +64,10 @@
"account.share": "Jaa käyttäjän @{name} profiili",
"account.show_reblogs": "Näytä käyttäjän @{name} tehostukset",
"account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
- "account.unblock": "Poista käyttäjän @{name} esto",
- "account.unblock_domain": "Poista verkkotunnuksen {domain} esto",
+ "account.unblock": "Kumoa käyttäjän @{name} esto",
+ "account.unblock_domain": "Kumoa verkkotunnuksen {domain} esto",
"account.unblock_short": "Poista esto",
- "account.unendorse": "Ãlä pidä esillä profiilissa",
+ "account.unendorse": "Kumoa suosittelu profiilissasi",
"account.unfollow": "Lopeta seuraaminen",
"account.unmute": "Poista käyttäjän @{name} mykistys",
"account.unmute_notifications_short": "Poista ilmoitusten mykistys",
@@ -75,7 +75,7 @@
"account_note.placeholder": "Lisää muistiinpano napsauttamalla",
"admin.dashboard.daily_retention": "Käyttäjien pysyvyys rekisterÃļitymisen jälkeen päivittäin",
"admin.dashboard.monthly_retention": "Käyttäjien pysyvyys rekisterÃļitymisen jälkeen kuukausittain",
- "admin.dashboard.retention.average": "Keskimäärin",
+ "admin.dashboard.retention.average": "Keskiarvo",
"admin.dashboard.retention.cohort": "RekisterÃļitymis-kk.",
"admin.dashboard.retention.cohort_size": "Uusia käyttäjiä",
"admin.impact_report.instance_accounts": "Tilien profiilit, jotka tämä poistaisi",
@@ -86,10 +86,9 @@
"alert.rate_limited.title": "PyyntÃļmäärää rajoitettu",
"alert.unexpected.message": "Tapahtui odottamaton virhe.",
"alert.unexpected.title": "Hups!",
- "announcement.announcement": "Ilmoitus",
+ "announcement.announcement": "Tiedote",
"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.",
@@ -146,34 +145,32 @@
"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.duration": "Ãänestyksen kesto",
- "compose_form.poll.option_placeholder": "Valinta {number}",
- "compose_form.poll.remove_option": "Poista tämä valinta",
- "compose_form.poll.switch_to_multiple": "Muuta äänestys monivalinnaksi",
- "compose_form.poll.switch_to_single": "Muuta äänestys sallimaan vain yksi valinta",
+ "compose_form.poll.multiple": "Monivalinta",
+ "compose_form.poll.option_placeholder": "Vaihtoehto {number}",
+ "compose_form.poll.single": "Valitse yksi",
+ "compose_form.poll.switch_to_multiple": "Muuta kysely monivalinnaksi",
+ "compose_form.poll.switch_to_single": "Muuta kysely 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ä",
"confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?",
"confirmations.cancel_follow_request.confirm": "Peruuta pyyntÃļ",
- "confirmations.cancel_follow_request.message": "Haluatko varmasti peruuttaa pyyntÃļsi seurata profiilia {name}?",
+ "confirmations.cancel_follow_request.message": "Haluatko varmasti perua pyyntÃļsi seurata käyttäjätiliä {name}?",
"confirmations.delete.confirm": "Poista",
"confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?",
"confirmations.delete_list.confirm": "Poista",
"confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?",
"confirmations.discard_edit_media.confirm": "Hylkää",
- "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun, hylätäänkÃļ ne silti?",
+ "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun. HylätäänkÃļ ne silti?",
"confirmations.domain_block.confirm": "Estä koko verkkotunnus",
"confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkkotunnuksen {domain}? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimi. Et näe sisältÃļä tästä verkkotunnuksesta millään julkisilla aikajanoilla tai ilmoituksissa. Tähän verkkotunnukseen kuuluvat seuraajasi poistetaan.",
"confirmations.edit.confirm": "Muokkaa",
@@ -183,17 +180,17 @@
"confirmations.mute.confirm": "Mykistä",
"confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta â mukaan lukien ne, joissa heidät mainitaan â sallien heidän yhä nähdä julkaisusi ja seurata sinua.",
"confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?",
- "confirmations.redraft.confirm": "Poista & palauta muokattavaksi",
+ "confirmations.redraft.confirm": "Poista ja palauta muokattavaksi",
"confirmations.redraft.message": "Haluatko varmasti poistaa julkaisun ja tehdä siitä luonnoksen? Suosikit ja tehostukset menetetään, ja alkuperäisen julkaisun vastaukset jäävät orvoiksi.",
"confirmations.reply.confirm": "Vastaa",
"confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa parhaillaan tyÃļstämäsi viestin. Haluatko varmasti jatkaa?",
"confirmations.unfollow.confirm": "Lopeta seuraaminen",
- "confirmations.unfollow.message": "Haluatko varmasti lakata seuraamasta profiilia {name}?",
+ "confirmations.unfollow.message": "Haluatko varmasti lopettaa profiilin {name} seuraamisen?",
"conversation.delete": "Poista keskustelu",
"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",
@@ -202,10 +199,10 @@
"directory.recently_active": "Hiljattain aktiiviset",
"disabled_account_banner.account_settings": "Tilin asetukset",
"disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytÃļstä.",
- "dismissable_banner.community_timeline": "Nämä ovat viimeisimpiä julkaisuja käyttäjiltä, joiden tili sijaitsee palvelimella {domain}.",
+ "dismissable_banner.community_timeline": "Nämä ovat tuoreimpia julkaisuja käyttäjiltä, joiden tili on palvelimella {domain}.",
"dismissable_banner.dismiss": "Hylkää",
"dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat listauksessa korkeimmalle.",
- "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikiksi lisätyimmät nousevat listauksessa korkeimmalle.",
+ "dismissable_banner.explore_statuses": "Tänään nämä sosiaalisen verkon julkaisut keräävät eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat listauksessa korkeammalle.",
"dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat listauksessa korkeimmalle.",
"dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.",
"embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.",
@@ -217,18 +214,18 @@
"emoji_button.food": "Ruoka ja juoma",
"emoji_button.label": "Lisää emoji",
"emoji_button.nature": "Luonto",
- "emoji_button.not_found": "Vastaavia emojeja ei lÃļytynyt",
+ "emoji_button.not_found": "Vastaavia emojeita ei lÃļytynyt",
"emoji_button.objects": "Esineet",
"emoji_button.people": "Ihmiset",
"emoji_button.recent": "Usein käytetyt",
- "emoji_button.search": "Hae...",
+ "emoji_button.search": "Etsi...",
"emoji_button.search_results": "Hakutulokset",
"emoji_button.symbols": "Symbolit",
"emoji_button.travel": "Matkailu ja paikat",
- "empty_column.account_hides_collections": "Käyttäjä on päättänyt olla julkaisematta näitä tietoja",
+ "empty_column.account_hides_collections": "Käyttäjä on päättänyt pitää nämä tiedot yksityisinä",
"empty_column.account_suspended": "Tili jäädytetty",
"empty_column.account_timeline": "Ei viestejä täällä.",
- "empty_column.account_unavailable": "Profiilia ei lÃļydy",
+ "empty_column.account_unavailable": "Profiilia ei ole saatavilla",
"empty_column.blocks": "Et ole vielä estänyt käyttäjiä.",
"empty_column.bookmarked_statuses": "Et ole vielä lisännyt julkaisuja kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
"empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
@@ -239,17 +236,17 @@
"empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä julkaisua suosikkeihinsa. Kun joku tekee niin, tulee hän tähän näkyviin.",
"empty_column.follow_requests": "Et ole vielä vastaanottanut seuraamispyyntÃļjä. Saamasi pyynnÃļt näkyvät täällä.",
"empty_column.followed_tags": "Et seuraa vielä yhtäkään aihetunnistetta. Kun alat seurata, ne tulevat tähän näkyviin.",
- "empty_column.hashtag": "Tällä aihetunnisteella ei ole vielä mitään.",
+ "empty_column.hashtag": "Tällä aihetunnisteella ei lÃļydy vielä sisältÃļä.",
"empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilÃļjä, niin näet enemmän sisältÃļä.",
"empty_column.list": "Tällä listalla ei ole vielä mitään. Kun tämän listan jäsenet lähettävät uusia julkaisuja, ne näkyvät tässä.",
"empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.",
"empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.",
"empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.",
"empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myÃļs seurata muiden palvelimien käyttäjiä",
- "error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.",
+ "error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.",
"error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäkÃļisesti selaimen lisäosasta tai automaattisista käännÃļstyÃļkaluista.",
"error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos se ei auta, voi Mastodonin käyttÃļ ehkä onnistua eri selaimella tai natiivisovelluksella.",
- "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytÃļstä ja päivittää sivu. Jos se ei auta, voit silti käyttää Mastodonia eri selaimen tai sovelluksen kautta.",
+ "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytÃļstä, ja virkistä sitten sivunlataus. Mikäli ongelma jatkuu, voit mahdollisesti käyttää Mastodonia eri selaimella tai natiivilla sovelluksella.",
"errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepÃļydälle",
"errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
"explore.search_results": "Hakutulokset",
@@ -258,13 +255,13 @@
"explore.trending_links": "Uutiset",
"explore.trending_statuses": "Julkaisut",
"explore.trending_tags": "Aihetunnisteet",
- "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske kontekstia, jossa olet tarkastellut tätä julkaisua. Jos haluat, että julkaisu suodatetaan myÃļs tässä kontekstissa, sinun pitää muokata suodatinta.",
- "filter_modal.added.context_mismatch_title": "Konteksti ei täsmää!",
- "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut, joten sinun on muutettava viimeistä voimassaolopäivää, jotta suodatin on voimassa.",
+ "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske asiayhteyttä, jossa olet tarkastellut tätä julkaisua. Jos haluat julkaisun suodatettavan myÃļs tässä asiayhteydessä, muokkaa suodatinta.",
+ "filter_modal.added.context_mismatch_title": "Asiayhteys ei täsmää!",
+ "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut, joten sinun on muutettava viimeistä voimassaolopäivää, jotta suodatusta käytettäisiin.",
"filter_modal.added.expired_title": "Vanhentunut suodatin!",
- "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin kohdassa {settings_link}.",
+ "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin {settings_link}.",
"filter_modal.added.review_and_configure_title": "Suodattimen asetukset",
- "filter_modal.added.settings_link": "asetukset-sivulle",
+ "filter_modal.added.settings_link": "asetussivulla",
"filter_modal.added.short_explanation": "Tämä julkaisu on lisätty seuraavaan suodatinluokkaan: {title}.",
"filter_modal.added.title": "Suodatin lisätty!",
"filter_modal.select_filter.context_mismatch": "ei sovellu tähän kontekstiin",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
"follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnÃļt erikseen.",
+ "follow_suggestions.curated_suggestion": "Päätoimittajan valinta",
+ "follow_suggestions.dismiss": "Ãlä näytä uudelleen",
+ "follow_suggestions.personalized_suggestion": "Personoitu ehdotus",
+ "follow_suggestions.popular_suggestion": "Suosittu ehdotus",
+ "follow_suggestions.view_all": "Näytä kaikki",
+ "follow_suggestions.who_to_follow": "Ehdotuksia seurattavaksi",
"followed_tags": "Seuratut aihetunnisteet",
"footer.about": "Tietoja",
"footer.directory": "Profiilihakemisto",
@@ -306,15 +309,11 @@
"hashtag.follow": "Seuraa aihetunnistetta",
"hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen",
"hashtags.and_other": "âĻja {count, plural, other {# lisää}}",
- "home.actions.go_to_explore": "Katso, mikä on suosittua",
- "home.actions.go_to_suggestions": "LÃļydä seurattavia käyttäjiä",
"home.column_settings.basic": "Perusasetukset",
"home.column_settings.show_reblogs": "Näytä tehostukset",
"home.column_settings.show_replies": "Näytä vastaukset",
- "home.explore_prompt.body": "KotisyÃļtteesi on sekoitus seuraamiasi aihetunnisteita ja käyttäjiä sekä heidän tehostamiaan julkaisuja. Jos se tuntuu liian hiljaiselta, saatat haluta:",
- "home.explore_prompt.title": "Tämä on tukikohtasi Mastodonissa.",
"home.hide_announcements": "Piilota tiedotteet",
- "home.pending_critical_update.body": "Päivitäthän Mastodon-palvelimen mahdollisimman pian!",
+ "home.pending_critical_update.body": "Päivitäthän Mastodon-palvelinohjelmistosi mahdollisimman pian!",
"home.pending_critical_update.link": "Tutustu päivityssisältÃļihin",
"home.pending_critical_update.title": "Kriittinen tietoturvapäivitys saatavilla!",
"home.show_announcements": "Näytä tiedotteet",
@@ -353,7 +352,7 @@
"keyboard_shortcuts.hotkey": "Pikanäppäin",
"keyboard_shortcuts.legend": "Näytä tämä ohje",
"keyboard_shortcuts.local": "Avaa paikallinen aikajana",
- "keyboard_shortcuts.mention": "Mainitse kirjoittaja",
+ "keyboard_shortcuts.mention": "Mainitse julkaisija",
"keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo",
"keyboard_shortcuts.my_profile": "Avaa profiilisi",
"keyboard_shortcuts.notifications": "Avaa ilmoitussarake",
@@ -371,12 +370,12 @@
"keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä",
"keyboard_shortcuts.up": "Siirry listassa ylÃļspäin",
"lightbox.close": "Sulje",
- "lightbox.compress": "Pakkaa kuvan näkymälaatikko",
- "lightbox.expand": "Laajenna kuvan näkymälaatikko",
+ "lightbox.compress": "Tiivis kuvankatselunäkymä",
+ "lightbox.expand": "Laajennettu kuvankatselunäkymä",
"lightbox.next": "Seuraava",
"lightbox.previous": "Edellinen",
"limited_account_hint.action": "Näytä profiili joka tapauksessa",
- "limited_account_hint.title": "Palvelun {domain} valvojat ovat piilottaneet tämän profiilin.",
+ "limited_account_hint.title": "Palvelimen {domain} valvojat ovat piilottaneet tämän käyttäjätilin.",
"link_preview.author": "Julkaissut {name}",
"lists.account.add": "Lisää listalle",
"lists.account.remove": "Poista listalta",
@@ -390,25 +389,24 @@
"lists.replies_policy.list": "Listan jäsenille",
"lists.replies_policy.none": "Ei kellekään",
"lists.replies_policy.title": "Näytä vastaukset:",
- "lists.search": "Etsi seuraamistasi henkilÃļistä",
+ "lists.search": "Etsi seuraamiesi henkilÃļiden keskuudesta",
"lists.subheading": "Omat listasi",
"load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}",
"loading_indicator.label": "LadataanâĻ",
"media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}",
"moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytÃļstä, koska teit siirron tiliin {movedToAccount}.",
"mute_modal.duration": "Kesto",
- "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?",
+ "mute_modal.hide_notifications": "Piilotetaanko tältä käyttäjältä tulevat ilmoitukset?",
"mute_modal.indefinite": "Ikuisesti",
"navigation_bar.about": "Tietoja",
"navigation_bar.advanced_interface": "Avaa edistyneessä selainkäyttÃļliittymässä",
"navigation_bar.blocks": "Estetyt käyttäjät",
"navigation_bar.bookmarks": "Kirjanmerkit",
"navigation_bar.community_timeline": "Paikallinen aikajana",
- "navigation_bar.compose": "Kirjoita uusi julkaisu",
+ "navigation_bar.compose": "Luo uusi julkaisu",
"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",
@@ -430,10 +428,10 @@
"notification.admin.sign_up": "{name} rekisterÃļityi",
"notification.favourite": "{name} lisäsi julkaisusi suosikkeihinsa",
"notification.follow": "{name} seurasi sinua",
- "notification.follow_request": "{name} haluaa seurata sinua",
+ "notification.follow_request": "{name} on pyytänyt lupaa saada seurata sinua",
"notification.mention": "{name} mainitsi sinut",
"notification.own_poll": "Ãänestyksesi on päättynyt",
- "notification.poll": "Ãänestys, johon osallistuit, on päättynyt",
+ "notification.poll": "Kysely, johon osallistuit, on päättynyt",
"notification.reblog": "{name} tehosti julkaisuasi",
"notification.status": "{name} julkaisi juuri",
"notification.update": "{name} muokkasi julkaisua",
@@ -480,13 +478,13 @@
"onboarding.actions.go_to_home": "Siirry kotisyÃļtteeseeni",
"onboarding.compose.template": "Tervehdys #Mastodon!",
"onboarding.follows.empty": "Valitettavasti tuloksia ei voida näyttää juuri nyt. Voit kokeilla hakua tai selata tutustumissivua lÃļytääksesi seurattavaa tai yrittää myÃļhemmin uudelleen.",
- "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.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 milloin tahansa myÃļs lopettaa niiden seuraamisen:",
"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",
@@ -508,7 +506,7 @@
"onboarding.steps.setup_profile.title": "Mukauta profiiliasi",
"onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut lÃļytää Mastodonista",
"onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi",
- "onboarding.tips.2fa": "
TiesitkÃļ? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttÃļÃļn tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttÃļ edellytä puhelinnumeroa!",
+ "onboarding.tips.2fa": "
TiesitkÃļ? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttÃļÃļn tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttÃļ edellytä puhelinnumeron antoa!",
"onboarding.tips.accounts_from_other_servers": "
TiesitkÃļ? Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjänimen jälkiosassa!",
"onboarding.tips.migration": "
TiesitkÃļ? Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännÃļidä omaa palvelintasi!",
"onboarding.tips.verification": "
TiesitkÃļ? Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi lisäkenttään. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä asiakirjoja!",
@@ -523,17 +521,18 @@
"poll.vote": "Ãänestä",
"poll.voted": "Ãänestit tätä vastausta",
"poll.votes": "{votes, plural, one {# ääni} other {# ääntä}}",
- "poll_button.add_poll": "Lisää äänestys",
- "poll_button.remove_poll": "Poista äänestys",
+ "poll_button.add_poll": "Lisää kysely",
+ "poll_button.remove_poll": "Poista kysely",
"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ä on muutoin kuin julkinen julkaisu, mutta sitä ei näytetä livesyÃļte-, aihetunniste- tai selailunäkymissä eikä Mastodon-hakutuloksissakaan, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.",
+ "privacy.unlisted.long": "Vähemmän algoritmiperusteista sisältÃļä",
+ "privacy.unlisted.short": "Vaivihkaisesti julkinen",
"privacy_policy.last_updated": "Viimeksi päivitetty {date}",
"privacy_policy.title": "TietosuojakäytäntÃļ",
"recommended": "Suositeltu",
@@ -551,19 +550,21 @@
"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",
+ "report.categories.legal": "Juridiset tiedot",
"report.categories.other": "Muu",
"report.categories.spam": "Roskaposti",
- "report.categories.violation": "SisältÃļ rikkoo yhtä tai useampaa palvelimen sääntÃļä",
+ "report.categories.violation": "SisältÃļ rikkoo yhtä tai useampaa palvelimen säännÃļistä",
"report.category.subtitle": "Valitse sopivin",
"report.category.title": "Kerro meille, miksi tämä {type} pitää raportoida",
- "report.category.title_account": "profiili",
- "report.category.title_status": "julkaisu",
+ "report.category.title_account": "profiilissa",
+ "report.category.title_status": "julkaisussa",
"report.close": "Valmis",
- "report.comment.title": "Olisiko jotain muuta, mitä meidän pitäisi tietää?",
+ "report.comment.title": "Onko vielä jotain muuta, mitä meidän pitäisi tietää?",
"report.forward": "Välitä kohteeseen {target}",
"report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettÃļmän raportin myÃļs sinne?",
"report.mute": "Mykistä",
@@ -571,18 +572,18 @@
"report.next": "Seuraava",
"report.placeholder": "Lisäkommentit",
"report.reasons.dislike": "En pidä siitä",
- "report.reasons.dislike_description": "Et halua nähdä sitä",
+ "report.reasons.dislike_description": "SisältÃļ on sen tyyppistä, ettet halua nähdä sitä",
"report.reasons.legal": "Se on laitonta",
"report.reasons.legal_description": "Katsot sisällÃļn rikkovan maasi tai palvelimen kotimaan lakeja",
"report.reasons.other": "Jotain muuta",
- "report.reasons.other_description": "Ongelma ei sovi muihin kategorioihin",
+ "report.reasons.other_description": "Muut raportointisyyt eivät kuvaa ongelmaa",
"report.reasons.spam": "Se on roskapostia",
- "report.reasons.spam_description": "Haitalliset linkit, väärennetyt sitoutumiset tai toistuvat vastaukset",
+ "report.reasons.spam_description": "Haitalliset linkit, henkilÃļväärennÃļkset tai itseään toistavat vastaukset",
"report.reasons.violation": "Se rikkoo palvelimen sääntÃļjä",
- "report.reasons.violation_description": "Tiedät, että se rikkoo tiettyjä sääntÃļjä",
+ "report.reasons.violation_description": "Tiedät sisällÃļn rikkovan tiettyjä sääntÃļjä",
"report.rules.subtitle": "Valitse kaikki sopivat",
"report.rules.title": "Mitä sääntÃļjä rikotaan?",
- "report.statuses.subtitle": "Valitse kaikki sopivat",
+ "report.statuses.subtitle": "Valitse kaikki soveltuvat julkaisut",
"report.statuses.title": "Onko julkaisuja, jotka tukevat tätä raporttia?",
"report.submit": "Lähetä",
"report.target": "Raportoidaan {target}",
@@ -596,32 +597,32 @@
"report_notification.categories.legal": "Laillinen",
"report_notification.categories.other": "Muu",
"report_notification.categories.spam": "Roskaposti",
- "report_notification.categories.violation": "SääntÃļjen rikkominen",
+ "report_notification.categories.violation": "SääntÃļrikkomus",
"report_notification.open": "Avaa raportti",
"search.no_recent_searches": "Ei viimeaikaisia hakuja",
"search.placeholder": "Hae",
"search.quick_action.account_search": "Profiilit haulla {x}",
"search.quick_action.go_to_account": "Siirry profiiliin {x}",
"search.quick_action.go_to_hashtag": "Siirry aihetunnisteeseen {x}",
- "search.quick_action.open_url": "Avaa URL-osoite Mastodonissa",
+ "search.quick_action.open_url": "Avaa verkko-osoite Mastodonissa",
"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",
"search_popout.recent": "Viimeaikaiset haut",
- "search_popout.specific_date": "tarkka päiväys",
+ "search_popout.specific_date": "tietty päivämäärä",
"search_popout.user": "käyttäjä",
"search_results.accounts": "Profiilit",
"search_results.all": "Kaikki",
"search_results.hashtags": "Aihetunnisteet",
- "search_results.nothing_found": "Näille hakusanoille ei lÃļytynyt mitään",
+ "search_results.nothing_found": "Hakusi ei tuottanut tuloksia",
"search_results.see_all": "Näytä kaikki",
"search_results.statuses": "Julkaisut",
"search_results.title": "Hae {q}",
- "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)",
+ "server_banner.about_active_users": "Palvelimen käyttäjät viimeisten 30 päivän ajalta (kuukauden aktiiviset käyttäjät)",
"server_banner.active_users": "aktiivista käyttäjää",
"server_banner.administered_by": "Ylläpitäjä:",
"server_banner.introduction": "{domain} kuuluu hajautettuun sosiaaliseen verkostoon, jonka voimanlähde on {mastodon}.",
@@ -658,7 +659,7 @@
"status.media.show": "Napsauta näyttääksesi",
"status.media_hidden": "Media piilotettu",
"status.mention": "Mainitse @{name}",
- "status.more": "Lisää",
+ "status.more": "Enemmän",
"status.mute": "Mykistä @{name}",
"status.mute_conversation": "Mykistä keskustelu",
"status.open": "Laajenna julkaisu",
@@ -680,14 +681,14 @@
"status.show_filter_reason": "Näytä joka tapauksessa",
"status.show_less": "Näytä vähemmän",
"status.show_less_all": "Näytä kaikista vähemmän",
- "status.show_more": "Näytä lisää",
+ "status.show_more": "Näytä enemmän",
"status.show_more_all": "Näytä kaikista enemmän",
"status.show_original": "Näytä alkuperäinen",
"status.title.with_attachments": "{user} liitti {attachmentCount, plural, one {{attachmentCount} tiedoston} other {{attachmentCount} tiedostoa}}",
"status.translate": "Käännä",
- "status.translated_from_with": "Käännetty kielestä {lang} käyttäen {provider}",
+ "status.translated_from_with": "Käännetty kielestä {lang} käyttäen palvelua {provider}",
"status.uncached_media_warning": "Esikatselu ei ole käytettävissä",
- "status.unmute_conversation": "Poista keskustelun mykistys",
+ "status.unmute_conversation": "Kumoa keskustelun mykistys",
"status.unpin": "Irrota profiilista",
"subscribed_languages.lead": "Vain valituilla kielillä kirjoitetut julkaisut näkyvät koti- ja lista-aikajanoillasi muutoksen jälkeen. Ãlä valitse mitään, jos haluat nähdä julkaisuja kaikilla kielillä.",
"subscribed_languages.save": "Tallenna muutokset",
@@ -697,9 +698,9 @@
"time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä",
"time_remaining.hours": "{number, plural, one {# tunti} other {# tuntia}} jäljellä",
"time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä",
- "time_remaining.moments": "Hetki jäljellä",
+ "time_remaining.moments": "Hetkiä jäljellä",
"time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä",
- "timeline_hint.remote_resource_not_displayed": "{resource} muilta palvelimilta ei näytetä.",
+ "timeline_hint.remote_resource_not_displayed": "Muiden palvelinten {resource}-tietoa ei näytetä täällä.",
"timeline_hint.resources.followers": "Seuraajat",
"timeline_hint.resources.follows": "seurattua",
"timeline_hint.resources.statuses": "Vanhemmat julkaisut",
@@ -712,25 +713,23 @@
"upload_area.title": "Lataa raahaamalla ja pudottamalla tähän",
"upload_button.label": "Lisää kuvia, video tai äänitiedosto",
"upload_error.limit": "Tiedostolatauksien rajoitus ylitetty.",
- "upload_error.poll": "Tiedoston lataaminen ei ole sallittua äänestyksissä.",
+ "upload_error.poll": "Tiedostojen lisääminen ei ole sallittua kyselyjen ohessa.",
"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.thumbnail": "Vaihda pienoiskuva",
"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ä",
- "upload_modal.applying": "AsetetaanâĻ",
+ "upload_modal.applying": "Otetaan käyttÃļÃļnâĻ",
"upload_modal.choose_image": "Valitse kuva",
"upload_modal.description_placeholder": "Nopea ruskea kettu hyppää laiskan koiran yli",
"upload_modal.detect_text": "Tunnista teksti kuvasta",
"upload_modal.edit_media": "Muokkaa mediaa",
- "upload_modal.hint": "Klikkaa tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.",
+ "upload_modal.hint": "Napsauta tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.",
"upload_modal.preparing_ocr": "Valmistellaan tekstintunnistustaâĻ",
"upload_modal.preview_label": "Esikatselu ({ratio})",
- "upload_progress.label": "Ladataan...",
+ "upload_progress.label": "Tallennetaan...",
"upload_progress.processing": "KäsitelläänâĻ",
"username.taken": "Käyttäjänimi on jo varattu. Kokeile toista",
"video.close": "Sulje video",
@@ -740,7 +739,7 @@
"video.fullscreen": "Koko näyttÃļ",
"video.hide": "Piilota video",
"video.mute": "Mykistä ääni",
- "video.pause": "Keskeytä",
+ "video.pause": "Tauko",
"video.play": "Toista",
"video.unmute": "Palauta ääni"
}
diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json
index ec27c8f60e..b677f9d197 100644
--- a/app/javascript/mastodon/locales/fil.json
+++ b/app/javascript/mastodon/locales/fil.json
@@ -27,6 +27,7 @@
"account.featured_tags.last_status_never": "Walang mga post",
"account.featured_tags.title": "Nakatampok na hashtag ni {name}",
"account.follow": "Sundan",
+ "account.follow_back": "Sundan pabalik",
"account.followers": "Mga tagasunod",
"account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.",
"account.following": "Sinusundan",
@@ -41,6 +42,11 @@
"account.media": "Medya",
"account.mention": "Banggitin si @{name}",
"account.moved_to": "Ipinahihiwatig ni {name} na ang kanilang bagong account ngayon ay:",
+ "account.open_original_page": "Buksan ang pinagmulang pahina",
+ "account.report": "I-ulat si/ang @{name}",
+ "account.requested_follow": "Hinihiling ni {name} na sundan ka",
+ "account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}",
+ "admin.dashboard.retention.cohort_size": "Mga bagong tagagamit",
"bundle_column_error.error.title": "Naku!",
"bundle_column_error.network.body": "Nagkaroon ng kamalian habang sinusubukang i-karga ang pahinang ito. Maaaring dahil ito sa pansamantalang problema ng iyong koneksyon sa internet o ang server na ito.",
"bundle_column_error.network.title": "Kamaliang network",
@@ -91,6 +97,19 @@
"compose_form.direct_message_warning_learn_more": "Matuto pa",
"compose_form.encryption_warning": "Ang mga post sa Mastodon ay hindi naka-encrypt nang dulo-dulo. Huwag magbahagi ng anumang sensitibong impormasyon sa Mastodon.",
"compose_form.hashtag_warning": "Hindi maililista ang post na ito sa anumang hashtag dahil hindi ito nakapubliko. Mga nakapublikong post lamang ang mahahanap ayon sa hashtag.",
+ "compose_form.placeholder": "Anong nangyari?",
+ "compose_form.poll.single": "Piliin ang isa",
+ "compose_form.reply": "Tumugon",
+ "compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman",
+ "confirmation_modal.cancel": "Pagpaliban",
+ "confirmations.block.block_and_report": "Harangan at i-ulat",
+ "confirmations.block.confirm": "Harangan",
+ "confirmations.block.message": "Sigurado ka bang gusto mong harangan si {name}?",
+ "confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan",
+ "confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?",
+ "confirmations.domain_block.confirm": "Harangan ang buong domain",
+ "confirmations.edit.confirm": "Baguhin",
+ "confirmations.reply.confirm": "Tumugon",
"copy_icon_button.copied": "Sinipi sa clipboard",
"copypaste.copied": "Sinipi",
"copypaste.copy_to_clipboard": "I-sipi sa clipboard",
@@ -140,5 +159,68 @@
"empty_column.hashtag": "Wala pang laman ang hashtag na ito.",
"empty_column.home": "Walang laman ang timeline ng tahanan mo! Sumunod sa marami pang tao para mapunan ito.",
"empty_column.list": "Wala pang laman ang listahang ito. Kapag naglathala ng mga bagong post ang mga miyembro ng listahang ito, makikita iyon dito.",
- "empty_column.lists": "Wala ka pang mga listahan. Kapag gumawa ka ng isa, makikita yun dito."
+ "empty_column.lists": "Wala ka pang mga listahan. Kapag gumawa ka ng isa, makikita yun dito.",
+ "explore.search_results": "Mga resulta ng paghahanap",
+ "firehose.all": "Lahat",
+ "firehose.local": "Itong serbiro",
+ "firehose.remote": "Ibang mga serbiro",
+ "follow_request.authorize": "Tanggapin",
+ "follow_request.reject": "Tanggihan",
+ "follow_suggestions.dismiss": "Huwag nang ipakita muli",
+ "follow_suggestions.view_all": "Tingnan lahat",
+ "follow_suggestions.who_to_follow": "Sinong maaaring sundan",
+ "footer.about": "Tungkol dito",
+ "footer.get_app": "Kunin ang app",
+ "generic.saved": "Nakaimbak",
+ "hashtag.column_header.tag_mode.all": "at {additional}",
+ "hashtag.column_header.tag_mode.any": "o {additional}",
+ "home.pending_critical_update.body": "Mangyaring i-update ang iyong serbiro ng Mastodon sa lalong madaling panahon!",
+ "interaction_modal.no_account_yet": "Wala sa Mastodon?",
+ "interaction_modal.on_another_server": "Sa ibang serbiro",
+ "interaction_modal.on_this_server": "Sa serbirong ito",
+ "interaction_modal.title.follow": "Sundan si {name}",
+ "keyboard_shortcuts.description": "Paglalarawan",
+ "keyboard_shortcuts.down": "Ilipat pababa sa talaan",
+ "keyboard_shortcuts.requests": "Buksan ang talaan ng mga kahilingan sa pagsunod",
+ "keyboard_shortcuts.up": "Ilipat pataas sa talaan",
+ "lightbox.close": "Isara",
+ "lightbox.next": "Susunod",
+ "lightbox.previous": "Nakaraan",
+ "lists.new.create": "Idagdag sa talaan",
+ "lists.new.title_placeholder": "Bagong pangalan ng talaan",
+ "lists.replies_policy.title": "Ipakita ang mga tugon sa:",
+ "lists.subheading": "Iyong mga talaan",
+ "navigation_bar.about": "Tungkol dito",
+ "navigation_bar.blocks": "Nakaharang na mga tagagamit",
+ "navigation_bar.favourites": "Mga paborito",
+ "navigation_bar.lists": "Mga listahan",
+ "notification.admin.report": "Iniulat ni {name} si {target}",
+ "notification.follow": "Sinundan ka ni {name}",
+ "notification.follow_request": "Hinihiling ni {name} na sundan ka",
+ "notifications.column_settings.admin.report": "Mga bagong ulat:",
+ "notifications.column_settings.favourite": "Mga paborito:",
+ "notifications.column_settings.follow": "Mga bagong tagasunod:",
+ "notifications.filter.all": "Lahat",
+ "onboarding.action.back": "Ibalik mo ako",
+ "onboarding.actions.back": "Ibalik mo ako",
+ "onboarding.share.next_steps": "Mga posibleng susunod na hakbang:",
+ "poll.voted": "Binoto mo para sa sagot na ito",
+ "relative_time.full.just_now": "ngayon lang",
+ "relative_time.just_now": "ngayon",
+ "reply_indicator.cancel": "Ipagpaliban",
+ "report.block": "Harangan",
+ "report.categories.other": "Iba pa",
+ "report.close": "Tapos na",
+ "report.next": "Sunod",
+ "server_banner.learn_more": "Matuto nang higit pa",
+ "status.more": "Higit pa",
+ "status.reply": "Tumugon",
+ "status.share": "Ibahagi",
+ "status.show_less": "Magpakita ng mas kaunti",
+ "status.show_less_all": "Magpakita ng mas kaunti para sa lahat",
+ "status.show_more": "Magpakita ng higit pa",
+ "status.show_more_all": "Magpakita ng higit pa para sa lahat",
+ "status.translate": "Isalin",
+ "status.translated_from_with": "Isalin mula sa {lang} gamit ang {provider}",
+ "status.uncached_media_warning": "Hindi makuha ang paunang tigin"
}
diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json
index 9259f20154..abd2ab2681 100644
--- a/app/javascript/mastodon/locales/fo.json
+++ b/app/javascript/mastodon/locales/fo.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"compose_form.lock_disclaimer": "Kontoin hjÃĄ tÃĻr er ikki {locked}. Ãll kunnu fylgja tÃĻr og lesa tað, tÃē bert letur fyljgarar lesa.",
"compose_form.lock_disclaimer.lock": "lÃĻst",
"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.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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Veit myndugleika",
"follow_request.reject": "Nokta",
"follow_requests.unlocked_explanation": "SjÃĄlvt um konta tÃn ikki er lÃĻst, so hugsa {domain} starvsfÃŗlkini, at tÃē kanska hevur hug at kanna umbønir um at fylgja frÃĄ hesum kontum við hond.",
+ "follow_suggestions.curated_suggestion": "Val umsjÃŗnarfÃŗlksins",
+ "follow_suggestions.dismiss": "Lat vera við at vÃsa",
+ "follow_suggestions.personalized_suggestion": "PersÃŗnligt uppskot",
+ "follow_suggestions.popular_suggestion": "VÃĻlumtÃŗkt uppskot",
+ "follow_suggestions.view_all": "VÃs øll",
+ "follow_suggestions.who_to_follow": "Hvørji tÃē ÃĄtti at fylgt",
"followed_tags": "Fylgd frÃĄmerki",
"footer.about": "Um",
"footer.directory": "VangaskrÃĄ",
@@ -306,13 +309,9 @@
"hashtag.follow": "Fylg frÃĄmerki",
"hashtag.unfollow": "Gevst at fylgja frÃĄmerki",
"hashtags.and_other": "âĻog {count, plural, other {# afturat}}",
- "home.actions.go_to_explore": "Sà rÃĄkið",
- "home.actions.go_to_suggestions": "Finn fÃŗlk at fylgja",
"home.column_settings.basic": "Grundleggjandi",
"home.column_settings.show_reblogs": "VÃs lyft",
"home.column_settings.show_replies": "VÃs svar",
- "home.explore_prompt.body": "HeimarÃĄsin fer at hava eitt bland av postum frÃĄ frÃĄmerkjunum, sum tÃē hevur valt at fylgja, brÃēkarunum, tÃē hevur valt at fylgja, og postunum, sum tey stimbra. Um tað kennist ov friðarligt, so kanst tÃē:",
- "home.explore_prompt.title": "Hetta er tÃn heimastøð à Mastodon.",
"home.hide_announcements": "Fjal kunngerðir",
"home.pending_critical_update.body": "Vinarliga dagfør Mastodon ambÃĻtaran hjÃĄ tÃĻr so skjÃŗtt sum møguligt!",
"home.pending_critical_update.link": "Sà dagføringar",
@@ -393,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",
@@ -407,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ð",
@@ -483,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:",
@@ -516,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",
@@ -541,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",
@@ -705,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 96%
rename from app/javascript/mastodon/locales/fr-QC.json
rename to app/javascript/mastodon/locales/fr-CA.json
index f2d99412d2..49db30d75e 100644
--- a/app/javascript/mastodon/locales/fr-QC.json
+++ b/app/javascript/mastodon/locales/fr-CA.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.multiple": "Choix multiple",
+ "compose_form.poll.option_placeholder": "Option {number}",
+ "compose_form.poll.single": "Choisissez-en un",
"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.poll.type": "Style",
"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.reply": "RÊpondre",
+ "compose_form.save_changes": "Mis à jour",
"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",
+ "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)",
"confirmation_modal.cancel": "Annuler",
"confirmations.block.block_and_report": "Bloquer et signaler",
"confirmations.block.confirm": "Bloquer",
@@ -306,13 +303,9 @@
"hashtag.follow": "Suivre ce hashtag",
"hashtag.unfollow": "Ne plus suivre ce hashtag",
"hashtags.and_other": "âĻet {count, plural, other {# de plus}}",
- "home.actions.go_to_explore": "Voir les tendances",
- "home.actions.go_to_suggestions": "Trouver des personnes à suivre",
"home.column_settings.basic": "Basique",
"home.column_settings.show_reblogs": "Afficher boosts",
"home.column_settings.show_replies": "Afficher rÊponses",
- "home.explore_prompt.body": "Votre fil d'actualitÊ aura un mÊlange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'elles boostent. Si ça vous semble trop calme à votre goÃģt, nâhÊsitez pas à  :",
- "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.",
"home.hide_announcements": "Masquer les annonces",
"home.pending_critical_update.body": "Veuillez mettre à jour votre serveur Mastodon dès que possible !",
"home.pending_critical_update.link": "Voir les mises à jour",
@@ -408,7 +401,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",
@@ -526,14 +518,15 @@
"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.direct.long": "Toutes les personnes mentionnÊes dans le post",
+ "privacy.direct.short": "Personnes spÊcifiques",
+ "privacy.private.long": "Seulement vos abonnÊs",
+ "privacy.private.short": "AbonnÊs",
+ "privacy.public.long": "Tout le monde sur et en dehors de Mastodon",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalitÊs de dÊcouverte",
- "privacy.unlisted.short": "Non listÊ",
+ "privacy.unlisted.additional": "Cette option se comporte exactement comme l'option publique, sauf que le message n'apparaÃŽtra pas dans les flux en direct, les hashtags, l'exploration ou la recherche Mastodon, mÃĒme si vous avez optÊ pour l'option publique pour l'ensemble de votre compte.",
+ "privacy.unlisted.long": "Moins de fanfares algorithmiques",
+ "privacy.unlisted.short": "Public calme",
"privacy_policy.last_updated": "Dernière mise à jour {date}",
"privacy_policy.title": "Politique de confidentialitÊ",
"recommended": "RecommandÊ",
@@ -551,7 +544,9 @@
"relative_time.minutes": "{number} min",
"relative_time.seconds": "{number} s",
"relative_time.today": "aujourdâhui",
+ "reply_indicator.attachments": "{count, plural, one {# pièce jointe} other {# pièces jointes}}",
"reply_indicator.cancel": "Annuler",
+ "reply_indicator.poll": "Sondage",
"report.block": "Bloquer",
"report.block_explanation": "Vous ne verrez plus les publications de ce compte. Il ne pourra ni vous suivre ni voir vos publications. Il pourra savoir qu'il a ÊtÊ bloquÊ.",
"report.categories.legal": "LÊgal",
@@ -715,10 +710,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 774702f98c..1f657c8185 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.multiple": "Choix multiple",
+ "compose_form.poll.option_placeholder": "Option {number}",
+ "compose_form.poll.single": "Choisissez-en un",
"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.poll.type": "Style",
"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.reply": "RÊpondre",
+ "compose_form.save_changes": "Mis à jour",
"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",
+ "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)",
"confirmation_modal.cancel": "Annuler",
"confirmations.block.block_and_report": "Bloquer et signaler",
"confirmations.block.confirm": "Bloquer",
@@ -306,13 +303,9 @@
"hashtag.follow": "Suivre le hashtag",
"hashtag.unfollow": "Ne plus suivre le hashtag",
"hashtags.and_other": "âĻet {count, plural, other {# de plus}}",
- "home.actions.go_to_explore": "Voir les tendances",
- "home.actions.go_to_suggestions": "Trouver des personnes à suivre",
"home.column_settings.basic": "Basique",
"home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les rÊponses",
- "home.explore_prompt.body": "Votre fil d'actualitÊ aura un mÊlange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'elles boostent. Si ça vous semble trop calme à votre goÃģt, nâhÊsitez pas à  :",
- "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.",
"home.hide_announcements": "Masquer les annonces",
"home.pending_critical_update.body": "Veuillez mettre à jour votre serveur Mastodon dès que possible !",
"home.pending_critical_update.link": "Voir les mises à jour",
@@ -408,7 +401,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",
@@ -526,14 +518,15 @@
"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.direct.long": "Toutes les personnes mentionnÊes dans le post",
+ "privacy.direct.short": "Personnes spÊcifiques",
+ "privacy.private.long": "Seulement vos abonnÊs",
+ "privacy.private.short": "AbonnÊs",
+ "privacy.public.long": "Tout le monde sur et en dehors de Mastodon",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalitÊs de dÊcouverte",
- "privacy.unlisted.short": "Non listÊ",
+ "privacy.unlisted.additional": "Cette option se comporte exactement comme l'option publique, sauf que le message n'apparaÃŽtra pas dans les flux en direct, les hashtags, l'exploration ou la recherche Mastodon, mÃĒme si vous avez optÊ pour l'option publique pour l'ensemble de votre compte.",
+ "privacy.unlisted.long": "Moins de fanfares algorithmiques",
+ "privacy.unlisted.short": "Public calme",
"privacy_policy.last_updated": "Dernière mise à jour {date}",
"privacy_policy.title": "Politique de confidentialitÊ",
"recommended": "RecommandÊ",
@@ -551,7 +544,9 @@
"relative_time.minutes": "{number} min",
"relative_time.seconds": "{number} s",
"relative_time.today": "aujourdâhui",
+ "reply_indicator.attachments": "{count, plural, one {# pièce jointe} other {# pièces jointes}}",
"reply_indicator.cancel": "Annuler",
+ "reply_indicator.poll": "Sondage",
"report.block": "Bloquer",
"report.block_explanation": "Vous ne verrez plus les messages de ce profil, et il ne pourra ni vous suivre ni voir vos messages. Il pourra savoir qu'il a ÊtÊ bloquÊ.",
"report.categories.legal": "LÊgal",
@@ -715,10 +710,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 ea42ef91c0..9bd5327c8f 100644
--- a/app/javascript/mastodon/locales/fy.json
+++ b/app/javascript/mastodon/locales/fy.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.multiple": "Mearkar",
+ "compose_form.poll.option_placeholder": "Opsje {number}",
+ "compose_form.poll.single": "Kies ien",
"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.poll.type": "Styl",
+ "compose_form.publish": "Toot",
"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.reply": "Reagearje",
+ "compose_form.save_changes": "Bywurkje",
"compose_form.spoiler.marked": "YnhÃĸldswarskôging fuortsmite",
"compose_form.spoiler.unmarked": "YnhÃĸldswarskôging tafoegje",
- "compose_form.spoiler_placeholder": "Warskôgingstekst",
+ "compose_form.spoiler_placeholder": "YnhÃĸldswarskôging (opsjoneel)",
"confirmation_modal.cancel": "Annulearje",
"confirmations.block.block_and_report": "Blokkearje en rapportearje",
"confirmations.block.confirm": "Blokkearje",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Goedkarre",
"follow_request.reject": "Wegerje",
"follow_requests.unlocked_explanation": "Ek al is jo account net besletten, de meiwurkers fan {domain} tinke dat jo miskien de folgjende folchfersiken hÃĸnmjittich kontrolearje.",
+ "follow_suggestions.curated_suggestion": "Kar fan de moderator",
+ "follow_suggestions.dismiss": "Net mear werjaan",
+ "follow_suggestions.personalized_suggestion": "Personalisearre suggestje",
+ "follow_suggestions.popular_suggestion": "PopulÃĒre suggestje",
+ "follow_suggestions.view_all": "Alles werjaan",
+ "follow_suggestions.who_to_follow": "Wa te folgjen",
"followed_tags": "Folge hashtags",
"footer.about": "Oer",
"footer.directory": "Profylmap",
@@ -306,13 +309,9 @@
"hashtag.follow": "Hashtag folgje",
"hashtag.unfollow": "Hashtag Ãģntfolgje",
"hashtags.and_other": "âĻen {count, plural, one {}other {# mear}}",
- "home.actions.go_to_explore": "De aktuele trends besjen",
- "home.actions.go_to_suggestions": "Sykje minsken om te folgjen",
"home.column_settings.basic": "Algemien",
"home.column_settings.show_reblogs": "Boosts toane",
"home.column_settings.show_replies": "Reaksjes toane",
- "home.explore_prompt.body": "Jo starttiidline befettet in miks fan berjochten mei hashtags dyât jo keazen hawwe om te folgjen, fan minsken dyât jo keazen hawwe om te folgjen en berjochten dyât se booste. As jo dit te rÃĒstich fine, kinne jo:",
- "home.explore_prompt.title": "Dit is jo thÃēsbasis op Mastodon.",
"home.hide_announcements": "Meidielingen ferstopje",
"home.pending_critical_update.body": "Fernij sa gau as mooglik jo Mastodon-server!",
"home.pending_critical_update.link": "Fernijingen besjen",
@@ -408,7 +407,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",
@@ -526,13 +524,14 @@
"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.direct.long": "Elkenien dyâ yn it berjocht fermeld wurdt",
+ "privacy.direct.short": "Bepaalde minsken",
+ "privacy.private.long": "Allinnich jo folgers",
+ "privacy.private.short": "Folgers",
+ "privacy.public.long": "Elkenien op Mastodon en dÃĒrbÃģten",
"privacy.public.short": "Iepenbier",
- "privacy.unlisted.long": "Foar elkenien sichtber, mar net Ãģnder trends, hashtags en op iepenbiere tiidlinen",
+ "privacy.unlisted.additional": "Dit is fergelykber mei iepenbier, Ãētsein dat it berjocht net ferskynt op iepenbiere tiidlijnen of hashtags, Ãģnder ferkenne of Mastodon sykje, sels as jo jo account dÃĒrfoar ynsteld hawwe.",
+ "privacy.unlisted.long": "Minder algoritmyske fanfare",
"privacy.unlisted.short": "Minder iepenbier",
"privacy_policy.last_updated": "LÃĒst bywurke op {date}",
"privacy_policy.title": "Privacybelied",
@@ -551,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hjoed",
+ "reply_indicator.attachments": "{count, plural, one {# bylage} other {# bylagen}}",
"reply_indicator.cancel": "Annulearje",
+ "reply_indicator.poll": "Peiling",
"report.block": "Blokkearje",
"report.block_explanation": "Jo sille harren berjochten net sjen kinne. Se sille jo berjochten net sjen kinne en jo net folgje kinne. Se sille wol sjen kinne dat se blokkearre binne.",
"report.categories.legal": "Juridysk",
@@ -715,10 +716,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 f0f9c55549..329286277d 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -76,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Ã.",
@@ -127,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",
@@ -234,6 +226,12 @@
"follow_request.authorize": "Ceadaigh",
"follow_request.reject": "DiÃēltaigh",
"follow_requests.unlocked_explanation": "CÊ nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat sÃēil siar ar iarratais leanÃēnaà as na cuntais seo.",
+ "follow_suggestions.curated_suggestion": "Rogha an eagarthÃŗra",
+ "follow_suggestions.dismiss": "NÃĄ taispeÃĄin arÃs",
+ "follow_suggestions.personalized_suggestion": "Nod pearsantaithe",
+ "follow_suggestions.popular_suggestion": "Nod coiteann",
+ "follow_suggestions.view_all": "FÊach uile",
+ "follow_suggestions.who_to_follow": "CÊ le leanÃēint",
"footer.about": "Maidir le",
"footer.directory": "Eolaire prÃŗifÃlÃ",
"footer.get_app": "Faigh an aip",
@@ -325,7 +323,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Ã",
@@ -401,12 +398,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âĻ",
@@ -529,7 +521,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 11d83d6ceb..47b1e23192 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -21,6 +21,7 @@
"account.blocked": "âGa bhacadh",
"account.browse_more_on_origin_server": "RÚraich barrachd dheth air aâ phrÃ˛ifil thÚsail",
"account.cancel_follow_request": "Sguir dhen leantainn",
+ "account.copy": "Dèan lethbhreac dhen cheangal dhan phrÃ˛ifil",
"account.direct": "Thoir iomradh air @{name} gu prÃŦobhaideach",
"account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris",
"account.domain_blocked": "Chaidh an à rainn a bhacadh",
@@ -31,6 +32,7 @@
"account.featured_tags.last_status_never": "Gun phost",
"account.featured_tags.title": "Na tagaichean hais brosnaichte aig {name}",
"account.follow": "Lean",
+ "account.follow_back": "Lean air ais",
"account.followers": "Luchd-leantainn",
"account.followers.empty": "Chan eil neach sam bith aâ leantainn air aâ chleachdaiche seo fhathast.",
"account.followers_counter": "{count, plural, one {{counter} neach-leantainn} two {{counter} neach-leantainn} few {{counter} luchd-leantainn} other {{counter} luchd-leantainn}}",
@@ -51,6 +53,7 @@
"account.mute_notifications_short": "MÚch na brathan",
"account.mute_short": "MÚch",
"account.muted": "âGa mhÚchadh",
+ "account.mutual": "Co-dhà imh",
"account.no_bio": "Cha deach tuairisgeul a sholar.",
"account.open_original_page": "Fosgail an duilleag thÚsail",
"account.posts": "Postaichean",
@@ -86,7 +89,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.",
@@ -143,22 +145,20 @@
"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.multiple": "Iomadh roghainn",
"compose_form.poll.option_placeholder": "Roghainn {number}",
- "compose_form.poll.remove_option": "Thoir an roghainn seo air falbh",
+ "compose_form.poll.single": "Tagh aonan",
"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.poll.type": "Stoidhle",
+ "compose_form.publish": "Postaich",
"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.reply": "Freagair",
+ "compose_form.save_changes": "Ãraich",
"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",
+ "compose_form.spoiler_placeholder": "Rabhadh susbainte (roghainneil)",
"confirmation_modal.cancel": "Sguir dheth",
"confirmations.block.block_and_report": "Bac â dèan gearan",
"confirmations.block.confirm": "Bac",
@@ -190,6 +190,7 @@
"conversation.mark_as_read": "Cuir comharra gun deach a leughadh",
"conversation.open": "Seall an cÃ˛mhradh",
"conversation.with": "CÃ˛mhla ri {names}",
+ "copy_icon_button.copied": "Chaidh lethbhreac dheth a chur air an stÃ˛r-bhÃ˛rd",
"copypaste.copied": "Chaidh lethbhreac dheth a dhèanamh",
"copypaste.copy_to_clipboard": "Cuir lethbhreac dheth air an stÃ˛r-bhÃ˛rd",
"directory.federated": "On cho-shaoghal aithnichte",
@@ -221,6 +222,7 @@
"emoji_button.search_results": "Toraidhean an luirg",
"emoji_button.symbols": "Samhlaidhean",
"emoji_button.travel": "Siubhal â Ã itichean",
+ "empty_column.account_hides_collections": "Chuir an cleachdaiche seo roimhe nach eil am fiosrachadh seo ri fhaighinn",
"empty_column.account_suspended": "Chaidh an cunntas a chur à rèim",
"empty_column.account_timeline": "Chan eil post an-seo!",
"empty_column.account_unavailable": "Chan eil aâ phrÃ˛ifil ri là imh",
@@ -275,6 +277,12 @@
"follow_request.authorize": "Ãghdarraich",
"follow_request.reject": "DiÚlt",
"follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum bâ fheà irrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a là imh.",
+ "follow_suggestions.curated_suggestion": "Roghainn an deasaiche",
+ "follow_suggestions.dismiss": "Na seall seo a-rithist",
+ "follow_suggestions.personalized_suggestion": "Moladh pearsanaichte",
+ "follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhÃ˛r",
+ "follow_suggestions.view_all": "Seall na h-uile",
+ "follow_suggestions.who_to_follow": "CÃ˛ a leanas tu",
"followed_tags": "Tagaichean hais âgan leantainn",
"footer.about": "Mu dhèidhinn",
"footer.directory": "EÃ˛laire nam prÃ˛ifil",
@@ -301,13 +309,9 @@
"hashtag.follow": "Lean an taga hais",
"hashtag.unfollow": "Na lean an taga hais tuilleadh",
"hashtags.and_other": "âĻagus {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}",
- "home.actions.go_to_explore": "Faic na tha aâ treandadh",
- "home.actions.go_to_suggestions": "Lorg daoine gus an leantainn",
"home.column_settings.basic": "Bunasach",
"home.column_settings.show_reblogs": "Seall na brosnachaidhean",
"home.column_settings.show_replies": "Seall na freagairtean",
- "home.explore_prompt.body": "Bidh measgachadh de phostaichean o na tagaichean hais a leanas tu, na daoine a leanas tu is na postaichean a bhrosnaicheas iad air do dhachaigh. Ma tha cÚisean ro shà mhach dhut, seo nas urrainn dhut a dhèanamh:",
- "home.explore_prompt.title": "Seo do dhachaigh am broinn Mastodon.",
"home.hide_announcements": "Falaich na brathan-fios",
"home.pending_critical_update.body": "Ãraich am frithealaiche Mastodon agad cho luath âs a ghabhas!",
"home.pending_critical_update.link": "Faic na h-Úrachaidhean",
@@ -388,6 +392,7 @@
"lists.search": "Lorg am measg nan daoine a leanas tu",
"lists.subheading": "Na liostaichean agad",
"load_pending": "{count, plural, one {# nÃŦ Úr} two {# nÃŦ Úr} few {# nithean Úra} other {# nÃŦ Úr}}",
+ "loading_indicator.label": "âGa luchdadhâĻ",
"media_gallery.toggle_visible": "{number, plural, 1 {Falaich an dealbh} one {Falaich na dealbhan} two {Falaich na dealbhan} few {Falaich na dealbhan} other {Falaich na dealbhan}}",
"moved_to_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas on a rinn thu imrich gu {movedToAccount}.",
"mute_modal.duration": "Faide",
@@ -402,7 +407,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",
@@ -476,6 +480,15 @@
"onboarding.follows.empty": "Gu mÃŦ-fhortanach, chan urrainn dhuinn toradh a shealltainn an-drà sta. Feuch gleus an luirg no duilleag an rÚrachaidh airson daoine ri leantainn a lorg no feuch ris a-rithist an ceann tamaill.",
"onboarding.follows.lead": "âS e do prÃŦomh-doras do Mhastodon a thâ ann san dachaigh. Mar as motha an t-uiread de dhaoine a leanas tu âs ann nas beÃ˛thaile inntinniche a bhios i. Seo moladh no dhà dhut airson tÃ˛iseachadh:",
"onboarding.follows.title": "Cuir dreach pearsanta air do dhachaigh",
+ "onboarding.profile.discoverable": "Bu mhath leam gun gabh aâ phrÃ˛ifil agam a lorg",
+ "onboarding.profile.display_name": "Ainm-taisbeanaidh",
+ "onboarding.profile.display_name_hint": "Dâ ainm slà n no spÃ˛rsailâĻ",
+ "onboarding.profile.note": "Cunntas-beatha",
+ "onboarding.profile.note_hint": "âS urrainn dhut @iomradh a thoirt air cà ch no air #tagaicheanHaisâĻ",
+ "onboarding.profile.save_and_continue": "SÃ bhail âs lean air adhart",
+ "onboarding.profile.title": "Suidheachadh na prÃ˛ifile",
+ "onboarding.profile.upload_avatar": "Luchdaich suas dealbh na prÃ˛ifil",
+ "onboarding.profile.upload_header": "Luchdaich suas bann-cinn na prÃ˛ifil",
"onboarding.share.lead": "Innis do dhaoine mar a gheibh iad grèim ort air Mastodon!",
"onboarding.share.message": "Is mise {username} air #Mastodon! Thig âgam leantainn air {url}",
"onboarding.share.next_steps": "Ceuman eile as urrainn dhut gabhail:",
@@ -509,16 +522,16 @@
"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.direct.long": "A h-uile duine air a bheil iomradh sa phost",
+ "privacy.direct.short": "Daoine à raidh",
+ "privacy.private.long": "An luchd-leantainn agad a-mhà in",
+ "privacy.private.short": "Luchd-leantainn",
+ "privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon",
"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.unlisted.short": "Poblach ach sà mhach",
"privacy_policy.last_updated": "An t-Úrachadh mu dheireadh {date}",
"privacy_policy.title": "Poileasaidh prÃŦobhaideachd",
+ "recommended": "Molta",
"refresh": "Ath-nuadhaich",
"regeneration_indicator.label": "âGa luchdadhâĻ",
"regeneration_indicator.sublabel": "Tha do dhachaigh âga ullachadh!",
@@ -533,7 +546,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}d",
"relative_time.today": "an-diugh",
+ "reply_indicator.attachments": "{count, plural, one {# cheanglachan} two {# cheanglachan} few {# ceanglachain} other {# ceanglachan}}",
"reply_indicator.cancel": "Sguir dheth",
+ "reply_indicator.poll": "Cunntas-bheachd",
"report.block": "Bac",
"report.block_explanation": "Chan fhaic thu na postaichean aca. Chan fhaic iad na postaichean agad is chan urrainn dhaibh do leantainn. Bheir iad an aire gun deach am bacadh.",
"report.categories.legal": "Laghail",
@@ -589,6 +604,7 @@
"search.quick_action.status_search": "Postaichean a fhreagras ri {x}",
"search.search_or_paste": "Dèan lorg no cuir a-steach URL",
"search_popout.full_text_search_disabled_message": "Chan eil seo ri fhaighinn air {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Chan eil seo ri fhaighinn ach nuair a bhios tu air do chlà radh a-steach.",
"search_popout.language_code": "CÃ˛d cà nain ISO",
"search_popout.options": "Roghainnean luirg",
"search_popout.quick_actions": "Grad-ghnÃŦomhan",
@@ -696,10 +712,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 bfd20a4673..7512740c5e 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,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"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.multiple": "Escolla mÃēltiple",
"compose_form.poll.option_placeholder": "OpciÃŗn {number}",
- "compose_form.poll.remove_option": "Eliminar esta opciÃŗn",
+ "compose_form.poll.single": "Elixe unha",
"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.poll.type": "Estilo",
"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.reply": "Responder",
+ "compose_form.save_changes": "Actualizar",
"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Ã",
+ "compose_form.spoiler_placeholder": "Aviso sobre o contido (optativo)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Bloquear e denunciar",
"confirmations.block.confirm": "Bloquear",
@@ -182,7 +181,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",
@@ -202,7 +201,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.",
@@ -238,7 +237,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.",
@@ -278,6 +277,12 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rexeitar",
"follow_requests.unlocked_explanation": "Malia que a tÃēa conta non Ê privada, a administraciÃŗn de {domain} pensou que quizabes terÃas que revisar de xeito manual as solicitudes de seguiminto.",
+ "follow_suggestions.curated_suggestion": "O servidor suxÃreche",
+ "follow_suggestions.dismiss": "Non mostrar mÃĄis",
+ "follow_suggestions.personalized_suggestion": "SuxestiÃŗn personalizada",
+ "follow_suggestions.popular_suggestion": "SuxestiÃŗn popular",
+ "follow_suggestions.view_all": "Ver todas",
+ "follow_suggestions.who_to_follow": "A quen seguir",
"followed_tags": "Cancelos seguidos",
"footer.about": "Acerca de",
"footer.directory": "Directorio de perfÃs",
@@ -304,13 +309,9 @@
"hashtag.follow": "Seguir cancelo",
"hashtag.unfollow": "Deixar de seguir cancelo",
"hashtags.and_other": "âĻe {count, plural, one {}other {# mÃĄis}}",
- "home.actions.go_to_explore": "Mira do que se estÃĄ a falar",
- "home.actions.go_to_suggestions": "Atopa persoas ÃĄs que seguir",
"home.column_settings.basic": "BÃĄsico",
"home.column_settings.show_reblogs": "Amosar compartidos",
"home.column_settings.show_replies": "Amosar respostas",
- "home.explore_prompt.body": "A tÃēa cronoloxÃa de inicio vai ter unha mistura de publicaciÃŗns procedentes dos cancelos que segues, das persoas que elexiches seguir e das publicaciÃŗns que elas promoven. Se non tes moito que ler, podes probar a:",
- "home.explore_prompt.title": "Iste Ê o teu fogar en Mastodon.",
"home.hide_announcements": "Agochar anuncios",
"home.pending_critical_update.body": "Por favor actualiza o antes posible o teu servidor Mastodon!",
"home.pending_critical_update.link": "Mira as actualizaciÃŗns",
@@ -344,7 +345,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",
@@ -381,7 +382,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",
@@ -406,7 +407,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",
@@ -478,8 +478,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",
@@ -492,20 +492,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!",
@@ -524,14 +524,15 @@
"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.direct.long": "Todas as mencionadas na publicaciÃŗn",
+ "privacy.direct.short": "Persoas concretas",
+ "privacy.private.long": "SÃŗ para seguidoras",
+ "privacy.private.short": "Seguidoras",
+ "privacy.public.long": "Para todas dentro e fÃŗra de Mastodon",
"privacy.public.short": "PÃēblico",
- "privacy.unlisted.long": "Visible por todas, pero excluÃda da secciÃŗn descubrir",
- "privacy.unlisted.short": "Sen listar",
+ "privacy.unlisted.additional": "Do mesmo xeito que pÃēblico, menos que a publicaciÃŗn non aparecerÃĄ nas cronoloxÃas en directo ou nos cancelos, en descubrir ou nas buscas de Mastodon, incluso se estivese establecido nas opciÃŗns xerais da conta.",
+ "privacy.unlisted.long": "Menor implicaciÃŗn dos algoritmos",
+ "privacy.unlisted.short": "PÃēblico limitado",
"privacy_policy.last_updated": "Actualizado por Ãēltima vez no {date}",
"privacy_policy.title": "PolÃtica de Privacidade",
"recommended": "Aconsellable",
@@ -549,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hoxe",
+ "reply_indicator.attachments": "{count, plural, one {# adxunto} other {# adxuntos}}",
"reply_indicator.cancel": "Desbotar",
+ "reply_indicator.poll": "Enquisa",
"report.block": "Bloquear",
"report.block_explanation": "Non vas ver as sÃēas publicaciÃŗns. Nin verÃĄ as tÃēas publicaciÃŗns nin poderÃĄ seguirte. PoderÃĄ comprobar que as bloqueaches.",
"report.categories.legal": "Legal",
@@ -571,7 +574,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",
@@ -713,10 +716,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 658e16b856..bf182a1657 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -32,7 +32,7 @@
"account.featured_tags.last_status_never": "××× ××Ļר××Ļ××",
"account.featured_tags.title": "××Ē××××Ē ××××ĸ×פ××Ē ×Š× {name}",
"account.follow": "××ĸק××",
- "account.follow_back": "×××ר×Ē ×ĸ×ק×",
+ "account.follow_back": "××ĸק×× ×××ר×",
"account.followers": "×ĸ×ק×××",
"account.followers.empty": "××Ŗ ××× ×× ×ĸ××§× ××ר ××׊×Ē×׊ ××× ×ĸ××××.",
"account.followers_counter": "{count, plural,one {×ĸ××§× ×××} other {{counter} ×ĸ×ק×××}}",
@@ -89,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": "×××Ŗ ××××ק׊ ××× × ××××. ×× ×ĸ׊×× ×××××Ē ××× ×ק×× ×× ××ĸ××× ××Ē×××××Ē ××פ×פ×.",
@@ -146,22 +145,20 @@
"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.multiple": "××××¨× ×ר×××",
+ "compose_form.poll.option_placeholder": "×פ׊ר××Ē {number}",
+ "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": "××ץ××",
@@ -280,6 +277,12 @@
"follow_request.authorize": "×ר׊××",
"follow_request.reject": "××××",
"follow_requests.unlocked_explanation": "××ר××Ē ׊×׊××× × ××× × × ×ĸ××, ×Ļ×××Ē {domain} ×××Š× ×Š×××× ×××× ××××× ××Ē ×ק׊××Ē ×××ĸ×§× ×××× ××× ××Ē.",
+ "follow_suggestions.curated_suggestion": "×××ר×Ē ××ĸ×ר×××",
+ "follow_suggestions.dismiss": "×× ×××Ļ×× ×Š××",
+ "follow_suggestions.personalized_suggestion": "××Ļ×ĸ××Ē ×××Ē××××Ē ××׊××Ē",
+ "follow_suggestions.popular_suggestion": "××Ļ×ĸ× ×¤×פ××ר××Ē",
+ "follow_suggestions.view_all": "×Ļפ×× ×××",
+ "follow_suggestions.who_to_follow": "×××¨× ×× ××ĸק××",
"followed_tags": "××Ē××××Ē ׊××׊××× ×Š×× ×ĸ××§× ××ר×××",
"footer.about": "×××××Ē",
"footer.directory": "ץפר×××Ē פר×פ××××",
@@ -306,13 +309,9 @@
"hashtag.follow": "××ĸק×× ×××¨× ×Ē×××Ē",
"hashtag.unfollow": "××פץ×ק ××ĸק×× ×××¨× ×Ē×××Ē",
"hashtags.and_other": "âĻ{count, plural,other {××ĸ×× #}}",
- "home.actions.go_to_explore": "××Ļ××Ē ×××××Ē",
- "home.actions.go_to_suggestions": "×××Ļ×× ×.× ×Š×× ××ĸק×× ××ר×××.×",
"home.column_settings.basic": "×××Ē×××××",
"home.column_settings.show_reblogs": "××Ļ××Ē ×××××××",
"home.column_settings.show_replies": "××Ļ××Ē ×Ē×××××Ē",
- "home.explore_prompt.body": "פ×× ××××Ē ׊×× ×××× ×Ē×ĸר×××Ē ×Š× ××××ĸ××Ē ×××Ē××××Ē ×××× ×Š×× ×Š××ר×Ē ×××ĸק×, ××××××ĸ××Ē ׊×× ×ĸק××× ×××ר×× ×××××. ×× ×× × ×¨×× ×Š×§× ××× ×ר××ĸ ×× ×× ××××:",
- "home.explore_prompt.title": "××× ×ץ×ץ ××××Ē ׊×× ××Ē×× ×ץ×××××.",
"home.hide_announcements": "×ץ×Ēר ××ר×××Ē",
"home.pending_critical_update.body": "×׊ ××ĸ××× ××Ē ×Ē××× ×Ē ×ץ××××× ××ק×× ××פ׊ר×!",
"home.pending_critical_update.link": "×Ļפ×× ××ĸ×××× ××",
@@ -408,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": "××××× ××׊×Ēק××Ē",
@@ -526,14 +524,15 @@
"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.unlisted.additional": "×××Ē× ××××Ē ×××× ×××××ĸ× ×Ļ×××ר××Ē, ×××× ×Š×××××ĸ× ×× ×Ē×פ××ĸ ×פ×× ××× ××ק××× ×× ××Ē××××Ē, ×Ē×××××Ē ×× ××פ×׊ ×ץ×××××, ×פ××× ×× ××ק׊×Ē ׊××׊××× ×××× ×××× ×¤××××.",
+ "privacy.unlisted.long": "פ×××Ē ×׊××¤× ×××××ר××Ē×××",
+ "privacy.unlisted.short": "×Ļ××××¨× ×Š×§×",
"privacy_policy.last_updated": "×ĸ×××× ×××ר×× × {date}",
"privacy_policy.title": "×××× ×××Ē פר××××Ē",
"recommended": "×××××Ĩ",
@@ -551,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": "××ק×",
@@ -715,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/hi.json b/app/javascript/mastodon/locales/hi.json
index 76d7c1d381..f88fe19569 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -83,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": "ā¤
ā¤¨āĨā¤°āĨā¤§ā¤ŋā¤¤ ā¤ĒāĨā¤ ā¤ĒāĨā¤°ā¤¸āĨā¤¤āĨā¤¤ ā¤¨ā¤šāĨā¤ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤ž ā¤¸ā¤ā¤žāĨ¤ ā¤¯ā¤š ā¤šā¤Žā¤žā¤°āĨ ā¤āĨā¤Ą ā¤ŽāĨā¤ ā¤Ŧā¤ ā¤¯ā¤ž ā¤ŦāĨā¤°ā¤žā¤ā¤ā¤ŧā¤° ā¤¸ā¤ā¤ā¤¤ā¤¤ā¤ž ā¤¸ā¤Žā¤¸āĨā¤¯ā¤ž ā¤āĨ ā¤ā¤žā¤°ā¤Ŗ ā¤šāĨ ā¤¸ā¤ā¤¤ā¤ž ā¤šāĨāĨ¤",
@@ -138,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": "ā¤ŦāĨā¤˛āĨā¤",
@@ -288,8 +277,6 @@
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.follow": "ā¤šāĨā¤ļā¤āĨā¤ ā¤āĨ ā¤ĢāĨā¤˛āĨ ā¤ā¤°āĨā¤",
"hashtag.unfollow": "ā¤šāĨā¤ļā¤āĨā¤ ā¤āĨ ā¤ā¤¨āĨāĨā¤˛āĨā¤˛āĨā¤ĩ ā¤ā¤°āĨā¤",
- "home.actions.go_to_explore": "ā¤ĻāĨā¤ā¤ŋā¤ ā¤āĨā¤¯ā¤ž ā¤Ēā¤ ā¤°ā¤šā¤ž ā¤šāĨ",
- "home.actions.go_to_suggestions": "ā¤
ā¤¨āĨā¤¸ā¤°ā¤¨āĨ ā¤āĨ ā¤˛ā¤ŋā¤ ā¤˛āĨā¤āĨ ā¤āĨ ā¤ĸāĨā¤ā¤ĸāĨ",
"home.column_settings.basic": "ā¤ŦāĨā¤¨ā¤ŋā¤¯ā¤žā¤ĻāĨ",
"home.column_settings.show_reblogs": "ā¤ŦāĨā¤¸āĨā¤ ā¤Ļā¤ŋā¤ā¤žā¤",
"home.column_settings.show_replies": "ā¤ā¤ĩā¤žā¤ŦāĨā¤ ā¤āĨ ā¤Ļā¤ŋā¤ā¤žā¤",
@@ -370,7 +357,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": "ā¤ĩā¤žā¤°ā¤ŋā¤¤ ā¤ļā¤ŦāĨā¤Ļ",
@@ -386,6 +372,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": "ā¤Ēā¤¸ā¤ā¤ĻāĨā¤Ļā¤ž:",
@@ -399,9 +386,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": "ā¤āĨā¤¨ā¤žā¤ĩ ā¤Ēā¤°ā¤ŋā¤Ŗā¤žā¤Ž",
@@ -416,6 +406,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:",
@@ -435,16 +426,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 {# ā¤¸āĨā¤ā¤ā¤Ą}} ā¤Ēā¤šā¤˛āĨ",
@@ -454,15 +442,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",
@@ -480,11 +476,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} ā¤ā¤ž ā¤ā¤¤āĨā¤¤ā¤° ā¤ĻāĨā¤",
@@ -502,7 +511,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 654991a0f9..9fe15f5a2d 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,7 +30,9 @@
"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}}",
@@ -32,6 +43,7 @@
"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",
@@ -40,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}}",
@@ -54,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.",
@@ -66,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.",
@@ -114,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",
@@ -171,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",
@@ -211,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}",
@@ -244,7 +261,6 @@
"hashtag.column_settings.tag_toggle": "UkljuÄi dodatne oznake za ovaj stupac",
"hashtag.follow": "Prati hashtag",
"hashtag.unfollow": "Prestani pratiti hashtag",
- "home.actions.go_to_explore": "Vidi trendove",
"home.column_settings.basic": "Osnovno",
"home.column_settings.show_reblogs": "PokaÅži boostove",
"home.column_settings.show_replies": "PokaÅži odgovore",
@@ -318,7 +334,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",
@@ -387,13 +402,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",
@@ -533,10 +542,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 0d50e36feb..8f979e5558 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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 lehetÅsÊg",
+ "compose_form.poll.option_placeholder": "VÃĄlasz {number}",
+ "compose_form.poll.single": "Egyetlen vÃĄlasz",
"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": "Tartalmi figyelmeztetÊs (opcionÃĄlis)",
"confirmation_modal.cancel": "MÊgsem",
"confirmations.block.block_and_report": "LetiltÃĄs Ês jelentÊs",
"confirmations.block.confirm": "LetiltÃĄs",
@@ -280,6 +277,12 @@
"follow_request.authorize": "HitelesÃtÊs",
"follow_request.reject": "ElutasÃtÃĄs",
"follow_requests.unlocked_explanation": "BÃĄr a fiÃŗkod nincs zÃĄrolva, a(z) {domain} csapata Ãēgy gondolta, hogy talÃĄn kÊzzel szeretnÊd ellenÅrizni ezen fiÃŗkok kÃļvetÊsi kÊrÊseit.",
+ "follow_suggestions.curated_suggestion": "SzerkesztÅi ajÃĄnlat",
+ "follow_suggestions.dismiss": "Ne jelenjen meg Ãējra",
+ "follow_suggestions.personalized_suggestion": "SzemÊlyre szabott javaslat",
+ "follow_suggestions.popular_suggestion": "NÊpszerÅą javaslat",
+ "follow_suggestions.view_all": "Ãsszes megtekintÊse",
+ "follow_suggestions.who_to_follow": "Kit Êrdemes kÃļvetni",
"followed_tags": "KÃļvetett hashtagek",
"footer.about": "NÊvjegy",
"footer.directory": "ProfiltÃĄr",
@@ -306,13 +309,9 @@
"hashtag.follow": "Hashtag kÃļvetÊse",
"hashtag.unfollow": "Hashtag kÃļvetÊsÊnek megszÃŧntetÊse",
"hashtags.and_other": "âĻÊs {count, plural, other {# tovÃĄbbi}}",
- "home.actions.go_to_explore": "Felkapottak megtekintÊse",
- "home.actions.go_to_suggestions": "KÃļvethetÅk keresÊse",
"home.column_settings.basic": "ÃltalÃĄnos",
"home.column_settings.show_reblogs": "MegtolÃĄsok megjelenÃtÊse",
"home.column_settings.show_replies": "VÃĄlaszok megjelenÃtÊse",
- "home.explore_prompt.body": "A sajÃĄt hÃrfolyam a kÃļvetÊsre kivÃĄlasztott hashtagek, a kÃļvetÊsre kivÃĄlasztott szemÊlyek Ês az ÃĄltaluk nÊpszerÅąsÃtett bejegyzÊsek keverÊkÊt tartalmazza. Ha csendesnek tÅąnik, akkor megprÃŗbÃĄlhatod ezeket:",
- "home.explore_prompt.title": "Ez a kezdÅpontod a Mastodonon belÃŧl.",
"home.hide_announcements": "KÃļzlemÊnyek elrejtÊse",
"home.pending_critical_update.body": "A lehetÅ leghamarabb frissÃtsd a Mastodon kiszolgÃĄlÃŗdat!",
"home.pending_critical_update.link": "FrissÃtÊsek megtekintÊse",
@@ -408,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",
@@ -526,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Ês emlÃt",
+ "privacy.direct.short": "Megadott szemÊlyek",
+ "privacy.private.long": "Csak a kÃļvetÅid",
+ "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Ãrfolyamokban, hashtagekben, felfedezÊsben vagy a Mastodonos keresÊsben, mÊg akkor sem, ha ezt az egÊsz fiÃŗkra engedÊlyezted.",
+ "privacy.unlisted.long": "Kevesebb algoritmikus fanfÃĄr",
+ "privacy.unlisted.short": "Csendes nyilvÃĄnos",
"privacy_policy.last_updated": "UtoljÃĄra frissÃtve: {date}",
"privacy_policy.title": "AdatvÊdelmi szabÃĄlyzat",
"recommended": "AjÃĄnlott",
@@ -551,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",
@@ -715,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 835105218d..6ddcfcdb21 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -70,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": "ÕÕĄÕļÖÕĢ ÕŊÕÕĄÕŦ",
@@ -117,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": "ÔąÖÕŖÕĨÕŦÕĄÖÕĄÕ¯ÕĨÕŦ",
@@ -325,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": "ÔŧÕŧÕĨÖÕ¸ÖÕĄÕŽ ÕĸÕĄÕŧÕĨÖ",
@@ -414,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": "ÔšÕĄÖÕ´ÕĄÖÕļÕĨÕŦ",
@@ -556,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 917a034667..0796662851 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -1,23 +1,400 @@
{
+ "about.blocks": "Servitores moderate",
+ "about.contact": "Contacto:",
+ "about.disclaimer": "Mastodon es software libere, de codice aperte, e un marca de Mastodon gGmbH.",
+ "about.domain_blocks.no_reason_available": "Ration non disponibile",
+ "about.domain_blocks.silenced.title": "Limitate",
+ "about.domain_blocks.suspended.title": "Suspendite",
+ "about.not_available": "Iste information non faceva disponibile in iste servitor.",
+ "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_domain": "Blocar dominio {domain}",
+ "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.direct": "Mentionar privatemente a @{name}",
+ "account.disable_notifications": "Stoppar le notificationes quando @{name} publica",
+ "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.follows.empty": "Iste usator ancora non seque nemo.",
+ "account.go_to_profile": "Vader al profilo",
+ "account.hide_reblogs": "Celar boosts de @{name}",
+ "account.in_memoriam": "In Memoriam.",
+ "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.media": "Multimedia",
+ "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.requested": "Attendente le approbation. Clicca pro cancellar le requesta de sequer",
+ "account.requested_follow": "{name} habeva requestate sequer te",
+ "account.share": "Compartir profilo de @{name}",
+ "account.show_reblogs": "Monstrar responsas de @{name}",
+ "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
+ "account.unblock": "Disblocar @{name}",
+ "account.unblock_domain": "Disblocar dominio {domain}",
+ "account.unblock_short": "Disblocar",
+ "account.unendorse": "Non evidentiar sur le profilo",
+ "account.unfollow": "Non plus sequer",
+ "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.average": "Median",
+ "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.description": "Crear un conto in {domain} actualmente non es possibile, ma considera que tu non besonia un conto specific in {domain} pro usar Mastodon.",
+ "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_back_button.label": "Retro",
+ "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",
+ "community.column_settings.local_only": "Solmente local",
+ "community.column_settings.media_only": "Solmente medios",
+ "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.poll.duration": "Duration del inquesta",
+ "compose_form.poll.multiple": "Selection multiple",
+ "compose_form.poll.option_placeholder": "Option {number}",
+ "compose_form.poll.single": "Seliger un",
+ "compose_form.poll.switch_to_multiple": "Cambiar inquesta pro permitter selectiones multiple",
+ "compose_form.poll.switch_to_single": "Cambiar inquesta pro permitter selection singule",
+ "compose_form.poll.type": "Stylo",
+ "compose_form.publish": "Publicar",
+ "compose_form.publish_form": "Nove message",
+ "compose_form.reply": "Responder",
+ "compose_form.save_changes": "Actualisar",
+ "compose_form.spoiler.marked": "Remover advertimento de contento",
+ "compose_form.spoiler.unmarked": "Adder advertimento de contento",
+ "compose_form.spoiler_placeholder": "Advertimento de contento (optional)",
"confirmation_modal.cancel": "Cancellar",
+ "confirmations.block.block_and_report": "Blocar e signalar",
+ "confirmations.block.confirm": "Blocar",
+ "confirmations.block.message": "Es tu secur que tu vole blocar {name}?",
+ "confirmations.cancel_follow_request.confirm": "Retirar requesta",
+ "confirmations.cancel_follow_request.message": "Es tu secur que tu vole retirar tu requesta a sequer a {name}?",
+ "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",
+ "confirmations.unfollow.confirm": "Non plus sequer",
+ "confirmations.unfollow.message": "Es tu secur que tu vole non plus sequer {name}?",
+ "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.new_arrivals": "Nove arrivatas",
+ "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",
+ "embed.preview": "Hic es como il parera:",
+ "emoji_button.activity": "Activitate",
+ "emoji_button.clear": "Rader",
+ "emoji_button.custom": "Personalisate",
+ "emoji_button.flags": "Bandieras",
+ "emoji_button.food": "Alimentos e bibitas",
+ "emoji_button.label": "Inserer emoji",
+ "emoji_button.nature": "Natura",
+ "emoji_button.people": "Personas",
+ "emoji_button.recent": "Frequentemente usate",
+ "emoji_button.search": "Cercar...",
+ "emoji_button.search_results": "Resultatos de recerca",
+ "emoji_button.symbols": "Symbolos",
+ "emoji_button.travel": "Viages e locos",
+ "empty_column.account_hides_collections": "Le usator ha seligite non facer iste information disponibile",
+ "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.",
+ "empty_column.domain_blocks": "Il non ha dominios blocate ancora.",
+ "empty_column.explore_statuses": "Nihil es in tendentias ora mesme. Retorna postea!",
+ "empty_column.favourited_statuses": "Tu non ha necun messages favorite ancora. Quando tu marca un como favorito, ille essera monstrate hic.",
+ "empty_column.followed_tags": "Tu ancora non ha sequite necun hashtags. Quando tu lo face, illes essera monstrate hic.",
+ "empty_column.hashtag": "Ancora non il ha nihil in iste hashtag.",
+ "errors.unexpected_crash.report_issue": "Signalar un defecto",
+ "explore.search_results": "Resultatos de recerca",
+ "explore.suggested_follows": "Personas",
+ "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",
+ "follow_suggestions.curated_suggestion": "Selection del editores",
+ "follow_suggestions.dismiss": "Non monstrar novemente",
+ "follow_suggestions.personalized_suggestion": "Suggestion personalisate",
+ "follow_suggestions.popular_suggestion": "Suggestion personalisate",
+ "follow_suggestions.view_all": "Vider toto",
"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_header.tag_mode.none": "sin {additional}",
+ "hashtag.column_settings.select.no_options_message": "Nulle suggestiones trovate",
+ "hashtag.column_settings.select.placeholder": "Insere hashtagsâĻ",
+ "hashtag.follow": "Sequer hashtag",
+ "hashtag.unfollow": "Non sequer plus le hashtag",
+ "hashtags.and_other": "âĻe {count, plural, one {}other {# plus}}",
+ "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.pending_critical_update.title": "Actualisation de securitate critic disponibile!",
+ "home.show_announcements": "Monstrar annuncios",
+ "interaction_modal.login.prompt": "Dominio de tu servitor, p.e. mastodon.social",
+ "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.profile": "Aperir le profilo del autor",
+ "keyboard_shortcuts.reply": "Responder al message",
+ "keyboard_shortcuts.spoilers": "Monstrar/celar le campo CW",
+ "keyboard_shortcuts.toggle_sensitivity": "Monstrar/celar medios",
+ "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.none": "Nemo",
+ "lists.replies_policy.title": "Monstrar responsas a:",
+ "lists.subheading": "Tu listas",
+ "loading_indicator.label": "CarganteâĻ",
+ "media_gallery.toggle_visible": "{number, plural, one {Celar imagine} other {Celar imagines}}",
+ "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.opened_in_classic_interface": "Messages, contos e altere paginas specific es aperite per predefinition in le interfacie web classic.",
+ "navigation_bar.personal": "Personal",
+ "navigation_bar.preferences": "Preferentias",
+ "navigation_bar.public_timeline": "Chronologia federate",
+ "navigation_bar.search": "Cercar",
+ "navigation_bar.security": "Securitate",
+ "notification.own_poll": "Tu inquesta finiva",
+ "notification.update": "{name} modificava un message",
+ "notifications.clear": "Rader notificationes",
+ "notifications.column_settings.alert": "Notificationes de scriptorio",
+ "notifications.column_settings.favourite": "Favoritos:",
+ "notifications.column_settings.filter_bar.advanced": "Monstrar tote le categorias",
+ "notifications.column_settings.follow": "Nove sequitores:",
+ "notifications.column_settings.mention": "Mentiones:",
+ "notifications.column_settings.poll": "Resultatos del inquesta:",
+ "notifications.column_settings.push": "Notificationes push",
+ "notifications.column_settings.show": "Monstrar in columna",
+ "notifications.column_settings.sound": "Reproducer sono",
+ "notifications.column_settings.status": "Nove messages:",
+ "notifications.column_settings.unread_notifications.category": "Notificationes non legite",
+ "notifications.filter.all": "Toto",
+ "notifications.filter.favourites": "Favoritos",
+ "notifications.filter.mentions": "Mentiones",
+ "notifications.filter.polls": "Resultatos del inquesta",
+ "notifications.filter.statuses": "Actualisationes de personas que tu seque",
+ "notifications.grant_permission": "Conceder permission.",
+ "notifications.group": "{count} notificationes",
+ "notifications_permission_banner.enable": "Activar notificationes de scriptorio",
+ "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",
+ "report_notification.open": "Aperir reporto",
+ "search.no_recent_searches": "Nulle recercas recente",
+ "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.active_users": "usatores active",
+ "server_banner.learn_more": "Apprender plus",
+ "server_banner.server_stats": "Statos del servitor:",
+ "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": "Mentionar privatemente a @{name}",
+ "status.direct_indicator": "Mention private",
+ "status.edit": "Modificar",
+ "status.edited": "Modificate le {date}",
+ "status.edited_x_times": "Modificate {count, plural, one {{count} tempore} other {{count} tempores}}",
+ "status.favourite": "Adder al favoritos",
+ "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.show_less": "Monstrar minus",
+ "status.show_more": "Monstrar plus",
+ "status.translate": "Traducer",
+ "status.translated_from_with": "Traducite ab {lang} usante {provider}",
+ "status.uncached_media_warning": "Previsualisation non disponibile",
+ "subscribed_languages.save": "Salveguardar le cambiamentos",
+ "tabs_bar.home": "Initio",
+ "tabs_bar.notifications": "Notificationes",
+ "timeline_hint.resources.statuses": "Messages ancian",
+ "trends.trending_now": "Ora in tendentias",
+ "upload_button.label": "Adde imagines, un video o un file de audio",
+ "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 5af20a97f7..88e99a7086 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -82,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.",
@@ -134,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",
@@ -281,8 +270,6 @@
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.follow": "Ikuti tagar",
"hashtag.unfollow": "Batalkan pengikutan tagar",
- "home.actions.go_to_explore": "Lihat apa yang lagi tranding",
- "home.actions.go_to_suggestions": "Temukan Orang untuk Diikuti",
"home.column_settings.basic": "Dasar",
"home.column_settings.show_reblogs": "Tampilkan boost",
"home.column_settings.show_replies": "Tampilkan balasan",
@@ -364,7 +351,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",
@@ -454,14 +440,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",
@@ -615,10 +594,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 a7cf1caab4..0c21832ed6 100644
--- a/app/javascript/mastodon/locales/ie.json
+++ b/app/javascript/mastodon/locales/ie.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"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.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",
+ "compose_form.spoiler_placeholder": "Advertiment de contenete (optional)",
"confirmation_modal.cancel": "Anullar",
"confirmations.block.block_and_report": "Bloccar & Raportar",
"confirmations.block.confirm": "Bloccar",
@@ -191,7 +190,9 @@
"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",
@@ -246,6 +247,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",
@@ -275,11 +277,18 @@
"follow_request.authorize": "Autorisar",
"follow_request.reject": "Rejecter",
"follow_requests.unlocked_explanation": "Benque tu conto ne es cludet, li administratores de {domain} pensat que tu fÃŗrsan vell voler tractar seque-petitiones de tis-ci contos manualmen.",
+ "follow_suggestions.curated_suggestion": "Selection del Servitor",
+ "follow_suggestions.dismiss": "Ne monstrar plu",
+ "follow_suggestions.personalized_suggestion": "Personalisat suggestion",
+ "follow_suggestions.popular_suggestion": "Populari suggestion",
+ "follow_suggestions.view_all": "Vider omnicos",
+ "follow_suggestions.who_to_follow": "Persones a sequer",
"followed_tags": "Sequet hashtags",
"footer.about": "Information",
"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",
@@ -300,13 +309,9 @@
"hashtag.follow": "Sequer hashtag",
"hashtag.unfollow": "Dessequer hashtag",
"hashtags.and_other": "âĻe {count, plural, other {# in plu}}",
- "home.actions.go_to_explore": "Vider lu populari",
- "home.actions.go_to_suggestions": "Trovar gente por sequer",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Monstrar boosts",
"home.column_settings.show_replies": "Monstrar responses",
- "home.explore_prompt.body": "Tui hemal tÊmpor-linea have un mixtura del hashtags queles tu selectet sequer, li gente quem tu selectet sequer, e li postas queles ili boosta. Si to sembla tro quiet, tu fÃŗrsan vole:",
- "home.explore_prompt.title": "To-ci es tui hemal pÃĄgine in Mastodon.",
"home.hide_announcements": "Celar proclamationes",
"home.pending_critical_update.body": "Ples actualisar tui Mastodon-servitor tam rapid quam es possibil!",
"home.pending_critical_update.link": "Vider actualisationes",
@@ -342,7 +347,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",
@@ -399,7 +407,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",
@@ -517,14 +524,15 @@
"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.long": "Omnes mentionat in li posta",
+ "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.unlisted.additional": "It acte just quam public, except que li posta ne va aparir in tendentie o hashtags, explorar, o sercha de Mastodon, mem si tu ha optet por les sur tui tot conto.",
+ "privacy.unlisted.long": "Minu fanfare algoritmic",
+ "privacy.unlisted.short": "Quiet public",
"privacy_policy.last_updated": "Ultimmen actualisat ye {date}",
"privacy_policy.title": "Politica pri Privatie",
"recommended": "Recomandat",
@@ -542,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hodie",
+ "reply_indicator.attachments": "{count, plural, one {# atachament} other {# atachamentes}}",
"reply_indicator.cancel": "Anullar",
+ "reply_indicator.poll": "Balotar",
"report.block": "Bloccar",
"report.block_explanation": "Tu ne va vider su postas. Li usator ni va posser vider tui postas, ni sequer te, ni va posser saver pri li statu de esser bloccat.",
"report.categories.legal": "Legal",
@@ -599,6 +609,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",
@@ -705,10 +716,8 @@
"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",
diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json
index f163567f17..a4f7268422 100644
--- a/app/javascript/mastodon/locales/ig.json
+++ b/app/javascript/mastodon/locales/ig.json
@@ -107,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",
@@ -142,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 233b768457..c468f689ab 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -86,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.",
@@ -143,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",
@@ -303,13 +292,9 @@
"hashtag.follow": "Sequez hashtago",
"hashtag.unfollow": "Desequez hashtago",
"hashtags.and_other": "âĻe {count, plural, one {# plusa}other {# plusa}}",
- "home.actions.go_to_explore": "Videz quo es populara nun",
- "home.actions.go_to_suggestions": "Trovez personi por sequar",
"home.column_settings.basic": "Simpla",
"home.column_settings.show_reblogs": "Montrar repeti",
"home.column_settings.show_replies": "Montrar respondi",
- "home.explore_prompt.body": "Vua hemala fluo havos mixuro de la hashtagi quin vu selektis sequar, la personi quin vu selektis sequar, e la posti quin ili repetis. Se to semblas tro tacanta, vu darfas volar:",
- "home.explore_prompt.title": "Co es vua hemo en Mastodon.",
"home.hide_announcements": "Celez anunci",
"home.pending_critical_update.body": "Voluntez aktualigar vua Mastodon-servilo tam balde kam es posibla!",
"home.pending_critical_update.link": "Vidar aktualigaji",
@@ -405,7 +390,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",
@@ -519,14 +503,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",
@@ -708,10 +685,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 46e83b4dbf..3c2337efd2 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -32,6 +32,7 @@
"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}}}",
@@ -52,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"compose_form.lock_disclaimer": "Aðgangurinn Þinn er ekki {locked}. Hver sem er getur fylgst með ÞÊr til að sjÃĄ ÞÃĻr fÃĻrslur sem einungis eru til fylgjenda Þinna.",
"compose_form.lock_disclaimer.lock": "lÃĻstur",
"compose_form.placeholder": "Hvað 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",
@@ -278,13 +277,19 @@
"follow_request.authorize": "Heimila",
"follow_request.reject": "Hafna",
"follow_requests.unlocked_explanation": "Jafnvel ÞÃŗtt aðgangurinn Þinn sÊ ekki lÃĻstur, hafa umsjÃŗnarmenn {domain} Ãmyndað sÊr að ÞÃē gÃĻtir viljað yfirfara handvirkt fylgjendabeiðnir frÃĄ Þessum notendum.",
+ "follow_suggestions.curated_suggestion": "Ãrval umsjÃŗnarfÃŗlks",
+ "follow_suggestions.dismiss": "Ekki birta Þetta aftur",
+ "follow_suggestions.personalized_suggestion": "PersÃŗnuaðlÃļguð tillaga",
+ "follow_suggestions.popular_suggestion": "VinsÃĻl tillaga",
+ "follow_suggestions.view_all": "Skoða allt",
+ "follow_suggestions.who_to_follow": "Hverjum ÃĄ að fylgjast með",
"followed_tags": "Myllumerki sem fylgst er með",
"footer.about": "NÃĄnari upplÃŊsingar",
"footer.directory": "Notandasniðamappa",
"footer.get_app": "NÃĄ à forritið",
"footer.invite": "BjÃŗða fÃŗlki",
"footer.keyboard_shortcuts": "FlÃŊtileiðir ÃĄ lyklaborði",
- "footer.privacy_policy": "PersÃŗnuverndarstefna",
+ "footer.privacy_policy": "Meðferð persÃŗnuupplÃŊsinga",
"footer.source_code": "Skoða frumkÃŗða",
"footer.status": "Staða",
"generic.saved": "Vistað",
@@ -304,13 +309,9 @@
"hashtag.follow": "Fylgjast með myllumerki",
"hashtag.unfollow": "HÃĻtta að fylgjast með myllumerki",
"hashtags.and_other": "âĻog {count, plural, other {# til viðbÃŗtar}}",
- "home.actions.go_to_explore": "SjÃĄ hvað er à umrÃĻðunni",
- "home.actions.go_to_suggestions": "Finna fÃŗlk til að fylgjast með",
"home.column_settings.basic": "Einfalt",
"home.column_settings.show_reblogs": "SÃŊna endurbirtingar",
"home.column_settings.show_replies": "Birta svÃļr",
- "home.explore_prompt.body": "Heimastreymið Þitt verður með blÃļndu af fÃĻrslum Ãēr myllumerkjunum sem ÞÃē hefur valið að fylgja, fÃĻrslum frÃĄ fÃŗlki sem ÞÃē hefur valið að fylgja og fÃĻrslum sem Þau endurbirta. Ef ÞÊr finnst Þetta allt of kyrrlÃĄtt, gÃĻtirðu viljað:",
- "home.explore_prompt.title": "Ãetta er bÃĻkistÃļð ÞÃn innan samfÊlagsins.",
"home.hide_announcements": "Fela auglÃŊsingar",
"home.pending_critical_update.body": "UppfÃĻrðu Mastodon-ÞjÃŗninn Þinn eins fljÃŗtt og mÃļgulegt er!",
"home.pending_critical_update.link": "Skoða uppfÃĻrslur",
@@ -406,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ð",
@@ -524,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ð",
@@ -549,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",
@@ -669,7 +672,7 @@
"status.reblogs.empty": "Enginn hefur ennÃžÃĄ endurbirt Þessa fÃĻrslu. Ãegar einhver gerir Það, mun Það birtast hÊr.",
"status.redraft": "Eyða og endurvinna drÃļg",
"status.remove_bookmark": "FjarlÃĻgja bÃŗkamerki",
- "status.replied_to": "Svaraði {name}",
+ "status.replied_to": "Svaraði til {name}",
"status.reply": "Svara",
"status.replyAll": "Svara ÞrÃĻði",
"status.report": "KÃĻra @{name}",
@@ -713,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 4fb4d88cbc..db8e88bd2a 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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.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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Autorizza",
"follow_request.reject": "Rifiuta",
"follow_requests.unlocked_explanation": "Anche se il tuo profilo non è privato, lo staff di {domain} ha pensato che potresti voler revisionare manualmente le richieste di seguirti da questi profili.",
+ "follow_suggestions.curated_suggestion": "Scelta dell'editore",
+ "follow_suggestions.dismiss": "Non visualizzare piÚ",
+ "follow_suggestions.personalized_suggestion": "Suggerimenti personalizzati",
+ "follow_suggestions.popular_suggestion": "Suggerimento frequente",
+ "follow_suggestions.view_all": "Vedi tutto",
+ "follow_suggestions.who_to_follow": "Chi seguire",
"followed_tags": "Hashtag seguiti",
"footer.about": "Info",
"footer.directory": "Cartella dei profili",
@@ -306,13 +309,9 @@
"hashtag.follow": "Segui l'hashtag",
"hashtag.unfollow": "Smetti di seguire l'hashtag",
"hashtags.and_other": "âĻe {count, plural, other {# in piÚ}}",
- "home.actions.go_to_explore": "Scopri cosa sia di tendenza",
- "home.actions.go_to_suggestions": "Trova persone da seguire",
"home.column_settings.basic": "Base",
"home.column_settings.show_reblogs": "Mostra reblog",
"home.column_settings.show_replies": "Mostra risposte",
- "home.explore_prompt.body": "La tua home feed conterrà un mix di post degli hashtag che hai scelto di seguire, delle persone che hai scelto di seguire e dei post che condividono. Sembra abbastanza tranquillo in questo momento, quindi che ne dici di:",
- "home.explore_prompt.title": "Questa è la tua base all'interno di Mastodon.",
"home.hide_announcements": "Nascondi annunci",
"home.pending_critical_update.body": "Ti preghiamo di aggiornare il tuo server di Mastodon, il prima possibile!",
"home.pending_critical_update.link": "Visualizza aggiornamenti",
@@ -408,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",
@@ -526,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",
@@ -551,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",
@@ -715,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 3246415759..180963e9e6 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -32,6 +32,7 @@
"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} ããŠãã¯ãŧ",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "éįĨããĒããĢãã",
"account.mute_short": "ããĨãŧã",
"account.muted": "ããĨãŧãæ¸ãŋ",
+ "account.mutual": "į¸äēããŠããŧä¸",
"account.no_bio": "čĒŦæãæäžãããĻããžããã",
"account.open_original_page": "å
ãŽããŧã¸ãéã",
"account.posts": "æį¨ŋ",
@@ -87,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": "čĻæąãããããŧã¸ããŦãŗããĒãŗã°ã§ããžããã§ããããŗãŧããŽãã°ããžãã¯ããŠãĻãļãŽäēææ§ãŽåéĄãåå ã§ããå¯čŊæ§ããããžãã",
@@ -144,22 +145,20 @@
"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.multiple": "č¤æ°é¸æ",
+ "compose_form.poll.option_placeholder": "é
įŽ{number}",
+ "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": "ãããã¯",
@@ -278,6 +277,7 @@
"follow_request.authorize": "訹å¯",
"follow_request.reject": "æåĻ",
"follow_requests.unlocked_explanation": "ããĒããŽãĸãĢãĻãŗãã¯æŋčĒåļã§ã¯ãããžãããã{domain}ãŽãšãŋããã¯ããããŽãĸãĢãĻãŗããããŽããŠããŧãĒã¯ã¨ãšããŽįĸēčĒãåŋ
čĻã§ããã¨å¤æããžããã",
+ "follow_suggestions.view_all": "ããšãĻ襨į¤ē",
"followed_tags": "ããŠããŧä¸ãŽãããˇãĨãŋã°",
"footer.about": "æĻčĻ",
"footer.directory": "ããŖãŦã¯ããĒ",
@@ -300,17 +300,13 @@
"hashtag.column_settings.tag_toggle": "ããŽãĢãŠã ãĢčŋŊå ãŽãŋã°ãåĢãã",
"hashtag.counter_by_accounts": "{count, plural, other {{counter}äēēæį¨ŋ}}",
"hashtag.counter_by_uses": "{count, plural, other {{counter}äģļ}}",
- "hashtag.counter_by_uses_today": "äģæĨ{count, plural, other {{counter}äģļ}}",
+ "hashtag.counter_by_uses_today": "æŦæĨ{count, plural, other {#äģļ}}",
"hashtag.follow": "ãããˇãĨãŋã°ãããŠããŧãã",
"hashtag.unfollow": "ãããˇãĨãŋã°ãŽããŠããŧãč§Ŗé¤",
"hashtags.and_other": "ãģã{count, plural, other {#å}}",
- "home.actions.go_to_explore": "芹éĄãããã",
- "home.actions.go_to_suggestions": "ããŠããŧãããĻãŧãļãŧãæ¤į´ĸ",
"home.column_settings.basic": "åēæŦč¨åŽ",
"home.column_settings.show_reblogs": "ããŧãšã襨į¤ē",
"home.column_settings.show_replies": "čŋäŋĄčĄ¨į¤ē",
- "home.explore_prompt.body": "ãĻãŧãļãŧããããˇãĨãŋã°ãããŠããŧããã¨ãããŽãããŧã ããŋã¤ã ãŠã¤ãŗãĢæį¨ŋãããŧãšããæĩãããããĢãĒããžãããŋã¤ã ãŠã¤ãŗãããå°ããĢããããĢããĻãŋãžãããīŧ",
- "home.explore_prompt.title": "MastodonãŽãŋã¤ã ãŠã¤ãŗã¸ããããã",
"home.hide_announcements": "ãįĨãããé ã",
"home.pending_critical_update.body": "éãããĢMastodonãĩãŧããŧããĸããããŧãããĻãã ããã",
"home.pending_critical_update.link": "čŠŗį´°",
@@ -406,7 +402,6 @@
"navigation_bar.direct": "éå
ŦéãŽčŋäŋĄ",
"navigation_bar.discover": "čĻã¤ãã",
"navigation_bar.domain_blocks": "ãããã¯ããããĄã¤ãŗ",
- "navigation_bar.edit_profile": "ããããŖãŧãĢãįˇ¨é",
"navigation_bar.explore": "æĸį´ĸãã",
"navigation_bar.favourites": "ãæ°ãĢå
Ĩã",
"navigation_bar.filters": "ããŖãĢãŋãŧč¨åŽ",
@@ -486,7 +481,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": "ããããŖãŧãĢįģåããĸããããŧã",
@@ -524,14 +519,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": "ãããã",
@@ -549,7 +545,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": "æŗäģ¤éå",
@@ -713,10 +711,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 9d977e9331..8628cb38a2 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -36,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": "áááŽáŖá áá",
@@ -68,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}?",
@@ -171,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": "áĄáááá",
@@ -211,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}ááĻ",
@@ -279,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 08c70a9405..b69e93952b 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -11,17 +11,20 @@
"account.blocked": "Yettusewá¸Ĩel",
"account.browse_more_on_origin_server": "Snirem ugar deg umeÉŖnu aneáēli",
"account.cancel_follow_request": "Withdraw follow request",
+ "account.copy": "NÉŖel assaÉŖ ÉŖer umaÉŖnu",
"account.disable_notifications": "Ḥbes ur iyi-d-ttazen ara ilÉŖa mi ara d-isuffeÉŖ @{name}",
"account.domain_blocked": "TaÉŖult yeffren",
"account.edit_profile": "áēreg amaÉŖnu",
"account.enable_notifications": "Azen-iyi-d ilÉŖa mi ara d-isuffeÉŖ @{name}",
"account.endorse": "Welleh fell-as deg umaÉŖnu-inek",
+ "account.featured_tags.last_status_never": "Ulac tisuffaÉŖ",
"account.follow": "á¸fer",
"account.followers": "Imeá¸faren",
"account.followers.empty": "Ar tura, ulac yiwen i yeášášafaášen amseqdac-agi.",
"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.go_to_profile": "Ddu ÉŖer umaÉŖnu",
"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.",
@@ -53,7 +56,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 !",
@@ -65,7 +67,7 @@
"bundle_modal_error.message": "Tella-d kra n tuccá¸a mi d-yettali ugbur-agi.",
"bundle_modal_error.retry": "ÆreḠtikelt-nniá¸en",
"closed_registrations_modal.find_another_server": "Aff-d aqeddac nniá¸en",
- "column.about": "Îef",
+ "column.about": "Æef",
"column.blocks": "Imiá¸anen yettusá¸Ĩebsen",
"column.bookmarks": "Ticraá¸",
"column.community": "Tasuddemt tadigant",
@@ -77,7 +79,7 @@
"column.lists": "Tibdarin",
"column.mutes": "Imiá¸anen yettwasgugmen",
"column.notifications": "TilÉŖa",
- "column.pins": "Tijewwaqin yettwasenášá¸en",
+ "column.pins": "TisuffaÉŖ yettwasenášá¸en",
"column.public": "Tasuddemt tamatut",
"column_back_button.label": "TuÉŖalin",
"column_header.hide_settings": "Ffer iÉŖewwaášen",
@@ -88,41 +90,36 @@
"column_header.unpin": "Kkes asenteá¸",
"column_subheading.settings": "IÉŖewwaášen",
"community.column_settings.local_only": "Adigan kan",
- "community.column_settings.media_only": "Allal n teywalt kan",
+ "community.column_settings.media_only": "Imidyaten kan",
"community.column_settings.remote_only": "Anmeggag kan",
"compose.language.change": "Beddel tutlayt",
"compose.language.search": "Nadi tutlayin âĻ",
"compose.published.open": "Ldi",
"compose_form.direct_message_warning_learn_more": "Issin ugar",
- "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.encryption_warning": "",
+ "compose_form.hashtag_warning": "",
"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.poll.option_placeholder": "Taxtiášt {number}",
+ "compose_form.poll.single": "Fren yiwen",
+ "compose_form.publish_form": "TasuffeÉŖt tamaynut",
+ "compose_form.reply": "Err",
+ "compose_form.save_changes": "Leqqem",
"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",
- "confirmations.block.message": "TebÎŗiḠs tidet ad tesá¸ĨebseḠ{name}?",
+ "confirmations.block.message": "TebÉŖiḠs tidet ad tesá¸ĨebseḠ{name}?",
"confirmations.delete.confirm": "Kkes",
"confirmations.delete.message": "TebÉŖiḠs tidet ad tekkseḠtasuffeÉŖt-agi?",
"confirmations.delete_list.confirm": "Kkes",
"confirmations.delete_list.message": "TebÉŖiḠs tidet ad tekkseḠumuÉŖ-agi i lebda?",
"confirmations.discard_edit_media.confirm": "Sefsex",
"confirmations.domain_block.confirm": "Ffer taÉŖult meášáša",
+ "confirmations.edit.confirm": "áēreg",
"confirmations.logout.confirm": "FfeÉŖ",
"confirmations.logout.message": "D tidet tebÉŖiḠad teffÉŖeá¸?",
"confirmations.mute.confirm": "Sgugem",
@@ -142,12 +139,13 @@
"directory.local": "Seg {domain} kan",
"directory.new_arrivals": "Imaynuten id yewá¸en",
"directory.recently_active": "Yermed xas melmi kan",
- "disabled_account_banner.account_settings": "IÎŗewwaášen n umiá¸an",
+ "disabled_account_banner.account_settings": "IÉŖewwaášen n umiá¸an",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"embed.instructions": "áēáēu addad-agi deg usmel-inek s wenÎŗal n tangalt yellan sdaw-agi.",
"embed.preview": "Akka ara d-iban:",
"emoji_button.activity": "Aqeddic",
+ "emoji_button.clear": "Sfeá¸",
"emoji_button.custom": "Udmawan",
"emoji_button.flags": "Innayen",
"emoji_button.food": "Tegwella & Tissit",
@@ -162,7 +160,7 @@
"emoji_button.symbols": "Izamulen",
"emoji_button.travel": "Imeá¸qan d Yinigen",
"empty_column.account_suspended": "Amiá¸an yettwaá¸Ĩbas",
- "empty_column.account_timeline": "Ulac tijewwaqin dagi!",
+ "empty_column.account_timeline": "Ulac tisuffaÉŖ da !",
"empty_column.account_unavailable": "Ur nufi ara amaÉŖnu-ayi",
"empty_column.blocks": "Ur tesá¸ĨebseḠula yiwen n umseqdac ar tura.",
"empty_column.bookmarked_statuses": "Ulac tijewwaqin i terniḠÉŖer yismenyifen-ik ar tura. Ticki terniḠyiwet, ad d-tettwasken da.",
@@ -183,7 +181,7 @@
"explore.suggested_follows": "Imdanen",
"explore.title": "Snirem",
"explore.trending_links": "Isallen",
- "explore.trending_statuses": "TisuffiÉŖin",
+ "explore.trending_statuses": "TisuffaÉŖ",
"explore.trending_tags": "Ihacášagen",
"filter_modal.added.settings_link": "asebter n yiÉŖewwaášen",
"filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}",
@@ -192,8 +190,9 @@
"firehose.local": "Deg uqeddac-ayi",
"follow_request.authorize": "Ssireg",
"follow_request.reject": "Agi",
- "footer.about": "Îef",
- "footer.directory": "Akaram n imaÎŗnuten",
+ "followed_tags": "Ihacášagen yettwaá¸faren",
+ "footer.about": "Æef",
+ "footer.directory": "Akaram n imaÉŖnuten",
"footer.get_app": "Awi-d asnas",
"footer.invite": "Æreá¸-d kra n yimdanen",
"footer.keyboard_shortcuts": "Inegzumen n unasiw",
@@ -216,6 +215,7 @@
"home.column_settings.show_replies": "Ssken-d tiririyin",
"home.hide_announcements": "Ffer ulÉŖuyen",
"home.show_announcements": "Ssken-d ulÉŖuyen",
+ "interaction_modal.no_account_yet": "Ulac-ik¡ikem deg MaášŖášudun?",
"interaction_modal.on_this_server": "Deg uqeddac-ayi",
"interaction_modal.title.follow": "á¸fer {name}",
"intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}",
@@ -256,8 +256,8 @@
"lightbox.close": "Mdel",
"lightbox.compress": "Ḥemmeáē tamnaá¸t n uskan n tugna",
"lightbox.expand": "SimeÉŖer tamnaá¸t n uskan n tugna",
- "lightbox.next": "Îer zdat",
- "lightbox.previous": "Îer deffir",
+ "lightbox.next": "Æer zdat",
+ "lightbox.previous": "Æer deffir",
"link_preview.author": "S-ÉŖur {name}",
"lists.account.add": "Rnu ÉŖer tebdart",
"lists.account.remove": "Kkes seg tebdart",
@@ -273,18 +273,18 @@
"lists.search": "Nadi gar yemdanen i teášášafaášeá¸",
"lists.subheading": "Tibdarin-ik¡im",
"load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}",
- "media_gallery.toggle_visible": "Ffer {number, plural, one {tugna} other {tugniwin}}",
+ "loading_indicator.label": "Yessalay-d âĻ",
+ "media_gallery.toggle_visible": "{number, plural, one {Ffer tugna} other {Ffer tugniwin}}",
"mute_modal.duration": "Tanzagt",
"mute_modal.hide_notifications": "TebÉŖiḠad teffreḠtalÉŖutin n umseqdac-a?",
"mute_modal.indefinite": "Ur yettwasbadu ara",
- "navigation_bar.about": "Îef",
+ "navigation_bar.about": "Æef",
"navigation_bar.blocks": "Imseqdacen yettusá¸Ĩebsen",
"navigation_bar.bookmarks": "Ticraá¸",
"navigation_bar.community_timeline": "Tasuddemt tadigant",
"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",
@@ -294,7 +294,7 @@
"navigation_bar.logout": "FfeÉŖ",
"navigation_bar.mutes": "Iseqdacen yettwasusmen",
"navigation_bar.personal": "Udmawan",
- "navigation_bar.pins": "Tijewwiqin yettwasentá¸en",
+ "navigation_bar.pins": "TisuffaÉŖ yettwasenášá¸en",
"navigation_bar.preferences": "Imenyafen",
"navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut",
"navigation_bar.search": "Nadi",
@@ -321,7 +321,7 @@
"notifications.column_settings.reblog": "SeĮ§hed:",
"notifications.column_settings.show": "Ssken-d tilÉŖa deg ujgu",
"notifications.column_settings.sound": "Rmed imesli",
- "notifications.column_settings.status": "Tiáēenáēunin timaynutin:",
+ "notifications.column_settings.status": "TisuffaÉŖ timaynutin :",
"notifications.filter.all": "Akk",
"notifications.filter.boosts": "SeĮ§hed",
"notifications.filter.favourites": "Imenyafen",
@@ -335,11 +335,15 @@
"notifications.permission_denied": "D awezÉŖi ad yili wermad n yilÉŖa n tnarit axateáš turagt tettwagdel.",
"notifications_permission_banner.enable": "Rmed talÉŖutin n tnarit",
"notifications_permission_banner.title": "Ur zeggel acemma",
+ "onboarding.action.back": "TuÉŖalin ÉŖer deffir",
+ "onboarding.actions.back": "TuÉŖalin ÉŖer deffir",
"onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Azul a #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": "Isem ara d-yettwaskanen",
+ "onboarding.share.title": "Bá¸u amaÉŖnu-inek¡inem",
"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.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
@@ -359,12 +363,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âĻ",
@@ -380,12 +379,14 @@
"report.block": "Sewá¸Ĩel",
"report.categories.other": "Tiyyaá¸",
"report.categories.spam": "Aspam",
- "report.category.title_account": "ameÎŗnu",
+ "report.category.title_account": "ameÉŖnu",
"report.category.title_status": "tasuffeÉŖt",
"report.close": "Immed",
"report.forward": "Bren-it ÉŖeáš {target}",
"report.mute": "Sgugem",
+ "report.next": "Uá¸fiáš",
"report.placeholder": "Iwenniten-nniá¸en",
+ "report.reasons.dislike": "Ur t-á¸ĨemmleÉŖ ara",
"report.reasons.spam": "D aspam",
"report.submit": "Azen",
"report.target": "Mmel {target}",
@@ -396,6 +397,7 @@
"report_notification.open": "Ldi aneqqis",
"search.placeholder": "Nadi",
"search.search_or_paste": "Nadi neÉŖ senášeḠURL",
+ "search_popout.user": "amseqdac",
"search_results.all": "Akk",
"search_results.hashtags": "Ihacášagen",
"search_results.statuses": "TisuffaÉŖ",
@@ -418,7 +420,7 @@
"status.embed": "Seddu",
"status.filtered": "Yettwasizdeg",
"status.load_more": "Sali ugar",
- "status.media_hidden": "TaÉŖwalt tettwaffer",
+ "status.media_hidden": "Amidya yettwaffer",
"status.mention": "Bder-d @{name}",
"status.more": "Ugar",
"status.mute": "Sussem @{name}",
@@ -438,7 +440,7 @@
"status.sensitive_warning": "Agbur amá¸Ĩulfu",
"status.share": "Bá¸u",
"status.show_less": "Ssken-d drus",
- "status.show_less_all": "Semáēi akk tisuffÎŗin",
+ "status.show_less_all": "Semáēi akk tisuffÉŖin",
"status.show_more": "Ssken-d ugar",
"status.show_more_all": "áēerr ugar lebda",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -457,7 +459,7 @@
"timeline_hint.remote_resource_not_displayed": "{resource} seg yiqeddacen-nniá¸en ur d-ttwaskanent ara.",
"timeline_hint.resources.followers": "Imeá¸faášen",
"timeline_hint.resources.follows": "T¡Yeášafaáš",
- "timeline_hint.resources.statuses": "Tijewwaqin tiqdimin",
+ "timeline_hint.resources.statuses": "TisuffaÉŖ tiqdimin",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Ayen mucaÉen tura",
"ui.beforeunload": "Arewway-ik¡im ad iruá¸Ĩ ma yella tefeÉŖ-d deg MaášŖášudun.",
@@ -472,14 +474,13 @@
"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",
"upload_modal.choose_image": "Fren tugna",
"upload_modal.description_placeholder": "AberraÉŖ arurad ineggez nnig n uqjun amuášášis",
"upload_modal.detect_text": "Sefru-d aá¸ris seg tugna",
- "upload_modal.edit_media": "áēreg taÉŖwalt",
+ "upload_modal.edit_media": "áēreg amidya",
"upload_modal.preparing_ocr": "Aheyyi n OCRâĻ",
"upload_modal.preview_label": "Taskant ({ratio})",
"upload_progress.label": "Asali iteddu...",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index e0e047ba14..1f6cc78a57 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",
@@ -63,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": "ĐĐ°ĐąŅ",
@@ -98,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": "ĐŌąŌĐ°ŅŅĐ°Ņ",
@@ -249,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": "ĐаСŅĐģŅĐŧĐ´Đ°Ņ ĐļĶĐŊĐĩ ĐžŌŅŅĐŧĐ°ĐŊĐ´Đ°Ņ",
@@ -310,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": "ĐĐĩŅĐŗŅĐģŅĐēŅŅ ĐļĐĩĐģŅ ŌŌąŅŅĐģŅĐ´Đ°!",
@@ -398,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 473690070f..396aebbdf2 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 5746ab67a5..50d9959994 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -68,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": "ëŽ¤í¸ í´ė ",
@@ -89,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": "ėė˛í íė´ė§ëĨŧ ë ëë§ í ė ėėĩëë¤. ė íŦė ėŊëė ë˛ęˇ¸ę° ėęą°ë, ë¸ëŧė°ė í¸íėą ëŦ¸ė ėŧ ė ėėĩëë¤.",
@@ -146,22 +145,20 @@
"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.multiple": "ë¤ė¤ ė í",
+ "compose_form.poll.option_placeholder": "{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": "ė°¨ë¨",
@@ -240,7 +237,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": "ėė§ ėëŦ´ë 뎤í¸íė§ ėėėĩëë¤.",
@@ -280,6 +277,12 @@
"follow_request.authorize": "íę°",
"follow_request.reject": "ęą°ëļ",
"follow_requests.unlocked_explanation": "ęˇíė ęŗė ė´ ė 긴 ęŗė ė´ ėëė§ëŧë, {domain} ė¤ííë ė´ ęŗė ë¤ė íëĄė° ėė˛ė ėëėŧëĄ ė˛ëĻŦí´ ėŖŧė늴 ėĸę˛ ë¤ęŗ ėę°íėĩëë¤.",
+ "follow_suggestions.curated_suggestion": "ė¤ėŦėė ėļė˛",
+ "follow_suggestions.dismiss": "ë¤ė ëŗ´ė§ ė기",
+ "follow_suggestions.personalized_suggestion": "ę°ė¸íë ėļė˛",
+ "follow_suggestions.popular_suggestion": "ė¸ę¸°ėë ėļė˛",
+ "follow_suggestions.view_all": "ëĒ¨ë ëŗ´ę¸°",
+ "follow_suggestions.who_to_follow": "íëĄė°í ë§í ėŦë",
"followed_tags": "íëĄė° ė¤ė¸ í´ėí꡸",
"footer.about": "ė ëŗ´",
"footer.directory": "íëĄí ėą
ė",
@@ -306,13 +309,9 @@
"hashtag.follow": "íëĄė°",
"hashtag.unfollow": "íëĄė° í´ė ",
"hashtags.and_other": "âĻ꡸ëĻŦęŗ {count, plural,other {#ę° ë}}",
- "home.actions.go_to_explore": "ëŦ´ėė´ ė íė¸ė§ ëŗ´ę¸°",
- "home.actions.go_to_suggestions": "íëĄė°í ėŦë ė°žę¸°",
"home.column_settings.basic": "기ëŗ¸",
"home.column_settings.show_reblogs": "ëļė¤í¸ íė",
"home.column_settings.show_replies": "ëĩę¸ íė",
- "home.explore_prompt.body": "í íŧëėë ë´ę° íëĄė°í í´ėí꡸ ꡸ëĻŦęŗ íëĄė°í ėŦëęŗŧ ëļė¤í¸ę° í¨ęģ ëíëŠëë¤. ëëŦ´ ęŗ ėíę˛ ëęģ´ė§ë¤ëŠ´, ë¤ė ę˛ë¤ė ė´í´ëŗŧ ė ėėĩëë¤.",
- "home.explore_prompt.title": "ė´ęŗŗė ë§ė¤í ëė ë´ ëŗ¸ęą°ė§ė
ëë¤.",
"home.hide_announcements": "ęŗĩė§ėŦí ė¨ę¸°ę¸°",
"home.pending_critical_update.body": "ėëëŦ ë§ė¤í ë ėë˛ëĨŧ ė
ë°ė´í¸ íė¸ė!",
"home.pending_critical_update.link": "ė
ë°ė´í¸ ëŗ´ę¸°",
@@ -408,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": "뎤í¸í ë¨ė´",
@@ -479,7 +477,7 @@
"onboarding.actions.go_to_explore": "ëŦ´ėė´ ė íė¸ė§ ëŗ´ëŦ ę°ę¸°",
"onboarding.actions.go_to_home": "í íŧëëĄ ę°ę¸°",
"onboarding.compose.template": "ėë
#ë§ė¤í ë!",
- "onboarding.follows.empty": "ėíęšė§ë§ ėė§ė ėëŦ´ ę˛ë ëŗ´ėŦëëĻ´ ė ėėĩëë¤. ę˛ėė ė´ėŠíęą°ë ë°ę˛Ŧí기 íė´ė§ėė íëĄė° í ėŦëė ė°žė ė ėėĩëë¤. ėë늴 ė ė íė ë¤ė ėëíė¸ė.",
+ "onboarding.follows.empty": "ėíęšė§ë§ ėė§ė ėëŦ´ ę˛ë ëŗ´ėŦëëĻ´ ė ėėĩëë¤. ę˛ėė ė´ėŠíęą°ë ëëŦëŗ´ę¸° íė´ė§ėė íëĄė° í ėŦëė ė°žė ė ėėĩëë¤. ėë늴 ė ė íė ë¤ė ėëíė¸ė.",
"onboarding.follows.lead": "í íŧëë ë§ė¤í ëė ę˛Ŋííë ėŖŧë ę˛ŊëĄė
ëë¤. ë ë§ė ėŦëë¤ė íëĄė° í ėëĄ ë íë°íęŗ íĨ미ëĄėė§ ę˛ė
ëë¤. ėŦ기 ėėė ėí ëĒëĒ ėļė˛ė ëëĻŊëë¤:",
"onboarding.follows.title": "ë´ę˛ ë§ë í íŧë ęž¸ë¯¸ę¸°",
"onboarding.profile.discoverable": "ë´ íëĄíė ë°ę˛Ŧ ę°ëĨíëëĄ ė¤ė ",
@@ -526,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": "ėļė˛í¨",
@@ -551,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": "ë˛ė ė¸ ëŦ¸ė ",
@@ -659,7 +660,7 @@
"status.media_hidden": "미ëė´ ė¨ę˛¨ė§",
"status.mention": "@{name} ëėę˛ ëŠė
",
"status.more": "ėė¸í",
- "status.mute": "@{name} ëė 뎤í¸í기",
+ "status.mute": "@{name} 뎤í¸",
"status.mute_conversation": "ė´ ëíëĨŧ 뎤í¸",
"status.open": "ėė¸ ė ëŗ´ íė",
"status.pin": "ęŗ ė ",
@@ -674,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": "꡸ëĨ íėí기",
@@ -683,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": "ë§ëĻŦëŗ´ę¸° íėŠëė§ ėė",
@@ -715,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 7d8603cae1..4a0fd671db 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -77,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.",
@@ -129,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",
@@ -351,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ÃĒ",
@@ -437,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",
@@ -608,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 8f384fe125..e42f50aeff 100644
--- a/app/javascript/mastodon/locales/kw.json
+++ b/app/javascript/mastodon/locales/kw.json
@@ -45,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",
@@ -80,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",
@@ -244,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",
@@ -316,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!",
@@ -407,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 3e5747ba8b..698b3da4c3 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 c54ed2a7e9..3ec3b6af1b 100644
--- a/app/javascript/mastodon/locales/lad.json
+++ b/app/javascript/mastodon/locales/lad.json
@@ -4,16 +4,16 @@
"about.disclaimer": "Mastodon es un programario libero, kon kodiche avierto i una marka komersiala de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Razon no desponivle",
"about.domain_blocks.preamble": "Mastodon djeneralmente te permete ver kontenido de i enteraktuar kon utilizadores de kualseker otro sirvidor en el fediverso. Estas son las eksepsiones en este sirvidor en partikolar.",
- "about.domain_blocks.silenced.explanation": "\"Djeneralmente no veras profiles i kontenido de este sirvidor, salvo ke eksplisitamente lo bushkes o sigas algun kuento de el.",
+ "about.domain_blocks.silenced.explanation": "Djeneralmente no veras profiles i kontenido de este sirvidor, salvo ke eksplisitamente lo bushkes o sigas algun kuento de el.",
"about.domain_blocks.silenced.title": "Limitado",
- "about.domain_blocks.suspended.explanation": "Dingunos datos de este sirvidor sera prosesado, magazinado o enterkambiado kon este sirvidor. Enteraksyon o komunikasyon kon sus utilizadores sera imposivle.",
+ "about.domain_blocks.suspended.explanation": "Dingunos datos de este sirvidor seran prosesados, magazinados o enterkambiados. Enteraksyon o komunikasyon kon sus utilizadores sera imposivle.",
"about.domain_blocks.suspended.title": "Suspendido",
"about.not_available": "Esta enformasyon no esta desponivle en este sirvidor.",
"about.powered_by": "Redes sosyalas desentralizadas kon uzo de {mastodon}",
"about.rules": "Reglas del sirvidor",
"account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Adjusta a o kita de listas",
- "account.badges.bot": "Bot",
+ "account.badges.bot": "Otomatizado",
"account.badges.group": "Grupo",
"account.block": "Bloka @{name}",
"account.block_domain": "Bloka el domeno {domain}",
@@ -23,13 +23,13 @@
"account.cancel_follow_request": "Anula solisitud de segir",
"account.copy": "Kopia atadijo de profil",
"account.direct": "Enmenta a @{name} en privado",
- "account.disable_notifications": "No me avizes mas sovre publikasyones de @{name}",
+ "account.disable_notifications": "Desha de avizarme sovre publikasyones de @{name}",
"account.domain_blocked": "Domeno blokado",
"account.edit_profile": "Edita profil",
"account.enable_notifications": "Avizame kuando @{name} publike",
"account.endorse": "Avalia en profil",
"account.featured_tags.last_status_at": "Ultima publikasyon de {date}",
- "account.featured_tags.last_status_never": "\"No ay publikasyones",
+ "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",
@@ -38,19 +38,19 @@
"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.empty": "Este utilizador ainda no sige a dingun.",
"account.go_to_profile": "Va al profil",
"account.hide_reblogs": "Eskonde repartajasyones de @{name}",
"account.in_memoriam": "De bendicha memoria.",
"account.joined_short": "Adjunto",
- "account.languages": "Troka linguas suskrividas",
+ "account.languages": "Troka linguas abonadas",
"account.link_verified_on": "La propriedad de este atadijo fue verifikada el {date}",
"account.locked_info": "El estado de privasita de este konto esta konfigurado komo serado. El proprietario reviza manualmente kien le puede segir.",
"account.media": "Multimedia",
"account.mention": "Enmenta a @{name}",
"account.moved_to": "{name} tiene endikado ke su muevo kuento agora es:",
"account.mute": "Silensia a @{name}",
- "account.mute_notifications_short": "Silensia avizos de @{name}",
+ "account.mute_notifications_short": "Silensia avizos",
"account.mute_short": "Silensia",
"account.muted": "Silensiado",
"account.mutual": "Mutual",
@@ -64,7 +64,7 @@
"account.share": "Partaja el profil de @{name}",
"account.show_reblogs": "Amostra repartajasyones de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}",
- "account.unblock": "Dezbloka @{name}",
+ "account.unblock": "Dezbloka a @{name}",
"account.unblock_domain": "Dezbloka domeno {domain}",
"account.unblock_short": "Dezbloka",
"account.unendorse": "No avalia en profil",
@@ -79,8 +79,8 @@
"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.instance_followers": "Suivantes a los kualos nuestros utilizadores pedrerian",
+ "admin.impact_report.instance_follows": "Suivantes a los kualos sus utilizadores pedrerian",
"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",
@@ -88,8 +88,7 @@
"alert.unexpected.title": "Atyo!",
"announcement.announcement": "Pregon",
"attachments_list.unprocessed": "(no prosesado)",
- "audio.hide": "Eskonder audio",
- "autosuggest_hashtag.per_week": "{count} por semana",
+ "audio.hide": "Eskonde audio",
"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.",
@@ -111,7 +110,7 @@
"column.about": "Sovre mozotros",
"column.blocks": "Utilizadores blokados",
"column.bookmarks": "Markadores",
- "column.community": "Linya de tiempo lokala",
+ "column.community": "Linya lokala",
"column.direct": "Enmentaduras privadas",
"column.directory": "Eksplora profiles",
"column.domain_blocks": "Domenos blokados",
@@ -123,7 +122,7 @@
"column.mutes": "Utilizadores silensiados",
"column.notifications": "Avizos",
"column.pins": "Publikasyones fiksadas",
- "column.public": "Linya de tiempo federada",
+ "column.public": "Linya federada",
"column_back_button.label": "Atras",
"column_header.hide_settings": "Eskonde opsyones",
"column_header.moveLeft_settings": "Move kolumna a la siedra",
@@ -146,22 +145,20 @@
"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.multiple": "Multiples opsyones",
"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.poll.single": "Eskoje uno",
+ "compose_form.poll.switch_to_multiple": "Troka anketa para permeter a eskojer mas ke una opsyon",
+ "compose_form.poll.switch_to_single": "Troka anketa para permeter a eskojer solo una opsyon",
+ "compose_form.poll.type": "Estilo",
"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.reply": "Arisponde",
+ "compose_form.save_changes": "Aktualiza",
"compose_form.spoiler.marked": "Kita avertensya de kontenido",
"compose_form.spoiler.unmarked": "Adjusta avertensya de kontenido",
- "compose_form.spoiler_placeholder": "Eskrive tu avertensya aki",
+ "compose_form.spoiler_placeholder": "Avertensya de kontenido (opsyonal)",
"confirmation_modal.cancel": "Anula",
"confirmations.block.block_and_report": "Bloka i raporta",
"confirmations.block.confirm": "Bloka",
@@ -177,16 +174,16 @@
"confirmations.domain_block.confirm": "Bloka domeno entero",
"confirmations.domain_block.message": "Estas totalmente siguro ke keres blokar todo el domeno {domain}? En djeneral unos kuantos blokos o silensiamientos son sufisientes i preferavles. No veras kontenido de akel domeno en dinguna linya de tiempo publika ni ent tus avizos. Tus suivantes de akel domeno seran kitados.",
"confirmations.edit.confirm": "Edita",
- "confirmations.edit.message": "Editar agora kitara el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
+ "confirmations.edit.message": "Si edites agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
"confirmations.logout.confirm": "Sal",
"confirmations.logout.message": "Estas siguro ke keres salir de tu kuento?",
"confirmations.mute.confirm": "Silensia",
"confirmations.mute.explanation": "Esto eskondera las publikasyones de este kuento i publikasyones ke lo enmentan, pero ainda les permetera segirte.",
"confirmations.mute.message": "Estas siguro ke keres silensiar a {name}?",
- "confirmations.redraft.confirm": "Efasar i reeskrivir",
+ "confirmations.redraft.confirm": "Efasa i reeskrive",
"confirmations.redraft.message": "Estas siguro ke keres efasar esta publikasyon i reeskrivirla? Pedreras todos los favoritos i repartajasyones asosiados kon esta publikasyon i repuestas a eya seran guerfanadas.",
"confirmations.reply.confirm": "Arisponde",
- "confirmations.reply.message": "Arispondir agora kitara el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
+ "confirmations.reply.message": "Si arispondas agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
"confirmations.unfollow.confirm": "Desige",
"confirmations.unfollow.message": "Estas siguro ke keres deshar de segir a {name}?",
"conversation.delete": "Efasa konversasyon",
@@ -209,13 +206,13 @@
"dismissable_banner.explore_tags": "Estas etiketas estan agora popularas en la red sosyala. Etiketas uzadas por mas djente aparesen primero.",
"dismissable_banner.public_timeline": "Estas son las publikasyones publikas mas resientes de personas en la red sosyala a las kualas la djente de {domain} sige.",
"embed.instructions": "Enkrusta esta publikasyon en tu sitio internetiko kopiando este kodiche.",
- "embed.preview": "Ansi paresera:",
+ "embed.preview": "Paresera ansina:",
"emoji_button.activity": "Aktivita",
"emoji_button.clear": "Alimpia",
"emoji_button.custom": "Personalizado",
"emoji_button.flags": "Bandieras",
"emoji_button.food": "Kumidas i beverajes",
- "emoji_button.label": "Adjustar emoji",
+ "emoji_button.label": "Adjusta emoji",
"emoji_button.nature": "Natura",
"emoji_button.not_found": "Emojis no topados",
"emoji_button.objects": "Objektos",
@@ -225,7 +222,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_hides_collections": "Este utilizador desidio no amostrar esta enformasyon",
"empty_column.account_suspended": "Kuento suspendido",
"empty_column.account_timeline": "No ay publikasyones aki!",
"empty_column.account_unavailable": "Profil no desponivle",
@@ -236,9 +233,9 @@
"empty_column.domain_blocks": "Ainda no ay domenos blokados.",
"empty_column.explore_statuses": "No ay dingunos trendes agora. Mira mas tadre!",
"empty_column.favourited_statuses": "Ainda no tienes publikasyones favoritas. Kuando indikes ke una te plaze, se amostrara aki.",
- "empty_column.favourites": "Nadie tiene indikado ke le plaze una de tus publikasyones. Kuando algun lo aga, se amostrara aki.",
+ "empty_column.favourites": "Dingun no tiene indikado ke le plaze una de tus publikasyones. Kuando algun lo ayga, se amostrara aki.",
"empty_column.follow_requests": "No tienes dinguna solisitud de suivante. Kuando risivas una, se amostrara aki.",
- "empty_column.followed_tags": "Ainda no tienes segido dinguna etiketa. Kuando lo agas, se amostraran aki.",
+ "empty_column.followed_tags": "Ainda no tienes segido dinguna etiketa. Kuando lo aygas, se amostraran aki.",
"empty_column.hashtag": "Ainda no ay niente en esta etiketa.",
"empty_column.home": "Tu linya de tiempo esta vaziya! Sige a mas personas para inchirla.",
"empty_column.list": "Ainda no ay niente en esta lista. Kuando miembros de esta lista publiken muevas publikasyones, se amostraran aki.",
@@ -247,14 +244,14 @@
"empty_column.notifications": "Ainda no tienes dingun avizo. Kuando otras personas enteraktuen kontigo, se amostraran aki.",
"empty_column.public": "No ay niente aki! Eskrive algo publikamente o manualmente sige utilizadores de otros sirvidores para inchirlo",
"error.unexpected_crash.explanation": "Por un yerro en muestro kodiche o un problem de kompatibilita kon el navigador, no se puede amostrar esta pajina djustamente.",
- "error.unexpected_crash.explanation_addons": "No se puede amostrar esta pajina djustamente. Este yerro probavlemente fue kauzado por un komplimento del navigador o por un enstrumento de traduksion.",
+ "error.unexpected_crash.explanation_addons": "No se puede amostrar esta pajina djustamente. Este yerro probavlemente fue kauzado por un komplimento del navigador o por un enstrumento de traduksyon.",
"error.unexpected_crash.next_steps": "Aprova arefreskar la pajina. Si esto no ayuda, es posivle ke ainda puedas kulaenar Mastodon kon otro navigador u otra aplikasyon nativa.",
- "error.unexpected_crash.next_steps_addons": "Aprova inkapasitarlos i arefreskar la pajina. Si esto no ayuda, es posivle ke ainda puedas kulanear Mastodon kon otro navigador u otra aplikasyon nativa.",
- "errors.unexpected_crash.copy_stacktrace": "Kopiar stacktrace al portapapeles",
- "errors.unexpected_crash.report_issue": "Raportar problema",
+ "error.unexpected_crash.next_steps_addons": "Aprova inkapasitarlos i arefreskar la pajina. Si esto no te ayuda, es posivle ke ainda puedas kulanear Mastodon kon otro navigador u otra aplikasyon nativa.",
+ "errors.unexpected_crash.copy_stacktrace": "Kopia stacktrace al portapapeles",
+ "errors.unexpected_crash.report_issue": "Raporta problema",
"explore.search_results": "Rizultados de bushkeda",
"explore.suggested_follows": "Djente",
- "explore.title": "Eksplorar",
+ "explore.title": "Eksplora",
"explore.trending_links": "Haberes",
"explore.trending_statuses": "Publikasyones",
"explore.trending_tags": "Etiketas",
@@ -270,22 +267,28 @@
"filter_modal.select_filter.context_mismatch": "no se aplika a este konteksto",
"filter_modal.select_filter.expired": "kadukado",
"filter_modal.select_filter.prompt_new": "Mueva kategoria: {name}",
- "filter_modal.select_filter.search": "Bushkar o kriyar",
- "filter_modal.select_filter.subtitle": "Kulanear una kategoria egzistente o kriya mueva",
- "filter_modal.select_filter.title": "Filtrar esta publikasyon",
- "filter_modal.title.status": "Filtrar una publikasyon",
+ "filter_modal.select_filter.search": "Bushka o kriya",
+ "filter_modal.select_filter.subtitle": "Kulanea una kategoria egzistente o kriya mueva",
+ "filter_modal.select_filter.title": "Filtra esta publikasyon",
+ "filter_modal.title.status": "Filtra una publikasyon",
"firehose.all": "Todo",
"firehose.local": "Este sirvidor",
"firehose.remote": "Otros sirvidores",
"follow_request.authorize": "Autoriza",
"follow_request.reject": "Refuza",
"follow_requests.unlocked_explanation": "Aunke tu kuento no esta serrado, la taifa de {domain} kreye ke talvez keres revizar manualmente las solisitudes de segimento de estos kuentos.",
+ "follow_suggestions.curated_suggestion": "Sujestion del sirvidor",
+ "follow_suggestions.dismiss": "No amostra mas",
+ "follow_suggestions.personalized_suggestion": "Sujestion personalizada",
+ "follow_suggestions.popular_suggestion": "Sujestion populara",
+ "follow_suggestions.view_all": "Ve todos",
+ "follow_suggestions.who_to_follow": "A ken segir",
"followed_tags": "Etiketas segidas",
"footer.about": "Sovre mozotros",
"footer.directory": "Katalogo de profiles",
"footer.get_app": "Abasha aplikasyon",
- "footer.invite": "Envitar a djente",
- "footer.keyboard_shortcuts": "Akortamientos de klavye",
+ "footer.invite": "Envita a djente",
+ "footer.keyboard_shortcuts": "Akortamientos de klaviatura",
"footer.privacy_policy": "Politika de privasita",
"footer.source_code": "Ve kodiche fuente",
"footer.status": "Estado",
@@ -295,24 +298,20 @@
"hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "sin {additional}",
"hashtag.column_settings.select.no_options_message": "Rekomendasyones no topadas",
- "hashtag.column_settings.select.placeholder": "Meter etiketasâĻ",
+ "hashtag.column_settings.select.placeholder": "Mete etiketasâĻ",
"hashtag.column_settings.tag_mode.all": "Todos estos",
"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.column_settings.tag_toggle": "Inkluye 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",
+ "hashtag.follow": "Sige etiketa",
+ "hashtag.unfollow": "Desige 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.column_settings.show_reblogs": "Amostra repartajasyones",
+ "home.column_settings.show_replies": "Amostra repuestas",
"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",
@@ -328,6 +327,7 @@
"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}",
@@ -347,7 +347,7 @@
"keyboard_shortcuts.favourite": "Endika ke te plaze una publikasyon",
"keyboard_shortcuts.favourites": "Avre lista de favoritos",
"keyboard_shortcuts.federated": "Avre linya federada",
- "keyboard_shortcuts.heading": "Akortamientos de klavye",
+ "keyboard_shortcuts.heading": "Akortamientos de klaviatura",
"keyboard_shortcuts.home": "Avre linya prinsipala",
"keyboard_shortcuts.hotkey": "Klave rapido",
"keyboard_shortcuts.legend": "Amostra esta lejenda",
@@ -407,8 +407,7 @@
"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.explore": "Eksplora",
"navigation_bar.favourites": "Te plazen",
"navigation_bar.filters": "Biervos silensiados",
"navigation_bar.follow_requests": "Solisitudes de segimiento",
@@ -421,7 +420,7 @@
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Publikasyones fiksadas",
"navigation_bar.preferences": "Preferensyas",
- "navigation_bar.public_timeline": "Linya de tiempo federada",
+ "navigation_bar.public_timeline": "Linya federada",
"navigation_bar.search": "Bushka",
"navigation_bar.security": "Segurita",
"not_signed_in_indicator.not_signed_in": "Nesesitas konektarse kon tu kuento para akseder este rekurso.",
@@ -436,7 +435,7 @@
"notification.reblog": "{name} repartajo tu publikasyon",
"notification.status": "{name} publiko algo",
"notification.update": "{name} edito una publikasyon",
- "notifications.clear": "Efasar avizos",
+ "notifications.clear": "Efasa avizos",
"notifications.clear_confirmation": "Estas siguro ke keres permanentemente efasar todos tus avizos?",
"notifications.column_settings.admin.report": "Muveos raportos:",
"notifications.column_settings.admin.sign_up": "Muevas enrejistrasyones:",
@@ -452,10 +451,10 @@
"notifications.column_settings.push": "Avizos arrepushados",
"notifications.column_settings.reblog": "Repartajasyones:",
"notifications.column_settings.show": "Amostra en kolumna",
- "notifications.column_settings.sound": "Reproduzir son",
+ "notifications.column_settings.sound": "Reproduse son",
"notifications.column_settings.status": "Publikasyones muevas:",
"notifications.column_settings.unread_notifications.category": "Avizos no meldados",
- "notifications.column_settings.unread_notifications.highlight": "Avaliar avizos no meldados",
+ "notifications.column_settings.unread_notifications.highlight": "Avalia avizos no meldados",
"notifications.column_settings.update": "Edisyones:",
"notifications.filter.all": "Todos",
"notifications.filter.boosts": "Repartajasyones",
@@ -470,34 +469,49 @@
"notifications.permission_denied": "Avizos de ensimameza no estan desponivles porke ya se tiene refuzado el permiso",
"notifications.permission_denied_alert": "\"No se pueden kapasitar los avizos de ensimameza, porke ya se tiene refuzado el permiso de navigador",
"notifications.permission_required": "Avizos de ensimameza no estan desponivles porke los nesesarios permisos no tienen sido risividos.",
- "notifications_permission_banner.enable": "Kapasitar avizos de ensimameza",
+ "notifications_permission_banner.enable": "Kapasita avizos de ensimameza",
"notifications_permission_banner.how_to_control": "Para risivir avizos kuando Mastodon no esta avierto, kapasita avizos de ensimameza. Puedes kontrolar presizamente kualos tipos de enteraksiones djeneren avizos de ensimameza kon el boton {icon} arriva kuando esten kapasitadas.",
- "notifications_permission_banner.title": "Nunka te piedres niente",
+ "notifications_permission_banner.title": "Nunkua 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.lead": "Tu linya prinsipala es la forma prinsipala de eksperiensa de Mastodon. Kuantas mas personas sigas, sera mas aktiva o interesante. Para ampesar, aki ay algunas sujestyones:",
"onboarding.follows.title": "Personaliza tu linya prinsipala",
"onboarding.profile.discoverable": "Faz ke mi profil apareska en bushkedas",
+ "onboarding.profile.discoverable_hint": "Kuando permites ke tu profil sea diskuvriravle en Mastodon, tus publikasyones podran apareser en rezultados de bushkedas i trendes i tu profil podra ser sujerido a personas kon intereses similares a los tuyos.",
"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.lead": "Agora eres parte de Mastodon, una red sosyala unika y desentralizada ande tu, no un algoritmo, puedes personalizar tu propya eksperyensya. Te entrodiziramos a esta mueva frontera sosyala:",
"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 kon 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": "Informa a tus amigos komo toparte en Mastodon",
"onboarding.steps.share_profile.title": "Partaja tu profil de Mastodon",
+ "onboarding.tips.2fa": "
Saviyas? Puedes protejar tu kuento konfigurando la autentifikasyon de dos pasos en la konfigurasyon de tu kuento. Funksyona kon kualsekera aplikasyon de TOTP ke eskojas. No ay menester de uzar tu numero de telefon!",
+ "onboarding.tips.accounts_from_other_servers": "
Saviyas? komo Mastodon es desentralizado, algunos profiles que topas estan lokalizados en sirvidores distinktos del tuyo. I malgrado esto, puedes enteraktuar kon eyos! Sus sirvidor forma la sigunda mitad de sus nombres de utilizador!",
+ "onboarding.tips.migration": "
Savias? Si en el avenir pensas ke {domain} no es el sirvidor adekuado para ti, puedes moverte a otruno sirvidor de Mastodon sir pedrer a tus suivantes. Inkluzo puedes ser el balabay de tu propyo sirvidor!",
+ "onboarding.tips.verification": "
Savias? Puedes verifikar tu kuento ponyendo un atadijo a tu profil de Mastodon en tu propio sitio web i adjustando el sitio a tu profil. No ay menester de pagamyentos o dokumentos!",
+ "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",
@@ -510,14 +524,15 @@
"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.direct.long": "Todos enmentados en la publikasyon",
+ "privacy.direct.short": "Djente espesifika",
+ "privacy.private.long": "Solo para tus suivantes",
+ "privacy.private.short": "Suivantes",
+ "privacy.public.long": "Todos en i afuera de Mastodon",
"privacy.public.short": "Publiko",
- "privacy.unlisted.long": "Vizivle para todos, ama eskluido de las fonksiones de diskuvrimyento",
- "privacy.unlisted.short": "No listado",
+ "privacy.unlisted.additional": "Esto funksyona exaktamente komo publiko, eksepto ke la publikasyon no aparesera en linyas publikas o etiketas, la eksplorasyon o bushkedas de Mastodon, inkluzo si kapasites esto para tu kuento.",
+ "privacy.unlisted.long": "Vizivle para todos, ama no en trendes, etiketas o linyas publikas",
+ "privacy.unlisted.short": "Publiko i silensyozo",
"privacy_policy.last_updated": "Ultima aktualizasyon: {date}",
"privacy_policy.title": "Politika de privasita",
"recommended": "Rekomendado",
@@ -535,7 +550,9 @@
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
"relative_time.today": "oy",
+ "reply_indicator.attachments": "{count, plural, one {# anekso} other {# aneksos}}",
"reply_indicator.cancel": "Anula",
+ "reply_indicator.poll": "Anketa",
"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",
@@ -548,7 +565,7 @@
"report.category.title_status": "publikasyon",
"report.close": "Fecho",
"report.comment.title": "Ay algo mas ke deveriamos saver?",
- "report.forward": "Reembiar a {target}",
+ "report.forward": "Reembia a {target}",
"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.",
@@ -568,19 +585,19 @@
"report.rules.title": "Kualas reglas estan violadas?",
"report.statuses.subtitle": "Eskoje todas ke korespondan",
"report.statuses.title": "Ay alguna publikasyon ke suporta este raporto?",
- "report.submit": "Embiar",
+ "report.submit": "Embia",
"report.target": "Raportando a {target}",
"report.thanks.take_action": "Aki estan tus opsyones para kontrolar lo ke ves en Mastodon:",
"report.thanks.take_action_actionable": "Mientres revizamos esto, puedes tomar aksyones kontra @{name}:",
"report.thanks.title": "No keres ver esto?",
"report.thanks.title_actionable": "Mersi por raportarlo, vamos revizarlo.",
- "report.unfollow": "Desegir a @{name}",
+ "report.unfollow": "Desige 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",
+ "report_notification.categories.violation": "Violasyon de reglas",
"report_notification.open": "Avre raporto",
"search.no_recent_searches": "No ay bushkedas resientes",
"search.placeholder": "Bushka",
@@ -594,7 +611,7 @@
"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.quick_actions": "Aksyones rapidas",
"search_popout.recent": "Bushkedas resientes",
"search_popout.specific_date": "dato espesifiko",
"search_popout.user": "utilizador",
@@ -671,7 +688,7 @@
"status.translate": "Trezlada",
"status.translated_from_with": "Trezladado dizde {lang} kon {provider}",
"status.uncached_media_warning": "Vista previa no desponivle",
- "status.unmute_conversation": "Desilensiar konversasyon",
+ "status.unmute_conversation": "Desilensia konversasyon",
"status.unpin": "Defiksar del profil",
"subscribed_languages.lead": "Solo publikasyones en linguas eskojidas se amostraran en tus linya de tiempo prinsipala i listas dempues del trokamiento. Eskoje dinguna para risivir publikasyones en todas las linguas.",
"subscribed_languages.save": "Guadra trokamientos",
@@ -699,10 +716,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",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 82f1669b1a..0923a10065 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.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}",
@@ -58,8 +58,8 @@
"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}",
@@ -69,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!",
@@ -104,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",
@@ -116,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Ä",
@@ -146,22 +145,20 @@
"compose_form.lock_disclaimer": "Tavo paskyra nÄra {locked}. Bet kas gali sekti tave ir perÅžiÅĢrÄti tik sekÄjams skirtus įraÅĄus.",
"compose_form.lock_disclaimer.lock": "uÅžrakinta",
"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",
@@ -272,6 +269,12 @@
"follow_request.authorize": "Autorizuoti",
"follow_request.reject": "Atmesti",
"follow_requests.unlocked_explanation": "Nors tavo paskyra neuÅžrakinta, {domain} personalas mano, kad galbÅĢt norÄsi rankiniu bÅĢdu patikrinti ÅĄiÅŗ paskyrÅŗ sekimo uÅžklausas.",
+ "follow_suggestions.curated_suggestion": "RedaktoriÅŗ pasirinkimas",
+ "follow_suggestions.dismiss": "Daugiau nerodyti",
+ "follow_suggestions.personalized_suggestion": "Suasmenintas pasiÅĢlymas",
+ "follow_suggestions.popular_suggestion": "Populiarus pasiÅĢlymas",
+ "follow_suggestions.view_all": "PerÅžiÅĢrÄti viskÄ
",
+ "follow_suggestions.who_to_follow": "KÄ
sekti",
"followed_tags": "Sekamos saitaÅžodÅžiai",
"footer.about": "Apie",
"footer.directory": "ProfiliÅŗ katalogas",
@@ -298,18 +301,19 @@
"hashtag.follow": "Sekti grotaÅžymÄ",
"hashtag.unfollow": "Nesekti grotaÅžymÄs",
"hashtags.and_other": "âĻir{count, plural,other {#daugiau}}",
- "home.actions.go_to_explore": "ÅŊiÅĢrÄti kas populiaru",
- "home.actions.go_to_suggestions": "Rasti ÅžmoniÅŗ sekimui",
"home.column_settings.basic": "Pagrindinis",
"home.column_settings.show_reblogs": "Rodyti \"boosts\"",
"home.column_settings.show_replies": "Rodyti atsakymus",
"home.hide_announcements": "SlÄpti skelbimus",
+ "home.pending_critical_update.link": "ÅŊiÅĢrÄti atnaujinimus",
+ "home.pending_critical_update.title": "Galimas kritinis saugumo atnaujinimas!",
"interaction_modal.no_account_yet": "Nesi Mastodon?",
"interaction_modal.on_another_server": "Kitame serveryje",
"interaction_modal.on_this_server": "Å iame serveryje",
"interaction_modal.sign_in": "Nesi prisijungÄs (-usi) prie ÅĄio serverio. Kur yra laikoma tavo paskyra?",
"interaction_modal.sign_in_hint": "Patarimas: tai svetainÄ, kurioje uÅžsiregistravai. Jei neprisimeni, ieÅĄkok sveikinimo el. laiÅĄko savo paÅĄto dÄÅžutÄje. Taip pat gali įvesti visÄ
savo naudotojo vardÄ
(pvz., @Mastodon@mastodon.social).",
"interaction_modal.title.favourite": "MÄgstamiausias {name} įraÅĄas",
+ "interaction_modal.title.follow": "Sekti {name}",
"keyboard_shortcuts.back": "to navigate back",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "to boost",
@@ -342,6 +346,24 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "UÅždaryti",
+ "lightbox.next": "Kitas",
+ "lightbox.previous": "Ankstesnis",
+ "limited_account_hint.action": "Vis tiek rodyti profilį",
+ "limited_account_hint.title": "Šį profilį paslÄpÄ {domain} moderatoriai.",
+ "link_preview.author": "SukÅĢrÄ {name}",
+ "lists.account.add": "PridÄti į sÄ
raÅĄÄ
",
+ "lists.account.remove": "PaÅĄalinti iÅĄ sÄ
raÅĄo",
+ "lists.delete": "IÅĄtrinti sÄ
raÅĄÄ
",
+ "lists.edit": "Redaguoti sÄ
raÅĄÄ
",
+ "lists.edit.submit": "PrieraÅĄo pakeitimas",
+ "lists.new.create": "PridÄti sÄ
raÅĄÄ
",
+ "lists.new.title_placeholder": "Naujas sÄ
raÅĄo pavadinimas",
+ "lists.replies_policy.followed": "Bet kuris sekamas naudotojas",
+ "lists.replies_policy.list": "SÄ
raÅĄo nariai",
+ "lists.replies_policy.none": "Nei vienas",
+ "lists.replies_policy.title": "Rodyti atsakymus:",
+ "lists.search": "IeÅĄkoti tarp sekamÅŗ ÅžmoniÅŗ",
+ "lists.subheading": "JÅĢsÅŗ sÄ
raÅĄai",
"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}.",
@@ -356,7 +378,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",
@@ -466,14 +487,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",
@@ -485,7 +507,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",
@@ -504,6 +528,11 @@
"report.reasons.legal": "Tai nelegalu",
"report.reasons.legal_description": "Manai, kad tai paÅžeidÅžia tavo arba serverio ÅĄalies įstatymus",
"report.reasons.other": "Tai kaÅžkas kita",
+ "report.reasons.other_description": "Å is klausimas neatitinka kitÅŗ kategorijÅŗ",
+ "report.reasons.spam": "Tai ÅĄlamÅĄtas",
+ "report.reasons.spam_description": "KenkÄjiÅĄkos nuorodos, netikras įsitraukimas arba pasikartojantys atsakymai",
+ "report.reasons.violation": "Tai paÅžeidÅžia serverio taisykles",
+ "report.reasons.violation_description": "ÅŊinai, kad tai paÅžeidÅžia konkreÄias taisykles",
"report.rules.subtitle": "Pasirink viskÄ
, kas tinka",
"report.rules.title": "Kokios taisyklÄs paÅžeidÅžiamos?",
"report.statuses.subtitle": "Pasirinkti viskÄ
, kas tinka",
@@ -517,35 +546,71 @@
"report.unfollow": "Nebesekti @{name}",
"report.unfollow_explanation": "JÅĢs sekate ÅĄiÄ
paskyrÄ
. NorÄdami nebematyti jÅŗ įraÅĄÅŗ savo pagrindiniame kanale, panaikinkite jÅŗ sekimÄ
.",
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
+ "report_notification.categories.legal": "Legalus",
+ "report_notification.categories.other": "Kita",
+ "report_notification.categories.spam": "Å lamÅĄtas",
+ "report_notification.categories.violation": "TaisyklÄs paÅžeidimas",
+ "search.no_recent_searches": "PaieÅĄkos įraÅĄÅŗ nÄra",
"search.placeholder": "PaieÅĄka",
+ "search.quick_action.account_search": "Profiliai, atitinkantys {x}",
+ "search.quick_action.go_to_account": "Eiti į profilį {x}",
+ "search.quick_action.go_to_hashtag": "Eiti į hashtag {x}",
+ "search.quick_action.open_url": "Atidaryti URL adresÄ
Mastodon",
+ "search.quick_action.status_search": "PraneÅĄimai, atitinkantys {x}",
"search.search_or_paste": "IeÅĄkok arba įklijuok URL",
"search_popout.full_text_search_disabled_message": "Nepasiekima {domain}.",
"search_popout.full_text_search_logged_out_message": "Pasiekiama tik prisijungus.",
"search_popout.language_code": "ISO kalbos kodas",
+ "search_popout.options": "PaieÅĄkos nustatymai",
+ "search_popout.quick_actions": "Greiti veiksmai",
+ "search_popout.recent": "Naujausios paieÅĄkos",
"search_popout.specific_date": "konkreti data",
"search_popout.user": "naudotojas",
"search_results.accounts": "Profiliai",
"search_results.all": "Visi",
"search_results.hashtags": "SaitaÅžodÅžiai",
"search_results.nothing_found": "Nepavyko rasti nieko pagal ÅĄiuos paieÅĄkos terminus.",
+ "search_results.see_all": "ÅŊiÅĢrÄti viskÄ
",
"search_results.statuses": "Toots",
+ "search_results.title": "IeÅĄkoti {q}",
"server_banner.about_active_users": "ÅŊmonÄs, kurie naudojosi ÅĄiuo serveriu per pastarÄ
sias 30 dienÅŗ (mÄnesio aktyvÅĢs naudotojai)",
"server_banner.active_users": "aktyvÅĢs naudotojai",
+ "server_banner.administered_by": "Administruoja:",
+ "server_banner.introduction": "{domain} yra decentralizuoto socialinio tinklo, kurį valdo {mastodon}, dalis.",
+ "server_banner.learn_more": "SuÅžinoti daugiau",
+ "server_banner.server_stats": "Serverio statistika:",
+ "sign_in_banner.create_account": "Sukurti paskyrÄ
",
"sign_in_banner.sign_in": "Prisijungimas",
+ "sign_in_banner.sso_redirect": "Prisijungti arba Registruotis",
"sign_in_banner.text": "Prisijunk, kad galÄtum sekti profilius arba saitaÅžodÅžius, mÄgsti, bendrinti ir atsakyti į įraÅĄus. Taip pat gali bendrauti iÅĄ savo paskyros kitame serveryje.",
+ "status.admin_account": "Atvira moderavimo sÄ
saja @{name}",
+ "status.admin_domain": "Atvira moderavimo sÄ
saja {domain}",
"status.admin_status": "Open this status in the moderation interface",
+ "status.block": "Blokuoti @{name}",
+ "status.bookmark": "ÅŊymÄ",
"status.copy": "Kopijuoti nuorodÄ
į įraÅĄÄ
",
"status.delete": "IÅĄtrinti",
+ "status.detailed_status": "IÅĄsami pokalbio perÅžiÅĢra",
+ "status.direct": "PrivaÄiai paminÄti @{name}",
+ "status.direct_indicator": "Privatus paminÄjimas",
"status.edit": "Redaguoti",
"status.edited": "Redaguota {date}",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
+ "status.embed": "ÄŽterptas",
+ "status.favourite": "MÄgstamiausias",
+ "status.filter": "Filtruoti ÅĄÄ¯ įraÅĄÄ
",
+ "status.filtered": "Filtruota",
"status.hide": "SlÄpti įraÅĄÄ
",
+ "status.history.created": "{name} sukurtas {date}",
+ "status.history.edited": "{name} redaguotas {date}",
"status.load_more": "Pakrauti daugiau",
"status.media.open": "Spausk, kad atidaryti",
"status.media.show": "Spausk, kad matyti",
"status.media_hidden": "PaslÄpta medija",
"status.mention": "PaminÄti @{name}",
"status.more": "Daugiau",
+ "status.mute": "Nutildyti @{name}",
+ "status.mute_conversation": "Nutildyti pokalbį",
"status.open": "Expand this status",
"status.pin": "Prisegti prie profilio",
"status.pinned": "Prisegtas įraÅĄas",
@@ -579,9 +644,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 c06a1d9368..07a7b25a79 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -86,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.",
@@ -143,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",
@@ -302,13 +291,9 @@
"hashtag.follow": "Sekot tÄmturim",
"hashtag.unfollow": "PÄrstÄt sekot tÄmturim",
"hashtags.and_other": "..un {count, plural, other {# vairÄk}}",
- "home.actions.go_to_explore": "SkatÄĢt tendences",
- "home.actions.go_to_suggestions": "Atrodi cilvÄkus kam sekot",
"home.column_settings.basic": "Pamata",
"home.column_settings.show_reblogs": "RÄdÄĢt pastiprinÄtos ierakstus",
"home.column_settings.show_replies": "RÄdÄĢt atbildes",
- "home.explore_prompt.body": "TavÄ mÄjas plÅĢsmÄ bÅĢs daÅžÄdu ziÅu sajaukums no atsaucÄm, kurÄm esi izvÄlÄjies sekot, personÄm, kurÄm esi izvÄlÄjies sekot, un ziÅÄm, kuras tÄs izceÄŧ. Ja tas ÅĄÄˇiet pÄrÄk kluss, iespÄjams, vÄlÄsies:",
- "home.explore_prompt.title": "Å ÄĢ ir tava Mastodon mÄjvieta.",
"home.hide_announcements": "SlÄpt paziÅojumus",
"home.pending_critical_update.body": "LÅĢdzu, pÄc iespÄjas ÄtrÄk atjaunini savu Mastodon serveri!",
"home.pending_critical_update.link": "SkatÄĢt jauninÄjumus",
@@ -403,7 +388,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",
@@ -510,14 +494,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",
@@ -697,10 +674,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 bdef3f4a5f..f7080842b7 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -48,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": "ĐĐ°ŅвОŅи",
@@ -76,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": "ĐŅĐēĐ°Đļи",
@@ -182,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": "ĐĄĐģĐĩĐ´ĐĩŅĐ° и ŅĐģĐĩĐ´ĐąĐĩĐŊиŅи",
@@ -229,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 11636646b2..0059dd333b 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -60,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": "ā´ĩāĩā´Ŗāĩā´āĩā´ ā´ļāĩā´°ā´Žā´ŋā´āĩā´āĩā´",
@@ -102,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": "ā´¤ā´ā´¯āĩā´",
@@ -244,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": "ā´˛āĩā´āĩā´āĩā´āĩ",
@@ -302,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": "ā´˛ā´āĩā´¯ā´Žā´žā´āĩā´āĩā´¨āĩā´¨āĩâĻ",
@@ -372,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 7f5b7d6524..20231f0bbf 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -73,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": "ā¤šā¤ž ā¤ā¤ā¤ ā¤˛āĨā¤Ą ā¤ā¤°ā¤¤ā¤žā¤ā¤¨ā¤ž ā¤ā¤žā¤šāĨā¤¤ā¤°āĨ ā¤āĨā¤ā¤˛āĨ ā¤ā¤šāĨ.",
@@ -99,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",
@@ -228,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 50a48db1ea..2c3221cfdd 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -86,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.",
@@ -143,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",
@@ -298,13 +287,9 @@
"hashtag.follow": "Ikuti hashtag",
"hashtag.unfollow": "Nyahikut tanda pagar",
"hashtags.and_other": "âĻdan {count, plural, other {# more}}",
- "home.actions.go_to_explore": "Lihat apa yand sedang tren",
- "home.actions.go_to_suggestions": "Cari orang untuk diikuti",
"home.column_settings.basic": "Asas",
"home.column_settings.show_reblogs": "Tunjukkan galakan",
"home.column_settings.show_replies": "Tunjukkan balasan",
- "home.explore_prompt.body": "Suapan rumah anda akan mempunyai gabungan pos daripada hashtag yang telah anda pilih untuk diikuti, orang yang telah anda pilih untuk diikuti dan pos yang mereka tingkatkan. Jika itu terasa terlalu senyap, anda mungkin mahu:",
- "home.explore_prompt.title": "Ini adalah pusat operasi anda dalam Mastodon.",
"home.hide_announcements": "Sembunyikan pengumuman",
"home.pending_critical_update.body": "Sila kemas kini pelayan Mastodon anda secepat yang mungkin!",
"home.pending_critical_update.link": "Lihat pengemaskinian",
@@ -399,7 +384,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",
@@ -506,14 +490,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",
@@ -693,10 +670,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 3ca03b616a..0d5985b1ce 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -87,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": "á¤á
áŦááģááēáážáŦááᯠááąáŦáēááŧááŦááŊááē ááŧáŋááŦáážáááąáááē",
@@ -144,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": "áááąáŦáˇáááē",
@@ -303,13 +292,9 @@
"hashtag.follow": "Hashtag ááᯠá
áąáŦááˇáēááŧááˇáēáááē",
"hashtag.unfollow": "Hashtag ááᯠáá
áąáŦááˇáēááŧááˇáēááĢ",
"hashtags.and_other": "{count, plural, other {# more}} áážááēáˇ",
- "home.actions.go_to_explore": "ááąááēá
áŦá¸ááąáááēááģáŦá¸ááᯠááŧááˇáēááĢ",
- "home.actions.go_to_suggestions": "á
áąáŦááēáˇááŧááēáˇáá°ááģáŦá¸áážáŦááĢ",
"home.column_settings.basic": "áĄááŧáąááļ",
"home.column_settings.show_reblogs": "Boost ááģáŦá¸ááᯠááŧááĢ",
"home.column_settings.show_replies": "ááŧááēá
áŦááģáŦá¸ááᯠááŧááĢ",
- "home.explore_prompt.body": "áááēáˇáá˛áˇááááēá¸á
áĨáē áážáŦ áááē á
áąáŦááēáˇááŧááēáˇâááąáááēᡠááąáĢááēá¸á
áĨáēâááŊáąááááēâá
áąáŦááēáˇááŧááēáˇâááąáááēáˇáĄâááąáŦááēáˇâááŊáą áá˛áˇ áĄááá¯ááĢ áĄâááąáŦááēáˇâááŊáąááŧááēááģážâááąááŦá¸áááēᡠááá¯á
áēáˇâááŊáąááᯠááŧááēááážáŦááĢá:",
- "home.explore_prompt.title": "á¤áááēáážáŦ Mastodon áážá áááˇáēáááēáá
áŦááģááēáážáŦááŧá
áēáááēá",
"home.hide_announcements": "ááŧáąááŦááģááēááģáŦá¸ááᯠááģáąáŦááēááĢ",
"home.pending_critical_update.body": "áááēᡠMastodon ááŦááŦ áĄááŧááēáá¯áļḠáĄááēááááēáá¯ááēááĢá",
"home.pending_critical_update.link": "áĄááēááááēááģáŦá¸ááŧááˇáēáááē",
@@ -405,7 +390,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": "á
ááŦá¸áá¯áļá¸ááģáŦḠááááēááŦá¸ááĢ",
@@ -519,14 +503,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": "áĄááŧáļááŧá¯áááē",
@@ -708,10 +685,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 229d4f4718..86e24a15fb 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 86617d4a54..24099f2d33 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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.single": "Enkele keuze",
"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.poll.type": "Stijl",
"compose_form.publish": "Toot",
"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": "Inhoudswaarschuwing (optioneel)",
"confirmation_modal.cancel": "Annuleren",
"confirmations.block.block_and_report": "Blokkeren en rapporteren",
"confirmations.block.confirm": "Blokkeren",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Goedkeuren",
"follow_request.reject": "Afwijzen",
"follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.",
+ "follow_suggestions.curated_suggestion": "Keuze van de moderator(en)",
+ "follow_suggestions.dismiss": "Niet meer weergeven",
+ "follow_suggestions.personalized_suggestion": "Gepersonaliseerde aanbeveling",
+ "follow_suggestions.popular_suggestion": "Populaire aanbeveling",
+ "follow_suggestions.view_all": "Alles weergeven",
+ "follow_suggestions.who_to_follow": "Wie te volgen",
"followed_tags": "Gevolgde hashtags",
"footer.about": "Over",
"footer.directory": "Gebruikersgids",
@@ -306,13 +309,9 @@
"hashtag.follow": "Hashtag volgen",
"hashtag.unfollow": "Hashtag ontvolgen",
"hashtags.and_other": "âĻen {count, plural, one {}other {# meer}}",
- "home.actions.go_to_explore": "De huidige trends bekijken",
- "home.actions.go_to_suggestions": "Zoek mensen om te volgen",
"home.column_settings.basic": "Algemeen",
"home.column_settings.show_reblogs": "Boosts tonen",
"home.column_settings.show_replies": "Reacties tonen",
- "home.explore_prompt.body": "Jouw starttijdlijn bevat een mix van berichten met hashtags die je volgt, van accounts die je volgt en van berichten die deze accounts boosten. Wanneer je dit te stil vind, kun je:",
- "home.explore_prompt.title": "Dit is jouw thuisbasis op Mastodon.",
"home.hide_announcements": "Mededelingen verbergen",
"home.pending_critical_update.body": "Update alstublieft zo snel mogelijk jouw Mastodon-server!",
"home.pending_critical_update.link": "Bekijk updates",
@@ -408,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",
@@ -526,12 +524,13 @@
"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 die in het bericht wordt vermeld",
+ "privacy.direct.short": "Bepaalde 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.additional": "Dit is vergelijkbaar met openbaar, behalve dat het beticht niet verschijnt op openbare tijdlijnen of hashtags, onder verkennen of Mastodon zoeken, zelfs als je je account daarvoor hebt ingesteld.",
"privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen",
"privacy.unlisted.short": "Minder openbaar",
"privacy_policy.last_updated": "Laatst bijgewerkt op {date}",
@@ -551,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",
@@ -715,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 3ef2f80eaf..2118eb5739 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.duration": "Varigheit for rundspørjing",
- "compose_form.poll.option_placeholder": "Val {number}",
- "compose_form.poll.remove_option": "Fjern dette valet",
+ "compose_form.poll.multiple": "Fleirval",
+ "compose_form.poll.option_placeholder": "Alternativ {number}",
+ "compose_form.poll.single": "Vel ein",
"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": "InnhaldsÃĨtvaring (valfritt)",
"confirmation_modal.cancel": "Avbryt",
"confirmations.block.block_and_report": "Blokker & rapporter",
"confirmations.block.confirm": "Blokker",
@@ -280,6 +277,11 @@
"follow_request.authorize": "Autoriser",
"follow_request.reject": "Avvis",
"follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er lÃĨst tenkte dei som driv {domain} at du kanskje ville gÃĨ gjennom førespurnadar frÃĨ desse kontoane manuelt.",
+ "follow_suggestions.dismiss": "Ikkje vis igjen",
+ "follow_suggestions.personalized_suggestion": "Personleg forslag",
+ "follow_suggestions.popular_suggestion": "PopulÃĻrt forslag",
+ "follow_suggestions.view_all": "Vis alle",
+ "follow_suggestions.who_to_follow": "Kven som skal følgjast",
"followed_tags": "Fylgde emneknaggar",
"footer.about": "Om",
"footer.directory": "Profilmappe",
@@ -306,13 +308,9 @@
"hashtag.follow": "Fylg emneknagg",
"hashtag.unfollow": "Slutt ÃĨ fylgje emneknaggen",
"hashtags.and_other": "âĻog {count, plural, one {}other {# fleire}}",
- "home.actions.go_to_explore": "SjÃĨ kva som er populÃĻrt",
- "home.actions.go_to_suggestions": "Finn folk ÃĨ følgje",
"home.column_settings.basic": "Grunnleggjande",
"home.column_settings.show_reblogs": "Vis framhevingar",
"home.column_settings.show_replies": "Vis svar",
- "home.explore_prompt.body": "Tidslinja di vil ha ei blanding av innlegg frÃĨ emneknaggar du har vald ÃĨ følgje, personane du har vald ÃĨ følgje, og innlegga dei framhevar. Om det ser ganske stille ut akkurat no, sÃĨ kan du:",
- "home.explore_prompt.title": "Dette er heimen din i Mastodon.",
"home.hide_announcements": "Skjul kunngjeringar",
"home.pending_critical_update.body": "Oppdater mastodontenaren din sÃĨ snart som mogleg!",
"home.pending_critical_update.link": "SjÃĨ oppdateringar",
@@ -408,7 +406,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",
@@ -482,6 +479,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.",
@@ -524,16 +522,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 nemnde i innlegget",
+ "privacy.direct.short": "Spesifikke folk",
+ "privacy.private.long": "Berre dine følgjarar",
+ "privacy.private.short": "Følgjarar",
+ "privacy.public.long": "Kven som helst pÃĨ og av 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 fanfarar",
+ "privacy.unlisted.short": "Stille offentleg",
"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!",
@@ -548,7 +547,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",
@@ -604,6 +605,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",
@@ -711,10 +713,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 29eaeddff5..27ca611722 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -66,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"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.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",
@@ -304,13 +303,9 @@
"hashtag.follow": "Følg emneknagg",
"hashtag.unfollow": "Slutt ÃĨ følge emneknagg",
"hashtags.and_other": "âĻog {count, plural, one{en til} other {# til}}",
- "home.actions.go_to_explore": "Se hva som er populÃĻrt",
- "home.actions.go_to_suggestions": "Finn folk ÃĨ følge",
"home.column_settings.basic": "Enkelt",
"home.column_settings.show_reblogs": "Vis fremhevinger",
"home.column_settings.show_replies": "Vis svar",
- "home.explore_prompt.body": "Tidslinjen din inneholder en blanding av innlegg fra emneknagger du har valgt ÃĨ følge, personene du har valgt ÃĨ følge, og innleggene de fremhever. Hvis det føles for stille, kan det vÃĻre lurt ÃĨ:",
- "home.explore_prompt.title": "Dette er hjemmet ditt i Mastodon.",
"home.hide_announcements": "Skjul kunngjøring",
"home.pending_critical_update.body": "Vennligst oppdater Mastodon-serveren din sÃĨ snart som mulig!",
"home.pending_critical_update.link": "Se oppdateringer",
@@ -406,7 +401,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",
@@ -480,6 +474,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.",
@@ -522,16 +517,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!",
@@ -546,7 +542,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",
@@ -602,6 +600,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",
@@ -709,10 +708,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 833bfe6ace..5e122064fc 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,6 +29,7 @@
"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}}",
@@ -48,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",
@@ -77,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â¯!",
@@ -128,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",
@@ -172,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",
@@ -269,8 +262,6 @@
"hashtag.follow": "Sègre lâetiqueta",
"hashtag.unfollow": "Quitar de sègre lâetiqueta",
"hashtags.and_other": "âĻe {count, plural, one {}other {# de mai}}",
- "home.actions.go_to_explore": "Agachatz las tendÊncias",
- "home.actions.go_to_suggestions": "Trobatz de monde de sègre",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Mostrar los partatges",
"home.column_settings.show_replies": "Mostrar las responsas",
@@ -294,6 +285,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",
@@ -339,6 +332,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â¯?",
@@ -352,7 +346,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",
@@ -371,6 +364,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",
@@ -423,6 +417,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?",
@@ -447,14 +443,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",
@@ -504,6 +493,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",
@@ -536,6 +526,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}",
@@ -609,10 +600,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",
@@ -626,6 +615,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 132b695cda..ee47c1872d 100644
--- a/app/javascript/mastodon/locales/pa.json
+++ b/app/javascript/mastodon/locales/pa.json
@@ -1,5 +1,6 @@
{
"about.contact": "ā¨¸āŠ°ā¨Ēā¨°ā¨:",
+ "about.domain_blocks.no_reason_available": "ā¨ā¨žā¨°ā¨¨ ā¨ŽāŠā¨āŠā¨Ļ ā¨¨ā¨šāŠā¨ ā¨šāŠ",
"about.domain_blocks.silenced.title": "ā¨¸āŠā¨Žā¨ŋā¨¤",
"about.domain_blocks.suspended.title": "ā¨ŽāŠā¨
āŠąā¨¤ā¨˛ ā¨āŠā¨¤āŠ",
"about.rules": "ā¨¸ā¨°ā¨ĩā¨° ā¨¨ā¨ŋā¨¯ā¨Ž",
@@ -12,12 +13,17 @@
"account.block_short": "ā¨Ēā¨žā¨ŦāŠ°ā¨ĻāŠ",
"account.blocked": "ā¨Ēā¨žā¨ŦāŠ°ā¨ĻāŠā¨¸ā¨ŧāŠā¨Ļā¨ž",
"account.cancel_follow_request": "ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ā¨°ā¨¨ ā¨¨āŠāŠ° ā¨°āŠąā¨Ļ ā¨ā¨°āŠ",
+ "account.copy": "ā¨Ēā¨°āŠā¨Ģā¨žā¨ā¨˛ ā¨˛ā¨ ā¨˛ā¨ŋāŠ°ā¨ ā¨ā¨žā¨ĒāŠ ā¨ā¨°āŠ",
+ "account.direct": "ā¨¨ā¨ŋāŠąā¨āŠ āŠā¨ŋā¨ā¨° @{name}",
"account.edit_profile": "ā¨Ēā¨°āŠā¨Ģā¨žā¨ā¨˛ ā¨¨āŠāŠ° ā¨¸āŠā¨§āŠ",
+ "account.featured_tags.last_status_at": "{date} ā¨¨āŠāŠ° ā¨ā¨ā¨°āŠ ā¨ĒāŠā¨¸ā¨",
+ "account.featured_tags.last_status_never": "ā¨āŠā¨ ā¨ĒāŠā¨¸ā¨ ā¨¨ā¨šāŠā¨",
"account.follow": "ā¨Ģā¨ŧā¨žā¨˛āŠ",
"account.followers": "ā¨Ģā¨ŧā¨žā¨˛āŠā¨
ā¨°",
"account.followers.empty": "ā¨ā¨¸ ā¨ĩā¨°ā¨¤āŠā¨ā¨ā¨žā¨° ā¨¨āŠāŠ° ā¨šā¨žā¨˛āŠ ā¨āŠā¨ ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨¨ā¨šāŠā¨ ā¨ā¨°ā¨Ļā¨ž ā¨šāŠāĨ¤",
"account.following": "ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨āŠā¨¤ā¨ž",
"account.follows.empty": "ā¨ā¨š ā¨ĩā¨°ā¨¤āŠā¨ā¨ā¨žā¨° ā¨šā¨žā¨˛āŠ ā¨ā¨ŋā¨¸āŠ ā¨¨āŠāŠ° ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨¨ā¨šāŠā¨ ā¨ā¨°ā¨Ļā¨ž ā¨šāŠāĨ¤",
+ "account.go_to_profile": "ā¨Ēā¨°āŠā¨Ģā¨žā¨ā¨˛ ā¨āŠąā¨¤āŠ ā¨ā¨žā¨",
"account.media": "ā¨ŽāŠā¨ĄāŠā¨",
"account.muted": "ā¨ŽāŠā¨¨ ā¨āŠā¨¤āŠā¨ā¨",
"account.posts": "ā¨ĒāŠā¨¸ā¨ā¨žā¨",
@@ -35,9 +41,13 @@
"admin.dashboard.retention.cohort_size": "ā¨¨ā¨ĩāŠā¨ ā¨ĩā¨°ā¨¤āŠā¨ā¨ā¨žā¨°",
"alert.unexpected.title": "ā¨ā¨šāŠ!",
"announcement.announcement": "ā¨šāŠā¨ā¨ž",
+ "bundle_column_error.error.title": "ā¨ā¨š ā¨šāŠ!",
"bundle_column_error.network.title": "ā¨¨āŠāŠąā¨ā¨ĩā¨°ā¨ ā¨ĻāŠ ā¨¸ā¨ŽāŠąā¨¸ā¨ŋā¨",
"bundle_column_error.retry": "ā¨ŽāŠāŠ-ā¨āŠā¨¸ā¨ŧā¨ŋā¨¸ā¨ŧ ā¨ā¨°āŠ",
+ "bundle_column_error.return": "ā¨ĩā¨žā¨Ēā¨¸ ā¨ŽāŠāŠąā¨ ā¨¸āŠāŠ ā¨āŠąā¨¤āŠ ā¨ā¨žā¨",
+ "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "ā¨ŦāŠ°ā¨Ļ ā¨ā¨°āŠ",
+ "bundle_modal_error.message": "ā¨ā¨žā¨ ā¨˛āŠā¨Ą ā¨ā¨°ā¨¨ ā¨ĻāŠā¨°ā¨žā¨¨ ā¨āŠā¨ ā¨ā¨˛ā¨¤ ā¨ĩā¨žā¨Ēā¨°ā¨ŋā¨ ā¨šāŠāĨ¤",
"bundle_modal_error.retry": "ā¨ŽāŠāŠ-ā¨āŠā¨¸ā¨ŧā¨ŋā¨¸ā¨ŧ ā¨ā¨°āŠ",
"column.about": "ā¨¸ā¨žā¨ĄāŠ ā¨Ŧā¨žā¨°āŠ",
"column.blocks": "ā¨Ēā¨žā¨ŦāŠ°ā¨ĻāŠ ā¨˛ā¨žā¨ ā¨ĩā¨°ā¨¤āŠā¨ā¨ā¨žā¨°",
@@ -67,12 +77,16 @@
"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.poll.type": "ā¨¸ā¨ā¨žā¨ā¨˛",
+ "compose_form.publish": "ā¨ĒāŠā¨¸ā¨",
"compose_form.publish_form": "Publish",
- "compose_form.save_changes": "ā¨¤ā¨Ŧā¨ĻāŠā¨˛āŠā¨ā¨ ā¨¸ā¨žā¨ā¨āŠ",
+ "compose_form.reply": "ā¨ā¨ĩā¨žā¨Ŧ ā¨Ļā¨ŋā¨",
+ "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": "ā¨Ēā¨žā¨ŦāŠ°ā¨ĻāŠ",
"confirmations.delete.confirm": "ā¨šā¨ā¨žā¨",
"confirmations.delete.message": "ā¨āŠ ā¨¤āŠā¨¸āŠā¨ ā¨ā¨š ā¨ĒāŠā¨¸ā¨ ā¨¨āŠāŠ° ā¨šā¨ā¨žā¨ā¨Ŗā¨ž ā¨ā¨žā¨šāŠāŠ°ā¨ĻāŠ ā¨šāŠ?",
@@ -118,7 +132,10 @@
"firehose.local": "ā¨ā¨š ā¨¸ā¨°ā¨ĩā¨°",
"firehose.remote": "ā¨šāŠā¨° ā¨¸ā¨°ā¨ĩā¨°",
"follow_request.reject": "ā¨°āŠąā¨Ļ ā¨ā¨°āŠ",
+ "follow_suggestions.dismiss": "ā¨ŽāŠāŠ ā¨¨ā¨ž ā¨ĩāŠā¨ā¨žā¨",
+ "follow_suggestions.view_all": "ā¨¸ā¨ ā¨ĩāŠā¨āŠ",
"footer.about": "ā¨¸ā¨žā¨ĄāŠ ā¨Ŧā¨žā¨°āŠ",
+ "footer.directory": "ā¨Ēā¨°āŠā¨Ģā¨žā¨ā¨˛ ā¨Ąā¨žā¨ā¨°āŠā¨ā¨ā¨°āŠ",
"footer.get_app": "ā¨ā¨Ē ā¨˛ā¨ĩāŠ",
"footer.invite": "ā¨˛āŠā¨ā¨žā¨ ā¨¨āŠāŠ° ā¨¸āŠąā¨Ļā¨ž ā¨āŠā¨āŠ",
"footer.keyboard_shortcuts": "ā¨āŠā¨ŦāŠā¨°ā¨Ą ā¨ļā¨žā¨°ā¨ā¨āŠąā¨",
@@ -130,12 +147,14 @@
"hashtag.column_header.tag_mode.all": "ā¨
ā¨¤āŠ {additional}",
"hashtag.column_header.tag_mode.any": "ā¨ā¨žā¨ {additional}",
"hashtag.column_header.tag_mode.none": "{additional} ā¨Ŧā¨ŋā¨¨ā¨žā¨",
+ "hashtag.column_settings.select.no_options_message": "ā¨āŠā¨ ā¨¸āŠā¨ā¨žā¨
ā¨¨ā¨šāŠā¨ ā¨˛āŠąā¨ā¨ž",
"hashtag.column_settings.tag_mode.any": "ā¨ā¨šā¨¨ā¨žā¨ ā¨ĩā¨ŋāŠąā¨āŠā¨ ā¨āŠā¨",
"hashtag.column_settings.tag_mode.none": "ā¨ā¨šā¨¨ā¨žā¨ ā¨ĩā¨ŋāŠąā¨āŠā¨ ā¨āŠā¨ ā¨¨ā¨šāŠā¨",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.follow": "ā¨šāŠā¨ļā¨āŠā¨ ā¨¨āŠāŠ° ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ā¨°āŠ",
"hashtag.unfollow": "ā¨šāŠā¨ļā¨āŠā¨ ā¨¨āŠāŠ° ā¨
ā¨Ŗ-ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ā¨°āŠ",
"home.column_settings.basic": "ā¨ā¨Ž",
+ "home.pending_critical_update.link": "ā¨
āŠąā¨Ēā¨ĄāŠā¨ ā¨ĩāŠā¨āŠ",
"interaction_modal.title.follow": "{name} ā¨¨āŠāŠ° ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ā¨°āŠ",
"keyboard_shortcuts.back": "ā¨Ēā¨ŋāŠąā¨āŠ ā¨ā¨žā¨",
"keyboard_shortcuts.blocked": "ā¨Ēā¨žā¨ŦāŠ°ā¨ĻāŠ ā¨˛ā¨žā¨ ā¨ĩā¨°ā¨¤āŠā¨ā¨ā¨žā¨°ā¨žā¨ ā¨ĻāŠ ā¨¸āŠā¨āŠ ā¨āŠā¨˛āŠā¨šāŠ",
@@ -188,14 +207,15 @@
"navigation_bar.direct": "ā¨¨ā¨ŋāŠąā¨āŠ āŠā¨ŋā¨ā¨°",
"navigation_bar.discover": "ā¨āŠā¨",
"navigation_bar.domain_blocks": "ā¨Ēā¨žā¨ŦāŠ°ā¨ĻāŠ ā¨˛ā¨žā¨ ā¨ĄāŠā¨ŽāŠā¨¨",
- "navigation_bar.edit_profile": "ā¨Ēā¨°āŠā¨Ģā¨žā¨ā¨˛ ā¨¨āŠāŠ° ā¨¸āŠā¨§āŠ",
"navigation_bar.explore": "ā¨ĒāŠā¨āŠā¨˛ ā¨ā¨°āŠ",
"navigation_bar.favourites": "ā¨Žā¨¨ā¨Ēā¨¸āŠ°ā¨Ļ",
+ "navigation_bar.filters": "ā¨ŽāŠā¨¨ ā¨āŠā¨¤āŠ ā¨ļā¨Ŧā¨Ļ",
"navigation_bar.follow_requests": "ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ĻāŠā¨ā¨ ā¨ŦāŠā¨¨ā¨¤āŠā¨ā¨",
"navigation_bar.followed_tags": "ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨āŠā¨¤āŠ ā¨šāŠā¨ļā¨āŠā¨",
"navigation_bar.follows_and_followers": "ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨
ā¨¤āŠ ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ā¨°ā¨¨ ā¨ĩā¨žā¨˛āŠ",
"navigation_bar.lists": "ā¨¸āŠā¨āŠā¨ā¨",
"navigation_bar.logout": "ā¨˛ā¨žā¨ ā¨ā¨ā¨",
+ "navigation_bar.mutes": "ā¨ŽāŠā¨¨ ā¨āŠā¨¤āŠ ā¨ĩā¨°ā¨¤āŠā¨ā¨ā¨žā¨°",
"navigation_bar.personal": "ā¨¨ā¨ŋāŠąā¨āŠ",
"navigation_bar.pins": "ā¨āŠ°ā¨āŠā¨ā¨ ā¨ĒāŠā¨¸ā¨ā¨žā¨",
"navigation_bar.preferences": "ā¨Ēā¨¸āŠ°ā¨Ļā¨žā¨",
@@ -205,6 +225,8 @@
"notification.follow": "{name} ā¨¨āŠ ā¨¤āŠā¨šā¨žā¨¨āŠāŠ° ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨āŠā¨¤ā¨ž",
"notification.follow_request": "{name} ā¨¨āŠ ā¨¤āŠā¨šā¨žā¨¨āŠāŠ° ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ā¨°ā¨¨ ā¨ĻāŠ ā¨ŦāŠā¨¨ā¨¤āŠ ā¨āŠā¨¤āŠ ā¨šāŠ",
"notification.reblog": "{name} boosted your status",
+ "notifications.column_settings.alert": "ā¨ĄāŠā¨¸ā¨ā¨ā¨žā¨Ē ā¨¸āŠā¨ā¨¨ā¨žā¨ĩā¨žā¨",
+ "notifications.column_settings.favourite": "ā¨Žā¨¨ā¨Ēā¨¸āŠ°ā¨Ļ:",
"notifications.column_settings.follow": "ā¨¨ā¨ĩāŠā¨ ā¨Ģā¨ŧā¨žā¨˛āŠā¨
ā¨°:",
"notifications.column_settings.follow_request": "ā¨¨ā¨ĩāŠā¨ā¨ ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ŦāŠā¨¨ā¨¤āŠā¨ā¨:",
"notifications.column_settings.status": "ā¨¨ā¨ĩāŠā¨ā¨ ā¨ĒāŠā¨¸ā¨ā¨žā¨:",
@@ -238,8 +260,6 @@
"poll.refresh": "ā¨¤ā¨žā¨ā¨ŧā¨ž ā¨ā¨°āŠ",
"poll.vote": "ā¨ĩāŠā¨ ā¨Ēā¨žā¨",
"privacy.change": "ā¨ĒāŠā¨¸ā¨ ā¨ĻāŠ ā¨Ēā¨°ā¨ĻāŠā¨Ļā¨žā¨°āŠ ā¨¨āŠāŠ° ā¨Ŧā¨Ļā¨˛āŠ",
- "privacy.direct.short": "ā¨¸ā¨ŋāŠąā¨§ā¨ž ā¨˛āŠā¨ā¨žā¨ ā¨Ļā¨ž āŠā¨ŋā¨ā¨° ā¨ā¨°āŠ",
- "privacy.private.short": "ā¨¸ā¨ŋā¨°ā¨Ģā¨ŧ ā¨Ģā¨ŧā¨žā¨˛āŠā¨
ā¨°",
"privacy.public.short": "ā¨ā¨¨ā¨¤ā¨",
"privacy_policy.title": "ā¨Ēā¨°ā¨ĻāŠā¨Ļā¨žā¨°āŠ ā¨¨āŠā¨¤āŠ",
"refresh": "ā¨¤ā¨žā¨ā¨ŧā¨ž ā¨ā¨°āŠ",
@@ -266,9 +286,11 @@
"report.target": "{target} ā¨°ā¨ŋā¨ĒāŠā¨°ā¨",
"report.unfollow": "@{name} ā¨¨āŠāŠ° ā¨
ā¨Ŗ-ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ā¨°āŠ",
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
+ "report_notification.categories.legal": "ā¨ā¨¨āŠāŠ°ā¨¨āŠ",
"report_notification.categories.other": "ā¨Ŧā¨žā¨āŠ",
"report_notification.categories.spam": "ā¨¸ā¨ĒāŠā¨Ž",
"report_notification.categories.violation": "ā¨¨ā¨ŋā¨¯ā¨Ž ā¨ĻāŠ ā¨ā¨˛āŠ°ā¨ā¨Ŗā¨ž",
+ "report_notification.open": "ā¨°ā¨ŋā¨ĒāŠā¨°ā¨ ā¨¨āŠāŠ° ā¨āŠā¨˛āŠā¨šāŠ",
"search.placeholder": "ā¨āŠā¨āŠ",
"search_popout.quick_actions": "ā¨ĢāŠā¨°āŠ ā¨ā¨žā¨°ā¨ĩā¨žā¨ā¨ā¨",
"search_popout.specific_date": "ā¨ā¨žā¨¸ ā¨¤ā¨žā¨°āŠā¨",
@@ -276,10 +298,13 @@
"search_results.accounts": "ā¨Ēā¨°āŠā¨Ģā¨žā¨ā¨˛",
"search_results.all": "ā¨¸ā¨",
"search_results.hashtags": "ā¨šāŠā¨ļā¨āŠā¨",
+ "search_results.see_all": "ā¨¸ā¨ ā¨ĩāŠā¨āŠ",
"search_results.statuses": "ā¨ĒāŠā¨¸ā¨ā¨žā¨",
+ "search_results.title": "{q} ā¨˛ā¨ ā¨āŠā¨",
"server_banner.learn_more": "ā¨šāŠā¨° ā¨ā¨žā¨ŖāŠ",
"sign_in_banner.create_account": "ā¨ā¨žā¨¤ā¨ž ā¨Ŧā¨Ŗā¨žā¨",
"sign_in_banner.sign_in": "ā¨˛ā¨žā¨ā¨ā¨¨",
+ "sign_in_banner.sso_redirect": "ā¨˛ā¨žā¨ā¨ā¨¨ ā¨ā¨žā¨ ā¨°ā¨ā¨ŋā¨¸ā¨ā¨° ā¨ā¨°āŠ",
"status.admin_status": "",
"status.block": "@{name} ā¨āŠąā¨¤āŠ ā¨Ēā¨žā¨ŦāŠ°ā¨ĻāŠ ā¨˛ā¨žā¨",
"status.bookmark": "ā¨ŦāŠāŠąā¨ā¨Žā¨žā¨°ā¨",
@@ -327,7 +352,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 9a3710da71..814d0f2de0 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -42,7 +42,7 @@
"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Ä.",
@@ -89,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.",
@@ -146,22 +145,20 @@
"compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. KaÅŧdy, kto CiÄ obserwuje, moÅŧe wyÅwietlaÄ Twoje wpisy przeznaczone tylko dla obserwujÄ
cych.",
"compose_form.lock_disclaimer.lock": "zablokowane",
"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",
+ "compose_form.spoiler_placeholder": "OstrzeÅŧenie o treÅci (opcjonalne)",
"confirmation_modal.cancel": "Anuluj",
"confirmations.block.block_and_report": "Zablokuj i zgÅoÅ",
"confirmations.block.confirm": "Zablokuj",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Autoryzuj",
"follow_request.reject": "OdrzuÄ",
"follow_requests.unlocked_explanation": "Mimo Åŧe Twoje konto nie jest zablokowane, zespÃŗÅ {domain} uznaÅ Åŧe moÅŧesz chcieÄ rÄcznie przejrzeÄ proÅby o moÅŧliwoÅÄ obserwacji.",
+ "follow_suggestions.curated_suggestion": "WybÃŗr redakcji",
+ "follow_suggestions.dismiss": "Nie pokazuj ponownie",
+ "follow_suggestions.personalized_suggestion": "Sugestia spersonalizowana",
+ "follow_suggestions.popular_suggestion": "Sugestia popularna",
+ "follow_suggestions.view_all": "PokaÅŧ wszystkie",
+ "follow_suggestions.who_to_follow": "Kogo obserwowaÄ",
"followed_tags": "Obserwowane hasztagi",
"footer.about": "O serwerze",
"footer.directory": "Katalog profilÃŗw",
@@ -306,13 +309,9 @@
"hashtag.follow": "Obserwuj hasztag",
"hashtag.unfollow": "PrzestaÅ obserwowaÄ hashtag",
"hashtags.and_other": "âĻi {count, plural, other {jeszcze #}}",
- "home.actions.go_to_explore": "Zobacz, co jest teraz popularne",
- "home.actions.go_to_suggestions": "ZnajdÅē ludzi wartych obserwowania",
"home.column_settings.basic": "Podstawowe",
"home.column_settings.show_reblogs": "Pokazuj podbicia",
"home.column_settings.show_replies": "Pokazuj odpowiedzi",
- "home.explore_prompt.body": "TwÃŗj kanaÅ gÅÃŗwny bÄdzie zawieraÅ kombinacjÄ postÃŗw z tagÃŗw i osÃŗb ktÃŗre obserwujesz oraz wpisÃŗw przezeÅ podbitych. JeÅŧeli wydaje siÄ to za spokojnym, sprÃŗbuj czegoÅ poniÅŧej.",
- "home.explore_prompt.title": "To twÃŗj punkt podparcia w Mastodonie.",
"home.hide_announcements": "Ukryj ogÅoszenia",
"home.pending_critical_update.body": "Zaktualizuj serwer jak tylko bÄdzie to moÅŧliwe!",
"home.pending_critical_update.link": "PokaÅŧ aktualizacje",
@@ -408,7 +407,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",
@@ -492,7 +490,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:",
@@ -526,12 +524,13 @@
"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.long": "Wszyscy wspomnieni w tym wpisie",
+ "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.additional": "Taki sam jak \"Publiczny\", ale wpis nie pojawi siÄ w kanaÅach na Åŧywo, hasztagach, odkrywaniu, ani w wyszukiwaniu w Mastodonie, nawet jeÅŧeli jest to wÅÄ
czone w ustawieniach konta.",
"privacy.unlisted.long": "Widoczne dla kaÅŧdego, z wyÅÄ
czeniem funkcji odkrywania",
"privacy.unlisted.short": "Niewidoczny",
"privacy_policy.last_updated": "Data ostatniej aktualizacji: {date}",
@@ -551,7 +550,9 @@
"relative_time.minutes": "{number} min.",
"relative_time.seconds": "{number} s.",
"relative_time.today": "dzisiaj",
+ "reply_indicator.attachments": "{count, plural, one {# zaÅÄ
cznik} few {# zaÅÄ
czniki} many {# zaÅÄ
cznikÃŗw} other {# zaÅÄ
czniku}}",
"reply_indicator.cancel": "Anuluj",
+ "reply_indicator.poll": "Ankieta",
"report.block": "Zablokuj",
"report.block_explanation": "Nie zobaczysz ich wpisÃŗw. Nie bÄdÄ
mogli zobaczyÄ Twoich postÃŗw ani ciÄ obserwowaÄ. BÄdÄ
mogli domyÅliÄ siÄ, Åŧe sÄ
zablokowani.",
"report.categories.legal": "Prawne",
@@ -715,10 +716,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 482cc8ee73..eced6ca7ad 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"compose_form.lock_disclaimer": "Seu perfil nÃŖo estÃĄ {locked}. Qualquer um pode te seguir e ver os toots privados.",
"compose_form.lock_disclaimer.lock": "trancado",
"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.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",
@@ -278,6 +277,12 @@
"follow_request.authorize": "Aprovar",
"follow_request.reject": "Recusar",
"follow_requests.unlocked_explanation": "Apesar de seu perfil nÃŖo ser trancado, {domain} exige que vocÃĒ revise a solicitaçÃŖo para te seguir destes perfis manualmente.",
+ "follow_suggestions.curated_suggestion": "Escolha dos editores",
+ "follow_suggestions.dismiss": "NÃŖo mostrar novamente",
+ "follow_suggestions.personalized_suggestion": "SugestÃŖo personalizada",
+ "follow_suggestions.popular_suggestion": "SugestÃŖo popular",
+ "follow_suggestions.view_all": "Visualizar tudo",
+ "follow_suggestions.who_to_follow": "Quem seguir",
"followed_tags": "Hashtags seguidas",
"footer.about": "Sobre",
"footer.directory": "DiretÃŗrio de perfis",
@@ -304,13 +309,9 @@
"hashtag.follow": "Seguir hashtag",
"hashtag.unfollow": "Parar de seguir hashtag",
"hashtags.and_other": "âĻe {count, plural, one {}other {outros #}}",
- "home.actions.go_to_explore": "Veja o que estÃĄ acontecendo",
- "home.actions.go_to_suggestions": "Encontre pessoas para seguir",
"home.column_settings.basic": "BÃĄsico",
"home.column_settings.show_reblogs": "Mostrar boosts",
"home.column_settings.show_replies": "Mostrar respostas",
- "home.explore_prompt.body": "Seu feed inicial terÃĄ uma mistura de publicaçÃĩes das hashtags que vocÃĒ escolheu seguir, das pessoas que vocÃĒ escolheu seguir e das publicaçÃĩes que elas impulsionam. Se estÃĄ parecendo tranquilo demais, entÃŖo que tal:",
- "home.explore_prompt.title": "Esta Ê a sua base principal dentro do Mastodon.",
"home.hide_announcements": "Ocultar comunicados",
"home.pending_critical_update.body": "Por favor, atualize o seu servidor Mastodon o mais rÃĄpido possÃvel!",
"home.pending_critical_update.link": "Ver atualizaçÃĩes",
@@ -406,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",
@@ -524,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",
@@ -550,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",
@@ -713,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 a6d0ffee9a..3674126144 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
"follow_requests.unlocked_explanation": "Apesar de a sua nÃŖo ser privada, a administraçÃŖo de {domain} pensa que poderÃĄ querer rever manualmente os pedidos de seguimento dessas contas.",
+ "follow_suggestions.curated_suggestion": "Escolha dos Editores",
+ "follow_suggestions.dismiss": "NÃŖo mostrar novamente",
+ "follow_suggestions.personalized_suggestion": "SugestÃŖo personalizada",
+ "follow_suggestions.popular_suggestion": "SugestÃŖo popular",
+ "follow_suggestions.view_all": "Ver tudo",
+ "follow_suggestions.who_to_follow": "Quem seguir",
"followed_tags": "Hashtags seguidas",
"footer.about": "Sobre",
"footer.directory": "DiretÃŗrio de perfis",
@@ -306,13 +309,9 @@
"hashtag.follow": "Seguir #etiqueta",
"hashtag.unfollow": "Deixar de seguir #etiqueta",
"hashtags.and_other": "âĻe {count, plural, other {mais #}}",
- "home.actions.go_to_explore": "Veja as tendÃĒncias atuais",
- "home.actions.go_to_suggestions": "Encontrar pessoas para seguir",
"home.column_settings.basic": "BÃĄsico",
"home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respostas",
- "home.explore_prompt.body": "A sua pÃĄgina inicial terÃĄ uma mistura de publicaçÃĩes com as hashtags que escolheu seguir, das pessoas que escolheu seguir e as publicaçÃĩes que elas partilham. Parece bastante sossegado por agora, talvez queira:",
- "home.explore_prompt.title": "Esta Ê a sua base principal dentro do Mastodon.",
"home.hide_announcements": "Ocultar comunicaçÃĩes",
"home.pending_critical_update.body": "Por favor, atualize o seu servidor Mastodon assim que possÃvel!",
"home.pending_critical_update.link": "Ver atualizaçÃĩes",
@@ -408,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",
@@ -526,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",
@@ -551,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",
@@ -715,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 88dbfa4b8e..547493af18 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -21,6 +21,8 @@
"account.blocked": "Blocat",
"account.browse_more_on_origin_server": "Vezi mai multe pe profilul original",
"account.cancel_follow_request": "Retrage cererea de urmÄrire",
+ "account.copy": "CopiazÄ link-ul profilului",
+ "account.direct": "MenČioneazÄ pe @{name} ÃŽn privat",
"account.disable_notifications": "Nu ÃŽmi mai trimite notificÄri cÃĸnd posteazÄ @{name}",
"account.domain_blocked": "Domeniu blocat",
"account.edit_profile": "ModificÄ profilul",
@@ -30,6 +32,7 @@
"account.featured_tags.last_status_never": "FÄrÄ postÄri",
"account.featured_tags.title": "HaČtagurile recomandate de {name}",
"account.follow": "AboneazÄ-te",
+ "account.follow_back": "UrmÄreÅte ÃŽnapoi",
"account.followers": "UrmÄritori",
"account.followers.empty": "Acest utilizator nu are ÃŽncÄ urmÄritori.",
"account.followers_counter": "{count, plural, one {Un abonat} few {{counter} abonaČi} other {{counter} de abonaČi}}",
@@ -38,6 +41,7 @@
"account.follows.empty": "Momentan acest utilizator nu are niciun abonament.",
"account.go_to_profile": "Mergi la profil",
"account.hide_reblogs": "Ascunde distribuirile de la @{name}",
+ "account.in_memoriam": "Ãn Memoriam.",
"account.joined_short": "Ãnscris",
"account.languages": "SchimbÄ limbile abonate",
"account.link_verified_on": "Proprietatea acestui link a fost verificatÄ pe {date}",
@@ -46,7 +50,10 @@
"account.mention": "MenČioneazÄ pe @{name}",
"account.moved_to": "{name} a indicat cÄ noul sÄu cont este acum:",
"account.mute": "Pune pe @{name} pe silenČios",
+ "account.mute_notifications_short": "AmuČeČte notificÄrile",
+ "account.mute_short": "IgnorÄ",
"account.muted": "Pus pe silenČios",
+ "account.no_bio": "Nicio descriere furnizatÄ.",
"account.open_original_page": "Deschide pagina originalÄ",
"account.posts": "PostÄri",
"account.posts_with_replies": "PostÄri Či rÄspunsuri",
@@ -69,6 +76,7 @@
"admin.dashboard.retention.average": "Ãn medie",
"admin.dashboard.retention.cohort": "ÃnregistrÄri lunar",
"admin.dashboard.retention.cohort_size": "Utilizatori noi",
+ "admin.impact_report.title": "Rezumatul impactului",
"alert.rate_limited.message": "VÄ rugÄm sÄ reÃŽncercaČi dupÄ {retry_time, time, medium}.",
"alert.rate_limited.title": "Debit limitat",
"alert.unexpected.message": "A apÄrut o eroare neaČteptatÄ.",
@@ -76,7 +84,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.",
@@ -99,9 +106,11 @@
"column.blocks": "Utilizatori blocaČi",
"column.bookmarks": "Marcaje",
"column.community": "Cronologie localÄ",
+ "column.direct": "MenČiuni private",
"column.directory": "ExploreazÄ profiluri",
"column.domain_blocks": "Domenii blocate",
"column.favourites": "Favorite",
+ "column.firehose": "Fluxuri live",
"column.follow_requests": "Cereri de abonare",
"column.home": "AcasÄ",
"column.lists": "Liste",
@@ -131,22 +140,20 @@
"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.multiple": "Alegeri multiple",
+ "compose_form.poll.option_placeholder": "OpČiune {number}",
+ "compose_form.poll.single": "AlegeČi unul",
"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.poll.type": "Stil",
+ "compose_form.publish": "Postare",
"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.reply": "RÄspundeČi",
+ "compose_form.save_changes": "Actualizare",
"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",
+ "compose_form.spoiler_placeholder": "AtenČionare de conČinut (opČional)",
"confirmation_modal.cancel": "AnuleazÄ",
"confirmations.block.block_and_report": "BlocheazÄ Či raporteazÄ",
"confirmations.block.confirm": "BlocheazÄ",
@@ -162,6 +169,7 @@
"confirmations.domain_block.confirm": "BlocheazÄ ÃŽntregul domeniu",
"confirmations.domain_block.message": "EČti absolut sigur cÄ vrei sÄ blochezi tot domeniul {domain}? Ãn cele mai multe cazuri, raportarea sau blocarea anumitor lucruri este suficientÄ Či de preferat. Nu vei mai vedea niciun conČinut din acest domeniu ÃŽn vreun flux public sau ÃŽn vreo notificare. AbonaČii tÄi din acest domeniu vor fi eliminaČi.",
"confirmations.edit.confirm": "ModificÄ",
+ "confirmations.edit.message": "Editarea acum va suprascrie mesajul pe care ÃŽl compuneČi ÃŽn prezent. SunteČi sigur cÄ vreČi sÄ continuaČi?",
"confirmations.logout.confirm": "Deconectare",
"confirmations.logout.message": "EČti sigur cÄ vrei sÄ te deconectezi?",
"confirmations.mute.confirm": "IgnorÄ",
@@ -176,6 +184,7 @@
"conversation.mark_as_read": "MarcheazÄ ca citit",
"conversation.open": "VizualizeazÄ conversaČia",
"conversation.with": "Cu {names}",
+ "copy_icon_button.copied": "Copiat ÃŽn clipboard",
"copypaste.copied": "Copiat",
"copypaste.copy_to_clipboard": "CopiazÄ ÃŽn clipboard",
"directory.federated": "Din fediversul cunoscut",
@@ -251,10 +260,17 @@
"filter_modal.select_filter.title": "FiltreazÄ aceastÄ postare",
"filter_modal.title.status": "FiltreazÄ o postare",
"firehose.all": "Toate",
+ "firehose.local": "Acest Server",
"firehose.remote": "Alte servere",
"follow_request.authorize": "AcceptÄ",
"follow_request.reject": "Respinge",
"follow_requests.unlocked_explanation": "Chiar dacÄ contul tÄu nu este blocat, personalul {domain} a considerat cÄ ai putea prefera sÄ consulČi manual cererile de abonare de la aceste conturi.",
+ "follow_suggestions.curated_suggestion": "Alegerile Editorilor",
+ "follow_suggestions.dismiss": "Nu mai afiČa din nou",
+ "follow_suggestions.personalized_suggestion": "Sugestie personalizatÄ",
+ "follow_suggestions.popular_suggestion": "Sugestie popularÄ",
+ "follow_suggestions.view_all": "VizualizaČi tot",
+ "follow_suggestions.who_to_follow": "Pe cine sÄ urmÄriČi",
"followed_tags": "Hastaguri urmÄrite",
"footer.about": "Despre",
"footer.directory": "Catalogul de profiluri",
@@ -277,19 +293,21 @@
"hashtag.column_settings.tag_toggle": "AdaugÄ etichete suplimentare pentru aceastÄ coloanÄ",
"hashtag.follow": "UrmÄreČte haČtagul",
"hashtag.unfollow": "Nu mai urmÄri haČtagul",
- "home.actions.go_to_suggestions": "GÄseČte persoane de urmÄrit",
"home.column_settings.basic": "De bazÄ",
"home.column_settings.show_reblogs": "AfiČeazÄ distribuirile",
"home.column_settings.show_replies": "AfiČeazÄ rÄspunsurile",
"home.hide_announcements": "Ascunde anunČurile",
"home.pending_critical_update.body": "Te rugÄm sÄ-Či actualizezi serverul de Mastodon cat mai curÃĸnd posibil!",
"home.pending_critical_update.link": "Vezi noutÄČi",
+ "home.pending_critical_update.title": "Actualizare criticÄ de securitate disponibilÄ!",
"home.show_announcements": "AfiČeazÄ anunČurile",
+ "interaction_modal.description.favourite": "Cu un cont pe Mastodon, poČi adÄuga aceastÄ postare la favorite pentru a-l informa pe autorul ei cÄ o apreciezi Či pentru a o salva pentru mai tÃĸrziu.",
"interaction_modal.description.follow": "Cu un cont Mastodon, poČi urmÄri pe {name} pentru a vedea postÄrile sale ÃŽn cronologia ta principalÄ.",
"interaction_modal.description.reblog": "Cu un cont pe Mastodon, poČi distribui aceastÄ postare pentru a le-o arÄta Či celor abonaČi Čie.",
"interaction_modal.description.reply": "Cu un cont pe Mastodon, poČi rÄspunde acestei postÄri.",
"interaction_modal.login.action": "Du-mÄ acasÄ",
"interaction_modal.login.prompt": "Adresa serverului tÄu acasÄ, de ex. mastodon.social",
+ "interaction_modal.no_account_yet": "Nu eČti ÃŽncÄ pe Mastodon?",
"interaction_modal.on_another_server": "Pe un alt server",
"interaction_modal.on_this_server": "Pe acest server",
"interaction_modal.title.follow": "UrmÄreČte pe {name}",
@@ -365,7 +383,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",
@@ -461,14 +478,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Ä",
@@ -641,10 +651,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 37a8328c98..623b403832 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -32,6 +32,7 @@
"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} ĐŋОдĐŋиŅŅиĐēĐ°}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "ĐŅĐēĐģŅŅиŅŅ ŅвĐĩĐ´ĐžĐŧĐģĐĩĐŊиŅ",
"account.mute_short": "ĐĐĩĐŧОК",
"account.muted": "ĐĐŗĐŊĐžŅиŅŅĐĩŅŅŅ",
+ "account.mutual": "ĐСаиĐŧĐŊĐž",
"account.no_bio": "ĐĐŋиŅĐ°ĐŊиĐĩ ĐŊĐĩ ĐŋŅĐĩĐ´ĐžŅŅавĐģĐĩĐŊĐž.",
"account.open_original_page": "ĐŅĐēŅŅŅŅ иŅŅ
ОдĐŊŅŅ ŅŅŅĐ°ĐŊиŅŅ",
"account.posts": "ĐĐžŅŅŅ",
@@ -87,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": "ĐĐ°ĐŋŅĐžŅĐĩĐŊĐŊĐ°Ņ ŅŅŅĐ°ĐŊиŅĐ° ĐŊĐĩ ĐŧĐžĐļĐĩŅ ĐąŅŅŅ ĐžŅОйŅĐ°ĐļĐĩĐŊĐ°. ĐŅĐž ĐŧĐžĐļĐĩŅ ĐąŅŅŅ вŅСваĐŊĐž ĐžŅийĐēОК в ĐŊĐ°ŅĐĩĐŧ ĐēОдĐĩ иĐģи ĐŋŅОйĐģĐĩĐŧОК ŅОвĐŧĐĩŅŅиĐŧĐžŅŅи ĐąŅĐ°ŅСĐĩŅĐ°.",
@@ -144,22 +145,20 @@
"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.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.reply": "ĐŅвĐĩŅиŅŅ",
"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": "ĐĸĐĩĐēŅŅ ĐŋŅĐĩĐ´ŅĐŋŅĐĩĐļĐ´ĐĩĐŊиŅ",
+ "compose_form.spoiler_placeholder": "ĐŅĐĩĐ´ŅĐŋŅĐĩĐļĐ´ĐĩĐŊиĐĩ Đž ĐēĐžĐŊŅĐĩĐŊŅĐĩ (ĐžĐŋŅиОĐŊĐ°ĐģŅĐŊĐž)",
"confirmation_modal.cancel": "ĐŅĐŧĐĩĐŊĐ°",
"confirmations.block.block_and_report": "ĐĐ°ĐąĐģĐžĐēиŅОваŅŅ и ĐŋĐžĐļĐ°ĐģОваŅŅŅŅ",
"confirmations.block.confirm": "ĐĐ°ĐąĐģĐžĐēиŅОваŅŅ",
@@ -238,7 +237,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": "ĐŅ ĐĩŅŅ ĐŊиĐēĐžĐŗĐž ĐŊĐĩ дОйавĐģŅĐģи в ŅĐŋиŅĐžĐē иĐŗĐŊĐžŅиŅŅĐĩĐŧŅŅ
.",
@@ -278,6 +277,12 @@
"follow_request.authorize": "ĐвŅĐžŅиСОваŅŅ",
"follow_request.reject": "ĐŅĐēаСаŅŅ",
"follow_requests.unlocked_explanation": "ĐĨĐžŅŅ ваŅĐ° ŅŅĐĩŅĐŊĐ°Ņ СаĐŋиŅŅ ĐŊĐĩ СаĐēŅŅŅĐ°, ĐēĐžĐŧĐ°ĐŊĐ´Đ° {domain} ĐŋОдŅĐŧĐ°ĐģĐ°, ŅŅĐž вŅ СаŅ
ĐžŅиŅĐĩ ĐŋŅĐžŅĐŧĐžŅŅĐĩŅŅ СаĐŋŅĐžŅŅ ĐžŅ ŅŅиŅ
ŅŅĐĩŅĐŊŅŅ
СаĐŋиŅĐĩĐš вŅŅŅĐŊŅŅ.",
+ "follow_suggestions.curated_suggestion": "ĐŅйОŅ ŅĐĩĐ´Đ°ĐēŅии",
+ "follow_suggestions.dismiss": "ĐĐžĐģŅŅĐĩ ĐŊĐĩ ĐŋĐžĐēаСŅваŅŅ",
+ "follow_suggestions.personalized_suggestion": "ĐĐĩŅŅĐžĐŊĐ°ĐģиСиŅОваĐŊĐŊĐžĐĩ ĐŋŅĐĩĐ´ĐģĐžĐļĐĩĐŊиĐĩ",
+ "follow_suggestions.popular_suggestion": "ĐĐžĐŋŅĐģŅŅĐŊĐžĐĩ ĐŋŅĐĩĐ´ĐģĐžĐļĐĩĐŊиĐĩ",
+ "follow_suggestions.view_all": "ĐĐžŅĐŧĐžŅŅĐĩŅŅ вŅĐĩ",
+ "follow_suggestions.who_to_follow": "ĐĐ° ĐēĐžĐŗĐž ĐŋОдĐŋиŅĐ°ŅŅŅŅ",
"followed_tags": "ĐŅŅĐģĐĩĐļиваĐĩĐŧŅĐĩ Ņ
ŅŅŅĐĩĐŗи",
"footer.about": "Đ ĐŋŅĐžĐĩĐēŅĐĩ",
"footer.directory": "ĐĐ°ŅĐ°ĐģĐžĐŗ ĐŋŅĐžŅиĐģĐĩĐš",
@@ -304,13 +309,9 @@
"hashtag.follow": "ĐОдĐŋиŅĐ°ŅŅŅŅ ĐŊĐ° ĐŊОвŅĐĩ ĐŋĐžŅŅŅ",
"hashtag.unfollow": "ĐŅĐŋиŅĐ°ŅŅŅŅ",
"hashtags.and_other": "...и {count, plural, other {# ĐĩŅŅ}}",
- "home.actions.go_to_explore": "ĐĐžŅĐŧĐžŅŅĐĩŅŅ, ŅŅĐž Đ°ĐēŅŅĐ°ĐģŅĐŊĐž",
- "home.actions.go_to_suggestions": "ĐОдĐŋиŅиŅĐĩŅŅ ĐŊĐ° ĐģŅĐ´ĐĩĐš",
"home.column_settings.basic": "ĐŅĐŊОвĐŊŅĐĩ",
"home.column_settings.show_reblogs": "ĐĐžĐēаСŅваŅŅ ĐŋŅОдвиĐļĐĩĐŊиŅ",
"home.column_settings.show_replies": "ĐĐžĐēаСŅваŅŅ ĐžŅвĐĩŅŅ",
- "home.explore_prompt.body": "РваŅĐĩĐŧ Đ´ĐžĐŧĐĩ ĐŋĐžŅвŅŅŅŅ ŅООйŅĐĩĐŊиŅ иС Ņ
ŅŅŅĐĩĐŗОв, ĐŊĐ° ĐēĐžŅĐžŅŅĐĩ вŅ Ņ
ĐžŅиŅĐĩ ĐŋОдĐŋиŅĐ°ŅŅŅŅ, ĐģŅди, ĐēĐžŅĐžŅŅŅ
вŅ вŅĐąŅĐ°Đģи ĐŋОдĐŋиŅĐ°ŅŅŅŅ, и ŅООйŅĐĩĐŊиŅ, ĐēĐžŅĐžŅŅĐĩ ĐžĐŊи ŅвĐĩĐģиŅиĐģи. ĐĄĐĩĐšŅĐ°Ņ вŅĐŗĐģŅдиŅ ŅĐŋĐžĐēОКĐŊĐž, ŅĐ°Đē ŅŅĐž:",
- "home.explore_prompt.title": "ĐŅĐž ваŅĐ° Đ´ĐžĐŧĐ°ŅĐŊŅŅ йаСа в ĐĐ°ŅŅОдОĐŊĐĩ.",
"home.hide_announcements": "ĐĄĐēŅŅŅŅ ОйŅŅвĐģĐĩĐŊиŅ",
"home.pending_critical_update.body": "ĐĐžĐļĐ°ĐģŅĐšŅŅĐ°, ОйĐŊОвиŅĐĩ ŅвОК ŅĐĩŅвĐĩŅ Mastodon ĐēĐ°Đē ĐŧĐžĐļĐŊĐž ŅĐēĐžŅĐĩĐĩ!",
"home.pending_critical_update.link": "ĐĐžŅĐŧĐžŅŅĐĩŅŅ ОйĐŊОвĐģĐĩĐŊиŅ",
@@ -406,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": "ĐĐŗĐŊĐžŅиŅŅĐĩĐŧŅĐĩ ŅĐģОва",
@@ -524,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": "РайОŅĐ°ĐĩŅ ŅĐžŅĐŊĐž ŅĐ°Đē ĐļĐĩ, ĐēĐ°Đē public, Са иŅĐēĐģŅŅĐĩĐŊиĐĩĐŧ ŅĐžĐŗĐž, ŅŅĐž ĐŋĐžŅŅ ĐŊĐĩ ĐąŅĐ´ĐĩŅ ĐžŅОйŅĐ°ĐļĐ°ŅŅŅŅ в ĐŋŅŅĐŧŅŅ
ĐģĐĩĐŊŅĐ°Ņ
, Ņ
ŅŅŅĐĩĐŗĐ°Ņ
, иŅŅĐģĐĩдОваĐŊиŅŅ
иĐģи ĐŋОиŅĐēĐĩ Mastodon, Đ´Đ°ĐļĐĩ ĐĩŅĐģи ваŅ Đ°ĐēĐēĐ°ŅĐŊŅ ĐŋОдĐŋиŅĐ°ĐŊ ĐŊĐ° ŅŅĐž ĐŊĐ° ŅŅОвĐŊĐĩ вŅĐĩĐŗĐž Đ°ĐēĐēĐ°ŅĐŊŅĐ°.",
+ "privacy.unlisted.long": "ĐĐĩĐŊŅŅĐĩ Đ°ĐģĐŗĐžŅиŅĐŧиŅĐĩŅĐēиŅ
ŅĐ°ĐŊŅĐ°Ņ",
+ "privacy.unlisted.short": "ĐĸиŅ
иК ĐŋŅĐąĐģиŅĐŊŅĐš",
"privacy_policy.last_updated": "ĐĐžŅĐģĐĩĐ´ĐŊĐĩĐĩ ОйĐŊОвĐģĐĩĐŊиĐĩ {date}",
"privacy_policy.title": "ĐĐžĐģиŅиĐēĐ° ĐēĐžĐŊŅидĐĩĐŊŅиаĐģŅĐŊĐžŅŅи",
"recommended": "Đ ĐĩĐēĐžĐŧĐĩĐŊĐ´ŅĐĩŅŅŅ",
@@ -549,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": "ĐŅавОваŅ иĐŊŅĐžŅĐŧĐ°ŅиŅ",
@@ -713,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/sa.json b/app/javascript/mastodon/locales/sa.json
index 051ec5d6f8..469930c3ed 100644
--- a/app/javascript/mastodon/locales/sa.json
+++ b/app/javascript/mastodon/locales/sa.json
@@ -77,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": "ā¤
ā¤¨āĨā¤°āĨā¤§ā¤ŋā¤¤ā¤ ā¤ĒāĨā¤ˇāĨā¤ ā¤ ā¤ĒāĨā¤°ā¤¤ā¤ŋā¤Ēā¤žā¤Ļā¤¯ā¤ŋā¤¤āĨā¤ ā¤¨ ā¤ļā¤āĨā¤¯ā¤¤āĨāĨ¤ ā¤
ā¤¸āĨā¤Žā¤žā¤ā¤ ā¤āĨā¤Ąā¤ŋ ā¤ĻāĨā¤ˇā¤¸āĨā¤¯ ā¤ā¤žā¤°ā¤ŖāĨā¤¨, ā¤
ā¤Ĩā¤ĩā¤ž ā¤ŦāĨā¤°ā¤žā¤ā¤ā¤°āĨ ā¤¸ā¤ā¤ā¤¤ā¤¤ā¤žā¤¯ā¤žā¤¸āĨā¤¸ā¤Žā¤¸āĨā¤¯ā¤žā¤¯ā¤žā¤ ā¤ā¤žā¤°ā¤ŖāĨā¤¨ ā¤ā¤ĩā¤ŋā¤¤āĨā¤Žā¤°āĨā¤šā¤¤ā¤ŋāĨ¤",
@@ -129,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": "ā¤¨ā¤ŋā¤ˇāĨā¤§ā¤",
@@ -357,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": "ā¤
ā¤¨āĨā¤¸ā¤°ā¤Ŗā¤žā¤¨āĨā¤°āĨā¤§ā¤žā¤",
@@ -453,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": "ā¤¨ā¤ĩāĨā¤āĨā¤°āĨ",
@@ -572,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 89e951f77d..90b663aea7 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -60,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",
@@ -100,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",
@@ -287,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",
@@ -364,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âĻ",
@@ -473,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 0378cd2926..b7563022a9 100644
--- a/app/javascript/mastodon/locales/sco.json
+++ b/app/javascript/mastodon/locales/sco.json
@@ -74,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.",
@@ -125,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",
@@ -341,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",
@@ -425,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",
@@ -583,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 c2d2a41cc5..2058d1415b 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -53,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": "āļ
āļ´āˇāļēāˇ!",
@@ -102,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": "āļ
āˇāˇāˇāļģ",
@@ -209,11 +201,8 @@
"hashtag.column_settings.tag_mode.all": "āļ¸āˇ āˇāˇāļēāļŊāˇāļŊāļ¸",
"hashtag.column_settings.tag_mode.none": "āļ¸āˇ āļāˇāˇāˇāˇāļāˇ āļąāˇāļ",
"hashtag.column_settings.tag_toggle": "āļ¸āˇāļ¸ āļāˇāļģāˇāˇāˇ āļ
āļ¸āļāļģ āļ§āˇāļāˇ āļāļāˇāˇ
āļāˇ āļāļģāļąāˇāļą",
- "home.actions.go_to_explore": "āļąāˇāļāˇ āļāļą āļ¯āˇ āļļāļŊāļąāˇāļą",
- "home.actions.go_to_suggestions": "āļ´āˇāļ¯āˇāļāļŊāļēāˇāļąāˇ āˇāˇāļēāļąāˇāļą",
"home.column_settings.basic": "āļ¸āˇāļŊāˇāļ",
"home.column_settings.show_replies": "āļ´āˇāˇ
āˇāļāˇāļģāˇ āļ´āˇāļąāˇāˇāļąāˇāļą",
- "home.explore_prompt.title": "āļ¸āˇāļē āļāļļāļāˇ āļ¸āˇāˇāˇāļ§āļŠāļąāˇ āļ¸āˇāļŊāˇ āļ´āˇāļ§āˇāˇāļēāˇ.",
"home.hide_announcements": "āļąāˇāˇāˇāļ¯āļą āˇāļāˇāļąāˇāļą",
"home.pending_critical_update.link": "āļēāˇāˇāļāˇāļāˇāļŊ āļļāļŊāļąāˇāļą",
"home.show_announcements": "āļąāˇāˇāˇāļ¯āļą āļ´āˇāļąāˇāˇāļąāˇāļą",
@@ -269,7 +258,6 @@
"navigation_bar.compose": "āļąāˇ āļŊāˇāļ´āˇāļēāļāˇ āļŊāˇāļēāļąāˇāļą",
"navigation_bar.direct": "āļ´āˇāļ¯āˇāļāļŊāˇāļ āˇāˇāļŗāˇāˇāļ¸āˇ",
"navigation_bar.domain_blocks": "āļ
āˇāˇāˇāļģ āļāˇ
āˇāˇāļ¸āˇ",
- "navigation_bar.edit_profile": "āļ´āˇāļāˇāļāļŠ āˇāļāˇāˇāļāļģāļĢāļē",
"navigation_bar.explore": "āļāˇāˇāˇāļąāļē",
"navigation_bar.favourites": "āļ´āˇâāļģāˇāļēāļāļ¸āļēāļąāˇ",
"navigation_bar.filters": "āļąāˇāˇāļŦ āļāˇ
āˇāļ āļą",
@@ -335,11 +323,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": "āļąāˇāˇāˇāļ¸āˇ āļāļģāļąāˇāļą",
@@ -481,10 +464,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 02425d73e0..da76e98687 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,9 +32,10 @@
"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.followers_counter": "{count, plural, one {{counter} SledujÃēci} other {{counter} SledujÃēci}}",
"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.",
@@ -52,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",
@@ -87,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.",
@@ -141,25 +142,23 @@
"compose_form.direct_message_warning_learn_more": "Zisti viac",
"compose_form.encryption_warning": "PrÃspevky na Mastodon nie sÃē end-to-end ÅĄifrovanÊ. NezdieÄžajte cez Mastodon Åžiadne citlivÊ informÃĄcie.",
"compose_form.hashtag_warning": "Tento prÃspevok nebude zobrazenÃŊ pod ÅžiadnÃŊm haÅĄtagom, lebo nieje verejne listovanÃŊ. Iba verejnÊ prÃspevky môŞu byÅĨ nÃĄjdenÊ podÄža haÅĄtagu.",
- "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": "Tvoj ÃēÄet nie je {locked}. KtokoÄžvek ÅĨa môŞe nasledovaÅĨ a vidieÅĨ tvoje prÃspevky 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.multiple": "Viacero moÅžnostÃ",
"compose_form.poll.option_placeholder": "VoÄžba {number}",
- "compose_form.poll.remove_option": "OdstrÃĄÅ tÃēto voÄžbu",
+ "compose_form.poll.single": "Vyber jednu",
"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.poll.type": "Typ",
+ "compose_form.publish": "Prispej",
"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.reply": "Odpovedz",
+ "compose_form.save_changes": "AktualizÃĄcia",
"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",
+ "compose_form.spoiler_placeholder": "Varovanie o obsahu (voliteĞnÊ)",
"confirmation_modal.cancel": "ZruÅĄ",
"confirmations.block.block_and_report": "Zablokuj a nahlÃĄs",
"confirmations.block.confirm": "Blokuj",
@@ -278,6 +277,12 @@
"follow_request.authorize": "PovoÄž prÃstup",
"follow_request.reject": "Odmietni",
"follow_requests.unlocked_explanation": "SÃce VÃĄÅĄ uÄet nie je uzamknutÃŊ, ale {domain} tÃm si myslel Åže môŞete chcieÅĨ skontrolovaÅĨ Åžiadosti o sledovanie z tÃŊchto ÃēÄtov manuÃĄlne.",
+ "follow_suggestions.curated_suggestion": "VÃŊber zo servera",
+ "follow_suggestions.dismiss": "Znovu nezobrazuj",
+ "follow_suggestions.personalized_suggestion": "PrispôsobenÊ odporÃēÄania",
+ "follow_suggestions.popular_suggestion": "PopulÃĄrne nÃĄvrhy",
+ "follow_suggestions.view_all": "Zobraz vÅĄetky",
+ "follow_suggestions.who_to_follow": "Koho nasledovaÅĨ",
"followed_tags": "NasledovanÊ haÅĄtagy",
"footer.about": "O",
"footer.directory": "AdresÃĄr profilov",
@@ -298,19 +303,15 @@
"hashtag.column_settings.tag_mode.any": "HociktorÃŊ z tÃŊchto",
"hashtag.column_settings.tag_mode.none": "ÅŊiaden z tÃŊchto",
"hashtag.column_settings.tag_toggle": "VloÅž dodatoÄnÊ haÅĄtagy pre tento stÄēpec",
- "hashtag.counter_by_accounts": "{count, plural, one {{counter} sledujÃēci} few {{counter} sledujÃēci} many {{counter} sledujÃēcich} other {{counter} sledujÃēcich}}",
+ "hashtag.counter_by_accounts": "{count, plural, one {{counter} ÃēÄastnÃk} other {{counter} ÃēÄastnÃci}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} prÃspevok} few {{counter} prÃspevky} many {{counter} prÃspevkov} other {{counter} prÃspevkov}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} prÃspevok} few {{counter} prÃspevky} many {{counter} prÃspevkov} other {{counter} prÃspevkov}} dnes",
"hashtag.follow": "Sleduj haÅĄtag",
"hashtag.unfollow": "Nesleduj haÅĄtag",
"hashtags.and_other": "âĻa {count, plural, one {} few {# ÄalÅĄie} many {# ÄalÅĄÃch}other {# ÄalÅĄÃch}}",
- "home.actions.go_to_explore": "PozrieÅĨ, Äo je trendy",
- "home.actions.go_to_suggestions": "NÃĄjdi Äžudà na sledovanie",
"home.column_settings.basic": "ZÃĄkladnÊ",
"home.column_settings.show_reblogs": "UkÃĄÅž vyzdvihnutÊ",
"home.column_settings.show_replies": "UkÃĄÅž odpovede",
- "home.explore_prompt.body": "VÃĄÅĄ domovskÃŊ informaÄnÃŊ kanÃĄl bude obsahovaÅĨ mix prÃspevkov z mrieÅžok, ktorÊ ste sa rozhodli sledovaÅĨ, ÄžudÃ, ktorÃŊch ste sa rozhodli sledovaÅĨ, a prÃspevkov, ktorÊ preferujÃē. Ak sa vÃĄm to zdÃĄ prÃliÅĄ mÃĄlo, moÅžno budete chcieÅĨ:",
- "home.explore_prompt.title": "Toto je tvoja domovina v rÃĄmci Mastodonu.",
"home.hide_announcements": "Skry oznÃĄmenia",
"home.pending_critical_update.body": "ProsÃm aktualizuj si svoj Mastodon server, ako nÃĄhle to bude moÅžnÊ!",
"home.pending_critical_update.link": "Pozri aktualizÃĄcie",
@@ -355,7 +356,7 @@
"keyboard_shortcuts.muted": "otvor zoznam stÃÅĄenÃŊch uÅžÃvateÄžov",
"keyboard_shortcuts.my_profile": "otvor svoj profil",
"keyboard_shortcuts.notifications": "Otvor panel oznÃĄmenÃ",
- "keyboard_shortcuts.open_media": "na otvorenie mÊdiÃ",
+ "keyboard_shortcuts.open_media": "Otvorenie mÊdiÃ",
"keyboard_shortcuts.pinned": "otvor zoznam pripnutÃŊch prÃspevkov",
"keyboard_shortcuts.profile": "otvor autorov profil",
"keyboard_shortcuts.reply": "odpovedaÅĨ",
@@ -364,7 +365,7 @@
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.start": "otvor panel ''zaÄÃname''",
"keyboard_shortcuts.toggle_hidden": "ukÃĄÅž/skry text za CW",
- "keyboard_shortcuts.toggle_sensitivity": "pre zobrazenie/skrytie mÊdiÃ",
+ "keyboard_shortcuts.toggle_sensitivity": "UkÃĄÅž/skry mÊdiÃĄ",
"keyboard_shortcuts.toot": "zaÄni Ãēplne novÃŊ prÃspevok",
"keyboard_shortcuts.unfocus": "nesÃēstreÄ sa na pÃsaciu plochu, alebo hÄžadanie",
"keyboard_shortcuts.up": "posuÅ sa vyÅĄÅĄie v zozname",
@@ -406,7 +407,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ÃĄ",
@@ -494,7 +494,7 @@
"onboarding.share.message": "Na Mastodone som {username}. PrÃÄ ma nasledovaÅĨ na {url}",
"onboarding.share.next_steps": "ÄalÅĄie moÅžnÊ kroky:",
"onboarding.share.title": "ZdieÄžaj svoj profil",
- "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
+ "onboarding.start.lead": "Teraz si sÃēÄasÅĨou Mastodonu, unikÃĄtnej, decentralizovanej sociÃĄlnej platformy, kde ty, nie algoritmus, spravujeÅĄ svoj vlastnÃŊ zÃĄÅžitok. PoÄme ÅĨa naÅĄtartovaÅĨ na tomto novom sociÃĄlnom pomedzÃ:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "ZvlÃĄdli ste to!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
@@ -523,14 +523,13 @@
"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.direct.long": "VÅĄetci spomenutà v prÃspevku",
+ "privacy.direct.short": "KonkrÊtni Ğudia",
+ "privacy.private.long": "Iba tvoji nasledovatelia",
+ "privacy.private.short": "Sledovatelia",
+ "privacy.public.long": "KtokoÄžvek na, aj mimo Mastodonu",
"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.unlisted.short": "VerejnÃŊ v tichosti",
"privacy_policy.last_updated": "PoslednÃĄ Ãēprava {date}",
"privacy_policy.title": "ZÃĄsady sÃēkromia",
"recommended": "OdporÃēÄanÊ",
@@ -549,6 +548,7 @@
"relative_time.seconds": "{number}sek",
"relative_time.today": "dnes",
"reply_indicator.cancel": "ZruÅĄiÅĨ",
+ "reply_indicator.poll": "Anketa",
"report.block": "Blokuj",
"report.block_explanation": "Ich prÃspevky neuvidÃte. NebudÃē môcÅĨ vidieÅĨ vaÅĄe prÃspevky ani vÃĄs sledovaÅĨ. BudÃē môcÅĨ zistiÅĨ, Åže sÃē zablokovanÃ.",
"report.categories.legal": "PrÃĄvne ujednania",
@@ -707,15 +707,13 @@
"units.short.million": "{count}mil.",
"units.short.thousand": "{count}tis.",
"upload_area.title": "Pretiahni a pusÅĨ pre nahratie",
- "upload_button.label": "Pridaj mÊdiÃĄlny sÃēbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_button.label": "Pridaj obrÃĄzky, video, alebo zvukovÃŊ sÃēbor",
"upload_error.limit": "Limit pre nahrÃĄvanie sÃēborov bol prekroÄenÃŊ.",
"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 b3998b9110..3aae75dc36 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.multiple": "VeÄ moÅžnosti",
+ "compose_form.poll.option_placeholder": "MoÅžnost {number}",
+ "compose_form.poll.single": "Izberite eno moÅžnost",
"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.poll.type": "Slog",
"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.reply": "Odgovori",
+ "compose_form.save_changes": "Posodobi",
"compose_form.spoiler.marked": "Odstrani opozorilo o vsebini",
"compose_form.spoiler.unmarked": "Dodaj opozorilo o vsebini",
- "compose_form.spoiler_placeholder": "Tukaj napiÅĄite opozorilo",
+ "compose_form.spoiler_placeholder": "Opozorilo o vsebini (ni obvezno)",
"confirmation_modal.cancel": "PrekliÄi",
"confirmations.block.block_and_report": "Blokiraj in prijavi",
"confirmations.block.confirm": "Blokiraj",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Overi",
"follow_request.reject": "Zavrni",
"follow_requests.unlocked_explanation": "Äeprav vaÅĄ raÄun ni zaklenjen, zaposleni pri {domain} menijo, da bi morda Åželeli pregledati zahteve za sledenje teh raÄunov roÄno.",
+ "follow_suggestions.curated_suggestion": "Izbor urednikov",
+ "follow_suggestions.dismiss": "Ne pokaÅži veÄ",
+ "follow_suggestions.personalized_suggestion": "Osebno prilagojen predlog",
+ "follow_suggestions.popular_suggestion": "Priljubljen predlog",
+ "follow_suggestions.view_all": "PokaÅži vse",
+ "follow_suggestions.who_to_follow": "Komu slediti",
"followed_tags": "Sledeni kljuÄniki",
"footer.about": "O Mastodonu",
"footer.directory": "Imenik profilov",
@@ -306,13 +309,9 @@
"hashtag.follow": "Sledi kljuÄniku",
"hashtag.unfollow": "Nehaj slediti kljuÄniku",
"hashtags.and_other": "âĻin ÅĄe {count, plural, other {#}}",
- "home.actions.go_to_explore": "Poglejte, kaj je v trendu",
- "home.actions.go_to_suggestions": "PoiÅĄÄite osebe, ki jim Åželite slediti",
"home.column_settings.basic": "Osnovno",
"home.column_settings.show_reblogs": "PokaÅži izpostavitve",
"home.column_settings.show_replies": "PokaÅži odgovore",
- "home.explore_prompt.body": "VaÅĄ domaÄi vir bo vseboval meÅĄanico objav kljuÄnikov, ki ste jih izbrali za sledenje, oseb, ki ste jih izbrali za sledenje, in objav, ki jih ti izpostavljajo. Äe se vam to zdi preveÄ tiho, morda Åželite:",
- "home.explore_prompt.title": "To je vaÅĄ dom v okviru Mastodona.",
"home.hide_announcements": "Skrij obvestila",
"home.pending_critical_update.body": "Äim prej posodobite svoj streÅžnik Mastodon!",
"home.pending_critical_update.link": "Glejte posodobitve",
@@ -408,7 +407,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",
@@ -526,14 +524,15 @@
"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.direct.long": "Vsem omenjenim v objavi",
+ "privacy.direct.short": "DoloÄenim ljudem",
+ "privacy.private.long": "Samo vaÅĄim sledilcem",
+ "privacy.private.short": "Sledilcem",
+ "privacy.public.long": "Vsem, ki so ali niso na Mastodonu",
"privacy.public.short": "Javno",
- "privacy.unlisted.long": "Vidno za vse, vendar izkljuÄeno iz funkcionalnosti odkrivanja",
- "privacy.unlisted.short": "Ni prikazano",
+ "privacy.unlisted.additional": "UÄinek je enak kot pri javni objavi, le da se ta ne bo prikazala v Åživih virih, med kljuÄniki, raziskovanjem ali iskanjem, Äetudi ste to vkljuÄili na ravni raÄuna.",
+ "privacy.unlisted.long": "Manj vsebine po izboru algoritma",
+ "privacy.unlisted.short": "Tiho javno",
"privacy_policy.last_updated": "Zadnja posodobitev {date}",
"privacy_policy.title": "Pravilnik o zasebnosti",
"recommended": "PriporoÄeno",
@@ -551,7 +550,9 @@
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
"relative_time.today": "danes",
+ "reply_indicator.attachments": "{count, plural, one {# priloga} two {# prilogi} few {# priloge} other {# prilog}}",
"reply_indicator.cancel": "PrekliÄi",
+ "reply_indicator.poll": "Anketa",
"report.block": "Blokiraj",
"report.block_explanation": "Njihovih objav ne boste videli. Oni ne bodo videli vaÅĄih objav, niti vam ne morejo slediti. Lahko bodo ugotovili, da so blokirani.",
"report.categories.legal": "Pravno obvestilo",
@@ -715,10 +716,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 48eac1487e..496e35fe76 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"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.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.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",
@@ -278,6 +277,12 @@
"follow_request.authorize": "Autorizoje",
"follow_request.reject": "Hidhe tej",
"follow_requests.unlocked_explanation": "Edhe pse llogaria juaj sâÃĢshtÃĢ e kyçur, ekipi i {domain} mendoi se mund tÃĢ donit tÃĢ shqyrtonit dorazi kÃĢrkesa ndjekjeje prej kÃĢtyre llogarive.",
+ "follow_suggestions.curated_suggestion": "Zgjedhur nga Ekipi",
+ "follow_suggestions.dismiss": "Mos shfaq mÃĢ",
+ "follow_suggestions.personalized_suggestion": "Sugjerim i personalizuar",
+ "follow_suggestions.popular_suggestion": "Sugjerim popullor",
+ "follow_suggestions.view_all": "Shihni krejt",
+ "follow_suggestions.who_to_follow": "CilÃĢt tÃĢ ndiqen",
"followed_tags": "Hashtag-ÃĢ tÃĢ ndjekur",
"footer.about": "Mbi",
"footer.directory": "Drejtori profilesh",
@@ -304,13 +309,9 @@
"hashtag.follow": "Ndiqe hashtag-un",
"hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut",
"hashtags.and_other": "âĻdhe {count, plural, one {}other {# mÃĢ tepÃĢr}}",
- "home.actions.go_to_explore": "Shihni çâÃĢshtÃĢ nÃĢ modÃĢ",
- "home.actions.go_to_suggestions": "Gjeni persona pÃĢr ndjekje",
"home.column_settings.basic": "BazÃĢ",
"home.column_settings.show_reblogs": "Shfaq pÃĢrforcime",
"home.column_settings.show_replies": "Shfaq pÃĢrgjigje",
- "home.explore_prompt.body": "Prurja juaj bazÃĢ do tÃĢ ketÃĢ njÃĢ pÃĢrzierje postimesh nga hashtag-ÃĢ qÃĢ keni zgjedhur tÃĢ ndiqni, persona qÃĢ keni zgjedhur tÃĢ ndiqni dhe postime qÃĢ ata pÃĢrforcojnÃĢ. NÃĢse kjo duket si shumÃĢ qetÃĢsi, mund tÃĢ doni tÃĢ:",
- "home.explore_prompt.title": "Kjo ÃĢshtÃĢ baza juaj brenda Mastodon-it.",
"home.hide_announcements": "Fshihi lajmÃĢrimet",
"home.pending_critical_update.body": "Ju lutemi, pÃĢrditÃĢsoni sa mÃĢ shpejt tÃĢ jetÃĢ e mundur shÃĢrbyesin tuaj Mastodon!",
"home.pending_critical_update.link": "Shihni pÃĢrditÃĢsime",
@@ -406,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",
@@ -524,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",
@@ -549,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",
@@ -713,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 59ad0ae84e..d9490ef70d 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"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.multiple": "ViÅĄestruki izbor",
+ "compose_form.poll.option_placeholder": "Opcija {number}",
+ "compose_form.poll.single": "Odaberite jedno",
"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.poll.type": "Stil",
"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.reply": "Odgovori",
+ "compose_form.save_changes": "AÅžuriraj",
"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",
+ "compose_form.spoiler_placeholder": "Upozorenje o sadrÅžaju (opciono)",
"confirmation_modal.cancel": "OtkaÅži",
"confirmations.block.block_and_report": "Blokiraj i prijavi",
"confirmations.block.confirm": "Blokiraj",
@@ -278,6 +277,12 @@
"follow_request.authorize": "Odobri",
"follow_request.reject": "Odbij",
"follow_requests.unlocked_explanation": "Iako vaÅĄ nalog nije zakljuÄan, osoblje {domain} smatra da biste moÅžda Åželeli da ruÄno pregledate zahteve za praÄenje sa ovih naloga.",
+ "follow_suggestions.curated_suggestion": "Izbor urednika",
+ "follow_suggestions.dismiss": "Ne prikazuj ponovo",
+ "follow_suggestions.personalized_suggestion": "Personalizovani predlog",
+ "follow_suggestions.popular_suggestion": "Popularni predlog",
+ "follow_suggestions.view_all": "PrikaÅži sve",
+ "follow_suggestions.who_to_follow": "Koga pratiti",
"followed_tags": "PraÄene heÅĄ oznake",
"footer.about": "Osnovni podaci",
"footer.directory": "Direktorijum profila",
@@ -304,13 +309,9 @@
"hashtag.follow": "Zaprati heÅĄ oznaku",
"hashtag.unfollow": "Otprati heÅĄ oznaku",
"hashtags.and_other": "âĻi {count, plural, one {joÅĄ #} few {joÅĄ #}other {joÅĄ #}}",
- "home.actions.go_to_explore": "Pogledate ÅĄta je u trendu",
- "home.actions.go_to_suggestions": "PronaÄete ljude koje biste pratili",
"home.column_settings.basic": "Osnovna",
"home.column_settings.show_reblogs": "PrikaÅži podrÅžavanja",
"home.column_settings.show_replies": "PrikaÅži odgovore",
- "home.explore_prompt.body": "VaÅĄa poÄetna stranica cĖe imati meÅĄavinu objava od heÅĄ oznaka koje ste izabrali da pratite, ljudi koje ste izabrali da pratite i objava koje su podrÅžali. Ako izgleda previÅĄe tiho, moÅžda cĖete Åželeti da:",
- "home.explore_prompt.title": "Ovo je vaÅĄa matiÄna baza u Mastodon-u.",
"home.hide_announcements": "Sakrij najave",
"home.pending_critical_update.body": "AÅžurirajte svoj Mastodon server ÅĄto je pre mogucĖe!",
"home.pending_critical_update.link": "Pogledajte aÅžuriranja",
@@ -406,7 +407,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",
@@ -524,14 +524,15 @@
"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.direct.long": "Svi pomenuti u objavi",
+ "privacy.direct.short": "OdreÄeni ljudi",
+ "privacy.private.long": "Samo vaÅĄi pratioci",
+ "privacy.private.short": "Pratioci",
+ "privacy.public.long": "Bilo ko na Mastodon-u i van njega",
"privacy.public.short": "Javno",
- "privacy.unlisted.long": "Vidljivo svima, ali iskljuÄeno iz funkcija otkrivanja",
- "privacy.unlisted.short": "Neizlistano",
+ "privacy.unlisted.additional": "Ovo se ponaÅĄa potpuno kao javno, osim ÅĄto se objava necĖe pojavljivati u izvorima uÅživo ili heÅĄ oznakama, istraÅživanjima ili pretrazi Mastodon-a, Äak i ako ste ukljuÄeni u celom nalogu.",
+ "privacy.unlisted.long": "Manje algoritamskih fanfara",
+ "privacy.unlisted.short": "Tiha javnost",
"privacy_policy.last_updated": "Poslednje aÅžuriranje {date}",
"privacy_policy.title": "Politika privatnosti",
"recommended": "PreporuÄeno",
@@ -549,7 +550,9 @@
"relative_time.minutes": "{number} min.",
"relative_time.seconds": "{number} sek.",
"relative_time.today": "danas",
+ "reply_indicator.attachments": "{count, plural, one {# prilog} few {# priloga} other {# priloga}}",
"reply_indicator.cancel": "OtkaÅži",
+ "reply_indicator.poll": "Anketa",
"report.block": "Blokiraj",
"report.block_explanation": "NeÄete videti objave korisnika. Ni on neÄe videti VaÅĄe objave niti Äe moÄi da Vas prati. TakoÄe Äe moÄi da sazna da je blokiran.",
"report.categories.legal": "Pravni",
@@ -713,10 +716,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 79786b8d44..fd09f5db49 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -32,6 +32,7 @@
"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} ĐŋŅĐ°ŅиĐģĐ°ŅĐ°}}",
@@ -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,20 @@
"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.multiple": "ĐиŅĐĩŅŅŅŅĐēи иСйОŅ",
+ "compose_form.poll.option_placeholder": "ĐĐŋŅиŅĐ° {number}",
+ "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": "ĐĐģĐžĐēиŅĐ°Ņ",
@@ -279,6 +277,12 @@
"follow_request.authorize": "ĐдОйŅи",
"follow_request.reject": "ĐдйиŅ",
"follow_requests.unlocked_explanation": "ĐĐ°ĐēĐž ваŅ ĐŊĐ°ĐģĐžĐŗ ĐŊиŅĐĩ СаĐēŅŅŅĐ°ĐŊ, ĐžŅОйŅĐĩ {domain} ŅĐŧĐ°ŅŅĐ° Đ´Đ° йиŅŅĐĩ ĐŧĐžĐļĐ´Đ° ĐļĐĩĐģĐĩĐģи Đ´Đ° ŅŅŅĐŊĐž ĐŋŅĐĩĐŗĐģĐĩĐ´Đ°ŅĐĩ СаŅ
ŅĐĩвĐĩ Са ĐŋŅĐ°ŅĐĩŅĐĩ ŅĐ° ОвиŅ
ĐŊĐ°ĐģĐžĐŗĐ°.",
+ "follow_suggestions.curated_suggestion": "ĐСйОŅ ŅŅĐĩĐ´ĐŊиĐēĐ°",
+ "follow_suggestions.dismiss": "ĐĐĩ ĐŋŅиĐēаСŅŅ ĐŋĐžĐŊОвО",
+ "follow_suggestions.personalized_suggestion": "ĐĐĩŅŅĐžĐŊĐ°ĐģиСОваĐŊи ĐŋŅĐĩĐ´ĐģĐžĐŗ",
+ "follow_suggestions.popular_suggestion": "ĐĐžĐŋŅĐģĐ°ŅĐŊи ĐŋŅĐĩĐ´ĐģĐžĐŗ",
+ "follow_suggestions.view_all": "ĐŅиĐēĐ°Đļи ŅвĐĩ",
+ "follow_suggestions.who_to_follow": "ĐĐžĐŗĐ° ĐŋŅĐ°ŅиŅи",
"followed_tags": "ĐŅĐ°ŅĐĩĐŊĐĩ Ņ
ĐĩŅ ОСĐŊĐ°ĐēĐĩ",
"footer.about": "ĐŅĐŊОвĐŊи ĐŋОдаŅи",
"footer.directory": "ĐиŅĐĩĐēŅĐžŅиŅŅĐŧ ĐŋŅĐžŅиĐģĐ°",
@@ -305,13 +309,9 @@
"hashtag.follow": "ĐĐ°ĐŋŅĐ°Ņи Ņ
ĐĩŅ ОСĐŊĐ°ĐēŅ",
"hashtag.unfollow": "ĐŅĐŋŅĐ°Ņи Ņ
ĐĩŅ ОСĐŊĐ°ĐēŅ",
"hashtags.and_other": "âĻи {count, plural, one {ŅĐžŅ #} few {ŅĐžŅ #}other {ŅĐžŅ #}}",
- "home.actions.go_to_explore": "ĐĐžĐŗĐģĐĩĐ´Đ°ŅĐĩ ŅŅĐ° ŅĐĩ Ņ ŅŅĐĩĐŊĐ´Ņ",
- "home.actions.go_to_suggestions": "ĐŅĐžĐŊĐ°ŅĐĩŅĐĩ ŅŅĐ´Đĩ ĐēĐžŅĐĩ йиŅŅĐĩ ĐŋŅĐ°ŅиĐģи",
"home.column_settings.basic": "ĐŅĐŊОвĐŊĐ°",
"home.column_settings.show_reblogs": "ĐŅиĐēĐ°Đļи ĐŋОдŅĐļаваŅĐ°",
"home.column_settings.show_replies": "ĐŅиĐēĐ°Đļи ОдĐŗОвОŅĐĩ",
- "home.explore_prompt.body": "ĐĐ°ŅĐ° ĐŋĐžŅĐĩŅĐŊĐ° ŅŅŅĐ°ĐŊиŅĐ° ŅĐĩ иĐŧĐ°Ņи ĐŧĐĩŅавиĐŊŅ ОйŅава Од Ņ
ĐĩŅ ОСĐŊĐ°ĐēĐ° ĐēĐžŅĐĩ ŅŅĐĩ иСайŅĐ°Đģи Đ´Đ° ĐŋŅĐ°ŅиŅĐĩ, ŅŅди ĐēĐžŅĐĩ ŅŅĐĩ иСайŅĐ°Đģи Đ´Đ° ĐŋŅĐ°ŅиŅĐĩ и ОйŅава ĐēĐžŅĐĩ ŅŅ ĐŋОдŅĐļĐ°Đģи. ĐĐēĐž иСĐŗĐģĐĩĐ´Đ° ĐŋŅĐĩвиŅĐĩ ŅиŅ
Đž, ĐŧĐžĐļĐ´Đ° ŅĐĩŅĐĩ ĐļĐĩĐģĐĩŅи Đ´Đ°:",
- "home.explore_prompt.title": "ĐвО ŅĐĩ ваŅĐ° ĐŧĐ°ŅиŅĐŊĐ° йаСа Ņ Mastodon-Ņ.",
"home.hide_announcements": "ĐĄĐ°ĐēŅиŅ ĐŊĐ°ŅавĐĩ",
"home.pending_critical_update.body": "ĐĐļŅŅиŅĐ°ŅŅĐĩ ŅвОŅ Mastodon ŅĐĩŅвĐĩŅ ŅŅĐž ŅĐĩ ĐŋŅĐĩ ĐŧĐžĐŗŅŅĐĩ!",
"home.pending_critical_update.link": "ĐĐžĐŗĐģĐĩĐ´Đ°ŅŅĐĩ Đ°ĐļŅŅиŅĐ°ŅĐ°",
@@ -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 d3ca776bd9..4a15c60ed8 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.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.multiple": "Flera val",
+ "compose_form.poll.option_placeholder": "Alternativ {number}",
+ "compose_form.poll.single": "Välj en",
"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.poll.type": "Stil",
"compose_form.publish": "Publicera",
"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",
@@ -280,6 +277,10 @@
"follow_request.authorize": "Godkänn",
"follow_request.reject": "Avvisa",
"follow_requests.unlocked_explanation": "Ãven om ditt konto inte är lÃĨst tror {domain} personalen att du kanske vill granska dessa fÃļljares fÃļrfrÃĨgningar manuellt.",
+ "follow_suggestions.dismiss": "Visa inte igen",
+ "follow_suggestions.personalized_suggestion": "Personligt fÃļrslag",
+ "follow_suggestions.popular_suggestion": "Populärt fÃļrslag",
+ "follow_suggestions.view_all": "Visa alla",
"followed_tags": "FÃļljda hashtags",
"footer.about": "Om",
"footer.directory": "Profilkatalog",
@@ -306,13 +307,9 @@
"hashtag.follow": "FÃļlj hashtagg",
"hashtag.unfollow": "AvfÃļlj hashtagg",
"hashtags.and_other": "âĻoch {count, plural, one {}other {# mer}}",
- "home.actions.go_to_explore": "Se vad som trendar",
- "home.actions.go_to_suggestions": "Hitta personer att fÃļlja",
"home.column_settings.basic": "Grundläggande",
"home.column_settings.show_reblogs": "Visa boostar",
"home.column_settings.show_replies": "Visa svar",
- "home.explore_prompt.body": "Din hemflÃļde kommer att ha en blandning av inlägg frÃĨn taggar du har valt att fÃļlja, de människor som du har valt att fÃļlja och de inlägg som de boostar. Om det känns fÃļr tyst kanske du vill:",
- "home.explore_prompt.title": "Detta är din hembas inom Mastodon.",
"home.hide_announcements": "DÃļlj notiser",
"home.pending_critical_update.body": "Uppdatera din Mastodon-server sÃĨ snart som mÃļjligt!",
"home.pending_critical_update.link": "Se uppdateringar",
@@ -408,7 +405,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",
@@ -524,14 +520,11 @@
"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.direct.long": "Alla som nämns i inlägget",
+ "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,7 +542,9 @@
"relative_time.minutes": "{number}min",
"relative_time.seconds": "{number}sek",
"relative_time.today": "idag",
+ "reply_indicator.attachments": "{count, plural, one {# bilaga} other {# bilagor}}",
"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",
@@ -713,10 +708,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 abbdf9b7da..42164f656b 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 6b2332d5b8..6210c3d0b1 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,20 +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.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} -āŽāŽĒā¯ āŽĒā¯āŽāŽžāŽ°āŽŗāŽŋ",
@@ -59,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": "āŽĒāŽā¯āŽāŽŋāŽ¯āŽ˛ā¯āŽāŽŗā¯",
@@ -90,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": "āŽ¤āŽā¯",
@@ -180,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} āŽāŽ´āŽŋāŽ¯āŽ°ā¯ āŽāŽŖā¯āŽŖā¯āŽāŽŋāŽąāŽžāŽ°ā¯.",
@@ -255,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": "āŽĒāŽŋāŽŠā¯āŽĒāŽąā¯āŽąāŽ˛ā¯āŽāŽŗā¯ āŽŽāŽąā¯āŽąā¯āŽŽā¯ āŽĒāŽŋāŽŠā¯āŽĒāŽąā¯āŽąā¯āŽĒāŽĩāŽ°ā¯āŽāŽŗā¯",
@@ -316,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": "āŽāŽā¯āŽāŽŗā¯ āŽĩā¯āŽā¯āŽā¯ āŽāŽā¯āŽāŽŽā¯ āŽ¤āŽ¯āŽžāŽ°ā¯ āŽā¯āŽ¯ā¯āŽ¯āŽĒā¯āŽĒāŽā¯āŽāŽŋāŽąāŽ¤ā¯!",
@@ -404,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 7c1956d95b..b1a242c751 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 3c231871fa..24a67247c0 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -64,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}ā°¨ā°ŋ ā°Ŧāąā°˛ā°žā°āą ā°āąā°¯ā°žā°˛ā°¨āąā°āąā°ā°āąā°¨āąā°¨ā°žā°°ā°ž?",
@@ -186,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": "ā°ā°žā°Ŧā°ŋā°¤ā°žā°˛āą",
@@ -240,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": "ā°ā°Ēāąā°Ēāąā°Ąāą",
@@ -308,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 d14e37517d..e0aa072a77 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -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,20 @@
"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.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": "{count, plural, other {ā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸ā¸ŗāšā¸ā¸Ŗā¸ˇāšā¸ā¸ā¸Ģā¸Ąā¸˛ā¸ĸā¸Ēā¸ˇāšā¸ā¸§āšā¸˛ā¸Ĩā¸°āšā¸ā¸ĩā¸ĸā¸ā¸āšā¸ā¸}}",
- "compose_form.sensitive.unmarked": "{count, plural, 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": "ā¸ā¸´ā¸ā¸ā¸ąāšā¸",
@@ -203,7 +201,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} ā¸ā¸´ā¸ā¸ā¸˛ā¸Ą",
@@ -279,6 +277,12 @@
"follow_request.authorize": "ā¸ā¸ā¸¸ā¸ā¸˛ā¸",
"follow_request.reject": "ā¸ā¸ā¸´āšā¸Ēā¸",
"follow_requests.unlocked_explanation": "āšā¸Ąāšā¸§āšā¸˛āšā¸Ąāšā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸Ĩāšā¸ā¸ā¸ā¸ąā¸ā¸ā¸ĩā¸ā¸ā¸ā¸ā¸¸ā¸ ā¸ā¸ā¸ąā¸ā¸ā¸˛ā¸ā¸ā¸ā¸ {domain} ā¸ā¸´ā¸ā¸§āšā¸˛ā¸ā¸¸ā¸ā¸ā¸˛ā¸ā¸āšā¸ā¸ā¸ā¸˛ā¸Ŗā¸ā¸Ŗā¸§ā¸ā¸ā¸˛ā¸ā¸ā¸ŗā¸ā¸ā¸ā¸´ā¸ā¸ā¸˛ā¸Ąā¸ā¸˛ā¸ā¸ā¸ąā¸ā¸ā¸ĩāšā¸Ģā¸Ĩāšā¸˛ā¸ā¸ĩāšā¸āšā¸§ā¸ĸā¸ā¸āšā¸ā¸",
+ "follow_suggestions.curated_suggestion": "ā¸ā¸ąā¸ā¸Ēā¸Ŗā¸Ŗāšā¸ā¸ĸā¸ā¸Ŗā¸Ŗā¸ā¸˛ā¸ā¸´ā¸ā¸˛ā¸Ŗ",
+ "follow_suggestions.dismiss": "āšā¸Ąāšā¸āšā¸ā¸āšā¸Ēā¸ā¸ā¸ā¸ĩā¸",
+ "follow_suggestions.personalized_suggestion": "ā¸āšā¸āšā¸Ēā¸ā¸āšā¸ā¸°āšā¸ā¸ā¸˛ā¸°ā¸ā¸¸ā¸ā¸ā¸Ĩ",
+ "follow_suggestions.popular_suggestion": "ā¸āšā¸āšā¸Ēā¸ā¸āšā¸ā¸°ā¸ĸā¸ā¸ā¸ā¸´ā¸ĸā¸Ą",
+ "follow_suggestions.view_all": "ā¸ā¸šā¸ā¸ąāšā¸ā¸Ģā¸Ąā¸",
+ "follow_suggestions.who_to_follow": "ā¸ā¸´ā¸ā¸ā¸˛ā¸Ąāšā¸ā¸Ŗā¸ā¸ĩ",
"followed_tags": "āšā¸Žā¸āšā¸āšā¸ā¸ā¸ĩāšā¸ā¸´ā¸ā¸ā¸˛ā¸Ą",
"footer.about": "āšā¸ā¸ĩāšā¸ĸā¸§ā¸ā¸ąā¸",
"footer.directory": "āšā¸āšā¸Ŗā¸ā¸ā¸ā¸Ŗā¸ĩāšā¸ā¸Ŗāšā¸ā¸Ĩāš",
@@ -305,15 +309,11 @@
"hashtag.follow": "ā¸ā¸´ā¸ā¸ā¸˛ā¸Ąāšā¸Žā¸āšā¸āšā¸",
"hashtag.unfollow": "āšā¸Ĩā¸´ā¸ā¸ā¸´ā¸ā¸ā¸˛ā¸Ąāšā¸Žā¸āšā¸āšā¸",
"hashtags.and_other": "âĻāšā¸Ĩā¸°ā¸ā¸ĩā¸ {count, plural, other {# āšā¸ā¸´āšā¸Ąāšā¸ā¸´ā¸Ą}}",
- "home.actions.go_to_explore": "ā¸ā¸šā¸Ēā¸´āšā¸ā¸ā¸ĩāšā¸ā¸ŗā¸Ĩā¸ąā¸ā¸ā¸´ā¸ĸā¸Ą",
- "home.actions.go_to_suggestions": "ā¸āšā¸ā¸Ģā¸˛ā¸ā¸šāšā¸ā¸ā¸ā¸ĩāšā¸ā¸°ā¸ā¸´ā¸ā¸ā¸˛ā¸Ą",
"home.column_settings.basic": "ā¸ā¸ˇāšā¸ā¸ā¸˛ā¸",
"home.column_settings.show_reblogs": "āšā¸Ēā¸ā¸ā¸ā¸˛ā¸Ŗā¸ā¸ąā¸",
"home.column_settings.show_replies": "āšā¸Ēā¸ā¸ā¸ā¸˛ā¸Ŗā¸ā¸ā¸ā¸ā¸Ĩā¸ąā¸",
- "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 +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, 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/tok.json b/app/javascript/mastodon/locales/tok.json
new file mode 100644
index 0000000000..4d2cc3d1dc
--- /dev/null
+++ b/app/javascript/mastodon/locales/tok.json
@@ -0,0 +1,356 @@
+{
+ "about.blocks": "ma lawa",
+ "about.contact": "toki:",
+ "about.domain_blocks.no_reason_available": "mi sona ala e tan",
+ "about.domain_blocks.preamble": "ilo Masoton li ken e ni: sina lukin e toki jan pi ma ilo mute. sina ken toki tawa ona lon kulupu ma. taso, ma ni li ken ala e ni tawa ma ni:",
+ "about.domain_blocks.silenced.explanation": "sina lukin ala e toki e jan tan ma ni. taso, sina wile la, sina ken ni.",
+ "about.domain_blocks.silenced.title": "ken lili lukin",
+ "about.domain_blocks.suspended.title": "weka",
+ "about.not_available": "lon kulupu ni la sina ken alasa ala e sona ni.",
+ "about.rules": "lawa kulupu",
+ "account.account_note_header": "sona awen",
+ "account.add_or_remove_from_list": "o ante e lipu jan",
+ "account.badges.bot": "ilo nanpa li lawa e ni",
+ "account.badges.group": "kulupu",
+ "account.block": "o weka e @{name}",
+ "account.block_domain": "o weka e ma {domain}",
+ "account.block_short": "o weka e jan tawa mi",
+ "account.blocked": "jan li weka tawa mi",
+ "account.browse_more_on_origin_server": "sina tawa ma tan pi jan ni la sina ken lukin e mute",
+ "account.cancel_follow_request": "o pini kute",
+ "account.copy": "o pali same e linja pi lipu jan",
+ "account.direct": "len la o mu e @{name}",
+ "account.disable_notifications": "@{name} li toki la o mu ala e mi",
+ "account.domain_blocked": "ma ni li weka tawa sina",
+ "account.edit_profile": "o ante e lipu mi",
+ "account.enable_notifications": "@{name} li toki la o toki e toki ona tawa mi",
+ "account.endorse": "lipu jan la o suli e ni",
+ "account.featured_tags.last_status_at": "sitelen pini pi jan ni li lon tenpo {date}",
+ "account.featured_tags.last_status_never": "toki ala li lon",
+ "account.follow": "o kute",
+ "account.follow_back": "jan ni li kute e sina. o kute",
+ "account.followers": "jan kute",
+ "account.followers.empty": "jan ala li kute e jan ni",
+ "account.following": "sina kute e jan ni",
+ "account.follows.empty": "jan ni li kute e jan ala",
+ "account.go_to_profile": "o tawa lipu jan",
+ "account.hide_reblogs": "o lukin ala e pana toki tan @{name}",
+ "account.in_memoriam": "jan ni li moli. pona o tawa ona.",
+ "account.languages": "sina wile lukin e sitelen pi toki seme",
+ "account.locked_info": "sina wile kute e jan ni la ona o toki e ken",
+ "account.media": "sitelen",
+ "account.mention": "o toki e jan @{name}",
+ "account.moved_to": "lipu jan sin pi jan {name} li ni:",
+ "account.mute": "o len e @{name}",
+ "account.mute_notifications_short": "o kute ala e mu tan jan ni",
+ "account.mute_short": "o kute ala",
+ "account.muted": "sina len e jan ni",
+ "account.no_bio": "lipu li weka",
+ "account.open_original_page": "o open e lipu open",
+ "account.posts": "toki suli",
+ "account.posts_with_replies": "toki ale",
+ "account.report": "jan @{name} la o toki tawa lawa",
+ "account.requested": "jan ni o ken e kute sina. sina pini wile kute la o luka e ni",
+ "account.requested_follow": "{name} li wile kute e sina",
+ "account.share": "o pana e lipu jan @{name}",
+ "account.show_reblogs": "o lukin e pana toki tan @{name}",
+ "account.unblock": "o weka ala e jan {name}",
+ "account.unblock_domain": "o weka ala e ma {domain}",
+ "account.unblock_short": "o pini weka",
+ "account.unendorse": "lipu jan la o suli ala e ni",
+ "account.unfollow": "o pini kute",
+ "account.unmute": "o len ala e @{name}",
+ "account.unmute_notifications_short": "o kute e mu tan jan ni",
+ "account.unmute_short": "o len ala",
+ "admin.dashboard.retention.average": "sama",
+ "admin.dashboard.retention.cohort": "tenpo mun open",
+ "admin.dashboard.retention.cohort_size": "jan sin",
+ "alert.rate_limited.message": "tenpo {retry_time, time, medium} la o pali awen",
+ "alert.unexpected.message": "pakala li lon",
+ "alert.unexpected.title": "pakala a!",
+ "announcement.announcement": "toki suli",
+ "audio.hide": "o len e kalama",
+ "boost_modal.combo": "sina ken luka e nena {combo} tawa ni: sina wile ala luka e nena lon tenpo kama",
+ "bundle_column_error.copy_stacktrace": "o awen e sona pakala lon ilo sina",
+ "bundle_column_error.error.body": "ilo li ken ala pana e lipu ni. ni li ken tan pakala ilo.",
+ "bundle_column_error.error.title": "ike a!",
+ "bundle_column_error.network.title": "pakala la ilo sina li toki ala tawa ilo ante",
+ "bundle_column_error.retry": "o ni sin",
+ "bundle_column_error.return": "o tawa tomo",
+ "bundle_column_error.routing.body": "ilo li sona ala e lipu wile. sina pana ala pana e nasin pona tawa lipu?",
+ "bundle_column_error.routing.title": "pakala nanpa 404",
+ "bundle_modal_error.close": "o pini",
+ "bundle_modal_error.message": "ilo li wile kama e ijo ni, taso pakala li lon.",
+ "bundle_modal_error.retry": "o ni sin",
+ "closed_registrations_modal.find_another_server": "o alasa e ma ante",
+ "column.about": "sona",
+ "column.blocks": "kulupu pi jan weka",
+ "column.bookmarks": "awen toki",
+ "column.home": "lipu open",
+ "column.lists": "kulupu lipu",
+ "column.mutes": "jan len",
+ "column.pins": "toki sewi",
+ "column_header.hide_settings": "o len e lawa",
+ "column_header.pin": "o sewi",
+ "column_header.show_settings": "o lukin e lawa",
+ "column_header.unpin": "o sewi ala",
+ "column_subheading.settings": "ken ilo",
+ "community.column_settings.local_only": "toki tan ni taso",
+ "community.column_settings.media_only": "sitelen taso",
+ "community.column_settings.remote_only": "toki tan ante taso",
+ "compose.language.change": "o ante e nasin toki",
+ "compose.language.search": "o alasa e nasin toki...",
+ "compose.published.body": "toki li pana.",
+ "compose.published.open": "o lukin",
+ "compose.saved.body": "ilo li awen e ijo pana sina.",
+ "compose_form.direct_message_warning_learn_more": "o kama sona e ijo ante",
+ "compose_form.encryption_warning": "toki li len ala lon ilo Masoton ę o pana ala e sona suli len lon ilo Masoton",
+ "compose_form.placeholder": "sina wile toki e seme?",
+ "compose_form.poll.duration": "tenpo pana",
+ "compose_form.poll.multiple": "pana mute",
+ "compose_form.poll.option_placeholder": "ken nanpa {number}",
+ "compose_form.poll.single": "pana pi wan taso",
+ "compose_form.poll.switch_to_multiple": "o ante e nasin pana. pana mute o ken",
+ "compose_form.poll.switch_to_single": "o ante e nasin pana. pana wan taso o lon",
+ "compose_form.poll.type": "nasin",
+ "compose_form.publish": "o toki",
+ "compose_form.publish_form": "o open toki sin",
+ "compose_form.reply": "o toki lon ijo ni",
+ "compose_form.save_changes": "o sin e ni",
+ "compose_form.spoiler.marked": "o weka e toki pi ijo ike ken",
+ "confirmation_modal.cancel": "o pini",
+ "confirmations.block.confirm": "o weka",
+ "confirmations.block.message": "sina o wile ala wile weka e jan {name}?",
+ "confirmations.cancel_follow_request.confirm": "o weka e wile sina",
+ "confirmations.cancel_follow_request.message": "sina awen ala awen wile weka e wile kute sina lon {name}?",
+ "confirmations.delete.confirm": "o weka",
+ "confirmations.delete.message": "sina wile ala wile weka e toki ni?",
+ "confirmations.delete_list.confirm": "o weka",
+ "confirmations.delete_list.message": "sina wile ala wile weka e lipu ni?",
+ "confirmations.discard_edit_media.confirm": "o weka",
+ "confirmations.discard_edit_media.message": "toki sitelen anu lukin lili sitelen la ante pi awen ala li lon. sina wile weka e ante ni?",
+ "confirmations.domain_block.confirm": "o weka.",
+ "confirmations.domain_block.message": "sina wile ala a wile a len e ma {domain} ę ken suli la len jan taso li pona ę len pi ma ni la sina ken ala lukin e ijo pi ma ni lon lipu toki ale anu lukin toki ę len ni la jan kute sina pi ma ni li weka",
+ "confirmations.edit.confirm": "o ante",
+ "confirmations.logout.confirm": "o weka",
+ "confirmations.logout.message": "sina wile ala wile weka",
+ "confirmations.mute.confirm": "o len",
+ "confirmations.mute.message": "sina awen ala awen wile kute ala e {name}?",
+ "confirmations.redraft.confirm": "o weka o pali sin e toki",
+ "confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.",
+ "confirmations.reply.confirm": "toki lon toki ni",
+ "confirmations.reply.message": "toki tawa ona li weka e toki pali sina ę sina wile ala wile ni",
+ "confirmations.unfollow.confirm": "o pini kute",
+ "confirmations.unfollow.message": "sina o wile ala wile pini kute e jan {name}?",
+ "conversation.delete": "o weka e toki ni",
+ "conversation.mark_as_read": "ni o sin ala",
+ "conversation.open": "o lukin e toki",
+ "conversation.with": "lon {names}",
+ "directory.local": "tan {domain} taso",
+ "directory.new_arrivals": "jan pi kama sin",
+ "directory.recently_active": "jan lon tenpo poka",
+ "disabled_account_banner.account_settings": "wile pi lipu jan",
+ "disabled_account_banner.text": "sina ken ala kepeken e lipu jan sina pi nimi {disabledAccount}.",
+ "dismissable_banner.community_timeline": "ni li toki pi tenpo poka tawa ale tan jan lon ma lawa pi nimi {domain}.",
+ "dismissable_banner.dismiss": "o weka",
+ "dismissable_banner.explore_links": "ni li toki pi ijo sin ę jan mute li pana e ni lon tenpo suno ni ę sin la jan mute li pana la ni li kama suli",
+ "embed.preview": "ni li jo e sitelen ni:",
+ "emoji_button.activity": "musi",
+ "emoji_button.flags": "len ma",
+ "emoji_button.food": "moku",
+ "emoji_button.label": "o pana e sitelen pilin",
+ "emoji_button.nature": "soweli en kasi",
+ "emoji_button.not_found": "sitelen pilin ala li lon",
+ "emoji_button.objects": "ijo",
+ "emoji_button.people": "jan",
+ "emoji_button.search": "o alasa...",
+ "emoji_button.search_results": "ijo pi alasa ni",
+ "emoji_button.symbols": "sitelen",
+ "emoji_button.travel": "ma en tawa",
+ "empty_column.account_hides_collections": "jan ni li wile len e sona ni",
+ "empty_column.account_timeline": "toki ala li lon!",
+ "empty_column.account_unavailable": "ken ala lukin e lipu jan",
+ "empty_column.blocks": "jan ala li weka tawa sina.",
+ "empty_column.followed_tags": "sina alasa ala e toki ę sina alasa e toki la toki li lon ni",
+ "empty_column.hashtag": "ala li lon toki ni",
+ "empty_column.mutes": "jan ala li len tawa sina.",
+ "errors.unexpected_crash.report_issue": "o toki e pakala tawa lawa",
+ "explore.search_results": "ijo pi alasa ni",
+ "explore.suggested_follows": "jan",
+ "explore.title": "o alasa",
+ "explore.trending_links": "sin",
+ "explore.trending_statuses": "toki",
+ "filter_modal.select_filter.expired": "tenpo pini",
+ "filter_modal.select_filter.search": "o alasa anu pali",
+ "firehose.all": "ale",
+ "firehose.local": "kulupu ni",
+ "firehose.remote": "kulupu ante",
+ "follow_request.authorize": "o ken",
+ "follow_request.reject": "o ala",
+ "follow_suggestions.view_all": "o lukin e ale",
+ "follow_suggestions.who_to_follow": "sina o kute e ni",
+ "footer.about": "sona",
+ "footer.directory": "lipu jan",
+ "footer.get_app": "o jo e ilo",
+ "footer.privacy_policy": "lawa len",
+ "footer.source_code": "o lukin e toki ilo",
+ "footer.status": "lon",
+ "generic.saved": "ni li awen",
+ "hashtag.column_header.tag_mode.all": "en {additional}",
+ "hashtag.column_header.tag_mode.any": "anu {additional}",
+ "hashtag.column_header.tag_mode.none": "en {additional} ala",
+ "hashtag.column_settings.tag_mode.all": "ale ni",
+ "hashtag.column_settings.tag_mode.any": "wan ni",
+ "hashtag.column_settings.tag_mode.none": "ala ni",
+ "home.pending_critical_update.link": "o lukin e ijo ilo sin",
+ "interaction_modal.on_another_server": "lon ma ante",
+ "interaction_modal.on_this_server": "lon ma ni",
+ "interaction_modal.title.favourite": "o suli e toki {name}",
+ "interaction_modal.title.follow": "o kute e {name}",
+ "interaction_modal.title.reblog": "o wawa e toki {name}",
+ "keyboard_shortcuts.blocked": "o lukin e lipu sina pi jan weka",
+ "keyboard_shortcuts.boost": "o pana sin e toki",
+ "keyboard_shortcuts.down": "o tawa anpa lon lipu",
+ "keyboard_shortcuts.enter": "o lukin e toki",
+ "keyboard_shortcuts.favourite": "o suli e toki",
+ "keyboard_shortcuts.favourites": "o lukin e lipu sina pi toki suli",
+ "keyboard_shortcuts.muted": "o lukin e lipu sina pi jan len",
+ "keyboard_shortcuts.my_profile": "o lukin e lipu sina",
+ "keyboard_shortcuts.open_media": "o lukin e sitelen",
+ "keyboard_shortcuts.pinned": "o lukin pi lipu sina pi toki sewi",
+ "keyboard_shortcuts.toggle_sensitivity": "o ante e ken lukin",
+ "keyboard_shortcuts.toot": "o toki",
+ "keyboard_shortcuts.up": "o tawa sewi lon lipu",
+ "lightbox.close": "o pini",
+ "lightbox.compress": "o lili e sitelen",
+ "lightbox.expand": "o suli e sitelen",
+ "lightbox.next": "sinpin",
+ "lightbox.previous": "monsi",
+ "link_preview.author": "tan {name}",
+ "lists.account.add": "o pana tawa kulupu lipu",
+ "lists.account.remove": "o weka tan kulupu lipu",
+ "lists.delete": "o weka e kulupu lipu",
+ "lists.edit": "o ante e kulupu lipu",
+ "lists.edit.submit": "o ante e nimi",
+ "lists.exclusive": "o len e toki lon lipu open",
+ "lists.new.create": "o sin e kulupu lipu",
+ "lists.replies_policy.followed": "jan kute ale",
+ "lists.replies_policy.list": "jan pi kulupu ni taso",
+ "lists.replies_policy.none": "jan ala",
+ "lists.subheading": "kulupu lipu sina",
+ "load_pending": "{count, plural, other {ijo sin #}}",
+ "loading_indicator.label": "ni li kamaâĻ",
+ "media_gallery.toggle_visible": "{number, plural, other {o len e sitelen}}",
+ "mute_modal.duration": "tenpo",
+ "mute_modal.indefinite": "tenpo ale",
+ "navigation_bar.about": "sona",
+ "navigation_bar.blocks": "jan weka",
+ "navigation_bar.compose": "o pali e toki sin",
+ "navigation_bar.favourites": "toki suli",
+ "navigation_bar.filters": "nimi len",
+ "navigation_bar.lists": "kulupu lipu",
+ "navigation_bar.mutes": "sina wile ala kute e jan ni",
+ "navigation_bar.pins": "toki sewi",
+ "navigation_bar.preferences": "wile sina",
+ "navigation_bar.search": "o alasa",
+ "notification.admin.sign_up": "{name} li kama",
+ "notification.favourite": "{name} li suli e toki sina",
+ "notification.follow": " {name} li kute e sina",
+ "notification.follow_request": "{name} li wile kute e sina",
+ "notification.mention": "jan {name} li toki e sina",
+ "notification.reblog": "{name} li wawa e toki sina",
+ "notification.status": "{name} li toki",
+ "notification.update": "{name} li ante e toki",
+ "notifications.column_settings.follow": "jan kute sin",
+ "notifications.filter.all": "ale",
+ "onboarding.compose.template": "toki a, #Mastodon o!",
+ "onboarding.start.title": "sina o kama pona a!",
+ "poll.total_people": "{count, plural, other {jan #}}",
+ "privacy.public.short": "tawa ale",
+ "relative_time.full.just_now": "tenpo ni",
+ "relative_time.just_now": "tenpo ni",
+ "relative_time.today": "tenpo suno ni",
+ "report.block": "o weka e jan",
+ "report.block_explanation": "sina kama lukin ala e toki ona. ona li kama ala ken lukin e toki sina li kama ala ken kute e sina. ona li ken sona e kama ni.",
+ "report.category.title": "ike seme li lon {type} ni",
+ "report.category.title_account": "lipu",
+ "report.category.title_status": "toki",
+ "report.close": "o pini",
+ "report.mute": "o kute ala e ona",
+ "report.mute_explanation": "sina kama ala lukin e ijo pana ona. ona li awen ken kute e sina li awen ken lukin e sina li sona ala e weka kute sina e weka lukin sina.",
+ "report.next": "awen",
+ "report.reasons.dislike": "ni li ike tawa mi",
+ "report.reasons.legal": "ni li ike tawa lawa",
+ "report.reasons.other": "ni li ike tan ante",
+ "report.reasons.spam": "ni li ike tan toki mute",
+ "report.thanks.title": "sina wile ala lukin e ni anu seme?",
+ "report.unfollow": "o pini kute e {name}",
+ "report_notification.categories.legal": "ike tawa nasin lawa",
+ "search.placeholder": "o alasa",
+ "search.quick_action.go_to_account": "o tawa lipu jan {x}",
+ "search_popout.language_code": "nimi toki kepeken nasin ISO",
+ "search_results.all": "ale",
+ "search_results.see_all": "ale",
+ "search_results.statuses": "toki",
+ "search_results.title": "o alasa e {q}",
+ "status.block": "o weka e @{name}",
+ "status.cancel_reblog_private": "o pini e pana",
+ "status.delete": "o weka",
+ "status.edit": "o ante",
+ "status.edited": "ni li ante lon {date}",
+ "status.embed": "ni o lon insa pi lipu ante",
+ "status.favourite": "o suli",
+ "status.hide": "o len",
+ "status.history.created": "{name} li pali e ni lon {date}",
+ "status.history.edited": "{name} li ante lon {date}",
+ "status.load_more": "o kama e ijo ante",
+ "status.media.open": "o open",
+ "status.media.show": "o lukin",
+ "status.media_hidden": "sitelen li len",
+ "status.mute": "o len e @{name}",
+ "status.mute_conversation": "o kute ala e ijo pi toki ni",
+ "status.pin": "o sewi lon lipu sina",
+ "status.pinned": "toki sewi",
+ "status.reblog": "o wawa",
+ "status.share": "o pana tawa ante",
+ "status.show_less": "o lili e ni",
+ "status.show_less_all": "o lili e ale",
+ "status.show_more": "o suli e ni",
+ "status.show_more_all": "o suli e ale",
+ "status.show_original": "o lukin e mama",
+ "status.translate": "o ante pi nasin toki",
+ "status.translated_from_with": "toki li ante tan {lang} kepeken {provider}",
+ "status.uncached_media_warning": "lukin lili li weka",
+ "status.unmute_conversation": "o ken kute e ijo pi toki ni",
+ "status.unpin": "o sewi ala lon lipu sina",
+ "subscribed_languages.save": "o awen e ante",
+ "tabs_bar.home": "lipu open",
+ "timeline_hint.resources.followers": "jan kute",
+ "timeline_hint.resources.follows": "jan lukin",
+ "timeline_hint.resources.statuses": "ijo pi tenpo suli",
+ "trends.trending_now": "jan mute li toki",
+ "units.short.million": "{count}AAA",
+ "upload_button.label": "o pana e sitelen anu kalama",
+ "upload_error.limit": "ilo li ken ala e suli pi ijo ni.",
+ "upload_form.audio_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili",
+ "upload_form.description": "o toki e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
+ "upload_form.edit": "o ante",
+ "upload_form.thumbnail": "o ante e sitelen lili",
+ "upload_form.video_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili, e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
+ "upload_modal.choose_image": "o wile e sitelen",
+ "upload_modal.description_placeholder": "mi pu jaki tan soweli",
+ "upload_modal.detect_text": "ilo o alasa e nimi tan sitelen",
+ "upload_modal.edit_media": "o ante e sitelen",
+ "upload_modal.preparing_ocr": "ilo li open e alasa nimi lon sitelenâĻ",
+ "upload_progress.label": "ilo li kama jo e ijo sina...",
+ "upload_progress.processing": "ilo li paliâĻ",
+ "username.taken": "jan ante li kepeken e nimi ni. sina o kepeken e nimi sin",
+ "video.close": "o weka e ni",
+ "video.download": "o jo e ni",
+ "video.exit_fullscreen": "o weka tan sitelen suli",
+ "video.expand": "o suli e ni",
+ "video.hide": "o len e sitelen",
+ "video.mute": "o kalama ala",
+ "video.pause": "o lape e ni",
+ "video.unmute": "o kalama"
+}
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index e85db817b9..7ab370b8bc 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -89,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.",
@@ -146,22 +145,20 @@
"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.multiple": "Ãoktan seçmeli",
+ "compose_form.poll.option_placeholder": "Seçenek {number}",
+ "compose_form.poll.single": "Birini seç",
"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.poll.type": "Stil",
"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.reply": "YanÄątla",
+ "compose_form.save_changes": "GÃŧncelle",
"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",
+ "compose_form.spoiler_placeholder": "İçerik uyarÄąsÄą (isteÄe baÄlÄą)",
"confirmation_modal.cancel": "Ä°ptal",
"confirmations.block.block_and_report": "Engelle ve Bildir",
"confirmations.block.confirm": "Engelle",
@@ -280,6 +277,12 @@
"follow_request.authorize": "Ä°zin Ver",
"follow_request.reject": "Reddet",
"follow_requests.unlocked_explanation": "HesabÄąnÄąz kilitli olmasa da, {domain} personeli bu hesaplardan gelen takip isteklerini gÃļzden geçirmek isteyebileceÄinizi dÃŧÅÃŧndÃŧ.",
+ "follow_suggestions.curated_suggestion": "EditÃļrÃŧn Seçimi",
+ "follow_suggestions.dismiss": "Tekrar gÃļsterme",
+ "follow_suggestions.personalized_suggestion": "KiÅiselleÅmiÅ Ãļneriler",
+ "follow_suggestions.popular_suggestion": "PopÃŧler Ãļneriler",
+ "follow_suggestions.view_all": "TÃŧmÃŧnÃŧ gÃļr",
+ "follow_suggestions.who_to_follow": "Takip edebileceklerin",
"followed_tags": "Takip edilen etiketler",
"footer.about": "HakkÄąnda",
"footer.directory": "Profil dizini",
@@ -306,13 +309,9 @@
"hashtag.follow": "Etiketi takip et",
"hashtag.unfollow": "Etiketi takibi bÄąrak",
"hashtags.and_other": "âĻve {count, plural, one {}other {# fazlasÄą}}",
- "home.actions.go_to_explore": "Ãne Ã§ÄąkanlarÄą gÃļr",
- "home.actions.go_to_suggestions": "Takip edecek kiÅileri bulun",
"home.column_settings.basic": "Temel",
"home.column_settings.show_reblogs": "Yeniden paylaÅÄąmlarÄą gÃļster",
"home.column_settings.show_replies": "YanÄątlarÄą gÃļster",
- "home.explore_prompt.body": "Ana sayfa akÄąÅÄąnÄązda, takip etmeyi seçtiÄiniz ETÄ°KETlerden, takip etmeyi seçtiÄiniz kiÅilerden ve Ãļne Ã§ÄąkardÄąklarÄą gÃļnderilerden oluÅan bir karÄąÅÄąm bulunur. Åu anda oldukça sessiz gÃļrÃŧnÃŧyor, gÃļr ve takip et :",
- "home.explore_prompt.title": "BurasÄą Mastodon'daki AnasayfanÄąz.",
"home.hide_announcements": "DuyurularÄą gizle",
"home.pending_critical_update.body": "LÃŧtfen Mastodon sunucunuzu en kÄąsa sÃŧrede gÃŧncelleyin!",
"home.pending_critical_update.link": "GÃŧncellemelerini gÃļrÃŧn",
@@ -408,7 +407,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",
@@ -526,14 +524,15 @@
"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.direct.long": "GÃļnderide deÄinilen herkes",
+ "privacy.direct.short": "Belirli kiÅiler",
+ "privacy.private.long": "Sadece takipçileriniz",
+ "privacy.private.short": "Takipçiler",
+ "privacy.public.long": "Mastodon'da olan olmayan herkes",
"privacy.public.short": "Herkese aÃ§Äąk",
- "privacy.unlisted.long": "KeÅfet harici herkese aÃ§Äąk",
- "privacy.unlisted.short": "ListelenmemiÅ",
+ "privacy.unlisted.additional": "Bu neredeyse herkese aÃ§Äąk gibi çalÄąÅÄąr, tek farkÄą gÃļnderi canlÄą akÄąÅlarda veya etiketlerde, keÅfette, veya Mastodon aramasÄąnda gÃļzÃŧkmez, hesap çapÄąnda Ãļyle seçmiÅ olsanÄąz bile.",
+ "privacy.unlisted.long": "Daha az algoritmik tantana",
+ "privacy.unlisted.short": "Sessizce herkese aÃ§Äąk",
"privacy_policy.last_updated": "Son gÃŧncelleme {date}",
"privacy_policy.title": "Gizlilik PolitikasÄą",
"recommended": "Ãnerilen",
@@ -551,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}sn",
"relative_time.today": "bugÃŧn",
+ "reply_indicator.attachments": "{count, plural, one {# ek} other {# ek}}",
"reply_indicator.cancel": "Ä°ptal",
+ "reply_indicator.poll": "Anket",
"report.block": "Engelle",
"report.block_explanation": "GÃļnderilerini gÃļremeyeceksiniz. GÃļnderilerinizi gÃļremezler veya sizi takip edemezler. Engelli olduklarÄąnÄą anlayabilecekler.",
"report.categories.legal": "Yasal",
@@ -715,10 +716,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 47fe60bd25..17de9884e7 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -76,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": "ĐĄĐžŅĐ°ĐģĐŗĐ°ĐŊ йиŅ ĐēŌ¯ŅŅĶŅĐĩĐģĶ Đ°ĐģĐŧŅĐš. ĐŅ ĐąĐĩСĐŊĐĩŌŖ ĐēОдŅĐ°ĐŗŅ Ņ
Đ°ŅĐ° ŅĐēи ĐąŅĐ°ŅСĐĩŅĐŗĐ° ŅŅŅŅ ĐēиĐģŌ¯ ĐŋŅОйĐģĐĩĐŧĐ°ŅŅ Đ°ŅĐēĐ°ŅŅĐŊĐ´Đ° ĐąŅĐģŅŅĐŗĐ° ĐŧĶŠĐŧĐēиĐŊ.",
@@ -128,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": "ĐĐģĐžĐēĐģĐ°Ņ",
@@ -322,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": "ЧŅĐŗŅ",
@@ -376,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": "ĐĨĐžŅŅŅŅĐšĐģŅĐē ĐĄĶŅŅĶŅĐĩ",
@@ -478,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 6bb5ba0ebf..9dc3b5c1f9 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 92eacaad14..0504ec60d8 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -32,6 +32,7 @@
"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} ĐŋŅĐ´ĐŋиŅĐŊиĐēи}}",
@@ -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,20 @@
"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.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 {ĐОСĐŊĐ°ŅиŅи ĐŧĐĩĐ´ŅĐ° Đ´ĐĩĐģŅĐēĐ°ŅĐŊиĐŧ} 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": "ĐĐ°ĐąĐģĐžĐēŅваŅи",
@@ -279,6 +277,12 @@
"follow_request.authorize": "ĐвŅĐžŅиСŅваŅи",
"follow_request.reject": "ĐŅĐ´ĐŧОвиŅи",
"follow_requests.unlocked_explanation": "ĐĨĐžŅĐ° ваŅ ОйĐģŅĐēОвиК СаĐŋиŅ ĐŊĐĩ СайĐģĐžĐēОваĐŊĐž, ĐŋĐĩŅŅĐžĐŊĐ°Đģ {domain} ĐŋŅиĐŋŅŅĐēĐ°Ņ, ŅĐž, ĐŧĐžĐļĐģивО, ви Ņ
ĐžŅŅĐģи Đą ĐŋĐĩŅĐĩĐŗĐģŅĐŊŅŅи ŅŅ СаĐŋиŅи ĐŊĐ° ĐŋŅĐ´ĐŋиŅĐēŅ.",
+ "follow_suggestions.curated_suggestion": "ĐийŅŅ ŅĐĩĐ´Đ°ĐēŅŅŅ",
+ "follow_suggestions.dismiss": "ĐŅĐģŅŅĐĩ ĐŊĐĩ ĐŋĐžĐēаСŅваŅи",
+ "follow_suggestions.personalized_suggestion": "ĐĐĩŅŅĐžĐŊĐ°ĐģŅСОваĐŊĐ° ĐŋŅĐžĐŋОСиŅŅŅ",
+ "follow_suggestions.popular_suggestion": "ĐĐžĐŋŅĐģŅŅĐŊĐ° ĐŋŅĐžĐŋОСиŅŅŅ",
+ "follow_suggestions.view_all": "ĐĐĩŅĐĩĐŗĐģŅĐŊŅŅи вŅĐĩ",
+ "follow_suggestions.who_to_follow": "ĐĐ° ĐēĐžĐŗĐž ĐŋŅĐ´ĐŋиŅĐ°ŅиŅŅ",
"followed_tags": "ĐŅĐ´ŅŅĐĩĐļŅваĐŊŅ Ņ
ĐĩŅŅĐĩŌи",
"footer.about": "ĐŅĐž ĐŋŅĐžŅĐēŅ",
"footer.directory": "ĐĐ°ŅĐ°ĐģĐžĐŗ ĐŋŅĐžŅŅĐģŅв",
@@ -305,13 +309,9 @@
"hashtag.follow": "ĐĄŅĐĩĐļиŅи Са Ņ
ĐĩŅŅĐĩĐŗĐžĐŧ",
"hashtag.unfollow": "ĐĐĩ ŅŅĐĩĐļиŅи Са Ņ
ĐĩŅŅĐĩĐŗĐžĐŧ",
"hashtags.and_other": "âĻŅ {count, plural, other {ŅĐĩ #}}",
- "home.actions.go_to_explore": "ĐĐĩŅĐĩĐŗĐģŅĐŊŅŅи ŅĐĩĐŊĐ´ĐĩĐŊŅŅŅ",
- "home.actions.go_to_suggestions": "ĐĐŊĐ°ĐšŅи ĐģŅĐ´ĐĩĐš, айи ĐŋŅĐ´ĐŋиŅĐ°ŅиŅŅ",
"home.column_settings.basic": "ĐŅĐŊОвĐŊŅ",
"home.column_settings.show_reblogs": "ĐĐžĐēаСŅваŅи ĐŋĐžŅиŅĐĩĐŊĐŊŅ",
"home.column_settings.show_replies": "ĐĐžĐēаСŅваŅи вŅĐ´ĐŋОвŅĐ´Ņ",
- "home.explore_prompt.body": "ĐĐ°ŅĐ° Đ´ĐžĐŧĐ°ŅĐŊŅ ŅŅŅŅŅĐēĐ° ĐąŅĐ´Đĩ ŅŅĐŧŅŅŅŅ Đ´ĐžĐŋиŅŅв С ОйŅĐ°ĐŊиŅ
Đ´ĐģŅ ŅŅĐĩĐļĐĩĐŊĐŊŅ Ņ
ĐĩŅŅĐĩĐŗŅв, ĐģŅĐ´ĐĩĐš Ņ ĐŋĐžŅиŅĐĩĐŊиŅ
ĐŊиĐŧи Đ´ĐžĐŋиŅŅв. Đ¯ĐēŅĐž ŅŅĐžĐŗĐž СаĐŧĐ°ĐģĐž, ви ŅĐ°ĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ:",
- "home.explore_prompt.title": "ĐĻĐĩ ваŅĐ° Đ´ĐžĐŧĐ°ŅĐŊŅ йаСа Ņ Mastodon.",
"home.hide_announcements": "ĐŅиŅ
ОваŅи ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ",
"home.pending_critical_update.body": "Đ¯ĐēĐŊĐ°ĐšŅвидŅĐĩ ĐžĐŊОвŅŅŅ ŅвŅĐš ŅĐĩŅвĐĩŅ Mastodon!",
"home.pending_critical_update.link": "ĐĐĩŅĐĩĐŗĐģŅĐŊŅŅи ĐžĐŊОвĐģĐĩĐŊĐŊŅ",
@@ -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 {# вĐēĐģĐ°Đ´ĐĩĐŊĐŊŅ} many {# вĐēĐģĐ°Đ´ĐĩĐŊŅ} 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/ur.json b/app/javascript/mastodon/locales/ur.json
index 563b2dedf8..fee2cc3a98 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -72,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": "ŲÛŲš ŲØąÚŠ ÚŠÛ ØŽØąØ§Ø¨Û",
@@ -115,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": "بŲاڊ",
@@ -242,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": "ŲžÛØąŲÛ ÚŠØąØ¯Û Ø§ŲØą ŲžÛØąŲÚŠØ§Øą",
@@ -281,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 8eeee42a5e..8f231c8c77 100644
--- a/app/javascript/mastodon/locales/uz.json
+++ b/app/javascript/mastodon/locales/uz.json
@@ -75,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.",
@@ -126,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",
@@ -336,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",
@@ -368,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 721c7cd4ad..626f40783c 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -32,6 +32,7 @@
"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}}",
@@ -52,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",
@@ -87,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.",
@@ -144,22 +145,20 @@
"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.multiple": "Nhiáģu láģąa cháģn",
"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.single": "Cháģn máģt",
"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.poll.type": "LoáēĄi",
"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.reply": "TráēŖ láģi",
+ "compose_form.save_changes": "Cáēp nháēt",
"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",
+ "compose_form.spoiler_placeholder": "Náģi dung áēŠn (tÚy cháģn)",
"confirmation_modal.cancel": "Háģ§y báģ",
"confirmations.block.block_and_report": "Cháēˇn & BÃĄo cÃĄo",
"confirmations.block.confirm": "Cháēˇn",
@@ -238,7 +237,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.",
@@ -278,6 +277,12 @@
"follow_request.authorize": "Cho phÊp",
"follow_request.reject": "TáģĢ cháģi",
"follow_requests.unlocked_explanation": "Máēˇc dÚ tà i khoáēŖn cáģ§a báēĄn Äang áģ cháēŋ Äáģ công khai, quáēŖn tráģ viÃĒn cáģ§a {domain} váēĢn tin ráēąng báēĄn sáēŊ muáģn xem láēĄi yÃĒu cáē§u theo dÃĩi táģĢ nháģ¯ng ngÆ°áģi khÃĄc.",
+ "follow_suggestions.curated_suggestion": "Láģąa cháģn cáģ§a mÃĄy cháģ§",
+ "follow_suggestions.dismiss": "Không hiáģn láēĄi",
+ "follow_suggestions.personalized_suggestion": "GáģŖi ÃŊ cÃĄ nhÃĸn hÃŗa",
+ "follow_suggestions.popular_suggestion": "Nháģ¯ng ngÆ°áģi náģi tiáēŋng",
+ "follow_suggestions.view_all": "Xem táēĨt cáēŖ",
+ "follow_suggestions.who_to_follow": "GáģŖi ÃŊ theo dÃĩi",
"followed_tags": "Hashtag theo dÃĩi",
"footer.about": "Giáģi thiáģu",
"footer.directory": "Cáģng Äáģng",
@@ -304,13 +309,9 @@
"hashtag.follow": "Theo dÃĩi hashtag",
"hashtag.unfollow": "Báģ theo dÃĩi hashtag",
"hashtags.and_other": "âĻvà {count, plural, other {# náģ¯a}}",
- "home.actions.go_to_explore": "KhÃĄm phÃĄ xu hÆ°áģng",
- "home.actions.go_to_suggestions": "TÃŦm ngÆ°áģi theo dÃĩi",
"home.column_settings.basic": "TÚy cháģnh",
"home.column_settings.show_reblogs": "Hiáģn nháģ¯ng lÆ°áģŖt ÄÄng láēĄi",
"home.column_settings.show_replies": "Hiáģn nháģ¯ng tÃēt dáēĄng tráēŖ láģi",
- "home.explore_prompt.body": "BáēŖng tin cáģ§a báēĄn sáēŊ bao gáģm cÃĄc tÃēt cÃŗ hashtag báēĄn theo dÃĩi, nháģ¯ng ngÆ°áģi báēĄn theo dÃĩi và cÃĄc tÃēt mà háģ ÄÄng láēĄi. LÃēc nà y cÃŗ váēģ hÆĄi tráģng, sao báēĄn không:",
- "home.explore_prompt.title": "ÄÃĸy là ngôi nhà Mastodon cáģ§a báēĄn.",
"home.hide_announcements": "áē¨n thông bÃĄo mÃĄy cháģ§",
"home.pending_critical_update.body": "Vui lÃ˛ng cáēp nháēt mÃĄy cháģ§ Mastodon cáģ§a báēĄn cà ng sáģm cà ng táģt!",
"home.pending_critical_update.link": "Xem báēŖn cáēp nháēt",
@@ -334,38 +335,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",
@@ -402,11 +403,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áģ¯",
@@ -434,7 +434,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:",
@@ -475,7 +475,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 ÃŊ:",
@@ -499,7 +499,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.",
@@ -524,20 +524,21 @@
"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.direct.long": "Nháģ¯ng ngÆ°áģi ÄÆ°áģŖc nháē¯c trong tÃēt",
+ "privacy.direct.short": "NgÆ°áģi cáģĨ tháģ",
+ "privacy.private.long": "Cháģ ngÆ°áģi theo dÃĩi",
+ "privacy.private.short": "NgÆ°áģi theo dÃĩi",
+ "privacy.public.long": "BáēĨt cáģŠ ai",
"privacy.public.short": "Công khai",
- "privacy.unlisted.long": "Công khai nhÆ°ng áēŠn trÃĒn báēŖng tin",
+ "privacy.unlisted.additional": "Giáģng háģt nhÆ° công khai, ngoáēĄi tráģĢ tÃēt sáēŊ không xuáēĨt hiáģn trong báēŖng tin hoáēˇc hashtag, khÃĄm phÃĄ hoáēˇc tÃŦm kiáēŋm Mastodon, ngay cáēŖ khi báēĄn cháģn cho phÊp trong cà i Äáēˇt tà i khoáēŖn.",
+ "privacy.unlisted.long": "Ãt hÆ°áģng thuáēt toÃĄn hÆĄn",
"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áģ}}",
@@ -549,7 +550,9 @@
"relative_time.minutes": "{number} phÃēt",
"relative_time.seconds": "{number}s",
"relative_time.today": "hôm nay",
+ "reply_indicator.attachments": "{count, plural, other {# táēp tin ÄÃnh kèm}}",
"reply_indicator.cancel": "Háģ§y báģ",
+ "reply_indicator.poll": "BÃŦnh cháģn",
"report.block": "Cháēˇn",
"report.block_explanation": "BáēĄn sáēŊ không cÃ˛n tháēĨy tÃēt cáģ§a ngÆ°áģi nà y. Háģ sáēŊ không tháģ tháēĨy tÃēt cáģ§a báēĄn hoáēˇc theo dÃĩi báēĄn. Háģ biáēŋt là báēĄn ÄÃŖ cháēˇn háģ.",
"report.categories.legal": "PháēĄm phÃĄp",
@@ -589,7 +592,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",
@@ -690,7 +693,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áģ}}",
@@ -713,10 +716,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 008a9636db..a585838cd2 100644
--- a/app/javascript/mastodon/locales/zgh.json
+++ b/app/javascript/mastodon/locales/zgh.json
@@ -22,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": "â´°âĩâĩ â´°âĩâĩ",
@@ -44,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": "âĩâĩ",
@@ -129,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": "â´ŧâ´ŧâĩ",
@@ -161,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}â´°âĩ",
@@ -211,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 575e0c7aeb..9d0da95c81 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -53,7 +53,7 @@
"account.mute_notifications_short": "å
ŗééįĨ",
"account.mute_short": "éč",
"account.muted": "åˇ˛éč",
- "account.mutual": "äēį¸å
ŗæŗ¨",
+ "account.mutual": "äēį˛åĨŊå",
"account.no_bio": "æĒæäžæčŋ°ã",
"account.open_original_page": "æåŧåå§éĄĩéĸ",
"account.posts": "åæ",
@@ -89,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": "č¯ˇæąįéĄĩéĸæ æŗæ¸˛æīŧå¯čŊæ¯äģŖį åēį°éč¯¯ææĩč§å¨åå¨å
ŧ厚æ§éŽéĸã",
@@ -146,22 +145,20 @@
"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.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": "åąčŊ",
@@ -280,6 +277,12 @@
"follow_request.authorize": "åæ",
"follow_request.reject": "æįģ",
"follow_requests.unlocked_explanation": "å°ŊįŽĄäŊ æ˛ĄæéåīŧäŊæ¯ {domain} įåˇĨäŊäēēå莤ä¸ēäŊ äščŽ¸äŧæŗæå¨åŽĄæ ¸åŽĄæ ¸čŋäēč´Ļåˇįå
ŗæŗ¨č¯ˇæąã",
+ "follow_suggestions.curated_suggestion": "ä¸ģįŧæ¨č",
+ "follow_suggestions.dismiss": "ä¸åæžį¤ē",
+ "follow_suggestions.personalized_suggestion": "ä¸Ēæ§ååģē莎",
+ "follow_suggestions.popular_suggestion": "įé¨åģē莎",
+ "follow_suggestions.view_all": "æĨįå
¨é¨",
+ "follow_suggestions.who_to_follow": "æ¨čå
ŗæŗ¨",
"followed_tags": "å
ŗæŗ¨įč¯éĸæ įž",
"footer.about": "å
ŗäē",
"footer.directory": "į¨æˇįŽåŊ",
@@ -306,13 +309,9 @@
"hashtag.follow": "å
ŗæŗ¨č¯éĸæ įž",
"hashtag.unfollow": "åæļå
ŗæŗ¨č¯éĸæ įž",
"hashtags.and_other": "âĻ ååĻå¤ {count, plural, other {# ä¸Ēč¯éĸ}}",
- "home.actions.go_to_explore": "æĨįįé¨č¯éĸ",
- "home.actions.go_to_suggestions": "å¯ģæžčĻå
ŗæŗ¨įäēē",
"home.column_settings.basic": "åēæŦ莞įŊŽ",
"home.column_settings.show_reblogs": "æžį¤ēčŊŦå",
"home.column_settings.show_replies": "æžį¤ēåå¤",
- "home.explore_prompt.body": "äŊ įä¸ģéĄĩå¨æäŧæ¨éä¸įŗģåå
ŗæŗ¨įč¯éĸæ įžåį¨æˇīŧäģĨåčŊŦåįåæãåĻæäŊ č§åžčŋäēæ¸
åīŧä¸åĻ¨č¯ä¸ä¸īŧ",
- "home.explore_prompt.title": "čŋæ¯äŊ å¨ Mastodon įä¸ģéĄĩã",
"home.hide_announcements": "éčå
Ŧå",
"home.pending_critical_update.body": "č¯ˇå°ŊåŋĢæ´æ°æ¨į Mastodon æåĄå¨īŧ",
"home.pending_critical_update.link": "æĨįæ´æ°",
@@ -408,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": "åŋŊįĨįå
ŗéŽč¯",
@@ -446,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": "æįĨ¨įģæīŧ",
@@ -526,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": "æ¨č",
@@ -551,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": "æŗåžäšåĄ",
@@ -700,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} äēē}}莨čŽē",
@@ -715,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 cd0845b6e2..c1a69591ff 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -89,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": "įĄæŗæäžčĢæąįé éĸãéå¯čŊæ¯å įēäģŖįĸŧåēįžé¯čĒ¤æįčĻŊå¨åēįžå
ŧ厚åéĄã",
@@ -146,22 +145,20 @@
"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.multiple": "å¤é¸",
+ "compose_form.poll.option_placeholder": "é¸é
{number}",
+ "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": "å°é",
@@ -280,6 +277,12 @@
"follow_request.authorize": "æšå",
"follow_request.reject": "æįĩ",
"follow_requests.unlocked_explanation": "åŗäŊŋæ¨įå¸ŗčæĒä¸éīŧ{domain} įåˇĨäŊäēēåĄčĒįēæ¨å¯čŊææŗæåå¯Šæ ¸äžčĒéäēå¸ŗčįčŋŊ蚤čĢæąã",
+ "follow_suggestions.curated_suggestion": "įˇ¨čŧ¯æ¨čĻ",
+ "follow_suggestions.dismiss": "ä¸åéĄ¯į¤ē",
+ "follow_suggestions.personalized_suggestion": "åäēēåæ¨čĻ",
+ "follow_suggestions.popular_suggestion": "įąéæ¨čĻ",
+ "follow_suggestions.view_all": "æĨįææ",
+ "follow_suggestions.who_to_follow": "čŋŊ蚤å°čąĄ",
"followed_tags": "åˇ˛čŋŊ蚤æ¨įą¤",
"footer.about": "éæŧ",
"footer.directory": "åäēēæĒæĄįŽé",
@@ -306,13 +309,9 @@
"hashtag.follow": "čŋŊ蚤ä¸ģéĄæ¨įą¤",
"hashtag.unfollow": "åæļčŋŊ蚤ä¸ģéĄæ¨įą¤",
"hashtags.and_other": "âĻå{count, plural, other {å
ļäģ # å}}",
- "home.actions.go_to_explore": "åŗæįąé芹éĄ",
- "home.actions.go_to_suggestions": "å°æžčŋŊ蚤å°čąĄ",
"home.column_settings.basic": "åēæŦ",
"home.column_settings.show_reblogs": "éĄ¯į¤ēčĸĢčŊæ¨įæįĢ ",
"home.column_settings.show_replies": "éĄ¯į¤ēåææįĢ ",
- "home.explore_prompt.body": "äŊ įéĻé æéčģ¸å°éĄ¯į¤ēäžčĒäŊ čŋŊ蚤įæ¨įą¤ãäŊŋį¨č
åäģåčŊæ¨įå¸æãåĻææéčģ¸æčĻēå¤ĒåŽéīŧäŊ å¯äģĨčæ
Žīŧ",
- "home.explore_prompt.title": "éæ¯äŊ å¨ Mastodon ä¸įä¸ģé ã",
"home.hide_announcements": "éąčå
Ŧå",
"home.pending_critical_update.body": "čĢįĄåŋĢæ´æ°äŊ į Mastodon äŧēæå¨īŧ",
"home.pending_critical_update.link": "æĨįæ´æ°",
@@ -408,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": "ééŗčŠåŊ",
@@ -526,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": "æ¨čĻ",
@@ -551,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": "æŗåž",
@@ -715,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 9983936953..d83b523d1e 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -48,7 +48,7 @@
"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": "ééŗ",
@@ -59,7 +59,7 @@
"account.posts": "åæ",
"account.posts_with_replies": "åæčåčĻ",
"account.report": "æĒĸč @{name}",
- "account.requested": "æŖå¨įåž
æ ¸åãæä¸ä¸äģĨåæļčˇé¨čĢæą",
+ "account.requested": "æŖå¨įåå¯Šæ ¸ãæä¸ä¸äģĨåæļčˇé¨čĢæą",
"account.requested_follow": "{name} čĻæąčˇé¨æ¨",
"account.share": "åäēĢ @{name} įåäēēæĒæĄ",
"account.show_reblogs": "éĄ¯į¤ēäžčĒ @{name} įåæ",
@@ -84,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": "įĄæŗįšĒčŖŊčĢæąįé éĸãéå¯čŊæ¯å įēæåį¨åŧįĸŧä¸įčč˛ææ¯įčĻŊå¨įį¸åŽšåéĄã",
@@ -146,22 +145,20 @@
"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.multiple": "å¤é¸",
+ "compose_form.poll.option_placeholder": "é¸é
{number}",
+ "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": "å°é",
@@ -241,7 +238,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": "æ¨éæ˛ææļå°äģģäŊéįĨīŧįļæ¨čåĨäēēéå§äēåæīŧåŽå°æŧæ¤éĄ¯į¤ēã",
@@ -280,6 +277,12 @@
"follow_request.authorize": "ææŦ",
"follow_request.reject": "æįĩ",
"follow_requests.unlocked_explanation": "åŗäžŋæ¨įå¸ŗčæĒčĸĢéåŽīŧ{domain} įįŽĄįåĄčĒįēæ¨å¯čŊæŗčĻčĒåˇąå¯Šæ ¸éäēå¸ŗčįčˇé¨čĢæąã",
+ "follow_suggestions.curated_suggestion": "į˛žé¸å
§åŽš",
+ "follow_suggestions.dismiss": "ä¸åéĄ¯į¤ē",
+ "follow_suggestions.personalized_suggestion": "åäēēåæ¨čĻ",
+ "follow_suggestions.popular_suggestion": "įąéæ¨čĻ",
+ "follow_suggestions.view_all": "æĒĸčĻå
¨é¨",
+ "follow_suggestions.who_to_follow": "æ¨čĻčˇé¨å¸ŗč",
"followed_tags": "åˇ˛čˇé¨ä¸ģéĄæ¨įą¤",
"footer.about": "éæŧ",
"footer.directory": "åäēēæĒæĄįŽé",
@@ -303,16 +306,12 @@
"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": "å°æžä¸äēäēēäžčˇé¨",
"home.column_settings.basic": "åēæŦč¨åŽ",
"home.column_settings.show_reblogs": "éĄ¯į¤ēčŊå",
"home.column_settings.show_replies": "éĄ¯į¤ēåčĻ",
- "home.explore_prompt.body": "æ¨įéĻé æéčģ¸å°įąæ¨æčˇé¨äšä¸ģéĄæ¨įą¤ãå¸ŗčäģĨåå
ļčŊåæįĩæãčĨįŽåæĩéæéģæ
ĸīŧæ¨å¯äģĨčæ
ŽäģĨä¸åšžéģīŧ",
- "home.explore_prompt.title": "éæ¯æ¨æŧ Mastodon įåēå°",
"home.hide_announcements": "éąčå
Ŧå",
"home.pending_critical_update.body": "čĢįĢåŗåį´æ¨į Mastodon äŧēæå¨īŧ",
"home.pending_critical_update.link": "æĒĸčĻæ´æ°å
§åŽš",
@@ -408,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": "åˇ˛ééŗįééĩå",
@@ -526,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": "éąį§æŦæŋį",
@@ -551,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": "åæŗæ§",
@@ -715,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 f7270eb60a..5a9cc7220c 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 d5ecad7dbf..9053dcc9c0 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 e6b2509f66..f57bbb77b8 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 73a2afb916..368f26542c 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 2ba61839c7..dcca11b203 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 a605ecbb8b..0e353e0d1b 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 0f224ff4b9..5b9d983dea 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 43dedd6e6d..4c9ab98a82 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 66193136c4..cee3a87bca 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 8a07ba774d..b1c60403e9 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 9f28f5ff53..e11aa78178 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 83056ee49f..d259be899b 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 09ade7d753..51839f427a 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 f1e71385a8..4859b82651 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 0000000000..1bf9d57a31
--- /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 0000000000..ce59194be0
--- /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 0000000000..f8bc9309ce
--- /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 0000000000..f8bc9309ce
--- /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 0000000000..deb3f8e0d9
--- /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 0000000000..0ae8ad841c
--- /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 0000000000..7648cf9755
--- /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 0000000000..7648cf9755
--- /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 0000000000..cba0c8b2a8
--- /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 0000000000..cba0c8b2a8
--- /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 0000000000..48c72546df
--- /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 0000000000..48c72546df
--- /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 0000000000..4bf73bb6da
--- /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 0000000000..4bf73bb6da
--- /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 0000000000..63215a3e09
--- /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 0000000000..63215a3e09
--- /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 0000000000..20e9889ae8
--- /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 0000000000..20e9889ae8
--- /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 0000000000..3a7b4d2e8b
--- /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 0000000000..a8226a6d87
--- /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 0000000000..f5231f925a
--- /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 0000000000..67dffd6857
--- /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 0000000000..3df7275bf6
--- /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 0000000000..a6d893fed4
--- /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 0000000000..f7d476f253
--- /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 0000000000..8504fbfdad
--- /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 0000000000..8e8e6a1ee6
--- /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 0000000000..c0da419cd0
--- /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 0000000000..1655d12bf3
--- /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 0000000000..1655d12bf3
--- /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 0000000000..3f7df315a5
--- /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 0000000000..3f7df315a5
--- /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 0000000000..53783746ae
--- /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 0000000000..53783746ae
--- /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 0000000000..4100467365
--- /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 0000000000..4100467365
--- /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 0000000000..5a60c58e77
--- /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 0000000000..5a60c58e77
--- /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 0000000000..dabf094503
--- /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 0000000000..d875c84491
--- /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 0000000000..59d1abb8bc
--- /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 0000000000..560d174b9b
--- /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 0000000000..40fe4497f5
--- /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 0000000000..763f517d1d
--- /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 0000000000..07998b29d6
--- /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 0000000000..309a4f5b38
--- /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 0000000000..1655d12bf3
--- /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 0000000000..1655d12bf3
--- /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 0000000000..8f05228c40
--- /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 0000000000..8f05228c40
--- /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 0000000000..6a171ea822
--- /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 0000000000..6a171ea822
--- /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 0000000000..278e79978e
--- /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 0000000000..cb81b11302
--- /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 0000000000..b18db1df8e
--- /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 0000000000..cf7e98405a
--- /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 0000000000..0c8f273596
--- /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 0000000000..0c8f273596
--- /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 0000000000..146f838a27
--- /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 0000000000..f21c2786ca
--- /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 0000000000..e44a94d90b
--- /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 0000000000..cb4c810e08
--- /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 0000000000..940c878a7d
--- /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 0000000000..940c878a7d
--- /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 0000000000..d9d45a6c6a
--- /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 0000000000..d9d45a6c6a
--- /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 0000000000..c0d6cef5c5
--- /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 0000000000..dbc2c937e4
--- /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 0000000000..e254416380
--- /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 0000000000..d700ddea7b
--- /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 0000000000..0232e17ad0
--- /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 0000000000..05606f4e59
--- /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 0000000000..12d137ca89
--- /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 0000000000..4f2a10be59
--- /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 0000000000..319a0681c4
--- /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 0000000000..319a0681c4
--- /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 0000000000..6aa8b50823
--- /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 0000000000..cca8ab1955
--- /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 0000000000..0815d78418
--- /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 0000000000..20b9e3984e
--- /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 0000000000..60309dce5e
--- /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 0000000000..824c70b7c4
--- /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 0000000000..4881453501
--- /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 0000000000..4881453501
--- /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 0000000000..2f427e91c8
--- /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 0000000000..2f427e91c8
--- /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 0000000000..9480d0fb92
--- /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 0000000000..46cafa7680
--- /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 0000000000..e777154892
--- /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 0000000000..e777154892
--- /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 0000000000..b10ad1921a
--- /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 0000000000..b10ad1921a
--- /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 0000000000..53783746ae
--- /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 0000000000..53783746ae
--- /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 0000000000..4100467365
--- /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 0000000000..4100467365
--- /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 0000000000..0730efefca
--- /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 0000000000..dbfe0e0409
--- /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 0000000000..856a0ed8a5
--- /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 0000000000..1389a10e0a
--- /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 0000000000..42895ffd13
--- /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 0000000000..42895ffd13
--- /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 0000000000..fc9a8074de
--- /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 0000000000..95bc792fc3
--- /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 0000000000..73ef1efc10
--- /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 0000000000..a3f6b246c8
--- /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 0000000000..3fa7f65288
--- /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 0000000000..39b592bf04
--- /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/photo_library-fill.svg b/app/javascript/material-icons/400-24px/photo_library-fill.svg
new file mode 100644
index 0000000000..e68aec8321
--- /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 0000000000..3b22224b83
--- /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 0000000000..6465b90222
--- /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 0000000000..52f0fcc9c4
--- /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 0000000000..1e9e79de4d
--- /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 0000000000..1e9e79de4d
--- /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 0000000000..6095ba77ee
--- /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 0000000000..e1abd900a7
--- /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 0000000000..aed5740db3
--- /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 0000000000..552da6658d
--- /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 0000000000..64b038f268
--- /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 0000000000..ada92f2cf5
--- /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 0000000000..a7a6bc801b
--- /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 0000000000..a7a6bc801b
--- /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 0000000000..c1b09d8026
--- /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 0000000000..c1b09d8026
--- /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 0000000000..eb661f2823
--- /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 0000000000..eb661f2823
--- /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 0000000000..74c9573eaf
--- /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 0000000000..74c9573eaf
--- /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 0000000000..ef0d0521eb
--- /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 0000000000..ef0d0521eb
--- /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 0000000000..f133479502
--- /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 0000000000..817c782f05
--- /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 0000000000..5a6b0d0a8d
--- /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 0000000000..6876cd42da
--- /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 0000000000..df417f5ff7
--- /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 0000000000..b84efc73b1
--- /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 0000000000..cb2231e634
--- /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 0000000000..1736e085d0
--- /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 0000000000..ce76d537b3
--- /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 0000000000..ce76d537b3
--- /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 0000000000..ecaaf37f1e
--- /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 0000000000..ecaaf37f1e
--- /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 0000000000..887f8bd498
--- /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 0000000000..887f8bd498
--- /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 0000000000..639d77af36
--- /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 0000000000..40ce5b65e5
--- /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 0000000000..44b5f4c606
--- /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 0000000000..8fe45d09af
--- /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 0000000000..e21fbd88df
--- /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 0000000000..d98cf8d942
--- /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 0000000000..b3d12d4d98
--- /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 0000000000..a0acf63747
--- /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 0000000000..dd5771215e
--- /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 0000000000..fd9006a6d2
--- /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 0000000000..c3727d3f57
--- /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 0000000000..238299e606
--- /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 0000000000..d645695673
--- /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 0000000000..1479cb2255
--- /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 0000000000..7c04a97faf
--- /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 0f3b84549d..7b5723091c 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 1c2386f02d..ae607f484a 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 0000000000..bb4899b701
--- /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 54e10616d2..a60045d7be 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 92d00cae8b..a2cbb494b4 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 3777fccbfb..520e91e28b 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 ac8a831215..3cf5561ca3 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 dcfab6bd01..d7f8586dd2 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 a65f35e7b1..3f538d08d6 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 6714b24268..28dad81da5 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 462dd82ac0..af9fc88e7b 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;
@@ -4496,48 +4711,8 @@ a.status-card {
animation: heartbeat 1.5s ease-in-out infinite both;
}
-@keyframes shake-bottom {
- 0%,
- 100% {
- transform: rotate(0deg);
- transform-origin: 50% 100%;
- }
-
- 10% {
- transform: rotate(2deg);
- }
-
- 20%,
- 40%,
- 60% {
- transform: rotate(-4deg);
- }
-
- 30%,
- 50%,
- 70% {
- transform: rotate(4deg);
- }
-
- 80% {
- transform: rotate(-2deg);
- }
-
- 90% {
- transform: rotate(2deg);
- }
-}
-
-.no-reduce-motion .shake-bottom {
- transform-origin: 50% 100%;
- animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;
-}
-
.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 +4735,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 +4753,7 @@ a.status-card {
&:hover,
&:focus,
&:active {
- background: rgba($ui-secondary-color, 0.4);
+ background: var(--dropdown-border-color);
}
}
@@ -4646,15 +4822,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 +4851,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 +4905,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 +4935,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 +4977,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 +4998,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 +5078,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 +5093,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 +5102,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 +5110,7 @@ a.status-card {
.icon-button {
padding: 0;
+ color: $darker-text-color;
}
.icon {
@@ -4912,7 +5126,7 @@ a.status-card {
}
&__message {
- color: $dark-text-color;
+ color: $darker-text-color;
padding: 0 10px;
}
@@ -4968,6 +5182,10 @@ a.status-card {
}
&.active {
+ .search__input {
+ border-radius: 4px 4px 0 0;
+ }
+
.search__popout {
display: block;
}
@@ -4978,14 +5196,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 +5209,6 @@ a.status-card {
&:active {
outline: 0 !important;
}
-
- &:focus {
- background: lighten($ui-base-color, 4%);
- }
}
.search__icon {
@@ -5014,21 +5223,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 +5252,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%);
}
}
}
@@ -5113,20 +5316,6 @@ a.status-card {
}
}
-.search-results__hashtag {
- display: block;
- padding: 10px;
- color: $secondary-text-color;
- text-decoration: none;
-
- &:hover,
- &:active,
- &:focus {
- color: lighten($secondary-text-color, 4%);
- text-decoration: underline;
- }
-}
-
.search-results__info {
padding: 20px;
color: $darker-text-color;
@@ -5154,6 +5343,8 @@ a.status-card {
inset-inline-start: 0;
width: 100%;
height: 100%;
+ max-width: 100vw;
+ max-height: 100vh;
box-sizing: border-box;
display: flex;
flex-direction: column;
@@ -5544,6 +5735,10 @@ a.status-card {
padding-inline-end: 10px;
}
+ .icon {
+ vertical-align: middle;
+ }
+
.button {
flex: 0 0 auto;
}
@@ -5655,6 +5850,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 +5863,8 @@ a.status-card {
justify-content: center;
svg {
- width: 8px;
- height: auto;
+ width: 15px;
+ height: 15px;
}
&:active,
@@ -6094,6 +6294,7 @@ a.status-card {
gap: 2px;
}
+.media-gallery__alt__label,
.media-gallery__gifv__label {
display: flex;
align-items: center;
@@ -6170,6 +6371,7 @@ a.status-card {
.icon {
color: $dark-text-color;
+ vertical-align: middle;
}
}
}
@@ -6860,90 +7062,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 +7533,13 @@ noscript {
span {
user-select: all;
}
+
+ .icon-lock {
+ height: 16px;
+ width: 16px;
+ position: relative;
+ top: 3px;
+ }
}
}
}
@@ -8898,11 +9023,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 +9410,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 3d646da239..8a472d75b1 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 c7247c3a57..fec0c10ddb 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 0b7220b21d..60e7d62245 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 8a26e611ca..939fca3364 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 0000000000..a5bbb8fc4f
--- /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 0000000000..cf2a05c84e
--- /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 07d1929555..8a08eca9f6 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 51384ef984..322f3e27ad 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 f6262899a8..85195f4c39 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -108,7 +108,7 @@ 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)
@@ -283,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
@@ -319,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
@@ -405,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 faea63e8f1..9459fdd8b7 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 45f5fc5bf2..cfc2b8788b 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 1df05b120e..2ddc8e8b07 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 0000000000..cf4297f2a4
--- /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 0000000000..ea9ef366df
--- /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 0000000000..af5e854c22
--- /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 0000000000..e3e8a7c90b
--- /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 0000000000..85ff1ff86e
--- /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 0000000000..9fe4698ee5
--- /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 0000000000..1ccb622676
--- /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 0000000000..a144bac0d1
--- /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 0000000000..488dacb1b4
--- /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 0000000000..112e5591ce
--- /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 0000000000..fc12a6f1f4
--- /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/application_extension.rb b/app/lib/application_extension.rb
index fb442e2c2d..400c51a023 100644
--- a/app/lib/application_extension.rb
+++ b/app/lib/application_extension.rb
@@ -4,14 +4,34 @@ module ApplicationExtension
extend ActiveSupport::Concern
included do
+ include Redisable
+
has_many :created_users, class_name: 'User', foreign_key: 'created_by_application_id', inverse_of: :created_by_application
validates :name, length: { maximum: 60 }
validates :website, url: true, length: { maximum: 2_000 }, if: :website?
validates :redirect_uri, length: { maximum: 2_000 }
+
+ # The relationship used between Applications and AccessTokens is using
+ # dependent: delete_all, which means the ActiveRecord callback in
+ # AccessTokenExtension is not run, so instead we manually announce to
+ # streaming that these tokens are being deleted.
+ before_destroy :push_to_streaming_api, prepend: true
end
def confirmation_redirect_uri
redirect_uri.lines.first.strip
end
+
+ def push_to_streaming_api
+ # TODO: #28793 Combine into a single topic
+ payload = Oj.dump(event: :kill)
+ access_tokens.in_batches do |tokens|
+ redis.pipelined do |pipeline|
+ tokens.ids.each do |id|
+ pipeline.publish("timeline:access_token:#{id}", payload)
+ end
+ end
+ end
+ end
end
diff --git a/app/lib/attachment_batch.rb b/app/lib/attachment_batch.rb
index b28f5c3d7f..32ccb0b13c 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 966e41f03b..210f37cea0 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 d938269829..e17b45d667 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 15b98dc57e..2a3683c499 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 53767486ff..38a177e645 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 0dd37483e2..f551f69db8 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 5f128af734..8d4120868d 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 3ad57cc1ea..0000000000
--- 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/signature_parser.rb b/app/lib/signature_parser.rb
new file mode 100644
index 0000000000..7a75080d98
--- /dev/null
+++ b/app/lib/signature_parser.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+class SignatureParser
+ class ParsingError < StandardError; end
+
+ # The syntax of this header is defined in:
+ # https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12#section-4
+ # See https://datatracker.ietf.org/doc/html/rfc7235#appendix-C
+ # and https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6
+
+ # In addition, ignore a `Signature ` string prefix that was added by old versions
+ # of `node-http-signatures`
+
+ TOKEN_RE = /[0-9a-zA-Z!#$%&'*+.^_`|~-]+/
+ # qdtext and quoted_pair are not exactly according to spec but meh
+ QUOTED_STRING_RE = /"([^\\"]|(\\.))*"/
+ PARAM_RE = /(?#{TOKEN_RE})\s*=\s*((?#{TOKEN_RE})|(?#{QUOTED_STRING_RE}))/
+
+ def self.parse(raw_signature)
+ # Old versions of node-http-signature add an incorrect "Signature " prefix to the header
+ raw_signature = raw_signature.delete_prefix('Signature ')
+
+ params = {}
+ scanner = StringScanner.new(raw_signature)
+
+ # Use `skip` instead of `scan` as we only care about the subgroups
+ while scanner.skip(PARAM_RE)
+ # This is not actually correct with regards to quoted pairs, but it's consistent
+ # with our previous implementation, and good enough in practice.
+ params[scanner[:key]] = scanner[:value] || scanner[:quoted_value][1...-1]
+
+ scanner.skip(/\s*/)
+ return params if scanner.eos?
+
+ raise ParsingError unless scanner.skip(/\s*,\s*/)
+ end
+
+ raise ParsingError
+ end
+end
diff --git a/app/lib/status_cache_hydrator.rb b/app/lib/status_cache_hydrator.rb
index 45b50cb379..34f6199ec0 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 36fb0e80fb..17e42e3ec3 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 1af5188c65..74f49aa558 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 ab7ea4092f..e558195290 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 5eecfed104..4eb38ec340 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 432b851b5e..3b1a085cb8 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 2145cfcb64..442d4a431d 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -85,8 +85,8 @@ class Account < ApplicationRecord
include DomainNormalizable
include Paginable
- enum protocol: { ostatus: 0, activitypub: 1 }
- enum suspension_origin: { local: 0, remote: 1 }, _prefix: true
+ enum :protocol, { ostatus: 0, activitypub: 1 }
+ enum :suspension_origin, { local: 0, remote: 1 }, prefix: true
validates :username, presence: true
validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? }
@@ -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 55d34e85c3..42b1c49538 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 d62176c7ca..98ccf4ad4f 100644
--- a/app/models/account_suggestions.rb
+++ b/app/models/account_suggestions.rb
@@ -29,14 +29,14 @@ 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)|
+ account_ids.filter_map do |(account_id, sources)|
next unless accounts_map.key?(account_id)
AccountSuggestions::Suggestion.new(
account: accounts_map[account_id],
- source: source
+ sources: sources
)
end
end
diff --git a/app/models/account_suggestions/source.rb b/app/models/account_suggestions/source.rb
index ee93a1342f..d83f5e3773 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_suggestions/suggestion.rb b/app/models/account_suggestions/suggestion.rb
index 2c6f4d27f5..8a5888069a 100644
--- a/app/models/account_suggestions/suggestion.rb
+++ b/app/models/account_suggestions/suggestion.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class AccountSuggestions::Suggestion < ActiveModelSerializers::Model
- attributes :account, :source
+ attributes :account, :sources
delegate :id, to: :account, prefix: true
end
diff --git a/app/models/account_summary.rb b/app/models/account_summary.rb
index 0d8835b83c..327c0ef305 100644
--- a/app/models/account_summary.rb
+++ b/app/models/account_summary.rb
@@ -10,17 +10,13 @@
#
class AccountSummary < ApplicationRecord
+ include DatabaseViewRecord
+
self.primary_key = :account_id
+ has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false, dependent: nil
+
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)) }
-
- def self.refresh
- Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)
- end
-
- def readonly?
- true
- end
+ 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) }
end
diff --git a/app/models/account_warning.rb b/app/models/account_warning.rb
index 9286577f51..a54387a562 100644
--- a/app/models/account_warning.rb
+++ b/app/models/account_warning.rb
@@ -17,7 +17,7 @@
#
class AccountWarning < ApplicationRecord
- enum action: {
+ enum :action, {
none: 0,
disable: 1_000,
mark_statuses_as_sensitive: 1_250,
@@ -25,7 +25,7 @@ class AccountWarning < ApplicationRecord
sensitive: 2_000,
silence: 3_000,
suspend: 4_000,
- }, _suffix: :action
+ }, suffix: :action
normalizes :text, with: ->(text) { text.to_s }, apply_to_nil: true
diff --git a/app/models/admin/action_log_filter.rb b/app/models/admin/action_log_filter.rb
index d413cb386d..f581af74e8 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 2cd7c1d5ed..e630570020 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 f1290ad01a..395056b76f 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 810e471849..4cd228705a 100644
--- a/app/models/bulk_import.rb
+++ b/app/models/bulk_import.rb
@@ -24,7 +24,7 @@ class BulkImport < ApplicationRecord
belongs_to :account
has_many :rows, class_name: 'BulkImportRow', inverse_of: :bulk_import, dependent: :delete_all
- enum type: {
+ enum :type, {
following: 0,
blocking: 1,
muting: 2,
@@ -33,7 +33,7 @@ class BulkImport < ApplicationRecord
lists: 5,
}
- enum state: {
+ enum :state, {
unconfirmed: 0,
scheduled: 1,
in_progress: 2,
@@ -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 351530c2f0..5b05c31e03 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 4cdbdeb473..3b7db1fcef 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/database_view_record.rb b/app/models/concerns/database_view_record.rb
new file mode 100644
index 0000000000..8b6672e299
--- /dev/null
+++ b/app/models/concerns/database_view_record.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module DatabaseViewRecord
+ extend ActiveSupport::Concern
+
+ class_methods do
+ def 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
+ end
+
+ def readonly?
+ true
+ end
+end
diff --git a/app/models/concerns/remotable.rb b/app/models/concerns/remotable.rb
index 6118e204a1..8382c91599 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/ldap_authenticable.rb b/app/models/concerns/user/ldap_authenticable.rb
index d84ff084b2..180df9d310 100644
--- a/app/models/concerns/user/ldap_authenticable.rb
+++ b/app/models/concerns/user/ldap_authenticable.rb
@@ -25,7 +25,15 @@ module User::LdapAuthenticable
resource = joins(:account).find_by(accounts: { username: safe_username })
if resource.blank?
- resource = new(email: attributes[Devise.ldap_mail.to_sym].first, agreement: true, account_attributes: { username: safe_username }, admin: false, external: true, confirmed_at: Time.now.utc)
+ resource = new(
+ email: attributes[Devise.ldap_mail.to_sym].first,
+ agreement: true,
+ account_attributes: {
+ username: safe_username,
+ },
+ external: true,
+ confirmed_at: Time.now.utc
+ )
resource.save!
end
diff --git a/app/models/concerns/user/omniauthable.rb b/app/models/concerns/user/omniauthable.rb
index 6d1d1b8cc3..396a0598f8 100644
--- a/app/models/concerns/user/omniauthable.rb
+++ b/app/models/concerns/user/omniauthable.rb
@@ -19,17 +19,18 @@ module User::Omniauthable
end
class_methods do
- def find_for_oauth(auth, signed_in_resource = nil)
+ def find_for_omniauth(auth, signed_in_resource = nil)
# EOLE-SSO Patch
auth.uid = (auth.uid[0][:uid] || auth.uid[0][:user]) if auth.uid.is_a? Hashie::Array
- identity = Identity.find_for_oauth(auth)
+ identity = Identity.find_for_omniauth(auth)
# If a signed_in_resource is provided it always overrides the existing user
# to prevent the identity being locked with accidentally created accounts.
# Note that this may leave zombie accounts (with no associated identity) which
# can be cleaned up at a later date.
user = signed_in_resource || identity.user
- user ||= create_for_oauth(auth)
+ user ||= reattach_for_auth(auth)
+ user ||= create_for_auth(auth)
if identity.user.nil?
identity.user = user
@@ -39,19 +40,35 @@ module User::Omniauthable
user
end
- def create_for_oauth(auth)
- # Check if the user exists with provided email. If no email was provided,
+ private
+
+ def reattach_for_auth(auth)
+ # If allowed, check if a user exists with the provided email address,
+ # and return it if they does not have an associated identity with the
+ # current authentication provider.
+
+ # This can be used to provide a choice of alternative auth providers
+ # or provide smooth gradual transition between multiple auth providers,
+ # but this is discouraged because any insecure provider will put *all*
+ # local users at risk, regardless of which provider they registered with.
+
+ return unless ENV['ALLOW_UNSAFE_AUTH_PROVIDER_REATTACH'] == 'true'
+
+ email, email_is_verified = email_from_auth(auth)
+ return unless email_is_verified
+
+ user = User.find_by(email: email)
+ return if user.nil? || Identity.exists?(provider: auth.provider, user_id: user.id)
+
+ user
+ end
+
+ def create_for_auth(auth)
+ # Create a user for the given auth params. If no email was provided,
# we assign a temporary email and ask the user to verify it on
# the next step via Auth::SetupController.show
- strategy = Devise.omniauth_configs[auth.provider.to_sym].strategy
- assume_verified = strategy&.security&.assume_email_is_verified
- email_is_verified = auth.info.verified || auth.info.verified_email || auth.info.email_verified || assume_verified
- email = auth.info.verified_email || auth.info.email
-
- user = User.find_by(email: email) if email_is_verified
-
- return user unless user.nil?
+ email, email_is_verified = email_from_auth(auth)
user = User.new(user_params_from_auth(email, auth))
@@ -61,12 +78,19 @@ 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
- private
+ def email_from_auth(auth)
+ strategy = Devise.omniauth_configs[auth.provider.to_sym].strategy
+ assume_verified = strategy&.security&.assume_email_is_verified
+ email_is_verified = auth.info.verified || auth.info.verified_email || auth.info.email_verified || assume_verified
+ email = auth.info.verified_email || auth.info.email
+
+ [email, email_is_verified]
+ end
def user_params_from_auth(email, auth)
{
diff --git a/app/models/concerns/user/pam_authenticable.rb b/app/models/concerns/user/pam_authenticable.rb
index a682058cca..30dc7d8aef 100644
--- a/app/models/concerns/user/pam_authenticable.rb
+++ b/app/models/concerns/user/pam_authenticable.rb
@@ -32,7 +32,6 @@ module User::PamAuthenticable
self.email = "#{account.username}@#{find_pam_suffix}" if email.nil? && find_pam_suffix
self.confirmed_at = Time.now.utc
- self.admin = false
self.account = account
self.external = true
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index 97b1c63bf3..1c9b443959 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 ed7a8dda15..870cc71974 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 5a53e73ba8..5e2d152e34 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -31,7 +31,7 @@ class CustomFilter < ApplicationRecord
include Expireable
include Redisable
- enum action: { warn: 0, hide: 1 }, _suffix: :action
+ enum :action, { warn: 0, hide: 1 }, suffix: :action
belongs_to :account
has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy
@@ -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 3158b3b79a..979d0b822e 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 ce9597b4d1..47ada7ac23 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 ff23f8fcc4..e310918e9b 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -21,17 +21,16 @@ class DomainBlock < ApplicationRecord
include DomainNormalizable
include DomainMaterializable
- enum severity: { silence: 0, suspend: 1, noop: 2 }
+ enum :severity, { silence: 0, suspend: 1, noop: 2 }
validates :domain, presence: true, uniqueness: true, domain: true
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 60e90208db..40be59420a 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 7c36aa8b0b..ea8aa4787c 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 9d2648394b..7ac9e6dfb9 100644
--- a/app/models/follow_recommendation.rb
+++ b/app/models/follow_recommendation.rb
@@ -10,6 +10,8 @@
#
class FollowRecommendation < ApplicationRecord
+ include DatabaseViewRecord
+
self.primary_key = :account_id
self.table_name = :global_follow_recommendations
@@ -17,12 +19,4 @@ class FollowRecommendation < ApplicationRecord
belongs_to :account
scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) }
-
- def self.refresh
- Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)
- end
-
- def readonly?
- true
- end
end
diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb
index 3c5e8f96f0..c13cc718d8 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 712acf3706..fc83d9c58c 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 0000000000..43c97d7108
--- /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/identity.rb b/app/models/identity.rb
index c95a68a6f6..77821b78fa 100644
--- a/app/models/identity.rb
+++ b/app/models/identity.rb
@@ -17,7 +17,7 @@ class Identity < ApplicationRecord
validates :uid, presence: true, uniqueness: { scope: :provider }
validates :provider, presence: true
- def self.find_for_oauth(auth)
+ def self.find_for_omniauth(auth)
find_or_create_by(uid: auth.uid, provider: auth.provider)
end
end
diff --git a/app/models/import.rb b/app/models/import.rb
index 7cd6cccf7c..4bdb392014 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -28,7 +28,7 @@ class Import < ApplicationRecord
belongs_to :account
- enum type: { following: 0, blocking: 1, muting: 2, domain_blocking: 3, bookmarks: 4 }
+ enum :type, { following: 0, blocking: 1, muting: 2, domain_blocking: 3, bookmarks: 4 }
validates :type, presence: true
diff --git a/app/models/instance.rb b/app/models/instance.rb
index 17ee0cbb1e..3bd4b924ae 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -9,28 +9,37 @@
#
class Instance < ApplicationRecord
+ include DatabaseViewRecord
+
self.primary_key = :domain
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 readonly?
- true
+ 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 delivery_failure_tracker
diff --git a/app/models/ip_block.rb b/app/models/ip_block.rb
index 99783050b8..9def5b0cde 100644
--- a/app/models/ip_block.rb
+++ b/app/models/ip_block.rb
@@ -19,7 +19,7 @@ class IpBlock < ApplicationRecord
include Expireable
include Paginable
- enum severity: {
+ enum :severity, {
sign_up_requires_approval: 5000,
sign_up_block: 5500,
no_access: 9999,
diff --git a/app/models/list.rb b/app/models/list.rb
index fcef49e6e9..b45bd057bc 100644
--- a/app/models/list.rb
+++ b/app/models/list.rb
@@ -18,7 +18,7 @@ class List < ApplicationRecord
PER_ACCOUNT_LIMIT = 50
- enum replies_policy: { list: 0, followed: 1, none: 2 }, _prefix: :show
+ enum :replies_policy, { list: 0, followed: 1, none: 2 }, prefix: :show
belongs_to :account, optional: true
diff --git a/app/models/login_activity.rb b/app/models/login_activity.rb
index 2b7b37f8e4..654dd623ad 100644
--- a/app/models/login_activity.rb
+++ b/app/models/login_activity.rb
@@ -16,7 +16,7 @@
#
class LoginActivity < ApplicationRecord
- enum authentication_method: { password: 'password', otp: 'otp', webauthn: 'webauthn', sign_in_token: 'sign_in_token', omniauth: 'omniauth' }
+ enum :authentication_method, { password: 'password', otp: 'otp', webauthn: 'webauthn', sign_in_token: 'sign_in_token', omniauth: 'omniauth' }
belongs_to :user
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index bb5a61da34..730a77b648 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -34,8 +34,8 @@ class MediaAttachment < ApplicationRecord
include Attachmentable
- enum type: { image: 0, gifv: 1, video: 2, unknown: 3, audio: 4 }
- enum processing: { queued: 0, in_progress: 1, complete: 2, failed: 3 }, _prefix: true
+ enum :type, { image: 0, gifv: 1, video: 2, unknown: 3, audio: 4 }
+ enum :processing, { queued: 0, in_progress: 1, complete: 2, failed: 3 }, prefix: true
MAX_DESCRIPTION_LENGTH = 1_500
@@ -205,12 +205,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 72f04f00a7..cc4184f80a 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/preview_card.rb b/app/models/preview_card.rb
index 8375927430..9fe02bd168 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -47,8 +47,8 @@ class PreviewCard < ApplicationRecord
self.inheritance_column = false
- enum type: { link: 0, photo: 1, video: 2, rich: 3 }
- enum link_type: { unknown: 0, article: 1 }
+ enum :type, { link: 0, photo: 1, video: 2, rich: 3 }
+ enum :link_type, { unknown: 0, article: 1 }
has_many :preview_cards_statuses, dependent: :delete_all, inverse_of: :preview_card
has_many :statuses, through: :preview_cards_statuses
diff --git a/app/models/privacy_policy.rb b/app/models/privacy_policy.rb
index 36cbf18822..c0d6e1b76d 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/relay.rb b/app/models/relay.rb
index 8d697b891f..f652b4864b 100644
--- a/app/models/relay.rb
+++ b/app/models/relay.rb
@@ -15,7 +15,7 @@
class Relay < ApplicationRecord
validates :inbox_url, presence: true, uniqueness: true, url: true, if: :will_save_change_to_inbox_url?
- enum state: { idle: 0, pending: 1, accepted: 2, rejected: 3 }
+ enum :state, { idle: 0, pending: 1, accepted: 2, rejected: 3 }
scope :enabled, -> { accepted }
diff --git a/app/models/report.rb b/app/models/report.rb
index c565362cc6..df7e3d2efc 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -29,30 +29,33 @@ 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
validates :comment, length: { maximum: 1_000 }, if: :local?
- validates :rule_ids, absence: true, unless: :violation?
+ validates :rule_ids, absence: true, if: -> { (category_changed? || rule_ids_changed?) && !violation? }
- validate :validate_rule_ids
+ validate :validate_rule_ids, if: -> { (category_changed? || rule_ids_changed?) && violation? }
# entries here need to be kept in sync with the front-end:
# - app/javascript/mastodon/features/notifications/components/report.jsx
# - app/javascript/mastodon/features/report/category.jsx
# - app/javascript/mastodon/components/admin/ReportReasonSelector.jsx
- enum category: {
+ enum :category, {
other: 0,
spam: 1_000,
legal: 1_500,
@@ -159,8 +162,6 @@ class Report < ApplicationRecord
end
def validate_rule_ids
- return unless violation?
-
errors.add(:rule_ids, I18n.t('reports.errors.invalid_rules')) unless rules.size == rule_ids&.size
end
diff --git a/app/models/session_activation.rb b/app/models/session_activation.rb
index 7f5f0d9a9a..c67180d3ba 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 3bdc6ffb40..6af7a98c6d 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/software_update.rb b/app/models/software_update.rb
index cb3a6df2ae..51a73c2731 100644
--- a/app/models/software_update.rb
+++ b/app/models/software_update.rb
@@ -16,7 +16,7 @@
class SoftwareUpdate < ApplicationRecord
self.inheritance_column = nil
- enum type: { patch: 0, minor: 1, major: 2 }, _suffix: :type
+ enum :type, { patch: 0, minor: 1, major: 2 }, suffix: :type
def gem_version
Gem::Version.new(version)
diff --git a/app/models/status.rb b/app/models/status.rb
index 3faa507000..0ec69c8dd1 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -50,7 +50,7 @@ class Status < ApplicationRecord
update_index('statuses', :proper)
update_index('public_statuses', :proper)
- enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, _suffix: :visibility
+ enum :visibility, { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, suffix: :visibility
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
@@ -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
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 46e55d74f9..f2168ae904 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 a1574c02ad..f706c91eff 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -51,6 +51,8 @@ class User < ApplicationRecord
last_sign_in_ip
skip_sign_in_token
filtered_languages
+ admin
+ moderator
)
include LanguagesHelper
@@ -117,16 +119,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 +151,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 +192,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
@@ -359,6 +344,16 @@ class User < ApplicationRecord
Doorkeeper::AccessToken.by_resource_owner(self).in_batches do |batch|
batch.update_all(revoked_at: Time.now.utc)
Web::PushSubscription.where(access_token_id: batch).delete_all
+
+ # Revoke each access token for the Streaming API, since `update_all``
+ # doesn't trigger ActiveRecord Callbacks:
+ # TODO: #28793 Combine into a single topic
+ payload = Oj.dump(event: :kill)
+ redis.pipelined do |pipeline|
+ batch.ids.each do |id|
+ pipeline.publish("timeline:access_token:#{id}", payload)
+ end
+ end
end
end
@@ -418,7 +413,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 +421,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 +482,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 +518,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/models/user_ip.rb b/app/models/user_ip.rb
index 38287c2a60..87b86a24d4 100644
--- a/app/models/user_ip.rb
+++ b/app/models/user_ip.rb
@@ -10,11 +10,9 @@
#
class UserIp < ApplicationRecord
+ include DatabaseViewRecord
+
self.primary_key = :user_id
belongs_to :user
-
- def readonly?
- true
- end
end
diff --git a/app/policies/status_policy.rb b/app/policies/status_policy.rb
index 322d3aec5c..540e266427 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 0000000000..001e1d37b0
--- /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 501bb788e7..1c1f7d0ad5 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/domain_block_serializer.rb b/app/serializers/rest/admin/domain_block_serializer.rb
index b955d008a6..e94a337cb8 100644
--- a/app/serializers/rest/admin/domain_block_serializer.rb
+++ b/app/serializers/rest/admin/domain_block_serializer.rb
@@ -1,11 +1,15 @@
# frozen_string_literal: true
class REST::Admin::DomainBlockSerializer < ActiveModel::Serializer
- attributes :id, :domain, :created_at, :severity,
+ attributes :id, :domain, :digest, :created_at, :severity,
:reject_media, :reject_reports,
:private_comment, :public_comment, :obfuscate
def id
object.id.to_s
end
+
+ def digest
+ object.domain_digest
+ end
end
diff --git a/app/serializers/rest/admin/email_domain_block_serializer.rb b/app/serializers/rest/admin/email_domain_block_serializer.rb
index a026ff680e..afe7722cb5 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 23b2fa514b..8cee271272 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 0000000000..1fb5ddb5c1
--- /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 0000000000..ea9572be1b
--- /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 d7ed381e16..fa926cd287 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/suggestion_serializer.rb b/app/serializers/rest/suggestion_serializer.rb
index 3d697fd9f1..c60f343ba4 100644
--- a/app/serializers/rest/suggestion_serializer.rb
+++ b/app/serializers/rest/suggestion_serializer.rb
@@ -1,7 +1,20 @@
# frozen_string_literal: true
class REST::SuggestionSerializer < ActiveModel::Serializer
- attributes :source
+ attributes :source, :sources
has_one :account, serializer: REST::AccountSerializer
+
+ LEGACY_SOURCE_TYPE_MAP = {
+ featured: 'staff',
+ most_followed: 'global',
+ most_interactions: 'global',
+ # NOTE: Those are not completely accurate, but those are personalized interactions
+ similar_to_recently_followed: 'past_interactions',
+ friends_of_friends: 'past_interactions',
+ }.freeze
+
+ def source
+ LEGACY_SOURCE_TYPE_MAP[object.sources.first]
+ end
end
diff --git a/app/serializers/rest/tag_serializer.rb b/app/serializers/rest/tag_serializer.rb
index 7801e77d1f..017b572718 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 99d1b2bd62..fdf939cfc3 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 d2bae08a0e..89c3a1b6c0 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 567dd8a14a..7b083d889b 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 8df8c75876..86a134bb4e 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 8eb97c1e66..e96b5ad3bb 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 a491b32b26..6f8882378f 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 b5c7759ec5..e2ecdef165 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 8fc0989a3f..9e787ace50 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 7ccc917309..f51d671a00 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 a3406e5a57..84c36f6a10 100644
--- a/app/services/fetch_resource_service.rb
+++ b/app/services/fetch_resource_service.rb
@@ -44,11 +44,19 @@ class FetchResourceService < BaseService
@response_code = response.code
return nil if response.code != 200
- if ['application/activity+json', 'application/ld+json'].include?(response.mime_type)
+ if valid_activitypub_content_type?(response)
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 14c9d9205b..33e13293f3 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 960315ed8b..cca79eced6 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 3e92a1690a..878350388b 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 a30a0c820d..7943778943 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 4ed3376e8b..89d83de5a2 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 fa2bd223dc..e725b4c0b8 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 85bac789f7..5702e4f6d2 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 a2fce2d114..dcc3331809 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 7cb973c4b4..f6a6e82667 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 fa1d950ad2..3d31487733 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 8ecd7444d2..45cc4c5aa3 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: serialized_media_attachments(status.ordered_media_attachments),
+ 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 0000000000..27493f770d
--- /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 0000000000..61430732eb
--- /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 0000000000..83072bd36b
--- /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 0000000000..74403e7678
--- /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 0000000000..9fc5dc7471
--- /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 4f21e4af6e..50dcebb00c 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 0cb82a1f86..eaa9d9add0 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 b95a9b676b..a75dc2d9fb 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 10ad108eaf..8d5adaf3b9 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 40e7e12968..19e5746ff6 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 28499a7c91..2fa7db70c7 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 f5ef4e97e4..48350f478e 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 4cac7b51bd..1e5aac2976 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 7914e0157f..89903581a2 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 8cc2c85610..30e97a68c1 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 97c826d704..713f77470d 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 9cd38fb371..78da809ed6 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 62695b155e..5f72138821 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 1244fd5eb3..c721073670 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