-
+ {cancel ?? (
+
+ )}
{secondary && (
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/discard_draft_confirmation.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/discard_draft_confirmation.tsx
new file mode 100644
index 00000000000..206e31efc9e
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/discard_draft_confirmation.tsx
@@ -0,0 +1,104 @@
+import { useCallback } from 'react';
+
+import { defineMessages, useIntl } from 'react-intl';
+
+import { replyCompose } from 'mastodon/actions/compose';
+import { editStatus } from 'mastodon/actions/statuses';
+import type { Status } from 'mastodon/models/status';
+import { useAppDispatch, useAppSelector } from 'mastodon/store';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const editMessages = defineMessages({
+ title: {
+ id: 'confirmations.discard_draft.edit.title',
+ defaultMessage: 'Discard changes to your post?',
+ },
+ message: {
+ id: 'confirmations.discard_draft.edit.message',
+ defaultMessage:
+ 'Continuing will discard any changes you have made to the post you are currently editing.',
+ },
+ cancel: {
+ id: 'confirmations.discard_draft.edit.cancel',
+ defaultMessage: 'Resume editing',
+ },
+});
+
+const postMessages = defineMessages({
+ title: {
+ id: 'confirmations.discard_draft.post.title',
+ defaultMessage: 'Discard your draft post?',
+ },
+ message: {
+ id: 'confirmations.discard_draft.post.message',
+ defaultMessage:
+ 'Continuing will discard the post you are currently composing.',
+ },
+ cancel: {
+ id: 'confirmations.discard_draft.post.cancel',
+ defaultMessage: 'Resume draft',
+ },
+});
+
+const messages = defineMessages({
+ confirm: {
+ id: 'confirmations.discard_draft.confirm',
+ defaultMessage: 'Discard and continue',
+ },
+});
+
+const DiscardDraftConfirmationModal: React.FC<
+ {
+ onConfirm: () => void;
+ } & BaseConfirmationModalProps
+> = ({ onConfirm, onClose }) => {
+ const intl = useIntl();
+ const isEditing = useAppSelector((state) => !!state.compose.get('id'));
+
+ const contextualMessages = isEditing ? editMessages : postMessages;
+
+ return (
+
+ );
+};
+
+export const ConfirmReplyModal: React.FC<
+ {
+ status: Status;
+ } & BaseConfirmationModalProps
+> = ({ status, onClose }) => {
+ const dispatch = useAppDispatch();
+
+ const onConfirm = useCallback(() => {
+ dispatch(replyCompose(status));
+ }, [dispatch, status]);
+
+ return (
+
+ );
+};
+
+export const ConfirmEditStatusModal: React.FC<
+ {
+ statusId: string;
+ } & BaseConfirmationModalProps
+> = ({ statusId, onClose }) => {
+ const dispatch = useAppDispatch();
+
+ const onConfirm = useCallback(() => {
+ dispatch(editStatus(statusId));
+ }, [dispatch, statusId]);
+
+ return (
+
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx
deleted file mode 100644
index fb958518c25..00000000000
--- a/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { useCallback } from 'react';
-
-import { defineMessages, useIntl } from 'react-intl';
-
-import { editStatus } from 'mastodon/actions/statuses';
-import { useAppDispatch } from 'mastodon/store';
-
-import type { BaseConfirmationModalProps } from './confirmation_modal';
-import { ConfirmationModal } from './confirmation_modal';
-
-const messages = defineMessages({
- editTitle: {
- id: 'confirmations.edit.title',
- defaultMessage: 'Overwrite post?',
- },
- editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' },
- editMessage: {
- id: 'confirmations.edit.message',
- defaultMessage:
- 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?',
- },
-});
-
-export const ConfirmEditStatusModal: React.FC<
- {
- statusId: string;
- } & BaseConfirmationModalProps
-> = ({ statusId, onClose }) => {
- const intl = useIntl();
- const dispatch = useAppDispatch();
-
- const onConfirm = useCallback(() => {
- dispatch(editStatus(statusId));
- }, [dispatch, statusId]);
-
- return (
-
- );
-};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts b/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts
index 4893fb096ad..25ffb3b6291 100644
--- a/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts
@@ -1,8 +1,10 @@
export { ConfirmationModal } from './confirmation_modal';
export { ConfirmDeleteStatusModal } from './delete_status';
export { ConfirmDeleteListModal } from './delete_list';
-export { ConfirmReplyModal } from './reply';
-export { ConfirmEditStatusModal } from './edit_status';
+export {
+ ConfirmReplyModal,
+ ConfirmEditStatusModal,
+} from './discard_draft_confirmation';
export { ConfirmUnfollowModal } from './unfollow';
export { ConfirmClearNotificationsModal } from './clear_notifications';
export { ConfirmLogOutModal } from './log_out';
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx
deleted file mode 100644
index cccd62e4b41..00000000000
--- a/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { useCallback } from 'react';
-
-import { defineMessages, useIntl } from 'react-intl';
-
-import { replyCompose } from 'mastodon/actions/compose';
-import type { Status } from 'mastodon/models/status';
-import { useAppDispatch } from 'mastodon/store';
-
-import type { BaseConfirmationModalProps } from './confirmation_modal';
-import { ConfirmationModal } from './confirmation_modal';
-
-const messages = defineMessages({
- replyTitle: {
- id: 'confirmations.reply.title',
- defaultMessage: 'Overwrite post?',
- },
- replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
- replyMessage: {
- id: 'confirmations.reply.message',
- defaultMessage:
- 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?',
- },
-});
-
-export const ConfirmReplyModal: React.FC<
- {
- status: Status;
- } & BaseConfirmationModalProps
-> = ({ status, onClose }) => {
- const intl = useIntl();
- const dispatch = useAppDispatch();
-
- const onConfirm = useCallback(() => {
- dispatch(replyCompose(status));
- }, [dispatch, status]);
-
- return (
-
- );
-};
diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx
index ff13375177b..4a98de0a31a 100644
--- a/app/javascript/mastodon/features/ui/components/modal_root.jsx
+++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx
@@ -20,7 +20,6 @@ import {
IgnoreNotificationsModal,
AnnualReportModal,
} from 'mastodon/features/ui/util/async-components';
-import { getScrollbarWidth } from 'mastodon/utils/scrollbar';
import BundleContainer from '../containers/bundle_container';
@@ -90,20 +89,6 @@ export default class ModalRoot extends PureComponent {
backgroundColor: null,
};
- getSnapshotBeforeUpdate () {
- return { visible: !!this.props.type };
- }
-
- componentDidUpdate (prevProps, prevState, { visible }) {
- if (visible) {
- document.body.classList.add('with-modals--active');
- document.documentElement.style.marginRight = `${getScrollbarWidth()}px`;
- } else {
- document.body.classList.remove('with-modals--active');
- document.documentElement.style.marginRight = '0';
- }
- }
-
setBackgroundColor = color => {
this.setState({ backgroundColor: color });
};
diff --git a/app/javascript/mastodon/features/ui/components/navigation_bar.tsx b/app/javascript/mastodon/features/ui/components/navigation_bar.tsx
index dbb70f9ec83..467e20a572c 100644
--- a/app/javascript/mastodon/features/ui/components/navigation_bar.tsx
+++ b/app/javascript/mastodon/features/ui/components/navigation_bar.tsx
@@ -22,7 +22,7 @@ import { registrationsOpen, sso_redirect } from 'mastodon/initial_state';
import { selectUnreadNotificationGroupsCount } from 'mastodon/selectors/notifications';
import { useAppDispatch, useAppSelector } from 'mastodon/store';
-const messages = defineMessages({
+export const messages = defineMessages({
home: { id: 'tabs_bar.home', defaultMessage: 'Home' },
search: { id: 'tabs_bar.search', defaultMessage: 'Search' },
publish: { id: 'tabs_bar.publish', defaultMessage: 'New Post' },
diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx
index 4297d750c5c..c9834eb0a48 100644
--- a/app/javascript/mastodon/features/ui/index.jsx
+++ b/app/javascript/mastodon/features/ui/index.jsx
@@ -142,13 +142,8 @@ class SwitchingColumnsArea extends PureComponent {
};
UNSAFE_componentWillMount () {
- if (this.props.singleColumn) {
- document.body.classList.toggle('layout-single-column', true);
- document.body.classList.toggle('layout-multiple-columns', false);
- } else {
- document.body.classList.toggle('layout-single-column', false);
- document.body.classList.toggle('layout-multiple-columns', true);
- }
+ document.body.classList.toggle('layout-single-column', this.props.singleColumn);
+ document.body.classList.toggle('layout-multiple-columns', !this.props.singleColumn);
}
componentDidUpdate (prevProps) {
@@ -200,8 +195,8 @@ class SwitchingColumnsArea extends PureComponent {
{singleColumn ?
: null}
{singleColumn && pathName.startsWith('/deck/') ?
: null}
{/* Redirect old bookmarks (without /deck) with home-like routes to the advanced interface */}
- {!singleColumn && pathName === '/getting-started' ?
: null}
{!singleColumn && pathName === '/home' ?
: null}
+ {pathName === '/getting-started' ?
: null}
diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json
index b5c7040d0bb..045da7e843e 100644
--- a/app/javascript/mastodon/locales/af.json
+++ b/app/javascript/mastodon/locales/af.json
@@ -95,7 +95,6 @@
"column_header.pin": "Maak vas",
"column_header.show_settings": "Wys instellings",
"column_header.unpin": "Maak los",
- "column_subheading.settings": "Instellings",
"community.column_settings.local_only": "Slegs plaaslik",
"community.column_settings.media_only": "Slegs media",
"community.column_settings.remote_only": "Slegs elders",
@@ -121,7 +120,6 @@
"confirmations.discard_edit_media.confirm": "Gooi weg",
"confirmations.logout.confirm": "Teken Uit",
"confirmations.logout.message": "Is jy seker jy wil uitteken?",
- "confirmations.reply.confirm": "Antwoord",
"conversation.mark_as_read": "Merk as gelees",
"conversation.open": "Sien gesprek",
"conversation.with": "Met {names}",
@@ -217,15 +215,10 @@
"moved_to_account_banner.text": "Jou rekening {disabledAccount} is tans gedeaktiveer omdat jy na {movedToAccount} verhuis het.",
"navigation_bar.about": "Oor",
"navigation_bar.bookmarks": "Boekmerke",
- "navigation_bar.community_timeline": "Plaaslike tydlyn",
- "navigation_bar.compose": "Skep nuwe plasing",
"navigation_bar.domain_blocks": "Geblokkeerde domeine",
"navigation_bar.lists": "Lyste",
"navigation_bar.logout": "Teken uit",
- "navigation_bar.personal": "Persoonlik",
- "navigation_bar.pins": "Vasgemaakte plasings",
"navigation_bar.preferences": "Voorkeure",
- "navigation_bar.public_timeline": "Gefedereerde tydlyn",
"navigation_bar.search": "Soek",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.reblog": "{name} het jou plasing aangestuur",
diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json
index 3649e27a683..95d55ca2972 100644
--- a/app/javascript/mastodon/locales/an.json
+++ b/app/javascript/mastodon/locales/an.json
@@ -105,7 +105,6 @@
"column_header.pin": "Fixar",
"column_header.show_settings": "Amostrar achustes",
"column_header.unpin": "Deixar de fixar",
- "column_subheading.settings": "Achustes",
"community.column_settings.local_only": "Solo local",
"community.column_settings.media_only": "Solo media",
"community.column_settings.remote_only": "Solo remoto",
@@ -134,8 +133,6 @@
"confirmations.logout.message": "Yes seguro de querer zarrar la sesión?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.redraft.confirm": "Borrar y tornar ta borrador",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder sobrescribirá lo mensache que yes escribindo. Yes seguro que deseyas continar?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Yes seguro que quiers deixar de seguir a {name}?",
"conversation.delete": "Borrar conversación",
@@ -289,23 +286,15 @@
"navigation_bar.about": "Sobre",
"navigation_bar.blocks": "Usuarios blocaus",
"navigation_bar.bookmarks": "Marcadors",
- "navigation_bar.community_timeline": "Linia de tiempo local",
- "navigation_bar.compose": "Escribir nueva publicación",
- "navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios amagaus",
- "navigation_bar.explore": "Explorar",
"navigation_bar.filters": "Parolas silenciadas",
"navigation_bar.follow_requests": "Solicitutz pa seguir-te",
"navigation_bar.follows_and_followers": "Seguindo y seguidores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Zarrar sesión",
"navigation_bar.mutes": "Usuarios silenciaus",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Publicacions fixadas",
"navigation_bar.preferences": "Preferencias",
- "navigation_bar.public_timeline": "Linia de tiempo federada",
"navigation_bar.search": "Buscar",
- "navigation_bar.security": "Seguranza",
"not_signed_in_indicator.not_signed_in": "Amenestes iniciar sesión pa acceder ta este recurso.",
"notification.admin.report": "{name} informó {target}",
"notification.admin.sign_up": "{name} se rechistró",
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 758e7e4dbda..813a92761d3 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -1,6 +1,7 @@
{
"about.blocks": "خوادم تحت الإشراف",
"about.contact": "للاتصال:",
+ "about.default_locale": "افتراضيالافتراضية",
"about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.",
"about.domain_blocks.no_reason_available": "السبب غير متوفر",
"about.domain_blocks.preamble": "يتيح مَستُدون عمومًا لمستخدميه مطالعة المحتوى من المستخدمين من الخواديم الأخرى في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "محدود",
"about.domain_blocks.suspended.explanation": "لن يتم معالجة أي بيانات من هذا الخادم أو تخزينها أو تبادلها، مما يجعل أي تفاعل أو اتصال مع المستخدمين من هذا الخادم مستحيلا.",
"about.domain_blocks.suspended.title": "مُعلّق",
+ "about.language_label": "اللغة",
"about.not_available": "لم يتم توفير هذه المعلومات على هذا الخادم.",
"about.powered_by": "شبكة اجتماعية لامركزية مدعومة من {mastodon}",
"about.rules": "قواعد الخادم",
@@ -19,13 +21,21 @@
"account.block_domain": "حظر اسم النِّطاق {domain}",
"account.block_short": "حظر",
"account.blocked": "محظور",
+ "account.blocking": "محظور",
"account.cancel_follow_request": "إلغاء طلب المتابعة",
"account.copy": "نسخ الرابط إلى الملف الشخصي",
"account.direct": "إشارة خاصة لـ @{name}",
"account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}",
+ "account.domain_blocking": "نطاق محظور",
"account.edit_profile": "تعديل الملف الشخصي",
"account.enable_notifications": "أشعرني عندما ينشر @{name}",
"account.endorse": "أوصِ به على صفحتك الشخصية",
+ "account.familiar_followers_many": "يتبعه {name1}، {name2} و{othersCount, plural, one {شخص آخر تعرفه} other {# أشخاص آخرون تعرفهم}}",
+ "account.familiar_followers_one": "يتبعه {name1}",
+ "account.familiar_followers_two": "يتبعه {name1} و {name2}",
+ "account.featured": "معروض",
+ "account.featured.accounts": "ملفات شخصية",
+ "account.featured.hashtags": "هاشتاقات",
"account.featured_tags.last_status_at": "آخر منشور في {date}",
"account.featured_tags.last_status_never": "لا توجد رسائل",
"account.follow": "متابعة",
@@ -33,9 +43,11 @@
"account.followers": "مُتابِعون",
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
"account.followers_counter": "{count, plural, zero{لا مُتابع} one {مُتابعٌ واحِد} two {مُتابعانِ اِثنان} few {{counter} مُتابِعين} many {{counter} مُتابِعًا} other {{counter} مُتابع}}",
+ "account.followers_you_know_counter": "{counter} شخص تعرفه",
"account.following": "الاشتراكات",
"account.following_counter": "{count, plural, zero{لا يُتابِع أحدًا} one {يُتابِعُ واحد} two{يُتابِعُ اِثنان} few{يُتابِعُ {counter}} many{يُتابِعُ {counter}} other {يُتابِعُ {counter}}}",
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
+ "account.follows_you": "يتابعك",
"account.go_to_profile": "اذهب إلى الملف الشخصي",
"account.hide_reblogs": "إخفاء المعاد نشرها مِن @{name}",
"account.in_memoriam": "في الذكرى.",
@@ -50,17 +62,23 @@
"account.mute_notifications_short": "كتم الإشعارات",
"account.mute_short": "اكتم",
"account.muted": "مَكتوم",
+ "account.muting": "مكتوم",
+ "account.mutual": "أنتم تتابعون بعضكم البعض",
"account.no_bio": "لم يتم تقديم وصف.",
"account.open_original_page": "افتح الصفحة الأصلية",
"account.posts": "منشورات",
"account.posts_with_replies": "المنشورات والرُدود",
+ "account.remove_from_followers": "إزالة {name} من المتابعين",
"account.report": "الإبلاغ عن @{name}",
"account.requested": "في انتظار القبول. اضغط لإلغاء طلب المُتابعة",
"account.requested_follow": "لقد طلب {name} متابعتك",
+ "account.requests_to_follow_you": "طلبات المتابعة",
"account.share": "شارِك الملف التعريفي لـ @{name}",
"account.show_reblogs": "اعرض إعادات نشر @{name}",
+ "account.statuses_counter": "{count, plural, zero {}one {{counter} مشور} two {{counter} منشور} few {{counter} منشور} many {{counter} منشور} other {{counter} منشور}}",
"account.unblock": "إلغاء الحَظر عن @{name}",
"account.unblock_domain": "إلغاء الحَظر عن النِّطاق {domain}",
+ "account.unblock_domain_short": "رفع الحظر",
"account.unblock_short": "ألغ الحجب",
"account.unendorse": "لا تُرَوِّج لهُ في الملف الشخصي",
"account.unfollow": "إلغاء المُتابعة",
@@ -82,9 +100,33 @@
"alert.unexpected.message": "لقد طرأ خطأ غير متوقّع.",
"alert.unexpected.title": "المعذرة!",
"alt_text_badge.title": "نص بديل",
+ "alt_text_modal.add_alt_text": "أضف نصًا بديلًا",
+ "alt_text_modal.add_text_from_image": "أضف النص من الصورة",
"alt_text_modal.cancel": "إلغاء",
+ "alt_text_modal.change_thumbnail": "غيّر الصورة المصغرة",
+ "alt_text_modal.describe_for_people_with_hearing_impairments": "قم بوصفها للأشخاص ذوي الإعاقة السمعية…",
+ "alt_text_modal.describe_for_people_with_visual_impairments": "قم بوصفها للأشخاص ذوي الإعاقة البصرية…",
+ "alt_text_modal.done": "تمّ",
"announcement.announcement": "إعلان",
"annual_report.summary.archetype.booster": "The cool-hunter",
+ "annual_report.summary.archetype.lurker": "المتصفح الصامت",
+ "annual_report.summary.archetype.oracle": "حكيم",
+ "annual_report.summary.archetype.pollster": "مستطلع للرأي",
+ "annual_report.summary.archetype.replier": "الفراشة الاجتماعية",
+ "annual_report.summary.followers.followers": "المُتابِعُون",
+ "annual_report.summary.followers.total": "{count} في المجمل",
+ "annual_report.summary.here_it_is": "هذا ملخص الخص بك لسنة {year}:",
+ "annual_report.summary.highlighted_post.by_favourites": "المنشور ذو أعلى عدد تفضيلات",
+ "annual_report.summary.highlighted_post.by_reblogs": "أكثر منشور مُعاد نشره",
+ "annual_report.summary.highlighted_post.by_replies": "المنشور بأعلى عدد تعليقات",
+ "annual_report.summary.highlighted_post.possessive": "من قبل {name}",
+ "annual_report.summary.most_used_app.most_used_app": "التطبيق الأكثر استخداماً",
+ "annual_report.summary.most_used_hashtag.most_used_hashtag": "الهاشتاق الأكثر استخداماً",
+ "annual_report.summary.most_used_hashtag.none": "لا شيء",
+ "annual_report.summary.new_posts.new_posts": "المنشورات الجديدة",
+ "annual_report.summary.percentile.text": "
هذا يجعلك من بين أكثر مستخدمي {domain} نشاطاً ",
+ "annual_report.summary.percentile.we_wont_tell_bernie": "سيبقى هذا الأمر بيننا.",
+ "annual_report.summary.thanks": "شكرا لكونك جزءاً من ماستدون!",
"attachments_list.unprocessed": "(غير معالَج)",
"audio.hide": "إخفاء المقطع الصوتي",
"block_modal.remote_users_caveat": "سوف نطلب من الخادم {domain} أن يحترم قرارك، لكن الالتزام غير مضمون لأن بعض الخواديم قد تتعامل مع نصوص الكتل بشكل مختلف. قد تظل المنشورات العامة مرئية للمستخدمين غير المسجلين الدخول.",
@@ -108,6 +150,7 @@
"bundle_column_error.routing.body": "تعذر العثور على الصفحة المطلوبة. هل أنت متأكد من أنّ الرابط التشعبي URL في شريط العناوين صحيح؟",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "إغلاق",
+ "bundle_modal_error.message": "حدث خطأ أثناء تحميل هذه الشاشة.",
"bundle_modal_error.retry": "إعادة المُحاولة",
"closed_registrations.other_server_instructions": "بما أن ماستدون لامركزي، يمكنك إنشاء حساب على خادم آخر للاستمرار في التفاعل مع هذا الخادم.",
"closed_registrations_modal.description": "لا يمكن إنشاء حساب على {domain} حاليا، ولكن على فكرة لست بحاجة إلى حساب على {domain} بذاته لاستخدام ماستدون.",
@@ -141,7 +184,6 @@
"column_header.show_settings": "إظهار الإعدادات",
"column_header.unpin": "إلغاء التَّثبيت",
"column_search.cancel": "إلغاء",
- "column_subheading.settings": "الإعدادات",
"community.column_settings.local_only": "المحلي فقط",
"community.column_settings.media_only": "الوسائط فقط",
"community.column_settings.remote_only": "عن بُعد فقط",
@@ -177,21 +219,32 @@
"confirmations.delete_list.confirm": "حذف",
"confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمة بشكلٍ دائم؟",
"confirmations.delete_list.title": "أتريد حذف القائمة؟",
+ "confirmations.discard_draft.confirm": "تجاهل ومتابعة",
+ "confirmations.discard_draft.edit.cancel": "استئناف التعديل",
+ "confirmations.discard_draft.edit.message": "سيتم تجاهل أي تغييرات قمت بها على هذا المنشور.",
+ "confirmations.discard_draft.edit.title": "تجاهل التغييرات على منشورك؟",
+ "confirmations.discard_draft.post.cancel": "استئناف المسودة",
+ "confirmations.discard_draft.post.message": "عبر الاستمرار سيتم تجاهل المنشور الذي تقوم بكتابته الآن.",
+ "confirmations.discard_draft.post.title": "تجاهل مسودة منشورك؟",
"confirmations.discard_edit_media.confirm": "تجاهل",
"confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، أتريد تجاهلها على أي حال؟",
- "confirmations.edit.confirm": "تعديل",
- "confirmations.edit.message": "التعديل في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد تحريرها. متأكد من أنك تريد المواصلة؟",
- "confirmations.edit.title": "هل تريد استبدال المنشور؟",
+ "confirmations.follow_to_list.confirm": "متابعة وأضفه للقائمة",
+ "confirmations.follow_to_list.message": "يجب أن تتابع {name} لإضافتهم إلى قائمة.",
+ "confirmations.follow_to_list.title": "متابعة المستخدم؟",
"confirmations.logout.confirm": "خروج",
"confirmations.logout.message": "متأكد من أنك تريد الخروج؟",
"confirmations.logout.title": "أتريد المغادرة؟",
+ "confirmations.missing_alt_text.confirm": "أضف نصًا بديلًا",
+ "confirmations.missing_alt_text.message": "يحتوي منشورك على وسائط دون نص بديل. إضافة أوصاف تساعد على جعل المحتوى متاحاً للمزيد من الأشخاص.",
+ "confirmations.missing_alt_text.secondary": "انشر على أي حال",
+ "confirmations.missing_alt_text.title": "أضف نصًا بديلًا؟",
"confirmations.mute.confirm": "أكتم",
"confirmations.redraft.confirm": "إزالة وإعادة الصياغة",
"confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.",
"confirmations.redraft.title": "أتريد حذف وإعادة صياغة المنشور؟",
- "confirmations.reply.confirm": "رد",
- "confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟",
- "confirmations.reply.title": "هل تريد استبدال المنشور؟",
+ "confirmations.remove_from_followers.confirm": "إزالة المتابع",
+ "confirmations.remove_from_followers.message": "سيتوقف {name} عن متابعتك. هل بالتأكيد تريد المتابعة؟",
+ "confirmations.remove_from_followers.title": "إزالة المتابع؟",
"confirmations.unfollow.confirm": "إلغاء المتابعة",
"confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟",
"confirmations.unfollow.title": "إلغاء متابعة المستخدم؟",
@@ -213,12 +266,15 @@
"disabled_account_banner.text": "حسابك {disabledAccount} معطل حاليا.",
"dismissable_banner.community_timeline": "هذه هي أحدث المنشورات العامة من أشخاص تُستضاف حساباتهم على {domain}.",
"dismissable_banner.dismiss": "رفض",
+ "dismissable_banner.public_timeline": "هذه أحدث المنشورات العامة على الشبكة الفيدرالية التي يتابعها مستخدمي نطاق {domain}.",
"domain_block_modal.block": "حظر الخادم",
"domain_block_modal.block_account_instead": "أحجب @{name} بدلاً من ذلك",
"domain_block_modal.they_can_interact_with_old_posts": "يمكن للأشخاص من هذا الخادم التفاعل مع منشوراتك القديمة.",
"domain_block_modal.they_cant_follow": "لا أحد من هذا الخادم يمكنه متابعتك.",
"domain_block_modal.they_wont_know": "لن يَعرف أنه قد تم حظره.",
"domain_block_modal.title": "أتريد حظر النطاق؟",
+ "domain_block_modal.you_will_lose_num_followers": "ستخسر {followersCount, plural, zero {}one {{followersCountDisplay} متابع} two {{followersCountDisplay} متابع} few {{followersCountDisplay} متابعين} many {{followersCountDisplay} متابعين} other {{followersCountDisplay} متابعين}} و {followingCount, plural, zero {}one {{followingCountDisplay} شخص تتابعه} two {{followingCountDisplay} شخص تتابعهما} few {{followingCountDisplay} أشخاص تتابعهم} many {{followingCountDisplay} أشخاص تتابعهم} other {{followingCountDisplay} أشخاص تتابعهم}}.",
+ "domain_block_modal.you_will_lose_relationships": "ستفقد جميع المتابعين والأشخاص الذين تتابعهم من هذا الخادم.",
"domain_block_modal.you_wont_see_posts": "لن ترى منشورات أو إشعارات من المستخدمين على هذا الخادم.",
"domain_pill.activitypub_lets_connect": "يتيح لك التواصل والتفاعل مع الناس ليس فقط على ماستدون، ولكن عبر تطبيقات اجتماعية مختلفة أيضا.",
"domain_pill.activitypub_like_language": "إنّ ActivityPub مثل لغة ماستدون التي يتحدث بها مع شبكات اجتماعية أخرى.",
@@ -250,6 +306,9 @@
"emoji_button.search_results": "نتائج البحث",
"emoji_button.symbols": "رموز",
"emoji_button.travel": "الأماكن والسفر",
+ "empty_column.account_featured.me": "لم تعرض أي شيء حتى الآن. هل تعلم أنه يمكنك عرض الهاشتاقات التي تستخدمها، وحتى حسابات أصدقاءك على ملفك الشخصي؟",
+ "empty_column.account_featured.other": "{acct} لم يعرض أي شيء حتى الآن. هل تعلم أنه يمكنك عرض الهاشتاقات التي تستخدمها، وحتى حسابات أصدقاءك على ملفك الشخصي؟",
+ "empty_column.account_featured_other.unknown": "هذا الحساب لم يعرض أي شيء حتى الآن.",
"empty_column.account_hides_collections": "اختار هذا المستخدم عدم إتاحة هذه المعلومات للعامة",
"empty_column.account_suspended": "حساب معلق",
"empty_column.account_timeline": "لا توجد منشورات هنا!",
@@ -278,9 +337,15 @@
"errors.unexpected_crash.copy_stacktrace": "انسخ تتبع الارتباطات إلى الحافظة",
"errors.unexpected_crash.report_issue": "الإبلاغ عن خلل",
"explore.suggested_follows": "أشخاص",
+ "explore.title": "رائج",
"explore.trending_links": "المُستجدّات",
"explore.trending_statuses": "المنشورات",
"explore.trending_tags": "وُسُوم",
+ "featured_carousel.header": "{count, plural, zero {}one {منشور معروض} two {منشور معروضَين} few {منشورات معروضة} many {منشورات معروضة} other {منشورات معروضة}}",
+ "featured_carousel.next": "التالي",
+ "featured_carousel.post": "منشور",
+ "featured_carousel.previous": "السابق",
+ "featured_carousel.slide": "{index} من {total}",
"filter_modal.added.context_mismatch_explanation": "فئة عامل التصفية هذه لا تنطبق على السياق الذي وصلت فيه إلى هذه المشاركة. إذا كنت ترغب في تصفية المنشور في هذا السياق أيضا، فسيتعين عليك تعديل عامل التصفية.",
"filter_modal.added.context_mismatch_title": "عدم تطابق السياق!",
"filter_modal.added.expired_explanation": "انتهت صلاحية فئة عامل التصفية هذه، سوف تحتاج إلى تغيير تاريخ انتهاء الصلاحية لتطبيقها.",
@@ -297,6 +362,8 @@
"filter_modal.select_filter.subtitle": "استخدم فئة موجودة أو قم بإنشاء فئة جديدة",
"filter_modal.select_filter.title": "تصفية هذا المنشور",
"filter_modal.title.status": "تصفية منشور",
+ "filter_warning.matches_filter": "يطابق عامل التصفية “
{title} ”",
+ "filtered_notifications_banner.pending_requests": "من {count, plural, zero {}=0 {لا أحد} one {شخص واحد قد تعرفه} two {# شخص قد تعرفهما} few {# أشخاص قد تعرفهم} many {# أشخاص قد تعرفهم} other {# أشخاص قد تعرفهم}}",
"filtered_notifications_banner.title": "الإشعارات المصفاة",
"firehose.all": "الكل",
"firehose.local": "هذا الخادم",
@@ -330,6 +397,9 @@
"footer.terms_of_service": "شروط الخدمة",
"generic.saved": "تم الحفظ",
"getting_started.heading": "استعدّ للبدء",
+ "hashtag.admin_moderation": "افتح الواجهة الإشراف لـ #{name}",
+ "hashtag.browse": "تصفح المنشورات التي تحتوي #{hashtag}",
+ "hashtag.browse_from_account": "تصفح المنشورات من @{name} التي تحتوي على #{hashtag}",
"hashtag.column_header.tag_mode.all": "و {additional}",
"hashtag.column_header.tag_mode.any": "أو {additional}",
"hashtag.column_header.tag_mode.none": "بدون {additional}",
@@ -342,13 +412,21 @@
"hashtag.counter_by_accounts": "{count, plural, zero {لَا مُشارك} one {مُشارَك واحد} two {مُشارِكان إثنان} few {{counter} مشاركين} many {{counter} مُشاركًا} other {{counter} مُشارِك}}",
"hashtag.counter_by_uses": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}",
"hashtag.counter_by_uses_today": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}",
+ "hashtag.feature": "اعرضه على صفحتك الشخصية",
"hashtag.follow": "اتبع الوسم",
+ "hashtag.mute": "اكتم #{hashtag}",
+ "hashtag.unfeature": "أزله من العرض على الملف الشخصي",
"hashtag.unfollow": "ألغِ متابعة الوسم",
"hashtags.and_other": "…و {count, plural, zero {} one {# واحد آخر} two {# اثنان آخران} few {# آخرون} many {# آخَرًا}other {# آخرون}}",
+ "hints.profiles.followers_may_be_missing": "قد يكون الأشخاص الذي يتبعهم هذا الملف الشخصي ناقصين.",
+ "hints.profiles.follows_may_be_missing": "قد يكون المتابعين لهذا الملف الشخصي ناقصين.",
+ "hints.profiles.posts_may_be_missing": "قد تكون بعض المنشورات من هذا الملف الشخصي ناقصة.",
"hints.profiles.see_more_followers": "عرض المزيد من المتابعين على {domain}",
+ "hints.profiles.see_more_follows": "اطلع على المزيد من المتابعين على {domain}",
"hints.profiles.see_more_posts": "عرض المزيد من المنشورات من {domain}",
"hints.threads.replies_may_be_missing": "قد تكون الردود الواردة من الخوادم الأخرى غائبة.",
"hints.threads.see_more": "اطلع على المزيد من الردود على {domain}",
+ "home.column_settings.show_quotes": "إظهار الاقتباسات",
"home.column_settings.show_reblogs": "اعرض المعاد نشرها",
"home.column_settings.show_replies": "اعرض الردود",
"home.hide_announcements": "إخفاء الإعلانات",
@@ -358,9 +436,23 @@
"home.show_announcements": "إظهار الإعلانات",
"ignore_notifications_modal.disclaimer": "لا يمكن لـ Mastodon إبلاغ المستخدمين بأنك قد تجاهلت إشعاراتهم. تجاهل الإشعارات لن يمنع إرسال الرسائل نفسها.",
"ignore_notifications_modal.filter_instead": "تصفيتها بدلا من ذلك",
+ "ignore_notifications_modal.filter_to_act_users": "ستبقى قادراً على قبول المستخدمين أو رفضهم أو الإبلاغ عنهم",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "التصفية تساعد على تجنب أي ارتباك",
+ "ignore_notifications_modal.filter_to_review_separately": "يمكنك مراجعة الإشعارات المصفاة بشكل منفصل",
"ignore_notifications_modal.ignore": "تجاهل الإشعارات",
"ignore_notifications_modal.limited_accounts_title": "تجاهل الإشعارات من الحسابات التي هي تحت الإشراف؟",
"ignore_notifications_modal.new_accounts_title": "تجاهل الإشعارات الصادرة من الحسابات الجديدة؟",
+ "ignore_notifications_modal.not_followers_title": "تجاهل الإشعارات من أشخاص لا يتابعونك؟",
+ "ignore_notifications_modal.not_following_title": "تجاهل الإشعارات من أشخاص لا تتابعهم؟",
+ "ignore_notifications_modal.private_mentions_title": "تجاهل الإشعارات للرسائل التي لم تطلبها؟",
+ "info_button.label": "المساعدة",
+ "info_button.what_is_alt_text": "
ماهو النص البديل؟ يوفر النص البديل أوصافا للصور للأشخاص الذين يعانون من إعاقات بصرية أو اتصالات شبكة ضعيفة أو أولئك الذين يبحثون عن سياق إضافي.
يمكنك تحسين إمكانية الوصول والفهم للجميع من خلال كتابة نص بديل واضح وموجز وموضوعي.
حدد العناصر المهمة لخص النص في الصور استخدام بنية الجمل العادية تجنب المعلومات الزائدة ركز على الاتجاهات والنتائج الرئيسية في العناصر المرئية المعقدة (مثل الرسوم البيانية أو الخرائط) ",
+ "interaction_modal.action.favourite": "للمتابعة، تحتاج إلى تفضيل المنشور من حسابك.",
+ "interaction_modal.action.follow": "للمتابعة، تحتاج إلى متابعة المنشور من حسابك.",
+ "interaction_modal.action.reblog": "للمتابعة، تحتاج إلى إعادة نشر المنشور من حسابك.",
+ "interaction_modal.action.reply": "للمتابعة، تحتاج إلى الرد من حسابك.",
+ "interaction_modal.action.vote": "للمتابعة، تحتاج إلى التصويت من حسابك.",
+ "interaction_modal.go": "اذهب",
"interaction_modal.no_account_yet": "لا تملك حساباً بعد؟",
"interaction_modal.on_another_server": "على خادم مختلف",
"interaction_modal.on_this_server": "على هذا الخادم",
@@ -368,6 +460,8 @@
"interaction_modal.title.follow": "اتبع {name}",
"interaction_modal.title.reblog": "إعادة نشر منشور {name}",
"interaction_modal.title.reply": "الرد على منشور {name}",
+ "interaction_modal.title.vote": "صوّت في استطلاع {name}",
+ "interaction_modal.username_prompt": "مثلاً {example}",
"intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}",
"intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}",
"intervals.full.minutes": "{number, plural, one {دقيقة واحدة}two {دقيقتان} other {# دقائق}}",
@@ -403,30 +497,44 @@
"keyboard_shortcuts.toggle_hidden": "لعرض أو إخفاء النص مِن وراء التحذير",
"keyboard_shortcuts.toggle_sensitivity": "لعرض/إخفاء الوسائط",
"keyboard_shortcuts.toot": "للشروع في تحرير منشور جديد",
+ "keyboard_shortcuts.translate": "لترجمة منشور",
"keyboard_shortcuts.unfocus": "لإلغاء التركيز على حقل النص أو نافذة البحث",
"keyboard_shortcuts.up": "للانتقال إلى أعلى القائمة",
"lightbox.close": "إغلاق",
"lightbox.next": "التالي",
"lightbox.previous": "العودة",
+ "lightbox.zoom_in": "التكبير إلى الحجم الفعلي",
+ "lightbox.zoom_out": "التكبير ليناسب الحجم",
"limited_account_hint.action": "إظهار الملف التعريفي على أي حال",
"limited_account_hint.title": "تم إخفاء هذا الملف الشخصي من قبل مشرفي {domain}.",
"link_preview.author": "مِن {name}",
"link_preview.more_from_author": "المزيد من {name}",
+ "link_preview.shares": "{count, plural, zero {{counter} منشور}one {{counter} منشور} two {{counter} منشور} few {{counter} منشور} many {{counter} منشور} other {{counter} منشور}}",
"lists.add_member": "إضافة",
"lists.add_to_list": "إضافة إلى القائمة",
"lists.add_to_lists": "إضافة {name} إلى القوائم",
"lists.create": "إنشاء",
+ "lists.create_a_list_to_organize": "أنشئ قائمة جديدة لتنظم الصفحة الرئيسة خاصتك",
"lists.create_list": "إنشاء قائمة",
"lists.delete": "احذف القائمة",
"lists.done": "تمّ",
"lists.edit": "عدّل القائمة",
"lists.exclusive": "إخفاء الأعضاء في الصفحة الرئيسية",
+ "lists.exclusive_hint": "إذا يوجد شخص في هذه القائمة، فقم بإخفائه في صفحتك الرئيسة لتجنب رؤية منشوراته مرتين.",
+ "lists.find_users_to_add": "ابحث عن مستخدمين للإضافة",
+ "lists.list_members_count": "{count, plural, zero {}one {# عضو} two {# عضو} few {# عضو} many {# عضو} other {# عضو}}",
+ "lists.list_name": "اسم القائمة",
+ "lists.new_list_name": "اسم القائمة الجديدة",
+ "lists.no_lists_yet": "لا توجد قوائم بعد.",
+ "lists.no_members_yet": "لا أعضاء حتى الآن.",
+ "lists.no_results_found": "لم يتمّ العثور على أي نتيجة.",
"lists.remove_member": "إزالة",
"lists.replies_policy.followed": "أي مستخدم متابَع",
"lists.replies_policy.list": "أعضاء القائمة",
"lists.replies_policy.none": "لا أحد",
"lists.save": "حفظ",
"lists.search": "بحث",
+ "lists.show_replies_to": "تضمين الردود من أعضاء القائمة إلى",
"load_pending": "{count, plural, one {# عنصر جديد} other {# عناصر جديدة}}",
"loading_indicator.label": "جاري التحميل…",
"media_gallery.hide": "إخفاء",
@@ -441,38 +549,54 @@
"mute_modal.you_wont_see_mentions": "لن تر المنشورات التي يُشار فيها إليه.",
"mute_modal.you_wont_see_posts": "سيكون بإمكانه رؤية منشوراتك، لكنك لن ترى منشوراته.",
"navigation_bar.about": "عن",
+ "navigation_bar.account_settings": "كلمة المرور والأمان",
"navigation_bar.administration": "الإدارة",
"navigation_bar.advanced_interface": "افتحه في واجهة الويب المتقدمة",
+ "navigation_bar.automated_deletion": "الحذف الآلي للمنشورات",
"navigation_bar.blocks": "الحسابات المحجوبة",
"navigation_bar.bookmarks": "الفواصل المرجعية",
- "navigation_bar.community_timeline": "الخيط المحلي",
- "navigation_bar.compose": "تحرير منشور جديد",
"navigation_bar.direct": "الإشارات الخاصة",
- "navigation_bar.discover": "اكتشف",
"navigation_bar.domain_blocks": "النطاقات المحظورة",
- "navigation_bar.explore": "استكشف",
"navigation_bar.favourites": "المفضلة",
"navigation_bar.filters": "الكلمات المكتومة",
"navigation_bar.follow_requests": "طلبات المتابعة",
"navigation_bar.followed_tags": "الوسوم المتابَعة",
"navigation_bar.follows_and_followers": "المتابِعون والمتابَعون",
+ "navigation_bar.import_export": "الاستيراد والتصدير",
"navigation_bar.lists": "القوائم",
+ "navigation_bar.live_feed_local": "البث الحي للمنشورات المحلية",
+ "navigation_bar.live_feed_public": "البث الحي للمنشورات العالمية",
"navigation_bar.logout": "خروج",
"navigation_bar.moderation": "الإشراف",
+ "navigation_bar.more": "المزيد",
"navigation_bar.mutes": "الحسابات المكتومة",
"navigation_bar.opened_in_classic_interface": "تُفتَح المنشورات والحسابات وغيرها من الصفحات الخاصة بشكل مبدئي على واجهة الويب التقليدية.",
- "navigation_bar.personal": "شخصي",
- "navigation_bar.pins": "المنشورات المُثَبَّتَة",
"navigation_bar.preferences": "التفضيلات",
- "navigation_bar.public_timeline": "الخيط الفيدرالي",
+ "navigation_bar.privacy_and_reach": "الخصوصية و الوصول",
"navigation_bar.search": "البحث",
- "navigation_bar.security": "الأمان",
+ "navigation_bar.search_trends": "البحث / الرائج",
+ "navigation_panel.collapse_followed_tags": "طي قائمة الهاشتاقات المتابعة",
+ "navigation_panel.collapse_lists": "طي قائمة القائمة",
+ "navigation_panel.expand_followed_tags": "توسيع قائمة الهاشتاقات المتابعة",
+ "navigation_panel.expand_lists": "توسيع قائمة القائمة",
"not_signed_in_indicator.not_signed_in": "تحتاج إلى تسجيل الدخول للوصول إلى هذا المصدر.",
"notification.admin.report": "{name} أبلغ عن {target}",
+ "notification.admin.report_account": "{name} أبلغ عن {count, plural, zero {}one {منشور} two {منشورين} few {# منشورات} many {# منشورات} other {# منشورات}} من قبل {target} بسبب {category}",
+ "notification.admin.report_account_other": "{name} أبلغ عن {count, plural, zero {}one {منشور} two {منشورين} few {# منشورات} many {# منشورات} other {# منشورات}} من قبل {target}",
+ "notification.admin.report_statuses": "{name} أبلغ عن {target} بسبب {category}",
+ "notification.admin.report_statuses_other": "{name} أبلغ عن {target}",
"notification.admin.sign_up": "أنشأ {name} حسابًا",
+ "notification.admin.sign_up.name_and_others": "{name} و{count, plural, zero {}one {شخص آخر قاما} two {# آخرون قاموا} few {# آخرون قاموا} many {# آخرون قاموا} other {# آخرون قاموا}} بالتسجيل",
+ "notification.annual_report.message": "إن #Wrapstodon الخاص بك لسنة {year} ينتظرك! تعرّف إلى النقاط البارزة واللحظات التي لا تنسى على ماستدون!",
+ "notification.annual_report.view": "عرض #Wrapstodon",
"notification.favourite": "أضاف {name} منشورك إلى مفضلته",
+ "notification.favourite.name_and_others_with_link": "{name} و
{count, plural, zero {}one {شخص آخر} two {شخصان آخرين} few {# أشخاص آخرون} many {# أشخاص آخرون} other {# أشخاص آخرون}} قاموا بتفضيل منشورك",
+ "notification.favourite_pm": "قام {name} بتفضيل إشارتك الخاصة",
+ "notification.favourite_pm.name_and_others_with_link": "{name} و
{count, plural, zero {}one {شخص آخر} two {شخصان آخرَين} few {# أشخاص آخرون} many {# أشخاص آخرون} other {# أشخاص آخرون}} قاموا بتفضيل إشارتك الخاصة",
"notification.follow": "يتابعك {name}",
+ "notification.follow.name_and_others": "{name} و
{count, plural, zero {}one {شخص آخر} two {شخصان آخرين} few {# أشخاص آخرون} many {# أشخاص آخرون} other {# أشخاص آخرون}} قاموا بمتابعتك",
"notification.follow_request": "لقد طلب {name} متابعتك",
+ "notification.follow_request.name_and_others": "{name} و{count, plural, zero {}one {شخص آخر} two {شخصان آخرين} few {# أشخاص آخرون} many {# أشخاص آخرون} other {# أشخاص آخرون}} أرسلوا طلب متابعة لك",
"notification.label.mention": "إشارة",
"notification.label.private_mention": "إشارة خاصة",
"notification.label.private_reply": "رد خاص",
@@ -491,6 +615,7 @@
"notification.own_poll": "انتهى استطلاعك للرأي",
"notification.poll": "لقد انتهى استطلاع رأي صوتت فيه",
"notification.reblog": "قام {name} بمشاركة منشورك",
+ "notification.reblog.name_and_others_with_link": "{name} و
{count, plural, zero {}one {شخص آخر} two {شخصان آخرين} few {# أشخاص آخرون} many {# أشخاص آخرون} other {# أشخاص آخرون}} قاموا بإعادة نشر منشورك",
"notification.relationships_severance_event": "فقدت الاتصالات مع {name}",
"notification.relationships_severance_event.account_suspension": "قام مشرف من {from} بتعليق {target}، مما يعني أنك لم يعد بإمكانك تلقي التحديثات منهم أو التفاعل معهم.",
"notification.relationships_severance_event.domain_block": "قام مشرف من {from} بحظر {target}، بما في ذلك {followersCount} من متابعينك و {followingCount, plural, one {# حساب} other {# حسابات}} تتابعها.",
@@ -499,12 +624,20 @@
"notification.status": "{name} نشر للتو",
"notification.update": "عدّلَ {name} منشورًا",
"notification_requests.accept": "موافقة",
+ "notification_requests.accept_multiple": "قبول {count, plural, zero {}one {طلب واحد…} two {# طلب…} few {# طلبات…} many {# طلبات…} other {# طلبات…}}",
+ "notification_requests.confirm_accept_multiple.button": "قبول {count, plural, zero {}one {الطلب} two {2 طلب} few {الطلبات} many {الطلبات} other {الطلبات}}",
+ "notification_requests.confirm_accept_multiple.message": "أنت على وشك قبول {count, plural, zero {}one {طلب إشعار واحد} two {# طلبات إشعار} few {# طلبات إشعار} many {# طلبات إشعار} other {# طلبات إشعار}}. هل أنت متأكد من أنك تريد المتابعة؟",
"notification_requests.confirm_accept_multiple.title": "قبول طلبات الإشعار؟",
+ "notification_requests.confirm_dismiss_multiple.button": "رفض {count, plural, zero {}one {الطلب} two {2 طلب} few {الطلبات} many {الطلبات} other {الطلبات}}",
+ "notification_requests.confirm_dismiss_multiple.message": "أنت على وشك رفض {count, plural, zero {}one {طلب إشعار واحد} two {# طلبات إشعار} few {# طلبات إشعار} many {# طلبات إشعار} other {# طلبات إشعار}}. لن تتمكن من الوصول بسهولة {count, plural, zero {}one {إليه} two {إليهما} few {إليهم} many {إليهم} other {إليهم}} مرة أخرى. هل أنت متأكد من أنك تريد المتابعة؟",
"notification_requests.confirm_dismiss_multiple.title": "تجاهل طلبات الإشعار؟",
"notification_requests.dismiss": "تخطي",
+ "notification_requests.dismiss_multiple": "رفض {count, plural, zero {}one {# طلب…} two {# طلب…} few {# طلبات…} many {# طلبات…} other {# طلبات…}}",
"notification_requests.edit_selection": "تعديل",
"notification_requests.exit_selection": "تمّ",
"notification_requests.explainer_for_limited_account": "تم تصفية الإشعارات من هذا الحساب لأن الحساب تم تقييده من قبل مشرف.",
+ "notification_requests.explainer_for_limited_remote_account": "تم تصفية الإشعارات من هذا الحساب لأنه أو لأن خادمه مقيد من قبل مشرف.",
+ "notification_requests.maximize": "تكبير",
"notification_requests.minimize_banner": "تصغير شريط الإشعارات المُصفاة",
"notification_requests.notifications_from": "إشعارات من {name}",
"notification_requests.title": "الإشعارات المصفاة",
@@ -520,6 +653,7 @@
"notifications.column_settings.filter_bar.category": "شريط التصفية السريعة",
"notifications.column_settings.follow": "متابعُون جُدُد:",
"notifications.column_settings.follow_request": "الطلبات الجديدة لِمتابَعتك:",
+ "notifications.column_settings.group": "قم بتجميعهم",
"notifications.column_settings.mention": "الإشارات:",
"notifications.column_settings.poll": "نتائج استطلاع الرأي:",
"notifications.column_settings.push": "الإشعارات",
@@ -546,7 +680,9 @@
"notifications.policy.accept": "قبول",
"notifications.policy.accept_hint": "إظهار في الإشعارات",
"notifications.policy.drop": "تجاهل",
+ "notifications.policy.drop_hint": "التخلص منها بشكل دائم",
"notifications.policy.filter": "تصفية",
+ "notifications.policy.filter_hint": "إرسال إلى صندوق الإشعارات المصفاة",
"notifications.policy.filter_limited_accounts_hint": "المحدودة من قبل مشرفي الخادم",
"notifications.policy.filter_limited_accounts_title": "حسابات تحت الإشراف",
"notifications.policy.filter_new_accounts.hint": "تم إنشاؤها منذ {days, plural, zero {}one {يوم واحد} two {يومان} few {# أيام} many {# أيام} other {# أيام}}",
@@ -561,7 +697,11 @@
"notifications_permission_banner.enable": "تفعيل إشعارات سطح المكتب",
"notifications_permission_banner.how_to_control": "لتلقي الإشعارات عندما لا يكون ماستدون مفتوح، قم بتفعيل إشعارات سطح المكتب، يمكنك التحكم بدقة في أنواع التفاعلات التي تولد إشعارات سطح المكتب من خلال زر الـ{icon} أعلاه بمجرد تفعيلها.",
"notifications_permission_banner.title": "لا تفوت شيئاً أبداً",
+ "onboarding.follows.back": "عودة",
+ "onboarding.follows.done": "تمّ",
"onboarding.follows.empty": "نأسف، لا يمكن عرض نتائج في الوقت الحالي. جرب البحث أو انتقل لصفحة الاستكشاف لإيجاد أشخاص للمتابعة، أو حاول مرة أخرى.",
+ "onboarding.follows.search": "بحث",
+ "onboarding.follows.title": "للبدء قم بمتابعة أشخاص",
"onboarding.profile.discoverable": "اجعل ملفي الشخصي قابلاً للاكتشاف",
"onboarding.profile.discoverable_hint": "عندما تختار تفعيل إمكانية الاكتشاف على ماستدون، قد تظهر منشوراتك في نتائج البحث والمواضيع الرائجة، وقد يتم اقتراح ملفك الشخصي لأشخاص ذوي اهتمامات مماثلة معك.",
"onboarding.profile.display_name": "الاسم العلني",
@@ -587,6 +727,7 @@
"poll_button.remove_poll": "إزالة استطلاع الرأي",
"privacy.change": "اضبط خصوصية المنشور",
"privacy.direct.long": "كل من ذُكر في المنشور",
+ "privacy.direct.short": "إشارة خاصة",
"privacy.private.long": "متابعيك فقط",
"privacy.private.short": "للمتابِعين",
"privacy.public.long": "أي شخص على أو خارج ماستدون",
@@ -598,6 +739,8 @@
"privacy_policy.title": "سياسة الخصوصية",
"recommended": "موصى به",
"refresh": "أنعِش",
+ "regeneration_indicator.please_stand_by": "الرجاء الانتظار.",
+ "regeneration_indicator.preparing_your_home_feed": "جارٍ إعداد صفحتك الرئيسة…",
"relative_time.days": "{number}ي",
"relative_time.full.days": "منذ {number, plural, zero {} one {# يوم} two {# يومين} few {# أيام} many {# أيام} other {# يوم}}",
"relative_time.full.hours": "منذ {number, plural, zero {} one {ساعة واحدة} two {ساعتَيْن} few {# ساعات} many {# ساعة} other {# ساعة}}",
@@ -662,6 +805,7 @@
"report_notification.categories.violation": "القاعدة المنتهَكة",
"report_notification.categories.violation_sentence": "انتهاك لقاعدة",
"report_notification.open": "فتح التقرير",
+ "search.clear": "مسح البحث",
"search.no_recent_searches": "ما من عمليات بحث تمت مؤخرًا",
"search.placeholder": "ابحث",
"search.quick_action.account_search": "الملفات التعريفية المطابقة لـ {x}",
@@ -681,14 +825,19 @@
"search_results.accounts": "الصفحات التعريفية",
"search_results.all": "الكل",
"search_results.hashtags": "الوُسوم",
+ "search_results.no_results": "لا توجد نتائج.",
+ "search_results.no_search_yet": "حاول البحث عن المنشورات، ملفات الشخصية أو الهاشتاقات.",
"search_results.see_all": "رؤية الكل",
"search_results.statuses": "المنشورات",
+ "search_results.title": "البحث عن \"{q}\"",
"server_banner.about_active_users": "الأشخاص الذين يستخدمون هذا الخادم خلال الأيام الثلاثين الأخيرة (المستخدمون النشطون شهريًا)",
"server_banner.active_users": "مستخدم نشط",
"server_banner.administered_by": "يُديره:",
"server_banner.is_one_of_many": "{domain} هو واحد من بين العديد من خوادم ماستدون المستقلة التي يمكنك استخدامها للمشاركة في الفديفرس.",
"server_banner.server_stats": "إحصائيات الخادم:",
"sign_in_banner.create_account": "أنشئ حسابًا",
+ "sign_in_banner.follow_anyone": "تابع أي شخص من عالم الفدرالية وشاهد منشوراته بالترتيب الزمني. دون خوارزميات أو إعلانات أو عنواين مضللة.",
+ "sign_in_banner.mastodon_is": "ماستودون هو أفضل وسيلة لمواكبة الأحداث.",
"sign_in_banner.sign_in": "تسجيل الدخول",
"sign_in_banner.sso_redirect": "تسجيل الدخول أو إنشاء حساب",
"status.admin_account": "افتح الواجهة الإدارية لـ @{name}",
@@ -723,6 +872,13 @@
"status.mute_conversation": "كتم المحادثة",
"status.open": "وسّع هذا المنشور",
"status.pin": "دبّسه على الصفحة التعريفية",
+ "status.quote_error.filtered": "مُخفي بسبب إحدى إعدادات التصفية خاصتك",
+ "status.quote_error.not_found": "لا يمكن عرض هذا المنشور.",
+ "status.quote_error.pending_approval": "هذا المنشور ينتظر موافقة صاحب المنشور الأصلي.",
+ "status.quote_error.rejected": "لا يمكن عرض هذا المنشور لأن صاحب المنشور الأصلي لا يسمح له بأن يكون مقتبس.",
+ "status.quote_error.removed": "تمت إزالة المنشور من قبل صاحبه.",
+ "status.quote_error.unauthorized": "لا يمكن عرض هذا المنشور لأنك لست مخولاً برؤيته.",
+ "status.quote_post_author": "منشور من {name}",
"status.read_more": "اقرأ المزيد",
"status.reblog": "إعادة النشر",
"status.reblog_private": "إعادة النشر إلى الجمهور الأصلي",
@@ -731,6 +887,7 @@
"status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.",
"status.redraft": "إزالة وإعادة الصياغة",
"status.remove_bookmark": "احذفه مِن الفواصل المرجعية",
+ "status.remove_favourite": "إزالة من التفضيلات",
"status.replied_in_thread": "رد في خيط",
"status.replied_to": "رَدًا على {name}",
"status.reply": "ردّ",
@@ -751,8 +908,13 @@
"subscribed_languages.save": "حفظ التغييرات",
"subscribed_languages.target": "تغيير اللغات المشتركة لـ {target}",
"tabs_bar.home": "الرئيسية",
+ "tabs_bar.menu": "القائمة",
"tabs_bar.notifications": "الإشعارات",
+ "tabs_bar.publish": "منشور جديد",
+ "tabs_bar.search": "ابحث",
+ "terms_of_service.effective_as_of": "مطبق اعتباراً من {date}",
"terms_of_service.title": "شروط الخدمة",
+ "terms_of_service.upcoming_changes_on": "تغييرات قادمة في تاريخ {date}",
"time_remaining.days": "{number, plural, one {# يوم} other {# أيام}} متبقية",
"time_remaining.hours": "{number, plural, one {# ساعة} other {# ساعات}} متبقية",
"time_remaining.minutes": "{number, plural, one {# دقيقة} other {# دقائق}} متبقية",
@@ -768,6 +930,11 @@
"upload_button.label": "إضافة وسائط",
"upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.",
"upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
+ "upload_form.drag_and_drop.instructions": "لحمل مرفق، اضغط على space أو Enter. وفي أثناء السحب، استخدم مفاتيح الأسهم لتنقل المرفق في أية اتجاه. اضغط على Space أو Enter مجدداً لتنقل المرفق إلى موضعه الجديد، أو اضغط Escape للإلغاء.",
+ "upload_form.drag_and_drop.on_drag_cancel": "تم إلغاء السحب. تم إسقاط مرفقات الوسائط {item}.",
+ "upload_form.drag_and_drop.on_drag_end": "تم إضافة المرفق {item}.",
+ "upload_form.drag_and_drop.on_drag_over": "تم نقل مرفق الوسائط {item}.",
+ "upload_form.drag_and_drop.on_drag_start": "تم إضافة المرفق {item}.",
"upload_form.edit": "تعديل",
"upload_progress.label": "يرفع...",
"upload_progress.processing": "تتم المعالجة…",
@@ -778,6 +945,12 @@
"video.expand": "توسيع الفيديو",
"video.fullscreen": "ملء الشاشة",
"video.hide": "إخفاء الفيديو",
+ "video.mute": "كتم",
"video.pause": "إيقاف مؤقت",
- "video.play": "تشغيل"
+ "video.play": "تشغيل",
+ "video.skip_backward": "تخطى إلى الوراء",
+ "video.skip_forward": "تخطي للأمام",
+ "video.unmute": "إلغاء الكتم",
+ "video.volume_down": "خفض الصوت",
+ "video.volume_up": "رفع الصوت"
}
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 3777d31e2b6..e039b9e6128 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -121,7 +121,6 @@
"column_header.show_settings": "Amosar la configuración",
"column_header.unpin": "Lliberar",
"column_search.cancel": "Encaboxar",
- "column_subheading.settings": "Configuración",
"community.column_settings.media_only": "Namás el conteníu multimedia",
"community.column_settings.remote_only": "Namás lo remoto",
"compose.language.change": "Camudar la llingua",
@@ -147,8 +146,6 @@
"confirmations.delete_list.message": "¿De xuru que quies desaniciar permanentemente esta llista?",
"confirmations.delete_list.title": "¿Quies desaniciar la llista?",
"confirmations.discard_edit_media.confirm": "Escartar",
- "confirmations.edit.confirm": "Editar",
- "confirmations.edit.message": "La edición va sobrescribir el mensaxe que tas escribiendo. ¿De xuru que quies siguir?",
"confirmations.follow_to_list.title": "¿Siguir al usuariu?",
"confirmations.logout.confirm": "Zarrar la sesión",
"confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
@@ -157,8 +154,6 @@
"confirmations.missing_alt_text.title": "¿Quies amestar testu alternativu?",
"confirmations.redraft.confirm": "Desaniciar y reeditar",
"confirmations.redraft.title": "¿Desaniciar y reeditar la publicación?",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder agora va sobrescribir el mensaxe que tas componiendo anguaño. ¿De xuru que quies siguir?",
"confirmations.unfollow.confirm": "Dexar de siguir",
"confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?",
"confirmations.unfollow.title": "¿Dexar de siguir al usuariu?",
@@ -342,10 +337,8 @@
"navigation_bar.about": "Tocante a",
"navigation_bar.blocks": "Perfiles bloquiaos",
"navigation_bar.bookmarks": "Marcadores",
- "navigation_bar.community_timeline": "Llinia de tiempu llocal",
"navigation_bar.direct": "Menciones privaes",
"navigation_bar.domain_blocks": "Dominios bloquiaos",
- "navigation_bar.explore": "Esploración",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Pallabres desactivaes",
"navigation_bar.follow_requests": "Solicitúes de siguimientu",
@@ -356,11 +349,7 @@
"navigation_bar.moderation": "Moderación",
"navigation_bar.mutes": "Perfiles colos avisos desactivaos",
"navigation_bar.opened_in_classic_interface": "Los artículos, les cuentes y otres páxines específiques ábrense por defeutu na interfaz web clásica.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Artículos fixaos",
"navigation_bar.preferences": "Preferencies",
- "navigation_bar.public_timeline": "Llinia de tiempu federada",
- "navigation_bar.security": "Seguranza",
"not_signed_in_indicator.not_signed_in": "Tienes d'aniciar la sesión p'acceder a esti recursu.",
"notification.admin.report": "{name} informó de: {target}",
"notification.admin.sign_up": "{name} rexistróse",
diff --git a/app/javascript/mastodon/locales/az.json b/app/javascript/mastodon/locales/az.json
index abcf6d1fde0..72cc1edd022 100644
--- a/app/javascript/mastodon/locales/az.json
+++ b/app/javascript/mastodon/locales/az.json
@@ -169,7 +169,6 @@
"column_header.show_settings": "Parametrləri göstər",
"column_header.unpin": "Bərkitmə",
"column_search.cancel": "İmtina",
- "column_subheading.settings": "Parametrlər",
"community.column_settings.local_only": "Sadəcə lokalda",
"community.column_settings.media_only": "Sadəcə media",
"community.column_settings.remote_only": "Sadəcə uzaq serverlər",
@@ -207,9 +206,6 @@
"confirmations.delete_list.title": "Siyahı silinsin?",
"confirmations.discard_edit_media.confirm": "Ləğv et",
"confirmations.discard_edit_media.message": "Media təsvirində və ya önizləmədə yadda saxlanmamış dəyişiklikləriniz var, ləğv edilsin?",
- "confirmations.edit.confirm": "Redaktə et",
- "confirmations.edit.message": "Redaktə etmək hazırda tərtib etdiyiniz mesajın üzərinə yazacaq. Davam etmək istədiyinizə əminsiniz?",
- "confirmations.edit.title": "Paylaşım yenidə yazılsın?",
"confirmations.follow_to_list.confirm": "İzlə və siyahıya əlavə et",
"confirmations.follow_to_list.message": "{name} istifadəçisini siyahıya əlavə etmək üçün onu izləməlisiniz.",
"confirmations.follow_to_list.title": "İstifadəçini izlə?",
@@ -224,9 +220,6 @@
"confirmations.redraft.confirm": "Sil və qaralamaya köçür",
"confirmations.redraft.message": "Bu paylaşımı silmək və qaralamaya köçürmək istədiyinizə əminsiniz? Bəyənmələr və gücləndirmələr itəcək və orijinal paylaşıma olan cavablar tənha qalacaq.",
"confirmations.redraft.title": "Paylaşım silinsin & qaralamaya köçürülsün?",
- "confirmations.reply.confirm": "Cavabla",
- "confirmations.reply.message": "İndi cavab vermək hal-hazırda yazdığınız mesajın üzərinə yazacaq. Davam etmək istədiyinizə əminsiniz?",
- "confirmations.reply.title": "Paylaşım yenidən yazılsın?",
"confirmations.unfollow.confirm": "İzləmədən çıxar",
"confirmations.unfollow.message": "{name} izləmədən çıxmaq istədiyinizə əminsiniz?",
"confirmations.unfollow.title": "İstifadəçi izləmədən çıxarılsın?",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index 482dbd4a61d..b1567a8b6b8 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -161,7 +161,6 @@
"column_header.show_settings": "Паказаць налады",
"column_header.unpin": "Адмацаваць",
"column_search.cancel": "Скасаваць",
- "column_subheading.settings": "Налады",
"community.column_settings.local_only": "Толькі лакальныя",
"community.column_settings.media_only": "Толькі медыя",
"community.column_settings.remote_only": "Толькі дыстанцыйна",
@@ -199,9 +198,6 @@
"confirmations.delete_list.title": "Выдаліць спіс?",
"confirmations.discard_edit_media.confirm": "Адмяніць",
"confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?",
- "confirmations.edit.confirm": "Рэдагаваць",
- "confirmations.edit.message": "Калі вы зменіце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
- "confirmations.edit.title": "Замяніць допіс?",
"confirmations.follow_to_list.confirm": "Падпісацца й дадаць у сьпіс",
"confirmations.follow_to_list.message": "Вы мусіце быць падпісаныя на {name} каб дадаць яго ў сьпіс.",
"confirmations.follow_to_list.title": "Падпісацца на карыстальніка?",
@@ -213,9 +209,6 @@
"confirmations.redraft.confirm": "Выдаліць і перапісаць",
"confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.",
"confirmations.redraft.title": "Выдаліць і перапісаць допіс?",
- "confirmations.reply.confirm": "Адказаць",
- "confirmations.reply.message": "Калі вы адкажаце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
- "confirmations.reply.title": "Замяніць допіс?",
"confirmations.unfollow.confirm": "Адпісацца",
"confirmations.unfollow.message": "Вы ўпэўненыя, што хочаце адпісацца ад {name}?",
"confirmations.unfollow.title": "Адпісацца ад карыстальніка?",
@@ -483,12 +476,8 @@
"navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе",
"navigation_bar.blocks": "Заблакіраваныя карыстальнікі",
"navigation_bar.bookmarks": "Закладкі",
- "navigation_bar.community_timeline": "Лакальная стужка",
- "navigation_bar.compose": "Стварыць новы допіс",
"navigation_bar.direct": "Асабістыя згадванні",
- "navigation_bar.discover": "Даведайцесь",
"navigation_bar.domain_blocks": "Заблакіраваныя дамены",
- "navigation_bar.explore": "Агляд",
"navigation_bar.favourites": "Упадабанае",
"navigation_bar.filters": "Ігнараваныя словы",
"navigation_bar.follow_requests": "Запыты на падпіску",
@@ -499,12 +488,8 @@
"navigation_bar.moderation": "Мадэрацыя",
"navigation_bar.mutes": "Ігнараваныя карыстальнікі",
"navigation_bar.opened_in_classic_interface": "Допісы, уліковыя запісы і іншыя спецыфічныя старонкі па змоўчанні адчыняюцца ў класічным вэб-інтэрфейсе.",
- "navigation_bar.personal": "Асабістае",
- "navigation_bar.pins": "Замацаваныя допісы",
"navigation_bar.preferences": "Налады",
- "navigation_bar.public_timeline": "Глабальная стужка",
"navigation_bar.search": "Пошук",
- "navigation_bar.security": "Бяспека",
"not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.",
"notification.admin.report": "{name} паскардзіўся на {target}",
"notification.admin.report_account": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target} з прычыны {category}",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 1428f83e612..8628b68954c 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -8,6 +8,7 @@
"about.domain_blocks.silenced.title": "Ограничено",
"about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхраняват или обменят, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.",
"about.domain_blocks.suspended.title": "Спряно",
+ "about.language_label": "Език",
"about.not_available": "Тази информация не е публична на този сървър.",
"about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}",
"about.rules": "Правила на сървъра",
@@ -28,6 +29,7 @@
"account.edit_profile": "Редактиране на профила",
"account.enable_notifications": "Известяване при публикуване от @{name}",
"account.endorse": "Представи в профила",
+ "account.familiar_followers_many": "Последвано от {name1}, {name2}, и {othersCount, plural, one {един друг, когото познавате} other {# други, които познавате}}",
"account.familiar_followers_one": "Последвано от {name1}",
"account.familiar_followers_two": "Последвано от {name1} и {name2}",
"account.featured": "Препоръчано",
@@ -40,6 +42,7 @@
"account.followers": "Последователи",
"account.followers.empty": "Още никой не следва потребителя.",
"account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}",
+ "account.followers_you_know_counter": "{counter} познавате",
"account.following": "Последвано",
"account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}",
"account.follows.empty": "Потребителят още никого не следва.",
@@ -180,13 +183,12 @@
"column_header.show_settings": "Показване на настройките",
"column_header.unpin": "Разкачане",
"column_search.cancel": "Отказ",
- "column_subheading.settings": "Настройки",
"community.column_settings.local_only": "Само локално",
"community.column_settings.media_only": "Само мултимедия",
"community.column_settings.remote_only": "Само отдалечено",
"compose.language.change": "Смяна на езика",
"compose.language.search": "Търсене на езици...",
- "compose.published.body": "Публикувана публикация.",
+ "compose.published.body": "Публикувано.",
"compose.published.open": "Отваряне",
"compose.saved.body": "Запазена публикация.",
"compose_form.direct_message_warning_learn_more": "Още информация",
@@ -216,11 +218,15 @@
"confirmations.delete_list.confirm": "Изтриване",
"confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?",
"confirmations.delete_list.title": "Изтривате ли списъка?",
+ "confirmations.discard_draft.confirm": "Изхвърляне и продължаване",
+ "confirmations.discard_draft.edit.cancel": "Възобновяване на редактиране",
+ "confirmations.discard_draft.edit.message": "Продължаването ще изхвърли всякакви промени, които сте правили в публикацията, която сега редактирате.",
+ "confirmations.discard_draft.edit.title": "Изхвърляте ли промените в публикацията си?",
+ "confirmations.discard_draft.post.cancel": "Възстановка на чернова",
+ "confirmations.discard_draft.post.message": "Продължаването ще изхвърли публикацията, която сега съставяте.",
+ "confirmations.discard_draft.post.title": "Изхвърляте ли черновата си публикация?",
"confirmations.discard_edit_media.confirm": "Отхвърляне",
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
- "confirmations.edit.confirm": "Редактиране",
- "confirmations.edit.message": "Редактирането сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
- "confirmations.edit.title": "Презаписвате ли публикацията?",
"confirmations.follow_to_list.confirm": "Последване и добавяне в списък",
"confirmations.follow_to_list.message": "Трябва да последвате {name}, за да добавите лицето към списък.",
"confirmations.follow_to_list.title": "Последвате ли потребителя?",
@@ -238,9 +244,6 @@
"confirmations.remove_from_followers.confirm": "Премахване на последовател",
"confirmations.remove_from_followers.message": "{name} ще спре да ви следва. Наистина ли искате да продължите?",
"confirmations.remove_from_followers.title": "Премахвате ли последовател?",
- "confirmations.reply.confirm": "Отговор",
- "confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
- "confirmations.reply.title": "Презаписвате ли публикацията?",
"confirmations.unfollow.confirm": "Без следване",
"confirmations.unfollow.message": "Наистина ли искате вече да не следвате {name}?",
"confirmations.unfollow.title": "Спирате ли да следвате потребителя?",
@@ -331,9 +334,15 @@
"errors.unexpected_crash.copy_stacktrace": "Копиране на трасето на стека в буферната памет",
"errors.unexpected_crash.report_issue": "Сигнал за проблем",
"explore.suggested_follows": "Хора",
+ "explore.title": "Вървежно",
"explore.trending_links": "Новини",
"explore.trending_statuses": "Публикации",
"explore.trending_tags": "Хаштагове",
+ "featured_carousel.header": "{count, plural, one {закачена публикация} other {закачени публикации}}",
+ "featured_carousel.next": "Напред",
+ "featured_carousel.post": "Публикация",
+ "featured_carousel.previous": "Назад",
+ "featured_carousel.slide": "{index} от {total}",
"filter_modal.added.context_mismatch_explanation": "Тази категория филтър не е приложима към контекста, в който достъпвате тази публикация. Ако желаете да филтрирате публикациите в този контекст, трябва да изберете друг филтър.",
"filter_modal.added.context_mismatch_title": "Несъвпадащ контекст!",
"filter_modal.added.expired_explanation": "Валидността на тази категория филтър е изтекла. Сменете срока на валидност, за да я приложите.",
@@ -412,6 +421,7 @@
"hints.profiles.see_more_posts": "Преглед на още публикации на {domain}",
"hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.",
"hints.threads.see_more": "Преглед на още отговори на {domain}",
+ "home.column_settings.show_quotes": "Показване на цитираното",
"home.column_settings.show_reblogs": "Показване на подсилванията",
"home.column_settings.show_replies": "Показване на отговорите",
"home.hide_announcements": "Скриване на оповестяванията",
@@ -534,32 +544,30 @@
"mute_modal.you_wont_see_mentions": "Няма да виждате споменаващите ги публикации.",
"mute_modal.you_wont_see_posts": "Още могат да виждат публикациите ви, но вие техните не.",
"navigation_bar.about": "Относно",
+ "navigation_bar.account_settings": "Парола и сигурност",
"navigation_bar.administration": "Администрация",
"navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
+ "navigation_bar.automated_deletion": "Автоматично изтриване на публикации",
"navigation_bar.blocks": "Блокирани потребители",
"navigation_bar.bookmarks": "Отметки",
- "navigation_bar.community_timeline": "Локална хронология",
- "navigation_bar.compose": "Съставяне на нова публикация",
"navigation_bar.direct": "Частни споменавания",
- "navigation_bar.discover": "Откриване",
"navigation_bar.domain_blocks": "Блокирани домейни",
- "navigation_bar.explore": "Разглеждане",
"navigation_bar.favourites": "Любими",
"navigation_bar.filters": "Заглушени думи",
"navigation_bar.follow_requests": "Заявки за последване",
"navigation_bar.followed_tags": "Последвани хаштагове",
"navigation_bar.follows_and_followers": "Последвания и последователи",
+ "navigation_bar.import_export": "Внасяне и изнасяне",
"navigation_bar.lists": "Списъци",
"navigation_bar.logout": "Излизане",
"navigation_bar.moderation": "Модериране",
+ "navigation_bar.more": "Още",
"navigation_bar.mutes": "Заглушени потребители",
"navigation_bar.opened_in_classic_interface": "Публикации, акаунти и други особени страници се отварят по подразбиране в класическия мрежови интерфейс.",
- "navigation_bar.personal": "Лично",
- "navigation_bar.pins": "Закачени публикации",
"navigation_bar.preferences": "Предпочитания",
- "navigation_bar.public_timeline": "Федеративна хронология",
+ "navigation_bar.privacy_and_reach": "Поверителност и обхват",
"navigation_bar.search": "Търсене",
- "navigation_bar.security": "Сигурност",
+ "navigation_bar.search_trends": "Търсене / Вървежно",
"not_signed_in_indicator.not_signed_in": "Трябва ви вход за достъп до ресурса.",
"notification.admin.report": "{name} докладва {target}",
"notification.admin.report_account": "{name} докладва {count, plural, one {публикация} other {# публикации}} от {target} за {category}",
@@ -786,6 +794,7 @@
"report_notification.categories.violation": "Нарушение на правилото",
"report_notification.categories.violation_sentence": "нарушение на правило",
"report_notification.open": "Отваряне на доклада",
+ "search.clear": "Изчистване на търсенето",
"search.no_recent_searches": "Няма скорошни търсения",
"search.placeholder": "Търсене",
"search.quick_action.account_search": "Съвпадение на профили {x}",
@@ -852,6 +861,13 @@
"status.mute_conversation": "Заглушаване на разговора",
"status.open": "Разширяване на публикацията",
"status.pin": "Закачане в профила",
+ "status.quote_error.filtered": "Скрито поради един от филтрите ви",
+ "status.quote_error.not_found": "Публикацията не може да се показва.",
+ "status.quote_error.pending_approval": "Публикацията чака одобрение от първоначалния автор.",
+ "status.quote_error.rejected": "Публикацията не може да се показва като първоначалния автор не позволява цитирането ѝ.",
+ "status.quote_error.removed": "Публикацията е премахната от автора ѝ.",
+ "status.quote_error.unauthorized": "Публикацията не може да се показва, тъй като не сте упълномощени да я гледате.",
+ "status.quote_post_author": "Публикация от {name}",
"status.read_more": "Още за четене",
"status.reblog": "Подсилване",
"status.reblog_private": "Подсилване с оригиналната видимост",
@@ -881,7 +897,10 @@
"subscribed_languages.save": "Запазване на промените",
"subscribed_languages.target": "Промяна на абонираните езици за {target}",
"tabs_bar.home": "Начало",
+ "tabs_bar.menu": "Меню",
"tabs_bar.notifications": "Известия",
+ "tabs_bar.publish": "Нова публикация",
+ "tabs_bar.search": "Търсене",
"terms_of_service.effective_as_of": "В сила от {date}",
"terms_of_service.title": "Условия на услугата",
"terms_of_service.upcoming_changes_on": "Предстоящи промени на {date}",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index f6fc54a3f01..2339f607d66 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -121,7 +121,6 @@
"column_header.pin": "পিন দিয়ে রাখুন",
"column_header.show_settings": "সেটিং দেখান",
"column_header.unpin": "পিন খুলুন",
- "column_subheading.settings": "সেটিং",
"community.column_settings.local_only": "শুধুমাত্র স্থানীয়",
"community.column_settings.media_only": "শুধুমাত্র ছবি বা ভিডিও",
"community.column_settings.remote_only": "শুধুমাত্র দূরবর্তী",
@@ -149,14 +148,10 @@
"confirmations.delete_list.message": "আপনি কি নিশ্চিত যে আপনি এই তালিকাটি স্থায়িভাবে মুছে ফেলতে চান ?",
"confirmations.discard_edit_media.confirm": "বাতিল করো",
"confirmations.discard_edit_media.message": "মিডিয়া Description বা Preview তে আপনার আপনার অসংরক্ষিত পরিবর্তন আছে, সেগুলো বাতিল করবেন?",
- "confirmations.edit.confirm": "সম্পাদন",
- "confirmations.edit.message": "এখন সম্পাদনা করলে আপনি যে মেসেজ লিখছেন তা overwrite করবে, চালিয়ে যেতে চান?",
"confirmations.logout.confirm": "প্রস্থান",
"confirmations.logout.message": "আপনি লগ আউট করতে চান?",
"confirmations.mute.confirm": "সরিয়ে ফেলুন",
"confirmations.redraft.confirm": "মুছে ফেলুন এবং আবার সম্পাদন করুন",
- "confirmations.reply.confirm": "মতামত",
- "confirmations.reply.message": "এখন মতামত লিখতে গেলে আপনার এখন যেটা লিখছেন সেটা মুছে যাবে। আপনি নি নিশ্চিত এটা করতে চান ?",
"confirmations.unfollow.confirm": "অনুসরণ বন্ধ করো",
"confirmations.unfollow.message": "তুমি কি নিশ্চিত {name} কে আর অনুসরণ করতে চাও না?",
"conversation.delete": "কথোপকথন মুছে ফেলুন",
@@ -279,11 +274,7 @@
"navigation_bar.about": "পরিচিতি",
"navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী",
"navigation_bar.bookmarks": "বুকমার্ক",
- "navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
- "navigation_bar.compose": "নতুন টুট লিখুন",
- "navigation_bar.discover": "ঘুরে দেখুন",
"navigation_bar.domain_blocks": "লুকানো ডোমেনগুলি",
- "navigation_bar.explore": "পরিব্রাজন",
"navigation_bar.favourites": "পছন্দসমূহ",
"navigation_bar.filters": "বন্ধ করা শব্দ",
"navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি",
@@ -291,12 +282,8 @@
"navigation_bar.lists": "তালিকাগুলো",
"navigation_bar.logout": "বাইরে যান",
"navigation_bar.mutes": "যাদের কার্যক্রম দেখা বন্ধ আছে",
- "navigation_bar.personal": "নিজস্ব",
- "navigation_bar.pins": "পিন দেওয়া টুট",
"navigation_bar.preferences": "পছন্দসমূহ",
- "navigation_bar.public_timeline": "যুক্তবিশ্বের সময়রেখা",
"navigation_bar.search": "অনুসন্ধান",
- "navigation_bar.security": "নিরাপত্তা",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} আপনাকে অনুসরণ করেছেন",
"notification.follow_request": "{name} আপনাকে অনুসরণ করার জন্য অনুরধ করেছে",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index 070ff655e96..b0e21ab3be0 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -139,7 +139,6 @@
"column_header.show_settings": "Diskouez an arventennoù",
"column_header.unpin": "Dispilhennañ",
"column_search.cancel": "Nullañ",
- "column_subheading.settings": "Arventennoù",
"community.column_settings.local_only": "Nemet lec'hel",
"community.column_settings.media_only": "Nemet Mediaoù",
"community.column_settings.remote_only": "Nemet a-bell",
@@ -174,15 +173,11 @@
"confirmations.delete_list.title": "Dilemel al listenn?",
"confirmations.discard_edit_media.confirm": "Nac'hañ",
"confirmations.discard_edit_media.message": "Bez ez eus kemmoù n'int ket enrollet e deskrivadur ar media pe ar rakwel, nullañ anezho evelato?",
- "confirmations.edit.confirm": "Kemmañ",
- "confirmations.edit.message": "Kemmañ bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?",
"confirmations.follow_to_list.title": "Heuliañ an implijer·ez?",
"confirmations.logout.confirm": "Digevreañ",
"confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?",
"confirmations.mute.confirm": "Kuzhat",
"confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro",
- "confirmations.reply.confirm": "Respont",
- "confirmations.reply.message": "Respont bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?",
"confirmations.unfollow.confirm": "Diheuliañ",
"confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name} ?",
"content_warning.show_more": "Diskouez muioc'h",
@@ -374,12 +369,8 @@
"navigation_bar.automated_deletion": "Dilemel an embannadenn ent-emgefreek",
"navigation_bar.blocks": "Implijer·ezed·ien berzet",
"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.explore": "Furchal",
"navigation_bar.favourites": "Muiañ-karet",
"navigation_bar.filters": "Gerioù kuzhet",
"navigation_bar.follow_requests": "Pedadoù heuliañ",
@@ -390,12 +381,9 @@
"navigation_bar.logout": "Digennaskañ",
"navigation_bar.more": "Muioc'h",
"navigation_bar.mutes": "Implijer·ion·ezed kuzhet",
- "navigation_bar.personal": "Personel",
- "navigation_bar.pins": "Toudoù spilhennet",
"navigation_bar.preferences": "Gwellvezioù",
- "navigation_bar.public_timeline": "Red-amzer kevredet",
"navigation_bar.search": "Klask",
- "navigation_bar.security": "Diogelroez",
+ "navigation_bar.search_trends": "Klask / Diouzh ar c'hiz",
"not_signed_in_indicator.not_signed_in": "Ret eo deoc'h kevreañ evit tizhout an danvez-se.",
"notification.admin.report": "Disklêriet eo bet {target} gant {name}",
"notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index fba081e70db..53b432152bb 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Mostra la configuració",
"column_header.unpin": "Desfixa",
"column_search.cancel": "Cancel·la",
- "column_subheading.settings": "Configuració",
"community.column_settings.local_only": "Només local",
"community.column_settings.media_only": "Només contingut",
"community.column_settings.remote_only": "Només remot",
@@ -220,11 +219,11 @@
"confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
"confirmations.delete_list.title": "Eliminar la llista?",
+ "confirmations.discard_draft.confirm": "Descarta i continua",
+ "confirmations.discard_draft.edit.cancel": "Continua l'edició",
+ "confirmations.discard_draft.post.cancel": "Reprendre l'esborrany",
"confirmations.discard_edit_media.confirm": "Descarta",
"confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?",
- "confirmations.edit.confirm": "Edita",
- "confirmations.edit.message": "Editant ara sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
- "confirmations.edit.title": "Sobreescriure la publicació?",
"confirmations.follow_to_list.confirm": "Seguir i afegir a una llista",
"confirmations.follow_to_list.message": "Cal seguir {name} per a afegir-lo a una llista.",
"confirmations.follow_to_list.title": "Seguir l'usuari?",
@@ -242,9 +241,6 @@
"confirmations.remove_from_followers.confirm": "Elimina el seguidor",
"confirmations.remove_from_followers.message": "{name} deixarà de seguir-vos. Tirem endavant?",
"confirmations.remove_from_followers.title": "Eliminem el seguidor?",
- "confirmations.reply.confirm": "Respon",
- "confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
- "confirmations.reply.title": "Sobreescriure la publicació?",
"confirmations.unfollow.confirm": "Deixa de seguir",
"confirmations.unfollow.message": "Segur que vols deixar de seguir {name}?",
"confirmations.unfollow.title": "Deixar de seguir l'usuari?",
@@ -554,12 +550,8 @@
"navigation_bar.automated_deletion": "Esborrat automàtic de publicacions",
"navigation_bar.blocks": "Usuaris blocats",
"navigation_bar.bookmarks": "Marcadors",
- "navigation_bar.community_timeline": "Línia de temps local",
- "navigation_bar.compose": "Redacta un tut",
"navigation_bar.direct": "Mencions privades",
- "navigation_bar.discover": "Descobreix",
"navigation_bar.domain_blocks": "Dominis blocats",
- "navigation_bar.explore": "Explora",
"navigation_bar.favourites": "Favorits",
"navigation_bar.filters": "Paraules silenciades",
"navigation_bar.follow_requests": "Sol·licituds de seguiment",
@@ -572,13 +564,9 @@
"navigation_bar.more": "Més",
"navigation_bar.mutes": "Usuaris silenciats",
"navigation_bar.opened_in_classic_interface": "Els tuts, comptes i altres pàgines especifiques s'obren per defecte en la interfície web clàssica.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Tuts fixats",
"navigation_bar.preferences": "Preferències",
"navigation_bar.privacy_and_reach": "Privacitat i abast",
- "navigation_bar.public_timeline": "Línia de temps federada",
"navigation_bar.search": "Cerca",
- "navigation_bar.security": "Seguretat",
"navigation_panel.collapse_lists": "Tanca el menú",
"navigation_panel.expand_lists": "Expandeix el menú",
"not_signed_in_indicator.not_signed_in": "Cal que iniciïs la sessió per a accedir a aquest recurs.",
@@ -807,6 +795,7 @@
"report_notification.categories.violation": "Violació de norma",
"report_notification.categories.violation_sentence": "violació de normes",
"report_notification.open": "Obre l'informe",
+ "search.clear": "Esborra la cerca",
"search.no_recent_searches": "No hi ha cerques recents",
"search.placeholder": "Cerca",
"search.quick_action.account_search": "Perfils coincidint amb {x}",
diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json
index afc1633f2b5..7a7a1213d0c 100644
--- a/app/javascript/mastodon/locales/ckb.json
+++ b/app/javascript/mastodon/locales/ckb.json
@@ -121,7 +121,6 @@
"column_header.pin": "سنجاق",
"column_header.show_settings": "نیشاندانی رێکخستنەکان",
"column_header.unpin": "سنجاق نەکردن",
- "column_subheading.settings": "رێکخستنەکان",
"community.column_settings.local_only": "تەنها خۆماڵی",
"community.column_settings.media_only": "تەنها میدیا",
"community.column_settings.remote_only": "تەنها بۆ دوور",
@@ -156,15 +155,11 @@
"confirmations.delete_list.message": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی ئەم لیستە بسڕیتەوە?",
"confirmations.discard_edit_media.confirm": "ڕەتکردنەوە",
"confirmations.discard_edit_media.message": "گۆڕانکاریت لە وەسف یان پێشبینی میدیادا هەڵنەگیراوە، بەهەر حاڵ فڕێیان بدە؟",
- "confirmations.edit.confirm": "دەستکاری",
- "confirmations.edit.message": "دەستکاری کردنی ئێستا: دەبێتە هۆی نووسینەوەی ئەو پەیامەی، کە ئێستا داتدەڕشت. ئایا دڵنیای، کە دەتەوێت بەردەوام بیت؟",
"confirmations.logout.confirm": "چوونە دەرەوە",
"confirmations.logout.message": "ئایا دڵنیایت لەوەی دەتەوێت بچیتە دەرەوە?",
"confirmations.mute.confirm": "بێدەنگ",
"confirmations.redraft.confirm": "سڕینەوە & دووبارە ڕەشکردنەوە",
"confirmations.redraft.message": "دڵنیای دەتەوێت ئەم پۆستە بسڕیتەوە و دووبارە دایبڕێژیتەوە؟ فەڤۆریت و بووستەکان لەدەست دەچن، وەڵامەکانی پۆستە ئەسڵیەکەش هەتیو دەبن.",
- "confirmations.reply.confirm": "وەڵام",
- "confirmations.reply.message": "وەڵامدانەوە ئێستا ئەو نامەیە ی کە تۆ ئێستا دایڕشتووە، دەنووسێتەوە. ئایا دڵنیایت کە دەتەوێت بەردەوام بیت?",
"confirmations.unfollow.confirm": "بەدوادانەچو",
"confirmations.unfollow.message": "ئایا دڵنیایت لەوەی دەتەوێت پەیڕەوی {name}?",
"conversation.delete": "سڕینەوەی گفتوگۆ",
@@ -333,12 +328,8 @@
"navigation_bar.about": "دەربارە",
"navigation_bar.blocks": "بەکارهێنەرە بلۆککراوەکان",
"navigation_bar.bookmarks": "نیشانکراوەکان",
- "navigation_bar.community_timeline": "دەمنامەی ناوخۆیی",
- "navigation_bar.compose": "نووسینی توتی نوێ",
"navigation_bar.direct": "ئاماژەی تایبەت",
- "navigation_bar.discover": "دۆزینەوە",
"navigation_bar.domain_blocks": "دۆمەینە بلۆک کراوەکان",
- "navigation_bar.explore": "گەڕان",
"navigation_bar.filters": "وشە کپەکان",
"navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە",
"navigation_bar.followed_tags": "هاشتاگی بەدوادا هات",
@@ -346,12 +337,8 @@
"navigation_bar.lists": "لیستەکان",
"navigation_bar.logout": "دەرچوون",
"navigation_bar.mutes": "کپکردنی بەکارهێنەران",
- "navigation_bar.personal": "کەسی",
- "navigation_bar.pins": "توتی چەسپاو",
"navigation_bar.preferences": "پەسەندەکان",
- "navigation_bar.public_timeline": "نووسراوەکانی هەمووشوێنێک",
"navigation_bar.search": "گەڕان",
- "navigation_bar.security": "ئاسایش",
"not_signed_in_indicator.not_signed_in": "پێویستە بچیتە ژوورەوە بۆ دەستگەیشتن بەم سەرچاوەیە.",
"notification.admin.report": "{name} ڕاپۆرت کراوە {target}",
"notification.admin.sign_up": "{name} تۆمارکرا",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index 0e5ba3694e8..27620400e79 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -62,7 +62,6 @@
"column_header.pin": "Puntarulà",
"column_header.show_settings": "Mustrà i parametri",
"column_header.unpin": "Spuntarulà",
- "column_subheading.settings": "Parametri",
"community.column_settings.local_only": "Solu lucale",
"community.column_settings.media_only": "Solu media",
"community.column_settings.remote_only": "Solu distante",
@@ -88,8 +87,6 @@
"confirmations.logout.message": "Site sicuru·a che vulete scunnettà vi?",
"confirmations.mute.confirm": "Piattà",
"confirmations.redraft.confirm": "Sguassà è riscrive",
- "confirmations.reply.confirm": "Risponde",
- "confirmations.reply.message": "Risponde avà sguasserà u missaghju chì scrivite. Site sicuru·a chì vulete cuntinuà?",
"confirmations.unfollow.confirm": "Disabbunassi",
"confirmations.unfollow.message": "Site sicuru·a ch'ùn vulete più siguità @{name}?",
"conversation.delete": "Sguassà a cunversazione",
@@ -200,9 +197,6 @@
"load_pending": "{count, plural, one {# entrata nova} other {# entrate nove}}",
"navigation_bar.blocks": "Utilizatori bluccati",
"navigation_bar.bookmarks": "Segnalibri",
- "navigation_bar.community_timeline": "Linea pubblica lucale",
- "navigation_bar.compose": "Scrive un novu statutu",
- "navigation_bar.discover": "Scopre",
"navigation_bar.domain_blocks": "Duminii piattati",
"navigation_bar.filters": "Parolle silenzate",
"navigation_bar.follow_requests": "Dumande d'abbunamentu",
@@ -210,11 +204,7 @@
"navigation_bar.lists": "Liste",
"navigation_bar.logout": "Scunnettassi",
"navigation_bar.mutes": "Utilizatori piattati",
- "navigation_bar.personal": "Persunale",
- "navigation_bar.pins": "Statuti puntarulati",
"navigation_bar.preferences": "Preferenze",
- "navigation_bar.public_timeline": "Linea pubblica glubale",
- "navigation_bar.security": "Sicurità",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} v'hà seguitatu",
"notification.follow_request": "{name} vole abbunassi à u vostru contu",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 9c8461e2d06..f64a6196074 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Zobrazit nastavení",
"column_header.unpin": "Odepnout",
"column_search.cancel": "Zrušit",
- "column_subheading.settings": "Nastavení",
"community.column_settings.local_only": "Pouze místní",
"community.column_settings.media_only": "Pouze média",
"community.column_settings.remote_only": "Pouze vzdálené",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Smazat",
"confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?",
"confirmations.delete_list.title": "Smazat seznam?",
+ "confirmations.discard_draft.confirm": "Zahodit a pokračovat",
+ "confirmations.discard_draft.edit.cancel": "Pokračovat v úpravách",
+ "confirmations.discard_draft.edit.message": "Pokračování zruší všechny změny, které jste provedli v příspěvku, který právě upravujete.",
+ "confirmations.discard_draft.edit.title": "Zahodit změny ve vašem příspěvku?",
+ "confirmations.discard_draft.post.cancel": "Obnovit koncept",
+ "confirmations.discard_draft.post.message": "Pokračování zahodíte příspěvek, který právě tvoříte.",
+ "confirmations.discard_draft.post.title": "Zahodit váš koncept příspěvku?",
"confirmations.discard_edit_media.confirm": "Zahodit",
"confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?",
- "confirmations.edit.confirm": "Upravit",
- "confirmations.edit.message": "Editovat teď znamená přepsání zprávy, kterou právě tvoříte. Opravdu chcete pokračovat?",
- "confirmations.edit.title": "Přepsat příspěvek?",
"confirmations.follow_to_list.confirm": "Sledovat a přidat do seznamu",
"confirmations.follow_to_list.message": "Musíte {name} sledovat, abyste je přidali do seznamu.",
"confirmations.follow_to_list.title": "Sledovat uživatele?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Odstranit sledujícího",
"confirmations.remove_from_followers.message": "{name} vás přestane sledovat. Jste si jisti, že chcete pokračovat?",
"confirmations.remove_from_followers.title": "Odstranit sledujícího?",
- "confirmations.reply.confirm": "Odpovědět",
- "confirmations.reply.message": "Odpověď přepíše vaši rozepsanou zprávu. Opravdu chcete pokračovat?",
- "confirmations.reply.title": "Přepsat příspěvek?",
"confirmations.unfollow.confirm": "Přestat sledovat",
"confirmations.unfollow.message": "Opravdu chcete {name} přestat sledovat?",
"confirmations.unfollow.title": "Přestat sledovat uživatele?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Automatické mazání příspěvků",
"navigation_bar.blocks": "Blokovaní uživatelé",
"navigation_bar.bookmarks": "Záložky",
- "navigation_bar.community_timeline": "Místní časová osa",
- "navigation_bar.compose": "Vytvořit nový příspěvek",
"navigation_bar.direct": "Soukromé zmínky",
- "navigation_bar.discover": "Objevit",
"navigation_bar.domain_blocks": "Blokované domény",
- "navigation_bar.explore": "Prozkoumat",
"navigation_bar.favourites": "Oblíbené",
"navigation_bar.filters": "Skrytá slova",
"navigation_bar.follow_requests": "Žádosti o sledování",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "Sledovaní a sledující",
"navigation_bar.import_export": "Import a export",
"navigation_bar.lists": "Seznamy",
+ "navigation_bar.live_feed_local": "Živý kanál (místní)",
+ "navigation_bar.live_feed_public": "Živý kanál (veřejný)",
"navigation_bar.logout": "Odhlásit se",
"navigation_bar.moderation": "Moderace",
"navigation_bar.more": "Více",
"navigation_bar.mutes": "Skrytí uživatelé",
"navigation_bar.opened_in_classic_interface": "Příspěvky, účty a další specifické stránky jsou ve výchozím nastavení otevřeny v klasickém webovém rozhraní.",
- "navigation_bar.personal": "Osobní",
- "navigation_bar.pins": "Připnuté příspěvky",
"navigation_bar.preferences": "Předvolby",
"navigation_bar.privacy_and_reach": "Soukromí a dosah",
- "navigation_bar.public_timeline": "Federovaná časová osa",
"navigation_bar.search": "Hledat",
- "navigation_bar.security": "Zabezpečení",
+ "navigation_bar.search_trends": "Hledat / Populární",
+ "navigation_panel.collapse_followed_tags": "Sbalit menu sledovaných hashtagů",
"navigation_panel.collapse_lists": "Sbalit menu",
+ "navigation_panel.expand_followed_tags": "Rozbalit menu sledovaných hashtagů",
"navigation_panel.expand_lists": "Rozbalit menu",
"not_signed_in_indicator.not_signed_in": "Pro přístup k tomuto zdroji se musíte přihlásit.",
"notification.admin.report": "Uživatel {name} nahlásil {target}",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "Porušení pravidla",
"report_notification.categories.violation_sentence": "porušení pravidel",
"report_notification.open": "Otevřít hlášení",
+ "search.clear": "Vymazat hledání",
"search.no_recent_searches": "Žádná nedávná vyhledávání",
"search.placeholder": "Hledat",
"search.quick_action.account_search": "Profily odpovídající {x}",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index ef120ce77ed..da40f1e010b 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Dangos gosodiadau",
"column_header.unpin": "Dadbinio",
"column_search.cancel": "Diddymu",
- "column_subheading.settings": "Gosodiadau",
"community.column_settings.local_only": "Lleol yn unig",
"community.column_settings.media_only": "Cyfryngau yn unig",
"community.column_settings.remote_only": "Pell yn unig",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Dileu",
"confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu'r rhestr hwn am byth?",
"confirmations.delete_list.title": "Dileu rhestr?",
+ "confirmations.discard_draft.confirm": "Dileu a pharhau",
+ "confirmations.discard_draft.edit.cancel": "Ail-ddechrau golygu",
+ "confirmations.discard_draft.edit.message": "Bydd parhau yn dileu unrhyw newidiadau rydych chi wedi'u gwneud i'r postiad rydych chi'n ei olygu ar hyn o bryd.",
+ "confirmations.discard_draft.edit.title": "Dileu newidiadau i'ch postiad?",
+ "confirmations.discard_draft.post.cancel": "Ail-ddechrau'r drafft",
+ "confirmations.discard_draft.post.message": "Bydd parhau yn dileu'r postiad rydych chi'n ei ysgrifennu ar hyn o bryd.",
+ "confirmations.discard_draft.post.title": "Dileu drafft eich postiad?",
"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 dileu beth bynnag?",
- "confirmations.edit.confirm": "Golygu",
- "confirmations.edit.message": "Bydd golygu nawr yn trosysgrifennu'r neges rydych yn ei ysgrifennu ar hyn o bryd. Ydych chi'n siŵr eich bod eisiau gwneud hyn?",
- "confirmations.edit.title": "Trosysgrifo'r postiad?",
"confirmations.follow_to_list.confirm": "Dilyn ac ychwanegu at y rhestr",
"confirmations.follow_to_list.message": "Mae angen i chi fod yn dilyn {name} i'w ychwanegu at restr.",
"confirmations.follow_to_list.title": "Dilyn defnyddiwr?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Dileu dilynwr",
"confirmations.remove_from_followers.message": "Bydd {name} yn rhoi'r gorau i'ch dilyn. A ydych yn siŵr eich bod am fwrw ymlaen?",
"confirmations.remove_from_followers.title": "Tynnu dilynwr?",
- "confirmations.reply.confirm": "Ymateb",
- "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n siŵr eich bod am barhau?",
- "confirmations.reply.title": "Trosysgrifo'r postiad?",
"confirmations.unfollow.confirm": "Dad-ddilyn",
"confirmations.unfollow.message": "Ydych chi'n siŵr eich bod am ddad-ddilyn {name}?",
"confirmations.unfollow.title": "Dad-ddilyn defnyddiwr?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Dileu postiadau'n awtomatig",
"navigation_bar.blocks": "Defnyddwyr wedi'u rhwystro",
"navigation_bar.bookmarks": "Nodau Tudalen",
- "navigation_bar.community_timeline": "Ffrwd leol",
- "navigation_bar.compose": "Cyfansoddi post newydd",
"navigation_bar.direct": "Crybwylliadau preifat",
- "navigation_bar.discover": "Darganfod",
"navigation_bar.domain_blocks": "Parthau wedi'u rhwystro",
- "navigation_bar.explore": "Darganfod",
"navigation_bar.favourites": "Ffefrynnau",
"navigation_bar.filters": "Geiriau wedi'u tewi",
"navigation_bar.follow_requests": "Ceisiadau dilyn",
@@ -568,22 +564,20 @@
"navigation_bar.follows_and_followers": "Yn dilyn a dilynwyr",
"navigation_bar.import_export": "Mewnforio ac allforio",
"navigation_bar.lists": "Rhestrau",
+ "navigation_bar.live_feed_local": "Ffrwd fyw (lleol)",
+ "navigation_bar.live_feed_public": "Ffrwd fyw (cyhoeddus)",
"navigation_bar.logout": "Allgofnodi",
"navigation_bar.moderation": "Cymedroil",
"navigation_bar.more": "Rhagor",
"navigation_bar.mutes": "Defnyddwyr wedi'u tewi",
"navigation_bar.opened_in_classic_interface": "Mae postiadau, cyfrifon a thudalennau penodol eraill yn cael eu hagor fel rhagosodiad yn y rhyngwyneb gwe clasurol.",
- "navigation_bar.personal": "Personol",
- "navigation_bar.pins": "Postiadau wedi eu pinio",
"navigation_bar.preferences": "Dewisiadau",
"navigation_bar.privacy_and_reach": "Preifatrwydd a chyrhaeddiad",
- "navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
"navigation_bar.search": "Chwilio",
"navigation_bar.search_trends": "Chwilio / Trendio",
- "navigation_bar.security": "Diogelwch",
"navigation_panel.collapse_followed_tags": "Cau dewislen hashnodau dilyn",
"navigation_panel.collapse_lists": "Cau dewislen y rhestr",
- "navigation_panel.expand_followed_tags": "Cau dewislen hashnodau dilyn",
+ "navigation_panel.expand_followed_tags": "Agor dewislen hashnodau dilyn",
"navigation_panel.expand_lists": "Ehangu dewislen y rhestr",
"not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
"notification.admin.report": "Adroddodd {name} {target}",
@@ -720,7 +714,7 @@
"onboarding.profile.upload_header": "Llwytho pennyn proffil",
"password_confirmation.exceeds_maxlength": "Mae'r cadarnhad cyfrinair yn fwy nag uchafswm hyd y cyfrinair",
"password_confirmation.mismatching": "Nid yw'r cadarnhad cyfrinair yn cyfateb",
- "picture_in_picture.restore": "Rhowch e nôl",
+ "picture_in_picture.restore": "Rhowch ef yn ôl",
"poll.closed": "Ar gau",
"poll.refresh": "Adnewyddu",
"poll.reveal": "Gweld y canlyniadau",
@@ -811,7 +805,8 @@
"report_notification.categories.violation": "Torri rheol",
"report_notification.categories.violation_sentence": "torri rheolau",
"report_notification.open": "Agor adroddiad",
- "search.no_recent_searches": "Does dim chwilio diweddar",
+ "search.clear": "Clirio'r chwilio",
+ "search.no_recent_searches": "Does dim chwiliadau diweddar",
"search.placeholder": "Chwilio",
"search.quick_action.account_search": "Proffiliau sy'n cyfateb i {x}",
"search.quick_action.go_to_account": "Mynd i broffil {x}",
@@ -937,7 +932,7 @@
"upload_error.poll": "Does dim modd llwytho ffeiliau â phleidleisiau.",
"upload_form.drag_and_drop.instructions": "I godi atodiad cyfryngau, pwyswch y space neu enter. Wrth lusgo, defnyddiwch y bysellau saeth i symud yr atodiad cyfryngau i unrhyw gyfeiriad penodol. Pwyswch space neu enter eto i ollwng yr atodiad cyfryngau yn ei safle newydd, neu pwyswch escape i ddiddymu.",
"upload_form.drag_and_drop.on_drag_cancel": "Cafodd llusgo ei ddiddymu. Cafodd atodi cyfryngau {item} ei ollwng.",
- "upload_form.drag_and_drop.on_drag_end": "Cafodd atodi cyfryngau {item} ei ollwng.",
+ "upload_form.drag_and_drop.on_drag_end": "Cafodd atodiad cyfryngau {item} ei ollwng.",
"upload_form.drag_and_drop.on_drag_over": "Symudwyd atodiad cyfryngau {item}.",
"upload_form.drag_and_drop.on_drag_start": "Wedi codi atodiad cyfryngau {item}.",
"upload_form.edit": "Golygu",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index ed8e1e41c41..27bbf5131d8 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -4,11 +4,11 @@
"about.default_locale": "Standard",
"about.disclaimer": "Mastodon er gratis, open-source software og et varemærke tilhørende Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Begrundelse ikke tilgængelig",
- "about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.",
+ "about.domain_blocks.preamble": "Mastodon tillader generelt, at du ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.",
"about.domain_blocks.silenced.explanation": "Du vil generelt ikke se profiler og indhold fra denne server, medmindre du udtrykkeligt slår den op eller vælger den ved at følge.",
"about.domain_blocks.silenced.title": "Begrænset",
"about.domain_blocks.suspended.explanation": "Data fra denne server hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra denne server.",
- "about.domain_blocks.suspended.title": "Udelukket",
+ "about.domain_blocks.suspended.title": "Suspenderet",
"about.language_label": "Sprog",
"about.not_available": "Denne information er ikke blevet gjort tilgængelig på denne server.",
"about.powered_by": "Decentraliserede sociale medier drevet af {mastodon}",
@@ -24,13 +24,13 @@
"account.blocking": "Blokering",
"account.cancel_follow_request": "Annullér anmodning om at følge",
"account.copy": "Kopiér link til profil",
- "account.direct": "Privat omtale @{name}",
- "account.disable_notifications": "Advisér mig ikke længere, når @{name} poster",
+ "account.direct": "Nævn @{name} privat",
+ "account.disable_notifications": "Giv mig ikke længere en notifikation, når @{name} laver indlæg",
"account.domain_blocking": "Blokerer domæne",
"account.edit_profile": "Redigér profil",
- "account.enable_notifications": "Advisér mig, når @{name} poster",
+ "account.enable_notifications": "Giv mig besked, når @{name} laver indlæg",
"account.endorse": "Fremhæv på profil",
- "account.familiar_followers_many": "Følges af {name1}, {name2} og {othersCount, plural, one {# mere, man kender} other {# mere, man kender}}",
+ "account.familiar_followers_many": "Følges af {name1}, {name2} og {othersCount, plural, one {# mere, man kender} other {# mere, du kender}}",
"account.familiar_followers_one": "Følges af {name1}",
"account.familiar_followers_two": "Følges af {name1} og {name2}",
"account.featured": "Fremhævet",
@@ -43,7 +43,7 @@
"account.followers": "Følgere",
"account.followers.empty": "Ingen følger denne bruger endnu.",
"account.followers_counter": "{count, plural, one {{counter} følger} other {{counter} følgere}}",
- "account.followers_you_know_counter": "{counter} man kender",
+ "account.followers_you_know_counter": "{counter} du kender",
"account.following": "Følger",
"account.following_counter": "{count, plural, one {{counter} følger} other {{counter} følger}}",
"account.follows.empty": "Denne bruger følger ikke nogen endnu.",
@@ -80,29 +80,29 @@
"account.unblock_domain": "Fjern blokering af domænet {domain}",
"account.unblock_domain_short": "Afblokér",
"account.unblock_short": "Fjern blokering",
- "account.unendorse": "Fjern visning på din profil",
+ "account.unendorse": "Vis ikke på profil",
"account.unfollow": "Følg ikke længere",
"account.unmute": "Vis @{name} igen",
- "account.unmute_notifications_short": "Tænd for notifikationer",
+ "account.unmute_notifications_short": "Vis notifikationer igen",
"account.unmute_short": "Vis igen",
"account_note.placeholder": "Klik for at tilføje notat",
- "admin.dashboard.daily_retention": "Brugerfastholdelsesrate per dag efter tilmelding",
- "admin.dashboard.monthly_retention": "Brugerfastholdelsesrate per måned efter tilmelding",
- "admin.dashboard.retention.average": "Gennemsnitlig",
+ "admin.dashboard.daily_retention": "Brugerfastholdelsesrate pr. dag efter tilmelding",
+ "admin.dashboard.monthly_retention": "Brugerfastholdelsesrate pr. måned efter tilmelding",
+ "admin.dashboard.retention.average": "Gennemsnit",
"admin.dashboard.retention.cohort": "Tilmeldingsmåned",
"admin.dashboard.retention.cohort_size": "Nye brugere",
"admin.impact_report.instance_accounts": "Konti profiler, som dette ville slette",
- "admin.impact_report.instance_followers": "Følgere vores brugere ville miste",
- "admin.impact_report.instance_follows": "Følgere deres brugere ville miste",
- "admin.impact_report.title": "Resumé af virkninger",
+ "admin.impact_report.instance_followers": "Følgere, vores brugere ville miste",
+ "admin.impact_report.instance_follows": "Følgere, deres brugere ville miste",
+ "admin.impact_report.title": "Resumé af effekt",
"alert.rate_limited.message": "Forsøg igen efter {retry_time, time, medium}.",
"alert.rate_limited.title": "Hastighedsbegrænset",
"alert.unexpected.message": "En uventet fejl opstod.",
"alert.unexpected.title": "Ups!",
- "alt_text_badge.title": "Alt text",
+ "alt_text_badge.title": "Alt-text",
"alt_text_modal.add_alt_text": "Tilføj alternativ tekst",
"alt_text_modal.add_text_from_image": "Tilføj tekst fra billede",
- "alt_text_modal.cancel": "Afbryd",
+ "alt_text_modal.cancel": "Annullér",
"alt_text_modal.change_thumbnail": "Skift miniature",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Beskriv dette for personer med nedsat hørelse…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Beskriv dette for personer med nedsat syn…",
@@ -121,16 +121,16 @@
"annual_report.summary.highlighted_post.by_replies": "mest besvarede indlæg",
"annual_report.summary.highlighted_post.possessive": "{name}s",
"annual_report.summary.most_used_app.most_used_app": "mest benyttede app",
- "annual_report.summary.most_used_hashtag.most_used_hashtag": "mest benyttede etiket",
+ "annual_report.summary.most_used_hashtag.most_used_hashtag": "mest benyttede hashtag",
"annual_report.summary.most_used_hashtag.none": "Intet",
"annual_report.summary.new_posts.new_posts": "nye indlæg",
- "annual_report.summary.percentile.text": "
Det betyder, at man er i top af {domain}-brugere. ",
+ "annual_report.summary.percentile.text": "
Dermed er du i top af {domain}-brugere. ",
"annual_report.summary.percentile.we_wont_tell_bernie": "Vi fortæller det ikke til Pernille Skipper.",
"annual_report.summary.thanks": "Tak for at være en del af Mastodon!",
"attachments_list.unprocessed": "(ubehandlet)",
"audio.hide": "Skjul lyd",
"block_modal.remote_users_caveat": "Serveren {domain} vil blive bedt om at respektere din beslutning. Overholdelse er dog ikke garanteret, da nogle servere kan håndtere blokke forskelligt. Offentlige indlæg kan stadig være synlige for ikke-indloggede brugere.",
- "block_modal.show_less": "Vis færre",
+ "block_modal.show_less": "Vis mindre",
"block_modal.show_more": "Vis flere",
"block_modal.they_cant_mention": "Vedkommende kan ikke omtale eller følge dig.",
"block_modal.they_cant_see_posts": "Vedkommende kan ikke se dine indlæg, og du vil ikke se vedkommendes.",
@@ -146,7 +146,7 @@
"bundle_column_error.network.body": "En fejl opstod under forsøget på at indlæse denne side. Dette kan skyldes flere typer af fejl.",
"bundle_column_error.network.title": "Netværksfejl",
"bundle_column_error.retry": "Forsøg igen",
- "bundle_column_error.return": "Retur til hjem",
+ "bundle_column_error.return": "Tilbage til hjem",
"bundle_column_error.routing.body": "Den anmodede side kunne ikke findes. Er du sikker på, at URL'en er korrekt?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Luk",
@@ -167,7 +167,7 @@
"column.domain_blocks": "Blokerede domæner",
"column.edit_list": "Redigér liste",
"column.favourites": "Favoritter",
- "column.firehose": "Aktuelt",
+ "column.firehose": "Live feeds",
"column.follow_requests": "Følgeanmodninger",
"column.home": "Hjem",
"column.list_members": "Håndtér listemedlemmer",
@@ -183,8 +183,7 @@
"column_header.pin": "Fastgør",
"column_header.show_settings": "Vis indstillinger",
"column_header.unpin": "Frigør",
- "column_search.cancel": "Afbryd",
- "column_subheading.settings": "Indstillinger",
+ "column_search.cancel": "Annullér",
"community.column_settings.local_only": "Kun lokalt",
"community.column_settings.media_only": "Kun medier",
"community.column_settings.remote_only": "Kun udefra",
@@ -195,10 +194,10 @@
"compose.saved.body": "Indlæg gemt.",
"compose_form.direct_message_warning_learn_more": "Få mere at vide",
"compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende-krypteret. Del derfor ikke sensitiv information via Mastodon.",
- "compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under nogen etiket, da kun offentlige indlæg er søgbare via etiketter.",
+ "compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under noget hashtag, da kun offentlige indlæg er søgbare via hashtags.",
"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.placeholder": "Hvad har du på hjertet?",
"compose_form.poll.duration": "Afstemningens varighed",
"compose_form.poll.multiple": "Multivalg",
"compose_form.poll.option_placeholder": "Valgmulighed {number}",
@@ -206,12 +205,12 @@
"compose_form.poll.switch_to_multiple": "Ændr afstemning til flervalgstype",
"compose_form.poll.switch_to_single": "Ændr afstemning til enkeltvalgstype",
"compose_form.poll.type": "Stil",
- "compose_form.publish": "Indsend",
+ "compose_form.publish": "Publicér",
"compose_form.reply": "Svar",
"compose_form.save_changes": "Opdatér",
- "compose_form.spoiler.marked": "Fjern emnefelt",
- "compose_form.spoiler.unmarked": "Tilføj emnefelt",
- "compose_form.spoiler_placeholder": "Emnefelt (valgfrit)",
+ "compose_form.spoiler.marked": "Fjern indholdsadvarsel",
+ "compose_form.spoiler.unmarked": "Tilføj indholdsadvarsel",
+ "compose_form.spoiler_placeholder": "Indholdsadvarsel (valgfri)",
"confirmation_modal.cancel": "Afbryd",
"confirmations.block.confirm": "Blokér",
"confirmations.delete.confirm": "Slet",
@@ -220,13 +219,17 @@
"confirmations.delete_list.confirm": "Slet",
"confirmations.delete_list.message": "Er du sikker på, at du vil slette denne liste permanent?",
"confirmations.delete_list.title": "Slet liste?",
+ "confirmations.discard_draft.confirm": "Kassér og fortsæt",
+ "confirmations.discard_draft.edit.cancel": "Fortsæt redigering",
+ "confirmations.discard_draft.edit.message": "Hvis du fortsætter, kasseres alle ændringer, du har foretaget i det indlæg, du er i gang med at redigere.",
+ "confirmations.discard_draft.edit.title": "Kassér ændringer til dit indlæg?",
+ "confirmations.discard_draft.post.cancel": "Genoptag udkast",
+ "confirmations.discard_draft.post.message": "Hvis du fortsætter, kasseres det indlæg, du er i gang med at udforme.",
+ "confirmations.discard_draft.post.title": "Kassér dit indlægsudkast?",
"confirmations.discard_edit_media.confirm": "Kassér",
"confirmations.discard_edit_media.message": "Der er ugemte ændringer i mediebeskrivelsen eller forhåndsvisningen, kassér dem alligevel?",
- "confirmations.edit.confirm": "Redigér",
- "confirmations.edit.message": "Redigeres nu, overskrive den besked, der forfattes pt. Fortsæt alligevel?",
- "confirmations.edit.title": "Overskriv indlæg?",
"confirmations.follow_to_list.confirm": "Følg og føj til liste",
- "confirmations.follow_to_list.message": "Man skal følge {name} for at føje vedkommende til en liste.",
+ "confirmations.follow_to_list.message": "Du skal følge {name} for at føje vedkommende til en liste.",
"confirmations.follow_to_list.title": "Følg bruger?",
"confirmations.logout.confirm": "Log ud",
"confirmations.logout.message": "Er du sikker på, at du vil logge ud?",
@@ -236,15 +239,12 @@
"confirmations.missing_alt_text.secondary": "Læg op alligevel",
"confirmations.missing_alt_text.title": "Tilføj alt-tekst?",
"confirmations.mute.confirm": "Skjul",
- "confirmations.redraft.confirm": "Slet og omformulér",
+ "confirmations.redraft.confirm": "Slet og omskriv",
"confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og fremhævelser går tabt, og svar til det oprindelige indlæg mister tilknytningen.",
- "confirmations.redraft.title": "Slet og omformulér indlæg?",
+ "confirmations.redraft.title": "Slet og omskriv indlæg?",
"confirmations.remove_from_followers.confirm": "Fjern følger",
- "confirmations.remove_from_followers.message": "{name} vil ophøre med at være en følger. Sikker på, at man vil fortsætte?",
+ "confirmations.remove_from_followers.message": "{name} vil ikke længere følge dig. Er du sikker på, at du vil fortsætte?",
"confirmations.remove_from_followers.title": "Fjern følger?",
- "confirmations.reply.confirm": "Svar",
- "confirmations.reply.message": "Hvis du svarer nu, vil det overskrive den besked, du er ved at skrive. Fortsæt alligevel?",
- "confirmations.reply.title": "Overskriv indlæg?",
"confirmations.unfollow.confirm": "Følg ikke længere",
"confirmations.unfollow.message": "Er du sikker på, at du ikke længere vil følge {name}?",
"confirmations.unfollow.title": "Følg ikke længere bruger?",
@@ -258,35 +258,35 @@
"copy_icon_button.copied": "Kopieret til udklipsholderen",
"copypaste.copied": "Kopieret",
"copypaste.copy_to_clipboard": "Kopiér til udklipsholder",
- "directory.federated": "Fra kendt fødivers",
+ "directory.federated": "Fra kendt fediverse",
"directory.local": "Kun fra {domain}",
- "directory.new_arrivals": "Nye ankomster",
+ "directory.new_arrivals": "Nyankomne",
"directory.recently_active": "Aktive for nyligt",
"disabled_account_banner.account_settings": "Kontoindstillinger",
"disabled_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret.",
"dismissable_banner.community_timeline": "Disse er de seneste offentlige indlæg fra personer med konti hostet af {domain}.",
"dismissable_banner.dismiss": "Afvis",
- "dismissable_banner.public_timeline": "Dette er de seneste offentlige indlæg fra personer på fødiverset, som folk på {domain} følger.",
+ "dismissable_banner.public_timeline": "Dette er de seneste offentlige indlæg fra personer på fediverset, som folk på {domain} følger.",
"domain_block_modal.block": "Blokér server",
"domain_block_modal.block_account_instead": "Blokér i stedet @{name}",
"domain_block_modal.they_can_interact_with_old_posts": "Folk fra denne server kan interagere med de gamle indlæg.",
"domain_block_modal.they_cant_follow": "Ingen fra denne server kan følge dig.",
"domain_block_modal.they_wont_know": "De ser ikke den aktive blokering.",
"domain_block_modal.title": "Blokér domæne?",
- "domain_block_modal.you_will_lose_num_followers": "Man vil miste {followersCount, plural, one {{followersCountDisplay} følger} other {{followersCountDisplay} følgere}} og {followingCount, plural, one {{followingCountDisplay} person, man følger} other {{followingCountDisplay} personer, man følger}}.",
+ "domain_block_modal.you_will_lose_num_followers": "Du vil miste {followersCount, plural, one {{followersCountDisplay} følger} other {{followersCountDisplay} følgere}} og {followingCount, plural, one {{followingCountDisplay} person, du følger} other {{followingCountDisplay} personer, du følger}}.",
"domain_block_modal.you_will_lose_relationships": "Alle følgere og personer som følges på denne server mistes.",
"domain_block_modal.you_wont_see_posts": "Indlæg eller notifikationer fra brugere på denne server vises ikke.",
"domain_pill.activitypub_lets_connect": "Det muliggører at forbinde og interagere med folk, ikke kun på Mastodon, men også på tværs af forskellige sociale apps.",
"domain_pill.activitypub_like_language": "ActivityPub er \"sproget\", som Mastodon taler med andre sociale netværk.",
"domain_pill.server": "Server",
- "domain_pill.their_handle": "Deres greb:",
+ "domain_pill.their_handle": "Deres handle:",
"domain_pill.their_server": "Det digitale hjem, hvor alle indlæggene findes.",
"domain_pill.their_username": "Entydig identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.",
"domain_pill.username": "Brugernavn",
- "domain_pill.whats_in_a_handle": "Hvad er der i et greb?",
- "domain_pill.who_they_are": "Da et greb fortæller, hvem nogen er, og hvor de er, kan man interagere med folk på tværs af det sociale net af
ActivityPub-drevne platforme .",
- "domain_pill.who_you_are": "Da et greb fortæller, hvem man er, og hvor man er, kan man interagere med folk på tværs af det sociale net af
ActivityPub-drevne platforme .",
- "domain_pill.your_handle": "Dit greb:",
+ "domain_pill.whats_in_a_handle": "Hvad indeholder et handle?",
+ "domain_pill.who_they_are": "Da et handle fortæller, hvem nogen er, og hvor de er, kan du interagere med folk på tværs af det sociale net af
ActivityPub-drevne platforme .",
+ "domain_pill.who_you_are": "Fordi dit handle fortæller, hvem du er, og hvor du er, kan du interagere med folk på tværs af det sociale net af
ActivityPub-drevne platforme .",
+ "domain_pill.your_handle": "Dit handle:",
"domain_pill.your_server": "Dit digitale hjem, hvor alle dine indlæg lever. Synes ikke om den her server? Du kan til enhver tid rykke over på en anden server og beholde dine følgere.",
"domain_pill.your_username": "Din entydige identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.",
"embed.instructions": "Indlejr dette indlæg på din hjemmeside ved at kopiere nedenstående kode.",
@@ -306,8 +306,8 @@
"emoji_button.search_results": "Søgeresultater",
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Rejser og steder",
- "empty_column.account_featured.me": "Intet fremhævet endnu. Vidste du, at man kan fremhæve sine mest brugte hashtags og endda en vens konti på sin profil?",
- "empty_column.account_featured.other": "{acct} har ikke fremhævet noget endnu. Vidste du, at man kan fremhæve sine mest brugte hashtags og endda en vens konti på sin profil?",
+ "empty_column.account_featured.me": "Intet fremhævet endnu. Vidste du, at du kan fremhæve dine mest brugte hashtags og endda din vens konti på din profil?",
+ "empty_column.account_featured.other": "{acct} har ikke fremhævet noget endnu. Vidste du, at du kan fremhæve dine mest brugte hashtags og endda din vens konti på din profil?",
"empty_column.account_featured_other.unknown": "Denne konto har ikke fremhævet noget endnu.",
"empty_column.account_hides_collections": "Brugeren har valgt ikke at gøre denne information tilgængelig",
"empty_column.account_suspended": "Konto suspenderet",
@@ -316,20 +316,20 @@
"empty_column.blocks": "Ingen brugere blokeret endnu.",
"empty_column.bookmarked_statuses": "Du har ingen bogmærkede indlæg endnu. Når du bogmærker ét, vil det dukke op hér.",
"empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!",
- "empty_column.direct": "Der er endnu ingen private omtaler. Når en sendes eller modtages, dukker den op her.",
+ "empty_column.direct": "Du har ikke nogen private omtaler endnu. Når du sender eller modtager en, vil den blive vist her.",
"empty_column.domain_blocks": "Ingen blokerede domæner endnu.",
- "empty_column.explore_statuses": "Ingen nye tendenser lige nu. Tjek igen senere!",
+ "empty_column.explore_statuses": "Ingen nye trends lige nu. Tjek igen senere!",
"empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du føjer et opslag til favoritter, vil det dukke op her.",
"empty_column.favourites": "Ingen har endnu føjet dette indlæg til favoritter. Når nogen gør det, vil det dukke op her.",
"empty_column.follow_requests": "Du har endnu ingen følgeanmodninger. Når du modtager én, vil den dukke op her.",
- "empty_column.followed_tags": "Ingen etiketter følges endnu. Når det sker, vil de fremgå her.",
- "empty_column.hashtag": "Der er intet med denne etiket endnu.",
+ "empty_column.followed_tags": "Ingen hashtags følges endnu. Når det sker, vil de fremgå her.",
+ "empty_column.hashtag": "Der er intet med dette hashtag endnu.",
"empty_column.home": "Din hjemmetidslinje er tom! Følg nogle personer, for at fylde den op.",
- "empty_column.list": "Der er ikke noget på denne liste endnu. Når medlemmer af listen udgiver nye indlæg vil de fremgå her.",
+ "empty_column.list": "Der er ikke noget på denne liste endnu. Når medlemmer af denne liste udgiver nye indlæg, vil de blive vist her.",
"empty_column.mutes": "Du har endnu ikke skjult nogle brugere.",
"empty_column.notification_requests": "Alt er klar! Der er intet her. Når der modtages nye notifikationer, fremgår de her jævnfør dine indstillinger.",
"empty_column.notifications": "Du har endnu ingen notifikationer. Når andre interagerer med dig, vil det fremgå her.",
- "empty_column.public": "Der er intet her! Skriv noget offentligt eller følg manuelt brugere fra andre servere for at se indhold",
+ "empty_column.public": "Der er ikke noget her! Skriv noget offentligt, eller følg manuelt brugere fra andre servere for at se indhold",
"error.unexpected_crash.explanation": "Grundet en fejl i vores kode, eller en netlæser-kompatibilitetsfejl, kunne siden ikke vises korrekt.",
"error.unexpected_crash.explanation_addons": "Denne side kunne ikke vises korrekt. Fejlen skyldes sandsynligvis en browsertilføjelse eller automatiske oversættelsesværktøjer.",
"error.unexpected_crash.next_steps": "Prøv at opfriske siden. Hjælper dette ikke, kan Mastodon muligvis stadig bruges via en anden netlæser eller app.",
@@ -337,9 +337,10 @@
"errors.unexpected_crash.copy_stacktrace": "Kopiér stacktrace til udklipsholderen",
"errors.unexpected_crash.report_issue": "Anmeld problem",
"explore.suggested_follows": "Personer",
+ "explore.title": "Trender",
"explore.trending_links": "Nyheder",
"explore.trending_statuses": "Indlæg",
- "explore.trending_tags": "Etiketter",
+ "explore.trending_tags": "Hashtags",
"featured_carousel.header": "{count, plural, one {Fastgjort indlæg} other {Fastgjorte indlæg}}",
"featured_carousel.next": "Næste",
"featured_carousel.post": "Indlæg",
@@ -362,7 +363,7 @@
"filter_modal.select_filter.title": "Filtrér dette indlæg",
"filter_modal.title.status": "Filtrér et indlæg",
"filter_warning.matches_filter": "Matcher filteret “
{title} ”",
- "filtered_notifications_banner.pending_requests": "Fra {count, plural, =0 {ingen} one {én person} other {# personer}}, man måske kender",
+ "filtered_notifications_banner.pending_requests": "Fra {count, plural, =0 {ingen} one {én person} other {# personer}}, du måske kender",
"filtered_notifications_banner.title": "Filtrerede notifikationer",
"firehose.all": "Alle",
"firehose.local": "Denne server",
@@ -373,7 +374,7 @@
"follow_suggestions.curated_suggestion": "Personaleudvalgt",
"follow_suggestions.dismiss": "Vis ikke igen",
"follow_suggestions.featured_longer": "Håndplukket af {domain}-teamet",
- "follow_suggestions.friends_of_friends_longer": "Populært blandt personer, som følges",
+ "follow_suggestions.friends_of_friends_longer": "Populær blandt personer, du følger",
"follow_suggestions.hints.featured": "Denne profil er håndplukket af {domain}-teamet.",
"follow_suggestions.hints.friends_of_friends": "Denne profil er populær blandt de personer, som følges.",
"follow_suggestions.hints.most_followed": "Denne profil er en af de mest fulgte på {domain}.",
@@ -382,10 +383,10 @@
"follow_suggestions.personalized_suggestion": "Personligt forslag",
"follow_suggestions.popular_suggestion": "Populært forslag",
"follow_suggestions.popular_suggestion_longer": "Populært på {domain}",
- "follow_suggestions.similar_to_recently_followed_longer": "Svarende til profiler, som for nylig er fulgt",
+ "follow_suggestions.similar_to_recently_followed_longer": "Minder om profiler, du har fulgt for nylig",
"follow_suggestions.view_all": "Vis alle",
"follow_suggestions.who_to_follow": "Hvem, som skal følges",
- "followed_tags": "Etiketter, som følges",
+ "followed_tags": "Hashtags, som følges",
"footer.about": "Om",
"footer.directory": "Profiloversigt",
"footer.get_app": "Hent appen",
@@ -403,7 +404,7 @@
"hashtag.column_header.tag_mode.any": "eller {additional}",
"hashtag.column_header.tag_mode.none": "uden {additional}",
"hashtag.column_settings.select.no_options_message": "Ingen forslag fundet",
- "hashtag.column_settings.select.placeholder": "Angiv etiketter…",
+ "hashtag.column_settings.select.placeholder": "Angiv hashtags…",
"hashtag.column_settings.tag_mode.all": "Alle disse",
"hashtag.column_settings.tag_mode.any": "Nogle af disse",
"hashtag.column_settings.tag_mode.none": "Ingen af disse",
@@ -412,10 +413,10 @@
"hashtag.counter_by_uses": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag",
"hashtag.feature": "Fremhæv på profil",
- "hashtag.follow": "Følg etiket",
- "hashtag.mute": "Tavsgør #{hashtag}",
+ "hashtag.follow": "Følg hashtag",
+ "hashtag.mute": "Skjul #{hashtag}",
"hashtag.unfeature": "Fremhæv ikke på profil",
- "hashtag.unfollow": "Stop med at følge etiket",
+ "hashtag.unfollow": "Følg ikke længere hashtag",
"hashtags.and_other": "…og {count, plural, one {}other {# flere}}",
"hints.profiles.followers_may_be_missing": "Der kan mangle følgere for denne profil.",
"hints.profiles.follows_may_be_missing": "Fulgte kan mangle for denne profil.",
@@ -433,24 +434,24 @@
"home.pending_critical_update.link": "Se opdateringer",
"home.pending_critical_update.title": "Kritisk sikkerhedsopdatering tilgængelig!",
"home.show_announcements": "Vis bekendtgørelser",
- "ignore_notifications_modal.disclaimer": "Mastodon kan ikke informere brugere om, at man har ignoreret deres notifikationer. Ignorerer man notifikationer, forhindrer det ikke selve beskedafsendelsen.",
+ "ignore_notifications_modal.disclaimer": "Mastodon kan ikke informere brugere om, at du har ignoreret deres notifikationer. At ignorere notifikationer forhindrer ikke selve beskederne i at blive sendt.",
"ignore_notifications_modal.filter_instead": "Filtrér i stedet",
- "ignore_notifications_modal.filter_to_act_users": "Man vil stadig kunne acceptere, afvise eller anmelde brugere",
+ "ignore_notifications_modal.filter_to_act_users": "Du vil stadig kunne acceptere, afvise eller anmelde brugere",
"ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering medvirker til at undgå potentiel forvirring",
- "ignore_notifications_modal.filter_to_review_separately": "Man kan gennemgå filtrerede notifikationer separat",
+ "ignore_notifications_modal.filter_to_review_separately": "Du kan gennemgå filtrerede notifikationer separat",
"ignore_notifications_modal.ignore": "Ignorér notifikationer",
"ignore_notifications_modal.limited_accounts_title": "Ignorér notifikationer fra modererede konti?",
"ignore_notifications_modal.new_accounts_title": "Ignorér notifikationer fra nye konti?",
"ignore_notifications_modal.not_followers_title": "Ignorér notifikationer fra folk, som ikke er følgere?",
- "ignore_notifications_modal.not_following_title": "Ignorér notifikationer fra folk, man ikke følger?",
- "ignore_notifications_modal.private_mentions_title": "Ignorér notifikationer fra uopfordrede Private omtaler?",
+ "ignore_notifications_modal.not_following_title": "Ignorér notifikationer fra folk, du ikke følger?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorér notifikationer fra uopfordrede private omtaler?",
"info_button.label": "Hjælp",
"info_button.what_is_alt_text": "
Hvad er alt-tekst? Alt-tekst leverer billedbeskrivelser til folk med synsnedsættelser, lav båndbredde-forbindelser eller med ønske om ekstra kontekst.
Tilgængelighed og forståelse kan forbedres for alle ved at skrive klar, kortfattet og objektiv alt-tekst.
Fang vigtige elementer Opsummér tekst i billeder Brug almindelig sætningsstruktur Undgå overflødig information Fokusér på tendenser og centrale resultater i kompleks grafik (såsom diagrammer eller kort) ",
"interaction_modal.action.favourite": "For at fortsætte, skal du føje til favoritter fra din konto.",
- "interaction_modal.action.follow": "For at fortsætte, skal man vælge Følg fra sin konto.",
- "interaction_modal.action.reblog": "For at fortsætte, skal man vælge Fremhæv fra sin konto.",
- "interaction_modal.action.reply": "For at fortsætte, skal man besvar fra sin konto.",
- "interaction_modal.action.vote": "For at fortsætte, skal man stemme fra sin konto.",
+ "interaction_modal.action.follow": "For at fortsætte skal du følge fra din konto.",
+ "interaction_modal.action.reblog": "For at fortsætte, skal du vælge fremhæv fra din konto.",
+ "interaction_modal.action.reply": "For at fortsætte, skal du besvare fra din konto.",
+ "interaction_modal.action.vote": "For at fortsætte, skal du stemme fra din konto.",
"interaction_modal.go": "Gå",
"interaction_modal.no_account_yet": "Har endnu ingen konto?",
"interaction_modal.on_another_server": "På en anden server",
@@ -491,9 +492,9 @@
"keyboard_shortcuts.reply": "Besvar indlægget",
"keyboard_shortcuts.requests": "Åbn liste over følgeanmodninger",
"keyboard_shortcuts.search": "Fokusér søgebjælke",
- "keyboard_shortcuts.spoilers": "Vis/skjul emnefelt",
+ "keyboard_shortcuts.spoilers": "Vis/skjul indholdsadvarsel-felt",
"keyboard_shortcuts.start": "Åbn \"komme i gang\"-kolonne",
- "keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag emnefelt",
+ "keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag indholdsadvarsel",
"keyboard_shortcuts.toggle_sensitivity": "Vis/skjul medier",
"keyboard_shortcuts.toot": "Påbegynd nyt indlæg",
"keyboard_shortcuts.translate": "for at oversætte et indlæg",
@@ -542,10 +543,10 @@
"mute_modal.hide_options": "Skjul valgmuligheder",
"mute_modal.indefinite": "Indtil jeg vælger at se dem igen",
"mute_modal.show_options": "Vis valgmuligheder",
- "mute_modal.they_can_mention_and_follow": "De kan omtale og følge dig, men du vil ikke se dem.",
+ "mute_modal.they_can_mention_and_follow": "Vedkommende kan nævne og følge dig, men vil ikke blive vist.",
"mute_modal.they_wont_know": "De vil ikke vide, at de er blevet skjult.",
"mute_modal.title": "Skjul bruger?",
- "mute_modal.you_wont_see_mentions": "Du vil ikke se indlæg som omtaler dem.",
+ "mute_modal.you_wont_see_mentions": "Indlæg, som nævner vedkommende, vises ikke.",
"mute_modal.you_wont_see_posts": "De kan stadig se dine indlæg, men du vil ikke se deres.",
"navigation_bar.about": "Om",
"navigation_bar.account_settings": "Adgangskode og sikkerhed",
@@ -554,35 +555,31 @@
"navigation_bar.automated_deletion": "Automatiseret sletning af indlæg",
"navigation_bar.blocks": "Blokerede brugere",
"navigation_bar.bookmarks": "Bogmærker",
- "navigation_bar.community_timeline": "Lokal tidslinje",
- "navigation_bar.compose": "Skriv nyt indlæg",
"navigation_bar.direct": "Private omtaler",
- "navigation_bar.discover": "Opdag",
"navigation_bar.domain_blocks": "Blokerede domæner",
- "navigation_bar.explore": "Udforsk",
"navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Skjulte ord",
"navigation_bar.follow_requests": "Følgeanmodninger",
- "navigation_bar.followed_tags": "Etiketter, som følges",
+ "navigation_bar.followed_tags": "Hashtags, som følges",
"navigation_bar.follows_and_followers": "Følges og følgere",
"navigation_bar.import_export": "Import og eksport",
"navigation_bar.lists": "Lister",
+ "navigation_bar.live_feed_local": "Live feed (lokalt)",
+ "navigation_bar.live_feed_public": "Live feed (offentligt)",
"navigation_bar.logout": "Log af",
"navigation_bar.moderation": "Moderering",
"navigation_bar.more": "Mere",
"navigation_bar.mutes": "Skjulte brugere",
"navigation_bar.opened_in_classic_interface": "Indlæg, konti og visse andre sider åbnes som standard i den klassiske webgrænseflade.",
- "navigation_bar.personal": "Personlig",
- "navigation_bar.pins": "Fastgjorte indlæg",
"navigation_bar.preferences": "Præferencer",
- "navigation_bar.privacy_and_reach": "Fortrolighed og udbredelse",
- "navigation_bar.public_timeline": "Fælles tidslinje",
+ "navigation_bar.privacy_and_reach": "Fortrolighed og rækkevidde",
"navigation_bar.search": "Søg",
- "navigation_bar.search_trends": "Søg/Populære",
- "navigation_bar.security": "Sikkerhed",
+ "navigation_bar.search_trends": "Søg/Trender",
"navigation_panel.collapse_followed_tags": "Sammenfold menuen Fulgte hashtags",
+ "navigation_panel.collapse_lists": "Luk listemenu",
"navigation_panel.expand_followed_tags": "Udfold menuen Fulgte hashtags",
- "not_signed_in_indicator.not_signed_in": "Log ind for at tilgå denne ressource.",
+ "navigation_panel.expand_lists": "Udvid listemenu",
+ "not_signed_in_indicator.not_signed_in": "Du skal logge ind for at tilgå denne ressource.",
"notification.admin.report": "{name} anmeldte {target}",
"notification.admin.report_account": "{name} anmeldte {count, plural, one {et indlæg} other {# indlæg}} fra {target} angående {category}",
"notification.admin.report_account_other": "{name} anmeldte {count, plural, one {et indlæg} other {# indlæg}} fra {target}",
@@ -629,10 +626,10 @@
"notification_requests.accept": "Acceptér",
"notification_requests.accept_multiple": "{count, plural, one {Acceptér # anmodning…} other {Acceptér # anmodninger…}}",
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Acceptér anmodning} other {Acceptér anmodninger}}",
- "notification_requests.confirm_accept_multiple.message": "{count, plural, one {En notifikationsanmodning} other {# notifikationsanmodninger}} er ved at blive accepteret. Er du sikker på, at du vil fortsætte?",
+ "notification_requests.confirm_accept_multiple.message": "Du er ved at acceptere {count, plural, one {en notifikationsanmodning} other {# notifikationsanmodninger}}. Er du sikker på, at du vil fortsætte?",
"notification_requests.confirm_accept_multiple.title": "Acceptér notifikationsanmodninger?",
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Afvis anmodning} other {Afvis anmodninger}}",
- "notification_requests.confirm_dismiss_multiple.message": "{count, plural, one {En notifikationsanmodning} other {# notifikationsanmodninger}} er ved at blive afvist, hvorfor man ikke nemt vil kunne tilgå {count, plural, one {den} other {dem}} igen. Er du sikker på, at du vil fortsætte?",
+ "notification_requests.confirm_dismiss_multiple.message": "Du er ved at afvise {count, plural, one {en notifikationsanmodning} other {# notifikationsanmodninger}}. Du vil derfor ikke nemt kunne tilgå {count, plural, one {den} other {dem}} igen. Er du sikker på, at du vil fortsætte?",
"notification_requests.confirm_dismiss_multiple.title": "Afvis notifikationsanmodninger?",
"notification_requests.dismiss": "Afvis",
"notification_requests.dismiss_multiple": "{count, plural, one {Afvis # anmodning…} other {Afvis # anmodninger…}}",
@@ -689,18 +686,18 @@
"notifications.policy.filter_limited_accounts_hint": "Begrænset af servermoderatorer",
"notifications.policy.filter_limited_accounts_title": "Modererede konti",
"notifications.policy.filter_new_accounts.hint": "Oprettet indenfor {days, plural, one {den seneste dag} other {de seneste # dage}}",
- "notifications.policy.filter_new_accounts_title": "Ny konti",
- "notifications.policy.filter_not_followers_hint": "Inklusiv personer, som har fulgt dig {days, plural, one {mindre end én dag} other {færre end # dage}}",
- "notifications.policy.filter_not_followers_title": "Folk, som ikke følger dig",
- "notifications.policy.filter_not_following_hint": "Indtil de manuelt godkendes",
- "notifications.policy.filter_not_following_title": "Folk, du ikke følger",
+ "notifications.policy.filter_new_accounts_title": "Nye konti",
+ "notifications.policy.filter_not_followers_hint": "Inklusiv personer, som har fulgt dig {days, plural, one {mindre end én dag} other {mindre end # dage}}",
+ "notifications.policy.filter_not_followers_title": "Personer, som ikke følger dig",
+ "notifications.policy.filter_not_following_hint": "Indtil du manuelt godkender dem",
+ "notifications.policy.filter_not_following_title": "Personer, du ikke følger",
"notifications.policy.filter_private_mentions_hint": "Filtreret, medmindre det er i svar på egen omtale, eller hvis afsenderen følges",
"notifications.policy.filter_private_mentions_title": "Uopfordrede private omtaler",
"notifications.policy.title": "Håndtér notifikationer fra…",
"notifications_permission_banner.enable": "Aktivér computernotifikationer",
"notifications_permission_banner.how_to_control": "Aktivér computernotifikationer for at få besked, når Mastodon ikke er åben. Når de er aktiveret, kan man via knappen {icon} ovenfor præcist styre, hvilke typer af interaktioner, som genererer computernotifikationer.",
"notifications_permission_banner.title": "Gå aldrig glip af noget",
- "onboarding.follows.back": "Retur",
+ "onboarding.follows.back": "Tilbage",
"onboarding.follows.done": "Færdig",
"onboarding.follows.empty": "Ingen resultater tilgængelige pt. Prøv at bruge søgning eller gennemse siden for at finde personer at følge, eller forsøg igen senere.",
"onboarding.follows.search": "Søg",
@@ -710,7 +707,7 @@
"onboarding.profile.display_name": "Vist navn",
"onboarding.profile.display_name_hint": "Dit fulde navn eller dit sjove navn…",
"onboarding.profile.note": "Bio",
- "onboarding.profile.note_hint": "Man kan @omtale andre personer eller #etiketter…",
+ "onboarding.profile.note_hint": "Du kan @omtale andre personer eller #hashtags…",
"onboarding.profile.save_and_continue": "Gem og fortsæt",
"onboarding.profile.title": "Profilopsætning",
"onboarding.profile.upload_avatar": "Upload profilbillede",
@@ -735,9 +732,9 @@
"privacy.private.short": "Følgere",
"privacy.public.long": "Alle på og udenfor Mastodon",
"privacy.public.short": "Offentlig",
- "privacy.unlisted.additional": "Dette er præcis som offentlig adfærd, dog vises indlægget ikke i tidslinjer, under etiketter, udforsk eller Mastodon-søgning, selv hvis du ellers har sagt at dine opslag godt må være søgbare.",
+ "privacy.unlisted.additional": "Dette svarer til offentlig, bortset fra at indlægget ikke vises i live-feeds eller hashtags, udforsk eller Mastodon-søgning, selvom du har tilvalgt dette for kontoen.",
"privacy.unlisted.long": "Færre algoritmiske fanfarer",
- "privacy.unlisted.short": "Stille offentligt",
+ "privacy.unlisted.short": "Offentlig (stille)",
"privacy_policy.last_updated": "Senest opdateret {date}",
"privacy_policy.title": "Privatlivspolitik",
"recommended": "Anbefalet",
@@ -798,7 +795,7 @@
"report.thanks.title_actionable": "Tak for anmeldelsen, der vil blive set nærmere på dette.",
"report.unfollow": "Følg ikke længere @{name}",
"report.unfollow_explanation": "Du følger denne konto. For ikke længere at se vedkommendes indlæg i din hjemmestrøm, kan du stoppe med at følge dem.",
- "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet",
+ "report_notification.attached_statuses": "{count, plural, one {{count} indlæg} other {{count} indlæg}} vedhæftet",
"report_notification.categories.legal": "Juridisk",
"report_notification.categories.legal_sentence": "ikke-tilladt indhold",
"report_notification.categories.other": "Andre",
@@ -808,14 +805,15 @@
"report_notification.categories.violation": "Regelovertrædelse",
"report_notification.categories.violation_sentence": "regelovertrædelse",
"report_notification.open": "Åbn anmeldelse",
+ "search.clear": "Ryd søgning",
"search.no_recent_searches": "Ingen seneste søgninger",
"search.placeholder": "Søg",
"search.quick_action.account_search": "Profiler matchende {x}",
"search.quick_action.go_to_account": "Gå til profilen {x}",
- "search.quick_action.go_to_hashtag": "Gå til etiketten {x}",
+ "search.quick_action.go_to_hashtag": "Gå til hashtagget {x}",
"search.quick_action.open_url": "Åbn URL i Mastodon",
"search.quick_action.status_search": "Indlæg matchende {x}",
- "search.search_or_paste": "Søg efter eller angiv URL",
+ "search.search_or_paste": "Søg eller indsæt URL",
"search_popout.full_text_search_disabled_message": "Utilgængelig på {domain}.",
"search_popout.full_text_search_logged_out_message": "Kun tilgængelig, når logget ind.",
"search_popout.language_code": "ISO-sprogkode",
@@ -826,19 +824,19 @@
"search_popout.user": "bruger",
"search_results.accounts": "Profiler",
"search_results.all": "Alle",
- "search_results.hashtags": "Etiketter",
+ "search_results.hashtags": "Hashtags",
"search_results.no_results": "Ingen resultater.",
- "search_results.no_search_yet": "Prøv at søge efter indlæg, profiler eller etiketter.",
+ "search_results.no_search_yet": "Prøv at søge efter indlæg, profiler eller hashtags.",
"search_results.see_all": "Vis alle",
"search_results.statuses": "Indlæg",
"search_results.title": "Søg efter \"{q}\"",
- "server_banner.about_active_users": "Folk, som brugte denne server de seneste 30 dage (månedlige aktive brugere)",
+ "server_banner.about_active_users": "Personer, som brugte denne server de seneste 30 dage (månedlige aktive brugere)",
"server_banner.active_users": "aktive brugere",
"server_banner.administered_by": "Håndteres af:",
- "server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, man kan bruge for at deltage i fødiverset.",
+ "server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, du kan bruge for at deltage i fediverset.",
"server_banner.server_stats": "Serverstatstik:",
"sign_in_banner.create_account": "Opret konto",
- "sign_in_banner.follow_anyone": "Følg alle på tværs af fødiverset og se alt i kronologisk rækkefølge. Ingen algoritmer, annoncer eller clickbait i syne.",
+ "sign_in_banner.follow_anyone": "Følg alle på tværs af fediverset og se alt i kronologisk rækkefølge. Ingen algoritmer, annoncer eller clickbait i syne.",
"sign_in_banner.mastodon_is": "Mastodon er den bedste måde at holde sig ajour med, hvad der sker.",
"sign_in_banner.sign_in": "Log ind",
"sign_in_banner.sso_redirect": "Log ind eller Tilmeld",
@@ -853,7 +851,7 @@
"status.copy": "Kopiér link til indlæg",
"status.delete": "Slet",
"status.detailed_status": "Detaljeret samtalevisning",
- "status.direct": "Privat omtale @{name}",
+ "status.direct": "Nævn @{name} privat",
"status.direct_indicator": "Privat omtale",
"status.edit": "Redigér",
"status.edited": "Senest redigeret {date}",
@@ -887,10 +885,10 @@
"status.reblogged_by": "{name} fremhævede",
"status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}",
"status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
- "status.redraft": "Slet og omformulér",
+ "status.redraft": "Slet og omskriv",
"status.remove_bookmark": "Fjern bogmærke",
"status.remove_favourite": "Fjern fra favoritter",
- "status.replied_in_thread": "Svaret i tråd",
+ "status.replied_in_thread": "Svarede i tråd",
"status.replied_to": "Svarede {name}",
"status.reply": "Besvar",
"status.replyAll": "Svar alle",
@@ -904,13 +902,16 @@
"status.translate": "Oversæt",
"status.translated_from_with": "Oversat fra {lang} ved brug af {provider}",
"status.uncached_media_warning": "Ingen forhåndsvisning",
- "status.unmute_conversation": "Genaktivér samtale",
+ "status.unmute_conversation": "Vis samtale",
"status.unpin": "Frigør fra profil",
- "subscribed_languages.lead": "Kun indlæg på udvalgte sprog vil fremgå på dine hjemme- og listetidslinjer efter ændringen. Vælg ingen for at modtage indlæg på alle sprog.",
+ "subscribed_languages.lead": "Efter ændringen vises kun indlæg på de valgte sprog på din hjem- og listetidslinje. Vælger du ingen, vil du modtage indlæg på alle sprog.",
"subscribed_languages.save": "Gem ændringer",
"subscribed_languages.target": "Skift abonnementssprog for {target}",
"tabs_bar.home": "Hjem",
+ "tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Notifikationer",
+ "tabs_bar.publish": "Nyt indlæg",
+ "tabs_bar.search": "Søg",
"terms_of_service.effective_as_of": "Gældende pr. {date}",
"terms_of_service.title": "Tjenestevilkår",
"terms_of_service.upcoming_changes_on": "Kommende ændringer pr. {date}",
@@ -920,7 +921,7 @@
"time_remaining.moments": "Få øjeblikke tilbage",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} tilbage",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} {days, plural, one {den seneste dag} other {de seneste {days} dage}}",
- "trends.trending_now": "Hot lige nu",
+ "trends.trending_now": "Trender lige nu",
"ui.beforeunload": "Dit udkast går tabt, hvis du lukker Mastodon.",
"units.short.billion": "{count} mia.",
"units.short.million": "{count} mio.",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index bd76a35769e..f0beb106051 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Einstellungen anzeigen",
"column_header.unpin": "Lösen",
"column_search.cancel": "Abbrechen",
- "column_subheading.settings": "Einstellungen",
"community.column_settings.local_only": "Nur lokal",
"community.column_settings.media_only": "Nur Beiträge mit Medien",
"community.column_settings.remote_only": "Nur andere Mastodon-Server",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Löschen",
"confirmations.delete_list.message": "Möchtest du diese Liste für immer löschen?",
"confirmations.delete_list.title": "Liste löschen?",
+ "confirmations.discard_draft.confirm": "Verwerfen und fortfahren",
+ "confirmations.discard_draft.edit.cancel": "Bearbeitung fortsetzen",
+ "confirmations.discard_draft.edit.message": "Beim Fortfahren werden alle am Beitrag vorgenommenen Änderungen verworfen.",
+ "confirmations.discard_draft.edit.title": "Änderungen an diesem Beitrag verwerfen?",
+ "confirmations.discard_draft.post.cancel": "Entwurf fortsetzen",
+ "confirmations.discard_draft.post.message": "Beim Fortfahren wird der gerade verfasste Beitrag verworfen.",
+ "confirmations.discard_draft.post.title": "Beitragsentwurf verwerfen?",
"confirmations.discard_edit_media.confirm": "Verwerfen",
"confirmations.discard_edit_media.message": "Du hast Änderungen an der Medienbeschreibung oder -vorschau vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?",
- "confirmations.edit.confirm": "Bearbeiten",
- "confirmations.edit.message": "Das Bearbeiten überschreibt die Nachricht, die du gerade verfasst. Möchtest du wirklich fortfahren?",
- "confirmations.edit.title": "Beitrag überschreiben?",
"confirmations.follow_to_list.confirm": "Folgen und zur Liste hinzufügen",
"confirmations.follow_to_list.message": "Du musst {name} folgen, um das Profil zu einer Liste hinzufügen zu können.",
"confirmations.follow_to_list.title": "Profil folgen?",
@@ -238,13 +241,10 @@
"confirmations.mute.confirm": "Stummschalten",
"confirmations.redraft.confirm": "Löschen und neu erstellen",
"confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Alle Favoriten sowie die bisher geteilten Beiträge werden verloren gehen und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.",
- "confirmations.redraft.title": "Beitrag löschen und neu erstellen?",
+ "confirmations.redraft.title": "Beitrag löschen und neu verfassen?",
"confirmations.remove_from_followers.confirm": "Follower entfernen",
"confirmations.remove_from_followers.message": "{name} wird dir nicht länger folgen. Bist du dir sicher?",
"confirmations.remove_from_followers.title": "Follower entfernen?",
- "confirmations.reply.confirm": "Antworten",
- "confirmations.reply.message": "Wenn du jetzt darauf antwortest, wird der andere Beitrag, an dem du gerade geschrieben hast, verworfen. Möchtest du wirklich fortfahren?",
- "confirmations.reply.title": "Beitrag überschreiben?",
"confirmations.unfollow.confirm": "Entfolgen",
"confirmations.unfollow.message": "Möchtest du {name} wirklich entfolgen?",
"confirmations.unfollow.title": "Profil entfolgen?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Automatisiertes Löschen",
"navigation_bar.blocks": "Blockierte Profile",
"navigation_bar.bookmarks": "Lesezeichen",
- "navigation_bar.community_timeline": "Lokale Timeline",
- "navigation_bar.compose": "Neuen Beitrag verfassen",
"navigation_bar.direct": "Private Erwähnungen",
- "navigation_bar.discover": "Entdecken",
"navigation_bar.domain_blocks": "Blockierte Domains",
- "navigation_bar.explore": "Entdecken",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Stummgeschaltete Wörter",
"navigation_bar.follow_requests": "Follower-Anfragen",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Follower und Folge ich",
"navigation_bar.import_export": "Importieren und exportieren",
"navigation_bar.lists": "Listen",
+ "navigation_bar.live_feed_local": "Live-Feed (lokal)",
+ "navigation_bar.live_feed_public": "Live-Feed (öffentlich)",
"navigation_bar.logout": "Abmelden",
"navigation_bar.moderation": "Moderation",
"navigation_bar.more": "Mehr",
"navigation_bar.mutes": "Stummgeschaltete Profile",
"navigation_bar.opened_in_classic_interface": "Beiträge, Konten und andere bestimmte Seiten werden standardmäßig im klassischen Webinterface geöffnet.",
- "navigation_bar.personal": "Persönlich",
- "navigation_bar.pins": "Angeheftete Beiträge",
"navigation_bar.preferences": "Einstellungen",
"navigation_bar.privacy_and_reach": "Datenschutz und Reichweite",
- "navigation_bar.public_timeline": "Föderierte Timeline",
"navigation_bar.search": "Suche",
"navigation_bar.search_trends": "Suche / Angesagt",
- "navigation_bar.security": "Sicherheit",
"navigation_panel.collapse_followed_tags": "Menü für gefolgte Hashtags schließen",
"navigation_panel.collapse_lists": "Listen-Menü schließen",
"navigation_panel.expand_followed_tags": "Menü für gefolgte Hashtags öffnen",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Regelverstoß",
"report_notification.categories.violation_sentence": "Regelverletzung",
"report_notification.open": "Meldung öffnen",
+ "search.clear": "Suchanfrage löschen",
"search.no_recent_searches": "Keine früheren Suchanfragen",
"search.placeholder": "Suchen",
"search.quick_action.account_search": "Profile passend zu {x}",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index aa31cded728..4a6de095a8d 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -1,6 +1,7 @@
{
"about.blocks": "Συντονιζόμενοι διακομιστές",
"about.contact": "Επικοινωνία:",
+ "about.default_locale": "Προεπιλογή",
"about.disclaimer": "Το Mastodon είναι ελεύθερο λογισμικό ανοιχτού κώδικα και εμπορικό σήμα της Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Αιτιολογία μη διαθέσιμη",
"about.domain_blocks.preamble": "Σε γενικές γραμμές το Mastodon σού επιτρέπει να βλέπεις περιεχόμενο και να αλληλεπιδράς με χρήστες από οποιονδήποτε άλλο διακομιστή σε ένα διασυνδεδεμένο σύμπαν διακομιστών (fediverse). Ακολουθούν οι εξαιρέσεις που ισχύουν για τον συγκεκριμένο διακομιστή.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "Περιορισμένος",
"about.domain_blocks.suspended.explanation": "Τα δεδομένα αυτού του διακομιστή, δε θα επεξεργάζονται, δε θα αποθηκεύονται και δε θα ανταλλάσσονται, καθιστώντας οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες από αυτόν το διακομιστή αδύνατη.",
"about.domain_blocks.suspended.title": "Σε αναστολή",
+ "about.language_label": "Γλώσσα",
"about.not_available": "Αυτές οι πληροφορίες δεν έχουν είναι διαθέσιμες σε αυτόν τον διακομιστή.",
"about.powered_by": "Αποκεντρωμένα μέσα κοινωνικής δικτύωσης που βασίζονται στο {mastodon}",
"about.rules": "Κανόνες διακομιστή",
@@ -19,14 +21,20 @@
"account.block_domain": "Αποκλεισμός τομέα {domain}",
"account.block_short": "Αποκλεισμός",
"account.blocked": "Αποκλεισμένος/η",
+ "account.blocking": "Αποκλείεται",
"account.cancel_follow_request": "Απόσυρση αιτήματος παρακολούθησης",
"account.copy": "Αντιγραφή συνδέσμου προφίλ",
"account.direct": "Ιδιωτική αναφορά @{name}",
"account.disable_notifications": "Σταμάτα να με ειδοποιείς όταν δημοσιεύει ο @{name}",
+ "account.domain_blocking": "Αποκλείεται ο τομέας",
"account.edit_profile": "Επεξεργασία προφίλ",
"account.enable_notifications": "Ειδοποίησέ με όταν δημοσιεύει ο @{name}",
"account.endorse": "Προβολή στο προφίλ",
+ "account.familiar_followers_many": "Ακολουθείται από {name1}, {name2}, και {othersCount, plural, one {ένας ακόμα που ξέρεις} other {# ακόμα που ξέρεις}}",
+ "account.familiar_followers_one": "Ακολουθείται από {name1}",
+ "account.familiar_followers_two": "Ακολουθείται από {name1} και {name2}",
"account.featured": "Προτεινόμενα",
+ "account.featured.accounts": "Προφίλ",
"account.featured.hashtags": "Ετικέτες",
"account.featured_tags.last_status_at": "Τελευταία ανάρτηση στις {date}",
"account.featured_tags.last_status_never": "Καμία ανάρτηση",
@@ -35,9 +43,11 @@
"account.followers": "Ακόλουθοι",
"account.followers.empty": "Κανείς δεν ακολουθεί αυτόν τον χρήστη ακόμα.",
"account.followers_counter": "{count, plural, one {{counter} ακόλουθος} other {{counter} ακόλουθοι}}",
+ "account.followers_you_know_counter": "{counter} που ξέρεις",
"account.following": "Ακολουθείτε",
"account.following_counter": "{count, plural, one {{counter} ακολουθεί} other {{counter} ακολουθούν}}",
"account.follows.empty": "Αυτός ο χρήστης δεν ακολουθεί κανέναν ακόμα.",
+ "account.follows_you": "Σε ακολουθεί",
"account.go_to_profile": "Μετάβαση στο προφίλ",
"account.hide_reblogs": "Απόκρυψη ενισχύσεων από @{name}",
"account.in_memoriam": "Εις μνήμην.",
@@ -52,13 +62,17 @@
"account.mute_notifications_short": "Σίγαση ειδοποιήσεων",
"account.mute_short": "Σίγαση",
"account.muted": "Αποσιωπημένος/η",
+ "account.muting": "Σίγαση",
+ "account.mutual": "Ακολουθείτε ο ένας τον άλλο",
"account.no_bio": "Δεν υπάρχει περιγραφή.",
"account.open_original_page": "Ανοικτό",
"account.posts": "Τουτ",
"account.posts_with_replies": "Τουτ και απαντήσεις",
+ "account.remove_from_followers": "Κατάργηση {name} από τους ακόλουθους",
"account.report": "Κατάγγειλε @{name}",
"account.requested": "Εκκρεμεί έγκριση. Κάνε κλικ για να ακυρώσεις το αίτημα παρακολούθησης",
"account.requested_follow": "Ο/Η {name} αιτήθηκε να σε ακολουθήσει",
+ "account.requests_to_follow_you": "Αιτήματα για να σε ακολουθήσουν",
"account.share": "Κοινοποίηση του προφίλ @{name}",
"account.show_reblogs": "Εμφάνιση ενισχύσεων από @{name}",
"account.statuses_counter": "{count, plural, one {{counter} ανάρτηση} other {{counter} αναρτήσεις}}",
@@ -170,7 +184,6 @@
"column_header.show_settings": "Εμφάνιση ρυθμίσεων",
"column_header.unpin": "Ξεκαρφίτσωμα",
"column_search.cancel": "Ακύρωση",
- "column_subheading.settings": "Ρυθμίσεις",
"community.column_settings.local_only": "Τοπικά μόνο",
"community.column_settings.media_only": "Μόνο πολυμέσα",
"community.column_settings.remote_only": "Απομακρυσμένα μόνο",
@@ -206,11 +219,10 @@
"confirmations.delete_list.confirm": "Διαγραφή",
"confirmations.delete_list.message": "Σίγουρα θες να διαγράψεις οριστικά αυτή τη λίστα;",
"confirmations.delete_list.title": "Διαγραφή λίστας;",
+ "confirmations.discard_draft.confirm": "Απόρριψη και συνέχεια",
+ "confirmations.discard_draft.edit.cancel": "Συνέχιση επεξεργασίας",
"confirmations.discard_edit_media.confirm": "Απόρριψη",
"confirmations.discard_edit_media.message": "Έχεις μη αποθηκευμένες αλλαγές στην περιγραφή πολυμέσων ή στην προεπισκόπηση, απόρριψη ούτως ή άλλως;",
- "confirmations.edit.confirm": "Επεξεργασία",
- "confirmations.edit.message": "Αν το επεξεργαστείς τώρα θα αντικατασταθεί το μήνυμα που συνθέτεις. Είσαι σίγουρος ότι θέλεις να συνεχίσεις;",
- "confirmations.edit.title": "Αντικατάσταση ανάρτησης;",
"confirmations.follow_to_list.confirm": "Ακολούθησε και πρόσθεσε στη λίστα",
"confirmations.follow_to_list.message": "Πρέπει να ακολουθήσεις τον χρήστη {name} για να τον προσθέσεις σε μια λίστα.",
"confirmations.follow_to_list.title": "Ακολούθηση χρήστη;",
@@ -225,9 +237,9 @@
"confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο",
"confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.",
"confirmations.redraft.title": "Διαγραφή & επανασύνταξη;",
- "confirmations.reply.confirm": "Απάντησε",
- "confirmations.reply.message": "Απαντώντας τώρα θα αντικαταστήσεις το κείμενο που ήδη γράφεις. Σίγουρα θέλεις να συνεχίσεις;",
- "confirmations.reply.title": "Αντικατάσταση ανάρτησης;",
+ "confirmations.remove_from_followers.confirm": "Αφαίρεση ακολούθου",
+ "confirmations.remove_from_followers.message": "Ο χρήστης {name} θα σταματήσει να σε ακολουθεί. Σίγουρα θες να συνεχίσεις;",
+ "confirmations.remove_from_followers.title": "Αφαίρεση ακολούθου;",
"confirmations.unfollow.confirm": "Άρση ακολούθησης",
"confirmations.unfollow.message": "Σίγουρα θες να πάψεις να ακολουθείς τον/την {name};",
"confirmations.unfollow.title": "Άρση ακολούθησης;",
@@ -289,6 +301,9 @@
"emoji_button.search_results": "Αποτελέσματα αναζήτησης",
"emoji_button.symbols": "Σύμβολα",
"emoji_button.travel": "Ταξίδια & Τοποθεσίες",
+ "empty_column.account_featured.me": "Δεν έχεις αναδείξει τίποτα ακόμα. Γνώριζες ότι μπορείς να αναδείξεις τις ετικέτες που χρησιμοποιείς περισσότερο, ακόμη και τους λογαριασμούς των φίλων σου στο προφίλ σου;",
+ "empty_column.account_featured.other": "Ο λογαριασμός {acct} δεν αναδείξει τίποτα ακόμα. Γνώριζες ότι μπορείς να αναδείξεις τις ετικέτες που χρησιμοποιείς περισσότερο, ακόμη και τους λογαριασμούς των φίλων σου στο προφίλ σου;",
+ "empty_column.account_featured_other.unknown": "Αυτός ο λογαριασμός δεν έχει αναδείξει τίποτα ακόμα.",
"empty_column.account_hides_collections": "Αυτός ο χρήστης έχει επιλέξει να μην καταστήσει αυτές τις πληροφορίες διαθέσιμες",
"empty_column.account_suspended": "Λογαριασμός σε αναστολή",
"empty_column.account_timeline": "Δεν έχει αναρτήσεις εδώ!",
@@ -317,9 +332,15 @@
"errors.unexpected_crash.copy_stacktrace": "Αντιγραφή μηνυμάτων κώδικα στο πρόχειρο",
"errors.unexpected_crash.report_issue": "Αναφορά προβλήματος",
"explore.suggested_follows": "Άτομα",
+ "explore.title": "Τάσεις",
"explore.trending_links": "Νέα",
"explore.trending_statuses": "Αναρτήσεις",
"explore.trending_tags": "Ετικέτες",
+ "featured_carousel.header": "{count, plural, one {Καρφιτσωμένη Ανάρτηση} other {Καρφιτσωμένες Αναρτήσεις}}",
+ "featured_carousel.next": "Επόμενο",
+ "featured_carousel.post": "Ανάρτηση",
+ "featured_carousel.previous": "Προηγούμενο",
+ "featured_carousel.slide": "{index} από {total}",
"filter_modal.added.context_mismatch_explanation": "Αυτή η κατηγορία φίλτρων δεν ισχύει για το περιεχόμενο εντός του οποίου προσπελάσατε αυτή την ανάρτηση. Αν θέλετε να φιλτραριστεί η ανάρτηση και εντός αυτού του πλαισίου, θα πρέπει να τροποποιήσετε το φίλτρο.",
"filter_modal.added.context_mismatch_title": "Ασυμφωνία περιεχομένου!",
"filter_modal.added.expired_explanation": "Αυτή η κατηγορία φίλτρων έχει λήξει, πρέπει να αλλάξετε την ημερομηνία λήξης για να ισχύσει.",
@@ -386,8 +407,10 @@
"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.feature": "Ανάδειξη στο προφίλ",
"hashtag.follow": "Παρακολούθηση ετικέτας",
"hashtag.mute": "Σίγαση #{hashtag}",
+ "hashtag.unfeature": "Να μην αναδεικνύεται στο προφίλ",
"hashtag.unfollow": "Διακοπή παρακολούθησης ετικέτας",
"hashtags.and_other": "…και {count, plural, one {}other {# ακόμη}}",
"hints.profiles.followers_may_be_missing": "Μπορεί να λείπουν ακόλουθοι για αυτό το προφίλ.",
@@ -398,6 +421,7 @@
"hints.profiles.see_more_posts": "Δες περισσότερες αναρτήσεις στο {domain}",
"hints.threads.replies_may_be_missing": "Απαντήσεις από άλλους διακομιστές μπορεί να λείπουν.",
"hints.threads.see_more": "Δες περισσότερες αναρτήσεις στο {domain}",
+ "home.column_settings.show_quotes": "Εμφάνιση παραθεμάτων",
"home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
"home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
"home.hide_announcements": "Απόκρυψη ανακοινώσεων",
@@ -520,32 +544,34 @@
"mute_modal.you_wont_see_mentions": "Δε θα βλέπεις τις αναρτήσεις που τον αναφέρουν.",
"mute_modal.you_wont_see_posts": "Μπορεί ακόμα να δει τις αναρτήσεις σου, αλλά δε θα βλέπεις τις δικές του.",
"navigation_bar.about": "Σχετικά με",
+ "navigation_bar.account_settings": "Κωδικός πρόσβασης και ασφάλεια",
"navigation_bar.administration": "Διαχείριση",
"navigation_bar.advanced_interface": "Άνοιγμα σε προηγμένη διεπαφή ιστού",
+ "navigation_bar.automated_deletion": "Αυτοματοποιημένη διαγραφή αναρτήσεων",
"navigation_bar.blocks": "Αποκλεισμένοι χρήστες",
"navigation_bar.bookmarks": "Σελιδοδείκτες",
- "navigation_bar.community_timeline": "Τοπική ροή",
- "navigation_bar.compose": "Γράψε νέα ανάρτηση",
"navigation_bar.direct": "Ιδιωτικές επισημάνσεις",
- "navigation_bar.discover": "Ανακάλυψη",
"navigation_bar.domain_blocks": "Αποκλεισμένοι τομείς",
- "navigation_bar.explore": "Εξερεύνηση",
"navigation_bar.favourites": "Αγαπημένα",
"navigation_bar.filters": "Αποσιωπημένες λέξεις",
"navigation_bar.follow_requests": "Αιτήματα ακολούθησης",
"navigation_bar.followed_tags": "Ετικέτες που ακολουθούνται",
"navigation_bar.follows_and_followers": "Ακολουθείς και σε ακολουθούν",
+ "navigation_bar.import_export": "Εισαγωγή και εξαγωγή",
"navigation_bar.lists": "Λίστες",
"navigation_bar.logout": "Αποσύνδεση",
"navigation_bar.moderation": "Συντονισμός",
+ "navigation_bar.more": "Περισσότερα",
"navigation_bar.mutes": "Αποσιωπημένοι χρήστες",
"navigation_bar.opened_in_classic_interface": "Δημοσιεύσεις, λογαριασμοί και άλλες συγκεκριμένες σελίδες ανοίγονται από προεπιλογή στην κλασική διεπαφή ιστού.",
- "navigation_bar.personal": "Προσωπικά",
- "navigation_bar.pins": "Καρφιτσωμένες αναρτήσεις",
"navigation_bar.preferences": "Προτιμήσεις",
- "navigation_bar.public_timeline": "Ροή συναλλαγών",
+ "navigation_bar.privacy_and_reach": "Ιδιωτικότητα και προσιτότητα",
"navigation_bar.search": "Αναζήτηση",
- "navigation_bar.security": "Ασφάλεια",
+ "navigation_bar.search_trends": "Αναζήτηση / Τάσεις",
+ "navigation_panel.collapse_followed_tags": "Σύμπτυξη μενού ετικετών που ακολουθούνται",
+ "navigation_panel.collapse_lists": "Σύμπτυξη μενού λίστας",
+ "navigation_panel.expand_followed_tags": "Επέκταση μενού ετικετών που ακολουθούνται",
+ "navigation_panel.expand_lists": "Επέκταση μενού λίστας",
"not_signed_in_indicator.not_signed_in": "Πρέπει να συνδεθείς για να αποκτήσεις πρόσβαση σε αυτόν τον πόρο.",
"notification.admin.report": "Ο/Η {name} ανέφερε τον {target}",
"notification.admin.report_account": "Ο χρήστης {name} ανέφερε {count, plural, one {μία ανάρτηση} other {# αναρτήσεις}} από {target} για {category}",
@@ -772,6 +798,7 @@
"report_notification.categories.violation": "Παραβίαση κανόνα",
"report_notification.categories.violation_sentence": "παραβίαση κανόνα",
"report_notification.open": "Ανοιχτή αναφορά",
+ "search.clear": "Εκκαθάριση αναζήτησης",
"search.no_recent_searches": "Καμία πρόσφατη αναζήτηση",
"search.placeholder": "Αναζήτηση",
"search.quick_action.account_search": "Προφίλ που ταιριάζουν με {x}",
@@ -838,6 +865,13 @@
"status.mute_conversation": "Σίγαση συνομιλίας",
"status.open": "Επέκταση ανάρτησης",
"status.pin": "Καρφίτσωσε στο προφίλ",
+ "status.quote_error.filtered": "Κρυφό λόγω ενός από τα φίλτρα σου",
+ "status.quote_error.not_found": "Αυτή η ανάρτηση δεν μπορεί να εμφανιστεί.",
+ "status.quote_error.pending_approval": "Αυτή η ανάρτηση εκκρεμεί έγκριση από τον αρχικό συντάκτη.",
+ "status.quote_error.rejected": "Αυτή η ανάρτηση δεν μπορεί να εμφανιστεί καθώς ο αρχικός συντάκτης δεν επιτρέπει τις παραθέσεις.",
+ "status.quote_error.removed": "Αυτή η ανάρτηση αφαιρέθηκε από τον συντάκτη της.",
+ "status.quote_error.unauthorized": "Αυτή η ανάρτηση δεν μπορεί να εμφανιστεί καθώς δεν έχεις εξουσιοδότηση για να τη δεις.",
+ "status.quote_post_author": "Ανάρτηση από {name}",
"status.read_more": "Διάβασε περισότερα",
"status.reblog": "Ενίσχυση",
"status.reblog_private": "Ενίσχυση με αρχική ορατότητα",
@@ -867,7 +901,10 @@
"subscribed_languages.save": "Αποθήκευση αλλαγών",
"subscribed_languages.target": "Αλλαγή εγγεγραμμένων γλωσσών για {target}",
"tabs_bar.home": "Αρχική",
+ "tabs_bar.menu": "Μενού",
"tabs_bar.notifications": "Ειδοποιήσεις",
+ "tabs_bar.publish": "Νέα Ανάρτηση",
+ "tabs_bar.search": "Αναζήτηση",
"terms_of_service.effective_as_of": "Ενεργό από {date}",
"terms_of_service.title": "Όροι Παροχής Υπηρεσιών",
"terms_of_service.upcoming_changes_on": "Επερχόμενες αλλαγές στις {date}",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index 0e95bcb45d5..1702076b3fb 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_search.cancel": "Cancel",
- "column_subheading.settings": "Settings",
"community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media Only",
"community.column_settings.remote_only": "Remote only",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.delete_list.title": "Delete list?",
+ "confirmations.discard_draft.confirm": "Discard and continue",
+ "confirmations.discard_draft.edit.cancel": "Resume editing",
+ "confirmations.discard_draft.edit.message": "Continuing will discard any changes you have made to the post you are currently editing.",
+ "confirmations.discard_draft.edit.title": "Discard changes to your post?",
+ "confirmations.discard_draft.post.cancel": "Resume draft",
+ "confirmations.discard_draft.post.message": "Continuing will discard the post you are currently composing.",
+ "confirmations.discard_draft.post.title": "Discard your draft post?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
- "confirmations.edit.confirm": "Edit",
- "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?",
- "confirmations.edit.title": "Overwrite post?",
"confirmations.follow_to_list.confirm": "Follow and add to list",
"confirmations.follow_to_list.message": "You need to be following {name} to add them to a list.",
"confirmations.follow_to_list.title": "Follow user?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Remove follower",
"confirmations.remove_from_followers.message": "{name} will stop following you. Are you sure you want to proceed?",
"confirmations.remove_from_followers.title": "Remove follower?",
- "confirmations.reply.confirm": "Reply",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
- "confirmations.reply.title": "Overwrite post?",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"confirmations.unfollow.title": "Unfollow user?",
@@ -337,6 +337,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue",
"explore.suggested_follows": "People",
+ "explore.title": "Trending",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
@@ -548,32 +549,36 @@
"mute_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.",
"navigation_bar.about": "About",
+ "navigation_bar.account_settings": "Password and security",
"navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Open in advanced web interface",
+ "navigation_bar.automated_deletion": "Automated post deletion",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
- "navigation_bar.community_timeline": "Local timeline",
- "navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Private mentions",
- "navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Blocked domains",
- "navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
"navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.follows_and_followers": "Follows and followers",
+ "navigation_bar.import_export": "Import and export",
"navigation_bar.lists": "Lists",
+ "navigation_bar.live_feed_local": "Live feed (local)",
+ "navigation_bar.live_feed_public": "Live feed (public)",
"navigation_bar.logout": "Logout",
"navigation_bar.moderation": "Moderation",
+ "navigation_bar.more": "More",
"navigation_bar.mutes": "Muted users",
"navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Pinned posts",
"navigation_bar.preferences": "Preferences",
- "navigation_bar.public_timeline": "Federated timeline",
+ "navigation_bar.privacy_and_reach": "Privacy and reach",
"navigation_bar.search": "Search",
- "navigation_bar.security": "Security",
+ "navigation_bar.search_trends": "Search / Trending",
+ "navigation_panel.collapse_followed_tags": "Collapse followed hashtags menu",
+ "navigation_panel.collapse_lists": "Collapse list menu",
+ "navigation_panel.expand_followed_tags": "Expand followed hashtags menu",
+ "navigation_panel.expand_lists": "Expand list menu",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}",
"notification.admin.report_account": "{name} reported {count, plural, one {one post} other {# posts}} from {target} for {category}",
@@ -800,6 +805,7 @@
"report_notification.categories.violation": "Rule violation",
"report_notification.categories.violation_sentence": "rule violation",
"report_notification.open": "Open report",
+ "search.clear": "Clear search",
"search.no_recent_searches": "No recent searches",
"search.placeholder": "Search",
"search.quick_action.account_search": "Profiles matching {x}",
@@ -902,7 +908,10 @@
"subscribed_languages.save": "Save changes",
"subscribed_languages.target": "Change subscribed languages for {target}",
"tabs_bar.home": "Home",
+ "tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Notifications",
+ "tabs_bar.publish": "New Post",
+ "tabs_bar.search": "Search",
"terms_of_service.effective_as_of": "Effective as of {date}",
"terms_of_service.title": "Terms of Service",
"terms_of_service.upcoming_changes_on": "Upcoming changes on {date}",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index ad5d66c1643..59d39a15361 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_search.cancel": "Cancel",
- "column_subheading.settings": "Settings",
"community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media Only",
"community.column_settings.remote_only": "Remote only",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.delete_list.title": "Delete list?",
+ "confirmations.discard_draft.confirm": "Discard and continue",
+ "confirmations.discard_draft.edit.cancel": "Resume editing",
+ "confirmations.discard_draft.edit.message": "Continuing will discard any changes you have made to the post you are currently editing.",
+ "confirmations.discard_draft.edit.title": "Discard changes to your post?",
+ "confirmations.discard_draft.post.cancel": "Resume draft",
+ "confirmations.discard_draft.post.message": "Continuing will discard the post you are currently composing.",
+ "confirmations.discard_draft.post.title": "Discard your draft post?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
- "confirmations.edit.confirm": "Edit",
- "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?",
- "confirmations.edit.title": "Overwrite post?",
"confirmations.follow_to_list.confirm": "Follow and add to list",
"confirmations.follow_to_list.message": "You need to be following {name} to add them to a list.",
"confirmations.follow_to_list.title": "Follow user?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Remove follower",
"confirmations.remove_from_followers.message": "{name} will stop following you. Are you sure you want to proceed?",
"confirmations.remove_from_followers.title": "Remove follower?",
- "confirmations.reply.confirm": "Reply",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
- "confirmations.reply.title": "Overwrite post?",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"confirmations.unfollow.title": "Unfollow user?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Automated post deletion",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
- "navigation_bar.community_timeline": "Local timeline",
- "navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Private mentions",
- "navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Blocked domains",
- "navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.import_export": "Import and export",
"navigation_bar.lists": "Lists",
+ "navigation_bar.live_feed_local": "Live feed (local)",
+ "navigation_bar.live_feed_public": "Live feed (public)",
"navigation_bar.logout": "Logout",
"navigation_bar.moderation": "Moderation",
"navigation_bar.more": "More",
"navigation_bar.mutes": "Muted users",
"navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Pinned posts",
"navigation_bar.preferences": "Preferences",
"navigation_bar.privacy_and_reach": "Privacy and reach",
- "navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.search": "Search",
"navigation_bar.search_trends": "Search / Trending",
- "navigation_bar.security": "Security",
"navigation_panel.collapse_followed_tags": "Collapse followed hashtags menu",
"navigation_panel.collapse_lists": "Collapse list menu",
"navigation_panel.expand_followed_tags": "Expand followed hashtags menu",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Rule violation",
"report_notification.categories.violation_sentence": "rule violation",
"report_notification.open": "Open report",
+ "search.clear": "Clear search",
"search.no_recent_searches": "No recent searches",
"search.placeholder": "Search",
"search.quick_action.account_search": "Profiles matching {x}",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index ad57876965f..3af96c22c45 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -1,6 +1,7 @@
{
"about.blocks": "Reguligitaj serviloj",
"about.contact": "Kontakto:",
+ "about.default_locale": "기본",
"about.disclaimer": "Mastodon estas libera, malfermitkoda programo kaj varmarko de la firmao Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Kialo ne disponeblas",
"about.domain_blocks.preamble": "Mastodon ĝenerale rajtigas vidi la enhavojn de uzantoj el aliaj serviloj en la fediverso, kaj komuniki kun ili. Jen la limigoj deciditaj de tiu ĉi servilo mem.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "Limigita",
"about.domain_blocks.suspended.explanation": "Neniuj datumoj el tiu servilo estos prilaboritaj, konservitaj, aŭ interŝanĝitaj, do neeblas interagi aŭ komuniki kun uzantoj de tiu servilo.",
"about.domain_blocks.suspended.title": "Suspendita",
+ "about.language_label": "Lingvo",
"about.not_available": "Ĉi tiu informo ne estas disponebla ĉe ĉi tiu servilo.",
"about.powered_by": "Malcentrigita socia retejo pere de {mastodon}",
"about.rules": "Reguloj de la servilo",
@@ -178,7 +180,6 @@
"column_header.show_settings": "Montri agordojn",
"column_header.unpin": "Malfiksi",
"column_search.cancel": "Nuligi",
- "column_subheading.settings": "Agordoj",
"community.column_settings.local_only": "Nur loka",
"community.column_settings.media_only": "Nur aŭdovidaĵoj",
"community.column_settings.remote_only": "Nur fora",
@@ -216,9 +217,6 @@
"confirmations.delete_list.title": "Ĉu forigi liston?",
"confirmations.discard_edit_media.confirm": "Forĵeti",
"confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭvidigo de la vidaŭdaĵo, ĉu vi forĵetu ilin malgraŭe?",
- "confirmations.edit.confirm": "Redakti",
- "confirmations.edit.message": "Redakti nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
- "confirmations.edit.title": "Ĉu superskribi afiŝon?",
"confirmations.follow_to_list.confirm": "Sekvi kaj aldoni al listo",
"confirmations.follow_to_list.message": "Vi devas sekvi {name} por aldoni ilin al listo.",
"confirmations.follow_to_list.title": "Ĉu sekvi uzanton?",
@@ -236,9 +234,6 @@
"confirmations.remove_from_followers.confirm": "Forigi sekvanton",
"confirmations.remove_from_followers.message": "{name} ne plu sekvos vin. Ĉu vi certas ke vi volas daŭri?",
"confirmations.remove_from_followers.title": "Forigi sekvanton?",
- "confirmations.reply.confirm": "Respondi",
- "confirmations.reply.message": "Respondi nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
- "confirmations.reply.title": "Ĉu superskribi afiŝon?",
"confirmations.unfollow.confirm": "Ne plu sekvi",
"confirmations.unfollow.message": "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?",
"confirmations.unfollow.title": "Ĉu ĉesi sekvi uzanton?",
@@ -329,9 +324,13 @@
"errors.unexpected_crash.copy_stacktrace": "Kopii stakspuron en tondujo",
"errors.unexpected_crash.report_issue": "Raporti problemon",
"explore.suggested_follows": "Homoj",
+ "explore.title": "Popularaĵoj",
"explore.trending_links": "Novaĵoj",
"explore.trending_statuses": "Afiŝoj",
"explore.trending_tags": "Kradvortoj",
+ "featured_carousel.next": "Antaŭen",
+ "featured_carousel.post": "Afiŝi",
+ "featured_carousel.previous": "Malantaŭen",
"filter_modal.added.context_mismatch_explanation": "Ĉi tiu filtrilkategorio ne kongruas kun la kunteksto en kiu vi akcesis ĉi tiun afiŝon. Se vi volas ke la afiŝo estas ankaŭ filtrita en ĉi tiu kunteksto, vi devus redakti la filtrilon.",
"filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!",
"filter_modal.added.expired_explanation": "Ĉi tiu filtrilkategorio eksvalidiĝis, vu bezonos ŝanĝi la eksvaliddaton por ĝi.",
@@ -538,12 +537,8 @@
"navigation_bar.advanced_interface": "Malfermi altnivelan retpaĝan interfacon",
"navigation_bar.blocks": "Blokitaj uzantoj",
"navigation_bar.bookmarks": "Legosignoj",
- "navigation_bar.community_timeline": "Loka templinio",
- "navigation_bar.compose": "Redakti novan afiŝon",
"navigation_bar.direct": "Privataj mencioj",
- "navigation_bar.discover": "Malkovri",
"navigation_bar.domain_blocks": "Blokitaj domajnoj",
- "navigation_bar.explore": "Esplori",
"navigation_bar.favourites": "Stelumoj",
"navigation_bar.filters": "Silentigitaj vortoj",
"navigation_bar.follow_requests": "Petoj de sekvado",
@@ -552,14 +547,11 @@
"navigation_bar.lists": "Listoj",
"navigation_bar.logout": "Elsaluti",
"navigation_bar.moderation": "Modereco",
+ "navigation_bar.more": "Pli",
"navigation_bar.mutes": "Silentigitaj uzantoj",
"navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.",
- "navigation_bar.personal": "Persone",
- "navigation_bar.pins": "Alpinglitaj afiŝoj",
"navigation_bar.preferences": "Preferoj",
- "navigation_bar.public_timeline": "Fratara templinio",
"navigation_bar.search": "Serĉi",
- "navigation_bar.security": "Sekureco",
"not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.",
"notification.admin.report": "{name} raportis {target}",
"notification.admin.report_account": "{name} raportis {count, plural, one {afiŝon} other {# afiŝojn}} de {target} por {category}",
@@ -786,6 +778,7 @@
"report_notification.categories.violation": "Malobservo de la regulo",
"report_notification.categories.violation_sentence": "malobservo de la regulo",
"report_notification.open": "Malfermi la raporton",
+ "search.clear": "검색어 지우기",
"search.no_recent_searches": "Neniuj lastaj serĉoj",
"search.placeholder": "Serĉi",
"search.quick_action.account_search": "Profiloj kiuj kongruas kun {x}",
@@ -881,7 +874,9 @@
"subscribed_languages.save": "Konservi ŝanĝojn",
"subscribed_languages.target": "Ŝanĝu abonitajn lingvojn por {target}",
"tabs_bar.home": "Hejmo",
+ "tabs_bar.menu": "Menuo",
"tabs_bar.notifications": "Sciigoj",
+ "tabs_bar.search": "Serĉi",
"terms_of_service.effective_as_of": "Ĝi ekvalidas de {date}",
"terms_of_service.title": "Kondiĉoj de uzado",
"terms_of_service.upcoming_changes_on": "Venontaj ŝanĝoj el {date}",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 61392fc1232..a3bd2b82448 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Mostrar configuración",
"column_header.unpin": "Dejar de fijar",
"column_search.cancel": "Cancelar",
- "column_subheading.settings": "Configuración",
"community.column_settings.local_only": "Sólo local",
"community.column_settings.media_only": "Sólo medios",
"community.column_settings.remote_only": "Sólo remoto",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?",
"confirmations.delete_list.title": "¿Eliminar lista?",
+ "confirmations.discard_draft.confirm": "Descartar y continuar",
+ "confirmations.discard_draft.edit.cancel": "Reanudar edición",
+ "confirmations.discard_draft.edit.message": "Al continuar, se descartará cualquier cambio que hayás hecho en el mensaje que estás editando actualmente.",
+ "confirmations.discard_draft.edit.title": "¿Descartar cambios en tu mensaje?",
+ "confirmations.discard_draft.post.cancel": "Reanudar borrador",
+ "confirmations.discard_draft.post.message": "Al continuar, se descartará el mensaje que estás componiendo actualmente.",
+ "confirmations.discard_draft.post.title": "¿Descartar tu borrador?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tenés cambios sin guardar en la descripción de medios o en la vista previa, ¿querés descartarlos de todos modos?",
- "confirmations.edit.confirm": "Editar",
- "confirmations.edit.message": "Editar ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?",
- "confirmations.edit.title": "¿Sobrescribir mensaje?",
"confirmations.follow_to_list.confirm": "Seguir y agregar a la lista",
"confirmations.follow_to_list.message": "Necesitás seguir a {name} para agregarle a una lista.",
"confirmations.follow_to_list.title": "¿Querés seguirle?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Quitar seguidor",
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que querés continuar?",
"confirmations.remove_from_followers.title": "¿Quitar seguidor?",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?",
- "confirmations.reply.title": "¿Sobrescribir mensaje?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro que querés dejar de seguir a {name}?",
"confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Eliminación auto. de mensajes",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
- "navigation_bar.community_timeline": "Línea temporal local",
- "navigation_bar.compose": "Redactar un nuevo mensaje",
"navigation_bar.direct": "Menciones privadas",
- "navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios bloqueados",
- "navigation_bar.explore": "Explorá",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Solicitudes de seguimiento",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Cuentas seguidas y seguidores",
"navigation_bar.import_export": "Importación y exportación",
"navigation_bar.lists": "Listas",
+ "navigation_bar.live_feed_local": "Cronología local",
+ "navigation_bar.live_feed_public": "Cronología pública",
"navigation_bar.logout": "Cerrar sesión",
"navigation_bar.moderation": "Moderación",
"navigation_bar.more": "Más",
"navigation_bar.mutes": "Usuarios silenciados",
"navigation_bar.opened_in_classic_interface": "Los mensajes, las cuentas y otras páginas específicas se abren predeterminadamente en la interface web clásica.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Mensajes fijados",
"navigation_bar.preferences": "Configuración",
"navigation_bar.privacy_and_reach": "Privacidad y alcance",
- "navigation_bar.public_timeline": "Línea temporal federada",
"navigation_bar.search": "Buscar",
"navigation_bar.search_trends": "Búsqueda / Tendencia",
- "navigation_bar.security": "Seguridad",
"navigation_panel.collapse_followed_tags": "Contraer menú de etiquetas seguidas",
"navigation_panel.collapse_lists": "Colapsar menú de lista",
"navigation_panel.expand_followed_tags": "Expandir menú de etiquetas seguidas",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Violación de regla",
"report_notification.categories.violation_sentence": "violación de regla",
"report_notification.open": "Abrir denuncia",
+ "search.clear": "Limpiar búsqueda",
"search.no_recent_searches": "Sin búsquedas recientes",
"search.placeholder": "Buscar",
"search.quick_action.account_search": "Perfiles que coinciden con {x}",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index 8d6708b7992..d764b3dac97 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -5,7 +5,7 @@
"about.disclaimer": "Mastodon es software libre de código abierto, y una marca comercial de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Motivo no disponible",
"about.domain_blocks.preamble": "Mastodon generalmente te permite ver contenido e interactuar con usuarios de cualquier otro servidor del fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
- "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explicitamente o vayas a el siguiendo alguna cuenta.",
+ "about.domain_blocks.silenced.explanation": "Por lo general, no verás perfiles ni contenidos de este servidor, a menos que los busques explícitamente o que optes por seguirlo.",
"about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo cualquier interacción o comunicación con los usuarios de este servidor imposible.",
"about.domain_blocks.suspended.title": "Suspendido",
@@ -184,7 +184,6 @@
"column_header.show_settings": "Mostrar ajustes",
"column_header.unpin": "Desfijar",
"column_search.cancel": "Cancelar",
- "column_subheading.settings": "Ajustes",
"community.column_settings.local_only": "Solo local",
"community.column_settings.media_only": "Solo media",
"community.column_settings.remote_only": "Solo remoto",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Estás seguro de que quieres eliminar esta lista de forma permanente?",
"confirmations.delete_list.title": "¿Deseas eliminar la lista?",
+ "confirmations.discard_draft.confirm": "Descartar y continuar",
+ "confirmations.discard_draft.edit.cancel": "Reanudar la edición",
+ "confirmations.discard_draft.edit.message": "La continuación descartará cualquier cambio que hayas realizado en la publicación que estás editando en este momento.",
+ "confirmations.discard_draft.edit.title": "¿Deseas descartar los cambios en tu publicación?",
+ "confirmations.discard_draft.post.cancel": "Reanudar el borrador",
+ "confirmations.discard_draft.post.message": "La continuación descartará la publicación que estás redactando en este momento.",
+ "confirmations.discard_draft.post.title": "¿Deseas descartar tu borrador?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo, ¿deseas descartarlos de cualquier manera?",
- "confirmations.edit.confirm": "Editar",
- "confirmations.edit.message": "Editar sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?",
- "confirmations.edit.title": "¿Sobreescribir publicación?",
"confirmations.follow_to_list.confirm": "Seguir y agregar a la lista",
"confirmations.follow_to_list.message": "Tienes que seguir a {name} para añadirlo a una lista.",
"confirmations.follow_to_list.title": "¿Seguir a usuario?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Eliminar seguidor",
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que quieres continuar?",
"confirmations.remove_from_followers.title": "¿Eliminar seguidor?",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?",
- "confirmations.reply.title": "¿Deseas sobreescribir la publicación?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
"confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Eliminación automática de publicaciones",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
- "navigation_bar.community_timeline": "Historia local",
- "navigation_bar.compose": "Redactar una nueva publicación",
"navigation_bar.direct": "Menciones privadas",
- "navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios ocultos",
- "navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Solicitudes para seguirte",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Siguiendo y seguidores",
"navigation_bar.import_export": "Importar y exportar",
"navigation_bar.lists": "Listas",
+ "navigation_bar.live_feed_local": "Cronología local",
+ "navigation_bar.live_feed_public": "Cronología pública",
"navigation_bar.logout": "Cerrar sesión",
"navigation_bar.moderation": "Moderación",
"navigation_bar.more": "Más",
"navigation_bar.mutes": "Usuarios silenciados",
"navigation_bar.opened_in_classic_interface": "Publicaciones, cuentas y otras páginas específicas se abren por defecto en la interfaz web clásica.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Publicaciones fijadas",
"navigation_bar.preferences": "Preferencias",
"navigation_bar.privacy_and_reach": "Privacidad y alcance",
- "navigation_bar.public_timeline": "Historia federada",
"navigation_bar.search": "Buscar",
"navigation_bar.search_trends": "Búsqueda / Tendencia",
- "navigation_bar.security": "Seguridad",
"navigation_panel.collapse_followed_tags": "Minimizar menú de etiquetas seguidas",
"navigation_panel.collapse_lists": "Contraer el menú de la lista",
"navigation_panel.expand_followed_tags": "Expandir menú de etiquetas seguidas",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Infracción de regla",
"report_notification.categories.violation_sentence": "infracción de regla",
"report_notification.open": "Abrir denuncia",
+ "search.clear": "Limpiar búsqueda",
"search.no_recent_searches": "Sin búsquedas recientes",
"search.placeholder": "Buscar",
"search.quick_action.account_search": "Perfiles que coinciden con {x}",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 404c8c7902f..c68a19c58b9 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Mostrar ajustes",
"column_header.unpin": "Dejar de fijar",
"column_search.cancel": "Cancelar",
- "column_subheading.settings": "Ajustes",
"community.column_settings.local_only": "Solo local",
"community.column_settings.media_only": "Solo multimedia",
"community.column_settings.remote_only": "Solo remoto",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
"confirmations.delete_list.title": "¿Eliminar lista?",
+ "confirmations.discard_draft.confirm": "Descartar y continuar",
+ "confirmations.discard_draft.edit.cancel": "Continuar edición",
+ "confirmations.discard_draft.edit.message": "Continuar descartará cualquier cambio que hayas realizado en la publicación que estás editando actualmente.",
+ "confirmations.discard_draft.edit.title": "¿Descartar cambios en tu publicación?",
+ "confirmations.discard_draft.post.cancel": "Retomar el borrador",
+ "confirmations.discard_draft.post.message": "Continuar descartará el mensaje que estás escribiendo actualmente.",
+ "confirmations.discard_draft.post.title": "¿Descartar tu borrador?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo audiovisual, ¿descartarlos de todos modos?",
- "confirmations.edit.confirm": "Editar",
- "confirmations.edit.message": "Editar ahora reemplazará el mensaje que estás escribiendo. ¿Seguro que quieres proceder?",
- "confirmations.edit.title": "¿Sobrescribir publicación?",
"confirmations.follow_to_list.confirm": "Seguir y añadir a la lista",
"confirmations.follow_to_list.message": "Necesitas seguir a {name} para agregarlo a una lista.",
"confirmations.follow_to_list.title": "¿Seguir usuario?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Eliminar seguidor",
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que quieres continuar?",
"confirmations.remove_from_followers.title": "¿Eliminar seguidor?",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Seguro que deseas continuar?",
- "confirmations.reply.title": "¿Sobrescribir publicación?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Seguro que quieres dejar de seguir a {name}?",
"confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Eliminación automática de publicaciones",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
- "navigation_bar.community_timeline": "Cronología local",
- "navigation_bar.compose": "Escribir nueva publicación",
"navigation_bar.direct": "Menciones privadas",
- "navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios ocultos",
- "navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Solicitudes para seguirte",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Siguiendo y seguidores",
"navigation_bar.import_export": "Importar y exportar",
"navigation_bar.lists": "Listas",
+ "navigation_bar.live_feed_local": "Cronología local",
+ "navigation_bar.live_feed_public": "Cronología pública",
"navigation_bar.logout": "Cerrar sesión",
"navigation_bar.moderation": "Moderación",
"navigation_bar.more": "Más",
"navigation_bar.mutes": "Usuarios silenciados",
"navigation_bar.opened_in_classic_interface": "Publicaciones, cuentas y otras páginas específicas se abren por defecto en la interfaz web clásica.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Publicaciones fijadas",
"navigation_bar.preferences": "Preferencias",
"navigation_bar.privacy_and_reach": "Privacidad y alcance",
- "navigation_bar.public_timeline": "Cronología federada",
"navigation_bar.search": "Buscar",
"navigation_bar.search_trends": "Búsqueda / Tendencia",
- "navigation_bar.security": "Seguridad",
"navigation_panel.collapse_followed_tags": "Minimizar menú de etiquetas seguidas",
"navigation_panel.collapse_lists": "Contraer el menú de la lista",
"navigation_panel.expand_followed_tags": "Expandir menú de etiquetas seguidas",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Infracción de regla",
"report_notification.categories.violation_sentence": "infracción de regla",
"report_notification.open": "Abrir informe",
+ "search.clear": "Limpiar búsqueda",
"search.no_recent_searches": "No hay búsquedas recientes",
"search.placeholder": "Buscar",
"search.quick_action.account_search": "Perfiles que coinciden con {x}",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 3d094146acc..ffb33c7e7a6 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -167,7 +167,7 @@
"column.domain_blocks": "Peidetud domeenid",
"column.edit_list": "Muuda loendit",
"column.favourites": "Lemmikud",
- "column.firehose": "Laiv lõimed",
+ "column.firehose": "Postitused reaalajas",
"column.follow_requests": "Jälgimistaotlused",
"column.home": "Kodu",
"column.list_members": "Halda loendi liikmeid",
@@ -184,7 +184,6 @@
"column_header.show_settings": "Näita sätteid",
"column_header.unpin": "Eemalda kinnitus",
"column_search.cancel": "Tühista",
- "column_subheading.settings": "Sätted",
"community.column_settings.local_only": "Ainult kohalik",
"community.column_settings.media_only": "Ainult meedia",
"community.column_settings.remote_only": "Ainult kaug",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Kustuta",
"confirmations.delete_list.message": "Oled kindel, et soovid selle loetelu pöördumatult kustutada?",
"confirmations.delete_list.title": "Kustutada loetelu?",
+ "confirmations.discard_draft.confirm": "Loobu ja jätka",
+ "confirmations.discard_draft.edit.cancel": "Jätka muutmist",
+ "confirmations.discard_draft.edit.message": "Jätkates loobud kõikidest sellese postitusse tehtud muudatustest.",
+ "confirmations.discard_draft.edit.title": "Kas loobud oma postituse muudatustest?",
+ "confirmations.discard_draft.post.cancel": "Jätka kavandi koostamist",
+ "confirmations.discard_draft.post.message": "Jätkates loobud hetkel koostamisel postituse kõikidest muudatustest.",
+ "confirmations.discard_draft.post.title": "Kas loobud postituse kavandist?",
"confirmations.discard_edit_media.confirm": "Hülga",
"confirmations.discard_edit_media.message": "Sul on salvestamata muudatusi meediakirjelduses või eelvaates, kas hülgad need?",
- "confirmations.edit.confirm": "Muuda",
- "confirmations.edit.message": "Muutes praegu kirjutatakse hetkel loodav sõnum üle. Kas oled kindel, et soovid jätkata?",
- "confirmations.edit.title": "Kirjutada postitus üle?",
"confirmations.follow_to_list.confirm": "Jälgi ja lisa loetellu",
"confirmations.follow_to_list.message": "Pead jälgima kasutajat {name}, et lisada teda loetellu.",
"confirmations.follow_to_list.title": "Jälgida kasutajat?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Eemalda jälgija",
"confirmations.remove_from_followers.message": "{name} lõpetab sellega sinu jälgimise. Kas oled kindel, et soovid jätkata?",
"confirmations.remove_from_followers.title": "Kas eemaldame jälgija?",
- "confirmations.reply.confirm": "Vasta",
- "confirmations.reply.message": "Praegu vastamine kirjutab hetkel koostatava sõnumi üle. Oled kindel, et soovid jätkata?",
- "confirmations.reply.title": "Kirjutada postitus üle?",
"confirmations.unfollow.confirm": "Ära jälgi",
"confirmations.unfollow.message": "Oled kindel, et ei soovi rohkem jälgida kasutajat {name}?",
"confirmations.unfollow.title": "Ei jälgi enam kasutajat?",
@@ -337,7 +337,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale",
"errors.unexpected_crash.report_issue": "Teavita veast",
"explore.suggested_follows": "Inimesed",
- "explore.title": "Populaarsust kohuv",
+ "explore.title": "Populaarsust koguv",
"explore.trending_links": "Uudised",
"explore.trending_statuses": "Postitused",
"explore.trending_tags": "Sildid",
@@ -389,7 +389,7 @@
"followed_tags": "Jälgitavad märksõnad",
"footer.about": "Teave",
"footer.directory": "Profiilikataloog",
- "footer.get_app": "Tõmba äpp",
+ "footer.get_app": "Laadi rakendus",
"footer.keyboard_shortcuts": "Kiirklahvid",
"footer.privacy_policy": "Isikuandmete kaitse",
"footer.source_code": "Lähtekood",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Postituste automaatne kustutamine",
"navigation_bar.blocks": "Blokeeritud kasutajad",
"navigation_bar.bookmarks": "Järjehoidjad",
- "navigation_bar.community_timeline": "Kohalik ajajoon",
- "navigation_bar.compose": "Koosta uus postitus",
"navigation_bar.direct": "Privaatsed mainimised",
- "navigation_bar.discover": "Avasta",
"navigation_bar.domain_blocks": "Peidetud domeenid",
- "navigation_bar.explore": "Avasta",
"navigation_bar.favourites": "Lemmikud",
"navigation_bar.filters": "Vaigistatud sõnad",
"navigation_bar.follow_requests": "Jälgimistaotlused",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad",
"navigation_bar.import_export": "Import ja eksport",
"navigation_bar.lists": "Loetelud",
+ "navigation_bar.live_feed_local": "Ajajoon reaalajas (sinu server)",
+ "navigation_bar.live_feed_public": "Ajajoon reaalajas (Födiversum)",
"navigation_bar.logout": "Logi välja",
"navigation_bar.moderation": "Modereerimine",
"navigation_bar.more": "Lisavalikud",
"navigation_bar.mutes": "Vaigistatud kasutajad",
"navigation_bar.opened_in_classic_interface": "Postitused, kontod ja teised spetsiaalsed lehed avatakse vaikimisi klassikalises veebiliideses.",
- "navigation_bar.personal": "Isiklik",
- "navigation_bar.pins": "Kinnitatud postitused",
"navigation_bar.preferences": "Eelistused",
"navigation_bar.privacy_and_reach": "Privaatsus ja ulatus",
- "navigation_bar.public_timeline": "Föderatiivne ajajoon",
"navigation_bar.search": "Otsing",
- "navigation_bar.security": "Turvalisus",
+ "navigation_bar.search_trends": "Otsi / Populaarsust koguv",
+ "navigation_panel.collapse_followed_tags": "Ahenda jälgitavate teemaviidete menüü",
"navigation_panel.collapse_lists": "Ahenda loendimenüü",
+ "navigation_panel.expand_followed_tags": "Ava jälgitavate teemaviidete menüü",
"navigation_panel.expand_lists": "Laienda loendimenüüd",
"not_signed_in_indicator.not_signed_in": "Pead sisse logima, et saada ligipääsu sellele ressursile.",
"notification.admin.report": "{name} saatis teavituse {target} kohta",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "Reeglite rikkumine",
"report_notification.categories.violation_sentence": "reeglite rikkumine",
"report_notification.open": "Ava teavitus",
+ "search.clear": "Tühjenda otsing",
"search.no_recent_searches": "Pole viimatisi otsinguid",
"search.placeholder": "Otsi",
"search.quick_action.account_search": "Sobivaid profiile {x}",
@@ -833,7 +831,7 @@
"search_results.statuses": "Postitused",
"search_results.title": "Otsi märksõna: {q}",
"server_banner.about_active_users": "Inimesed, kes kasutavad seda serverit viimase 30 päeva jooksul (kuu aktiivsed kasutajad)",
- "server_banner.active_users": "aktiivsed kasutajad",
+ "server_banner.active_users": "aktiivset kasutajaid",
"server_banner.administered_by": "Administraator:",
"server_banner.is_one_of_many": "{domain} on üks paljudest sõltumatutest Mastodoni serveritest, mida saab fediversumis osalemiseks kasutada.",
"server_banner.server_stats": "Serveri statistika:",
@@ -860,7 +858,7 @@
"status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}",
"status.embed": "Hangi manustamiskood",
"status.favourite": "Lemmik",
- "status.favourites": "{count, plural, one {lemmik} other {lemmikud}}",
+ "status.favourites": "{count, plural, one {lemmik} other {lemmikut}}",
"status.filter": "Filtreeri seda postitust",
"status.history.created": "{name} lõi {date}",
"status.history.edited": "{name} muutis {date}",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 94d1af16009..b757fb0cdaa 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -1,6 +1,7 @@
{
"about.blocks": "Moderatutako zerbitzariak",
"about.contact": "Kontaktua:",
+ "about.default_locale": "Lehenetsia",
"about.disclaimer": "Mastodon software libre eta kode irekikoa da, eta Mastodon gGmbH-ren marka erregistratua.",
"about.domain_blocks.no_reason_available": "Arrazoia ez dago eskuragarri",
"about.domain_blocks.preamble": "Mastodonek orokorrean aukera ematen dizu fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikusi eta haiekin komunikatzeko. Zerbitzari zehatz honi ezarritako salbuespenak hauek dira.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "Mugatua",
"about.domain_blocks.suspended.explanation": "Ez da zerbitzari honetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari honetako erabiltzaileekin komunikatzea ezinezkoa eginez.",
"about.domain_blocks.suspended.title": "Kanporatua",
+ "about.language_label": "Hizkuntza",
"about.not_available": "Zerbitzari honek ez du informazio hau eskuragarri jarri.",
"about.powered_by": "{mastodon} erabiltzen duen sare sozial deszentralizatua",
"about.rules": "Zerbitzariaren arauak",
@@ -19,13 +21,20 @@
"account.block_domain": "Blokeatu {domain} domeinua",
"account.block_short": "Blokeatu",
"account.blocked": "Blokeatuta",
+ "account.blocking": "Eragotzitakoak",
"account.cancel_follow_request": "Baztertu jarraitzeko eskaera",
"account.copy": "Kopiatu profilerako esteka",
"account.direct": "Aipatu pribatuki @{name}",
"account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzaileak argitaratzean",
+ "account.domain_blocking": "Eragotzitako domeinua",
"account.edit_profile": "Editatu profila",
"account.enable_notifications": "Jakinarazi @{name} erabiltzaileak argitaratzean",
"account.endorse": "Nabarmendu profilean",
+ "account.familiar_followers_one": "{name1}-k jarraitzen du",
+ "account.familiar_followers_two": "{name1}-k eta {name2}-k jarraitzen dute",
+ "account.featured": "Gailenak",
+ "account.featured.accounts": "Profilak",
+ "account.featured.hashtags": "Traolak",
"account.featured_tags.last_status_at": "Azken bidalketa {date} datan",
"account.featured_tags.last_status_never": "Bidalketarik ez",
"account.follow": "Jarraitu",
@@ -33,9 +42,11 @@
"account.followers": "Jarraitzaileak",
"account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.",
"account.followers_counter": "{count, plural, one {{counter} jarraitzaile} other {{counter} jarraitzaile}}",
+ "account.followers_you_know_counter": "{counter} ezagutzen dituzu",
"account.following": "Jarraitzen",
"account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}",
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
+ "account.follows_you": "Jarraitzen zaitu",
"account.go_to_profile": "Joan profilera",
"account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak",
"account.in_memoriam": "Oroimenezkoa.",
@@ -50,18 +61,23 @@
"account.mute_notifications_short": "Mututu jakinarazpenak",
"account.mute_short": "Mututu",
"account.muted": "Mutututa",
+ "account.muting": "Isilarazitakoak",
+ "account.mutual": "Elkar jarraitzen duzue",
"account.no_bio": "Ez da deskribapenik eman.",
"account.open_original_page": "Ireki jatorrizko orria",
"account.posts": "Bidalketa",
"account.posts_with_replies": "Bidalketak eta erantzunak",
+ "account.remove_from_followers": "Kendu {name} zure jarraitzaileengandik",
"account.report": "Salatu @{name}",
"account.requested": "Onarpenaren zain. Egin klik jarraipen-eskaera ezeztatzeko",
"account.requested_follow": "{name}-(e)k zu jarraitzeko eskaera egin du",
+ "account.requests_to_follow_you": "Zu jarraitzeko eskaera egin du",
"account.share": "Partekatu @{name} erabiltzailearen profila",
"account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak",
"account.statuses_counter": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}",
"account.unblock": "Desblokeatu @{name}",
"account.unblock_domain": "Berriz erakutsi {domain}",
+ "account.unblock_domain_short": "Desblokeatu",
"account.unblock_short": "Desblokeatu",
"account.unendorse": "Ez nabarmendu profilean",
"account.unfollow": "Utzi jarraitzeari",
@@ -87,10 +103,13 @@
"alt_text_modal.add_text_from_image": "Gehitu testua iruditik",
"alt_text_modal.cancel": "Utzi",
"alt_text_modal.change_thumbnail": "Aldatu koadro txikia",
+ "alt_text_modal.describe_for_people_with_hearing_impairments": "Deskribatu hau entzumen arazoak dituzten pertsonentzat…",
+ "alt_text_modal.describe_for_people_with_visual_impairments": "Deskribatu hau ikusmen arazoak dituzten pertsonentzat…",
"alt_text_modal.done": "Egina",
"announcement.announcement": "Iragarpena",
"annual_report.summary.followers.followers": "jarraitzaileak",
"annual_report.summary.followers.total": "{count} guztira",
+ "annual_report.summary.here_it_is": "Hona hemen zure {year}. urtearen bilduma:",
"annual_report.summary.highlighted_post.by_favourites": "egindako bidalketa gogokoena",
"annual_report.summary.highlighted_post.by_reblogs": "egindako bidalketa zabalduena",
"annual_report.summary.highlighted_post.by_replies": "erantzun gehien izan dituen bidalketa",
@@ -157,7 +176,6 @@
"column_header.show_settings": "Erakutsi ezarpenak",
"column_header.unpin": "Desfinkatu",
"column_search.cancel": "Utzi",
- "column_subheading.settings": "Ezarpenak",
"community.column_settings.local_only": "Lokala soilik",
"community.column_settings.media_only": "Edukiak soilik",
"community.column_settings.remote_only": "Urrunekoa soilik",
@@ -193,11 +211,14 @@
"confirmations.delete_list.confirm": "Ezabatu",
"confirmations.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?",
"confirmations.delete_list.title": "Ezabatu zerrenda?",
+ "confirmations.discard_draft.confirm": "Baztertu eta jarraitu",
+ "confirmations.discard_draft.edit.cancel": "Berrekin edizioari",
+ "confirmations.discard_draft.edit.message": "Jarraitzeak editatzen ari zaren mezuan egindako aldaketak baztertuko ditu.",
+ "confirmations.discard_draft.edit.title": "Baztertu zure argitalpenari egindako aldaketak?",
+ "confirmations.discard_draft.post.cancel": "Zirriborroa berrekin",
+ "confirmations.discard_draft.post.title": "Zure argitalpenaren zirriborroa baztertu nahi duzu?",
"confirmations.discard_edit_media.confirm": "Baztertu",
"confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?",
- "confirmations.edit.confirm": "Editatu",
- "confirmations.edit.message": "Orain editatzen baduzu, une honetan idazten ari zaren mezua gainidatziko da. Ziur jarraitu nahi duzula?",
- "confirmations.edit.title": "Gainidatzi bidalketa?",
"confirmations.follow_to_list.confirm": "Jarraitu eta zerrendan sartu",
"confirmations.follow_to_list.message": "{name} jarraitu behar duzu zerrenda batean sartzeko.",
"confirmations.follow_to_list.title": "Erabiltzailea jarraitu?",
@@ -205,15 +226,16 @@
"confirmations.logout.message": "Ziur saioa amaitu nahi duzula?",
"confirmations.logout.title": "Itxi saioa?",
"confirmations.missing_alt_text.confirm": "Gehitu testu alternatiboa",
+ "confirmations.missing_alt_text.message": "Zure argitalpenak \"alt text\"-urik gabeko multimedia edukia dauka. Deskribapenak gehitzeak zure edukia jende gehiagorentzat eskuragarri jartzen laguntzen du.",
"confirmations.missing_alt_text.secondary": "Bidali edonola ere",
"confirmations.missing_alt_text.title": "Testu alternatiboa gehitu?",
"confirmations.mute.confirm": "Mututu",
"confirmations.redraft.confirm": "Ezabatu eta berridatzi",
"confirmations.redraft.message": "Ziur argitalpen hau ezabatu eta zirriborroa berriro egitea nahi duzula? Gogokoak eta bultzadak galduko dira, eta jatorrizko argitalpenaren erantzunak zurtz geratuko dira.",
"confirmations.redraft.title": "Ezabatu eta berridatzi bidalketa?",
- "confirmations.reply.confirm": "Erantzun",
- "confirmations.reply.message": "Orain erantzuteak idazten ari zaren mezua gainidatziko du. Ziur jarraitu nahi duzula?",
- "confirmations.reply.title": "Gainidatzi bidalketa?",
+ "confirmations.remove_from_followers.confirm": "Jarraitzailea Kendu",
+ "confirmations.remove_from_followers.message": "{name}-k zu jarraitzeari utziko dio. Seguru zaude jarraitu nahi duzula?",
+ "confirmations.remove_from_followers.title": "Jarraitzailea kendu nahi duzu?",
"confirmations.unfollow.confirm": "Utzi jarraitzeari",
"confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?",
"confirmations.unfollow.title": "Erabiltzailea jarraitzeari utzi?",
@@ -235,12 +257,14 @@
"disabled_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan.",
"dismissable_banner.community_timeline": "Hauek dira {domain} zerbitzarian ostatatutako kontuen bidalketa publiko berrienak.",
"dismissable_banner.dismiss": "Baztertu",
+ "dismissable_banner.public_timeline": "Hauek dira {domain}-eko jendeak jarraitzen dituen fedibertsoko erabiltzaileen azken mezu publikoak.",
"domain_block_modal.block": "Blokeatu zerbitzaria",
"domain_block_modal.block_account_instead": "Blokeatu @{name} bestela",
"domain_block_modal.they_can_interact_with_old_posts": "Zerbitzari honetako jendea zure argitalpen zaharrekin elkarreragin dezake.",
"domain_block_modal.they_cant_follow": "Zerbitzari honetako inork ezin zaitu jarraitu.",
"domain_block_modal.they_wont_know": "Ez dute jakingo blokeatuak izan direnik.",
"domain_block_modal.title": "Domeinua blokeatu nahi duzu?",
+ "domain_block_modal.you_will_lose_relationships": "Instantzia honetatik jarraitzen dituzun jarraitzaile eta pertsona guztiak galduko dituzu.",
"domain_block_modal.you_wont_see_posts": "Ez dituzu zerbitzari honetako erabiltzaileen argitalpenik edota jakinarazpenik ikusiko.",
"domain_pill.activitypub_lets_connect": "Mastodon-en ez ezik, beste sare sozialen aplikazioetako jendearekin konektatzea eta harremanetan jartzea uzten dizu.",
"domain_pill.activitypub_like_language": "ActivityPub, Mastodon-ek beste sare sozialekin hitz egiteko erabiltzen duen hizkuntza bezalakoxea da.",
@@ -272,6 +296,9 @@
"emoji_button.search_results": "Bilaketaren emaitzak",
"emoji_button.symbols": "Sinboloak",
"emoji_button.travel": "Bidaiak eta tokiak",
+ "empty_column.account_featured.me": "Oraindik ez duzu ezer nabarmendu. Ba al zenekien gehien erabiltzen dituzun traolak eta baita zure lagunen kontuak ere zure profilean nabarmendu ditzakezula?",
+ "empty_column.account_featured.other": "{acct}-ek ez du ezer nabarmendu oraindik. Ba al zenekien gehien erabiltzen dituzun traolak eta baita zure lagunen kontuak ere zure profilean nabarmendu ditzakezula?",
+ "empty_column.account_featured_other.unknown": "Kontu honek ez du ezer nabarmendu oraindik.",
"empty_column.account_hides_collections": "Erabiltzaile honek informazio hau erabilgarri ez egotea aukeratu du.",
"empty_column.account_suspended": "Kanporatutako kontua",
"empty_column.account_timeline": "Ez dago bidalketarik hemen!",
@@ -300,9 +327,14 @@
"errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera",
"errors.unexpected_crash.report_issue": "Eman arazoaren berri",
"explore.suggested_follows": "Jendea",
+ "explore.title": "Joerak",
"explore.trending_links": "Berriak",
"explore.trending_statuses": "Tutak",
"explore.trending_tags": "Traolak",
+ "featured_carousel.next": "Hurrengoa",
+ "featured_carousel.post": "Argitaratu",
+ "featured_carousel.previous": "Aurrekoa",
+ "featured_carousel.slide": "{total}-tik {index}",
"filter_modal.added.context_mismatch_explanation": "Iragazki-kategoria hau ez zaio aplikatzen bidalketa honetara sartzeko erabili duzun testuinguruari. Bidalketa testuinguru horretan ere iragaztea nahi baduzu, iragazkia editatu beharko duzu.",
"filter_modal.added.context_mismatch_title": "Testuingurua ez dator bat!",
"filter_modal.added.expired_explanation": "Iragazki kategoria hau iraungi da, eragina izan dezan bere iraungitze-data aldatu beharko duzu.",
@@ -355,6 +387,8 @@
"generic.saved": "Gordea",
"getting_started.heading": "Menua",
"hashtag.admin_moderation": "#{name}-(r)en moderazio-interfazea ireki",
+ "hashtag.browse": "Arakatu bidalketak #{hashtag}(e)n",
+ "hashtag.browse_from_account": "Arakatu @{name}(r)en bidalketak #{hashtag}(e)n",
"hashtag.column_header.tag_mode.all": "eta {osagarria}",
"hashtag.column_header.tag_mode.any": "edo {osagarria}",
"hashtag.column_header.tag_mode.none": "gabe {osagarria}",
@@ -367,7 +401,10 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} parte-hartzaile} other {{counter} parte-hartzaile}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}} gaur",
+ "hashtag.feature": "Nabarmendu profilean",
"hashtag.follow": "Jarraitu traolari",
+ "hashtag.mute": "Mututu #{hashtag}",
+ "hashtag.unfeature": "Ez nabarmendu profilean",
"hashtag.unfollow": "Utzi traola jarraitzeari",
"hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}",
"hints.profiles.followers_may_be_missing": "Baliteke profil honen jarraitzaile guztiak ez agertzea.",
@@ -378,6 +415,7 @@
"hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n",
"hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.",
"hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n",
+ "home.column_settings.show_quotes": "Erakutsi aipamenak",
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak",
"home.hide_announcements": "Ezkutatu iragarpenak",
@@ -396,6 +434,11 @@
"ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?",
+ "info_button.label": "Laguntza",
+ "interaction_modal.action.favourite": "Jarraitzeko, zure kontutik atsegindu behar duzu.",
+ "interaction_modal.action.follow": "Jarraitzeko zure kontutik jarraitu behar duzu.",
+ "interaction_modal.action.reply": "Jarraitzeko zure kontutik erantzun behar duzu.",
+ "interaction_modal.action.vote": "Jarraitzeko, zure kontutik bozkatu behar duzu.",
"interaction_modal.go": "Joan",
"interaction_modal.no_account_yet": "Ez al duzu konturik oraindik?",
"interaction_modal.on_another_server": "Beste zerbitzari batean",
@@ -440,11 +483,14 @@
"keyboard_shortcuts.toggle_hidden": "testua erakustea/ezkutatzea abisu baten atzean",
"keyboard_shortcuts.toggle_sensitivity": "multimedia erakutsi/ezkutatzeko",
"keyboard_shortcuts.toot": "Hasi bidalketa berri bat",
+ "keyboard_shortcuts.translate": "bidalketa itzultzeko",
"keyboard_shortcuts.unfocus": "testua konposatzeko area / bilaketatik fokua kentzea",
"keyboard_shortcuts.up": "zerrendan gora mugitzea",
"lightbox.close": "Itxi",
"lightbox.next": "Hurrengoa",
"lightbox.previous": "Aurrekoa",
+ "lightbox.zoom_in": "Zooma egungo tamainara",
+ "lightbox.zoom_out": "Zooma egokitzeko",
"limited_account_hint.action": "Erakutsi profila hala ere",
"limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.",
"link_preview.author": "Egilea: {name}",
@@ -454,13 +500,24 @@
"lists.add_to_list": "Gehitu zerrendara",
"lists.add_to_lists": "Gehitu {name} zerrendetara",
"lists.create": "Sortu",
+ "lists.create_a_list_to_organize": "Sortu zerrenda berria zure Hasierako jarioa antolatzeko",
"lists.create_list": "Sortu zerrenda",
"lists.delete": "Ezabatu zerrenda",
"lists.done": "Egina",
"lists.edit": "Editatu zerrenda",
+ "lists.exclusive": "Ezkutatu kideak Hasieran",
+ "lists.exclusive_hint": "Norbait zerrenda honetan badago, ezkutatu zure Hasierako jariotik mezuak bi aldiz ez ikusteko.",
+ "lists.find_users_to_add": "Bilatu erabiltzaileak gehitzeko",
+ "lists.list_name": "Zerrenda izena",
+ "lists.new_list_name": "Zerrenda izen berria",
+ "lists.no_lists_yet": "Ez duzu zerrendarik oraindik.",
+ "lists.no_members_yet": "Ez duzu kiderik oraindik.",
+ "lists.no_results_found": "Ez da emaitzarik aurkitu.",
+ "lists.remove_member": "Ezabatu",
"lists.replies_policy.followed": "Jarraitutako edozein erabiltzaile",
"lists.replies_policy.list": "Zerrendako kideak",
"lists.replies_policy.none": "Bat ere ez",
+ "lists.save": "Gorde",
"lists.search": "Bilatu",
"load_pending": "{count, plural, one {elementu berri #} other {# elementu berri}}",
"loading_indicator.label": "Kargatzen…",
@@ -476,32 +533,32 @@
"mute_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.",
"mute_modal.you_wont_see_posts": "Zure argitalpenak ikus ditzake, baina ez dituzu bereak ikusiko.",
"navigation_bar.about": "Honi buruz",
+ "navigation_bar.account_settings": "Pasahitza eta segurtasuna",
"navigation_bar.administration": "Administrazioa",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
+ "navigation_bar.automated_deletion": "Bidalketa automatikoaren ezabaketa",
"navigation_bar.blocks": "Blokeatutako erabiltzaileak",
"navigation_bar.bookmarks": "Laster-markak",
- "navigation_bar.community_timeline": "Denbora-lerro lokala",
- "navigation_bar.compose": "Idatzi bidalketa berria",
"navigation_bar.direct": "Aipamen pribatuak",
- "navigation_bar.discover": "Aurkitu",
"navigation_bar.domain_blocks": "Ezkutatutako domeinuak",
- "navigation_bar.explore": "Arakatu",
"navigation_bar.favourites": "Gogokoak",
"navigation_bar.filters": "Mutututako hitzak",
"navigation_bar.follow_requests": "Jarraitzeko eskaerak",
"navigation_bar.followed_tags": "Jarraitutako traolak",
"navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak",
+ "navigation_bar.import_export": "Inportazioa eta esportazioa",
"navigation_bar.lists": "Zerrendak",
+ "navigation_bar.live_feed_local": "Zuzeneko jarioa (lokala)",
+ "navigation_bar.live_feed_public": "Zuzeneko jarioa (publikoa)",
"navigation_bar.logout": "Amaitu saioa",
"navigation_bar.moderation": "Moderazioa",
+ "navigation_bar.more": "Gehiago",
"navigation_bar.mutes": "Mutututako erabiltzaileak",
"navigation_bar.opened_in_classic_interface": "Argitalpenak, kontuak eta beste orri jakin batzuk lehenespenez irekitzen dira web-interfaze klasikoan.",
- "navigation_bar.personal": "Pertsonala",
- "navigation_bar.pins": "Finkatutako bidalketak",
"navigation_bar.preferences": "Hobespenak",
- "navigation_bar.public_timeline": "Federatutako denbora-lerroa",
+ "navigation_bar.privacy_and_reach": "Pribatutasuna eta irismena",
"navigation_bar.search": "Bilatu",
- "navigation_bar.security": "Segurtasuna",
+ "navigation_bar.search_trends": "Bilatu / Joera",
"not_signed_in_indicator.not_signed_in": "Baliabide honetara sarbidea izateko saioa hasi behar duzu.",
"notification.admin.report": "{name} erabiltzaileak {target} salatu du",
"notification.admin.report_account": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat} other {# bidalketa}} salatu zituen {category} delakoagatik",
@@ -512,6 +569,7 @@
"notification.admin.sign_up.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiago} other {# erabiltzaile gehiago}} erregistratu dira",
"notification.favourite": "{name}(e)k zure bidalketa gogoko du",
"notification.favourite.name_and_others_with_link": "{name} eta
{count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zure bidalketa gogoko dute",
+ "notification.favourite_pm": "{name}-ek zure aipamen pribatua gogokoetan jarri du",
"notification.follow": "{name}(e)k jarraitzen dizu",
"notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du",
"notification.follow_request.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zu jarraitzeko eskaera egin dute",
@@ -520,6 +578,7 @@
"notification.label.private_reply": "Erantzun pribatua",
"notification.label.reply": "Erantzuna",
"notification.mention": "Aipamena",
+ "notification.mentioned_you": "{name}(e)k aipatu zaitu",
"notification.moderation-warning.learn_more": "Informazio gehiago",
"notification.moderation_warning": "Moderazio-abisu bat jaso duzu",
"notification.moderation_warning.action_delete_statuses": "Argitalpen batzuk kendu dira.",
@@ -566,6 +625,7 @@
"notifications.column_settings.filter_bar.category": "Iragazki-barra bizkorra",
"notifications.column_settings.follow": "Jarraitzaile berriak:",
"notifications.column_settings.follow_request": "Jarraitzeko eskaera berriak:",
+ "notifications.column_settings.group": "Taldea",
"notifications.column_settings.mention": "Aipamenak:",
"notifications.column_settings.poll": "Inkestaren emaitzak:",
"notifications.column_settings.push": "Push jakinarazpenak",
@@ -716,6 +776,7 @@
"report_notification.categories.violation": "Arau haustea",
"report_notification.categories.violation_sentence": "arau haustea",
"report_notification.open": "Ireki salaketa",
+ "search.clear": "Garbitu bilaketa",
"search.no_recent_searches": "Duela gutxiko bilaketarik ez",
"search.placeholder": "Bilatu",
"search.quick_action.account_search": "{x}-(r)ekin bat datozen profilak",
@@ -780,6 +841,8 @@
"status.mute_conversation": "Mututu elkarrizketa",
"status.open": "Hedatu bidalketa hau",
"status.pin": "Finkatu profilean",
+ "status.quote_error.not_found": "Bidalketa hau ezin da erakutsi.",
+ "status.quote_error.pending_approval": "Bidalketa hau egile originalak onartzeko zain dago.",
"status.read_more": "Irakurri gehiago",
"status.reblog": "Bultzada",
"status.reblog_private": "Bultzada jatorrizko hartzaileei",
@@ -808,7 +871,11 @@
"subscribed_languages.save": "Gorde aldaketak",
"subscribed_languages.target": "Aldatu {target}(e)n harpidetutako hizkuntzak",
"tabs_bar.home": "Hasiera",
+ "tabs_bar.menu": "Menua",
"tabs_bar.notifications": "Jakinarazpenak",
+ "tabs_bar.publish": "Bidalketa berria",
+ "tabs_bar.search": "Bilatu",
+ "terms_of_service.title": "Zerbitzuaren baldintzak",
"time_remaining.days": "{number, plural, one {egun #} other {# egun}} amaitzeko",
"time_remaining.hours": "{number, plural, one {ordu #} other {# ordu}} amaitzeko",
"time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko",
@@ -835,5 +902,8 @@
"video.fullscreen": "Pantaila osoa",
"video.hide": "Ezkutatu bideoa",
"video.pause": "Pausatu",
- "video.play": "Jo"
+ "video.play": "Jo",
+ "video.unmute": "Soinua ezarri",
+ "video.volume_down": "Bolumena jaitsi",
+ "video.volume_up": "Bolumena Igo"
}
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index e06c5b4ceb5..a6c556ac0aa 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -1,6 +1,7 @@
{
"about.blocks": "کارسازهای نظارت شده",
"about.contact": "تماس:",
+ "about.default_locale": "پیشفرض",
"about.disclaimer": "ماستودون نرمافزار آزاد و نشان تجاری یک شرکت غیر انتفاعی با مسئولیت محدود آلمانی است.",
"about.domain_blocks.no_reason_available": "دلیلی موجود نیست",
"about.domain_blocks.preamble": "ماستودون عموماً میگذارد محتوا را از از هر کارساز دیگری در دنیای شبکههای اجتماعی غیرمتمرکز دیده و با آنان برهمکنش داشته باشید. اینها استثناهایی هستند که روی این کارساز خاص وضع شدهاند.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "محدود",
"about.domain_blocks.suspended.explanation": "هیچ دادهای از این کارساز پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهمکنش یا ارتباط با کاربران این کارساز را غیرممکن خواهد کرد.",
"about.domain_blocks.suspended.title": "معلق",
+ "about.language_label": "زبان",
"about.not_available": "این اطّلاعات روی این کارساز موجود نشده.",
"about.powered_by": "رسانهٔ اجتماعی نامتمرکز قدرت گرفته از {mastodon}",
"about.rules": "قوانین کارساز",
@@ -41,6 +43,7 @@
"account.followers": "پیگیرندگان",
"account.followers.empty": "هنوز کسی پیگیر این کاربر نیست.",
"account.followers_counter": "{count, plural, one {{counter} پیگیرنده} other {{counter} پیگیرنده}}",
+ "account.followers_you_know_counter": "{counter} را میشناسید",
"account.following": "پی میگیرید",
"account.following_counter": "{count, plural, one {{counter} پیگرفته} other {{counter} پیگرفته}}",
"account.follows.empty": "این کاربر هنوز پیگیر کسی نیست.",
@@ -181,7 +184,6 @@
"column_header.show_settings": "نمایش تنظیمات",
"column_header.unpin": "برداشتن سنجاق",
"column_search.cancel": "لغو",
- "column_subheading.settings": "تنظیمات",
"community.column_settings.local_only": "فقط محلی",
"community.column_settings.media_only": "فقط رسانه",
"community.column_settings.remote_only": "تنها دوردست",
@@ -217,11 +219,15 @@
"confirmations.delete_list.confirm": "حذف",
"confirmations.delete_list.message": "مطمئنید میخواهید این سیاهه را برای همیشه حذف کنید؟",
"confirmations.delete_list.title": "حذف سیاهه؟",
+ "confirmations.discard_draft.confirm": "دور انداختن و ادامه",
+ "confirmations.discard_draft.edit.cancel": "ادامهٔ ویرایش",
+ "confirmations.discard_draft.edit.message": "ادامه دادن هر تغییری که روی فرستهٔ در حال ویرایش دادهاید را دور خواهد ریخت.",
+ "confirmations.discard_draft.edit.title": "دور ریختن تغییرات فرستهتان؟",
+ "confirmations.discard_draft.post.cancel": "از سر گیری پیشنویس",
+ "confirmations.discard_draft.post.message": "ادامه دادن باعث دور ریخته شدن تغییرات روی فرستهای که دارید مینویسید خواهد شد.",
+ "confirmations.discard_draft.post.title": "دور ریختن فرستهٔ پیشنویستان؟",
"confirmations.discard_edit_media.confirm": "دور انداختن",
"confirmations.discard_edit_media.message": "تغییرات ذخیره نشدهای در توضیحات یا پیشنمایش رسانه دارید. همگی نادیده گرفته شوند؟",
- "confirmations.edit.confirm": "ویرایش",
- "confirmations.edit.message": "در صورت ویرایش، پیامی که در حال نوشتنش بودید از بین خواهد رفت. میخواهید ادامه دهید؟",
- "confirmations.edit.title": "رونویسی فرسته؟",
"confirmations.follow_to_list.confirm": "پیگیری و افزودن به سیاهه",
"confirmations.follow_to_list.message": "برای افزودن {name} به سیاهه باید پیش گرفته باشید.",
"confirmations.follow_to_list.title": "پیگیری کاربر؟",
@@ -239,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "برداشتن پیگیرنده",
"confirmations.remove_from_followers.message": "دیگر {name} پیتان نخواهد گرفت. مطمئنید که میخواهید ادامه دهید؟",
"confirmations.remove_from_followers.title": "برداشتن پیگیرنده؟",
- "confirmations.reply.confirm": "پاسخ",
- "confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. میخواهید ادامه دهید؟",
- "confirmations.reply.title": "رونویسی فرسته؟",
"confirmations.unfollow.confirm": "پینگرفتن",
"confirmations.unfollow.message": "مطمئنید که میخواهید به پیگیری از {name} پایان دهید؟",
"confirmations.unfollow.title": "ناپیگیری کاربر؟",
@@ -303,6 +306,8 @@
"emoji_button.search_results": "نتایج جستوجو",
"emoji_button.symbols": "نمادها",
"emoji_button.travel": "سفر و مکان",
+ "empty_column.account_featured.me": "شما هنوز هیچ چیزی را پیشنهاد نکردهاید. میدانستید که میتوانید برچسبهایی که بیشتر استفاده میکنید و حتی حسابهای کاربری دوستانتان را در نمایه خودتان پیشنهاد کنید؟",
+ "empty_column.account_featured.other": "{acct} هنوز هیچ چیزی را پیشنهاد نکرده است. آیا میدانستید که میتوانید برچسبهایی را که بیشتر استفاده میکنید و حتی حسابهای کاربری دوستانتان را در نمایه خود پیشنهاد کنید؟",
"empty_column.account_featured_other.unknown": "این حساب هنوز چیزی را پیشنهاد نکرده.",
"empty_column.account_hides_collections": "کاربر خواسته که این اطّلاعات در دسترس نباشند",
"empty_column.account_suspended": "حساب معلق شد",
@@ -332,9 +337,15 @@
"errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال",
"errors.unexpected_crash.report_issue": "گزارش مشکل",
"explore.suggested_follows": "افراد",
+ "explore.title": "پرطرفدار",
"explore.trending_links": "اخبار",
"explore.trending_statuses": "فرستهها",
"explore.trending_tags": "برچسبها",
+ "featured_carousel.header": "{count, plural, one {فرسته سنجاقشده} other {فرستههای سنجاقشده}}",
+ "featured_carousel.next": "بعدی",
+ "featured_carousel.post": "فرسته",
+ "featured_carousel.previous": "قبلی",
+ "featured_carousel.slide": "{index} از {total}",
"filter_modal.added.context_mismatch_explanation": "این دستهٔ پالایه به بافتاری که در آن به این فرسته دسترسی دارید اعمال نمیشود. اگر میخواهید فرسته در این بافتار هم پالوده شود، باید پالایه را ویرایش کنید.",
"filter_modal.added.context_mismatch_title": "بافتار نامطابق!",
"filter_modal.added.expired_explanation": "این دستهٔ پالایه منقضی شده است. برای اعمالش باید تاریخ انقضا را عوض کنید.",
@@ -415,6 +426,7 @@
"hints.profiles.see_more_posts": "دیدن فرستههای بیشتر روی {domain}",
"hints.threads.replies_may_be_missing": "شاید پاسخها از دیگر کارسازها نباشند.",
"hints.threads.see_more": "دیدن پاسخهای بیشتر روی {domain}",
+ "home.column_settings.show_quotes": "نمایش نقلقولها",
"home.column_settings.show_reblogs": "نمایش تقویتها",
"home.column_settings.show_replies": "نمایش پاسخها",
"home.hide_announcements": "نهفتن اعلامیهها",
@@ -537,32 +549,36 @@
"mute_modal.you_wont_see_mentions": "فرستههایی که به او اشاره کردهاند را نخواهید دید.",
"mute_modal.you_wont_see_posts": "هنوز میتوانند فرستههایتان را ببینند، ولی فرستههایشان را نمیبینید.",
"navigation_bar.about": "درباره",
+ "navigation_bar.account_settings": "گذرواژه و امنیت",
"navigation_bar.administration": "مدیریت",
"navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته",
+ "navigation_bar.automated_deletion": "حذف خودکار فرسته",
"navigation_bar.blocks": "کاربران مسدود شده",
"navigation_bar.bookmarks": "نشانکها",
- "navigation_bar.community_timeline": "خط زمانی محلی",
- "navigation_bar.compose": "نوشتن فرستهٔ تازه",
"navigation_bar.direct": "اشارههای خصوصی",
- "navigation_bar.discover": "گشت و گذار",
"navigation_bar.domain_blocks": "دامنههای مسدود شده",
- "navigation_bar.explore": "کاوش",
"navigation_bar.favourites": "برگزیدهها",
"navigation_bar.filters": "واژههای خموش",
"navigation_bar.follow_requests": "درخواستهای پیگیری",
"navigation_bar.followed_tags": "برچسبهای پیگرفته",
"navigation_bar.follows_and_followers": "پیگرفتگان و پیگیرندگان",
+ "navigation_bar.import_export": "درونریزی و برونبری",
"navigation_bar.lists": "سیاههها",
+ "navigation_bar.live_feed_local": "خوراک زنده (محلی)",
+ "navigation_bar.live_feed_public": "خوراک زنده (عمومی)",
"navigation_bar.logout": "خروج",
"navigation_bar.moderation": "نظارت",
+ "navigation_bar.more": "بیشتر",
"navigation_bar.mutes": "کاربران خموشانده",
"navigation_bar.opened_in_classic_interface": "فرستهها، حسابها و دیگر صفحههای خاص به طور پیشگزیده در میانای وب کلاسیک گشوده میشوند.",
- "navigation_bar.personal": "شخصی",
- "navigation_bar.pins": "فرستههای سنجاق شده",
"navigation_bar.preferences": "ترجیحات",
- "navigation_bar.public_timeline": "خط زمانی همگانی",
+ "navigation_bar.privacy_and_reach": "محرمانگی و دسترسی",
"navigation_bar.search": "جستوجو",
- "navigation_bar.security": "امنیت",
+ "navigation_bar.search_trends": "جستجو \\ پرطرفدار",
+ "navigation_panel.collapse_followed_tags": "جمع کردن فهرست برچسبهای پیگرفته",
+ "navigation_panel.collapse_lists": "جمع کردن فهرست سیاهه",
+ "navigation_panel.expand_followed_tags": "گسترش فهرست برچسبهای پیگرفته",
+ "navigation_panel.expand_lists": "گسترش فهرست سیاهه",
"not_signed_in_indicator.not_signed_in": "برای دسترسی به این منبع باید وارد شوید.",
"notification.admin.report": "{name}، {target} را گزارش داد",
"notification.admin.report_account": "{name} {count, plural, one {یک پست} other {پست}} از {target} برای {category} را گزارش داد",
@@ -789,6 +805,7 @@
"report_notification.categories.violation": "تخطّی از قانون",
"report_notification.categories.violation_sentence": "تخطّی از قانون",
"report_notification.open": "گشودن گزارش",
+ "search.clear": "پاکسازی جستوجو",
"search.no_recent_searches": "جستوجوی اخیری نیست",
"search.placeholder": "جستوجو",
"search.quick_action.account_search": "نمایههای جور با {x}",
@@ -855,6 +872,13 @@
"status.mute_conversation": "خموشاندن گفتوگو",
"status.open": "گسترش این فرسته",
"status.pin": "سنجاق به نمایه",
+ "status.quote_error.filtered": "نهفته بنا بر یکی از پالایههایتان",
+ "status.quote_error.not_found": "این فرسته قابل نمایش نیست.",
+ "status.quote_error.pending_approval": "این فرسته منظر تأیید نگارندهٔ اصلی است.",
+ "status.quote_error.rejected": "از آنجا که نگارندهٔ اصلی فرسته اجازهٔ نقل قولش را نمیدهد این فرسته قابل نمایش نیست.",
+ "status.quote_error.removed": "این فرسته به دست نگارندهاش برداشته شده.",
+ "status.quote_error.unauthorized": "از آنجا که اجازهٔ دیدن این فرسته را ندارید قابل نمایش نیست.",
+ "status.quote_post_author": "فرسته توسط {name}",
"status.read_more": "بیشتر بخوانید",
"status.reblog": "تقویت",
"status.reblog_private": "تقویت برای مخاطبان نخستین",
@@ -884,7 +908,10 @@
"subscribed_languages.save": "ذخیرهٔ تغییرات",
"subscribed_languages.target": "تغییر زبانهای مشترک شده برای {target}",
"tabs_bar.home": "خانه",
+ "tabs_bar.menu": "منو",
"tabs_bar.notifications": "آگاهیها",
+ "tabs_bar.publish": "فرسته جدید",
+ "tabs_bar.search": "جستجو",
"terms_of_service.effective_as_of": "اعمال شده از {date}",
"terms_of_service.title": "شرایط خدمات",
"terms_of_service.upcoming_changes_on": "تغییرات پیش رو در {date}",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index e8e2c0a6269..7de3fc07ea9 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Näytä asetukset",
"column_header.unpin": "Irrota",
"column_search.cancel": "Peruuta",
- "column_subheading.settings": "Asetukset",
"community.column_settings.local_only": "Vain paikalliset",
"community.column_settings.media_only": "Vain media",
"community.column_settings.remote_only": "Vain etätilit",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Poista",
"confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?",
"confirmations.delete_list.title": "Poistetaanko lista?",
+ "confirmations.discard_draft.confirm": "Hylkää ja jatka",
+ "confirmations.discard_draft.edit.cancel": "Palaa muokkaamaan",
+ "confirmations.discard_draft.edit.message": "Jatkaminen tuhoaa kaikki muutokset, joita olet tehnyt julkaisuun, jota olet parhaillaan muokkaamassa.",
+ "confirmations.discard_draft.edit.title": "Hylätäänkö luonnosjulkaisusi muutokset?",
+ "confirmations.discard_draft.post.cancel": "Palaa lunnokseen",
+ "confirmations.discard_draft.post.message": "Jatkaminen tuhoaa julkaisun, jota olet parhaillaan laatimassa.",
+ "confirmations.discard_draft.post.title": "Hylätäänkö luonnosjulkaisusi?",
"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.edit.confirm": "Muokkaa",
- "confirmations.edit.message": "Jos muokkaat viestiä nyt, se korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?",
- "confirmations.edit.title": "Korvataanko julkaisu?",
"confirmations.follow_to_list.confirm": "Seuraa ja lisää listaan",
"confirmations.follow_to_list.message": "Sinun on seurattava käyttäjää {name}, jotta voit lisätä hänet listaan.",
"confirmations.follow_to_list.title": "Seurataanko käyttäjää?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Poista seuraaja",
"confirmations.remove_from_followers.message": "{name} lakkaa seuraamasta sinua. Haluatko varmasti jatkaa?",
"confirmations.remove_from_followers.title": "Poistetaanko seuraaja?",
- "confirmations.reply.confirm": "Vastaa",
- "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?",
- "confirmations.reply.title": "Korvataanko julkaisu?",
"confirmations.unfollow.confirm": "Lopeta seuraaminen",
"confirmations.unfollow.message": "Haluatko varmasti lopettaa profiilin {name} seuraamisen?",
"confirmations.unfollow.title": "Lopetetaanko käyttäjän seuraaminen?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Julkaisujen automaattipoisto",
"navigation_bar.blocks": "Estetyt käyttäjät",
"navigation_bar.bookmarks": "Kirjanmerkit",
- "navigation_bar.community_timeline": "Paikallinen aikajana",
- "navigation_bar.compose": "Luo uusi julkaisu",
"navigation_bar.direct": "Yksityismaininnat",
- "navigation_bar.discover": "Löydä uutta",
"navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
- "navigation_bar.explore": "Selaa",
"navigation_bar.favourites": "Suosikit",
"navigation_bar.filters": "Mykistetyt sanat",
"navigation_bar.follow_requests": "Seurantapyynnöt",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Seurattavat ja seuraajat",
"navigation_bar.import_export": "Tuonti ja vienti",
"navigation_bar.lists": "Listat",
+ "navigation_bar.live_feed_local": "Livesyöte (paikallinen)",
+ "navigation_bar.live_feed_public": "Livesyöte (julkinen)",
"navigation_bar.logout": "Kirjaudu ulos",
"navigation_bar.moderation": "Moderointi",
"navigation_bar.more": "Lisää",
"navigation_bar.mutes": "Mykistetyt käyttäjät",
"navigation_bar.opened_in_classic_interface": "Julkaisut, profiilit ja tietyt muut sivut avautuvat oletuksena perinteiseen selainkäyttöliittymään.",
- "navigation_bar.personal": "Henkilökohtaiset",
- "navigation_bar.pins": "Kiinnitetyt julkaisut",
"navigation_bar.preferences": "Asetukset",
"navigation_bar.privacy_and_reach": "Yksityisyys ja tavoittavuus",
- "navigation_bar.public_timeline": "Yleinen aikajana",
"navigation_bar.search": "Haku",
"navigation_bar.search_trends": "Haku / Suosittua",
- "navigation_bar.security": "Turvallisuus",
"navigation_panel.collapse_followed_tags": "Supista seurattavien aihetunnisteiden valikko",
"navigation_panel.collapse_lists": "Supista listavalikko",
"navigation_panel.expand_followed_tags": "Laajenna seurattavien aihetunnisteiden valikko",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Sääntörikkomus",
"report_notification.categories.violation_sentence": "sääntörikkomus",
"report_notification.open": "Avaa raportti",
+ "search.clear": "Tyhjennä haku",
"search.no_recent_searches": "Ei viimeaikaisia hakuja",
"search.placeholder": "Hae",
"search.quick_action.account_search": "Profiilit haulla {x}",
diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json
index bc66eb679cf..48e720de746 100644
--- a/app/javascript/mastodon/locales/fil.json
+++ b/app/javascript/mastodon/locales/fil.json
@@ -108,7 +108,6 @@
"column_header.pin": "I-paskil",
"column_header.show_settings": "Ipakita ang mga setting",
"column_header.unpin": "Tanggalin sa pagkapaskil",
- "column_subheading.settings": "Mga setting",
"community.column_settings.local_only": "Lokal lamang",
"community.column_settings.media_only": "Medya Lamang",
"community.column_settings.remote_only": "Liblib lamang",
@@ -134,8 +133,6 @@
"confirmations.delete_list.confirm": "Tanggalin",
"confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?",
"confirmations.discard_edit_media.confirm": "Ipagpaliban",
- "confirmations.edit.confirm": "Baguhin",
- "confirmations.reply.confirm": "Tumugon",
"content_warning.show_more": "Magpakita ng higit pa",
"conversation.mark_as_read": "Markahan bilang nabasa na",
"conversation.open": "Tingnan ang pag-uusap",
@@ -244,13 +241,10 @@
"navigation_bar.about": "Tungkol dito",
"navigation_bar.blocks": "Nakaharang na mga tagagamit",
"navigation_bar.direct": "Mga palihim na banggit",
- "navigation_bar.discover": "Tuklasin",
- "navigation_bar.explore": "Tuklasin",
"navigation_bar.favourites": "Mga paborito",
"navigation_bar.follow_requests": "Mga hiling sa pagsunod",
"navigation_bar.follows_and_followers": "Mga sinusundan at tagasunod",
"navigation_bar.lists": "Mga listahan",
- "navigation_bar.public_timeline": "Pinagsamang timeline",
"navigation_bar.search": "Maghanap",
"notification.admin.report": "Iniulat ni {name} si {target}",
"notification.admin.report_statuses_other": "Iniulat ni {name} si {target}",
diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json
index 4bbfb8c49da..afd75afc42b 100644
--- a/app/javascript/mastodon/locales/fo.json
+++ b/app/javascript/mastodon/locales/fo.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Vís stillingar",
"column_header.unpin": "Loys",
"column_search.cancel": "Angra",
- "column_subheading.settings": "Stillingar",
"community.column_settings.local_only": "Einans lokalt",
"community.column_settings.media_only": "Einans miðlar",
"community.column_settings.remote_only": "Einans útifrá",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Strika",
"confirmations.delete_list.message": "Ert tú vís/ur í, at tú vilt strika hetta uppslagið?",
"confirmations.delete_list.title": "Strika lista?",
+ "confirmations.discard_draft.confirm": "Vraka og halt fram",
+ "confirmations.discard_draft.edit.cancel": "Tak uppaftur rætting",
+ "confirmations.discard_draft.edit.message": "Heldur tú fram, vrakast broytingar, sum tú hevur gjørt í postinum, ið tú er í ferð við at rætta.",
+ "confirmations.discard_draft.edit.title": "Vraka broytingar í postinum hjá tær?",
+ "confirmations.discard_draft.post.cancel": "Halt fram við kladduni",
+ "confirmations.discard_draft.post.message": "Heldur tú fram, vrakast posturin, sum tú er í ferð við at stovna.",
+ "confirmations.discard_draft.post.title": "Vraka kladdupostin?",
"confirmations.discard_edit_media.confirm": "Vraka",
"confirmations.discard_edit_media.message": "Tú hevur broytingar í miðlalýsingini ella undansýningini, sum ikki eru goymdar. Vilt tú kortini vraka?",
- "confirmations.edit.confirm": "Rætta",
- "confirmations.edit.message": "Rættingar, sum verða gjørdar nú, skriva yvir boðini, sum tú ert í holt við. Ert tú vís/ur í, at tú vilt halda fram?",
- "confirmations.edit.title": "Skriva omaná post?",
"confirmations.follow_to_list.confirm": "Fylg og legg afturat lista",
"confirmations.follow_to_list.message": "Tú mást fylgja {name} fyri at leggja tey afturat einum lista.",
"confirmations.follow_to_list.title": "Fylg brúkara?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Strika fylgjara",
"confirmations.remove_from_followers.message": "{name} fer ikki longur at fylgja tær. Er tú vís/ur í at tú vilt halda fram?",
"confirmations.remove_from_followers.title": "Strika fylgjara?",
- "confirmations.reply.confirm": "Svara",
- "confirmations.reply.message": "Svarar tú nú, verða boðini, sum tú ert í holt við at skriva yvirskrivað. Ert tú vís/ur í, at tú vilt halda fram?",
- "confirmations.reply.title": "Skriva omaná post?",
"confirmations.unfollow.confirm": "Fylg ikki",
"confirmations.unfollow.message": "Ert tú vís/ur í, at tú vil steðga við at fylgja {name}?",
"confirmations.unfollow.title": "Gevst at fylgja brúkara?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Sjálvvirkandi striking av postum",
"navigation_bar.blocks": "Bannaðir brúkarar",
"navigation_bar.bookmarks": "Goymd",
- "navigation_bar.community_timeline": "Lokal tíðarlinja",
- "navigation_bar.compose": "Skriva nýggjan post",
"navigation_bar.direct": "Privatar umrøður",
- "navigation_bar.discover": "Uppdaga",
"navigation_bar.domain_blocks": "Bannað økisnøvn",
- "navigation_bar.explore": "Rannsaka",
"navigation_bar.favourites": "Dámdir postar",
"navigation_bar.filters": "Doyvd orð",
"navigation_bar.follow_requests": "Umbønir um at fylgja",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Fylgd og fylgjarar",
"navigation_bar.import_export": "Innflyt og útflyt",
"navigation_bar.lists": "Listar",
+ "navigation_bar.live_feed_local": "Beinleiðis rásir (lokalar)",
+ "navigation_bar.live_feed_public": "Beinleiðis rásir (almennar)",
"navigation_bar.logout": "Rita út",
"navigation_bar.moderation": "Umsjón",
"navigation_bar.more": "Meira",
"navigation_bar.mutes": "Doyvdir brúkarar",
"navigation_bar.opened_in_classic_interface": "Postar, kontur og aðrar serstakar síður verða - um ikki annað er ásett - latnar upp í klassiska vev-markamótinum.",
- "navigation_bar.personal": "Persónligt",
- "navigation_bar.pins": "Festir postar",
"navigation_bar.preferences": "Stillingar",
"navigation_bar.privacy_and_reach": "Privatlív og skotmál",
- "navigation_bar.public_timeline": "Felags tíðarlinja",
"navigation_bar.search": "Leita",
"navigation_bar.search_trends": "Leita / Rák",
- "navigation_bar.security": "Trygd",
"navigation_panel.collapse_followed_tags": "Minka valmynd við fylgdum frámerkjum",
"navigation_panel.collapse_lists": "Minka listavalmynd",
"navigation_panel.expand_followed_tags": "Víðka valmynd við fylgdum frámerkjum",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Brotin regla",
"report_notification.categories.violation_sentence": "brot á reglu",
"report_notification.open": "Opna melding",
+ "search.clear": "Nullstilla leiting",
"search.no_recent_searches": "Ongar nýggjar leitingar",
"search.placeholder": "Leita",
"search.quick_action.account_search": "Vangar, ið samsvara {x}",
diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json
index 760e6dadab7..0fdd593859a 100644
--- a/app/javascript/mastodon/locales/fr-CA.json
+++ b/app/javascript/mastodon/locales/fr-CA.json
@@ -1,6 +1,7 @@
{
"about.blocks": "Serveurs modérés",
"about.contact": "Contact :",
+ "about.default_locale": "Défaut",
"about.disclaimer": "Mastodon est un logiciel open-source gratuit et une marque déposée de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Raison non disponible",
"about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec des comptes de n'importe quel serveur dans le fediverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "Limité",
"about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, stockée ou échangée, rendant toute interaction ou communication avec des utilisateurs de ce serveur impossible.",
"about.domain_blocks.suspended.title": "Suspendu",
+ "about.language_label": "Langue",
"about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.",
"about.powered_by": "Réseau social décentralisé propulsé par {mastodon}",
"about.rules": "Règles du serveur",
@@ -19,14 +21,20 @@
"account.block_domain": "Bloquer le domaine {domain}",
"account.block_short": "Bloquer",
"account.blocked": "Bloqué·e",
+ "account.blocking": "Bloquer",
"account.cancel_follow_request": "Retirer cette demande d'abonnement",
"account.copy": "Copier le lien vers le profil",
"account.direct": "Mention privée @{name}",
"account.disable_notifications": "Ne plus me notifier quand @{name} publie",
+ "account.domain_blocking": "Bloquer domaine",
"account.edit_profile": "Modifier le profil",
"account.enable_notifications": "Me notifier quand @{name} publie",
"account.endorse": "Inclure sur profil",
+ "account.familiar_followers_many": "Suivi par {name1},{name2}, et {othersCount, plural,one {une personne connue} other {# autres personnel connues}}",
+ "account.familiar_followers_one": "Suivi par {name1}",
+ "account.familiar_followers_two": "Suivi par {name1} et {name2}",
"account.featured": "En vedette",
+ "account.featured.accounts": "Profiles",
"account.featured.hashtags": "Hashtags",
"account.featured_tags.last_status_at": "Dernière publication {date}",
"account.featured_tags.last_status_never": "Aucune publication",
@@ -35,9 +43,11 @@
"account.followers": "abonné·e·s",
"account.followers.empty": "Personne ne suit ce compte pour l'instant.",
"account.followers_counter": "{count, plural, one {{counter} abonné·e} other {{counter} abonné·e·s}}",
+ "account.followers_you_know_counter": "Vous connaissez {counter}",
"account.following": "Abonné·e",
"account.following_counter": "{count, plural, one {{counter} abonnement} other {{counter} abonnements}}",
"account.follows.empty": "Ce compte ne suit personne présentement.",
+ "account.follows_you": "Vous suit",
"account.go_to_profile": "Voir ce profil",
"account.hide_reblogs": "Masquer les boosts de @{name}",
"account.in_memoriam": "En souvenir de",
@@ -52,13 +62,17 @@
"account.mute_notifications_short": "Rendre les notifications muettes",
"account.mute_short": "Rendre muet",
"account.muted": "Masqué·e",
+ "account.muting": "Sourdine",
+ "account.mutual": "Vous vous suivez mutuellement",
"account.no_bio": "Description manquante.",
"account.open_original_page": "Ouvrir la page d'origine",
"account.posts": "Publications",
"account.posts_with_replies": "Publications et réponses",
+ "account.remove_from_followers": "Retirer {name} des suiveurs",
"account.report": "Signaler @{name}",
"account.requested": "En attente d’approbation. Cliquez pour annuler la demande",
"account.requested_follow": "{name} a demandé à vous suivre",
+ "account.requests_to_follow_you": "Demande a vous suivre",
"account.share": "Partager le profil de @{name}",
"account.show_reblogs": "Afficher les boosts de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
@@ -110,7 +124,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag le plus utilisé",
"annual_report.summary.most_used_hashtag.none": "Aucun",
"annual_report.summary.new_posts.new_posts": "nouveaux messages",
- "annual_report.summary.percentile.text": "
Cela vous place dans le top des utilisateurs de {domain}. ",
+ "annual_report.summary.percentile.text": "Cela vous place dans le top des utilisateurs de {domain}. ",
"annual_report.summary.percentile.we_wont_tell_bernie": "Nous ne le dirons pas à Bernie.",
"annual_report.summary.thanks": "Merci de faire partie de Mastodon!",
"attachments_list.unprocessed": "(non traité)",
@@ -170,7 +184,6 @@
"column_header.show_settings": "Afficher les paramètres",
"column_header.unpin": "Désépingler",
"column_search.cancel": "Annuler",
- "column_subheading.settings": "Paramètres",
"community.column_settings.local_only": "Local seulement",
"community.column_settings.media_only": "Média seulement",
"community.column_settings.remote_only": "À distance seulement",
@@ -206,11 +219,15 @@
"confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?",
"confirmations.delete_list.title": "Supprimer la liste ?",
+ "confirmations.discard_draft.confirm": "Effacer et continuer",
+ "confirmations.discard_draft.edit.cancel": "Retour vers l'éditeur",
+ "confirmations.discard_draft.edit.message": "Continued va perdre les changements que vous avez faits dans le message courant.",
+ "confirmations.discard_draft.edit.title": "Jeter les changements faits au message?",
+ "confirmations.discard_draft.post.cancel": "Retour au brouillon",
+ "confirmations.discard_draft.post.message": "En continuant, vous perdez le message que vous êtes en train d'écrire.",
+ "confirmations.discard_draft.post.title": "Jeter le brouillon de message?",
"confirmations.discard_edit_media.confirm": "Rejeter",
"confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, voulez-vous quand même les supprimer?",
- "confirmations.edit.confirm": "Éditer",
- "confirmations.edit.message": "Modifier maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?",
- "confirmations.edit.title": "Remplacer le message ?",
"confirmations.follow_to_list.confirm": "Suivre et ajouter à la liste",
"confirmations.follow_to_list.message": "Vous devez suivre {name} pour l'ajouter à une liste.",
"confirmations.follow_to_list.title": "Suivre l'utilisateur ?",
@@ -225,9 +242,9 @@
"confirmations.redraft.confirm": "Supprimer et réécrire",
"confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer cette publication pour la réécrire? Ses ses mises en favori et boosts seront perdus et ses réponses seront orphelines.",
"confirmations.redraft.title": "Supprimer et réécrire le message ?",
- "confirmations.reply.confirm": "Répondre",
- "confirmations.reply.message": "Répondre maintenant écrasera le message que vous rédigez présentement. Voulez-vous vraiment continuer?",
- "confirmations.reply.title": "Remplacer le message ?",
+ "confirmations.remove_from_followers.confirm": "Supprimer l'abonné·e",
+ "confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Êtes-vous sûr de vouloir continuer ?",
+ "confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?",
"confirmations.unfollow.confirm": "Ne plus suivre",
"confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name}?",
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
@@ -289,6 +306,9 @@
"emoji_button.search_results": "Résultats",
"emoji_button.symbols": "Symboles",
"emoji_button.travel": "Voyage et lieux",
+ "empty_column.account_featured.me": "Vous n'avez pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?",
+ "empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?",
+ "empty_column.account_featured_other.unknown": "Ce compte n'a mis aucun contenu en avant pour l'instant.",
"empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations",
"empty_column.account_suspended": "Compte suspendu",
"empty_column.account_timeline": "Aucune publication ici!",
@@ -317,9 +337,14 @@
"errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier",
"errors.unexpected_crash.report_issue": "Signaler un problème",
"explore.suggested_follows": "Personnes",
+ "explore.title": "Tendances",
"explore.trending_links": "Nouvelles",
"explore.trending_statuses": "Messages",
"explore.trending_tags": "Hashtags",
+ "featured_carousel.next": "Suivant",
+ "featured_carousel.post": "Poste",
+ "featured_carousel.previous": "Précédent",
+ "featured_carousel.slide": "{index} de {total}",
"filter_modal.added.context_mismatch_explanation": "Cette catégorie de filtre ne s'applique pas au contexte dans lequel vous avez accédé à cette publication. Si vous voulez que la publication soit filtrée dans ce contexte également, vous devrez modifier le filtre.",
"filter_modal.added.context_mismatch_title": "Incompatibilité du contexte!",
"filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.",
@@ -372,6 +397,8 @@
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
"hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}",
+ "hashtag.browse": "Parcourir les posts dans #{hashtag}",
+ "hashtag.browse_from_account": "Parcourir les posts de @{name} dans #{hashtag}",
"hashtag.column_header.tag_mode.all": "et {additional}",
"hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sans {additional}",
@@ -384,7 +411,10 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourd’hui",
+ "hashtag.feature": "Mettre en avant sur votre profil",
"hashtag.follow": "Suivre ce hashtag",
+ "hashtag.mute": "Mettre #{hashtag} en sourdine",
+ "hashtag.unfeature": "Ne plus mettre en avant sur votre profil",
"hashtag.unfollow": "Ne plus suivre ce hashtag",
"hashtags.and_other": "…et {count, plural, other {# de plus}}",
"hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.",
@@ -395,6 +425,7 @@
"hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
"hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
"hints.threads.see_more": "Afficher plus de réponses sur {domain}",
+ "home.column_settings.show_quotes": "Afficher les citations",
"home.column_settings.show_reblogs": "Afficher boosts",
"home.column_settings.show_replies": "Afficher réponses",
"home.hide_announcements": "Masquer les annonces",
@@ -517,32 +548,32 @@
"mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
"navigation_bar.about": "À propos",
+ "navigation_bar.account_settings": "Mot de passe et sécurité",
"navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Ouvrir dans l’interface avancée",
+ "navigation_bar.automated_deletion": "Suppression automatique du message",
"navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Signets",
- "navigation_bar.community_timeline": "Fil local",
- "navigation_bar.compose": "Rédiger un nouveau message",
"navigation_bar.direct": "Mention privée",
- "navigation_bar.discover": "Découvrir",
"navigation_bar.domain_blocks": "Domaines bloqués",
- "navigation_bar.explore": "Explorer",
"navigation_bar.favourites": "Favoris",
"navigation_bar.filters": "Mots masqués",
"navigation_bar.follow_requests": "Demandes d'abonnements",
"navigation_bar.followed_tags": "Hashtags suivis",
"navigation_bar.follows_and_followers": "Abonnements et abonnés",
+ "navigation_bar.import_export": "Import et export",
"navigation_bar.lists": "Listes",
+ "navigation_bar.live_feed_local": "Flux en direct (local)",
+ "navigation_bar.live_feed_public": "Flux en direct (public)",
"navigation_bar.logout": "Se déconnecter",
"navigation_bar.moderation": "Modération",
+ "navigation_bar.more": "Plus",
"navigation_bar.mutes": "Utilisateurs masqués",
"navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans l’interface classique.",
- "navigation_bar.personal": "Personnel",
- "navigation_bar.pins": "Publications épinglés",
"navigation_bar.preferences": "Préférences",
- "navigation_bar.public_timeline": "Fil global",
+ "navigation_bar.privacy_and_reach": "Vie privée et visibilité",
"navigation_bar.search": "Rechercher",
- "navigation_bar.security": "Sécurité",
+ "navigation_bar.search_trends": "Recherche / Tendance",
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}",
"notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}",
@@ -835,6 +866,9 @@
"status.mute_conversation": "Masquer la conversation",
"status.open": "Afficher la publication entière",
"status.pin": "Épingler sur profil",
+ "status.quote_error.removed": "Ce message a été retiré par son auteur·ice.",
+ "status.quote_error.unauthorized": "Ce message ne peut pas être affiché car vous n'êtes pas autorisé·e à le voir.",
+ "status.quote_post_author": "Message par {name}",
"status.read_more": "En savoir plus",
"status.reblog": "Booster",
"status.reblog_private": "Booster avec visibilité originale",
@@ -864,7 +898,10 @@
"subscribed_languages.save": "Enregistrer les modifications",
"subscribed_languages.target": "Changer les langues abonnées pour {target}",
"tabs_bar.home": "Accueil",
+ "tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Notifications",
+ "tabs_bar.publish": "Nouveau message",
+ "tabs_bar.search": "Chercher",
"terms_of_service.effective_as_of": "En vigueur à compter du {date}",
"terms_of_service.title": "Conditions d'utilisation",
"terms_of_service.upcoming_changes_on": "Modifications à venir le {date}",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 5e8486a0d8f..6f1bbae61c1 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -1,6 +1,7 @@
{
"about.blocks": "Serveurs modérés",
"about.contact": "Contact :",
+ "about.default_locale": "Défaut",
"about.disclaimer": "Mastodon est un logiciel libre, open-source et une marque déposée de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Raison non disponible",
"about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur⋅rices de n'importe quel autre serveur dans le fédivers. Voici les exceptions qui ont été faites sur ce serveur-là.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "Limité",
"about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les comptes de ce serveur.",
"about.domain_blocks.suspended.title": "Suspendu",
+ "about.language_label": "Langue",
"about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.",
"about.powered_by": "Réseau social décentralisé propulsé par {mastodon}",
"about.rules": "Règles du serveur",
@@ -19,14 +21,20 @@
"account.block_domain": "Bloquer le domaine {domain}",
"account.block_short": "Bloquer",
"account.blocked": "Bloqué·e",
+ "account.blocking": "Bloquer",
"account.cancel_follow_request": "Annuler l'abonnement",
"account.copy": "Copier le lien vers le profil",
"account.direct": "Mention privée @{name}",
"account.disable_notifications": "Ne plus me notifier quand @{name} publie quelque chose",
+ "account.domain_blocking": "Bloquer domaine",
"account.edit_profile": "Modifier le profil",
"account.enable_notifications": "Me notifier quand @{name} publie quelque chose",
"account.endorse": "Recommander sur votre profil",
+ "account.familiar_followers_many": "Suivi par {name1},{name2}, et {othersCount, plural,one {une personne connue} other {# autres personnel connues}}",
+ "account.familiar_followers_one": "Suivi par {name1}",
+ "account.familiar_followers_two": "Suivi par {name1} et {name2}",
"account.featured": "En vedette",
+ "account.featured.accounts": "Profiles",
"account.featured.hashtags": "Hashtags",
"account.featured_tags.last_status_at": "Dernier message le {date}",
"account.featured_tags.last_status_never": "Aucun message",
@@ -35,9 +43,11 @@
"account.followers": "Abonné·e·s",
"account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour l’instant.",
"account.followers_counter": "{count, plural, one {{counter} abonné·e} other {{counter} abonné·e·s}}",
+ "account.followers_you_know_counter": "Vous connaissez {counter}",
"account.following": "Abonnements",
"account.following_counter": "{count, plural, one {{counter} abonnement} other {{counter} abonnements}}",
"account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.",
+ "account.follows_you": "Vous suit",
"account.go_to_profile": "Voir le profil",
"account.hide_reblogs": "Masquer les partages de @{name}",
"account.in_memoriam": "En mémoire de.",
@@ -52,13 +62,17 @@
"account.mute_notifications_short": "Désactiver les notifications",
"account.mute_short": "Mettre en sourdine",
"account.muted": "Masqué·e",
+ "account.muting": "Sourdine",
+ "account.mutual": "Vous vous suivez mutuellement",
"account.no_bio": "Aucune description fournie.",
"account.open_original_page": "Ouvrir la page d'origine",
"account.posts": "Messages",
"account.posts_with_replies": "Messages et réponses",
+ "account.remove_from_followers": "Retirer {name} des suiveurs",
"account.report": "Signaler @{name}",
"account.requested": "En attente d’approbation. Cliquez pour annuler la demande",
"account.requested_follow": "{name} a demandé à vous suivre",
+ "account.requests_to_follow_you": "Demande a vous suivre",
"account.share": "Partager le profil de @{name}",
"account.show_reblogs": "Afficher les partages de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
@@ -110,7 +124,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag le plus utilisé",
"annual_report.summary.most_used_hashtag.none": "Aucun",
"annual_report.summary.new_posts.new_posts": "nouveaux messages",
- "annual_report.summary.percentile.text": "Cela vous place dans le top des utilisateurs de {domain}. ",
+ "annual_report.summary.percentile.text": "Cela vous place dans le top des utilisateurs de {domain}. ",
"annual_report.summary.percentile.we_wont_tell_bernie": "Nous ne le dirons pas à Bernie.",
"annual_report.summary.thanks": "Merci de faire partie de Mastodon!",
"attachments_list.unprocessed": "(non traité)",
@@ -170,12 +184,11 @@
"column_header.show_settings": "Afficher les paramètres",
"column_header.unpin": "Désépingler",
"column_search.cancel": "Annuler",
- "column_subheading.settings": "Paramètres",
"community.column_settings.local_only": "Local seulement",
"community.column_settings.media_only": "Média uniquement",
"community.column_settings.remote_only": "Distant seulement",
"compose.language.change": "Changer de langue",
- "compose.language.search": "Rechercher des langues …",
+ "compose.language.search": "Rechercher des langues...",
"compose.published.body": "Message Publié.",
"compose.published.open": "Ouvrir",
"compose.saved.body": "Message enregistré.",
@@ -206,11 +219,15 @@
"confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste ?",
"confirmations.delete_list.title": "Supprimer la liste ?",
+ "confirmations.discard_draft.confirm": "Effacer et continuer",
+ "confirmations.discard_draft.edit.cancel": "Retour vers l'éditeur",
+ "confirmations.discard_draft.edit.message": "Continued va perdre les changements que vous avez faits dans le message courant.",
+ "confirmations.discard_draft.edit.title": "Jeter les changements faits au message?",
+ "confirmations.discard_draft.post.cancel": "Retour au brouillon",
+ "confirmations.discard_draft.post.message": "En continuant, vous perdez le message que vous êtes en train d'écrire.",
+ "confirmations.discard_draft.post.title": "Jeter le brouillon de message?",
"confirmations.discard_edit_media.confirm": "Rejeter",
"confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, les supprimer quand même ?",
- "confirmations.edit.confirm": "Modifier",
- "confirmations.edit.message": "Modifier maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?",
- "confirmations.edit.title": "Remplacer le message ?",
"confirmations.follow_to_list.confirm": "Suivre et ajouter à la liste",
"confirmations.follow_to_list.message": "Vous devez suivre {name} pour l'ajouter à une liste.",
"confirmations.follow_to_list.title": "Suivre l'utilisateur ?",
@@ -225,9 +242,9 @@
"confirmations.redraft.confirm": "Supprimer et ré-écrire",
"confirmations.redraft.message": "Voulez-vous vraiment supprimer le message pour le réécrire ? Ses partages ainsi que ses mises en favori seront perdues, et ses réponses seront orphelines.",
"confirmations.redraft.title": "Supprimer et réécrire le message ?",
- "confirmations.reply.confirm": "Répondre",
- "confirmations.reply.message": "Répondre maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?",
- "confirmations.reply.title": "Remplacer le message ?",
+ "confirmations.remove_from_followers.confirm": "Supprimer l'abonné·e",
+ "confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Êtes-vous sûr de vouloir continuer ?",
+ "confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?",
"confirmations.unfollow.confirm": "Ne plus suivre",
"confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name} ?",
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
@@ -289,6 +306,9 @@
"emoji_button.search_results": "Résultats de la recherche",
"emoji_button.symbols": "Symboles",
"emoji_button.travel": "Voyage et lieux",
+ "empty_column.account_featured.me": "Vous n'avez pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?",
+ "empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?",
+ "empty_column.account_featured_other.unknown": "Ce compte n'a mis aucun contenu en avant pour l'instant.",
"empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations",
"empty_column.account_suspended": "Compte suspendu",
"empty_column.account_timeline": "Aucun message ici !",
@@ -317,9 +337,14 @@
"errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier",
"errors.unexpected_crash.report_issue": "Signaler le problème",
"explore.suggested_follows": "Personnes",
+ "explore.title": "Tendances",
"explore.trending_links": "Nouvelles",
"explore.trending_statuses": "Messages",
"explore.trending_tags": "Hashtags",
+ "featured_carousel.next": "Suivant",
+ "featured_carousel.post": "Poste",
+ "featured_carousel.previous": "Précédent",
+ "featured_carousel.slide": "{index} de {total}",
"filter_modal.added.context_mismatch_explanation": "Cette catégorie de filtre ne s'applique pas au contexte dans lequel vous avez accédé à ce message. Si vous voulez que le message soit filtré dans ce contexte également, vous devrez modifier le filtre.",
"filter_modal.added.context_mismatch_title": "Incompatibilité du contexte !",
"filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.",
@@ -372,6 +397,8 @@
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
"hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}",
+ "hashtag.browse": "Parcourir les posts dans #{hashtag}",
+ "hashtag.browse_from_account": "Parcourir les posts de @{name} dans #{hashtag}",
"hashtag.column_header.tag_mode.all": "et {additional}",
"hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sans {additional}",
@@ -384,7 +411,10 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourd’hui",
+ "hashtag.feature": "Mettre en avant sur votre profil",
"hashtag.follow": "Suivre le hashtag",
+ "hashtag.mute": "Mettre #{hashtag} en sourdine",
+ "hashtag.unfeature": "Ne plus mettre en avant sur votre profil",
"hashtag.unfollow": "Ne plus suivre le hashtag",
"hashtags.and_other": "…et {count, plural, other {# de plus}}",
"hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.",
@@ -395,6 +425,7 @@
"hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
"hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
"hints.threads.see_more": "Afficher plus de réponses sur {domain}",
+ "home.column_settings.show_quotes": "Afficher les citations",
"home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses",
"home.hide_announcements": "Masquer les annonces",
@@ -517,32 +548,32 @@
"mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
"navigation_bar.about": "À propos",
+ "navigation_bar.account_settings": "Mot de passe et sécurité",
"navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Ouvrir dans l’interface avancée",
+ "navigation_bar.automated_deletion": "Suppression automatique du message",
"navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Marque-pages",
- "navigation_bar.community_timeline": "Fil public local",
- "navigation_bar.compose": "Rédiger un nouveau message",
"navigation_bar.direct": "Mention privée",
- "navigation_bar.discover": "Découvrir",
"navigation_bar.domain_blocks": "Domaines bloqués",
- "navigation_bar.explore": "Explorer",
"navigation_bar.favourites": "Favoris",
"navigation_bar.filters": "Mots masqués",
"navigation_bar.follow_requests": "Demandes d’abonnement",
"navigation_bar.followed_tags": "Hashtags suivis",
"navigation_bar.follows_and_followers": "Abonnements et abonnés",
+ "navigation_bar.import_export": "Import et export",
"navigation_bar.lists": "Listes",
+ "navigation_bar.live_feed_local": "Flux en direct (local)",
+ "navigation_bar.live_feed_public": "Flux en direct (public)",
"navigation_bar.logout": "Déconnexion",
"navigation_bar.moderation": "Modération",
+ "navigation_bar.more": "Plus",
"navigation_bar.mutes": "Comptes masqués",
"navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans l’interface classique.",
- "navigation_bar.personal": "Personnel",
- "navigation_bar.pins": "Messages épinglés",
"navigation_bar.preferences": "Préférences",
- "navigation_bar.public_timeline": "Fil fédéré",
+ "navigation_bar.privacy_and_reach": "Vie privée et visibilité",
"navigation_bar.search": "Rechercher",
- "navigation_bar.security": "Sécurité",
+ "navigation_bar.search_trends": "Recherche / Tendance",
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}",
"notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}",
@@ -835,6 +866,9 @@
"status.mute_conversation": "Masquer la conversation",
"status.open": "Afficher le message entier",
"status.pin": "Épingler sur le profil",
+ "status.quote_error.removed": "Ce message a été retiré par son auteur·ice.",
+ "status.quote_error.unauthorized": "Ce message ne peut pas être affiché car vous n'êtes pas autorisé·e à le voir.",
+ "status.quote_post_author": "Message par {name}",
"status.read_more": "En savoir plus",
"status.reblog": "Partager",
"status.reblog_private": "Partager à l’audience originale",
@@ -864,7 +898,10 @@
"subscribed_languages.save": "Enregistrer les modifications",
"subscribed_languages.target": "Changer les langues abonnées pour {target}",
"tabs_bar.home": "Accueil",
+ "tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Notifications",
+ "tabs_bar.publish": "Nouveau message",
+ "tabs_bar.search": "Chercher",
"terms_of_service.effective_as_of": "En vigueur à compter du {date}",
"terms_of_service.title": "Conditions d'utilisation",
"terms_of_service.upcoming_changes_on": "Modifications à venir le {date}",
diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json
index 6c5d95e6ec2..33c6d89d195 100644
--- a/app/javascript/mastodon/locales/fy.json
+++ b/app/javascript/mastodon/locales/fy.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Ynstellingen toane",
"column_header.unpin": "Losmeitsje",
"column_search.cancel": "Annulearje",
- "column_subheading.settings": "Ynstellingen",
"community.column_settings.local_only": "Allinnich lokaal",
"community.column_settings.media_only": "Allinnich media",
"community.column_settings.remote_only": "Allinnich oare servers",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Fuortsmite",
"confirmations.delete_list.message": "Binne jo wis dat jo dizze list foar permanint fuortsmite wolle?",
"confirmations.delete_list.title": "List fuortsmite?",
+ "confirmations.discard_draft.confirm": "Negearje en trochgean",
+ "confirmations.discard_draft.edit.cancel": "Bewurkjen trochsette",
+ "confirmations.discard_draft.edit.message": "Trochsette sil wizigingen dy’t jo oan it aktuele berjocht makke hawwe negearje.",
+ "confirmations.discard_draft.edit.title": "Wizigingen oan jo berjocht negearje?",
+ "confirmations.discard_draft.post.cancel": "Konsept trochsette",
+ "confirmations.discard_draft.post.message": "Trochsette sil it aktuele berjocht negearje.",
+ "confirmations.discard_draft.post.title": "Jo konseptberjocht negearje?",
"confirmations.discard_edit_media.confirm": "Fuortsmite",
"confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?",
- "confirmations.edit.confirm": "Bewurkje",
- "confirmations.edit.message": "Troch no te bewurkjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
- "confirmations.edit.title": "Berjocht oerskriuwe?",
"confirmations.follow_to_list.confirm": "Folgje en tafoegje oan de list",
"confirmations.follow_to_list.message": "Jo moatte {name} folgje om se ta te foegjen oan in list.",
"confirmations.follow_to_list.title": "Brûker folgje?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Folger fuortsmite",
"confirmations.remove_from_followers.message": "{name} sil jo net mear folgje. Binne jo wis dat jo trochgean wolle?",
"confirmations.remove_from_followers.title": "Folger fuortsmite?",
- "confirmations.reply.confirm": "Reagearje",
- "confirmations.reply.message": "Troch no te reagearjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
- "confirmations.reply.title": "Berjocht oerskriuwe?",
"confirmations.unfollow.confirm": "Net mear folgje",
"confirmations.unfollow.message": "Binne jo wis dat jo {name} net mear folgje wolle?",
"confirmations.unfollow.title": "Brûker net mear folgje?",
@@ -337,6 +337,7 @@
"errors.unexpected_crash.copy_stacktrace": "Stacktrace nei klamboerd kopiearje",
"errors.unexpected_crash.report_issue": "Technysk probleem melde",
"explore.suggested_follows": "Minsken",
+ "explore.title": "Populêr",
"explore.trending_links": "Nijs",
"explore.trending_statuses": "Berjochten",
"explore.trending_tags": "Hashtags",
@@ -548,32 +549,36 @@
"mute_modal.you_wont_see_mentions": "Jo sjogge gjin berjochten mear dy’t dizze account fermelde.",
"mute_modal.you_wont_see_posts": "De persoan kin jo berjochten noch hieltyd sjen, mar jo sjogge harren berjochten net mear.",
"navigation_bar.about": "Oer",
+ "navigation_bar.account_settings": "Wachtwurd en befeiliging",
"navigation_bar.administration": "Behear",
"navigation_bar.advanced_interface": "Yn avansearre webomjouwing iepenje",
+ "navigation_bar.automated_deletion": "Automatysk berjochten fuortsmite",
"navigation_bar.blocks": "Blokkearre brûkers",
"navigation_bar.bookmarks": "Blêdwizers",
- "navigation_bar.community_timeline": "Lokale tiidline",
- "navigation_bar.compose": "Nij berjocht skriuwe",
"navigation_bar.direct": "Priveefermeldingen",
- "navigation_bar.discover": "Untdekke",
"navigation_bar.domain_blocks": "Blokkearre domeinen",
- "navigation_bar.explore": "Ferkenne",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Negearre wurden",
"navigation_bar.follow_requests": "Folchfersiken",
"navigation_bar.followed_tags": "Folge hashtags",
"navigation_bar.follows_and_followers": "Folgers en folgjenden",
+ "navigation_bar.import_export": "Ymportearje en eksportearje",
"navigation_bar.lists": "Listen",
+ "navigation_bar.live_feed_local": "Livefeed (lokaal)",
+ "navigation_bar.live_feed_public": "Livefeed (iepenbier)",
"navigation_bar.logout": "Ofmelde",
"navigation_bar.moderation": "Moderaasje",
+ "navigation_bar.more": "Mear",
"navigation_bar.mutes": "Negearre brûkers",
"navigation_bar.opened_in_classic_interface": "Berjochten, accounts en oare spesifike siden, wurde standert iepene yn de klassike webinterface.",
- "navigation_bar.personal": "Persoanlik",
- "navigation_bar.pins": "Fêstsette berjochten",
"navigation_bar.preferences": "Ynstellingen",
- "navigation_bar.public_timeline": "Globale tiidline",
+ "navigation_bar.privacy_and_reach": "Privacy en berik",
"navigation_bar.search": "Sykje",
- "navigation_bar.security": "Befeiliging",
+ "navigation_bar.search_trends": "Sykje / Populêr",
+ "navigation_panel.collapse_followed_tags": "Menu foar folge hashtags ynklappe",
+ "navigation_panel.collapse_lists": "Listmenu ynklappe",
+ "navigation_panel.expand_followed_tags": "Menu foar folge hashtags útklappe",
+ "navigation_panel.expand_lists": "Listmenu útklappe",
"not_signed_in_indicator.not_signed_in": "Jo moatte oanmelde om tagong ta dizze ynformaasje te krijen.",
"notification.admin.report": "{name} hat {target} rapportearre",
"notification.admin.report_account": "{name} rapportearre {count, plural, one {in berjocht} other {# berjochten}} fan {target} foar {category}",
@@ -800,6 +805,7 @@
"report_notification.categories.violation": "Skeinde regels",
"report_notification.categories.violation_sentence": "skeinde regels",
"report_notification.open": "Rapport iepenje",
+ "search.clear": "Sykopdracht wiskje",
"search.no_recent_searches": "Gjin resinte sykopdrachten",
"search.placeholder": "Sykje",
"search.quick_action.account_search": "Accounts dy’t oerienkomme mei {x}",
@@ -902,7 +908,10 @@
"subscribed_languages.save": "Wizigingen bewarje",
"subscribed_languages.target": "Toande talen foar {target} wizigje",
"tabs_bar.home": "Startside",
+ "tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Meldingen",
+ "tabs_bar.publish": "Nij berjocht",
+ "tabs_bar.search": "Sykje",
"terms_of_service.effective_as_of": "Effektyf fan {date} ôf",
"terms_of_service.title": "Gebrûksbetingsten",
"terms_of_service.upcoming_changes_on": "Oankommende wizigingen op {date}",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 2a1c0dea3da..92d06a05cf1 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Taispeáin socruithe",
"column_header.unpin": "Bain pionna",
"column_search.cancel": "Cealaigh",
- "column_subheading.settings": "Socruithe",
"community.column_settings.local_only": "Áitiúil amháin",
"community.column_settings.media_only": "Meáin Amháin",
"community.column_settings.remote_only": "Cian amháin",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Scrios",
"confirmations.delete_list.message": "An bhfuil tú cinnte gur mhaith leat an liosta seo a scriosadh go buan?",
"confirmations.delete_list.title": "Scrios liosta?",
+ "confirmations.discard_draft.confirm": "Scrios agus lean ar aghaidh",
+ "confirmations.discard_draft.edit.cancel": "Lean an eagarthóireacht",
+ "confirmations.discard_draft.edit.message": "Má leanann tú ar aghaidh, cuirfear deireadh le haon athruithe atá déanta agat ar an bpost atá á chur in eagar agat faoi láthair.",
+ "confirmations.discard_draft.edit.title": "An bhfuil tú ag iarraidh athruithe ar do phost a chaitheamh amach?",
+ "confirmations.discard_draft.post.cancel": "Dréacht atosú",
+ "confirmations.discard_draft.post.message": "Má leanann tú ar aghaidh, scriosfar an post atá á scríobh agat faoi láthair.",
+ "confirmations.discard_draft.post.title": "An bhfuil tú ag iarraidh do dhréachtphost a chaitheamh amach?",
"confirmations.discard_edit_media.confirm": "Faigh réidh de",
"confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?",
- "confirmations.edit.confirm": "Eagar",
- "confirmations.edit.message": "Má dhéanann tú eagarthóireacht anois, déanfar an teachtaireacht atá á cumadh agat faoi láthair a fhorscríobh. An bhfuil tú cinnte gur mhaith leat leanúint ar aghaidh?",
- "confirmations.edit.title": "Forscríobh postáil?",
"confirmations.follow_to_list.confirm": "Lean agus cuir leis an liosta",
"confirmations.follow_to_list.message": "Ní mór duit {name} a leanúint chun iad a chur le liosta.",
"confirmations.follow_to_list.title": "Lean an t-úsáideoir?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Bain leantóir",
"confirmations.remove_from_followers.message": "Scoirfidh {name} de bheith ag leanúint leat. An bhfuil tú cinnte gur mian leat leanúint ar aghaidh?",
"confirmations.remove_from_followers.title": "Bain an leantóir?",
- "confirmations.reply.confirm": "Freagair",
- "confirmations.reply.message": "Scriosfaidh freagra láithreach an teachtaireacht atá a chumadh anois agat. An bhfuil tú cinnte gur mhaith leat leanúint leat?",
- "confirmations.reply.title": "Forscríobh postáil?",
"confirmations.unfollow.confirm": "Ná lean",
"confirmations.unfollow.message": "An bhfuil tú cinnte gur mhaith leat {name} a dhíleanúint?",
"confirmations.unfollow.title": "Dílean an t-úsáideoir?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Scriosadh uathoibrithe postála",
"navigation_bar.blocks": "Cuntais bhactha",
"navigation_bar.bookmarks": "Leabharmharcanna",
- "navigation_bar.community_timeline": "Amlíne áitiúil",
- "navigation_bar.compose": "Cum postáil nua",
"navigation_bar.direct": "Luann príobháideach",
- "navigation_bar.discover": "Faigh amach",
"navigation_bar.domain_blocks": "Fearainn bhactha",
- "navigation_bar.explore": "Féach thart",
"navigation_bar.favourites": "Ceanáin",
"navigation_bar.filters": "Focail bhalbhaithe",
"navigation_bar.follow_requests": "Iarratais leanúnaí",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "Ag leanúint agus do do leanúint",
"navigation_bar.import_export": "Allmhairiú agus onnmhairiú",
"navigation_bar.lists": "Liostaí",
+ "navigation_bar.live_feed_local": "Fotha beo (áitiúil)",
+ "navigation_bar.live_feed_public": "Fotha beo (poiblí)",
"navigation_bar.logout": "Logáil Amach",
"navigation_bar.moderation": "Measarthacht",
"navigation_bar.more": "Tuilleadh",
"navigation_bar.mutes": "Úsáideoirí balbhaithe",
"navigation_bar.opened_in_classic_interface": "Osclaítear poist, cuntais agus leathanaigh shonracha eile de réir réamhshocraithe sa chomhéadan gréasáin clasaiceach.",
- "navigation_bar.personal": "Pearsanta",
- "navigation_bar.pins": "Postálacha pionnáilte",
"navigation_bar.preferences": "Sainroghanna pearsanta",
"navigation_bar.privacy_and_reach": "Príobháideacht agus rochtain",
- "navigation_bar.public_timeline": "Amlíne cónaidhmithe",
"navigation_bar.search": "Cuardaigh",
- "navigation_bar.security": "Slándáil",
+ "navigation_bar.search_trends": "Cuardaigh / Treochtaí",
+ "navigation_panel.collapse_followed_tags": "Laghdaigh roghchlár hashtaganna leantóirí",
"navigation_panel.collapse_lists": "Laghdaigh roghchlár an liosta",
+ "navigation_panel.expand_followed_tags": "Leathnaigh roghchlár na hashtaganna a leanann tú",
"navigation_panel.expand_lists": "Leathnaigh an roghchlár liosta",
"not_signed_in_indicator.not_signed_in": "Ní mór duit logáil isteach chun rochtain a fháil ar an acmhainn seo.",
"notification.admin.report": "Tuairiscigh {name} {target}",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "Sárú rialach",
"report_notification.categories.violation_sentence": "sárú riail",
"report_notification.open": "Oscail tuairisc",
+ "search.clear": "Glan an cuardach",
"search.no_recent_searches": "Níl aon chuardach le déanaí",
"search.placeholder": "Cuardaigh",
"search.quick_action.account_search": "Próifílí a mheaitseálann {x}",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index 61f31d3185f..208e117037b 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -167,7 +167,7 @@
"column.domain_blocks": "Àrainnean bacte",
"column.edit_list": "Deasaich an liosta",
"column.favourites": "Annsachdan",
- "column.firehose": "An saoghal poblach",
+ "column.firehose": "An saoghal beò",
"column.follow_requests": "Iarrtasan leantainn",
"column.home": "Dachaigh",
"column.list_members": "Stiùir buill na liosta",
@@ -184,7 +184,6 @@
"column_header.show_settings": "Seall na roghainnean",
"column_header.unpin": "Dì-phrìnich",
"column_search.cancel": "Sguir dheth",
- "column_subheading.settings": "Roghainnean",
"community.column_settings.local_only": "Feadhainn ionadail a-mhàin",
"community.column_settings.media_only": "Meadhanan a-mhàin",
"community.column_settings.remote_only": "Feadhainn chèin a-mhàin",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Sguab às",
"confirmations.delete_list.message": "A bheil thu cinnteach gu bheil thu airson an liosta seo a sguabadh às gu buan?",
"confirmations.delete_list.title": "A bheil thu airson an liosta a sguabadh às?",
+ "confirmations.discard_draft.confirm": "Tilg air falbh ’s lean air adhart",
+ "confirmations.discard_draft.edit.cancel": "Lean air an deasachadh",
+ "confirmations.discard_draft.edit.message": "Ma leanas tu air adhart, thèid atharraichean sam bith a rinn thu air a’ phost a tha thu a’ deasachadh a thilgeil air falbh.",
+ "confirmations.discard_draft.edit.title": "A bheil thu airson na h-atharraichean air a’ phost agad a thilgeil air falbh?",
+ "confirmations.discard_draft.post.cancel": "Lean air an dreachd",
+ "confirmations.discard_draft.post.message": "Ma leanas tu air adhart, thèid am post a tha thu a’ sgrìobhadh a thilgeil air falbh.",
+ "confirmations.discard_draft.post.title": "A bheil thu airson dreachd a’ phuist agad a thilgeil air falbh?",
"confirmations.discard_edit_media.confirm": "Tilg air falbh",
"confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?",
- "confirmations.edit.confirm": "Deasaich",
- "confirmations.edit.message": "Ma nì thu deasachadh an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
- "confirmations.edit.title": "A bheil thu airson sgrìobhadh thairis air a’ phost?",
"confirmations.follow_to_list.confirm": "Lean ’s cuir ris an liosta",
"confirmations.follow_to_list.message": "Feumaidh tu {name} a leantainn ron chur ri liosta.",
"confirmations.follow_to_list.title": "A bheil thu airson an cleachdaiche a leantainn?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Thoir an neach-leantainn air falbh",
"confirmations.remove_from_followers.message": "Cha lean {name} thu tuilleadh. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
"confirmations.remove_from_followers.title": "A bheil thu airson an neach-leantainn a thoirt air falbh?",
- "confirmations.reply.confirm": "Freagair",
- "confirmations.reply.message": "Ma bheir thu freagairt an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
- "confirmations.reply.title": "A bheil thu airson sgrìobhadh thairis air a’ phost?",
"confirmations.unfollow.confirm": "Na lean tuilleadh",
"confirmations.unfollow.message": "A bheil thu cinnteach nach eil thu airson {name} a leantainn tuilleadh?",
"confirmations.unfollow.title": "A bheil thu airson sgur de leantainn a chleachdaiche?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Sguabadh às phostaichean",
"navigation_bar.blocks": "Cleachdaichean bacte",
"navigation_bar.bookmarks": "Comharran-lìn",
- "navigation_bar.community_timeline": "Loidhne-ama ionadail",
- "navigation_bar.compose": "Sgrìobh post ùr",
"navigation_bar.direct": "Iomraidhean prìobhaideach",
- "navigation_bar.discover": "Rùraich",
"navigation_bar.domain_blocks": "Àrainnean bacte",
- "navigation_bar.explore": "Rùraich",
"navigation_bar.favourites": "Annsachdan",
"navigation_bar.filters": "Faclan mùchte",
"navigation_bar.follow_requests": "Iarrtasan leantainn",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "Dàimhean leantainn",
"navigation_bar.import_export": "Ion-phortadh ⁊ às-phortadh",
"navigation_bar.lists": "Liostaichean",
+ "navigation_bar.live_feed_local": "An saoghal beò (ionadail)",
+ "navigation_bar.live_feed_public": "An saoghal beò (poblach)",
"navigation_bar.logout": "Clàraich a-mach",
"navigation_bar.moderation": "Maorsainneachd",
"navigation_bar.more": "Barrachd",
"navigation_bar.mutes": "Cleachdaichean mùchte",
"navigation_bar.opened_in_classic_interface": "Thèid postaichean, cunntasan ’s duilleagan sònraichte eile fhosgladh san eadar-aghaidh-lìn chlasaigeach a ghnàth.",
- "navigation_bar.personal": "Pearsanta",
- "navigation_bar.pins": "Postaichean prìnichte",
"navigation_bar.preferences": "Roghainnean",
"navigation_bar.privacy_and_reach": "Prìobhaideachd ’s ruigse",
- "navigation_bar.public_timeline": "Loidhne-ama cho-naisgte",
"navigation_bar.search": "Lorg",
- "navigation_bar.security": "Tèarainteachd",
+ "navigation_bar.search_trends": "Lorg / A’ treandadh",
+ "navigation_panel.collapse_followed_tags": "Co-theannaich clàr-taice nan tagaichean hais ’gan leantainn",
"navigation_panel.collapse_lists": "Co-theannaich clàr-taice na liosta",
+ "navigation_panel.expand_followed_tags": "Leudaich clàr-taice nan tagaichean hais ’gan leantainn",
"navigation_panel.expand_lists": "Leudaich clàr-taice na liosta",
"not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.",
"notification.admin.report": "Rinn {name} gearan mu {target}",
@@ -700,6 +697,7 @@
"notifications_permission_banner.enable": "Cuir brathan deasga an comas",
"notifications_permission_banner.how_to_control": "Airson brathan fhaighinn nuair nach eil Mastodon fosgailte, cuir na brathan deasga an comas. Tha an smachd agad fhèin air dè na seòrsaichean de chonaltradh a ghineas brathan deasga leis a’ phutan {icon} gu h-àrd nuair a bhios iad air an cur an comas.",
"notifications_permission_banner.title": "Na caill dad gu bràth tuilleadh",
+ "onboarding.follows.back": "Air ais",
"onboarding.follows.done": "Deiseil",
"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.search": "Lorg",
@@ -807,6 +805,7 @@
"report_notification.categories.violation": "Briseadh riaghailte",
"report_notification.categories.violation_sentence": "briseadh riaghailte",
"report_notification.open": "Fosgail an gearan",
+ "search.clear": "Falamhaich an lorg",
"search.no_recent_searches": "Cha do rinn thu lorg o chionn goirid",
"search.placeholder": "Lorg",
"search.quick_action.account_search": "Pròifilean a fhreagras ri {x}",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 96ee2d93eb6..7cb227215e4 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Amosar axustes",
"column_header.unpin": "Desapegar",
"column_search.cancel": "Cancelar",
- "column_subheading.settings": "Axustes",
"community.column_settings.local_only": "Só local",
"community.column_settings.media_only": "Só multimedia",
"community.column_settings.remote_only": "Só remoto",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "Tes a certeza de querer eliminar de xeito permanente esta listaxe?",
"confirmations.delete_list.title": "Eliminar a lista?",
+ "confirmations.discard_draft.confirm": "Desbotar e continuar",
+ "confirmations.discard_draft.edit.cancel": "Seguir editando",
+ "confirmations.discard_draft.edit.message": "Se continúas desbotarás os cambios realizados na publicación que estás a editar.",
+ "confirmations.discard_draft.edit.title": "Desbotar os cambios na publicación?",
+ "confirmations.discard_draft.post.cancel": "Retomar o borrador",
+ "confirmations.discard_draft.post.message": "Se continúas desbotarás a publicación que estás a escribir.",
+ "confirmations.discard_draft.post.title": "Desbotar o borrador?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tes cambios sen gardar para a vista previa ou descrición do multimedia, descartamos os cambios?",
- "confirmations.edit.confirm": "Editar",
- "confirmations.edit.message": "Ao editar sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?",
- "confirmations.edit.title": "Editar a publicación?",
"confirmations.follow_to_list.confirm": "Seguir e engadir á lista",
"confirmations.follow_to_list.message": "Tes que seguir a {name} para poder engadila a unha lista.",
"confirmations.follow_to_list.title": "Seguir á usuaria?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Quitar seguidora",
"confirmations.remove_from_followers.message": "{name} vai deixar de seguirte. É isto o que queres?",
"confirmations.remove_from_followers.title": "Quitar seguidora?",
- "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.reply.title": "Editar a publicación?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Tes certeza de querer deixar de seguir a {name}?",
"confirmations.unfollow.title": "Deixar de seguir á usuaria?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Borrado automático das publicacións",
"navigation_bar.blocks": "Usuarias bloqueadas",
"navigation_bar.bookmarks": "Marcadores",
- "navigation_bar.community_timeline": "Cronoloxía local",
- "navigation_bar.compose": "Escribir unha nova publicación",
"navigation_bar.direct": "Mencións privadas",
- "navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios agochados",
- "navigation_bar.explore": "Descubrir",
"navigation_bar.favourites": "Favoritas",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Peticións de seguimento",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Seguindo e seguidoras",
"navigation_bar.import_export": "Importar e exportar",
"navigation_bar.lists": "Listaxes",
+ "navigation_bar.live_feed_local": "En directo (local)",
+ "navigation_bar.live_feed_public": "En directo (federada)",
"navigation_bar.logout": "Pechar sesión",
"navigation_bar.moderation": "Moderación",
"navigation_bar.more": "Máis",
"navigation_bar.mutes": "Usuarias silenciadas",
"navigation_bar.opened_in_classic_interface": "Publicacións, contas e outras páxinas dedicadas ábrense por defecto na interface web clásica.",
- "navigation_bar.personal": "Persoal",
- "navigation_bar.pins": "Publicacións fixadas",
"navigation_bar.preferences": "Preferencias",
"navigation_bar.privacy_and_reach": "Privacidade e alcance",
- "navigation_bar.public_timeline": "Cronoloxía federada",
"navigation_bar.search": "Buscar",
"navigation_bar.search_trends": "Buscar / Popular",
- "navigation_bar.security": "Seguranza",
"navigation_panel.collapse_followed_tags": "Pregar o menú de cancelos seguidos",
"navigation_panel.collapse_lists": "Pregar menú da lista",
"navigation_panel.expand_followed_tags": "Despregar menú de cancelos seguidos",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Faltou ás regras",
"report_notification.categories.violation_sentence": "violación das regras",
"report_notification.open": "Abrir a denuncia",
+ "search.clear": "Limpar a busca",
"search.no_recent_searches": "Non hai buscas recentes",
"search.placeholder": "Procurar",
"search.quick_action.account_search": "Perfís coincidentes {x}",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index e7a599b3065..cb5ffb52db4 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "הצגת העדפות",
"column_header.unpin": "שחרור הצמדה",
"column_search.cancel": "ביטול",
- "column_subheading.settings": "הגדרות",
"community.column_settings.local_only": "מקומי בלבד",
"community.column_settings.media_only": "מדיה בלבד",
"community.column_settings.remote_only": "מרוחק בלבד",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "למחוק",
"confirmations.delete_list.message": "האם אתם בטוחים שאתם רוצים למחוק את הרשימה לצמיתות?",
"confirmations.delete_list.title": "למחוק רשימה?",
+ "confirmations.discard_draft.confirm": "לאפס ולהמשיך",
+ "confirmations.discard_draft.edit.cancel": "חזרה לעריכה",
+ "confirmations.discard_draft.edit.message": "מעבר הלאה יאפס את כל השינויים שביצעת להודעה שכרגע ערכת.",
+ "confirmations.discard_draft.edit.title": "לאפס את השינויים להודעתך?",
+ "confirmations.discard_draft.post.cancel": "חזרה לעריכת טיוטא",
+ "confirmations.discard_draft.post.message": "מעבר הלאה ימחק את ההודעה שכרגע חיברת.",
+ "confirmations.discard_draft.post.title": "לוותר על הטיוטא?",
"confirmations.discard_edit_media.confirm": "השלך",
"confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?",
- "confirmations.edit.confirm": "עריכה",
- "confirmations.edit.message": "עריכה תדרוס את ההודעה שכבר התחלת לכתוב. האם להמשיך?",
- "confirmations.edit.title": "לבצע החלפת תוכן?",
"confirmations.follow_to_list.confirm": "עקיבה והוספה לרשימה",
"confirmations.follow_to_list.message": "כדי להכניס את {name} לרשימה, ראשית יש לעקוב אחריהם.",
"confirmations.follow_to_list.title": "לעקוב אחר המשתמש.ת?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "הסרת עוקב",
"confirmations.remove_from_followers.message": "{name} יוסר/תוסר ממעקב אחריך. האם להמשיך?",
"confirmations.remove_from_followers.title": "להסיר עוקב/עוקבת?",
- "confirmations.reply.confirm": "תגובה",
- "confirmations.reply.message": "תגובה עכשיו תמחק את ההודעה שכבר התחלת לכתוב. להמשיך?",
- "confirmations.reply.title": "לבצע החלפת תוכן?",
"confirmations.unfollow.confirm": "הפסקת מעקב",
"confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?",
"confirmations.unfollow.title": "לבטל מעקב אחר המשתמש.ת?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "מחיקת הודעות אוטומטית",
"navigation_bar.blocks": "משתמשים חסומים",
"navigation_bar.bookmarks": "סימניות",
- "navigation_bar.community_timeline": "פיד שרת מקומי",
- "navigation_bar.compose": "צור הודעה חדשה",
"navigation_bar.direct": "הודעות פרטיות",
- "navigation_bar.discover": "גלה",
"navigation_bar.domain_blocks": "קהילות (שמות מתחם) חסומות",
- "navigation_bar.explore": "סיור",
"navigation_bar.favourites": "חיבובים",
"navigation_bar.filters": "מילים מושתקות",
"navigation_bar.follow_requests": "בקשות מעקב",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "נעקבים ועוקבים",
"navigation_bar.import_export": "יבוא ויצוא",
"navigation_bar.lists": "רשימות",
+ "navigation_bar.live_feed_local": "פיד ההודעות בזמן אמת (מקומי)",
+ "navigation_bar.live_feed_public": "פיד ההודעות בזמן אמת (פומבי)",
"navigation_bar.logout": "התנתקות",
"navigation_bar.moderation": "הנחיית דיונים",
"navigation_bar.more": "עוד",
"navigation_bar.mutes": "משתמשים בהשתקה",
"navigation_bar.opened_in_classic_interface": "הודעות, חשבונות ושאר עמודי רשת יפתחו כברירת מחדל בדפדפן רשת קלאסי.",
- "navigation_bar.personal": "אישי",
- "navigation_bar.pins": "הודעות נעוצות",
"navigation_bar.preferences": "העדפות",
"navigation_bar.privacy_and_reach": "פרטיות ומידת חשיפה",
- "navigation_bar.public_timeline": "פיד כללי (כל השרתים)",
"navigation_bar.search": "חיפוש",
- "navigation_bar.security": "אבטחה",
+ "navigation_bar.search_trends": "חיפוש \\ מגמות",
+ "navigation_panel.collapse_followed_tags": "קיפול תפריט תגיות במעקב",
"navigation_panel.collapse_lists": "קיפול תפריט רשימות",
+ "navigation_panel.expand_followed_tags": "פתיחת תפריט תגיות במעקב",
"navigation_panel.expand_lists": "פתיחת תפריט רשימות",
"not_signed_in_indicator.not_signed_in": "יש להיות מאומת כדי לגשת למשאב זה.",
"notification.admin.report": "{name} דיווח.ה על {target}",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "הפרת כלל",
"report_notification.categories.violation_sentence": "הפרת כלל",
"report_notification.open": "פתח דו\"ח",
+ "search.clear": "ניקוי חיפוש",
"search.no_recent_searches": "לא נמצאו חיפושים אחרונים",
"search.placeholder": "חיפוש",
"search.quick_action.account_search": "פרופילים המכילים {x}",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index 7e317fbc3dc..c81a97178a2 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -129,7 +129,6 @@
"column_header.pin": "पिन",
"column_header.show_settings": "सेटिंग्स दिखाएँ",
"column_header.unpin": "अनपिन",
- "column_subheading.settings": "सेटिंग्स",
"community.column_settings.local_only": "स्थानीय ही",
"community.column_settings.media_only": "सिर्फ़ मीडिया",
"community.column_settings.remote_only": "केवल सुदूर",
@@ -164,15 +163,11 @@
"confirmations.delete_list.message": "क्या आप वाकई इस लिस्ट को हमेशा के लिये मिटाना चाहते हैं?",
"confirmations.discard_edit_media.confirm": "डिस्कार्ड",
"confirmations.discard_edit_media.message": "लिस्ट में जोड़ें",
- "confirmations.edit.confirm": "संशोधित करें",
- "confirmations.edit.message": "अभी संपादन किया तो वो संदेश मिट जायेगा जिसे आप लिख रहे थे। क्या आप जारी रखना चाहते हैं?",
"confirmations.logout.confirm": "लॉग आउट करें",
"confirmations.logout.message": "आप सुनिश्चित हैं कि लॉगआउट करना चाहते हैं?",
"confirmations.mute.confirm": "शांत",
"confirmations.redraft.confirm": "मिटायें और पुनःप्रारूपण करें",
"confirmations.redraft.message": "क्या आप वाकई इस स्टेटस को हटाना चाहते हैं और इसे फिर से ड्राफ्ट करना चाहते हैं? पसंदीदा और बूस्ट खो जाएंगे, और मूल पोस्ट के उत्तर अनाथ हो जाएंगे।",
- "confirmations.reply.confirm": "उत्तर दें",
- "confirmations.reply.message": "अब उत्तर देना उस संदेश को अधिलेखित कर देगा जो आप वर्तमान में बना रहे हैं। क्या आप सुनिश्चित रूप से आगे बढ़ना चाहते हैं?",
"confirmations.unfollow.confirm": "अनफॉलो करें",
"confirmations.unfollow.message": "क्या आप वाकई {name} को अनफॉलो करना चाहते हैं?",
"conversation.delete": "वार्तालाप हटाएँ",
@@ -344,12 +339,8 @@
"navigation_bar.about": "विवरण",
"navigation_bar.blocks": "ब्लॉक्ड यूज़र्स",
"navigation_bar.bookmarks": "पुस्तकचिह्न:",
- "navigation_bar.community_timeline": "लोकल टाइम्लाइन",
- "navigation_bar.compose": "नया टूट् लिखें",
"navigation_bar.direct": "निजी संदेश",
- "navigation_bar.discover": "खोजें",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.explore": "अन्वेषण करें",
"navigation_bar.favourites": "पसंदीदा",
"navigation_bar.filters": "वारित शब्द",
"navigation_bar.follow_requests": "अनुसरण करने के अनुरोध",
@@ -357,11 +348,8 @@
"navigation_bar.lists": "सूचियाँ",
"navigation_bar.logout": "बाहर जाए",
"navigation_bar.mutes": "शांत किए गए सभ्य",
- "navigation_bar.personal": "निजी",
- "navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "पसंदे",
"navigation_bar.search": "ढूंढें",
- "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} ने अभी पोस्ट किया",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 6d451428fc1..bd20756a789 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -115,7 +115,6 @@
"column_header.pin": "Prikvači",
"column_header.show_settings": "Prikaži postavke",
"column_header.unpin": "Otkvači",
- "column_subheading.settings": "Postavke",
"community.column_settings.local_only": "Samo lokalno",
"community.column_settings.media_only": "Samo medijski sadržaj",
"community.column_settings.remote_only": "Samo udaljeno",
@@ -143,13 +142,10 @@
"confirmations.delete_list.message": "Jeste li sigurni da želite trajno obrisati ovu listu?",
"confirmations.discard_edit_media.confirm": "Odbaciti",
"confirmations.discard_edit_media.message": "Postoje nespremljene promjene u opisu medija ili u pretpregledu, svejedno ih odbaciti?",
- "confirmations.edit.confirm": "Uredi",
"confirmations.logout.confirm": "Odjavi se",
"confirmations.logout.message": "Jeste li sigurni da se želite odjaviti?",
"confirmations.mute.confirm": "Utišaj",
"confirmations.redraft.confirm": "Izbriši i ponovno uredi",
- "confirmations.reply.confirm": "Odgovori",
- "confirmations.reply.message": "Odgovaranje sada će prepisati poruku koju upravo pišete. Jeste li sigurni da želite nastaviti?",
"confirmations.unfollow.confirm": "Prestani pratiti",
"confirmations.unfollow.message": "Jeste li sigurni da želite prestati pratiti {name}?",
"conversation.delete": "Izbriši razgovor",
@@ -293,12 +289,8 @@
"navigation_bar.about": "O aplikaciji",
"navigation_bar.advanced_interface": "Otvori u naprednom web sučelju",
"navigation_bar.blocks": "Blokirani korisnici",
- "navigation_bar.community_timeline": "Lokalna vremenska crta",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Privatna spominjanja",
- "navigation_bar.discover": "Istraživanje",
"navigation_bar.domain_blocks": "Blokirane domene",
- "navigation_bar.explore": "Istraži",
"navigation_bar.favourites": "Favoriti",
"navigation_bar.filters": "Utišane riječi",
"navigation_bar.follow_requests": "Zahtjevi za praćenje",
@@ -306,12 +298,8 @@
"navigation_bar.lists": "Liste",
"navigation_bar.logout": "Odjavi se",
"navigation_bar.mutes": "Utišani korisnici",
- "navigation_bar.personal": "Osobno",
- "navigation_bar.pins": "Prikvačeni tootovi",
"navigation_bar.preferences": "Postavke",
- "navigation_bar.public_timeline": "Federalna vremenska crta",
"navigation_bar.search": "Traži",
- "navigation_bar.security": "Sigurnost",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} Vas je počeo/la pratiti",
"notification.follow_request": "{name} zatražio/la je da Vas prati",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 3670c167c80..abd9b8ad116 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Beállítások megjelenítése",
"column_header.unpin": "Kitűzés eltávolítása",
"column_search.cancel": "Mégse",
- "column_subheading.settings": "Beállítások",
"community.column_settings.local_only": "Csak helyi",
"community.column_settings.media_only": "Csak média",
"community.column_settings.remote_only": "Csak távoli",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Törlés",
"confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?",
"confirmations.delete_list.title": "Törlöd a listát?",
+ "confirmations.discard_draft.confirm": "Elvetés és folytatás",
+ "confirmations.discard_draft.edit.cancel": "Szerkesztés folytatása",
+ "confirmations.discard_draft.edit.message": "A folytatással elveted a jelenleg szerkesztett bejegyzés esetleges változtatásait.",
+ "confirmations.discard_draft.edit.title": "Elveted a bejegyzés változtatásait?",
+ "confirmations.discard_draft.post.cancel": "Piszkozat folytatása",
+ "confirmations.discard_draft.post.message": "A folytatással elveted a jelenleg írt bejegyzést.",
+ "confirmations.discard_draft.post.title": "Elveted a piszkozatot?",
"confirmations.discard_edit_media.confirm": "Elvetés",
"confirmations.discard_edit_media.message": "Mentetlen változtatásaid vannak a média leírásában vagy előnézetében, mindenképp elveted?",
- "confirmations.edit.confirm": "Szerkesztés",
- "confirmations.edit.message": "Ha most szerkeszted, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?",
- "confirmations.edit.title": "Felülírod a bejegyzést?",
"confirmations.follow_to_list.confirm": "Követés, és hozzáadás a listához",
"confirmations.follow_to_list.message": "Követned kell {name} felhasználót, hogy hozzáadhasd a listához.",
"confirmations.follow_to_list.title": "Felhasználó követése?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Követő eltávolítása",
"confirmations.remove_from_followers.message": "{name} követ téged. Biztos, hogy folytatod?",
"confirmations.remove_from_followers.title": "Követő eltávolítása?",
- "confirmations.reply.confirm": "Válasz",
- "confirmations.reply.message": "Ha most válaszolsz, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?",
- "confirmations.reply.title": "Felülírod a bejegyzést?",
"confirmations.unfollow.confirm": "Követés visszavonása",
"confirmations.unfollow.message": "Biztos, hogy vissza szeretnéd vonni {name} követését?",
"confirmations.unfollow.title": "Megszünteted a felhasználó követését?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Bejegyzések automatikus törlése",
"navigation_bar.blocks": "Letiltott felhasználók",
"navigation_bar.bookmarks": "Könyvjelzők",
- "navigation_bar.community_timeline": "Helyi idővonal",
- "navigation_bar.compose": "Új bejegyzés írása",
"navigation_bar.direct": "Személyes említések",
- "navigation_bar.discover": "Felfedezés",
"navigation_bar.domain_blocks": "Letiltott domainek",
- "navigation_bar.explore": "Felfedezés",
"navigation_bar.favourites": "Kedvencek",
"navigation_bar.filters": "Némított szavak",
"navigation_bar.follow_requests": "Követési kérések",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Követések és követők",
"navigation_bar.import_export": "Importálás és exportálás",
"navigation_bar.lists": "Listák",
+ "navigation_bar.live_feed_local": "Élő hírfolyam (helyi)",
+ "navigation_bar.live_feed_public": "Élő hírfolyam (nyilvános)",
"navigation_bar.logout": "Kijelentkezés",
"navigation_bar.moderation": "Moderáció",
"navigation_bar.more": "Továbbiak",
"navigation_bar.mutes": "Némított felhasználók",
"navigation_bar.opened_in_classic_interface": "A bejegyzések, fiókok és más speciális oldalak alapértelmezés szerint a klasszikus webes felületen nyílnak meg.",
- "navigation_bar.personal": "Személyes",
- "navigation_bar.pins": "Kitűzött bejegyzések",
"navigation_bar.preferences": "Beállítások",
"navigation_bar.privacy_and_reach": "Adatvédelem és elérés",
- "navigation_bar.public_timeline": "Föderációs idővonal",
"navigation_bar.search": "Keresés",
"navigation_bar.search_trends": "Keresés / felkapott",
- "navigation_bar.security": "Biztonság",
"navigation_panel.collapse_followed_tags": "Követett hashtagek menü összecsukása",
"navigation_panel.collapse_lists": "Listamenü összecsukása",
"navigation_panel.expand_followed_tags": "Követett hashtagek menü kibontása",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Szabálysértés",
"report_notification.categories.violation_sentence": "szabálysértés",
"report_notification.open": "Bejelentés megnyitása",
+ "search.clear": "Keresés törlése",
"search.no_recent_searches": "Nincsenek keresési előzmények",
"search.placeholder": "Keresés",
"search.quick_action.account_search": "Profilok a következő keresésre: {x}",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index cbabd544fc3..75f1c69bb9a 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -96,7 +96,6 @@
"column_header.pin": "Ամրացնել",
"column_header.show_settings": "Ցուցադրել կարգաւորումները",
"column_header.unpin": "Հանել",
- "column_subheading.settings": "Կարգաւորումներ",
"community.column_settings.local_only": "Միայն տեղական",
"community.column_settings.media_only": "Միայն մեդիա",
"community.column_settings.remote_only": "Միայն հեռակայ",
@@ -121,13 +120,10 @@
"confirmations.delete_list.confirm": "Ջնջել",
"confirmations.delete_list.message": "Վստա՞հ ես, որ ուզում ես մշտապէս ջնջել այս ցանկը։",
"confirmations.discard_edit_media.confirm": "Չեղարկել",
- "confirmations.edit.confirm": "Խմբագրել",
"confirmations.logout.confirm": "Ելք",
"confirmations.logout.message": "Համոզո՞ւած ես, որ ուզում ես դուրս գալ",
"confirmations.mute.confirm": "Լռեցնել",
"confirmations.redraft.confirm": "Ջնջել եւ խմբագրել նորից",
- "confirmations.reply.confirm": "Պատասխանել",
- "confirmations.reply.message": "Այս պահին պատասխանելը կը չեղարկի ձեր՝ այս պահին անաւարտ հաղորդագրութիւնը։ Համոզուա՞ծ էք։",
"confirmations.unfollow.confirm": "Ապահետեւել",
"confirmations.unfollow.message": "Վստա՞հ ես, որ ուզում ես այլեւս չհետեւել {name}֊ին։",
"conversation.delete": "Ջնջել խօսակցութիւնը",
@@ -273,12 +269,8 @@
"navigation_bar.about": "Մասին",
"navigation_bar.blocks": "Արգելափակուած օգտատէրեր",
"navigation_bar.bookmarks": "Էջանիշեր",
- "navigation_bar.community_timeline": "Տեղական հոսք",
- "navigation_bar.compose": "Ստեղծել նոր գրառում",
"navigation_bar.direct": "Մասնաւոր յիշատակումներ",
- "navigation_bar.discover": "Բացայայտել",
"navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ",
- "navigation_bar.explore": "Բացայայտել",
"navigation_bar.favourites": "Հաւանածներ",
"navigation_bar.filters": "Լռեցուած բառեր",
"navigation_bar.follow_requests": "Հետեւելու հայցեր",
@@ -287,12 +279,8 @@
"navigation_bar.lists": "Ցանկեր",
"navigation_bar.logout": "Դուրս գալ",
"navigation_bar.mutes": "Լռեցրած օգտատէրեր",
- "navigation_bar.personal": "Անձնական",
- "navigation_bar.pins": "Ամրացուած գրառումներ",
"navigation_bar.preferences": "Նախապատուութիւններ",
- "navigation_bar.public_timeline": "Դաշնային հոսք",
"navigation_bar.search": "Որոնել",
- "navigation_bar.security": "Անվտանգութիւն",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.sign_up": "{name}-ը գրանցուած է",
"notification.favourite": "{name}-ը հաւանել է քո գրառումը",
diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json
index ab5bd0a1688..f9deb2f859d 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -181,7 +181,6 @@
"column_header.show_settings": "Monstrar le parametros",
"column_header.unpin": "Disfixar",
"column_search.cancel": "Cancellar",
- "column_subheading.settings": "Parametros",
"community.column_settings.local_only": "Solmente local",
"community.column_settings.media_only": "Solmente multimedia",
"community.column_settings.remote_only": "A distantia solmente",
@@ -219,9 +218,6 @@
"confirmations.delete_list.title": "Deler lista?",
"confirmations.discard_edit_media.confirm": "Abandonar",
"confirmations.discard_edit_media.message": "Tu ha cambiamentos non salvate in le description o previsualisation del objecto multimedial. Abandonar los?",
- "confirmations.edit.confirm": "Modificar",
- "confirmations.edit.message": "Si tu modifica isto ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?",
- "confirmations.edit.title": "Superscriber le message?",
"confirmations.follow_to_list.confirm": "Sequer e adder al lista",
"confirmations.follow_to_list.message": "Tu debe sequer {name} pro poter adder le/la a un lista.",
"confirmations.follow_to_list.title": "Sequer le usator?",
@@ -239,9 +235,6 @@
"confirmations.remove_from_followers.confirm": "Remover sequitor",
"confirmations.remove_from_followers.message": "{name} non plus te sequera. Es tu secur de voler continuar?",
"confirmations.remove_from_followers.title": "Remover sequitor?",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Si tu responde ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?",
- "confirmations.reply.title": "Superscriber le message?",
"confirmations.unfollow.confirm": "Non plus sequer",
"confirmations.unfollow.message": "Es tu secur que tu vole cessar de sequer {name}?",
"confirmations.unfollow.title": "Cessar de sequer le usator?",
@@ -539,12 +532,8 @@
"navigation_bar.advanced_interface": "Aperir in le interfacie web avantiate",
"navigation_bar.blocks": "Usatores blocate",
"navigation_bar.bookmarks": "Marcapaginas",
- "navigation_bar.community_timeline": "Chronologia local",
- "navigation_bar.compose": "Componer un nove message",
"navigation_bar.direct": "Mentiones private",
- "navigation_bar.discover": "Discoperir",
"navigation_bar.domain_blocks": "Dominios blocate",
- "navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "Parolas silentiate",
"navigation_bar.follow_requests": "Requestas de sequimento",
@@ -555,12 +544,8 @@
"navigation_bar.moderation": "Moderation",
"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.pins": "Messages fixate",
"navigation_bar.preferences": "Preferentias",
- "navigation_bar.public_timeline": "Chronologia federate",
"navigation_bar.search": "Cercar",
- "navigation_bar.security": "Securitate",
"not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.",
"notification.admin.report": "{name} ha reportate {target}",
"notification.admin.report_account": "{name} ha reportate {count, plural, one {un message} other {# messages}} de {target} per {category}",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 607c01e7846..f12e1f6e6dd 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -139,7 +139,6 @@
"column_header.pin": "Sematkan",
"column_header.show_settings": "Tampilkan pengaturan",
"column_header.unpin": "Lepaskan",
- "column_subheading.settings": "Pengaturan",
"community.column_settings.local_only": "Hanya lokal",
"community.column_settings.media_only": "Hanya media",
"community.column_settings.remote_only": "Hanya jarak jauh",
@@ -177,9 +176,6 @@
"confirmations.delete_list.title": "Delete list?",
"confirmations.discard_edit_media.confirm": "Buang",
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan deskripsi atau pratinjau media, buang saja?",
- "confirmations.edit.confirm": "Ubah",
- "confirmations.edit.message": "Mengubah akan menimpa pesan yang sedang anda tulis. Apakah anda yakin ingin melanjutkan?",
- "confirmations.edit.title": "Overwrite post?",
"confirmations.logout.confirm": "Keluar",
"confirmations.logout.message": "Apakah Anda yakin ingin keluar?",
"confirmations.logout.title": "Log out?",
@@ -187,9 +183,6 @@
"confirmations.redraft.confirm": "Hapus dan susun ulang",
"confirmations.redraft.message": "Apakah anda yakin ingin menghapus postingan ini dan menyusun ulang postingan ini? Favorit dan peningkatan akan hilang, dan balasan ke postingan asli tidak akan terhubung ke postingan manapun.",
"confirmations.redraft.title": "Delete & redraft post?",
- "confirmations.reply.confirm": "Balas",
- "confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?",
- "confirmations.reply.title": "Delete & redraft post?",
"confirmations.unfollow.confirm": "Berhenti mengikuti",
"confirmations.unfollow.message": "Apakah Anda ingin berhenti mengikuti {name}?",
"confirmations.unfollow.title": "Unfollow user?",
@@ -393,11 +386,7 @@
"navigation_bar.about": "Tentang",
"navigation_bar.blocks": "Pengguna diblokir",
"navigation_bar.bookmarks": "Markah",
- "navigation_bar.community_timeline": "Linimasa lokal",
- "navigation_bar.compose": "Tulis toot baru",
- "navigation_bar.discover": "Temukan",
"navigation_bar.domain_blocks": "Domain tersembunyi",
- "navigation_bar.explore": "Jelajahi",
"navigation_bar.filters": "Kata yang dibisukan",
"navigation_bar.follow_requests": "Permintaan mengikuti",
"navigation_bar.followed_tags": "Tagar yang diikuti",
@@ -405,12 +394,8 @@
"navigation_bar.lists": "Daftar",
"navigation_bar.logout": "Keluar",
"navigation_bar.mutes": "Pengguna dibisukan",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Toot tersemat",
"navigation_bar.preferences": "Pengaturan",
- "navigation_bar.public_timeline": "Linimasa gabungan",
"navigation_bar.search": "Cari",
- "navigation_bar.security": "Keamanan",
"not_signed_in_indicator.not_signed_in": "Anda harus masuk untuk mengakses sumber daya ini.",
"notification.admin.report": "{name} melaporkan {target}",
"notification.admin.sign_up": "{name} mendaftar",
diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json
index 9479090dc85..e0c51751660 100644
--- a/app/javascript/mastodon/locales/ie.json
+++ b/app/javascript/mastodon/locales/ie.json
@@ -129,7 +129,6 @@
"column_header.pin": "Pinglar",
"column_header.show_settings": "Monstrar parametres",
"column_header.unpin": "Despinglar",
- "column_subheading.settings": "Parametres",
"community.column_settings.local_only": "Solmen local",
"community.column_settings.media_only": "Solmen medie",
"community.column_settings.remote_only": "Solmen external",
@@ -164,15 +163,11 @@
"confirmations.delete_list.message": "Esque tu vermen vole permanentmen deleter ti-ci liste?",
"confirmations.discard_edit_media.confirm": "Forjettar",
"confirmations.discard_edit_media.message": "Tu have ínconservat changes al descrition de medie o al previse, forjettar les sin egarda?",
- "confirmations.edit.confirm": "Redacter",
- "confirmations.edit.message": "Redacter nu va remplazzar li missage quel tu actualmen composi. Esque tu vermen vole proceder?",
"confirmations.logout.confirm": "Exear",
"confirmations.logout.message": "Esque tu vermen vole exear?",
"confirmations.mute.confirm": "Silentiar",
"confirmations.redraft.confirm": "Deleter & redacter",
"confirmations.redraft.message": "Esque tu vermen vole deleter ti-ci posta e redacter it? Favorites e boosts va esser perdit, e responses al posta original va esser orfanat.",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder nu va remplazzar li missage quel tu actualmen composi. Esque tu vermen vole proceder?",
"confirmations.unfollow.confirm": "Dessequer",
"confirmations.unfollow.message": "Esque tu vermen vole dessequer {name}?",
"conversation.delete": "Deleter conversation",
@@ -398,12 +393,8 @@
"navigation_bar.advanced_interface": "Aperter in li web-interfacie avansat",
"navigation_bar.blocks": "Bloccat usatores",
"navigation_bar.bookmarks": "Marcatores",
- "navigation_bar.community_timeline": "Local témpor-linea",
- "navigation_bar.compose": "Composir un nov posta",
"navigation_bar.direct": "Privat mentiones",
- "navigation_bar.discover": "Decovrir",
"navigation_bar.domain_blocks": "Bloccat dominias",
- "navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "Silentiat paroles",
"navigation_bar.follow_requests": "Petitiones de sequer",
@@ -413,12 +404,8 @@
"navigation_bar.logout": "Exear",
"navigation_bar.mutes": "Silentiat usatores",
"navigation_bar.opened_in_classic_interface": "Postas, contos e altri specific págines es customalmen apertet in li classic web-interfacie.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Pinglat postas",
"navigation_bar.preferences": "Preferenties",
- "navigation_bar.public_timeline": "Federat témpor-linea",
"navigation_bar.search": "Sercha",
- "navigation_bar.security": "Securitá",
"not_signed_in_indicator.not_signed_in": "On deve aperter session por accesser ti-ci ressurse.",
"notification.admin.report": "{name} raportat {target}",
"notification.admin.sign_up": "{name} adheret",
diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json
index e2d5e10177f..25d4201ab93 100644
--- a/app/javascript/mastodon/locales/ig.json
+++ b/app/javascript/mastodon/locales/ig.json
@@ -28,7 +28,6 @@
"column.pins": "Pinned post",
"column_header.pin": "Gbado na profaịlụ gị",
"column_header.show_settings": "Gosi mwube",
- "column_subheading.settings": "Mwube",
"community.column_settings.media_only": "Media only",
"compose.language.change": "Gbanwee asụsụ",
"compose.language.search": "Chọọ asụsụ...",
@@ -44,9 +43,7 @@
"confirmations.delete.confirm": "Hichapụ",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Hichapụ",
- "confirmations.edit.confirm": "Dezie",
"confirmations.mute.confirm": "Mee ogbi",
- "confirmations.reply.confirm": "Zaa",
"confirmations.unfollow.confirm": "Kwụsị iso",
"conversation.delete": "Hichapụ nkata",
"conversation.open": "Lelee nkata",
@@ -109,7 +106,6 @@
"lists.edit": "Dezie ndepụta",
"navigation_bar.about": "Maka",
"navigation_bar.bookmarks": "Ebenrụtụakā",
- "navigation_bar.discover": "Chọpụta",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.favourites": "Mmasị",
"navigation_bar.lists": "Ndepụta",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 80a6738b565..69e549ea884 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -167,7 +167,6 @@
"column_header.show_settings": "Montrez ajusti",
"column_header.unpin": "Depinglagez",
"column_search.cancel": "Nuligar",
- "column_subheading.settings": "Ajusti",
"community.column_settings.local_only": "Lokala nur",
"community.column_settings.media_only": "Nur audvidaji",
"community.column_settings.remote_only": "Fora nur",
@@ -205,9 +204,6 @@
"confirmations.delete_list.title": "Ka efacar listo?",
"confirmations.discard_edit_media.confirm": "Forigar",
"confirmations.discard_edit_media.message": "Vu havas nekonservita chanji di audvidajpriskribo o prevido, ka forigas ili irgakaze?",
- "confirmations.edit.confirm": "Modifikez",
- "confirmations.edit.message": "Modifikar nun remplasos la mesajo quon vu nune skribas. Ka vu certe volas procedar?",
- "confirmations.edit.title": "Ka remplasar posto?",
"confirmations.follow_to_list.confirm": "Sequar e adjuntar ad listo",
"confirmations.follow_to_list.message": "Vu bezonas sequar {name} por adjuntar lu ad listo.",
"confirmations.follow_to_list.title": "Ka sequar uzanto?",
@@ -222,9 +218,6 @@
"confirmations.redraft.confirm": "Efacez e riskisez",
"confirmations.redraft.message": "Ka vu certe volas efacar ca posto e riskisigar ol? Favoriziti e repeti esos perdita, e respondi al posto originala esos orfanigita.",
"confirmations.redraft.title": "Ka efacar & riskisar posto?",
- "confirmations.reply.confirm": "Respondez",
- "confirmations.reply.message": "Respondar nun remplos mesajo quon vu nun igas. Ka vu certe volas durar?",
- "confirmations.reply.title": "Ka remplasar posto?",
"confirmations.unfollow.confirm": "Desequez",
"confirmations.unfollow.message": "Ka vu certe volas desequar {name}?",
"confirmations.unfollow.title": "Ka dessequar uzanto?",
@@ -518,12 +511,8 @@
"navigation_bar.advanced_interface": "Apertez per retintervizajo",
"navigation_bar.blocks": "Blokusita uzeri",
"navigation_bar.bookmarks": "Lektosigni",
- "navigation_bar.community_timeline": "Lokala tempolineo",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Privata mencioni",
- "navigation_bar.discover": "Deskovrez",
"navigation_bar.domain_blocks": "Blokusita domeni",
- "navigation_bar.explore": "Explorez",
"navigation_bar.favourites": "Favoriziti",
"navigation_bar.filters": "Silencigita vorti",
"navigation_bar.follow_requests": "Demandi di sequado",
@@ -534,12 +523,8 @@
"navigation_bar.moderation": "Jero",
"navigation_bar.mutes": "Celita uzeri",
"navigation_bar.opened_in_classic_interface": "Posti, konti e altra pagini specifika apertesas en la retovidilo klasika.",
- "navigation_bar.personal": "Personala",
- "navigation_bar.pins": "Adpinglita afishi",
"navigation_bar.preferences": "Preferi",
- "navigation_bar.public_timeline": "Federata tempolineo",
"navigation_bar.search": "Serchez",
- "navigation_bar.security": "Sekureso",
"not_signed_in_indicator.not_signed_in": "Vu mustas enirar por acesar ca moyeno.",
"notification.admin.report": "{name} raportizis {target}",
"notification.admin.report_account": "{name} raportis {count, plural,one {1 posto} other {# posti}} de {target} pro {category}",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 05f45ed6d6a..52b3f5d97dd 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Birta stillingar",
"column_header.unpin": "Losa",
"column_search.cancel": "Hætta við",
- "column_subheading.settings": "Stillingar",
"community.column_settings.local_only": "Einungis staðvært",
"community.column_settings.media_only": "Einungis myndskrár",
"community.column_settings.remote_only": "Einungis fjartengt",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Eyða",
"confirmations.delete_list.message": "Ertu viss um að þú viljir eyða þessum lista endanlega?",
"confirmations.delete_list.title": "Eyða lista?",
+ "confirmations.discard_draft.confirm": "Henda og halda áfram",
+ "confirmations.discard_draft.edit.cancel": "Halda áfram að breyta",
+ "confirmations.discard_draft.edit.message": "Ef þú heldur áfram verður öllum breytingum sem þú hefur gert á færslunni verða hent.",
+ "confirmations.discard_draft.edit.title": "Henda breytingum á færslunni þinni?",
+ "confirmations.discard_draft.post.cancel": "Halda áfram með drög",
+ "confirmations.discard_draft.post.message": "Ef þú heldur áfram verður færslunni sem þú ert að skrifA hent.",
+ "confirmations.discard_draft.post.title": "Henda drögum að færslunni þinni?",
"confirmations.discard_edit_media.confirm": "Henda",
"confirmations.discard_edit_media.message": "Þú ert með óvistaðar breytingar á lýsingu myndefnis eða forskoðunar, henda þeim samt?",
- "confirmations.edit.confirm": "Breyta",
- "confirmations.edit.message": "Ef þú breytir núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?",
- "confirmations.edit.title": "Skrifa yfir færslu?",
"confirmations.follow_to_list.confirm": "Fylgjast með og bæta á lista",
"confirmations.follow_to_list.message": "Þú þarft að fylgjast með {name} til að bæta viðkomandi á lista.",
"confirmations.follow_to_list.title": "Fylgjast með notanda?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Fjarlægja fylgjanda",
"confirmations.remove_from_followers.message": "{name} mun hætta að fylgjast með þér. Ertu viss um að þú viljir halda áfram?",
"confirmations.remove_from_followers.title": "Fjarlægja fylgjanda?",
- "confirmations.reply.confirm": "Svara",
- "confirmations.reply.message": "Ef þú svarar núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?",
- "confirmations.reply.title": "Skrifa yfir færslu?",
"confirmations.unfollow.confirm": "Hætta að fylgja",
"confirmations.unfollow.message": "Ertu viss um að þú viljir hætta að fylgjast með {name}?",
"confirmations.unfollow.title": "Hætta að fylgjast með viðkomandi?",
@@ -386,7 +386,7 @@
"follow_suggestions.similar_to_recently_followed_longer": "Svipar til notenda sem þú hefur nýlega farið að fylgjast með",
"follow_suggestions.view_all": "Skoða allt",
"follow_suggestions.who_to_follow": "Hverjum á að fylgjast með",
- "followed_tags": "Myllumerki sem fylgst er með",
+ "followed_tags": "Vöktuð myllumerki",
"footer.about": "Nánari upplýsingar",
"footer.directory": "Notandasniðamappa",
"footer.get_app": "Ná í forritið",
@@ -555,32 +555,29 @@
"navigation_bar.automated_deletion": "Sjálfvirk eyðing færslna",
"navigation_bar.blocks": "Útilokaðir notendur",
"navigation_bar.bookmarks": "Bókamerki",
- "navigation_bar.community_timeline": "Staðvær tímalína",
- "navigation_bar.compose": "Semja nýja færslu",
"navigation_bar.direct": "Einkaspjall",
- "navigation_bar.discover": "Uppgötva",
"navigation_bar.domain_blocks": "Útilokuð lén",
- "navigation_bar.explore": "Kanna",
"navigation_bar.favourites": "Eftirlæti",
"navigation_bar.filters": "Þögguð orð",
"navigation_bar.follow_requests": "Beiðnir um að fylgjast með",
- "navigation_bar.followed_tags": "Myllumerki sem fylgst er með",
+ "navigation_bar.followed_tags": "Vöktuð myllumerki",
"navigation_bar.follows_and_followers": "Fylgist með og fylgjendur",
"navigation_bar.import_export": "Inn- og útflutningur",
"navigation_bar.lists": "Listar",
+ "navigation_bar.live_feed_local": "Bein streymi (á netþjóni)",
+ "navigation_bar.live_feed_public": "Bein streymi (opinber)",
"navigation_bar.logout": "Útskráning",
"navigation_bar.moderation": "Umsjón",
"navigation_bar.more": "Meira",
"navigation_bar.mutes": "Þaggaðir notendur",
"navigation_bar.opened_in_classic_interface": "Færslur, notendaaðgangar og aðrar sérhæfðar síður eru sjálfgefið opnaðar í klassíska vefviðmótinu.",
- "navigation_bar.personal": "Einka",
- "navigation_bar.pins": "Festar færslur",
"navigation_bar.preferences": "Kjörstillingar",
"navigation_bar.privacy_and_reach": "Gagnaleynd og útbreiðsla",
- "navigation_bar.public_timeline": "Sameiginleg tímalína",
"navigation_bar.search": "Leita",
- "navigation_bar.security": "Öryggi",
+ "navigation_bar.search_trends": "Leita / Vinsælt",
+ "navigation_panel.collapse_followed_tags": "Fella saman valmynd myllumerkja sem fylgst er með",
"navigation_panel.collapse_lists": "Fella saman valmyndalista",
+ "navigation_panel.expand_followed_tags": "Fletta út valmynd myllumerkja sem fylgst er með",
"navigation_panel.expand_lists": "Fletta út valmyndalista",
"not_signed_in_indicator.not_signed_in": "Þú þarft að skrá þig inn til að nota þetta tilfang.",
"notification.admin.report": "{name} kærði {target}",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "Brot á reglum",
"report_notification.categories.violation_sentence": "brot á reglum",
"report_notification.open": "Opin kæra",
+ "search.clear": "Hreinsa leit",
"search.no_recent_searches": "Engar nýlegar leitir",
"search.placeholder": "Leita",
"search.quick_action.account_search": "Notandasnið sem samsvara {x}",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 8fe140eaf30..f39862e7cc5 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Mostra le impostazioni",
"column_header.unpin": "Non fissare",
"column_search.cancel": "Annulla",
- "column_subheading.settings": "Impostazioni",
"community.column_settings.local_only": "Solo Locale",
"community.column_settings.media_only": "Solo Media",
"community.column_settings.remote_only": "Solo Remoto",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Sei sicuro/a di voler eliminare permanentemente questo elenco?",
"confirmations.delete_list.title": "Eliminare la lista?",
+ "confirmations.discard_draft.confirm": "Scarta e continua",
+ "confirmations.discard_draft.edit.cancel": "Continua modifica",
+ "confirmations.discard_draft.edit.message": "Continuare scarterà ogni modifica che hai fatto al post che stai attualmente modificando.",
+ "confirmations.discard_draft.edit.title": "Scartare le modifiche al tuo post?",
+ "confirmations.discard_draft.post.cancel": "Continua bozza",
+ "confirmations.discard_draft.post.message": "Continuare scarterà il post che stai attualmente creando.",
+ "confirmations.discard_draft.post.title": "Scartare la tua bozza del post?",
"confirmations.discard_edit_media.confirm": "Scarta",
"confirmations.discard_edit_media.message": "Hai delle modifiche non salvate alla descrizione o anteprima del media, scartarle comunque?",
- "confirmations.edit.confirm": "Modifica",
- "confirmations.edit.message": "Modificare ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?",
- "confirmations.edit.title": "Sovrascrivere il post?",
"confirmations.follow_to_list.confirm": "Segui e aggiungi alla lista",
"confirmations.follow_to_list.message": "Devi seguire {name} per aggiungerli a una lista.",
"confirmations.follow_to_list.title": "Seguire l'utente?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Rimuovi il seguace",
"confirmations.remove_from_followers.message": "{name} smetterà di seguirti. Si è sicuri di voler procedere?",
"confirmations.remove_from_followers.title": "Rimuovi il seguace?",
- "confirmations.reply.confirm": "Rispondi",
- "confirmations.reply.message": "Rispondere ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?",
- "confirmations.reply.title": "Sovrascrivere il post?",
"confirmations.unfollow.confirm": "Smetti di seguire",
"confirmations.unfollow.message": "Sei sicuro di voler smettere di seguire {name}?",
"confirmations.unfollow.title": "Smettere di seguire l'utente?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Cancellazione automatica dei post",
"navigation_bar.blocks": "Utenti bloccati",
"navigation_bar.bookmarks": "Segnalibri",
- "navigation_bar.community_timeline": "Cronologia locale",
- "navigation_bar.compose": "Componi nuovo toot",
"navigation_bar.direct": "Menzioni private",
- "navigation_bar.discover": "Scopri",
"navigation_bar.domain_blocks": "Domini bloccati",
- "navigation_bar.explore": "Esplora",
"navigation_bar.favourites": "Preferiti",
"navigation_bar.filters": "Parole silenziate",
"navigation_bar.follow_requests": "Richieste di seguirti",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "Seguiti e seguaci",
"navigation_bar.import_export": "Importa ed esporta",
"navigation_bar.lists": "Liste",
+ "navigation_bar.live_feed_local": "Feed live (locale)",
+ "navigation_bar.live_feed_public": "Feed live (pubblico)",
"navigation_bar.logout": "Disconnettiti",
"navigation_bar.moderation": "Moderazione",
"navigation_bar.more": "Altro",
"navigation_bar.mutes": "Utenti silenziati",
"navigation_bar.opened_in_classic_interface": "Post, account e altre pagine specifiche sono aperti per impostazione predefinita nella classica interfaccia web.",
- "navigation_bar.personal": "Personale",
- "navigation_bar.pins": "Post fissati",
"navigation_bar.preferences": "Preferenze",
"navigation_bar.privacy_and_reach": "Privacy e copertura",
- "navigation_bar.public_timeline": "Cronologia federata",
"navigation_bar.search": "Cerca",
- "navigation_bar.security": "Sicurezza",
+ "navigation_bar.search_trends": "Cerca / In tendenza",
+ "navigation_panel.collapse_followed_tags": "Comprimi il menù degli hashtag seguiti",
"navigation_panel.collapse_lists": "Chiudi il menu elenco",
+ "navigation_panel.expand_followed_tags": "Espandi il menù degli hashtag seguiti",
"navigation_panel.expand_lists": "Espandi il menu elenco",
"not_signed_in_indicator.not_signed_in": "Devi accedere per consultare questa risorsa.",
"notification.admin.report": "{name} ha segnalato {target}",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "Violazione delle regole",
"report_notification.categories.violation_sentence": "violazione delle regole",
"report_notification.open": "Apri segnalazione",
+ "search.clear": "Cancella ricerca",
"search.no_recent_searches": "Nessuna ricerca recente",
"search.placeholder": "Cerca",
"search.quick_action.account_search": "Profili corrispondenti a {x}",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 22e24e84db2..39d8597df34 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "設定を表示",
"column_header.unpin": "ピン留めを外す",
"column_search.cancel": "キャンセル",
- "column_subheading.settings": "設定",
"community.column_settings.local_only": "ローカルのみ表示",
"community.column_settings.media_only": "メディアのみ表示",
"community.column_settings.remote_only": "リモートのみ表示",
@@ -222,9 +221,6 @@
"confirmations.delete_list.title": "リストを削除しようとしています",
"confirmations.discard_edit_media.confirm": "破棄",
"confirmations.discard_edit_media.message": "メディアの説明またはプレビューに保存されていない変更があります。それでも破棄しますか?",
- "confirmations.edit.confirm": "編集",
- "confirmations.edit.message": "今編集すると現在作成中のメッセージが上書きされます。本当に実行しますか?",
- "confirmations.edit.title": "作成中の内容を上書きしようとしています",
"confirmations.follow_to_list.confirm": "フォローしてリストに追加",
"confirmations.follow_to_list.message": "リストに追加するには{name}さんをフォローしている必要があります。",
"confirmations.follow_to_list.title": "ユーザーをフォローしますか?",
@@ -242,9 +238,6 @@
"confirmations.remove_from_followers.confirm": "フォロワーを削除",
"confirmations.remove_from_followers.message": "{name}さんはあなたをフォローしなくなります。本当によろしいですか?",
"confirmations.remove_from_followers.title": "フォロワーを削除しますか?",
- "confirmations.reply.confirm": "返信",
- "confirmations.reply.message": "今返信すると現在作成中のメッセージが上書きされます。本当に実行しますか?",
- "confirmations.reply.title": "作成中の内容を上書きしようとしています",
"confirmations.unfollow.confirm": "フォロー解除",
"confirmations.unfollow.message": "本当に{name}さんのフォローを解除しますか?",
"confirmations.unfollow.title": "フォローを解除しようとしています",
@@ -550,12 +543,8 @@
"navigation_bar.advanced_interface": "上級者向けUIに戻る",
"navigation_bar.blocks": "ブロックしたユーザー",
"navigation_bar.bookmarks": "ブックマーク",
- "navigation_bar.community_timeline": "ローカルタイムライン",
- "navigation_bar.compose": "投稿の新規作成",
"navigation_bar.direct": "非公開の返信",
- "navigation_bar.discover": "見つける",
"navigation_bar.domain_blocks": "ブロックしたドメイン",
- "navigation_bar.explore": "探索する",
"navigation_bar.favourites": "お気に入り",
"navigation_bar.filters": "フィルター設定",
"navigation_bar.follow_requests": "フォローリクエスト",
@@ -566,12 +555,8 @@
"navigation_bar.moderation": "モデレーション",
"navigation_bar.mutes": "ミュートしたユーザー",
"navigation_bar.opened_in_classic_interface": "投稿やプロフィールを直接開いた場合は一時的に標準UIで表示されます。",
- "navigation_bar.personal": "個人用",
- "navigation_bar.pins": "固定した投稿",
"navigation_bar.preferences": "ユーザー設定",
- "navigation_bar.public_timeline": "連合タイムライン",
"navigation_bar.search": "検索",
- "navigation_bar.security": "セキュリティ",
"not_signed_in_indicator.not_signed_in": "この機能を使うにはログインする必要があります。",
"notification.admin.report": "{name}さんが{target}さんを通報しました",
"notification.admin.report_account": "{name}さんが{target}さんの投稿{count, plural, other {#件}}を「{category}」として通報しました",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 166b145ceef..9831d8b1a97 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -54,7 +54,6 @@
"column_header.pin": "მიმაგრება",
"column_header.show_settings": "პარამეტრების ჩვენება",
"column_header.unpin": "მოხსნა",
- "column_subheading.settings": "პარამეტრები",
"community.column_settings.media_only": "მხოლოდ მედია",
"compose_form.direct_message_warning_learn_more": "გაიგე მეტი",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
@@ -143,20 +142,13 @@
"lists.delete": "სიის წაშლა",
"lists.edit": "სიის შეცვლა",
"navigation_bar.blocks": "დაბლოკილი მომხმარებლები",
- "navigation_bar.community_timeline": "ლოკალური თაიმლაინი",
- "navigation_bar.compose": "Compose new toot",
- "navigation_bar.discover": "აღმოაჩინე",
"navigation_bar.domain_blocks": "დამალული დომენები",
"navigation_bar.filters": "გაჩუმებული სიტყვები",
"navigation_bar.follow_requests": "დადევნების მოთხოვნები",
"navigation_bar.lists": "სიები",
"navigation_bar.logout": "გასვლა",
"navigation_bar.mutes": "გაჩუმებული მომხმარებლები",
- "navigation_bar.personal": "პირადი",
- "navigation_bar.pins": "აპინული ტუტები",
"navigation_bar.preferences": "პრეფერენსიები",
- "navigation_bar.public_timeline": "ფედერალური თაიმლაინი",
- "navigation_bar.security": "უსაფრთხოება",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} გამოგყვათ",
"notification.reblog": "{name}-მა დაბუსტა თქვენი სტატუსი",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index 48c18e3ca29..dce8fc460a1 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -6,6 +6,7 @@
"about.domain_blocks.preamble": "Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi.",
"about.domain_blocks.silenced.title": "Ɣur-s talast",
"about.domain_blocks.suspended.title": "Yettwaḥbes",
+ "about.language_label": "Tutlayt",
"about.not_available": "Talɣut-a ur tettwabder ara deg uqeddac-a.",
"about.powered_by": "Azeṭṭa inmetti yettwasɣelsen sɣur {mastodon}",
"about.rules": "Ilugan n uqeddac",
@@ -130,7 +131,6 @@
"column_header.show_settings": "Ssken iɣewwaṛen",
"column_header.unpin": "Kkes asenteḍ",
"column_search.cancel": "Semmet",
- "column_subheading.settings": "Iɣewwaṛen",
"community.column_settings.local_only": "Adigan kan",
"community.column_settings.media_only": "Imidyaten kan",
"community.column_settings.remote_only": "Anmeggag kan",
@@ -164,8 +164,6 @@
"confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ umuɣ-agi i lebda?",
"confirmations.delete_list.title": "Tukksa n tebdart?",
"confirmations.discard_edit_media.confirm": "Sefsex",
- "confirmations.edit.confirm": "Ẓreg",
- "confirmations.edit.message": "Abeddel tura ad d-yaru izen-nni i d-tegreḍ akka tura. Tetḥeqqeḍ tebɣiḍ ad tkemmleḍ?",
"confirmations.follow_to_list.confirm": "Ḍfeṛ-it sakin rnu-t ɣer tebdart",
"confirmations.logout.confirm": "Ffeɣ",
"confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?",
@@ -175,8 +173,6 @@
"confirmations.missing_alt_text.title": "Rnu aḍris amlellay?",
"confirmations.mute.confirm": "Sgugem",
"confirmations.redraft.confirm": "Kkes sakin ɛiwed tira",
- "confirmations.reply.confirm": "Err",
- "confirmations.reply.message": "Tiririt akka tura ad k-degger izen-agi i tettaruḍ. Tebɣiḍ ad tkemmleḍ?",
"confirmations.unfollow.confirm": "Ur ḍḍafaṛ ara",
"confirmations.unfollow.message": "Tetḥeqqeḍ belli tebɣiḍ ur teṭafaṛeḍ ara {name}?",
"content_warning.hide": "Ffer tasuffeɣt",
@@ -242,6 +238,10 @@
"explore.trending_links": "Isallen",
"explore.trending_statuses": "Tisuffaɣ",
"explore.trending_tags": "Ihacṭagen",
+ "featured_carousel.next": "Uḍfiṛ",
+ "featured_carousel.post": "Tasuffeɣt",
+ "featured_carousel.previous": "Uzwir",
+ "featured_carousel.slide": "{index} ɣef {total}",
"filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig",
"filter_modal.added.settings_link": "asebter n yiɣewwaṛen",
"filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.",
@@ -362,6 +362,7 @@
"lists.add_to_list": "Rnu ɣer tebdart",
"lists.add_to_lists": "Rnu {name} ɣer tebdarin",
"lists.create": "Snulfu-d",
+ "lists.create_list": "Snulfu-d tabdart",
"lists.delete": "Kkes tabdart",
"lists.done": "Immed",
"lists.edit": "Ẓreg tabdart",
@@ -392,12 +393,8 @@
"navigation_bar.advanced_interface": "Ldi deg ugrudem n web leqqayen",
"navigation_bar.blocks": "Iseqdacen yettusḥebsen",
"navigation_bar.bookmarks": "Ticraḍ",
- "navigation_bar.community_timeline": "Tasuddemt tadigant",
- "navigation_bar.compose": "Aru tajewwiqt tamaynut",
"navigation_bar.direct": "Tibdarin tusligin",
- "navigation_bar.discover": "Ẓer",
"navigation_bar.domain_blocks": "Tiɣula yeffren",
- "navigation_bar.explore": "Snirem",
"navigation_bar.favourites": "Imenyafen",
"navigation_bar.filters": "Awalen i yettwasgugmen",
"navigation_bar.follow_requests": "Isuturen n teḍfeṛt",
@@ -406,14 +403,11 @@
"navigation_bar.lists": "Tibdarin",
"navigation_bar.logout": "Ffeɣ",
"navigation_bar.moderation": "Aseɣyed",
+ "navigation_bar.more": "Ugar",
"navigation_bar.mutes": "Iseqdacen yettwasusmen",
"navigation_bar.opened_in_classic_interface": "Tisuffaɣ, imiḍanen akked isebtar-nniḍen igejdanen ldin-d s wudem amezwer deg ugrudem web aklasiki.",
- "navigation_bar.personal": "Udmawan",
- "navigation_bar.pins": "Tisuffaɣ yettwasenṭḍen",
"navigation_bar.preferences": "Imenyafen",
- "navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut",
"navigation_bar.search": "Nadi",
- "navigation_bar.security": "Taɣellist",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "Yemla-t-id {name} {target}",
"notification.admin.sign_up": "Ijerred {name}",
@@ -623,6 +617,7 @@
"status.mute_conversation": "Sgugem adiwenni",
"status.open": "Semɣeṛ tasuffeɣt-ayi",
"status.pin": "Senteḍ-itt deg umaɣnu",
+ "status.quote_post_author": "Izen sɣur {name}",
"status.read_more": "Issin ugar",
"status.reblog": "Bḍu",
"status.reblogged_by": "Yebḍa-tt {name}",
@@ -648,7 +643,10 @@
"status.unpin": "Kkes asenteḍ seg umaɣnu",
"subscribed_languages.save": "Sekles ibeddilen",
"tabs_bar.home": "Agejdan",
+ "tabs_bar.menu": "Umuɣ",
"tabs_bar.notifications": "Ilɣa",
+ "tabs_bar.publish": "Tasuffeɣt tamaynut",
+ "tabs_bar.search": "Nadi",
"terms_of_service.title": "Tiwtilin n useqdec",
"time_remaining.days": "Mazal {number, plural, one {# wass} other {# wussan}}",
"time_remaining.hours": "Mazal {number, plural, one {# usarag} other {# yisragen}}",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index 1c1c1ec4eb2..f0e981adb35 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -115,7 +115,6 @@
"column_header.pin": "Жабыстыру",
"column_header.show_settings": "Баптауларды көрсет",
"column_header.unpin": "Алып тастау",
- "column_subheading.settings": "Баптаулар",
"community.column_settings.local_only": "Тек жергілікті",
"community.column_settings.media_only": "Тек медиа",
"community.column_settings.remote_only": "Тек сыртқы",
@@ -140,8 +139,6 @@
"confirmations.logout.message": "Шығатыныңызға сенімдісіз бе?",
"confirmations.mute.confirm": "Үнсіз қылу",
"confirmations.redraft.confirm": "Өшіруді құптау",
- "confirmations.reply.confirm": "Жауап",
- "confirmations.reply.message": "Жауабыңыз жазып жатқан жазбаңыздың үстіне кетеді. Жалғастырамыз ба?",
"confirmations.unfollow.confirm": "Оқымау",
"confirmations.unfollow.message": "\"{name} атты қолданушыға енді жазылғыңыз келмей ме?",
"conversation.delete": "Пікірталасты өшіру",
@@ -245,9 +242,6 @@
"load_pending": "{count, plural, one {# жаңа нәрсе} other {# жаңа нәрсе}}",
"navigation_bar.blocks": "Бұғатталғандар",
"navigation_bar.bookmarks": "Бетбелгілер",
- "navigation_bar.community_timeline": "Жергілікті желі",
- "navigation_bar.compose": "Жаңа жазба бастау",
- "navigation_bar.discover": "шарлау",
"navigation_bar.domain_blocks": "Жабық домендер",
"navigation_bar.filters": "Үнсіз сөздер",
"navigation_bar.follow_requests": "Жазылуға сұранғандар",
@@ -255,11 +249,7 @@
"navigation_bar.lists": "Тізімдер",
"navigation_bar.logout": "Шығу",
"navigation_bar.mutes": "Үнсіз қолданушылар",
- "navigation_bar.personal": "Жеке",
- "navigation_bar.pins": "Жабыстырылғандар",
"navigation_bar.preferences": "Басымдықтар",
- "navigation_bar.public_timeline": "Жаһандық желі",
- "navigation_bar.security": "Қауіпсіздік",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} сізге жазылды",
"notification.follow_request": "{name} сізге жазылғысы келеді",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index c5b7582bac8..ae4e4dd7b33 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -64,9 +64,7 @@
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.pins": "Pinned toots",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.reblog": "{name} boosted your status",
"notifications.column_settings.status": "New toots:",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index cc1690fae67..6c2cc7ea142 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -112,7 +112,7 @@
"annual_report.summary.archetype.lurker": "은둔자",
"annual_report.summary.archetype.oracle": "예언자",
"annual_report.summary.archetype.pollster": "여론조사원",
- "annual_report.summary.archetype.replier": "인싸",
+ "annual_report.summary.archetype.replier": "답글나비",
"annual_report.summary.followers.followers": "팔로워",
"annual_report.summary.followers.total": "총 {count}",
"annual_report.summary.here_it_is": "{year}년 결산입니다:",
@@ -184,7 +184,6 @@
"column_header.show_settings": "설정 보이기",
"column_header.unpin": "고정 해제",
"column_search.cancel": "취소",
- "column_subheading.settings": "설정",
"community.column_settings.local_only": "로컬만",
"community.column_settings.media_only": "미디어만",
"community.column_settings.remote_only": "원격지만",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "삭제",
"confirmations.delete_list.message": "정말로 이 리스트를 영구적으로 삭제하시겠습니까?",
"confirmations.delete_list.title": "리스트를 삭제할까요?",
+ "confirmations.discard_draft.confirm": "삭제 및 계속",
+ "confirmations.discard_draft.edit.cancel": "계속 편집",
+ "confirmations.discard_draft.edit.message": "편집중인 게시물 변경사항을 모두 잃게 됩니다.",
+ "confirmations.discard_draft.edit.title": "게시물 변경사항을 삭제할까요?",
+ "confirmations.discard_draft.post.cancel": "초안으로 돌아가기",
+ "confirmations.discard_draft.post.message": "작성하고 있던 변경사항을 잃게 됩니다.",
+ "confirmations.discard_draft.post.title": "게시물 초안을 삭제할까요?",
"confirmations.discard_edit_media.confirm": "저장 안함",
"confirmations.discard_edit_media.message": "미디어 설명이나 미리보기에 대한 저장하지 않은 변경사항이 있습니다. 버리시겠습니까?",
- "confirmations.edit.confirm": "수정",
- "confirmations.edit.message": "지금 편집하면 작성 중인 메시지를 덮어씁니다. 진행이 확실한가요?",
- "confirmations.edit.title": "게시물을 덮어쓸까요?",
"confirmations.follow_to_list.confirm": "팔로우하고 리스트에 추가",
"confirmations.follow_to_list.message": "리스트에 추가하려면 {name} 님을 팔로우해야 합니다.",
"confirmations.follow_to_list.title": "팔로우할까요?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "팔로워 제거",
"confirmations.remove_from_followers.message": "{name} 님이 나를 팔로우하지 않게 됩니다. 계속할까요?",
"confirmations.remove_from_followers.title": "팔로워를 제거할까요?",
- "confirmations.reply.confirm": "답글",
- "confirmations.reply.message": "지금 답장하면 작성 중인 메시지를 덮어쓰게 됩니다. 정말 진행합니까?",
- "confirmations.reply.title": "게시물을 덮어쓸까요?",
"confirmations.unfollow.confirm": "팔로우 해제",
"confirmations.unfollow.message": "정말로 {name} 님을 팔로우 해제하시겠습니까?",
"confirmations.unfollow.title": "사용자를 언팔로우 할까요?",
@@ -549,18 +549,14 @@
"mute_modal.you_wont_see_mentions": "그를 멘션하는 게시물을 더는 보지 않게 됩니다.",
"mute_modal.you_wont_see_posts": "내가 작성한 게시물을 볼 수는 있지만, 나는 그가 작성한 것을 보지 않게 됩니다.",
"navigation_bar.about": "정보",
- "navigation_bar.account_settings": "암호화 보안",
+ "navigation_bar.account_settings": "암호 및 보안",
"navigation_bar.administration": "관리",
"navigation_bar.advanced_interface": "고급 웹 인터페이스에서 열기",
"navigation_bar.automated_deletion": "게시물 자동 삭제",
"navigation_bar.blocks": "차단한 사용자",
"navigation_bar.bookmarks": "북마크",
- "navigation_bar.community_timeline": "로컬 타임라인",
- "navigation_bar.compose": "새 게시물 작성",
"navigation_bar.direct": "개인적인 멘션",
- "navigation_bar.discover": "발견하기",
"navigation_bar.domain_blocks": "차단한 도메인",
- "navigation_bar.explore": "둘러보기",
"navigation_bar.favourites": "좋아요",
"navigation_bar.filters": "뮤트한 단어",
"navigation_bar.follow_requests": "팔로우 요청",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "팔로우와 팔로워",
"navigation_bar.import_export": "가져오기 & 내보내기",
"navigation_bar.lists": "리스트",
+ "navigation_bar.live_feed_local": "라이브 피드 (로컬)",
+ "navigation_bar.live_feed_public": "라이브 피드 (공개)",
"navigation_bar.logout": "로그아웃",
"navigation_bar.moderation": "중재",
"navigation_bar.more": "더 보기",
"navigation_bar.mutes": "뮤트한 사용자",
"navigation_bar.opened_in_classic_interface": "게시물, 계정, 기타 특정 페이지들은 기본적으로 기존 웹 인터페이스로 열리게 됩니다.",
- "navigation_bar.personal": "개인용",
- "navigation_bar.pins": "고정된 게시물",
"navigation_bar.preferences": "환경설정",
"navigation_bar.privacy_and_reach": "개인정보와 도달",
- "navigation_bar.public_timeline": "연합 타임라인",
"navigation_bar.search": "검색",
"navigation_bar.search_trends": "검색 / 유행",
- "navigation_bar.security": "보안",
"navigation_panel.collapse_followed_tags": "팔로우 중인 해시태그 메뉴 접기",
"navigation_panel.collapse_lists": "리스트 메뉴 접기",
"navigation_panel.expand_followed_tags": "팔로우 중인 해시태그 메뉴 펼치기",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "규칙 위반",
"report_notification.categories.violation_sentence": "규칙 위반",
"report_notification.open": "신고 열기",
+ "search.clear": "검색 초기화",
"search.no_recent_searches": "최근 검색 기록이 없습니다",
"search.placeholder": "검색",
"search.quick_action.account_search": "{x}에 맞는 프로필",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index 527d6acf564..63110fda875 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -135,7 +135,6 @@
"column_header.show_settings": "Sazkariyan nîşan bide",
"column_header.unpin": "Bi derzî neke",
"column_search.cancel": "Têk bibe",
- "column_subheading.settings": "Sazkarî",
"community.column_settings.local_only": "Tenê herêmî",
"community.column_settings.media_only": "Tenê media",
"community.column_settings.remote_only": "Tenê ji dûr ve",
@@ -165,14 +164,11 @@
"confirmations.delete_list.message": "Tu ji dil dixwazî vê lîsteyê bi awayekî mayînde jê bibî?",
"confirmations.discard_edit_media.confirm": "Biavêje",
"confirmations.discard_edit_media.message": "Guhertinên neqedandî di danasîna an pêşdîtina medyayê de hene, wan bi her awayî bavêje?",
- "confirmations.edit.confirm": "Serrast bike",
"confirmations.logout.confirm": "Derkeve",
"confirmations.logout.message": "Ma tu dixwazî ku derkevî?",
"confirmations.mute.confirm": "Bêdeng bike",
"confirmations.redraft.confirm": "Jê bibe & ji nû ve serrast bike",
"confirmations.redraft.message": "Bi rastî tu dixwazî şandî ye jê bibî û ji nû ve reşnivîsek çê bikî? Bijarte û şandî wê wenda bibin û bersivên ji bo şandiyê resen wê sêwî bimînin.",
- "confirmations.reply.confirm": "Bersivê bide",
- "confirmations.reply.message": "Bersiva niha li ser peyama ku tu niha berhev dikî dê binivsîne. Ma pê bawer î ku tu dixwazî bidomînî?",
"confirmations.unfollow.confirm": "Neşopîne",
"confirmations.unfollow.message": "Ma tu dixwazî ku dev ji şopa {name} berdî?",
"content_warning.show_more": "Bêtir nîşan bide",
@@ -337,12 +333,8 @@
"navigation_bar.about": "Derbar",
"navigation_bar.blocks": "Bikarhênerên astengkirî",
"navigation_bar.bookmarks": "Şûnpel",
- "navigation_bar.community_timeline": "Demnameya herêmî",
- "navigation_bar.compose": "Şandiyeke nû binivsîne",
"navigation_bar.direct": "Payemên taybet",
- "navigation_bar.discover": "Vekolê",
"navigation_bar.domain_blocks": "Navperên astengkirî",
- "navigation_bar.explore": "Vekole",
"navigation_bar.filters": "Peyvên bêdengkirî",
"navigation_bar.follow_requests": "Daxwazên şopandinê",
"navigation_bar.followed_tags": "Etîketên şopandî",
@@ -350,12 +342,8 @@
"navigation_bar.lists": "Lîste",
"navigation_bar.logout": "Derkeve",
"navigation_bar.mutes": "Bikarhênerên bêdengkirî",
- "navigation_bar.personal": "Kesanî",
- "navigation_bar.pins": "Şandiya derzîkirî",
"navigation_bar.preferences": "Sazkarî",
- "navigation_bar.public_timeline": "Demnameya giştî",
"navigation_bar.search": "Bigere",
- "navigation_bar.security": "Ewlehî",
"not_signed_in_indicator.not_signed_in": "Divê tu têketinê bikî da ku tu bigihîjî vê çavkaniyê.",
"notification.admin.report": "{name} hate ragihandin {target}",
"notification.admin.sign_up": "{name} tomar bû",
diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json
index 4b1f9c9dfe7..9b1d33235fb 100644
--- a/app/javascript/mastodon/locales/kw.json
+++ b/app/javascript/mastodon/locales/kw.json
@@ -62,7 +62,6 @@
"column_header.pin": "Fastya",
"column_header.show_settings": "Diskwedhes dewisyow",
"column_header.unpin": "Anfastya",
- "column_subheading.settings": "Dewisyow",
"community.column_settings.local_only": "Leel hepken",
"community.column_settings.media_only": "Myski hepken",
"community.column_settings.remote_only": "A-bell hepken",
@@ -87,8 +86,6 @@
"confirmations.logout.message": "Owgh hwi sur a vynnes digelmi?",
"confirmations.mute.confirm": "Tawhe",
"confirmations.redraft.confirm": "Dilea & daskynskrifa",
- "confirmations.reply.confirm": "Gorthebi",
- "confirmations.reply.message": "Gorthebi lemmyn a wra ughskrifa'n messach esowgh hwi orth y skrifa lemmyn. Owgh hwi sur a vynnes pesya?",
"confirmations.unfollow.confirm": "Anholya",
"confirmations.unfollow.message": "Owgh hwi sur a vynnes anholya {name}?",
"conversation.delete": "Dilea kesklapp",
@@ -199,9 +196,6 @@
"load_pending": "{count, plural, one {# daklennowydh} other {# a daklennow nowydh}}",
"navigation_bar.blocks": "Devnydhyoryon lettys",
"navigation_bar.bookmarks": "Folennosow",
- "navigation_bar.community_timeline": "Amserlin leel",
- "navigation_bar.compose": "Komposya post nowydh",
- "navigation_bar.discover": "Diskudha",
"navigation_bar.domain_blocks": "Gorfarthow lettys",
"navigation_bar.filters": "Geryow tawhes",
"navigation_bar.follow_requests": "Govynnow holya",
@@ -209,11 +203,7 @@
"navigation_bar.lists": "Rolyow",
"navigation_bar.logout": "Digelmi",
"navigation_bar.mutes": "Devnydhyoryon tawhes",
- "navigation_bar.personal": "Menebel",
- "navigation_bar.pins": "Postow fastys",
"navigation_bar.preferences": "Erviransow",
- "navigation_bar.public_timeline": "Amserlin geffrysys",
- "navigation_bar.security": "Diogeledh",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} a wrug agas holya",
"notification.follow_request": "{name} a bysis agas holya",
diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json
index ffdf8fa2193..5d34aafafce 100644
--- a/app/javascript/mastodon/locales/la.json
+++ b/app/javascript/mastodon/locales/la.json
@@ -81,7 +81,6 @@
"confirmations.delete_list.confirm": "Oblitterare",
"confirmations.discard_edit_media.message": "Habēs mutationēs in descriptionem vel prōspectum medii quae nōn sunt servātae; eas dēmittam?",
"confirmations.mute.confirm": "Confutare",
- "confirmations.reply.confirm": "Respondere",
"disabled_account_banner.account_settings": "Praeferentiae ratiōnis",
"disabled_account_banner.text": "Ratio tua {disabledAccount} debilitata est.",
"domain_block_modal.you_wont_see_posts": "Nuntios aut notificātiōnēs ab usoribus in hōc servō nōn vidēbis.",
diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json
index 1ae1be6247e..83ffe1834be 100644
--- a/app/javascript/mastodon/locales/lad.json
+++ b/app/javascript/mastodon/locales/lad.json
@@ -162,7 +162,6 @@
"column_header.show_settings": "Amostra opsyones",
"column_header.unpin": "Defiksar",
"column_search.cancel": "Anula",
- "column_subheading.settings": "Opsyones",
"community.column_settings.local_only": "Solo lokalas",
"community.column_settings.media_only": "Solo multimedia",
"community.column_settings.remote_only": "Solo remotas",
@@ -200,8 +199,6 @@
"confirmations.delete_list.title": "Efasa lista?",
"confirmations.discard_edit_media.confirm": "Anula",
"confirmations.discard_edit_media.message": "Tienes trokamientos no guadrados en la deskripsion o vista previa. Keres efasarlos entanto?",
- "confirmations.edit.confirm": "Edita",
- "confirmations.edit.message": "Si edites agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
"confirmations.follow_to_list.title": "Segir utilizador?",
"confirmations.logout.confirm": "Sal",
"confirmations.logout.message": "Estas siguro ke keres salir de tu kuento?",
@@ -212,8 +209,6 @@
"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.redraft.title": "Efasar i reeskrivir?",
- "confirmations.reply.confirm": "Arisponde",
- "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}?",
"confirmations.unfollow.title": "Desige utilizador?",
@@ -296,6 +291,9 @@
"explore.trending_links": "Haberes",
"explore.trending_statuses": "Publikasyones",
"explore.trending_tags": "Etiketas",
+ "featured_carousel.next": "Sigiente",
+ "featured_carousel.post": "Puvlikasyon",
+ "featured_carousel.previous": "Anterior",
"filter_modal.added.context_mismatch_explanation": "Esta kategoria del filtro no se aplika al konteksto en ke tienes aksesido esta publikasyon. Si keres ke la publikasyon sea filtrada en este konteksto tamyen, kale editar el filtro.",
"filter_modal.added.context_mismatch_title": "El konteksto no koensida!",
"filter_modal.added.expired_explanation": "Esta kategoria de filtros tiene kadukado. Kale ke trokar la data de kadukasion para aplikarla.",
@@ -358,6 +356,7 @@
"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.feature": "Avalia en profil",
"hashtag.follow": "Sige etiketa",
"hashtag.mute": "Silensia #{hashtag}",
"hashtag.unfeature": "No avalia en profil",
@@ -392,6 +391,7 @@
"interaction_modal.title.reblog": "Repartaja publikasyon de {name}",
"interaction_modal.title.reply": "Arisponde a publikasyon de {name}",
"interaction_modal.title.vote": "Vota en la anketa de {name}",
+ "interaction_modal.username_prompt": "Por enshemplo {example}",
"intervals.full.days": "{number, plural, one {# diya} other {# diyas}}",
"intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -444,6 +444,7 @@
"lists.delete": "Efasa lista",
"lists.done": "Fecho",
"lists.edit": "Edita lista",
+ "lists.list_name": "Nombre de lista",
"lists.new_list_name": "Nombre de mueva lista",
"lists.replies_policy.followed": "Kualseker utilizador segido",
"lists.replies_policy.list": "Miembros de la lista",
@@ -466,12 +467,8 @@
"navigation_bar.advanced_interface": "Avre en la enterfaz avanzada",
"navigation_bar.blocks": "Utilizadores blokados",
"navigation_bar.bookmarks": "Markadores",
- "navigation_bar.community_timeline": "Linya de tiempo lokala",
- "navigation_bar.compose": "Eskrivir mueva publikasyon",
"navigation_bar.direct": "Enmentaduras privadas",
- "navigation_bar.discover": "Diskuvre",
"navigation_bar.domain_blocks": "Domenos blokados",
- "navigation_bar.explore": "Eksplora",
"navigation_bar.favourites": "Te plazen",
"navigation_bar.filters": "Biervos silensiados",
"navigation_bar.follow_requests": "Solisitudes de segimiento",
@@ -484,13 +481,9 @@
"navigation_bar.more": "Mas",
"navigation_bar.mutes": "Utilizadores silensiados",
"navigation_bar.opened_in_classic_interface": "Publikasyones, kuentos i otras pajinas espesifikas se avren kon preferensyas predeterminadas en la enterfaz web klasika.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Publikasyones fiksadas",
"navigation_bar.preferences": "Preferensyas",
"navigation_bar.privacy_and_reach": "Privasita i alkanse",
- "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.",
"notification.admin.report": "{name} raporto {target}",
"notification.admin.report_statuses": "{name} raporto {target} por {category}",
@@ -748,6 +741,7 @@
"status.reblogs.empty": "Ainda nadie tiene repartajado esta publikasyon. Kuando algien lo aga, se amostrara aki.",
"status.redraft": "Efasa i eskrive de muevo",
"status.remove_bookmark": "Kita markador",
+ "status.remove_favourite": "Kita de los favoritos",
"status.replied_in_thread": "Arispondo en filo",
"status.replied_to": "Arispondio a {name}",
"status.reply": "Arisponde",
@@ -768,6 +762,7 @@
"subscribed_languages.save": "Guadra trokamientos",
"subscribed_languages.target": "Troka linguas abonadas para {target}",
"tabs_bar.home": "Linya prinsipala",
+ "tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Avizos",
"tabs_bar.publish": "Mueva publikasyon",
"tabs_bar.search": "Bushkeda",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 26139388939..944ab8d9649 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -178,7 +178,6 @@
"column_header.show_settings": "Rodyti nustatymus",
"column_header.unpin": "Atsegti",
"column_search.cancel": "Atšaukti",
- "column_subheading.settings": "Nustatymai",
"community.column_settings.local_only": "Tik vietinis",
"community.column_settings.media_only": "Tik medija",
"community.column_settings.remote_only": "Tik nuotolinis",
@@ -216,9 +215,6 @@
"confirmations.delete_list.title": "Ištrinti sąrašą?",
"confirmations.discard_edit_media.confirm": "Atmesti",
"confirmations.discard_edit_media.message": "Turi neišsaugotų medijos aprašymo ar peržiūros pakeitimų. Vis tiek juos atmesti?",
- "confirmations.edit.confirm": "Redaguoti",
- "confirmations.edit.message": "Redaguojant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?",
- "confirmations.edit.title": "Perrašyti įrašą?",
"confirmations.follow_to_list.confirm": "Sekti ir pridėti prie sąrašo",
"confirmations.follow_to_list.message": "Kad pridėtumėte juos į sąrašą, turite sekti {name}.",
"confirmations.follow_to_list.title": "Sekti naudotoją?",
@@ -236,9 +232,6 @@
"confirmations.remove_from_followers.confirm": "Šalinti sekėją",
"confirmations.remove_from_followers.message": "{name} nustos jus sekti. Ar tikrai norite tęsti?",
"confirmations.remove_from_followers.title": "Šalinti sekėją?",
- "confirmations.reply.confirm": "Atsakyti",
- "confirmations.reply.message": "Atsakant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?",
- "confirmations.reply.title": "Perrašyti įrašą?",
"confirmations.unfollow.confirm": "Nebesekti",
"confirmations.unfollow.message": "Ar tikrai nori nebesekti {name}?",
"confirmations.unfollow.title": "Nebesekti naudotoją?",
@@ -531,12 +524,8 @@
"navigation_bar.advanced_interface": "Atidaryti išplėstinę žiniatinklio sąsają",
"navigation_bar.blocks": "Užblokuoti naudotojai",
"navigation_bar.bookmarks": "Žymės",
- "navigation_bar.community_timeline": "Vietinė laiko skalė",
- "navigation_bar.compose": "Sukurti naują įrašą",
"navigation_bar.direct": "Privatūs paminėjimai",
- "navigation_bar.discover": "Atrasti",
"navigation_bar.domain_blocks": "Užblokuoti domenai",
- "navigation_bar.explore": "Naršyti",
"navigation_bar.favourites": "Mėgstami",
"navigation_bar.filters": "Nutildyti žodžiai",
"navigation_bar.follow_requests": "Sekimo prašymai",
@@ -547,12 +536,8 @@
"navigation_bar.moderation": "Prižiūrėjimas",
"navigation_bar.mutes": "Nutildyti naudotojai",
"navigation_bar.opened_in_classic_interface": "Įrašai, paskyros ir kiti konkretūs puslapiai pagal numatytuosius nustatymus atidaromi klasikinėje žiniatinklio sąsajoje.",
- "navigation_bar.personal": "Asmeninis",
- "navigation_bar.pins": "Prisegti įrašai",
"navigation_bar.preferences": "Nuostatos",
- "navigation_bar.public_timeline": "Federacinė laiko skalė",
"navigation_bar.search": "Ieškoti",
- "navigation_bar.security": "Apsauga",
"not_signed_in_indicator.not_signed_in": "Norint pasiekti šį išteklį, reikia prisijungti.",
"notification.admin.report": "{name} pranešė {target}",
"notification.admin.report_account": "{name} pranešė {count, plural, one {# įrašą} few {# įrašus} many {# įrašo} other {# įrašų}} iš {target} kategorijai {category}",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index dfad5ccacc8..104528c0e13 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -178,7 +178,6 @@
"column_header.show_settings": "Rādīt iestatījumus",
"column_header.unpin": "Atspraust",
"column_search.cancel": "Atcelt",
- "column_subheading.settings": "Iestatījumi",
"community.column_settings.local_only": "Tikai vietējie",
"community.column_settings.media_only": "Tikai multivide",
"community.column_settings.remote_only": "Tikai attālinātie",
@@ -216,9 +215,6 @@
"confirmations.delete_list.title": "Izdzēst sarakstu?",
"confirmations.discard_edit_media.confirm": "Atmest",
"confirmations.discard_edit_media.message": "Ir nesaglabātas izmaiņas informācijas nesēja aprakstā vai priekšskatījumā. Vēlies tās atmest tik un tā?",
- "confirmations.edit.confirm": "Labot",
- "confirmations.edit.message": "Labošana pārrakstīs ziņojumu, kas šobrīd tiek sastādīts. Vai tiešām turpināt?",
- "confirmations.edit.title": "Pārrakstīt ierakstu?",
"confirmations.follow_to_list.confirm": "Sekot un pievienot sarakstam",
"confirmations.follow_to_list.message": "Ir jāseko {name}, lai pievienotu sarakstam.",
"confirmations.follow_to_list.title": "Sekot lietotājam?",
@@ -236,9 +232,6 @@
"confirmations.remove_from_followers.confirm": "Dzēst sekotāju",
"confirmations.remove_from_followers.message": "{name} pārstās sekot jums. Vai tiešām vēlaties turpināt?",
"confirmations.remove_from_followers.title": "Vai dzēst sekotāju?",
- "confirmations.reply.confirm": "Atbildēt",
- "confirmations.reply.message": "Tūlītēja atbildēšana pārrakstīs pašlaik sastādīto ziņu. Vai tiešām turpināt?",
- "confirmations.reply.title": "Pārrakstīt ierakstu?",
"confirmations.unfollow.confirm": "Pārstāt sekot",
"confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?",
"confirmations.unfollow.title": "Pārtraukt sekošanu lietotājam?",
@@ -495,12 +488,8 @@
"navigation_bar.advanced_interface": "Atvērt paplašinātā tīmekļa saskarnē",
"navigation_bar.blocks": "Bloķētie lietotāji",
"navigation_bar.bookmarks": "Grāmatzīmes",
- "navigation_bar.community_timeline": "Vietējā laika līnija",
- "navigation_bar.compose": "Izveidot jaunu ierakstu",
"navigation_bar.direct": "Privātas pieminēšanas",
- "navigation_bar.discover": "Atklāt",
"navigation_bar.domain_blocks": "Bloķētie domēni",
- "navigation_bar.explore": "Izpētīt",
"navigation_bar.favourites": "Izlase",
"navigation_bar.filters": "Apklusinātie vārdi",
"navigation_bar.follow_requests": "Sekošanas pieprasījumi",
@@ -511,12 +500,8 @@
"navigation_bar.moderation": "Satura pārraudzība",
"navigation_bar.mutes": "Apklusinātie lietotāji",
"navigation_bar.opened_in_classic_interface": "Ieraksti, konti un citas noteiktas lapas pēc noklusējuma tiek atvērtas klasiskajā tīmekļa saskarnē.",
- "navigation_bar.personal": "Personīgie",
- "navigation_bar.pins": "Piespraustie ieraksti",
"navigation_bar.preferences": "Iestatījumi",
- "navigation_bar.public_timeline": "Apvienotā laika līnija",
"navigation_bar.search": "Meklēt",
- "navigation_bar.security": "Drošība",
"not_signed_in_indicator.not_signed_in": "Ir jāpiesakās, lai piekļūtu šim resursam.",
"notification.admin.report": "{name} ziņoja par {target}",
"notification.admin.report_account": "{name} ziņoja par {count, plural, one {# ierakstu} other {# ierakstiem}} no {target} ar iemeslu: {category}",
diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json
index f3a557cbe9d..67e561dceef 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -64,7 +64,6 @@
"column_header.moveLeft_settings": "Премести колона влево",
"column_header.moveRight_settings": "Премести колона вдесно",
"column_header.show_settings": "Прикажи подесувања",
- "column_subheading.settings": "Подесувања",
"community.column_settings.media_only": "Само медиа",
"compose_form.direct_message_warning_learn_more": "Научи повеќе",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
@@ -83,7 +82,6 @@
"confirmations.logout.confirm": "Одјави се",
"confirmations.logout.message": "Дали сте сигурни дека сакате да се одјавите?",
"confirmations.mute.confirm": "Заќути",
- "confirmations.reply.confirm": "Одговори",
"confirmations.unfollow.confirm": "Одследи",
"confirmations.unfollow.message": "Сигурни сте дека ќе го отследите {name}?",
"conversation.delete": "Избриши разговор",
@@ -159,7 +157,6 @@
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.filters": "Замолќени зборови",
"navigation_bar.follow_requests": "Следи покани",
@@ -167,10 +164,6 @@
"navigation_bar.lists": "Листи",
"navigation_bar.logout": "Одјави се",
"navigation_bar.mutes": "Заќутени корисници",
- "navigation_bar.personal": "Лично",
- "navigation_bar.pins": "Pinned toots",
- "navigation_bar.public_timeline": "Федеративен времеплов",
- "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",
"notifications.column_settings.poll": "Резултати од анкета:",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index 2e6ad8d8454..753ff3eafde 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -102,7 +102,6 @@
"column_header.pin": "ഉറപ്പിച്ചു നിറുത്തുക",
"column_header.show_settings": "ക്രമീകരണങ്ങൾ കാണിക്കുക",
"column_header.unpin": "ഇളക്കി മാറ്റുക",
- "column_subheading.settings": "ക്രമീകരണങ്ങള്",
"community.column_settings.local_only": "പ്രാദേശികം മാത്രം",
"community.column_settings.media_only": "മാധ്യമങ്ങൾ മാത്രം",
"community.column_settings.remote_only": "വിദൂര മാത്രം",
@@ -135,14 +134,11 @@
"confirmations.delete_list.message": "ഈ പട്ടിക എന്നെന്നേക്കുമായി നീക്കം ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?",
"confirmations.delete_list.title": "പട്ടിക കളയുണോ?",
"confirmations.discard_edit_media.confirm": "കളയുക",
- "confirmations.edit.confirm": "സംശോധിക്കുക",
"confirmations.logout.confirm": "പുറത്തുകടക്കുക",
"confirmations.logout.message": "നിങ്ങൾക്ക് ലോഗ് ഔട്ട് ചെയ്യണമെന്ന് ഉറപ്പാണോ?",
"confirmations.logout.title": "പുറത്തിറങ്ങുക?",
"confirmations.mute.confirm": "നിശ്ശബ്ദമാക്കുക",
"confirmations.redraft.confirm": "മായിച്ച് മാറ്റങ്ങൾ വരുത്തി വീണ്ടും എഴുതുക",
- "confirmations.reply.confirm": "മറുപടി",
- "confirmations.reply.message": "ഇപ്പോൾ മറുപടി കൊടുക്കുന്നത് നിങ്ങൾ എഴുതിക്കൊണ്ടിരിക്കുന്ന സന്ദേശത്തിന് മുകളിൽ എഴുതാൻ കാരണമാകും. തീർച്ചയായും മുൻപോട്ട് പോകാൻ തീരുമാനിച്ചുവോ?",
"confirmations.unfollow.confirm": "പിന്തുടരുന്നത് നിര്ത്തുക",
"confirmations.unfollow.message": "നിങ്ങൾ {name} യെ പിന്തുടരുന്നത് നിർത്തുവാൻ തീർച്ചയായും തീരുമാനിച്ചുവോ?",
"conversation.delete": "സംഭാഷണം മായിക്കുക",
@@ -270,21 +266,14 @@
"media_gallery.hide": "മറയ്ക്കുക",
"navigation_bar.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ",
"navigation_bar.bookmarks": "ബുക്ക്മാർക്കുകൾ",
- "navigation_bar.community_timeline": "പ്രാദേശിക സമയരേഖ",
- "navigation_bar.compose": "പുതിയ ടൂട്ട് എഴുതുക",
- "navigation_bar.discover": "കണ്ടെത്തുക",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.explore": "ആരായുക",
"navigation_bar.favourites": "പ്രിയപ്പെട്ടതു്",
"navigation_bar.follow_requests": "പിന്തുടരാനുള്ള അഭ്യർത്ഥനകൾ",
"navigation_bar.lists": "ലിസ്റ്റുകൾ",
"navigation_bar.logout": "ലോഗൗട്ട്",
"navigation_bar.mutes": "നിശബ്ദമാക്കപ്പെട്ട ഉപയോക്താക്കൾ",
- "navigation_bar.personal": "സ്വകാര്യ",
- "navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "ക്രമീകരണങ്ങൾ",
"navigation_bar.search": "തിരയുക",
- "navigation_bar.security": "സുരക്ഷ",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} നിങ്ങളെ പിന്തുടർന്നു",
"notification.follow_request": "{name} നിങ്ങളെ പിന്തുടരാൻ അഭ്യർത്ഥിച്ചു",
diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json
index 5bf7c1a2caa..8186fec9dbb 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -89,7 +89,6 @@
"column_header.pin": "टाचण",
"column_header.show_settings": "सेटिंग्स दाखवा",
"column_header.unpin": "अनपिन करा",
- "column_subheading.settings": "सेटिंग्ज",
"community.column_settings.media_only": "केवळ मीडिया",
"compose_form.direct_message_warning_learn_more": "अधिक जाणून घ्या",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
@@ -170,9 +169,7 @@
"lists.replies_policy.list": "यादीतील सदस्य",
"lists.replies_policy.none": "कोणीच नाही",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.pins": "Pinned toots",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.reblog": "{name} boosted your status",
"notifications.column_settings.push": "सूचना",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 4ea1adb7744..520990fbe3b 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -171,7 +171,6 @@
"column_header.show_settings": "Tunjukkan tetapan",
"column_header.unpin": "Nyahsemat",
"column_search.cancel": "Batal",
- "column_subheading.settings": "Tetapan",
"community.column_settings.local_only": "Tempatan sahaja",
"community.column_settings.media_only": "Media sahaja",
"community.column_settings.remote_only": "Jauh sahaja",
@@ -209,9 +208,6 @@
"confirmations.delete_list.title": "Padam senarai?",
"confirmations.discard_edit_media.confirm": "Singkir",
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?",
- "confirmations.edit.confirm": "Sunting",
- "confirmations.edit.message": "Mengedit sekarang akan menimpa mesej yang sedang anda karang. Adakah anda pasti mahu meneruskan?",
- "confirmations.edit.title": "Tulis ganti hantaran?",
"confirmations.follow_to_list.confirm": "Ikut dan tambah ke senarai",
"confirmations.follow_to_list.message": "Anda mesti mengikuti {name} untuk tambahkannya ke senarai.",
"confirmations.follow_to_list.title": "Ikut pengguna?",
@@ -226,9 +222,6 @@
"confirmations.redraft.confirm": "Padam & rangka semula",
"confirmations.redraft.message": "Adakah anda pasti anda ingin memadam hantaran ini dan gubal semula? Sukaan dan galakan akan hilang, dan balasan ke hantaran asal akan menjadi yatim.",
"confirmations.redraft.title": "Padam & gubah semula hantaran?",
- "confirmations.reply.confirm": "Balas",
- "confirmations.reply.message": "Membalas sekarang akan menulis ganti mesej yang anda sedang karang. Adakah anda pasti anda ingin teruskan?",
- "confirmations.reply.title": "Tulis ganti hantaran?",
"confirmations.unfollow.confirm": "Nyahikut",
"confirmations.unfollow.message": "Adakah anda pasti anda ingin nyahikuti {name}?",
"confirmations.unfollow.title": "Berhenti mengikut pengguna?",
@@ -441,12 +434,8 @@
"navigation_bar.advanced_interface": "Buka dalam antara muka web lanjutan",
"navigation_bar.blocks": "Pengguna tersekat",
"navigation_bar.bookmarks": "Tanda buku",
- "navigation_bar.community_timeline": "Garis masa tempatan",
- "navigation_bar.compose": "Karang hantaran baharu",
"navigation_bar.direct": "Sebutan peribadi",
- "navigation_bar.discover": "Teroka",
"navigation_bar.domain_blocks": "Domain tersekat",
- "navigation_bar.explore": "Teroka",
"navigation_bar.favourites": "Sukaan",
"navigation_bar.filters": "Perkataan teredam",
"navigation_bar.follow_requests": "Permintaan ikutan",
@@ -456,12 +445,8 @@
"navigation_bar.logout": "Log keluar",
"navigation_bar.mutes": "Pengguna teredam",
"navigation_bar.opened_in_classic_interface": "Kiriman, akaun dan halaman tertentu yang lain dibuka secara lalai di antara muka web klasik.",
- "navigation_bar.personal": "Peribadi",
- "navigation_bar.pins": "Hantaran disemat",
"navigation_bar.preferences": "Keutamaan",
- "navigation_bar.public_timeline": "Garis masa bersekutu",
"navigation_bar.search": "Cari",
- "navigation_bar.security": "Keselamatan",
"not_signed_in_indicator.not_signed_in": "Anda perlu daftar masuk untuk mencapai sumber ini.",
"notification.admin.report": "{name} melaporkan {target}",
"notification.admin.sign_up": "{name} mendaftar",
diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json
index 975ac77b784..0f99734aa06 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -120,7 +120,6 @@
"column_header.pin": "ထိပ်တွင်တွဲထားမည်",
"column_header.show_settings": "ဆက်တင်များကို ပြပါ။",
"column_header.unpin": "မတွဲတော့ပါ",
- "column_subheading.settings": "ဆက်တင်များ",
"community.column_settings.local_only": "ပြည်တွင်း၌သာ",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "အဝေးမှသာ",
@@ -148,15 +147,11 @@
"confirmations.delete_list.message": "ဖျက်ရန် သေချာပါသလား?",
"confirmations.discard_edit_media.confirm": "ဖယ်ထုတ်ပါ",
"confirmations.discard_edit_media.message": "သင်သည် မီဒီယာဖော်ပြချက် သို့မဟုတ် အစမ်းကြည့်ရှုခြင်းတွင် မသိမ်းဆည်းရသေးသော အပြောင်းအလဲများရှိသည်။ မည်သို့ပင်ဖြစ်စေ ဖျက်ပစ်မည်လား။",
- "confirmations.edit.confirm": "ပြင်ရန်",
- "confirmations.edit.message": "ယခုပြင်ဆင်ခြင်းတွင် သင်လက်ရှိမက်ဆေ့ချ်ကို ဖျက်ပစ်ပြီး အသစ်ရေးပါမည်။ ရှေ့ဆက်လိုသည်မှာ သေချာပါသလား။",
"confirmations.logout.confirm": "အကောင့်မှထွက်မည်",
"confirmations.logout.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?",
"confirmations.mute.confirm": "ပိတ်ထားရန်",
"confirmations.redraft.confirm": "ဖျက်ပြီး ပြန်လည်ရေးမည်။",
"confirmations.redraft.message": "သင် ဒီပိုစ့်ကိုဖျက်ပြီး ပြန်တည်းဖြတ်မှာ သေချာပြီလား။ ကြယ်ပွင့်တွေ နဲ့ ပြန်မျှဝေမှုတွေကိုဆုံးရှုံးမည်။မူရင်းပို့စ်ဆီကို ပြန်စာတွေမှာလည်း \nပိုစ့်ကိုတွေ့ရမည်မဟုတ်တော့ပါ။.",
- "confirmations.reply.confirm": "စာပြန်မည်",
- "confirmations.reply.message": "စာပြန်လျှင်ယခင်စာများကိုအလိုအလျောက်ပျက်သွားစေမည်။ ဆက်လက်လုပ်ဆောင်မည်လား?",
"confirmations.unfollow.confirm": "စောင့်ကြည့်ခြင်းအား ပယ်ဖျက်မည်",
"confirmations.unfollow.message": "{name} ကို စောင်ကြည့်ခြင်းအား ပယ်ဖျက်မည်မှာသေချာပါသလား။",
"conversation.delete": "ဤစကားပြောဆိုမှုကို ဖျက်ပစ်မည်",
@@ -335,12 +330,8 @@
"navigation_bar.advanced_interface": "အဆင့်မြင့်ဝဘ်ပုံစံ ဖွင့်ပါ",
"navigation_bar.blocks": "ဘလော့ထားသောအကောင့်များ",
"navigation_bar.bookmarks": "မှတ်ထားသည်များ",
- "navigation_bar.community_timeline": "ဒေသစံတော်ချိန်",
- "navigation_bar.compose": "ပို့စ်အသစ်ရေးပါ",
"navigation_bar.direct": "သီးသန့်ဖော်ပြချက်များ",
- "navigation_bar.discover": "ရှာဖွေပါ",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.explore": "စူးစမ်းရန်",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "စကားလုံးများ ပိတ်ထားပါ",
"navigation_bar.follow_requests": "စောင့်ကြည့်ရန် တောင်းဆိုမှုများ",
@@ -350,12 +341,8 @@
"navigation_bar.logout": "ထွက်မယ်",
"navigation_bar.mutes": "အသုံးပြုသူများကို ပိတ်ထားပါ",
"navigation_bar.opened_in_classic_interface": "ပို့စ်များ၊ အကောင့်များနှင့် အခြားသီးခြားစာမျက်နှာများကို classic ဝဘ်အင်တာဖေ့စ်တွင် ဖွင့်ထားသည်။",
- "navigation_bar.personal": "ကိုယ်ရေးကိုယ်တာ",
- "navigation_bar.pins": "ပင်တွဲထားသောပို့စ်များ",
"navigation_bar.preferences": "စိတ်ကြိုက်သတ်မှတ်ချက်များ",
- "navigation_bar.public_timeline": "ဖက်ဒီစာမျက်နှာ",
"navigation_bar.search": "ရှာရန်",
- "navigation_bar.security": "လုံခြုံရေး",
"not_signed_in_indicator.not_signed_in": "ဤရင်းမြစ်သို့ ဝင်ရောက်ရန်အတွက် သင်သည် အကောင့်ဝင်ရန် လိုအပ်ပါသည်။",
"notification.admin.report": "{name} က {target} ကို တိုင်ကြားခဲ့သည်",
"notification.admin.sign_up": "{name} က အကောင့်ဖွင့်ထားသည်",
diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json
index aa4ffe1a32d..48e1b75c2b0 100644
--- a/app/javascript/mastodon/locales/nan.json
+++ b/app/javascript/mastodon/locales/nan.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "顯示設定",
"column_header.unpin": "Pak掉",
"column_search.cancel": "取消",
- "column_subheading.settings": "設定",
"community.column_settings.local_only": "Kan-ta展示本地ê",
"community.column_settings.media_only": "Kan-ta展示媒體",
"community.column_settings.remote_only": "Kan-ta展示遠距離ê",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Thâi掉",
"confirmations.delete_list.message": "Lí kám確定beh永永thâi掉tsit ê列單?",
"confirmations.delete_list.title": "Kám beh thâi掉tsit ê列單?",
+ "confirmations.discard_draft.confirm": "棄sak了後繼續",
+ "confirmations.discard_draft.edit.cancel": "恢復編輯",
+ "confirmations.discard_draft.edit.message": "Nā繼續,ē棄sak lí tuì當leh編輯ê PO文,所做ê任何改變。",
+ "confirmations.discard_draft.edit.title": "Kám beh棄sak lí tuì PO文ê改變?",
+ "confirmations.discard_draft.post.cancel": "恢復草稿",
+ "confirmations.discard_draft.post.message": "nā繼續,ē棄sak lí當leh編寫ê PO文",
+ "confirmations.discard_draft.post.title": "Kám beh棄sak lí PO文ê草稿?",
"confirmations.discard_edit_media.confirm": "棄sak",
"confirmations.discard_edit_media.message": "Lí佇媒體敘述á是先看māi ê所在有iáu buē儲存ê改變,kám beh kā in棄sak?",
- "confirmations.edit.confirm": "編輯",
- "confirmations.edit.message": "Tsit-má編輯ē khàm掉lí tng-leh編寫ê訊息,lí kám beh繼續án-ne做?",
- "confirmations.edit.title": "Kám beh khàm掉PO文?",
"confirmations.follow_to_list.confirm": "跟tuè,加入kàu列單",
"confirmations.follow_to_list.message": "Beh kā {name} 加添kàu列單,lí tio̍h先跟tuè伊。",
"confirmations.follow_to_list.title": "Kám beh跟tuè tsit ê用者?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Suá掉跟tuè lí ê",
"confirmations.remove_from_followers.message": "{name} ē停止跟tuè lí。Lí kám確定beh繼續?",
"confirmations.remove_from_followers.title": "Kám beh suá掉跟tuè lí ê?",
- "confirmations.reply.confirm": "回應",
- "confirmations.reply.message": "Tsit-má回應ē khàm掉lí tng-leh編寫ê訊息。Lí kám確定beh繼續án-ne做?",
- "confirmations.reply.title": "Kám beh khàm掉PO文?",
"confirmations.unfollow.confirm": "取消跟tuè",
"confirmations.unfollow.message": "Lí kám確定無愛跟tuè {name}?",
"confirmations.unfollow.title": "Kám beh取消跟tuè tsit ê用者?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "自動thâi PO文",
"navigation_bar.blocks": "封鎖ê用者",
"navigation_bar.bookmarks": "冊籤",
- "navigation_bar.community_timeline": "本地ê時間線",
- "navigation_bar.compose": "寫新ê PO文",
"navigation_bar.direct": "私人ê提起",
- "navigation_bar.discover": "發現",
"navigation_bar.domain_blocks": "封鎖ê域名",
- "navigation_bar.explore": "探查",
"navigation_bar.favourites": "Siōng kah意",
"navigation_bar.filters": "消音ê詞",
"navigation_bar.follow_requests": "跟tuè請求",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "Leh跟tuè ê kap跟tuè lí ê",
"navigation_bar.import_export": "匯入kap匯出",
"navigation_bar.lists": "列單",
+ "navigation_bar.live_feed_local": "即時ê內容(本地)",
+ "navigation_bar.live_feed_public": "即時ê內容(公開)",
"navigation_bar.logout": "登出",
"navigation_bar.moderation": "審核",
"navigation_bar.more": "其他",
"navigation_bar.mutes": "消音ê用者",
"navigation_bar.opened_in_classic_interface": "PO文、口座kap其他指定ê頁面,預設ē佇經典ê網頁界面內phah開。",
- "navigation_bar.personal": "個人",
- "navigation_bar.pins": "釘起來ê PO文",
"navigation_bar.preferences": "偏愛ê設定",
"navigation_bar.privacy_and_reach": "隱私kap資訊ê及至",
- "navigation_bar.public_timeline": "聯邦ê時間線",
"navigation_bar.search": "Tshiau-tshuē",
- "navigation_bar.security": "安全",
+ "navigation_bar.search_trends": "Tshiau-tshuē / 趨勢",
+ "navigation_panel.collapse_followed_tags": "Kā跟tuè ê hashtag目錄嵌起來",
"navigation_panel.collapse_lists": "Khàm掉列單目錄",
+ "navigation_panel.expand_followed_tags": "Kā跟tuè ê hashtag目錄thián開",
"navigation_panel.expand_lists": "Thián開列單目錄",
"not_signed_in_indicator.not_signed_in": "Lí著登入來接近使用tsit ê資源。",
"notification.admin.report": "{name} kā {target} 檢舉ah",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "違反規則",
"report_notification.categories.violation_sentence": "違反規則",
"report_notification.open": "Phah開檢舉",
+ "search.clear": "清掉tshiau-tshuē",
"search.no_recent_searches": "無最近ê tshiau-tshuē",
"search.placeholder": "Tshiau-tshuē",
"search.quick_action.account_search": "合 {x} ê個人檔案",
diff --git a/app/javascript/mastodon/locales/ne.json b/app/javascript/mastodon/locales/ne.json
index 7dd610bc102..2d949afa662 100644
--- a/app/javascript/mastodon/locales/ne.json
+++ b/app/javascript/mastodon/locales/ne.json
@@ -101,7 +101,6 @@
"column_header.pin": "पिन गर्नुहोस्",
"column_header.unpin": "अनपिन गर्नुहोस्",
"column_search.cancel": "रद्द गर्नुहोस्",
- "column_subheading.settings": "सेटिङहरू",
"community.column_settings.media_only": "मिडिया मात्र",
"compose.language.change": "भाषा परिवर्तन गर्नुहोस्",
"compose.language.search": "भाषाहरू खोज्नुहोस्...",
@@ -119,9 +118,6 @@
"confirmations.delete.title": "पोस्ट मेटाउने?",
"confirmations.delete_list.message": "के तपाइँ पक्का हुनुहुन्छ कि तपाईं यो सूची स्थायी रूपमा मेटाउन चाहनुहुन्छ?",
"confirmations.delete_list.title": "सूची मेटाउने?",
- "confirmations.edit.confirm": "सम्पादन गर्नुहोस्",
- "confirmations.edit.message": "अहिले सम्पादन गर्नाले तपाईंले हाल लेखिरहनुभएको सन्देश अधिलेखन हुनेछ। के तपाईं अगाडि बढ्न चाहनुहुन्छ?",
- "confirmations.edit.title": "पोस्ट अधिलेखन गर्ने?",
"confirmations.follow_to_list.confirm": "फलो गर्नुहोस र सूचीमा थप्नुहोस्",
"confirmations.follow_to_list.message": "सूचीमा {name}लाई थप्नको लागि तपाईंले तिनीहरूलाई फलो गरेको हुनुपर्छ।",
"confirmations.follow_to_list.title": "प्रयोगकर्तालाई फलो गर्ने?",
@@ -130,9 +126,6 @@
"confirmations.mute.confirm": "म्यूट गर्नुहोस्",
"confirmations.redraft.confirm": "मेटाएर पुन: ड्राफ्ट गर्नुहोस्",
"confirmations.redraft.title": "पोस्ट मेटाएर पुन: ड्राफ्ट गर्ने?",
- "confirmations.reply.confirm": "जवाफ दिनुहोस्",
- "confirmations.reply.message": "अहिले जवाफ दिनाले तपाईंले हाल लेखिरहनुभएको सन्देश अधिलेखन हुनेछ। के तपाईं अगाडि बढ्न चाहनुहुन्छ?",
- "confirmations.reply.title": "पोस्ट अधिलेखन गर्ने?",
"confirmations.unfollow.confirm": "अनफलो गर्नुहोस्",
"confirmations.unfollow.message": "के तपाइँ पक्का हुनुहुन्छ कि तपाइँ {name}लाई अनफलो गर्न चाहनुहुन्छ?",
"confirmations.unfollow.title": "प्रयोगकर्तालाई अनफलो गर्ने?",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index a67dd72e45c..90593ac2058 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Instellingen tonen",
"column_header.unpin": "Losmaken",
"column_search.cancel": "Annuleren",
- "column_subheading.settings": "Instellingen",
"community.column_settings.local_only": "Alleen lokaal",
"community.column_settings.media_only": "Alleen media",
"community.column_settings.remote_only": "Alleen andere servers",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Verwijderen",
"confirmations.delete_list.message": "Weet je zeker dat je deze lijst definitief wilt verwijderen?",
"confirmations.delete_list.title": "Lijst verwijderen?",
- "confirmations.discard_edit_media.confirm": "Weggooien",
- "confirmations.discard_edit_media.message": "Je hebt niet-opgeslagen wijzigingen in de mediabeschrijving of voorvertonning, wil je deze toch weggooien?",
- "confirmations.edit.confirm": "Bewerken",
- "confirmations.edit.message": "Door nu te reageren overschrijf je het bericht dat je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?",
- "confirmations.edit.title": "Bericht overschrijven?",
+ "confirmations.discard_draft.confirm": "Verwijderen en doorgaan",
+ "confirmations.discard_draft.edit.cancel": "Bewerken bericht hervatten",
+ "confirmations.discard_draft.edit.message": "Door door te gaan verwijder je alle wijzigingen in het bericht dat je op dit moment aan het bewerken bent.",
+ "confirmations.discard_draft.edit.title": "Wijzigingen aan je bericht verwijderen?",
+ "confirmations.discard_draft.post.cancel": "Conceptbericht hervatten",
+ "confirmations.discard_draft.post.message": "Door door te gaan verwijder je het bericht dat je op dit moment aan het schrijven bent.",
+ "confirmations.discard_draft.post.title": "Conceptbericht verwijderen?",
+ "confirmations.discard_edit_media.confirm": "Verwijderen",
+ "confirmations.discard_edit_media.message": "Je hebt niet-opgeslagen wijzigingen in de mediabeschrijving of voorvertonning, wil je deze toch verwijderen?",
"confirmations.follow_to_list.confirm": "Volgen en toevoegen aan de lijst",
"confirmations.follow_to_list.message": "Je moet {name} volgen om ze toe te voegen aan een lijst.",
"confirmations.follow_to_list.title": "Gebruiker volgen?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Volger verwijderen",
"confirmations.remove_from_followers.message": "{name} zal je niet meer volgen. Weet je zeker dat je wilt doorgaan?",
"confirmations.remove_from_followers.title": "Volger verwijderen?",
- "confirmations.reply.confirm": "Reageren",
- "confirmations.reply.message": "Door nu te reageren overschrijf je het bericht dat je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?",
- "confirmations.reply.title": "Bericht overschrijven?",
"confirmations.unfollow.confirm": "Ontvolgen",
"confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?",
"confirmations.unfollow.title": "Gebruiker ontvolgen?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Automatisch berichten verwijderen",
"navigation_bar.blocks": "Geblokkeerde gebruikers",
"navigation_bar.bookmarks": "Bladwijzers",
- "navigation_bar.community_timeline": "Lokale tijdlijn",
- "navigation_bar.compose": "Nieuw bericht schrijven",
"navigation_bar.direct": "Privéberichten",
- "navigation_bar.discover": "Ontdekken",
"navigation_bar.domain_blocks": "Geblokkeerde servers",
- "navigation_bar.explore": "Verkennen",
"navigation_bar.favourites": "Favorieten",
"navigation_bar.filters": "Filters",
"navigation_bar.follow_requests": "Volgverzoeken",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "Volgers en gevolgde accounts",
"navigation_bar.import_export": "Importeren en exporteren",
"navigation_bar.lists": "Lijsten",
+ "navigation_bar.live_feed_local": "Openbare tijdlijn (deze server)",
+ "navigation_bar.live_feed_public": "Openbare tijdlijn (alles)",
"navigation_bar.logout": "Uitloggen",
"navigation_bar.moderation": "Moderatie",
"navigation_bar.more": "Meer",
"navigation_bar.mutes": "Genegeerde gebruikers",
"navigation_bar.opened_in_classic_interface": "Berichten, accounts en andere specifieke pagina’s, worden standaard geopend in de klassieke webinterface.",
- "navigation_bar.personal": "Persoonlijk",
- "navigation_bar.pins": "Vastgemaakte berichten",
"navigation_bar.preferences": "Instellingen",
"navigation_bar.privacy_and_reach": "Privacy en bereik",
- "navigation_bar.public_timeline": "Globale tijdlijn",
"navigation_bar.search": "Zoeken",
- "navigation_bar.security": "Beveiliging",
+ "navigation_bar.search_trends": "Zoeken / Trends",
+ "navigation_panel.collapse_followed_tags": "Menu voor gevolgde hashtags inklappen",
"navigation_panel.collapse_lists": "Lijstmenu inklappen",
+ "navigation_panel.expand_followed_tags": "Menu voor gevolgde hashtags uitklappen",
"navigation_panel.expand_lists": "Lijstmenu uitklappen",
"not_signed_in_indicator.not_signed_in": "Je moet inloggen om toegang tot deze informatie te krijgen.",
"notification.admin.report": "{name} heeft {target} geapporteerd",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "Overtreden regel(s)",
"report_notification.categories.violation_sentence": "serverregel overtreden",
"report_notification.open": "Rapportage openen",
+ "search.clear": "Zoekopdracht wissen",
"search.no_recent_searches": "Geen recente zoekopdrachten",
"search.placeholder": "Zoeken",
"search.quick_action.account_search": "Accounts die overeenkomen met {x}",
@@ -815,7 +813,7 @@
"search.quick_action.go_to_hashtag": "Ga naar hashtag {x}",
"search.quick_action.open_url": "URL in Mastodon openen",
"search.quick_action.status_search": "Berichten die overeenkomen met {x}",
- "search.search_or_paste": "Zoek of voer een URL in",
+ "search.search_or_paste": "Zoeken of een URL plakken",
"search_popout.full_text_search_disabled_message": "Niet beschikbaar op {domain}.",
"search_popout.full_text_search_logged_out_message": "Alleen beschikbaar als je bent ingelogd.",
"search_popout.language_code": "ISO-taalcode",
@@ -831,7 +829,7 @@
"search_results.no_search_yet": "Probeer te zoeken naar berichten, profielen of hashtags.",
"search_results.see_all": "Alles bekijken",
"search_results.statuses": "Berichten",
- "search_results.title": "Zoeken naar \"{q}\"",
+ "search_results.title": "Naar \"{q}\" zoeken",
"server_banner.about_active_users": "Aantal gebruikers tijdens de afgelopen 30 dagen (MAU)",
"server_banner.active_users": "actieve gebruikers",
"server_banner.administered_by": "Beheerd door:",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 91f61358b44..b739208ab37 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Vis innstillingar",
"column_header.unpin": "Løys",
"column_search.cancel": "Avbryt",
- "column_subheading.settings": "Innstillingar",
"community.column_settings.local_only": "Berre lokalt",
"community.column_settings.media_only": "Berre media",
"community.column_settings.remote_only": "Berre eksternt",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Slett",
"confirmations.delete_list.message": "Er du sikker på at du vil sletta denne lista for alltid?",
"confirmations.delete_list.title": "Slett lista?",
+ "confirmations.discard_draft.confirm": "Forkast og hald fram",
+ "confirmations.discard_draft.edit.cancel": "Rediger vidare",
+ "confirmations.discard_draft.edit.message": "Viss du held fram, vil du forkasta alle endringane du har gjort på dette innlegget.",
+ "confirmations.discard_draft.edit.title": "Vil du forkasta endringane på innlegget?",
+ "confirmations.discard_draft.post.cancel": "Hald fram med kladden",
+ "confirmations.discard_draft.post.message": "Viss du held fram, forkastar du det innlegget du skriv på no.",
+ "confirmations.discard_draft.post.title": "Forkast kladden?",
"confirmations.discard_edit_media.confirm": "Forkast",
"confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkasta dei likevel?",
- "confirmations.edit.confirm": "Rediger",
- "confirmations.edit.message": "Å redigera no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?",
- "confirmations.edit.title": "Overskriv innlegget?",
"confirmations.follow_to_list.confirm": "Fylg og legg til lista",
"confirmations.follow_to_list.message": "Du må fylgja {name} for å leggja dei til ei liste.",
"confirmations.follow_to_list.title": "Vil du fylgja brukaren?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Fjern fylgjar",
"confirmations.remove_from_followers.message": "{name} vil ikkje fylgja deg meir. Vil du halda fram?",
"confirmations.remove_from_followers.title": "Fjern fylgjar?",
- "confirmations.reply.confirm": "Svar",
- "confirmations.reply.message": "Å svara no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?",
- "confirmations.reply.title": "Overskriv innlegget?",
"confirmations.unfollow.confirm": "Slutt å fylgja",
"confirmations.unfollow.message": "Er du sikker på at du vil slutta å fylgja {name}?",
"confirmations.unfollow.title": "Slutt å fylgja brukaren?",
@@ -549,39 +549,36 @@
"mute_modal.you_wont_see_mentions": "Du vil ikkje sjå innlegg som nemner dei.",
"mute_modal.you_wont_see_posts": "Dei kan framleis sjå innlegga dine, men du vil ikkje sjå deira.",
"navigation_bar.about": "Om",
- "navigation_bar.account_settings": "Passord og sikkerhet",
+ "navigation_bar.account_settings": "Passord og tryggleik",
"navigation_bar.administration": "Administrasjon",
"navigation_bar.advanced_interface": "Opne i avansert nettgrensesnitt",
- "navigation_bar.automated_deletion": "Automatisert sletting av innlegg",
+ "navigation_bar.automated_deletion": "Automatisk sletting av innlegg",
"navigation_bar.blocks": "Blokkerte brukarar",
"navigation_bar.bookmarks": "Bokmerke",
- "navigation_bar.community_timeline": "Lokal tidsline",
- "navigation_bar.compose": "Lag nytt tut",
"navigation_bar.direct": "Private omtaler",
- "navigation_bar.discover": "Oppdag",
"navigation_bar.domain_blocks": "Skjulte domene",
- "navigation_bar.explore": "Utforsk",
"navigation_bar.favourites": "Favorittar",
"navigation_bar.filters": "Målbundne ord",
"navigation_bar.follow_requests": "Fylgjeførespurnader",
"navigation_bar.followed_tags": "Fylgde emneknaggar",
"navigation_bar.follows_and_followers": "Fylgje og fylgjarar",
- "navigation_bar.import_export": "Importer og eksporter",
+ "navigation_bar.import_export": "Import og eksport",
"navigation_bar.lists": "Lister",
+ "navigation_bar.live_feed_local": "Direktestraum (lokal)",
+ "navigation_bar.live_feed_public": "Direktestraum (allheimen)",
"navigation_bar.logout": "Logg ut",
"navigation_bar.moderation": "Moderering",
- "navigation_bar.more": "Mer",
+ "navigation_bar.more": "Meir",
"navigation_bar.mutes": "Målbundne brukarar",
"navigation_bar.opened_in_classic_interface": "Innlegg, kontoar, og enkelte andre sider blir opna som standard i det klassiske webgrensesnittet.",
- "navigation_bar.personal": "Personleg",
- "navigation_bar.pins": "Festa tut",
"navigation_bar.preferences": "Innstillingar",
- "navigation_bar.privacy_and_reach": "Personvern og rekkevidde",
- "navigation_bar.public_timeline": "Føderert tidsline",
+ "navigation_bar.privacy_and_reach": "Personvern og rekkjevidd",
"navigation_bar.search": "Søk",
- "navigation_bar.security": "Tryggleik",
- "navigation_panel.collapse_lists": "Skjul listemeny",
- "navigation_panel.expand_lists": "Utvid listemeny",
+ "navigation_bar.search_trends": "Søk / Populært",
+ "navigation_panel.collapse_followed_tags": "Gøym menyen over merkelappar du fylgjer",
+ "navigation_panel.collapse_lists": "Gøym listemenyen",
+ "navigation_panel.expand_followed_tags": "Utvid menyen over merkelappar du fylgjer",
+ "navigation_panel.expand_lists": "Utvid listemenyen",
"not_signed_in_indicator.not_signed_in": "Du må logga inn for å få tilgang til denne ressursen.",
"notification.admin.report": "{name} rapporterte {target}",
"notification.admin.report_account": "{name} rapporterte {count, plural, one {eitt innlegg} other {# innlegg}} frå {target} for {category}",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "Regelbrot",
"report_notification.categories.violation_sentence": "regelbrot",
"report_notification.open": "Opne rapport",
+ "search.clear": "Nullstill søket",
"search.no_recent_searches": "Ingen søk nylig",
"search.placeholder": "Søk",
"search.quick_action.account_search": "Profiler som samsvarer med {x}",
@@ -910,7 +908,10 @@
"subscribed_languages.save": "Lagre endringar",
"subscribed_languages.target": "Endre abonnerte språk for {target}",
"tabs_bar.home": "Heim",
+ "tabs_bar.menu": "Meny",
"tabs_bar.notifications": "Varsel",
+ "tabs_bar.publish": "Nytt innlegg",
+ "tabs_bar.search": "Søk",
"terms_of_service.effective_as_of": "I kraft frå {date}",
"terms_of_service.title": "Bruksvilkår",
"terms_of_service.upcoming_changes_on": "Komande endringar {date}",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 6cb92384909..ca7c43e1e92 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Vis innstillinger",
"column_header.unpin": "Løsne",
"column_search.cancel": "Avbryt",
- "column_subheading.settings": "Innstillinger",
"community.column_settings.local_only": "Kun lokalt",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Kun eksternt",
@@ -222,9 +221,6 @@
"confirmations.delete_list.title": "Slett liste?",
"confirmations.discard_edit_media.confirm": "Forkast",
"confirmations.discard_edit_media.message": "Du har ulagrede endringer i mediebeskrivelsen eller i forhåndsvisning, forkast dem likevel?",
- "confirmations.edit.confirm": "Redigér",
- "confirmations.edit.message": "Å redigere nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?",
- "confirmations.edit.title": "Overskriv innlegg?",
"confirmations.follow_to_list.confirm": "Følg og legg til i liste",
"confirmations.follow_to_list.message": "Du må følge {name} for å kunne legge vedkommende til i en liste.",
"confirmations.follow_to_list.title": "Følg bruker?",
@@ -242,9 +238,6 @@
"confirmations.remove_from_followers.confirm": "Fjern følger",
"confirmations.remove_from_followers.message": "{name} vil ikke lenger følge deg. Er du sikker på at du vil fortsette?",
"confirmations.remove_from_followers.title": "Fjern følger?",
- "confirmations.reply.confirm": "Svar",
- "confirmations.reply.message": "Å svare nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?",
- "confirmations.reply.title": "Overskriv innlegg?",
"confirmations.unfollow.confirm": "Slutt å følge",
"confirmations.unfollow.message": "Er du sikker på at du vil slutte å følge {name}?",
"confirmations.unfollow.title": "Slutt å følge bruker?",
@@ -555,12 +548,8 @@
"navigation_bar.automated_deletion": "Automatisert sletting av innlegg",
"navigation_bar.blocks": "Blokkerte brukere",
"navigation_bar.bookmarks": "Bokmerker",
- "navigation_bar.community_timeline": "Lokal tidslinje",
- "navigation_bar.compose": "Skriv et nytt innlegg",
"navigation_bar.direct": "Private omtaler",
- "navigation_bar.discover": "Oppdag",
"navigation_bar.domain_blocks": "Skjulte domener",
- "navigation_bar.explore": "Utforsk",
"navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Stilnede ord",
"navigation_bar.follow_requests": "Følgeforespørsler",
@@ -573,13 +562,9 @@
"navigation_bar.more": "Mer",
"navigation_bar.mutes": "Dempede brukere",
"navigation_bar.opened_in_classic_interface": "Innlegg, kontoer og andre spesifikke sider åpnes som standard i det klassiske webgrensesnittet.",
- "navigation_bar.personal": "Personlig",
- "navigation_bar.pins": "Festede innlegg",
"navigation_bar.preferences": "Innstillinger",
"navigation_bar.privacy_and_reach": "Personvern og rekkevidde",
- "navigation_bar.public_timeline": "Felles tidslinje",
"navigation_bar.search": "Søk",
- "navigation_bar.security": "Sikkerhet",
"navigation_panel.collapse_lists": "Skjul listemeny",
"navigation_panel.expand_lists": "Utvid listemeny",
"not_signed_in_indicator.not_signed_in": "Du må logge inn for å få tilgang til denne ressursen.",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index a6605b31569..9267ca69efc 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -117,7 +117,6 @@
"column_header.pin": "Penjar",
"column_header.show_settings": "Mostrar los paramètres",
"column_header.unpin": "Despenjar",
- "column_subheading.settings": "Paramètres",
"community.column_settings.local_only": "Sonque local",
"community.column_settings.media_only": "Solament los mèdias",
"community.column_settings.remote_only": "Sonque alonhat",
@@ -149,13 +148,10 @@
"confirmations.delete_list.confirm": "Suprimir",
"confirmations.delete_list.message": "Volètz vertadièrament suprimir aquesta lista per totjorn ?",
"confirmations.discard_edit_media.confirm": "Ignorar",
- "confirmations.edit.confirm": "Modificar",
"confirmations.logout.confirm": "Desconnexion",
"confirmations.logout.message": "Volètz vertadièrament vos desconnectar ?",
"confirmations.mute.confirm": "Rescondre",
"confirmations.redraft.confirm": "Escafar & tornar formular",
- "confirmations.reply.confirm": "Respondre",
- "confirmations.reply.message": "Respondre remplaçarà lo messatge que sètz a escriure. Volètz vertadièrament contunhar ?",
"confirmations.unfollow.confirm": "Quitar de sègre",
"confirmations.unfollow.message": "Volètz vertadièrament quitar de sègre {name} ?",
"conversation.delete": "Suprimir la conversacion",
@@ -318,12 +314,8 @@
"navigation_bar.advanced_interface": "Dobrir l’interfàcia web avançada",
"navigation_bar.blocks": "Personas blocadas",
"navigation_bar.bookmarks": "Marcadors",
- "navigation_bar.community_timeline": "Flux public local",
- "navigation_bar.compose": "Escriure un nòu tut",
"navigation_bar.direct": "Mencions privadas",
- "navigation_bar.discover": "Trobar",
"navigation_bar.domain_blocks": "Domenis resconduts",
- "navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favorits",
"navigation_bar.filters": "Mots ignorats",
"navigation_bar.follow_requests": "Demandas d’abonament",
@@ -332,12 +324,8 @@
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Desconnexion",
"navigation_bar.mutes": "Personas rescondudas",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Tuts penjats",
"navigation_bar.preferences": "Preferéncias",
- "navigation_bar.public_timeline": "Flux public global",
"navigation_bar.search": "Recercar",
- "navigation_bar.security": "Seguretat",
"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",
diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json
index 07b425ee173..8ab4eb22527 100644
--- a/app/javascript/mastodon/locales/pa.json
+++ b/app/javascript/mastodon/locales/pa.json
@@ -108,7 +108,6 @@
"column_header.show_settings": "ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ",
"column_header.unpin": "ਲਾਹੋ",
"column_search.cancel": "ਰੱਦ ਕਰੋ",
- "column_subheading.settings": "ਸੈਟਿੰਗਾਂ",
"community.column_settings.local_only": "ਸਿਰਫ ਲੋਕਲ ਹੀ",
"community.column_settings.media_only": "ਸਿਰਫ ਮੀਡੀਆ ਹੀ",
"community.column_settings.remote_only": "ਸਿਰਫ਼ ਰਿਮੋਟ ਹੀ",
@@ -141,7 +140,6 @@
"confirmations.delete_list.message": "ਕੀ ਤੁਸੀਂ ਇਸ ਸੂਚੀ ਨੂੰ ਪੱਕੇ ਤੌਰ ਉੱਤੇ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?",
"confirmations.delete_list.title": "ਸੂਚੀ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?",
"confirmations.discard_edit_media.confirm": "ਰੱਦ ਕਰੋ",
- "confirmations.edit.confirm": "ਸੋਧ",
"confirmations.follow_to_list.confirm": "ਫ਼ਾਲੋ ਕਰੋ ਅਤੇ ਲਿਸਟ 'ਚ ਜੋੜੋ",
"confirmations.follow_to_list.title": "ਵਰਤੋਂਕਾਰ ਨੂੰ ਫ਼ਾਲੋ ਕਰਨਾ ਹੈ?",
"confirmations.logout.confirm": "ਬਾਹਰ ਹੋਵੋ",
@@ -150,7 +148,6 @@
"confirmations.missing_alt_text.secondary": "ਕਿਵੇਂ ਵੀ ਪੋਸਟ ਕਰੋ",
"confirmations.mute.confirm": "ਮੌਨ ਕਰੋ",
"confirmations.redraft.confirm": "ਹਟਾਓ ਤੇ ਮੁੜ-ਡਰਾਫਟ",
- "confirmations.reply.confirm": "ਜਵਾਬ ਦੇਵੋ",
"confirmations.unfollow.confirm": "ਅਣ-ਫ਼ਾਲੋ",
"confirmations.unfollow.message": "ਕੀ ਤੁਸੀਂ {name} ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",
"confirmations.unfollow.title": "ਵਰਤੋਂਕਾਰ ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰਨਾ ਹੈ?",
@@ -340,12 +337,8 @@
"navigation_bar.advanced_interface": "ਤਕਨੀਕੀ ਵੈੱਬ ਇੰਟਰਫੇਸ ਵਿੱਚ ਖੋਲ੍ਹੋ",
"navigation_bar.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ",
"navigation_bar.bookmarks": "ਬੁੱਕਮਾਰਕ",
- "navigation_bar.community_timeline": "ਲੋਕਲ ਸਮਾਂ-ਲਾਈਨ",
- "navigation_bar.compose": "ਨਵੀਂ ਪੋਸਟ ਲਿਖੋ",
"navigation_bar.direct": "ਨਿੱਜੀ ਜ਼ਿਕਰ",
- "navigation_bar.discover": "ਖੋਜ",
"navigation_bar.domain_blocks": "ਪਾਬੰਦੀ ਲਾਏ ਡੋਮੇਨ",
- "navigation_bar.explore": "ਪੜਚੋਲ ਕਰੋ",
"navigation_bar.favourites": "ਮਨਪਸੰਦ",
"navigation_bar.filters": "ਮੌਨ ਕੀਤੇ ਸ਼ਬਦ",
"navigation_bar.follow_requests": "ਫ਼ਾਲੋ ਦੀਆਂ ਬੇਨਤੀਆਂ",
@@ -354,11 +347,8 @@
"navigation_bar.lists": "ਸੂਚੀਆਂ",
"navigation_bar.logout": "ਲਾਗ ਆਉਟ",
"navigation_bar.mutes": "ਮੌਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ",
- "navigation_bar.personal": "ਨਿੱਜੀ",
- "navigation_bar.pins": "ਟੰਗੀਆਂ ਪੋਸਟਾਂ",
"navigation_bar.preferences": "ਪਸੰਦਾਂ",
"navigation_bar.search": "ਖੋਜੋ",
- "navigation_bar.security": "ਸੁਰੱਖਿਆ",
"not_signed_in_indicator.not_signed_in": "ਇਹ ਸਰੋਤ ਵਰਤਣ ਲਈ ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।",
"notification.admin.sign_up": "{name} ਨੇ ਸਾਈਨ ਅੱਪ ਕੀਤਾ",
"notification.follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕੀਤਾ",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 7973c6c97ca..1967a2333c0 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -167,7 +167,6 @@
"column_header.show_settings": "Pokaż ustawienia",
"column_header.unpin": "Odepnij",
"column_search.cancel": "Anuluj",
- "column_subheading.settings": "Ustawienia",
"community.column_settings.local_only": "Tylko lokalne",
"community.column_settings.media_only": "Tylko multimedia",
"community.column_settings.remote_only": "Tylko zdalne",
@@ -205,9 +204,6 @@
"confirmations.delete_list.title": "Usunąć listę?",
"confirmations.discard_edit_media.confirm": "Odrzuć",
"confirmations.discard_edit_media.message": "Masz niezapisane zmiany w opisie lub podglądzie, odrzucić je mimo to?",
- "confirmations.edit.confirm": "Edytuj",
- "confirmations.edit.message": "Edytowanie wpisu nadpisze wiadomość, którą obecnie piszesz. Czy na pewno chcesz to zrobić?",
- "confirmations.edit.title": "Zastąpić wpis?",
"confirmations.follow_to_list.confirm": "Zaobserwuj i dodaj do listy",
"confirmations.follow_to_list.message": "Musisz obserwować {name}, aby dodać do listy.",
"confirmations.follow_to_list.title": "Zaobserwować?",
@@ -222,9 +218,6 @@
"confirmations.redraft.confirm": "Usuń i popraw",
"confirmations.redraft.message": "Czy na pewno chcesz usunąć i poprawić ten wpis? Polubienia, podbicia i komentarze pierwotnego wpisu zostaną utracone.",
"confirmations.redraft.title": "Usunąć i poprawić wpis?",
- "confirmations.reply.confirm": "Skomentuj",
- "confirmations.reply.message": "W ten sposób utracisz wpis, który teraz tworzysz. Czy na pewno chcesz to zrobić?",
- "confirmations.reply.title": "Zastąpić wpis?",
"confirmations.unfollow.confirm": "Nie obserwuj",
"confirmations.unfollow.message": "Czy na pewno nie chcesz obserwować {name}?",
"confirmations.unfollow.title": "Cofnąć obserwację?",
@@ -518,12 +511,8 @@
"navigation_bar.advanced_interface": "Otwórz w widoku zaawansowanym",
"navigation_bar.blocks": "Zablokowani",
"navigation_bar.bookmarks": "Zakładki",
- "navigation_bar.community_timeline": "Lokalna oś czasu",
- "navigation_bar.compose": "Utwórz nowy wpis",
"navigation_bar.direct": "Wzmianki bezpośrednie",
- "navigation_bar.discover": "Odkrywaj",
"navigation_bar.domain_blocks": "Zablokowane domeny",
- "navigation_bar.explore": "Odkrywaj",
"navigation_bar.favourites": "Polubione",
"navigation_bar.filters": "Wyciszone słowa",
"navigation_bar.follow_requests": "Prośby o obserwowanie",
@@ -534,12 +523,8 @@
"navigation_bar.moderation": "Moderacja",
"navigation_bar.mutes": "Wyciszeni",
"navigation_bar.opened_in_classic_interface": "Wpisy, konta i inne określone strony są domyślnie otwierane w widoku klasycznym.",
- "navigation_bar.personal": "Osobiste",
- "navigation_bar.pins": "Przypięte wpisy",
"navigation_bar.preferences": "Ustawienia",
- "navigation_bar.public_timeline": "Globalna oś czasu",
"navigation_bar.search": "Szukaj",
- "navigation_bar.security": "Bezpieczeństwo",
"not_signed_in_indicator.not_signed_in": "Zaloguj się, aby uzyskać dostęp.",
"notification.admin.report": "{name} zgłosił {target}",
"notification.admin.report_account": "{name} zgłosił(a) {count, plural, one {1 wpis} few {# wpisy} other {# wpisów}} z {target} w kategorii {category}",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index bf88c770f04..d4797936877 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -1,6 +1,7 @@
{
"about.blocks": "Servidores moderados",
"about.contact": "Contato:",
+ "about.default_locale": "Padrão",
"about.disclaimer": "Mastodon é um software de código aberto e livre, e uma marca registrada de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Razão não disponível",
"about.domain_blocks.preamble": "O Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor em específico.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.explanation": "Nenhum dado desse servidor será processado, armazenado ou trocado, impossibilitando qualquer interação ou comunicação com os usuários deste servidor.",
"about.domain_blocks.suspended.title": "Suspenso",
+ "about.language_label": "Idioma",
"about.not_available": "Esta informação não foi disponibilizada neste servidor.",
"about.powered_by": "Redes sociais descentralizadas alimentadas por {mastodon}",
"about.rules": "Regras do servidor",
@@ -182,7 +184,6 @@
"column_header.show_settings": "Mostrar configurações",
"column_header.unpin": "Desafixar",
"column_search.cancel": "Cancelar",
- "column_subheading.settings": "Configurações",
"community.column_settings.local_only": "Somente local",
"community.column_settings.media_only": "Somente mídia",
"community.column_settings.remote_only": "Somente global",
@@ -218,11 +219,13 @@
"confirmations.delete_list.confirm": "Excluir",
"confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?",
"confirmations.delete_list.title": "Excluir lista?",
+ "confirmations.discard_draft.confirm": "Descartar e continuar",
+ "confirmations.discard_draft.edit.cancel": "Continuar editando",
+ "confirmations.discard_draft.edit.message": "Continuar vai descartar quaisquer mudanças feitas ao post sendo editado.",
+ "confirmations.discard_draft.edit.title": "Descartar mudanças no seu post?",
+ "confirmations.discard_draft.post.cancel": "Continuar rascunho",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?",
- "confirmations.edit.confirm": "Editar",
- "confirmations.edit.message": "Editar agora irá substituir a mensagem que está sendo criando. Tem certeza de que deseja continuar?",
- "confirmations.edit.title": "Sobrescrever o post?",
"confirmations.follow_to_list.confirm": "Seguir e adicionar à lista",
"confirmations.follow_to_list.message": "Você precisa seguir {name} para adicioná-lo à lista.",
"confirmations.follow_to_list.title": "Seguir usuário?",
@@ -240,9 +243,6 @@
"confirmations.remove_from_followers.confirm": "Remover seguidor",
"confirmations.remove_from_followers.message": "{name} vai parar de te seguir. Tem certeza de que deseja continuar?",
"confirmations.remove_from_followers.title": "Remover seguidor?",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder agora sobrescreverá o toot que você está compondo. Deseja continuar?",
- "confirmations.reply.title": "Sobrescrever o post?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Você tem certeza de que deseja deixar de seguir {name}?",
"confirmations.unfollow.title": "Deixar de seguir o usuário?",
@@ -542,12 +542,8 @@
"navigation_bar.advanced_interface": "Ativar na interface web avançada",
"navigation_bar.blocks": "Usuários bloqueados",
"navigation_bar.bookmarks": "Salvos",
- "navigation_bar.community_timeline": "Linha do tempo local",
- "navigation_bar.compose": "Compor novo toot",
"navigation_bar.direct": "Menções privadas",
- "navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Domínios bloqueados",
- "navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palavras filtradas",
"navigation_bar.follow_requests": "Seguidores pendentes",
@@ -558,12 +554,8 @@
"navigation_bar.moderation": "Moderação",
"navigation_bar.mutes": "Usuários silenciados",
"navigation_bar.opened_in_classic_interface": "Publicações, contas e outras páginas específicas são abertas por padrão na interface 'web' clássica.",
- "navigation_bar.personal": "Pessoal",
- "navigation_bar.pins": "Toots fixados",
"navigation_bar.preferences": "Preferências",
- "navigation_bar.public_timeline": "Linha global",
"navigation_bar.search": "Buscar",
- "navigation_bar.security": "Segurança",
"not_signed_in_indicator.not_signed_in": "Você precisa se autenticar para acessar este recurso.",
"notification.admin.report": "{name} denunciou {target}",
"notification.admin.report_account": "{name} reportou {count, plural, one {Um post} other {# posts}} de {target} para {category}",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index bda5eacaf6f..424e48ef2e3 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Mostrar configurações",
"column_header.unpin": "Desafixar",
"column_search.cancel": "Cancelar",
- "column_subheading.settings": "Configurações",
"community.column_settings.local_only": "Apenas local",
"community.column_settings.media_only": "Apenas multimédia",
"community.column_settings.remote_only": "Apenas remoto",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "Tens a certeza de que desejas eliminar permanentemente esta lista?",
"confirmations.delete_list.title": "Eliminar lista?",
+ "confirmations.discard_draft.confirm": "Descartar e continuar",
+ "confirmations.discard_draft.edit.cancel": "Retomar edição",
+ "confirmations.discard_draft.edit.message": "Continuar irá descartar quaisquer alterações que tenha feito na publicação que está a editar.",
+ "confirmations.discard_draft.edit.title": "Descartar alterações à sua publicação?",
+ "confirmations.discard_draft.post.cancel": "Retomar rascunho",
+ "confirmations.discard_draft.post.message": "Continuar irá descartar a publicação que está a escrever.",
+ "confirmations.discard_draft.post.title": "Descartar o rascunho da publicação?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tens alterações por guardar na descrição da multimédia ou pré-visualização do conteúdo. Descartar mesmo assim?",
- "confirmations.edit.confirm": "Editar",
- "confirmations.edit.message": "Editar agora irás substituir a mensagem que estás a compor. Tens a certeza de que desejas continuar?",
- "confirmations.edit.title": "Substituir publicação?",
"confirmations.follow_to_list.confirm": "Seguir e adicionar à lista",
"confirmations.follow_to_list.message": "Tens de seguir {name} para o adicionares a uma lista.",
"confirmations.follow_to_list.title": "Seguir utilizador?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Remover seguidor",
"confirmations.remove_from_followers.message": "{name} vai parar de seguir-te. Tens a certeza que prentedes continuar?",
"confirmations.remove_from_followers.title": "Remover seguidor?",
- "confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Se responderes agora, a mensagem que estás a escrever será substituída. Tens a certeza que pretendes continuar?",
- "confirmations.reply.title": "Substituir publicação?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "De certeza que queres deixar de seguir {name}?",
"confirmations.unfollow.title": "Deixar de seguir o utilizador?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Eliminação automática de publicações",
"navigation_bar.blocks": "Utilizadores bloqueados",
"navigation_bar.bookmarks": "Marcadores",
- "navigation_bar.community_timeline": "Cronologia local",
- "navigation_bar.compose": "Escrever nova publicação",
"navigation_bar.direct": "Menções privadas",
- "navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Domínios escondidos",
- "navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palavras ocultadas",
"navigation_bar.follow_requests": "Seguidores pendentes",
@@ -568,19 +564,20 @@
"navigation_bar.follows_and_followers": "Seguindo e seguidores",
"navigation_bar.import_export": "Importar e exportar",
"navigation_bar.lists": "Listas",
+ "navigation_bar.live_feed_local": "Cronologia local",
+ "navigation_bar.live_feed_public": "Cronologia federada",
"navigation_bar.logout": "Sair",
"navigation_bar.moderation": "Moderação",
"navigation_bar.more": "Mais",
"navigation_bar.mutes": "Utilizadores ocultados",
"navigation_bar.opened_in_classic_interface": "Por norma, publicações, contas e outras páginas específicas são abertas na interface web clássica.",
- "navigation_bar.personal": "Pessoal",
- "navigation_bar.pins": "Publicações fixadas",
"navigation_bar.preferences": "Preferências",
"navigation_bar.privacy_and_reach": "Privacidade e alcance",
- "navigation_bar.public_timeline": "Cronologia federada",
"navigation_bar.search": "Pesquisar",
- "navigation_bar.security": "Segurança",
+ "navigation_bar.search_trends": "Pesquisar / Em destaque",
+ "navigation_panel.collapse_followed_tags": "Recolher o menu de etiquetas seguidas",
"navigation_panel.collapse_lists": "Recolher lista de menu",
+ "navigation_panel.expand_followed_tags": "Expandir o menu de etiquetas seguidas",
"navigation_panel.expand_lists": "Expandir lista de menu",
"not_signed_in_indicator.not_signed_in": "Tens de iniciar a sessão para utilizares esta funcionalidade.",
"notification.admin.report": "{name} denunciou {target}",
@@ -808,6 +805,7 @@
"report_notification.categories.violation": "Violação de regra",
"report_notification.categories.violation_sentence": "violação de regra",
"report_notification.open": "Abrir denúncia",
+ "search.clear": "Limpar pesquisa",
"search.no_recent_searches": "Nenhuma pesquisa recente",
"search.placeholder": "Pesquisar",
"search.quick_action.account_search": "Perfis com correspondência a {x}",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index f233fdca626..8128a998a9c 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -139,7 +139,6 @@
"column_header.pin": "Fixează",
"column_header.show_settings": "Afișare setări",
"column_header.unpin": "Anulează fixarea",
- "column_subheading.settings": "Setări",
"community.column_settings.local_only": "Doar local",
"community.column_settings.media_only": "Doar media",
"community.column_settings.remote_only": "Doar la distanţă",
@@ -174,14 +173,10 @@
"confirmations.delete_list.message": "Ești sigur că vrei să elimini definitiv această listă?",
"confirmations.discard_edit_media.confirm": "Renunță",
"confirmations.discard_edit_media.message": "Ai modificări nesalvate în descrierea sau previzualizarea media, renunți oricum?",
- "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ă",
"confirmations.redraft.confirm": "Șterge și scrie din nou",
- "confirmations.reply.confirm": "Răspunde",
- "confirmations.reply.message": "Dacă răspunzi acum, mesajul pe care îl scrii în acest moment va fi șters. Ești sigur că vrei să continui?",
"confirmations.unfollow.confirm": "Dezabonează-te",
"confirmations.unfollow.message": "Ești sigur că vrei să te dezabonezi de la {name}?",
"conversation.delete": "Șterge conversația",
@@ -354,11 +349,7 @@
"navigation_bar.advanced_interface": "Deschide în interfața web avansată",
"navigation_bar.blocks": "Utilizatori blocați",
"navigation_bar.bookmarks": "Marcaje",
- "navigation_bar.community_timeline": "Cronologie locală",
- "navigation_bar.compose": "Compune o nouă postare",
- "navigation_bar.discover": "Descoperă",
"navigation_bar.domain_blocks": "Domenii blocate",
- "navigation_bar.explore": "Explorează",
"navigation_bar.filters": "Cuvinte ignorate",
"navigation_bar.follow_requests": "Cereri de abonare",
"navigation_bar.followed_tags": "Hashtag-uri urmărite",
@@ -367,12 +358,8 @@
"navigation_bar.logout": "Deconectare",
"navigation_bar.mutes": "Utilizatori ignorați",
"navigation_bar.opened_in_classic_interface": "Postările, conturile și alte pagini specifice sunt deschise implicit în interfața web clasică.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Postări fixate",
"navigation_bar.preferences": "Preferințe",
- "navigation_bar.public_timeline": "Cronologie globală",
"navigation_bar.search": "Caută",
- "navigation_bar.security": "Securitate",
"not_signed_in_indicator.not_signed_in": "Trebuie să te conectezi pentru a accesa această resursă.",
"notification.admin.report": "{name} a raportat pe {target}",
"notification.admin.sign_up": "{name} s-a înscris",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 13e134fc1cf..31d19931439 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -1,6 +1,7 @@
{
"about.blocks": "Модерируемые серверы",
"about.contact": "Связаться:",
+ "about.default_locale": "по умолчанию",
"about.disclaimer": "Mastodon — свободное программное обеспечение с открытым исходным кодом и торговая марка Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Причина не указана",
"about.domain_blocks.preamble": "Mastodon обычно позволяет просматривать содержимое и взаимодействовать с пользователями любых других серверов в федивёрсе. Вот исключения, сделанные конкретно для этого сервера.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "Ограничивается",
"about.domain_blocks.suspended.explanation": "Никакие данные с этого сервера не будут обрабатываться, храниться или обмениваться, что делает невозможным любое взаимодействие или связь с пользователями с этого сервера.",
"about.domain_blocks.suspended.title": "Заблокирован",
+ "about.language_label": "Язык",
"about.not_available": "Эта информация не указана на данном сервере.",
"about.powered_by": "Децентрализованная социальная сеть на базе {mastodon}",
"about.rules": "Правила сервера",
@@ -28,7 +30,10 @@
"account.edit_profile": "Редактировать",
"account.enable_notifications": "Уведомлять о постах от @{name}",
"account.endorse": "Рекомендовать в профиле",
- "account.featured": "Закреплённые…",
+ "account.familiar_followers_many": "В подписках у {name1}, {name2}, и ещё {othersCount, plural, one {# человека, которого вы знаете} other {# человек, которых вы знаете}}",
+ "account.familiar_followers_one": "В подписках у {name1}",
+ "account.familiar_followers_two": "В подписках у {name1} и {name2}",
+ "account.featured": "Рекомендации",
"account.featured.accounts": "Профили",
"account.featured.hashtags": "Хештеги",
"account.featured_tags.last_status_at": "Последний пост {date}",
@@ -38,6 +43,7 @@
"account.followers": "Подписчики",
"account.followers.empty": "На этого пользователя пока никто не подписан.",
"account.followers_counter": "{count, plural, one {{counter} подписчик} few {{counter} подписчика} other {{counter} подписчиков}}",
+ "account.followers_you_know_counter": "{count, plural, one {{counter} ваш знакомый} other {{counter} ваших знакомых}}",
"account.following": "Подписки",
"account.following_counter": "{count, plural, one {# подписка} many {# подписок} other {# подписки}}",
"account.follows.empty": "Этот пользователь пока ни на кого не подписался.",
@@ -178,7 +184,6 @@
"column_header.show_settings": "Показать настройки",
"column_header.unpin": "Открепить",
"column_search.cancel": "Отмена",
- "column_subheading.settings": "Настройки",
"community.column_settings.local_only": "Только локальные",
"community.column_settings.media_only": "Только с медиафайлами",
"community.column_settings.remote_only": "Только с других серверов",
@@ -214,11 +219,15 @@
"confirmations.delete_list.confirm": "Удалить",
"confirmations.delete_list.message": "Вы уверены, что хотите навсегда удалить этот список?",
"confirmations.delete_list.title": "Удалить список?",
+ "confirmations.discard_draft.confirm": "Сбросить и продолжить",
+ "confirmations.discard_draft.edit.cancel": "Вернуться к редактированию",
+ "confirmations.discard_draft.edit.message": "Если вы продолжите, то все изменения в редактируемом в данный момент посте будут отброшены.",
+ "confirmations.discard_draft.edit.title": "Сбросить несохранённые изменения?",
+ "confirmations.discard_draft.post.cancel": "Вернуться к черновику",
+ "confirmations.discard_draft.post.message": "Если вы продолжите, то набираемый в данный момент пост будет стёрт.",
+ "confirmations.discard_draft.post.title": "Стереть несохранённый черновик поста?",
"confirmations.discard_edit_media.confirm": "Сбросить",
"confirmations.discard_edit_media.message": "У вас есть несохранённые изменения, касающиеся описания медиа или области предпросмотра. Сбросить их?",
- "confirmations.edit.confirm": "Редактировать",
- "confirmations.edit.message": "Если вы начнёте редактировать сейчас, то набираемый в данный момент пост будет стёрт. Вы уверены, что хотите продолжить?",
- "confirmations.edit.title": "Стереть несохранённый черновик поста?",
"confirmations.follow_to_list.confirm": "Подписаться и добавить",
"confirmations.follow_to_list.message": "Чтобы добавить пользователя {name} в список, вы должны быть на него подписаны.",
"confirmations.follow_to_list.title": "Подписаться на пользователя?",
@@ -226,7 +235,7 @@
"confirmations.logout.message": "Вы уверены, что хотите выйти?",
"confirmations.logout.title": "Выйти?",
"confirmations.missing_alt_text.confirm": "Добавить",
- "confirmations.missing_alt_text.message": "Ваш пост содержит медиафайлы без альтернативного текста. Добавляя описания, вы делаете ваш контент доступным для более широкого круга людей.",
+ "confirmations.missing_alt_text.message": "Ваш пост содержит медиа без альтернативного текста. Добавляя описания, вы делаете ваш контент доступным для более широкого круга людей.",
"confirmations.missing_alt_text.secondary": "Опубликовать",
"confirmations.missing_alt_text.title": "Добавить альтернативный текст?",
"confirmations.mute.confirm": "Игнорировать",
@@ -236,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Убрать подписчика",
"confirmations.remove_from_followers.message": "Пользователь {name} перестанет быть подписан на вас. Продолжить?",
"confirmations.remove_from_followers.title": "Убрать подписчика?",
- "confirmations.reply.confirm": "Ответить",
- "confirmations.reply.message": "Если вы начнёте составлять ответ сейчас, то набираемый в данный момент пост будет стёрт. Вы уверены, что хотите продолжить?",
- "confirmations.reply.title": "Стереть несохранённый черновик поста?",
"confirmations.unfollow.confirm": "Отписаться",
"confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?",
"confirmations.unfollow.title": "Отписаться?",
@@ -258,7 +264,7 @@
"directory.recently_active": "Недавно активные",
"disabled_account_banner.account_settings": "Настройки учётной записи",
"disabled_account_banner.text": "Ваша учётная запись {disabledAccount} в настоящее время отключена.",
- "dismissable_banner.community_timeline": "Это самые новые публичные посты от тех пользователей, чьи учётные записи находятся на сервере {domain}.",
+ "dismissable_banner.community_timeline": "Это самые новые публичные посты от тех пользователей, чьи учётные записи размещены на сервере {domain}.",
"dismissable_banner.dismiss": "Закрыть",
"dismissable_banner.public_timeline": "Это самые новые публичные посты от всех тех людей в федивёрсе, на которых подписаны пользователи {domain}.",
"domain_block_modal.block": "Заблокировать сервер",
@@ -300,7 +306,9 @@
"emoji_button.search_results": "Результаты поиска",
"emoji_button.symbols": "Символы",
"emoji_button.travel": "Путешествия и места",
- "empty_column.account_featured_other.unknown": "Этот пользователь ещё ничего не закрепил в своём профиле.",
+ "empty_column.account_featured.me": "Вы ещё ничего не рекомендовали в своём профиле. Знаете ли вы, что вы можете рекомендовать в своём профиле часто используемые вами хештеги и даже профили друзей?",
+ "empty_column.account_featured.other": "{acct} ещё ничего не рекомендовал(а) в своём профиле. Знаете ли вы, что вы можете рекомендовать в своём профиле часто используемые вами хештеги и даже профили друзей?",
+ "empty_column.account_featured_other.unknown": "Этот пользователь ещё ничего не рекомендовал в своём профиле.",
"empty_column.account_hides_collections": "Пользователь предпочёл не раскрывать эту информацию",
"empty_column.account_suspended": "Учётная запись заблокирована",
"empty_column.account_timeline": "Здесь нет постов!",
@@ -329,9 +337,15 @@
"errors.unexpected_crash.copy_stacktrace": "Скопировать диагностическую информацию",
"errors.unexpected_crash.report_issue": "Сообщить о проблеме",
"explore.suggested_follows": "Люди",
+ "explore.title": "Актуальное",
"explore.trending_links": "Новости",
"explore.trending_statuses": "Посты",
"explore.trending_tags": "Хештеги",
+ "featured_carousel.header": "{count, plural, other {Закреплённые посты}}",
+ "featured_carousel.next": "Следующий",
+ "featured_carousel.post": "Пост",
+ "featured_carousel.previous": "Предыдущий",
+ "featured_carousel.slide": "{index} из {total}",
"filter_modal.added.context_mismatch_explanation": "Этот фильтр не применяется в том контексте, в котором вы видели этот пост. Если вы хотите, чтобы пост был отфильтрован в этом контексте, необходимо редактировать фильтр.",
"filter_modal.added.context_mismatch_title": "Несоответствие контекста!",
"filter_modal.added.expired_explanation": "Этот фильтр истёк. Чтобы он был применён, вам нужно изменить срок действия фильтра.",
@@ -349,7 +363,7 @@
"filter_modal.select_filter.title": "Фильтровать этот пост",
"filter_modal.title.status": "Фильтровать пост",
"filter_warning.matches_filter": "Соответствует фильтру «{title} »",
- "filtered_notifications_banner.pending_requests": "От {count, plural, =0 {не знакомых вам людей} one {# человека, которого вы можете знать} other {# человек, которых вы можете знать}}",
+ "filtered_notifications_banner.pending_requests": "От {count, plural, =0 {незнакомых вам людей} one {# человека, которого вы можете знать} other {# человек, которых вы можете знать}}",
"filtered_notifications_banner.title": "Отфильтрованные уведомления",
"firehose.all": "Всё вместе",
"firehose.local": "Этот сервер",
@@ -398,10 +412,10 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} пользователь} few {{counter} пользователя} other {{counter} пользователей}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}} сегодня",
- "hashtag.feature": "Закрепить в профиле",
+ "hashtag.feature": "Рекомендовать в профиле",
"hashtag.follow": "Подписаться на новые посты",
"hashtag.mute": "Игнорировать #{hashtag}",
- "hashtag.unfeature": "Открепить от профиля",
+ "hashtag.unfeature": "Не рекомендовать в профиле",
"hashtag.unfollow": "Отписаться от новых постов",
"hashtags.and_other": "…и {count, plural, other {ещё #}}",
"hints.profiles.followers_may_be_missing": "Некоторые подписчики этого профиля могут отсутствовать.",
@@ -412,6 +426,7 @@
"hints.profiles.see_more_posts": "Перейдите на {domain}, чтобы увидеть все посты",
"hints.threads.replies_may_be_missing": "Некоторые ответы с других серверов могут отсутствовать.",
"hints.threads.see_more": "Перейдите на {domain}, чтобы увидеть все ответы",
+ "home.column_settings.show_quotes": "Показывать цитирования",
"home.column_settings.show_reblogs": "Показывать продвижения",
"home.column_settings.show_replies": "Показывать ответы",
"home.hide_announcements": "Скрыть объявления",
@@ -534,37 +549,41 @@
"mute_modal.you_wont_see_mentions": "Вы не увидите посты, которые его упоминают.",
"mute_modal.you_wont_see_posts": "Он по-прежнему сможет видеть ваши посты, но вы не будете видеть его посты.",
"navigation_bar.about": "О проекте",
+ "navigation_bar.account_settings": "Пароль и безопасность",
"navigation_bar.administration": "Администрирование",
"navigation_bar.advanced_interface": "Открыть в многоколоночном интерфейсе",
+ "navigation_bar.automated_deletion": "Автоудаление постов",
"navigation_bar.blocks": "Заблокированные пользователи",
"navigation_bar.bookmarks": "Закладки",
- "navigation_bar.community_timeline": "Локальная лента",
- "navigation_bar.compose": "Создать новый пост",
"navigation_bar.direct": "Личные упоминания",
- "navigation_bar.discover": "Обзор",
"navigation_bar.domain_blocks": "Заблокированные домены",
- "navigation_bar.explore": "Обзор",
"navigation_bar.favourites": "Избранное",
"navigation_bar.filters": "Игнорируемые слова",
"navigation_bar.follow_requests": "Запросы на подписку",
"navigation_bar.followed_tags": "Подписки на хештеги",
"navigation_bar.follows_and_followers": "Подписки и подписчики",
+ "navigation_bar.import_export": "Импорт и экспорт",
"navigation_bar.lists": "Списки",
+ "navigation_bar.live_feed_local": "Живая лента (локальная)",
+ "navigation_bar.live_feed_public": "Живая лента (глобальная)",
"navigation_bar.logout": "Выйти",
- "navigation_bar.moderation": "Модерация",
+ "navigation_bar.moderation": "Модерирование",
+ "navigation_bar.more": "Ещё",
"navigation_bar.mutes": "Игнорируемые пользователи",
"navigation_bar.opened_in_classic_interface": "Посты, профили пользователей и некоторые другие страницы по умолчанию открываются в классическом веб-интерфейсе.",
- "navigation_bar.personal": "Личное",
- "navigation_bar.pins": "Закреплённые посты",
"navigation_bar.preferences": "Настройки",
- "navigation_bar.public_timeline": "Глобальная лента",
+ "navigation_bar.privacy_and_reach": "Приватность и видимость",
"navigation_bar.search": "Поиск",
- "navigation_bar.security": "Безопасность",
+ "navigation_bar.search_trends": "Поиск / Актуальное",
+ "navigation_panel.collapse_followed_tags": "Свернуть меню подписок на хештеги",
+ "navigation_panel.collapse_lists": "Свернуть меню списков",
+ "navigation_panel.expand_followed_tags": "Развернуть меню подписок на хештеги",
+ "navigation_panel.expand_lists": "Развернуть меню списков",
"not_signed_in_indicator.not_signed_in": "Эта страница доступна только авторизованным пользователям.",
"notification.admin.report": "{name} пожаловался (-лась) на {target}",
- "notification.admin.report_account": "{name} пожаловался (-лась) на {count, plural, one {# пост} few {# поста} other {# постов}} от пользователя {target} по причине «{category}»",
- "notification.admin.report_account_other": "{name} пожаловался (-лась) на {count, plural, one {# пост} few {# поста} other {# постов}} от пользователя {target}",
- "notification.admin.report_statuses": "{name} пожаловался (-лась) на {target} по причине «{category}»",
+ "notification.admin.report_account": "{name} пожаловался (-лась) на {count, plural, one {# пост} few {# поста} other {# постов}} пользователя {target}, выбрав категорию «{category}»",
+ "notification.admin.report_account_other": "{name} пожаловался (-лась) на {count, plural, one {# пост} few {# поста} other {# постов}} пользователя {target}",
+ "notification.admin.report_statuses": "{name} пожаловался (-лась) на {target}, выбрав категорию «{category}»",
"notification.admin.report_statuses_other": "{name} пожаловался (-лась) на {target}",
"notification.admin.sign_up": "{name} зарегистрировался (-лась) на сервере",
"notification.admin.sign_up.name_and_others": "{name} и ещё {count, plural, one {# пользователь} few {# пользователя} other {# пользователей}} зарегистрировались на сервере",
@@ -586,17 +605,18 @@
"notification.mentioned_you": "{name} упомянул(а) вас",
"notification.moderation-warning.learn_more": "Узнать больше",
"notification.moderation_warning": "Модераторы вынесли вам предупреждение",
- "notification.moderation_warning.action_delete_statuses": "Некоторые из ваших публикаций были удалены.",
+ "notification.moderation_warning.action_delete_statuses": "Некоторые ваши посты были удалены.",
"notification.moderation_warning.action_disable": "Ваша учётная запись была отключена.",
- "notification.moderation_warning.action_mark_statuses_as_sensitive": "Некоторые из ваших сообщений были отмечены как деликатные.",
- "notification.moderation_warning.action_none": "Ваша учётная запись получила предупреждение от модерации.",
- "notification.moderation_warning.action_sensitive": "С этого момента ваши сообщения будут помечены как деликатные.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Некоторые ваши посты были отмечены как контент деликатного характера.",
+ "notification.moderation_warning.action_none": "Модераторы вынесли вам предупреждение.",
+ "notification.moderation_warning.action_sensitive": "С этого момента все ваши новые посты будут отмечены как контент деликатного характера.",
"notification.moderation_warning.action_silence": "Ваша учётная запись была ограничена.",
- "notification.moderation_warning.action_suspend": "Действие вашей учётной записи приостановлено.",
+ "notification.moderation_warning.action_suspend": "Ваша учётная запись была заблокирована.",
"notification.own_poll": "Ваш опрос завершился",
"notification.poll": "Опрос, в котором вы приняли участие, завершился",
"notification.reblog": "{name} продвинул(а) ваш пост",
"notification.reblog.name_and_others_with_link": "{name} и ещё {count, plural, one {# пользователь} few {# пользователя} other {# пользователей}} продвинули ваш пост",
+ "notification.relationships_severance_event": "Разорвана связь с {name}",
"notification.relationships_severance_event.account_suspension": "Администратор сервера {from} заблокировал сервер {target}, поэтому вы больше не сможете получать обновления от людей с этого сервера или взаимодействовать с ними.",
"notification.relationships_severance_event.domain_block": "Администратор сервера {from} заблокировал сервер {target}, где размещены учётные записи у {followersCount} ваших подписчиков и {followingCount, plural, one {# пользователя, на которого вы подписаны} other {# пользователей, на которых вы подписаны}}.",
"notification.relationships_severance_event.learn_more": "Узнать больше",
@@ -636,7 +656,7 @@
"notifications.column_settings.group": "Группировать",
"notifications.column_settings.mention": "Вас упомянули в посте:",
"notifications.column_settings.poll": "Опрос, в котором вы приняли участие, завершился:",
- "notifications.column_settings.push": "Пуш-уведомления",
+ "notifications.column_settings.push": "Push-уведомления",
"notifications.column_settings.reblog": "Ваш пост продвинули:",
"notifications.column_settings.show": "Отображать в списке",
"notifications.column_settings.sound": "Проигрывать звук",
@@ -652,11 +672,11 @@
"notifications.filter.polls": "Результаты опросов",
"notifications.filter.statuses": "Обновления от людей, на которых вы подписаны",
"notifications.grant_permission": "Предоставить разрешение.",
- "notifications.group": "{count} уведомлений",
+ "notifications.group": "{count, plural, one {# уведомление}, few {# уведомления}, other {# уведомлений}}",
"notifications.mark_as_read": "Отметить все уведомления прочитанными",
- "notifications.permission_denied": "Уведомления на рабочем столе недоступны, так как вы запретили их отправку в браузере. Проверьте настройки для сайта, чтобы включить их обратно.",
- "notifications.permission_denied_alert": "Уведомления на рабочем столе недоступны, так как вы ранее отклонили запрос на их отправку.",
- "notifications.permission_required": "Чтобы включить уведомления на рабочем столе, необходимо разрешить их в браузере.",
+ "notifications.permission_denied": "Уведомления на рабочем столе недоступны, так как вы запретили их отправку в браузере",
+ "notifications.permission_denied_alert": "Не удалось включить уведомления на рабочем столе, так как вы отклонили запрос разрешения на их отправку в браузере",
+ "notifications.permission_required": "Чтобы включить уведомления на рабочем столе, необходимо разрешить их отправку в браузере.",
"notifications.policy.accept": "Принимать",
"notifications.policy.accept_hint": "Показывать в уведомлениях",
"notifications.policy.drop": "Игнорировать",
@@ -675,25 +695,25 @@
"notifications.policy.filter_private_mentions_title": "Нежелательные личные упоминания",
"notifications.policy.title": "Управление уведомлениями",
"notifications_permission_banner.enable": "Включить уведомления",
- "notifications_permission_banner.how_to_control": "Получайте уведомления даже когда Mastodon закрыт, включив уведомления на рабочем столе. А чтобы лишний шум не отвлекал, вы можете настроить какие уведомления вы хотите получать, нажав на кнопку {icon} выше.",
+ "notifications_permission_banner.how_to_control": "Чтобы получать уведомления, даже когда Mastodon закрыт, включите уведомления на рабочем столе. После того как вы их включите, вы сможете тонко настроить, о каких видах взаимодействий вы будете оповещены через уведомления на рабочем столе, нажав на кнопку {icon} выше.",
"notifications_permission_banner.title": "Будьте в курсе происходящего",
"onboarding.follows.back": "Назад",
"onboarding.follows.done": "Готово",
- "onboarding.follows.empty": "К сожалению, сейчас нет результатов. Вы можете попробовать использовать поиск или просмотреть страницу \"Исследования\", чтобы найти людей, за которыми можно следить, или повторить попытку позже.",
+ "onboarding.follows.empty": "К сожалению, на данный момент предложения отсутствуют. Чтобы найти, на кого подписаться, вы можете просматривать раздел «Актуальное» или воспользоваться поиском.",
"onboarding.follows.search": "Поиск",
"onboarding.follows.title": "Начните подписываться на людей",
- "onboarding.profile.discoverable": "Сделать мой профиль открытым",
- "onboarding.profile.discoverable_hint": "Если вы соглашаетесь на открытость на Mastodon, ваши сообщения могут появляться в результатах поиска и трендах, а ваш профиль может быть предложен людям со схожими с вами интересами.",
+ "onboarding.profile.discoverable": "Сделать мой профиль доступным для поиска",
+ "onboarding.profile.discoverable_hint": "Если вы согласитесь сделать профиль доступным для поиска в Mastodon, ваши посты могут быть показаны в результатах поиска и в разделе «Актуальное», а ваш профиль может быть предложен людям со схожими интересами.",
"onboarding.profile.display_name": "Отображаемое имя",
"onboarding.profile.display_name_hint": "Ваше полное имя или псевдоним…",
"onboarding.profile.note": "О себе",
- "onboarding.profile.note_hint": "Вы можете @упоминать других людей или использовать #хэштеги…",
+ "onboarding.profile.note_hint": "Вы можете @упоминать других людей или использовать #хештеги…",
"onboarding.profile.save_and_continue": "Сохранить и продолжить",
- "onboarding.profile.title": "Настройка профиля",
- "onboarding.profile.upload_avatar": "Загрузить фотографию профиля",
- "onboarding.profile.upload_header": "Загрузить заголовок профиля",
- "password_confirmation.exceeds_maxlength": "Срок подтверждения пароля превышает максимальную длину пароля",
- "password_confirmation.mismatching": "Введенные пароли не совпадают.",
+ "onboarding.profile.title": "Создайте свой профиль",
+ "onboarding.profile.upload_avatar": "Загрузить фото профиля",
+ "onboarding.profile.upload_header": "Загрузить обложку профиля",
+ "password_confirmation.exceeds_maxlength": "Подтверждение пароля превышает максимально допустимую длину пароля",
+ "password_confirmation.mismatching": "Введённые пароли не совпадают",
"picture_in_picture.restore": "Вернуть обратно",
"poll.closed": "Завершён",
"poll.refresh": "Обновить",
@@ -706,16 +726,16 @@
"poll_button.add_poll": "Добавить опрос",
"poll_button.remove_poll": "Удалить опрос",
"privacy.change": "Изменить видимость поста",
- "privacy.direct.long": "Все упомянутые в посте",
+ "privacy.direct.long": "Всем, кто был упомянут в посте",
"privacy.direct.short": "Личное упоминание",
- "privacy.private.long": "Только ваши подписчики",
+ "privacy.private.long": "Только для ваших подписчиков",
"privacy.private.short": "Для подписчиков",
- "privacy.public.long": "Кто угодно в интернете",
+ "privacy.public.long": "Для кого угодно в интернете",
"privacy.public.short": "Публичный",
- "privacy.unlisted.additional": "Похоже на «Публичный» за исключением того, что пост не появится ни в живых лентах, ни в лентах хэштегов, ни в разделе «Обзор», ни в поиске Mastodon, даже если вы разрешили поиск по своим постам в настройках профиля.",
+ "privacy.unlisted.additional": "Похоже на «Публичный» за исключением того, что пост не появится ни в живых лентах, ни в лентах хештегов, ни в разделе «Актуальное», ни в поиске Mastodon, даже если вы разрешили поиск по своим постам в настройках профиля.",
"privacy.unlisted.long": "Меньше алгоритмических фанфар",
"privacy.unlisted.short": "Тихий публичный",
- "privacy_policy.last_updated": "Последнее обновление {date}",
+ "privacy_policy.last_updated": "Последнее обновление: {date}",
"privacy_policy.title": "Политика конфиденциальности",
"recommended": "Рекомендуется",
"refresh": "Обновить",
@@ -736,55 +756,56 @@
"reply_indicator.cancel": "Отмена",
"reply_indicator.poll": "Опрос",
"report.block": "Заблокировать",
- "report.block_explanation": "Вы перестанете видеть посты этого пользователя, и он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять, что вы заблокировали его/её.",
+ "report.block_explanation": "Вы не будете видеть посты этого пользователя. Этот пользователь не сможет видеть ваши посты и не сможет подписаться на вас. Пользователь будет знать, что вы его блокируете.",
"report.categories.legal": "Нарушение закона",
"report.categories.other": "Другое",
"report.categories.spam": "Спам",
"report.categories.violation": "Содержимое нарушает одно или несколько правил сервера",
- "report.category.subtitle": "Выберите наиболее подходящее",
+ "report.category.subtitle": "Выберите наиболее подходящий вариант",
"report.category.title": "Расскажите нам, что не так с {type}",
"report.category.title_account": "этим профилем",
"report.category.title_status": "этим постом",
"report.close": "Готово",
- "report.comment.title": "Есть ли что-нибудь ещё, что нам стоит знать?",
+ "report.comment.title": "Есть ли ещё подробности, о которых нам стоит знать?",
"report.forward": "Переслать в {target}",
- "report.forward_hint": "Эта учётная запись расположена на другом сервере. Отправить туда анонимную копию вашей жалобы?",
+ "report.forward_hint": "Эта учётная запись расположена на другом сервере. Отправить туда обезличенную копию вашей жалобы?",
"report.mute": "Игнорировать",
- "report.mute_explanation": "Вы не будете видеть их посты. Они по-прежнему могут подписываться на вас и видеть ваши посты, но не будут знать, что они в списке игнорируемых.",
+ "report.mute_explanation": "Вы не будете видеть посты этого пользователя. Этот пользователь по-прежнему сможет видеть ваши посты и не будет знать, что вы его игнорируете.",
"report.next": "Далее",
"report.placeholder": "Дополнительные комментарии",
- "report.reasons.dislike": "Мне не нравится",
- "report.reasons.dislike_description": "Не хотел(а) бы видеть такой контент",
+ "report.reasons.dislike": "Мне это не нравится",
+ "report.reasons.dislike_description": "Выберите, если не хотели бы видеть подобное",
"report.reasons.legal": "Это незаконно",
- "report.reasons.legal_description": "Вы считаете, что оно нарушает закон вашей страны или сервера",
+ "report.reasons.legal_description": "Выберите, если считаете, что подобное нарушает закон вашей страны или той страны, в юрисдикции которой находится сервер",
"report.reasons.other": "Другое",
- "report.reasons.other_description": "Проблема не попадает ни под одну из категорий",
+ "report.reasons.other_description": "Проблема не соответствует ни одной категории",
"report.reasons.spam": "Это спам",
- "report.reasons.spam_description": "Вредоносные ссылки, фальшивое взаимодействие или повторяющиеся ответы",
+ "report.reasons.spam_description": "Вредоносные ссылки, фальшивая активность (накрутка) или повторяющиеся однообразные ответы",
"report.reasons.violation": "Нарушаются правила сервера",
- "report.reasons.violation_description": "Вы знаете, что подобное нарушает определенные правила",
+ "report.reasons.violation_description": "Выберите, если знаете, что подобное нарушает определённые правила",
"report.rules.subtitle": "Выберите все подходящие варианты",
"report.rules.title": "Какие правила нарушены?",
- "report.statuses.subtitle": "Выберите все подходящие варианты",
+ "report.statuses.subtitle": "Отметьте все подходящие посты",
"report.statuses.title": "Выберите посты, которые относятся к вашей жалобе.",
"report.submit": "Отправить",
"report.target": "Жалоба на {target}",
- "report.thanks.take_action": "Вот несколько опций управления тем, что вы видите в Mastodon:",
- "report.thanks.take_action_actionable": "Пока мы рассматриваем его, вот действия, которые вы можете предпринять лично против @{name}:",
+ "report.thanks.take_action": "Вот несколько средств, с помощью которых можно контролировать, что вы видите в Mastodon:",
+ "report.thanks.take_action_actionable": "Пока мы её рассматриваем, вы можете самостоятельно принять меры против @{name}:",
"report.thanks.title": "Не хотите видеть это?",
- "report.thanks.title_actionable": "Спасибо за обращение, мы его рассмотрим.",
+ "report.thanks.title_actionable": "Спасибо, что сообщили о проблеме, мы рассмотрим вашу жалобу.",
"report.unfollow": "Отписаться от @{name}",
- "report.unfollow_explanation": "Вы подписаны на этого пользователя. Чтобы не видеть его/её посты в своей домашней ленте, отпишитесь от него/неё.",
- "report_notification.attached_statuses": "{count, plural, one {{count} сообщение} few {{count} сообщения} many {{count} сообщений} other {{count} сообщений}} вложено",
+ "report.unfollow_explanation": "Вы подписаны на этого пользователя. Отпишитесь от пользователя, чтобы перестать видеть посты этого человека в домашней ленте.",
+ "report_notification.attached_statuses": "{count, plural, one {{count} пост прикреплён} few {{count} поста прикреплено} other {{count} постов прикреплено}}",
"report_notification.categories.legal": "Нарушение закона",
- "report_notification.categories.legal_sentence": "запрещённый контент",
+ "report_notification.categories.legal_sentence": "Нарушение закона",
"report_notification.categories.other": "Другое",
- "report_notification.categories.other_sentence": "другое",
+ "report_notification.categories.other_sentence": "Другое",
"report_notification.categories.spam": "Спам",
- "report_notification.categories.spam_sentence": "спам",
+ "report_notification.categories.spam_sentence": "Спам",
"report_notification.categories.violation": "Нарушение правил",
- "report_notification.categories.violation_sentence": "нарушение правила",
- "report_notification.open": "Открыть жалобу",
+ "report_notification.categories.violation_sentence": "Нарушение правил",
+ "report_notification.open": "Перейти к жалобе",
+ "search.clear": "Очистить поисковый запрос",
"search.no_recent_searches": "Недавние запросы отсутствуют",
"search.placeholder": "Поиск",
"search.quick_action.account_search": "Профили, соответствующие {x}",
@@ -844,13 +865,16 @@
"status.load_more": "Загрузить ещё",
"status.media.open": "Нажмите, чтобы открыть.",
"status.media.show": "Нажмите, чтобы показать",
- "status.media_hidden": "Вложения скрыты",
+ "status.media_hidden": "Медиа скрыты",
"status.mention": "Упомянуть @{name}",
"status.more": "Ещё",
"status.mute": "Игнорировать @{name}",
"status.mute_conversation": "Игнорировать обсуждение",
"status.open": "Открыть пост",
"status.pin": "Закрепить в профиле",
+ "status.quote_error.filtered": "Скрыто одним из ваших фильтров",
+ "status.quote_error.not_found": "Пост не может быть показан.",
+ "status.quote_error.removed": "Пост был удалён его автором.",
"status.read_more": "Читать далее",
"status.reblog": "Продвинуть",
"status.reblog_private": "Продвинуть для своей аудитории",
@@ -865,10 +889,10 @@
"status.reply": "Ответить",
"status.replyAll": "Ответить в обсуждении",
"status.report": "Пожаловаться на @{name}",
- "status.sensitive_warning": "Медиа деликатного содержания",
+ "status.sensitive_warning": "Медиа деликатного характера",
"status.share": "Поделиться",
- "status.show_less_all": "Свернуть все спойлеры в ветке",
- "status.show_more_all": "Развернуть все спойлеры в ветке",
+ "status.show_less_all": "Свернуть все предупреждения о содержании в ветке",
+ "status.show_more_all": "Развернуть все предупреждения о содержании в ветке",
"status.show_original": "Показать оригинал",
"status.title.with_attachments": "{user} опубликовал(а) {attachmentCount, plural, one {{attachmentCount} вложение} few {{attachmentCount} вложения} other {{attachmentCount} вложений}}",
"status.translate": "Перевод",
@@ -880,10 +904,13 @@
"subscribed_languages.save": "Сохранить изменения",
"subscribed_languages.target": "Изменить языки подписки для {target}",
"tabs_bar.home": "Главная",
+ "tabs_bar.menu": "Меню",
"tabs_bar.notifications": "Уведомления",
+ "tabs_bar.publish": "Создать пост",
+ "tabs_bar.search": "Поиск",
"terms_of_service.effective_as_of": "Действует с {date}",
"terms_of_service.title": "Пользовательское соглашение",
- "terms_of_service.upcoming_changes_on": "Предстоящие изменения {date}",
+ "terms_of_service.upcoming_changes_on": "Изменения вступают в силу с {date}",
"time_remaining.days": "{number, plural, one {остался # день} few {осталось # дня} many {осталось # дней} other {осталось # дней}}",
"time_remaining.hours": "{number, plural, one {остался # час} few {осталось # часа} many {осталось # часов} other {осталось # часов}}",
"time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}",
@@ -899,7 +926,7 @@
"upload_button.label": "Прикрепить фото, видео или аудио",
"upload_error.limit": "Превышено максимальное количество вложений.",
"upload_error.poll": "К опросам нельзя прикреплять файлы.",
- "upload_form.drag_and_drop.instructions": "Чтобы выбрать вложение, нажмите \"Пробел\" (Space) или \"Ввод\" (Enter). Используйте клавиши со стрелками, чтобы передвинуть вложение в любом направлении. Нажмите \"Пробел\" (Space) или \"Ввод\" (Enter) ещё раз, чтобы переместить вложение на новое место, либо нажмите кнопку \"Выйти\" (Escape), чтобы отменить перемещение.",
+ "upload_form.drag_and_drop.instructions": "Чтобы выбрать вложение, нажмите \"Пробел\" (Space) или \"Ввод\" (Enter). Используйте клавиши со стрелками, чтобы передвинуть вложение в любом направлении. Нажмите \"Пробел\" (Space) или \"Ввод\" (Enter) ещё раз, чтобы переместить вложение на новое место, либо нажмите кнопку \"Выйти\" (Escape) для отмены перемещения.",
"upload_form.drag_and_drop.on_drag_cancel": "Перемещение отменено. Вложение {item} было оставлено на прежнем месте.",
"upload_form.drag_and_drop.on_drag_end": "Вложение {item} было перемещено.",
"upload_form.drag_and_drop.on_drag_over": "Вложение {item} было передвинуто.",
@@ -909,7 +936,7 @@
"upload_progress.processing": "Обработка…",
"username.taken": "Это имя пользователя уже занято. Выберите другое",
"video.close": "Закрыть видео",
- "video.download": "Загрузить файл",
+ "video.download": "Скачать файл",
"video.exit_fullscreen": "Покинуть полноэкранный режим",
"video.expand": "Развернуть видео",
"video.fullscreen": "Полноэкранный режим",
diff --git a/app/javascript/mastodon/locales/ry.json b/app/javascript/mastodon/locales/ry.json
index e2f3c2f76c5..20cc8e8e4eb 100644
--- a/app/javascript/mastodon/locales/ry.json
+++ b/app/javascript/mastodon/locales/ry.json
@@ -119,7 +119,6 @@
"column_header.pin": "Закріпити",
"column_header.show_settings": "Указати штімованя",
"column_header.unpin": "Удкріпити",
- "column_subheading.settings": "Штімованя",
"community.column_settings.local_only": "Лем локалноє",
"community.column_settings.media_only": "Лем медіа",
"compose.language.change": "Поміняти язык",
@@ -146,7 +145,6 @@
"confirmations.logout.message": "Бизувні сьте ож хочете уйти?",
"confirmations.logout.title": "Уйти гет?",
"confirmations.mute.confirm": "Стишити",
- "confirmations.reply.confirm": "Удповісти",
"copypaste.copy_to_clipboard": "Копіровати у памнять",
"directory.recently_active": "Недавно актівні",
"disabled_account_banner.account_settings": "Штімованя акаунта",
diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json
index e9922ab1651..7daaf7f03d7 100644
--- a/app/javascript/mastodon/locales/sa.json
+++ b/app/javascript/mastodon/locales/sa.json
@@ -108,7 +108,6 @@
"column_header.pin": "कीलयतु",
"column_header.show_settings": "विन्यासाः दृश्यन्ताम्",
"column_header.unpin": "कीलनं नाशय",
- "column_subheading.settings": "विन्यासाः",
"community.column_settings.local_only": "केवलं स्थानीयम्",
"community.column_settings.media_only": "सामग्री केवलम्",
"community.column_settings.remote_only": "दर्गमः केवलम्",
@@ -133,14 +132,10 @@
"confirmations.delete_list.message": "सूचिरियं निश्चयेन स्थायित्वेन च मार्जितुमिच्छसि वा?",
"confirmations.discard_edit_media.confirm": "अपास्य",
"confirmations.discard_edit_media.message": "माध्यमवर्णनां प्रदर्शनञ्च अरक्षितानि परिवर्तनानि सन्ति, तानि अपासितुमिच्छसि वा?",
- "confirmations.edit.confirm": "सम्पादय",
- "confirmations.edit.message": "सम्पादनमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते। निश्चयेनैवं कर्तव्यम्?",
"confirmations.logout.confirm": "बहिर्गम्यताम्",
"confirmations.logout.message": "निश्चयेनैव बहिर्गमनं वाञ्छितम्?",
"confirmations.mute.confirm": "निःशब्दम्",
"confirmations.redraft.confirm": "मार्जय पुनश्च लिख्यताम्",
- "confirmations.reply.confirm": "उत्तरम्",
- "confirmations.reply.message": "प्रत्युत्तरमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते । निश्चयेनैवं कर्तव्यम् ?",
"confirmations.unfollow.confirm": "अनुसरणं नश्यताम्",
"confirmations.unfollow.message": "निश्चयेनैवाऽनुसरणं नश्यतां {name} मित्रस्य?",
"conversation.delete": "वार्तालापं मार्जय",
@@ -300,12 +295,8 @@
"navigation_bar.about": "विषये",
"navigation_bar.blocks": "निषिद्धभोक्तारः",
"navigation_bar.bookmarks": "पुटचिह्नानि",
- "navigation_bar.community_timeline": "स्थानीयसमयतालिका",
- "navigation_bar.compose": "नूतनपत्रं रचय",
"navigation_bar.direct": "गोपनीयरूपेण उल्लिखितानि",
- "navigation_bar.discover": "आविष्कुरु",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.explore": "अन्विच्छ",
"navigation_bar.filters": "मूकीकृतानि पदानि",
"navigation_bar.follow_requests": "अनुसरणानुरोधाः",
"navigation_bar.followed_tags": "अनुसरितानि प्रचलितवस्तूनि",
@@ -313,12 +304,8 @@
"navigation_bar.lists": "सूचयः",
"navigation_bar.logout": "निष्क्रमणं कुरु",
"navigation_bar.mutes": "निःशब्दा भोक्तारः",
- "navigation_bar.personal": "व्यक्तिगतम्",
- "navigation_bar.pins": "कीलितपत्राणि",
"navigation_bar.preferences": "अधिकरुचयः",
- "navigation_bar.public_timeline": "सङ्घीयसमयतालिका",
"navigation_bar.search": "अन्विच्छ",
- "navigation_bar.security": "सुरक्षा",
"not_signed_in_indicator.not_signed_in": "उपायमिमं लब्धुं सम्प्रवेश आवश्यकः।",
"notification.admin.report": "{name} {target} प्रतिवेदयञ्चकार",
"notification.admin.sign_up": "{name} संविवेश",
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
index 8e9e32ab0dc..d893bc2a0d0 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -135,7 +135,6 @@
"column_header.pin": "Apica",
"column_header.show_settings": "Ammustra is cunfiguratziones",
"column_header.unpin": "Boga dae pitzu",
- "column_subheading.settings": "Cunfiguratziones",
"community.column_settings.local_only": "Isceti locale",
"community.column_settings.media_only": "Isceti multimediale",
"community.column_settings.remote_only": "Isceti remotu",
@@ -172,9 +171,6 @@
"confirmations.delete_list.title": "Cantzellare sa lista?",
"confirmations.discard_edit_media.confirm": "Iscarta",
"confirmations.discard_edit_media.message": "Tenes modìficas non sarvadas a is descritziones o a is anteprimas de is cuntenutos, ddas boles iscartare su matessi?",
- "confirmations.edit.confirm": "Modìfica",
- "confirmations.edit.message": "Modifichende immoe as a subrascrìere su messàgiu chi ses iscriende. Seguru chi boles sighire?",
- "confirmations.edit.title": "Boles subraiscrìere sa publicatzione?",
"confirmations.logout.confirm": "Essi·nche",
"confirmations.logout.message": "Seguru chi boles essire?",
"confirmations.logout.title": "Boles serrare sa sessione?",
@@ -182,9 +178,6 @@
"confirmations.redraft.confirm": "Cantzella e torra a fàghere",
"confirmations.redraft.message": "Seguru chi boles cantzellare e torrare a fàghere custa publicatzione? As a pèrdere is preferidos e is cumpartziduras, e is rispostas a su messàgiu originale ant a abarrare òrfanas.",
"confirmations.redraft.title": "Boles cantzellare e torrare a iscrìere sa publicatzione?",
- "confirmations.reply.confirm": "Risponde",
- "confirmations.reply.message": "Rispondende immoe as a subrascrìere su messàgiu chi ses iscriende. Seguru chi boles sighire?",
- "confirmations.reply.title": "Boles subraiscrìere sa publicatzione?",
"confirmations.unfollow.confirm": "Non sigas prus",
"confirmations.unfollow.message": "Seguru chi non boles sighire prus a {name}?",
"confirmations.unfollow.title": "Boles tzessare de sighire s'utente?",
@@ -400,12 +393,8 @@
"navigation_bar.advanced_interface": "Aberi s'interfache web avantzada",
"navigation_bar.blocks": "Persones blocadas",
"navigation_bar.bookmarks": "Sinnalibros",
- "navigation_bar.community_timeline": "Lìnia de tempus locale",
- "navigation_bar.compose": "Cumpone una publicatzione noa",
"navigation_bar.direct": "Mentziones privadas",
- "navigation_bar.discover": "Iscoberi",
"navigation_bar.domain_blocks": "Domìnios blocados",
- "navigation_bar.explore": "Esplora",
"navigation_bar.favourites": "Preferidos",
"navigation_bar.filters": "Faeddos a sa muda",
"navigation_bar.follow_requests": "Rechestas de sighidura",
@@ -416,12 +405,8 @@
"navigation_bar.moderation": "Moderatzione",
"navigation_bar.mutes": "Persones a sa muda",
"navigation_bar.opened_in_classic_interface": "Publicatziones, contos e àteras pàginas ispetzìficas sunt abertas in manera predefinida in s'interfache web clàssica.",
- "navigation_bar.personal": "Informatziones personales",
- "navigation_bar.pins": "Publicatziones apicadas",
"navigation_bar.preferences": "Preferèntzias",
- "navigation_bar.public_timeline": "Lìnia de tempus federada",
"navigation_bar.search": "Chirca",
- "navigation_bar.security": "Seguresa",
"not_signed_in_indicator.not_signed_in": "Ti depes identificare pro atzèdere a custa resursa.",
"notification.admin.report": "{name} at sinnaladu a {target}",
"notification.admin.report_account": "{name} at sinnaladu {count, plural, one {una publicatzione} other {# publicatziones}} dae {target} pro {category}",
diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json
index ab5ed96137c..12647ef8188 100644
--- a/app/javascript/mastodon/locales/sco.json
+++ b/app/javascript/mastodon/locales/sco.json
@@ -109,7 +109,6 @@
"column_header.pin": "Preen",
"column_header.show_settings": "Shaw settins",
"column_header.unpin": "Unpreen",
- "column_subheading.settings": "Settins",
"community.column_settings.local_only": "Local ainly",
"community.column_settings.media_only": "Media ainly",
"community.column_settings.remote_only": "Remote ainly",
@@ -137,13 +136,10 @@
"confirmations.delete_list.message": "Ye shair thit ye'r wantin fir tae delete this post fir ever?",
"confirmations.discard_edit_media.confirm": "Fling awa",
"confirmations.discard_edit_media.message": "Ye'v chynges tae the media description or preview thit ye'v no saved, fling them awa onie weys?",
- "confirmations.edit.message": "Editin the noo will owerwrit the message yer componin. Are ye suir yer wantin tae proceed?",
"confirmations.logout.confirm": "Log oot",
"confirmations.logout.message": "Ye shair thit ye'r wantin tae log oot?",
"confirmations.mute.confirm": "Wheesht",
"confirmations.redraft.confirm": "Delete an stert anew",
- "confirmations.reply.confirm": "Reply",
- "confirmations.reply.message": "Replyin noo'll owerwrite the message ye'r screivin the noo. Ur ye sure thit ye'r wantin tae dae that?",
"confirmations.unfollow.confirm": "Unfollae",
"confirmations.unfollow.message": "Ye shuir thit ye'r wantin tae unfollae {name}?",
"conversation.delete": "Delete the conversation",
@@ -294,23 +290,15 @@
"navigation_bar.about": "Aboot",
"navigation_bar.blocks": "Dingied uisers",
"navigation_bar.bookmarks": "Buikmairks",
- "navigation_bar.community_timeline": "Local timeline",
- "navigation_bar.compose": "Scrieve new post",
- "navigation_bar.discover": "Fin",
"navigation_bar.domain_blocks": "Dingied domains",
- "navigation_bar.explore": "Splore",
"navigation_bar.filters": "Wheesht wirds",
"navigation_bar.follow_requests": "Follae requests",
"navigation_bar.follows_and_followers": "Follaes an follaers",
"navigation_bar.lists": "Leets",
"navigation_bar.logout": "Logoot",
"navigation_bar.mutes": "Wheesht uisers",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Preenit posts",
"navigation_bar.preferences": "Preferences",
- "navigation_bar.public_timeline": "Federatit timeline",
"navigation_bar.search": "Seirch",
- "navigation_bar.security": "Security",
"not_signed_in_indicator.not_signed_in": "Ye'r needin tae sign in fir tae access this resoorce.",
"notification.admin.report": "{name} reportit {target}",
"notification.admin.sign_up": "{name} signed up",
diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json
index 6a3526834c6..9f9bd1590fe 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -181,7 +181,6 @@
"column_header.show_settings": "සැකසුම් පෙන්වන්න",
"column_header.unpin": "ගළවන්න",
"column_search.cancel": "අවලංගු කරන්න",
- "column_subheading.settings": "සැකසුම්",
"community.column_settings.local_only": "ස්ථානීයව පමණයි",
"community.column_settings.media_only": "මාධ්ය පමණයි",
"community.column_settings.remote_only": "දුරස්ථව පමණයි",
@@ -219,9 +218,6 @@
"confirmations.delete_list.title": "ලැයිස්තුව මකන්නද?",
"confirmations.discard_edit_media.confirm": "ඉවත ලන්න",
"confirmations.discard_edit_media.message": "ඔබට මාධ්ය විස්තරයට හෝ පෙරදසුනට නොසුරකින ලද වෙනස්කම් තිබේ, කෙසේ වෙතත් ඒවා ඉවත දමන්නද?",
- "confirmations.edit.confirm": "සංස්කරණය",
- "confirmations.edit.message": "දැන් සංස්කරණය කිරීමෙන් ඔබ දැනට රචනා කරමින් සිටින පණිවිඩය උඩින් ලියනු ඇත. ඔබට ඉදිරියට යාමට අවශ්ය බව විශ්වාසද?",
- "confirmations.edit.title": "පළ කිරීම උඩින් ලියන්නද?",
"confirmations.follow_to_list.confirm": "අනුගමනය කර ලැයිස්තුවට එක් කරන්න",
"confirmations.follow_to_list.message": "ඒවා ලැයිස්තුවකට එකතු කිරීමට ඔබ {name} අනුගමනය කළ යුතුය.",
"confirmations.follow_to_list.title": "පරිශීලකයා අනුගමනය කරන්නද?",
@@ -239,9 +235,6 @@
"confirmations.remove_from_followers.confirm": "අනුගාමිකයා ඉවත් කරන්න",
"confirmations.remove_from_followers.message": "{name} ඔබව අනුගමනය කිරීම නවත්වනු ඇත. ඔබට ඉදිරියට යාමට අවශ්ය බව විශ්වාසද?",
"confirmations.remove_from_followers.title": "අනුගාමිකයා ඉවත් කරන්නද?",
- "confirmations.reply.confirm": "පිළිතුර",
- "confirmations.reply.message": "දැන් පිළිතුරු දීමෙන් ඔබ දැනට රචනා කරමින් සිටින පණිවිඩය උඩින් ලියනු ඇත. ඔබට ඉදිරියට යාමට අවශ්ය බව විශ්වාසද?",
- "confirmations.reply.title": "පළ කිරීම උඩින් ලියන්නද?",
"confirmations.unfollow.confirm": "අනුගමනය නොකරන්න",
"confirmations.unfollow.message": "ඔබට {name}අනුගමනය කිරීම නවත්වන්න අවශ්ය බව ඔබට විශ්වාසද?",
"confirmations.unfollow.title": "පරිශීලකයා අනුගමනය නොකරන්නද?",
@@ -541,12 +534,8 @@
"navigation_bar.advanced_interface": "උසස් වෙබ් අතුරු මුහුණතකින් විවෘත කරන්න",
"navigation_bar.blocks": "අවහිර කළ අය",
"navigation_bar.bookmarks": "පොත්යොමු",
- "navigation_bar.community_timeline": "ස්ථානීය කාලරේඛාව",
- "navigation_bar.compose": "නව ලිපියක් ලියන්න",
"navigation_bar.direct": "පෞද්ගලික සැඳහුම්",
- "navigation_bar.discover": "සොයා ගන්න",
"navigation_bar.domain_blocks": "අවහිර කළ වසම්",
- "navigation_bar.explore": "ගවේශනය",
"navigation_bar.favourites": "ප්රියතමයන්",
"navigation_bar.filters": "නිහඬ කළ වචන",
"navigation_bar.follow_requests": "අනුගමන ඉල්ලීම්",
@@ -557,12 +546,8 @@
"navigation_bar.moderation": "මධ්යස්ථභාවය",
"navigation_bar.mutes": "නිහඬ කළ අය",
"navigation_bar.opened_in_classic_interface": "සම්භාව්ය වෙබ් අතුරුමුහුණත තුළ පළ කිරීම්, ගිණුම් සහ අනෙකුත් නිශ්චිත පිටු පෙරනිමියෙන් විවෘත වේ.",
- "navigation_bar.personal": "පුද්ගලික",
- "navigation_bar.pins": "ඇමිණූ ලිපි",
"navigation_bar.preferences": "අභිප්රේත",
- "navigation_bar.public_timeline": "ඒකාබද්ධ කාලරේඛාව",
"navigation_bar.search": "සොයන්න",
- "navigation_bar.security": "ආරක්ෂාව",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} වාර්තා කර ඇත {target}",
"notification.admin.report_statuses": "{category}සඳහා {name} {target} වාර්තා කරන ලදී",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index e94326f3dce..63fd556f79b 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -27,6 +27,7 @@
"account.edit_profile": "Upraviť profil",
"account.enable_notifications": "Zapnúť upozornenia na príspevky od @{name}",
"account.endorse": "Zobraziť na vlastnom profile",
+ "account.featured": "Zviditeľnené",
"account.featured.accounts": "Profily",
"account.featured.hashtags": "Hashtagy",
"account.featured_tags.last_status_at": "Posledný príspevok dňa {date}",
@@ -161,7 +162,6 @@
"column_header.show_settings": "Zobraziť nastavenia",
"column_header.unpin": "Odopnúť",
"column_search.cancel": "Zruš",
- "column_subheading.settings": "Nastavenia",
"community.column_settings.local_only": "Iba miestne",
"community.column_settings.media_only": "Iba médiá",
"community.column_settings.remote_only": "Iba vzdialené",
@@ -199,9 +199,6 @@
"confirmations.delete_list.title": "Vymazať zoznam?",
"confirmations.discard_edit_media.confirm": "Zahodiť",
"confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?",
- "confirmations.edit.confirm": "Upraviť",
- "confirmations.edit.message": "Úpravou prepíšete príspevok, ktorý máte rozpísaný. Určite chcete pokračovať?",
- "confirmations.edit.title": "Prepísať príspevok?",
"confirmations.follow_to_list.confirm": "Nasleduj a pridaj do zoznamu",
"confirmations.follow_to_list.message": "Musíš nasledovať {name} aby si ho/ju mohol/la pridať do zoznamu.",
"confirmations.follow_to_list.title": "Nasleduj užívateľa?",
@@ -214,9 +211,6 @@
"confirmations.redraft.message": "Určite chcete tento príspevok vymazať a prepísať? Prídete o jeho zdieľania a ohviezdičkovania a odpovede na pôvodný príspevok budú odlúčené.",
"confirmations.redraft.title": "Vymazať a prepísať príspevok?",
"confirmations.remove_from_followers.confirm": "Odstrániť nasledovateľa",
- "confirmations.reply.confirm": "Odpovedať",
- "confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?",
- "confirmations.reply.title": "Prepísať príspevok?",
"confirmations.unfollow.confirm": "Prestať sledovať",
"confirmations.unfollow.message": "Určite chcete prestať sledovať {name}?",
"confirmations.unfollow.title": "Prestať sledovať užívateľa?",
@@ -493,12 +487,8 @@
"navigation_bar.advanced_interface": "Otvoriť v pokročilom webovom rozhraní",
"navigation_bar.blocks": "Blokované účty",
"navigation_bar.bookmarks": "Záložky",
- "navigation_bar.community_timeline": "Miestna časová os",
- "navigation_bar.compose": "Vytvoriť nový príspevok",
"navigation_bar.direct": "Súkromné označenia",
- "navigation_bar.discover": "Objavovanie",
"navigation_bar.domain_blocks": "Blokované domény",
- "navigation_bar.explore": "Objavovať",
"navigation_bar.favourites": "Ohviezdičkované",
"navigation_bar.filters": "Filtrované slová",
"navigation_bar.follow_requests": "Žiadosti o sledovanie",
@@ -509,12 +499,8 @@
"navigation_bar.moderation": "Moderovanie",
"navigation_bar.mutes": "Stíšené účty",
"navigation_bar.opened_in_classic_interface": "Príspevky, účty a iné špeciálne stránky sú predvolene otvárané v klasickom webovom rozhraní.",
- "navigation_bar.personal": "Osobné",
- "navigation_bar.pins": "Pripnuté príspevky",
"navigation_bar.preferences": "Nastavenia",
- "navigation_bar.public_timeline": "Federovaná časová os",
"navigation_bar.search": "Hľadať",
- "navigation_bar.security": "Zabezpečenie",
"not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, prihláste sa.",
"notification.admin.report": "Účet {name} nahlásil {target}",
"notification.admin.report_statuses": "{name} nahlásil/a {target} za {category}",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index 2cfff14316a..7213af36662 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -167,7 +167,6 @@
"column_header.show_settings": "Pokaži nastavitve",
"column_header.unpin": "Odpni",
"column_search.cancel": "Prekliči",
- "column_subheading.settings": "Nastavitve",
"community.column_settings.local_only": "Samo krajevno",
"community.column_settings.media_only": "Samo predstavnosti",
"community.column_settings.remote_only": "Samo oddaljeno",
@@ -205,9 +204,6 @@
"confirmations.delete_list.title": "Želite izbrisati seznam?",
"confirmations.discard_edit_media.confirm": "Opusti",
"confirmations.discard_edit_media.message": "Spremenjenega opisa predstavnosti ali predogleda niste shranili. Želite spremembe kljub temu opustiti?",
- "confirmations.edit.confirm": "Uredi",
- "confirmations.edit.message": "Urejanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?",
- "confirmations.edit.title": "Želite prepisati objavo?",
"confirmations.follow_to_list.confirm": "Sledi in dodaj na seznam",
"confirmations.follow_to_list.message": "Osebi {name} morate slediti, preden jo lahko dodate na seznam.",
"confirmations.follow_to_list.title": "Naj sledim uporabniku?",
@@ -222,9 +218,6 @@
"confirmations.redraft.confirm": "Izbriši in preoblikuj",
"confirmations.redraft.message": "Ali ste prepričani, da želite izbrisati to objavo in jo preoblikovati? Izkazi priljubljenosti in izpostavitve bodo izgubljeni, odgovori na izvirno objavo pa bodo osiroteli.",
"confirmations.redraft.title": "Želite izbrisati in preoblikovati objavo?",
- "confirmations.reply.confirm": "Odgovori",
- "confirmations.reply.message": "Odgovarjanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?",
- "confirmations.reply.title": "Želite prepisati objavo?",
"confirmations.unfollow.confirm": "Ne sledi več",
"confirmations.unfollow.message": "Ali ste prepričani, da ne želite več slediti {name}?",
"confirmations.unfollow.title": "Želite nehati spremljati uporabnika?",
@@ -518,12 +511,8 @@
"navigation_bar.advanced_interface": "Odpri v naprednem spletnem vmesniku",
"navigation_bar.blocks": "Blokirani uporabniki",
"navigation_bar.bookmarks": "Zaznamki",
- "navigation_bar.community_timeline": "Krajevna časovnica",
- "navigation_bar.compose": "Sestavi novo objavo",
"navigation_bar.direct": "Zasebne omembe",
- "navigation_bar.discover": "Odkrijte",
"navigation_bar.domain_blocks": "Blokirane domene",
- "navigation_bar.explore": "Razišči",
"navigation_bar.favourites": "Priljubljeni",
"navigation_bar.filters": "Utišane besede",
"navigation_bar.follow_requests": "Prošnje za sledenje",
@@ -534,12 +523,8 @@
"navigation_bar.moderation": "Moderiranje",
"navigation_bar.mutes": "Utišani uporabniki",
"navigation_bar.opened_in_classic_interface": "Objave, računi in druge specifične strani se privzeto odprejo v klasičnem spletnem vmesniku.",
- "navigation_bar.personal": "Osebno",
- "navigation_bar.pins": "Pripete objave",
"navigation_bar.preferences": "Nastavitve",
- "navigation_bar.public_timeline": "Združena časovnica",
"navigation_bar.search": "Iskanje",
- "navigation_bar.security": "Varnost",
"not_signed_in_indicator.not_signed_in": "Za dostop do tega vira se morate prijaviti.",
"notification.admin.report": "{name} je prijavil/a {target}",
"notification.admin.report_account": "{name} je prijavil/a {count, plural, one {# objavo} two {# objavi} few {# objave} other {# objav}} od {target} zaradi {category}",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 6afe42d1538..b5a7cb0e886 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -179,7 +179,6 @@
"column_header.show_settings": "Shfaq rregullime",
"column_header.unpin": "Shfiksoje",
"column_search.cancel": "Anuloje",
- "column_subheading.settings": "Rregullime",
"community.column_settings.local_only": "Vetëm vendore",
"community.column_settings.media_only": "Vetëm Media",
"community.column_settings.remote_only": "Vetëm të largëta",
@@ -215,11 +214,15 @@
"confirmations.delete_list.confirm": "Fshije",
"confirmations.delete_list.message": "Jeni i sigurt se doni të fshihet përgjithmonë kjo listë?",
"confirmations.delete_list.title": "Të fshihet lista?",
+ "confirmations.discard_draft.confirm": "Hidhe tej dhe vazhdo",
+ "confirmations.discard_draft.edit.cancel": "Rikthejuni përpunimit",
+ "confirmations.discard_draft.edit.message": "Vazhdimi do të hedhë tej çfarëdo ndryshimesh që keni bërë te postimi që po përpunoni aktualisht.",
+ "confirmations.discard_draft.edit.title": "Të hidhen tej ndryshimet te postimi juaj?",
+ "confirmations.discard_draft.post.cancel": "Rikthejuni skicës",
+ "confirmations.discard_draft.post.message": "Vazhdimi do të hedhë tej postimin që po hartoni aktualisht.",
+ "confirmations.discard_draft.post.title": "Të hidhet tej skica e postimit tuaj?",
"confirmations.discard_edit_media.confirm": "Hidhe tej",
"confirmations.discard_edit_media.message": "Keni ndryshime të paruajtura te përshkrimi ose paraparja e medias, të hidhen tej, sido qoftë?",
- "confirmations.edit.confirm": "Përpunojeni",
- "confirmations.edit.message": "Përpunimi tani do të sjellë mbishkrim të mesazhit që po hartoni aktualisht. Jeni i sigurt se doni të vazhdohet?",
- "confirmations.edit.title": "Të mbishkruhet postimi?",
"confirmations.follow_to_list.confirm": "Ndiqe dhe shtoje te listë",
"confirmations.follow_to_list.message": "Lypset të jeni duke e ndjekur {name}, që të shtohte te një listë.",
"confirmations.follow_to_list.title": "Të ndiqet përdoruesi?",
@@ -237,9 +240,6 @@
"confirmations.remove_from_followers.confirm": "Hiqe ndjekësin",
"confirmations.remove_from_followers.message": "{name} do të reshtë së ndjekuri ju. Jeni i sigurt se doni të vazhdohet?",
"confirmations.remove_from_followers.title": "Të hiqet ndjekësi?",
- "confirmations.reply.confirm": "Përgjigjuni",
- "confirmations.reply.message": "Po të përgjigjeni tani, mesazhi që po hartoni, do të mbishkruhet. Jeni i sigurt se doni të vazhdohet më tej?",
- "confirmations.reply.title": "Të mbishkruhet postimi?",
"confirmations.unfollow.confirm": "Resht së ndjekuri",
"confirmations.unfollow.message": "Jeni i sigurt se doni të mos ndiqet më {name}?",
"confirmations.unfollow.title": "Të ndalet ndjekja e përdoruesit?",
@@ -550,12 +550,8 @@
"navigation_bar.automated_deletion": "Fshirje e automatizuar postimesh",
"navigation_bar.blocks": "Përdorues të bllokuar",
"navigation_bar.bookmarks": "Faqerojtës",
- "navigation_bar.community_timeline": "Rrjedhë kohore vendore",
- "navigation_bar.compose": "Hartoni mesazh të ri",
"navigation_bar.direct": "Përmendje private",
- "navigation_bar.discover": "Zbuloni",
"navigation_bar.domain_blocks": "Përkatësi të bllokuara",
- "navigation_bar.explore": "Eksploroni",
"navigation_bar.favourites": "Të parapëlqyer",
"navigation_bar.filters": "Fjalë të heshtuara",
"navigation_bar.follow_requests": "Kërkesa për ndjekje",
@@ -568,14 +564,13 @@
"navigation_bar.more": "Më tepër",
"navigation_bar.mutes": "Përdorues të heshtuar",
"navigation_bar.opened_in_classic_interface": "Postime, llogari dhe të tjera faqe specifike, si parazgjedhje, hapen në ndërfaqe klasike web.",
- "navigation_bar.personal": "Personale",
- "navigation_bar.pins": "Mesazhe të fiksuar",
"navigation_bar.preferences": "Parapëlqime",
"navigation_bar.privacy_and_reach": "Privatësi dhe shtrirje",
- "navigation_bar.public_timeline": "Rrjedhë kohore të federuarash",
"navigation_bar.search": "Kërkoni",
- "navigation_bar.security": "Siguri",
+ "navigation_bar.search_trends": "Kërkim / Në modë",
+ "navigation_panel.collapse_followed_tags": "Tkurre menunë e hashtag-ëve të ndjekur",
"navigation_panel.collapse_lists": "Palose menunë listë",
+ "navigation_panel.expand_followed_tags": "Zgjeroje menunë e hashtag-ëve të ndjekur",
"navigation_panel.expand_lists": "Hape menunë listë",
"not_signed_in_indicator.not_signed_in": "Që të përdorni këtë burim, lypset të bëni hyrjen.",
"notification.admin.report": "{name} raportoi {target}",
@@ -803,6 +798,7 @@
"report_notification.categories.violation": "Cenim rregullash",
"report_notification.categories.violation_sentence": "cenim rregullash",
"report_notification.open": "Hape raportimin",
+ "search.clear": "Spastroje kërkimin",
"search.no_recent_searches": "Pa kërkime së fundi",
"search.placeholder": "Kërkoni",
"search.quick_action.account_search": "Profile me përputhje me {x}",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 17dbe6f18b9..c8fa67183e4 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -132,7 +132,6 @@
"column_header.pin": "Zakači",
"column_header.show_settings": "Prikaži podešavanja",
"column_header.unpin": "Otkači",
- "column_subheading.settings": "Podešavanja",
"community.column_settings.local_only": "Samo lokalno",
"community.column_settings.media_only": "Samo multimedija",
"community.column_settings.remote_only": "Samo udaljeno",
@@ -167,15 +166,11 @@
"confirmations.delete_list.message": "Da li ste sigurni da želite da trajno izbrišete ovu listu?",
"confirmations.discard_edit_media.confirm": "Odbaci",
"confirmations.discard_edit_media.message": "Imate nesačuvane promene u opisu ili pregledu medija, da li ipak hoćete da ih odbacite?",
- "confirmations.edit.confirm": "Uredi",
- "confirmations.edit.message": "Uređivanjem će se obrisati poruka koju trenutno sastavljate. Da li ste sigurni da želite da nastavite?",
"confirmations.logout.confirm": "Odjava",
"confirmations.logout.message": "Da li ste sigurni da želite da se odjavite?",
"confirmations.mute.confirm": "Ignoriši",
"confirmations.redraft.confirm": "Izbriši i prepravi",
"confirmations.redraft.message": "Da li ste sigurni da želite da izbrišete ovu objavu i da je prepravite? Podržavanja i oznake kao omiljenih će biti izgubljeni, a odgovori će ostati bez originalne objave.",
- "confirmations.reply.confirm": "Odgovori",
- "confirmations.reply.message": "Odgovaranjem ćete obrisati poruku koju sastavljate. Da li ste sigurni da želite da nastavite?",
"confirmations.unfollow.confirm": "Otprati",
"confirmations.unfollow.message": "Da li ste sigurni da želite da otpratite korisnika {name}?",
"conversation.delete": "Izbriši razgovor",
@@ -403,12 +398,8 @@
"navigation_bar.advanced_interface": "Otvori u naprednom veb okruženju",
"navigation_bar.blocks": "Blokirani korisnici",
"navigation_bar.bookmarks": "Obeleživači",
- "navigation_bar.community_timeline": "Lokalna vremenska linija",
- "navigation_bar.compose": "Sastavi novu objavu",
"navigation_bar.direct": "Privatna pominjanja",
- "navigation_bar.discover": "Otkrij",
"navigation_bar.domain_blocks": "Blokirani domeni",
- "navigation_bar.explore": "Istraži",
"navigation_bar.favourites": "Omiljeno",
"navigation_bar.filters": "Ignorisane reči",
"navigation_bar.follow_requests": "Zahtevi za praćenje",
@@ -418,12 +409,8 @@
"navigation_bar.logout": "Odjava",
"navigation_bar.mutes": "Ignorisani korisnici",
"navigation_bar.opened_in_classic_interface": "Objave, nalozi i druge specifične stranice se podrazumevano otvaraju u klasičnom veb okruženju.",
- "navigation_bar.personal": "Lično",
- "navigation_bar.pins": "Zakačene objave",
"navigation_bar.preferences": "Podešavanja",
- "navigation_bar.public_timeline": "Združena vremenska linija",
"navigation_bar.search": "Pretraga",
- "navigation_bar.security": "Bezbednost",
"not_signed_in_indicator.not_signed_in": "Morate da se prijavite da biste pristupili ovom resursu.",
"notification.admin.report": "{name} je prijavio/-la {target}",
"notification.admin.sign_up": "{name} se registrovao/-la",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 361c4bbc7c4..49261ffd3da 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -132,7 +132,6 @@
"column_header.pin": "Закачи",
"column_header.show_settings": "Прикажи подешавања",
"column_header.unpin": "Откачи",
- "column_subheading.settings": "Подешавања",
"community.column_settings.local_only": "Само локално",
"community.column_settings.media_only": "Само мултимедија",
"community.column_settings.remote_only": "Само удаљено",
@@ -167,15 +166,11 @@
"confirmations.delete_list.message": "Да ли сте сигурни да желите да трајно избришете ову листу?",
"confirmations.discard_edit_media.confirm": "Одбаци",
"confirmations.discard_edit_media.message": "Имате несачуване промене у опису или прегледу медија, да ли ипак хоћете да их одбаците?",
- "confirmations.edit.confirm": "Уреди",
- "confirmations.edit.message": "Уређивањем ће се обрисати порука коју тренутно састављате. Да ли сте сигурни да желите да наставите?",
"confirmations.logout.confirm": "Одјава",
"confirmations.logout.message": "Да ли сте сигурни да желите да се одјавите?",
"confirmations.mute.confirm": "Игнориши",
"confirmations.redraft.confirm": "Избриши и преправи",
"confirmations.redraft.message": "Да ли сте сигурни да желите да избришете ову објаву и да је преправите? Подржавања и ознаке као омиљених ће бити изгубљени, а одговори ће остати без оригиналне објаве.",
- "confirmations.reply.confirm": "Одговори",
- "confirmations.reply.message": "Одговарањем ћете обрисати поруку коју састављате. Да ли сте сигурни да желите да наставите?",
"confirmations.unfollow.confirm": "Отпрати",
"confirmations.unfollow.message": "Да ли сте сигурни да желите да отпратите корисника {name}?",
"conversation.delete": "Избриши разговор",
@@ -403,12 +398,8 @@
"navigation_bar.advanced_interface": "Отвори у напредном веб окружењу",
"navigation_bar.blocks": "Блокирани корисници",
"navigation_bar.bookmarks": "Обележивачи",
- "navigation_bar.community_timeline": "Локална временска линија",
- "navigation_bar.compose": "Састави нову објаву",
"navigation_bar.direct": "Приватна помињања",
- "navigation_bar.discover": "Откриј",
"navigation_bar.domain_blocks": "Блокирани домени",
- "navigation_bar.explore": "Истражи",
"navigation_bar.favourites": "Омиљено",
"navigation_bar.filters": "Игнорисане речи",
"navigation_bar.follow_requests": "Захтеви за праћење",
@@ -418,12 +409,8 @@
"navigation_bar.logout": "Одјава",
"navigation_bar.mutes": "Игнорисани корисници",
"navigation_bar.opened_in_classic_interface": "Објаве, налози и друге специфичне странице се подразумевано отварају у класичном веб окружењу.",
- "navigation_bar.personal": "Лично",
- "navigation_bar.pins": "Закачене објаве",
"navigation_bar.preferences": "Подешавања",
- "navigation_bar.public_timeline": "Здружена временска линија",
"navigation_bar.search": "Претрага",
- "navigation_bar.security": "Безбедност",
"not_signed_in_indicator.not_signed_in": "Морате да се пријавите да бисте приступили овом ресурсу.",
"notification.admin.report": "{name} је пријавио/-ла {target}",
"notification.admin.sign_up": "{name} се регистровао/-ла",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index cf2a47c1866..9eee2e750f9 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Visa inställningar",
"column_header.unpin": "Ångra fäst",
"column_search.cancel": "Avbryt",
- "column_subheading.settings": "Inställningar",
"community.column_settings.local_only": "Endast lokalt",
"community.column_settings.media_only": "Endast media",
"community.column_settings.remote_only": "Endast fjärr",
@@ -220,11 +219,9 @@
"confirmations.delete_list.confirm": "Radera",
"confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?",
"confirmations.delete_list.title": "Ta bort listan?",
+ "confirmations.discard_draft.confirm": "Släng bort och fortsätt",
"confirmations.discard_edit_media.confirm": "Kasta",
"confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?",
- "confirmations.edit.confirm": "Redigera",
- "confirmations.edit.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?",
- "confirmations.edit.title": "Skriva över inlägg?",
"confirmations.follow_to_list.confirm": "Följ och lägg till i listan",
"confirmations.follow_to_list.message": "Du måste följa {name} för att lägga till dem i en lista.",
"confirmations.follow_to_list.title": "Följ användare?",
@@ -242,9 +239,6 @@
"confirmations.remove_from_followers.confirm": "Ta bort följare",
"confirmations.remove_from_followers.message": "{name} kommer att sluta följa dig. Är du säker på att du vill fortsätta?",
"confirmations.remove_from_followers.title": "Ta bort följare?",
- "confirmations.reply.confirm": "Svara",
- "confirmations.reply.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?",
- "confirmations.reply.title": "Skriva över inlägget?",
"confirmations.unfollow.confirm": "Avfölj",
"confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?",
"confirmations.unfollow.title": "Avfölj användare?",
@@ -555,12 +549,8 @@
"navigation_bar.automated_deletion": "Automatisk radering av inlägg",
"navigation_bar.blocks": "Blockerade användare",
"navigation_bar.bookmarks": "Bokmärken",
- "navigation_bar.community_timeline": "Lokal tidslinje",
- "navigation_bar.compose": "Författa nytt inlägg",
"navigation_bar.direct": "Privata omnämnande",
- "navigation_bar.discover": "Upptäck",
"navigation_bar.domain_blocks": "Dolda domäner",
- "navigation_bar.explore": "Utforska",
"navigation_bar.favourites": "Favoriter",
"navigation_bar.filters": "Tystade ord",
"navigation_bar.follow_requests": "Följförfrågningar",
@@ -573,14 +563,10 @@
"navigation_bar.more": "Fler",
"navigation_bar.mutes": "Tystade användare",
"navigation_bar.opened_in_classic_interface": "Inlägg, konton och andra specifika sidor öppnas som standard i det klassiska webbgränssnittet.",
- "navigation_bar.personal": "Personligt",
- "navigation_bar.pins": "Fästa inlägg",
"navigation_bar.preferences": "Inställningar",
"navigation_bar.privacy_and_reach": "Integritet och räckvidd",
- "navigation_bar.public_timeline": "Federerad tidslinje",
"navigation_bar.search": "Sök",
"navigation_bar.search_trends": "Sök / Trendar",
- "navigation_bar.security": "Säkerhet",
"navigation_panel.collapse_followed_tags": "Minska menyn för följda fyrkantstaggar",
"navigation_panel.collapse_lists": "Komprimera listmenyn",
"navigation_panel.expand_followed_tags": "Expandera menyn för följda fyrkantstaggar",
diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json
index 963bfe302de..55913be9246 100644
--- a/app/javascript/mastodon/locales/szl.json
+++ b/app/javascript/mastodon/locales/szl.json
@@ -65,9 +65,7 @@
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.pins": "Pinned toots",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.reblog": "{name} boosted your status",
"notifications.column_settings.status": "New toots:",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 752981b3dff..da41a290f9c 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -97,7 +97,6 @@
"column_header.pin": "பொருத்து",
"column_header.show_settings": "அமைப்புகளைக் காட்டு",
"column_header.unpin": "கழட்டு",
- "column_subheading.settings": "அமைப்புகள்",
"community.column_settings.local_only": "அருகிலிருந்து மட்டுமே",
"community.column_settings.media_only": "படங்கள் மட்டுமே",
"community.column_settings.remote_only": "தொலைவிலிருந்து மட்டுமே",
@@ -129,8 +128,6 @@
"confirmations.logout.message": "நிச்சயமாக நீங்கள் வெளியேற விரும்புகிறீர்களா?",
"confirmations.mute.confirm": "அமைதியாக்கு",
"confirmations.redraft.confirm": "பதிவை நீக்கி மறுவரைவு செய்",
- "confirmations.reply.confirm": "மறுமொழி",
- "confirmations.reply.message": "ஏற்கனவே ஒரு பதிவு எழுதப்பட்டுக்கொண்டிருக்கிறது. இப்பொழுது பதில் எழுத முனைந்தால் அது அழிக்கப்படும். பரவாயில்லையா?",
"confirmations.unfollow.confirm": "விலகு",
"confirmations.unfollow.message": "{name}-ஐப் பின்தொடர்வதை நிச்சயமாக நீங்கள் நிறுத்த விரும்புகிறீர்களா?",
"conversation.delete": "உரையாடலை அழி",
@@ -240,9 +237,6 @@
"load_pending": "{count, plural,one {# புதியது}other {# புதியவை}}",
"navigation_bar.blocks": "தடுக்கப்பட்ட பயனர்கள்",
"navigation_bar.bookmarks": "அடையாளக்குறிகள்",
- "navigation_bar.community_timeline": "உள்ளூர் காலக்கெடு",
- "navigation_bar.compose": "புதியவற்றை எழுதுக toot",
- "navigation_bar.discover": "கண்டு பிடி",
"navigation_bar.domain_blocks": "மறைந்த களங்கள்",
"navigation_bar.filters": "முடக்கப்பட்ட வார்த்தைகள்",
"navigation_bar.follow_requests": "கோரிக்கைகளை பின்பற்றவும்",
@@ -250,11 +244,7 @@
"navigation_bar.lists": "குதிரை வீர்ர்கள்",
"navigation_bar.logout": "விடு பதிகை",
"navigation_bar.mutes": "முடக்கப்பட்ட பயனர்கள்",
- "navigation_bar.personal": "தனிப்பட்டவை",
- "navigation_bar.pins": "பொருத்தப்பட்டன toots",
"navigation_bar.preferences": "விருப்பங்கள்",
- "navigation_bar.public_timeline": "கூட்டாட்சி காலக்கெடு",
- "navigation_bar.security": "பத்திரம்",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} உங்களைப் பின்தொடர்கிறார்",
"notification.follow_request": "{name} உங்களைப் பின்தொடரக் கோருகிறார்",
diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json
index e8c4f26401f..37994550508 100644
--- a/app/javascript/mastodon/locales/tai.json
+++ b/app/javascript/mastodon/locales/tai.json
@@ -54,9 +54,7 @@
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.pins": "Pinned toots",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.reblog": "{name} boosted your status",
"notifications.column_settings.status": "New toots:",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index 3762d0dcea5..2f58eb9d43a 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -56,7 +56,6 @@
"column_header.pin": "అతికించు",
"column_header.show_settings": "అమర్పులను చూపించు",
"column_header.unpin": "పీకివేయు",
- "column_subheading.settings": "అమర్పులు",
"community.column_settings.media_only": "మీడియా మాత్రమే",
"compose_form.direct_message_warning_learn_more": "మరింత తెలుసుకోండి",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
@@ -75,8 +74,6 @@
"confirmations.delete_list.message": "మీరు ఖచ్చితంగా ఈ జాబితాను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?",
"confirmations.mute.confirm": "మ్యూట్ చేయి",
"confirmations.redraft.confirm": "తొలగించు & తిరగరాయు",
- "confirmations.reply.confirm": "ప్రత్యుత్తరమివ్వు",
- "confirmations.reply.message": "ఇప్పుడే ప్రత్యుత్తరం ఇస్తే మీరు ప్రస్తుతం వ్రాస్తున్న సందేశం తిరగరాయబడుతుంది. మీరు ఖచ్చితంగా కొనసాగించాలనుకుంటున్నారా?",
"confirmations.unfollow.confirm": "అనుసరించవద్దు",
"confirmations.unfollow.message": "{name}ను మీరు ఖచ్చితంగా అనుసరించవద్దనుకుంటున్నారా?",
"embed.instructions": "దిగువ కోడ్ను కాపీ చేయడం ద్వారా మీ వెబ్సైట్లో ఈ స్టేటస్ ని పొందుపరచండి.",
@@ -158,20 +155,13 @@
"lists.delete": "జాబితాను తొలగించు",
"lists.edit": "జాబితాను సవరించు",
"navigation_bar.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు",
- "navigation_bar.community_timeline": "స్థానిక కాలక్రమం",
- "navigation_bar.compose": "కొత్త టూట్ను రాయండి",
- "navigation_bar.discover": "కనుగొను",
"navigation_bar.domain_blocks": "దాచిన డొమైన్లు",
"navigation_bar.filters": "మ్యూట్ చేయబడిన పదాలు",
"navigation_bar.follow_requests": "అనుసరించడానికి అభ్యర్ధనలు",
"navigation_bar.lists": "జాబితాలు",
"navigation_bar.logout": "లాగ్ అవుట్ చేయండి",
"navigation_bar.mutes": "మ్యూట్ చేయబడిన వినియోగదారులు",
- "navigation_bar.personal": "వ్యక్తిగతం",
- "navigation_bar.pins": "అతికించిన టూట్లు",
"navigation_bar.preferences": "ప్రాధాన్యతలు",
- "navigation_bar.public_timeline": "సమాఖ్య కాలక్రమం",
- "navigation_bar.security": "భద్రత",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} మిమ్మల్ని అనుసరిస్తున్నారు",
"notification.reblog": "{name} మీ స్టేటస్ ను బూస్ట్ చేసారు",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 067df80cd80..603c1ab61ff 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -1,6 +1,7 @@
{
"about.blocks": "เซิร์ฟเวอร์ที่ได้รับการกลั่นกรอง",
"about.contact": "ติดต่อ:",
+ "about.default_locale": "ค่าเริ่มต้น",
"about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH",
"about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน",
"about.domain_blocks.preamble": "โดยทั่วไป Mastodon อนุญาตให้คุณดูเนื้อหาจากและโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นใดในจักรวาลสหพันธ์ นี่คือข้อยกเว้นที่ทำขึ้นในเซิร์ฟเวอร์นี้โดยเฉพาะ",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "จำกัดอยู่",
"about.domain_blocks.suspended.explanation": "จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์นี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์นี้เป็นไปไม่ได้",
"about.domain_blocks.suspended.title": "ระงับอยู่",
+ "about.language_label": "ภาษา",
"about.not_available": "ไม่ได้ทำให้ข้อมูลนี้พร้อมใช้งานในเซิร์ฟเวอร์นี้",
"about.powered_by": "สื่อสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}",
"about.rules": "กฎของเซิร์ฟเวอร์",
@@ -19,14 +21,18 @@
"account.block_domain": "ปิดกั้นโดเมน {domain}",
"account.block_short": "ปิดกั้น",
"account.blocked": "ปิดกั้นอยู่",
+ "account.blocking": "กำลังปิดกั้น",
"account.cancel_follow_request": "ยกเลิกการติดตาม",
"account.copy": "คัดลอกลิงก์ไปยังโปรไฟล์",
"account.direct": "กล่าวถึง @{name} แบบส่วนตัว",
"account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์",
- "account.domain_blocking": "โดเมน",
+ "account.domain_blocking": "กำลังปิดกั้นโดเมน",
"account.edit_profile": "แก้ไขโปรไฟล์",
"account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์",
"account.endorse": "แสดงในโปรไฟล์",
+ "account.featured": "น่าสนใจ",
+ "account.featured.accounts": "โปรไฟล์",
+ "account.featured.hashtags": "แฮชแท็ก",
"account.featured_tags.last_status_at": "โพสต์ล่าสุดเมื่อ {date}",
"account.featured_tags.last_status_never": "ไม่มีโพสต์",
"account.follow": "ติดตาม",
@@ -37,6 +43,7 @@
"account.following": "กำลังติดตาม",
"account.following_counter": "{count, plural, other {{counter} กำลังติดตาม}}",
"account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
+ "account.follows_you": "ติดตามคุณ",
"account.go_to_profile": "ไปยังโปรไฟล์",
"account.hide_reblogs": "ซ่อนการดันจาก @{name}",
"account.in_memoriam": "เพื่อระลึกถึง",
@@ -51,6 +58,7 @@
"account.mute_notifications_short": "ซ่อนการแจ้งเตือน",
"account.mute_short": "ซ่อน",
"account.muted": "ซ่อนอยู่",
+ "account.muting": "กำลังซ่อน",
"account.no_bio": "ไม่ได้ให้คำอธิบาย",
"account.open_original_page": "เปิดหน้าดั้งเดิม",
"account.posts": "โพสต์",
@@ -167,7 +175,6 @@
"column_header.show_settings": "แสดงการตั้งค่า",
"column_header.unpin": "ถอนหมุด",
"column_search.cancel": "ยกเลิก",
- "column_subheading.settings": "การตั้งค่า",
"community.column_settings.local_only": "ในเซิร์ฟเวอร์เท่านั้น",
"community.column_settings.media_only": "สื่อเท่านั้น",
"community.column_settings.remote_only": "ระยะไกลเท่านั้น",
@@ -205,9 +212,6 @@
"confirmations.delete_list.title": "ลบรายการ?",
"confirmations.discard_edit_media.confirm": "ละทิ้ง",
"confirmations.discard_edit_media.message": "คุณมีการเปลี่ยนแปลงคำอธิบายหรือตัวอย่างสื่อที่ยังไม่ได้บันทึก ละทิ้งการเปลี่ยนแปลงเหล่านั้นต่อไป?",
- "confirmations.edit.confirm": "แก้ไข",
- "confirmations.edit.message": "การแก้ไขในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
- "confirmations.edit.title": "เขียนทับโพสต์?",
"confirmations.follow_to_list.confirm": "ติดตามและเพิ่มไปยังรายการ",
"confirmations.follow_to_list.title": "ติดตามผู้ใช้?",
"confirmations.logout.confirm": "ออกจากระบบ",
@@ -221,9 +225,6 @@
"confirmations.redraft.confirm": "ลบแล้วร่างใหม่",
"confirmations.redraft.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้แล้วร่างโพสต์ใหม่? รายการโปรดและการดันจะสูญหาย และการตอบกลับโพสต์ดั้งเดิมจะไม่มีความเกี่ยวพัน",
"confirmations.redraft.title": "ลบแล้วร่างโพสต์ใหม่?",
- "confirmations.reply.confirm": "ตอบกลับ",
- "confirmations.reply.message": "การตอบกลับในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
- "confirmations.reply.title": "เขียนทับโพสต์?",
"confirmations.unfollow.confirm": "เลิกติดตาม",
"confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?",
"confirmations.unfollow.title": "เลิกติดตามผู้ใช้?",
@@ -312,9 +313,14 @@
"errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด",
"errors.unexpected_crash.report_issue": "รายงานปัญหา",
"explore.suggested_follows": "ผู้คน",
+ "explore.title": "กำลังนิยม",
"explore.trending_links": "ข่าว",
"explore.trending_statuses": "โพสต์",
"explore.trending_tags": "แฮชแท็ก",
+ "featured_carousel.next": "ถัดไป",
+ "featured_carousel.post": "โพสต์",
+ "featured_carousel.previous": "ก่อนหน้า",
+ "featured_carousel.slide": "{index} จาก {total}",
"filter_modal.added.context_mismatch_explanation": "หมวดหมู่ตัวกรองนี้ไม่นำไปใช้กับบริบทที่คุณได้เข้าถึงโพสต์นี้ หากคุณต้องการกรองโพสต์ในบริบทนี้ด้วย คุณจะต้องแก้ไขตัวกรอง",
"filter_modal.added.context_mismatch_title": "บริบทไม่ตรงกัน!",
"filter_modal.added.expired_explanation": "หมวดหมู่ตัวกรองนี้หมดอายุแล้ว คุณจะต้องเปลี่ยนวันหมดอายุสำหรับหมวดหมู่เพื่อนำไปใช้",
@@ -379,7 +385,10 @@
"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.feature": "แสดงในโปรไฟล์",
"hashtag.follow": "ติดตามแฮชแท็ก",
+ "hashtag.mute": "ซ่อน #{hashtag}",
+ "hashtag.unfeature": "ไม่แสดงในโปรไฟล์",
"hashtag.unfollow": "เลิกติดตามแฮชแท็ก",
"hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}",
"hints.profiles.followers_may_be_missing": "ผู้ติดตามสำหรับโปรไฟล์นี้อาจขาดหายไป",
@@ -511,32 +520,29 @@
"mute_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา",
"mute_modal.you_wont_see_posts": "เขายังคงสามารถเห็นโพสต์ของคุณ แต่คุณจะไม่เห็นโพสต์ของเขา",
"navigation_bar.about": "เกี่ยวกับ",
+ "navigation_bar.account_settings": "รหัสผ่านและความปลอดภัย",
"navigation_bar.administration": "การดูแล",
"navigation_bar.advanced_interface": "เปิดในส่วนติดต่อเว็บขั้นสูง",
+ "navigation_bar.automated_deletion": "การลบโพสต์แบบอัตโนมัติ",
"navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
"navigation_bar.bookmarks": "ที่คั่นหน้า",
- "navigation_bar.community_timeline": "เส้นเวลาในเซิร์ฟเวอร์",
- "navigation_bar.compose": "เขียนโพสต์ใหม่",
"navigation_bar.direct": "การกล่าวถึงแบบส่วนตัว",
- "navigation_bar.discover": "ค้นพบ",
"navigation_bar.domain_blocks": "โดเมนที่ปิดกั้นอยู่",
- "navigation_bar.explore": "สำรวจ",
"navigation_bar.favourites": "รายการโปรด",
"navigation_bar.filters": "คำที่ซ่อนอยู่",
"navigation_bar.follow_requests": "คำขอติดตาม",
"navigation_bar.followed_tags": "แฮชแท็กที่ติดตาม",
"navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม",
+ "navigation_bar.import_export": "การนำเข้าและการส่งออก",
"navigation_bar.lists": "รายการ",
"navigation_bar.logout": "ออกจากระบบ",
"navigation_bar.moderation": "การกลั่นกรอง",
+ "navigation_bar.more": "เพิ่มเติม",
"navigation_bar.mutes": "ผู้ใช้ที่ซ่อนอยู่",
"navigation_bar.opened_in_classic_interface": "จะเปิดโพสต์, บัญชี และหน้าที่เฉพาะเจาะจงอื่น ๆ เป็นค่าเริ่มต้นในส่วนติดต่อเว็บแบบคลาสสิก",
- "navigation_bar.personal": "ส่วนบุคคล",
- "navigation_bar.pins": "โพสต์ที่ปักหมุด",
"navigation_bar.preferences": "การกำหนดลักษณะ",
- "navigation_bar.public_timeline": "เส้นเวลาที่ติดต่อกับภายนอก",
+ "navigation_bar.privacy_and_reach": "ความเป็นส่วนตัวและการเข้าถึง",
"navigation_bar.search": "ค้นหา",
- "navigation_bar.security": "ความปลอดภัย",
"not_signed_in_indicator.not_signed_in": "คุณจำเป็นต้องเข้าสู่ระบบเพื่อเข้าถึงทรัพยากรนี้",
"notification.admin.report": "{name} ได้รายงาน {target}",
"notification.admin.report_account": "{name} ได้รายงาน {count, plural, other {# โพสต์}}จาก {target} สำหรับ {category}",
@@ -762,6 +768,7 @@
"report_notification.categories.violation": "การละเมิดกฎ",
"report_notification.categories.violation_sentence": "การละเมิดกฎ",
"report_notification.open": "รายงานที่เปิด",
+ "search.clear": "ล้างการค้นหา",
"search.no_recent_searches": "ไม่มีการค้นหาล่าสุด",
"search.placeholder": "ค้นหา",
"search.quick_action.account_search": "โปรไฟล์ที่ตรงกับ {x}",
@@ -827,6 +834,7 @@
"status.mute_conversation": "ซ่อนการสนทนา",
"status.open": "ขยายโพสต์นี้",
"status.pin": "ปักหมุดในโปรไฟล์",
+ "status.quote_post_author": "โพสต์โดย {name}",
"status.read_more": "อ่านเพิ่มเติม",
"status.reblog": "ดัน",
"status.reblog_private": "ดันด้วยการมองเห็นดั้งเดิม",
@@ -856,7 +864,10 @@
"subscribed_languages.save": "บันทึกการเปลี่ยนแปลง",
"subscribed_languages.target": "เปลี่ยนภาษาที่บอกรับสำหรับ {target}",
"tabs_bar.home": "หน้าแรก",
+ "tabs_bar.menu": "เมนู",
"tabs_bar.notifications": "การแจ้งเตือน",
+ "tabs_bar.publish": "โพสต์ใหม่",
+ "tabs_bar.search": "ค้นหา",
"terms_of_service.title": "เงื่อนไขการให้บริการ",
"time_remaining.days": "เหลืออีก {number, plural, other {# วัน}}",
"time_remaining.hours": "เหลืออีก {number, plural, other {# ชั่วโมง}}",
diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json
index 97567225622..c48ffa5fe24 100644
--- a/app/javascript/mastodon/locales/tok.json
+++ b/app/javascript/mastodon/locales/tok.json
@@ -1,7 +1,7 @@
{
"about.blocks": "ma lawa",
"about.contact": "toki:",
- "about.default_locale": "meso",
+ "about.default_locale": "ante ala",
"about.disclaimer": "ilo Mastodon la jan ale li lawa e ona li pana e pona tawa ona. kulupu esun Mastodon gGmbH li lawa e nimi ona.",
"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:",
@@ -72,9 +72,9 @@
"account.report": "jan @{name} la o toki e ike tawa lawa",
"account.requested": "jan ni o ken e kute sina",
"account.requested_follow": "jan {name} li wile kute e sina",
- "account.requests_to_follow_you": "sijelo ni li wile kute e sina.",
+ "account.requests_to_follow_you": "jan ni li wile kute e sina",
"account.share": "o pana e lipu jan @{name}",
- "account.show_reblogs": "o lukin e toki sike tan @{name}",
+ "account.show_reblogs": "o lukin e pana toki tan @{name}",
"account.statuses_counter": "{count, plural, other {toki {counter}}}",
"account.unblock": "o len ala e jan {name}",
"account.unblock_domain": "o len ala e ma {domain}",
@@ -116,8 +116,8 @@
"annual_report.summary.followers.followers": "jan kute sina",
"annual_report.summary.followers.total": "ale la {count}",
"annual_report.summary.here_it_is": "toki lili la tenpo sike nanpa {year} li sama ni tawa sina:",
- "annual_report.summary.highlighted_post.by_favourites": "toki pi olin nanpa wan",
- "annual_report.summary.highlighted_post.by_reblogs": "toki pi sike nanpa wan",
+ "annual_report.summary.highlighted_post.by_favourites": "toki pi pona suli",
+ "annual_report.summary.highlighted_post.by_reblogs": "toki pi pana suli",
"annual_report.summary.highlighted_post.by_replies": "toki li jo e toki kama pi nanpa wan",
"annual_report.summary.highlighted_post.possessive": "tan jan {name}",
"annual_report.summary.most_used_app.most_used_app": "ilo pi kepeken suli",
@@ -138,8 +138,8 @@
"block_modal.title": "o len ala len e jan?",
"block_modal.you_wont_see_mentions": "jan li toki e nimi ona la sina lukin ala e toki ni.",
"boost_modal.combo": "sina ken luka e nena {combo} tawa ni: sina wile ala luka e nena lon tenpo kama",
- "boost_modal.reblog": "o wawa ala wawa e toki?",
- "boost_modal.undo_reblog": "o weka ala weka e wawa toki?",
+ "boost_modal.reblog": "o pana ala pana sin e toki?",
+ "boost_modal.undo_reblog": "o weka ala weka e pana toki?",
"bundle_column_error.copy_stacktrace": "o jo 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": "pakala a!",
@@ -184,7 +184,6 @@
"column_header.show_settings": "o lukin e lawa",
"column_header.unpin": "o sewi ala",
"column_search.cancel": "o 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",
@@ -221,9 +220,6 @@
"confirmations.delete_list.title": "o weka ala weka e kulupu lipu?",
"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.edit.confirm": "o ante",
- "confirmations.edit.message": "sina ante e toki sina la toki pali sina li weka. sina wile ala wile e ni?",
- "confirmations.edit.title": "o weka ala weka e toki? ni la, toki li kama toki sin.",
"confirmations.follow_to_list.confirm": "o kute, o pana tawa lipu jan",
"confirmations.follow_to_list.message": "sina wile pana e {name} tawa lipu jan la o kama kute e ona.",
"confirmations.follow_to_list.title": "sina wile ala wile kute?",
@@ -241,9 +237,6 @@
"confirmations.remove_from_followers.confirm": "o kama kute ala e jan",
"confirmations.remove_from_followers.message": "{name} li kama kute ala e sina. sina wile ala wile e ni?",
"confirmations.remove_from_followers.title": "o kama ala kama kute ala e jan?",
- "confirmations.reply.confirm": "o weka",
- "confirmations.reply.message": "sina pana e toki tawa lipu ante la ni li weka e toki sina lon. sina wile ala wile weka e toki ni?",
- "confirmations.reply.title": "sina wile ala wile weka e toki lon?",
"confirmations.unfollow.confirm": "o kute ala",
"confirmations.unfollow.message": "sina o wile ala wile pini kute e jan {name}?",
"confirmations.unfollow.title": "sina wile ala wile pini kute?",
@@ -375,22 +368,32 @@
"hashtag.mute": "o kute ala e kulupu #{hashtag}",
"hashtag.unfollow": "o kute ala e kulupu lipu",
"hints.profiles.followers_may_be_missing": "jan kute li ken weka.",
+ "hints.profiles.see_more_followers": "o lukin e jan ni lon ma {domain}: ona li kute e jan ni.",
+ "hints.profiles.see_more_follows": "o lukin e jan ni lon ma {domain}: jan ni li kute e ona.",
"hints.profiles.see_more_posts": "o lukin e toki ante lon ma {domain}",
+ "hints.threads.replies_may_be_missing": "toki pi ma ante li weka lon ken.",
"hints.threads.see_more": "o lukin e toki ante lon ma {domain}",
- "home.column_settings.show_reblogs": "o lukin e wawa toki",
+ "home.column_settings.show_reblogs": "o lukin e pana toki",
"home.hide_announcements": "o lukin ala e toki lawa suli",
"home.pending_critical_update.body": "o sin e ilo Mastodon lon tenpo lili a!",
"home.pending_critical_update.link": "o lukin e ijo ilo sin",
"home.pending_critical_update.title": "pakala suli li lon ilo sina a!",
"home.show_announcements": "o lukin e toki lawa suli",
+ "ignore_notifications_modal.ignore": " o kute ala e mu",
"info_button.label": "sona",
+ "info_button.what_is_alt_text": "toki pi sona lukin li seme? toki ni li pana e sona tan sitelen lukin tawa jan mute ni: ona li ken ala lukin. ona li wile e sona namako.
sina ken pana e sona pona kepeken nasin ni:
o toki pona. o toki e ijo suli lon sitelen. o toki lili e nimi lon sitelen. o toki suli ala e ijo lili. ",
+ "interaction_modal.action.favourite": "sina wile pana e pona tawa jan ni la, o kama lon sijelo sina.",
+ "interaction_modal.action.follow": "sina wile kute e jan ni la, o kama lon sijelo sina.",
+ "interaction_modal.action.reblog": "sina wile pana sin e toki ni la, o kama lon sijelo sina.",
+ "interaction_modal.action.reply": "sina wile toki tawa lipu ni la, o kama lon sijelo sina.",
+ "interaction_modal.action.vote": "sina wile pana e wile tawa lipu ni la, o kama lon sijelo sina.",
"interaction_modal.go": "o tawa",
"interaction_modal.no_account_yet": "sina jo ala e sijelo anu seme?",
"interaction_modal.on_another_server": "lon ma ante",
"interaction_modal.on_this_server": "lon ma ni",
"interaction_modal.title.favourite": "o pona tawa {name}",
"interaction_modal.title.follow": "o kute e {name}",
- "interaction_modal.title.reblog": "o pana wawa e toki tan {name}",
+ "interaction_modal.title.reblog": "o pana sin e toki tan {name}",
"interaction_modal.title.reply": "o toki lon lipu tawa {name}",
"interaction_modal.title.vote": "o pana e sona wile tawa {name}",
"interaction_modal.username_prompt": "ni li sama ni: {example}",
@@ -451,15 +454,13 @@
"mute_modal.title": "sina wile ala wile kute e jan ni?",
"navigation_bar.about": "sona",
"navigation_bar.blocks": "jan len",
- "navigation_bar.compose": "o pali e toki sin",
- "navigation_bar.discover": "o alasa",
"navigation_bar.domain_blocks": "ma len",
- "navigation_bar.explore": "o alasa",
"navigation_bar.favourites": "ijo pona",
"navigation_bar.filters": "nimi len",
"navigation_bar.lists": "kulupu lipu",
+ "navigation_bar.logout": "o weka tan sijelo",
+ "navigation_bar.moderation": "nasin lawa",
"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.report": "jan {name} li toki e jan {target} tawa lawa",
@@ -472,9 +473,10 @@
"notification.label.private_reply": "toki len",
"notification.label.reply": "jan li toki tawa toki sina",
"notification.mentioned_you": "jan {name} li toki e sina",
- "notification.moderation-warning.learn_more": "o kama sona e ijo ante",
+ "notification.moderation-warning.learn_more": "o sona",
"notification.reblog": "{name} li wawa e toki sina",
"notification.relationships_severance_event.domain_block": "ma {from} la jan lawa li len e ma {target}. ma ni la jan {followersCount} li kute e sina. sina kute e {followingCount, plural, other {jan #}} tan ma ni. kama la ona ale li len tawa sina.",
+ "notification.relationships_severance_event.learn_more": "o sona",
"notification.relationships_severance_event.user_domain_block": "sina len e ma {target}. ma ni la jan {followersCount} li kute e sina. sina kute e {followingCount, plural, other {jan #}} tan ma ni. kama la ona ale li len tawa sina.",
"notification.status": "{name} li toki",
"notification.update": "{name} li ante e toki",
@@ -482,11 +484,11 @@
"notifications.column_settings.favourite": "ijo pona:",
"notifications.column_settings.follow": "jan kute sin",
"notifications.column_settings.poll": "pana lon pana ni:",
- "notifications.column_settings.reblog": "wawa:",
+ "notifications.column_settings.reblog": "pana sin:",
"notifications.column_settings.status": "toki sin:",
"notifications.column_settings.update": "ante toki:",
"notifications.filter.all": "ale",
- "notifications.filter.boosts": "wawa",
+ "notifications.filter.boosts": "pana sin",
"notifications.filter.favourites": "ijo pona",
"notifications.filter.mentions": "toki pi toki sina",
"notifications.filter.polls": "pana lon pana ni",
@@ -557,9 +559,9 @@
"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.reblog": "o wawa",
+ "status.reblog": "o pana sin",
"status.reblogged_by": "jan {name} li wawa",
- "status.reblogs.empty": "jan ala li wawa e toki ni. jan li wawa la, nimi ona li sitelen lon ni.",
+ "status.reblogs.empty": "jan ala li pana sin e toki ni. jan li pana sin la, nimi ona li sitelen lon ni.",
"status.share": "o pana tawa ante",
"status.show_less_all": "o lili e ale",
"status.show_more_all": "o suli e ale",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 6863af8589b..a45acff11f5 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Ayarları göster",
"column_header.unpin": "Sabitlemeyi kaldır",
"column_search.cancel": "İptal",
- "column_subheading.settings": "Ayarlar",
"community.column_settings.local_only": "Sadece yerel",
"community.column_settings.media_only": "Sadece medya",
"community.column_settings.remote_only": "Sadece uzak",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Sil",
"confirmations.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinden emin misin?",
"confirmations.delete_list.title": "Listeyi sil?",
+ "confirmations.discard_draft.confirm": "Sil ve devam et",
+ "confirmations.discard_draft.edit.cancel": "Düzenlemeye devam et",
+ "confirmations.discard_draft.edit.message": "Devam ederseniz düzenlemekte olduğunuz gönderide yaptığınız tüm değişiklikler silinecektir.",
+ "confirmations.discard_draft.edit.title": "Gönderinize yaptığınız değişiklikler silinsin mi?",
+ "confirmations.discard_draft.post.cancel": "Taslağa devam et",
+ "confirmations.discard_draft.post.message": "Devam ederseniz, şu anda oluşturmakta olduğunuz gönderi silinecektir.",
+ "confirmations.discard_draft.post.title": "Taslak gönderiniz silinsin mi?",
"confirmations.discard_edit_media.confirm": "Vazgeç",
"confirmations.discard_edit_media.message": "Medya açıklaması veya ön izlemede kaydedilmemiş değişiklikleriniz var, yine de vazgeçmek istiyor musunuz?",
- "confirmations.edit.confirm": "Düzenle",
- "confirmations.edit.message": "Şimdi düzenlersen şu an oluşturduğun iletinin üzerine yazılır. Devam etmek istediğine emin misin?",
- "confirmations.edit.title": "Gönderinin üzerine yaz?",
"confirmations.follow_to_list.confirm": "Takip et ve yapılacaklar listesine ekle",
"confirmations.follow_to_list.message": "Bir listeye eklemek için {name} kişisini takip etmeniz gerekiyor.",
"confirmations.follow_to_list.title": "Kullanıcıyı takip et?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Takipçi kaldır",
"confirmations.remove_from_followers.message": "{name} sizi takip etmeyi bırakacaktır. Devam etmek istediğinize emin misiniz?",
"confirmations.remove_from_followers.title": "Takipçiyi kaldır?",
- "confirmations.reply.confirm": "Yanıtla",
- "confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğun mesajın üzerine yazılır. Devam etmek istediğine emin misin?",
- "confirmations.reply.title": "Gönderinin üzerine yaz?",
"confirmations.unfollow.confirm": "Takibi bırak",
"confirmations.unfollow.message": "{name} adlı kullanıcıyı takibi bırakmak istediğinden emin misin?",
"confirmations.unfollow.title": "Kullanıcıyı takipten çık?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Otomatik gönderi silme",
"navigation_bar.blocks": "Engellenen kullanıcılar",
"navigation_bar.bookmarks": "Yer İşaretleri",
- "navigation_bar.community_timeline": "Yerel ağ akışı",
- "navigation_bar.compose": "Yeni gönderi yaz",
"navigation_bar.direct": "Özel mesajlar",
- "navigation_bar.discover": "Keşfet",
"navigation_bar.domain_blocks": "Engellenen alan adları",
- "navigation_bar.explore": "Keşfet",
"navigation_bar.favourites": "Favorilerin",
"navigation_bar.filters": "Sessize alınmış kelimeler",
"navigation_bar.follow_requests": "Takip istekleri",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Takip edilenler ve takipçiler",
"navigation_bar.import_export": "İçe ve dışa aktarma",
"navigation_bar.lists": "Listeler",
+ "navigation_bar.live_feed_local": "Canlı akış (yerel)",
+ "navigation_bar.live_feed_public": "Canlı akış (herkese açık)",
"navigation_bar.logout": "Oturumu kapat",
"navigation_bar.moderation": "Moderasyon",
"navigation_bar.more": "Daha fazla",
"navigation_bar.mutes": "Sessize alınmış kullanıcılar",
"navigation_bar.opened_in_classic_interface": "Gönderiler, hesaplar ve diğer belirli sayfalar klasik web arayüzünde varsayılan olarak açılıyorlar.",
- "navigation_bar.personal": "Kişisel",
- "navigation_bar.pins": "Sabitlenmiş gönderiler",
"navigation_bar.preferences": "Tercihler",
"navigation_bar.privacy_and_reach": "Gizlilik ve erişim",
- "navigation_bar.public_timeline": "Federe ağ akışı",
"navigation_bar.search": "Arama",
"navigation_bar.search_trends": "Ara / Öne Çıkanlar",
- "navigation_bar.security": "Güvenlik",
"navigation_panel.collapse_followed_tags": "Takip edilen etiketler menüsünü daralt",
"navigation_panel.collapse_lists": "Liste menüsünü daralt",
"navigation_panel.expand_followed_tags": "Takip edilen etiketler menüsünü genişlet",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Kural ihlali",
"report_notification.categories.violation_sentence": "kural ihlali",
"report_notification.open": "Bildirim aç",
+ "search.clear": "Aramayı temizle",
"search.no_recent_searches": "Son arama yok",
"search.placeholder": "Ara",
"search.quick_action.account_search": "Eşleşen profiller {x}",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index 29a11217d04..a56107081e7 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -118,7 +118,6 @@
"column_header.pin": "Беркетү",
"column_header.show_settings": "Көйләүләрне күрсәтү",
"column_header.unpin": "Төзәтү түгел",
- "column_subheading.settings": "Көйләүләр",
"community.column_settings.local_only": "Җирле генә",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Дистанцион гына идарә итү",
@@ -143,13 +142,10 @@
"confirmations.delete_list.message": "Сез бу исемлекне мәңгегә бетерергә телисезме?",
"confirmations.discard_edit_media.confirm": "Баш тарту",
"confirmations.discard_edit_media.message": "Сезнең медиа тасвирламасында яки алдан карау өчен сакланмаган үзгәрешләр бармы? ",
- "confirmations.edit.confirm": "Үзгәртү",
"confirmations.logout.confirm": "Чыгу",
"confirmations.logout.message": "Сез чыгарга телисезме?",
"confirmations.mute.confirm": "Тавышсыз",
"confirmations.redraft.confirm": "Бетерү & эшкәртү",
- "confirmations.reply.confirm": "Җавап бирү",
- "confirmations.reply.message": "Тһеавап хәзер сез ясаган хәбәрне яңадан язуга китерәчәк. Сез дәвам итәсегез киләме?",
"confirmations.unfollow.confirm": "Язылуны туктату",
"confirmations.unfollow.message": "Сез язылудан баш тартырга телисез {name}?",
"conversation.delete": "Сөйләшүне бетерегез",
@@ -282,18 +278,12 @@
"navigation_bar.about": "Проект турында",
"navigation_bar.blocks": "Блокланган кулланучылар",
"navigation_bar.bookmarks": "Кыстыргычлар",
- "navigation_bar.community_timeline": "Локаль вакыт сызыгы",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Хосусый искә алулар",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.explore": "Күзәтү",
"navigation_bar.lists": "Исемлекләр",
"navigation_bar.logout": "Чыгу",
- "navigation_bar.personal": "Шәхси",
- "navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "Caylaw",
"navigation_bar.search": "Эзләү",
- "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",
"notifications.clear": "Искәртүләрне чистарту",
diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json
index 3252c187c8d..85898d048a7 100644
--- a/app/javascript/mastodon/locales/ug.json
+++ b/app/javascript/mastodon/locales/ug.json
@@ -64,9 +64,7 @@
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.pins": "Pinned toots",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.reblog": "{name} boosted your status",
"notifications.column_settings.status": "New toots:",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 049957fcd4f..56ff3444f45 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -174,7 +174,6 @@
"column_header.show_settings": "Показати налаштування",
"column_header.unpin": "Відкріпити",
"column_search.cancel": "Скасувати",
- "column_subheading.settings": "Налаштування",
"community.column_settings.local_only": "Лише локальні",
"community.column_settings.media_only": "Лише з медіа",
"community.column_settings.remote_only": "Лише віддалені",
@@ -210,11 +209,10 @@
"confirmations.delete_list.confirm": "Видалити",
"confirmations.delete_list.message": "Ви впевнені, що хочете видалити цей список назавжди?",
"confirmations.delete_list.title": "Видалити список?",
+ "confirmations.discard_draft.confirm": "Скасувати та продовжити",
+ "confirmations.discard_draft.edit.cancel": "Продовжити редагування",
"confirmations.discard_edit_media.confirm": "Відкинути",
"confirmations.discard_edit_media.message": "У вас є незбережені зміни в описі медіа або попереднього перегляду, все одно відкинути їх?",
- "confirmations.edit.confirm": "Змінити",
- "confirmations.edit.message": "Редагування перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?",
- "confirmations.edit.title": "Перезаписати допис?",
"confirmations.follow_to_list.confirm": "Підписатися і додати до списку",
"confirmations.follow_to_list.message": "Ви повинні слідувати за {name}, щоб додати до списку.",
"confirmations.follow_to_list.title": "Підписатися на користувача?",
@@ -229,9 +227,6 @@
"confirmations.redraft.confirm": "Видалити та виправити",
"confirmations.redraft.message": "Ви впевнені, що хочете видалити цей допис та переписати його? Додавання у вибране та поширення буде втрачено, а відповіді на оригінальний допис залишаться без першоджерела.",
"confirmations.redraft.title": "Видалити та переробити допис?",
- "confirmations.reply.confirm": "Відповісти",
- "confirmations.reply.message": "Нова відповідь перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?",
- "confirmations.reply.title": "Перезаписати допис?",
"confirmations.unfollow.confirm": "Відписатися",
"confirmations.unfollow.message": "Ви впевнені, що хочете відписатися від {name}?",
"confirmations.unfollow.title": "Відписатися від користувача?",
@@ -530,12 +525,8 @@
"navigation_bar.automated_deletion": "Автовидалення допису",
"navigation_bar.blocks": "Заблоковані користувачі",
"navigation_bar.bookmarks": "Закладки",
- "navigation_bar.community_timeline": "Локальна стрічка",
- "navigation_bar.compose": "Написати новий допис",
"navigation_bar.direct": "Особисті згадки",
- "navigation_bar.discover": "Дослідити",
"navigation_bar.domain_blocks": "Заблоковані домени",
- "navigation_bar.explore": "Огляд",
"navigation_bar.favourites": "Уподобане",
"navigation_bar.filters": "Приховані слова",
"navigation_bar.follow_requests": "Запити на підписку",
@@ -543,19 +534,17 @@
"navigation_bar.follows_and_followers": "Підписки та підписники",
"navigation_bar.import_export": "Імпорт та експорт",
"navigation_bar.lists": "Списки",
+ "navigation_bar.live_feed_local": "Онлайн стрічка (локальна)",
+ "navigation_bar.live_feed_public": "Онлайн стрічка (публічна)",
"navigation_bar.logout": "Вийти",
"navigation_bar.moderation": "Модерування",
"navigation_bar.more": "Ще",
"navigation_bar.mutes": "Приховані користувачі",
"navigation_bar.opened_in_classic_interface": "Дописи, облікові записи та інші специфічні сторінки усталено відкриваються в класичному вебінтерфейсі.",
- "navigation_bar.personal": "Особисте",
- "navigation_bar.pins": "Закріплені дописи",
"navigation_bar.preferences": "Налаштування",
"navigation_bar.privacy_and_reach": "Приватність і досяжність",
- "navigation_bar.public_timeline": "Глобальна стрічка",
"navigation_bar.search": "Пошук",
"navigation_bar.search_trends": "Пошук / Популярність",
- "navigation_bar.security": "Безпека",
"navigation_panel.collapse_followed_tags": "Згорнути меню хештегів",
"navigation_panel.collapse_lists": "Згорнути меню списку",
"navigation_panel.expand_followed_tags": "Розгорнути меню хештегів",
@@ -786,6 +775,7 @@
"report_notification.categories.violation": "Порушення правил",
"report_notification.categories.violation_sentence": "порушення правил",
"report_notification.open": "Відкрити скаргу",
+ "search.clear": "Очистити пошук",
"search.no_recent_searches": "Немає останніх пошуків",
"search.placeholder": "Пошук",
"search.quick_action.account_search": "Збіг профілів {x}",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index eb79724a0e2..b1db5d819f6 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -96,7 +96,6 @@
"column_header.pin": "چسپاں کریں",
"column_header.show_settings": "ترتیبات دکھائیں",
"column_header.unpin": "رہا کریں",
- "column_subheading.settings": "ترتیبات",
"community.column_settings.local_only": "صرف مقامی",
"community.column_settings.media_only": "وسائل فقط",
"community.column_settings.remote_only": "صرف خارجی",
@@ -123,8 +122,6 @@
"confirmations.logout.message": "کیا واقعی آپ لاگ آؤٹ ہونا چاہتے ہیں؟",
"confirmations.mute.confirm": "خاموش",
"confirmations.redraft.confirm": "ڈیلیٹ کریں اور دوبارہ ڈرافٹ کریں",
- "confirmations.reply.confirm": "جواب دیں",
- "confirmations.reply.message": "ابھی جواب دینے سے وہ پیغام اوور رائٹ ہو جائے گا جو آپ فی الحال لکھ رہے ہیں۔ کیا آپ واقعی آگے بڑھنا چاہتے ہیں؟",
"confirmations.unfollow.confirm": "پیروی ترک کریں",
"confirmations.unfollow.message": "کیا واقعی آپ {name} کی پیروی ترک کرنا چاہتے ہیں؟",
"conversation.delete": "گفتگو کو ڈیلیٹ کریں",
@@ -209,9 +206,6 @@
"keyboard_shortcuts.up": "to move up in the list",
"navigation_bar.blocks": "مسدود صارفین",
"navigation_bar.bookmarks": "بُک مارکس",
- "navigation_bar.community_timeline": "مقامی ٹائم لائن",
- "navigation_bar.compose": "Compose new toot",
- "navigation_bar.discover": "دریافت کریں",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.filters": "خاموش کردہ الفاظ",
"navigation_bar.follow_requests": "پیروی کی درخواستیں",
@@ -219,11 +213,7 @@
"navigation_bar.lists": "فہرستیں",
"navigation_bar.logout": "لاگ آؤٹ",
"navigation_bar.mutes": "خاموش کردہ صارفین",
- "navigation_bar.personal": "ذاتی",
- "navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "ترجیحات",
- "navigation_bar.public_timeline": "وفاقی ٹائم لائن",
- "navigation_bar.security": "سیکورٹی",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} آپ کی پیروی کی",
"notification.follow_request": "{name} نے آپ کی پیروی کی درخواست کی",
diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json
index 62446292927..d651b9501ca 100644
--- a/app/javascript/mastodon/locales/uz.json
+++ b/app/javascript/mastodon/locales/uz.json
@@ -105,7 +105,6 @@
"column_header.pin": "Yopishtirish",
"column_header.show_settings": "Sozlamalarni ko'rsatish",
"column_header.unpin": "Olib qo‘yish",
- "column_subheading.settings": "Sozlamalar",
"community.column_settings.local_only": "Faqat mahalliy",
"community.column_settings.media_only": "Faqat media",
"community.column_settings.remote_only": "Faqat masofaviy",
@@ -134,8 +133,6 @@
"confirmations.logout.message": "Chiqishingizga aminmisiz?",
"confirmations.mute.confirm": "Ovozsiz",
"confirmations.redraft.confirm": "O'chirish va qayta loyihalash",
- "confirmations.reply.confirm": "Javob berish",
- "confirmations.reply.message": "Hozir javob bersangiz, hozir yozayotgan xabaringiz ustidan yoziladi. Davom etishni xohlaysizmi?",
"confirmations.unfollow.confirm": "Kuzatishni To'xtatish",
"confirmations.unfollow.message": "Haqiqatan ham {name} obunasini bekor qilmoqchimisiz?",
"conversation.delete": "Suhbatni o'chirish",
@@ -284,23 +281,15 @@
"navigation_bar.about": "Haqida",
"navigation_bar.blocks": "Bloklangan foydalanuvchilar",
"navigation_bar.bookmarks": "Xatcho‘plar",
- "navigation_bar.community_timeline": "Mahalliy",
- "navigation_bar.compose": "Yangi post yozing",
- "navigation_bar.discover": "Kashf qilish",
"navigation_bar.domain_blocks": "Bloklangan domenlar",
- "navigation_bar.explore": "O‘rganish",
"navigation_bar.filters": "E'tiborga olinmagan so'zlar",
"navigation_bar.followed_tags": "Kuzatilgan hashtaglar",
"navigation_bar.follows_and_followers": "Kuzatuvchilar va izdoshlar",
"navigation_bar.lists": "Ro‘yxat",
"navigation_bar.logout": "Chiqish",
"navigation_bar.mutes": "Ovozsiz foydalanuvchilar",
- "navigation_bar.personal": "Shaxsiy",
- "navigation_bar.pins": "Belgilangan postlar",
"navigation_bar.preferences": "Sozlamalar",
- "navigation_bar.public_timeline": "Federatsiyalangan vaqt jadvali",
"navigation_bar.search": "Izlash",
- "navigation_bar.security": "Xavfsizlik",
"not_signed_in_indicator.not_signed_in": "Ushbu manbaga kirish uchun tizimga kirishingiz kerak.",
"notification.own_poll": "So‘rovingiz tugadi",
"notification.reblog": "{name} boosted your status",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 659936259a4..2a843b3dfa2 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Hiện bộ lọc",
"column_header.unpin": "Không ghim",
"column_search.cancel": "Hủy bỏ",
- "column_subheading.settings": "Cài đặt",
"community.column_settings.local_only": "Chỉ máy chủ của bạn",
"community.column_settings.media_only": "Chỉ hiện tút có media",
"community.column_settings.remote_only": "Chỉ người ở máy chủ khác",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "Vẫn xóa",
"confirmations.delete_list.message": "Bạn có chắc muốn xóa vĩnh viễn danh sách này?",
"confirmations.delete_list.title": "Xóa danh sách",
+ "confirmations.discard_draft.confirm": "Bỏ và tiếp tục",
+ "confirmations.discard_draft.edit.cancel": "Tiếp tục chỉnh sửa",
+ "confirmations.discard_draft.edit.message": "Nếu tiếp tục, bạn sẽ mất mọi thay đổi đã thực hiện đối với tút đang chỉnh sửa.",
+ "confirmations.discard_draft.edit.title": "Bỏ những thay đổi với tút?",
+ "confirmations.discard_draft.post.cancel": "Tiếp tục soạn",
+ "confirmations.discard_draft.post.message": "Nếu tiếp tục, bạn sẽ mất tút đang soạn.",
+ "confirmations.discard_draft.post.title": "Bỏ tút đang soạn?",
"confirmations.discard_edit_media.confirm": "Bỏ qua",
"confirmations.discard_edit_media.message": "Bạn chưa lưu thay đổi của phần mô tả hoặc bản xem trước của media, vẫn bỏ qua?",
- "confirmations.edit.confirm": "Sửa",
- "confirmations.edit.message": "Nội dung tút cũ sẽ bị ghi đè, bạn có tiếp tục?",
- "confirmations.edit.title": "Ghi đè lên tút cũ",
"confirmations.follow_to_list.confirm": "Theo dõi & thêm vào danh sách",
"confirmations.follow_to_list.message": "Bạn cần theo dõi {name} trước khi thêm họ vào danh sách.",
"confirmations.follow_to_list.title": "Theo dõi người này?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "Xóa người theo dõi",
"confirmations.remove_from_followers.message": "{name} sẽ không còn theo dõi bạn.Bạn có chắc tiếp tục?",
"confirmations.remove_from_followers.title": "Xóa người theo dõi?",
- "confirmations.reply.confirm": "Trả lời",
- "confirmations.reply.message": "Nội dung bạn đang soạn thảo sẽ bị ghi đè, bạn có tiếp tục?",
- "confirmations.reply.title": "Ghi đè lên tút cũ",
"confirmations.unfollow.confirm": "Bỏ theo dõi",
"confirmations.unfollow.message": "Bạn có chắc muốn bỏ theo dõi {name}?",
"confirmations.unfollow.title": "Bỏ theo dõi",
@@ -399,7 +399,7 @@
"getting_started.heading": "Quản lý",
"hashtag.admin_moderation": "Mở giao diện quản trị #{name}",
"hashtag.browse": "Tìm tút #{hashtag}",
- "hashtag.browse_from_account": "Tìm tút của @{name} có chứa #{hashtag}",
+ "hashtag.browse_from_account": "Tìm tút #{hashtag} của @{name}",
"hashtag.column_header.tag_mode.all": "và {additional}",
"hashtag.column_header.tag_mode.any": "hoặc {additional}",
"hashtag.column_header.tag_mode.none": "mà không {additional}",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "Tự động xóa tút cũ",
"navigation_bar.blocks": "Người đã chặn",
"navigation_bar.bookmarks": "Tút lưu",
- "navigation_bar.community_timeline": "Cộng đồng",
- "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.explore": "Xu hướng",
"navigation_bar.favourites": "Tút thích",
"navigation_bar.filters": "Từ khóa đã lọc",
"navigation_bar.follow_requests": "Yêu cầu theo dõi",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "Quan hệ",
"navigation_bar.import_export": "Nhập và xuất",
"navigation_bar.lists": "Danh sách",
+ "navigation_bar.live_feed_local": "Bảng tin (máy chủ)",
+ "navigation_bar.live_feed_public": "Bảng tin (công khai)",
"navigation_bar.logout": "Đăng xuất",
"navigation_bar.moderation": "Kiểm duyệt",
"navigation_bar.more": "Khác",
"navigation_bar.mutes": "Người đã ẩn",
"navigation_bar.opened_in_classic_interface": "Tút, tài khoản và các trang cụ thể khác được mở theo mặc định trong giao diện web cổ điển.",
- "navigation_bar.personal": "Cá nhân",
- "navigation_bar.pins": "Tút ghim",
"navigation_bar.preferences": "Thiết lập",
"navigation_bar.privacy_and_reach": "Riêng tư và tiếp cận",
- "navigation_bar.public_timeline": "Liên hợp",
"navigation_bar.search": "Tìm kiếm",
"navigation_bar.search_trends": "Tìm kiếm / Xu hướng",
- "navigation_bar.security": "Bảo mật",
"navigation_panel.collapse_followed_tags": "Thu gọn menu hashtag theo dõi",
"navigation_panel.collapse_lists": "Thu gọn menu danh sách",
"navigation_panel.expand_followed_tags": "Mở rộng menu hashtag theo dõi",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "Vi phạm nội quy",
"report_notification.categories.violation_sentence": "vi phạm nội quy",
"report_notification.open": "Mở báo cáo",
+ "search.clear": "Xóa tìm kiếm",
"search.no_recent_searches": "Gần đây chưa tìm gì",
"search.placeholder": "Tìm kiếm",
"search.quick_action.account_search": "Người tên {x}",
diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json
index 1c5bc2d2d3c..ff37d75a07c 100644
--- a/app/javascript/mastodon/locales/zgh.json
+++ b/app/javascript/mastodon/locales/zgh.json
@@ -31,7 +31,6 @@
"column_header.pin": "ⵖⵏⵙ",
"column_header.show_settings": "ⵙⵎⴰⵍ ⵜⵉⵙⵖⴰⵍ",
"column_header.unpin": "ⴽⴽⵙ ⴰⵖⵏⴰⵙ",
- "column_subheading.settings": "ⵜⵉⵙⵖⴰⵍ",
"community.column_settings.local_only": "ⵖⴰⵙ ⴰⴷⵖⴰⵔⴰⵏ",
"community.column_settings.media_only": "ⵖⴰⵙ ⵉⵙⵏⵖⵎⵉⵙⵏ",
"compose_form.direct_message_warning_learn_more": "ⵙⵙⵏ ⵓⴳⴳⴰⵔ",
@@ -49,7 +48,6 @@
"confirmations.logout.confirm": "ⴼⴼⵖ",
"confirmations.logout.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴼⴼⵖⴷ?",
"confirmations.mute.confirm": "ⵥⵥⵉⵥⵏ",
- "confirmations.reply.confirm": "ⵔⴰⵔ",
"confirmations.unfollow.confirm": "ⴽⴽⵙ ⴰⴹⴼⴼⵓⵕ",
"confirmations.unfollow.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴽⴽⵙⴷ ⴰⴹⴼⴼⵓⵕ ⵉ {name}?",
"conversation.delete": "ⴽⴽⵙ ⴰⵎⵙⴰⵡⴰⵍ",
@@ -107,12 +105,10 @@
"lists.edit": "ⵙⵏⴼⵍ ⵜⴰⵍⴳⴰⵎⵜ",
"lists.replies_policy.none": "ⴰⵡⴷ ⵢⴰⵏ",
"load_pending": "{count, plural, one {# ⵓⴼⵔⴷⵉⵙ ⴰⵎⴰⵢⵏⵓ} other {# ⵉⴼⵔⴷⴰⵙ ⵉⵎⴰⵢⵏⵓⵜⵏ}}",
- "navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.follow_requests": "ⵜⵓⵜⵔⴰⵡⵉⵏ ⵏ ⵓⴹⴼⴰⵕ",
"navigation_bar.lists": "ⵜⵉⵍⴳⴰⵎⵉⵏ",
"navigation_bar.logout": "ⴼⴼⵖ",
- "navigation_bar.pins": "Pinned toots",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "ⵉⴹⴼⴼⴰⵔ ⴽ {name}",
"notification.reblog": "{name} boosted your status",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 1376806dbfb..57958076a7b 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -183,7 +183,6 @@
"column_header.show_settings": "显示设置",
"column_header.unpin": "取消置顶",
"column_search.cancel": "取消",
- "column_subheading.settings": "设置",
"community.column_settings.local_only": "仅限本站",
"community.column_settings.media_only": "仅媒体",
"community.column_settings.remote_only": "仅外站",
@@ -219,11 +218,11 @@
"confirmations.delete_list.confirm": "删除",
"confirmations.delete_list.message": "确定要永久删除此列表吗?",
"confirmations.delete_list.title": "确定要删除列表?",
+ "confirmations.discard_draft.confirm": "放弃并继续",
+ "confirmations.discard_draft.edit.cancel": "恢复编辑",
+ "confirmations.discard_draft.post.cancel": "恢复草稿",
"confirmations.discard_edit_media.confirm": "丢弃",
"confirmations.discard_edit_media.message": "你还有未保存的媒体描述或预览修改,仍要丢弃吗?",
- "confirmations.edit.confirm": "编辑",
- "confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?",
- "confirmations.edit.title": "确定要重写嘟文?",
"confirmations.follow_to_list.confirm": "关注并添加到列表",
"confirmations.follow_to_list.message": "你需要先关注 {name},才能将其添加到列表。",
"confirmations.follow_to_list.title": "确定要关注此用户?",
@@ -241,9 +240,6 @@
"confirmations.remove_from_followers.confirm": "移除关注者",
"confirmations.remove_from_followers.message": "{name} 将停止关注您。您确定要继续吗?",
"confirmations.remove_from_followers.title": "移除关注者?",
- "confirmations.reply.confirm": "回复",
- "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?",
- "confirmations.reply.title": "是否重写嘟文?",
"confirmations.unfollow.confirm": "取消关注",
"confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
"confirmations.unfollow.title": "确定要取消关注用户?",
@@ -333,11 +329,14 @@
"errors.unexpected_crash.copy_stacktrace": "复制堆栈跟踪信息到剪贴板",
"errors.unexpected_crash.report_issue": "报告问题",
"explore.suggested_follows": "用户",
+ "explore.title": "当前热门",
"explore.trending_links": "新闻",
"explore.trending_statuses": "嘟文",
"explore.trending_tags": "话题",
"featured_carousel.next": "下一步",
+ "featured_carousel.post": "发嘟",
"featured_carousel.previous": "上一步",
+ "featured_carousel.slide": "第 {index} 共 {total}",
"filter_modal.added.context_mismatch_explanation": "这条过滤规则不适用于你当前访问此嘟文的场景。要在此场景下过滤嘟文,你必须编辑此过滤规则。",
"filter_modal.added.context_mismatch_title": "场景不匹配!",
"filter_modal.added.expired_explanation": "此过滤规则类别已过期,你需要修改到期日期才能应用。",
@@ -542,28 +541,25 @@
"navigation_bar.advanced_interface": "在高级网页界面中打开",
"navigation_bar.blocks": "已屏蔽的用户",
"navigation_bar.bookmarks": "书签",
- "navigation_bar.community_timeline": "本站时间线",
- "navigation_bar.compose": "撰写新嘟文",
"navigation_bar.direct": "私下提及",
- "navigation_bar.discover": "发现",
"navigation_bar.domain_blocks": "已屏蔽的域名",
- "navigation_bar.explore": "探索",
"navigation_bar.favourites": "喜欢",
"navigation_bar.filters": "忽略的关键词",
"navigation_bar.follow_requests": "关注请求",
"navigation_bar.followed_tags": "关注的话题",
"navigation_bar.follows_and_followers": "关注与关注者",
+ "navigation_bar.import_export": "导入与导出",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "退出登录",
"navigation_bar.moderation": "审核",
+ "navigation_bar.more": "更多",
"navigation_bar.mutes": "已隐藏的用户",
"navigation_bar.opened_in_classic_interface": "嘟文页、个人资料与其他某些页面默认在经典网页界面中打开。",
- "navigation_bar.personal": "个人",
- "navigation_bar.pins": "置顶嘟文",
"navigation_bar.preferences": "偏好设置",
- "navigation_bar.public_timeline": "跨站时间线",
+ "navigation_bar.privacy_and_reach": "隐私与可达性",
"navigation_bar.search": "搜索",
- "navigation_bar.security": "安全",
+ "navigation_panel.collapse_lists": "收起菜单列表",
+ "navigation_panel.expand_lists": "展开菜单列表",
"not_signed_in_indicator.not_signed_in": "你需要登录才能访问此资源。",
"notification.admin.report": "{name} 举报了 {target}",
"notification.admin.report_account": "{name} 举报了来自 {target} 的 {count, plural, other {# 条嘟文}},原因为 {category}",
@@ -860,6 +856,7 @@
"status.quote_error.not_found": "无法显示这篇贴文。",
"status.quote_error.rejected": "由于原作者不允许引用转发,无法显示这篇贴文。",
"status.quote_error.removed": "该帖子已被作者删除。",
+ "status.quote_post_author": "{name} 的嘟文",
"status.read_more": "查看更多",
"status.reblog": "转嘟",
"status.reblog_private": "以相同可见性转嘟",
@@ -889,7 +886,10 @@
"subscribed_languages.save": "保存更改",
"subscribed_languages.target": "更改 {target} 的订阅语言",
"tabs_bar.home": "主页",
+ "tabs_bar.menu": "菜单",
"tabs_bar.notifications": "通知",
+ "tabs_bar.publish": "新嘟文",
+ "tabs_bar.search": "搜索",
"terms_of_service.effective_as_of": "自 {date} 起生效",
"terms_of_service.title": "服务条款",
"terms_of_service.upcoming_changes_on": "将于 {date} 进行变更",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index dd52db3b3e5..91daf7ba9c2 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -71,6 +71,7 @@
"account.show_reblogs": "顯示 @{name} 的轉推",
"account.unblock": "解除封鎖 @{name}",
"account.unblock_domain": "解除封鎖網域 {domain}",
+ "account.unblock_domain_short": "解除封鎖",
"account.unblock_short": "解除封鎖",
"account.unendorse": "不要在個人檔案中推薦",
"account.unfollow": "取消追蹤",
@@ -147,7 +148,6 @@
"column_header.show_settings": "顯示設定",
"column_header.unpin": "取消置頂",
"column_search.cancel": "取消",
- "column_subheading.settings": "設定",
"community.column_settings.local_only": "只顯示本站",
"community.column_settings.media_only": "只顯示多媒體",
"community.column_settings.remote_only": "只顯示外站",
@@ -185,21 +185,18 @@
"confirmations.delete_list.title": "刪除列表?",
"confirmations.discard_edit_media.confirm": "捨棄",
"confirmations.discard_edit_media.message": "您在媒體描述或預覽有尚未儲存的變更。確定要捨棄它們嗎?",
- "confirmations.edit.confirm": "編輯",
- "confirmations.edit.message": "現在編輯將會覆蓋你目前正在撰寫的訊息。你確定要繼續嗎?",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "確定要登出嗎?",
"confirmations.logout.title": "登出?",
"confirmations.mute.confirm": "靜音",
"confirmations.redraft.confirm": "刪除並編輯",
"confirmations.redraft.message": "你確定要移除並重新起草這篇帖文嗎?你將會失去最愛和轉推,而回覆也會與原始帖文斷開連接。",
- "confirmations.reply.confirm": "回覆",
- "confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?",
"confirmations.unfollow.confirm": "取消追蹤",
"confirmations.unfollow.message": "真的不要繼續追蹤 {name} 了嗎?",
"confirmations.unfollow.title": "取消追蹤使用者?",
"content_warning.hide": "隱藏嘟文",
"content_warning.show": "仍要顯示",
+ "content_warning.show_more": "顯示更多",
"conversation.delete": "刪除對話",
"conversation.mark_as_read": "標為已讀",
"conversation.open": "檢視對話",
@@ -404,12 +401,17 @@
"limited_account_hint.action": "一律顯示個人檔案",
"limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。",
"link_preview.author": "由 {name} 提供",
+ "lists.add_member": "新增",
+ "lists.create": "建立",
"lists.delete": "刪除列表",
"lists.done": "完成",
"lists.edit": "編輯列表",
+ "lists.remove_member": "移除",
"lists.replies_policy.followed": "任何已關注的用戶",
"lists.replies_policy.list": "列表中的用戶",
"lists.replies_policy.none": "無人",
+ "lists.save": "儲存",
+ "lists.search": "搜尋",
"load_pending": "{count, plural, other {# 個新項目}}",
"loading_indicator.label": "載入中…",
"media_gallery.hide": "隱藏",
@@ -427,33 +429,32 @@
"navigation_bar.advanced_interface": "在進階網頁介面打開",
"navigation_bar.blocks": "封鎖名單",
"navigation_bar.bookmarks": "書籤",
- "navigation_bar.community_timeline": "本站時間軸",
- "navigation_bar.compose": "撰寫新文章",
"navigation_bar.direct": "私人提及",
- "navigation_bar.discover": "探索",
"navigation_bar.domain_blocks": "封鎖的服務站",
- "navigation_bar.explore": "探索",
"navigation_bar.favourites": "最愛",
"navigation_bar.filters": "靜音詞彙",
"navigation_bar.follow_requests": "追蹤請求",
"navigation_bar.followed_tags": "已追蹤標籤",
"navigation_bar.follows_and_followers": "追蹤及追蹤者",
+ "navigation_bar.import_export": "匯入及匯出",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
+ "navigation_bar.more": "更多",
"navigation_bar.mutes": "靜音名單",
"navigation_bar.opened_in_classic_interface": "帖文、帳號及其他特定頁面將預設在經典網頁介面中打開。",
- "navigation_bar.personal": "個人",
- "navigation_bar.pins": "置頂文章",
"navigation_bar.preferences": "偏好設定",
- "navigation_bar.public_timeline": "跨站時間軸",
+ "navigation_bar.privacy_and_reach": "私隱及觸及",
"navigation_bar.search": "搜尋",
- "navigation_bar.security": "安全",
"not_signed_in_indicator.not_signed_in": "您需要登入才能存取此資源。",
"notification.admin.report": "{name} 檢舉了 {target}",
"notification.admin.sign_up": "{name} 已經註冊",
"notification.favourite": "{name} 喜歡你的文章",
"notification.follow": "{name} 開始追蹤你",
"notification.follow_request": "{name} 要求追蹤你",
+ "notification.label.mention": "提及",
+ "notification.label.reply": "回覆",
+ "notification.mention": "提及",
+ "notification.mentioned_you": "{name} 已提及你",
"notification.moderation-warning.learn_more": "了解更多",
"notification.moderation_warning.action_delete_statuses": "你的部份帖文已被刪除。",
"notification.moderation_warning.action_disable": "你的帳號已被停用。",
@@ -473,7 +474,9 @@
"notification.update": "{name} 編輯了帖文",
"notification_requests.accept": "接受",
"notification_requests.dismiss": "忽略",
+ "notification_requests.edit_selection": "編輯",
"notification_requests.exit_selection": "完成",
+ "notification_requests.maximize": "最大化",
"notification_requests.notifications_from": "來自 {name} 的通知",
"notification_requests.title": "已過濾之通知",
"notifications.clear": "清空通知紀錄",
@@ -486,6 +489,7 @@
"notifications.column_settings.filter_bar.category": "快速篩選欄",
"notifications.column_settings.follow": "新追蹤者:",
"notifications.column_settings.follow_request": "新的追蹤請求:",
+ "notifications.column_settings.group": "群組",
"notifications.column_settings.mention": "提及你:",
"notifications.column_settings.poll": "投票結果:",
"notifications.column_settings.push": "推送通知",
@@ -509,6 +513,9 @@
"notifications.permission_denied": "本站不能發送桌面通知,因為瀏覽器先前拒絕了本站的桌面通知權限請求",
"notifications.permission_denied_alert": "無法啟用桌面通知,因為瀏覽器先前拒絕了本站的桌面通知權限請求",
"notifications.permission_required": "由於瀏覽器未有授予桌面通知權限,本站暫未能發送桌面通知。",
+ "notifications.policy.accept": "接受",
+ "notifications.policy.drop": "忽略",
+ "notifications.policy.filter": "篩選",
"notifications.policy.filter_new_accounts.hint": "在過去 {days, plural, other {# 天}}內建立",
"notifications.policy.filter_new_accounts_title": "新帳號",
"notifications.policy.filter_not_followers_hint": "包括追蹤你不到 {days, plural, other {# 天}}的人",
@@ -522,6 +529,7 @@
"notifications_permission_banner.title": "不放過任何事情",
"onboarding.follows.done": "完成",
"onboarding.follows.empty": "很遺憾,現在無法顯示任何結果。你可以嘗試搜尋或瀏覽探索頁面來找使用者來追蹤,或者稍後再試。",
+ "onboarding.follows.search": "搜尋",
"onboarding.profile.discoverable": "將個人檔案設為可被搜尋",
"onboarding.profile.discoverable_hint": "當你在 Mastodon 上選擇可被搜尋時,你的帖文可能會出現在搜尋結果和熱門,你的個人檔案也可能被推薦給與你興趣相似的人。",
"onboarding.profile.display_name": "顯示名稱",
@@ -615,6 +623,7 @@
"report_notification.attached_statuses": "已附上 {count, plural, one {{count} 則帖文} other {{count} 則帖文}}",
"report_notification.categories.legal": "法律",
"report_notification.categories.other": "其他",
+ "report_notification.categories.other_sentence": "其他",
"report_notification.categories.spam": "垃圾訊息",
"report_notification.categories.violation": "違反規則",
"report_notification.open": "打開檢舉報告",
@@ -703,7 +712,10 @@
"subscribed_languages.save": "儲存變更",
"subscribed_languages.target": "變更 {target} 的訂閱語言",
"tabs_bar.home": "主頁",
+ "tabs_bar.menu": "功能表",
"tabs_bar.notifications": "通知",
+ "tabs_bar.publish": "新嘟文",
+ "tabs_bar.search": "搜尋",
"time_remaining.days": "剩餘 {number, plural, one {# 天} other {# 天}}",
"time_remaining.hours": "剩餘 {number, plural, one {# 小時} other {# 小時}}",
"time_remaining.minutes": "剩餘 {number, plural, one {# 分鐘} other {# 分鐘}}",
@@ -730,5 +742,7 @@
"video.fullscreen": "全螢幕",
"video.hide": "隱藏影片",
"video.pause": "暫停",
- "video.play": "播放"
+ "video.play": "播放",
+ "video.volume_down": "調低音量",
+ "video.volume_up": "調高音量"
}
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index b045d2d7f57..8703026268c 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "顯示設定",
"column_header.unpin": "取消釘選",
"column_search.cancel": "取消",
- "column_subheading.settings": "設定",
"community.column_settings.local_only": "只顯示本站",
"community.column_settings.media_only": "只顯示媒體",
"community.column_settings.remote_only": "只顯示遠端",
@@ -220,11 +219,15 @@
"confirmations.delete_list.confirm": "刪除",
"confirmations.delete_list.message": "您確定要永久刪除此列表嗎?",
"confirmations.delete_list.title": "是否刪除該列表?",
+ "confirmations.discard_draft.confirm": "捨棄並繼續",
+ "confirmations.discard_draft.edit.cancel": "恢復編輯",
+ "confirmations.discard_draft.edit.message": "繼續將會捨棄任何您對正在編輯的此嘟文進行之任何變更。",
+ "confirmations.discard_draft.edit.title": "是否捨棄對您的嘟文之變更?",
+ "confirmations.discard_draft.post.cancel": "恢復草稿",
+ "confirmations.discard_draft.post.message": "繼續將捨棄您正在撰寫中之嘟文。",
+ "confirmations.discard_draft.post.title": "是否捨棄您的嘟文草稿?",
"confirmations.discard_edit_media.confirm": "捨棄",
"confirmations.discard_edit_media.message": "您於媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?",
- "confirmations.edit.confirm": "編輯",
- "confirmations.edit.message": "編輯嘟文將覆蓋掉您目前正在撰寫之嘟文內容。您是否仍要繼續?",
- "confirmations.edit.title": "是否覆寫該嘟文?",
"confirmations.follow_to_list.confirm": "跟隨並加入至列表",
"confirmations.follow_to_list.message": "您必須先跟隨 {name} 以將其加入至列表。",
"confirmations.follow_to_list.title": "是否跟隨該使用者?",
@@ -242,9 +245,6 @@
"confirmations.remove_from_followers.confirm": "移除跟隨者",
"confirmations.remove_from_followers.message": "{name} 將會停止跟隨您。您確定要繼續嗎?",
"confirmations.remove_from_followers.title": "是否移除該跟隨者?",
- "confirmations.reply.confirm": "回覆",
- "confirmations.reply.message": "回覆嘟文將覆蓋掉您目前正在撰寫之嘟文內容。您是否仍要繼續?",
- "confirmations.reply.title": "是否覆寫該嘟文?",
"confirmations.unfollow.confirm": "取消跟隨",
"confirmations.unfollow.message": "您確定要取消跟隨 {name} 嗎?",
"confirmations.unfollow.title": "是否取消跟隨該使用者?",
@@ -555,12 +555,8 @@
"navigation_bar.automated_deletion": "自動嘟文刪除",
"navigation_bar.blocks": "已封鎖的使用者",
"navigation_bar.bookmarks": "書籤",
- "navigation_bar.community_timeline": "本站時間軸",
- "navigation_bar.compose": "撰寫新嘟文",
"navigation_bar.direct": "私訊",
- "navigation_bar.discover": "探索",
"navigation_bar.domain_blocks": "已封鎖網域",
- "navigation_bar.explore": "探索",
"navigation_bar.favourites": "最愛",
"navigation_bar.filters": "已靜音的關鍵字",
"navigation_bar.follow_requests": "跟隨請求",
@@ -568,19 +564,17 @@
"navigation_bar.follows_and_followers": "跟隨中與跟隨者",
"navigation_bar.import_export": "匯入及匯出",
"navigation_bar.lists": "列表",
+ "navigation_bar.live_feed_local": "即時內容(本站)",
+ "navigation_bar.live_feed_public": "即時內容(公開)",
"navigation_bar.logout": "登出",
"navigation_bar.moderation": "站務",
"navigation_bar.more": "更多",
"navigation_bar.mutes": "已靜音的使用者",
"navigation_bar.opened_in_classic_interface": "預設於經典網頁介面中開啟嘟文、帳號與其他特定頁面。",
- "navigation_bar.personal": "個人",
- "navigation_bar.pins": "釘選的嘟文",
"navigation_bar.preferences": "偏好設定",
"navigation_bar.privacy_and_reach": "隱私權及觸及",
- "navigation_bar.public_timeline": "聯邦時間軸",
"navigation_bar.search": "搜尋",
"navigation_bar.search_trends": "搜尋 / 熱門趨勢",
- "navigation_bar.security": "安全性",
"navigation_panel.collapse_followed_tags": "收合已跟隨主題標籤選單",
"navigation_panel.collapse_lists": "收合列表選單",
"navigation_panel.expand_followed_tags": "展開已跟隨主題標籤選單",
@@ -811,6 +805,7 @@
"report_notification.categories.violation": "違反規則",
"report_notification.categories.violation_sentence": "違反規則",
"report_notification.open": "開啟檢舉報告",
+ "search.clear": "清除搜尋紀錄",
"search.no_recent_searches": "尚無最近的搜尋紀錄",
"search.placeholder": "搜尋",
"search.quick_action.account_search": "符合的個人檔案 {x}",
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index 330dcd93d09..6b799a46e80 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -68,6 +68,7 @@ const initialState = ImmutableMap({
is_submitting: false,
is_changing_upload: false,
is_uploading: false,
+ should_redirect_to_compose_page: false,
progress: 0,
isUploadingThumbnail: false,
thumbnailProgress: 0,
@@ -322,11 +323,21 @@ export const composeReducer = (state = initialState, action) => {
case STORE_HYDRATE:
return hydrate(state, action.state.get('compose'));
case COMPOSE_MOUNT:
- return state.set('mounted', state.get('mounted') + 1);
+ return state
+ .set('mounted', state.get('mounted') + 1)
+ .set('should_redirect_to_compose_page', false);
case COMPOSE_UNMOUNT:
return state
.set('mounted', Math.max(state.get('mounted') - 1, 0))
- .set('is_composing', false);
+ .set('is_composing', false)
+ .set(
+ 'should_redirect_to_compose_page',
+ (state.get('mounted') === 1 &&
+ state.get('is_composing') === true &&
+ (state.get('text').trim() !== '' ||
+ state.get('media_attachments').size > 0)
+ )
+ );
case COMPOSE_SENSITIVITY_CHANGE:
return state.withMutations(map => {
if (!state.get('spoiler')) {
diff --git a/app/javascript/mastodon/reducers/index.ts b/app/javascript/mastodon/reducers/index.ts
index 9c3583c7a3b..cbf22b31184 100644
--- a/app/javascript/mastodon/reducers/index.ts
+++ b/app/javascript/mastodon/reducers/index.ts
@@ -1,4 +1,4 @@
-import { Record as ImmutableRecord } from 'immutable';
+import { Record as ImmutableRecord, mergeDeep } from 'immutable';
import { loadingBarReducer } from 'react-redux-loading-bar';
import { combineReducers } from 'redux-immutable';
@@ -36,6 +36,7 @@ import settings from './settings';
import status_lists from './status_lists';
import statuses from './statuses';
import { suggestionsReducer } from './suggestions';
+import { followedTagsReducer } from './tags';
import timelines from './timelines';
import trends from './trends';
import user_lists from './user_lists';
@@ -67,6 +68,7 @@ const reducers = {
height_cache,
custom_emojis,
lists: listsReducer,
+ followedTags: followedTagsReducer,
filters,
conversations,
suggestions: suggestionsReducer,
@@ -96,6 +98,15 @@ const initialRootState = Object.fromEntries(
const RootStateRecord = ImmutableRecord(initialRootState, 'RootState');
-const rootReducer = combineReducers(reducers, RootStateRecord);
+export const rootReducer = combineReducers(reducers, RootStateRecord);
-export { rootReducer };
+export function reducerWithInitialState(
+ stateOverrides: Record = {},
+) {
+ const initialStateRecord = mergeDeep(initialRootState, stateOverrides);
+ const PatchedRootStateRecord = ImmutableRecord(
+ initialStateRecord,
+ 'RootState',
+ );
+ return combineReducers(reducers, PatchedRootStateRecord);
+}
diff --git a/app/javascript/mastodon/reducers/tags.ts b/app/javascript/mastodon/reducers/tags.ts
new file mode 100644
index 00000000000..fb43420fbfc
--- /dev/null
+++ b/app/javascript/mastodon/reducers/tags.ts
@@ -0,0 +1,48 @@
+import { createReducer } from '@reduxjs/toolkit';
+
+import {
+ fetchFollowedHashtags,
+ markFollowedHashtagsStale,
+ unfollowHashtag,
+} from 'mastodon/actions/tags_typed';
+import type { ApiHashtagJSON } from 'mastodon/api_types/tags';
+
+export interface TagsQuery {
+ tags: ApiHashtagJSON[];
+ loading: boolean;
+ stale: boolean;
+ next: string | undefined;
+}
+
+const initialState: TagsQuery = {
+ tags: [],
+ loading: false,
+ stale: true,
+ next: undefined,
+};
+
+export const followedTagsReducer = createReducer(initialState, (builder) => {
+ builder
+ .addCase(fetchFollowedHashtags.pending, (state) => {
+ state.loading = true;
+ })
+ .addCase(fetchFollowedHashtags.rejected, (state) => {
+ state.loading = false;
+ })
+ .addCase(markFollowedHashtagsStale, (state) => {
+ state.stale = true;
+ })
+ .addCase(unfollowHashtag.fulfilled, (state, action) => {
+ const tagId = action.payload.id;
+ state.tags = state.tags.filter((tag) => tag.id !== tagId);
+ })
+ .addCase(fetchFollowedHashtags.fulfilled, (state, action) => {
+ const { tags, links, replace } = action.payload;
+ const next = links.refs.find((link) => link.rel === 'next');
+
+ state.tags = replace ? tags : [...state.tags, ...tags];
+ state.next = next?.uri;
+ state.stale = false;
+ state.loading = false;
+ });
+});
diff --git a/app/javascript/mastodon/store/store.ts b/app/javascript/mastodon/store/store.ts
index 9f43f58a43d..9f83f2f3e16 100644
--- a/app/javascript/mastodon/store/store.ts
+++ b/app/javascript/mastodon/store/store.ts
@@ -6,24 +6,26 @@ import { errorsMiddleware } from './middlewares/errors';
import { loadingBarMiddleware } from './middlewares/loading_bar';
import { soundsMiddleware } from './middlewares/sounds';
+export const defaultMiddleware = {
+ // In development, Redux Toolkit enables 2 default middlewares to detect
+ // common issues with states. Unfortunately, our use of ImmutableJS for state
+ // triggers both, so lets disable them until our state is fully refactored
+
+ // https://redux-toolkit.js.org/api/serializabilityMiddleware
+ // This checks recursively that every values in the state are serializable in JSON
+ // Which is not the case, as we use ImmutableJS structures, but also File objects
+ serializableCheck: false,
+
+ // https://redux-toolkit.js.org/api/immutabilityMiddleware
+ // This checks recursively if every value in the state is immutable (ie, a JS primitive type)
+ // But this is not the case, as our Root State is an ImmutableJS map, which is an object
+ immutableCheck: false,
+} as const;
+
export const store = configureStore({
reducer: rootReducer,
middleware: (getDefaultMiddleware) =>
- getDefaultMiddleware({
- // In development, Redux Toolkit enables 2 default middlewares to detect
- // common issues with states. Unfortunately, our use of ImmutableJS for state
- // triggers both, so lets disable them until our state is fully refactored
-
- // https://redux-toolkit.js.org/api/serializabilityMiddleware
- // This checks recursively that every values in the state are serializable in JSON
- // Which is not the case, as we use ImmutableJS structures, but also File objects
- serializableCheck: false,
-
- // https://redux-toolkit.js.org/api/immutabilityMiddleware
- // This checks recursively if every value in the state is immutable (ie, a JS primitive type)
- // But this is not the case, as our Root State is an ImmutableJS map, which is an object
- immutableCheck: false,
- })
+ getDefaultMiddleware(defaultMiddleware)
.concat(
loadingBarMiddleware({
promiseTypeSuffixes: ['REQUEST', 'SUCCESS', 'FAIL'],
diff --git a/app/javascript/mastodon/utils/scrollbar.ts b/app/javascript/mastodon/utils/scrollbar.ts
deleted file mode 100644
index d505df12449..00000000000
--- a/app/javascript/mastodon/utils/scrollbar.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { isMobile } from '../is_mobile';
-
-let cachedScrollbarWidth: number | null = null;
-
-const getActualScrollbarWidth = () => {
- const outer = document.createElement('div');
- outer.style.visibility = 'hidden';
- outer.style.overflow = 'scroll';
- document.body.appendChild(outer);
-
- const inner = document.createElement('div');
- outer.appendChild(inner);
-
- const scrollbarWidth = outer.offsetWidth - inner.offsetWidth;
- outer.remove();
-
- return scrollbarWidth;
-};
-
-export const getScrollbarWidth = () => {
- if (cachedScrollbarWidth !== null) {
- return cachedScrollbarWidth;
- }
-
- const scrollbarWidth = isMobile(window.innerWidth)
- ? 0
- : getActualScrollbarWidth();
- cachedScrollbarWidth = scrollbarWidth;
-
- return scrollbarWidth;
-};
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 7e11af12477..874c44240a4 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -101,7 +101,7 @@
}
// Change the background colors of statuses
-.focusable:focus {
+.focusable:focus-visible {
background: lighten($white, 4%);
}
diff --git a/app/javascript/styles/mastodon/_variables.scss b/app/javascript/styles/mastodon/_variables.scss
index e2a5afbe018..816a9d9998c 100644
--- a/app/javascript/styles/mastodon/_variables.scss
+++ b/app/javascript/styles/mastodon/_variables.scss
@@ -86,6 +86,11 @@ $inverted-text-color: $ui-base-color !default;
$lighter-text-color: $ui-base-lighter-color !default;
$light-text-color: $ui-primary-color !default;
+// Keep this filter a SCSS variable rather than
+// a CSS Custom Property due to this Safari bug:
+// https://github.com/mdn/browser-compat-data/issues/25914#issuecomment-2676190245
+$backdrop-blur-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
+
// Language codes that uses CJK fonts
$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index bc51163f1d5..3709a4f504c 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -1632,6 +1632,17 @@ a.sparkline {
}
}
+ a.timestamp {
+ color: $darker-text-color;
+ text-decoration: none;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: underline;
+ }
+ }
+
time {
margin-inline-start: 5px;
vertical-align: baseline;
diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss
index f7dd06e7b21..0dce0b9b3ea 100644
--- a/app/javascript/styles/mastodon/basics.scss
+++ b/app/javascript/styles/mastodon/basics.scss
@@ -1,6 +1,20 @@
@use 'variables' as *;
@use 'functions' as *;
+html.has-modal {
+ &,
+ body {
+ touch-action: none;
+ overscroll-behavior: none;
+ -webkit-overflow-scrolling: auto;
+ scrollbar-gutter: stable;
+ }
+
+ body {
+ overflow: hidden !important;
+ }
+}
+
body {
font-family: $font-sans-serif, sans-serif;
background: var(--background-color);
@@ -64,20 +78,6 @@ body {
height: 100%;
padding-bottom: env(safe-area-inset-bottom);
}
-
- &.with-modals--active {
- overflow-y: hidden;
- overscroll-behavior: none;
- }
- }
-
- &.with-modals {
- overflow-x: hidden;
- overflow-y: scroll;
-
- &--active {
- overflow-y: hidden;
- }
}
&.player {
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 506e2f0264e..6ab225369d7 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -249,6 +249,21 @@
width: 100%;
}
+ &.loading {
+ cursor: wait;
+
+ .button__label-wrapper {
+ // Hide the label only visually, so that
+ // it keeps its layout and accessibility
+ opacity: 0;
+ }
+
+ .loading-indicator {
+ position: absolute;
+ inset: 0;
+ }
+ }
+
.icon {
width: 18px;
height: 18px;
@@ -347,7 +362,7 @@
&.overlayed {
box-sizing: content-box;
background: rgba($black, 0.65);
- backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
+ backdrop-filter: $backdrop-blur-filter;
color: rgba($white, 0.7);
border-radius: 4px;
padding: 2px;
@@ -1185,6 +1200,7 @@ body > [data-popper-placement] {
line-height: 20px;
letter-spacing: 0.25px;
display: -webkit-box;
+ line-clamp: 4;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
padding: 0;
@@ -1263,6 +1279,7 @@ body > [data-popper-placement] {
letter-spacing: 0.25px;
padding-top: 0 !important;
display: -webkit-box;
+ line-clamp: 4;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
max-height: 4 * 20px;
@@ -1408,9 +1425,10 @@ body > [data-popper-placement] {
}
.focusable {
- &:focus {
+ &:focus-visible {
outline: 0;
background: rgba($ui-highlight-color, 0.05);
+ box-shadow: inset 0 0 0 2px $ui-button-focus-outline-color;
}
}
@@ -1813,7 +1831,7 @@ body > [data-popper-placement] {
background: color.mix($ui-base-color, $ui-highlight-color, 95%);
}
- &:focus {
+ &:focus-visible {
.detailed-status,
.detailed-status__action-bar {
background: color.mix(
@@ -1998,7 +2016,7 @@ body > [data-popper-placement] {
&__popout {
background: var(--dropdown-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--dropdown-border-color);
box-shadow: var(--dropdown-shadow);
max-width: 320px;
@@ -2100,6 +2118,7 @@ body > [data-popper-placement] {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
+ line-clamp: 1;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
margin-top: 10px;
@@ -2674,7 +2693,7 @@ a.account__display-name {
.dropdown-menu {
background: var(--dropdown-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--dropdown-border-color);
padding: 4px;
border-radius: 4px;
@@ -2873,8 +2892,9 @@ a.account__display-name {
gap: 8px;
padding-bottom: env(safe-area-inset-bottom);
background: var(--background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border-top: 1px solid var(--background-border-color);
+ box-sizing: border-box;
.layout-multiple-columns & {
display: none;
@@ -2932,7 +2952,7 @@ a.account__display-name {
.tabs-bar__wrapper {
background: var(--background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
position: sticky;
top: 0;
z-index: 2;
@@ -3086,7 +3106,7 @@ a.account__display-name {
.search__input {
line-height: 18px;
font-size: 16px;
- padding: 15px;
+ padding-block: 15px;
padding-inline-end: 30px;
}
@@ -3124,7 +3144,7 @@ a.account__display-name {
}
}
-@media screen and (max-width: $no-gap-breakpoint - 1px) {
+@media screen and (max-width: ($no-gap-breakpoint - 1px)) {
$sidebar-width: 285px;
.columns-area__panels__main {
@@ -3146,7 +3166,7 @@ a.account__display-name {
.navigation-panel {
margin: 0;
border-inline-start: 1px solid var(--background-border-color);
- height: 100vh;
+ height: 100dvh;
}
.navigation-panel__banner,
@@ -3204,6 +3224,7 @@ a.account__display-name {
.navigation-panel {
width: 284px;
overflow-y: auto;
+ scrollbar-width: thin;
&__menu {
flex-shrink: 0;
@@ -3226,6 +3247,7 @@ a.account__display-name {
.columns-area__panels__pane--overlay {
pointer-events: auto;
background: rgba($base-overlay-background, 0.5);
+ z-index: 3;
.columns-area__panels__pane__inner {
box-shadow: var(--dropdown-shadow);
@@ -3324,7 +3346,7 @@ a.account__display-name {
}
}
-@media screen and (max-width: $no-gap-breakpoint - 1px) {
+@media screen and (max-width: ($no-gap-breakpoint - 1px)) {
.columns-area__panels__pane--compositional {
display: none;
}
@@ -3565,19 +3587,19 @@ a.account__display-name {
}
}
- @media screen and (height <= 930px - 56px) {
+ @media screen and (height <= (930px - 56px)) {
&__portal .trends__item:nth-child(n + 4) {
display: none;
}
}
- @media screen and (height <= 930px - (56px * 2)) {
+ @media screen and (height <= (930px - 56px * 2)) {
&__portal .trends__item:nth-child(n + 3) {
display: none;
}
}
- @media screen and (height <= 930px - (56px * 3)) {
+ @media screen and (height <= (930px - 56px * 3)) {
&__portal {
display: none;
}
@@ -4012,7 +4034,7 @@ a.account__display-name {
background: rgba($base-shadow-color, 0.6);
border-radius: 8px;
padding: 12px 9px;
- backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
+ backdrop-filter: $backdrop-blur-filter;
flex: 0 0 auto;
display: flex;
justify-content: center;
@@ -4110,6 +4132,7 @@ a.status-card {
.status-card.expanded .status-card__title {
white-space: normal;
display: -webkit-box;
+ line-clamp: 2;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
@@ -4640,14 +4663,20 @@ a.status-card {
.icon-button .loading-indicator {
position: static;
transform: none;
+ color: inherit;
.circular-progress {
- color: $primary-text-color;
+ color: inherit;
width: 22px;
height: 22px;
}
}
+.button--compact .loading-indicator .circular-progress {
+ width: 17px;
+ height: 17px;
+}
+
.icon-button .loading-indicator .circular-progress {
color: lighten($ui-base-color, 26%);
width: 12px;
@@ -4789,7 +4818,7 @@ a.status-card {
&__label {
background-color: rgba($black, 0.45);
- backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
+ backdrop-filter: $backdrop-blur-filter;
border-radius: 8px;
padding: 12px 16px;
display: flex;
@@ -5140,7 +5169,7 @@ a.status-card {
margin-top: 5px;
z-index: 2;
background: var(--dropdown-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--dropdown-border-color);
box-shadow: var(--dropdown-shadow);
border-radius: 5px;
@@ -5338,7 +5367,7 @@ a.status-card {
.language-dropdown__dropdown {
box-shadow: var(--dropdown-shadow);
background: var(--dropdown-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--dropdown-border-color);
padding: 4px;
border-radius: 4px;
@@ -5644,18 +5673,47 @@ a.status-card {
}
}
-.search__icon {
- background: transparent;
- border: 0;
- padding: 0;
+.search__icon-wrapper {
position: absolute;
- top: 12px + 2px;
- cursor: default;
- pointer-events: none;
+ top: 14px;
+ display: grid;
margin-inline-start: 16px - 2px;
width: 20px;
height: 20px;
+ .icon {
+ width: 100%;
+ height: 100%;
+ }
+
+ &:not(.has-value) {
+ pointer-events: none;
+ }
+}
+
+.search__icon {
+ grid-area: 1 / 1;
+ transition: all 100ms linear;
+ transition-property: transform, opacity;
+ color: $darker-text-color;
+}
+
+.search__icon.icon-search {
+ .has-value & {
+ pointer-events: none;
+ opacity: 0;
+ transform: rotate(90deg);
+ }
+}
+
+.search__icon--clear-button {
+ background: transparent;
+ border: 0;
+ padding: 0;
+ width: 20px;
+ height: 20px;
+ border-radius: 100%;
+
&::-moz-focus-inner {
border: 0;
}
@@ -5665,39 +5723,14 @@ a.status-card {
outline: 0 !important;
}
- .icon {
- position: absolute;
- top: 0;
- inset-inline-start: 0;
+ &:focus-visible {
+ box-shadow: 0 0 0 2px $ui-button-focus-outline-color;
+ }
+
+ &[aria-hidden='true'] {
+ pointer-events: none;
opacity: 0;
- transition: all 100ms linear;
- transition-property: transform, opacity;
- width: 20px;
- height: 20px;
- color: $darker-text-color;
-
- &.active {
- pointer-events: auto;
- opacity: 1;
- }
- }
-
- .icon-search {
- transform: rotate(90deg);
-
- &.active {
- pointer-events: none;
- transform: rotate(0deg);
- }
- }
-
- .icon-times-circle {
- transform: rotate(0deg);
- cursor: pointer;
-
- &.active {
- transform: rotate(90deg);
- }
+ transform: rotate(-90deg);
}
}
@@ -6014,7 +6047,7 @@ a.status-card {
min-height: 478px;
flex-direction: column;
background: var(--modal-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--modal-border-color);
border-radius: 16px;
@@ -6058,7 +6091,7 @@ a.status-card {
padding: 24px;
flex-direction: column;
background: var(--modal-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--modal-border-color);
}
@@ -6153,6 +6186,7 @@ a.status-card {
font-size: 15px;
line-height: 22px;
color: $dark-text-color;
+ line-clamp: 4;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
max-height: 4 * 22px;
@@ -6275,7 +6309,7 @@ a.status-card {
max-height: 80vh;
flex-direction: column;
background: var(--modal-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--modal-border-color);
border-radius: 16px;
@@ -6342,7 +6376,7 @@ a.status-card {
&__popout {
background: var(--dropdown-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--dropdown-border-color);
box-shadow: var(--dropdown-shadow);
max-width: 320px;
@@ -6702,7 +6736,7 @@ a.status-card {
.actions-modal {
border-radius: 8px 8px 0 0;
background: var(--dropdown-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border-color: var(--dropdown-border-color);
box-shadow: var(--dropdown-shadow);
max-height: 80vh;
@@ -6828,7 +6862,7 @@ a.status-card {
color: $white;
border: 0;
background: rgba($black, 0.65);
- backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
+ backdrop-filter: $backdrop-blur-filter;
padding: 3px 12px;
border-radius: 99px;
font-size: 14px;
@@ -6853,7 +6887,7 @@ a.status-card {
color: $white;
border: 0;
background: rgba($black, 0.65);
- backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
+ backdrop-filter: $backdrop-blur-filter;
padding: 3px 8px;
border-radius: 4px;
font-size: 12px;
@@ -6875,7 +6909,7 @@ a.status-card {
.media-gallery__alt__popover {
background: rgba($black, 0.65);
- backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
+ backdrop-filter: $backdrop-blur-filter;
border-radius: 4px;
box-shadow: var(--dropdown-shadow);
padding: 16px;
@@ -7628,7 +7662,7 @@ a.status-card {
inset-inline-start: 50%;
transform: translate(-50%, -50%);
background: rgba($base-shadow-color, 0.45);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
color: $white;
border-radius: 8px;
padding: 16px 24px;
@@ -7717,7 +7751,7 @@ a.status-card {
display: flex;
flex-shrink: 0;
- @media screen and (max-width: $no-gap-breakpoint - 1px) {
+ @media screen and (max-width: ($no-gap-breakpoint - 1px)) {
border-right: 0;
border-left: 0;
}
@@ -8126,7 +8160,7 @@ noscript {
}
// Fallback for older browsers with no container queries support
- @media screen and (max-width: 372px + 55px) {
+ @media screen and (max-width: (372px + 55px)) {
display: none;
}
}
@@ -8595,7 +8629,7 @@ noscript {
width: 124px;
flex: 0 0 auto;
- @media screen and (max-width: 124px + 300px) {
+ @media screen and (max-width: (124px + 300px)) {
display: none;
}
}
@@ -8605,7 +8639,7 @@ noscript {
flex: 0 0 auto;
position: relative;
- @media screen and (max-width: 124px + 300px) {
+ @media screen and (max-width: (124px + 300px)) {
width: 100%;
}
}
@@ -8698,7 +8732,6 @@ noscript {
height: 100%;
min-width: auto;
min-height: auto;
- vertical-align: bottom;
object-fit: contain;
}
}
@@ -8734,6 +8767,7 @@ noscript {
}
.emoji-picker-dropdown {
+ display: flex;
margin: 2px;
}
@@ -8801,7 +8835,7 @@ noscript {
&__footer {
border-radius: 0 0 4px 4px;
background: var(--modal-background-variant-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--modal-border-color);
border-top: 0;
padding: 12px;
@@ -8812,7 +8846,7 @@ noscript {
&__header {
border-radius: 4px 4px 0 0;
background: var(--modal-background-variant-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--modal-border-color);
border-bottom: 0;
padding: 12px;
@@ -8941,7 +8975,7 @@ noscript {
.search__input {
border: 1px solid var(--background-border-color);
- padding: 12px;
+ padding-block: 12px;
padding-inline-end: 30px;
}
@@ -8959,7 +8993,7 @@ noscript {
.layout-single-column .explore__search-header {
display: none;
- @media screen and (max-width: $no-gap-breakpoint - 1px) {
+ @media screen and (max-width: ($no-gap-breakpoint - 1px)) {
display: flex;
}
}
@@ -9218,7 +9252,7 @@ noscript {
display: block;
border-radius: 16px;
background: var(--modal-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--modal-border-color);
padding: 24px;
box-sizing: border-box;
@@ -9357,7 +9391,7 @@ noscript {
}
}
- @media screen and (max-width: $no-gap-breakpoint - 1px) {
+ @media screen and (max-width: ($no-gap-breakpoint - 1px)) {
&__choices {
flex-direction: column;
@@ -10852,7 +10886,7 @@ noscript {
.hover-card {
box-shadow: var(--dropdown-shadow);
background: var(--modal-background-color);
- backdrop-filter: var(--background-filter);
+ backdrop-filter: $backdrop-blur-filter;
border: 1px solid var(--modal-border-color);
border-radius: 8px;
padding: 16px;
@@ -10902,6 +10936,7 @@ noscript {
font-size: 14px;
line-height: 20px;
display: -webkit-box;
+ line-clamp: 2;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
max-height: 2 * 20px;
diff --git a/app/javascript/styles/mastodon/css_variables.scss b/app/javascript/styles/mastodon/css_variables.scss
index 4390a917bfa..431cdd7a8e8 100644
--- a/app/javascript/styles/mastodon/css_variables.scss
+++ b/app/javascript/styles/mastodon/css_variables.scss
@@ -11,7 +11,6 @@
--modal-background-variant-color: #{rgba($ui-base-color, 0.7)};
--modal-border-color: #{lighten($ui-base-color, 4%)};
--background-border-color: #{lighten($ui-base-color, 4%)};
- --background-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
--background-color: #{darken($ui-base-color, 8%)};
--background-color-tint: #{rgba(darken($ui-base-color, 8%), 0.9)};
--surface-background-color: #{darken($ui-base-color, 4%)};
diff --git a/app/javascript/testing/api.ts b/app/javascript/testing/api.ts
new file mode 100644
index 00000000000..4948d719974
--- /dev/null
+++ b/app/javascript/testing/api.ts
@@ -0,0 +1,53 @@
+import { http, HttpResponse } from 'msw';
+import { action } from 'storybook/actions';
+
+import { relationshipsFactory } from './factories';
+
+export const mockHandlers = {
+ mute: http.post<{ id: string }>('/api/v1/accounts/:id/mute', ({ params }) => {
+ action('muting account')(params);
+ return HttpResponse.json(
+ relationshipsFactory({ id: params.id, muting: true }),
+ );
+ }),
+ unmute: http.post<{ id: string }>(
+ '/api/v1/accounts/:id/unmute',
+ ({ params }) => {
+ action('unmuting account')(params);
+ return HttpResponse.json(
+ relationshipsFactory({ id: params.id, muting: false }),
+ );
+ },
+ ),
+ block: http.post<{ id: string }>(
+ '/api/v1/accounts/:id/block',
+ ({ params }) => {
+ action('blocking account')(params);
+ return HttpResponse.json(
+ relationshipsFactory({ id: params.id, blocking: true }),
+ );
+ },
+ ),
+ unblock: http.post<{ id: string }>(
+ '/api/v1/accounts/:id/unblock',
+ ({ params }) => {
+ action('unblocking account')(params);
+ return HttpResponse.json(
+ relationshipsFactory({
+ id: params.id,
+ blocking: false,
+ }),
+ );
+ },
+ ),
+};
+
+export const unhandledRequestHandler = ({ url }: Request) => {
+ const { pathname } = new URL(url);
+ if (pathname.startsWith('/api/v1/')) {
+ action(`unhandled request to ${pathname}`)(url);
+ console.warn(
+ `Unhandled request to ${pathname}. Please add a handler for this request in your storybook configuration.`,
+ );
+ }
+};
diff --git a/app/javascript/testing/factories.ts b/app/javascript/testing/factories.ts
new file mode 100644
index 00000000000..5b2fbfe594e
--- /dev/null
+++ b/app/javascript/testing/factories.ts
@@ -0,0 +1,70 @@
+import type { ApiRelationshipJSON } from '@/mastodon/api_types/relationships';
+import { createAccountFromServerJSON } from '@/mastodon/models/account';
+import type { ApiAccountJSON } from 'mastodon/api_types/accounts';
+
+type FactoryOptions = {
+ id?: string;
+} & Partial;
+
+type FactoryFunction = (options?: FactoryOptions) => T;
+
+export const accountFactory: FactoryFunction = ({
+ id,
+ ...data
+} = {}) => ({
+ id: id ?? '1',
+ acct: 'testuser',
+ avatar: '/avatars/original/missing.png',
+ avatar_static: '/avatars/original/missing.png',
+ username: 'testuser',
+ display_name: 'Test User',
+ bot: false,
+ created_at: '2023-01-01T00:00:00.000Z',
+ discoverable: true,
+ emojis: [],
+ fields: [],
+ followers_count: 0,
+ following_count: 0,
+ group: false,
+ header: '/header.png',
+ header_static: '/header_static.png',
+ indexable: true,
+ last_status_at: '2023-01-01',
+ locked: false,
+ mute_expires_at: null,
+ note: 'This is a test user account.',
+ statuses_count: 0,
+ suspended: false,
+ url: '/@testuser',
+ uri: '/users/testuser',
+ noindex: false,
+ roles: [],
+ hide_collections: false,
+ ...data,
+});
+
+export const accountFactoryState = (
+ options: FactoryOptions = {},
+) => createAccountFromServerJSON(accountFactory(options));
+
+export const relationshipsFactory: FactoryFunction = ({
+ id,
+ ...data
+} = {}) => ({
+ id: id ?? '1',
+ following: false,
+ followed_by: false,
+ blocking: false,
+ blocked_by: false,
+ languages: null,
+ muting_notifications: false,
+ note: '',
+ requested_by: false,
+ muting: false,
+ requested: false,
+ domain_blocking: false,
+ endorsed: false,
+ notifying: false,
+ showing_reblogs: true,
+ ...data,
+});
diff --git a/app/javascript/mastodon/test_helpers.tsx b/app/javascript/testing/rendering.tsx
similarity index 95%
rename from app/javascript/mastodon/test_helpers.tsx
rename to app/javascript/testing/rendering.tsx
index ae1f1cd4f6e..0cb671c367a 100644
--- a/app/javascript/mastodon/test_helpers.tsx
+++ b/app/javascript/testing/rendering.tsx
@@ -5,7 +5,7 @@ import { MemoryRouter } from 'react-router';
import type { RenderOptions } from '@testing-library/react';
import { render as rtlRender } from '@testing-library/react';
-import { IdentityContext } from './identity_context';
+import { IdentityContext } from '@/mastodon/identity_context';
beforeAll(() => {
global.requestIdleCallback = vi.fn((cb: IdleRequestCallback) => {
diff --git a/app/lib/annual_report/archetype.rb b/app/lib/annual_report/archetype.rb
index c02b28dfda2..41973294a62 100644
--- a/app/lib/annual_report/archetype.rb
+++ b/app/lib/annual_report/archetype.rb
@@ -28,15 +28,15 @@ class AnnualReport::Archetype < AnnualReport::Source
end
def polls_count
- @polls_count ||= report_statuses.where.not(poll_id: nil).count
+ @polls_count ||= report_statuses.only_polls.count
end
def reblogs_count
- @reblogs_count ||= report_statuses.where.not(reblog_of_id: nil).count
+ @reblogs_count ||= report_statuses.only_reblogs.count
end
def replies_count
- @replies_count ||= report_statuses.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count
+ @replies_count ||= report_statuses.where.not(in_reply_to_id: nil).not_replying_to_account(@account).count
end
def standalone_count
diff --git a/app/lib/annual_report/commonly_interacted_with_accounts.rb b/app/lib/annual_report/commonly_interacted_with_accounts.rb
index c2aee44dea4..219c30063a4 100644
--- a/app/lib/annual_report/commonly_interacted_with_accounts.rb
+++ b/app/lib/annual_report/commonly_interacted_with_accounts.rb
@@ -18,7 +18,7 @@ class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source
private
def commonly_interacted_with_accounts
- report_statuses.where.not(in_reply_to_account_id: @account.id).group(:in_reply_to_account_id).having(minimum_interaction_count).order(count_all: :desc).limit(SET_SIZE).count
+ report_statuses.not_replying_to_account(@account).group(:in_reply_to_account_id).having(minimum_interaction_count).order(count_all: :desc).limit(SET_SIZE).count
end
def minimum_interaction_count
diff --git a/app/lib/annual_report/most_reblogged_accounts.rb b/app/lib/annual_report/most_reblogged_accounts.rb
index a23734fce3c..df4dedb7344 100644
--- a/app/lib/annual_report/most_reblogged_accounts.rb
+++ b/app/lib/annual_report/most_reblogged_accounts.rb
@@ -18,7 +18,7 @@ class AnnualReport::MostRebloggedAccounts < AnnualReport::Source
private
def most_reblogged_accounts
- report_statuses.where.not(reblog_of_id: nil).joins(reblog: :account).group(accounts: [:id]).having(minimum_reblog_count).order(count_all: :desc).limit(SET_SIZE).count
+ report_statuses.only_reblogs.joins(reblog: :account).group(accounts: [:id]).having(minimum_reblog_count).order(count_all: :desc).limit(SET_SIZE).count
end
def minimum_reblog_count
diff --git a/app/lib/annual_report/time_series.rb b/app/lib/annual_report/time_series.rb
index 65a188eda7b..3f9f0d52e88 100644
--- a/app/lib/annual_report/time_series.rb
+++ b/app/lib/annual_report/time_series.rb
@@ -17,14 +17,34 @@ class AnnualReport::TimeSeries < AnnualReport::Source
private
def statuses_per_month
- @statuses_per_month ||= report_statuses.group(:period).pluck(Arel.sql("date_part('month', created_at)::int AS period, count(*)")).to_h
+ @statuses_per_month ||= report_statuses.group(:period).pluck(date_part_month.as('period'), Arel.star.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
+ @following_per_month ||= annual_relationships_by_month(@account.active_relationships)
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
+ @followers_per_month ||= annual_relationships_by_month(@account.passive_relationships)
+ end
+
+ def date_part_month
+ Arel.sql(<<~SQL.squish)
+ DATE_PART('month', created_at)::int
+ SQL
+ end
+
+ def annual_relationships_by_month(relationships)
+ relationships
+ .where(created_in_year, @year)
+ .group(:period)
+ .pluck(date_part_month.as('period'), Arel.star.count)
+ .to_h
+ end
+
+ def created_in_year
+ Arel.sql(<<~SQL.squish)
+ DATE_PART('year', created_at) = ?
+ SQL
end
end
diff --git a/app/lib/annual_report/top_statuses.rb b/app/lib/annual_report/top_statuses.rb
index 74b129595ac..f32bd09a15a 100644
--- a/app/lib/annual_report/top_statuses.rb
+++ b/app/lib/annual_report/top_statuses.rb
@@ -2,20 +2,44 @@
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&.to_s,
- by_favourites: top_favourites&.to_s,
- by_replies: top_replies&.to_s,
+ by_reblogs: status_identifier(most_reblogged_status),
+ by_favourites: status_identifier(most_favourited_status),
+ by_replies: status_identifier(most_replied_status),
},
}
end
+ private
+
+ def status_identifier(status)
+ status.id.to_s if status.present?
+ end
+
+ def most_reblogged_status
+ base_scope
+ .order(reblogs_count: :desc)
+ .first
+ end
+
+ def most_favourited_status
+ base_scope
+ .excluding(most_reblogged_status)
+ .order(favourites_count: :desc)
+ .first
+ end
+
+ def most_replied_status
+ base_scope
+ .excluding(most_reblogged_status, most_favourited_status)
+ .order(replies_count: :desc)
+ .first
+ end
+
def base_scope
- report_statuses.public_visibility.joins(:status_stat)
+ report_statuses
+ .public_visibility
+ .joins(:status_stat)
end
end
diff --git a/app/lib/annual_report/type_distribution.rb b/app/lib/annual_report/type_distribution.rb
index fe38d8a8a2d..0534055c28e 100644
--- a/app/lib/annual_report/type_distribution.rb
+++ b/app/lib/annual_report/type_distribution.rb
@@ -5,8 +5,8 @@ class AnnualReport::TypeDistribution < AnnualReport::Source
{
type_distribution: {
total: report_statuses.count,
- reblogs: report_statuses.where.not(reblog_of_id: nil).count,
- replies: report_statuses.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count,
+ reblogs: report_statuses.only_reblogs.count,
+ replies: report_statuses.where.not(in_reply_to_id: nil).not_replying_to_account(@account).count,
standalone: report_statuses.without_replies.without_reblogs.count,
},
}
diff --git a/app/lib/fasp/request.rb b/app/lib/fasp/request.rb
index 6ea837b89cc..2002e90bb06 100644
--- a/app/lib/fasp/request.rb
+++ b/app/lib/fasp/request.rb
@@ -49,6 +49,8 @@ class Fasp::Request
end
def validate!(response)
+ raise Mastodon::UnexpectedResponseError, response if response.code >= 400
+
content_digest_header = response.headers['content-digest']
raise Mastodon::SignatureVerificationError, 'content-digest missing' if content_digest_header.blank?
raise Mastodon::SignatureVerificationError, 'content-digest does not match' if content_digest_header != content_digest(response.body)
diff --git a/app/lib/search_query_transformer.rb b/app/lib/search_query_transformer.rb
index 59352c6e6e3..fae2403281e 100644
--- a/app/lib/search_query_transformer.rb
+++ b/app/lib/search_query_transformer.rb
@@ -35,7 +35,7 @@ class SearchQueryTransformer < Parslet::Transform
private
def clauses_by_operator
- @clauses_by_operator ||= @clauses.compact.chunk(&:operator).to_h
+ @clauses_by_operator ||= @clauses.compact.group_by(&:operator)
end
def flags_from_clauses!
diff --git a/app/lib/signed_request.rb b/app/lib/signed_request.rb
index 066411c680f..0ee47ddae12 100644
--- a/app/lib/signed_request.rb
+++ b/app/lib/signed_request.rb
@@ -196,6 +196,8 @@ class SignedRequest
return if body_digest == received_digest
raise Mastodon::SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{received_digest}"
+ rescue Starry::ParseError
+ raise Mastodon::MalformedHeaderError, 'Content-Digest could not be parsed. It does not contain a valid RFC8941 dictionary.'
end
def created_time
diff --git a/app/mailers/concerns/bulk_mail_settings_concern.rb b/app/mailers/concerns/bulk_mail_settings_concern.rb
new file mode 100644
index 00000000000..601cc6a0ffc
--- /dev/null
+++ b/app/mailers/concerns/bulk_mail_settings_concern.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+module BulkMailSettingsConcern
+ include ActiveSupport::Concern
+ include Mastodon::EmailConfigurationHelper
+
+ private
+
+ def use_bulk_mail_delivery_settings
+ return if bulk_mail_configuration&.dig(:smtp_settings, :address).blank?
+
+ mail.delivery_method.settings = convert_smtp_settings(bulk_mail_configuration[:smtp_settings])
+ end
+
+ def bulk_mail_configuration
+ Rails.configuration.x.email&.bulk_mail
+ end
+end
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
index 0eef9b90dab..fffc80a8e8c 100644
--- a/app/mailers/user_mailer.rb
+++ b/app/mailers/user_mailer.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
class UserMailer < Devise::Mailer
+ include BulkMailSettingsConcern
+
layout 'mailer'
helper :accounts
@@ -12,6 +14,8 @@ class UserMailer < Devise::Mailer
before_action :set_instance
+ after_action :use_bulk_mail_delivery_settings, only: [:announcement_published, :terms_of_service_changed]
+
default to: -> { @resource.email }
def confirmation_instructions(user, token, *, **)
diff --git a/app/models/account.rb b/app/models/account.rb
index 22b8bce6010..c23549c22d9 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -89,6 +89,7 @@ class Account < ApplicationRecord
include Account::FinderConcern
include Account::Header
include Account::Interactions
+ include Account::Mappings
include Account::Merging
include Account::Search
include Account::Sensitizes
@@ -137,10 +138,7 @@ class Account < ApplicationRecord
scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) }
scope :recent, -> { reorder(id: :desc) }
- scope :bots, -> { where(actor_type: AUTOMATED_ACTOR_TYPES) }
scope :non_automated, -> { where.not(actor_type: AUTOMATED_ACTOR_TYPES) }
- 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}%")) }
@@ -162,6 +160,7 @@ class Account < ApplicationRecord
after_update_commit :trigger_update_webhooks
delegate :email,
+ :email_domain,
:unconfirmed_email,
:current_sign_in_at,
:created_at,
diff --git a/app/models/account_statuses_cleanup_policy.rb b/app/models/account_statuses_cleanup_policy.rb
index ef41bb3ee3a..0915003c8b7 100644
--- a/app/models/account_statuses_cleanup_policy.rb
+++ b/app/models/account_statuses_cleanup_policy.rb
@@ -161,7 +161,7 @@ class AccountStatusesCleanupPolicy < ApplicationRecord
end
def without_poll_scope
- Status.where(poll_id: nil)
+ Status.without_polls
end
def without_popular_scope
diff --git a/app/models/account_suggestions.rb b/app/models/account_suggestions.rb
index 98ccf4ad4fd..715a19f761f 100644
--- a/app/models/account_suggestions.rb
+++ b/app/models/account_suggestions.rb
@@ -8,6 +8,7 @@ class AccountSuggestions
AccountSuggestions::FriendsOfFriendsSource,
AccountSuggestions::SimilarProfilesSource,
AccountSuggestions::GlobalSource,
+ AccountSuggestions::FaspSource,
].freeze
BATCH_SIZE = 40
diff --git a/app/models/account_suggestions/fasp_source.rb b/app/models/account_suggestions/fasp_source.rb
new file mode 100644
index 00000000000..245eb9d715f
--- /dev/null
+++ b/app/models/account_suggestions/fasp_source.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AccountSuggestions::FaspSource < AccountSuggestions::Source
+ def get(account, limit: DEFAULT_LIMIT)
+ return [] unless Mastodon::Feature.fasp_enabled?
+
+ base_account_scope(account).where(id: fasp_follow_recommendations_for(account)).limit(limit).pluck(:id).map do |account_id|
+ [account_id, :fasp]
+ end
+ end
+
+ private
+
+ def fasp_follow_recommendations_for(account)
+ Fasp::FollowRecommendation.for_account(account).newest_first.select(:recommended_account_id)
+ end
+end
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
index 7c66b6e6462..3cde3c7f8e4 100644
--- a/app/models/admin/account_action.rb
+++ b/app/models/admin/account_action.rb
@@ -2,6 +2,7 @@
class Admin::AccountAction
include ActiveModel::Model
+ include ActiveModel::Attributes
include AccountableConcern
include Authorization
@@ -20,7 +21,10 @@ class Admin::AccountAction
:report_id,
:warning_preset_id
- attr_reader :warning, :send_email_notification, :include_statuses
+ attr_reader :warning
+
+ attribute :include_statuses, :boolean, default: true
+ attribute :send_email_notification, :boolean, default: true
alias send_email_notification? send_email_notification
alias include_statuses? include_statuses
@@ -28,23 +32,8 @@ class Admin::AccountAction
validates :type, :target_account, :current_account, presence: true
validates :type, inclusion: { in: TYPES }
- def initialize(attributes = {})
- @send_email_notification = true
- @include_statuses = true
-
- super
- end
-
- def send_email_notification=(value)
- @send_email_notification = ActiveModel::Type::Boolean.new.cast(value)
- end
-
- def include_statuses=(value)
- @include_statuses = ActiveModel::Type::Boolean.new.cast(value)
- end
-
- def save!
- raise ActiveRecord::RecordInvalid, self unless valid?
+ def save
+ return false unless valid?
ApplicationRecord.transaction do
process_action!
@@ -54,6 +43,12 @@ class Admin::AccountAction
process_notification!
process_queue!
+
+ true
+ end
+
+ def save!
+ raise ActiveRecord::RecordInvalid, self unless save
end
def report
@@ -185,7 +180,7 @@ class Admin::AccountAction
@reports ||= if type == 'none'
with_report? ? [report] : []
else
- Report.where(target_account: target_account).unresolved
+ target_account.targeted_reports.unresolved
end
end
diff --git a/app/models/admin/status_batch_action.rb b/app/models/admin/status_batch_action.rb
index 4a100019351..4d0ee130382 100644
--- a/app/models/admin/status_batch_action.rb
+++ b/app/models/admin/status_batch_action.rb
@@ -2,6 +2,7 @@
class Admin::StatusBatchAction
include ActiveModel::Model
+ include ActiveModel::Attributes
include AccountableConcern
include Authorization
@@ -9,11 +10,7 @@ class Admin::StatusBatchAction
:status_ids, :report_id,
:text
- attr_reader :send_email_notification
-
- def send_email_notification=(value)
- @send_email_notification = ActiveModel::Type::Boolean.new.cast(value)
- end
+ attribute :send_email_notification, :boolean
def save!
process_action!
diff --git a/app/models/concerns/account/associations.rb b/app/models/concerns/account/associations.rb
index cafb2d151c1..62c55da5de1 100644
--- a/app/models/concerns/account/associations.rb
+++ b/app/models/concerns/account/associations.rb
@@ -18,6 +18,7 @@ module Account::Associations
has_many :favourites
has_many :featured_tags, -> { includes(:tag) }
has_many :list_accounts
+ has_many :instance_moderation_notes
has_many :media_attachments
has_many :mentions
has_many :migrations, class_name: 'AccountMigration'
diff --git a/app/models/concerns/account/interactions.rb b/app/models/concerns/account/interactions.rb
index 33d51abed9f..4eab55ca3e6 100644
--- a/app/models/concerns/account/interactions.rb
+++ b/app/models/concerns/account/interactions.rb
@@ -3,74 +3,6 @@
module Account::Interactions
extend ActiveSupport::Concern
- class_methods do
- def following_map(target_account_ids, account_id)
- Follow.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |follow, mapping|
- mapping[follow.target_account_id] = {
- reblogs: follow.show_reblogs?,
- notify: follow.notify?,
- languages: follow.languages,
- }
- end
- end
-
- def followed_by_map(target_account_ids, account_id)
- follow_mapping(Follow.where(account_id: target_account_ids, target_account_id: account_id), :account_id)
- end
-
- def blocking_map(target_account_ids, account_id)
- follow_mapping(Block.where(target_account_id: target_account_ids, account_id: account_id), :target_account_id)
- end
-
- def blocked_by_map(target_account_ids, account_id)
- follow_mapping(Block.where(account_id: target_account_ids, target_account_id: account_id), :account_id)
- end
-
- def muting_map(target_account_ids, account_id)
- Mute.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |mute, mapping|
- mapping[mute.target_account_id] = {
- notifications: mute.hide_notifications?,
- }
- end
- end
-
- def requested_map(target_account_ids, account_id)
- FollowRequest.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |follow_request, mapping|
- mapping[follow_request.target_account_id] = {
- reblogs: follow_request.show_reblogs?,
- notify: follow_request.notify?,
- languages: follow_request.languages,
- }
- end
- end
-
- def requested_by_map(target_account_ids, account_id)
- follow_mapping(FollowRequest.where(account_id: target_account_ids, target_account_id: account_id), :account_id)
- end
-
- def endorsed_map(target_account_ids, account_id)
- follow_mapping(AccountPin.where(account_id: account_id, target_account_id: target_account_ids), :target_account_id)
- end
-
- def account_note_map(target_account_ids, account_id)
- AccountNote.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |note, mapping|
- mapping[note.target_account_id] = {
- comment: note.comment,
- }
- end
- end
-
- def domain_blocking_map_by_domain(target_domains, account_id)
- follow_mapping(AccountDomainBlock.where(account_id: account_id, domain: target_domains), :domain)
- end
-
- private
-
- def follow_mapping(query, field)
- query.pluck(field).index_with(true)
- end
- end
-
included do
# Follow relations
has_many :follow_requests, dependent: :destroy
@@ -290,21 +222,6 @@ module Account::Interactions
end
end
- def relations_map(account_ids, domains = nil, **options)
- relations = {
- blocked_by: Account.blocked_by_map(account_ids, id),
- following: Account.following_map(account_ids, id),
- }
-
- return relations if options[:skip_blocking_and_muting]
-
- relations.merge!({
- blocking: Account.blocking_map(account_ids, id),
- muting: Account.muting_map(account_ids, id),
- domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, id),
- })
- end
-
def normalized_domain(domain)
TagManager.instance.normalize_domain(domain)
end
diff --git a/app/models/concerns/account/mappings.rb b/app/models/concerns/account/mappings.rb
new file mode 100644
index 00000000000..c4eddc1fc22
--- /dev/null
+++ b/app/models/concerns/account/mappings.rb
@@ -0,0 +1,108 @@
+# frozen_string_literal: true
+
+module Account::Mappings
+ extend ActiveSupport::Concern
+
+ class_methods do
+ def following_map(target_account_ids, account_id)
+ Follow.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |follow, mapping|
+ mapping[follow.target_account_id] = {
+ reblogs: follow.show_reblogs?,
+ notify: follow.notify?,
+ languages: follow.languages,
+ }
+ end
+ end
+
+ def followed_by_map(target_account_ids, account_id)
+ build_mapping(
+ Follow.where(account_id: target_account_ids, target_account_id: account_id),
+ :account_id
+ )
+ end
+
+ def blocking_map(target_account_ids, account_id)
+ build_mapping(
+ Block.where(target_account_id: target_account_ids, account_id: account_id),
+ :target_account_id
+ )
+ end
+
+ def blocked_by_map(target_account_ids, account_id)
+ build_mapping(
+ Block.where(account_id: target_account_ids, target_account_id: account_id),
+ :account_id
+ )
+ end
+
+ def muting_map(target_account_ids, account_id)
+ Mute.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |mute, mapping|
+ mapping[mute.target_account_id] = {
+ notifications: mute.hide_notifications?,
+ }
+ end
+ end
+
+ def requested_map(target_account_ids, account_id)
+ FollowRequest.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |follow_request, mapping|
+ mapping[follow_request.target_account_id] = {
+ reblogs: follow_request.show_reblogs?,
+ notify: follow_request.notify?,
+ languages: follow_request.languages,
+ }
+ end
+ end
+
+ def requested_by_map(target_account_ids, account_id)
+ build_mapping(
+ FollowRequest.where(account_id: target_account_ids, target_account_id: account_id),
+ :account_id
+ )
+ end
+
+ def endorsed_map(target_account_ids, account_id)
+ build_mapping(
+ AccountPin.where(account_id: account_id, target_account_id: target_account_ids),
+ :target_account_id
+ )
+ end
+
+ def account_note_map(target_account_ids, account_id)
+ AccountNote.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |note, mapping|
+ mapping[note.target_account_id] = {
+ comment: note.comment,
+ }
+ end
+ end
+
+ def domain_blocking_map_by_domain(target_domains, account_id)
+ build_mapping(
+ AccountDomainBlock.where(account_id: account_id, domain: target_domains),
+ :domain
+ )
+ end
+
+ private
+
+ def build_mapping(query, field)
+ query
+ .pluck(field)
+ .index_with(true)
+ end
+ end
+
+ def relations_map(account_ids, domains = nil, **options)
+ relations = {
+ blocked_by: Account.blocked_by_map(account_ids, id),
+ following: Account.following_map(account_ids, id),
+ }
+
+ return relations if options[:skip_blocking_and_muting]
+
+ relations.merge!({
+ blocking: Account.blocking_map(account_ids, id),
+ muting: Account.muting_map(account_ids, id),
+ domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, id),
+ })
+ end
+end
diff --git a/app/models/concerns/database_view_record.rb b/app/models/concerns/database_view_record.rb
index 8b6672e2991..b6709e1e419 100644
--- a/app/models/concerns/database_view_record.rb
+++ b/app/models/concerns/database_view_record.rb
@@ -10,12 +10,6 @@ module DatabaseViewRecord
concurrently: true,
cascade: false
)
- rescue ActiveRecord::StatementInvalid
- Scenic.database.refresh_materialized_view(
- table_name,
- concurrently: false,
- cascade: false
- )
end
end
diff --git a/app/models/concerns/follow_limitable.rb b/app/models/concerns/follow_limitable.rb
index c64060d6e56..fb8f76e9bfa 100644
--- a/app/models/concerns/follow_limitable.rb
+++ b/app/models/concerns/follow_limitable.rb
@@ -4,14 +4,8 @@ module FollowLimitable
extend ActiveSupport::Concern
included do
- validates_with FollowLimitValidator, on: :create, unless: :bypass_follow_limit?
- end
+ validates_with FollowLimitValidator, on: :create, unless: :bypass_follow_limit
- def bypass_follow_limit=(value)
- @bypass_follow_limit = value
- end
-
- def bypass_follow_limit?
- @bypass_follow_limit
+ attribute :bypass_follow_limit, :boolean, default: false
end
end
diff --git a/app/models/fasp/follow_recommendation.rb b/app/models/fasp/follow_recommendation.rb
new file mode 100644
index 00000000000..567c24a9a8b
--- /dev/null
+++ b/app/models/fasp/follow_recommendation.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: fasp_follow_recommendations
+#
+# id :bigint(8) not null, primary key
+# created_at :datetime not null
+# updated_at :datetime not null
+# recommended_account_id :bigint(8) not null
+# requesting_account_id :bigint(8) not null
+#
+class Fasp::FollowRecommendation < ApplicationRecord
+ MAX_AGE = 1.day.freeze
+
+ belongs_to :requesting_account, class_name: 'Account'
+ belongs_to :recommended_account, class_name: 'Account'
+
+ scope :outdated, -> { where(created_at: ...(MAX_AGE.ago)) }
+ scope :for_account, ->(account) { where(requesting_account: account) }
+ scope :newest_first, -> { order(created_at: :desc) }
+end
diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb
index 4665a586798..98e3be1a0c9 100644
--- a/app/models/form/account_batch.rb
+++ b/app/models/form/account_batch.rb
@@ -128,7 +128,7 @@ class Form::AccountBatch
# Suspending a single account closes their associated reports, so
# mass-suspending would be consistent.
- Report.where(target_account: account).unresolved.find_each do |report|
+ account.targeted_reports.unresolved.find_each do |report|
authorize(report, :update?)
log_action(:resolve, report)
report.resolve!(current_account)
diff --git a/app/models/generated_annual_report.rb b/app/models/generated_annual_report.rb
index 43c97d7108b..aba0712fe40 100644
--- a/app/models/generated_annual_report.rb
+++ b/app/models/generated_annual_report.rb
@@ -24,7 +24,7 @@ class GeneratedAnnualReport < ApplicationRecord
end
def view!
- update!(viewed_at: Time.now.utc)
+ touch(:viewed_at)
end
def account_ids
diff --git a/app/models/instance.rb b/app/models/instance.rb
index 3bd4b924ae7..01d258281ad 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -21,6 +21,7 @@ class Instance < ApplicationRecord
belongs_to :unavailable_domain
has_many :accounts, dependent: nil
+ has_many :moderation_notes, class_name: 'InstanceModerationNote', dependent: :destroy
end
scope :searchable, -> { where.not(domain: DomainBlock.select(:domain)) }
diff --git a/app/models/instance_moderation_note.rb b/app/models/instance_moderation_note.rb
new file mode 100644
index 00000000000..fedb571fbb0
--- /dev/null
+++ b/app/models/instance_moderation_note.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: instance_moderation_notes
+#
+# id :bigint(8) not null, primary key
+# content :text
+# domain :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# account_id :bigint(8) not null
+#
+class InstanceModerationNote < ApplicationRecord
+ include DomainNormalizable
+ include DomainMaterializable
+
+ CONTENT_SIZE_LIMIT = 2_000
+
+ belongs_to :account
+ belongs_to :instance, inverse_of: :moderation_notes, foreign_key: :domain, primary_key: :domain, optional: true
+
+ scope :chronological, -> { reorder(id: :asc) }
+
+ validates :content, presence: true, length: { maximum: CONTENT_SIZE_LIMIT }
+ validates :domain, presence: true, domain: true
+end
diff --git a/app/models/rule.rb b/app/models/rule.rb
index c7b532fe5d7..672bef7d1ea 100644
--- a/app/models/rule.rb
+++ b/app/models/rule.rb
@@ -19,8 +19,8 @@ class Rule < ApplicationRecord
self.discard_column = :deleted_at
- has_many :translations, inverse_of: :rule, class_name: 'RuleTranslation', dependent: :destroy
- accepts_nested_attributes_for :translations, reject_if: :all_blank, allow_destroy: true
+ has_many :translations, -> { order(language: :asc) }, inverse_of: :rule, class_name: 'RuleTranslation', dependent: :destroy
+ accepts_nested_attributes_for :translations, reject_if: ->(attributes) { attributes['text'].blank? }, allow_destroy: true
validates :text, presence: true, length: { maximum: TEXT_SIZE_LIMIT }
@@ -42,6 +42,6 @@ class Rule < ApplicationRecord
def translation_for(locale)
@cached_translations ||= {}
- @cached_translations[locale] ||= translations.where(language: [locale, locale.to_s.split('-').first]).order('length(language) desc').first || RuleTranslation.new(language: locale, text: text, hint: hint)
+ @cached_translations[locale] ||= translations.for_locale(locale).by_language_length.first || translations.build(language: locale, text: text, hint: hint)
end
end
diff --git a/app/models/rule_translation.rb b/app/models/rule_translation.rb
index 99991b2ee13..ccf0d4ba33d 100644
--- a/app/models/rule_translation.rb
+++ b/app/models/rule_translation.rb
@@ -17,4 +17,11 @@ class RuleTranslation < ApplicationRecord
validates :language, presence: true, uniqueness: { scope: :rule_id }
validates :text, presence: true, length: { maximum: Rule::TEXT_SIZE_LIMIT }
+
+ scope :for_locale, ->(locale) { where(language: I18n::Locale::Tag.tag(locale).to_a.first) }
+ scope :by_language_length, -> { order(Arel.sql('LENGTH(LANGUAGE)').desc) }
+
+ def self.languages
+ RuleTranslation.joins(:rule).merge(Rule.kept).select(:language).distinct.pluck(:language).sort
+ end
end
diff --git a/app/models/status.rb b/app/models/status.rb
index 8287583bc32..e6e9450264b 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -120,7 +120,11 @@ class Status < ApplicationRecord
scope :with_accounts, ->(ids) { where(id: ids).includes(:account) }
scope :without_replies, -> { not_reply.or(reply_to_account) }
scope :not_reply, -> { where(reply: false) }
+ scope :only_reblogs, -> { where.not(reblog_of_id: nil) }
+ scope :only_polls, -> { where.not(poll_id: nil) }
+ scope :without_polls, -> { where(poll_id: nil) }
scope :reply_to_account, -> { where(arel_table[:in_reply_to_account_id].eq arel_table[:account_id]) }
+ scope :not_replying_to_account, ->(account) { where.not(in_reply_to_account: account) }
scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) }
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) }
diff --git a/app/models/tag.rb b/app/models/tag.rb
index a3ccdd8ac6b..8e21ddca82b 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -49,8 +49,8 @@ class Tag < ApplicationRecord
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? }
- validate :validate_display_name_change, if: -> { !new_record? && display_name_changed? }
+ validate :validate_name_change, on: :update, if: :name_changed?
+ validate :validate_display_name_change, on: :update, if: :display_name_changed?
scope :pending_review, -> { unreviewed.where.not(requested_review_at: nil) }
scope :usable, -> { where(usable: [true, nil]) }
diff --git a/app/models/terms_of_service.rb b/app/models/terms_of_service.rb
index 93fe4af9c73..41afaf10d9c 100644
--- a/app/models/terms_of_service.rb
+++ b/app/models/terms_of_service.rb
@@ -15,8 +15,9 @@
#
class TermsOfService < ApplicationRecord
scope :published, -> { where.not(published_at: nil).order(Arel.sql('coalesce(effective_date, published_at) DESC')) }
- scope :live, -> { published.where('effective_date IS NULL OR effective_date < now()').limit(1) }
- scope :draft, -> { where(published_at: nil).order(id: :desc).limit(1) }
+ scope :live, -> { published.where('effective_date IS NULL OR effective_date < now()') }
+ scope :upcoming, -> { published.reorder(effective_date: :asc).where('effective_date IS NOT NULL AND effective_date > now()') }
+ scope :draft, -> { where(published_at: nil).order(id: :desc) }
validates :text, presence: true
validates :changelog, :effective_date, presence: true, if: -> { published? }
@@ -26,6 +27,10 @@ class TermsOfService < ApplicationRecord
NOTIFICATION_ACTIVITY_CUTOFF = 1.year.freeze
+ def self.current
+ live.first || upcoming.first # For the case when none of the published terms have become effective yet
+ end
+
def published?
published_at.present?
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 86201f543fd..966ffbe9c37 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -223,6 +223,12 @@ class User < ApplicationRecord
end
end
+ def email_domain
+ Mail::Address.new(email).domain
+ rescue Mail::Field::ParseError
+ nil
+ end
+
def update_sign_in!(new_sign_in: false)
old_current = current_sign_in_at
new_current = Time.now.utc
diff --git a/app/models/user_settings.rb b/app/models/user_settings.rb
index 590eed713ca..fd8659dc970 100644
--- a/app/models/user_settings.rb
+++ b/app/models/user_settings.rb
@@ -35,6 +35,7 @@ class UserSettings
setting :expand_content_warnings, default: false
setting :display_media, default: 'default', in: %w(default show_all hide_all)
setting :auto_play, default: false
+ setting :emoji_style, default: 'auto', in: %w(auto native twemoji)
end
namespace :notification_emails do
diff --git a/app/policies/backup_policy.rb b/app/policies/backup_policy.rb
index 7a4c5b43474..bba69a28e44 100644
--- a/app/policies/backup_policy.rb
+++ b/app/policies/backup_policy.rb
@@ -4,6 +4,6 @@ class BackupPolicy < ApplicationPolicy
MIN_AGE = 6.days
def create?
- user_signed_in? && current_user.backups.where(created_at: MIN_AGE.ago..).count.zero?
+ user_signed_in? && current_user.backups.where(created_at: MIN_AGE.ago..).none?
end
end
diff --git a/app/policies/instance_moderation_note_policy.rb b/app/policies/instance_moderation_note_policy.rb
new file mode 100644
index 00000000000..f99a25fb59a
--- /dev/null
+++ b/app/policies/instance_moderation_note_policy.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class InstanceModerationNotePolicy < ApplicationPolicy
+ def create?
+ role.can?(:manage_federation)
+ end
+
+ def destroy?
+ owner? || (role.can?(:manage_federation) && role.overrides?(record.account.user_role))
+ end
+
+ private
+
+ def owner?
+ record.account_id == current_account&.id
+ end
+end
diff --git a/app/presenters/oauth_metadata_presenter.rb b/app/presenters/oauth_metadata_presenter.rb
index f488a62925d..65291369fa6 100644
--- a/app/presenters/oauth_metadata_presenter.rb
+++ b/app/presenters/oauth_metadata_presenter.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class OauthMetadataPresenter < ActiveModelSerializers::Model
+class OAuthMetadataPresenter < ActiveModelSerializers::Model
include RoutingHelper
attributes :issuer, :authorization_endpoint, :token_endpoint,
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index d47bb3cdbcc..1c83eff4b23 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -110,7 +110,7 @@ class InitialStateSerializer < ActiveModel::Serializer
trends_as_landing_page: Setting.trends_as_landing_page,
trends_enabled: Setting.trends,
version: instance_presenter.version,
- terms_of_service_enabled: TermsOfService.live.exists?,
+ terms_of_service_enabled: TermsOfService.current.present?,
}
end
diff --git a/app/serializers/oauth_metadata_serializer.rb b/app/serializers/oauth_metadata_serializer.rb
index 9c5f7365a4c..4d9f340c7b8 100644
--- a/app/serializers/oauth_metadata_serializer.rb
+++ b/app/serializers/oauth_metadata_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class OauthMetadataSerializer < ActiveModel::Serializer
+class OAuthMetadataSerializer < ActiveModel::Serializer
attributes :issuer, :authorization_endpoint, :token_endpoint,
:revocation_endpoint, :userinfo_endpoint, :scopes_supported,
:response_types_supported, :response_modes_supported,
diff --git a/app/serializers/oauth_userinfo_serializer.rb b/app/serializers/oauth_userinfo_serializer.rb
index e2f37ae02e5..1385bb27e63 100644
--- a/app/serializers/oauth_userinfo_serializer.rb
+++ b/app/serializers/oauth_userinfo_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class OauthUserinfoSerializer < ActiveModel::Serializer
+class OAuthUserinfoSerializer < ActiveModel::Serializer
include RoutingHelper
attributes :iss, :sub, :name, :preferred_username, :profile, :picture
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index db6e6198194..3008df5e81c 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -61,7 +61,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
status: object.status_page_url,
about: about_url,
privacy_policy: privacy_policy_url,
- terms_of_service: TermsOfService.live.exists? ? terms_of_service_url : nil,
+ terms_of_service: TermsOfService.current.present? ? terms_of_service_url : nil,
},
vapid: {
diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb
index 52610408841..6f70d530b2f 100644
--- a/app/services/account_search_service.rb
+++ b/app/services/account_search_service.rb
@@ -178,6 +178,12 @@ class AccountSearchService < BaseService
'search.backend' => Chewy.enabled? ? 'elasticsearch' : 'database'
)
+ # Trigger searching accounts using providers.
+ # This will not return any immediate results but has the
+ # potential to fill the local database with relevant
+ # accounts for the next time the search is performed.
+ Fasp::AccountSearchWorker.perform_async(@query) if options[:query_fasp]
+
search_service_results.compact.uniq.tap do |results|
span.set_attribute('search.results.count', results.size)
end
diff --git a/app/services/delete_account_service.rb b/app/services/delete_account_service.rb
index 20d6ee8d64e..6557dda48fb 100644
--- a/app/services/delete_account_service.rb
+++ b/app/services/delete_account_service.rb
@@ -297,7 +297,7 @@ class DeleteAccountService < BaseService
end
def reported_status_ids
- @reported_status_ids ||= Report.where(target_account: @account).unresolved.pluck(:status_ids).flatten.uniq
+ @reported_status_ids ||= @account.targeted_reports.unresolved.pluck(:status_ids).flatten.uniq
end
def associations_for_destruction
diff --git a/app/services/search_service.rb b/app/services/search_service.rb
index 9a40d7bdd57..ffe380c2e0d 100644
--- a/app/services/search_service.rb
+++ b/app/services/search_service.rb
@@ -11,6 +11,7 @@ class SearchService < BaseService
@offset = options[:type].blank? ? 0 : options[:offset].to_i
@resolve = options[:resolve] || false
@following = options[:following] || false
+ @query_fasp = options[:query_fasp] || false
default_results.tap do |results|
next if @query.blank? || @limit.zero?
@@ -36,7 +37,8 @@ class SearchService < BaseService
offset: @offset,
use_searchable_text: true,
following: @following,
- start_with_hashtag: @query.start_with?('#')
+ start_with_hashtag: @query.start_with?('#'),
+ query_fasp: @options[:query_fasp]
)
end
diff --git a/app/views/admin/accounts/_account.html.haml b/app/views/admin/accounts/_account.html.haml
index d2f6652a00d..6682bf9788e 100644
--- a/app/views/admin/accounts/_account.html.haml
+++ b/app/views/admin/accounts/_account.html.haml
@@ -25,7 +25,7 @@
%td.accounts-table__extra
- if account.local?
- if account.user_email
- = link_to account.user_email.split('@').last, admin_accounts_path(email: "%@#{account.user_email.split('@').last}"), title: account.user_email
+ = link_to account.user_email_domain, admin_accounts_path(email: "%@#{account.user_email_domain}"), title: account.user_email
- else
\-
%br/
diff --git a/app/views/admin/accounts/_local_account.html.haml b/app/views/admin/accounts/_local_account.html.haml
index 5357ebcce9b..892afcc5428 100644
--- a/app/views/admin/accounts/_local_account.html.haml
+++ b/app/views/admin/accounts/_local_account.html.haml
@@ -22,10 +22,10 @@
%td{ rowspan: can?(:create, :email_domain_block) ? 3 : 2 }= account.user_email
%td= table_link_to 'edit', t('admin.accounts.change_email.label'), admin_account_change_email_path(account.id) if can?(:change_email, account.user)
%tr
- %td= table_link_to 'search', t('admin.accounts.search_same_email_domain'), admin_accounts_path(email: "%@#{account.user_email.split('@').last}")
+ %td= table_link_to 'search', t('admin.accounts.search_same_email_domain'), admin_accounts_path(email: "%@#{account.user_email_domain}")
- if can?(:create, :email_domain_block)
%tr
- %td= table_link_to 'hide_source', t('admin.accounts.add_email_domain_block'), new_admin_email_domain_block_path(_domain: account.user_email.split('@').last)
+ %td= table_link_to 'hide_source', t('admin.accounts.add_email_domain_block'), new_admin_email_domain_block_path(_domain: account.user_email_domain)
- if account.user_unconfirmed_email.present?
%tr
%th= t('admin.accounts.unconfirmed_email')
diff --git a/app/views/admin/instances/show.html.haml b/app/views/admin/instances/show.html.haml
index 812a9c8870b..c977011e1ff 100644
--- a/app/views/admin/instances/show.html.haml
+++ b/app/views/admin/instances/show.html.haml
@@ -6,7 +6,7 @@
= date_range(@time_period)
- if @instance.persisted?
- = render 'dashboard', instance_domain: @instance.domain, period_end_at: @time_period.last, period_start_at: @time_period.first
+ = render 'admin/instances/dashboard', instance_domain: @instance.domain, period_end_at: @time_period.last, period_start_at: @time_period.first
- else
%p
= t('admin.instances.unknown_instance')
@@ -55,6 +55,24 @@
= render partial: 'admin/action_logs/action_log', collection: @action_logs
= link_to t('admin.instances.audit_log.view_all'), admin_action_logs_path(target_domain: @instance.domain), class: 'button'
+%hr.spacer/
+
+- if @instance.domain.present?
+ %h3#instance-notes= t('admin.instances.moderation_notes.title')
+ %p= t('admin.instances.moderation_notes.description_html')
+ .report-notes
+ = render partial: 'admin/report_notes/report_note', collection: @instance_moderation_notes
+
+ = simple_form_for @instance_moderation_note, url: admin_instance_moderation_notes_path(instance_id: @instance.domain) do |form|
+ = render 'shared/error_messages', object: @instance_moderation_note
+
+ .field-group
+ = form.input :content, input_html: { placeholder: t('admin.instances.moderation_notes.placeholder'), maxlength: InstanceModerationNote::CONTENT_SIZE_LIMIT, rows: 6, autofocus: @instance_moderation_note.errors.any? }
+
+ .actions
+ = form.button :button, t('admin.instances.moderation_notes.create'), type: :submit
+
+- if @instance.persisted?
%hr.spacer/
%h3= t('admin.instances.availability.title')
diff --git a/app/views/admin/report_notes/_report_note.html.haml b/app/views/admin/report_notes/_report_note.html.haml
index 9c8e267d622..7a51fdab2fc 100644
--- a/app/views/admin/report_notes/_report_note.html.haml
+++ b/app/views/admin/report_notes/_report_note.html.haml
@@ -1,11 +1,12 @@
-.report-notes__item
+.report-notes__item{ id: dom_id(report_note) }
= image_tag report_note.account.avatar.url, class: 'report-notes__item__avatar'
.report-notes__item__header
%span.username
= link_to report_note.account.username, admin_account_path(report_note.account_id)
- %time.relative-formatted{ datetime: report_note.created_at.iso8601, title: report_note.created_at }
- = l report_note.created_at.to_date
+ %a.timestamp{ href: "##{dom_id(report_note)}" }
+ %time.relative-formatted{ datetime: report_note.created_at.iso8601, title: report_note.created_at }
+ = l report_note.created_at.to_date
.report-notes__item__content
= linkify(report_note.content)
@@ -14,5 +15,7 @@
.report-notes__item__actions
- if report_note.is_a?(AccountModerationNote)
= table_link_to 'delete', t('admin.reports.notes.delete'), admin_account_moderation_note_path(report_note), method: :delete
+ - elsif report_note.is_a?(InstanceModerationNote)
+ = table_link_to 'delete', t('admin.reports.notes.delete'), admin_instance_moderation_note_path(instance_id: report_note.domain, id: report_note.id), method: :delete
- else
= table_link_to 'delete', t('admin.reports.notes.delete'), admin_report_note_path(report_note), method: :delete
diff --git a/app/views/admin/rules/_translation_fields.html.haml b/app/views/admin/rules/_translation_fields.html.haml
index bf8d8172246..95bb568ae30 100644
--- a/app/views/admin/rules/_translation_fields.html.haml
+++ b/app/views/admin/rules/_translation_fields.html.haml
@@ -5,7 +5,7 @@
= f.input :language,
collection: ui_languages,
include_blank: false,
- label_method: ->(locale) { native_locale_name(locale) }
+ label_method: ->(locale) { "#{native_locale_name(locale)} (#{standard_locale_name(locale)})" }
.fields-row__column.fields-group
= f.hidden_field :id if f.object&.persisted? # Required so Rails doesn't put the field outside of the
diff --git a/app/views/admin/terms_of_service/index.html.haml b/app/views/admin/terms_of_service/index.html.haml
index 636851b449f..f34d1bda44a 100644
--- a/app/views/admin/terms_of_service/index.html.haml
+++ b/app/views/admin/terms_of_service/index.html.haml
@@ -40,4 +40,3 @@
.content__heading__actions
= link_to t('admin.terms_of_service.create'), admin_terms_of_service_draft_path, class: 'button'
- = link_to t('admin.terms_of_service.generate'), admin_terms_of_service_generate_path, class: 'button button-secondary'
diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml
index 8fd7a85defa..72e2575a8ea 100644
--- a/app/views/settings/preferences/appearance/show.html.haml
+++ b/app/views/settings/preferences/appearance/show.html.haml
@@ -31,6 +31,17 @@
label: I18n.t('simple_form.labels.defaults.setting_theme'),
wrapper: :with_label
+ - if Mastodon::Feature.modern_emojis_enabled?
+ .fields-group
+ = f.simple_fields_for :settings, current_user.settings do |ff|
+ = ff.input :'web.emoji_style',
+ collection: %w(auto twemoji native),
+ include_blank: false,
+ hint: I18n.t('simple_form.hints.defaults.setting_emoji_style'),
+ label: I18n.t('simple_form.labels.defaults.setting_emoji_style'),
+ label_method: ->(emoji_style) { I18n.t("emoji_styles.#{emoji_style}", default: emoji_style) },
+ wrapper: :with_label
+
- unless I18n.locale == :en
.flash-message.translation-prompt
#{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')}
diff --git a/app/workers/admin/distribute_announcement_notification_worker.rb b/app/workers/admin/distribute_announcement_notification_worker.rb
index a8b9a0bd940..9a3ce0f2f7b 100644
--- a/app/workers/admin/distribute_announcement_notification_worker.rb
+++ b/app/workers/admin/distribute_announcement_notification_worker.rb
@@ -1,15 +1,18 @@
# frozen_string_literal: true
class Admin::DistributeAnnouncementNotificationWorker
- include Sidekiq::Worker
+ include Sidekiq::IterableJob
+ include BulkMailingConcern
- def perform(announcement_id)
- announcement = Announcement.find(announcement_id)
+ def build_enumerator(announcement_id, cursor:)
+ @announcement = Announcement.find(announcement_id)
- announcement.scope_for_notification.find_each do |user|
- UserMailer.announcement_published(user, announcement).deliver_later!
- end
+ active_record_batches_enumerator(@announcement.scope_for_notification, cursor:)
rescue ActiveRecord::RecordNotFound
- true
+ nil
+ end
+
+ def each_iteration(batch_of_users, _announcement_id)
+ push_bulk_mailer(UserMailer, :announcement_published, batch_of_users.map { |user| [user, @announcement] })
end
end
diff --git a/app/workers/admin/distribute_terms_of_service_notification_worker.rb b/app/workers/admin/distribute_terms_of_service_notification_worker.rb
index 3e1f6510601..4afabc813ec 100644
--- a/app/workers/admin/distribute_terms_of_service_notification_worker.rb
+++ b/app/workers/admin/distribute_terms_of_service_notification_worker.rb
@@ -1,17 +1,22 @@
# frozen_string_literal: true
class Admin::DistributeTermsOfServiceNotificationWorker
- include Sidekiq::Worker
+ include Sidekiq::IterableJob
+ include BulkMailingConcern
- def perform(terms_of_service_id)
- terms_of_service = TermsOfService.find(terms_of_service_id)
+ def build_enumerator(terms_of_service_id, cursor:)
+ @terms_of_service = TermsOfService.find(terms_of_service_id)
- terms_of_service.scope_for_interstitial.in_batches.update_all(require_tos_interstitial: true)
-
- terms_of_service.scope_for_notification.find_each do |user|
- UserMailer.terms_of_service_changed(user, terms_of_service).deliver_later!
- end
+ active_record_batches_enumerator(@terms_of_service.scope_for_notification, cursor:)
rescue ActiveRecord::RecordNotFound
- true
+ nil
+ end
+
+ def each_iteration(batch_of_users, _terms_of_service_id)
+ push_bulk_mailer(UserMailer, :terms_of_service_changed, batch_of_users.map { |user| [user, @terms_of_service] })
+ end
+
+ def on_start
+ @terms_of_service.scope_for_interstitial.in_batches.update_all(require_tos_interstitial: true)
end
end
diff --git a/app/workers/concerns/bulk_mailing_concern.rb b/app/workers/concerns/bulk_mailing_concern.rb
new file mode 100644
index 00000000000..5f8154d7fa6
--- /dev/null
+++ b/app/workers/concerns/bulk_mailing_concern.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module BulkMailingConcern
+ def push_bulk_mailer(mailer_class, mailer_method, args_array)
+ raise ArgumentError, "No method #{mailer_method} on class #{mailer_class.name}" unless mailer_class.respond_to?(mailer_method)
+
+ job_class = ActionMailer::MailDeliveryJob
+
+ Sidekiq::Client.push_bulk({
+ 'class' => ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper,
+ 'wrapped' => job_class,
+ 'queue' => mailer_class.deliver_later_queue_name,
+ 'args' => args_array.map do |args|
+ [
+ job_class.new(
+ mailer_class.name,
+ mailer_method.to_s,
+ 'deliver_now',
+ args: args
+ ).serialize,
+ ]
+ end,
+ })
+ end
+end
diff --git a/app/workers/fasp/account_search_worker.rb b/app/workers/fasp/account_search_worker.rb
new file mode 100644
index 00000000000..745285c44de
--- /dev/null
+++ b/app/workers/fasp/account_search_worker.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class Fasp::AccountSearchWorker
+ include Sidekiq::Worker
+
+ sidekiq_options queue: 'fasp', retry: 0
+
+ def perform(query)
+ return unless Mastodon::Feature.fasp_enabled?
+
+ async_refresh = AsyncRefresh.new("fasp:account_search:#{Digest::MD5.base64digest(query)}")
+
+ account_search_providers = Fasp::Provider.with_capability('account_search')
+ return if account_search_providers.none?
+
+ params = { term: query, limit: 10 }.to_query
+ fetch_service = ActivityPub::FetchRemoteActorService.new
+
+ account_search_providers.each do |provider|
+ Fasp::Request.new(provider).get("/account_search/v0/search?#{params}").each do |uri|
+ next if Account.where(uri:).any?
+
+ account = fetch_service.call(uri)
+ async_refresh.increment_result_count(by: 1) if account.present?
+ end
+ end
+ ensure
+ async_refresh&.finish!
+ end
+end
diff --git a/app/workers/fasp/follow_recommendation_worker.rb b/app/workers/fasp/follow_recommendation_worker.rb
index 4772da404bf..5e760491bff 100644
--- a/app/workers/fasp/follow_recommendation_worker.rb
+++ b/app/workers/fasp/follow_recommendation_worker.rb
@@ -23,10 +23,19 @@ class Fasp::FollowRecommendationWorker
Fasp::Request.new(provider).get("/follow_recommendation/v0/accounts?#{params}").each do |uri|
next if Account.where(uri:).any?
- account = fetch_service.call(uri)
- async_refresh.increment_result_count(by: 1) if account.present?
+ new_account = fetch_service.call(uri)
+
+ if new_account.present?
+ Fasp::FollowRecommendation.find_or_create_by(requesting_account: account, recommended_account: new_account)
+ async_refresh.increment_result_count(by: 1)
+ end
end
end
+
+ # Invalidate follow recommendation cache so it does not
+ # take up to 15 minutes for the new recommendations to
+ # show up
+ Rails.cache.delete("follow_recommendations/#{account.id}")
rescue ActiveRecord::RecordNotFound
# Nothing to be done
ensure
diff --git a/app/workers/scheduler/fasp/follow_recommendation_cleanup_scheduler.rb b/app/workers/scheduler/fasp/follow_recommendation_cleanup_scheduler.rb
new file mode 100644
index 00000000000..76275dec3ee
--- /dev/null
+++ b/app/workers/scheduler/fasp/follow_recommendation_cleanup_scheduler.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class Scheduler::Fasp::FollowRecommendationCleanupScheduler
+ include Sidekiq::Worker
+
+ sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 1.day.to_i
+
+ def perform
+ return unless Mastodon::Feature.fasp_enabled?
+
+ Fasp::FollowRecommendation.outdated.delete_all
+ end
+end
diff --git a/config/application.rb b/config/application.rb
index 1195b9215c0..90cfe47428f 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -35,6 +35,7 @@ require_relative '../lib/paperclip/response_with_limit_adapter'
require_relative '../lib/terrapin/multi_pipe_extensions'
require_relative '../lib/mastodon/middleware/public_file_server'
require_relative '../lib/mastodon/middleware/socket_cleanup'
+require_relative '../lib/mastodon/email_configuration_helper'
require_relative '../lib/mastodon/feature'
require_relative '../lib/mastodon/snowflake'
require_relative '../lib/mastodon/version'
@@ -47,7 +48,6 @@ require_relative '../lib/chewy/strategy/mastodon'
require_relative '../lib/chewy/strategy/bypass_with_warning'
require_relative '../lib/rails/engine_extensions'
require_relative '../lib/action_dispatch/remote_ip_extensions'
-require_relative '../lib/stoplight/redis_data_store_extensions'
require_relative '../lib/active_record/database_tasks_extensions'
require_relative '../lib/active_record/batches'
require_relative '../lib/simple_navigation/item_extensions'
@@ -105,7 +105,9 @@ module Mastodon
config.x.cache_buster = config_for(:cache_buster)
config.x.captcha = config_for(:captcha)
+ config.x.email = config_for(:email)
config.x.mastodon = config_for(:mastodon)
+ config.x.omniauth = config_for(:omniauth)
config.x.translation = config_for(:translation)
config.x.vapid = config_for(:vapid)
@@ -115,8 +117,6 @@ module Mastodon
end
config.to_prepare do
- Doorkeeper::AuthorizationsController.layout 'modal'
- Doorkeeper::AuthorizedApplicationsController.layout 'admin'
Doorkeeper::Application.include ApplicationExtension
Doorkeeper::AccessGrant.include AccessGrantExtension
Doorkeeper::AccessToken.include AccessTokenExtension
diff --git a/config/cache_buster.yml b/config/cache_buster.yml
index 709c0eba887..09d6cfc6eaf 100644
--- a/config/cache_buster.yml
+++ b/config/cache_buster.yml
@@ -1,5 +1,5 @@
shared:
enabled: <%= ENV.fetch('CACHE_BUSTER_ENABLED', 'false') == 'true' %>
- secret_header: <%= ENV.fetch('CACHE_BUSTER_SECRET_HEADER', nil) %>
- secret: <%= ENV.fetch('CACHE_BUSTER_SECRET', nil) %>
+ secret_header: <%= ENV.fetch('CACHE_BUSTER_SECRET_HEADER', nil)&.to_json %>
+ secret: <%= ENV.fetch('CACHE_BUSTER_SECRET', nil)&.to_json %>
http_method: <%= ENV.fetch('CACHE_BUSTER_HTTP_METHOD', 'GET') %>
diff --git a/config/email.yml b/config/email.yml
new file mode 100644
index 00000000000..f39aa2545ae
--- /dev/null
+++ b/config/email.yml
@@ -0,0 +1,36 @@
+# Note that these settings only apply in `production` even when other
+# keys are added here.
+production:
+ delivery_method: <%= ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp') %>
+ from_address: <%= ENV.fetch('SMTP_FROM_ADDRESS', 'notifications@localhost')&.to_json %>
+ reply_to: <%= ENV.fetch('SMTP_REPLY_TO', nil)&.to_json %>
+ return_path: <%= ENV.fetch('SMTP_RETURN_PATH', nil)&.to_json %>
+ smtp_settings:
+ port: <%= ENV.fetch('SMTP_PORT', nil) %>
+ address: <%= ENV.fetch('SMTP_SERVER', nil)&.to_json %>
+ user_name: <%= ENV.fetch('SMTP_LOGIN', nil)&.to_json %>
+ password: <%= ENV.fetch('SMTP_PASSWORD', nil)&.to_json %>
+ domain: <%= ENV.fetch('SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %>
+ authentication: <%= ENV.fetch('SMTP_AUTH_METHOD', 'plain') %>
+ ca_file: <%= ENV.fetch('SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %>
+ openssl_verify_mode: <%= ENV.fetch('SMTP_OPENSSL_VERIFY_MODE', nil) %>
+ enable_starttls: <%= ENV.fetch('SMTP_ENABLE_STARTTLS', nil) %>
+ enable_starttls_auto: <%= ENV.fetch('SMTP_ENABLE_STARTTLS_AUTO', true) != 'false' %>
+ tls: <%= ENV.fetch('SMTP_TLS', false) == 'true' ? true : nil %>
+ ssl: <%= ENV.fetch('SMTP_SSL', false) == 'true' ? true : nil %>
+ read_timeout: 20
+ bulk_mail:
+ smtp_settings:
+ port: <%= ENV.fetch('BULK_SMTP_PORT', nil) %>
+ address: <%= ENV.fetch('BULK_SMTP_SERVER', nil)&.to_json %>
+ user_name: <%= ENV.fetch('BULK_SMTP_LOGIN', nil)&.to_json %>
+ password: <%= ENV.fetch('BULK_SMTP_PASSWORD', nil)&.to_json %>
+ domain: <%= ENV.fetch('BULK_SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %>
+ authentication: <%= ENV.fetch('BULK_SMTP_AUTH_METHOD', 'plain') %>
+ ca_file: <%= ENV.fetch('BULK_SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %>
+ openssl_verify_mode: <%= ENV.fetch('BULK_SMTP_OPENSSL_VERIFY_MODE', nil) %>
+ enable_starttls: <%= ENV.fetch('BULK_SMTP_ENABLE_STARTTLS', nil) %>
+ enable_starttls_auto: <%= ENV.fetch('BULK_SMTP_ENABLE_STARTTLS_AUTO', true) != 'false' %>
+ tls: <%= ENV.fetch('BULK_SMTP_TLS', false) == 'true' ? true : nil %>
+ ssl: <%= ENV.fetch('BULK_SMTP_SSL', false) == 'true' ? true : nil %>
+ read_timeout: 20
diff --git a/config/environments/production.rb b/config/environments/production.rb
index efe422c3c8e..b5ec31635fe 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -99,7 +99,7 @@ Rails.application.configure do
config.action_mailer.perform_caching = false
# E-mails
- outgoing_email_address = ENV.fetch('SMTP_FROM_ADDRESS', 'notifications@localhost')
+ outgoing_email_address = config.x.email.from_address
outgoing_email_domain = Mail::Address.new(outgoing_email_address).domain
config.action_mailer.default_options = {
@@ -107,40 +107,12 @@ Rails.application.configure do
message_id: -> { "<#{Mail.random_tag}@#{outgoing_email_domain}>" },
}
- config.action_mailer.default_options[:reply_to] = ENV['SMTP_REPLY_TO'] if ENV['SMTP_REPLY_TO'].present?
- config.action_mailer.default_options[:return_path] = ENV['SMTP_RETURN_PATH'] if ENV['SMTP_RETURN_PATH'].present?
+ config.action_mailer.default_options[:reply_to] = config.x.email.reply_to if config.x.email.reply_to.present?
+ config.action_mailer.default_options[:return_path] = config.x.email.return_path if config.x.email.return_path.present?
- enable_starttls = nil
- enable_starttls_auto = nil
+ config.action_mailer.smtp_settings = Mastodon::EmailConfigurationHelper.convert_smtp_settings(config.x.email.smtp_settings)
- case ENV.fetch('SMTP_ENABLE_STARTTLS', nil)
- when 'always'
- enable_starttls = true
- when 'never'
- enable_starttls = false
- when 'auto'
- enable_starttls_auto = true
- else
- enable_starttls_auto = ENV['SMTP_ENABLE_STARTTLS_AUTO'] != 'false'
- end
-
- config.action_mailer.smtp_settings = {
- port: ENV.fetch('SMTP_PORT', nil),
- address: ENV.fetch('SMTP_SERVER', nil),
- user_name: ENV['SMTP_LOGIN'].presence,
- password: ENV['SMTP_PASSWORD'].presence,
- domain: ENV['SMTP_DOMAIN'] || ENV.fetch('LOCAL_DOMAIN', nil),
- authentication: ENV['SMTP_AUTH_METHOD'] == 'none' ? nil : ENV['SMTP_AUTH_METHOD'] || :plain,
- ca_file: ENV['SMTP_CA_FILE'].presence || '/etc/ssl/certs/ca-certificates.crt',
- openssl_verify_mode: ENV.fetch('SMTP_OPENSSL_VERIFY_MODE', nil),
- enable_starttls: enable_starttls,
- enable_starttls_auto: enable_starttls_auto,
- tls: ENV['SMTP_TLS'].presence && ENV['SMTP_TLS'] == 'true',
- ssl: ENV['SMTP_SSL'].presence && ENV['SMTP_SSL'] == 'true',
- read_timeout: 20,
- }
-
- config.action_mailer.delivery_method = ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp').to_sym
+ config.action_mailer.delivery_method = config.x.email.delivery_method.to_sym
config.action_dispatch.default_headers = {
'Server' => 'Mastodon',
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
index fc043c4223e..0dbc0873855 100644
--- a/config/i18n-tasks.yml
+++ b/config/i18n-tasks.yml
@@ -71,6 +71,7 @@ ignore_unused:
- 'mail_subscriptions.unsubscribe.emails.*'
- 'preferences.other' # some locales are missing other keys, therefore leading i18n-tasks to detect `preferences` as plural and not finding use
- 'edit_profile.other' # some locales are missing other keys, therefore leading i18n-tasks to detect `preferences` as plural and not finding use
+ - 'admin.terms_of_service.generate' # temporarily disabled
ignore_inconsistent_interpolations:
- '*.one'
diff --git a/config/initializers/3_omniauth.rb b/config/initializers/3_omniauth.rb
index 607d9c15ba1..1f6193abd13 100644
--- a/config/initializers/3_omniauth.rb
+++ b/config/initializers/3_omniauth.rb
@@ -10,7 +10,7 @@ end
Devise.setup do |config|
# CAS strategy
- if ENV['CAS_ENABLED'] == 'true'
+ if Rails.configuration.x.omniauth.cas_enabled?
cas_options = {}
cas_options[:display_name] = ENV.fetch('CAS_DISPLAY_NAME', nil)
cas_options[:url] = ENV['CAS_URL'] if ENV['CAS_URL']
@@ -39,7 +39,7 @@ Devise.setup do |config|
end
# SAML strategy
- if ENV['SAML_ENABLED'] == 'true'
+ if Rails.configuration.x.omniauth.saml_enabled?
saml_options = {}
saml_options[:display_name] = ENV.fetch('SAML_DISPLAY_NAME', nil)
saml_options[:assertion_consumer_service_url] = ENV['SAML_ACS_URL'] if ENV['SAML_ACS_URL']
@@ -71,7 +71,7 @@ Devise.setup do |config|
end
# OpenID Connect Strategy
- if ENV['OIDC_ENABLED'] == 'true'
+ if Rails.configuration.x.omniauth.oidc_enabled?
oidc_options = {}
oidc_options[:display_name] = ENV.fetch('OIDC_DISPLAY_NAME', nil) # OPTIONAL
oidc_options[:issuer] = ENV['OIDC_ISSUER'] if ENV['OIDC_ISSUER'] # NEED
diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb
index 2b0563f4d32..d9a8f726639 100644
--- a/config/initializers/inflections.rb
+++ b/config/initializers/inflections.rb
@@ -20,6 +20,7 @@ ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'DeepL'
inflect.acronym 'DSL'
inflect.acronym 'JsonLd'
+ inflect.acronym 'OAuth'
inflect.acronym 'OEmbed'
inflect.acronym 'OStatus'
inflect.acronym 'PubSubHubbub'
diff --git a/config/initializers/linzer.rb b/config/initializers/linzer.rb
index 119f65af17b..b21d405cd1b 100644
--- a/config/initializers/linzer.rb
+++ b/config/initializers/linzer.rb
@@ -5,24 +5,14 @@ require 'linzer/message/adapter/http_gem/response'
module Linzer::Message::Adapter
module ActionDispatch
- class Response < Linzer::Message::Adapter::Abstract
- def initialize(operation, **_options) # rubocop:disable Lint/MissingSuper
- @operation = operation
- end
-
- def header(name)
- @operation.headers[name]
- end
-
- def attach!(signature)
- signature.to_h.each { |h, v| @operation.headers[h] = v }
- end
+ class Response < Linzer::Message::Adapter::Generic::Response
+ private
# Incomplete, but sufficient for FASP
- def [](field_name)
- return @operation.status if field_name == '@status'
-
- @operation.headers[field_name]
+ def derived(name)
+ case name.value
+ when '@status' then @operation.status
+ end
end
end
end
diff --git a/config/initializers/settings_digests.rb b/config/initializers/settings_digests.rb
index 2a5d925c70d..85599ee1b0b 100644
--- a/config/initializers/settings_digests.rb
+++ b/config/initializers/settings_digests.rb
@@ -3,7 +3,7 @@
Rails.application.config.to_prepare do
custom_css = begin
Setting.custom_css
- rescue ActiveRecord::AdapterError # Running without a database, not migrated, no connection, etc
+ rescue # Running without a cache, database, not migrated, no connection, etc
nil
end
diff --git a/config/locales/activerecord.ar.yml b/config/locales/activerecord.ar.yml
index 7426e21e21a..028e125317f 100644
--- a/config/locales/activerecord.ar.yml
+++ b/config/locales/activerecord.ar.yml
@@ -18,9 +18,13 @@ ar:
attributes:
domain:
invalid: ليس بإسم نطاق صالح
+ messages:
+ invalid_domain_on_line: "%{value} ليس إسم نطاق صالح"
models:
account:
attributes:
+ fields:
+ fields_with_values_missing_labels: يحتوي على قيم مع تسميات مفقودة
username:
invalid: يجب فقط أن يحتوي على حروف، وأرقام، وخطوط سفلية
reserved: محجوز
@@ -36,12 +40,23 @@ ar:
attributes:
data:
malformed: معتل
+ list_account:
+ attributes:
+ account_id:
+ taken: موجود مسبقاً على القائمة
+ must_be_following: يجب أن يكون حساباً تتابعه
status:
attributes:
reblog:
taken: المنشور موجود مِن قبل
+ terms_of_service:
+ attributes:
+ effective_date:
+ too_soon: مبكر للغاية، يجب أن يكون بعد %{date}
user:
attributes:
+ date_of_birth:
+ below_limit: دون الحد العمري
email:
blocked: يستخدم مزوّد بريد إلكتروني غير مسموح به
unreachable: يبدو أنه لا وجود له
diff --git a/config/locales/activerecord.da.yml b/config/locales/activerecord.da.yml
index 7b49c18ca33..8c405fba13b 100644
--- a/config/locales/activerecord.da.yml
+++ b/config/locales/activerecord.da.yml
@@ -48,7 +48,7 @@ da:
status:
attributes:
reblog:
- taken: af status findes allerede
+ taken: af indlæg findes allerede
terms_of_service:
attributes:
effective_date:
diff --git a/config/locales/activerecord.en-GB.yml b/config/locales/activerecord.en-GB.yml
index 4e7f7b3e203..fe10c5c8a75 100644
--- a/config/locales/activerecord.en-GB.yml
+++ b/config/locales/activerecord.en-GB.yml
@@ -49,8 +49,14 @@ en-GB:
attributes:
reblog:
taken: of post already exists
+ terms_of_service:
+ attributes:
+ effective_date:
+ too_soon: is too soon, must be later than %{date}
user:
attributes:
+ date_of_birth:
+ below_limit: is below the age limit
email:
blocked: uses a disallowed e-mail provider
unreachable: does not seem to exist
diff --git a/config/locales/activerecord.eu.yml b/config/locales/activerecord.eu.yml
index 8b4235eb993..c0ac1bb338b 100644
--- a/config/locales/activerecord.eu.yml
+++ b/config/locales/activerecord.eu.yml
@@ -49,8 +49,14 @@ eu:
attributes:
reblog:
taken: mezu honentzat bazegoen aurretik
+ terms_of_service:
+ attributes:
+ effective_date:
+ too_soon: goizegi da, %{date} baino geroagokoa izan behar da
user:
attributes:
+ date_of_birth:
+ below_limit: adinaren mugaren azpitik dago
email:
blocked: onartu gabeko e-posta hornitzaile bat erabiltzen du
unreachable: dirudienez ez da existitzen
diff --git a/config/locales/activerecord.fr.yml b/config/locales/activerecord.fr.yml
index ae3ce7f9cbc..94d2fa3c6f4 100644
--- a/config/locales/activerecord.fr.yml
+++ b/config/locales/activerecord.fr.yml
@@ -3,7 +3,7 @@ fr:
activerecord:
attributes:
poll:
- expires_at: Date de fin
+ expires_at: Date d'expiration
options: Choix
user:
agreement: Contrat de service
diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml
index 08e91e459f6..84616eb7673 100644
--- a/config/locales/activerecord.ru.yml
+++ b/config/locales/activerecord.ru.yml
@@ -3,43 +3,43 @@ ru:
activerecord:
attributes:
poll:
- expires_at: Срок окончания голосования
- options: Варианты
+ expires_at: Продолжительность опроса
+ options: Варианты ответа
user:
- agreement: Соглашение с условиями сервиса
- email: Адрес эл. почты
+ agreement: Пользовательское соглашение
+ email: Адрес электронной почты
locale: Язык
password: Пароль
user/account:
username: Имя пользователя
user/invite_request:
- text: Причина
+ text: Текст заявки на регистрацию
errors:
attributes:
domain:
- invalid: не является действующим доменным именем
+ invalid: не является корректным доменным именем
messages:
- invalid_domain_on_line: "%{value} Не является действительным доменным именем"
+ invalid_domain_on_line: "%{value} не является корректным доменным именем"
models:
account:
attributes:
fields:
- fields_with_values_missing_labels: содержит значения с отсутствующими ключами
+ fields_with_values_missing_labels: содержит значения для отсутствующих свойств
username:
- invalid: только буквы, цифры и символ подчёркивания
+ invalid: может содержать только буквы, цифры и символы подчёркивания
reserved: зарезервировано
admin/webhook:
attributes:
url:
- invalid: не является допустимым URL
+ invalid: не является действительным URL
doorkeeper/application:
attributes:
website:
- invalid: не является допустимым URL
+ invalid: не является действительным URL
import:
attributes:
data:
- malformed: неверный формат
+ malformed: имеет недопустимый формат
list_account:
attributes:
account_id:
@@ -48,7 +48,7 @@ ru:
status:
attributes:
reblog:
- taken: пост уже существует
+ taken: поста уже существует
terms_of_service:
attributes:
effective_date:
@@ -58,20 +58,20 @@ ru:
date_of_birth:
below_limit: ниже возрастного ограничения
email:
- blocked: использует запрещённого провайдера эл. почты
+ blocked: размещён у запрещённого провайдера электронной почты
unreachable: не существует
role_id:
elevated: не может быть выше вашей текущей роли
user_role:
attributes:
permissions_as_keys:
- dangerous: включить разрешения, небезопасные для базовой роли
- elevated: не может включать разрешения, которыми не обладает ваша текущая роль
- own_role: невозможно изменить с вашей текущей ролью
+ dangerous: содержит разрешения, небезопасные для базовой роли
+ elevated: не может содержать разрешения, которыми не обладает ваша текущая роль
+ own_role: не может быть изменена с вашей текущей ролью
position:
elevated: не может быть выше, чем ваша текущая роль
- own_role: невозможно изменить с вашей текущей ролью
+ own_role: не может быть изменена с вашей текущей ролью
webhook:
attributes:
events:
- invalid_permissions: нельзя включать события, к которым у вас нет прав
+ invalid_permissions: не может содержать события, к которым у вас нет доступа
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 6df034d5b7e..2fe619a60c7 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -29,9 +29,12 @@ ar:
two: منشورَيْن
zero: لا منشورات
posts_tab_heading: المنشورات
+ self_follow_error: لا يمكنك متابعة حسابك الخاص
admin:
account_actions:
action: تنفيذ الإجراء
+ already_silenced: هذا الحساب محدود بالفعل.
+ already_suspended: هذا الحساب مفصول مسبقاً.
title: اتخاذ إجراء إشراف على %{acct}
account_moderation_notes:
create: اترك ملاحظة
@@ -66,6 +69,7 @@ ar:
demote: إنزال الدور الوظيفي
destroyed_msg: بيانات حساب %{username} الآن في قائمة الانتظار ليتم حذفها قريباً
disable: تجميد
+ disable_sign_in_token_auth: تعطيل مصادقة رمز البريد الإلكتروني
disable_two_factor_authentication: تعطيل المصادقة بخطوتين
disabled: معطَّل
display_name: عرض الاسم
@@ -74,6 +78,7 @@ ar:
email: البريد الإلكتروني
email_status: حالة البريد الإلكتروني
enable: تفعيل
+ enable_sign_in_token_auth: تمكين مصادقة رمز البريد الإلكتروني
enabled: مفعَّل
enabled_msg: تم إلغاء تجميد حساب %{username}
followers: المتابِعون
@@ -142,6 +147,7 @@ ar:
resubscribe: إعادة الاشتراك
role: الدور
search: البحث
+ search_same_email_domain: مستخدمون آخرون لديهم نفس نطاق البريد الإلكتروني
search_same_ip: مستخدِمون آخرون بنفس الـ IP
security: الأمان
security_measures:
@@ -182,33 +188,45 @@ ar:
approve_appeal: الموافقة على الطعن
approve_user: الموافقة على المستخدم
assigned_to_self_report: أسند التقرير
+ change_email_user: تغيير البريد الإلكتروني للمستخدم
change_role_user: تم تغيير الرتبه للمستخدم
confirm_user: تأكيد المستخدم
create_account_warning: إنشاء تحذير
create_announcement: إنشاء إعلان
+ create_canonical_email_block: إنشاء حظر لبريد إلكتروني
create_custom_emoji: إنشاء إيموجي مخصص
create_domain_allow: إنشاء نطاق المسموح به
create_domain_block: إنشاء حظر لنطاق
+ create_email_domain_block: إنشاء حظر نطاق بريد إلكتروني
create_ip_block: إنشاء قاعدة IP جديدة
+ create_relay: إنشاء خادم ترحيل
create_unavailable_domain: إنشاء نطاق غير متوفر
create_user_role: انشاء دور
demote_user: إنزال رتبة المستخدم
destroy_announcement: احذف الإعلان
+ destroy_canonical_email_block: إلغاء حظر لبريد إلكتروني
destroy_custom_emoji: احذف الإيموجي المخصص
destroy_domain_allow: حذف النطاق المسموح به
destroy_domain_block: إزالة حظر النطاق
+ destroy_email_domain_block: إلغاء حظر نطاق بريد إلكتروني
destroy_instance: تنظيف النطاق
destroy_ip_block: حذف قاعدة IP
+ destroy_relay: حذف خادم الترحيل
destroy_status: حذف المنشور
destroy_unavailable_domain: حذف نطاق غير متوفر
destroy_user_role: حذف الدور
disable_2fa_user: تعطيل 2FA
disable_custom_emoji: تعطيل الإيموجي المخصص
+ disable_relay: تعطيل خادم الترحيل
+ disable_sign_in_token_auth_user: تعطيل مصادقة رمز البريد الإلكتروني للمستخدم
disable_user: تعطيل المستخدم
enable_custom_emoji: تفعيل الإيموجي المخصص
+ enable_relay: تفعيل خادم الترحيل
+ enable_sign_in_token_auth_user: تمكين مصادقة رمز البريد الإلكتروني للمستخدم
enable_user: تفعيل المستخدم
memorialize_account: جعل الحساب تذكاريا
promote_user: ترقية المستخدم
+ publish_terms_of_service: نشر شروط الخدمة
reject_appeal: رفض الطعن
reject_user: ارفض المستخدم
remove_avatar_user: احذف الصورة الرمزية
@@ -235,36 +253,50 @@ ar:
approve_appeal_html: وافق %{name} على استئناف الطعن بشأن قرار الإشراف من %{target}
approve_user_html: وافق %{name} على تسجيل %{target}
assigned_to_self_report_html: قام %{name} بإسناد التقرير %{target} لأنفسهم
+ change_email_user_html: غيّر %{name} عنوان البريد الإلكتروني للمستخدم %{target}
change_role_user_html: قام %{name} بإنشاء قاعدة للـIP %{target}
+ confirm_user_html: "%{name} قد قام بتأكيد عنوان البريد الإلكتروني لـ %{target}"
create_account_warning_html: قام %{name} بإرسال تحذير إلى %{target}
create_announcement_html: قام %{name} بإنشاء إعلان جديد %{target}
+ create_canonical_email_block_html: قام %{name} بحظر البريد الإلكتروني برمز تشفير %{target}
create_custom_emoji_html: "%{name} قام برفع إيموجي جديد %{target}"
create_domain_allow_html: قام %{name} بإضافة النطاق %{target} إلى القائمة البيضاء
create_domain_block_html: "%{name} قام بحجب نطاق %{target}"
+ create_email_domain_block_html: قام %{name} بحظر نطاق البريد الإلكتروني %{target}
create_ip_block_html: قام %{name} بإنشاء قاعدة للـIP %{target}
+ create_relay_html: قام %{name} بإنشاء خادم ترحيل %{target}
create_unavailable_domain_html: قام %{name} بتوقيف التوصيل للنطاق %{target}
create_user_role_html: "%{name} أنشأ رتبه %{target}"
demote_user_html: قام %{name} بخفض الرتبة الوظيفية لـ%{target}
destroy_announcement_html: قام %{name} بحذف الإعلان %{target}
+ destroy_canonical_email_block_html: قام %{name} برفع الحظر عن البريد الإلكتروني برمز التشفير %{target}
destroy_custom_emoji_html: قام %{name} بتحديث الإيموجي %{target}
destroy_domain_allow_html: قام %{name} بمنع الاتحاد مع النطاق %{target}
destroy_domain_block_html: قام %{name} برفع الحظر عن النطاق %{target}
+ destroy_email_domain_block_html: قام %{name} برفع الحظر عن نطاق البريد الإلكتروني %{target}
destroy_instance_html: "%{name} قام بحجب نطاق %{target}"
destroy_ip_block_html: قام %{name} بحذف قاعدة للـIP %{target}
+ destroy_relay_html: قام %{name} بحذف خادم ترحيل %{target}
destroy_status_html: قام %{name} بحذف منشور من %{target}
destroy_unavailable_domain_html: قام %{name} باستئناف التوصيل للنطاق %{target}
destroy_user_role_html: "%{name} أنشأ رتبه %{target}"
disable_2fa_user_html: قام %{name} بتعطيل المصادقة بخطوتين للمستخدم %{target}
disable_custom_emoji_html: قام %{name} بتعطيل الإيموجي %{target}
+ disable_relay_html: قام %{name} بتعطيل خادم ترحيل %{target}
+ disable_sign_in_token_auth_user_html: قام %{name} بتعطيل مصادقة رمز البريد الإلكتروني لـ %{target}
disable_user_html: قام %{name} بتعطيل تسجيل الدخول للمستخدم %{target}
enable_custom_emoji_html: قام %{name} بتنشيط الإيموجي %{target}
+ enable_relay_html: قام %{name} بتفعيل خادم ترحيل %{target}
+ enable_sign_in_token_auth_user_html: قام %{name} بتعطيل مصادقة رمز البريد الإلكتروني لـ %{target}
enable_user_html: قام %{name} بتنشيط تسجيل الدخول للمستخدم %{target}
memorialize_account_html: قام %{name} بتحويل حساب %{target} إلى صفحة تذكارية
promote_user_html: قام %{name} بترويج المستخدم %{target}
+ publish_terms_of_service_html: نشر %{name} تحديقات لشروط الخدمة
reject_appeal_html: وافق %{name} على استئناف قرار الاعتدال من %{target}
reject_user_html: رفض %{name} تسجيل %{target}
remove_avatar_user_html: قام %{name} بإزالة صورة %{target} الرمزية
reopen_report_html: قام %{name} بإعادة فتح الشكوى %{target}
+ resend_user_html: قام %{name} بإعادة إرسال بريد الإلكتروني للتأكيد لـ%{target}
reset_password_user_html: قام %{name} بإعادة تعيين كلمة مرور المستخدم %{target}
resolve_report_html: قام %{name} بمعالجة الشكوى %{target}
sensitive_account_html: قام %{name} بوضع علامة حساس على محتوى %{target}
@@ -279,6 +311,7 @@ ar:
update_custom_emoji_html: قام %{name} بتحديث الإيموجي %{target}
update_domain_block_html: قام %{name} بتحديث كتلة النطاق %{target}
update_ip_block_html: قام %{name} بإنشاء قاعدة للـIP %{target}
+ update_report_html: قام %{name} بتحديث التقرير %{target}
update_status_html: قام %{name} بتحديث منشور من %{target}
update_user_role_html: "%{name} تغيير رتبه %{target}"
deleted_account: حذف الحساب
@@ -288,6 +321,7 @@ ar:
title: سِجلّ التفتيش و المعاينة
unavailable_instance: "(اسم النطاق غير متوفر)"
announcements:
+ back: العودة إلى الإعلانات
destroyed_msg: تم حذف الإعلان بنجاح!
edit:
title: تعديل الإعلان
@@ -296,6 +330,10 @@ ar:
new:
create: إنشاء إعلان
title: إعلان جديد
+ preview:
+ disclaimer: بما أن المستخدمين لا يمكنهم اختيار توقفها، يجب أن تقتصر إشعارات البريد الإلكتروني على الإعلانات العامة مثل خرق في البيانات الخاصة أو إشعارات إغلاق الخادم.
+ explanation_html: 'سيتم إرسال البريد الإلكتروني إلى %{display_count} مستخدمين . سيتم تضمين النص التالي في البريد الإلكتروني:'
+ title: معاينة إشعار الإعلان
publish: نشر
published_msg: تم نشر الإعلان بنجاح!
scheduled_for: بُرمِج على %{time}
@@ -444,6 +482,7 @@ ar:
other: "%{count} محاولات تسجيل في آخر أسبوع"
two: "%{count} محاولتا تسجيل في آخر أسبوع"
zero: "%{count} محاولة تسجيل في آخر أسبوع"
+ created_msg: تم حظر نطاق البريد الإلكتروني بنجاح
delete: حذف
dns:
types:
@@ -452,8 +491,12 @@ ar:
new:
create: إضافة نطاق
resolve: العثور على عنوان النطاق
+ title: حظر نطاق بريد إلكتروني جديد
+ no_email_domain_block_selected: لم يطرأ أي تغيير على أي نطاق بريد بما أنه لم يتم اختيار أي نطاق
not_permitted: غير مسموح به
+ resolved_dns_records_hint_html: اسم النطاق يعود إلى نطاقات MX التالية، والتي مسؤولة عن قبول البريد إلكتروني. حظر نطاق MX سيمنع التسجيل من أية بريد إلكتروني بنفس نطاق الـMX، حتى وإن النطاق المرئي مختلف. انتبه ألا تحظر مزودي البريد الإلكتروني الأكبر.
resolved_through_html: الحصول على العنوان من خلال %{domain}
+ title: النطاقات البريد الإلكتروني المحظورة
export_domain_allows:
new:
title: استيراد قامة النطاقات المسموحة
@@ -469,6 +512,36 @@ ar:
new:
title: استيراد قامة النطاقات المحظورة
no_file: لم يتم تحديد أيّ ملف
+ fasp:
+ debug:
+ callbacks:
+ created_at: أنشئ في
+ delete: حذف
+ ip: عنوان IP
+ request_body: جسم الطلب
+ title: تصحيح رجوع المكالمات
+ providers:
+ active: نشط
+ base_url: قاعدة الرابط
+ callback: رد الاتصال
+ delete: حذف
+ edit: تعديل المزود
+ finish_registration: اكتمال عملية التسجيل
+ name: الاسم
+ providers: المزودون
+ public_key_fingerprint: بصمة المفتاح العام
+ registration_requested: التسجيل مطلوب
+ registrations:
+ confirm: تأكيد
+ description: لقد حصلت على تسجيل من FASP. ارفضه إذا لم تطلبه. إذا كنت قد شرعت في ذلك، قارن الاسم وبصمة المفتاح بعناية قبل تأكيد التسجيل.
+ reject: رفض
+ title: تأكيد تسجيل FASP
+ save: حفظ
+ select_capabilities: تحديد القدرات
+ sign_in: تسجيل الدخول
+ status: الحالة
+ title: مقدمو الخدمة الإضافية الفدرالية
+ title: FASP
follow_recommendations:
description_html: "تساعد اقتراحات المتابعة المستخدمين في العثور بسرعة على محتوى مثير للاهتمام . عندما لا يتفاعل المستخدم مع الآخرين بشكل كافي لتشكيل اقتراحات متابعة مخصصة له، تظهر هذه الاقتراحات بدلاً من ذلك. يُعاد حسابهم بشكل يومي من مزيج حسابات لديها أكثر التفاعلات وأكثر عدد من المتابعين المحليين للغة معينة."
language: للغة
@@ -478,6 +551,9 @@ ar:
title: اقتراحات المتابعة
unsuppress: إستعادة إقتراحات المتابعة
instances:
+ audit_log:
+ title: سجلات المراجعة الحديثة
+ view_all: عرض سجلات المراجعة الكاملة
availability:
description_html:
few: إذا فشل التسليم إلى النطاق لمدة %{count} أيام دون نجاح، لن تتم أي محاولات أخرى للتسليم إلا إذا تم الاستلام النطاق من .
@@ -546,6 +622,13 @@ ar:
all: كافتها
limited: محدود
title: الإشراف
+ moderation_notes:
+ create: إضافة ملاحظة المشرفين
+ created_msg: تم إنشاء ملاحظة المشرفين بنجاح!
+ description_html: اعرض الملاحظات واتركها للمشرفين الآخرين ولنفسك في المستقبل
+ destroyed_msg: تم حذف ملاحظة المشرفين بنجاح!
+ placeholder: معلومات عن هذا الخادم، أو الإجراءات المتخذة، أو أي شيء آخر سيساعدك على الإشراف على هذا الخادم في المستقبل.
+ title: ملاحظات المشرفين
private_comment: تعليق خاص
public_comment: تعليق للعلن
purge: تطهير
@@ -622,7 +705,11 @@ ar:
suspend_description_html: سيُمنع الوصول إلى الحساب وجميع محتوياته وتُحذف تدريجياً، وسيكون التفاعل معه مستحيلاً. بالإمكان عكس مفعول ذلك في غضون 30 يوماً. يغلق جميع التبليغات ضد الحساب.
actions_description_html: حدد الإجراء الذي يجب عليك اتخاذه لحل هذا التقرير. إذا اتخذت إجراء عقابيا ضد الحساب المبلغ عنه، فسيتم إرسال إشعار عبر البريد الإلكتروني إليهم، باستثناء عند اختيار فئة spam .
actions_description_remote_html: حدّد الإجراءات التي يتعين اتخاذها لحل هذا التقرير. هذا سيؤثر فقط على كيفية اتصال خادمك بهذا الحساب البعيد والتعامل مع محتوياته.
+ actions_no_posts: هذا التقرير لا يحتوي على أي مشاركات مرتبطة لحذفها
add_to_report: أضف المزيد إلى التقرير
+ already_suspended_badges:
+ local: تم فصله مسبقاً على هذا الخادم
+ remote: تم فصله مسبقاً على الخادم الخاص به
are_you_sure: هل أنت متأكد ؟
assign_to_self: اسنده لي
assigned: المشرف المُسنَد
@@ -659,6 +746,7 @@ ar:
report: 'الشكوى #%{id}'
reported_account: حساب مُبلّغ عنه
reported_by: أبلغ عنه من طرف
+ reported_with_application: تم الإبلاغ باستخدام تطبيق
resolved: معالجة
resolved_msg: تمت معالجة الشكوى بنجاح!
skip_to_actions: تخطي إلى الإجراءات
@@ -681,6 +769,7 @@ ar:
delete_data_html: حذف ملف @%{acct} الشخصي بمحتواه بعد 30 يوماً من الآن ما لم يُلغَ تعليق الحساب
preview_preamble_html: 'سوف يتلقى @%{acct} تحذيرا يحتوي على ما يلي:'
record_strike_html: تسجيل عقوبة ضد @%{acct} لمساعدتك في أخذ إجراءات إضافية في حال انتهاكات مستقبلية من طرف هذا الحساب
+ send_email_html: إرسال رسالة تحذير @%{acct}
warning_placeholder: مبررات إضافية اختيارية لإجراء الإشراف.
target_origin: مصدر الحساب المبلغ عنه
title: الشكاوى
@@ -728,6 +817,7 @@ ar:
manage_appeals: إدارة الطعون
manage_appeals_description: يسمح للمستخدمين بمراجعة الطعون المقدمة ضد إجراءات الإشراف
manage_blocks: إدارة الحظر
+ manage_blocks_description: السماح للمستخدمين بحظر مقدمي خدمات البريد الإلكتروني وعناوين IP
manage_custom_emojis: إدارة الرموز التعبيريّة المخصصة
manage_custom_emojis_description: السماح للمستخدمين بإدارة الرموز التعبيريّة المخصصة على الخادم
manage_federation: إدارة الفديرالية
@@ -745,6 +835,7 @@ ar:
manage_taxonomies: إدارة التصنيفات
manage_taxonomies_description: السماح للمستخدمين بمراجعة المحتوى المتداول وتحديث إعدادات الوسم
manage_user_access: إدارة وصول المستخدم
+ manage_user_access_description: يسمح للمستخدمين بتعطيل المصادقة الثنائية المستخدمين الآخرين، تغيير عنوان البريد الإلكتروني الخاص بهم، وإعادة تعيين كلمة المرور الخاصة بهم
manage_users: إدارة المستخدمين
manage_users_description: يسمح للمستخدمين بعرض تفاصيل المستخدمين الآخرين وتنفيذ إجراءات الإشراف ضدهم
manage_webhooks: إدارة الـWebhooks
@@ -758,17 +849,26 @@ ar:
title: الأدوار
rules:
add_new: إضافة قاعدة
+ add_translation: إضافة ترجمة
delete: حذف
description_html: بينما يدعي معظم الناس أنهم قرأوا شروط الخدمة ووافقوا عليها، فإن الناس عادةً لا يقرأون إلا بعد حدوث مشكلة. اجعل من الأسهل رؤية قواعد خادمك بلمحة عن طريق تزويدهم في قائمة النقاط المدورة. حاول إبقاء القواعد الفردية قصيرة وبسيطة، ولكن لا تحاول أن تُقسمها إلى العديد من العناصر المنفصلة أيضا.
edit: تعديل القانون
empty: لم يتم تحديد قواعد الخادم بعد.
+ move_down: نقل للأسفل
+ move_up: نقل للأعلى
title: قوانين الخادم
+ translation: ترجمة
+ translations: الترجمات
+ translations_explanation: يمكنك اختيارياً إضافة ترجمات للقواعد. سيتم عرض القيمة الافتراضية إذا لم تتوفر نسخة مترجمة. الرجاء التأكد دائمًا من أن أي ترجمة متوفرة متزامنة مع القيمة الافتراضية.
settings:
about:
manage_rules: إدارة قواعد الخادم
preamble: قدم معلومات متعمقة عن كيفية إدارة عمل الخادم، والإشراف، والتمويل.
rules_hint: هناك منطقة مخصصة للقواعد التي يتوقع من المستخدمين التقيد بها.
title: عن
+ allow_referrer_origin:
+ desc: عندما ينقر المستخدمون على روابط إلى مواقع خارجية، قد يرسل المتصفح عنوان خادم ماستدون الخاص بك كمرجع. قم بتعطيل هذا إذا كان هذا سيحدد المستخدمين بشكل فريد، على سبيل المثال إذا كان هذا خادم ماستدون شخصي.
+ title: السماح للمواقع الخارجية برؤية خادم ماستدون الخاص بك كمصدر حركة مرور
appearance:
preamble: تخصيص واجهة الويب لماستدون.
title: المظهر
@@ -788,6 +888,7 @@ ar:
discovery:
follow_recommendations: اتبع التوصيات
preamble: يُعد إتاحة رؤية المحتوى المثير للاهتمام أمرًا ضروريًا لجذب مستخدمين جدد قد لا يعرفون أي شخص في Mastodon. تحكم في كيفية عمل ميزات الاكتشاف المختلفة على خادمك الخاص.
+ privacy: الخصوصية
profile_directory: دليل الصفحات التعريفية
public_timelines: الخيوط الزمنية العامة
publish_statistics: نشر الإحصائيات
@@ -798,6 +899,7 @@ ar:
disabled: لا أحد
users: للمستخدمين المتصلين محليا
registrations:
+ moderation_recommandation: الرجاء التأكد من أن لديك فريق إشراف كافي وفعال قبل فتح التسجيلات للجميع!
preamble: تحكّم في مَن الذي يمكنه إنشاء حساب على خادمك الخاص.
title: التسجيلات
registrations_mode:
@@ -805,6 +907,7 @@ ar:
approved: طلب الموافقة لازم عند إنشاء حساب
none: لا أحد يمكنه إنشاء حساب
open: يمكن للجميع إنشاء حساب
+ warning_hint: نوصي باستخدام "الموافقة المطلوبة للتسجيل" إلا إذا كنت واثقا من أن فريق الإشراف الخاص بك يمكنه التعامل مع الرسائل غير المرغوب فيها والتسجيلات الخبيثة في الوقت المناسب.
security:
authorized_fetch: يتطلّب المصادقة مِن الخوادم الفديرالية
authorized_fetch_hint: إن طلب المصادقة من الخوادم الموحدة يتيح تنفيذًا أكثر صرامة للكتل على مستوى المستخدم وعلى مستوى الخادم. ومع ذلك، يأتي هذا على حساب عقوبة الأداء، ويقلل من مدى وصول ردودك، وقد يؤدي إلى حدوث مشكلات في التوافق مع بعض الخدمات الموحدة. بالإضافة إلى ذلك، لن يمنع هذا الجهات الفاعلة المخصصة من جلب منشوراتك وحساباتك العامة.
@@ -816,6 +919,7 @@ ar:
destroyed_msg: تم حذف التحميل مِن الموقع بنجاح!
software_updates:
critical_update: حَرِج - يرجى التحديث في أقرب وقت ممكن
+ description: من المستحسَن إبقاء تثبيت ماستدون الخاص بك محدثا للاستفادة من أحدث التصحيحات والميزات. إضافةً إلى ذلك، فهو مهمّ جدا تحديث ماستدون أحيانًا في الوقت المناسب لتجنب المسائل الأمنية. لهذه الأسباب، يقوم ماستدون بالتحقق من التحديثات كل 30 دقيقة، وسيتم إعلامك وفقا لتفضيلات إشعارات البريد الإلكتروني الخاصة بك.
documentation_link: معرفة المزيد
release_notes: ملخصات الإصدار
title: التحديثات المتوفرة
@@ -831,6 +935,7 @@ ar:
back_to_account: العودة إلى صفحة الحساب
back_to_report: العودة إلى صفحة التقرير
batch:
+ add_to_report: 'إضافة إلى التقرير #%{id}'
remove_from_report: إزالة من التقرير
report: إبلاغ
contents: المحتوى
@@ -842,12 +947,17 @@ ar:
media:
title: الوسائط
metadata: البيانات الوصفية
+ no_history: هذا المنشور لم يتم تعديله
no_status_selected: لم يطرأ أي تغيير على أي منشور بما أنه لم يتم اختيار أي واحد
open: افتح المنشور
original_status: المنشور الأصلي
reblogs: المعاد تدوينها
+ replied_to_html: تم الرد على %{acct_link}
status_changed: عُدّل المنشور
+ status_title: منشور من قبل %{name}
+ title: منشورات الحساب - @%{name}
trending: المتداولة
+ view_publicly: رؤية الجزء العلني
visibility: مدى الظهور
with_media: تحتوي على وسائط
strikes:
@@ -865,6 +975,8 @@ ar:
system_checks:
database_schema_check:
message_html: هناك عمليات هجرة معلقة لقواعد البيانات. يرجى تشغيلها لضمان تصرف التطبيق كما هو متوقع
+ elasticsearch_analysis_index_mismatch:
+ message_html: إعدادات محلل فهرس Elasticserch قديمة. الرجاء تشغيلtootctl search deploy --only-mapping --only=%{value}
elasticsearch_health_red:
message_html: مجموعة Elasticsearch غير صحية (الحالة الحمراء)، ميزات البحث غير متوفرة
elasticsearch_health_yellow:
@@ -889,6 +1001,9 @@ ar:
message_html: لم تقم بتحديد أي قواعد خادم.
sidekiq_process_check:
message_html: لا توجد عملية Sidekiq قيد التشغيل لقائمة الانتظار %{value}. يرجى مراجعة إعدادات Sidekiq الخاصة بك
+ software_version_check:
+ action: الاطلاع على التحديثات المتوفرة
+ message_html: يتوفر تحديث لماستدون.
software_version_critical_check:
action: الاطلاع على التحديثات المتوفرة
message_html: هناك تحديث هام لماستدون، يرجى التحديث في أسرع وقت ممكن.
@@ -903,24 +1018,72 @@ ar:
message_html: "تم تكوين مخزن الكائنات الخاص بك بشكل خاطئ. خصوصية المستخدمين في خطر. "
tags:
moderation:
+ not_trendable: لا يمكن أن يصبح رائج
+ not_usable: لا يمكن استخدامه
+ pending_review: في انتظار المراجعة
+ review_requested: تم طلب المراجعة
+ reviewed: تمت مراجعته
title: الحالة
+ trendable: يمكن أن يصبح رائج
+ unreviewed: غير مراجع
+ usable: قابل للاستخدام
+ name: الاسم
newest: الأحدث
+ oldest: الأقدم
+ open: رؤية الجزء العلني
reset: إعادة التعيين
review: حالة المراجعة
search: البحث
title: الوسوم
updated_msg: تم تحديث إعدادات الوسوم بنجاح
terms_of_service:
+ back: العودة إلى شروط الخدمة
+ changelog: ماذا تغير
+ create: استخدم خاصتك
+ current: الإصدار الحالي
+ draft: مسودة
+ generate: استخدام قالب
+ generates:
+ action: توليد
+ chance_to_review_html: "لن يتم نشر شروط الخدمة التي تم إنشاؤها تلقائياً. سيكون لديك فرصة لمراجعة النتائج. يرجى ملء التفاصيل اللازمة للمتابعة."
+ explanation_html: إن قالب شروط الخدمة مقدمة لأغراض معرفية فقط، ولا ينبغي تفسيرها على أنها مشورة قانونية بشأن أي موضوع. يرجى التشاور مع مستشاريك القانونيين حول وضعك والأسئلة القانونية التي لديك.
+ title: إعداد شروط الخدمة
+ going_live_on_html: نشط، ابتداءاً من %{date}
+ history: السجل
+ live: نشط
+ no_history: لا توجد تغييرات مسجلة على شروط الخدمة حتى الآن.
+ no_terms_of_service_html: ليس لديك حاليا أي شروط خدمة مهيئة. الغرض من شروط الخدمة هو توفير الوضوح وحمايتك من المسؤوليات المحتملة في المنازعات مع المستخدمين.
+ notified_on_html: تم إشعار المستخدمين بتاريخ %{date}
+ notify_users: إشعار المستخدمين
+ preview:
+ explanation_html: 'سيتم إرسال البريد الإلكتروني إلى %{display_count} مستخدمين الذين سجلوا قبل %{date}. سيتم تضمين النص التالي في البريد الإلكتروني:'
+ send_preview: إرسال معاينة إلى %{email}
+ send_to_all:
+ few: إرسال %{display_count} رسائل بريد إلكتروني
+ many: إرسال %{display_count} رسائل بريد إلكتروني
+ one: إرسال %{display_count} رسالة بريد إلكتروني
+ other: إرسال %{display_count} رسائل بريد إلكتروني
+ two: إرسال %{display_count} رسالة بريد إلكتروني
+ zero: إرسال %{display_count} رسالة بريد إلكتروني
+ title: معاينة إشعار شروط الخدمة
+ publish: نشر
+ published_on_html: منشورة في %{date}
save_draft: حفظ المسودة
title: شروط الخدمة
title: الإدارة
trends:
allow: السماح
approved: مصادق عليه
+ confirm_allow: هل أنت متأكد من أنك تريد السماح بالعلامات المحددة؟
+ confirm_disallow: هل أنت متأكد من أنك تريد عدم السماح بالعلامات المحددة؟
disallow: رفض
links:
allow: السماح بالرابط
allow_provider: السماح للناشر
+ confirm_allow: هل أنت متأكد من أنك تريد السماح بالروابط المحددة؟
+ confirm_allow_provider: هل أنت متأكد من أنك تريد السماح للمزودين المحددين؟
+ confirm_disallow: هل أنت متأكد من أنك تريد عدم السماح بالروابط المحددة؟
+ confirm_disallow_provider: هل أنت متأكد من أنك تريد عدم السماح بالمزودين المحددين؟
description_html: هذه هي الروابط التي يتم حاليا مشاركتها بشكل كبير عن طريق الحسابات التي يرى الخادم الخاص بك المشاركات منها. يمكن أن يساعد مستخدميك في معرفة ما يحدث في العالم. لا تعرض روابط علنا حتى توافق على الناشر. يمكنك أيضًا السماح أو رفض بالروابط فردياً.
disallow: رفض الرابط
disallow_provider: عدم السماح للناشر
@@ -948,6 +1111,10 @@ ar:
statuses:
allow: السماح بالمنشور
allow_account: السماح للناشر
+ confirm_allow: هل أنت متأكد من أنك تريد السماح بالحالات المحددة؟
+ confirm_allow_account: هل أنت متأكد من أنك تريد السماح بالحسابات المحددة؟
+ confirm_disallow: هل أنت متأكد من أنك تريد عدم السماح بالحالات المحددة؟
+ confirm_disallow_account: هل أنت متأكد من أنك تريد منع الحسابات المحددة؟
description_html: هذه هي المنشورات التي يعرفها خادمك التي يتم حاليا مشاركتها وتفضيلها كثيرا في الوقت الراهن. يمكن أن تساعد المستخدمين الجدد والعائدين للعثور على المزيد من الأشخاص للمتابعة. ولا تُعرض أي منشورات علناً حتى توافق على كاتبها، ويسمح الكاتب باقتراح حسابه للآخرين. يمكنك أيضًا السماح أو الرفض بالمنشورات فردياً.
disallow: رفض المنشور
disallow_account: رفض الناشر
@@ -1021,6 +1188,9 @@ ar:
title: الويب هوك
webhook: رابط ويب
admin_mailer:
+ auto_close_registrations:
+ body: بسبب نقص نشاط المشرفين مؤخراً، تم تحويل التسجيلات على %{instance} تلقائياً إلى أن تتطلب مراجعة يدوية، لمنع استخدام %{instance} كمنصة للجهات الفاعلة السيئة المحتملة. يمكنك تبديله مرة أخرى إلى التسجيلات المفتوحة في أي وقت.
+ subject: التسجيلات ل %{instance} تم تحويلها تلقائياً إلى طلب الموافقة
new_appeal:
actions:
delete_statuses: لحذف منشوراتهم
@@ -1096,6 +1266,7 @@ ar:
hint_html: شيء واحد آخر! نحن بحاجة إلى التأكّد من أنك إنسان (حتى نتمكن من تتفادي البريد المزعج!). حل رمز CAPTCHA أدناه وانقر فوق "متابعة".
title: التحقق من الأمان
confirmations:
+ awaiting_review: تمّ تأكيد عنوان بريدك الإلكتروني! مشرفي %{domain} يعاينونَ تسجيلكَ حاليًا. ستتلقى بريدًا إلكترونيًا إن تَمّ قُبولك!
awaiting_review_title: التسجيل الخاص بك قيد المُعاينة
clicking_this_link: اضغط على هذا الرابط
login_link: تسجيل الدخول
@@ -1103,6 +1274,7 @@ ar:
redirect_to_app_html: كان من المفترض إعادة توجيهك إلى تطبيق %{app_name} . إن لم يحدث ذلك، حاول %{clicking_this_link} أو العودة يدويًا إلى التطبيق.
registration_complete: اكتمل تسجيل حسابك على %{domain} الآن!
welcome_title: أهلاً بك، %{name}!
+ wrong_email_hint: إذا كان عنوان البريد الإلكتروني غير صحيح، يمكنك تغييره في إعدادات الحساب.
delete_account: احذف الحساب
delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك المواصلة هنا . سوف يُطلَبُ منك التأكيد قبل الحذف.
description:
@@ -1145,6 +1317,7 @@ ar:
set_new_password: إدخال كلمة مرور جديدة
setup:
email_below_hint_html: قم بفحص مجلد البريد المزعج الخاص بك، أو قم بطلب آخر. يمكنك تصحيح عنوان بريدك الإلكتروني إن كان خاطئا.
+ email_settings_hint_html: انقر على الرابط الذي أرسلناه إلى %{email} لبدء استخدام ماستدون. سننتظرك لتقوم بذلك.
link_not_received: ألم تحصل على رابط؟
new_confirmation_instructions_sent: سوف تتلقى رسالة بريد إلكتروني جديدة مع رابط التأكيد في غضون بضع دقائق!
title: تحقَّق من بريدك الوارِد
@@ -1153,6 +1326,7 @@ ar:
title: تسجيل الدخول إلى %{domain}
sign_up:
manual_review: عمليات التسجيل في %{domain} تمر عبر المراجعة اليدوية من قبل مشرفينا. لمساعدتنا في معالجة إنشاء حسابك، اكتب نَبْذَة عن نفسك ولماذا تريد حسابًا على %{domain}.
+ preamble: مع حساب على خادم ماستدون هذا، ستتمكن من متابعة أي شخص آخر على الشبكة الفدرالية، بغض النظر عن المكان الذي يستضيف حسابهم.
title: دعنا نجهّز %{domain}.
status:
account_status: حالة الحساب
@@ -1164,10 +1338,15 @@ ar:
view_strikes: عرض العقوبات السابقة المُطَبَّقة ضد حسابك
too_fast: تم إرسال النموذج بسرعة كبيرة، حاول مرة أخرى.
use_security_key: استخدام مفتاح الأمان
+ user_agreement_html: لقد قرأت وأوافق على شروط الخدمة و سياسة الخصوصية
+ user_privacy_agreement_html: لقد قرأتُ وأوافق على سياسة الخصوصية
author_attribution:
example_title: عينة نص
+ hint_html: هل تكتب أخبار أو مقالات مدونة خارج ماستدون؟ تحكم في كيف تنسب إليك عندما يتم مشاركتها على ماستدون.
+ instructions: 'تأكد من أن هذه التعليمات البرمجية موجودة في الـHTML الخاص بمقالتك:'
more_from_html: المزيد من %{name}
s_blog: مدونة %{name}
+ then_instructions: ثم أضف اسم نطاق موقع النشر في الحقل أدناه.
title: إسناد المؤلف
challenge:
confirm: واصل
@@ -1393,6 +1572,92 @@ ar:
merge_long: الإبقاء علي التسجيلات الحالية وإضافة الجديدة
overwrite: إعادة الكتابة
overwrite_long: استبدال التسجيلات الحالية بالجديدة
+ overwrite_preambles:
+ blocking_html:
+ few: أنت على وشك استبدال قائمة الحظر بما يصل إلى %{count} من الحسابات من %{filename} .
+ many: أنت على وشك استبدال قائمة الحظر بما يصل إلى %{count} من الحسابات من %{filename} .
+ one: أنت على وشك استبدال قائمة الحظر بما يصل إلى %{count} من الحسابات من %{filename} .
+ other: أنت على وشك استبدال قائمة الحظر بما يصل إلى %{count} من الحسابات من %{filename} .
+ two: أنت على وشك استبدال قائمة الحظر بما يصل إلى %{count} من الحسابات من %{filename} .
+ zero: أنت على وشك استبدال قائمة الحظر بما يصل إلى %{count} من الحسابات من %{filename} .
+ bookmarks_html:
+ few: أنت على وشك استبدال إشاراتك المرجعية بما يصل إلى %{count} من المنشورات من %{filename} .
+ many: أنت على وشك استبدال إشاراتك المرجعية بما يصل إلى %{count} من المنشورات من %{filename} .
+ one: أنت على وشك استبدال إشاراتك المرجعية بما يصل إلى %{count} من المنشورات من %{filename} .
+ other: أنت على وشك استبدال إشاراتك المرجعية بما يصل إلى %{count} من المنشورات من %{filename} .
+ two: أنت على وشك استبدال إشاراتك المرجعية بما يصل إلى %{count} من المنشورات من %{filename} .
+ zero: أنت على وشك استبدال إشاراتك المرجعية بما يصل إلى %{count} من المنشورات من %{filename} .
+ domain_blocking_html:
+ few: أنت على وشك استبدال قائمة حظر النطاقات بما يصل إلى %{count} من النطاقات من %{filename} .
+ many: أنت على وشك استبدال قائمة حظر النطاقات بما يصل إلى %{count} من النطاقات من %{filename} .
+ one: أنت على وشك استبدال قائمة حظر النطاقات بما يصل إلى %{count} من النطاقات من %{filename} .
+ other: أنت على وشك استبدال قائمة حظر النطاقات بما يصل إلى %{count} من النطاقات من %{filename} .
+ two: أنت على وشك استبدال قائمة حظر النطاقات بما يصل إلى %{count} من النطاقات من %{filename} .
+ zero: أنت على وشك استبدال قائمة حظر النطاقات بما يصل إلى %{count} من النطاقات من %{filename} .
+ following_html:
+ few: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} والتوقف عن متابعة أي شخص آخر .
+ many: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} والتوقف عن متابعة أي شخص آخر .
+ one: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} والتوقف عن متابعة أي شخص آخر .
+ other: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} والتوقف عن متابعة أي شخص آخر .
+ two: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} والتوقف عن متابعة أي شخص آخر .
+ zero: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} والتوقف عن متابعة أي شخص آخر .
+ lists_html:
+ few: إنّك بصدد استبدال قوائمك بمحتوى مِلَفّ %{filename} . ما يُقارِب %{count} حسابًا سوف تُضاف إلى قوائم جديدة.
+ many: إنّك بصدد استبدال قوائمك بمحتوى مِلَفّ %{filename} . ما يُقارِب %{count} حسابًا سوف تُضاف إلى قوائم جديدة.
+ one: إنّك بصدد استبدال قوائمك بمحتوى مِلَفّ %{filename} . ما يُقارِب %{count} حسابًا سوف تُضاف إلى قوائم جديدة.
+ other: إنّك بصدد استبدال قوائمك بمحتوى مِلَفّ %{filename} . ما يُقارِب %{count} حسابًا سوف تُضاف إلى قوائم جديدة.
+ two: إنّك بصدد استبدال قوائمك بمحتوى مِلَفّ %{filename} . ما يُقارِب %{count} حسابًا سوف تُضاف إلى قوائم جديدة.
+ zero: إنّك بصدد استبدال قوائمك بمحتوى مِلَفّ %{filename} . ما يُقارِب %{count} حسابًا سوف تُضاف إلى قوائم جديدة.
+ muting_html:
+ few: أنت على وشك استبدال قائمة الحسابات المكتومة بما يصل إلى %{count} من الحسابات من %{filename} .
+ many: أنت على وشك استبدال قائمة الحسابات المكتومة بما يصل إلى %{count} من الحسابات من %{filename} .
+ one: أنت على وشك استبدال قائمة الحسابات المكتومة بما يصل إلى %{count} من الحسابات من %{filename} .
+ other: أنت على وشك استبدال قائمة الحسابات المكتومة بما يصل إلى %{count} من الحسابات من %{filename} .
+ two: أنت على وشك استبدال قائمة الحسابات المكتومة بما يصل إلى %{count} من الحسابات من %{filename} .
+ zero: أنت على وشك استبدال قائمة الحسابات المكتومة بما يصل إلى %{count} من الحسابات من %{filename} .
+ preambles:
+ blocking_html:
+ few: أنت على وشك حظر ما يصل إلى %{count} من الحسابات من %{filename} .
+ many: أنت على وشك حظر ما يصل إلى %{count} من الحسابات من %{filename} .
+ one: أنت على وشك حظر ما يصل إلى %{count} من الحسابات من %{filename} .
+ other: أنت على وشك حظر ما يصل إلى %{count} من الحسابات من %{filename} .
+ two: أنت على وشك حظر ما يصل إلى %{count} من الحسابات من %{filename} .
+ zero: أنت على وشك حظر ما يصل إلى %{count} من الحسابات من %{filename} .
+ bookmarks_html:
+ few: أنت على وشك إضافة ما يصل إلى %{count} من المنشورات من %{filename} إلى إشاراتك المرجعية .
+ many: أنت على وشك إضافة ما يصل إلى %{count} من المنشورات من %{filename} إلى إشاراتك المرجعية .
+ one: أنت على وشك إضافة ما يصل إلى %{count} من المنشورات من %{filename} إلى إشاراتك المرجعية .
+ other: أنت على وشك إضافة ما يصل إلى %{count} من المنشورات من %{filename} إلى إشاراتك المرجعية .
+ two: أنت على وشك إضافة ما يصل إلى %{count} من المنشورات من %{filename} إلى إشاراتك المرجعية .
+ zero: أنت على وشك إضافة ما يصل إلى %{count} من المنشورات من %{filename} إلى إشاراتك المرجعية .
+ domain_blocking_html:
+ few: أنت على وشك حظر ما يصل إلى %{count} من النطاقات من %{filename} .
+ many: أنت على وشك حظر ما يصل إلى %{count} من النطاقات من %{filename} .
+ one: أنت على وشك حظر ما يصل إلى %{count} من النطاقات من %{filename} .
+ other: أنت على وشك حظر ما يصل إلى %{count} من النطاقات من %{filename} .
+ two: أنت على وشك حظر ما يصل إلى %{count} من النطاقات من %{filename} .
+ zero: أنت على وشك حظر ما يصل إلى %{count} من النطاقات من %{filename} .
+ following_html:
+ few: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} .
+ many: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} .
+ one: أنت على وشك حظر ما يصل إلى %{count} من النطاقات من %{filename} .
+ other: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} .
+ two: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} .
+ zero: أنت على وشك متابعة ما يصل إلى %{count} من الحسابات من %{filename} .
+ lists_html:
+ few: أنت على وشك إضافة ما يصل إلى %{count} حسابات من %{filename} إلى قوائمك . سيتم إنشاء قوائم جديدة في حالة عدم وجود قائمة للإضافة إليها.
+ many: أنت على وشك إضافة ما يصل إلى %{count} حسابات من %{filename} إلى قوائمك . سيتم إنشاء قوائم جديدة في حالة عدم وجود قائمة للإضافة إليها.
+ one: أنت على وشك إضافة ما يصل إلى %{count} حسابات من %{filename} إلى قوائمك . سيتم إنشاء قوائم جديدة في حالة عدم وجود قائمة للإضافة إليها.
+ other: أنت على وشك إضافة ما يصل إلى %{count} حسابات من %{filename} إلى قوائمك . سيتم إنشاء قوائم جديدة في حالة عدم وجود قائمة للإضافة إليها.
+ two: أنت على وشك إضافة ما يصل إلى %{count} حسابات من %{filename} إلى قوائمك . سيتم إنشاء قوائم جديدة في حالة عدم وجود قائمة للإضافة إليها.
+ zero: أنت على وشك إضافة ما يصل إلى %{count} حسابات من %{filename} إلى قوائمك . سيتم إنشاء قوائم جديدة في حالة عدم وجود قائمة للإضافة إليها.
+ muting_html:
+ few: أنت على وشك كتم ما يصل إلى %{count} من الحسابات من %{filename} .
+ many: أنت على وشك كتم ما يصل إلى %{count} من الحسابات من %{filename} .
+ one: أنت على وشك كتم ما يصل إلى %{count} من الحسابات من %{filename} .
+ other: أنت على وشك كتم ما يصل إلى %{count} من الحسابات من %{filename} .
+ two: أنت على وشك كتم ما يصل إلى %{count} من الحسابات من %{filename} .
+ zero: أنت على وشك كتم ما يصل إلى %{count} من الحسابات من %{filename} .
preface: بإمكانك استيراد بيانات قد قُمتَ بتصديرها مِن مثيل خادم آخَر، كقوائم المستخدِمين الذين كنتَ تتابِعهم أو قُمتَ بحظرهم.
recent_imports: الاستيرادات الحديثة
states:
@@ -1467,13 +1732,21 @@ ar:
unsubscribe:
action: نعم، ألغِ الاشتراك
complete: غير مشترك
+ confirmation_html: هل أنت متأكد أنك تريد إلغاء الاشتراك عن تلقي %{type} لماستدون على %{domain} إلى بريدك الإلكتروني %{email}؟ يمكنك دائمًا إعادة الاشتراك من إعدادات إشعارات البريد الإلكتروني .
emails:
notification_emails:
+ favourite: إرسال إشعارات التفضيلات بالبريد الإلكتروني
+ follow: إرسال إشعارات المتابعة بالبريد الإلكتروني
+ follow_request: إرسال إشعارات الطلبات بالبريد الإلكتروني
+ mention: إشعارات رسائل البريد عندما يَذكُرك أحدهم
reblog: رسائل البريد الخاصة بالمنشورات المعاد نشرها
+ resubscribe_html: إذا قمت بإلغاء الاشتراك عن طريق الخطأ، يمكنك إعادة الاشتراك من إعدادات إشعارات البريد الإلكتروني .
+ success_html: لن تتلقّ بعد الآن %{type} لماستدون مِن %{domain} على بريدك الإلكتروني %{email}.
title: إلغاء الاشتراك
media_attachments:
validations:
images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور
+ not_found: لم يتم العثور على الوسيط %{ids} أو هو مضاف مسبقاً لمنشور آخر
not_ready: لا يمكن إرفاق الملفات التي لم يتم معالجتها بعد. أعد المحاولة بعد لحظات!
too_many: لا يمكن إرفاق أكثر من 4 ملفات
migrations:
@@ -1551,6 +1824,7 @@ ar:
subject: قام %{name} بتحرير منشور
notifications:
administration_emails: إشعارات البريد الإلكتروني الإدارية
+ email_events: الأحداث للإشعارات عبر البريد الإلكتروني
email_events_hint: 'اختر الأحداث التي تريد أن تصِلَك اشعارات عنها:'
number:
human:
@@ -1644,6 +1918,7 @@ ar:
scheduled_statuses:
over_daily_limit: لقد تجاوزتَ حد الـ %{limit} منشورات مُبَرمَجة مسموح بها اليوم
over_total_limit: لقد بلغت حد الـ %{limit} مِن المنشورات المبرمَجة
+ too_soon: يجب أن يكون التاريخ في المستقبل
self_destruct:
lead_html: للأسف، سيتم إغلاق %{domain} بشكل دائم. إذا كان لديك حساب هناك، لن تكون قادرًا على الاستمرار في استخدامه، غير أنه يمكنك طلب نسخة احتياطية لبياناتك.
title: سيُغلق هذا الخادم أبوابه
@@ -1703,6 +1978,7 @@ ar:
delete: حذف الحسابات
development: التطوير
edit_profile: تعديل الصفحة التعريفية
+ export: تصدير
featured_tags: الوسوم الشائعة
import: استيراد
import_and_export: استيراد وتصدير
@@ -1718,10 +1994,15 @@ ar:
webauthn_authentication: مفاتيح الأمان
severed_relationships:
download: تنزيل (%{count})
+ event_type:
+ account_suspension: فصل الحساب (%{target_name})
+ domain_block: فصل الخادم (%{target_name})
+ user_domain_block: قمت بحظر %{target_name}
lost_followers: المتابعون المفقودون
lost_follows: المتابعات المفقودة
preamble: بحجبكم اسم نطاق قد تخسرون متابَعاتٍ، و كذلك إذا قرّر مديرو الخادوم حظر خادوم ما. و في هذه الحالات يكون بوسعكم تنزيل قائمة بالصلات المبتورة لمعاينتها، مع القدرة على استيرادها إلى خادوم آخر.
purged: حذف مدير خادومكم المعلومات عن هذا الخادوم.
+ type: حدث
statuses:
attached:
audio:
@@ -1765,6 +2046,10 @@ ar:
limit: لقد بلغت الحد الأقصى للمنشورات المثبتة
ownership: لا يمكن تثبيت منشور نشره شخص آخر
reblog: لا يمكن تثبيت إعادة نشر
+ quote_policies:
+ followers: المتابعين والمستخدمين المذكورين
+ nobody: المستخدمين المذكورين فقط
+ public: الجميع
title: '%{name}: "%{quote}"'
visibilities:
direct: مباشرة
@@ -1818,6 +2103,11 @@ ar:
does_not_match_previous_name: لا يطابق الإسم السابق
terms_of_service:
title: شروط الخدمة
+ terms_of_service_interstitial:
+ future_preamble_html: نحن نقوم ببعض التغييرات على شروط خدمتنا، والتي ستكون فعالة بدءاً من %{date} . ونحن نشجعكم على استعراض الشروط الجديدة.
+ past_preamble_html: لقد غيرنا شروط خدمتنا منذ زيارتكم الأخيرة. نشجعكم على مراجعة الشروط المحدثة.
+ review_link: مراجعة شروط الخدمة
+ title: شروط خدمة النطاق %{domain} ستتغير
themes:
contrast: ماستدون (تباين عالٍ)
default: ماستدون (داكن)
@@ -1849,6 +2139,10 @@ ar:
recovery_instructions_html: إن فقدت الوصول إلى هاتفك، يمكنك استخدام أحد رموز الاسترداد أدناه لاستعادة الوصول إلى حسابك. حافظ على رموز الاسترداد بأمان . يمكنك ، على سبيل المثال ، طباعتها وتخزينها مع مستندات أخرى هامة.
webauthn: مفاتيح الأمان
user_mailer:
+ announcement_published:
+ description: 'يقوم مديرو %{domain} بإصدار إعلان:'
+ subject: إعلان الخدمة
+ title: إعلان الخدمة خاص بـ%{domain}
appeal_approved:
action: إعدادات الحساب
explanation: تمت الموافقة على استئناف السجل ضد حسابك في %{strike_date} الذي قدمته في %{appeal_date}. حسابك مرة أخرى في حالة جيدة.
@@ -1879,6 +2173,13 @@ ar:
subject: تم النفاذ عبر حسابك من خلال عنوان إيبي جديد
title: تسجيل دخول جديد
terms_of_service_changed:
+ agreement: من خلال الاستمرار في استخدام %{domain}، أنت توافق على هذه الشروط. إذا لم توافق على الشروط المحدثة، يمكنك إنهاء اتفاقك مع %{domain} في أي وقت عن طريق حذف حسابك.
+ changelog: 'باختصار، هذا هو تأثير التحديث بالنسبة لك:'
+ description: 'أنت تتلقى هذا البريد الإلكتروني لأننا نقوم ببعض التغييرات على شروط خدمتنا في %{domain}. ستصبح هذه التحديثات سارية المفعول على %{date}. ونحن نشجعك على مراجعة الشروط المحدّثة بالكامل هنا:'
+ description_html: أنت تتلقى هذا البريد الإلكتروني لأننا نقوم ببعض التغييرات على شروط خدمتنا في %{domain}. ستصبح هذه التحديثات سارية المفعول بدءاً من %{date} . نحن نشجعكم على مراجعة الشروط التي تم تحديثها بالكامل هنا .
+ sign_off: فريق %{domain}
+ subject: تحديثات على شروط الخدمة خاصتنا
+ subtitle: شروط خدمة النطاق %{domain} ستتغير
title: تحديث مهم
warning:
appeal: تقديم طعن
@@ -1937,6 +2238,14 @@ ar:
follows_subtitle: اتبع الحسابات المشهورة
follows_title: مَن عليك متابعته
follows_view_more: متابعة المزيد من الأشخاص
+ hashtags_recent_count:
+ few: "%{people} أشخاص في اليومين الماضيين"
+ many: "%{people} أشخاص في اليومين الماضيين"
+ one: "%{people} شخص في اليومين الماضيين"
+ other: "%{people} أشخاص في اليومين الماضيين"
+ two: "%{people} شخص في اليومين الماضيين"
+ zero: "%{people} شخص في اليومين الماضيين"
+ hashtags_subtitle: استكشف ما رائج خلال اليومين الماضيين
hashtags_title: الوسوم الرائجة
hashtags_view_more: عرض المزيد من الوسوم الرائجة
post_action: إنشاء
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 5a41164c065..cbb0b682fd3 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -566,6 +566,13 @@ bg:
all: Всичко
limited: Ограничено
title: Mодериране
+ moderation_notes:
+ create: Добавяне на бележка за модериране
+ created_msg: Успешно създадена бележка за модериране на екземпляр!
+ description_html: Прегледайте и оставете бележки за други модератори и за вас в бъдеще
+ destroyed_msg: Успешно изтрита бележка за модериране на екземпляр!
+ placeholder: Сведенията за този екземпляр, предприети действия, или всичко друго, което ще ви помогне да модерирате този екземпляр в бъдеще.
+ title: Бележки за модериране
private_comment: Личен коментар
public_comment: Публичен коментар
purge: Чистка
@@ -774,11 +781,16 @@ bg:
title: Роли
rules:
add_new: Добавяне на правило
+ add_translation: Добавяне на превод
delete: Изтриване
description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки. Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки.
edit: Промяна на правило
empty: Още няма определени правила на сървъра.
+ move_down: Преместване надолу
+ move_up: Преместване нагоре
title: Сървърни правила
+ translation: Превод
+ translations: Преводи
settings:
about:
manage_rules: Управление на правилата на сървъра
@@ -804,6 +816,7 @@ bg:
discovery:
follow_recommendations: Препоръки за следване
preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър.
+ privacy: Поверителност
profile_directory: Указател на профила
public_timelines: Публични хронологии
publish_statistics: Публикуване на статистиката
@@ -890,6 +903,8 @@ bg:
system_checks:
database_schema_check:
message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението
+ elasticsearch_analysis_index_mismatch:
+ message_html: Настройките за анализиращия индекс Elasticsearch са остарели. Пуснете tootctl search deploy --only-mapping --only=%{value}
elasticsearch_health_red:
message_html: Клъстерът Elasticsearch е нездрав (червено състояние), функциите за търсене не са налични
elasticsearch_health_yellow:
@@ -1841,6 +1856,10 @@ bg:
limit: Вече сте закачили максималния брой публикации
ownership: Публикация на някого другиго не може да бъде закачена
reblog: Раздуване не може да бъде закачано
+ quote_policies:
+ followers: Последователи и споменати потребители
+ nobody: Само споменатите потребители
+ public: Всеки
title: "%{name}: „%{quote}“"
visibilities:
direct: Директно
@@ -1894,6 +1913,11 @@ bg:
does_not_match_previous_name: не съвпада с предишното име
terms_of_service:
title: Условия на услугата
+ terms_of_service_interstitial:
+ future_preamble_html: Правим някои промени в условията на услугата ни, което ще влезе в сила на %{date} . Насърчаваме ви да разгледате обновените условия.
+ past_preamble_html: Променихме условията на услугата ни от последното ви посещение. Насърчаваме ви да разгледате обновените условия.
+ review_link: Разглеждане на условията на услугата
+ title: Условията на услугата на %{domain} се променят
themes:
contrast: Mastodon (висок контраст)
default: Mastodon (тъмно)
diff --git a/config/locales/br.yml b/config/locales/br.yml
index 9f0cf07ab95..e5b9ff2559c 100644
--- a/config/locales/br.yml
+++ b/config/locales/br.yml
@@ -396,6 +396,9 @@ br:
created_at: Deiziad
title_actions:
none: Diwall
+ emoji_styles:
+ auto: Emgefreek
+ twemoji: Twemoji
exports:
archive_takeout:
date: Deiziad
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 0d0d60cf520..1f64cb82fe2 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -578,6 +578,11 @@ ca:
all: Totes
limited: Limitades
title: Moderació
+ moderation_notes:
+ create: Afegeix una nota de moderació
+ created_msg: S'ha creat la nota de moderació d'instància.
+ destroyed_msg: S'ha esborrat la nota de moderació d'instància.
+ title: Notes de moderació
private_comment: Comentari privat
public_comment: Comentari públic
purge: Purga
@@ -1339,6 +1344,10 @@ ca:
basic_information: Informació bàsica
hint_html: "Personalitza el que la gent veu en el teu perfil públic i a prop dels teus tuts.. És més probable que altres persones et segueixin i interaccionin amb tu quan tens emplenat el teu perfil i amb la teva imatge."
other: Altres
+ emoji_styles:
+ auto: Automàtic
+ native: Nadiu
+ twemoji: Twemoji
errors:
'400': La sol·licitud que vas emetre no era vàlida o no era correcta.
'403': No tens permís per a veure aquesta pàgina.
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index c06917629cf..1ad8df6e71f 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -600,6 +600,13 @@ cs:
all: Všechny
limited: Omezený
title: Moderování
+ moderation_notes:
+ create: Přidat moderační poznámku
+ created_msg: Moderační poznámka instance byla úspěšně vytvořena!
+ description_html: Zobrazit a zanechat poznámky pro ostatní moderátory a pro vás do budoucnosti
+ destroyed_msg: Moderační poznámka instance byla úspěšně smazána!
+ placeholder: Informace o této instanci, podniknutá opatření nebo cokoliv jiného, co vám pomůže v moderování této instance v budoucnosti.
+ title: Moderační poznámky
private_comment: Soukromý komentář
public_comment: Veřejný komentář
purge: Odmazat
@@ -1380,6 +1387,10 @@ cs:
basic_information: Základní informace
hint_html: "Nastavte si, co lidé uvidí na vašem veřejném profilu a vedle vašich příspěvků. Ostatní lidé vás budou spíše sledovat a komunikovat s vámi, když budete mít vyplněný profil a profilový obrázek."
other: Další
+ emoji_styles:
+ auto: Auto
+ native: Výchozí
+ twemoji: Twemoji
errors:
'400': Žádost, kterou jste odeslali, byla neplatná nebo poškozená.
'403': Nejste oprávněni tuto stránku zobrazit.
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 87db8b6031e..6e1826510c2 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -622,6 +622,13 @@ cy:
all: Popeth
limited: Cyfyngedig
title: Cymedroli
+ moderation_notes:
+ create: Ychwanegu Nodyn Cymedroli
+ created_msg: Nodyn cymedroli enghraifft wedi'i greu'n llwyddiannus!
+ description_html: Gweld a gadael nodiadau ar gyfer cymedrolwyr eraill a chi'ch hun y dyfodol
+ destroyed_msg: Nodyn cymedroli enghraifft wedi'i ddileu'n llwyddiannus!
+ placeholder: Gwybodaeth am yr enghraifft hwn, y camau a gymerwyd, neu unrhyw beth arall a fydd yn eich helpu i gymedroli'r achos hwn yn y dyfodol.
+ title: Nodiadau Cymedroli
private_comment: Sylw preifat
public_comment: Sylw cyhoeddus
purge: Clirio
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 5257d9dee7e..432308d5912 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -16,12 +16,12 @@ da:
link_verified_on: Ejerskab af dette link blev tjekket %{date}
nothing_here: Der er intet her!
pin_errors:
- following: Man skal allerede følge den person, man ønsker at støtte
+ following: Du skal allerede følge den person, du ønsker at støtte
posts:
one: Indlæg
other: Indlæg
posts_tab_heading: Indlæg
- self_follow_error: Det er ikke tilladt at følge sin egen konto
+ self_follow_error: Det er ikke tilladt at følge ens egen konto
admin:
account_actions:
action: Udfør handling
@@ -75,7 +75,7 @@ da:
enabled_msg: "%{username}s konto er optøet"
followers: Følgere
follows: Følger
- header: Overskrift
+ header: Banner
inbox_url: Indbakke-URL
invite_request_text: Begrundelse for tilmelding
invited_by: Inviteret af
@@ -125,7 +125,7 @@ da:
remove_avatar: Fjern profilbillede
remove_header: Fjern banner
removed_avatar_msg: "%{username}s profilbillede fjernet"
- removed_header_msg: "%{username}s banner fjernet"
+ removed_header_msg: "%{username}'s banner fjernet"
resend_confirmation:
already_confirmed: Denne bruger er allerede bekræftet
send: Gensend bekræftelseslink
@@ -309,7 +309,7 @@ da:
title: Revisionslog
unavailable_instance: "(domænenavn utilgængeligt)"
announcements:
- back: Retur til annonceringer
+ back: Tilbage til annonceringer
destroyed_msg: Bekendtgørelsen er slettet!
edit:
title: Redigér bekendtgørelse
@@ -578,6 +578,13 @@ da:
all: Alle
limited: Begrænset
title: Moderation
+ moderation_notes:
+ create: Tilføj moderationsnotat
+ created_msg: Instansmoderationsnotat oprettet!
+ description_html: Se og skriv notater til andre moderatorer og dit fremtidige jeg
+ destroyed_msg: Instansmoderationsnotat slettet!
+ placeholder: Oplysninger om denne instans, foretaget handlinger eller andet, som kan assistere ved fremtidige instansmoderationer.
+ title: Moderationsnotater
private_comment: Privat kommentar
public_comment: Offentlig kommentar
purge: Udrens
@@ -644,9 +651,9 @@ da:
actions:
delete_description_html: De anmeldte indlæg slettes, og en advarsel (strike) registreres mhp. eskalering ved evt. fremtidige overtrædelser fra samme konto.
mark_as_sensitive_description_html: Medierne i det anmeldte indlæg markeres som sensitive, og en advarsel (strike) registreres mhp. eskalering ved evt. fremtidige overtrædelser fra samme konto.
- other_description_html: Se flere muligheder relateret til at adfærdshåndtering for, samt tilpasning af kommunikation til, den anmeldte konto.
+ other_description_html: Se flere muligheder for at kontrollere kontoens adfærd og tilpasse kommunikationen til den anmeldte konto.
resolve_description_html: Ingen foranstaltninger træffes mod den anmeldte konto, ingen advarsel (strike) registreres og anmeldelsen lukkes.
- silence_description_html: Kontoen vil kun være synlig for følgerene eller dem, som manuelt slå den op, hvilket markant begrænser dens udbredelse. Kan altid omgøres. Lukker alle indrapporteringer af kontoen.
+ silence_description_html: Kontoen vil kun være synlig for dem, der allerede følger den eller manuelt slår den op, hvilket alvorligt begrænser dens rækkevidde. Kan altid omgøres. Lukker alle indrapporteringer af denne konto.
suspend_description_html: Kontoen inkl. alt indhold utilgængeliggøres og interaktion umuliggøres, og den slettes på et tidspunkt. Kan omgøres inden for 30 dage. Lukker alle indrapporteringer af kontoen.
actions_description_html: Afgør, hvilke foranstaltning, der skal træffes for at løse denne anmeldelse. Ved en straffende foranstaltning mod den anmeldte konto, fremsendes en e-mailnotifikation, undtagen når kategorien Spam er valgt.
actions_description_remote_html: Fastslå en nødvendig handling mhp. at løse denne anmeldelse. Dette vil kun påvirke din servers kommunikation med, og indholdshåndtering for, fjernkontoen.
@@ -729,7 +736,7 @@ da:
one: "%{count} bruger"
other: "%{count} brugere"
categories:
- administration: Håndtering
+ administration: Administration
devops: DevOps
invites: Invitationer
moderation: Moderering
@@ -749,33 +756,33 @@ da:
delete_user_data_description: Tillader brugere at slette andre brugeres data straks
invite_users: Invitér brugere
invite_users_description: Tillader brugere at invitere nye personer til serveren
- manage_announcements: Håndtere bekendtgørelser
- manage_announcements_description: Tillader brugere at håndtere bekendtgørelser på serveren
- manage_appeals: Håndtere appeller
+ manage_announcements: Administrer annonceringer
+ manage_announcements_description: Tillader brugere at administrere annonceringer på serveren
+ manage_appeals: Administrere appeller
manage_appeals_description: Tillader brugere at vurdere appeller af modereringshandlinger
- manage_blocks: Håndtere blokeringer
+ manage_blocks: Administrere blokeringer
manage_blocks_description: Tillader brugere at blokere e-mailudbydere og IP-adresser
- manage_custom_emojis: Håndtere tilpassede emojier
- manage_custom_emojis_description: Tillader brugere at håndtere tilpassede emojier på serveren
- manage_federation: Håndtere federation
+ manage_custom_emojis: Administrere tilpassede emojier
+ manage_custom_emojis_description: Tillader brugere at administrere tilpassede emojier på serveren
+ manage_federation: Administrere federation
manage_federation_description: Tillader brugere at blokere eller tillade federation med andre domæner og styre leverbarhed
- manage_invites: Administrér invitationer
+ manage_invites: Administrere invitationer
manage_invites_description: Tillader brugere at gennemse og deaktivere invitationslinks
- manage_reports: Håndtere rapporter
+ manage_reports: Administrere anmeldelser
manage_reports_description: Tillader brugere at vurdere rapporter og, i overensstemmelse hermed, at udføre moderationshandlinger
- manage_roles: Håndtere roller
+ manage_roles: Administrere roller
manage_roles_description: Tillader brugere at håndtere og tildele roller under deres privilegiestatus
- manage_rules: Håndtere regler
+ manage_rules: Administrere regler
manage_rules_description: Tillad brugere at ændre serverregler
- manage_settings: Håndtere indstillinger
+ manage_settings: Administrere indstillinger
manage_settings_description: Tillader brugere at ændre webstedsindstillinger
- manage_taxonomies: Håndtere taksonomier
- manage_taxonomies_description: Tillader brugere at gennemse tenderende indhold og opdatere etiket-indstillinger
- manage_user_access: Håndtere brugeradgang
+ manage_taxonomies: Administrere taksonomier
+ manage_taxonomies_description: Giver brugerne mulighed for at gennemgå trendende indhold og opdatere hashtag-indstillinger
+ manage_user_access: Administrere brugeradgang
manage_user_access_description: Tillader brugere at deaktivere andre brugeres tofaktorgodkendelse, skifte deres e-mailadresse og nulstille deres adgangskode
- manage_users: Håndtere brugere
+ manage_users: Administrere brugere
manage_users_description: Tillader brugere at se andre brugeres oplysninger og underkaste dem moderationshandlinger
- manage_webhooks: Håndtere Webhooks
+ manage_webhooks: Administrere Webhooks
manage_webhooks_description: Tillader brugere at opsætte webhooks til administrative begivenheder
view_audit_log: Vis revisionslog
view_audit_log_description: Tillader brugere at se en historik over administrative handlinger på serveren
@@ -869,8 +876,8 @@ da:
statuses:
account: Forfatter
application: Applikation
- back_to_account: Retur til kontoside
- back_to_report: Retur til anmeldelsesside
+ back_to_account: Tilbage til kontoside
+ back_to_report: Tilbage til anmeldelsesside
batch:
add_to_report: 'Føj til rapporten #%{id}'
remove_from_report: Fjern fra anmeldelse
@@ -893,7 +900,7 @@ da:
status_changed: Indlæg ændret
status_title: Indlæg fra @%{name}
title: Kontoindlæg - @%{name}
- trending: Populære
+ trending: Trender
view_publicly: Vis offentligt
visibility: Synlighed
with_media: Med medier
@@ -911,7 +918,7 @@ da:
appeal_rejected: Appel afvist
system_checks:
database_schema_check:
- message_html: Databasemigreringer afventer. Kør dem for at sikre den forventede adfærd fra applikationen
+ message_html: Der er afventende databasemigreringer. Kør dem venligst for at sikre, at applikationen opfører sig som forventet
elasticsearch_analysis_index_mismatch:
message_html: Elasticsearch-indeksanalyseringsindstillinger er forældede. Kør tootctl search deploy --only=%{value}
elasticsearch_health_red:
@@ -971,7 +978,7 @@ da:
reset: Nulstil
review: Gennmgangsstatus
search: Søg
- title: Etiketter
+ title: Hashtags
updated_msg: Hashtag-indstillinger opdateret
terms_of_service:
back: Tilbage til Tjenestevilkår
@@ -999,7 +1006,7 @@ da:
one: Send %{display_count} e-mail
other: Send %{display_count} e-mails
title: Forhåndsvis Tjenestevilkår-underretning
- publish: Udgiv
+ publish: Publicér
published_on_html: Udgivet pr. %{date}
save_draft: Gem udkast
title: Tjenestevilkår
@@ -1026,7 +1033,7 @@ da:
shared_by_over_week:
one: Delt af én person den seneste uge
other: Delt af %{count} personer den seneste uge
- title: Populære links
+ title: Links, der trender
usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
not_allowed_to_trend: Ikke tilladt at trende
only_allowed: Kun tilladte
@@ -1061,14 +1068,14 @@ da:
tag_servers_dimension: Topservere
tag_servers_measure: forskellige servere
tag_uses_measure: anvendelser i alt
- description_html: Disse er etiketter, som pt. vises i en masse indlæg, som serveren ser. Det kan hjælpe brugerne til at finde ud af, hvad folk taler mest om pt. Ingen etiketter vises offentligt, før man godkender dem.
+ description_html: Disse er hashtags, som pt. vises i en masse indlæg, som din server ser. Det kan hjælpe dine brugere til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før du godkender dem.
listable: Kan foreslås
no_tag_selected: Intet tag ændret (da intet var valgt)
not_listable: Foreslås ikke
not_trendable: Vises ikke under tendenser
not_usable: Kan ikke anvendes
peaked_on_and_decaying: Toppede pr. %{date}, nu for nedadgående
- title: Populære etiketter
+ title: Populære hashtags
trendable: Kan vises under tendenser
trending_rank: 'Populær #%{rank}'
usable: Kan anvendes
@@ -1076,8 +1083,8 @@ da:
used_by_over_week:
one: Brugt af én person den seneste uge
other: Brugt af %{count} personer den seneste uge
- title: Anbefalinger og Tendenser
- trending: Populære
+ title: Anbefalinger og trends
+ trending: Trender
warning_presets:
add_new: Tilføj ny
delete: Slet
@@ -1136,11 +1143,11 @@ da:
new_trends:
body: 'Flg. emner kræver gennemgang, inden de kan vises offentligt:'
new_trending_links:
- title: Populære links
+ title: Links, der trender
new_trending_statuses:
- title: Populære opslag
+ title: Indlæg, der trender
new_trending_tags:
- title: Populære etiketter
+ title: Hashtags, der trender
subject: Nye tendenser klar til gennemgang på %{instance}
aliases:
add_new: Opret alias
@@ -1151,7 +1158,7 @@ da:
remove: Fjern aliaslinkning
appearance:
advanced_web_interface: Avanceret webgrænseflade
- advanced_web_interface_hint: 'Ønsker du udnytte hele skærmbredden, lader den avancerede netgrænseflade dig opsætte mange forskellige kolonner for at se så meget information på samme tid som ønsket: Hjem, notifikationer, fødereret tidslinje, et hvilket som helst antal lister og etiketter.'
+ advanced_web_interface_hint: 'Ønsker du udnytte hele skærmbredden, lader den avancerede webgrænseflade dig opsætte mange forskellige kolonner for at se så meget information på samme tid som ønsket: Hjem, notifikationer, federeret tidslinje, et hvilket som helst antal lister og hashtags.'
animations_and_accessibility: Animationer og tilgængelighed
confirmation_dialogs: Bekræftelsesdialoger
discovery: Opdagelse
@@ -1243,7 +1250,7 @@ da:
title: Log ind på %{domain}
sign_up:
manual_review: Tilmeldinger på %{domain} undergår manuel moderatorgennemgang. For at hjælpe med behandlingen af tilmeldingen, så skriv en smule om dig selv, samt hvorfor du ønsker en konto på %{domain}.
- preamble: Man vil med en konto på denne Mastodon-server kunne følge enhver anden bruger i fediverset, uanset hvor vedkommendes konto hostes.
+ preamble: Du vil med en konto på denne Mastodon-server kunne følge enhver anden bruger i fediverset, uanset hvor vedkommendes konto hostes.
title: Lad os få dig sat op på %{domain}.
status:
account_status: Kontostatus
@@ -1259,8 +1266,8 @@ da:
user_privacy_agreement_html: Jeg accepterer fortrolighedspolitikken
author_attribution:
example_title: Eksempeltekst
- hint_html: Skriver du nyheder eller blogartikler uden for Mastodon? Styr, hvordan man bliver krediteret, når disse deles på Mastodon.
- instructions: 'Sørg for, at denne kode er i artikelens HTML:'
+ hint_html: Skriver du nyheder eller blogartikler uden for Mastodon? Styr, hvordan du bliver krediteret, når de bliver delt på Mastodon.
+ instructions: 'Sørg for, at denne kode er i din artikels HTML:'
more_from_html: Flere fra %{name}
s_blog: "%{name}s blog"
then_instructions: Tilføj dernæst publikationsdomænenavnet i feltet nedenfor.
@@ -1340,8 +1347,12 @@ da:
your_appeal_rejected: Din appel er afvist
edit_profile:
basic_information: Oplysninger
- hint_html: "Tilpas hvad folk ser på din offentlige profil og ved siden af dine indlæg. Andre personer vil mere sandsynligt følge dig tilbage og interagere med dig, når du har en udfyldt profil og et profilbillede."
+ hint_html: "Tilpas, hvad folk ser på din offentlige profil og ved siden af dine indlæg. Andre personer er mere tilbøjelige til at følge dig tilbage og interagere med dig, når du har en udfyldt profil og et profilbillede."
other: Andre
+ emoji_styles:
+ auto: Auto
+ native: Indbygget
+ twemoji: Twemoji
errors:
'400': Din indsendte anmodning er ugyldig eller fejlbehæftet.
'403': Du har ikke tilladelse til at se denne side.
@@ -1364,7 +1375,7 @@ da:
archive_takeout:
date: Dato
download: Download dit arkiv
- hint_html: Du kan anmode om et arkiv af dine trut og oplagt medie . Den eksporterede data vil være i ActivityPub formattet, læseligt af enhvert kompatibelt program. Du kan anmode om et arkiv én gang om ugen.
+ hint_html: Du kan anmode om et arkiv over dine indlæg og uploadede medier . De eksporterede data vil være i ActivityPub-formatet, der kan læses af enhver kompatibel software. Du kan anmode om et arkiv hver 7. dag.
in_progress: Forbereder dit arkiv...
request: Anmod om dit arkiv
size: Størrelse
@@ -1378,15 +1389,15 @@ da:
featured_tags:
add_new: Tilføj nyt
errors:
- limit: Det maksimale antal etiketter er allerede fremhævet
- hint_html: "Hvad er fremhævede etiketter? De vises i en fremtrædende position på din offentlige profil og giver folk mulighed for at gennemse dine offentlige indlæg specifikt under disse etiketter. De er et fantastisk værktøj til at holde styr på kreative værker eller langsigtede projekter."
+ limit: Det maksimale antal hashtags er allerede fremhævet
+ hint_html: "Hvad er fremhævede hashtags? De vises i en fremtrædende position på din offentlige profil og giver folk mulighed for at gennemse dine offentlige indlæg specifikt under disse hashtags. De er et fantastisk værktøj til at holde styr på kreative værker eller langsigtede projekter."
filters:
contexts:
account: Profiler
home: Hjemmetidslinje
notifications: Notifikationer
public: Offentlig tidslinje
- thread: Konversationer
+ thread: Samtaler
edit:
add_keyword: Tilføj nøgleord
keywords: Nøgleord
@@ -1397,7 +1408,7 @@ da:
deprecated_api_multiple_keywords: Disse parametre kan ikke ændres fra denne applikation, da de gælder for flere end ét filternøgleord. Brug en nyere applikation eller webgrænsefladen.
invalid_context: Ingen eller ugyldig kontekst angivet
index:
- contexts: Filtre i %{contexts}
+ contexts: Filtrer %{contexts}
delete: Slet
empty: Du har ingen filtre.
expires_in: Udløber om %{distance}
@@ -1416,7 +1427,7 @@ da:
save: Gem nye filter
title: Tilføj nyt filter
statuses:
- back_to_filter: Returnér til filter
+ back_to_filter: Tilbage til filter
batch:
remove: Fjern fra filter
index:
@@ -1466,27 +1477,27 @@ da:
one: Man er ved at erstatte sin sortliste med %{count} konto fra %{filename} .
other: Man er ved at erstatte sin sortliste med optil %{count} konti fra %{filename} .
bookmarks_html:
- one: Man er ved at erstatte sine bogmærker med %{count} post fra %{filename} .
- other: Man er ved at erstatte sine bogmærker med op til %{count} poster fra %{filename} .
+ one: Du er ved at erstatte dine bogmærker med %{count} indlæg fra %{filename} .
+ other: Du er ved at erstatte dine bogmærker med op til %{count} indlæg fra %{filename} .
domain_blocking_html:
one: Man er ved at erstatte sin domænesortliste med %{count} domæne fra %{filename} .
other: Man er ved at erstatte sin domænesortliste med op til %{count} domæner fra %{filename} .
following_html:
- one: Man er ved at følge %{count} konto fra %{filename} og stoppe med at følge andre .
- other: Man er ved at følge %{count} konti fra %{filename} og stoppe med at følge andre .
+ one: Du er ved at følge %{count} konto fra %{filename} og stoppe med at følge andre .
+ other: Du er ved at følge %{count} konti fra %{filename} og stoppe med at følge andre .
lists_html:
one: Man er ved at erstatte sine lister med indhold fra %{filename} . %{count} konto føjes til nye lister.
other: Man er ved at erstatte sine lister med indhold fra %{filename} . Op til %{count} konti føjes til nye lister.
muting_html:
- one: Man er ved at sin liste over en tavsgjort konto med %{count} konto fra %{filename} .
- other: Du er ved at erstatte din liste over skjulte kontoer med op til %{count} kontoer fra %{filename} .
+ one: Du er ved at erstatte din liste over en skjult konto med op til %{count} konto fra %{filename} .
+ other: Du er ved at erstatte din liste over skjulte konti med op til %{count} konti fra %{filename} .
preambles:
blocking_html:
one: Man er ved at blokere %{count} konto fra %{filename} .
other: Man er ved at blokere op til %{count} konti fra %{filename} .
bookmarks_html:
- one: Man er ved at tilføje %{count} post fra %{filename} til sine bogmærker .
- other: Man er ved at tilføje %{count} poster fra %{filename} til sine bogmærker .
+ one: Du er ved at tilføje %{count} indlæg fra %{filename} til dine bogmærker .
+ other: Du er ved at tilføje %{count} indlæg fra %{filename} til dine bogmærker .
domain_blocking_html:
one: Man er ved at blokere %{count} domæne fra %{filename} .
other: Man er ved at blokere op til %{count} domæner fra %{filename} .
@@ -1497,8 +1508,8 @@ da:
one: Man er ved at tilføje %{count} konto fra %{filename} til sine lister . Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til.
other: Man er ved at tilføje %{count} konti fra %{filename} til sine lister . Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til.
muting_html:
- one: Man er ved at tavsgøre %{count} konto fra %{filename} .
- other: Du er ved at skjule op til %{count} kontoer fra %{filename} .
+ one: Du er ved at skjule op til %{count} konto fra %{filename} .
+ other: Du er ved at skjule op til %{count} konti fra %{filename} .
preface: Du kan importere data, du har eksporteret fra en anden server, såsom en liste over folk du følger eller blokerer.
recent_imports: Seneste importer
states:
@@ -1515,16 +1526,16 @@ da:
domain_blocking: Importerer blokerede konti
following: Importerer fulgte konti
lists: Import af lister
- muting: Importerer skjulte kontoer
+ muting: Importerer skjulte konti
type: Importtype
type_groups:
constructive: Følger og Bogmærker
- destructive: Blokerede og skjulte kontoer
+ destructive: Blokerede og skjulte konti
types:
blocking: Blokeringsliste
bookmarks: Bogmærker
domain_blocking: Domæneblokeringsliste
- following: Følgningsliste
+ following: Liste over fulgte
lists: Lister
muting: Tavsgørelsesliste
upload: Upload
@@ -1621,7 +1632,7 @@ da:
title: Moderation
move_handler:
carry_blocks_over_text: Denne bruger er flyttet fra %{acct}, som du har haft blokeret.
- carry_mutes_over_text: Denne bruger er flyttet fra %{acct}, som du har haft skjult.
+ carry_mutes_over_text: Denne bruger flyttede fra %{acct}, som du havde skjult.
copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:'
navigation:
toggle_menu: Åbn/luk menu
@@ -1691,14 +1702,14 @@ da:
errors:
already_voted: Du har allerede stemt i denne afstemning
duplicate_options: indeholder dubletvalg
- duration_too_long: er for lang en varighed
- duration_too_short: er for kort en varighed
+ duration_too_long: er for langt ude i fremtiden
+ duration_too_short: er for kort
expired: Afstemningen er allerede afsluttet
invalid_choice: Den valgte stemmemulighed findes ikke
over_character_limit: må maks. udgøre %{max} tegn hver
self_vote: Du kan ikke stemme i dine egne afstemninger
too_few_options: skal have flere end ét valg
- too_many_options: for mange svar (maks. %{max})
+ too_many_options: må maks. indeholde %{max} valg
preferences:
other: Andet
posting_defaults: Standarder for indlæg
@@ -1707,11 +1718,11 @@ da:
hint_html: "Tilpas hvordan din profil og dine indlæg kan findes. En række funktioner i Mastodon kan hjælpe dig med at nå ud til et bredere publikum, hvis du aktiverer dem. Tjek indstillingerne herunder for at sikre, at de passer til dit brugsscenarie."
privacy: Privatliv
privacy_hint_html: Styr, hvor meget der ønskes synliggjort til gavn for andre. Folk finder interessante profiler og apps ved at tjekke andres følgere ud, samt se hvilke apps de sender fra, men dine præferencer ønskes muligvis ikke synliggjort.
- reach: Udbredelse
+ reach: Rækkevidde
reach_hint_html: Indstil om du vil blive opdaget og fulgt af nye mennesker. Ønsker du, at dine indlæg skal vises på Udforsk-siden? Ønsker du, at andre skal se dig i deres følg-anbefalinger? Ønsker du at acceptere alle nye følgere automatisk, eller vil du have detaljeret kontrol over hver og en?
- search: Søg
+ search: Søgning
search_hint_html: Indstil hvordan du vil findes. Ønsker du, at folk skal finde dig gennem hvad du har skrevet offentligt? Vil du have folk udenfor Mastodon til at finde din profil, når de søger på nettet? Vær opmærksom på, at det ikke kan garanteres at dine offentlige indlæg er udelukket fra alle søgemaskiner.
- title: Fortrolighed og udbredelse
+ title: Fortrolighed og rækkevidde
privacy_policy:
title: Privatlivspolitik
reactions:
@@ -1735,7 +1746,7 @@ da:
last_active: Senest aktiv
most_recent: Seneste
moved: Flyttet
- mutual: Fælles
+ mutual: Gensidig
primary: Primær
relationship: Relation
remove_selected_domains: Fjern alle følgere fra de valgte domæner
@@ -1751,7 +1762,7 @@ da:
content_warning: 'Indholdsadvarsel:'
descriptions:
account: Offentlige indlæg fra @%{acct}
- tag: 'Offentlige indlæg etiketteret #%{hashtag}'
+ tag: 'Offentlige indlæg tagget #%{hashtag}'
scheduled_statuses:
over_daily_limit: Den daglige grænse på %{limit} planlagte indlæg er nået
over_total_limit: Grænsen på %{limit} planlagte indlæg er nået
@@ -1811,12 +1822,12 @@ da:
aliases: Kontoaliaser
appearance: Udseende
authorized_apps: Godkendte apps
- back: Retur til Mastodon
+ back: Tilbage til Mastodon
delete: Kontosletning
development: Udvikling
edit_profile: Redigér profil
export: Eksport
- featured_tags: Udvalgte etiketter
+ featured_tags: Fremhævede hashtags
import: Import
import_and_export: Import og eksport
migrate: Kontomigrering
@@ -1825,7 +1836,7 @@ da:
profile: Offentlig profil
relationships: Følger og følgere
severed_relationships: Afbrudte forhold
- statuses_cleanup: Auto-indlægssletning
+ statuses_cleanup: Automatiseret sletning af indlæg
strikes: Moderationsadvarsler
two_factor_authentication: Tofaktorgodkendelse
webauthn_authentication: Sikkerhedsnøgler
@@ -1856,7 +1867,7 @@ da:
content_warning: 'Indholdsadvarsel: %{warning}'
default_language: Samme som UI-sproget
disallowed_hashtags:
- one: 'indeholdte en ikke tilladt etiket: %{tags}'
+ one: 'indeholdte et ikke tilladt hashtag: %{tags}'
other: 'indeholdte de ikke tilladte etiketter: %{tags}'
edited_at_html: Redigeret %{date}
errors:
@@ -1898,9 +1909,9 @@ da:
keep_polls: Behold afstemninger
keep_polls_hint: Sletter ingen af dine afstemninger
keep_self_bookmark: Behold bogmærkede indlæg
- keep_self_bookmark_hint: Sletter ikke egne indlæg, såfremt de er bogmærket
+ keep_self_bookmark_hint: Sletter ikke dine egne indlæg, hvis du har bogmærket dem
keep_self_fav: Behold favoritmarkerede indlæg
- keep_self_fav_hint: Sletter ikke egne indlæg, såfremt de er favoritmarkeret
+ keep_self_fav_hint: Sletter ikke dine egne indlæg, hvis du har favoritmarkeret dem
min_age:
'1209600': 2 uger
'15778476': 6 måneder
@@ -1912,9 +1923,9 @@ da:
'7889238': 3 måneder
min_age_label: Alderstærskel
min_favs: Behold indlæg favoritmarkeret mindst
- min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at slette indlæg uanset favoritmarkeringer
+ min_favs_hint: Sletter ingen af dine egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tom for at slette indlæg uanset antal favoritmarkeringer
min_reblogs: Behold indlæg fremhævet mindst
- min_reblogs_hint: Sletter ingen af egne indlæg, som er fremhævet flere end dette antal gange. Lad stå tomt for at ignorere denne tærskel under sletning
+ min_reblogs_hint: Sletter ingen af dine egne indlæg, som er fremhævet flere end dette antal gange. Lad stå tom for at slette indlæg uanset antallet af fremhævelser
stream_entries:
sensitive_content: Sensitivt indhold
strikes:
@@ -2063,8 +2074,8 @@ da:
one: "%{people} person de seneste 2 dage"
other: "%{people} personer de seneste 2 dage"
hashtags_subtitle: Udforsk de seneste 2 dages tendenser
- hashtags_title: Populære etiketter
- hashtags_view_more: Se flere populære etiketter
+ hashtags_title: Hashtags, der trender
+ hashtags_view_more: Se flere populære hashtags
post_action: Skriv
post_step: Sig hej til verden med tekst, fotos, videoer eller afstemninger.
post_title: Opret det første indlæg
@@ -2084,7 +2095,7 @@ da:
verification:
extra_instructions_html: Tip: Linket på din hjemmeside kan være usynligt. Den vigtige del er rel="me"
, som forhindrer impersonation på websteder med brugergenereret indhold. Du kan endda bruge et link
tag i overskriften på siden i stedet for a
, men HTML skal være tilgængelig uden at udføre JavaScript.
here_is_how: Sådan gør du
- hint_html: "Bekræftelse af din identitet på Mastodon er for alle. Baseret på åbne webstandarder, nu og for evigt gratis. Alt du behøver er en personlig hjemmeside, som folk genkende dig ved. Når du linker til denne hjemmeside fra din profil, vi vil kontrollere, at hjemmesiden linker tilbage til din profil og vise en visuel indikator på det."
+ hint_html: "Verificering af din identitet på Mastodon er for alle. Baseret på åbne webstandarder, nu og for altid gratis. Alt, hvad du behøver, er en personlig hjemmeside, som folk kender dig fra. Når du linker til denne hjemmeside fra din profil, kontrollerer vi, at hjemmesiden linker tilbage til din profil, og viser en visuel indikator på den."
instructions_html: Kopier og indsæt koden nedenfor i HTML på din hjemmeside. Tilføj derefter adressen på din hjemmeside i et af de ekstra felter på din profil på fanen "Redigér profil" og gem ændringer.
verification: Bekræftelse
verified_links: Dine bekræftede links
diff --git a/config/locales/de.yml b/config/locales/de.yml
index ad025b95e72..1eb5ef1c4f9 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -578,6 +578,13 @@ de:
all: Alle
limited: Eingeschränkt
title: Server
+ moderation_notes:
+ create: Moderationsnotiz hinzufügen
+ created_msg: Moderationsnotiz für diesen Server erfolgreich erstellt!
+ description_html: Hinterlasse Notizen für dich und deine Moderator*innen
+ destroyed_msg: Moderationsnotiz für diesen Server erfolgreich entfernt!
+ placeholder: Informationen über diesen Server, ergriffene Maßnahmen oder andere Sachverhalte, die in Zukunft nützlich sein könnten.
+ title: Moderationsnotizen
private_comment: Privater Kommentar
public_comment: Öffentlicher Kommentar
purge: Säubern
@@ -1342,6 +1349,10 @@ de:
basic_information: Allgemeine Informationen
hint_html: "Bestimme, was andere auf deinem öffentlichen Profil und neben deinen Beiträgen sehen können. Wenn du ein Profilbild festlegst und dein Profil vervollständigst, werden andere eher mit dir interagieren und dir folgen."
other: Andere
+ emoji_styles:
+ auto: Automatisch
+ native: Nativ
+ twemoji: Twemoji
errors:
'400': Die Anfrage, die du gestellt hast, war ungültig oder fehlerhaft.
'403': Dir fehlt die Berechtigung, diese Seite aufzurufen.
@@ -1933,7 +1944,7 @@ de:
contrast: Mastodon (Hoher Kontrast)
default: Mastodon (Dunkel)
mastodon-light: Mastodon (Hell)
- system: Automatisch (mit System synchronisieren)
+ system: Automatisch (wie Betriebssystem)
time:
formats:
default: "%d. %b %Y, %H:%M Uhr"
@@ -1994,12 +2005,12 @@ de:
subject: Es wurde auf dein Konto von einer neuen IP-Adresse zugegriffen
title: Eine neue Anmeldung
terms_of_service_changed:
- agreement: Wenn du %{domain} weiterhin verwendest, stimmst du den neuen Nutzungsbedingungen automatisch zu. Falls du mit diesen nicht einverstanden bist, kannst du die Vereinbarung mit %{domain} jederzeit widerrufen, indem du dein Konto dort löschst.
- changelog: 'Hier siehst du, was sich geändert hat:'
- description: 'Du erhältst diese E-Mail, weil wir einige Änderungen an unseren Nutzungsbedingungen für %{domain} vorgenommen haben. Diese Änderungen gelten ab %{date}. Wir empfehlen, die vollständig aktualisierte Fassung hier zu lesen:'
- description_html: Du erhältst diese E-Mail, weil wir einige Änderungen an unseren Nutzungsbedingungen für %{domain} vorgenommen haben. Diese Änderungen gelten ab %{date} . Wir empfehlen, die vollständig aktualisierte Fassung hier zu lesen .
+ agreement: Du stimmst den neuen Nutzungsbedingungen automatisch zu, wenn du %{domain} weiterhin verwendest. Falls du mit diesen nicht einverstanden bist, kannst du die Vereinbarung mit %{domain} jederzeit widerrufen, indem du dein Konto dort löschst.
+ changelog: 'Die Änderungen im Überblick:'
+ description: 'Du erhältst diese E-Mail, weil wir für %{domain} einige Änderungen an unseren Nutzungsbedingungen vorgenommen haben. Diese Änderungen gelten ab %{date}. Wir empfehlen, die vollständig aktualisierte Fassung hier zu lesen:'
+ description_html: Du erhältst diese E-Mail, weil wir für %{domain} einige Änderungen an unseren Nutzungsbedingungen vorgenommen haben. Diese Änderungen gelten ab %{date} . Wir empfehlen, die vollständig aktualisierte Fassung hier zu lesen .
sign_off: Das Team von %{domain}
- subject: Aktualisierungen unserer Nutzungsbedingungen
+ subject: Aktualisierung unserer Nutzungsbedingungen
subtitle: Die Nutzungsbedingungen von %{domain} ändern sich
title: Wichtige Mitteilung
warning:
diff --git a/config/locales/devise.da.yml b/config/locales/devise.da.yml
index d32cbbfd643..e932ba0c9a4 100644
--- a/config/locales/devise.da.yml
+++ b/config/locales/devise.da.yml
@@ -20,7 +20,7 @@ da:
mailer:
confirmation_instructions:
action: Bekræft e-mailadresse
- action_with_app: Bekræft og returnér til %{app}
+ action_with_app: Bekræft og vend tilbage til %{app}
explanation: Du har oprettet en konto på %{host} med denne e-mailadresse og er nu ét klik fra at aktivere den. Har du ikke oprettet dig, så ignorér blot denne e-mail.
explanation_when_pending: Du har ansøgt om en invitation til %{host} med denne e-mailadresse. Når du har bekræftet adressen, gennemgås din ansøgning. Du kan logge ind for at ændre oplysninger eller slette kontoen, men hovedparten af funktionerne kan ikke tilgås, før kontoen er godkendt. Afvises ansøgningen, fjernes dine data, så ingen yderligere handling fra dig er nødvendig. Har du ikke ansøgt, så ignorér blot denne e-mail.
extra_html: Tjek også reglerne for serveren samt vores tjenestevilkår .
diff --git a/config/locales/devise.nan.yml b/config/locales/devise.nan.yml
index 6f47b4f6521..3a8933e37ce 100644
--- a/config/locales/devise.nan.yml
+++ b/config/locales/devise.nan.yml
@@ -8,8 +8,8 @@ nan:
timeout: Lí ê作業階段kàu期ah。請koh登入,繼續完成。
mailer:
two_factor_disabled:
- title: 2FA關掉ah
+ title: 雙因素認證關掉ah
two_factor_enabled:
- title: 2FA啟用ah
+ title: 雙因素認證啟用ah
two_factor_recovery_codes_changed:
- title: 2FA驗證碼改ah
+ title: 雙因素認證ê恢復碼改ah
diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml
index 853381801a4..8c0546e36db 100644
--- a/config/locales/devise.ru.yml
+++ b/config/locales/devise.ru.yml
@@ -2,117 +2,117 @@
ru:
devise:
confirmations:
- confirmed: Ваш адрес e-mail был успешно подтвержден.
- send_instructions: Вы получите e-mail с инструкцией по подтверждению вашего адреса e-mail в течение нескольких минут.
- send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail с инструкцией по подтверждению вашего адреса в течение нескольких минут.
+ confirmed: Ваш адрес электронной почты успешно подтверждён.
+ send_instructions: В течение нескольких минут вы получите письмо с инструкциями по подтверждению адреса электронной почты. Если письмо не приходит, проверьте папку «Спам».
+ send_paranoid_instructions: Если на ваш адрес электронной почты зарегистрирована учётная запись, то в течение нескольких минут вы получите письмо с инструкциями по его подтверждению. Если письмо не приходит, проверьте папку «Спам».
failure:
- already_authenticated: Вы уже вошли.
+ already_authenticated: Вы уже авторизованы.
inactive: Ваша учётная запись ещё не активирована.
- invalid: Неверно введены %{authentication_keys} или пароль.
- last_attempt: У Вас есть последняя попытка, после чего вход будет заблокирован.
+ invalid: "%{authentication_keys} или пароль введены неверно."
+ last_attempt: У вас осталась последняя попытка ввода пароля до блокировки учётной записи.
locked: Ваша учётная запись заблокирована.
- not_found_in_database: Неверно введены %{authentication_keys} или пароль.
- omniauth_user_creation_failure: Ошибка создания учетной записи с этим идентификатором.
- pending: Ваша заявка на вступление всё ещё рассматривается.
- timeout: Ваша сессия истекла. Пожалуйста, войдите снова, чтобы продолжить.
+ not_found_in_database: "%{authentication_keys} или пароль введены неверно."
+ omniauth_user_creation_failure: Не удалось создать учётную запись с помощью выбранного способа идентификации.
+ pending: Ваша заявка на регистрацию всё ещё рассматривается.
+ timeout: Ваш сеанс закончился. Пожалуйста, войдите снова.
unauthenticated: Вам необходимо войти или зарегистрироваться.
- unconfirmed: Вам необходимо подтвердить ваш адрес e-mail для продолжения.
+ unconfirmed: Вы должны подтвердить свой адрес электронной почты.
mailer:
confirmation_instructions:
- action: Подтвердить e-mail адрес
+ action: Подтвердить
action_with_app: Подтвердить и вернуться в %{app}
- explanation: Вы создали учётную запись на сайте %{host}, используя этот e-mail адрес. Остался лишь один шаг для активации. Если это были не вы, просто игнорируйте письмо.
- explanation_when_pending: Вы подали заявку на %{host}, используя этот адрес e-mail. Как только вы его подтвердите, мы начнём изучать вашу заявку. До тех пор вы не сможете войти на сайт. Если ваша заявка будет отклонена, все данные будут автоматически удалены, от вас не потребуется никаких дополнительных действий. Если это были не вы, пожалуйста, проигнорируйте данное письмо.
- extra_html: Пожалуйста, ознакомьтесь правилами узла and условиями пользования Сервисом .
- subject: 'Mastodon: Инструкция по подтверждению на узле %{instance}'
- title: Подтвердите e-mail адрес
+ explanation: Вы создали учётную запись на сайте %{host}, используя этот адрес электронной почты. Остался лишь один шаг для её активации. Если это сделали не вы, просто проигнорируйте это письмо.
+ explanation_when_pending: Вы подали заявку, чтобы создать учётную запись на сайте %{host}, используя этот адрес электронной почты. После того как вы его подтвердите, мы начнём рассматривать вашу заявку. До тех пор вы сможете войти на сайт только для того, чтобы редактировать данные своей учётной записи или удалить её. Если ваша заявка будет отклонена, все данные будут автоматически удалены, от вас не потребуется никаких дополнительных действий. Если заявку подали не вы, пожалуйста, проигнорируйте это письмо.
+ extra_html: Пожалуйста, также ознакомьтесь с правилами сервера и политикой конфиденциальности .
+ subject: 'Mastodon: Инструкции по подтверждению учётной записи на %{instance}'
+ title: Подтверждение адреса электронной почты
email_changed:
- explanation: 'E-mail адрес вашей учётной записи будет изменён на:'
- extra: Если вы не меняли e-mail адрес, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, немедленно смените пароль или свяжитесь с администратором узла, если вы уже потеряли доступ к ней.
- subject: 'Mastodon: Изменён e-mail адрес'
- title: Новый адрес e-mail
+ explanation: 'Ваш адрес электронной почты будет изменён на:'
+ extra: Если вы не меняли адрес электронной почты, возможно, кто-то получил доступ к вашей учётной записи. Пожалуйста, немедленно смените пароль или свяжитесь с администратором сервера, если вы уже потеряли к ней доступ.
+ subject: 'Mastodon: Адрес электронной почты изменён'
+ title: Адрес электронной почты изменён
password_change:
- explanation: Пароль Вашей учётной записи был изменён.
- extra: Если вы не меняли пароль, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, немедленно смените пароль или свяжитесь с администратором узла, если вы уже потеряли доступ к ней.
- subject: 'Mastodon: Пароль изменен'
+ explanation: Ваш пароль был изменён.
+ extra: Если вы не меняли пароль, возможно, кто-то получил доступ к вашей учётной записи. Пожалуйста, немедленно смените пароль или свяжитесь с администратором сервера, если вы уже потеряли к ней доступ.
+ subject: 'Mastodon: Пароль изменён'
title: Пароль изменён
reconfirmation_instructions:
- explanation: Для завершения смены e-mail, нажмите кнопку ниже.
- extra: Если вы не изменяли e-mail, пожалуйста, игнорируйте это письмо. Новый адрес не будет привязан к учётной записи, пока вы не перейдёте по ссылке ниже.
- subject: 'Mastodon: Подтвердите свой новый e-mail на %{instance}'
- title: Подтвердите e-mail адрес
+ explanation: Чтобы завершить изменение адреса электронной почты, подтвердите новый адрес.
+ extra: Если запрос инициировали не вы, пожалуйста, проигнорируйте это письмо. Новый адрес не будет привязан к учётной записи, пока вы не перейдёте по ссылке выше.
+ subject: 'Mastodon: Подтвердите новый адрес электронной почты на %{instance}'
+ title: Подтверждение адреса электронной почты
reset_password_instructions:
- action: Смена пароля
+ action: Сменить пароль
explanation: Вы запросили новый пароль для вашей учётной записи.
- extra: Если это сделали не вы, пожалуйста, игнорируйте письмо. Ваш пароль не будет изменён, пока вы не перейдёте по ссылке выше и не создадите новый пароль.
- subject: 'Mastodon: Инструкция по сбросу пароля'
- title: Сброс пароля
+ extra: Если вы не запрашивали изменение пароля, проигнорируйте это письмо. Ваш пароль не будет изменён, пока вы не перейдёте по ссылке и не введёте новый пароль.
+ subject: 'Mastodon: Инструкции по восстановлению пароля'
+ title: Восстановление пароля
two_factor_disabled:
- explanation: Вход в систему теперь возможен только с использованием адреса электронной почты и пароля.
- subject: 'Mastodon: Двухфакторная авторизация отключена'
- subtitle: Двухфакторная аутентификация для вашей учетной записи была отключена.
- title: 2ФА отключена
+ explanation: Теперь вход возможен с использованием одних лишь адреса электронной почты и пароля.
+ subject: 'Mastodon: Двухфакторная аутентификация отключена'
+ subtitle: Двухфакторная аутентификация отключена для вашей учетной записи.
+ title: 2FA отключена
two_factor_enabled:
- explanation: Для входа в систему потребуется токен, сгенерированный сопряженным приложением TOTP.
- subject: 'Mastodon: Настроена двухфакторная авторизация'
- subtitle: Для вашей учетной записи была включена двухфакторная аутентификация.
- title: 2ФА включена
+ explanation: Для входа потребуется одноразовый код, сгенерированный сопряжённым приложением TOTP.
+ subject: 'Mastodon: Двухфакторная аутентификация включена'
+ subtitle: Двухфакторная аутентификация включена для вашей учётной записи.
+ title: 2FA включена
two_factor_recovery_codes_changed:
- explanation: Предыдущие резервные коды были аннулированы и созданы новые.
- subject: 'Mastodon: Резервные коды двуфакторной авторизации обновлены'
- subtitle: Предыдущие коды восстановления были аннулированы и сгенерированы новые.
- title: Коды восстановления 2FA изменены
+ explanation: Прежние резервные коды были аннулированы, и были созданы новые.
+ subject: 'Mastodon: Резервные коды двухфакторной аутентификации пересозданы'
+ subtitle: Прежние резервные коды были аннулированы, и были созданы новые.
+ title: Резервные коды 2FA изменены
unlock_instructions:
- subject: 'Mastodon: Инструкция по разблокировке'
+ subject: 'Mastodon: Инструкции по снятию блокировки учётной записи'
webauthn_credential:
added:
- explanation: Следующий ключ безопасности был добавлен в вашу учётную запись
- subject: 'Мастодон: Новый ключ безопасности'
- title: Был добавлен новый ключ безопасности
+ explanation: Новый электронный ключ добавлен для вашей учётной записи
+ subject: 'Mastodon: Новый электронный ключ'
+ title: Добавлен новый электронный ключ
deleted:
- explanation: Следующий ключ безопасности был удален из вашей учётной записи
- subject: 'Мастодон: Ключ Безопасности удален'
- title: Один из ваших защитных ключей был удален
+ explanation: Один из ваших электронных ключей удалён и больше не сможет быть использован для входа в вашу учётную запись
+ subject: 'Mastodon: Электронный ключ удалён'
+ title: Один из ваших электронных ключей удалён
webauthn_disabled:
- explanation: Аутентификация с помощью ключей безопасности была отключена для вашей учетной записи.
- extra: Теперь вход в систему возможен только с использованием токена, сгенерированного сопряженным приложением TOTP.
- subject: 'Мастодон: Аутентификация с ключами безопасности отключена'
- title: Ключи безопасности отключены
+ explanation: Аутентификация по электронным ключам деактивирована для вашей учетной записи.
+ extra: Теперь вход возможен с использованием только лишь одноразового кода, сгенерированного сопряжённым приложением TOTP.
+ subject: 'Mastodon: Аутентификация по электронным ключам деактивирована'
+ title: Вход по электронным ключам деактивирован
webauthn_enabled:
- explanation: Для вашей учетной записи включена аутентификация по ключу безопасности.
- extra: Теперь ваш ключ безопасности можно использовать для входа в систему.
- subject: 'Мастодон: Включена аутентификация по ключу безопасности'
- title: Ключи безопасности включены
+ explanation: Аутентификация по электронным ключам активирована для вашей учетной записи.
+ extra: Теперь ваш электронный ключ можно использовать для входа.
+ subject: 'Mastodon: Аутентификация по электронным ключам активирована'
+ title: Вход по электронным ключам активирован
omniauth_callbacks:
- failure: Не получилось аутентифицировать вас с помощью %{kind} по следующей причине - "%{reason}".
- success: Аутентификация с помощью учётной записи %{kind} прошла успешно.
+ failure: Вы не можете войти под учётной записью %{kind}, так как «%{reason}».
+ success: Вход выполнен под учётной записью %{kind}.
passwords:
- no_token: Вы можете получить доступ к этой странице, только перейдя по ссылке в e-mail для сброса пароля. Если вы действительно перешли по такой ссылке, пожалуйста, удостоверьтесь, что ссылка была введена полностью и без изменений.
- send_instructions: Вы получите e-mail с инструкцией по сбросу пароля в течение нескольких минут.
- send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail со ссылкой для сброса пароля в течение нескольких минут.
- updated: Ваш пароль был успешно изменен. Вход выполнен.
- updated_not_active: Ваш пароль был успешно изменен.
+ no_token: Доступ к этой странице возможен только по ссылке из письма о восстановлении пароля. Если вы перешли по такой ссылке, пожалуйста, убедитесь, что вы скопировали всю ссылку целиком.
+ send_instructions: Если на ваш адрес электронной почты зарегистрирована учётная запись, то в течение нескольких минут вы получите письмо с инструкциями по восстановлению пароля. Если письмо не приходит, проверьте папку «Спам».
+ send_paranoid_instructions: Если на ваш адрес электронной почты зарегистрирована учётная запись, то в течение нескольких минут вы получите письмо с инструкциями по восстановлению пароля. Если письмо не приходит, проверьте папку «Спам».
+ updated: Ваш пароль изменён. Теперь вы авторизованы.
+ updated_not_active: Ваш пароль изменён.
registrations:
- destroyed: До свидания! Ваша учётная запись была успешно удалена. Мы надеемся скоро увидеть вас снова.
- update_needs_confirmation: Данные учётной записи обновлены, но нам необходимо подтвердить ваш новый e-mail адрес. Проверьте почту и перейдите по ссылке из письма. Если оно не приходит, проверьте папку «спам».
- updated: Ваша учётная запись успешно обновлена.
+ destroyed: До свидания! Ваша учётная запись удалена. Надеемся увидеть вас снова.
+ update_needs_confirmation: Вы успешно обновили данные своей учётной записи, но необходимо подтвердить новый адрес электронной почты. Пожалуйста, проверьте свой почтовый ящик и перейдите по ссылке, чтобы закончить процедуру проверки нового адреса. Если письмо не приходит, проверьте папку «Спам».
+ updated: Ваша учётная запись обновлена.
sessions:
- already_signed_out: Выход прошел успешно.
- signed_in: Вход прошел успешно.
- signed_out: Выход прошел успешно.
+ already_signed_out: Выход выполнен.
+ signed_in: Вход выполнен.
+ signed_out: Выход выполнен.
unlocks:
- send_instructions: Вы получите e-mail с инструкцией по разблокировке вашей учётной записи в течение нескольких минут.
- send_paranoid_instructions: Если ваша учётная запись существует, вы получите e-mail с инструкцией по её разблокировке в течение нескольких минут.
- unlocked: Ваша учётная запись был успешно разблокирована. Пожалуйста, войдите для продолжения.
+ send_instructions: В течение нескольких минут вы получите письмо с инструкциями по разблокировке учётной записи. Если письмо не приходит, проверьте папку «Спам».
+ send_paranoid_instructions: Если ваша учётная запись существует, то в течение нескольких минут вы получите письмо с инструкциями по её разблокировке. Если письмо не приходит, проверьте папку «Спам».
+ unlocked: Ваша учётная запись разблокирована. Теперь вы можете войти.
errors:
messages:
- already_confirmed: уже подтвержден, пожалуйста, попробуйте войти
- confirmation_period_expired: не был подтвержден в течение %{period}, пожалуйста, запросите новый
- expired: истек, пожалуйста, запросите новый
+ already_confirmed: уже подтверждён. Пожалуйста, попробуйте войти
+ confirmation_period_expired: не был подтверждён в течение %{period}. Пожалуйста, повторите запрос на подтверждение
+ expired: истёк. Пожалуйста, запросите новый код
not_found: не найден
- not_locked: не был заблокирован
+ not_locked: не заблокирован
not_saved:
- few: "%{count} ошибки помешали сохранению этого %{resource}:"
- many: "%{count} ошибок помешали сохранению этого %{resource}:"
- one: '1 ошибка помешала сохранению этого %{resource}:'
- other: "%{count} ошибок помешали сохранению этого %{resource}:"
+ few: "%{resource}: сохранение не удалось из-за %{count} ошибок:"
+ many: "%{resource}: сохранение не удалось из-за %{count} ошибок:"
+ one: "%{resource}: сохранение не удалось из-за %{count} ошибки:"
+ other: "%{resource}: сохранение не удалось из-за %{count} ошибок:"
diff --git a/config/locales/devise.vi.yml b/config/locales/devise.vi.yml
index 04107b28972..5b4bbf38396 100644
--- a/config/locales/devise.vi.yml
+++ b/config/locales/devise.vi.yml
@@ -49,14 +49,14 @@ vi:
title: Đổi lại mật khẩu
two_factor_disabled:
explanation: Đăng nhập bây giờ chỉ có thể sử dụng địa chỉ email và mật khẩu.
- subject: 'Mastodon: Xác minh 2 bước đã bị vô hiệu hóa'
- subtitle: Xác minh hai bước cho tài khoản của bạn đã bị vô hiệu hóa.
- title: Vô hiệu hóa xác minh 2 bước
+ subject: 'Mastodon: Xác thực 2 bước đã bị vô hiệu hóa'
+ subtitle: Xác thực 2 bước cho tài khoản của bạn đã bị vô hiệu hóa.
+ title: Vô hiệu hóa xác thực 2 bước
two_factor_enabled:
explanation: Cần có mã token được tạo bởi ứng dụng TOTP được ghép nối để đăng nhập.
- subject: 'Mastodon: Kích hoạt xác minh 2 bước'
- subtitle: Xác minh hai bước đã được bật cho tài khoản của bạn.
- title: Kích hoạt xác minh 2 bước
+ subject: 'Mastodon: Kích hoạt xác thực 2 bước'
+ subtitle: Xác thực 2 bước đã được bật cho tài khoản của bạn.
+ title: Kích hoạt xác thực 2 bước
two_factor_recovery_codes_changed:
explanation: Các mã khôi phục trước đó đã bị vô hiệu hóa và thay bằng mã mới.
subject: 'Mastodon: Mã khôi phục xác thực hai yếu tố đã được tạo lại'
diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml
index 8dea8b4894c..62633ed22cc 100644
--- a/config/locales/doorkeeper.ar.yml
+++ b/config/locales/doorkeeper.ar.yml
@@ -60,6 +60,7 @@ ar:
error:
title: حدث هناك خطأ
new:
+ prompt_html: "%{client_name} يريد صلاحية الوصول إلى حسابك. اقبل الطلب فقط في حال معرفتك بالمصدر وتثق به "
review_permissions: مراجعة الصلاحيات
title: إذن بالتصريح
show:
@@ -82,6 +83,7 @@ ar:
access_denied: لقد رفض مالك المَورِدِ أو تصريح السيرفر طلبك.
credential_flow_not_configured: فشل تدفق بيانات اعتماد كلمة سر مالك المورد بسبب عدم تهيئة Doorkeeper.configure.resource_owner_from_credentials.
invalid_client: فشلت المصادقة مع العميل لأنه العميل مجهول أو لغياب المصادقة ضمن العميل أو أنّ أسلوب المصادقة غير مدعومة.
+ invalid_code_challenge_method: يجب أن تكون طريقة تحدي الكود S256، البسيط غير مدعوم.
invalid_grant: إنّ التصريح المقدَّم غير صالح، سواء انتهت مدة صلاحيته أو تم إلغاؤه أو أنه لا يتطابق مع عنوان إعادة التحويل في طلب التصريح أو أنّ هذا التصريح قد تم تقديمه لعميل آخر.
invalid_redirect_uri: إنّ عنوان إعادة التحويل غير صالح.
invalid_request:
@@ -165,6 +167,7 @@ ar:
admin:write:reports: اتخاذ إجراءات إشراف على الإبلاغات
crypto: استخدم التشفير من الطرف إلى نهاية الطرف
follow: تعديل علاقات الحساب
+ profile: السماح بالقراءة فقط لمعلومات ملفك الشخصي
push: تلقي إشعاراتك
read: قراءة كافة بيانات حسابك
read:accounts: معاينة معلومات الحساب
diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml
index 1ee73c2cb95..b435624334f 100644
--- a/config/locales/doorkeeper.cs.yml
+++ b/config/locales/doorkeeper.cs.yml
@@ -29,7 +29,7 @@ cs:
edit:
title: Upravit aplikaci
form:
- error: A jéje! Zkontrolujte ve formuláři případné chyby
+ error: A jéje! Zkontrolujte formulář pro případné chyby
help:
native_redirect_uri: Pro místní testy použijte %{native_redirect_uri}
redirect_uri: Jedno URI na každý řádek
diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml
index a10bee34df6..49917c8ebc5 100644
--- a/config/locales/doorkeeper.da.yml
+++ b/config/locales/doorkeeper.da.yml
@@ -72,7 +72,7 @@ da:
revoke: Sikker?
index:
authorized_at: Godkendt pr. %{date}
- description_html: Disse er applikationer, som kan tilgå din konto vha. API'en. Er her applikationer, som ikke genkendes eller udviser mærkværdig adfærd, kan deres adgangstilladelse ophæves.
+ description_html: Det er applikationer, der kan få adgang til din konto ved hjælp af API'en. Hvis der er applikationer, du ikke genkender her, eller hvis en applikation opfører sig forkert, kan du tilbagekalde dens adgang.
last_used_at: Senest brugt pr. %{date}
never_used: Aldrig brugt
scopes: Tilladelser
@@ -121,20 +121,20 @@ da:
title:
accounts: Konti
admin/accounts: Kontihåndtering
- admin/all: Alle håndteringsfunktioner
- admin/reports: Rapporthåndteringer
+ admin/all: Alle administrative funktioner
+ admin/reports: Administration af anmeldelser
all: Fuld adgang til din Mastodon-konto
blocks: Blokeringer
bookmarks: Bogmærker
- conversations: Konversationer
+ conversations: Samtaler
crypto: Ende-til-ende kryptering
favourites: Favoritter
filters: Filtre
- follow: Fulgte, skjjulte og blokerede kontoer
+ follow: Fulgte, skjulte og blokerede konti
follows: Følger
lists: Lister
media: Medievedhæftninger
- mutes: Skjulte kontoer
+ mutes: Skjulte
notifications: Notifikationer
profile: Din Mastodon-profil
push: Push-notifikationer
@@ -177,7 +177,7 @@ da:
read:filters: se dine filtre
read:follows: se dine følger
read:lists: se dine lister
- read:mutes: se dine skjulte kontoer
+ read:mutes: se dine skjulte konti
read:notifications: se dine notifikationer
read:reports: se dine anmeldelser
read:search: søg på dine vegne
diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml
index c7ea94c2e34..822aa334bd8 100644
--- a/config/locales/doorkeeper.ru.yml
+++ b/config/locales/doorkeeper.ru.yml
@@ -13,45 +13,45 @@ ru:
attributes:
redirect_uri:
fragment_present: не может содержать фрагмент.
- invalid_uri: должен быть правильным URI.
+ invalid_uri: должен быть действительным URI.
relative_uri: должен быть абсолютным URI.
- secured_uri: нужен HTTPS/SSL URI.
+ secured_uri: должен быть HTTPS/SSL URI.
doorkeeper:
applications:
buttons:
authorize: Авторизовать
- cancel: Отменить
+ cancel: Отмена
destroy: Удалить
- edit: Изменить
- submit: Принять
+ edit: Редактировать
+ submit: Готово
confirmations:
destroy: Вы уверены?
edit:
- title: Изменить приложение
+ title: Редактирование приложения
form:
- error: Ой! Проверьте Вашу форму на возможные ошибки
+ error: Упс! Проверьте форму на наличие ошибок
help:
native_redirect_uri: Используйте %{native_redirect_uri} для локального тестирования
- redirect_uri: Используйте по одной строке на URI
+ redirect_uri: По одному URI на строку
scopes: Разделяйте список разрешений пробелами. Оставьте незаполненным для использования разрешений по умолчанию.
index:
application: Приложение
- callback_url: URL-адреса обратного вызова
+ callback_url: Callback-адрес URL
delete: Удалить
- empty: У вас нет созданных приложений.
+ empty: Вы ещё не создали ни одного приложения.
name: Название
- new: Новое приложение
+ new: Создать приложение
scopes: Разрешения
- show: Показывать
+ show: Открыть
title: Ваши приложения
new:
- title: Создание приложения
+ title: Создать приложение
show:
actions: Действия
- application_id: Ключ клиента
- callback_urls: URL-адреса обратного вызова
+ application_id: ID приложения
+ callback_urls: Callback-адреса URL
scopes: Разрешения
- secret: Секрет
+ secret: Секретный ключ
title: 'Приложение: %{name}'
authorizations:
buttons:
@@ -60,47 +60,47 @@ ru:
error:
title: Произошла ошибка
new:
- prompt_html: "%{client_name} хочет получить доступ к вашему аккаунту. Принимайте запрос только в том случае, если узнаёте, откуда он, и доверяете источнику. "
- review_permissions: Просмотр разрешений
+ prompt_html: Приложение %{client_name} запрашивает доступ к вашей учётной записи. Не принимайте этот запрос, если он исходит из незнакомого или недоверенного источника.
+ review_permissions: Запрашиваемые разрешения
title: Требуется авторизация
show:
- title: Скопируйте этот код авторизации и вставьте его в приложении.
+ title: Скопируйте этот код авторизации и вставьте его в приложение.
authorized_applications:
buttons:
- revoke: Отозвать авторизацию
+ revoke: Отозвать доступ
confirmations:
revoke: Вы уверены?
index:
authorized_at: Доступ получен %{date}
- description_html: Это приложения, которые могут получить доступ к вашей учетной записи с помощью API. Если здесь есть приложения, которые вы не узнаете, или приложения, работающие неправильно, вы можете отозвать их доступ.
- last_used_at: Последнее использование %{date}
+ description_html: Это приложения, которые могут получить доступ к вашей учётной записи с помощью API. Если здесь есть приложения, которые вы не узнаёте, или приложения, работающие неправильно, вы можете отозвать им доступ.
+ last_used_at: В последний раз использовалось %{date}
never_used: Не использовалось
scopes: Разрешения
- superapp: Внутреннее
- title: Ваши авторизованные приложения
+ superapp: Служебное приложение
+ title: Связанные приложения
errors:
messages:
- access_denied: Владелец ресурса или сервер авторизации ответил отказом на Ваш запрос.
- credential_flow_not_configured: Поток с предоставлением клиенту пароля завершился неудачей, поскольку параметр Doorkeeper.configure.resource_owner_from_credentials не был сконфигурирован.
- invalid_client: Клиентская аутентификация завершилась неудачей (неизвестный клиент, не включена клиентская аутентификация, или метод аутентификации не поддерживается.
- invalid_code_challenge_method: Метод проверки кода должен быть S256, простой не годится.
- invalid_grant: Предоставленный доступ некорректен, истек, отозван, не совпадает с URI перенаправления, использованным в запросе авторизации, или был выпущен для другого клиента.
- invalid_redirect_uri: Включенный URI перенаправления некорректен.
+ access_denied: Владелец ресурса или сервер авторизации ответил отказом на ваш запрос.
+ credential_flow_not_configured: Процесс Resource Owner Password Credentials завершился неудачей, поскольку параметр конфигурации Doorkeeper.configure.resource_owner_from_credentials не был задан.
+ invalid_client: 'Не удалось аутентифицировать клиент по одной из следующих причин: неизвестный клиент; отсутствует аутентификация клиента; неподдерживаемый метод аутентификации.'
+ invalid_code_challenge_method: Функция хеширования для механизма PKCE должна быть установлена в значение S256, метод PLAIN не поддерживается.
+ invalid_grant: Предоставленное разрешение на авторизацию либо недействительно, либо истекло, либо отозвано, либо не соответствует использованному в запросе на авторизацию URI перенаправления, либо было выдано для другого клиента.
+ invalid_redirect_uri: Предоставленный URI перенаправления недействителен.
invalid_request:
missing_param: 'Отсутствует обязательный параметр: %{value}.'
- request_not_authorized: Запрос должен быть авторизован. Обязательный параметр для авторизации запроса отсутствует или недействителен.
- unknown: В запросе отсутствует обязательный параметр, включено неподдерживаемое значение параметра или он имеет иной формат.
- invalid_resource_owner: Предоставленные данные владельца ресурса некорректны, или владелец ресурса не может быть найден
- invalid_scope: Запрошенное разрешение некорректно, неизвестно или неверно сформировано.
+ request_not_authorized: Запрос должен быть авторизован. Обязательный параметр для авторизации запроса отсутствует либо имеет недопустимое значение.
+ unknown: В запросе отсутствует обязательный параметр либо присутствует неподдерживаемое значение параметра, или запрос является недействительным по какой-либо ещё причине.
+ invalid_resource_owner: Предоставленные данные владельца ресурса недействительны, или владелец ресурса не найден
+ invalid_scope: Запрошенное разрешение недействительно, неизвестно или имеет неправильный формат.
invalid_token:
- expired: Токен доступа истек
- revoked: Токен доступа был отменен
- unknown: Токен доступа некорректен
- resource_owner_authenticator_not_configured: Поиск владельца ресурса завершился неудачей, поскольку параметр Doorkeeper.configure.resource_owner_authenticator не был сконфигурирован.
- server_error: Сервер авторизации встретился с неожиданной ошибкой, не позволившей ему выполнить запрос.
- temporarily_unavailable: Сервер авторизации в данный момент не может выполнить запрос по причине временной перегрузки или профилактики.
+ expired: Срок действия токена доступа истёк
+ revoked: Токен доступа был отозван
+ unknown: Токен доступа недействителен
+ resource_owner_authenticator_not_configured: Поиск владельца ресурса завершился неудачей, поскольку параметр конфигурации Doorkeeper.configure.resource_owner_authenticator не был задан.
+ server_error: На сервере авторизации произошла непредвиденная ошибка, не позволившая ему выполнить запрос.
+ temporarily_unavailable: Сервер авторизации в данный момент не может выполнить запрос по причине временной перегрузки или технического обслуживания.
unauthorized_client: Клиент не авторизован для выполнения этого запроса с использованием этого метода.
- unsupported_grant_type: Тип авторизации не поддерживается сервером авторизации.
+ unsupported_grant_type: Тип разрешения на авторизацию не поддерживается сервером авторизации.
unsupported_response_type: Сервер авторизации не поддерживает этот тип ответа.
flash:
applications:
@@ -112,33 +112,33 @@ ru:
notice: Приложение обновлено.
authorized_applications:
destroy:
- notice: Авторизация приложения отозвана.
+ notice: Приложению был отозван доступ.
grouped_scopes:
access:
read: Доступ только для чтения
- read/write: Доступ на чтение и запись
+ read/write: Доступ для чтения и записи
write: Доступ только для записи
title:
accounts: Учётные записи
- admin/accounts: Управление учётными записями
+ admin/accounts: Управление учётными записями пользователей
admin/all: Все административные функции
- admin/reports: Управление отчётами
- all: Полный доступ к вашей учетной записи Mastodon
+ admin/reports: Управление жалобами
+ all: Полный доступ к вашей учётной записи Mastodon
blocks: Блокировки
bookmarks: Закладки
- conversations: Диалоги
+ conversations: Беседы
crypto: Сквозное шифрование
- favourites: Избранные
+ favourites: Избранное
filters: Фильтры
- follow: Подписки, заглушенные и заблокированные
+ follow: Подписки, а также списки игнорируемых и заблокированных пользователей
follows: Подписки
lists: Списки
- media: Медиафайлы
- mutes: Игнорирует
+ media: Медиа
+ mutes: Игнорируемые пользователи
notifications: Уведомления
profile: Ваш профиль Mastodon
push: Push-уведомления
- reports: Обращения
+ reports: Жалобы
search: Поиск
statuses: Посты
layouts:
@@ -150,49 +150,49 @@ ru:
title: Требуется авторизация OAuth
scopes:
admin:read: читать все данные на сервере
- admin:read:accounts: читать конфиденциальную информацию всех учётных записей
- admin:read:canonical_email_blocks: чтение конфиденциальной информации всех канонических блоков электронной почты
- admin:read:domain_allows: чтение конфиденциальной информации для всего домена позволяет
- admin:read:domain_blocks: чтение конфиденциальной информации для всего домена позволяет
- admin:read:email_domain_blocks: читать конфиденциальную информацию обо всех блоках домена электронной почты
- admin:read:ip_blocks: читать конфиденциальную информацию обо всех IP-блоках
- admin:read:reports: читать конфиденциальную информацию о всех жалобах и учётных записях с жалобами
- admin:write: модифицировать все данные на сервере
- admin:write:accounts: производить модерацию учётных записей
- admin:write:canonical_email_blocks: выполнять действия по модерации канонических блоков электронной почты
- admin:write:domain_allows: производить модерацию учётных записей
- admin:write:domain_blocks: выполнять модерационные действия над блокировкой домена
- admin:write:email_domain_blocks: выполнять действия по модерации блоков домена электронной почты
- admin:write:ip_blocks: выполнять модерационные действия над блокировками IP
- admin:write:reports: производить модерацию жалоб
- crypto: использ. сквозное шифрование
- follow: управлять подписками и списком блокировок
- profile: данные вашего профиля только для чтения
+ admin:read:accounts: читать конфиденциальные сведения обо всех учётных записях
+ admin:read:canonical_email_blocks: читать конфиденциальные сведения обо всех блокировках по каноническому адресу электронной почты
+ admin:read:domain_allows: читать конфиденциальные сведения обо всех разрешённых доменах
+ admin:read:domain_blocks: читать конфиденциальные сведения обо всех заблокированных доменах
+ admin:read:email_domain_blocks: читать конфиденциальные сведения обо всех блокировках по домену электронной почты
+ admin:read:ip_blocks: читать конфиденциальные сведения обо всех блокировках по IP-адресу
+ admin:read:reports: читать конфиденциальные сведения обо всех жалобах и учётных записях с жалобами
+ admin:write: вносить изменения во все данные на сервере
+ admin:write:accounts: осуществлять модерацию применительно к учётным записям
+ admin:write:canonical_email_blocks: осуществлять модерацию применительно к блокировкам по каноническому адресу электронной почты
+ admin:write:domain_allows: осуществлять модерацию применительно к разрешённым доменам
+ admin:write:domain_blocks: осуществлять модерацию применительно к заблокированным доменам
+ admin:write:email_domain_blocks: осуществлять модерацию применительно к блокировкам по домену электронной почты
+ admin:write:ip_blocks: осуществлять модерацию применительно к блокировкам по IP-адресу
+ admin:write:reports: осуществлять модерацию применительно к жалобам
+ crypto: использовать сквозное шифрование
+ follow: вносить изменения в отношения с другими пользователями
+ profile: читать исключительно сведения о вашем профиле
push: получать push-уведомления
- read: просматривать данные вашей учётной записи
- read:accounts: видеть информацию об учётных записях
- read:blocks: видеть ваши блокировки
- read:bookmarks: видеть ваши закладки
- read:favourites: видеть ваше избранное
- read:filters: видеть ваши фильтры
- read:follows: видеть ваши подписки
- read:lists: видеть ваши списки
- read:mutes: смотреть список игнорируемых
- read:notifications: получать уведомления
- read:reports: видеть ваши жалобы
+ read: читать данные вашей учётной записи
+ read:accounts: иметь доступ к информации об учётных записях
+ read:blocks: иметь доступ к вашим блокировкам
+ read:bookmarks: иметь доступ к вашим закладкам
+ read:favourites: иметь доступ к списку постов, которые вы добавили в избранное
+ read:filters: иметь доступ к вашим фильтрам
+ read:follows: иметь доступ к вашим подпискам
+ read:lists: иметь доступ к вашим спискам
+ read:mutes: иметь доступ к списку пользователей, которых вы игнорируете
+ read:notifications: иметь доступ к вашим уведомлениям
+ read:reports: иметь доступ к вашим жалобам
read:search: использовать поиск
- read:statuses: видеть все ваши посты
- write: изменять все данные вашей учётной записи
- write:accounts: редактировать ваш профиль
+ read:statuses: иметь доступ ко всем постам
+ write: вносить изменения во все данные вашей учётной записи
+ write:accounts: вносить изменения в ваш профиль
write:blocks: блокировать учётные записи и домены
write:bookmarks: добавлять посты в закладки
- write:conversations: игнорировать и удалить разговоры
- write:favourites: добавить посты в избранное
+ write:conversations: игнорировать и удалять беседы
+ write:favourites: добавлять посты в избранное
write:filters: создавать фильтры
write:follows: подписываться на людей
write:lists: создавать списки
- write:media: загружать медиафайлы
+ write:media: загружать медиа
write:mutes: игнорировать людей и обсуждения
write:notifications: очищать список уведомлений
- write:reports: отправлять жалобы на других
+ write:reports: отправлять жалобы на других пользователей
write:statuses: публиковать посты
diff --git a/config/locales/doorkeeper.zh-HK.yml b/config/locales/doorkeeper.zh-HK.yml
index 4450cfc1a4b..379b0617d70 100644
--- a/config/locales/doorkeeper.zh-HK.yml
+++ b/config/locales/doorkeeper.zh-HK.yml
@@ -134,6 +134,7 @@ zh-HK:
media: 媒體附件
mutes: 靜音
notifications: 通知
+ profile: 你的 Mastodon 個人檔案
push: 推送通知
reports: 檢舉報告
search: 搜尋
diff --git a/config/locales/el.yml b/config/locales/el.yml
index f5a01af592f..0b1ee7b772b 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -786,17 +786,26 @@ el:
title: Ρόλοι
rules:
add_new: Προσθήκη κανόνα
+ add_translation: Προσθήκη μετάφρασης
delete: Διαγραφή
description_html: Ενώ οι περισσότεροι ισχυρίζονται ότι έχουν διαβάσει και συμφωνούν με τους όρους της υπηρεσίας, συνήθως οι άνθρωποι δεν διαβάζουν μέχρι μετά την εμφάνιση ενός προβλήματος. Κάνε ευκολότερο να δουν τους κανόνες του διακομιστή σας με μια ματιά παρέχοντας τους σε μια λίστα. Προσπάθησε να κρατήσεις τους μεμονωμένους κανόνες σύντομους και απλούς, αλλά προσπάθησε να μην τους χωρίσεις σε πολλά ξεχωριστά αντικείμενα.
edit: Επεξεργασία κανόνα
empty: Δεν έχουν οριστεί ακόμα κανόνες διακομιστή.
+ move_down: Μετακίνηση κάτω
+ move_up: Μετακίνηση πάνω
title: Κανόνες διακομιστή
+ translation: Μετάφραση
+ translations: Μεταφράσεις
+ translations_explanation: Προαιρετικά μπορείς να προσθέσεις μεταφράσεις για τους κανόνες. Η προεπιλεγμένη τιμή θα εμφανιστεί αν δεν υπάρχει διαθέσιμη μεταφρασμένη έκδοση. Παρακαλούμε πάντα βεβαιώσου ότι οποιαδήποτε παρεχόμενη μετάφραση είναι συγχρονισμένη με την προεπιλεγμένη τιμή.
settings:
about:
manage_rules: Διαχείριση κανόνων διακομιστή
preamble: Παρέχετε αναλυτικές πληροφορίες σχετικά με τη λειτουργία του διακομιστή, τον συντονισμό και τη χρηματοδότηση.
rules_hint: Υπάρχει μια ειδική περιοχή για τους κανόνες που αναμένεται να τηρούν οι χρήστες σας.
title: Σχετικά με
+ allow_referrer_origin:
+ desc: Όταν οι χρήστες σου κάνουν κλικ συνδέσμους σε εξωτερικές ιστοσελίδες, το πρόγραμμα περιήγησής τους μπορεί να στείλει τη διεύθυνση του διακομιστή σας Mastodon ως αναφέρων. Απενεργοποίησέ το αν αυτό θα αναγνώριζε μοναδικά τους χρήστες σου, π.χ. αν αυτός είναι ένας προσωπικός εξυπηρετητής Mastodon.
+ title: Να επιτρέπεται σε εξωτερικούς ιστότοπους να βλέπουν τον εξυπηρετητή Mastodon σου ως πηγή κίνησης
appearance:
preamble: Προσάρμοσε την ιστοσελίδα του Mastodon.
title: Εμφάνιση
@@ -816,6 +825,7 @@ el:
discovery:
follow_recommendations: Ακολούθησε τις προτάσεις
preamble: Δημοσιεύοντας ενδιαφέρον περιεχόμενο είναι καθοριστικό για την ενσωμάτωση νέων χρηστών που μπορεί να μη γνωρίζουν κανέναν στο Mastodon. Έλεγξε πώς λειτουργούν διάφορες δυνατότητες ανακάλυψης στον διακομιστή σας.
+ privacy: Απόρρητο
profile_directory: Κατάλογος προφίλ
public_timelines: Δημόσιες ροές
publish_statistics: Δημοσίευση στατιστικών
@@ -902,6 +912,8 @@ el:
system_checks:
database_schema_check:
message_html: Υπάρχουν μετακινήσεις βάσεων δεδομένων που εκκρεμούν. Παρακαλώ εκτέλεσέ τες για να βεβαιωθείς ότι η εφαρμογή συμπεριφέρεται όπως αναμένεται
+ elasticsearch_analysis_index_mismatch:
+ message_html: Οι ρυθμίσεις του δείκτη Elasticsearch είναι ξεπερασμένες. Παρακαλώ εκτέλεσε το tootctl search deploy -- only-mapping -- only=%{value}
elasticsearch_health_red:
message_html: Το σύμπλεγμα Elasticsearch δεν είναι υγιές (κόκκινη κατάσταση), μη διαθέσιμες δυνατότητες αναζήτησης
elasticsearch_health_yellow:
@@ -1855,6 +1867,10 @@ el:
limit: Έχεις ήδη καρφιτσώσει το μέγιστο αριθμό επιτρεπτών αναρτήσεων
ownership: Δεν μπορείς να καρφιτσώσεις ανάρτηση κάποιου άλλου
reblog: Οι ενισχύσεις δεν καρφιτσώνονται
+ quote_policies:
+ followers: Ακόλουθοι και αναφερόμενοι χρήστες
+ nobody: Μόνο αναφερόμενοι χρήστες
+ public: Όλοι
title: '%{name}: "%{quote}"'
visibilities:
direct: Άμεση
@@ -1908,6 +1924,11 @@ el:
does_not_match_previous_name: δεν ταιριάζει με το προηγούμενο όνομα
terms_of_service:
title: Όροι Παροχής Υπηρεσιών
+ terms_of_service_interstitial:
+ future_preamble_html: Πραγματοποιούμε κάποιες αλλαγές στους όρους παροχής υπηρεσιών, οι οποίες θα τεθούν σε ισχύ στις %{date} . Σε ενθαρρύνουμε να διαβάσεις τους ενημερωμένους όρους.
+ past_preamble_html: Έχουμε αλλάξει τους όρους παροχής υπηρεσιών μας από την τελευταία επίσκεψή σου. Σε ενθαρρύνουμε να διαβάσεις τους ενημερωμένους όρους.
+ review_link: Επισκόπηση όρων υπηρεσίας
+ title: Οι όροι παροχής υπηρεσιών του %{domain} αλλάζουν
themes:
contrast: Mastodon (Υψηλή αντίθεση)
default: Mastodon (Σκοτεινό)
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index f44404502e2..a65ee021318 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -309,6 +309,7 @@ en-GB:
title: Audit log
unavailable_instance: "(domain name unavailable)"
announcements:
+ back: Back to announcements
destroyed_msg: Announcement successfully deleted!
edit:
title: Edit announcement
@@ -317,6 +318,10 @@ en-GB:
new:
create: Create announcement
title: New announcement
+ preview:
+ disclaimer: As users cannot opt out of them, email notifications should be limited to important announcements such as personal data breach or server closure notifications.
+ explanation_html: 'The email will be sent to %{display_count} users . The following text will be included in the e-mail:'
+ title: Preview announcement notification
publish: Publish
published_msg: Announcement successfully published!
scheduled_for: Scheduled for %{time}
@@ -475,6 +480,36 @@ en-GB:
new:
title: Import domain blocks
no_file: No file selected
+ fasp:
+ debug:
+ callbacks:
+ created_at: Created at
+ delete: Delete
+ ip: IP address
+ request_body: Request body
+ title: Debug Callbacks
+ providers:
+ active: Active
+ base_url: Base URL
+ callback: Callback
+ delete: Delete
+ edit: Edit Provider
+ finish_registration: Finish registration
+ name: Name
+ providers: Providers
+ public_key_fingerprint: Public key fingerprint
+ registration_requested: Registration requested
+ registrations:
+ confirm: Confirm
+ description: You received a registration from a FASP. Reject it if you did not initiate this. If you initiated this, carefully compare name and key fingerprint before confirming the registration.
+ reject: Reject
+ title: Confirm FASP Registration
+ save: Save
+ select_capabilities: Select Capabilities
+ sign_in: Sign In
+ status: Status
+ title: Fediverse Auxiliary Service Providers
+ title: FASP
follow_recommendations:
description_html: "Follow recommendations help new users quickly find interesting content . When a user has not interacted with others enough to form personalised follow recommendations, these accounts are recommended instead. They are re-calculated on a daily basis from a mix of accounts with the highest recent engagements and highest local follower counts for a given language."
language: For language
@@ -543,6 +578,13 @@ en-GB:
all: All
limited: Limited
title: Moderation
+ moderation_notes:
+ create: Add Moderation Note
+ created_msg: Instance moderation note successfully created!
+ description_html: View and leave notes for other moderators and your future self
+ destroyed_msg: Instance moderation note successfully deleted!
+ placeholder: Information about this instance, actions taken, or anything else that will help you moderate this instance in the future.
+ title: Moderation Notes
private_comment: Private comment
public_comment: Public comment
purge: Purge
@@ -751,17 +793,26 @@ en-GB:
title: Roles
rules:
add_new: Add rule
+ add_translation: Add translation
delete: Delete
description_html: While most claim to have read and agree to the terms of service, usually people do not read through until after a problem arises. Make it easier to see your server's rules at a glance by providing them in a flat bullet point list. Try to keep individual rules short and simple, but try not to split them up into many separate items either.
edit: Edit rule
empty: No server rules have been defined yet.
+ move_down: Move down
+ move_up: Move up
title: Server rules
+ translation: Translation
+ translations: Translations
+ translations_explanation: You can optionally add translations for the rules. The default value will be shown if no translated version is available. Please always ensure any provided translation is in sync with the default value.
settings:
about:
manage_rules: Manage server rules
preamble: Provide in-depth information about how the server is operated, moderated, funded.
rules_hint: There is a dedicated area for rules that your users are expected to adhere to.
title: About
+ allow_referrer_origin:
+ desc: When your users click links to external sites, their browser may send the address of your Mastodon server as the referrer. Disable this if this would uniquely identify your users, e.g. if this is a personal Mastodon server.
+ title: Allow external sites to see your Mastodon server as a traffic source
appearance:
preamble: Customise Mastodon's web interface.
title: Appearance
@@ -781,6 +832,7 @@ en-GB:
discovery:
follow_recommendations: Follow recommendations
preamble: Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server.
+ privacy: Privacy
profile_directory: Profile directory
public_timelines: Public timelines
publish_statistics: Publish statistics
@@ -867,6 +919,8 @@ en-GB:
system_checks:
database_schema_check:
message_html: There are pending database migrations. Please run them to ensure the application behaves as expected
+ elasticsearch_analysis_index_mismatch:
+ message_html: Elasticsearch index analyser settings are outdated. Please run tootctl search deploy --only-mapping --only=%{value}
elasticsearch_health_red:
message_html: Elasticsearch cluster is unhealthy (red status), search features are unavailable
elasticsearch_health_yellow:
@@ -938,6 +992,7 @@ en-GB:
chance_to_review_html: "The generated terms of service will not be published automatically. You will have a chance to review the results. Please fill in the necessary details to proceed."
explanation_html: The terms of service template provided is for informational purposes only, and should not be construed as legal advice on any subject matter. Please consult with your own legal counsel on your situation and specific legal questions you have.
title: Terms of Service Setup
+ going_live_on_html: Live, effective %{date}
history: History
live: Live
no_history: There are no recorded changes of the terms of service yet.
@@ -1294,6 +1349,10 @@ en-GB:
basic_information: Basic information
hint_html: "Customise what people see on your public profile and next to your posts. Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture."
other: Other
+ emoji_styles:
+ auto: Auto
+ native: Native
+ twemoji: Twemoji
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
@@ -1819,6 +1878,10 @@ en-GB:
limit: You have already pinned the maximum number of posts
ownership: Someone else's post cannot be pinned
reblog: A boost cannot be pinned
+ quote_policies:
+ followers: Followers and mentioned users
+ nobody: Only mentioned users
+ public: Everyone
title: '%{name}: "%{quote}"'
visibilities:
direct: Direct
@@ -1872,6 +1935,11 @@ en-GB:
does_not_match_previous_name: does not match the previous name
terms_of_service:
title: Terms of Service
+ terms_of_service_interstitial:
+ future_preamble_html: We're making some changes to our terms of service, which will be effective on %{date} . We encourage you to review the updated terms.
+ past_preamble_html: We have changed our terms of service since your last visit. We encourage you to review the updated terms.
+ review_link: Review terms of service
+ title: The terms of service of %{domain} are changing
themes:
contrast: Mastodon (High contrast)
default: Mastodon (Dark)
@@ -1903,6 +1971,10 @@ en-GB:
recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe . For example, you may print them and store them with other important documents.
webauthn: Security keys
user_mailer:
+ announcement_published:
+ description: 'The administrators of %{domain} are making an announcement:'
+ subject: Service announcement
+ title: "%{domain} service announcement"
appeal_approved:
action: Account Settings
explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing.
@@ -1935,6 +2007,8 @@ en-GB:
terms_of_service_changed:
agreement: By continuing to use %{domain}, you are agreeing to these terms. If you disagree with the updated terms, you may terminate your agreement with %{domain} at any time by deleting your account.
changelog: 'At a glance, here is what this update means for you:'
+ description: 'You are receiving this e-mail because we''re making some changes to our terms of service at %{domain}. These updates will take effect on %{date}. We encourage you to review the updated terms in full here:'
+ description_html: You are receiving this e-mail because we're making some changes to our terms of service at %{domain}. These updates will take effect on %{date} . We encourage you to review the updated terms in full here .
sign_off: The %{domain} team
subject: Updates to our terms of service
subtitle: The terms of service of %{domain} are changing
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 5fcdbe4c962..4df63f4c738 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -578,6 +578,13 @@ en:
all: All
limited: Limited
title: Moderation
+ moderation_notes:
+ create: Add Moderation Note
+ created_msg: Instance moderation note successfully created!
+ description_html: View and leave notes for other moderators and your future self
+ destroyed_msg: Instance moderation note successfully deleted!
+ placeholder: Information about this instance, actions taken, or anything else that will help you moderate this instance in the future.
+ title: Moderation Notes
private_comment: Private comment
public_comment: Public comment
purge: Purge
@@ -1342,6 +1349,10 @@ en:
basic_information: Basic information
hint_html: "Customize what people see on your public profile and next to your posts. Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture."
other: Other
+ emoji_styles:
+ auto: Auto
+ native: Native
+ twemoji: Twemoji
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 0be9b846993..9ed961db348 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -578,6 +578,13 @@ es-AR:
all: Todas
limited: Limitadas
title: Moderación
+ moderation_notes:
+ create: Agregar nota de moderación
+ created_msg: "¡Nota de moderación de instancia creada!"
+ description_html: Ver y dejar notas para otros moderadores y a tu yo futuro
+ destroyed_msg: "¡Nota de moderación de instancia eliminada con éxito!"
+ placeholder: Información sobre esta instancia, acciones tomadas o cualquier otra cosa que te ayude a moderar esta instancia en el futuro.
+ title: Notas de moderación
private_comment: Comentario privado
public_comment: Comentario público
purge: Purgar
@@ -1342,6 +1349,10 @@ es-AR:
basic_information: Información básica
hint_html: "Personalizá lo que la gente ve en tu perfil público y junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen con vos cuando tengas un perfil completo y una foto de perfil."
other: Otros
+ emoji_styles:
+ auto: Automático
+ native: Nativo
+ twemoji: Twemoji
errors:
'400': La solicitud que enviaste no era válida o estaba corrompida.
'403': No tenés permiso para ver esta página.
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index a1cfb9e5468..cfc573fab8d 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -578,6 +578,13 @@ es-MX:
all: Todos
limited: Limitado
title: Moderación
+ moderation_notes:
+ create: Añadir nota de moderación
+ created_msg: "¡Nota de moderación de instancia creada exitosamente!"
+ description_html: Ver y dejar notas para otros moderadores y a tu yo futuro
+ destroyed_msg: "¡Nota de moderación de instancia eliminada exitosamente!"
+ placeholder: Información acerca de esta instancia, acciones tomadas o cualquier otra cosa que te ayude a moderar esta instancia en el futuro.
+ title: Notas de moderación
private_comment: Comentario privado
public_comment: Comentario público
purge: Purgar
@@ -804,7 +811,7 @@ es-MX:
rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran.
title: Acerca de
allow_referrer_origin:
- desc: Cuando tus usuarios cliquen en enlaces a sitios externos, su navegador podría enviar la dirección de tu servidor de Mastodon como referencia. Deshabilita esto si identifica a tus usuarios unívocamente, por ejemplo, si este es un servidor de Mastodon personal.
+ desc: Cuando tus usuarios hagan clic en enlaces a sitios externos, su navegador podría enviar la dirección de su servidor Mastodon como referencia. Deshabilita esta opción si esto pudiera identificar de forma exclusiva a tus usuarios, por ejemplo, si se trata de un servidor Mastodon personal.
title: Permitir que sitios externos vean tu servidor Mastodon como fuente de tráfico
appearance:
preamble: Personalizar la interfaz web de Mastodon.
@@ -1342,6 +1349,10 @@ es-MX:
basic_information: Información básica
hint_html: "Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen contigo cuando completes tu perfil y agregues una foto."
other: Otro
+ emoji_styles:
+ auto: Automático
+ native: Nativo
+ twemoji: Twemoji
errors:
'400': La solicitud que has enviado no es valida o estaba malformada.
'403': No tienes permiso para acceder a esta página.
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 749104d691e..4b10f23b132 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -578,6 +578,13 @@ es:
all: Todos
limited: Limitado
title: Moderación
+ moderation_notes:
+ create: Añadir nota de moderación
+ created_msg: "¡Nota de moderación de instancia creada!"
+ description_html: Ver y dejar notas para otros moderadores y a tu yo futuro
+ destroyed_msg: "¡Nota de moderación de instancia eliminada con éxito!"
+ placeholder: Información sobre esta instancia, acciones tomadas o cualquier otra cosa que te ayude a moderar esta instancia en el futuro.
+ title: Notas de Moderación
private_comment: Comentario privado
public_comment: Comentario público
purge: Purgar
@@ -1342,6 +1349,10 @@ es:
basic_information: Información básica
hint_html: "Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen contigo cuando completas tu perfil y foto."
other: Otros
+ emoji_styles:
+ auto: Automático
+ native: Nativo
+ twemoji: Twemoji
errors:
'400': La solicitud que has enviado no es valida o estaba malformada.
'403': No tienes permiso para acceder a esta página.
diff --git a/config/locales/et.yml b/config/locales/et.yml
index afbb429bb5d..dba31f4ffd7 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -187,6 +187,7 @@ et:
create_domain_block: Domeeni blokeerimine
create_email_domain_block: Loo e-posti domeeni blokeering
create_ip_block: IP-reegli lisamine
+ create_relay: Loo sõnumivahendusserver
create_unavailable_domain: Kättesaamatu domeeni lisamine
create_user_role: Loo roll
demote_user: Alandas kasutaja
@@ -198,14 +199,17 @@ et:
destroy_email_domain_block: Kustuta e-posti domeeni blokeering
destroy_instance: Domeeni kustutamine
destroy_ip_block: IP-reegli kustutamine
+ destroy_relay: Kustuta sõnumivahendusserver
destroy_status: Kustuta postitus
destroy_unavailable_domain: Kättesaamatu domeeni kustutamine
destroy_user_role: Rolli kustutamine
disable_2fa_user: Keela 2FA
disable_custom_emoji: Keelas kohandatud emotikoni
+ disable_relay: Lülita sõnumivahendusserver välja
disable_sign_in_token_auth_user: Keela e-posti võtme abil autentimine kasutajale
disable_user: Keelas kasutaja
enable_custom_emoji: Lubas kohandatud emotikoni
+ enable_relay: Lülita sõnumivahendusserver sisse
enable_sign_in_token_auth_user: Luba e-posti võtme abil autentimine kasutajale
enable_user: Lubas kasutaja
memorialize_account: Igaveselt lahkunuks märkimine
@@ -248,6 +252,7 @@ et:
create_domain_block_html: "%{name} keelas domeeni %{target}"
create_email_domain_block_html: "%{name} blokeeris e-posti domeeni %{target}"
create_ip_block_html: "%{name} lõi IP-aadressile %{target} reegli"
+ create_relay_html: "%{name} lõi sõnumivahendusserveri: %{target}"
create_unavailable_domain_html: "%{name} lõpetas edastamise domeeni %{target}"
create_user_role_html: "%{name} lõi rolli %{target}"
demote_user_html: "%{name} alandas kasutajat %{target}"
@@ -259,14 +264,17 @@ et:
destroy_email_domain_block_html: "%{name} eemaldas blokeeringu e-posti domeenilt %{target}"
destroy_instance_html: "%{name} kustutas domeeni %{target}"
destroy_ip_block_html: "%{name} kustutas IP-aadressi %{target} reegli"
+ destroy_relay_html: "%{name} kustutas sõnumivahendusserveri: %{target}"
destroy_status_html: "%{name} kustutas %{target} postituse"
destroy_unavailable_domain_html: "%{name} taastas edastamise domeeni %{target}"
destroy_user_role_html: "%{name} kustutas %{target} rolli"
disable_2fa_user_html: "%{name} eemaldas kasutaja %{target} kahe etapise nõude"
disable_custom_emoji_html: "%{name} keelas emotikooni %{target}"
+ disable_relay_html: "%{name} eemaldas sõnumivahendusserveri kasutuselt: %{target}"
disable_sign_in_token_auth_user_html: "%{name} keelas e-posti võtme abil autentimise %{target} jaoks"
disable_user_html: "%{name} keelas %{target} sisenemise"
enable_custom_emoji_html: "%{name} lubas emotikooni %{target}"
+ enable_relay_html: "%{name} võttis sõnumivahendusserveri kasutusele: %{target}"
enable_sign_in_token_auth_user_html: "%{name} lubas e-posti võtme abil autentimise %{target} jaoks"
enable_user_html: "%{name} lubas %{target} sisenemise"
memorialize_account_html: "%{name} märkis %{target} igaveselt lahkunuks"
@@ -349,12 +357,12 @@ et:
title: Emotikonid
uncategorized: Kategoriseerimata
unlist: Loetlemata
- unlisted: Loetlemata
+ unlisted: Ajajooneväline
update_failed_msg: Ei saanud seda emotikoni uuendada
updated_msg: Emotikoni uuendamine õnnestus!
upload: Lae üles
dashboard:
- active_users: aktiivsed kasutajad
+ active_users: aktiivseid kasutajaid
interactions: interaktsioonid
media_storage: Meedia hoidla
new_users: uued kasutajad
@@ -469,9 +477,32 @@ et:
title: Domeenikeeldude import
no_file: Faili pole valitud
fasp:
+ debug:
+ callbacks:
+ created_at: 'Loodud:'
+ delete: Kustuta
+ ip: IP-aadress
+ request_body: Päringu sisu
providers:
+ active: Aktiivne
+ callback: Pöördliiklus
+ delete: Kustuta
+ edit: Muuda teenusepakkujat
+ finish_registration: Lõpeta registreerimine
+ name: Nimi
+ providers: Teenusepakkujad
+ public_key_fingerprint: Avaliku võtme sõrmejälg
+ registration_requested: Registreerimispäring
+ registrations:
+ confirm: Kinnita
+ description: Sa oled saanud FASP-i registreerimispäringu. Kui sa seda ise ei algatanud, siis keeldu. Kui algatasid, siis enne kinnitamist kontrolli nime ja võtme sõrmejälge.
+ reject: Keeldu
+ title: Kinnita FASP-i registreerimine
+ save: Salvesta
sign_in: Logi sisse
status: Olek
+ title: Täiendavad teenusepakkujad Födiversumis (FASP - Fediverse Auxiliary Service Providers)
+ title: FASP
follow_recommendations:
description_html: "Jälgimissoovitused aitavad uutel kasutajatel kiirelt leida huvipakkuvat sisu . Kui kasutaja pole teistega piisavalt läbi käinud, et saaks luua personaalseid soovitusi, soovitatakse neid kontosid. Need arvutatakse ümber igapäevaselt konkreetse keele populaarseimate postituste ja enim jälgitavate kontode seast."
language: Keel
@@ -540,6 +571,13 @@ et:
all: Kõik
limited: Piiratud
title: Modereerimine
+ moderation_notes:
+ create: Lisa modereerimisteade
+ created_msg: Serveri modereerimisteate koostamine õnnestus!
+ description_html: Vaata ja lisa teade teistele moderaatoritele ning endalegi tulevikus
+ destroyed_msg: Serveri modereerimisteate kustutamine õnnestus!
+ placeholder: Teave selle koduserveri kohta, tehtud toimingud või mis iganes muu oluline, mis võimaldab sul või teistel serverit tulevikus modereerida.
+ title: Modereerimisteated
private_comment: Privaatne kommentaar
public_comment: Avalik kommentaar
purge: Kustuta
@@ -578,7 +616,7 @@ et:
relationships:
title: "%{acct}-i suhted"
relays:
- add_new: Lisa uus vahendaja
+ add_new: Lisa uus sõnumivahendusserver
delete: Kustuta
description_html: "Födereerumisvahendaja on vahendav server, mis kannab üle suures koguses avalikke postitusi nende serverite vahel, mis on sellega liitunud ja edastavad sellele oma postitusi. See aitab väikestel ja keskmistel serveritel avastada födiversumi sellist sisu , mis muidu eeldaks kohalikelt kasutajatelt nende serverite kasutajate jälgitavaks märkimist."
disable: Keela
@@ -586,13 +624,13 @@ et:
enable: Luba
enable_hint: Kui lubatud, siis server tellib sellelt vahendajalt kõik avalikud postitused ning hakkab ka enda avalikke postitusi sellele saatma.
enabled: Lubatud
- inbox_url: Vahendaja URL
- pending: Ootab vahendaja nõusolekut
+ inbox_url: Sõnumivahendusserveri võrguaadress
+ pending: Ootan sõnumivahendusserveri kinnitust
save_and_enable: Salvesta ja luba
setup: Sea üles vahendav ühendus
- signatures_not_enabled: Vahendamine ei tööta korrektselt kuniks turvarežiim või lubatud nimekirja režiim on sisse lülitatud
+ signatures_not_enabled: Vahendamine ei tööta korrektselt kui turvarežiim või lubatud nimekirja režiim on sisse lülitatud
status: Olek
- title: Vahendajad
+ title: Sõnumivahendusserverid
report_notes:
created_msg: Teade edukalt koostatud!
destroyed_msg: Teade edukalt kustutatud!
@@ -830,6 +868,7 @@ et:
back_to_account: Tagasi konto lehele
back_to_report: Tagasi raporti lehele
batch:
+ add_to_report: 'Lisa teatisele #%{id}'
remove_from_report: Eemalda raportist
report: Raport
contents: Sisu
@@ -941,6 +980,13 @@ et:
explanation_html: Esitatud teenusetingimuste näidis on mõeldud ainult teavitamise eesmärgil ja seda ei tohiks tõlgendada kui juriidilist nõuannet mis tahes küsimuses. Palun konsulteeri olukorra ja konkreetsete juriidiliste küsimuste osas oma õigusnõustajaga.
title: Teenuse tingimuste seadistamine
history: Ajalugu
+ notify_users: Teata kasutajatele
+ preview:
+ explanation_html: 'See e-kiri saadetakse %{display_count}-le kasutajale , kes olid liitunud enne %{date}. E-kirjas sisaldub järgnev tekst:'
+ send_preview: Saada eelvaade %{email} e-posti aadressile
+ send_to_all:
+ one: Saada %{display_count} e-kiri
+ other: Saada %{display_count} e-kirja
publish: Postita
published_on_html: Postitatud %{date}
title: Kasutustingimused
@@ -1180,7 +1226,7 @@ et:
new_confirmation_instructions_sent: Saad mõne minuti pärast uue kinnituslingiga e-kirja!
title: Kontrolli sisendkasti
sign_in:
- preamble_html: Logi sisse oma kasutajakontoga serveris %{domain} . Kui konto asub teises serveris, siis sa ei saa siin sisse logida.
+ preamble_html: Logi sisse oma kasutajakontoga serverisse %{domain} . Kui konto asub teises serveris, siis sa ei saa siin sisse logida.
title: Logi sisse serverisse %{domain}
sign_up:
manual_review: Liitumised kohas %{domain} vaadatakse meie moderaatorite poolt käsitsi läbi. Aitamaks meil sinu taotlust läbi vaadata, kirjuta palun natuke endast ja miks soovid kontot kohas %{domain}.
@@ -1808,6 +1854,8 @@ et:
reblog: Jagamist ei saa kinnitada
quote_policies:
followers: Jälgijad ja mainitud kasutajad
+ nobody: Vaid mainitud kasutajad
+ public: Kõik
title: '%{name}: "%{quote}"'
visibilities:
direct: Otsene
@@ -1815,7 +1863,7 @@ et:
private_long: Näevad ainult jälgijad
public: Avalik
public_long: Postitused on kõigile näha
- unlisted: Loetlemata
+ unlisted: Ajajooneväline
unlisted_long: Kõigile näha, kuid ei näidata avalikel ajajoontel
statuses_cleanup:
enabled: Vanade postituste automaatne kustutamine
@@ -1863,6 +1911,11 @@ et:
does_not_match_previous_name: ei ühti eelmise nimega
terms_of_service:
title: Kasutustingimused
+ terms_of_service_interstitial:
+ future_preamble_html: Alates %{date} muudame me oma kasutustingimusi. Palun vaata muutunud tingimused üle.
+ past_preamble_html: Peale sinu viimast külastust oleme muutnud oma kasutustingimusi. Palun vaata muutunud tingimused üle.
+ review_link: Vaata üle kasutustingimused
+ title: "%{domain} saidi kasutustingimused muutuvad"
themes:
contrast: Mastodon (Kõrge kontrast)
default: Mastodon (Tume)
@@ -1895,6 +1948,7 @@ et:
webauthn: Turvavõtmed
user_mailer:
announcement_published:
+ description: "%{domain} saidi peakasutajate teadaanne:"
subject: Saidi teadaanne teenuste kohta
title: "%{domain} saidi teadaanne teenuste kohta"
appeal_approved:
@@ -1927,6 +1981,8 @@ et:
subject: Kontole sisenemine uuelt IP-aadressilt
title: Uus sisenemine
terms_of_service_changed:
+ agreement: Jätkates %{domain} teenuse kasutamisega nõustud sa kasutustingimustega. Kui sa pole tingimustega nõus, siis võid oma kasutajakonto kustutamisega lepingu %{domain} saidiga alati lõpetada.
+ changelog: 'Selle uuenduse ülevaade sinu jaoks:'
sign_off: "%{domain} saidi tiim"
subject: Meie kasutustingimuste uuendused
subtitle: "%{domain} saidi kasutustingimused muutuvad"
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 79080c7bfbf..42fb04a65a0 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -187,6 +187,7 @@ eu:
create_domain_block: Sortu domeinu blokeoa
create_email_domain_block: Sortu email domeinu blokeoa
create_ip_block: Sortu IP araua
+ create_relay: Erreleboa sortu
create_unavailable_domain: Sortu eskuragarri ez dagoen domeinua
create_user_role: Sortu rola
demote_user: Jaitsi erabiltzailearen maila
@@ -198,11 +199,13 @@ eu:
destroy_email_domain_block: Ezabatu email domeinu blokeoa
destroy_instance: Ezabatu betiko domeinua
destroy_ip_block: Ezabatu IP araua
+ destroy_relay: Erreleboa ezabatu
destroy_status: Ezabatu bidalketa
destroy_unavailable_domain: Ezabatu eskuragarri ez dagoen domeinua
destroy_user_role: Ezabatu rola
disable_2fa_user: Desgaitu 2FA
disable_custom_emoji: Desgaitu emoji pertsonalizatua
+ disable_relay: Erreleboa desaktibatu
disable_sign_in_token_auth_user: Desgaitu email token autentifikazioa erabiltzailearentzat
disable_user: Desgaitu erabiltzailea
enable_custom_emoji: Gaitu emoji pertsonalizatua
@@ -210,6 +213,7 @@ eu:
enable_user: Gaitu erabiltzailea
memorialize_account: Bihurtu kontua oroigarri
promote_user: Igo erabiltzailea mailaz
+ publish_terms_of_service: Zerbitzu-baldintzak argitaratu
reject_appeal: Baztertu apelazioa
reject_user: Baztertu erabiltzailea
remove_avatar_user: Kendu abatarra
@@ -229,23 +233,29 @@ eu:
update_custom_emoji: Eguneratu emoji pertsonalizatua
update_domain_block: Eguneratu domeinu-blokeoa
update_ip_block: Eguneratu IP araua
+ update_report: Txostena eguneratu
update_status: Eguneratu bidalketa
update_user_role: Eguneratu rola
actions:
approve_appeal_html: "%{name} erabiltzaileak %{target} erabiltzailearen moderazio erabakiaren apelazioa onartu du"
approve_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen izen-ematea onartu du"
assigned_to_self_report_html: "%{name} erabiltzaileak %{target} salaketa bere buruari esleitu dio"
+ change_email_user_html: "%{name}(e)k %{target} erabiltzailearen e-posta helbidea aldatu du"
change_role_user_html: "%{name} erabiltzaileak %{target} kontuaren rola aldatu du"
+ confirm_user_html: "%{name}(e)k %{target} erabiltzailearen e-posta helbidea berretsi du"
create_account_warning_html: "%{name} erabiltzaileak abisua bidali dio %{target} erabiltzaileari"
create_announcement_html: "%{name} erabiltzaileak %{target} iragarpen berria sortu du"
+ create_canonical_email_block_html: "%{name}(e)k %{target} hash-a duen helbide elektronikoa blokeatu du"
create_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji berria kargatu du"
create_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federazioa onartu du"
create_domain_block_html: "%{name} erabiltzaileak %{target} domeinua blokeatu du"
+ create_email_domain_block_html: "%{name}(e)k %{target} e-posta helbideen domeinua blokeatu du"
create_ip_block_html: "%{name} kontuak %{target} IParen araua sortu du"
create_unavailable_domain_html: "%{name}(e)k %{target} domeinurako banaketa gelditu du"
create_user_role_html: "%{name} erabiltzaileak %{target} rola sortu du"
demote_user_html: "%{name} erabiltzaileak %{target} erabiltzailea mailaz jaitsi du"
destroy_announcement_html: "%{name} erabiltzaileak %{target} iragarpena ezabatu du"
+ destroy_canonical_email_block_html: "%{name}(e)k %{target} hash-a duen helbide elektronikoa desblokeatu du"
destroy_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a ezabatu du"
destroy_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federatzea debekatu du"
destroy_domain_block_html: "%{name} erabiltzaileak %{target} domeinua desblokeatu du"
@@ -286,7 +296,9 @@ eu:
filter_by_action: Iragazi ekintzen arabera
filter_by_user: Iragazi erabiltzaileen arabera
title: Auditoria-egunkaria
+ unavailable_instance: "(domeinu izena ez dago erabilgarri)"
announcements:
+ back: Oharretara bueltatu
destroyed_msg: Iragarpena ongi ezabatu da!
edit:
title: Editatu iragarpena
@@ -433,8 +445,10 @@ eu:
new:
create: Gehitu domeinua
resolve: Ebatzi domeinua
+ title: Posta domeinu berria blokeatu
not_permitted: Baimendu gabea
resolved_through_html: "%{domain} domeinuaren bidez ebatzia"
+ title: Email domeinua blokeatuta
export_domain_allows:
new:
title: Baimendutako domeinuak inportatu
@@ -450,6 +464,32 @@ eu:
new:
title: Domeinu-blokeoak inportatu
no_file: Ez da fitxategirik hautatu
+ fasp:
+ debug:
+ callbacks:
+ created_at: Sortua hemen
+ delete: Ezabatu
+ ip: IP helbidea
+ request_body: Eskaeraren edukia
+ title: Atzera-deiak araztu
+ providers:
+ active: Aktibo
+ base_url: Oinarrizko URL-a
+ delete: Ezabatu
+ edit: Editatu hornitzailea
+ finish_registration: Izen-ematea bukatu
+ name: Izena
+ providers: Hornitzaileak
+ public_key_fingerprint: Gako publikoaren hatz-marka
+ registration_requested: Izen-ematea eskatuta
+ registrations:
+ confirm: Berretsi
+ reject: Ukatu
+ save: Gorde
+ sign_in: Hasi saioa
+ status: Egoera
+ title: Fedibertsoko zerbitzu osagarrien hornitzaileak
+ title: FZOH
follow_recommendations:
description_html: "Jarraitzeko gomendioek erabiltzaile berriei eduki interesgarria azkar aurkitzen laguntzen diete . Erabiltzaile batek jarraitzeko gomendio pertsonalizatuak jasotzeko adina interakzio izan ez duenean, kontu hauek gomendatzen zaizkio. Egunero birkalkulatzen dira hizkuntza bakoitzerako, azken aldian parte-hartze handiena izan duten eta jarraitzaile lokal gehien dituzten kontuak nahasiz."
language: Hizkuntza
@@ -515,6 +555,10 @@ eu:
all: Denak
limited: Mugatua
title: Moderazioa
+ moderation_notes:
+ create: Gehitu Moderazio Oharra
+ created_msg: Instantziako moderazio oharra ongi sortu da!
+ description_html: Ikusi eta idatzi oharrak beste moderatzaileentzat eta zuretzat etorkizunerako
private_comment: Iruzkin pribatua
public_comment: Iruzkin publikoa
purge: Ezabatu betiko
@@ -717,11 +761,14 @@ eu:
title: Rolak
rules:
add_new: Gehitu araua
+ add_translation: Gehitu itzulpena
delete: Ezabatu
description_html: Gehienek erabilera baldintzak irakurri eta onartu dituztela baieztatzen badute ere, orokorrean arazoren bat dagoen arte ez dituzte irakurtzen. Zerbitzariaren arauak begirada batean ikustea errazteko buletadun zerrenda batean bildu. Saiatu arauak labur eta sinple idazten, baina elementu askotan banatu gabe.
edit: Editatu araua
empty: Ez da zerbitzariko araurik definitu oraindik.
title: Zerbitzariaren arauak
+ translation: Itzulpena
+ translations: Itzulpenak
settings:
about:
manage_rules: Kudeatu zerbitzariaren arauak
@@ -747,6 +794,7 @@ eu:
discovery:
follow_recommendations: Jarraitzeko gomendioak
preamble: Eduki interesgarria aurkitzea garrantzitsua da Mastodoneko erabiltzaile berrientzat, behar bada inor ez dutelako ezagutuko. Kontrolatu zure zerbitzariko aurkikuntza-ezaugarriek nola funtzionatzen duten.
+ privacy: Pribatutasuna
profile_directory: Profil-direktorioa
public_timelines: Denbora-lerro publikoak
publish_statistics: Argitaratu estatistikak
@@ -777,6 +825,7 @@ eu:
destroyed_msg: Guneko igoera ongi ezabatu da!
software_updates:
critical_update: Kritikoa — mesedez, eguneratu azkar
+ description: Gomendagarria da Mastodon instalazioa eguneratuta mantentzea azken konponketa eta funtzioez baliatzeko. Gainera, batzuetan ezinbestekoa da Mastodon garaiz eguneratzea segurtasun arazoak saihesteko. Arrazoi hauengatik, Mastodonek 30 minuturo eguneratzeak egiaztatzen ditu, eta zure posta elektroniko bidezko jakinarazpenen lehentasunen arabera jakinaraziko dizu.
documentation_link: Informazio gehiago
release_notes: Bertsio oharrak
title: Eguneraketak eskuragarri
@@ -794,6 +843,7 @@ eu:
batch:
remove_from_report: Kendu txostenetik
report: Salatu
+ contents: Edukiak
deleted: Ezabatuta
favourites: Gogokoak
history: Bertsio-historia
@@ -802,6 +852,7 @@ eu:
media:
title: Multimedia
metadata: Metadatuak
+ no_history: Bidalketa hau ez da editatu
no_status_selected: Ez da bidalketarik aldatu ez delako bat ere hautatu
open: Ireki bidalketa
original_status: Jatorrizko bidalketa
@@ -849,6 +900,8 @@ eu:
message_html: Ez duzu zerbitzariaren araurik definitu.
sidekiq_process_check:
message_html: Ez da ari Sidekiq prozesurik exekutatzen %{value} ilad(et)an. Egiaztatu Sidekiq konfigurazioa
+ software_version_check:
+ message_html: Mastodon eguneratze bat eskuragarri dago.
software_version_critical_check:
action: Ikusi eguneraketa eskuragarriak
message_html: Mastodon eguneraketa kritikoa eskuragarri, mesedez eguneratu ahal bezain azkar.
@@ -862,8 +915,35 @@ eu:
action: Ikus hemen informazio gehiagorako
message_html: "Zure objektuen biltegiratzea ez dago ongi konfiguratua. Zure erabiltzaileen pribatutasuna arriskuan dago. "
tags:
+ moderation:
+ not_usable: Ez erabilgarri
+ pending_review: Berrikusketaren zain
+ reviewed: Berrikusita
+ title: Egoera
+ unreviewed: Berrikusi gabe
+ usable: Erabilgarri
+ name: Izena
+ newest: Berriena
+ oldest: Zaharrena
+ open: Publikoki ikusi
+ reset: Berrezarri
review: Berrikusketaren egoera
+ search: Bilatu
+ title: Traolak
updated_msg: Traola-ezarpenak ongi eguneratu dira
+ terms_of_service:
+ changelog: Zer aldatu da
+ current: Oraingoa
+ draft: Zirriborroa
+ generate: Txantiloila erabili
+ generates:
+ action: Sortu
+ history: Historia
+ live: Zuzenean
+ publish: Argitaratu
+ published_on_html: "%{date}(e)an argitaratua"
+ save_draft: Gorde zirriborroa
+ title: Zerbitzuaren baldintzak
title: Administrazioa
trends:
allow: Onartu
@@ -1056,6 +1136,7 @@ eu:
migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu, hemen konfiguratu dezakezu.
or_log_in_with: Edo hasi saioa honekin
progress:
+ confirm: Berretsi e-mail helbidea
details: Zure xehetasunak
review: Gure berrikuspena
rules: Onartu arauak
@@ -1077,6 +1158,7 @@ eu:
security: Segurtasuna
set_new_password: Ezarri pasahitza berria
setup:
+ email_below_hint_html: Begiratu zure spameko karpetan, edo eskatu beste bat. Zure helbide elektronikoa zuzen dezakezu oker badago.
link_not_received: Ez duzu estekarik jaso?
title: Begiratu zure sarrera-ontzia
sign_in:
@@ -1587,10 +1669,12 @@ eu:
delete: Kontuaren ezabaketa
development: Garapena
edit_profile: Editatu profila
+ export: Esportatu
featured_tags: Nabarmendutako traolak
import: Inportazioa
import_and_export: Inportatu eta esportatu
migrate: Kontuaren migrazioa
+ notifications: Posta bidezko jakinarazpenak
preferences: Hobespenak
profile: Profila
relationships: Jarraitutakoak eta jarraitzaileak
@@ -1637,6 +1721,10 @@ eu:
limit: Gehienez finkatu daitekeen bidalketa kopurua finkatu duzu jada
ownership: Ezin duzu beste norbaiten bidalketa bat finkatu
reblog: Bultzada bat ezin da finkatu
+ quote_policies:
+ followers: Jarraitzaileak eta aipatutako erabiltzaileak
+ nobody: Aipatutako erabiltzaileak soilik
+ public: Guztiak
title: '%{name}: "%{quote}"'
visibilities:
direct: Zuzena
@@ -1688,6 +1776,8 @@ eu:
too_late: Beranduegi da neurri hau apelatzeko
tags:
does_not_match_previous_name: ez dator aurreko izenarekin bat
+ terms_of_service:
+ title: Erabilera baldintzak
themes:
contrast: Mastodon (Kontraste altua)
default: Mastodon (Iluna)
@@ -1833,6 +1923,7 @@ eu:
instructions_html: Kopiatu eta itsatsi ondoko kodea zure webguneko HTMLan. Ondoren, gehitu zure webgunearen helbidea zure profileko eremu gehigarrietako batean, "Editatu profila" fitxatik eta gorde aldaketak.
verification: Egiaztaketa
verified_links: Zure lotura egiaztatuak
+ website_verification: Web orriaren egiaztapena
webauthn_credentials:
add: Gehitu segurtasun gako berria
create:
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 4d341939a60..b05a152dc2f 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -578,6 +578,13 @@ fa:
all: همه
limited: محدود
title: مدیریت
+ moderation_notes:
+ create: افزودن یادداشت نظارتی
+ created_msg: یادداشت نظارتی با موفقیت ساخته شد!
+ description_html: دیدن و گذاشتن یادداشتهایی برای دیگر ناظران و خود آیندهتان
+ destroyed_msg: یادداشت نظارتی با موفقیت حذف شد!
+ placeholder: اطلاعاتی دربارهٔ این نمونه، کنشهای انجام شده یا هرچیز دیگری که در نظارت این نمونه در آینده کمک خواهد کرد.
+ title: یادداشتهای نظارتی
private_comment: یادداشت خصوصی
public_comment: یادداشت عمومی
purge: پاکسازی
@@ -786,17 +793,26 @@ fa:
title: نقشها
rules:
add_new: افزودن قانون
+ add_translation: افزودن ترجمه
delete: حذف
description_html: در حالی که اکثر افراد ادعا میکنند که شرایط استفاده را خوانده و پذیرفتهاند، افراد معمولا تا پیش از بروز مشکل این متن را مطالعه نمیکنند. پیدا کردن قوانین کارسازتان را با تبدیلشان به صورت فهرست برای کاربران تسهیل کنید. سعی کنید هر قانون را کوتاه و ساده نگاه دارید اما از آن طرف هم تلاش نکنید که آنها به تعداد زیادی مورد جدا از هم تقسیم کنید.
edit: ویرایش قانون
empty: هنوز هیچ قانونی برای کارساز تعریف نشده.
+ move_down: پایین بردن
+ move_up: بالا بردن
title: قوانین کارساز
+ translation: ترجمه
+ translations: ترجمهها
+ translations_explanation: میتوانید به صورت اختیاری نقشها را ترجمه کنید. در صورت موجود نبودن نگارش ترجمه شده مقدار پیشگزیده نشان داده خواهد شد. لطفاً همواره مطمئن شوید که ترجمهها با مقدار پیشگزیده هماهنگند.
settings:
about:
manage_rules: مدیریت قانونهای کارساز
preamble: اطلاعات عمیقی در مورد نحوه کارکرد، تعدیل و تأمین مالی سرور ارائه دهید.
rules_hint: یک منطقه اختصاصی برای قوانینی وجود دارد که انتظار می رود کاربران شما به آن پایبند باشند.
title: درباره
+ allow_referrer_origin:
+ desc: ممکن است هنگام زدن کاربرانتان روی پیوند پایگاههای خارجی مرورگرشان نشانی کارساز ماستودونتان را به عنوان هدایتگر بفرستد. اگر این کار موجب شناسایی یکتای کاربرانتان میشود، برای نمونه در صورت خصوصی بودن کارسازتان از کار بیندازدش.
+ title: اجازه به پایگاههای خارجی برای دیدن کارساز ماستودونتان به عنوان منبع شدآمد
appearance:
preamble: سفارشیسازی رابطس وب ماستودون.
title: ظاهر
@@ -816,6 +832,7 @@ fa:
discovery:
follow_recommendations: پیروی از پیشنهادها
preamble: ارائه محتوای جالب در جذب کاربران جدیدی که ممکن است کسی ماستودون را نشناسند، مفید است. نحوه عملکرد ویژگیهای کشف مختلف روی سرور خود را کنترل کنید.
+ privacy: محرمانگی
profile_directory: شاخهٔ نمایه
public_timelines: خط زمانیهای عمومی
publish_statistics: انتشار آمار
@@ -1986,12 +2003,12 @@ fa:
terms_of_service_changed:
agreement: با ادامه استفاده از %{domain}، با این شرایط موافقت می کنید. اگر با شرایط بهروزرسانی شده مخالف هستید، میتوانید در هر زمان با حذف حساب خود، قرارداد خود را با %{domain} فسخ کنید.
changelog: 'در یک نگاه، معنای این بهروزرسانی برای شما چیست:'
- description: 'این رایانانه را میگیرید چرا که دارین اغییراتی در شرایط خدمتتان در %{domain} میدهیم. این بهروز رسانیها از %{date} اعمال خواهند شد. توصیه میکنیم شرایط بهروز شده را به طور کامل در اینجا بازبینی کنید:'
- description_html: این رایانانه را میگیرید چرا که دارین اغییراتی در شرایط خدمتتان در %{domain} میدهیم. این بهروز رسانیها از %{date} اعمال خواهند شد. توصیه میکنیم شرایط بهروز شده را به طور کامل در اینجا بازبینی کنید.
+ description: 'این رایانامه را میگیرید چرا که دارین تغییراتی در شرایط خدمتتان در %{domain} میدهیم. این بهروز سانیها از %{date} اعمال خواهند شد. توصیه میکنیم شرایط بهروز شده را به طور کامل در اینجا بازبینی کنید:'
+ description_html: این رایانامه را میگیرید چرا که دارین تغییراتی در شرایط خدمتتان در %{domain} میدهیم. این بهروز سانیها از %{date} اعمال خواهند شد. توصیه میکنیم شرایط بهروز شده را به طور کامل در اینجا بازبینی کنید.
sign_off: تیم %{domain}
subject: بهروزرسانیهای شرایط خدمات ما
subtitle: شرایط خدمات %{domain} در حال تغییر است
- title: به روز رسانی مهم
+ title: بهروزرسانی مهم
warning:
appeal: فرستادن یک درخواست تجدیدنظر
appeal_description: اگر فکر میکنید این یک خطا است، میتوانید یک درخواست تجدیدنظر به کارکنان %{instance} ارسال کنید.
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 5e64c035f28..54aadf60f32 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -576,6 +576,13 @@ fi:
all: Kaikki
limited: Rajoitettu
title: Moderointi
+ moderation_notes:
+ create: Lisää moderointimuistiinpano
+ created_msg: Instanssin moderointimuistiinpanon luonti onnistui!
+ description_html: Tarkastele ja jätä muistiinpanoja muille moderaattoreille ja itsellesi tulevaisuuteen
+ destroyed_msg: Instanssin moderointimuistiinpano poistettu!
+ placeholder: Tietoa tästä instanssista, tehdyistä toimista tai muusta sellaisesta, joka auttaa moderoimaan tätä instanssia tulevaisuudessa.
+ title: Moderointimuistiinpanot
private_comment: Yksityinen kommentti
public_comment: Julkinen kommentti
purge: Tyhjennä
@@ -1340,6 +1347,10 @@ fi:
basic_information: Perustiedot
hint_html: "Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä. Sinua seurataan takaisin ja kanssasi ollaan vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva."
other: Muut
+ emoji_styles:
+ auto: Automaattinen
+ native: Natiivi
+ twemoji: Twemoji
errors:
'400': Lähettämäsi pyyntö oli virheellinen tai muotoiltu virheellisesti.
'403': Sinulla ei ole oikeutta nähdä tätä sivua.
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index 7e3866dcb10..23a6b589765 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -578,6 +578,13 @@ fo:
all: Allir
limited: Avmarkaðir
title: Umsjón
+ moderation_notes:
+ create: Legg umsjónarviðmerking afturat
+ created_msg: Umsjónarviðmerking fyri hesa eindina stovnað!
+ description_html: Vís ella skriva viðmerkingar til onnur umsjónarfólk ella teg sjálva/n í framtíðini
+ destroyed_msg: Umsjónarviðmerking fyri hesa eindina strikað!
+ placeholder: Upplýsingar um hesa eindina, framdar atgerðir ella eitthvørt annað, sum kann hjálpa tær við umsjónini av hesi eindini í framtíðini.
+ title: Umsjónarviðmerkingar
private_comment: Privat viðmerking
public_comment: Sjónlig viðmerking
purge: Reinsa
@@ -1342,6 +1349,10 @@ fo:
basic_information: Grundleggjandi upplýsingar
hint_html: "Tillaga tað, sum fólk síggja á tínum almenna vanga og við síðna av tínum postum. Sannlíkindini fyri, at onnur fylgja tær og virka saman við tær eru størri, tá tú hevur fylt út vangan og eina vangamynd."
other: Onnur
+ emoji_styles:
+ auto: Sjálvvirkandi
+ native: Upprunalig
+ twemoji: Twitter kenslutekn
errors:
'400': Umbønin, sum tú sendi inn, var ógildug ella hevði skeivt skap.
'403': Tú hevur ikki loyvi at síggja hesa síðuna.
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index a0117234611..bb68494118f 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -485,16 +485,22 @@ fr-CA:
fasp:
debug:
callbacks:
+ created_at: Créé à
delete: Supprimer
ip: Adresse IP
providers:
+ name: Nom
+ providers: Fournisseur
registrations:
confirm: Confirmer
+ description: Vous avez reçu une souscription d'un FSAF. Rejetez-la si vous ne l'avez pas initiée. Si c'est bien votre intention, comparez le nom et l'empreinte de la clé avant de confirmer la souscription.
reject: Rejeter
+ title: Confirmer la souscription au FSAF
save: Enregistrer
select_capabilities: Sélectionnez les Capacités
sign_in: Se connecter
status: État
+ title: Fournisseurs de Services Auxiliaire du Fedivers
follow_recommendations:
description_html: "Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant . Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée."
language: Pour la langue
@@ -563,6 +569,8 @@ fr-CA:
all: Tout
limited: Limité
title: Modération
+ moderation_notes:
+ title: Notes de modération
private_comment: Commentaire privé
public_comment: Commentaire public
purge: Purge
@@ -771,11 +779,14 @@ fr-CA:
title: Rôles
rules:
add_new: Ajouter une règle
+ add_translation: Ajouter une traduction
delete: Supprimer
description_html: Bien que la plupart des gens prétende avoir lu les conditions d'utilisation avant de les accepter, généralement les utilisateur·rice·s ne les lisent vraiment que lorsque un problème apparaît. Pour faciliter la visualisation des règles de votre serveur en un seul coup d’œil, présentez-les sous la forme d'une liste à puces ! Essayez de garder chacune des règles simple et concise, mais faites attention à ne pas non plus les diviser en de trop nombreux éléments distincts.
edit: Modifier la règle
empty: Aucune règle de serveur n'a été définie pour l'instant.
title: Règles du serveur
+ translation: Traduction
+ translations: Traductions
settings:
about:
manage_rules: Gérer les règles du serveur
@@ -1840,6 +1851,8 @@ fr-CA:
limit: Vous avez déjà épinglé le nombre maximum de messages
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
reblog: Un partage ne peut pas être épinglé
+ quote_policies:
+ followers: Abonné·e·s et utilisateur·trice·s mentionné·e·s
title: "%{name} : « %{quote} »"
visibilities:
direct: Direct
@@ -1893,6 +1906,8 @@ fr-CA:
does_not_match_previous_name: ne correspond pas au nom précédent
terms_of_service:
title: Conditions d'utilisation
+ terms_of_service_interstitial:
+ title: Les conditions d'utilisation de %{domain} ont changées
themes:
contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre)
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 30090fef2c8..6fcdb5b9722 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -485,16 +485,22 @@ fr:
fasp:
debug:
callbacks:
+ created_at: Créé à
delete: Supprimer
ip: Adresse IP
providers:
+ name: Nom
+ providers: Fournisseur
registrations:
confirm: Confirmer
+ description: Vous avez reçu une souscription d'un FSAF. Rejetez-la si vous ne l'avez pas initiée. Si c'est bien votre intention, comparez le nom et l'empreinte de la clé avant de confirmer la souscription.
reject: Rejeter
+ title: Confirmer la souscription au FSAF
save: Enregistrer
select_capabilities: Sélectionnez les Capacités
sign_in: Se connecter
status: État
+ title: Fournisseurs de Services Auxiliaire du Fedivers
follow_recommendations:
description_html: "Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant . Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée."
language: Pour la langue
@@ -563,6 +569,8 @@ fr:
all: Tout
limited: Limité
title: Modération
+ moderation_notes:
+ title: Notes de modération
private_comment: Commentaire privé
public_comment: Commentaire public
purge: Purge
@@ -771,11 +779,14 @@ fr:
title: Rôles
rules:
add_new: Ajouter une règle
+ add_translation: Ajouter une traduction
delete: Supprimer
description_html: Bien que la plupart des gens prétende avoir lu les conditions d'utilisation avant de les accepter, généralement les utilisateur·rice·s ne les lisent vraiment que lorsque un problème apparaît. Pour faciliter la visualisation des règles de votre serveur en un seul coup d’œil, présentez-les sous la forme d'une liste à puces ! Essayez de garder chacune des règles simple et concise, mais faites attention à ne pas non plus les diviser en de trop nombreux éléments distincts.
edit: Modifier la règle
empty: Aucune règle de serveur n'a été définie pour l'instant.
title: Règles du serveur
+ translation: Traduction
+ translations: Traductions
settings:
about:
manage_rules: Gérer les règles du serveur
@@ -1840,6 +1851,8 @@ fr:
limit: Vous avez déjà épinglé le nombre maximum de messages
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
reblog: Un partage ne peut pas être épinglé
+ quote_policies:
+ followers: Abonné·e·s et utilisateur·trice·s mentionné·e·s
title: "%{name} : « %{quote} »"
visibilities:
direct: Direct
@@ -1893,6 +1906,8 @@ fr:
does_not_match_previous_name: ne correspond pas au nom précédent
terms_of_service:
title: Conditions d'utilisation
+ terms_of_service_interstitial:
+ title: Les conditions d'utilisation de %{domain} ont changées
themes:
contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre)
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 71d9f642854..38752869da1 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -578,6 +578,13 @@ fy:
all: Alle
limited: Beheind
title: Moderaasje
+ moderation_notes:
+ create: Moderaasje-opmerking oanmeitsje
+ created_msg: Oanmeitsjen fan servermoderaasje-opmerking slagge!
+ description_html: Opmerkingen besjen en foar josele en oare moderatoaren efterlitte
+ destroyed_msg: Fuortsmiten fan servermoderaasje-opmerking slagge!
+ placeholder: Ynformaasje oer dizze server, nommen aksjes of wat oars dy’t jo helpe kinne om dizze server yn de takomst te moderearjen.
+ title: Moderaasje-opmerkingen
private_comment: Priveeopmerking
public_comment: Iepenbiere opmerking
purge: Folslein fuortsmite
@@ -786,17 +793,26 @@ fy:
title: Rollen
rules:
add_new: Rigel tafoegje
+ add_translation: Oersetting tafoegje
delete: Fuortsmite
description_html: Hoewol de measte minsken sizze dat se de brûksbetingsten lêzen hawwe en der mei akkoard gean, lêze minsken dizze meastentiids net oant dat der in probleem bard. Meitsje it ienfâldiger om de regels fan dizze server yn ien eachwink te sjen, troch se punt foar punt yn in list te setten. Probearje de ferskate regels koart en simpel te hâlden, mar probearje se ek net yn ferskate items ûnder te ferdielen.
edit: Rigel bewurkje
empty: Foar dizze server binne noch gjin regels opsteld.
+ move_down: Omleech ferpleatse
+ move_up: Omheech ferpleatse
title: Serverrigels
+ translation: Oersetting
+ translations: Oersettingen
+ translations_explanation: Jo kinne eventueel oersettingen tafoegje foar de regels. De standertwearde wurdt toand as der gjin oerstte ferzje beskikber is. Soargje der altyd foar dat oanfoljende oersettingen bywurke bliuwe.
settings:
about:
manage_rules: Serverregels beheare
preamble: Jou wiidweidige ynformaasje oer hoe’t de server beheard, modereare en finansiere wurdt.
rules_hint: Der is in spesjaal gebied foar regels wêr’t jo brûkers harren oan hâlde moatte.
title: Oer
+ allow_referrer_origin:
+ desc: Wannear’t jo brûkers op koppelingen nei eksterne websites klikke, kin harren browser it adres fan jo Mastodon-server as de referrer ferstjoere. Skeakelje dit út as dit jo brûkers unyk identifisearje soe, bygelyks as dit in persoanlike Mastodon-server is.
+ title: Eksterne websites tastean om jo Mastodon-server as de boarne te sjen
appearance:
preamble: Mastodon’s webomjouwing oanpasse.
title: Werjefte
@@ -816,6 +832,7 @@ fy:
discovery:
follow_recommendations: Oanrekommandearre accounts
preamble: It toanen fan ynteressante ynhâld is fan essinsjeel belang foar it oan board heljen fan nije brûkers dy’t mooglik net ien fan Mastodon kinne. Bepaal hoe’t ferskate funksjes foar it ûntdekken fan ynhâld en brûkers op jo server wurkje.
+ privacy: Privacy
profile_directory: Profylmap
public_timelines: Iepenbiere tiidlinen
publish_statistics: Statistiken publisearje
@@ -1332,6 +1349,10 @@ fy:
basic_information: Algemiene ynformaasje
hint_html: "Pas oan wat minsken op jo iepenbiere profyl en njonken jo berjochten sjogge. Oare minsken sille jo earder folgje en mei jo kommunisearje wannear’t jo profyl ynfolle is en jo in profylfoto hawwe."
other: Oars
+ emoji_styles:
+ auto: Automatysk
+ native: Systeemeigen
+ twemoji: Twemoji
errors:
'400': De oanfraach dy’t jo yntsjinne hawwe wie ûnjildich of fout.
'403': Jo hawwe gjin tastimming om dizze side te besjen.
@@ -1857,6 +1878,10 @@ fy:
limit: Jo hawwe it maksimaal tal berjochten al fêstmakke
ownership: In berjocht fan in oar kin net fêstmakke wurde
reblog: In boost kin net fêstset wurde
+ quote_policies:
+ followers: Folgers en fermelde brûkers
+ nobody: Allinnich fermelde brûkers
+ public: Elkenien
title: '%{name}: "%{quote}"'
visibilities:
direct: Direkt
@@ -1910,6 +1935,11 @@ fy:
does_not_match_previous_name: komt net oerien mei de foarige namme
terms_of_service:
title: Gebrûksbetingsten
+ terms_of_service_interstitial:
+ future_preamble_html: Wy bringe inkelde wizigingen oan yn ús gebrûksbetingsten, dy’t fan krêft wurde op %{date} . Wy rekommandearje jo oan om de bywurke betingsten troch te nimmen.
+ past_preamble_html: Wy hawwe ús gebrûksbetingsten wizige sûnt jo lêste besite. Wy rekommandearje jo oan om de bywurke betingsten troch te nimmen.
+ review_link: Gebrûksbetingsten besjen
+ title: De gebrûksbetingsten fan %{domain} wizigje
themes:
contrast: Mastodon (heech kontrast)
default: Mastodon (donker)
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index 223b0cd08db..c9e943c91c1 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -611,6 +611,13 @@ ga:
all: Uile
limited: Teoranta
title: Measarthacht
+ moderation_notes:
+ create: Cuir Nóta Modhnóireachta leis
+ created_msg: Cruthaíodh nóta modhnóireachta an cháis go rathúil!
+ description_html: Féach ar nótaí agus fág iad do mhodhnóirí eile agus do do dhuine féin sa todhchaí
+ destroyed_msg: Scriosadh nóta modhnóireachta an cháis go rathúil!
+ placeholder: Faisnéis faoin gcás seo, gníomhartha a rinneadh, nó aon rud eile a chabhróidh leat an cás seo a mhodhnú amach anseo.
+ title: Nótaí Modhnóireachta
private_comment: Trácht príobháideach
public_comment: Trácht poiblí
purge: Glan
@@ -1399,6 +1406,10 @@ ga:
basic_information: Eolas bunúsach
hint_html: "Saincheap a bhfeiceann daoine ar do phróifíl phoiblí agus in aice le do phostálacha. Is dóichí go leanfaidh daoine eile ar ais tú agus go n-idirghníomhóidh siad leat nuair a bhíonn próifíl líonta agus pictiúr próifíle agat."
other: Eile
+ emoji_styles:
+ auto: Uath
+ native: Dúchasach
+ twemoji: Twemoji
errors:
'400': Bhí an t-iarratas a chuir tú isteach neamhbhailí nó míchumtha.
'403': Níl cead agat an leathanach seo a fheiceáil.
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index 32cf7403e9c..f7791fe3544 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -600,6 +600,13 @@ gd:
all: Na h-uile
limited: Cuingichte
title: Maorsainneachd
+ moderation_notes:
+ create: Cuir ris nòta maorsainneachd
+ created_msg: Chaidh nòta maorsainneachd mun ionstans a chruthachadh!
+ description_html: Seall is sgrìobh nòtaichean do mhaoir eile is dhut fhèin san àm ri teachd
+ destroyed_msg: Chaidh nòta maorsainneachd mun ionstans a sguabadh às!
+ placeholder: Fiosrachadh mun ionstans seo, gnìomhan a chaidh a ghabhail no rud sam bith eile a chuidicheas thu le maorsainneachd an ionstans seo san àm ri teachd.
+ title: Nòtaichean na maorsainneachd
private_comment: Beachd prìobhaideach
public_comment: Beachd poblach
purge: Purgaidich
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 420e26e285e..d19d47ab26b 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -578,6 +578,13 @@ gl:
all: Todo
limited: Limitado
title: Moderación
+ moderation_notes:
+ create: Engadir nota de moderación
+ created_msg: Creouse correctamente a nota de moderación da instancia!
+ description_html: Ver e deixar notas de referencia para ti e outras moderadoras
+ destroyed_msg: Eliminouse correctamente a nota de moderación!
+ placeholder: Información sobre esta instancia, accións realizadas, ou calquera outra cousa que che axude no futuro a moderar esta instancia.
+ title: Notas de moderación
private_comment: Comentario privado
public_comment: Comentario público
purge: Purgar
@@ -1342,6 +1349,10 @@ gl:
basic_information: Información básica
hint_html: "Personaliza o que van ver no teu perfil público e ao lado das túas publicacións. As outras persoas estarán máis animadas a seguirte e interactuar contigo se engades algún dato sobre ti así como unha imaxe de perfil."
other: Outros
+ emoji_styles:
+ auto: Auto
+ native: Nativo
+ twemoji: Twemoji
errors:
'400': A solicitude que enviou non é válida ou ten formato incorrecto.
'403': Non ten permiso para ver esta páxina.
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 12287c72564..50711387649 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -600,6 +600,13 @@ he:
all: הכל
limited: מוגבלים
title: ניהול דיון
+ moderation_notes:
+ create: הוספת הערות מנחה דיונים
+ created_msg: הודעת מנחה לגבי שרת נוצרה בהצלחה!
+ description_html: צפייה והשארת הערות עבור מנחים אחרים או לעצמך לעתיד
+ destroyed_msg: הודעת מנחה לגבי שרת נמחקה בהצלחה!
+ placeholder: מידע לגבי שרת זה, פעולות שננקטו, או כל מידע אחר שיסייע לך להחליט כיצד למתן הודעות משרת זה בעתיד.
+ title: הודעות מנחה דיונים
private_comment: הערה פרטית
public_comment: תגובה פומבית
purge: טיהור
@@ -1380,6 +1387,10 @@ he:
basic_information: מידע בסיסי
hint_html: "התאמה אישית של מה שיראו אחרים בפרופיל הציבורי שלך וליד הודעותיך. אחרים עשויים יותר להחזיר עוקב וליצור אתך שיחה אם הפרופיל והתמונה יהיו מלאים."
other: אחר
+ emoji_styles:
+ auto: אוטומטי
+ native: מקומי
+ twemoji: Twemoji
errors:
'400': הבקשה שהגשת לא תקינה.
'403': חסרות לך הרשאות לצפיה בעמוד זה.
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index c224f5da4ac..b46062b2c7b 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -578,6 +578,13 @@ hu:
all: Mind
limited: Korlátozott
title: Moderáció
+ moderation_notes:
+ create: Moderátori megjegyzés hozzáadása
+ created_msg: A példány moderátori megjegyzése sikeresen létrehozva!
+ description_html: Megtekintés, és megjegyzések hagyása más moderátoroknak és saját magának
+ destroyed_msg: A példány moderátori megjegyzése sikeresen törölve!
+ placeholder: Információk erről a példányról, a végzett műveletekről vagy bármi másról, amely segít a példány jövőbeli moderációjában.
+ title: Moderátori megjegyzések
private_comment: Privát megjegyzés
public_comment: Nyilvános megjegyzés
purge: Végleges törlés
@@ -1342,6 +1349,10 @@ hu:
basic_information: Általános információk
hint_html: "Tedd egyedivé, mi látnak mások a profilodon és a bejegyzéseid mellett. Mások nagyobb eséllyel követnek vissza és lépnek veled kapcsolatba, ha van kitöltött profilod és profilképed."
other: Egyéb
+ emoji_styles:
+ auto: Automatikus
+ native: Natív
+ twemoji: Twemoji
errors:
'400': A küldött kérés érvénytelen vagy hibás volt.
'403': Nincs jogosultságod az oldal megtekintéséhez.
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 440df415c2f..5e33189cfb2 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -578,6 +578,13 @@ is:
all: Allt
limited: Takmarkað
title: Umsjón
+ moderation_notes:
+ create: Bæta við minnispunkti umsjónarmanns
+ created_msg: Tókst að útbúa minnispunkt umsjónarmanns!
+ description_html: Skoðaðu og skrifaðu minnispunkta til annarra stjórnenda og sjálfs þín
+ destroyed_msg: Tókst að eyða minnispunkti umsjónarmanns!
+ placeholder: Upplýsingar um þetta kerfistilvik, aðgerðir sem hafa verið framkvæmdar eða hvað það sem gæti hjálpað við umsjón með þessu tilviki í framtíðinni.
+ title: Minnispunktar umsjónarmanna
private_comment: Einkaathugasemd
public_comment: Opinber athugasemd
purge: Henda
@@ -1346,6 +1353,10 @@ is:
basic_information: Grunnupplýsingar
hint_html: "Sérsníddu hvað fólk sér á opinbera notandasniðinu þínu og næst færslunum þínum. Annað fólk er líklegra til að fylgjast með þér og eiga í samskiptum við þig ef þú fyllir út notandasniðið og setur auðkennismynd."
other: Annað
+ emoji_styles:
+ auto: Sjálfvirkt
+ native: Innbyggt
+ twemoji: Twemoji
errors:
'400': Beiðnin sem þú sendir er ógild eða rangt uppsett.
'403': Þú hefur ekki heimildir til að skoða þessari síðu.
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 26f1c2f168d..2bf9f656ba0 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -578,6 +578,13 @@ it:
all: Tutto
limited: Limitato
title: Moderazione
+ moderation_notes:
+ create: Aggiungi Nota di Moderazione
+ created_msg: Nota di moderazione dell'istanza creata con successo!
+ description_html: Visualizza e lascia note per altri moderatori e per il futuro te
+ destroyed_msg: Nota di moderazione dell'istanza eliminata con successo!
+ placeholder: Informazioni su questa istanza, azioni compiute, o qualsiasi cosa possa aiutarti a moderare questa istanza in futuro.
+ title: Note di Moderazione
private_comment: Commento privato
public_comment: Commento pubblico
purge: Ripulisci
@@ -1344,6 +1351,10 @@ it:
basic_information: Informazioni di base
hint_html: "Personalizza ciò che le persone vedono sul tuo profilo pubblico e accanto ai tuoi post. È più probabile che altre persone ti seguano e interagiscano con te quando hai un profilo compilato e un'immagine del profilo."
other: Altro
+ emoji_styles:
+ auto: Automatico
+ native: Nativo
+ twemoji: Twemoji
errors:
'400': La richiesta che hai inviato non è valida o non è corretta.
'403': Non sei autorizzato a visualizzare questa pagina.
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index a7ad9b356f6..e68c99e2f81 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -280,6 +280,7 @@ kab:
registrations:
confirm: Sentem
save: Sekles
+ sign_in: Qqen
title: FASP
follow_recommendations:
language: I tutlayt
@@ -383,6 +384,9 @@ kab:
updated_at: Yettwaleqqem
view_profile: Wali amaɣnu
roles:
+ assigned_users:
+ one: "%{count} n useqdac"
+ other: "%{count} n iseqdacen"
categories:
administration: Tadbelt
invites: Iɛeṛṛuḍen
@@ -395,16 +399,20 @@ kab:
view_dashboard: Timẓriwt n tfelwit
rules:
add_new: Rnu alugen
+ add_translation: Ad yernu tasuqilt
delete: Kkes
edit: Ẓreg alugen
empty: Mazal ur ttwasbadun ara yilugan n uqeddac.
title: Ilugan n uqeddac
+ translation: Tasuqilt
+ translations: Tisuqilin
settings:
about:
title: Ɣef
appearance:
title: Udem
discovery:
+ privacy: Tabaḍnit
profile_directory: Akaram n imaɣnuten
title: Asnirem
trends: Ayen mucaɛen
@@ -440,6 +448,10 @@ kab:
visibility: Abani
with_media: S umidya
system_checks:
+ elasticsearch_preset:
+ action: Wali tasemlit
+ elasticsearch_preset_single_node:
+ action: Wali tasemlit
rules_check:
action: Sefrek ilugan n uqeddac
software_version_critical_check:
@@ -601,6 +613,8 @@ kab:
basic_information: Talɣut tamatut
hint_html: "Mudd udem i wayen ttwalin medden deg umaɣnu-inek azayez ɣer yidis n yiznan-ik. Imdanen niḍen zemren ad k-ḍefren yernu ad gen assaɣ yid-k mi ara tesɛuḍ amaɣnu yeccuṛen ed tugna n umaɣnu."
other: Ayen nniḍen
+ emoji_styles:
+ auto: Awurman
errors:
'404': Asebter i tettnadiḍ ulac-it da.
'500':
@@ -835,6 +849,8 @@ kab:
one: "%{count} n tbidyutt"
other: "%{count} n tbidyutin"
edited_at_html: Tettwaẓreg ass n %{date}
+ quote_policies:
+ public: Yal yiwen
title: '%{name} : "%{quote}"'
visibilities:
direct: Usrid
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index c399723bd4f..66c16c899df 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -500,7 +500,7 @@ ko:
title: FASP 가입 확인
save: 저장
select_capabilities: 권한 선택
- sign_in: 가입
+ sign_in: 로그인
status: 상태
title: 연합우주 보조 서비스 제공자
title: FASP
@@ -569,6 +569,13 @@ ko:
all: 모두
limited: 제한
title: 중재
+ moderation_notes:
+ create: 중재 참고사항 추가
+ created_msg: 서버 중재 참고사항을 만들었습니다!
+ description_html: 확인하고 다른 중재자나 미래의 자신을 위해 참고사항을 작성합니다
+ destroyed_msg: 서버 중재 참고사항을 삭제했습니다!
+ placeholder: 이 인스턴스에 대한 정보, 취한 조치, 이후 이 서버를 중재하기 위해 도움이 될 어떤 것이든 좋습니다.
+ title: 중재 참고사항
private_comment: 비공개 주석
public_comment: 공개 주석
purge: 퍼지
@@ -1325,6 +1332,10 @@ ko:
basic_information: 기본 정보
hint_html: "사람들이 공개 프로필을 보고서 게시물을 볼 때를 위한 프로필을 꾸밉니다. 프로필과 프로필 사진을 채우면 다른 사람들이 나를 팔로우하고 나와 교류할 기회가 더 많아집니다."
other: 기타
+ emoji_styles:
+ auto: 자동
+ native: 시스템 기본
+ twemoji: 트웨모지
errors:
'400': 제출한 요청이 올바르지 않습니다.
'403': 이 페이지를 표시할 권한이 없습니다.
diff --git a/config/locales/lad.yml b/config/locales/lad.yml
index e3c14367b78..2a5f8cabd25 100644
--- a/config/locales/lad.yml
+++ b/config/locales/lad.yml
@@ -186,6 +186,7 @@ lad:
create_domain_block: Kriya bloko de domeno
create_email_domain_block: Kriya bloko de domeno de posta
create_ip_block: Kriya regla de IP
+ create_relay: Kriya relevo
create_unavailable_domain: Kriya domeno no desponivle
create_user_role: Kriya rolo
demote_user: Degrada utilizador
@@ -197,6 +198,7 @@ lad:
destroy_email_domain_block: Efasa bloko de domeno de posta
destroy_instance: Efasa domeno
destroy_ip_block: Efasa regla de IP
+ destroy_relay: Efasa relevo
destroy_status: Efasa publikasyon
destroy_unavailable_domain: Efasa domeno no desponivle
destroy_user_role: Efasa rolo
@@ -205,6 +207,7 @@ lad:
disable_sign_in_token_auth_user: Inkapasita la autentifikasyon por token de posta elektronika para el utilizador
disable_user: Inkapasita utilizador
enable_custom_emoji: Kapasita emoji personalizados
+ enable_relay: Aktiva relevo
enable_sign_in_token_auth_user: Kapasita la autentifikasyon por token de posta para el utilizador
enable_user: Kapasita utilizador
memorialize_account: Transforma en kuento komemorativo
@@ -229,6 +232,7 @@ lad:
update_custom_emoji: Aktualiza emoji personalizado
update_domain_block: Aktualiza bloko de domeno
update_ip_block: Aktualiza regla de IP
+ update_report: Aktualiza raporto
update_status: Aktualiza publikasyon
update_user_role: Aktualiza rolo
actions:
@@ -466,10 +470,13 @@ lad:
fasp:
debug:
callbacks:
+ created_at: Kriyado en
delete: Efasa
+ ip: Adreso IP
providers:
active: Aktivo
delete: Efasa
+ finish_registration: Finaliza enrejistrasyon
name: Nombre
registrations:
confirm: Konfirma
@@ -542,6 +549,12 @@ lad:
all: Todos
limited: Limitado
title: Moderasyon
+ moderation_notes:
+ create: Adjusta nota de moderasyon
+ created_msg: Nota de moderasyon de sirvidor kriyada kon sukseso!
+ description_html: Ve i desha notas a otros moderadores i a tu yo futuro
+ destroyed_msg: Nota de moderasyon de sirvidor efasada kon sukseso!
+ title: Notas de moderasyon
private_comment: Komento privado
public_comment: Komento publiko
purge: Purga
@@ -748,6 +761,7 @@ lad:
title: Rolos
rules:
add_new: Adjusta regla
+ add_translation: Adjusta traduksyon
delete: Efasa
description_html: Aunke la majorita afirma aver meldado i estar de akodro kon los terminos de servisyo, la djente normalmente no los melda asta dempues de ke surja algun problema. Az ke sea mas kolay ver las normas de tu sirvidor de un vistazo estipulándolas en una lista de puntos. Aprova ke kada norma sea corta i kolay, ama sin estar divididas en munchos puntos.
edit: Edita regla
@@ -920,6 +934,9 @@ lad:
updated_msg: Konfigurasyon de etiketas aktualizada kon sukseso
terms_of_service:
changelog: Ke troko
+ current: Aktual
+ generates:
+ action: Djenera
history: Istorya
live: En bivo
publish: Publika
@@ -1245,6 +1262,10 @@ lad:
basic_information: Enformasyon bazika
hint_html: "Personaliza lo ke la djente ve en tu profil publiko i kon tus publikasyones. Es mas probavle ke otras personas te sigan i enteraktuen kontigo kuando kompletas tu profil i foto."
other: Otros
+ emoji_styles:
+ auto: Otomatiko
+ native: Nativo
+ twemoji: Twemoji
errors:
'400': La solisitasyon ke enviates no fue valida o fue malformada.
'403': No tienes permiso para ver esta pajina.
diff --git a/config/locales/nan.yml b/config/locales/nan.yml
index ab65fb1bc22..317900e56ba 100644
--- a/config/locales/nan.yml
+++ b/config/locales/nan.yml
@@ -60,7 +60,7 @@ nan:
destroyed_msg: Teh-beh thâi掉 %{username} ê資料
disable: 冷凍
disable_sign_in_token_auth: 停止用電子phue ê token認證
- disable_two_factor_authentication: 停止用2FA
+ disable_two_factor_authentication: 停止用雙因素認證
disabled: 冷凍起來ah
display_name: 顯示ê名
domain: 域名
@@ -200,7 +200,7 @@ nan:
destroy_status: Thâi掉PO文
destroy_unavailable_domain: Thâi掉bē當用ê域名
destroy_user_role: Thâi掉角色
- disable_2fa_user: 停止用2FA
+ disable_2fa_user: 停止用雙因素認證
disable_custom_emoji: 停止用自訂ê Emoji
disable_relay: 停止用中繼
disable_sign_in_token_auth_user: 停止用使用者電子phue ê token認證
@@ -228,8 +228,186 @@ nan:
unsilence_account: 取消kā口座靜音
unsuspend_account: 取消停止口座ê權限
update_announcement: 更新公告
+ update_custom_emoji: 更新自訂ê Emoji
+ update_domain_block: 更新封鎖ê域名
+ update_ip_block: 更新IP規則
+ update_report: 更新檢舉
+ update_status: 更新PO文
+ update_user_role: 更新角色
actions:
+ approve_appeal_html: "%{name} 允准 %{target} 所寫ê tuì審核決定ê投訴"
+ approve_user_html: "%{name} 允准 %{target} ê 註冊"
+ assigned_to_self_report_html: "%{name} kā報告 %{target} 分配hōo家tī"
+ change_email_user_html: "%{name} 改變 %{target} ê電子phue地址"
+ change_role_user_html: "%{name} 改變 %{target} ê角色"
+ confirm_user_html: "%{name} 確認 %{target} ê電子phue地址"
+ create_account_warning_html: "%{name} 送警告hōo %{target}"
+ create_announcement_html: "%{name} kā公告 %{target} 建立ah"
+ create_canonical_email_block_html: "%{name} kā hash是 %{target} ê電子phue封鎖ah"
+ create_custom_emoji_html: "%{name} kā 新ê emoji %{target} 傳上去ah"
+ create_domain_allow_html: "%{name} 允准 %{target} 域名加入聯邦宇宙"
+ create_domain_block_html: "%{name} 封鎖域名 %{target}"
+ create_email_domain_block_html: "%{name} kā 電子phue域名 %{target} 封鎖ah"
+ create_ip_block_html: "%{name} 建立 IP %{target} ê規則"
+ create_relay_html: "%{name} 建立中繼 %{target}"
+ create_unavailable_domain_html: "%{name} 停止送kàu域名 %{target}"
+ create_user_role_html: "%{name} 建立 %{target} 角色"
+ demote_user_html: "%{name} kā用者 %{target} 降級"
+ destroy_announcement_html: "%{name} kā公告 %{target} thâi掉ah"
+ destroy_canonical_email_block_html: "%{name} kā hash是 %{target} ê電子phue取消封鎖ah"
+ destroy_custom_emoji_html: "%{name} kā 新ê emoji %{target} thâi掉ah"
+ destroy_domain_allow_html: "%{name} 無允准 %{target} 域名加入聯邦宇宙"
+ destroy_domain_block_html: "%{name} 取消封鎖域名 %{target}"
+ destroy_email_domain_block_html: "%{name} kā 電子phue域名 %{target} 取消封鎖ah"
+ destroy_instance_html: "%{name} 清除域名 %{target}"
+ destroy_ip_block_html: "%{name} thâi掉 IP %{target} ê規則"
+ destroy_relay_html: "%{name} thâi掉中繼 %{target}"
+ destroy_status_html: "%{name} kā %{target} ê PO文thâi掉"
+ destroy_unavailable_domain_html: "%{name} 恢復送kàu域名 %{target}"
+ destroy_user_role_html: "%{name} thâi掉 %{target} 角色"
+ disable_2fa_user_html: "%{name} 停止使用者 %{target} 用雙因素驗證"
+ disable_custom_emoji_html: "%{name} kā 新ê emoji %{target} 停止使用ah"
+ disable_relay_html: "%{name} 停止使用中繼 %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} 停止 %{target} 用電子phue ê token驗證"
+ disable_user_html: "%{name} kā 用者 %{target} 設做bē當登入"
+ enable_custom_emoji_html: "%{name} kā 新ê emoji %{target} 啟用ah"
+ enable_relay_html: "%{name} 啟用中繼 %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} 啟用 %{target} ê電子phue ê token驗證"
+ enable_user_html: "%{name} kā 用者 %{target} 設做允准登入"
+ memorialize_account_html: "%{name} kā %{target} 設做故人口座"
+ promote_user_html: "%{name} kā 用者 %{target} 升級"
+ publish_terms_of_service_html: "%{name} 公佈服務規則ê更新"
+ reject_appeal_html: "%{name} 拒絕 %{target} 所寫ê tuì審核決定ê投訴"
+ reject_user_html: "%{name} 拒絕 %{target} ê 註冊"
remove_avatar_user_html: "%{name} thâi掉 %{target} ê標頭"
+ reopen_report_html: "%{name} 重開 %{target} ê檢舉"
+ resend_user_html: "%{name} 重頭送確認phue hōo %{target}"
+ reset_password_user_html: "%{name} kā 用者 %{target} 重頭設密碼ah"
+ resolve_report_html: "%{name} 已經處理 %{target} ê檢舉"
+ sensitive_account_html: "%{name} kā %{target} ê媒體標做敏感ê內容"
+ silence_account_html: "%{name} 限制 %{target} ê口座"
+ suspend_account_html: "%{name} kā %{target} ê口座停止權限ah"
+ unassigned_report_html: "%{name} 取消分配 %{target} ê檢舉"
+ unblock_email_account_html: "%{name} 取消封鎖 %{target} ê電子phue地址"
+ unsensitive_account_html: "%{name} kā %{target} ê媒體取消標做敏感ê內容"
+ unsilence_account_html: "%{name} 取消限制 %{target} ê口座"
+ unsuspend_account_html: "%{name} kā %{target} ê口座恢復權限ah"
+ update_announcement_html: "%{name} kā公告 %{target} 更新ah"
+ update_custom_emoji_html: "%{name} kā 新ê emoji %{target} 更新ah"
+ update_domain_block_html: "%{name} kā %{target} ê域名封鎖更新ah"
+ update_ip_block_html: "%{name} 改變 IP %{target} ê規則"
+ update_report_html: "%{name} 更新 %{target} ê檢舉"
+ update_status_html: "%{name} kā %{target} ê PO文更新"
+ update_user_role_html: "%{name} 更改 %{target} 角色"
+ deleted_account: thâi掉ê口座
+ empty: Tshuē無log。
+ filter_by_action: 照動作過濾
+ filter_by_user: 照用者過濾
+ title: 審查日誌
+ unavailable_instance: "(域名bē當用)"
+ announcements:
+ back: 倒去公告
+ destroyed_msg: 公告成功thâi掉ah!
+ edit:
+ title: 編輯公告
+ empty: Tshuē無公告。
+ live: Teh公開
+ new:
+ create: 加添公告
+ title: 新ê公告
+ preview:
+ disclaimer: 因為用者bē當退出,電子批ê通知應該限制tī重要ê公告,比論個人資料洩出,á是關掉服侍器ê通知。
+ explanation_html: Tsit封email ē送hōo %{display_count} ê用者 。Email ē包括下跤ê文字:
+ title: 先kā公告通知看māi
+ publish: 公開
+ published_msg: 公告成功公佈ah!
+ scheduled_for: 排tī %{time}
+ scheduled_msg: 已經排好公告ê發布時間!
+ title: 公告
+ unpublish: 取消公佈
+ unpublished_msg: 公告成功取消ah!
+ updated_msg: 公告成功更新ah!
+ critical_update_pending: 愛處理ê重大更新
+ custom_emojis:
+ assign_category: 分配類別
+ by_domain: 域名
+ copied_msg: 成功kā emoji khóo-pih kàu本地
+ copy: Khóo-pih
+ copy_failed_msg: Bē當kā hit ê emoji khóo-pih kàu本地
+ create_new_category: 開新ê分類
+ created_msg: Emoji成功加添ah!
+ delete: Thâi掉
+ destroyed_msg: Emoji成功thâi掉ah!
+ disable: 停止使用
+ disabled: 停止使用ê
+ disabled_msg: Hit ê emoji成功停止使用ah
+ emoji: Emoji
+ enable: 啟用
+ enabled: 啟用ê
+ enabled_msg: Hit ê emoji成功啟用ah
+ image_hint: Sài-suh無超過 %{size} ê PNG á是 GIF
+ list: 列單
+ listed: 加入列單ah
+ new:
+ title: 加添新ê自訂emoji
+ no_emoji_selected: 因為無揀任何emoji,所以lóng無改變
+ not_permitted: Lí無允准行tsit ê動作
+ overwrite: Khàm掉
+ shortcode: 短碼
+ shortcode_hint: 字元上少2 ê,kan-ta接受字母、數字kap底線(_)
+ title: 自訂emoji
+ uncategorized: Iáu無分類
+ unlist: Tuì列單the̍h掉
+ unlisted: The̍h掉ah
+ update_failed_msg: Bē當更新hit ê emoji
+ updated_msg: Emoji成功更新ah!
+ upload: 傳上去
+ dashboard:
+ active_users: 活動ê用者
+ interactions: 互動
+ media_storage: 媒體儲存
+ new_users: 新用者
+ opened_reports: 拍開ê報告
+ pending_appeals_html:
+ other: "%{count} ê投訴愛處理"
+ pending_reports_html:
+ other: "%{count} ê檢舉愛處理"
+ pending_tags_html:
+ other: "%{count} ê hashtag愛處理"
+ pending_users_html:
+ other: "%{count} ê用者愛處理"
+ resolved_reports: 解決ê報告
+ software: 軟體
+ sources: 註冊ê源頭
+ space: 空間ê使用
+ title: Le-jí-páng (dashboard)
+ top_languages: 上tsia̍p出現ê語言
+ top_servers: 上tsia̍p活動ê服侍器
+ website: 網站
+ disputes:
+ appeals:
+ empty: Tshuē無投訴。
+ title: 投訴
+ domain_allows:
+ add_new: 允准kap tsit ê域名相連
+ created_msg: 域名已經成功允准相連
+ destroyed_msg: 域名已經成功取消相連
+ export: 輸出
+ import: 輸入
+ undo: 禁止kap tsit ê域名相連
+ domain_blocks:
+ add_new: 加添新ê封鎖域名
+ confirm_suspension:
+ cancel: 取消
+ confirm: 中止權限
+ permanent_action: 取消中止權限,bē當復原任何資料á是關係。
+ preamble_html: Lí teh beh停止 %{domain} kap伊ê kiánn域名ê權限。
+ remove_all_data: Tse ē tī lí ê服侍器內底,kā tuì tsit ê域名ê口座來ê所有內容、媒體kap個人資料lóng thâi掉。
+ stop_communication: Lí ê服侍器ē停止kap hia ê服侍器聯絡。
+ title: 確認封鎖域名 %{domain}
+ edit: 編輯域名封鎖
+ export: 輸出
+ import: 輸入
instances:
dashboard:
instance_languages_dimension: Tsia̍p用ê語言
@@ -243,6 +421,8 @@ nan:
too_soon: Tio̍h用未來ê日期。
statuses:
default_language: Kap界面ê語言sio kâng
+ two_factor_authentication:
+ disable: 停止用雙因素認證
user_mailer:
welcome:
feature_creativity: Mastodon支持聲音、影kap圖片êPO文、容易使用性ê描述、投票、內容ê警告、動畫ê標頭、自訂ê繪文字kap裁縮小圖ê控制等等,幫tsān lí展現家己。無論beh發表藝術作品、音樂,á是podcast,Mastodon佇tsia為lí服務。
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 246642109e6..b53aa68a652 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -578,6 +578,13 @@ nl:
all: Alles
limited: Beperkt
title: Moderatie
+ moderation_notes:
+ create: Moderatie-opmerking aanmaken
+ created_msg: Aanmaken van servermoderatie-opmerking geslaagd!
+ description_html: Opmerkingen bekijken, en voor jezelf en andere moderatoren achterlaten
+ destroyed_msg: Verwijderen van servermoderatie-opmerking geslaagd!
+ placeholder: Informatie over deze server, genomen acties of iets anders die jou kunnen helpen om deze server in de toekomst te modereren.
+ title: Moderatie-opmerkingen
private_comment: Privé-opmerking
public_comment: Openbare opmerking
purge: Volledig verwijderen
@@ -683,7 +690,7 @@ nl:
delete: Verwijderen
placeholder: Beschrijf welke maatregelen zijn genomen of andere gerelateerde opmerkingen...
title: Opmerkingen
- notes_description_html: Bekijk en laat opmerkingen achter voor andere moderatoren en voor jouw toekomstige zelf
+ notes_description_html: Opmerkingen bekijken, en voor jezelf en andere moderatoren achterlaten
processed_msg: 'Rapportage #%{id} succesvol afgehandeld'
quick_actions_description_html: 'Neem een snelle maatregel of scroll naar beneden om de gerapporteerde inhoud te bekijken:'
remote_user_placeholder: de externe gebruiker van %{instance}
@@ -1342,6 +1349,10 @@ nl:
basic_information: Algemene informatie
hint_html: "Wat mensen op jouw openbare profiel en naast je berichten zien aanpassen. Andere mensen gaan je waarschijnlijk eerder volgen en hebben vaker interactie met je, wanneer je profiel is ingevuld en je een profielfoto hebt."
other: Overige
+ emoji_styles:
+ auto: Auto
+ native: Systeemeigen
+ twemoji: Twemoji
errors:
'400': De aanvraag die je hebt ingediend was ongeldig of foutief.
'403': Jij hebt geen toestemming om deze pagina te bekijken.
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index e52768469db..7e3b453371f 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -578,6 +578,13 @@ nn:
all: Alle
limited: Avgrensa
title: Moderasjon
+ moderation_notes:
+ create: Legg til modereringsnotat
+ created_msg: Moderatormerknad for nettstaden er laga!
+ description_html: Sjå og skriv merknader til andre moderatorar og til framtidig bruk
+ destroyed_msg: Moderatormerknaden for nettstaden er sletta!
+ placeholder: Informasjon om denne nettstaden, kva du har gjort, eller andre opplysingar som kan hjelpa deg å moderera denne nettstaden i framtida.
+ title: Moderasjonsmerknader
private_comment: Privat kommentar
public_comment: Offentleg kommentar
purge: Reinse
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 27d2c860e18..1e630275ce8 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -578,6 +578,8 @@ pt-BR:
all: Todos
limited: Limitados
title: Moderação
+ moderation_notes:
+ title: Notas de Moderação
private_comment: Comentário privado
public_comment: Comentário público
purge: Limpar
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index 2ac66086178..b74119f4e33 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -578,6 +578,13 @@ pt-PT:
all: Todas
limited: Limitadas
title: Moderação
+ moderation_notes:
+ create: Adicionar Nota de Moderação
+ created_msg: Nota de moderação da instância criada com sucesso!
+ description_html: Ver e deixar notas para outros moderadores e para referência futura
+ destroyed_msg: Nota de moderação da instância eliminada com sucesso!
+ placeholder: Informações sobre esta instância, ações tomadas ou qualquer outra informação que o ajude na moderação desta instância no futuro.
+ title: Notas de Moderação
private_comment: Comentário privado
public_comment: Comentário público
purge: Purgar
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index bb9d274a479..7160bb0a2eb 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1,10 +1,10 @@
---
ru:
about:
- about_mastodon_html: 'Социальная сеть будущего: никакой рекламы, слежки корпорациями, этичный дизайн и децентрализация! С Mastodon ваши данные под вашим контролем.'
- contact_missing: не указан
- contact_unavailable: Н/Д
- hosted_on: Вы получили это сообщение, так как зарегистрированы на %{domain}
+ about_mastodon_html: 'Социальная сеть будущего: никакой рекламы или слежки со стороны корпораций, этичный дизайн и децентрализация! С Mastodon ваши данные находятся только под вашим контролем!'
+ contact_missing: Не указано
+ contact_unavailable: N/A
+ hosted_on: Сервер Mastodon на домене %{domain}
title: О проекте
accounts:
followers:
@@ -18,12 +18,12 @@ ru:
link_verified_on: Владение этой ссылкой было проверено %{date}
nothing_here: Здесь ничего нет!
pin_errors:
- following: Чтобы порекомендовать кого-то, надо сначала на них подписаться
+ following: Можно рекомендовать в своём профиле только тех пользователей, на которых вы подписаны
posts:
few: поста
- many: статусов
- one: Пост
- other: статусов
+ many: постов
+ one: пост
+ other: постов
posts_tab_heading: Посты
self_follow_error: Нельзя подписаться на самого себя
admin:
@@ -340,43 +340,43 @@ ru:
custom_emojis:
assign_category: Задать категорию
by_domain: Домен
- copied_msg: Локальная копия эмодзи успешно создана
+ copied_msg: Локальная копия эмодзи создана
copy: Копировать
copy_failed_msg: Не удалось создать локальную копию эмодзи
create_new_category: Создать новую категорию
- created_msg: Эмодзи успешно создано!
+ created_msg: Эмодзи добавлен!
delete: Удалить
- destroyed_msg: Эмодзи успешно удалено!
+ destroyed_msg: Эмодзи удалён!
disable: Отключить
- disabled: Отключено
- disabled_msg: Эмодзи успешно отключено
+ disabled: Отключён
+ disabled_msg: Эмодзи отключён
emoji: Эмодзи
enable: Включить
- enabled: Включено
- enabled_msg: Эмодзи успешно включено
- image_hint: PNG или GIF до %{size}
- list: Список
+ enabled: Включён
+ enabled_msg: Эмодзи включён
+ image_hint: Поддерживаются файлы PNG или GIF размером не более %{size}
+ list: В список
listed: В списке
new:
title: Добавить новый эмодзи
- no_emoji_selected: Не было изменено ни одного эмодзи
- not_permitted: У вас нет прав для совершения данного действия
+ no_emoji_selected: Ни один эмодзи не был изменён, поскольку не было отмечено ни одного эмодзи
+ not_permitted: У вас недостаточно прав для выполнения этого действия
overwrite: Заменить
shortcode: Краткий код
- shortcode_hint: Как минимум 2 символа, только алфавитно-цифровые символы и подчеркивания
+ shortcode_hint: Краткий код должен состоять минимум из 2 символов. Можно использовать только буквы, цифры и символы подчёркивания
title: Эмодзи
uncategorized: Вне категорий
- unlist: Убрать
+ unlist: Из списка
unlisted: Не в списке
- update_failed_msg: Невозможно обновить этот эмодзи
+ update_failed_msg: Не удалось обновить эмодзи
updated_msg: Эмодзи обновлён!
upload: Загрузить
dashboard:
active_users: активные пользователи
interactions: взаимодействия
- media_storage: Медиа файлы
+ media_storage: Хранилище медиа
new_users: новые пользователи
- opened_reports: жалоб открыто
+ opened_reports: новые жалобы
pending_appeals_html:
few: "%{count} ожидают аппеляции"
many: "%{count} ожидают апелляции"
@@ -400,10 +400,10 @@ ru:
resolved_reports: жалоб решено
software: Программное обеспечение
sources: Источники регистрации
- space: Использовано места
- title: Панель управления
- top_languages: Самые активные языки
- top_servers: Самые активные серверы
+ space: Используемое пространство
+ title: Обзор
+ top_languages: Рейтинг языков по активности
+ top_servers: Рейтинг серверов по активности
website: Веб-сайт
disputes:
appeals:
@@ -1154,43 +1154,43 @@ ru:
title: Популярные хэштеги
subject: Новые тренды для проверки на %{instance}
aliases:
- add_new: Создать псевдоним
- created_msg: Новый псевдоним установлен. Теперь мы можете начать миграцию со старой учётной записи.
- deleted_msg: Псевдоним успешно удалён. Миграция старой учётной записи в текущую более невозможна.
- empty: У вас нет псевдонимов.
- hint_html: Если вы собираетесь мигрировать с другой учётной записи на эту, вы можете настроить псевдоним, что требуется для переноса подписчиков со старой учётной записи. Это действие само по себе безвредно и обратимо . Миграция учётной записи начинается со старой учётной записи .
- remove: Отвязать псевдоним
+ add_new: Связать учётные записи
+ created_msg: Связанная учётная запись добавлена. Теперь вы можете начать переезд со старой учётной записи.
+ deleted_msg: Учётная запись отвязана. Переезд со старой учётной записи на текущую более невозможен.
+ empty: Вы ещё не добавили ни одной связанной учётной записи.
+ hint_html: Если вы собираетесь переехать с другой учётной записи на эту, то, прежде чем вы сможете перенести подписчиков со старой учётной записи, вы должны связать учётные записи здесь. Это действие само по себе безвредно и обратимо. Начать переезд можно только со старой учётной записи.
+ remove: Отвязать учётную запись
appearance:
advanced_web_interface: Многоколоночный интерфейс
- advanced_web_interface_hint: 'Если вы хотите использовать всю ширину экрана, многоколоночный веб-интерфейс позволяет настроить множество различных столбцов и видеть столько информации, сколько вы захотите: главную ленту, уведомления, глобальную ленту, неограниченное количество списков и хэштегов.'
+ advanced_web_interface_hint: 'Многоколоночный интерфейс даёт возможность использовать всю ширину экрана, позволяя вам обозревать столько информации, сколько вы захотите. Вы можете добавить множество различных столбцов: главную ленту, уведомления, глобальную ленту, неограниченное количество списков и хештегов.'
animations_and_accessibility: Анимации и доступность
- confirmation_dialogs: Окна подтверждений
- discovery: Обзор
+ confirmation_dialogs: Диалоговые окна подтверждений
+ discovery: Актуальное
localization:
body: Mastodon переводится добровольцами.
- guide_link: https://ru.crowdin.com/project/mastodon
+ guide_link: https://ru.crowdin.com/project/mastodon/ru
guide_link_text: Каждый может внести свой вклад.
sensitive_content: Содержимое деликатного характера
application_mailer:
- notification_preferences: Изменение предпочтений электронной почты
- salutation: "%{name},"
- settings: 'Измените настройки электронной почты: %{link}'
+ notification_preferences: Настроить оповещения по электронной почте
+ salutation: Привет, %{name}!
+ settings: 'Настроить оповещения по электронной почте можно здесь: %{link}'
unsubscribe: Отписаться
- view: 'Просмотр:'
- view_profile: Просмотреть профиль
- view_status: Просмотреть пост
+ view: 'Открыть в браузере:'
+ view_profile: Перейти к профилю
+ view_status: Открыть пост
applications:
- created: Приложение успешно создано
- destroyed: Приложение успешно удалено
+ created: Приложение создано
+ destroyed: Приложение удалено
logout: Выйти
- regenerate_token: Повторно сгенерировать токен доступа
- token_regenerated: Токен доступа успешно сгенерирован
+ regenerate_token: Сгенерировать новый токен доступа
+ token_regenerated: Новый токен доступа сгенерирован
warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем!
- your_token: Ваш токен доступа
+ your_token: Токен доступа
auth:
- apply_for_account: Запросить аккаунт
+ apply_for_account: Отправить заявку на регистрацию
captcha_confirmation:
- help_html: Если у вас есть проблемы с CAPTCHA, вы можете связаться с нами через %{email} и мы вам поможем.
+ help_html: Если у вас возникли трудности с решением CAPTCHA, напишите нам по адресу %{email}, и мы вам поможем.
hint_html: Еще одна вещь! Нам нужно подтвердить, что вы человек (так что мы можем держать спам!). Решите капчу ниже и нажмите кнопку «Продолжить».
title: Проверка безопасности
confirmations:
@@ -1204,81 +1204,81 @@ ru:
welcome_title: Добро пожаловать, %{name}!
wrong_email_hint: Если этот адрес электронной почты неверен, вы можете изменить его в настройках аккаунта.
delete_account: Удалить учётную запись
- delete_account_html: Удалить свою учётную запись можно в два счёта здесь , но прежде у вас будет спрошено подтверждение.
+ delete_account_html: Вы можете удалить свою учётную запись . Перед удалением у вас будет запрошено подтверждение.
description:
- prefix_invited_by_user: "@%{name} приглашает вас присоединиться к этому узлу Mastodon."
- prefix_sign_up: Зарегистрируйтесь в Mastodon уже сегодня!
- suffix: С учётной записью вы сможете подписываться на людей, публиковать обновления, обмениваться сообщениями с пользователями любых сообществ Mastodon и не только!
- didnt_get_confirmation: Не получили ссылку для подтверждения?
+ prefix_invited_by_user: Вы получили приглашение на сервер Mastodon от @%{name}!
+ prefix_sign_up: Зарегистрируйтесь в Mastodon прямо сейчас!
+ suffix: С учётной записью вы сможете подписываться на людей, публиковать посты и обмениваться сообщениями с пользователями любого сервера Mastodon — и не только!
+ didnt_get_confirmation: Не получили письмо со ссылкой для подтверждения?
dont_have_your_security_key: У вас нет ключа безопасности?
forgot_password: Забыли пароль?
- invalid_reset_password_token: Токен сброса пароля неверен или устарел. Пожалуйста, запросите новый.
+ invalid_reset_password_token: Токен сброса пароля недействителен либо устарел. Пожалуйста, повторите запрос на восстановление пароля.
link_to_otp: Введите двухфакторный код с телефона или код восстановления
link_to_webauth: Используйте устройство с ключом безопасности
- log_in_with: Войти используя
+ log_in_with: Войдите с помощью
login: Войти
logout: Выйти
- migrate_account: Перенос учётной записи
- migrate_account_html: Завели новую учётную запись? Перенаправьте подписчиков на неё — настройте перенаправление тут .
- or_log_in_with: Или войти с помощью
+ migrate_account: Переезд на новую учётную запись
+ migrate_account_html: Вы можете создать перенаправление с этой учётной записи на другую вашу учётную запись.
+ or_log_in_with: Или войдите с помощью
progress:
- confirm: Подтвердите электронную почту
- details: Ваши данные
- review: Наш обзор
- rules: Принять правила
+ confirm: Проверка адреса эл. почты
+ details: Учётные данные
+ review: Одобрение заявки
+ rules: Правила
providers:
cas: CAS
saml: SAML
register: Зарегистрироваться
registration_closed: "%{instance} не принимает новых участников"
- resend_confirmation: Повторно отправить ссылку подтверждения
+ resend_confirmation: Отправить письмо повторно
reset_password: Сбросить пароль
rules:
accept: Принять
back: Назад
- invited_by: 'Вы можете присоединиться к %{domain} благодаря приглашению полученному от:'
- preamble: Они устанавливаются и применяются модераторами %{domain}.
+ invited_by: 'Вы можете зарегистрироваться на сервере %{domain}, потому что вы получили приглашение от:'
+ preamble: Модераторы сервера %{domain} установили эти правила и следят за их исполнением.
preamble_invited: Прежде чем продолжить, ознакомьтесь с основными правилами, установленными модераторами сервера %{domain}.
title: Несколько основных правил.
- title_invited: Вы были приглашены.
+ title_invited: Вы получили приглашение.
security: Безопасность
- set_new_password: Задать новый пароль
+ set_new_password: Сменить пароль
setup:
- email_below_hint_html: Проверьте папку "Спам" или запросите другую. Вы можете исправить свой адрес электронной почты, если он неправильный.
- email_settings_hint_html: Чтобы начать пользоваться Mastodon, пройдите по ссылке, которую мы отправили на %{email}. А мы пока подождём тут.
- link_not_received: Не получили ссылку?
+ email_below_hint_html: Проверьте папку «Спам» или нажмите на кнопку ниже, чтобы выслать письмо повторно. Вы можете исправить свой адрес электронной почты, если вы ввели его неверно.
+ email_settings_hint_html: Чтобы начать пользоваться Mastodon, перейдите по ссылке, которую мы отправили на адрес %{email}.
+ link_not_received: Не приходит письмо?
new_confirmation_instructions_sent: Через несколько минут вы получите новое письмо со ссылкой для подтверждения!
- title: Проверьте свой почтовый ящик
+ title: Проверьте свою почту
sign_in:
- preamble_html: Войдите, используя ваши учётные данные %{domain} . Если ваша учётная запись размещена на другом сервере, вы не сможете здесь войти.
- title: Войти в %{domain}
+ preamble_html: Введите здесь данные своей учётной записи на сервере %{domain} , чтобы войти. Вы не сможете войти, если ваша учётная запись размещена на другом сервере.
+ title: Авторизация на %{domain}
sign_up:
- manual_review: Регистрация на %{domain} проходит через ручную проверку нашими модераторами. Чтобы помочь нам обработать вашу регистрацию, напишите немного о себе и о том, почему вы хотите получить аккаунт на %{domain}.
- preamble: С учётной записью на этом сервере Mastodon вы сможете подписываться на всех других людей в федиверсе вне зависимости от того, где находятся их учётные записи.
- title: Зарегистрируйтесь в %{domain}.
+ manual_review: На сервере %{domain} все заявки на регистрацию проверяются модераторами вручную. Чтобы помочь нам принять решение в отношении вашей заявки, напишите немного о себе и о том, почему вы хотите создать учётную запись на сервере %{domain}.
+ preamble: С учётной записью на этом сервере Mastodon вы сможете подписываться на всех других людей в федивёрсе вне зависимости от того, где размещены их учётные записи.
+ title: Создайте учётную запись на сервере %{domain}.
status:
- account_status: Статус учётной записи
- confirming: Жду подтверждения по электронной почте.
+ account_status: Состояние учётной записи
+ confirming: Ожидание подтверждения e-mail.
functional: Ваша учётная запись в полном порядке.
- pending: Ваша заявка находится на рассмотрении у наших сотрудников. Это может занять некоторое время. Вы получите электронное письмо, если ваша заявка будет одобрена.
+ pending: Ваша заявка ожидает одобрения администраторами, это может занять немного времени. Вы получите письмо, как только заявку одобрят.
redirecting_to: Ваша учётная запись деактивированна, потому что вы настроили перенаправление на %{acct}.
self_destruct: Поскольку %{domain} закрывается, вы получите ограниченный доступ к вашей учетной записи.
view_strikes: Просмотр предыдущих замечаний в адрес вашей учетной записи
too_fast: Форма отправлена слишком быстро, попробуйте еще раз.
use_security_key: Использовать ключ безопасности
- user_agreement_html: Мной прочитаны и принятыпользовательское соглашение и политика конфиденциальности
+ user_agreement_html: Мной прочитаны и приняты пользовательское соглашение и политика конфиденциальности
user_privacy_agreement_html: Мной прочитана и принята политика конфиденциальности
author_attribution:
- example_title: Образец текста
- hint_html: Публикуете ли вы свои статьи где-либо ещё кроме Mastodon? Если да, то ваше авторство может быть упомянуто, когда ими делятся в Mastodon.
- instructions: 'Добавьте код ниже в HTML ваших статей:'
- more_from_html: Больше от %{name}
- s_blog: "%{name}'S Блог"
- then_instructions: Затем добавьте доменное имя сайта, где вы публикуетесь, в поле ниже.
- title: Авторская атрибуция
+ example_title: Пример текста
+ hint_html: Вы пишете статьи для новостных сайтов или ведёте блог где-либо ещё помимо Mastodon? Ваше авторство может быть упомянуто всякий раз, когда вашими статьями делятся в Mastodon.
+ instructions: 'Добавьте следующий код в HTML-разметку ваших статей:'
+ more_from_html: 'Автор: %{name}'
+ s_blog: "%{name} ведёт блог"
+ then_instructions: Затем впишите доменное имя сайта, где вы публикуетесь, в поле ниже.
+ title: Упоминание авторства
challenge:
confirm: Продолжить
- hint_html: "Подсказка : мы не будем спрашивать пароль повторно в течение часа."
+ hint_html: "Подсказка: В течение часа вам не придётся снова вводить свой пароль."
invalid_password: Неверный пароль
prompt: Введите пароль для продолжения
crypto:
@@ -1585,9 +1585,9 @@ ru:
'21600': 6 часов
'3600': 1 час
'43200': 12 часов
- '604800': 1 неделю
+ '604800': 1 неделя
'86400': 1 день
- expires_in_prompt: Никогда
+ expires_in_prompt: Бессрочно
generate: Сгенерировать
invalid: Это приглашение недействительно
invited_by: 'Вас пригласил(а):'
@@ -1642,7 +1642,7 @@ ru:
not_found: не удалось найти
on_cooldown: Вы пока не можете переезжать
followers_count: Подписчиков на момент переезда
- incoming_migrations: Переезд с другой учётной записи
+ incoming_migrations: Переезд со старой учётной записи
incoming_migrations_html: Переезжаете с другой учётной записи? Настройте псевдоним для переноса подписчиков.
moved_msg: Теперь ваша учётная запись перенаправляет к %{acct}, туда же перемещаются подписчики.
not_redirecting: Для вашей учётной записи пока не настроено перенаправление.
@@ -1733,15 +1733,15 @@ ru:
polls:
errors:
already_voted: Вы уже голосовали в этом опросе
- duplicate_options: содержит одинаковые варианты
- duration_too_long: слишком далеко в будущем
- duration_too_short: слишком короткий срок
+ duplicate_options: не должны повторяться
+ duration_too_long: слишком велика
+ duration_too_short: слишком мала
expired: Опрос уже завершился
invalid_choice: Выбранного варианта голосования не существует
- over_character_limit: каждый не вариант не может быть длиннее %{max} символов
+ over_character_limit: не должны превышать %{max} символов
self_vote: Вы не можете голосовать в своих опросах
- too_few_options: должно быть больше 1 варианта
- too_many_options: может содержать не больше %{max} вариантов
+ too_few_options: должны содержать не меньше двух опций
+ too_many_options: должны ограничиваться максимум %{max} опциями
preferences:
other: Остальное
posting_defaults: Настройки отправки по умолчанию
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index 45b1be79b75..8c2430a7efb 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -3,12 +3,14 @@ ar:
simple_form:
hints:
account:
+ attribution_domains: واحد لكل سطر. للحماية من الإسنادات الخاطئة.
discoverable: يمكن عرض مشاركاتك العامة وملفك الشخصي أو التوصية به في مختلف مناطق ماستدون ويمكن اقتراح ملفك الشخصي على مستخدمين آخرين.
display_name: اسمك الكامل أو اسمك المرح.
fields: صفحتك الرئيسية، ضمائرك، عمرك، أي شيء تريده.
indexable: قد تظهر منشوراتك الموجهة للعامة في نتائج البحث على ماستدون. فالأشخاص الذين تفاعلوا مع منشوراتك قد يكون بمقدورهم البحث عنها بغظ النظر عن ذلك.
note: 'يمكنك @ذكر أشخاص آخرين أو استعمال #الوسوم.'
show_collections: سيستطيع الناس من تصفح متابعيك و متابعاتك. سيرى الأشخاص الذين تتبعهم أنك تتبعهم دون أي شك.
+ unlocked: سيتمكن الآخرون من متابعتك دون طلب الموافقة. قم بتعطيله إن كنت ترغب في مراجعة تلك الطلبات يدوياً باختيار قبول أو رفض المتابعين الجدد.
account_alias:
acct: ادخِل عنون الحساب username@domain الذي تودّ مغادرته
account_migration:
@@ -54,10 +56,12 @@ ar:
scopes: ما هي المجالات المسموح بها في التطبيق ؟ إن قمت باختيار أعلى المجالات فيمكنك الاستغناء عن الخَيار اليدوي.
setting_aggregate_reblogs: لا تقم بعرض المشارَكات الجديدة لمنشورات قد قُمتَ بمشاركتها سابقا (هذا الإجراء يعني المشاركات الجديدة فقط التي تلقيتَها)
setting_always_send_emails: عادة لن تُرسَل إليك إشعارات البريد الإلكتروني عندما تكون نشطًا على ماستدون
+ setting_default_quote_policy: يسمح بالاقتباس دائما للمستخدمين المذكورين. هذا الإعداد سوف يكون نافذ المفعول فقط للمشاركات التي تم إنشاؤها مع إصدار ماستدون القادم، ولكن يمكنك تحديد تفضيلاتك للإعداد لذلك
setting_default_sensitive: تُخفى الوسائط الحساسة تلقائيا ويمكن اظهارها عن طريق النقر عليها
setting_display_media_default: إخفاء الوسائط المُعيَّنة كحساسة
setting_display_media_hide_all: إخفاء كافة الوسائط دائمًا
setting_display_media_show_all: دائمًا عرض الوسائط المُعيَّنة كحساسة
+ setting_system_scrollbars_ui: ينطبق فقط على متصفحات سطح المكتب البنية على محرك كروم وسفاري
setting_use_blurhash: الألوان التدرّجية مبنية على ألوان المرئيات المخفية ولكنها تحجب كافة التفاصيل
setting_use_pending_items: إخفاء تحديثات الخط وراء نقرة بدلًا مِن التمرير التلقائي للموجزات
username: يمكنك استخدام الأحرف والأرقام والسطور السفلية
@@ -72,6 +76,7 @@ ar:
filters:
action: اختر الإجراء الذي سينفذ عند تطابق المشاركة فلتر التصفية
actions:
+ blur: إخفاء الوسائط وراء تحذير، دون إخفاء النص نفسه
hide: إخفاء المحتويات التي تم تصفيتها، والتصرف كما لو أنها غير موجودة
warn: إخفاء المحتوى الذي تم تصفيته خلف تحذير يذكر عنوان الفلتر
form_admin_settings:
@@ -85,6 +90,7 @@ ar:
favicon: WEBP أو PNG أو GIF أو JPG. يتجاوز أيقونة التطبيق المفضلة الافتراضية مع أيقونة مخصصة.
mascot: تجاوز الرسوم التوضيحية في واجهة الويب المتقدمة.
media_cache_retention_period: ملفات الوسائط من المنشورات التي يقوم بها المستخدمون البعيدون يتم تخزينها في خادمك. عند التعيين إلى قيمة موجبة، سيتم حذف الوسائط بعد عدد الأيام المحدد. إذا كانت بيانات الوسائط مطلوبة بعد حذفها، فسيتم إعادة تحميلها إذا كان محتوى المصدر لا يزال متاحًا. بسبب القيود المفروضة على عدد المرات التي يتم فيها ربط بطاقات المعاينة لمواقع الطرف الثالث، يوصى بتعيين هذه القيمة إلى 14 يوماً على الأقل، أو لن يتم تحديث بطاقات معاينة الرابط عند الطلب قبل ذلك الوقت.
+ min_age: سوف يطلب من المستخدمين تأكيد تاريخ ميلادهم أثناء التسجيل
peers_api_enabled: قائمة بأسماء النطاقات التي صادفها هذا الخادم في الفدرالية. لا توجد بيانات هنا حول ما إذا كنت تتحد مع خادم معين، فقط أن خادمك يعرف عنها. ويستخدم هذا الخدمات التي تجمع الإحصاءات المتعلقة بالاتحاد بشكل عام.
profile_directory: دليل الملف الشخصي يسرد جميع المستخدمين الذين اختاروا الدخول ليكونوا قابلين للاكتشاف.
require_invite_text: عندما تتطلب التسجيلات الموافقة اليدوية، اجعل إدخال النص "لماذا تريد الانضمام ؟" إلزاميا بدلا من اختياري
@@ -127,8 +133,30 @@ ar:
show_application: سوف تكون دائماً قادراً على رؤية التطبيق الذي نشر مشاركتك بغض النظر عن ذلك.
tag:
name: يمكنك فقط تغيير غلاف الحروف ، على سبيل المثال ، لجعلها أكثر قابلية للقراءة
+ terms_of_service:
+ changelog: يمكن أن يتم هيكلتها بصيغة Markdown.
+ effective_date: يتراوح الإطار الزمني المعقول بين 10 و 30 يوما من تاريخ إخطار المستخدمين الخاص بك.
+ text: يمكن أن يتم هيكلتها بصيغة Markdown.
+ terms_of_service_generator:
+ admin_email: تشمل الإشعارات القانونية الإشعارات المضادة، وأوامر المحكمة، والطلبات الإزالة، وطلبات إنفاذ القوانين.
+ arbitration_address: يمكن أن يكون نفس العنوان البريدي، أو "لا ينطبق" إذا تستخدم بريد الإلكتروني.
+ arbitration_website: يمكن أن يكون نموذج ويب أو "لا ينطبق" إذا تستخدم بريد الإلكتروني.
+ choice_of_law: المدينة أو المنطقة أو الإقليم أو الدولة التي تحكم قوانينها أي مطالبة قانونية.
+ dmca_address: بالنسبة للمشغلين في الولايات المتحدة، استخدم العنوان المسجل في دليل الوكيل المعين لشركة DMCA. قائمة الصندوق بريد متاحة بناء على طلب مباشر. استخدم طلب تنازل وكيل معين لمكتب البريد في البريد الإلكتروني لمكتب حقوق الطبع والنشر ووصف أنك مشرف محتوى من المنزل يخشى الانتقام أو الانتقام من أفعالك ويحتاج إلى استخدام صندوق بريد لإزالة عنوان المنزل الخاص بك من العرض العام.
+ dmca_email: يمكن أن يكون نفس البريد الإلكتروني المستخدم في حقل "عنوان البريد الإلكتروني للإشعارات القانونية" أعلاه.
+ domain: المعرف المميز للخدمة الإلكترونية التي تقدمها.
+ jurisdiction: اذكر الدولة التي يسكن بها الشخص الذي يدفع الفواتير. إذا كانت شركة أو كيان آخر، فاذكر الدولة التي أسست فيها، والمدينة أو المنطقة أو الإقليم أو الولاية حسب الحاجة.
+ min_age: لا يجوز أن يكون دون السن الأدنى الذي تقتضيه قوانين الدولة.
user:
chosen_languages: إن تم اختيارها، فلن تظهر على الخيوط العامة إلّا الرسائل المنشورة في تلك اللغات
+ date_of_birth:
+ few: عليك أن تكون أكبر من %{count} سنة لاستخدام ماستادون. لن نحفظ هذه المعلومة.
+ many: عليك أن تكون أكبر من %{count} سنة لاستخدام ماستادون. لن نحفظ هذه المعلومة.
+ one: عليك أن تكون أكبر من %{count} سنة لاستخدام ماستادون. لن نحفظ هذه المعلومة.
+ other: عليك أن تكون أكبر من %{count} سنة لاستخدام ماستادون. لن نحفظ هذه المعلومة.
+ two: عليك أن تكون أكبر من %{count} سنة لاستخدام ماستادون. لن نحفظ هذه المعلومة.
+ zero: عليك أن تكون أكبر من %{count} سنة لاستخدام ماستادون. لن نحفظ هذه المعلومة.
+ role: الدور يتحكم في أذونات المستخدم.
user_role:
color: اللون الذي سيتم استخدامه للوظيفه في جميع وحدات واجهة المستخدم، كـ RGB بتنسيق hex
highlighted: وهذا يجعل الوظيفه مرئيا علنا
@@ -141,6 +169,7 @@ ar:
url: إين سترسل الأحداث
labels:
account:
+ attribution_domains: المواقع المسموح لها الإسناد إليك
discoverable: ميزة الملف الشخصي والمنشورات في خوارزميات الاكتشاف
fields:
name: التسمية
@@ -207,6 +236,7 @@ ar:
setting_boost_modal: إظهار مربع حوار التأكيد قبل إعادة نشر أي منشور
setting_default_language: لغة النشر
setting_default_privacy: خصوصية المنشور
+ setting_default_quote_policy: من يستطيع الاقتباس
setting_default_sensitive: اعتبر الوسائط دائما كمحتوى حساس
setting_delete_modal: إظهار مربع حوار التأكيد قبل حذف أي منشور
setting_disable_hover_cards: تعطيل معاينة الملف الشخصي عند التمرير
@@ -217,8 +247,10 @@ ar:
setting_display_media_show_all: عرض الكل
setting_expand_spoilers: توسيع المنشورات التي تحتوي على تحذيرات عن المحتوى دائما
setting_hide_network: إخفِ شبكتك
+ setting_missing_alt_text_modal: إظهار حوار التأكيد قبل نشر وسائط دون نص بديل
setting_reduce_motion: تخفيض عدد الصور في الوسائط المتحركة
setting_system_font_ui: استخدم الخطوط الافتراضية للنظام
+ setting_system_scrollbars_ui: استخدام شريط التمرير الافتراضي للنظام
setting_theme: سمة الموقع
setting_trends: اعرض ما يُتداوَل اليوم
setting_unfollow_modal: إظهار مربع حوار للتأكيد قبل إلغاء متابعة أي حساب
@@ -237,6 +269,7 @@ ar:
name: الوسم
filters:
actions:
+ blur: إخفاء الوسائط مع تحذير
hide: إخفاء بالكامل
warn: إخفاء بتحذير
form_admin_settings:
@@ -250,6 +283,7 @@ ar:
favicon: أيقونة المفضلة
mascot: جالب حظ مخصص (قديم)
media_cache_retention_period: مدة الاحتفاظ بالتخزين المؤقت للوسائط
+ min_age: متطلبات الحد الأدنى للسن
peers_api_enabled: نشر قائمة للخوادم المكتشَفة في واجهة برمجة التطبيقات API
profile_directory: تفعيل دليل الصفحات التعريفية
registrations_mode: من يمكنه التسجيل
@@ -314,11 +348,23 @@ ar:
trendable: السماح لهذه الكلمة المفتاحية بالظهور تحت المتداوَلة
usable: السماح للمنشورات باستخدام هذا الوسم محليا
terms_of_service:
+ changelog: ماذا تغير؟
+ effective_date: تاريخ النفاذ
text: شروط الخدمة
terms_of_service_generator:
+ admin_email: عنوان البريد الإلكتروني للإشعارات القانونية
+ arbitration_address: عنوان البريد لإشعارات التحكيم
+ arbitration_website: الموقع الإلكتروني لتقديم إشعارات التحكيم
+ choice_of_law: اختيار القانون
+ dmca_address: عنوان البريد لإرسال إشعارات حقوق الطبع والنشر أو DMCA
+ dmca_email: عنوان البريد الإلكتروني لإشعارات حقوق الطبع والنشر أو DMCA
domain: النطاق
jurisdiction: الاختصاص القانوني
+ min_age: الحد الإدنى للعمر
user:
+ date_of_birth_1i: يوم
+ date_of_birth_2i: شهر
+ date_of_birth_3i: سنة
role: الدور
time_zone: النطاق الزمني
user_role:
diff --git a/config/locales/simple_form.br.yml b/config/locales/simple_form.br.yml
index f4d442cfdab..b415640eb09 100644
--- a/config/locales/simple_form.br.yml
+++ b/config/locales/simple_form.br.yml
@@ -49,6 +49,7 @@ br:
setting_display_media_default: Dre ziouer
setting_display_media_hide_all: Kuzhat pep tra
setting_display_media_show_all: Diskouez pep tra
+ setting_emoji_style: Stil an emojioù
setting_theme: Neuz al lec'hienn
setting_use_pending_items: Mod gorrek
title: Titl
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index 26205e3826c..04bfe7c6983 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -61,6 +61,7 @@ ca:
setting_display_media_default: Amaga el contingut gràfic marcat com a sensible
setting_display_media_hide_all: Oculta sempre tot el contingut multimèdia
setting_display_media_show_all: Mostra sempre el contingut gràfic
+ setting_emoji_style: Com mostrar els emojis. "Automàtic" provarà de fer servir els emojis nadius, però revertirà a twemojis en els navegadors antics.
setting_system_scrollbars_ui: S'aplica només als navegadors d'escriptori basats en Safari i Chrome
setting_use_blurhash: Els degradats es basen en els colors de les imatges ocultes, però n'enfosqueixen els detalls
setting_use_pending_items: Amaga les actualitzacions de la línia de temps després de fer un clic, en lloc de desplaçar-les automàticament
@@ -240,6 +241,7 @@ ca:
setting_display_media_default: Per defecte
setting_display_media_hide_all: Amaga-ho tot
setting_display_media_show_all: Mostra-ho tot
+ setting_emoji_style: Estil d'emojis
setting_expand_spoilers: Desplega sempre els tuts marcats amb advertències de contingut
setting_hide_network: Amaga la teva xarxa
setting_missing_alt_text_modal: Mostra un diàleg de confirmació abans de publicar contingut sense text alternatiu
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 7af8c1ce7cb..eb8f7f2f3a6 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -61,6 +61,7 @@ cs:
setting_display_media_default: Skrývat média označená jako citlivá
setting_display_media_hide_all: Vždy skrývat média
setting_display_media_show_all: Vždy zobrazovat média
+ setting_emoji_style: Jak se budou zobrazovat emoji. "Auto" zkusí použít výchozí emoji, ale pro starší prohlížeče použije Twemoji.
setting_system_scrollbars_ui: Platí pouze pro desktopové prohlížeče založené na Safari nebo Chrome
setting_use_blurhash: Gradienty jsou vytvořeny na základě barvev skrytých médií, ale zakrývají veškeré detaily
setting_use_pending_items: Aktualizovat časovou osu až po kliknutí namísto automatického rolování kanálu
@@ -243,6 +244,7 @@ cs:
setting_display_media_default: Výchozí
setting_display_media_hide_all: Skrýt vše
setting_display_media_show_all: Zobrazit vše
+ setting_emoji_style: Styl emoji
setting_expand_spoilers: Vždy rozbalit příspěvky označené varováními o obsahu
setting_hide_network: Skrýt mou síť
setting_missing_alt_text_modal: Zobrazit potvrzovací dialog před odesláním médií bez alt textu
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 91275091ac5..6ce3669527c 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -8,7 +8,7 @@ da:
display_name: Dit fulde navn eller dit sjove navn.
fields: Din hjemmeside, dine pronominer, din alder, eller hvad du har lyst til.
indexable: Dine offentlige indlæg vil kunne vises i Mastodon-søgeresultater. Folk, som har interageret med dem, vil kunne finde dem uanset.
- note: 'Du kan @omtale andre personer eller #etiketter.'
+ note: 'Du kan @omtale andre personer eller #hashtags.'
show_collections: Folk vil ikke kunne tjekke dine Følger og Følgere. Folk, du selv følger, vil stadig kunne se dette.
unlocked: Man vil kunne følges af folk uden først at godkende dem. Ønsker man at gennemgå Følg-anmodninger og individuelt acceptere/afvise nye følgere, så fjern markeringen.
account_alias:
@@ -16,7 +16,7 @@ da:
account_migration:
acct: Angiv brugernavn@domain for den konto, hvortil du vil flytte
account_warning_preset:
- text: Du kan bruge indlægssyntaks, såsom URL'er, etiketter og omtaler
+ text: Du kan bruge indlægssyntaks, såsom URL'er, hashtags og omtaler
title: Valgfri. Ikke synlig for modtageren
admin_account_action:
include_statuses: Brugeren vil se, hvilke indlæg, som har forårsaget modereringen/advarslen
@@ -61,6 +61,7 @@ da:
setting_display_media_default: Skjul medier med sensitiv-markering
setting_display_media_hide_all: Skjul altid medier
setting_display_media_show_all: Vis altid medier
+ setting_emoji_style: Hvordan emojis skal vises. "Auto" vil forsøge at bruge indbyggede emojis, men skifter tilbage til Twemoji i ældre webbrowsere.
setting_system_scrollbars_ui: Gælder kun for computerwebbrowsere baseret på Safari og Chrome
setting_use_blurhash: Gradienter er baseret på de skjulte grafikelementers farver, men slører alle detaljer
setting_use_pending_items: Skjul tidslinjeopdateringer bag et klik i stedet for brug af auto-feedrulning
@@ -72,12 +73,12 @@ da:
domain: Dette kan være domænenavnet vist i den benyttede i e-mailadresse eller MX-post. Begge tjekkes under tilmelding.
with_dns_records: Et forsøg på at opløse det givne domænes DNS-poster foretages, og resultaterne blokeres ligeledes
featured_tag:
- name: 'Her er nogle af dine hyppigst brugte etiketter:'
+ name: 'Her er nogle af dine hyppigst brugte hashtags:'
filters:
action: Vælg handlingen til eksekvering, når et indlæg matcher filteret
actions:
blur: Skjul medier bag en advarsel, uden at skjule selve teksten
- hide: Skjul filtreret indhold helt (adfærd som om, det ikke fandtes)
+ hide: Skjul det filtrerede indhold fuldstændigt og gør, som om det ikke eksisterer
warn: Skjul filtreret indhold bag en advarsel, der nævner filterets titel
form_admin_settings:
activity_api_enabled: Antal lokalt opslåede indlæg, aktive brugere samt nye tilmeldinger i ugentlige opdelinger
@@ -105,7 +106,7 @@ da:
thumbnail: Et ca. 2:1 billede vist sammen med serveroplysningerne.
timeline_preview: Udloggede besøgende kan gennemse serverens seneste offentlige indlæg.
trendable_by_default: Spring manuel gennemgang af trendindhold over. Individuelle elementer kan stadig fjernes fra trends efter kendsgerningen.
- trends: Tendenser viser, hvilke indlæg, etiketter og nyheder opnår momentum på serveren.
+ trends: Tendenser viser, hvilke indlæg, hashtags og nyheder opnår momentum på serveren.
trends_as_landing_page: Vis tendensindhold til udloggede brugere og besøgende i stedet for en beskrivelse af denne server. Kræver, at tendenser er aktiveret.
form_challenge:
current_password: Du bevæger dig ind på et sikkert område
@@ -171,8 +172,8 @@ da:
name: Etiket
value: Indhold
indexable: Medtag offentlige indlæg i søgeresultater
- show_collections: Vis Følger og Følgere på profil
- unlocked: Acceptér automatisk nye Følgere
+ show_collections: Vis følger og følgere på profil
+ unlocked: Acceptér automatisk nye følgere
account_alias:
acct: Brugernavn på den gamle konto
account_migration:
@@ -214,7 +215,7 @@ da:
email: E-mailadresse
expires_in: Udløb efter
fields: Profilmetadata
- header: Overskrift
+ header: Bannerbillede
honeypot: "%{label} (udfyld ikke)"
inbox_url: URL til videreformidlingsindbakken
irreversible: Fjern istedet for skjul
@@ -241,15 +242,16 @@ da:
setting_display_media_default: Standard
setting_display_media_hide_all: Skjul alle
setting_display_media_show_all: Vis alle
- setting_expand_spoilers: Ekspandér altid indlæg markeret med indholdsadvarsler
+ setting_emoji_style: Emoji-stil
+ setting_expand_spoilers: Udvid altid indlæg markeret med indholdsadvarsler
setting_hide_network: Skjul din sociale graf
setting_missing_alt_text_modal: Vis bekræftelsesdialog inden medier uden alt-tekst lægges op
setting_reduce_motion: Reducér animationsbevægelse
setting_system_font_ui: Brug systemets standardskrifttype
setting_system_scrollbars_ui: Brug standard systemrullebjælke
setting_theme: Webstedstema
- setting_trends: Vis dagens tendenser
- setting_unfollow_modal: Vis bekræftelsesdialog før ophør med at følge nogen
+ setting_trends: Vis dagens trends
+ setting_unfollow_modal: Vis bekræftelsesdialog, før du stopper med at følge nogen
setting_use_blurhash: Vis farverige gradienter for skjulte medier
setting_use_pending_items: Langsom tilstand
severity: Alvorlighed
@@ -296,7 +298,7 @@ da:
theme: Standardtema
thumbnail: Serverminiaturebillede
timeline_preview: Tillad ikke-godkendt adgang til offentlige tidslinjer
- trendable_by_default: Tillad ikke-reviderede tendenser
+ trendable_by_default: Tillad ikke-reviderede trends
trends: Aktivér trends
trends_as_landing_page: Brug tendenser som destinationssiden
interactions:
@@ -339,10 +341,10 @@ da:
indexable: Inkludér profilside i søgemaskiner
show_application: Vis, fra hvilken app et indlæg er sendt
tag:
- listable: Tillad visning af denne etiket i søgninger og forslag
+ listable: Tillad visning af dette hashtag i søgninger og forslag
name: Hashtag
- trendable: Tillad visning af denne etiket under tendenser
- usable: Tillad indlæg at benytte denne etiket lokalt
+ trendable: Tillad visning af dette hashtag under trends
+ usable: Tillad indlæg at benytte dette hashtag lokalt
terms_of_service:
changelog: Hvad der er ændret?
effective_date: Ikrafttrædelsesdato
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 9f65a474b04..a7cb83eb13b 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -61,6 +61,7 @@ de:
setting_display_media_default: Medien mit Inhaltswarnung ausblenden
setting_display_media_hide_all: Medien immer ausblenden
setting_display_media_show_all: Medien mit Inhaltswarnung immer anzeigen
+ setting_emoji_style: 'Wie Emojis dargestellt werden: „Automatisch“ verwendet native Emojis, für veraltete Browser wird jedoch Twemoji verwendet.'
setting_system_scrollbars_ui: Betrifft nur Desktop-Browser, die auf Chrome oder Safari basieren
setting_use_blurhash: Der Farbverlauf basiert auf den Farben der ausgeblendeten Medien, verschleiert aber jegliche Details
setting_use_pending_items: Neue Beiträge hinter einem Klick verstecken, anstatt automatisch zu scrollen
@@ -241,12 +242,13 @@ de:
setting_display_media_default: Standard
setting_display_media_hide_all: Alle Medien ausblenden
setting_display_media_show_all: Alle Medien anzeigen
+ setting_emoji_style: Emoji-Stil
setting_expand_spoilers: Beiträge mit Inhaltswarnung immer ausklappen
setting_hide_network: Follower und „Folge ich“ nicht anzeigen
setting_missing_alt_text_modal: Bestätigungsdialog anzeigen, bevor Medien ohne Bildbeschreibung veröffentlicht werden
setting_reduce_motion: Bewegung in Animationen verringern
setting_system_font_ui: Standardschriftart des Browsers verwenden
- setting_system_scrollbars_ui: Bildlaufleiste des Systems verwenden
+ setting_system_scrollbars_ui: Bildlaufleiste des Betriebssystems verwenden
setting_theme: Design
setting_trends: Heutige Trends anzeigen
setting_unfollow_modal: Bestätigungsdialog beim Entfolgen eines Profils anzeigen
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index f14c1fa4537..cfc9c218ce1 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -56,6 +56,7 @@ el:
scopes: Ποια API θα επιτρέπεται στην εφαρμογή να χρησιμοποιήσεις. Αν επιλέξεις κάποιο υψηλό εύρος εφαρμογής, δε χρειάζεται να επιλέξεις και το καθένα ξεχωριστά.
setting_aggregate_reblogs: Απόκρυψη των νέων αναρτήσεων για τις αναρτήσεις που έχουν ενισχυθεί πρόσφατα (επηρεάζει μόνο τις νέες ενισχύσεις)
setting_always_send_emails: Κανονικά οι ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου δεν θα αποστέλλονται όταν χρησιμοποιείτε ενεργά το Mastodon
+ setting_default_quote_policy: Οι αναφερόμενοι χρήστες επιτρέπεται πάντα να παραθέτουν. Αυτή η ρύθμιση θα τεθεί σε ισχύ μόνο για αναρτήσεις που δημιουργήθηκαν με την επόμενη έκδοση Mastodon, αλλά μπορείς να επιλέξετε την προτίμησή σου κατά την προετοιμασία
setting_default_sensitive: Τα ευαίσθητα πολυμέσα είναι κρυμμένα και εμφανίζονται με ένα κλικ
setting_display_media_default: Απόκρυψη ευαίσθητων πολυμέσων
setting_display_media_hide_all: Μόνιμη απόκρυψη όλων των πολυμέσων
@@ -148,6 +149,9 @@ el:
min_age: Δεν πρέπει να είναι κάτω από την ελάχιστη ηλικία που απαιτείται από τους νόμους της δικαιοδοσίας σας.
user:
chosen_languages: Όταν ενεργοποιηθεί, στη δημόσια ροή θα εμφανίζονται τουτ μόνο από τις επιλεγμένες γλώσσες
+ date_of_birth:
+ one: Πρέπει να βεβαιωθούμε ότι είσαι τουλάχιστον %{count} για να χρησιμοποιήσεις το Mastodon. Δε θα το αποθηκεύσουμε.
+ other: Πρέπει να βεβαιωθούμε ότι είσαι τουλάχιστον %{count} για να χρησιμοποιήσεις το Mastodon. Δε θα το αποθηκεύσουμε.
role: Ο ρόλος ελέγχει ποια δικαιώματα έχει ο χρήστης.
user_role:
color: Το χρώμα που θα χρησιμοποιηθεί για το ρόλο σε ολόκληρη τη διεπαφή, ως RGB σε δεκαεξαδική μορφή
@@ -228,6 +232,7 @@ el:
setting_boost_modal: Επιβεβαίωση πριν την προώθηση
setting_default_language: Γλώσσα δημοσιεύσεων
setting_default_privacy: Ιδιωτικότητα δημοσιεύσεων
+ setting_default_quote_policy: Ποιος μπορεί να παραθέσει
setting_default_sensitive: Σημείωση όλων των πολυμέσων ως ευαίσθητου περιεχομένου
setting_delete_modal: Επιβεβαίωση πριν τη διαγραφή ενός τουτ
setting_disable_hover_cards: Απενεργοποίηση προεπισκόπησης προφίλ κατά την αιώρηση
diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml
index 5f5453edc35..fe4160f3864 100644
--- a/config/locales/simple_form.en-GB.yml
+++ b/config/locales/simple_form.en-GB.yml
@@ -56,10 +56,12 @@ en-GB:
scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones.
setting_aggregate_reblogs: Do not show new boosts for posts that have been recently boosted (only affects newly-received boosts)
setting_always_send_emails: Normally e-mail notifications won't be sent when you are actively using Mastodon
+ setting_default_quote_policy: Mentioned users are always allowed to quote. This setting will only take effect for posts created with the next Mastodon version, but you can select your preference in preparation
setting_default_sensitive: Sensitive media is hidden by default and can be revealed with a click
setting_display_media_default: Hide media marked as sensitive
setting_display_media_hide_all: Always hide media
setting_display_media_show_all: Always show media
+ setting_emoji_style: How to display emojis. "Auto" will try using native emoji, but falls back to Twemoji for legacy browsers.
setting_system_scrollbars_ui: Applies only to desktop browsers based on Safari and Chrome
setting_use_blurhash: Gradients are based on the colors of the hidden visuals but obfuscate any details
setting_use_pending_items: Hide timeline updates behind a click instead of automatically scrolling the feed
@@ -75,6 +77,7 @@ en-GB:
filters:
action: Chose which action to perform when a post matches the filter
actions:
+ blur: Hide media behind a warning, without hiding the text itself
hide: Completely hide the filtered content, behaving as if it did not exist
warn: Hide the filtered content behind a warning mentioning the filter's title
form_admin_settings:
@@ -88,6 +91,7 @@ en-GB:
favicon: WEBP, PNG, GIF or JPG. Overrides the default Mastodon favicon with a custom icon.
mascot: Overrides the illustration in the advanced web interface.
media_cache_retention_period: Media files from posts made by remote users are cached on your server. When set to a positive value, media will be deleted after the specified number of days. If the media data is requested after it is deleted, it will be re-downloaded, if the source content is still available. Due to restrictions on how often link preview cards poll third-party sites, it is recommended to set this value to at least 14 days, or link preview cards will not be updated on demand before that time.
+ min_age: Users will be asked to confirm their date of birth during sign-up
peers_api_enabled: A list of domain names this server has encountered in the fediverse. No data is included here about whether you federate with a given server, just that your server knows about it. This is used by services that collect statistics on federation in a general sense.
profile_directory: The profile directory lists all users who have opted-in to be discoverable.
require_invite_text: When sign-ups require manual approval, make the “Why do you want to join?” text input mandatory rather than optional
@@ -132,14 +136,23 @@ en-GB:
name: You can only change the casing of the letters, for example, to make it more readable
terms_of_service:
changelog: Can be structured with Markdown syntax.
+ effective_date: A reasonable timeframe can range anywhere from 10 to 30 days from the date you notify your users.
text: Can be structured with Markdown syntax.
terms_of_service_generator:
admin_email: Legal notices include counternotices, court orders, takedown requests, and law enforcement requests.
+ arbitration_address: Can be the same as Physical address above, or “N/A” if using email.
+ arbitration_website: Can be a web form, or “N/A” if using email.
+ choice_of_law: City, region, territory or state the internal substantive laws of which shall govern any and all claims.
dmca_address: For US operators, use the address registered in the DMCA Designated Agent Directory. A P.O. Box listing is available upon direct request, use the DMCA Designated Agent Post Office Box Waiver Request to email the Copyright Office and describe that you are a home-based content moderator who fears revenge or retribution for your actions and need to use a P.O. Box to remove your home address from public view.
+ dmca_email: Can be the same email used for “Email address for legal notices” above.
domain: Unique identification of the online service you are providing.
jurisdiction: List the country where whoever pays the bills lives. If it’s a company or other entity, list the country where it’s incorporated, and the city, region, territory or state as appropriate.
+ min_age: Should not be below the minimum age required by the laws of your jurisdiction.
user:
chosen_languages: When checked, only posts in selected languages will be displayed in public timelines
+ date_of_birth:
+ one: We have to make sure you're at least %{count} to use Mastodon. We won't store this.
+ other: We have to make sure you're at least %{count} to use Mastodon. We won't store this.
role: The role controls which permissions the user has.
user_role:
color: Color to be used for the role throughout the UI, as RGB in hex format
@@ -220,6 +233,7 @@ en-GB:
setting_boost_modal: Show confirmation dialogue before boosting
setting_default_language: Posting language
setting_default_privacy: Posting privacy
+ setting_default_quote_policy: Who can quote
setting_default_sensitive: Always mark media as sensitive
setting_delete_modal: Show confirmation dialogue before deleting a post
setting_disable_hover_cards: Disable profile preview on hover
@@ -228,6 +242,7 @@ en-GB:
setting_display_media_default: Default
setting_display_media_hide_all: Hide all
setting_display_media_show_all: Show all
+ setting_emoji_style: Emoji style
setting_expand_spoilers: Always expand posts marked with content warnings
setting_hide_network: Hide your social graph
setting_missing_alt_text_modal: Show confirmation dialogue before posting media without alt text
@@ -252,6 +267,7 @@ en-GB:
name: Hashtag
filters:
actions:
+ blur: Hide media with a warning
hide: Hide completely
warn: Hide with a warning
form_admin_settings:
@@ -265,6 +281,7 @@ en-GB:
favicon: Favicon
mascot: Custom mascot (legacy)
media_cache_retention_period: Media cache retention period
+ min_age: Minimum age requirement
peers_api_enabled: Publish list of discovered servers in the API
profile_directory: Enable profile directory
registrations_mode: Who can sign-up
@@ -330,16 +347,22 @@ en-GB:
usable: Allow posts to use this hashtag locally
terms_of_service:
changelog: What's changed?
+ effective_date: Effective date
text: Terms of Service
terms_of_service_generator:
admin_email: Email address for legal notices
arbitration_address: Physical address for arbitration notices
arbitration_website: Website for submitting arbitration notices
+ choice_of_law: Choice of Law
dmca_address: Physical address for DMCA/copyright notices
dmca_email: Email address for DMCA/copyright notices
domain: Domain
jurisdiction: Legal jurisdiction
+ min_age: Minimum age
user:
+ date_of_birth_1i: Day
+ date_of_birth_2i: Month
+ date_of_birth_3i: Year
role: Role
time_zone: Time Zone
user_role:
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index bb48cddff54..74614d1af62 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -61,6 +61,7 @@ en:
setting_display_media_default: Hide media marked as sensitive
setting_display_media_hide_all: Always hide media
setting_display_media_show_all: Always show media
+ setting_emoji_style: How to display emojis. "Auto" will try using native emoji, but falls back to Twemoji for legacy browsers.
setting_system_scrollbars_ui: Applies only to desktop browsers based on Safari and Chrome
setting_use_blurhash: Gradients are based on the colors of the hidden visuals but obfuscate any details
setting_use_pending_items: Hide timeline updates behind a click instead of automatically scrolling the feed
@@ -241,6 +242,7 @@ en:
setting_display_media_default: Default
setting_display_media_hide_all: Hide all
setting_display_media_show_all: Show all
+ setting_emoji_style: Emoji style
setting_expand_spoilers: Always expand posts marked with content warnings
setting_hide_network: Hide your social graph
setting_missing_alt_text_modal: Show confirmation dialog before posting media without alt text
diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml
index 3b68cf009f3..8364741080d 100644
--- a/config/locales/simple_form.es-AR.yml
+++ b/config/locales/simple_form.es-AR.yml
@@ -61,6 +61,7 @@ es-AR:
setting_display_media_default: Ocultar medios marcados como sensibles
setting_display_media_hide_all: Siempre ocultar todos los medios
setting_display_media_show_all: Siempre mostrar todos los medios
+ setting_emoji_style: Cómo se mostrarán los emojis. "Automático" intentará usar emojis nativos, cambiando a Twemoji en navegadores antiguos.
setting_system_scrollbars_ui: Solo aplica para navegadores web de escritorio basados en Safari y Chrome
setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles
setting_use_pending_items: Ocultar actualizaciones de la línea temporal detrás de un clic en lugar de desplazar automáticamente el flujo
@@ -241,6 +242,7 @@ es-AR:
setting_display_media_default: Predeterminada
setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo
+ setting_emoji_style: Estilo de emoji
setting_expand_spoilers: Siempre expandir los mensajes marcados con advertencias de contenido
setting_hide_network: Ocultá tu gráfica social
setting_missing_alt_text_modal: Mostrar diálogo de confirmación antes de enviar medios sin texto alternativo
diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml
index 30614992fce..883f7070e00 100644
--- a/config/locales/simple_form.es-MX.yml
+++ b/config/locales/simple_form.es-MX.yml
@@ -61,6 +61,7 @@ es-MX:
setting_display_media_default: Ocultar contenido multimedia marcado como sensible
setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia
setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible
+ setting_emoji_style: Cómo se mostrarán los emojis. "Auto" intentará usar emojis nativos, cambiando a Twemoji en navegadores antiguos.
setting_system_scrollbars_ui: Solo se aplica a los navegadores de escritorio basados en Safari y Chrome
setting_use_blurhash: Los degradados se basan en los colores de los elementos visuales ocultos, pero ocultan cualquier detalle
setting_use_pending_items: Ocultar las publicaciones de la línea de tiempo tras un clic en lugar de desplazar automáticamente el feed
@@ -241,6 +242,7 @@ es-MX:
setting_display_media_default: Por defecto
setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo
+ setting_emoji_style: Estilo de emoji
setting_expand_spoilers: Siempre expandir las publicaciones marcadas con advertencias de contenido
setting_hide_network: Ocultar tu red
setting_missing_alt_text_modal: Mostrar cuadro de diálogo de confirmación antes de publicar contenido multimedia sin texto alternativo
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index 56eea49d25e..9c929a8c678 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -61,6 +61,7 @@ es:
setting_display_media_default: Ocultar contenido multimedia marcado como sensible
setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia
setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible
+ setting_emoji_style: Cómo se mostrarán los emojis. "Auto" intentará usar emojis nativos, cambiando a Twemoji en navegadores antiguos.
setting_system_scrollbars_ui: Solo aplica para navegadores de escritorio basados en Safari y Chrome
setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles
setting_use_pending_items: Ocultar nuevas publicaciones detrás de un clic en lugar de desplazar automáticamente el feed
@@ -241,6 +242,7 @@ es:
setting_display_media_default: Por defecto
setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo
+ setting_emoji_style: Estilo de emoji
setting_expand_spoilers: Siempre expandir las publicaciones marcadas con advertencias de contenido
setting_hide_network: Ocultar tu red
setting_missing_alt_text_modal: Mostrar diálogo de confirmación antes de publicar medios sin texto alternativo
diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml
index f1a0b40bdd1..f013f454caa 100644
--- a/config/locales/simple_form.et.yml
+++ b/config/locales/simple_form.et.yml
@@ -19,7 +19,7 @@ et:
title: Valikuline. Ei ole nähtav saajale
admin_account_action:
include_statuses: Kasutaja näeb, millised postitused on põhjustanud moderaatori otsuse või hoiatuse
- send_email_notification: Konto omanik saab selgituse selle kohta, mis juhtus nende kontoga
+ send_email_notification: Kasutajakonto omanik saab selgituse selle kohta, mis juhtus tema kontoga
text_html: Valikuline. On võimalik kasutada postituse süntaksi. On võimalik lisada hoiatuste eelseadistusi säästmaks aega
type_html: Vali, mida teha kasutajaga %{acct}
types:
@@ -47,7 +47,7 @@ et:
digest: Saadetakse ainult pärast pikka tegevusetuse perioodi ja ainult siis, kui on saadetud otsesõnumeid
email: Sulle saadetakse e-posti teel kinnituskiri
header: WEBP, PNG, GIF või JPG. Kõige rohkem %{size}. Vähendatakse %{dimensions} pikslini
- inbox_url: Kopeeri soovitud vahendaja avalehe URL
+ inbox_url: Kopeeri soovitud sõnumivahendusserveri avalehe võrguaadress
irreversible: Filtreeritud postitused kaovad taastamatult, isegi kui filter on hiljem eemaldatud
locale: Kasutajaliidese, e-kirjade ja tõuketeadete keel
password: Vajalik on vähemalt 8 märki
@@ -196,7 +196,7 @@ et:
fields: Veebiviited
header: Päis
honeypot: "%{label} (ära sisesta)"
- inbox_url: Vahendaja sisendkausta URL
+ inbox_url: Sõnumivahendusserveri sisendkausta võrguaadress
irreversible: Kustuta selle asemel, et peita
locale: Kasutajaliidese keel
max_uses: Maksimum kasutajate arv
@@ -212,6 +212,7 @@ et:
setting_boost_modal: Näita enne jagamist kinnitusdialoogi
setting_default_language: Postituse keel
setting_default_privacy: Postituse nähtavus
+ setting_default_quote_policy: Kes võivad tsiteerida
setting_default_sensitive: Alati märgista meedia tundlikuks
setting_delete_modal: Näita kinnitusdialoogi enne postituse kustutamist
setting_disable_hover_cards: Keela profiili eelvaade kui hõljutada
@@ -224,6 +225,7 @@ et:
setting_hide_network: Peida oma võrk
setting_reduce_motion: Vähenda animatsioonides liikumist
setting_system_font_ui: Kasuta süsteemi vaikefonti
+ setting_system_scrollbars_ui: Kasuta süsteemi vaikimisi kerimisriba
setting_theme: Saidi teema
setting_trends: Näita tänaseid trende
setting_unfollow_modal: Näita kinnitusdialoogi enne jälgimise eemaldamist
@@ -242,6 +244,7 @@ et:
name: Silt
filters:
actions:
+ blur: Peida hoiatusega meedia
hide: Peida täielikult
warn: Peida hoiatusega
form_admin_settings:
diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml
index dfe6c0b6d77..7706db6637d 100644
--- a/config/locales/simple_form.eu.yml
+++ b/config/locales/simple_form.eu.yml
@@ -56,6 +56,7 @@ eu:
scopes: Zeintzuk API atzitu ditzakeen aplikazioak. Goi mailako arloa aukeratzen baduzu, ez dituzu azpikoak aukeratu behar.
setting_aggregate_reblogs: Ez erakutsi bultzada berriak berriki bultzada jaso duten tootentzat (berriki jasotako bultzadei eragiten die bakarrik)
setting_always_send_emails: Normalean eposta jakinarazpenak ez dira bidaliko Mastodon aktiboki erabiltzen ari zaren bitartean
+ setting_default_quote_policy: Aipaturiko erabiltzaileek beti dute aipatzeko baimena. Ezarpen honek Mastodon-en hurrengo bertsioarekin sortutako argitalpenetan bakarrik izango du eragina, baina prestatzean lehentasuna hauta dezakezu
setting_default_sensitive: Multimedia hunkigarria lehenetsita ezkutatzen da, eta sakatuz ikusi daiteke
setting_display_media_default: Ezkutatu hunkigarri gisa markatutako multimedia
setting_display_media_hide_all: Ezkutatu multimedia guztia beti
@@ -75,6 +76,7 @@ eu:
filters:
action: Aukeratu ze ekintza burutu behar den bidalketa bat iragazkiarekin bat datorrenean
actions:
+ blur: Ezkutatu edukia ohar baten atzean, testua bera ezkutatu gabe
hide: Ezkutatu erabat iragazitako edukia, existituko ez balitz bezala
warn: Ezkutatu iragazitako edukia iragazkiaren izenburua duen abisu batekin
form_admin_settings:
@@ -88,6 +90,7 @@ eu:
favicon: WEBP, PNG, GIF or JPG. Mastodon-en favicon-a gainidazten du ikono pertsonalizatu batekin.
mascot: Web interfaze aurreratuko ilustrazioa gainidazten du.
media_cache_retention_period: Multimedia-fitxategiak dituzten urruneko erabiltzaileen argitalpenak zure zerbitzarian gordetzen dira cachean. Balio positiboa ezartzean, multimedia zehazturiko egunen buruan ezabatuko da. Multimedia-datuak eskatzen badira ezabatu ostean, berriro deskargatuko dira, iturburuko edukia oraindik erabilgarri badago. Estekaren aurrebistako txartelek hirugarrenen guneei zenbatetan dei diezaieketen mugatzen dieten murrizketak direla eta, balio honi, gutxienez, 14 egunen balioa ezartzea gomendatzen da, bestela, esteken aurrebistako txartelak ez dira eguneratuko eskatu ahala denbora horren aurretik.
+ min_age: Erabiltzaileei jaiotze-data berresteko eskatuko zaie izen-ematean
peers_api_enabled: Zerbitzari honek fedibertsoan ikusi dituen zerbitzarien domeinu-izenen zerrenda. Ez da daturik ematen zerbitzari jakin batekin federatzearen ala ez federatzearen inguruan, zerbitzariak haien berri duela soilik. Federazioari buruzko estatistika orokorrak biltzen dituzten zerbitzuek erabiltzen dute hau.
profile_directory: Profilen direktorioan ikusgai egotea aukeratu duten erabiltzaile guztiak zerrendatzen dira.
require_invite_text: Izen emateak eskuz onartu behar direnean, "Zergatik elkartu nahi duzu?" testu sarrera derrigorrezko bezala ezarri, ez hautazko
@@ -132,9 +135,12 @@ eu:
name: Letrak maiuskula/minuskulara aldatu ditzakezu besterik ez, adibidez irakurterrazago egiteko
terms_of_service:
changelog: Markdown-en sintaxiarekin egitura daiteke.
+ effective_date: Zentzuzko epe bat 10 eta 30 egun bitartekoa izan daiteke, erabiltzaileei jakinarazten diezun egunetik kontatzen hasita.
text: Markdown-en sintaxiarekin egitura daiteke.
terms_of_service_generator:
admin_email: Legezko abisuak, kontraindikazioak, agindu judizialak, erretiratzeko eskaerak eta legea betetzeko eskaerak barne.
+ arbitration_address: Goiko helbide fisikoa edo "N/A" bera izan daiteke posta elektronikoa erabiliz gero.
+ arbitration_website: Web formularioa izan daiteke, edo "N/A" posta elektronikoa erabiliz gero.
user:
chosen_languages: Markatzean, hautatutako hizkuntzetan dauden tutak besterik ez dira erakutsiko.
user_role:
@@ -327,6 +333,9 @@ eu:
terms_of_service_generator:
domain: Domeinua
user:
+ date_of_birth_1i: Eguna
+ date_of_birth_2i: Hilabetea
+ date_of_birth_3i: Urtea
role: Rola
time_zone: Ordu zona
user_role:
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index 82f47cd6f32..cafc9e0c7e4 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -240,6 +240,7 @@ fi:
setting_display_media_default: Oletus
setting_display_media_hide_all: Piilota kaikki
setting_display_media_show_all: Näytä kaikki
+ setting_emoji_style: Emojityyli
setting_expand_spoilers: Laajenna aina sisältövaroituksilla merkityt julkaisut
setting_hide_network: Piilota verkostotietosi
setting_missing_alt_text_modal: Näytä vahvistusikkuna ennen kuin julkaistaan mediaa ilman vaihtoehtoista tekstiä
diff --git a/config/locales/simple_form.fo.yml b/config/locales/simple_form.fo.yml
index c3f1dad678a..1b5931135c1 100644
--- a/config/locales/simple_form.fo.yml
+++ b/config/locales/simple_form.fo.yml
@@ -61,6 +61,7 @@ fo:
setting_display_media_default: Fjal miðlafílur, sum eru merktar sum viðkvæmar
setting_display_media_hide_all: Fjal altíð miðlafílur
setting_display_media_show_all: Vís altíð miðlafílur
+ setting_emoji_style: Hvussu kenslutekn vera víst. "Sjálvvirkandi" roynir at brúka upprunalig kenslutekn, men fellir aftur á Twitter kenslutekn í eldri kagum.
setting_system_scrollbars_ui: Er einans viðkomandi fyri skriviborðskagar grundaðir á Safari og Chrome
setting_use_blurhash: Gradientar eru grundaðir á litirnar av fjaldu myndunum, men grugga allar smálutir
setting_use_pending_items: Fjal tíðarlinjudagføringar aftan fyri eitt klikk heldur enn at skrulla tilføringina sjálvvirkandi
@@ -241,6 +242,7 @@ fo:
setting_display_media_default: Sjálvvirði
setting_display_media_hide_all: Fjal alt
setting_display_media_show_all: Vís alt
+ setting_emoji_style: Kensluteknsstílur
setting_expand_spoilers: Víðka altíð postar, sum eru merktir við innihaldsávaringum
setting_hide_network: Fjal sosiala grafin hjá tær
setting_missing_alt_text_modal: Spyr um góðkenning áðrenn miðlar uttan alternativan tekst verða postaðir
diff --git a/config/locales/simple_form.fy.yml b/config/locales/simple_form.fy.yml
index 047723e487b..ddbac08b736 100644
--- a/config/locales/simple_form.fy.yml
+++ b/config/locales/simple_form.fy.yml
@@ -56,10 +56,12 @@ fy:
scopes: Ta hokker API’s hat de tapassing tagong. Wannear’t jo in tastimming fan it boppeste nivo kieze, hoege jo gjin yndividuele tastimmingen mear te kiezen.
setting_aggregate_reblogs: Gjin nije boosts toane foar berjochten dy’t resintlik noch boost binne (hat allinnich effekt op nij ûntfongen boosts)
setting_always_send_emails: Normaliter wurde der gjin e-mailmeldingen ferstjoerd wannear’t jo aktyf Mastodon brûke
+ setting_default_quote_policy: It is foar brûkers dy’t fermeld wurde altyd tastien om te sitearjen. Dizze ynstelling is allinnich fan tapassing foar berjochten dy’t makke binne mei de folgjende Mastodon-ferzje, mar jo kinne jo foarkar no al ynstelle
setting_default_sensitive: Gefoelige media wurdt standert ferstoppe en kin mei ien klik toand wurde
setting_display_media_default: As gefoelich markearre media ferstopje
setting_display_media_hide_all: Media altyd ferstopje
setting_display_media_show_all: Media altyd toane
+ setting_emoji_style: Wêrmei moatte emojis werjûn wurde. ‘Automatysk’ probearret de systeemeigen emojis te brûken, mar falt werom op Twemoji foar âldere browsers.
setting_system_scrollbars_ui: Allinnich fan tapassing op desktopbrowsers basearre op Safari en Chromium
setting_use_blurhash: Dizige kleuroergongen binne basearre op de kleuren fan de ferstoppe media, wêrmei elk detail ferdwynt
setting_use_pending_items: De tiidline wurdt bywurke troch op it oantal nije items te klikken, yn stee fan dat dizze automatysk bywurke wurdt
@@ -148,6 +150,9 @@ fy:
min_age: Mei net leger wêze as de minimale fereaske leeftiid neffens de wetten fan jo jurisdiksje.
user:
chosen_languages: Allinnich berjochten yn de selektearre talen wurde op de iepenbiere tiidline toand
+ date_of_birth:
+ one: Wy moatte derfoar soargje dat jo op syn minst %{count} binne om Mastodon te brûken. Dit wurdt net bewarre.
+ other: Wy moatte derfoar soargje dat jo op syn minst %{count} binne om Mastodon te brûken. Dit wurdt net bewarre.
role: De rol bepaalt hokker rjochten in brûker hat.
user_role:
color: Kleur dy’t brûkt wurdt foar de rol yn de UI, as RGB yn heksadesimaal formaat
@@ -228,6 +233,7 @@ fy:
setting_boost_modal: Freegje foar it boosten fan in berjocht in befêstiging
setting_default_language: Taal fan jo berjochten
setting_default_privacy: Sichtberheid fan nije berjochten
+ setting_default_quote_policy: Wa kin sitearje
setting_default_sensitive: Media altyd as gefoelich markearje
setting_delete_modal: Freegje foar it fuortsmiten fan in berjocht in befêstiging
setting_disable_hover_cards: Profylfoarbylden troch der oerhinne te sweven útskeakelje
@@ -236,6 +242,7 @@ fy:
setting_display_media_default: Standert
setting_display_media_hide_all: Alles ferstopje
setting_display_media_show_all: Alles toane
+ setting_emoji_style: Emojistyl
setting_expand_spoilers: Berjochten mei ynhâldswarskôgingen altyd útklappe
setting_hide_network: Jo folgers en wa’t jo folget ferstopje
setting_missing_alt_text_modal: Befêstigingsfinster toane foar it pleatsen fan media sûnder alt-tekst
diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml
index b26cd854fc5..9c7b9fe28eb 100644
--- a/config/locales/simple_form.ga.yml
+++ b/config/locales/simple_form.ga.yml
@@ -61,6 +61,7 @@ ga:
setting_display_media_default: Folaigh meáin atá marcáilte mar íogair
setting_display_media_hide_all: Folaigh meáin i gcónaí
setting_display_media_show_all: Taispeáin meáin i gcónaí
+ setting_emoji_style: Conas emojis a thaispeáint. Déanfaidh "Auto" iarracht emoji dúchasacha a úsáid, ach titeann sé ar ais go Twemoji le haghaidh seanbhrabhsálaithe.
setting_system_scrollbars_ui: Ní bhaineann sé ach le brabhsálaithe deisce bunaithe ar Safari agus Chrome
setting_use_blurhash: Tá grádáin bunaithe ar dhathanna na n-amharcanna ceilte ach cuireann siad salach ar aon mhionsonraí
setting_use_pending_items: Folaigh nuashonruithe amlíne taobh thiar de chlic seachas an fotha a scrollú go huathoibríoch
@@ -244,6 +245,7 @@ ga:
setting_display_media_default: Réamhshocrú
setting_display_media_hide_all: Cuir uile i bhfolach
setting_display_media_show_all: Taispeáin uile
+ setting_emoji_style: Stíl Emoji
setting_expand_spoilers: Méadaigh postálacha atá marcáilte le rabhaidh inneachair i gcónaí
setting_hide_network: Folaigh do ghraf sóisialta
setting_missing_alt_text_modal: Taispeáin dialóg deimhnithe sula bpostálann tú meán gan alt téacs
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index a425a103847..40354650cca 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -61,6 +61,7 @@ gl:
setting_display_media_default: Ocultar medios marcados como sensibles
setting_display_media_hide_all: Ocultar sempre os medios
setting_display_media_show_all: Mostrar sempre os medios marcados como sensibles
+ setting_emoji_style: Forma de mostrar emojis. «Auto» intentará usar os emojis nativos, e se falla recurrirase a Twemoji en navegadores antigos.
setting_system_scrollbars_ui: Aplícase só en navegadores de escritorio baseados en Safari e Chrome
setting_use_blurhash: Os gradientes toman as cores da imaxe oculta pero esvaecendo tódolos detalles
setting_use_pending_items: Agochar actualizacións da cronoloxía tras un click no lugar de desprazar automáticamente os comentarios
@@ -241,6 +242,7 @@ gl:
setting_display_media_default: Por defecto
setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo
+ setting_emoji_style: Estilo dos emojis
setting_expand_spoilers: Despregar sempre as publicacións marcadas con avisos de contido
setting_hide_network: Non mostrar contactos
setting_missing_alt_text_modal: Mostrar mensaxe de confirmación antes de publicar multimedia sen texto descritivo
diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml
index 4bceaa7e8f4..69699c44293 100644
--- a/config/locales/simple_form.he.yml
+++ b/config/locales/simple_form.he.yml
@@ -61,6 +61,7 @@ he:
setting_display_media_default: הסתרת מדיה המסומנת כרגישה
setting_display_media_hide_all: הסתר מדיה תמיד
setting_display_media_show_all: גלה מדיה תמיד
+ setting_emoji_style: כיצד להציג רגישונים. "אוטומטי" ינסה להציג מסט האימוג'י המקומי, אבל נופל לערכת Twemoji כברירת מחדל עבור דפדפנים ישנים.
setting_system_scrollbars_ui: נוגע רק לגבי דפדפני דסקטופ מבוססים ספארי וכרום
setting_use_blurhash: הגראדיינטים מבוססים על תוכן התמונה המוסתרת, אבל מסתירים את כל הפרטים
setting_use_pending_items: הסתר עדכוני פיד מאחורי קליק במקום לגלול את הפיד אוטומטית
@@ -243,6 +244,7 @@ he:
setting_display_media_default: ברירת מחדל
setting_display_media_hide_all: להסתיר הכל
setting_display_media_show_all: להציג הכול
+ setting_emoji_style: סגנון רגישונים (אמוג'י)
setting_expand_spoilers: להרחיב תמיד הודעות מסומנות באזהרת תוכן
setting_hide_network: להחביא את הגרף החברתי שלך
setting_missing_alt_text_modal: הצג כרטיס אישור לפני פרסום קובץ גרפי ללא תיאור מילולי
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index e54adb8ca28..540da347c11 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -61,6 +61,7 @@ hu:
setting_display_media_default: Kényes tartalomnak jelölt média elrejtése
setting_display_media_hide_all: Média elrejtése mindig
setting_display_media_show_all: Média megjelenítése mindig
+ setting_emoji_style: Az emodzsik megjelenítési módja. Az „Automatikus” megpróbálja a natív emodzsikat használni, de az örökölt böngészők esetén a Twemojira vált vissza.
setting_system_scrollbars_ui: Csak Chrome és Safari alapú asztali böngészőkre vonatkozik
setting_use_blurhash: A kihomályosítás az eredeti képből történik, de minden részletet elrejt
setting_use_pending_items: Idővonal frissítése csak kattintásra automatikus görgetés helyett
@@ -241,6 +242,7 @@ hu:
setting_display_media_default: Alapértelmezés
setting_display_media_hide_all: Mindent elrejt
setting_display_media_show_all: Mindent mutat
+ setting_emoji_style: Emodzsistílus
setting_expand_spoilers: Tartalmi figyelmeztetéssel ellátott bejegyzések automatikus kinyitása
setting_hide_network: Hálózatod elrejtése
setting_missing_alt_text_modal: Megerősítési párbeszédablak megjelenítése a helyettesítő szöveg nélküli média közzététele előtt
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 778d2d8f64f..0313bd378b8 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -61,6 +61,7 @@ is:
setting_display_media_default: Fela myndefni sem merkt er viðkvæmt
setting_display_media_hide_all: Alltaf fela allt myndefni
setting_display_media_show_all: Alltaf birta myndefni sem merkt er viðkvæmt
+ setting_emoji_style: Hvernig birta skal tjáningartákn (emoji). "Sjálfvirkt" mun reyna að nota innbyggð tjáningartákn, en til vara verða notuð Twemoji-tákn fyrir eldri vafra.
setting_system_scrollbars_ui: Á einungis við um vafra fyrir vinnutölvur sem byggjast á Safari og Chrome
setting_use_blurhash: Litstiglarnir byggja á litunum í földu myndunum, en gera öll smáatriði óskýr
setting_use_pending_items: Fela uppfærslur tímalínu þar til smellt er, í stað þess að hún skruni streyminu sjálfvirkt
@@ -241,6 +242,7 @@ is:
setting_display_media_default: Sjálfgefið
setting_display_media_hide_all: Fela allt
setting_display_media_show_all: Birta allt
+ setting_emoji_style: Stíll tjáningartákna
setting_expand_spoilers: Alltaf útfella færslur sem eru með aðvörun vegna efnisins
setting_hide_network: Fela félagsnetið þitt
setting_missing_alt_text_modal: Birta staðfestingarglugga áður en myndefni án ALT-hjálpartexta er birt
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 556688337b3..9428f389962 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -61,6 +61,7 @@ it:
setting_display_media_default: Nascondi media segnati come sensibili
setting_display_media_hide_all: Nascondi sempre tutti i media
setting_display_media_show_all: Mostra sempre i media segnati come sensibili
+ setting_emoji_style: Come visualizzare gli emoji. "Automatico" proverà a usare gli emoji nativi, ma per i browser più vecchi ricorrerà a Twemoji.
setting_system_scrollbars_ui: Si applica solo ai browser desktop basati su Safari e Chrome
setting_use_blurhash: I gradienti sono basati sui colori delle immagini nascoste ma offuscano tutti i dettagli
setting_use_pending_items: Fare clic per mostrare i nuovi messaggi invece di aggiornare la timeline automaticamente
@@ -90,7 +91,7 @@ it:
favicon: WEBP, PNG, GIF o JPG. Sostituisce la favicon predefinita di Mastodon con un'icona personalizzata.
mascot: Sostituisce l'illustrazione nell'interfaccia web avanzata.
media_cache_retention_period: I file multimediali da post fatti da utenti remoti sono memorizzati nella cache sul tuo server. Quando impostato a un valore positivo, i media verranno eliminati dopo il numero specificato di giorni. Se i dati multimediali sono richiesti dopo che sono stati eliminati, saranno nuovamente scaricati, se il contenuto sorgente è ancora disponibile. A causa di restrizioni su quanto spesso link anteprima carte sondaggio siti di terze parti, si consiglia di impostare questo valore ad almeno 14 giorni, o le schede di anteprima link non saranno aggiornate su richiesta prima di quel tempo.
- min_age: Gli utenti saranno invitati a confermare la loro data di nascita durante la registrazione
+ min_age: Agli utenti verrà chiesto di confermare la propria data di nascita durante l'iscrizione
peers_api_enabled: Un elenco di nomi di dominio che questo server ha incontrato nel fediverse. Qui non sono inclusi dati sul fatto se si federano con un dato server, solo che il server ne è a conoscenza. Questo viene utilizzato dai servizi che raccolgono statistiche sulla federazione in senso generale.
profile_directory: La directory del profilo elenca tutti gli utenti che hanno acconsentito ad essere individuabili.
require_invite_text: 'Quando le iscrizioni richiedono l''approvazione manuale, rendi la domanda: "Perché vuoi unirti?" obbligatoria anziché facoltativa'
@@ -241,6 +242,7 @@ it:
setting_display_media_default: Predefinita
setting_display_media_hide_all: Nascondi tutti
setting_display_media_show_all: Mostra tutti
+ setting_emoji_style: Stile emoji
setting_expand_spoilers: Espandi sempre post con content warning
setting_hide_network: Nascondi la tua rete
setting_missing_alt_text_modal: Chiedi di confermare prima di pubblicare media senza testo alternativo
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index fd0b243d6ff..e425bab9fb7 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -61,6 +61,7 @@ ko:
setting_display_media_default: 민감함으로 표시된 미디어 가리기
setting_display_media_hide_all: 모든 미디어를 가리기
setting_display_media_show_all: 모든 미디어를 보이기
+ setting_emoji_style: 에모지 표현 방식. "자동"은 시스템 기본 에모지를 적용하고 그렇지 못하는 오래된 브라우저의 경우 트웨모지를 사용합니다.
setting_system_scrollbars_ui: 사파리와 크롬 기반의 데스크탑 브라우저만 적용됩니다
setting_use_blurhash: 그라디언트는 숨겨진 내용의 색상을 기반으로 하지만 상세 내용은 보이지 않게 합니다
setting_use_pending_items: 타임라인의 새 게시물을 자동으로 보여 주는 대신, 클릭해서 나타내도록 합니다
@@ -141,6 +142,8 @@ ko:
admin_email: 법적 고지에는 이의 제기, 법원 명령, 게시 중단 요청, 법 집행 요청이 포함됩니다.
arbitration_address: 위의 실제 주소와 같을 수 있으며, 이메일을 사용한다면 "N/A"로 두세요.
arbitration_website: 웹 형태를 사용할 수 있습니다. 이메일을 사용한다면 "N/A"로 둘 수 있습니다.
+ choice_of_law: 모든 청구에 대해 법령이 적용되는 시, 지역, 영토 또는 주.
+ dmca_address: 미국 운영자의 경우 DMCA 지정 대리인 디렉토리에 등록된 주소를 사용하세요. 사서함 목록은 직접 요청 시에 제공되며, DMCA 지정 대리인 사서함 면제 요청을 사용하여 저작권 사무소에 이메일을 보내 자신의 행동에 대한 복수나 보복이 두려워 사서함을 사용하여 집 주소를 공개하지 않아야 하는 재택 콘텐츠 중재자임을 설명하세요.
dmca_email: 상단의 "법적 통지를 위한 이메일 주소"와 같은 주소를 사용할 수 있습니다.
domain: 귀하가 제공하는 온라인 서비스의 고유 식별정보입니다.
jurisdiction: 요금을 지불하는 사람이 거주하는 국가를 기재하세요. 회사나 기타 법인인 경우 해당 법인이 설립된 국가와 도시, 지역, 영토 또는 주를 적절히 기재하세요.
@@ -238,6 +241,7 @@ ko:
setting_display_media_default: 기본
setting_display_media_hide_all: 모두 가리기
setting_display_media_show_all: 모두 보이기
+ setting_emoji_style: 에모지 스타일
setting_expand_spoilers: 내용 경고로 표시된 게시물을 항상 펼치기
setting_hide_network: 내 인맥 숨기기
setting_missing_alt_text_modal: 대체 텍스트 없이 미디어를 게시하려고 할 때 확인창을 띄웁니다
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index dd9e2f78ca7..78ac35b46d5 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -61,6 +61,7 @@ nl:
setting_display_media_default: Als gevoelig gemarkeerde media verbergen
setting_display_media_hide_all: Media altijd verbergen
setting_display_media_show_all: Media altijd tonen
+ setting_emoji_style: Waarmee moeten emojis worden weergegeven. ‘Auto’ probeert de systeemeigen emojis te gebruiken, maar valt terug op Twemoji voor oudere webbrowsers.
setting_system_scrollbars_ui: Alleen van toepassing op desktopbrowsers gebaseerd op Safari en Chrome
setting_use_blurhash: Wazige kleurovergangen zijn gebaseerd op de kleuren van de verborgen media, waarmee elk detail verdwijnt
setting_use_pending_items: De tijdlijn wordt bijgewerkt door op het aantal nieuwe items te klikken, in plaats van dat deze automatisch wordt bijgewerkt
@@ -241,6 +242,7 @@ nl:
setting_display_media_default: Standaard
setting_display_media_hide_all: Alles verbergen
setting_display_media_show_all: Alles tonen
+ setting_emoji_style: Emoji-stijl
setting_expand_spoilers: Berichten met inhoudswaarschuwingen altijd uitklappen
setting_hide_network: Jouw volgers en wie je volgt verbergen
setting_missing_alt_text_modal: Bevestigingsvenster tonen voor het plaatsen van media zonder alt-tekst
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index ff6f272d255..41770f6efe1 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -4,32 +4,32 @@ ru:
hints:
account:
attribution_domains: По одному на строку. Защищает от ложных атрибуций.
- discoverable: Ваши публичные сообщения и профиль могут быть показаны или рекомендованы в различных разделах Mastodon, и ваш профиль может быть предложен другим пользователям.
+ discoverable: Отметьте флажок, чтобы ваши публичные посты и ваш профиль могли быть показаны или рекомендованы в различных разделах Mastodon, а ваш профиль мог быть предложен другим пользователям.
display_name: Ваше полное имя или псевдоним.
- fields: Ваша домашняя страница, местоимения, возраст - все, что угодно.
- indexable: Ваши публичные сообщения могут появляться в результатах поиска на Mastodon. Люди, которые взаимодействовали с вашими сообщениями, могут искать их независимо от этого.
- note: 'Вы можете @упоминать других людей или #хэштеги.'
- show_collections: Люди смогут просматривать список ваших подписок и подписчиков. Люди, за которыми вы следуете, будут видеть, что вы подписаны на них, несмотря ни на что.
- unlocked: Люди смогут подписываться на вас, не запрашивая подтверждения. Снимите флажок, если вы хотите просматривать запросы на подписку и выбирать, принимать или отклонять новых подписчиков.
+ fields: Домашняя страница, местоимения, возраст — всё что угодно.
+ indexable: Отметьте флажок, чтобы ваши публичные посты могли быть найдены при помощи поиска в Mastodon. Люди, которые взаимодействовали с вашими постами, смогут их найти вне зависимости от этой настройки.
+ note: 'Вы можете @упоминать других людей или использовать #хештеги.'
+ show_collections: Отметьте флажок, чтобы кто угодно мог просматривать список ваших подписок и подписчиков. Люди, на которых вы подписаны, будут знать о том, что вы на них подписаны, вне зависимости от этой настройки.
+ unlocked: 'Отметьте флажок, чтобы на вас можно было подписаться, не запрашивая подтверждения. Снимите флажок, чтобы вы могли просматривать запросы на подписку и выбирать: принять или отклонить новых подписчиков.'
account_alias:
- acct: Укажите имя_пользователя@домен учётной записи, с которой вы собираетесь мигрировать
+ acct: Укажите имя_пользователя@домен учётной записи, с которой вы собираетесь переехать
account_migration:
- acct: Укажите имя_пользователя@домен учётной записи, на которую вы собираетесь мигрировать
+ acct: Укажите имя_пользователя@домен учётной записи, на которую вы собираетесь переехать
account_warning_preset:
- text: Можно использовать синтаксис сообщений, например URL, хэштеги и упоминания
+ text: Вы можете использовать всё то же самое, что и в обычных постах — ссылки, хештеги и упоминания
title: Необязательно. Не видно получателю
admin_account_action:
include_statuses: Пользователь будет видеть к каким постами применялись модераторские действия и выносились предупреждения
send_email_notification: Пользователь получит сообщение о том, что случилось с его/её учётной записью
- text_html: Необязательно. Вы можете использовать синтаксис постов. Для экономии времени, добавьте шаблоны предупреждений
- type_html: Выберите применяемое к %{acct} действие
+ text_html: Необязательно. Можно использовать всё то же самое, что и в обычных постах. Для экономии времени вы можете добавить шаблоны предупреждений
+ type_html: Выберите, какую санкцию вынести в отношении %{acct}
types:
disable: Запретить пользователю использование своей учётной записи, без удаления или скрытия контента.
none: Отправить пользователю предупреждение, не принимая иных действий.
sensitive: Принудительно отметить опубликованное пользователем содержимое как «деликатного характера».
silence: Запретить пользователю публиковать посты с открытой видимостью, а также скрыть все прошлые посты и уведомления от людей, не читающих этого пользователя. Закрыть все отчеты по этому счету.
suspend: Предотвратить любое взаимодействие с этой учётной записью, удалив всё содержимое опубликованное с неё. Это действие можно отменить в течение 30 дней. Закрывает все отчеты против этого аккаунта.
- warning_preset_id: Необязательно. Вы можете добавить собственный текст в конце шаблона
+ warning_preset_id: Необязательно. Вы по-прежнему сможете добавить собственный текст в конец шаблона
announcement:
all_day: Если выбрано, часы начала и завершения будут скрыты
ends_at: Необязательно. Объявление будет автоматически отменено в это время
@@ -39,45 +39,46 @@ ru:
appeal:
text: Вы можете обжаловать замечание только один раз
defaults:
- autofollow: Люди, пришедшие по этому приглашению, автоматически будут подписаны на вас.
- avatar: WEBP PNG, GIF и JPG. Не более %{size}. Будет уменьшен до %{dimensions}px
- bot: Отметьте, если с этой учётной записи выполняются автоматизированные действия и она может не просматриваться владельцем.
- context: Один или несколько контекстов, к которым должны быть применены фильтры
+ autofollow: Отметьте флажок, чтобы люди, присоединившиеся по этому приглашению, были автоматически подписаны на вас
+ avatar: Поддерживаются WEBP, PNG, GIF и JPG. Максимальный размер — %{size}. Файл будет уменьшен до %{dimensions} пикселей
+ bot: Отметьте флажок, если с этой учётной записи выполняются автоматизированные действия, и она не всегда может находиться под наблюдением владельца
+ context: Один или несколько контекстов, в которых должен применяться фильтр
current_password: В целях безопасности введите пароль текущей учётной записи
current_username: Для подтверждения, пожалуйста, введите имя пользователя текущей учётной записи
digest: Если вы долго не заглядывали, отправим вам дайджест событий, которые происходили в период вашего отсутствия.
- email: Вам будет отправлено электронное письмо с подтверждением.
- header: WEBP PNG, GIF и JPG. Не более %{size}. Будет уменьшен до %{dimensions}px
+ email: Вы получите письмо с инструкциями по подтверждению
+ header: Поддерживаются WEBP, PNG, GIF и JPG. Максимальный размер — %{size}. Файл будет уменьшен до %{dimensions} пикселей
inbox_url: Копировать URL с главной страницы ретранслятора, который вы хотите использовать
- irreversible: Отфильтрованные посты будут утеряны навсегда, даже если в будущем фильтр будет убран
- locale: Язык интерфейса, e-mail писем и push-уведомлений
- password: Укажите не менее 8 символов.
- phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании поста
- scopes: Какие API приложению будет позволено использовать. Если вы выберете самый верхний, нижестоящие будут выбраны автоматически.
- setting_aggregate_reblogs: Не показывать новые продвижения постов, которые уже были недавно продвинуты (относится только к новым продвижениям).
- setting_always_send_emails: По умолчанию, когда вы активно используете Mastodon, уведомления по электронной почте не отправляются
- setting_default_sensitive: Медиафайлы «деликатного характера» скрыты по умолчанию и могут быть показаны по нажатию на них.
- setting_display_media_default: Скрывать файлы «деликатного характера»
- setting_display_media_hide_all: Всегда скрывать любые медиафайлы
- setting_display_media_show_all: Всегда показывать любые медиафайлы
+ irreversible: Отфильтрованные посты будут утрачены навсегда, даже если в будущем фильтр будет удалён
+ locale: Язык интерфейса, электронных писем и push-уведомлений
+ password: Пароль должен состоять минимум из 8 символов
+ phrase: Поиск соответствия будет выполнен без учёта регистра в тексте поста и в тексте предупреждения о содержании
+ scopes: Выберите, какие API приложение сможет использовать. Разрешения верхнего уровня имплицитно включают в себя все разрешения более низких уровней.
+ setting_aggregate_reblogs: Не показывать новые продвижения постов, которые уже были недавно продвинуты (применяется только к будущим продвижениям)
+ setting_always_send_emails: По умолчанию уведомления не доставляются по электронной почте, пока вы активно используете Mastodon
+ setting_default_quote_policy: Упомянутые пользователи всегда смогут вас цитировать. Эта настройка будет применена только к постам, созданным в следующей версии Mastodon, но вы можете заранее определить свои предпочтения
+ setting_default_sensitive: Медиа деликатного характера скрыты по умолчанию и могут быть показаны по нажатию на них
+ setting_display_media_default: Скрывать медиа деликатного характера
+ setting_display_media_hide_all: Скрывать все медиа
+ setting_display_media_show_all: Показывать все медиа
setting_system_scrollbars_ui: Работает только в браузерах для ПК на основе Safari или Chrome
- setting_use_blurhash: Градиенты основаны на цветах скрытых медиа, но скрывают любые детали.
- setting_use_pending_items: Показывать обновления в ленте только после клика вместо автоматической прокрутки.
- username: Вы можете использовать буквы, цифры и знаки подчеркивания
- whole_word: Если слово или фраза состоит только из букв и цифр, сопоставление произойдёт только по полному совпадению
+ setting_use_blurhash: Градиенты основаны на цветах скрытых медиа, но скрывают любые детали
+ setting_use_pending_items: Отметьте флажок, чтобы выключить автоматическую прокрутку, и тогда обновления в лентах будут вам показаны только по нажатию
+ username: Вы можете использовать буквы, цифры и символы подчёркивания
+ whole_word: Если ключевое слово или фраза состоит только из букв и цифр, фильтр будет применён только в случае соответствия всему слову или фразе целиком
domain_allow:
domain: Этот домен сможет получать данные с этого сервера и его входящие данные будут обрабатываться и сохранены
email_domain_block:
domain: Это может быть доменное имя, которое отображается в адресе электронной почты или используемая MX запись. Они будут проверяться при регистрации.
with_dns_records: Будет сделана попытка разрешить DNS-записи данного домена и результаты также будут внесены в чёрный список
featured_tag:
- name: 'Вот некоторые хэштеги, которые вы использовали в последнее время:'
+ name: 'Вот некоторые хештеги, которые вы использовали чаще других в последнее время:'
filters:
- action: Выберите действие, которое нужно выполнить, когда сообщение соответствует фильтру
+ action: Выберите действие, которое нужно применить к постам, соответствующим фильтру
actions:
- blur: Скрыть медиа с предупреждением, не скрывая сам текст
- hide: Полностью скрыть отфильтрованный контент так, как будто его не существует
- warn: Скрыть отфильтрованный контент за предупреждением с указанием названия фильтра
+ blur: Скрыть медиа за предупреждением, не скрывая сам текст поста
+ hide: Полностью скрыть отфильтрованный пост, будто бы его не существует
+ warn: Скрыть отфильтрованный пост за предупреждением с указанием названия фильтра
form_admin_settings:
activity_api_enabled: Подсчёт количества локальных постов, активных пользователей и новых регистраций на еженедельной основе
app_icon: WEBP, PNG, GIF или JPG. Замените значок приложения по умолчанию на мобильных устройствах пользовательским значком.
@@ -107,9 +108,9 @@ ru:
trends: Тренды показывают, какие посты, хэштеги и новостные истории набирают обороты на вашем сервере.
trends_as_landing_page: Показывать популярный контент для выходов пользователей и посетителей, а не для описания этого сервера. Требует включения тенденций.
form_challenge:
- current_password: Вы переходите к настройкам безопасности
+ current_password: Вы переходите к настройкам безопасности вашей учётной записи
imports:
- data: Файл CSV, экспортированный с другого узла Mastodon.
+ data: Файл CSV, который вы экспортировали с другого сервера Mastodon
invite_request:
text: Это поможет нам рассмотреть вашу заявку
ip_block:
@@ -125,11 +126,11 @@ ru:
hint: Необязательно. Предоставьте дополнительные сведения о правиле
text: Опишите правило или требование для пользователей на этом сервере. Постарайтесь сделать его коротким и простым
sessions:
- otp: 'Введите код двухфакторной аутентификации, сгенерированный в мобильном приложении, или используйте один из ваших кодов восстановления:'
+ otp: 'Создайте код двухфакторной аутентификации в приложении на вашем смартфоне и введите его здесь, или же вы можете использовать один из ваших резервных кодов:'
webauthn: Если это ключ USB, не забудьте его вставить и, при необходимости, нажмите на него.
settings:
- indexable: Страница вашего профиля может отображаться в результатах поиска Google, Bing и других поисковых системах.
- show_application: Вы всегда сможете увидеть, какое приложение опубликовало ваше сообщение.
+ indexable: Отметьте флажок, чтобы ваш профиль мог быть найден с помощью Google, Bing, Яндекса и других поисковых систем.
+ show_application: Вы сами в любом случае будете видеть, в каком приложении был опубликован пост.
tag:
name: Вы можете изменить только регистр букв чтобы, например, сделать тег более читаемым
terms_of_service:
@@ -147,7 +148,12 @@ ru:
jurisdiction: Впишите страну, где находится лицо, оплачивающее счета. Если это компания либо организация, впишите страну инкорпорации, включая город, регион, территорию или штат, если это необходимо.
min_age: Не меньше минимального возраста, требуемого по закону в вашей юрисдикции.
user:
- chosen_languages: Если выбрано, то в публичных лентах будут показаны только посты на выбранных языках.
+ chosen_languages: Отметьте языки, на которых вы желаете видеть посты в публичных лентах. Оставьте выбор пустым, чтобы не фильтровать посты по языку
+ date_of_birth:
+ few: Нужно убедиться, что вам не меньше %{count} лет. Мы не храним введённые здесь данные.
+ many: Нужно убедиться, что вам не меньше %{count} лет. Мы не храним введённые здесь данные.
+ one: Нужно убедиться, что вам не меньше %{count} года. Мы не храним введённые здесь данные.
+ other: Нужно убедиться, что вам не меньше %{count} лет. Мы не храним введённые здесь данные.
role: Роль определяет, какими правами обладает пользователь.
user_role:
color: Цвет, который будет использоваться для роли в интерфейсе (UI), как RGB в формате HEX
@@ -162,23 +168,23 @@ ru:
labels:
account:
attribution_domains: Веб-сайты, которым разрешено ссылаться на вас
- discoverable: Профиль и сообщения в алгоритмах обнаружения
+ discoverable: Показывать мой профиль и мои посты в алгоритмических рекомендациях
fields:
- name: Пункт
+ name: Свойство
value: Значение
- indexable: Включить публичные сообщения в результаты поиска
- show_collections: Показать подписки и подписчиков в профиле
+ indexable: Разрешить поиск по моим публичным постам
+ show_collections: Показывать мои подписки и моих подписчиков в профиле
unlocked: Автоматически принимать новых подписчиков
account_alias:
- acct: Имя старой учётной записи
+ acct: Адрес старой учётной записи
account_migration:
- acct: Имя новой учётной записи
+ acct: Адрес новой учётной записи
account_warning_preset:
text: Текст шаблона
title: Заголовок
admin_account_action:
include_statuses: Включать в письмо жалобы на посты
- send_email_notification: Уведомить пользователя по e-mail
+ send_email_notification: Уведомить пользователя по электронной почте
text: Текст предупреждения
type: Действие
types:
@@ -187,7 +193,7 @@ ru:
sensitive: Отметить как «деликатного характера»
silence: Скрыть
suspend: Заблокировать и безвозвратно удалить все данные учётной записи
- warning_preset_id: Использовать шаблон
+ warning_preset_id: Использовать шаблон предупреждения
announcement:
all_day: Весь день
ends_at: Время завершения
@@ -197,67 +203,68 @@ ru:
appeal:
text: Объясните, почему это решение должно быть отменено
defaults:
- autofollow: С подпиской на вашу учётную запись
- avatar: Аватар
+ autofollow: С подпиской на ваш профиль
+ avatar: Фото профиля
bot: Это учётная запись бота
- chosen_languages: Фильтр языков
+ chosen_languages: Фильтр по языку
confirm_new_password: Повторите новый пароль
confirm_password: Повторите пароль
- context: Контекст фильтра
+ context: Контексты фильтра
current_password: Текущий пароль
data: Данные
display_name: Отображаемое имя
- email: Адрес e-mail
- expires_in: Истекает через
- fields: Таблица деталей
- header: Шапка
+ email: Адрес электронной почты
+ expires_in: Срок действия
+ fields: Дополнительные поля
+ header: Обложка профиля
honeypot: "%{label} (не заполнять)"
inbox_url: URL для входящих от ретрансляторов
irreversible: Удалять, а не скрывать
locale: Язык интерфейса
- max_uses: Максимальное кол-во использований
+ max_uses: Максимальное количество использований
new_password: Новый пароль
note: О себе
- otp_attempt: Код из приложения-аутентификатора
+ otp_attempt: Код 2FA
password: Пароль
- phrase: Слово или фраза
+ phrase: Ключевое слово или фраза
setting_advanced_layout: Включить многоколоночный интерфейс
setting_aggregate_reblogs: Группировать продвижения в лентах
setting_always_send_emails: Всегда отправлять уведомления по электронной почте
- setting_auto_play_gif: Автоматически проигрывать GIF анимации
- setting_boost_modal: Всегда спрашивать перед продвижением
+ setting_auto_play_gif: Включить автовоспроизведение анимированных GIF-файлов
+ setting_boost_modal: Запрашивать подтверждение при продвижении поста
setting_default_language: Язык публикуемых постов
setting_default_privacy: Видимость постов
- setting_default_sensitive: Всегда отмечать медиафайлы как «деликатного характера»
- setting_delete_modal: Всегда спрашивать перед удалении поста
- setting_disable_hover_cards: Отключить предпросмотр профиля при наведении
- setting_disable_swiping: Отключить анимацию смахивания
- setting_display_media: Отображение медиафайлов
+ setting_default_quote_policy: Кто может цитировать вас
+ setting_default_sensitive: Отмечать все мои медиа как контент деликатного характера
+ setting_delete_modal: Запрашивать подтверждение при удалении поста
+ setting_disable_hover_cards: Отключить предпросмотр профиля при наведении курсора
+ setting_disable_swiping: Отключить анимацию перелистывания
+ setting_display_media: Отображение медиа
setting_display_media_default: По умолчанию
setting_display_media_hide_all: Скрывать все
setting_display_media_show_all: Показывать все
- setting_expand_spoilers: Всегда раскрывать посты, имеющие предупреждение о содержании
- setting_hide_network: Скрыть свои связи
- setting_missing_alt_text_modal: Всегда спрашивать перед публикацией медиафайлов без альтернативного текста
- setting_reduce_motion: Уменьшить движение в анимации
- setting_system_font_ui: Использовать шрифт системы по умолчанию
+ setting_expand_spoilers: Разворачивать все посты с предупреждением о содержании
+ setting_hide_network: Скрыть мои связи
+ setting_missing_alt_text_modal: Запрашивать подтверждение при публикации медиа без альтернативного текста
+ setting_reduce_motion: Уменьшить движение пользовательского интерфейса
+ setting_system_font_ui: Использовать системный шрифт
setting_system_scrollbars_ui: Использовать системные полосы прокрутки
setting_theme: Тема сайта
- setting_trends: Показывать сегодняшние тренды
- setting_unfollow_modal: Всегда спрашивать перед отпиской от учётной записи
- setting_use_blurhash: Показать цветные градиенты для скрытых медиафайлов
+ setting_trends: Показывать актуальные темы
+ setting_unfollow_modal: Запрашивать подтверждение при отписке
+ setting_use_blurhash: Показывать цветные градиенты для скрытых медиа
setting_use_pending_items: Медленный режим
severity: Накладываемые ограничения
sign_in_token_attempt: Код безопасности
title: Название
- type: Тип импорта
+ type: Тип данных для импорта
username: Имя пользователя
- username_or_email: Имя пользователя или e-mail
+ username_or_email: Имя пользователя или адрес эл. почты
whole_word: Слово целиком
email_domain_block:
with_dns_records: Включить MX-записи и IP-адреса домена
featured_tag:
- name: Добавить хэштег
+ name: Хештег
filters:
actions:
blur: Скрыть медиа с предупреждением
@@ -295,13 +302,13 @@ ru:
trends: Включить тренды
trends_as_landing_page: Использовать тенденции в качестве целевой страницы
interactions:
- must_be_follower: Присылать уведомления только от подписчиков
- must_be_following: Присылать уведомления только от людей на которых вы подписаны
- must_be_following_dm: Разрешить присылать личные сообщения только людям, на которых вы подписаны
+ must_be_follower: Блокировать уведомления от людей, которые не подписаны на вас
+ must_be_following: Блокировать уведомления от людей, на которых вы не подписаны
+ must_be_following_dm: Блокировать личные сообщения от людей, на которых вы не подписаны
invite:
comment: Комментарий
invite_request:
- text: Почему вы хотите присоединиться к нам?
+ text: Почему вы хотите присоединиться?
ip_block:
comment: Комментарий
ip: IP
@@ -313,10 +320,10 @@ ru:
notification_emails:
appeal: Кто-то обжалует решение модератора
digest: Присылать дайджест по e-mail
- favourite: Ваш пост добавили в избранное
- follow: Новый подписчик
- follow_request: Новый запрос на подписку
- mention: Новое упоминание
+ favourite: Мой пост добавили в избранное
+ follow: У меня новый подписчик
+ follow_request: Мне пришёл запрос на подписку
+ mention: Меня упомянули в посте
pending_account: Новая заявка на создание аккаунта
reblog: Ваш пост продвинули
report: Новое обращение отправлено
@@ -331,8 +338,8 @@ ru:
hint: Больше информации
text: Правило
settings:
- indexable: Включить страницу профиля в поисковые системы
- show_application: Отображать, из какого приложения вы отправили сообщение
+ indexable: Разрешить индексацию моего профиля поисковыми системами
+ show_application: Показывать название приложения, в котором вы создали пост
tag:
listable: Разрешить показ хэштега в поиске или в каталоге профилей
name: Хэштег
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index 80bc56d033e..e5205412730 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -61,6 +61,7 @@ tr:
setting_display_media_default: Hassas olarak işaretlenmiş medyayı gizle
setting_display_media_hide_all: Medyayı her zaman gizle
setting_display_media_show_all: Medyayı her zaman göster
+ setting_emoji_style: Emojiler nasıl görüntülensin. "Otomatik" seçeneği yerel emojileri kullanmaya çalışır, ancak eski tarayıcılar için Twemoji'yi kullanır.
setting_system_scrollbars_ui: Yalnızca Safari ve Chrome tabanlı masaüstü tarayıcılar için geçerlidir
setting_use_blurhash: Gradyenler gizli görsellerin renklerine dayanır, ancak detayları gizler
setting_use_pending_items: Akışı otomatik olarak kaydırmak yerine, zaman çizelgesi güncellemelerini tek bir tıklamayla gizleyin
@@ -241,6 +242,7 @@ tr:
setting_display_media_default: Varsayılan
setting_display_media_hide_all: Tümünü gizle
setting_display_media_show_all: Tümünü göster
+ setting_emoji_style: Emoji stili
setting_expand_spoilers: İçerik uyarılarıyla işaretli gönderileri her zaman genişlet
setting_hide_network: Sosyal grafiğini gizle
setting_missing_alt_text_modal: Alternatif metni olmayan medya göndermeden önce onay sorusu göster
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 2561eeb2ca9..8a0e9012811 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -234,6 +234,7 @@ uk:
setting_display_media_default: За промовчанням
setting_display_media_hide_all: Сховати всі
setting_display_media_show_all: Показати всі
+ setting_emoji_style: Стиль емодзі
setting_expand_spoilers: Завжди розгортати дописи з попередженнями про вміст
setting_hide_network: Сховати вашу мережу
setting_missing_alt_text_modal: Запитувати перед розміщенням медіа без альтернативного тексту
diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml
index b9f8d5d9c37..556bcb2e90f 100644
--- a/config/locales/simple_form.vi.yml
+++ b/config/locales/simple_form.vi.yml
@@ -61,6 +61,7 @@ vi:
setting_display_media_default: Click để xem
setting_display_media_hide_all: Luôn ẩn
setting_display_media_show_all: Luôn hiện
+ setting_emoji_style: Cách hiển thị Emoji. "Tự động" sẽ dùng biểu tượng cảm xúc nguyên bản, nhưng đối với các trình duyệt cũ sẽ chuyển thành Twemoji.
setting_system_scrollbars_ui: Chỉ áp dụng trình duyệt Chrome và Safari bản desktop
setting_use_blurhash: Phủ lớp màu làm nhòe đi hình ảnh nhạy cảm
setting_use_pending_items: Dồn lại toàn bộ tút mới và chỉ hiển thị khi nhấn vào
@@ -126,7 +127,7 @@ vi:
hint: Tùy chọn. Cung cấp chi tiết hơn về nội quy
text: Mô tả một nội quy bắt buộc trên máy chủ này. Nên để ngắn và đơn giản
sessions:
- otp: 'Nhập mã xác minh 2 bước được tạo bởi ứng dụng điện thoại của bạn hoặc dùng một trong các mã khôi phục của bạn:'
+ otp: 'Nhập mã xác thực 2 bước được tạo bởi ứng dụng điện thoại của bạn hoặc dùng một trong các mã khôi phục của bạn:'
webauthn: Nếu đây là USB key, hãy cắm vào và thử xoay chiều.
settings:
indexable: Trang của bạn có thể xuất hiện trong kết quả tìm kiếm trên Google, Bing và các nơi khác.
@@ -221,7 +222,7 @@ vi:
max_uses: Lượt dùng tối đa
new_password: Mật khẩu mới
note: Giới thiệu
- otp_attempt: Mã xác minh 2 bước
+ otp_attempt: Mã xác thực 2 bước
password: Mật khẩu
phrase: Từ khóa hoặc cụm từ
setting_advanced_layout: Bố cục nhiều cột
@@ -240,6 +241,7 @@ vi:
setting_display_media_default: Mặc định
setting_display_media_hide_all: Ẩn toàn bộ
setting_display_media_show_all: Hiện toàn bộ
+ setting_emoji_style: Phong cách Emoji
setting_expand_spoilers: Luôn mở rộng tút chứa nội dung ẩn
setting_hide_network: Ẩn quan hệ của bạn
setting_missing_alt_text_modal: Hỏi trước khi đăng media không có văn bản thay thế
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index 7716c2232f1..3c9fc974715 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -240,6 +240,7 @@ zh-CN:
setting_display_media_default: 默认
setting_display_media_hide_all: 隐藏全部
setting_display_media_show_all: 显示全部
+ setting_emoji_style: 表情符号样式
setting_expand_spoilers: 一律展开具有内容警告的嘟文
setting_hide_network: 隐藏你的社交网络
setting_missing_alt_text_modal: 发布媒体时若未为其设置替代文本,则显示确认对话框
diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml
index c77de84e4a8..9b935b991a3 100644
--- a/config/locales/simple_form.zh-HK.yml
+++ b/config/locales/simple_form.zh-HK.yml
@@ -238,11 +238,13 @@ zh-HK:
warn: 警告並隱藏
form_admin_settings:
activity_api_enabled: 在 API 中發佈使用者活動的匯總統計數據
+ app_icon: 應用程式圖示
backups_retention_period: 封存使用者保留期
bootstrap_timeline_accounts: 總是向新使用者推薦這些帳號
closed_registrations_message: 無法註冊時的自訂訊息
content_cache_retention_period: 遠端內容保留期
custom_css: 自訂 CSS
+ favicon: 網站圖示
mascot: 自訂吉祥物 (舊版)
media_cache_retention_period: 媒體快取保留期
peers_api_enabled: 在 API 中發佈已知的伺服器名單
@@ -307,7 +309,14 @@ zh-HK:
listable: 允許此主題標籤在搜尋及個人檔案目錄中顯示
name: 主題標籤
trendable: 允許此主題標籤在趨勢下顯示
+ terms_of_service:
+ effective_date: 生效日期
+ terms_of_service_generator:
+ domain: 域名
user:
+ date_of_birth_1i: 日
+ date_of_birth_2i: 月
+ date_of_birth_3i: 年
role: 角色
time_zone: 時區
user_role:
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index fb51f2ed3e9..83feb30eba0 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -61,6 +61,7 @@ zh-TW:
setting_display_media_default: 隱藏標為敏感內容的媒體
setting_display_media_hide_all: 總是隱藏所有媒體
setting_display_media_show_all: 總是顯示標為敏感內容的媒體
+ setting_emoji_style: 如何顯示 emoji 表情符號。「自動」將嘗試使用原生 emoji ,但於老式瀏覽器使用 Twemoji。
setting_system_scrollbars_ui: 僅套用至基於 Safari 或 Chrome 之桌面瀏覽器
setting_use_blurhash: 彩色漸層圖樣是基於隱藏媒體內容顏色產生,所有細節將變得模糊
setting_use_pending_items: 關閉自動捲動更新,時間軸僅於點擊後更新
@@ -240,6 +241,7 @@ zh-TW:
setting_display_media_default: 預設
setting_display_media_hide_all: 全部隱藏
setting_display_media_show_all: 全部顯示
+ setting_emoji_style: emoji 風格
setting_expand_spoilers: 永遠展開標有內容警告的嘟文
setting_hide_network: 隱藏您的社交網路
setting_missing_alt_text_modal: 發表未包含說明文字之多媒體嘟文前先詢問我
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index ea9a2ea4ccc..a29344ac80f 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -573,6 +573,13 @@ sq:
all: Krejt
limited: Të kufizuarat
title: Moderim
+ moderation_notes:
+ create: Shtoni Shënim Moderimi
+ created_msg: Shënimi për moderim instance u krijua me sukses!
+ description_html: Shihni dhe lini shënime për moderatorë të tjerë dhe për veten tuaj si referencë në të ardhme
+ destroyed_msg: Shënimi për moderim instance u fshi me sukses!
+ placeholder: Informacion rreth kësaj instance, veprimeve të ndërmarra, apo çfarëdo tjetër që do t’ju ndihmojë të moderoni këtë instancë në të ardhmen.
+ title: Shënime Moderimi
private_comment: Koment privat
public_comment: Koment publik
purge: Spastroje
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 055c3457e20..4f011da36ba 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -578,6 +578,13 @@ sv:
all: Alla
limited: Begränsad
title: Moderering
+ moderation_notes:
+ create: Lägg till anteckning för modereringen
+ created_msg: Skapandet av anteckningen för modereringen av den här instansen lyckades!
+ description_html: Visa och lämna anteckningar för andra moderatorer och ditt framtida jag
+ destroyed_msg: Borttagningen av anteckningen för modereringen av instansen lyckades!
+ placeholder: Information om den här instansen, åtgärder som har vidtagits eller något annat som kommer att hjälpa dig att moderera den här instansen i framtiden.
+ title: Anteckningar för modereringen
private_comment: Privat kommentar
public_comment: Offentlig kommentar
purge: Rensa
@@ -1996,6 +2003,8 @@ sv:
terms_of_service_changed:
agreement: Genom att fortsätta använda %{domain} godkänner du dessa villkor. Om du inte håller med om de uppdaterade villkoren kan du när som helst säga upp ditt avtal med %{domain} genom att radera ditt konto.
changelog: 'I korthet, här är vad denna uppdatering innebär för dig:'
+ description: 'Du får det här e-postmeddelandet eftersom att vi gör vissa ändringar i våra användarvillkor för %{domain}. De här uppdateringarna kommer att börja gälla %{date}. Vi uppmuntrar dig att granska de uppdaterade villkoren här i sin helhet:'
+ description_html: Du får det här e-postmeddelandet eftersom att vi gör några ändringar till våra användningsvillkor för %{domain}. De här uppdateringarna kommer att börja gälla från %{date} . Vi uppmuntrar dig att granska de uppdaterade villkoren i sin helhet här .
sign_off: "%{domain} teamet"
subject: Uppdateringar till våra användarvillkor
subtitle: Villkoren för tjänsten på %{domain} ändras
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 558e95249b7..51db141fc54 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -472,6 +472,15 @@ th:
created_at: สร้างเมื่อ
delete: ลบ
ip: ที่อยู่ IP
+ providers:
+ delete: ลบ
+ name: ชื่อ
+ registrations:
+ confirm: ยืนยัน
+ reject: ปฏิเสธ
+ save: บันทึก
+ sign_in: ลงชื่อเข้า
+ status: สถานะ
follow_recommendations:
description_html: "คำแนะนำการติดตามช่วยให้ผู้ใช้ใหม่ค้นหาเนื้อหาที่น่าสนใจได้อย่างรวดเร็ว เมื่อผู้ใช้ไม่ได้โต้ตอบกับผู้อื่นมากพอที่จะสร้างคำแนะนำการติดตามเฉพาะบุคคล จะแนะนำบัญชีเหล่านี้แทน จะคำนวณคำแนะนำใหม่เป็นประจำทุกวันจากบัญชีต่าง ๆ ที่มีการมีส่วนร่วมล่าสุดสูงสุดและจำนวนผู้ติดตามในเซิร์ฟเวอร์สูงสุดสำหรับภาษาที่กำหนด"
language: สำหรับภาษา
@@ -746,6 +755,8 @@ th:
description_html: ขณะที่ส่วนใหญ่อ้างว่าได้อ่านและยอมรับเงื่อนไขการให้บริการ ผู้คนมักจะไม่อ่านจนกว่าหลังจากปัญหาเกิดขึ้น ทำให้การดูกฎของเซิร์ฟเวอร์ของคุณอย่างรวดเร็วง่ายขึ้นโดยการระบุกฎเหล่านั้นในรายการสัญลักษณ์แสดงหัวข้อย่อยแบบแบน พยายามทำให้กฎแต่ละข้อสั้นและเรียบง่าย แต่พยายามอย่าแบ่งกฎเหล่านั้นเป็นหลายรายการแยกเช่นกัน
edit: แก้ไขกฎ
empty: ยังไม่ได้กำหนดกฎของเซิร์ฟเวอร์
+ move_down: ย้ายลง
+ move_up: ย้ายขึ้น
title: กฎของเซิร์ฟเวอร์
settings:
about:
@@ -772,6 +783,7 @@ th:
discovery:
follow_recommendations: คำแนะนำการติดตาม
preamble: การแสดงเนื้อหาที่น่าสนใจเป็นเครื่องมือในการเตรียมความพร้อมให้ผู้ใช้ใหม่ที่อาจไม่รู้จักใครก็ตามใน Mastodon ควบคุมวิธีที่คุณลักษณะการค้นพบต่าง ๆ ทำงานในเซิร์ฟเวอร์ของคุณ
+ privacy: ความเป็นส่วนตัว
profile_directory: ไดเรกทอรีโปรไฟล์
public_timelines: เส้นเวลาสาธารณะ
publish_statistics: เผยแพร่สถิติ
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 383d185dc93..89c51ca6e08 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -578,6 +578,13 @@ tr:
all: Tümü
limited: Sınırlı
title: Denetim
+ moderation_notes:
+ create: Denetleme Notu Ekle
+ created_msg: Sunucu denetleme notu başarıyla oluşturuldu!
+ description_html: Kendiniz ve diğer moderatörler için not bırakın veya notları görüntüleyin
+ destroyed_msg: Sunucu denetleme notu başarıyla silindi!
+ placeholder: Bu sunucu hakkında bilgi, gerçekleştirilen eylemler veya ileride bu sunucunun denetimi için işinize yarayabilecek herhangi bir şey.
+ title: Denetleme Notları
private_comment: Özel yorum
public_comment: Genel yorum
purge: Temizle
@@ -1342,6 +1349,10 @@ tr:
basic_information: Temel bilgiler
hint_html: "İnsanlara herkese açık profilinizde ve gönderilerinizin yanında ne göstermek istediğinizi düzenleyin. Dolu bir profile ve bir profil resmine sahip olduğunuzda diğer insanlar daha yüksek ihtimalle sizi takip etmek ve sizinle etkileşime geçmek isteyeceklerdir."
other: Diğer
+ emoji_styles:
+ auto: Otomatik
+ native: Yerel
+ twemoji: Twemoji
errors:
'400': Gönderdiğiniz istek geçersiz veya hatalı biçimlendirilmiş.
'403': Bu sayfayı görmek için izniniz yok.
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 6ca9a39944e..ceadfc34664 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -570,6 +570,9 @@ uk:
all: Усі
limited: Обмежені
title: Модерація
+ moderation_notes:
+ create: Додати нотатку модерації
+ title: Нотатки модераторів
private_comment: Приватний коментар
public_comment: Публічний коментар
purge: Очисти
@@ -1335,6 +1338,9 @@ uk:
basic_information: Основна інформація
hint_html: "Налаштуйте те, що люди бачитимуть у вашому загальнодоступному профілі та поруч із вашими дописами. Інші люди з більшою ймовірністю підпишуться на вас та взаємодіятимуть з вами, якщо у вас є заповнений профіль та зображення профілю."
other: Інше
+ emoji_styles:
+ auto: Авто
+ native: Рідний
errors:
'400': Ваш запит був недійсним або неправильним.
'403': У Вас немає доступу до перегляду даної сторінки.
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index ffd470d2492..b8e2b9ef728 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -60,7 +60,7 @@ vi:
destroyed_msg: Dữ liệu %{username} sẽ được lên lịch xóa ngay bây giờ
disable: Khóa
disable_sign_in_token_auth: Tắt xác minh bằng email
- disable_two_factor_authentication: Vô hiệu hóa xác minh 2 bước
+ disable_two_factor_authentication: Vô hiệu hóa xác thực 2 bước
disabled: Tạm khóa
display_name: Biệt danh
domain: Máy chủ
@@ -265,7 +265,7 @@ vi:
destroy_status_html: "%{name} đã xóa tút của %{target}"
destroy_unavailable_domain_html: "%{name} tiếp tục liên hợp với máy chủ %{target}"
destroy_user_role_html: "%{name} đã xóa vai trò %{target}"
- disable_2fa_user_html: "%{name} đã vô hiệu hóa xác minh hai bước của %{target}"
+ disable_2fa_user_html: "%{name} đã vô hiệu hóa xác thực 2 bước của %{target}"
disable_custom_emoji_html: "%{name} đã ẩn emoji %{target}"
disable_relay_html: "%{name} đã tắt relay %{target}"
disable_sign_in_token_auth_user_html: "%{name} đã tắt xác minh email của %{target}"
@@ -567,6 +567,13 @@ vi:
all: Tất cả
limited: Hạn chế
title: Kiểm duyệt
+ moderation_notes:
+ create: Thêm Lưu ý kiểm duyệt
+ created_msg: Thêm lưu ý kiểm duyệt máy chủ thành công!
+ description_html: Xem và để lại lưu ý cho các kiểm duyệt viên khác
+ destroyed_msg: Xóa lưu ý kiểm duyệt máy chủ thành công!
+ placeholder: Thông tin về máy chủ này, hành động trước đây, hoặc bất cứ lưu ý giúp bạn kiểm duyệt máy chủ này trong tương lai.
+ title: Lưu ý kiểm duyệt
private_comment: Bình luận riêng
public_comment: Bình luận công khai
purge: Thanh trừng
@@ -758,7 +765,7 @@ vi:
manage_taxonomies: Quản lý phân loại
manage_taxonomies_description: Cho phép đánh giá nội dung xu hướng và cập nhật cài đặt hashtag
manage_user_access: Quản lý người truy cập
- manage_user_access_description: Cho phép người dùng tắt xác minh hai bước của người khác, đổi địa chỉ email và đặt lại mật khẩu của họ
+ manage_user_access_description: Cho phép người dùng tắt xác thực 2 bước của người khác, đổi địa chỉ email và đặt lại mật khẩu của họ
manage_users: Quản lý người
manage_users_description: Cho phép xem thông tin chi tiết của người khác và thực hiện các hành động kiểm duyệt
manage_webhooks: Quản lý Webhook
@@ -1323,6 +1330,10 @@ vi:
basic_information: Thông tin cơ bản
hint_html: Mọi người sẽ muốn theo dõi và tương tác với bạn hơn nếu bạn có ảnh đại diện và hồ sơ hoàn chỉnh.
other: Khác
+ emoji_styles:
+ auto: Tự động
+ native: Nguyên bản
+ twemoji: Twemoji
errors:
'400': Yêu cầu bạn gửi không hợp lệ hoặc sai hình thức.
'403': Bạn không có quyền xem trang này.
@@ -1517,11 +1528,11 @@ vi:
limit: Bạn đã đạt đến số lượng danh sách tối đa
login_activities:
authentication_methods:
- otp: xác minh 2 bước
+ otp: xác thực 2 bước
password: mật khẩu
sign_in_token: mã an toàn email
webauthn: khóa bảo mật
- description_html: Nếu có lần đăng nhập đáng ngờ, hãy đổi ngay mật khẩu và bật xác minh 2 bước.
+ description_html: Nếu có lần đăng nhập đáng ngờ, hãy đổi ngay mật khẩu và bật xác thực 2 bước.
empty: Không có lịch sử đăng nhập
failed_sign_in_html: Đăng nhập thất bại bằng %{method} từ %{ip} (%{browser})
successful_sign_in_html: Đăng nhập bằng %{method} từ %{ip} (%{browser})
@@ -1788,7 +1799,7 @@ vi:
severed_relationships: Quan hệ đứt gãy
statuses_cleanup: Tự động xóa tút cũ
strikes: Lần cảnh cáo
- two_factor_authentication: Xác minh 2 bước
+ two_factor_authentication: Xác thực 2 bước
webauthn_authentication: Khóa bảo mật
severed_relationships:
download: Tải xuống (%{count})
@@ -1904,10 +1915,10 @@ vi:
two_factor_authentication:
add: Thêm
disable: Vô hiệu hóa
- disabled_success: Đã vô hiệu hóa xác minh 2 bước
+ disabled_success: Đã vô hiệu hóa xác thực 2 bước
edit: Sửa
- enabled: Đã kích hoạt xác minh 2 bước
- enabled_success: Xác minh 2 bước được kích hoạt thành công
+ enabled: Đã kích hoạt xác thực 2 bước
+ enabled_success: Xác thực 2 bước được kích hoạt thành công
generate_recovery_codes: Tạo mã khôi phục
lost_recovery_codes: Mã khôi phục cho phép bạn lấy lại quyền truy cập vào tài khoản của mình nếu bạn mất điện thoại. Nếu bạn bị mất mã khôi phục, bạn có thể tạo lại chúng ở đây. Mã khôi phục cũ của bạn sẽ bị vô hiệu.
methods: Phương pháp xác minh
@@ -1941,13 +1952,13 @@ vi:
details: 'Chi tiết thông tin đăng nhập:'
explanation: Ai đó đã cố đăng nhập vào tài khoản của bạn nhưng cung cấp yếu tố xác thực thứ hai không hợp lệ.
further_actions_html: Nếu không phải bạn, hãy lập tức %{action} vì có thể có rủi ro.
- subject: Xác minh hai bước thất bại
- title: Xác minh hai bước thất bại
+ subject: Xác thực 2 bước thất bại
+ title: Xác thực 2 bước thất bại
suspicious_sign_in:
change_password: đổi mật khẩu của bạn
details: 'Chi tiết thông tin đăng nhập:'
explanation: Chúng tôi phát hiện tài khoản của bạn đăng nhập bất thường từ một địa chỉ IP mới.
- further_actions_html: Nếu đây không phải là bạn, hãy %{action} lập tức và bật xác minh hai bước để giữ tài khoản được an toàn.
+ further_actions_html: Nếu đây không phải là bạn, hãy %{action} lập tức và bật xác thực 2 bước để giữ tài khoản được an toàn.
subject: Đăng nhập tài khoản từ địa chỉ IP mới
title: Lần đăng nhập mới
terms_of_service_changed:
@@ -2032,7 +2043,7 @@ vi:
users:
follow_limit_reached: Bạn chỉ có thể theo dõi tối đa %{limit} người
go_to_sso_account_settings: Thiết lập tài khoản nhà cung cấp danh tính
- invalid_otp_token: Mã xác minh 2 bước không hợp lệ
+ invalid_otp_token: Mã xác thực 2 bước không hợp lệ
otp_lost_help_html: Nếu bạn mất quyền truy cập vào cả hai, bạn có thể đăng nhập bằng %{email}
rate_limited: Quá nhiều lần thử, vui lòng thử lại sau.
seamless_external_login: Bạn đã đăng nhập thông qua một dịch vụ bên ngoài, vì vậy mật khẩu và email không khả dụng.
@@ -2060,5 +2071,5 @@ vi:
nickname_hint: Nhập tên mới cho khóa bảo mật của bạn
not_enabled: Bạn chưa kích hoạt WebAuthn
not_supported: Trình duyệt của bạn không hỗ trợ khóa bảo mật
- otp_required: Để dùng khóa bảo mật, trước tiên hãy kích hoạt xác minh 2 bước.
+ otp_required: Để dùng khóa bảo mật, trước tiên hãy kích hoạt xác thực 2 bước.
registered_on: Đăng ký vào %{date}
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index cce57c12859..c62dc8e3191 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -565,6 +565,9 @@ zh-CN:
all: 全部
limited: 受限的
title: 审核
+ moderation_notes:
+ description_html: 查看备注或向其他管理员留言
+ title: 审核注意事项
private_comment: 私密评论
public_comment: 公开评论
purge: 清除
@@ -1318,6 +1321,10 @@ zh-CN:
basic_information: 基本信息
hint_html: "自定义公开资料和嘟文旁边显示的内容。 当你填写完整的个人资料并设置了头像时,其他人更有可能关注你并与你互动。"
other: 其他
+ emoji_styles:
+ auto: 自动
+ native: 原生
+ twemoji: Twemoji
errors:
'400': 你提交的请求无效或格式不正确。
'403': 你没有访问此页面的权限。
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 2e454610384..1a41ac7e6cd 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -190,6 +190,7 @@ zh-HK:
disable_custom_emoji: 停用自定的 Emoji 表情符號
disable_user: 停用帳號
enable_custom_emoji: 啟用自定的 Emoji 表情符號
+ enable_relay: 啟用中繼
enable_user: 啟用帳號
memorialize_account: 把帳號設定為悼念帳號
promote_user: 提升帳號權限
@@ -430,8 +431,17 @@ zh-HK:
debug:
callbacks:
delete: 刪除
+ ip: IP 地址
providers:
delete: 刪除
+ name: 名稱
+ registrations:
+ confirm: 確認
+ reject: 拒絕
+ save: 儲存
+ sign_in: 登入
+ status: 狀態
+ title: FASP
follow_recommendations:
description_html: "跟隨建議幫助新使用者快速找到有趣內容。 當使用者尚未和其他帳號足夠多的互動以產生個人化建議時,以下帳號將被推荐。這些是一句指定語言的近期參與度和本地粉絲數最高之帳戶組合每日重新計算。"
language: 按語言
@@ -697,7 +707,11 @@ zh-HK:
description_html: 通常大部份宣稱已經閱讀並同意服務條款的人,在出現事故之前都沒有仔細閱讀條款內文。為了讓人方便閱讀服務條款,請以條列的形式將伺服器規則盡可能地寫得簡短一點 。嘗試把每一項規則寫得簡短易明,但又不要把它們拆得過份瑣碎。
edit: 編輯規則
empty: 尚未定義伺服器規則
+ move_down: 向下移
+ move_up: 向上移
title: 伺服器守則
+ translation: 翻譯
+ translations: 翻譯
settings:
about:
manage_rules: 管理伺服器規則
@@ -723,6 +737,7 @@ zh-HK:
discovery:
follow_recommendations: 追蹤建議
preamble: 呈現有趣的內容有助於吸引不認識 Mastodon 的使用者新手上路。控制各種探索功能在你的伺服器上的運作方式。
+ privacy: 私隱
profile_directory: 個人檔案目錄
public_timelines: 公共時間軸
publish_statistics: 公佈統計數據
@@ -838,8 +853,23 @@ zh-HK:
action: 在此查看更多資訊
message_html: "你的對象儲存配置錯誤。你的使用者的私隱有危險。 "
tags:
+ name: 名稱
+ newest: 最新
+ oldest: 最舊
+ reset: 重設
review: 審核文章
+ search: 搜尋
updated_msg: 成功更新主題標籤設定
+ terms_of_service:
+ current: 目前
+ draft: 草稿
+ generates:
+ action: 產生
+ history: 歷史
+ notify_users: 通知使用者
+ publish: 發佈
+ save_draft: 儲存草稿
+ title: 服務條款
title: 管理
trends:
allow: 允許
@@ -1065,6 +1095,8 @@ zh-HK:
view_strikes: 查看針對你的帳戶的過往警告
too_fast: 你太快遞交了,請再試一次。
use_security_key: 使用安全密鑰裝置
+ author_attribution:
+ example_title: 範例文字
challenge:
confirm: 繼續
hint_html: "温馨提示 我們在未來一小時內不會再要求你填寫密碼。"
@@ -1551,6 +1583,7 @@ zh-HK:
delete: 刪除帳戶
development: 開發
edit_profile: 修改個人資料
+ export: 匯出
featured_tags: 推薦的標籤
import: 匯入
import_and_export: 匯入及匯出
@@ -1709,6 +1742,8 @@ zh-HK:
further_actions_html: 如果這不是你,我們建議你立即 %{action} 並啟用雙重認證,以確保帳號安全。
subject: 你的帳號被一個新的 IP 地址存取
title: 新登入
+ terms_of_service_changed:
+ title: 重要更新
warning:
appeal: 提交申訴
appeal_description: 如果你認為這個有誤,你可以向 %{instance} 的工作人員提出申訴。
@@ -1793,6 +1828,7 @@ zh-HK:
instructions_html: 複製並貼上以下的程式碼到你網站的 HTML 中,然後在個人檔案的「修改個人檔案」頁籤中的額外欄位加入你該網址,並儲存變更。
verification: 驗證
verified_links: 已驗證的連結
+ website_verification: 網站驗證
webauthn_credentials:
add: 新增安全密鑰裝置
create:
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 9d2441e5b9f..546ac7d989a 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -567,6 +567,13 @@ zh-TW:
all: 全部
limited: 限制
title: 管管
+ moderation_notes:
+ create: 新增站務筆記
+ created_msg: 已成功新增站點管理筆記!
+ description_html: 檢視或替其他管理員與未來的自己留下筆記
+ destroyed_msg: 已成功刪除站點管理筆記!
+ placeholder: 關於此站點之資訊、已採取行動、或任何協助您將來管理此站點之事項。
+ title: 站務筆記
private_comment: 私人留言
public_comment: 公開留言
purge: 清除
@@ -1325,6 +1332,10 @@ zh-TW:
basic_information: 基本資訊
hint_html: "自訂人們能於您個人檔案及嘟文旁所見之內容。 當您完成填寫個人檔案及設定大頭貼後,其他人們比較願意跟隨您並與您互動。"
other: 其他
+ emoji_styles:
+ auto: 自動
+ native: 原生風格
+ twemoji: Twemoji
errors:
'400': 您所送出的請求無效或格式不正確。
'403': 您沒有檢視這個頁面的權限。
@@ -1362,7 +1373,7 @@ zh-TW:
add_new: 新增
errors:
limit: 您所推薦之主題標籤數量已達上限
- hint_html: "於個人檔案上推薦您的推薦主題標籤 展示創意作品或者長期更新的專案的絕佳工具,推薦主題標籤於您個人資料頁面顯眼地展示,並且能快速存取您自己的嘟文。"
+ hint_html: "於個人檔案上展示您的推薦主題標籤 展示創意作品或者長期更新的專案的絕佳工具,推薦主題標籤於您個人資料頁面顯眼地展示,並且能快速存取您自己的嘟文。"
filters:
contexts:
account: 個人檔案
diff --git a/config/mastodon.yml b/config/mastodon.yml
index 31c2b2b7854..4585e1f2aee 100644
--- a/config/mastodon.yml
+++ b/config/mastodon.yml
@@ -2,14 +2,14 @@
shared:
experimental_features: <%= ENV.fetch('EXPERIMENTAL_FEATURES', nil) %>
limited_federation_mode: <%= (ENV.fetch('LIMITED_FEDERATION_MODE', nil) || ENV.fetch('WHITELIST_MODE', nil)) == 'true' %>
- self_destruct_value: <%= ENV.fetch('SELF_DESTRUCT', nil) %>
- software_update_url: <%= ENV.fetch('UPDATE_CHECK_URL', 'https://api.joinmastodon.org/update-check') %>
+ self_destruct_value: <%= ENV.fetch('SELF_DESTRUCT', nil)&.to_json %>
+ software_update_url: <%= ENV.fetch('UPDATE_CHECK_URL', 'https://api.joinmastodon.org/update-check')&.to_json %>
source:
- base_url: <%= ENV.fetch('SOURCE_BASE_URL', nil) %>
+ base_url: <%= ENV.fetch('SOURCE_BASE_URL', nil)&.to_json %>
repository: <%= ENV.fetch('GITHUB_REPOSITORY', 'mastodon/mastodon') %>
tag: <%= ENV.fetch('SOURCE_TAG', nil) %>
version:
- metadata: <%= ENV.fetch('MASTODON_VERSION_METADATA', nil) %>
- prerelease: <%= ENV.fetch('MASTODON_VERSION_PRERELEASE', nil) %>
+ metadata: <%= ENV.fetch('MASTODON_VERSION_METADATA', nil)&.to_json %>
+ prerelease: <%= ENV.fetch('MASTODON_VERSION_PRERELEASE', nil)&.to_json %>
test:
experimental_features: <%= [ENV.fetch('EXPERIMENTAL_FEATURES', nil), 'testing_only'].compact.join(',') %>
diff --git a/config/omniauth.yml b/config/omniauth.yml
new file mode 100644
index 00000000000..a2aa6928408
--- /dev/null
+++ b/config/omniauth.yml
@@ -0,0 +1,4 @@
+shared:
+ cas_enabled?: <%= ENV.fetch('CAS_ENABLED', 'false') == 'true' %>
+ oidc_enabled?: <%= ENV.fetch('OIDC_ENABLED', 'false') == 'true' %>
+ saml_enabled?: <%= ENV.fetch('SAML_ENABLED', 'false') == 'true' %>
diff --git a/config/routes/admin.rb b/config/routes/admin.rb
index e7439f66b72..3d9f24ae838 100644
--- a/config/routes/admin.rb
+++ b/config/routes/admin.rb
@@ -91,6 +91,8 @@ namespace :admin do
post :restart_delivery
post :stop_delivery
end
+
+ resources :moderation_notes, controller: 'instances/moderation_notes', only: [:create, :destroy]
end
resources :rules, only: [:index, :new, :create, :edit, :update, :destroy] do
diff --git a/config/sidekiq.yml b/config/sidekiq.yml
index 9bfc7e99842..fb85343d942 100644
--- a/config/sidekiq.yml
+++ b/config/sidekiq.yml
@@ -68,3 +68,7 @@
interval: 1 hour
class: Scheduler::AutoCloseRegistrationsScheduler
queue: scheduler
+ fasp_follow_recommendation_cleanup_scheduler:
+ interval: 1 day
+ class: Scheduler::Fasp::FollowRecommendationCleanupScheduler
+ queue: scheduler
diff --git a/config/translation.yml b/config/translation.yml
index e074c5d0f22..75754928ee8 100644
--- a/config/translation.yml
+++ b/config/translation.yml
@@ -1,7 +1,7 @@
shared:
deepl:
- api_key: <%= ENV.fetch('DEEPL_API_KEY', nil) %>
+ api_key: <%= ENV.fetch('DEEPL_API_KEY', nil)&.to_json %>
plan: <%= ENV.fetch('DEEPL_PLAN', 'free') %>
libre_translate:
- api_key: <%= ENV.fetch('LIBRE_TRANSLATE_API_KEY', nil) %>
- endpoint: <%= ENV.fetch('LIBRE_TRANSLATE_ENDPOINT', nil) %>
+ api_key: <%= ENV.fetch('LIBRE_TRANSLATE_API_KEY', nil)&.to_json %>
+ endpoint: <%= ENV.fetch('LIBRE_TRANSLATE_ENDPOINT', nil)&.to_json %>
diff --git a/config/vapid.yml b/config/vapid.yml
index c3ee806fd6a..49d8cd0de80 100644
--- a/config/vapid.yml
+++ b/config/vapid.yml
@@ -13,5 +13,5 @@
# https://rossta.net/blog/using-the-web-push-api-with-vapid.html
#
shared:
- private_key: <%= ENV.fetch('VAPID_PRIVATE_KEY', nil) %>
- public_key: <%= ENV.fetch('VAPID_PUBLIC_KEY', nil) %>
+ private_key: <%= ENV.fetch('VAPID_PRIVATE_KEY', nil)&.to_json %>
+ public_key: <%= ENV.fetch('VAPID_PUBLIC_KEY', nil)&.to_json %>
diff --git a/db/migrate/20160826155805_add_superapp_to_oauth_applications.rb b/db/migrate/20160826155805_add_superapp_to_oauth_applications.rb
index af8bd922fc9..3d1ec66e3e7 100644
--- a/db/migrate/20160826155805_add_superapp_to_oauth_applications.rb
+++ b/db/migrate/20160826155805_add_superapp_to_oauth_applications.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class AddSuperappToOauthApplications < ActiveRecord::Migration[5.0]
+class AddSuperappToOAuthApplications < ActiveRecord::Migration[5.0]
def change
add_column :oauth_applications, :superapp, :boolean, default: false, null: false
end
diff --git a/db/migrate/20170114203041_add_website_to_oauth_application.rb b/db/migrate/20170114203041_add_website_to_oauth_application.rb
index 5a0f2b79011..baf792fd695 100644
--- a/db/migrate/20170114203041_add_website_to_oauth_application.rb
+++ b/db/migrate/20170114203041_add_website_to_oauth_application.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class AddWebsiteToOauthApplication < ActiveRecord::Migration[5.0]
+class AddWebsiteToOAuthApplication < ActiveRecord::Migration[5.0]
def change
add_column :oauth_applications, :website, :string
end
diff --git a/db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb b/db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb
index a5eb732720e..311361d833d 100644
--- a/db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb
+++ b/db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class AddLastUsedAtToOauthAccessTokens < ActiveRecord::Migration[6.1]
+class AddLastUsedAtToOAuthAccessTokens < ActiveRecord::Migration[6.1]
def change
safety_assured do
change_table(:oauth_access_tokens, bulk: true) do |t|
diff --git a/db/migrate/20241014010506_remove_duplicate_indexes.rb b/db/migrate/20241014010506_remove_duplicate_indexes.rb
index 50e0e6ffcfc..0c71936c431 100644
--- a/db/migrate/20241014010506_remove_duplicate_indexes.rb
+++ b/db/migrate/20241014010506_remove_duplicate_indexes.rb
@@ -2,9 +2,11 @@
class RemoveDuplicateIndexes < ActiveRecord::Migration[7.1]
def change
- remove_index :account_aliases, :account_id
- remove_index :account_relationship_severance_events, :account_id
- remove_index :custom_filter_statuses, :status_id
- remove_index :webauthn_credentials, :user_id
+ with_options if_exists: true do
+ remove_index :account_aliases, :account_id
+ remove_index :account_relationship_severance_events, :account_id
+ remove_index :custom_filter_statuses, :status_id
+ remove_index :webauthn_credentials, :user_id
+ end
end
end
diff --git a/db/migrate/20250328153843_create_instance_moderation_notes.rb b/db/migrate/20250328153843_create_instance_moderation_notes.rb
new file mode 100644
index 00000000000..eff0ad3bd72
--- /dev/null
+++ b/db/migrate/20250328153843_create_instance_moderation_notes.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class CreateInstanceModerationNotes < ActiveRecord::Migration[8.0]
+ def change
+ create_table :instance_moderation_notes do |t|
+ t.string :domain, null: false
+ t.belongs_to :account, foreign_key: { on_delete: :cascade }, index: false, null: false
+ t.text :content
+
+ t.timestamps
+
+ t.index ['domain'], name: 'index_instance_moderation_notes_on_domain'
+ end
+ end
+end
diff --git a/db/migrate/20250627132728_create_fasp_follow_recommendations.rb b/db/migrate/20250627132728_create_fasp_follow_recommendations.rb
new file mode 100644
index 00000000000..7cbe26a3189
--- /dev/null
+++ b/db/migrate/20250627132728_create_fasp_follow_recommendations.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class CreateFaspFollowRecommendations < ActiveRecord::Migration[8.0]
+ def change
+ create_table :fasp_follow_recommendations do |t|
+ t.references :requesting_account, null: false, foreign_key: { to_table: :accounts }
+ t.references :recommended_account, null: false, foreign_key: { to_table: :accounts }
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb b/db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb
index 30ade8e3fa7..029bba37c00 100644
--- a/db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb
+++ b/db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb
@@ -2,7 +2,7 @@
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
-class OptimizeNullIndexOauthAccessTokensRefreshToken < ActiveRecord::Migration[5.2]
+class OptimizeNullIndexOAuthAccessTokensRefreshToken < ActiveRecord::Migration[5.2]
include Mastodon::MigrationHelpers
disable_ddl_transaction!
diff --git a/db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb b/db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb
index 787263bf733..5db33ecff07 100644
--- a/db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb
+++ b/db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb
@@ -2,7 +2,7 @@
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
-class OptimizeNullIndexOauthAccessTokensResourceOwnerId < ActiveRecord::Migration[5.2]
+class OptimizeNullIndexOAuthAccessTokensResourceOwnerId < ActiveRecord::Migration[5.2]
include Mastodon::MigrationHelpers
disable_ddl_transaction!
diff --git a/db/schema.rb b/db/schema.rb
index b7a8154f9ac..0237b476445 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[8.0].define(version: 2025_06_05_110215) do
+ActiveRecord::Schema[8.0].define(version: 2025_06_27_132728) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_catalog.plpgsql"
@@ -465,6 +465,15 @@ ActiveRecord::Schema[8.0].define(version: 2025_06_05_110215) do
t.index ["fasp_provider_id"], name: "index_fasp_debug_callbacks_on_fasp_provider_id"
end
+ create_table "fasp_follow_recommendations", force: :cascade do |t|
+ t.bigint "requesting_account_id", null: false
+ t.bigint "recommended_account_id", null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["recommended_account_id"], name: "index_fasp_follow_recommendations_on_recommended_account_id"
+ t.index ["requesting_account_id"], name: "index_fasp_follow_recommendations_on_requesting_account_id"
+ end
+
create_table "fasp_providers", force: :cascade do |t|
t.boolean "confirmed", default: false, null: false
t.string "name", null: false
@@ -580,6 +589,15 @@ ActiveRecord::Schema[8.0].define(version: 2025_06_05_110215) do
t.index ["user_id"], name: "index_identities_on_user_id"
end
+ create_table "instance_moderation_notes", force: :cascade do |t|
+ t.string "domain", null: false
+ t.bigint "account_id", null: false
+ t.text "content"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["domain"], name: "index_instance_moderation_notes_on_domain"
+ end
+
create_table "invites", force: :cascade do |t|
t.bigint "user_id", null: false
t.string "code", default: "", null: false
@@ -1358,6 +1376,8 @@ ActiveRecord::Schema[8.0].define(version: 2025_06_05_110215) do
add_foreign_key "email_domain_blocks", "email_domain_blocks", column: "parent_id", on_delete: :cascade
add_foreign_key "fasp_backfill_requests", "fasp_providers"
add_foreign_key "fasp_debug_callbacks", "fasp_providers"
+ add_foreign_key "fasp_follow_recommendations", "accounts", column: "recommended_account_id"
+ add_foreign_key "fasp_follow_recommendations", "accounts", column: "requesting_account_id"
add_foreign_key "fasp_subscriptions", "fasp_providers"
add_foreign_key "favourites", "accounts", name: "fk_5eb6c2b873", on_delete: :cascade
add_foreign_key "favourites", "statuses", name: "fk_b0e856845e", on_delete: :cascade
@@ -1372,6 +1392,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_06_05_110215) do
add_foreign_key "follows", "accounts", name: "fk_32ed1b5560", on_delete: :cascade
add_foreign_key "generated_annual_reports", "accounts"
add_foreign_key "identities", "users", name: "fk_bea040f377", on_delete: :cascade
+ add_foreign_key "instance_moderation_notes", "accounts", on_delete: :cascade
add_foreign_key "invites", "users", on_delete: :cascade
add_foreign_key "list_accounts", "accounts", on_delete: :cascade
add_foreign_key "list_accounts", "follow_requests", on_delete: :cascade
diff --git a/docker-compose.yml b/docker-compose.yml
index 454ef91f9fb..e5d94b390f4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -59,7 +59,7 @@ services:
web:
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
# build: .
- image: ghcr.io/mastodon/mastodon:v4.3.8
+ image: ghcr.io/mastodon/mastodon:v4.4.1
restart: always
env_file: .env.production
command: bundle exec puma -C config/puma.rb
@@ -83,7 +83,7 @@ services:
# build:
# dockerfile: ./streaming/Dockerfile
# context: .
- image: ghcr.io/mastodon/mastodon-streaming:v4.3.8
+ image: ghcr.io/mastodon/mastodon-streaming:v4.4.1
restart: always
env_file: .env.production
command: node ./streaming/index.js
@@ -102,7 +102,7 @@ services:
sidekiq:
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
# build: .
- image: ghcr.io/mastodon/mastodon:v4.3.8
+ image: ghcr.io/mastodon/mastodon:v4.4.1
restart: always
env_file: .env.production
command: bundle exec sidekiq
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 06b70aee544..21545a1e3d7 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -251,14 +251,13 @@ export default tseslint.config([
devDependencies: [
'eslint.config.mjs',
'app/javascript/mastodon/performance.js',
- 'app/javascript/mastodon/test_setup.js',
- 'app/javascript/mastodon/test_helpers.tsx',
+ 'app/javascript/testing/**/*',
'app/javascript/**/__tests__/**',
'app/javascript/**/*.stories.ts',
'app/javascript/**/*.stories.tsx',
'app/javascript/**/*.test.ts',
'app/javascript/**/*.test.tsx',
- '.storybook/**/*.ts',
+ '.storybook/**/*',
],
},
],
@@ -406,7 +405,7 @@ export default tseslint.config([
},
},
{
- files: ['**/*.stories.ts', '**/*.stories.tsx', '.storybook/**/*.ts'],
+ files: ['**/*.stories.ts', '**/*.stories.tsx', '.storybook/*'],
rules: {
'import/no-default-export': 'off',
},
diff --git a/lib/exceptions.rb b/lib/exceptions.rb
index 93fcc38dce8..c8c81983825 100644
--- a/lib/exceptions.rb
+++ b/lib/exceptions.rb
@@ -13,6 +13,7 @@ module Mastodon
class SyntaxError < Error; end
class InvalidParameterError < Error; end
class SignatureVerificationError < Error; end
+ class MalformedHeaderError < Error; end
class UnexpectedResponseError < Error
attr_reader :response
diff --git a/lib/mastodon/email_configuration_helper.rb b/lib/mastodon/email_configuration_helper.rb
new file mode 100644
index 00000000000..af86472786a
--- /dev/null
+++ b/lib/mastodon/email_configuration_helper.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+module Mastodon
+ module EmailConfigurationHelper
+ module_function
+
+ # Convert smtp settings from environment variables (or defaults in
+ # `config/email.yml`) into the format that `ActionMailer` understands
+ def convert_smtp_settings(config)
+ enable_starttls = nil
+ enable_starttls_auto = nil
+
+ case config[:enable_starttls]
+ when 'always'
+ enable_starttls = true
+ when 'never'
+ enable_starttls = false
+ when 'auto'
+ enable_starttls_auto = true
+ else
+ enable_starttls_auto = config[:enable_starttls_auto] != 'false'
+ end
+
+ authentication = config[:authentication] == 'none' ? nil : (config[:authentication] || 'plain')
+
+ config.merge(
+ authentication:,
+ enable_starttls:,
+ enable_starttls_auto:
+ )
+ end
+ end
+end
diff --git a/lib/mastodon/middleware/public_file_server.rb b/lib/mastodon/middleware/public_file_server.rb
index b9a1edb9f59..ac2f8c52c46 100644
--- a/lib/mastodon/middleware/public_file_server.rb
+++ b/lib/mastodon/middleware/public_file_server.rb
@@ -22,12 +22,11 @@ module Mastodon
status, headers, response = file
# Set cache headers on static files. Some paths require different cache headers
- headers['Cache-Control'] = begin
- request_path = env['REQUEST_PATH']
-
- if request_path.start_with?('/sw.js')
+ request = Rack::Request.new env
+ headers['cache-control'] = begin
+ if request.path.start_with?('/sw.js')
"public, max-age=#{SERVICE_WORKER_TTL}, must-revalidate"
- elsif request_path.start_with?(paperclip_root_url)
+ elsif request.path.start_with?(paperclip_root_url)
"public, max-age=#{CACHE_TTL}, immutable"
else
"public, max-age=#{CACHE_TTL}, must-revalidate"
@@ -35,9 +34,9 @@ module Mastodon
end
# Override the default CSP header set by the CSP middleware
- headers['Content-Security-Policy'] = "default-src 'none'; form-action 'none'" if request_path.start_with?(paperclip_root_url)
+ headers['content-security-policy'] = "default-src 'none'; form-action 'none'" if request.path.start_with?(paperclip_root_url)
- headers['X-Content-Type-Options'] = 'nosniff'
+ headers['x-content-type-options'] = 'nosniff'
[status, headers, response]
end
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index c30fd7ae1e8..7cb5dec6772 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -9,7 +9,7 @@ module Mastodon
end
def minor
- 4
+ 5
end
def patch
@@ -17,7 +17,7 @@ module Mastodon
end
def default_prerelease
- 'beta.2'
+ 'alpha.1'
end
def prerelease
diff --git a/lib/stoplight/redis_data_store_extensions.rb b/lib/stoplight/redis_data_store_extensions.rb
deleted file mode 100644
index 90074878401..00000000000
--- a/lib/stoplight/redis_data_store_extensions.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: true
-
-# Restore compatibility with Redis < 6.2
-
-module Stoplight
- module DataStore
- module RedisExtensions
- def query_failures(light, transaction: @redis)
- window_start = Time.now.to_i - light.window_size
-
- transaction.zrevrangebyscore(failures_key(light), Float::INFINITY, window_start)
- end
- end
- end
-end
-
-Stoplight::DataStore::Redis.prepend(Stoplight::DataStore::RedisExtensions)
diff --git a/lib/tasks/tests.rake b/lib/tasks/tests.rake
index 74269439ddd..9385e390ded 100644
--- a/lib/tasks/tests.rake
+++ b/lib/tasks/tests.rake
@@ -112,17 +112,17 @@ namespace :tests do
exit(1)
end
- unless Identity.where(provider: 'foo', uid: 0).count == 1
+ unless Identity.where(provider: 'foo', uid: 0).one?
puts 'Identities not deduplicated as expected'
exit(1)
end
- unless WebauthnCredential.where(user_id: 1, nickname: 'foo').count == 1
+ unless WebauthnCredential.where(user_id: 1, nickname: 'foo').one?
puts 'Webauthn credentials not deduplicated as expected'
exit(1)
end
- unless AccountAlias.where(account_id: 1, uri: 'https://example.com/users/foobar').count == 1
+ unless AccountAlias.where(account_id: 1, uri: 'https://example.com/users/foobar').one?
puts 'Account aliases not deduplicated as expected'
exit(1)
end
diff --git a/lib/vite_ruby/sri_extensions.rb b/lib/vite_ruby/sri_extensions.rb
index 1c616b49604..d97ab352da0 100644
--- a/lib/vite_ruby/sri_extensions.rb
+++ b/lib/vite_ruby/sri_extensions.rb
@@ -9,7 +9,7 @@ module ViteRuby::ManifestIntegrityExtension
def load_manifest
# Invalidate the name lookup cache when reloading manifest
- @name_lookup_cache = load_name_lookup_cache unless dev_server_running?
+ @name_lookup_cache = nil unless dev_server_running?
super
end
diff --git a/package.json b/package.json
index 9329a3f70d1..ace593ab01b 100644
--- a/package.json
+++ b/package.json
@@ -66,11 +66,14 @@
"cross-env": "^7.0.3",
"detect-passive-events": "^2.0.3",
"emoji-mart": "npm:emoji-mart-lazyload@latest",
+ "emojibase": "^16.0.0",
+ "emojibase-data": "^16.0.3",
"escape-html": "^1.0.3",
"fuzzysort": "^3.0.0",
"history": "^4.10.1",
"hoist-non-react-statics": "^3.3.2",
"http-link-header": "^1.1.1",
+ "idb": "^8.0.3",
"immutable": "^4.3.0",
"intl-messageformat": "^10.7.16",
"js-yaml": "^4.1.0",
@@ -115,6 +118,7 @@
"vite-plugin-pwa": "^1.0.0",
"vite-plugin-rails": "^0.5.0",
"vite-plugin-ruby": "^5.1.1",
+ "vite-plugin-static-copy": "^3.1.0",
"vite-plugin-svgr": "^4.3.0",
"vite-tsconfig-paths": "^5.1.4",
"wicg-inert": "^3.1.2",
@@ -172,6 +176,8 @@
"globals": "^16.0.0",
"husky": "^9.0.11",
"lint-staged": "^16.0.0",
+ "msw": "^2.10.2",
+ "msw-storybook-addon": "^2.0.5",
"playwright": "^1.52.0",
"prettier": "^3.3.3",
"react-test-renderer": "^18.2.0",
@@ -202,5 +208,10 @@
"react-router-dom": {
"optional": true
}
+ },
+ "msw": {
+ "workerDirectory": [
+ ".storybook/static"
+ ]
}
}
diff --git a/spec/configuration/email_spec.rb b/spec/configuration/email_spec.rb
new file mode 100644
index 00000000000..2838beb6450
--- /dev/null
+++ b/spec/configuration/email_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Configuration for email', type: :feature do
+ context 'with special characters in SMTP_PASSWORD env variable' do
+ let(:password) { ']]123456789[["!:@<>/\\=' }
+
+ around do |example|
+ ClimateControl.modify SMTP_PASSWORD: password do
+ example.run
+ end
+ end
+
+ it 'parses value correctly' do
+ expect(Rails.application.config_for(:email, env: :production))
+ .to include(
+ smtp_settings: include(password: password)
+ )
+ end
+ end
+end
diff --git a/spec/controllers/concerns/web_app_controller_concern_spec.rb b/spec/controllers/concerns/web_app_controller_concern_spec.rb
new file mode 100644
index 00000000000..2e7c20a0fe1
--- /dev/null
+++ b/spec/controllers/concerns/web_app_controller_concern_spec.rb
@@ -0,0 +1,68 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe WebAppControllerConcern do
+ render_views
+
+ controller(ApplicationController) do
+ include WebAppControllerConcern # rubocop:disable RSpec/DescribedClass
+
+ def show
+ render plain: 'show'
+ end
+ end
+
+ before do
+ routes.draw { get 'show' => 'anonymous#show' }
+ end
+
+ describe 'when signed in' do
+ let(:user) { Fabricate(:user) }
+
+ before { sign_in(user) }
+
+ context 'when user does not require TOS interstitial' do
+ before { user.update(require_tos_interstitial: false) }
+
+ it 'renders requested page as expected' do
+ get :show
+
+ expect(response)
+ .to have_http_status(:success)
+ expect(response.body)
+ .to match(/show/)
+ end
+ end
+
+ context 'when user does require TOS interstitial' do
+ before { user.update(require_tos_interstitial: true) }
+
+ context 'when there is no TOS record' do
+ before { TermsOfService.destroy_all }
+
+ it 'renders requested page as expected' do
+ get :show
+
+ expect(response)
+ .to have_http_status(:success)
+ expect(response.body)
+ .to match(/show/)
+ end
+ end
+
+ context 'when there is a TOS record' do
+ before { Fabricate :terms_of_service, published_at: 1.day.ago }
+
+ it 'renders interstitial page instead of expected content' do
+ get :show
+
+ expect(response)
+ .to have_http_status(:success)
+ expect(response.body)
+ .to match(I18n.t('terms_of_service_interstitial.title', domain: local_domain_uri.host))
+ end
+ end
+ end
+ end
+end
diff --git a/spec/controllers/oauth/authorizations_controller_spec.rb b/spec/controllers/oauth/authorizations_controller_spec.rb
index cfc80b86503..aa557b67d87 100644
--- a/spec/controllers/oauth/authorizations_controller_spec.rb
+++ b/spec/controllers/oauth/authorizations_controller_spec.rb
@@ -2,7 +2,9 @@
require 'rails_helper'
-RSpec.describe Oauth::AuthorizationsController do
+RSpec.describe OAuth::AuthorizationsController do
+ render_views
+
let(:app) { Doorkeeper::Application.create!(name: 'test', redirect_uri: 'http://localhost/', scopes: 'read') }
describe 'GET #new' do
@@ -24,6 +26,8 @@ RSpec.describe Oauth::AuthorizationsController do
.to have_http_status(200)
expect(response.headers['Cache-Control'])
.to include('private, no-store')
+ expect(response.parsed_body.at('body.modal-layout'))
+ .to be_present
expect(controller.stored_location_for(:user))
.to eq authorize_path_for(app)
end
diff --git a/spec/controllers/oauth/authorized_applications_controller_spec.rb b/spec/controllers/oauth/authorized_applications_controller_spec.rb
index 60f96021362..8d804476eec 100644
--- a/spec/controllers/oauth/authorized_applications_controller_spec.rb
+++ b/spec/controllers/oauth/authorized_applications_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-RSpec.describe Oauth::AuthorizedApplicationsController do
+RSpec.describe OAuth::AuthorizedApplicationsController do
render_views
describe 'GET #index' do
@@ -21,6 +21,8 @@ RSpec.describe Oauth::AuthorizedApplicationsController do
.to have_http_status(200)
expect(response.headers['Cache-Control'])
.to include('private, no-store')
+ expect(response.parsed_body.at('body.admin'))
+ .to be_present
expect(controller.stored_location_for(:user))
.to eq '/oauth/authorized_applications'
end
diff --git a/spec/fabricators/fasp/follow_recommendation_fabricator.rb b/spec/fabricators/fasp/follow_recommendation_fabricator.rb
new file mode 100644
index 00000000000..6c4025fdbbc
--- /dev/null
+++ b/spec/fabricators/fasp/follow_recommendation_fabricator.rb
@@ -0,0 +1,6 @@
+# frozen_string_literal: true
+
+Fabricator(:fasp_follow_recommendation, from: 'Fasp::FollowRecommendation') do
+ requesting_account { Fabricate.build(:account) }
+ recommended_account { Fabricate.build(:account, domain: 'fedi.example.com') }
+end
diff --git a/spec/fabricators/fasp/provider_fabricator.rb b/spec/fabricators/fasp/provider_fabricator.rb
index 8700ebb8cf6..e2ceb753ea2 100644
--- a/spec/fabricators/fasp/provider_fabricator.rb
+++ b/spec/fabricators/fasp/provider_fabricator.rb
@@ -41,3 +41,15 @@ Fabricator(:follow_recommendation_fasp, from: :fasp_provider) do
def fasp.update_remote_capabilities = true
end
end
+
+Fabricator(:account_search_fasp, from: :fasp_provider) do
+ confirmed true
+ capabilities [
+ { id: 'account_search', version: '0.1', enabled: true },
+ ]
+
+ after_build do |fasp|
+ # Prevent fabrication from attempting an HTTP call to the provider
+ def fasp.update_remote_capabilities = true
+ end
+end
diff --git a/spec/fabricators/instance_moderation_note_fabricator.rb b/spec/fabricators/instance_moderation_note_fabricator.rb
new file mode 100644
index 00000000000..6a8fd3dc687
--- /dev/null
+++ b/spec/fabricators/instance_moderation_note_fabricator.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+Fabricator(:instance_moderation_note) do
+ domain { sequence(:domain) { |i| "#{i}#{Faker::Internet.domain_name}" } }
+ account { Fabricate.build(:account) }
+ content { Faker::Lorem.sentence }
+end
diff --git a/spec/helpers/languages_helper_spec.rb b/spec/helpers/languages_helper_spec.rb
index dd9b6004d1c..615194a642a 100644
--- a/spec/helpers/languages_helper_spec.rb
+++ b/spec/helpers/languages_helper_spec.rb
@@ -86,4 +86,40 @@ RSpec.describe LanguagesHelper do
end
end
end
+
+ describe '#valid_locale_or_nil' do
+ subject { helper.valid_locale_or_nil(string) }
+
+ context 'when string is nil' do
+ let(:string) { nil }
+
+ it { is_expected.to be_nil }
+ end
+
+ context 'when string is empty' do
+ let(:string) { '' }
+
+ it { is_expected.to be_nil }
+ end
+
+ context 'when string is valid locale' do
+ let(:string) { 'en' }
+
+ it { is_expected.to eq('en') }
+ end
+
+ context 'when string contains region' do
+ context 'when base locale is valid' do
+ let(:string) { 'en-US' }
+
+ it { is_expected.to eq('en') }
+ end
+
+ context 'when base locale is not valid' do
+ let(:string) { 'qq-US' }
+
+ it { is_expected.to be_nil }
+ end
+ end
+ end
end
diff --git a/spec/lib/fasp/request_spec.rb b/spec/lib/fasp/request_spec.rb
index 80d061dc61f..9b354c8f44b 100644
--- a/spec/lib/fasp/request_spec.rb
+++ b/spec/lib/fasp/request_spec.rb
@@ -32,13 +32,27 @@ RSpec.describe Fasp::Request do
context 'when the response is not signed' do
before do
stub_request(method, 'https://reqprov.example.com/fasp/test_path')
- .to_return(status: 200)
+ .to_return(status:)
end
- it 'raises an error' do
- expect do
- subject.send(method, '/test_path')
- end.to raise_error(Mastodon::SignatureVerificationError)
+ context 'when the request was successful' do
+ let(:status) { 200 }
+
+ it 'raises a signature verification error' do
+ expect do
+ subject.send(method, '/test_path')
+ end.to raise_error(Mastodon::SignatureVerificationError)
+ end
+ end
+
+ context 'when an error response is received' do
+ let(:status) { 401 }
+
+ it 'raises an unexpected response error' do
+ expect do
+ subject.send(method, '/test_path')
+ end.to raise_error(Mastodon::UnexpectedResponseError)
+ end
end
end
end
diff --git a/spec/lib/mastodon/cli/accounts_spec.rb b/spec/lib/mastodon/cli/accounts_spec.rb
index 238f72f834f..e60f5a0cf71 100644
--- a/spec/lib/mastodon/cli/accounts_spec.rb
+++ b/spec/lib/mastodon/cli/accounts_spec.rb
@@ -1288,49 +1288,64 @@ RSpec.describe Mastodon::CLI::Accounts do
describe '#prune' do
let(:action) { :prune }
- let!(:local_account) { Fabricate(:account) }
- let!(:bot_account) { Fabricate(:account, bot: true, domain: 'example.com') }
- let!(:group_account) { Fabricate(:account, actor_type: 'Group', domain: 'example.com') }
- let!(:mentioned_account) { Fabricate(:account, domain: 'example.com') }
- let!(:prunable_accounts) do
- Fabricate.times(2, :account, domain: 'example.com', bot: false, suspended_at: nil, silenced_at: nil)
- end
+ let(:viable_attrs) { { domain: 'example.com', bot: false, suspended: false, silenced: false } }
+ let!(:local_account) { Fabricate(:account) }
+ let!(:bot_account) { Fabricate(:account, bot: true, domain: 'example.com') }
+ let!(:group_account) { Fabricate(:account, actor_type: 'Group', domain: 'example.com') }
+ let!(:account_mentioned) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_favourite) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_status) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_follow) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_follow) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_block) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_block) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_mute) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_report) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_follow_request) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_follow_request) { Fabricate(:account, viable_attrs) }
+ let!(:prunable_accounts) { Fabricate.times(2, :account, viable_attrs) }
before do
- Fabricate(:mention, account: mentioned_account, status: Fabricate(:status, account: Fabricate(:account)))
+ Fabricate :mention, account: account_mentioned, status: Fabricate(:status, account: Fabricate(:account))
+ Fabricate :favourite, account: account_with_favourite
+ Fabricate :status, account: account_with_status
+ Fabricate :follow, account: account_with_follow
+ Fabricate :follow, target_account: account_targeted_follow
+ Fabricate :block, account: account_with_block
+ Fabricate :block, target_account: account_targeted_block
+ Fabricate :mute, target_account: account_targeted_mute
+ Fabricate :report, target_account: account_targeted_report
+ Fabricate :follow_request, account: account_with_follow_request
+ Fabricate :follow_request, target_account: account_targeted_follow_request
stub_parallelize_with_progress!
end
- def expect_prune_remote_accounts_without_interaction
- prunable_account_ids = prunable_accounts.pluck(:id)
-
- expect(Account.where(id: prunable_account_ids).count).to eq(0)
- end
-
it 'displays a successful message and handles accounts correctly' do
expect { subject }
.to output_results("OK, pruned #{prunable_accounts.size} accounts")
- expect_prune_remote_accounts_without_interaction
- expect_not_prune_local_accounts
- expect_not_prune_bot_accounts
- expect_not_prune_group_accounts
- expect_not_prune_mentioned_accounts
+ expect(prunable_account_records)
+ .to have_attributes(count: eq(0))
+ expect(Account.all)
+ .to include(local_account)
+ .and include(bot_account)
+ .and include(group_account)
+ .and include(account_mentioned)
+ .and include(account_with_favourite)
+ .and include(account_with_status)
+ .and include(account_with_follow)
+ .and include(account_targeted_follow)
+ .and include(account_with_block)
+ .and include(account_targeted_block)
+ .and include(account_targeted_mute)
+ .and include(account_targeted_report)
+ .and include(account_with_follow_request)
+ .and include(account_targeted_follow_request)
+ .and not_include(prunable_accounts.first)
+ .and not_include(prunable_accounts.last)
end
- def expect_not_prune_local_accounts
- expect(Account.exists?(id: local_account.id)).to be(true)
- end
-
- def expect_not_prune_bot_accounts
- expect(Account.exists?(id: bot_account.id)).to be(true)
- end
-
- def expect_not_prune_group_accounts
- expect(Account.exists?(id: group_account.id)).to be(true)
- end
-
- def expect_not_prune_mentioned_accounts
- expect(Account.exists?(id: mentioned_account.id)).to be true
+ def prunable_account_records
+ Account.where(id: prunable_accounts.pluck(:id))
end
context 'with --dry-run option' do
diff --git a/spec/lib/mastodon/email_configuration_helper_spec.rb b/spec/lib/mastodon/email_configuration_helper_spec.rb
new file mode 100644
index 00000000000..db513672f06
--- /dev/null
+++ b/spec/lib/mastodon/email_configuration_helper_spec.rb
@@ -0,0 +1,98 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Mastodon::EmailConfigurationHelper do
+ describe '#convert_smtp_settings' do
+ subject { described_class }
+
+ let(:converted_settings) { subject.convert_smtp_settings(configuration) }
+ let(:base_configuration) do
+ {
+ address: 'localhost',
+ port: 25,
+ user_name: 'mastodon',
+ password: 'mastodon',
+ }
+ end
+
+ context 'when `enable_starttls` is "always"' do
+ let(:configuration) do
+ base_configuration.merge({ enable_starttls: 'always' })
+ end
+
+ it 'converts this to `true`' do
+ expect(converted_settings[:enable_starttls]).to be true
+ end
+ end
+
+ context 'when `enable_starttls` is "never"' do
+ let(:configuration) do
+ base_configuration.merge({ enable_starttls: 'never' })
+ end
+
+ it 'converts this to `false`' do
+ expect(converted_settings[:enable_starttls]).to be false
+ end
+ end
+
+ context 'when `enable_starttls` is "auto"' do
+ let(:configuration) do
+ base_configuration.merge({ enable_starttls: 'auto' })
+ end
+
+ it 'sets `enable_starttls_auto` instead' do
+ expect(converted_settings[:enable_starttls]).to be_nil
+ expect(converted_settings[:enable_starttls_auto]).to be true
+ end
+ end
+
+ context 'when `enable_starttls` is unset' do
+ context 'when `enable_starttls_auto` is unset' do
+ let(:configuration) { base_configuration }
+
+ it 'sets `enable_starttls_auto` to `true`' do
+ expect(converted_settings[:enable_starttls_auto]).to be true
+ end
+ end
+
+ context 'when `enable_starttls_auto` is set to "false"' do
+ let(:configuration) do
+ base_configuration.merge({ enable_starttls_auto: 'false' })
+ end
+
+ it 'sets `enable_starttls_auto` to `false`' do
+ expect(converted_settings[:enable_starttls_auto]).to be false
+ end
+ end
+ end
+
+ context 'when `authentication` is set to "none"' do
+ let(:configuration) do
+ base_configuration.merge({ authentication: 'none' })
+ end
+
+ it 'sets `authentication` to `nil`' do
+ expect(converted_settings[:authentication]).to be_nil
+ end
+ end
+
+ context 'when `authentication` is set to `login`' do
+ let(:configuration) do
+ base_configuration.merge({ authentication: 'login' })
+ end
+
+ it 'is left as-is' do
+ expect(converted_settings[:authentication]).to eq 'login'
+ end
+ end
+
+ context 'when `authentication` is unset' do
+ let(:configuration) { base_configuration }
+
+ it 'sets `authentication` to "plain"' do
+ expect(converted_settings[:authentication]).to eq 'plain'
+ end
+ end
+ end
+end
diff --git a/spec/lib/search_query_transformer_spec.rb b/spec/lib/search_query_transformer_spec.rb
index b69e3afc9d5..e77d54f3635 100644
--- a/spec/lib/search_query_transformer_spec.rb
+++ b/spec/lib/search_query_transformer_spec.rb
@@ -129,4 +129,24 @@ RSpec.describe SearchQueryTransformer do
end
end
end
+
+ context 'with multiple prefix clauses before a search term' do
+ let(:query) { 'from:me has:media foo' }
+
+ it 'transforms clauses' do
+ expect(subject.send(:must_clauses).map(&:term)).to contain_exactly('foo')
+ expect(subject.send(:must_not_clauses)).to be_empty
+ expect(subject.send(:filter_clauses).map(&:prefix)).to contain_exactly('from', 'has')
+ end
+ end
+
+ context 'with a search term between two prefix clauses' do
+ let(:query) { 'from:me foo has:media' }
+
+ it 'transforms clauses' do
+ expect(subject.send(:must_clauses).map(&:term)).to contain_exactly('foo')
+ expect(subject.send(:must_not_clauses)).to be_empty
+ expect(subject.send(:filter_clauses).map(&:prefix)).to contain_exactly('from', 'has')
+ end
+ end
end
diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb
index e677a24df2d..3dc3f66c75a 100644
--- a/spec/mailers/previews/user_mailer_preview.rb
+++ b/spec/mailers/previews/user_mailer_preview.rb
@@ -103,4 +103,9 @@ class UserMailerPreview < ActionMailer::Preview
def terms_of_service_changed
UserMailer.terms_of_service_changed(User.first, TermsOfService.live.first)
end
+
+ # Preview this email at http://localhost:3000/rails/mailers/user_mailer/announcement_published
+ def announcement_published
+ UserMailer.announcement_published(User.first, Announcement.last)
+ end
end
diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb
index 2385ede50a9..88f9d12cac8 100644
--- a/spec/mailers/user_mailer_spec.rb
+++ b/spec/mailers/user_mailer_spec.rb
@@ -14,6 +14,43 @@ RSpec.describe UserMailer do
end
end
+ shared_examples 'optional bulk mailer settings' do
+ context 'when no optional bulk mailer settings are present' do
+ it 'does not include delivery method options' do
+ expect(mail.message.delivery_method.settings).to be_empty
+ end
+ end
+
+ context 'when optional bulk mailer settings are present' do
+ let(:smtp_settings) do
+ {
+ address: 'localhost',
+ port: 25,
+ authentication: 'none',
+ }
+ end
+
+ before do
+ Rails.configuration.x.email ||= ActiveSupport::OrderedOptions.new
+ Rails.configuration.x.email.update({ bulk_mail: { smtp_settings: } })
+ end
+
+ after do
+ Rails.configuration.x.email = nil
+ end
+
+ it 'uses the bulk mailer settings' do
+ expect(mail.message.delivery_method.settings).to eq({
+ address: 'localhost',
+ port: 25,
+ authentication: nil,
+ enable_starttls: nil,
+ enable_starttls_auto: true,
+ })
+ end
+ end
+ end
+
let(:receiver) { Fabricate(:user) }
describe '#confirmation_instructions' do
@@ -316,6 +353,8 @@ RSpec.describe UserMailer do
.and(have_subject(I18n.t('user_mailer.terms_of_service_changed.subject')))
.and(have_body_text(I18n.t('user_mailer.terms_of_service_changed.changelog')))
end
+
+ it_behaves_like 'optional bulk mailer settings'
end
describe '#announcement_published' do
@@ -328,5 +367,7 @@ RSpec.describe UserMailer do
.and(have_subject(I18n.t('user_mailer.announcement_published.subject')))
.and(have_body_text(I18n.t('user_mailer.announcement_published.description', domain: local_domain_uri.host)))
end
+
+ it_behaves_like 'optional bulk mailer settings'
end
end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 06b7b78e64f..8ce337f1c74 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -386,36 +386,6 @@ RSpec.describe Account do
end
end
- describe '.following_map' do
- it 'returns an hash' do
- expect(described_class.following_map([], 1)).to be_a Hash
- end
- end
-
- describe '.followed_by_map' do
- it 'returns an hash' do
- expect(described_class.followed_by_map([], 1)).to be_a Hash
- end
- end
-
- describe '.blocking_map' do
- it 'returns an hash' do
- expect(described_class.blocking_map([], 1)).to be_a Hash
- end
- end
-
- describe '.requested_map' do
- it 'returns an hash' do
- expect(described_class.requested_map([], 1)).to be_a Hash
- end
- end
-
- describe '.requested_by_map' do
- it 'returns an hash' do
- expect(described_class.requested_by_map([], 1)).to be_a Hash
- end
- end
-
describe 'MENTION_RE' do
subject { described_class::MENTION_RE }
@@ -670,19 +640,6 @@ RSpec.describe Account do
end
end
- describe 'alphabetic' do
- it 'sorts by alphabetic order of domain and username' do
- matches = [
- { username: 'a', domain: 'a' },
- { username: 'b', domain: 'a' },
- { username: 'a', domain: 'b' },
- { username: 'b', domain: 'b' },
- ].map(&method(:Fabricate).curry(2).call(:account))
-
- expect(described_class.without_internal.alphabetic).to eq matches
- end
- end
-
describe 'matches_display_name' do
it 'matches display name which starts with the given string' do
match = Fabricate(:account, display_name: 'pattern and suffix')
diff --git a/spec/models/account_suggestions/fasp_source_spec.rb b/spec/models/account_suggestions/fasp_source_spec.rb
new file mode 100644
index 00000000000..9d46b761fed
--- /dev/null
+++ b/spec/models/account_suggestions/fasp_source_spec.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe AccountSuggestions::FaspSource do
+ describe '#get', feature: :fasp do
+ subject { described_class.new }
+
+ let(:bob) { Fabricate(:account) }
+ let(:alice) { Fabricate(:account, domain: 'fedi.example.com') }
+ let(:eve) { Fabricate(:account, domain: 'fedi.example.com') }
+
+ before do
+ [alice, eve].each do |recommended_account|
+ Fasp::FollowRecommendation.create!(requesting_account: bob, recommended_account:)
+ end
+ end
+
+ it 'returns recommendations obtained by FASP' do
+ expect(subject.get(bob)).to contain_exactly([alice.id, :fasp], [eve.id, :fasp])
+ end
+ end
+end
diff --git a/spec/models/concerns/account/interactions_spec.rb b/spec/models/concerns/account/interactions_spec.rb
index f7ec3a3912f..e6e9076edb6 100644
--- a/spec/models/concerns/account/interactions_spec.rb
+++ b/spec/models/concerns/account/interactions_spec.rb
@@ -4,94 +4,7 @@ require 'rails_helper'
RSpec.describe Account::Interactions do
let(:account) { Fabricate(:account) }
- let(:account_id) { account.id }
- let(:account_ids) { [account_id] }
let(:target_account) { Fabricate(:account) }
- let(:target_account_id) { target_account.id }
- let(:target_account_ids) { [target_account_id] }
-
- describe '.following_map' do
- subject { Account.following_map(target_account_ids, account_id) }
-
- context 'when Account with Follow' do
- it 'returns { target_account_id => true }' do
- Fabricate(:follow, account: account, target_account: target_account)
- expect(subject).to eq(target_account_id => { reblogs: true, notify: false, languages: nil })
- end
- end
-
- context 'when Account without Follow' do
- it 'returns {}' do
- expect(subject).to eq({})
- end
- end
- end
-
- describe '.followed_by_map' do
- subject { Account.followed_by_map(target_account_ids, account_id) }
-
- context 'when Account with Follow' do
- it 'returns { target_account_id => true }' do
- Fabricate(:follow, account: target_account, target_account: account)
- expect(subject).to eq(target_account_id => true)
- end
- end
-
- context 'when Account without Follow' do
- it 'returns {}' do
- expect(subject).to eq({})
- end
- end
- end
-
- describe '.blocking_map' do
- subject { Account.blocking_map(target_account_ids, account_id) }
-
- context 'when Account with Block' do
- it 'returns { target_account_id => true }' do
- Fabricate(:block, account: account, target_account: target_account)
- expect(subject).to eq(target_account_id => true)
- end
- end
-
- context 'when Account without Block' do
- it 'returns {}' do
- expect(subject).to eq({})
- end
- end
- end
-
- describe '.muting_map' do
- subject { Account.muting_map(target_account_ids, account_id) }
-
- context 'when Account with Mute' do
- before do
- Fabricate(:mute, target_account: target_account, account: account, hide_notifications: hide)
- end
-
- context 'when Mute#hide_notifications?' do
- let(:hide) { true }
-
- it 'returns { target_account_id => { notifications: true } }' do
- expect(subject).to eq(target_account_id => { notifications: true })
- end
- end
-
- context 'when not Mute#hide_notifications?' do
- let(:hide) { false }
-
- it 'returns { target_account_id => { notifications: false } }' do
- expect(subject).to eq(target_account_id => { notifications: false })
- end
- end
- end
-
- context 'when Account without Mute' do
- it 'returns {}' do
- expect(subject).to eq({})
- end
- end
- end
describe '#follow!' do
it 'creates and returns Follow' do
diff --git a/spec/models/concerns/account/mappings_spec.rb b/spec/models/concerns/account/mappings_spec.rb
new file mode 100644
index 00000000000..18c936b892e
--- /dev/null
+++ b/spec/models/concerns/account/mappings_spec.rb
@@ -0,0 +1,161 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Account::Mappings do
+ let(:account) { Fabricate(:account) }
+ let(:account_id) { account.id }
+ let(:account_ids) { [account_id] }
+ let(:target_account) { Fabricate(:account) }
+ let(:target_account_id) { target_account.id }
+ let(:target_account_ids) { [target_account_id] }
+
+ describe '.following_map' do
+ subject { Account.following_map(target_account_ids, account_id) }
+
+ context 'when Account has a Follow' do
+ before { Fabricate(:follow, account: account, target_account: target_account) }
+
+ it { is_expected.to eq(target_account_id => { reblogs: true, notify: false, languages: nil }) }
+ end
+
+ context 'when Account is without Follow' do
+ it { is_expected.to eq({}) }
+ end
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+
+ describe '.followed_by_map' do
+ subject { Account.followed_by_map(target_account_ids, account_id) }
+
+ context 'when Account has a Follow' do
+ before { Fabricate(:follow, account: target_account, target_account: account) }
+
+ it { is_expected.to eq(target_account_id => true) }
+ end
+
+ context 'when Account is without Follow' do
+ it { is_expected.to eq({}) }
+ end
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+
+ describe '.blocking_map' do
+ subject { Account.blocking_map(target_account_ids, account_id) }
+
+ context 'when Account has a Block' do
+ before { Fabricate(:block, account: account, target_account: target_account) }
+
+ it { is_expected.to eq(target_account_id => true) }
+ end
+
+ context 'when Account is without Block' do
+ it { is_expected.to eq({}) }
+ end
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+
+ describe '.blocked_by_map' do
+ subject { Account.blocked_by_map(target_account_ids, account_id) }
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+
+ describe '.muting_map' do
+ subject { Account.muting_map(target_account_ids, account_id) }
+
+ context 'when Account has a Mute' do
+ before { Fabricate(:mute, target_account: target_account, account: account, hide_notifications: hide) }
+
+ context 'when Mute#hide_notifications?' do
+ let(:hide) { true }
+
+ it { is_expected.to eq(target_account_id => { notifications: true }) }
+ end
+
+ context 'when not Mute#hide_notifications?' do
+ let(:hide) { false }
+
+ it { is_expected.to eq(target_account_id => { notifications: false }) }
+ end
+ end
+
+ context 'when Account without Mute' do
+ it { is_expected.to eq({}) }
+ end
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+
+ describe '.requested_map' do
+ subject { Account.requested_map(target_account_ids, account_id) }
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+
+ describe '.requested_by_map' do
+ subject { Account.requested_by_map(target_account_ids, account_id) }
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+
+ describe '.endorsed_map' do
+ subject { Account.endorsed_map(target_account_ids, account_id) }
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+
+ describe '.account_note_map' do
+ subject { Account.account_note_map(target_account_ids, account_id) }
+
+ context 'when given empty values' do
+ let(:target_account_ids) { [] }
+ let(:account_id) { 1 }
+
+ it { is_expected.to be_a(Hash) }
+ end
+ end
+end
diff --git a/spec/models/doorkeeper/access_grant_spec.rb b/spec/models/doorkeeper/access_grant_spec.rb
new file mode 100644
index 00000000000..9a6b87a49fc
--- /dev/null
+++ b/spec/models/doorkeeper/access_grant_spec.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Doorkeeper::AccessGrant do
+ describe 'Validations' do
+ subject { Fabricate :access_grant }
+
+ it { is_expected.to validate_presence_of(:application_id) }
+ it { is_expected.to validate_presence_of(:expires_in) }
+ it { is_expected.to validate_presence_of(:redirect_uri) }
+ it { is_expected.to validate_presence_of(:token) }
+ end
+
+ describe 'Scopes' do
+ describe '.expired' do
+ let!(:unexpired) { Fabricate :access_grant, expires_in: 10.hours }
+ let!(:expired) do
+ travel_to 10.minutes.ago do
+ Fabricate :access_grant, expires_in: 5.minutes
+ end
+ end
+
+ it 'returns records past their expired time' do
+ expect(described_class.expired)
+ .to include(expired)
+ .and not_include(unexpired)
+ end
+ end
+
+ describe '.revoked' do
+ let!(:revoked) { Fabricate :access_grant, revoked_at: 10.minutes.ago }
+ let!(:unrevoked) { Fabricate :access_grant, revoked_at: 10.minutes.from_now }
+
+ it 'returns records past their expired time' do
+ expect(described_class.revoked)
+ .to include(revoked)
+ .and not_include(unrevoked)
+ end
+ end
+ end
+end
diff --git a/spec/models/doorkeeper/access_token_spec.rb b/spec/models/doorkeeper/access_token_spec.rb
new file mode 100644
index 00000000000..77071b88b48
--- /dev/null
+++ b/spec/models/doorkeeper/access_token_spec.rb
@@ -0,0 +1,63 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Doorkeeper::AccessToken do
+ describe 'Associations' do
+ it { is_expected.to have_many(:web_push_subscriptions).class_name('Web::PushSubscription').inverse_of(:access_token) }
+ end
+
+ describe 'Validations' do
+ subject { Fabricate :access_token }
+
+ it { is_expected.to validate_presence_of(:token) }
+ end
+
+ describe 'Scopes' do
+ describe '.expired' do
+ let!(:unexpired) { Fabricate :access_token, expires_in: 10.hours }
+ let!(:expired) do
+ travel_to 10.minutes.ago do
+ Fabricate :access_token, expires_in: 5.minutes
+ end
+ end
+
+ it 'returns records past their expired time' do
+ expect(described_class.expired)
+ .to include(expired)
+ .and not_include(unexpired)
+ end
+ end
+
+ describe '.revoked' do
+ let!(:revoked) { Fabricate :access_token, revoked_at: 10.minutes.ago }
+ let!(:unrevoked) { Fabricate :access_token, revoked_at: 10.minutes.from_now }
+
+ it 'returns records past their expired time' do
+ expect(described_class.revoked)
+ .to include(revoked)
+ .and not_include(unrevoked)
+ end
+ end
+ end
+
+ describe '#revoke' do
+ let(:record) { Fabricate :access_token, revoked_at: 10.days.from_now }
+
+ it 'marks the record as revoked' do
+ expect { record.revoke }
+ .to change(record, :revoked_at).to(be_within(1).of(Time.now.utc))
+ end
+ end
+
+ describe '#update_last_used' do
+ let(:record) { Fabricate :access_token, last_used_at: nil, last_used_ip: nil }
+ let(:request) { instance_double(ActionDispatch::Request, remote_ip: '1.1.1.1') }
+
+ it 'marks the record as revoked' do
+ expect { record.update_last_used(request) }
+ .to change(record, :last_used_at).to(be_within(1).of(Time.now.utc))
+ .and change(record, :last_used_ip).to(IPAddr.new('1.1.1.1'))
+ end
+ end
+end
diff --git a/spec/models/doorkeeper/application_spec.rb b/spec/models/doorkeeper/application_spec.rb
index e026d90caab..a9bbba3a742 100644
--- a/spec/models/doorkeeper/application_spec.rb
+++ b/spec/models/doorkeeper/application_spec.rb
@@ -8,8 +8,45 @@ RSpec.describe Doorkeeper::Application do
end
describe 'Validations' do
+ subject { Fabricate :application }
+
+ it { is_expected.to validate_presence_of(:name) }
+ it { is_expected.to validate_presence_of(:uid) }
+
it { is_expected.to validate_length_of(:name).is_at_most(described_class::APP_NAME_LIMIT) }
it { is_expected.to validate_length_of(:redirect_uri).is_at_most(described_class::APP_REDIRECT_URI_LIMIT) }
it { is_expected.to validate_length_of(:website).is_at_most(described_class::APP_WEBSITE_LIMIT) }
end
+
+ describe '#redirect_uris' do
+ subject { Fabricate.build(:application, redirect_uri:).redirect_uris }
+
+ context 'with single value' do
+ let(:redirect_uri) { 'https://test.example/one' }
+
+ it { is_expected.to be_an(Array).and(eq(['https://test.example/one'])) }
+ end
+
+ context 'with multiple values' do
+ let(:redirect_uri) { "https://test.example/one\nhttps://test.example/two" }
+
+ it { is_expected.to be_an(Array).and(eq(['https://test.example/one', 'https://test.example/two'])) }
+ end
+ end
+
+ describe '#confirmation_redirect_uri' do
+ subject { Fabricate.build(:application, redirect_uri:).confirmation_redirect_uri }
+
+ context 'with single value' do
+ let(:redirect_uri) { 'https://test.example/one ' }
+
+ it { is_expected.to eq('https://test.example/one') }
+ end
+
+ context 'with multiple values' do
+ let(:redirect_uri) { "https://test.example/one \nhttps://test.example/two " }
+
+ it { is_expected.to eq('https://test.example/one') }
+ end
+ end
end
diff --git a/spec/models/instance_moderation_note_spec.rb b/spec/models/instance_moderation_note_spec.rb
new file mode 100644
index 00000000000..4d77d497122
--- /dev/null
+++ b/spec/models/instance_moderation_note_spec.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe InstanceModerationNote do
+ describe 'chronological' do
+ it 'returns the instance notes sorted by oldest first' do
+ instance = Instance.find_or_initialize_by(domain: TagManager.instance.normalize_domain('mastodon.example'))
+
+ note1 = Fabricate(:instance_moderation_note, domain: instance.domain)
+ note2 = Fabricate(:instance_moderation_note, domain: instance.domain)
+
+ expect(instance.moderation_notes.chronological).to eq [note1, note2]
+ end
+ end
+
+ describe 'validations' do
+ it 'is invalid if the content is empty' do
+ note = Fabricate.build(:instance_moderation_note, domain: 'mastodon.example', content: '')
+ expect(note.valid?).to be false
+ end
+
+ it 'is invalid if content is longer than character limit' do
+ note = Fabricate.build(:instance_moderation_note, domain: 'mastodon.example', content: comment_over_limit)
+ expect(note.valid?).to be false
+ end
+
+ it 'is valid even if the instance does not exist yet' do
+ note = Fabricate.build(:instance_moderation_note, domain: 'non-existent.example', content: 'test comment')
+ expect(note.valid?).to be true
+ end
+
+ def comment_over_limit
+ Faker::Lorem.paragraph_by_chars(number: described_class::CONTENT_SIZE_LIMIT * 2)
+ end
+ end
+end
diff --git a/spec/models/instance_spec.rb b/spec/models/instance_spec.rb
index 3e811d3325c..f1035816d4c 100644
--- a/spec/models/instance_spec.rb
+++ b/spec/models/instance_spec.rb
@@ -3,9 +3,9 @@
require 'rails_helper'
RSpec.describe Instance do
- describe 'Scopes' do
- before { described_class.refresh }
+ before { described_class.refresh }
+ describe 'Scopes' do
describe '#searchable' do
let(:expected_domain) { 'host.example' }
let(:blocked_domain) { 'other.example' }
diff --git a/spec/models/rule_translation_spec.rb b/spec/models/rule_translation_spec.rb
new file mode 100644
index 00000000000..649bd5c0e49
--- /dev/null
+++ b/spec/models/rule_translation_spec.rb
@@ -0,0 +1,55 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe RuleTranslation do
+ describe 'Associations' do
+ it { is_expected.to belong_to(:rule) }
+ end
+
+ describe 'Validations' do
+ subject { Fabricate.build :rule_translation }
+
+ it { is_expected.to validate_presence_of(:language) }
+ it { is_expected.to validate_presence_of(:text) }
+ it { is_expected.to validate_length_of(:text).is_at_most(Rule::TEXT_SIZE_LIMIT) }
+ it { is_expected.to validate_uniqueness_of(:language).scoped_to(:rule_id) }
+ end
+
+ describe 'Scopes' do
+ describe '.for_locale' do
+ let!(:matching) { Fabricate :rule_translation, language: 'en' }
+ let!(:missing) { Fabricate :rule_translation, language: 'es' }
+
+ context 'when sent top-level string' do
+ it 'includes expected records' do
+ results = described_class.for_locale('en')
+
+ expect(results)
+ .to include(matching)
+ .and not_include(missing)
+ end
+ end
+
+ context 'when sent sub string' do
+ it 'includes expected records' do
+ results = described_class.for_locale('en-US')
+
+ expect(results)
+ .to include(matching)
+ .and not_include(missing)
+ end
+ end
+ end
+
+ describe '.by_language_length' do
+ let!(:top_level) { Fabricate :rule_translation, language: 'en' }
+ let!(:sub_level) { Fabricate :rule_translation, language: 'en-US' }
+
+ it 'returns results ordered by length' do
+ expect(described_class.by_language_length)
+ .to eq([sub_level, top_level])
+ end
+ end
+ end
+end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 8a87d353661..e0a2c391046 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -191,6 +191,19 @@ RSpec.describe Status do
end
end
+ describe '.not_replying_to_account' do
+ let(:account) { Fabricate :account }
+ let!(:status_from_account) { Fabricate :status, account: account }
+ let!(:reply_to_account_status) { Fabricate :status, thread: status_from_account }
+ let!(:reply_to_other) { Fabricate :status, thread: Fabricate(:status) }
+
+ it 'returns records not in reply to provided account' do
+ expect(described_class.not_replying_to_account(account))
+ .to not_include(reply_to_account_status)
+ .and include(reply_to_other)
+ end
+ end
+
describe '#untrusted_favourites_count' do
before do
alice.update(domain: 'example.com')
@@ -352,6 +365,39 @@ RSpec.describe Status do
end
end
+ describe '.only_reblogs' do
+ let!(:status) { Fabricate :status }
+ let!(:reblog) { Fabricate :status, reblog: Fabricate(:status) }
+
+ it 'returns the expected statuses' do
+ expect(described_class.only_reblogs)
+ .to include(reblog)
+ .and not_include(status)
+ end
+ end
+
+ describe '.only_polls' do
+ let!(:poll_status) { Fabricate :status, poll: Fabricate(:poll) }
+ let!(:no_poll_status) { Fabricate :status }
+
+ it 'returns the expected statuses' do
+ expect(described_class.only_polls)
+ .to include(poll_status)
+ .and not_include(no_poll_status)
+ end
+ end
+
+ describe '.without_polls' do
+ let!(:poll_status) { Fabricate :status, poll: Fabricate(:poll) }
+ let!(:no_poll_status) { Fabricate :status }
+
+ it 'returns the expected statuses' do
+ expect(described_class.without_polls)
+ .to not_include(poll_status)
+ .and include(no_poll_status)
+ end
+ end
+
describe '.tagged_with' do
let(:tag_cats) { Fabricate(:tag, name: 'cats') }
let(:tag_dogs) { Fabricate(:tag, name: 'dogs') }
diff --git a/spec/models/terms_of_service_spec.rb b/spec/models/terms_of_service_spec.rb
index d32ba4e642e..16cd5dd2ebf 100644
--- a/spec/models/terms_of_service_spec.rb
+++ b/spec/models/terms_of_service_spec.rb
@@ -3,6 +3,89 @@
require 'rails_helper'
RSpec.describe TermsOfService do
+ describe 'Validations' do
+ subject { Fabricate.build :terms_of_service }
+
+ it { is_expected.to validate_presence_of(:text) }
+ it { is_expected.to validate_uniqueness_of(:effective_date) }
+
+ it { is_expected.to allow_values(2.days.from_now).for(:effective_date) }
+ it { is_expected.to_not allow_values(2.days.ago).for(:effective_date) }
+
+ context 'with an existing published effective TOS' do
+ before do
+ travel_to 5.days.ago do
+ Fabricate :terms_of_service, published_at: 2.days.ago, effective_date: 1.day.from_now
+ end
+ end
+
+ it { is_expected.to allow_values(1.day.ago).for(:effective_date) }
+ end
+
+ context 'when published' do
+ subject { Fabricate.build :terms_of_service, published_at: Time.zone.today }
+
+ it { is_expected.to validate_presence_of(:changelog) }
+ it { is_expected.to validate_presence_of(:effective_date) }
+ end
+ end
+
+ describe 'Scopes' do
+ describe '.published' do
+ let!(:unpublished) { Fabricate :terms_of_service, published_at: nil }
+ let!(:published_older_effective) { travel_to(3.days.ago) { Fabricate :terms_of_service, published_at: 5.days.ago, effective_date: Time.zone.today } }
+ let!(:published_newer_effective) { travel_to(2.days.ago) { Fabricate :terms_of_service, published_at: 5.days.ago, effective_date: Time.zone.today } }
+
+ it 'returns published records in correct order' do
+ expect(described_class.published)
+ .to eq([published_newer_effective, published_older_effective])
+ .and not_include(unpublished)
+ end
+ end
+
+ describe '.live' do
+ # The `pre_effective_date` record captures a period before the value was tracked
+ # The update in the `before` block creates an invalid (but historically plausible) record
+ let!(:pre_effective_date) { travel_to(10.days.ago) { Fabricate :terms_of_service, effective_date: Time.zone.today } }
+ let!(:effective_past) { travel_to(3.days.ago) { Fabricate :terms_of_service, effective_date: Time.zone.today } }
+ let!(:effective_future) { Fabricate :terms_of_service, effective_date: 3.days.from_now }
+
+ before { pre_effective_date.update_attribute(:effective_date, nil) }
+
+ it 'returns records without effective or with past effective' do
+ expect(described_class.live)
+ .to include(pre_effective_date)
+ .and include(effective_past)
+ .and not_include(effective_future)
+ end
+ end
+
+ describe '.upcoming' do
+ let!(:unpublished) { Fabricate :terms_of_service, published_at: nil, effective_date: 10.days.from_now }
+ let!(:effective_past) { travel_to(3.days.ago) { Fabricate :terms_of_service, effective_date: Time.zone.today } }
+ let!(:effective_future_near) { Fabricate :terms_of_service, effective_date: 3.days.from_now }
+ let!(:effective_future_far) { Fabricate :terms_of_service, effective_date: 5.days.from_now }
+
+ it 'returns published records with future effective date in order of soonest first' do
+ expect(described_class.upcoming)
+ .to eq([effective_future_near, effective_future_far])
+ .and not_include(unpublished)
+ .and not_include(effective_past)
+ end
+ end
+
+ describe '.draft' do
+ let!(:published) { Fabricate :terms_of_service, published_at: 2.days.ago }
+ let!(:unpublished) { Fabricate :terms_of_service, published_at: nil }
+
+ it 'returns not published records' do
+ expect(described_class.draft)
+ .to include(unpublished)
+ .and not_include(published)
+ end
+ end
+ end
+
describe '#scope_for_notification' do
subject { terms_of_service.scope_for_notification }
@@ -24,4 +107,55 @@ RSpec.describe TermsOfService do
expect(subject.pluck(:id)).to match_array(user_before.id)
end
end
+
+ describe '::current' do
+ context 'when no terms exist' do
+ it 'returns nil' do
+ expect(described_class.current).to be_nil
+ end
+ end
+
+ context 'when only unpublished terms exist' do
+ before do
+ yesterday = Date.yesterday
+ travel_to yesterday do
+ Fabricate(:terms_of_service, published_at: nil, effective_date: yesterday)
+ end
+ Fabricate(:terms_of_service, published_at: nil, effective_date: Date.tomorrow)
+ end
+
+ it 'returns nil' do
+ expect(described_class.current).to be_nil
+ end
+ end
+
+ context 'when both effective and future terms exist' do
+ let!(:effective_terms) do
+ yesterday = Date.yesterday
+ travel_to yesterday do
+ Fabricate(:terms_of_service, effective_date: yesterday)
+ end
+ end
+
+ before do
+ Fabricate(:terms_of_service, effective_date: Date.tomorrow)
+ end
+
+ it 'returns the effective terms' do
+ expect(described_class.current).to eq effective_terms
+ end
+ end
+
+ context 'when only future terms exist' do
+ let!(:upcoming_terms) { Fabricate(:terms_of_service, effective_date: Date.tomorrow) }
+
+ before do
+ Fabricate(:terms_of_service, effective_date: 10.days.since)
+ end
+
+ it 'returns the terms that are upcoming next' do
+ expect(described_class.current).to eq upcoming_terms
+ end
+ end
+ end
end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index a13b27b0cbe..b732b2d84d0 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -166,6 +166,34 @@ RSpec.describe User do
end
end
+ describe '#email_domain' do
+ subject { described_class.new(email: email).email_domain }
+
+ context 'when value is nil' do
+ let(:email) { nil }
+
+ it { is_expected.to be_nil }
+ end
+
+ context 'when value is blank' do
+ let(:email) { '' }
+
+ it { is_expected.to be_nil }
+ end
+
+ context 'when value has valid domain' do
+ let(:email) { 'user@host.example' }
+
+ it { is_expected.to eq('host.example') }
+ end
+
+ context 'when value has no split' do
+ let(:email) { 'user$host.example' }
+
+ it { is_expected.to be_nil }
+ end
+ end
+
describe '#update_sign_in!' do
context 'with an existing user' do
let!(:user) { Fabricate :user, last_sign_in_at: 10.days.ago, current_sign_in_at: 1.hour.ago, sign_in_count: 123 }
diff --git a/spec/requests/admin/instances/moderation_notes_spec.rb b/spec/requests/admin/instances/moderation_notes_spec.rb
new file mode 100644
index 00000000000..18c9464bbde
--- /dev/null
+++ b/spec/requests/admin/instances/moderation_notes_spec.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Admin Report Notes' do
+ describe 'POST /admin/instance/moderation_notes' do
+ before { sign_in Fabricate(:admin_user) }
+
+ it 'gracefully handles invalid nested params' do
+ post admin_instance_moderation_notes_path(instance_id: 'mastodon.test', instance_note: 'invalid')
+
+ expect(response)
+ .to have_http_status(400)
+ end
+ end
+end
diff --git a/spec/requests/admin/instances_spec.rb b/spec/requests/admin/instances_spec.rb
index afb6602a22b..651f0bb6c56 100644
--- a/spec/requests/admin/instances_spec.rb
+++ b/spec/requests/admin/instances_spec.rb
@@ -4,9 +4,9 @@ require 'rails_helper'
RSpec.describe 'Admin Instances' do
describe 'GET /admin/instances/:id' do
- context 'with an unknown domain' do
- before { sign_in Fabricate(:admin_user) }
+ before { sign_in Fabricate(:admin_user) }
+ context 'with an unknown domain' do
it 'returns http success' do
get admin_instance_path(id: 'unknown.example')
@@ -14,5 +14,14 @@ RSpec.describe 'Admin Instances' do
.to have_http_status(200)
end
end
+
+ context 'with an invalid domain' do
+ it 'returns http success' do
+ get admin_instance_path(id: ' ')
+
+ expect(response)
+ .to have_http_status(200)
+ end
+ end
end
end
diff --git a/spec/requests/api/v2/search_spec.rb b/spec/requests/api/v2/search_spec.rb
index 5a2346dc39e..9c9f37e0988 100644
--- a/spec/requests/api/v2/search_spec.rb
+++ b/spec/requests/api/v2/search_spec.rb
@@ -118,6 +118,15 @@ RSpec.describe 'Search API' do
.to start_with('application/json')
end
end
+
+ context 'when `account_search` FASP is enabled', feature: :fasp do
+ it 'enqueues a retrieval job and adds a header to inform the client' do
+ get '/api/v2/search', headers: headers, params: params
+
+ expect(Fasp::AccountSearchWorker).to have_enqueued_sidekiq_job
+ expect(response.headers['Mastodon-Async-Refresh']).to be_present
+ end
+ end
end
end
diff --git a/spec/requests/oauth/userinfo_spec.rb b/spec/requests/oauth/userinfo_spec.rb
index 7d6226cd412..0aa5a211200 100644
--- a/spec/requests/oauth/userinfo_spec.rb
+++ b/spec/requests/oauth/userinfo_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-RSpec.describe 'Oauth Userinfo Endpoint' do
+RSpec.describe 'OAuth Userinfo Endpoint' do
include RoutingHelper
let(:user) { Fabricate(:user) }
diff --git a/spec/requests/omniauth_callbacks_spec.rb b/spec/requests/omniauth_callbacks_spec.rb
index c71d025f9f0..1be0f9843f9 100644
--- a/spec/requests/omniauth_callbacks_spec.rb
+++ b/spec/requests/omniauth_callbacks_spec.rb
@@ -129,15 +129,15 @@ RSpec.describe 'OmniAuth callbacks' do
end
end
- describe '#openid_connect', if: ENV['OIDC_ENABLED'] == 'true' && ENV['OIDC_SCOPE'].present? do
+ describe '#openid_connect', if: Rails.configuration.x.omniauth.oidc_enabled? && ENV['OIDC_SCOPE'].present? do
it_behaves_like 'omniauth provider callbacks', :openid_connect
end
- describe '#cas', if: ENV['CAS_ENABLED'] == 'true' do
+ describe '#cas', if: Rails.configuration.x.omniauth.cas_enabled? do
it_behaves_like 'omniauth provider callbacks', :cas
end
- describe '#saml', if: ENV['SAML_ENABLED'] == 'true' do
+ describe '#saml', if: Rails.configuration.x.omniauth.saml_enabled? do
it_behaves_like 'omniauth provider callbacks', :saml
end
end
diff --git a/spec/requests/public_files_spec.rb b/spec/requests/public_files_spec.rb
new file mode 100644
index 00000000000..512e069cf71
--- /dev/null
+++ b/spec/requests/public_files_spec.rb
@@ -0,0 +1,57 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Public files' do
+ include RoutingHelper
+
+ context 'when requesting service worker file' do
+ it 'returns the file with the expected headers' do
+ get '/sw.js'
+
+ expect(response)
+ .to have_http_status(200)
+
+ expect(response.headers['Cache-Control'])
+ .to eq "public, max-age=#{Mastodon::Middleware::PublicFileServer::SERVICE_WORKER_TTL}, must-revalidate"
+
+ expect(response.headers['X-Content-Type-Options'])
+ .to eq 'nosniff'
+ end
+ end
+
+ context 'when requesting paperclip attachments', :attachment_processing do
+ let(:attachment) { Fabricate(:media_attachment, type: :image) }
+
+ it 'returns the file with the expected headers' do
+ get attachment.file.url(:original)
+
+ expect(response)
+ .to have_http_status(200)
+
+ expect(response.headers['Cache-Control'])
+ .to eq "public, max-age=#{Mastodon::Middleware::PublicFileServer::CACHE_TTL}, immutable"
+
+ expect(response.headers['Content-Security-Policy'])
+ .to eq "default-src 'none'; form-action 'none'"
+
+ expect(response.headers['X-Content-Type-Options'])
+ .to eq 'nosniff'
+ end
+ end
+
+ context 'when requesting other static files' do
+ it 'returns the file with the expected headers' do
+ get '/sounds/boop.ogg'
+
+ expect(response)
+ .to have_http_status(200)
+
+ expect(response.headers['Cache-Control'])
+ .to eq "public, max-age=#{Mastodon::Middleware::PublicFileServer::CACHE_TTL}, must-revalidate"
+
+ expect(response.headers['X-Content-Type-Options'])
+ .to eq 'nosniff'
+ end
+ end
+end
diff --git a/spec/requests/signature_verification_spec.rb b/spec/requests/signature_verification_spec.rb
index edcc2b673df..eccb2babc98 100644
--- a/spec/requests/signature_verification_spec.rb
+++ b/spec/requests/signature_verification_spec.rb
@@ -621,6 +621,30 @@ RSpec.describe 'signature verification concern' do
)
end
end
+
+ context 'with a malformed `Content-Digest` header' do
+ let(:digest_header) { 'SHA-256=:ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiuyjfzw=:' }
+ let(:signature_input) do
+ 'sig1=("@method" "@target-uri" "content-digest");created=1703066400;keyid="https://remote.domain/users/bob#main-key"'
+ end
+ let(:signature_header) do
+ 'sig1=:aXua24cIlBi8akNXg/Vc5pU8fNGXo0f4U2qQk42iWoIaCcH3G+z2edPMQTNM/aZmD0bULqvb/yi6ZXgRls1ereq3OqnvA4JBLKx15O/jLayS/FhR4d/2vaeXuBOYXM7EGXItKkFxEXn3J+FCQPb5wY31GlbljrESjsiZ6gtrSmwryBluQCwMJ59LACzocxbWo42Kv3cpSig2aCu9CYXKC4sCH3eSKjwPtjdlpmX1VkYX5ge+JaZMn7A218ZgZOc9xpPawESOuIF9axcKW5PDEhOwmswFd2G65c8H9kJY6zEnqbArP9lRQMmjuAb011NILClaaRZOOupz2HZUdm+91Q==:' # rubocop:disable Layout/LineLength
+ end
+
+ it 'returns `400` (Bad Request)', :aggregate_failures do
+ post '/activitypub/signature_required', params: 'Hello world', headers: {
+ 'Host' => 'www.example.com',
+ 'Content-Digest' => digest_header,
+ 'Signature-Input' => signature_input,
+ 'Signature' => signature_header,
+ }
+
+ expect(response).to have_http_status(400)
+ expect(response.parsed_body).to match(
+ error: 'Content-Digest could not be parsed. It does not contain a valid RFC8941 dictionary.'
+ )
+ end
+ end
end
context 'with an inaccessible key' do
diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb
index cd4c4246301..3260addb319 100644
--- a/spec/services/search_service_spec.rb
+++ b/spec/services/search_service_spec.rb
@@ -66,7 +66,7 @@ RSpec.describe SearchService do
allow(AccountSearchService).to receive(:new).and_return(service)
results = subject.call(query, nil, 10)
- expect(service).to have_received(:call).with(query, nil, limit: 10, offset: 0, resolve: false, start_with_hashtag: false, use_searchable_text: true, following: false)
+ expect(service).to have_received(:call).with(query, nil, limit: 10, offset: 0, resolve: false, start_with_hashtag: false, use_searchable_text: true, following: false, query_fasp: nil)
expect(results).to eq empty_results.merge(accounts: [account])
end
end
diff --git a/spec/system/admin/account_actions_spec.rb b/spec/system/admin/account_actions_spec.rb
index 787b988a0dc..abfd33dc272 100644
--- a/spec/system/admin/account_actions_spec.rb
+++ b/spec/system/admin/account_actions_spec.rb
@@ -15,6 +15,13 @@ RSpec.describe 'Admin Account Actions' do
expect(page)
.to have_title(I18n.t('admin.account_actions.title', acct: account.pretty_acct))
+ # Invalid submission
+ expect { submit_form }
+ .to_not(change { account.strikes.count })
+ expect(page)
+ .to have_content(/can't be blank/)
+
+ # Valid submission
choose(option: 'silence')
expect { submit_form }
.to change { account.strikes.count }.by(1)
diff --git a/spec/system/admin/account_moderation_notes_spec.rb b/spec/system/admin/account_moderation_notes_spec.rb
index fa930cea2c7..728d1714745 100644
--- a/spec/system/admin/account_moderation_notes_spec.rb
+++ b/spec/system/admin/account_moderation_notes_spec.rb
@@ -35,7 +35,7 @@ RSpec.describe 'Admin::AccountModerationNotes' do
end
def delete_note
- within('.report-notes__item__actions') do
+ within('.report-notes__item:first-child .report-notes__item__actions') do
click_on I18n.t('admin.reports.notes.delete')
end
end
diff --git a/spec/system/admin/instance/moderation_notes_spec.rb b/spec/system/admin/instance/moderation_notes_spec.rb
new file mode 100644
index 00000000000..f8bf575b829
--- /dev/null
+++ b/spec/system/admin/instance/moderation_notes_spec.rb
@@ -0,0 +1,51 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Admin::Instances::ModerationNotesController' do
+ let(:current_user) { Fabricate(:admin_user) }
+ let(:instance_domain) { 'mastodon.example' }
+
+ before { sign_in current_user }
+
+ describe 'Managing instance moderation notes' do
+ it 'saves and then deletes a record' do
+ visit admin_instance_path(instance_domain)
+
+ fill_in 'instance_moderation_note_content', with: ''
+ expect { submit_form }
+ .to not_change(InstanceModerationNote, :count)
+ expect(page)
+ .to have_content(/error below/)
+
+ fill_in 'instance_moderation_note_content', with: 'Test message ' * InstanceModerationNote::CONTENT_SIZE_LIMIT
+ expect { submit_form }
+ .to not_change(InstanceModerationNote, :count)
+ expect(page)
+ .to have_content(/error below/)
+
+ fill_in 'instance_moderation_note_content', with: 'Test message'
+ expect { submit_form }
+ .to change(InstanceModerationNote, :count).by(1)
+ expect(page)
+ .to have_current_path(admin_instance_path(instance_domain))
+ expect(page)
+ .to have_content(I18n.t('admin.instances.moderation_notes.created_msg'))
+
+ expect { delete_note }
+ .to change(InstanceModerationNote, :count).by(-1)
+ expect(page)
+ .to have_content(I18n.t('admin.instances.moderation_notes.destroyed_msg'))
+ end
+
+ def submit_form
+ click_on I18n.t('admin.instances.moderation_notes.create')
+ end
+
+ def delete_note
+ within('.report-notes__item:first-child .report-notes__item__actions') do
+ click_on I18n.t('admin.reports.notes.delete')
+ end
+ end
+ end
+end
diff --git a/spec/system/admin/trends/tags_spec.rb b/spec/system/admin/trends/tags_spec.rb
index a7f00c0232a..631288d4fc0 100644
--- a/spec/system/admin/trends/tags_spec.rb
+++ b/spec/system/admin/trends/tags_spec.rb
@@ -7,6 +7,21 @@ RSpec.describe 'Admin::Trends::Tags' do
before { sign_in current_user }
+ describe 'Viewing tags lists' do
+ context 'with a tag that needs review but is not trending' do
+ before { Fabricate :tag, requested_review_at: 5.minutes.ago }
+
+ it 'includes a correct pending tag count in navigation' do
+ visit admin_trends_tags_path
+
+ within('.filter-subset') do
+ expect(page)
+ .to have_content("#{I18n.t('admin.accounts.moderation.pending')} (0)")
+ end
+ end
+ end
+ end
+
describe 'Performing batch updates' do
context 'without selecting any records' do
it 'displays a notice about selection' do
diff --git a/spec/workers/fasp/account_search_worker_spec.rb b/spec/workers/fasp/account_search_worker_spec.rb
new file mode 100644
index 00000000000..a96ba0c23b3
--- /dev/null
+++ b/spec/workers/fasp/account_search_worker_spec.rb
@@ -0,0 +1,50 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Fasp::AccountSearchWorker, feature: :fasp do
+ include ProviderRequestHelper
+
+ let(:provider) { Fabricate(:account_search_fasp) }
+ let(:account) { Fabricate(:account) }
+ let(:fetch_service) { instance_double(ActivityPub::FetchRemoteActorService, call: true) }
+
+ let!(:stubbed_request) do
+ path = '/account_search/v0/search?term=cats&limit=10'
+ stub_provider_request(provider,
+ method: :get,
+ path:,
+ response_body: [
+ 'https://fedi.example.com/accounts/2',
+ 'https://fedi.example.com/accounts/9',
+ ])
+ end
+
+ before do
+ allow(ActivityPub::FetchRemoteActorService).to receive(:new).and_return(fetch_service)
+ end
+
+ it 'requests search results and fetches received account uris' do
+ described_class.new.perform('cats')
+
+ expect(stubbed_request).to have_been_made
+ expect(fetch_service).to have_received(:call).with('https://fedi.example.com/accounts/2')
+ expect(fetch_service).to have_received(:call).with('https://fedi.example.com/accounts/9')
+ end
+
+ it 'marks a running async refresh as finished' do
+ async_refresh = AsyncRefresh.create("fasp:account_search:#{Digest::MD5.base64digest('cats')}", count_results: true)
+
+ described_class.new.perform('cats')
+
+ expect(async_refresh.reload).to be_finished
+ end
+
+ it 'tracks the number of fetched accounts in the async refresh' do
+ async_refresh = AsyncRefresh.create("fasp:account_search:#{Digest::MD5.base64digest('cats')}", count_results: true)
+
+ described_class.new.perform('cats')
+
+ expect(async_refresh.reload.result_count).to eq 2
+ end
+end
diff --git a/spec/workers/fasp/follow_recommendation_worker_spec.rb b/spec/workers/fasp/follow_recommendation_worker_spec.rb
index cd06a63d3cc..baa647aa06f 100644
--- a/spec/workers/fasp/follow_recommendation_worker_spec.rb
+++ b/spec/workers/fasp/follow_recommendation_worker_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe Fasp::FollowRecommendationWorker, feature: :fasp do
let(:provider) { Fabricate(:follow_recommendation_fasp) }
let(:account) { Fabricate(:account) }
- let(:fetch_service) { instance_double(ActivityPub::FetchRemoteActorService, call: true) }
+ let(:fetch_service) { instance_double(ActivityPub::FetchRemoteActorService) }
let!(:stubbed_request) do
account_uri = ActivityPub::TagManager.instance.uri_for(account)
@@ -23,6 +23,8 @@ RSpec.describe Fasp::FollowRecommendationWorker, feature: :fasp do
before do
allow(ActivityPub::FetchRemoteActorService).to receive(:new).and_return(fetch_service)
+
+ allow(fetch_service).to receive(:call).and_invoke(->(_) { Fabricate(:account, domain: 'fedi.example.com') })
end
it "sends the requesting account's uri to provider and fetches received account uris" do
@@ -48,4 +50,10 @@ RSpec.describe Fasp::FollowRecommendationWorker, feature: :fasp do
expect(async_refresh.reload.result_count).to eq 2
end
+
+ it 'persists the results' do
+ expect do
+ described_class.new.perform(account.id)
+ end.to change(Fasp::FollowRecommendation, :count).by(2)
+ end
end
diff --git a/spec/workers/scheduler/fasp/follow_recommendation_cleanup_scheduler_spec.rb b/spec/workers/scheduler/fasp/follow_recommendation_cleanup_scheduler_spec.rb
new file mode 100644
index 00000000000..e851b97af6e
--- /dev/null
+++ b/spec/workers/scheduler/fasp/follow_recommendation_cleanup_scheduler_spec.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Scheduler::Fasp::FollowRecommendationCleanupScheduler do
+ let(:worker) { described_class.new }
+
+ describe '#perform', feature: :fasp do
+ before do
+ Fabricate(:fasp_follow_recommendation, created_at: 2.days.ago)
+ end
+
+ it 'deletes outdated recommendations' do
+ expect { worker.perform }.to change(Fasp::FollowRecommendation, :count).by(-1)
+ end
+ end
+end
diff --git a/tsconfig.json b/tsconfig.json
index 80745b43bb7..2b981b67abe 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -29,10 +29,7 @@
"vite.config.mts",
"vitest.config.mts",
"config/vite",
- "app/javascript/mastodon",
- "app/javascript/entrypoints",
- "app/javascript/types",
- ".storybook/*.ts",
- ".storybook/*.tsx"
+ "app/javascript",
+ ".storybook/*"
]
}
diff --git a/vite.config.mts b/vite.config.mts
index 484211eaa0c..8d0fdfde51c 100644
--- a/vite.config.mts
+++ b/vite.config.mts
@@ -1,14 +1,15 @@
import path from 'node:path';
import { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';
+import legacy from '@vitejs/plugin-legacy';
import react from '@vitejs/plugin-react';
import { PluginOption } from 'vite';
-import svgr from 'vite-plugin-svgr';
import { visualizer } from 'rollup-plugin-visualizer';
-import RailsPlugin from 'vite-plugin-rails';
import { VitePWA } from 'vite-plugin-pwa';
+import RailsPlugin from 'vite-plugin-rails';
+import { viteStaticCopy } from 'vite-plugin-static-copy';
+import svgr from 'vite-plugin-svgr';
import tsconfigPaths from 'vite-tsconfig-paths';
-import legacy from '@vitejs/plugin-legacy';
import { defineConfig, UserConfigFnPromise, UserConfig } from 'vite';
import postcssPresetEnv from 'postcss-preset-env';
@@ -78,8 +79,11 @@ export const config: UserConfigFnPromise = async ({ mode, command }) => {
},
},
},
+ worker: {
+ format: 'es',
+ },
plugins: [
- tsconfigPaths(),
+ tsconfigPaths({ projects: [path.resolve(__dirname, 'tsconfig.json')] }),
RailsPlugin({
compress: mode === 'production' && command === 'build',
sri: {
@@ -92,6 +96,21 @@ export const config: UserConfigFnPromise = async ({ mode, command }) => {
plugins: ['formatjs', 'transform-react-remove-prop-types'],
},
}),
+ viteStaticCopy({
+ targets: [
+ {
+ src: path.resolve(
+ __dirname,
+ 'node_modules/emojibase-data/**/compact.json',
+ ),
+ dest: 'emoji',
+ rename(_name, ext, dir) {
+ const locale = path.basename(path.dirname(dir));
+ return `${locale}.${ext}`;
+ },
+ },
+ ],
+ }),
MastodonServiceWorkerLocales(),
MastodonEmojiCompressed(),
legacy({
diff --git a/yarn.lock b/yarn.lock
index 15b79dfcdbb..ea96821fbed 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1189,6 +1189,34 @@ __metadata:
languageName: node
linkType: hard
+"@bundled-es-modules/cookie@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "@bundled-es-modules/cookie@npm:2.0.1"
+ dependencies:
+ cookie: "npm:^0.7.2"
+ checksum: 10c0/dfac5e36127e827c5557b8577f17a8aa94c057baff6d38555917927b99da0ecf0b1357e7fedadc8853ecdbd4a8a7fa1f5e64111b2a656612f4a36376f5bdbe8d
+ languageName: node
+ linkType: hard
+
+"@bundled-es-modules/statuses@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@bundled-es-modules/statuses@npm:1.0.1"
+ dependencies:
+ statuses: "npm:^2.0.1"
+ checksum: 10c0/c1a8ede3efa8da61ccda4b98e773582a9733edfbeeee569d4630785f8e018766202edb190a754a3ec7a7f6bd738e857829affc2fdb676b6dab4db1bb44e62785
+ languageName: node
+ linkType: hard
+
+"@bundled-es-modules/tough-cookie@npm:^0.1.6":
+ version: 0.1.6
+ resolution: "@bundled-es-modules/tough-cookie@npm:0.1.6"
+ dependencies:
+ "@types/tough-cookie": "npm:^4.0.5"
+ tough-cookie: "npm:^4.1.4"
+ checksum: 10c0/28bcac878bff6b34719ba3aa8341e9924772ee55de5487680ebe784981ec9fccb70ed5d46f563e2404855a04de606f9e56aa4202842d4f5835bc04a4fe820571
+ languageName: node
+ linkType: hard
+
"@csstools/cascade-layer-name-parser@npm:^2.0.5":
version: 2.0.5
resolution: "@csstools/cascade-layer-name-parser@npm:2.0.5"
@@ -1255,15 +1283,15 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/postcss-cascade-layers@npm:^5.0.1":
- version: 5.0.1
- resolution: "@csstools/postcss-cascade-layers@npm:5.0.1"
+"@csstools/postcss-cascade-layers@npm:^5.0.2":
+ version: 5.0.2
+ resolution: "@csstools/postcss-cascade-layers@npm:5.0.2"
dependencies:
"@csstools/selector-specificity": "npm:^5.0.0"
postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/5cc3c6f220d9216f7ab16e716a20d6db845f127c917521e6236342bfa871accd63eb662a04c1e24a28e396412dcb47b1c4abccc490b88e4010cd704d14a702f1
+ checksum: 10c0/dd8e29cfd3a93932fa35e3a59aa62fd2e720772d450f40f38f65ce1e736e2fe839635eb6f033abcc8ee8bc2856161a297f4458b352b26d2216856feb03176612
languageName: node
linkType: hard
@@ -2412,6 +2440,61 @@ __metadata:
languageName: node
linkType: hard
+"@inquirer/confirm@npm:^5.0.0":
+ version: 5.1.12
+ resolution: "@inquirer/confirm@npm:5.1.12"
+ dependencies:
+ "@inquirer/core": "npm:^10.1.13"
+ "@inquirer/type": "npm:^3.0.7"
+ peerDependencies:
+ "@types/node": ">=18"
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ checksum: 10c0/581aedfe8ce45e177fb4470a12f874f5162a4396636bf4140edc5812ffc8ed0d1fa7e9bbc3a7af618203089a084f489e0b32112947eedc6930a766fad992449e
+ languageName: node
+ linkType: hard
+
+"@inquirer/core@npm:^10.1.13":
+ version: 10.1.13
+ resolution: "@inquirer/core@npm:10.1.13"
+ dependencies:
+ "@inquirer/figures": "npm:^1.0.12"
+ "@inquirer/type": "npm:^3.0.7"
+ ansi-escapes: "npm:^4.3.2"
+ cli-width: "npm:^4.1.0"
+ mute-stream: "npm:^2.0.0"
+ signal-exit: "npm:^4.1.0"
+ wrap-ansi: "npm:^6.2.0"
+ yoctocolors-cjs: "npm:^2.1.2"
+ peerDependencies:
+ "@types/node": ">=18"
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ checksum: 10c0/919208a31307297d5a07a44b9ebe69a999ce1470b31a2e1b5a04538bc36624d2053808cd6c677637a61690af09bdbdd635bd7031b64e3dd86c5b18df3ca7c3f9
+ languageName: node
+ linkType: hard
+
+"@inquirer/figures@npm:^1.0.12":
+ version: 1.0.12
+ resolution: "@inquirer/figures@npm:1.0.12"
+ checksum: 10c0/08694288bdf9aa474571ca94272113a5ac443229519ce71447eba9eb7d5a2007901bdc3e92216d929a69746dcbac29683886c20e67b7864a7c7f6c59b99d3269
+ languageName: node
+ linkType: hard
+
+"@inquirer/type@npm:^3.0.7":
+ version: 3.0.7
+ resolution: "@inquirer/type@npm:3.0.7"
+ peerDependencies:
+ "@types/node": ">=18"
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ checksum: 10c0/bbaa33c274a10f70d3a587264e1db6dbfcd8c1458d595c54870d1d5b3fc113ab5063203ec12a098485bb9e2fcef1a87d8c6ecd2a6d44ddc575f5c4715379be5e
+ languageName: node
+ linkType: hard
+
"@ioredis/commands@npm:^1.1.1":
version: 1.2.0
resolution: "@ioredis/commands@npm:1.2.0"
@@ -2584,6 +2667,8 @@ __metadata:
cross-env: "npm:^7.0.3"
detect-passive-events: "npm:^2.0.3"
emoji-mart: "npm:emoji-mart-lazyload@latest"
+ emojibase: "npm:^16.0.0"
+ emojibase-data: "npm:^16.0.3"
escape-html: "npm:^1.0.3"
eslint: "npm:^9.23.0"
eslint-import-resolver-typescript: "npm:^4.2.5"
@@ -2601,6 +2686,7 @@ __metadata:
hoist-non-react-statics: "npm:^3.3.2"
http-link-header: "npm:^1.1.1"
husky: "npm:^9.0.11"
+ idb: "npm:^8.0.3"
immutable: "npm:^4.3.0"
intl-messageformat: "npm:^10.7.16"
js-yaml: "npm:^4.1.0"
@@ -2608,6 +2694,8 @@ __metadata:
lint-staged: "npm:^16.0.0"
lodash: "npm:^4.17.21"
marky: "npm:^1.2.5"
+ msw: "npm:^2.10.2"
+ msw-storybook-addon: "npm:^2.0.5"
path-complete-extname: "npm:^1.0.0"
playwright: "npm:^1.52.0"
postcss-preset-env: "npm:^10.1.5"
@@ -2655,6 +2743,7 @@ __metadata:
vite-plugin-pwa: "npm:^1.0.0"
vite-plugin-rails: "npm:^0.5.0"
vite-plugin-ruby: "npm:^5.1.1"
+ vite-plugin-static-copy: "npm:^3.1.0"
vite-plugin-svgr: "npm:^4.2.0"
vite-tsconfig-paths: "npm:^5.1.4"
vitest: "npm:^3.2.1"
@@ -2721,6 +2810,20 @@ __metadata:
languageName: node
linkType: hard
+"@mswjs/interceptors@npm:^0.39.1":
+ version: 0.39.2
+ resolution: "@mswjs/interceptors@npm:0.39.2"
+ dependencies:
+ "@open-draft/deferred-promise": "npm:^2.2.0"
+ "@open-draft/logger": "npm:^0.3.0"
+ "@open-draft/until": "npm:^2.0.0"
+ is-node-process: "npm:^1.2.0"
+ outvariant: "npm:^1.4.3"
+ strict-event-emitter: "npm:^0.5.1"
+ checksum: 10c0/5698e33930a6b6e7cc78cf762291be60c91c6348faa22750acc41ef41528e7891e74541ccfb668ba470d964233fd2121c44d0224a2917eedeba2459cf0b78ca2
+ languageName: node
+ linkType: hard
+
"@napi-rs/wasm-runtime@npm:^0.2.7":
version: 0.2.7
resolution: "@napi-rs/wasm-runtime@npm:0.2.7"
@@ -2781,6 +2884,30 @@ __metadata:
languageName: node
linkType: hard
+"@open-draft/deferred-promise@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@open-draft/deferred-promise@npm:2.2.0"
+ checksum: 10c0/eafc1b1d0fc8edb5e1c753c5e0f3293410b40dde2f92688211a54806d4136887051f39b98c1950370be258483deac9dfd17cf8b96557553765198ef2547e4549
+ languageName: node
+ linkType: hard
+
+"@open-draft/logger@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "@open-draft/logger@npm:0.3.0"
+ dependencies:
+ is-node-process: "npm:^1.2.0"
+ outvariant: "npm:^1.4.0"
+ checksum: 10c0/90010647b22e9693c16258f4f9adb034824d1771d3baa313057b9a37797f571181005bc50415a934eaf7c891d90ff71dcd7a9d5048b0b6bb438f31bef2c7c5c1
+ languageName: node
+ linkType: hard
+
+"@open-draft/until@npm:^2.0.0, @open-draft/until@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "@open-draft/until@npm:2.1.0"
+ checksum: 10c0/61d3f99718dd86bb393fee2d7a785f961dcaf12f2055f0c693b27f4d0cd5f7a03d498a6d9289773b117590d794a43cd129366fd8e99222e4832f67b1653d54cf
+ languageName: node
+ linkType: hard
+
"@opentelemetry/api@npm:^1.4.0":
version: 1.6.0
resolution: "@opentelemetry/api@npm:1.6.0"
@@ -3088,10 +3215,10 @@ __metadata:
languageName: node
linkType: hard
-"@rolldown/pluginutils@npm:1.0.0-beta.11":
- version: 1.0.0-beta.11
- resolution: "@rolldown/pluginutils@npm:1.0.0-beta.11"
- checksum: 10c0/140088e33a4dd3bc21d06fa0cbe79b52e95487c9737d425aa5729e52446dc70f066fbce632489a53e45bb567f1e86c19835677c98fe5d4123ae1e2fef53f8d97
+"@rolldown/pluginutils@npm:1.0.0-beta.19":
+ version: 1.0.0-beta.19
+ resolution: "@rolldown/pluginutils@npm:1.0.0-beta.19"
+ checksum: 10c0/e4205df56e6231a347ac601d044af365639741d51b5bea4e91ecc37e19e9777cb79d1daa924b8709ddf1f743ed6922e4e68e2445126434c4d420d9f4416f4feb
languageName: node
linkType: hard
@@ -3786,6 +3913,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/cookie@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "@types/cookie@npm:0.6.0"
+ checksum: 10c0/5b326bd0188120fb32c0be086b141b1481fec9941b76ad537f9110e10d61ee2636beac145463319c71e4be67a17e85b81ca9e13ceb6e3bb63b93d16824d6c149
+ languageName: node
+ linkType: hard
+
"@types/cors@npm:^2.8.16":
version: 2.8.18
resolution: "@types/cors@npm:2.8.18"
@@ -4201,6 +4335,20 @@ __metadata:
languageName: node
linkType: hard
+"@types/statuses@npm:^2.0.4":
+ version: 2.0.6
+ resolution: "@types/statuses@npm:2.0.6"
+ checksum: 10c0/dd88c220b0e2c6315686289525fd61472d2204d2e4bef4941acfb76bda01d3066f749ac74782aab5b537a45314fcd7d6261eefa40b6ec872691f5803adaa608d
+ languageName: node
+ linkType: hard
+
+"@types/tough-cookie@npm:^4.0.5":
+ version: 4.0.5
+ resolution: "@types/tough-cookie@npm:4.0.5"
+ checksum: 10c0/68c6921721a3dcb40451543db2174a145ef915bc8bcbe7ad4e59194a0238e776e782b896c7a59f4b93ac6acefca9161fccb31d1ce3b3445cb6faa467297fb473
+ languageName: node
+ linkType: hard
+
"@types/trusted-types@npm:^2.0.2":
version: 2.0.3
resolution: "@types/trusted-types@npm:2.0.3"
@@ -4577,18 +4725,18 @@ __metadata:
linkType: hard
"@vitejs/plugin-react@npm:^4.2.1":
- version: 4.5.2
- resolution: "@vitejs/plugin-react@npm:4.5.2"
+ version: 4.6.0
+ resolution: "@vitejs/plugin-react@npm:4.6.0"
dependencies:
"@babel/core": "npm:^7.27.4"
"@babel/plugin-transform-react-jsx-self": "npm:^7.27.1"
"@babel/plugin-transform-react-jsx-source": "npm:^7.27.1"
- "@rolldown/pluginutils": "npm:1.0.0-beta.11"
+ "@rolldown/pluginutils": "npm:1.0.0-beta.19"
"@types/babel__core": "npm:^7.20.5"
react-refresh: "npm:^0.17.0"
peerDependencies:
vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0
- checksum: 10c0/37c58e6a9c953ab27eb6de42f0d317d26901117d4e4bec067b098c48353065888d240b819efc5b47e325f83532305d3cc51996fd3eb53f8649b199ecc4424746
+ checksum: 10c0/73b8f271978a0337debb255afd1667f49c2018c118962a8613120383375c4038255a5315cee2ef210dc7fd07cd30d5b12271077ad47db29980f8156b8a49be2c
languageName: node
linkType: hard
@@ -4882,6 +5030,15 @@ __metadata:
languageName: node
linkType: hard
+"ansi-escapes@npm:^4.3.2":
+ version: 4.3.2
+ resolution: "ansi-escapes@npm:4.3.2"
+ dependencies:
+ type-fest: "npm:^0.21.3"
+ checksum: 10c0/da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50
+ languageName: node
+ linkType: hard
+
"ansi-escapes@npm:^7.0.0":
version: 7.0.0
resolution: "ansi-escapes@npm:7.0.0"
@@ -4928,6 +5085,16 @@ __metadata:
languageName: node
linkType: hard
+"anymatch@npm:~3.1.2":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: "npm:^3.0.0"
+ picomatch: "npm:^2.0.4"
+ checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac
+ languageName: node
+ linkType: hard
+
"are-docs-informative@npm:^0.0.2":
version: 0.0.2
resolution: "are-docs-informative@npm:0.0.2"
@@ -5316,6 +5483,13 @@ __metadata:
languageName: node
linkType: hard
+"binary-extensions@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "binary-extensions@npm:2.3.0"
+ checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5
+ languageName: node
+ linkType: hard
+
"bintrees@npm:1.0.2":
version: 1.0.2
resolution: "bintrees@npm:1.0.2"
@@ -5376,7 +5550,7 @@ __metadata:
languageName: node
linkType: hard
-"braces@npm:^3.0.3":
+"braces@npm:^3.0.3, braces@npm:~3.0.2":
version: 3.0.3
resolution: "braces@npm:3.0.3"
dependencies:
@@ -5590,6 +5764,25 @@ __metadata:
languageName: node
linkType: hard
+"chokidar@npm:^3.5.3":
+ version: 3.6.0
+ resolution: "chokidar@npm:3.6.0"
+ dependencies:
+ anymatch: "npm:~3.1.2"
+ braces: "npm:~3.0.2"
+ fsevents: "npm:~2.3.2"
+ glob-parent: "npm:~5.1.2"
+ is-binary-path: "npm:~2.1.0"
+ is-glob: "npm:~4.0.1"
+ normalize-path: "npm:~3.0.0"
+ readdirp: "npm:~3.6.0"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462
+ languageName: node
+ linkType: hard
+
"chokidar@npm:^4.0.0":
version: 4.0.0
resolution: "chokidar@npm:4.0.0"
@@ -5658,6 +5851,13 @@ __metadata:
languageName: node
linkType: hard
+"cli-width@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "cli-width@npm:4.1.0"
+ checksum: 10c0/1fbd56413578f6117abcaf858903ba1f4ad78370a4032f916745fa2c7e390183a9d9029cf837df320b0fdce8137668e522f60a30a5f3d6529ff3872d265a955f
+ languageName: node
+ linkType: hard
+
"cliui@npm:^8.0.1":
version: 8.0.1
resolution: "cliui@npm:8.0.1"
@@ -5808,6 +6008,13 @@ __metadata:
languageName: node
linkType: hard
+"cookie@npm:^0.7.2":
+ version: 0.7.2
+ resolution: "cookie@npm:0.7.2"
+ checksum: 10c0/9596e8ccdbf1a3a88ae02cf5ee80c1c50959423e1022e4e60b91dd87c622af1da309253d8abdb258fb5e3eacb4f08e579dc58b4897b8087574eee0fd35dfa5d2
+ languageName: node
+ linkType: hard
+
"core-js-compat@npm:^3.40.0":
version: 3.41.0
resolution: "core-js-compat@npm:3.41.0"
@@ -5825,9 +6032,9 @@ __metadata:
linkType: hard
"core-js@npm:^3.30.2, core-js@npm:^3.41.0":
- version: 3.43.0
- resolution: "core-js@npm:3.43.0"
- checksum: 10c0/9d4ad66296e60380777de51d019b5c3e6cce023b7999750a5094f9a4b0ea53bf3600beb4ef11c56548f2c8791d43d4056e270d1cf55ba87273011aa7d4597871
+ version: 3.44.0
+ resolution: "core-js@npm:3.44.0"
+ checksum: 10c0/759bf3dc5f75068e9425dddf895fd5531c38794a11ea1c2b65e5ef7c527fe3652d59e8c287e574a211af9bab3c057c5c3fa6f6a773f4e142af895106efad38a4
languageName: node
linkType: hard
@@ -6366,6 +6573,22 @@ __metadata:
languageName: node
linkType: hard
+"emojibase-data@npm:^16.0.3":
+ version: 16.0.3
+ resolution: "emojibase-data@npm:16.0.3"
+ peerDependencies:
+ emojibase: "*"
+ checksum: 10c0/d82520917c2ec326e737da9c5a57472e41a719777fa4770b52b75f0568791613fc94829898831c7b3fff1528134de01019cdf34e571d214fee19e40950d68b7f
+ languageName: node
+ linkType: hard
+
+"emojibase@npm:^16.0.0":
+ version: 16.0.0
+ resolution: "emojibase@npm:16.0.0"
+ checksum: 10c0/ec49ca2e131d349fa1f1dbe6ee8a6bf12da6225ce2de99d488e67a3cb80ac282f27aa480f0a7062c0c069c24508684ba524418be56b475cbd937877663686c47
+ languageName: node
+ linkType: hard
+
"encodeurl@npm:~1.0.2":
version: 1.0.2
resolution: "encodeurl@npm:1.0.2"
@@ -7378,6 +7601,17 @@ __metadata:
languageName: node
linkType: hard
+"fs-extra@npm:^11.3.0":
+ version: 11.3.0
+ resolution: "fs-extra@npm:11.3.0"
+ dependencies:
+ graceful-fs: "npm:^4.2.0"
+ jsonfile: "npm:^6.0.1"
+ universalify: "npm:^2.0.0"
+ checksum: 10c0/5f95e996186ff45463059feb115a22fb048bdaf7e487ecee8a8646c78ed8fdca63630e3077d4c16ce677051f5e60d3355a06f3cd61f3ca43f48cc58822a44d0a
+ languageName: node
+ linkType: hard
+
"fs-extra@npm:^9.0.1":
version: 9.1.0
resolution: "fs-extra@npm:9.1.0"
@@ -7564,7 +7798,7 @@ __metadata:
languageName: node
linkType: hard
-"glob-parent@npm:^5.1.2":
+"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
version: 5.1.2
resolution: "glob-parent@npm:5.1.2"
dependencies:
@@ -7712,6 +7946,13 @@ __metadata:
languageName: node
linkType: hard
+"graphql@npm:^16.8.1":
+ version: 16.11.0
+ resolution: "graphql@npm:16.11.0"
+ checksum: 10c0/124da7860a2292e9acf2fed0c71fc0f6a9b9ca865d390d112bdd563c1f474357141501c12891f4164fe984315764736ad67f705219c62f7580681d431a85db88
+ languageName: node
+ linkType: hard
+
"has-bigints@npm:^1.0.2":
version: 1.0.2
resolution: "has-bigints@npm:1.0.2"
@@ -7769,6 +8010,13 @@ __metadata:
languageName: node
linkType: hard
+"headers-polyfill@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "headers-polyfill@npm:4.0.3"
+ checksum: 10c0/53e85b2c6385f8d411945fb890c5369f1469ce8aa32a6e8d28196df38568148de640c81cf88cbc7c67767103dd9acba48f4f891982da63178fc6e34560022afe
+ languageName: node
+ linkType: hard
+
"help-me@npm:^5.0.0":
version: 5.0.0
resolution: "help-me@npm:5.0.0"
@@ -7917,6 +8165,13 @@ __metadata:
languageName: node
linkType: hard
+"idb@npm:^8.0.3":
+ version: 8.0.3
+ resolution: "idb@npm:8.0.3"
+ checksum: 10c0/421cd9a3281b7564528857031cc33fd9e95753f8191e483054cb25d1ceea7303a0d1462f4f69f5b41606f0f066156999e067478abf2460dfcf9cab80dae2a2b2
+ languageName: node
+ linkType: hard
+
"ieee754@npm:^1.2.1":
version: 1.2.1
resolution: "ieee754@npm:1.2.1"
@@ -8120,6 +8375,15 @@ __metadata:
languageName: node
linkType: hard
+"is-binary-path@npm:~2.1.0":
+ version: 2.1.0
+ resolution: "is-binary-path@npm:2.1.0"
+ dependencies:
+ binary-extensions: "npm:^2.0.0"
+ checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38
+ languageName: node
+ linkType: hard
+
"is-boolean-object@npm:^1.2.1":
version: 1.2.2
resolution: "is-boolean-object@npm:1.2.2"
@@ -8233,7 +8497,7 @@ __metadata:
languageName: node
linkType: hard
-"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3":
+"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
version: 4.0.3
resolution: "is-glob@npm:4.0.3"
dependencies:
@@ -8263,6 +8527,13 @@ __metadata:
languageName: node
linkType: hard
+"is-node-process@npm:^1.0.1, is-node-process@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "is-node-process@npm:1.2.0"
+ checksum: 10c0/5b24fda6776d00e42431d7bcd86bce81cb0b6cabeb944142fe7b077a54ada2e155066ad06dbe790abdb397884bdc3151e04a9707b8cd185099efbc79780573ed
+ languageName: node
+ linkType: hard
+
"is-number-object@npm:^1.1.1":
version: 1.1.1
resolution: "is-number-object@npm:1.1.1"
@@ -9343,6 +9614,57 @@ __metadata:
languageName: node
linkType: hard
+"msw-storybook-addon@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "msw-storybook-addon@npm:2.0.5"
+ dependencies:
+ is-node-process: "npm:^1.0.1"
+ peerDependencies:
+ msw: ^2.0.0
+ checksum: 10c0/3f26fd4a8a6b1b4da165a8940eca4da2e175a69036a1c85c07ec1952fbb595252db689c4380d8f88ec1cfaa66a6696e90ef0c26b2d1bf17c30092b81247d1d40
+ languageName: node
+ linkType: hard
+
+"msw@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "msw@npm:2.10.2"
+ dependencies:
+ "@bundled-es-modules/cookie": "npm:^2.0.1"
+ "@bundled-es-modules/statuses": "npm:^1.0.1"
+ "@bundled-es-modules/tough-cookie": "npm:^0.1.6"
+ "@inquirer/confirm": "npm:^5.0.0"
+ "@mswjs/interceptors": "npm:^0.39.1"
+ "@open-draft/deferred-promise": "npm:^2.2.0"
+ "@open-draft/until": "npm:^2.1.0"
+ "@types/cookie": "npm:^0.6.0"
+ "@types/statuses": "npm:^2.0.4"
+ graphql: "npm:^16.8.1"
+ headers-polyfill: "npm:^4.0.2"
+ is-node-process: "npm:^1.2.0"
+ outvariant: "npm:^1.4.3"
+ path-to-regexp: "npm:^6.3.0"
+ picocolors: "npm:^1.1.1"
+ strict-event-emitter: "npm:^0.5.1"
+ type-fest: "npm:^4.26.1"
+ yargs: "npm:^17.7.2"
+ peerDependencies:
+ typescript: ">= 4.8.x"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ bin:
+ msw: cli/index.js
+ checksum: 10c0/fb44961e17e12864b4764b4c015f6ce7c907081f8dcd237ecd635eab00b787847406fbd36a2bcf2ef4c21114a3610ac03c7f93f3080f509a69b0c1c5285fd683
+ languageName: node
+ linkType: hard
+
+"mute-stream@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "mute-stream@npm:2.0.0"
+ checksum: 10c0/2cf48a2087175c60c8dcdbc619908b49c07f7adcfc37d29236b0c5c612d6204f789104c98cc44d38acab7b3c96f4a3ec2cfdc4934d0738d876dbefa2a12c69f4
+ languageName: node
+ linkType: hard
+
"nano-spawn@npm:^1.0.0":
version: 1.0.1
resolution: "nano-spawn@npm:1.0.1"
@@ -9455,7 +9777,7 @@ __metadata:
languageName: node
linkType: hard
-"normalize-path@npm:^3.0.0":
+"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
version: 3.0.0
resolution: "normalize-path@npm:3.0.0"
checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046
@@ -9625,6 +9947,13 @@ __metadata:
languageName: node
linkType: hard
+"outvariant@npm:^1.4.0, outvariant@npm:^1.4.3":
+ version: 1.4.3
+ resolution: "outvariant@npm:1.4.3"
+ checksum: 10c0/5976ca7740349cb8c71bd3382e2a762b1aeca6f33dc984d9d896acdf3c61f78c3afcf1bfe9cc633a7b3c4b295ec94d292048f83ea2b2594fae4496656eba992c
+ languageName: node
+ linkType: hard
+
"own-keys@npm:^1.0.1":
version: 1.0.1
resolution: "own-keys@npm:1.0.1"
@@ -9663,6 +9992,13 @@ __metadata:
languageName: node
linkType: hard
+"p-map@npm:^7.0.3":
+ version: 7.0.3
+ resolution: "p-map@npm:7.0.3"
+ checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c
+ languageName: node
+ linkType: hard
+
"package-json-from-dist@npm:^1.0.0":
version: 1.0.0
resolution: "package-json-from-dist@npm:1.0.0"
@@ -9778,6 +10114,13 @@ __metadata:
languageName: node
linkType: hard
+"path-to-regexp@npm:^6.3.0":
+ version: 6.3.0
+ resolution: "path-to-regexp@npm:6.3.0"
+ checksum: 10c0/73b67f4638b41cde56254e6354e46ae3a2ebc08279583f6af3d96fe4664fc75788f74ed0d18ca44fa4a98491b69434f9eee73b97bb5314bd1b5adb700f5c18d6
+ languageName: node
+ linkType: hard
+
"path-type@npm:^4.0.0":
version: 4.0.0
resolution: "path-type@npm:4.0.0"
@@ -9799,17 +10142,17 @@ __metadata:
languageName: node
linkType: hard
-"pg-cloudflare@npm:^1.2.5":
- version: 1.2.5
- resolution: "pg-cloudflare@npm:1.2.5"
- checksum: 10c0/48b9105ef027c7b3f57ef88ceaec3634cd82120059bd68273cce06989a1ec547e0b0fbb5d1afdd0711824f409c8b410f9bdec2f6c8034728992d3658c0b36f86
+"pg-cloudflare@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "pg-cloudflare@npm:1.2.7"
+ checksum: 10c0/8a52713dbdecc9d389dc4e65e3b7ede2e199ec3715f7491ee80a15db171f2d75677a102e9c2cef0cb91a2f310e91f976eaec0dd6ef5d8bf357de0b948f9d9431
languageName: node
linkType: hard
-"pg-connection-string@npm:^2.6.0, pg-connection-string@npm:^2.9.0":
- version: 2.9.0
- resolution: "pg-connection-string@npm:2.9.0"
- checksum: 10c0/7145d00688200685a9d9931a7fc8d61c75f348608626aef88080ece956ceb4ff1cbdee29c3284e41b7a3345bab0e4f50f9edc256e270bfa3a563af4ea78bb490
+"pg-connection-string@npm:^2.6.0, pg-connection-string@npm:^2.9.1":
+ version: 2.9.1
+ resolution: "pg-connection-string@npm:2.9.1"
+ checksum: 10c0/9a646529bbc0843806fc5de98ce93735a4612b571f11867178a85665d11989a827e6fd157388ca0e34ec948098564fce836c178cfd499b9f0e8cd9972b8e2e5c
languageName: node
linkType: hard
@@ -9820,19 +10163,19 @@ __metadata:
languageName: node
linkType: hard
-"pg-pool@npm:^3.10.0":
- version: 3.10.0
- resolution: "pg-pool@npm:3.10.0"
+"pg-pool@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "pg-pool@npm:3.10.1"
peerDependencies:
pg: ">=8.0"
- checksum: 10c0/b36162dc98c0ad88cd26f3d65f3e3932c3f870abe7a88905f16fc98282e8131692903e482720ebc9698cb08851c9b19242ff16a50af7f9434c8bb0b5d33a9a9a
+ checksum: 10c0/a00916b7df64226cc597fe769e3a757ff9b11562dc87ce5b0a54101a18c1fe282daaa2accaf27221e81e1e4cdf4da6a33dab09614734d32904d6c4e11c44a079
languageName: node
linkType: hard
-"pg-protocol@npm:*, pg-protocol@npm:^1.10.0":
- version: 1.10.0
- resolution: "pg-protocol@npm:1.10.0"
- checksum: 10c0/7d0d64fe9df50262d907fd476454e1e36f41f5f66044c3ba6aa773fb8add1d350a9c162306e5c33e99bdfbdcc1140dd4ca74f66eda41d0aaceb5853244dcdb65
+"pg-protocol@npm:*, pg-protocol@npm:^1.10.3":
+ version: 1.10.3
+ resolution: "pg-protocol@npm:1.10.3"
+ checksum: 10c0/f7ef54708c93ee6d271e37678296fc5097e4337fca91a88a3d99359b78633dbdbf6e983f0adb34b7cdd261b7ec7266deb20c3233bf3dfdb498b3e1098e8750b9
languageName: node
linkType: hard
@@ -9850,13 +10193,13 @@ __metadata:
linkType: hard
"pg@npm:^8.5.0":
- version: 8.16.0
- resolution: "pg@npm:8.16.0"
+ version: 8.16.3
+ resolution: "pg@npm:8.16.3"
dependencies:
- pg-cloudflare: "npm:^1.2.5"
- pg-connection-string: "npm:^2.9.0"
- pg-pool: "npm:^3.10.0"
- pg-protocol: "npm:^1.10.0"
+ pg-cloudflare: "npm:^1.2.7"
+ pg-connection-string: "npm:^2.9.1"
+ pg-pool: "npm:^3.10.1"
+ pg-protocol: "npm:^1.10.3"
pg-types: "npm:2.2.0"
pgpass: "npm:1.0.5"
peerDependencies:
@@ -9867,7 +10210,7 @@ __metadata:
peerDependenciesMeta:
pg-native:
optional: true
- checksum: 10c0/24542229c7e5cbf69d654de32e8cdc8302c73f1338e56728543cb16364fb319d5689e03fa704b69a208105c7065c867cfccb9dbccccea2020bb5c64ead785713
+ checksum: 10c0/a6a407ff0efb7599760d72ffdcda47a74c34c0fd71d896623caac45cf2cfb0f49a10973cce23110f182b9810639a1e9f6904454d7358c7001574ee0ffdcbce2a
languageName: node
linkType: hard
@@ -9894,7 +10237,7 @@ __metadata:
languageName: node
linkType: hard
-"picomatch@npm:^2.2.2, picomatch@npm:^2.3.1":
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.3.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
@@ -10280,10 +10623,10 @@ __metadata:
linkType: hard
"postcss-preset-env@npm:^10.1.5":
- version: 10.2.3
- resolution: "postcss-preset-env@npm:10.2.3"
+ version: 10.2.4
+ resolution: "postcss-preset-env@npm:10.2.4"
dependencies:
- "@csstools/postcss-cascade-layers": "npm:^5.0.1"
+ "@csstools/postcss-cascade-layers": "npm:^5.0.2"
"@csstools/postcss-color-function": "npm:^4.0.10"
"@csstools/postcss-color-mix-function": "npm:^3.0.10"
"@csstools/postcss-color-mix-variadic-function-arguments": "npm:^1.0.0"
@@ -10349,7 +10692,7 @@ __metadata:
postcss-selector-not: "npm:^8.0.1"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/f3d2ea8b95083acad2cf74aca93904dd3158639bf692d1d471598b538e0c6b4447ae306e7bc1c2426dd465e7c9715373678855b7e211e194b507ef8184e83f99
+ checksum: 10c0/d7f8494d355567dc4ea66fe765c86ba9b1e9ce5061ada5c80c51fdf6c98b004b0b7ef17b5f64d197e1bec2e22ef4b6c613b998e1c1bcad0b53f0a3e303ded2fe
languageName: node
linkType: hard
@@ -10580,6 +10923,15 @@ __metadata:
languageName: node
linkType: hard
+"psl@npm:^1.1.33":
+ version: 1.15.0
+ resolution: "psl@npm:1.15.0"
+ dependencies:
+ punycode: "npm:^2.3.1"
+ checksum: 10c0/d8d45a99e4ca62ca12ac3c373e63d80d2368d38892daa40cfddaa1eb908be98cd549ac059783ef3a56cfd96d57ae8e2fd9ae53d1378d90d42bc661ff924e102a
+ languageName: node
+ linkType: hard
+
"pump@npm:^3.0.0":
version: 3.0.0
resolution: "pump@npm:3.0.0"
@@ -10597,7 +10949,7 @@ __metadata:
languageName: node
linkType: hard
-"punycode@npm:^2.1.0, punycode@npm:^2.3.0, punycode@npm:^2.3.1":
+"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.0, punycode@npm:^2.3.1":
version: 2.3.1
resolution: "punycode@npm:2.3.1"
checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
@@ -10613,6 +10965,13 @@ __metadata:
languageName: node
linkType: hard
+"querystringify@npm:^2.1.1":
+ version: 2.2.0
+ resolution: "querystringify@npm:2.2.0"
+ checksum: 10c0/3258bc3dbdf322ff2663619afe5947c7926a6ef5fb78ad7d384602974c467fadfc8272af44f5eb8cddd0d011aae8fabf3a929a8eee4b86edcc0a21e6bd10f9aa
+ languageName: node
+ linkType: hard
+
"queue-microtask@npm:^1.2.2":
version: 1.2.3
resolution: "queue-microtask@npm:1.2.3"
@@ -11107,6 +11466,15 @@ __metadata:
languageName: node
linkType: hard
+"readdirp@npm:~3.6.0":
+ version: 3.6.0
+ resolution: "readdirp@npm:3.6.0"
+ dependencies:
+ picomatch: "npm:^2.2.1"
+ checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b
+ languageName: node
+ linkType: hard
+
"real-require@npm:^0.2.0":
version: 0.2.0
resolution: "real-require@npm:0.2.0"
@@ -11307,6 +11675,13 @@ __metadata:
languageName: node
linkType: hard
+"requires-port@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "requires-port@npm:1.0.0"
+ checksum: 10c0/b2bfdd09db16c082c4326e573a82c0771daaf7b53b9ce8ad60ea46aa6e30aaf475fe9b164800b89f93b748d2c234d8abff945d2551ba47bf5698e04cd7713267
+ languageName: node
+ linkType: hard
+
"reselect@npm:^5.1.0":
version: 5.1.0
resolution: "reselect@npm:5.1.0"
@@ -12147,6 +12522,13 @@ __metadata:
languageName: node
linkType: hard
+"statuses@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "statuses@npm:2.0.2"
+ checksum: 10c0/a9947d98ad60d01f6b26727570f3bcceb6c8fa789da64fe6889908fe2e294d57503b14bf2b5af7605c2d36647259e856635cd4c49eab41667658ec9d0080ec3f
+ languageName: node
+ linkType: hard
+
"std-env@npm:^3.9.0":
version: 3.9.0
resolution: "std-env@npm:3.9.0"
@@ -12187,6 +12569,13 @@ __metadata:
languageName: node
linkType: hard
+"strict-event-emitter@npm:^0.5.1":
+ version: 0.5.1
+ resolution: "strict-event-emitter@npm:0.5.1"
+ checksum: 10c0/f5228a6e6b6393c57f52f62e673cfe3be3294b35d6f7842fc24b172ae0a6e6c209fa83241d0e433fc267c503bc2f4ffdbe41a9990ff8ffd5ac425ec0489417f7
+ languageName: node
+ linkType: hard
+
"string-argv@npm:^0.3.2":
version: 0.3.2
resolution: "string-argv@npm:0.3.2"
@@ -12820,6 +13209,18 @@ __metadata:
languageName: node
linkType: hard
+"tough-cookie@npm:^4.1.4":
+ version: 4.1.4
+ resolution: "tough-cookie@npm:4.1.4"
+ dependencies:
+ psl: "npm:^1.1.33"
+ punycode: "npm:^2.1.1"
+ universalify: "npm:^0.2.0"
+ url-parse: "npm:^1.5.3"
+ checksum: 10c0/aca7ff96054f367d53d1e813e62ceb7dd2eda25d7752058a74d64b7266fd07be75908f3753a32ccf866a2f997604b414cfb1916d6e7f69bc64d9d9939b0d6c45
+ languageName: node
+ linkType: hard
+
"tough-cookie@npm:^5.1.1":
version: 5.1.2
resolution: "tough-cookie@npm:5.1.2"
@@ -12956,6 +13357,20 @@ __metadata:
languageName: node
linkType: hard
+"type-fest@npm:^0.21.3":
+ version: 0.21.3
+ resolution: "type-fest@npm:0.21.3"
+ checksum: 10c0/902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^4.26.1":
+ version: 4.41.0
+ resolution: "type-fest@npm:4.41.0"
+ checksum: 10c0/f5ca697797ed5e88d33ac8f1fec21921839871f808dc59345c9cf67345bfb958ce41bd821165dbf3ae591cedec2bf6fe8882098dfdd8dc54320b859711a2c1e4
+ languageName: node
+ linkType: hard
+
"type-is@npm:~1.6.18":
version: 1.6.18
resolution: "type-is@npm:1.6.18"
@@ -13173,6 +13588,13 @@ __metadata:
languageName: node
linkType: hard
+"universalify@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "universalify@npm:0.2.0"
+ checksum: 10c0/cedbe4d4ca3967edf24c0800cfc161c5a15e240dac28e3ce575c689abc11f2c81ccc6532c8752af3b40f9120fb5e454abecd359e164f4f6aa44c29cd37e194fe
+ languageName: node
+ linkType: hard
+
"universalify@npm:^2.0.0":
version: 2.0.1
resolution: "universalify@npm:2.0.1"
@@ -13281,6 +13703,16 @@ __metadata:
languageName: node
linkType: hard
+"url-parse@npm:^1.5.3":
+ version: 1.5.10
+ resolution: "url-parse@npm:1.5.10"
+ dependencies:
+ querystringify: "npm:^2.1.1"
+ requires-port: "npm:^1.0.0"
+ checksum: 10c0/bd5aa9389f896974beb851c112f63b466505a04b4807cea2e5a3b7092f6fbb75316f0491ea84e44f66fed55f1b440df5195d7e3a8203f64fcefa19d182f5be87
+ languageName: node
+ linkType: hard
+
"use-composed-ref@npm:^1.3.0":
version: 1.3.0
resolution: "use-composed-ref@npm:1.3.0"
@@ -13423,8 +13855,8 @@ __metadata:
linkType: hard
"vite-plugin-pwa@npm:^1.0.0":
- version: 1.0.0
- resolution: "vite-plugin-pwa@npm:1.0.0"
+ version: 1.0.1
+ resolution: "vite-plugin-pwa@npm:1.0.1"
dependencies:
debug: "npm:^4.3.6"
pretty-bytes: "npm:^6.1.1"
@@ -13433,13 +13865,13 @@ __metadata:
workbox-window: "npm:^7.3.0"
peerDependencies:
"@vite-pwa/assets-generator": ^1.0.0
- vite: ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
workbox-build: ^7.3.0
workbox-window: ^7.3.0
peerDependenciesMeta:
"@vite-pwa/assets-generator":
optional: true
- checksum: 10c0/284a7a0be50c6ffb742363767951efe76d751183c6b273b576d3d9ffa070e6d48d292f0a564e58dc6fc73cc1bdcdca6f076b7cd47e2e34ddfc28625eb937f3c7
+ checksum: 10c0/ceca04df97877ca97eb30805207d4826bd6340796194c9015afeefeb781931bf9019a630c5a0bdaa6dffcada11ce1fdf8595ac48a08d751dff81601aa0c7db38
languageName: node
linkType: hard
@@ -13471,6 +13903,21 @@ __metadata:
languageName: node
linkType: hard
+"vite-plugin-static-copy@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "vite-plugin-static-copy@npm:3.1.0"
+ dependencies:
+ chokidar: "npm:^3.5.3"
+ fs-extra: "npm:^11.3.0"
+ p-map: "npm:^7.0.3"
+ picocolors: "npm:^1.1.1"
+ tinyglobby: "npm:^0.2.14"
+ peerDependencies:
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0
+ checksum: 10c0/dce43f12ecc71417f1afd530d15b316774fe0441c2502e48e2bfafcd07fd4ae90a5782621f932d8d12a8c8213bed6746e80d5452e2fb216ece2bcf7e80309f82
+ languageName: node
+ linkType: hard
+
"vite-plugin-stimulus-hmr@npm:^3.0.0":
version: 3.0.0
resolution: "vite-plugin-stimulus-hmr@npm:3.0.0"
@@ -14043,6 +14490,17 @@ __metadata:
languageName: node
linkType: hard
+"wrap-ansi@npm:^6.2.0":
+ version: 6.2.0
+ resolution: "wrap-ansi@npm:6.2.0"
+ dependencies:
+ ansi-styles: "npm:^4.0.0"
+ string-width: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.0"
+ checksum: 10c0/baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c
+ languageName: node
+ linkType: hard
+
"wrap-ansi@npm:^8.1.0":
version: 8.1.0
resolution: "wrap-ansi@npm:8.1.0"
@@ -14083,8 +14541,8 @@ __metadata:
linkType: hard
"ws@npm:^8.12.1, ws@npm:^8.18.0, ws@npm:^8.18.2":
- version: 8.18.2
- resolution: "ws@npm:8.18.2"
+ version: 8.18.3
+ resolution: "ws@npm:8.18.3"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
@@ -14093,7 +14551,7 @@ __metadata:
optional: true
utf-8-validate:
optional: true
- checksum: 10c0/4b50f67931b8c6943c893f59c524f0e4905bbd183016cfb0f2b8653aa7f28dad4e456b9d99d285bbb67cca4fedd9ce90dfdfaa82b898a11414ebd66ee99141e4
+ checksum: 10c0/eac918213de265ef7cb3d4ca348b891a51a520d839aa51cdb8ca93d4fa7ff9f6ccb339ccee89e4075324097f0a55157c89fa3f7147bde9d8d7e90335dc087b53
languageName: node
linkType: hard
@@ -14162,7 +14620,7 @@ __metadata:
languageName: node
linkType: hard
-"yargs@npm:^17.5.1":
+"yargs@npm:^17.5.1, yargs@npm:^17.7.2":
version: 17.7.2
resolution: "yargs@npm:17.7.2"
dependencies:
@@ -14184,6 +14642,13 @@ __metadata:
languageName: node
linkType: hard
+"yoctocolors-cjs@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "yoctocolors-cjs@npm:2.1.2"
+ checksum: 10c0/a0e36eb88fea2c7981eab22d1ba45e15d8d268626e6c4143305e2c1628fa17ebfaa40cd306161a8ce04c0a60ee0262058eab12567493d5eb1409780853454c6f
+ languageName: node
+ linkType: hard
+
"zlibjs@npm:^0.3.1":
version: 0.3.1
resolution: "zlibjs@npm:0.3.1"