);
diff --git a/app/javascript/mastodon/features/compose/components/search_results.jsx b/app/javascript/mastodon/features/compose/components/search_results.jsx
index 6a482c8ec2..986d78e8b1 100644
--- a/app/javascript/mastodon/features/compose/components/search_results.jsx
+++ b/app/javascript/mastodon/features/compose/components/search_results.jsx
@@ -6,6 +6,7 @@ import FindInPageIcon from '@/material-icons/400-24px/find_in_page.svg?react';
import PeopleIcon from '@/material-icons/400-24px/group.svg?react';
import TagIcon from '@/material-icons/400-24px/tag.svg?react';
import { expandSearch } from 'mastodon/actions/search';
+import { Account } from 'mastodon/components/account';
import { Icon } from 'mastodon/components/icon';
import { LoadMore } from 'mastodon/components/load_more';
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
@@ -13,7 +14,6 @@ import { SearchSection } from 'mastodon/features/explore/components/search_secti
import { useAppDispatch, useAppSelector } from 'mastodon/store';
import { ImmutableHashtag as Hashtag } from '../../../components/hashtag';
-import AccountContainer from '../../../containers/account_container';
import StatusContainer from '../../../containers/status_container';
const INITIAL_PAGE_LIMIT = 10;
@@ -49,7 +49,7 @@ export const SearchResults = () => {
if (results.get('accounts') && results.get('accounts').size > 0) {
accounts = (
>}>
- {withoutLastResult(results.get('accounts')).map(accountId => )}
+ {withoutLastResult(results.get('accounts')).map(accountId => )}
{(results.get('accounts').size > INITIAL_PAGE_LIMIT && results.get('accounts').size % INITIAL_PAGE_LIMIT === 1) && }
);
diff --git a/app/javascript/mastodon/features/explore/results.jsx b/app/javascript/mastodon/features/explore/results.jsx
index 355c0f1c4c..ad70d459d8 100644
--- a/app/javascript/mastodon/features/explore/results.jsx
+++ b/app/javascript/mastodon/features/explore/results.jsx
@@ -13,10 +13,10 @@ import FindInPageIcon from '@/material-icons/400-24px/find_in_page.svg?react';
import PeopleIcon from '@/material-icons/400-24px/group.svg?react';
import TagIcon from '@/material-icons/400-24px/tag.svg?react';
import { submitSearch, expandSearch } from 'mastodon/actions/search';
+import { Account } from 'mastodon/components/account';
import { ImmutableHashtag as Hashtag } from 'mastodon/components/hashtag';
import { Icon } from 'mastodon/components/icon';
import ScrollableList from 'mastodon/components/scrollable_list';
-import Account from 'mastodon/containers/account_container';
import Status from 'mastodon/containers/status_container';
import { SearchSection } from './components/search_section';
diff --git a/app/javascript/mastodon/features/favourites/index.jsx b/app/javascript/mastodon/features/favourites/index.jsx
index 27ca169409..c5c6abe081 100644
--- a/app/javascript/mastodon/features/favourites/index.jsx
+++ b/app/javascript/mastodon/features/favourites/index.jsx
@@ -12,11 +12,11 @@ import { debounce } from 'lodash';
import RefreshIcon from '@/material-icons/400-24px/refresh.svg?react';
import { fetchFavourites, expandFavourites } from 'mastodon/actions/interactions';
+import { Account } from 'mastodon/components/account';
import ColumnHeader from 'mastodon/components/column_header';
import { Icon } from 'mastodon/components/icon';
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
import ScrollableList from 'mastodon/components/scrollable_list';
-import AccountContainer from 'mastodon/containers/account_container';
import Column from 'mastodon/features/ui/components/column';
const messages = defineMessages({
@@ -87,7 +87,7 @@ class Favourites extends ImmutablePureComponent {
bindToDocument={!multiColumn}
>
{accountIds.map(id =>
- ,
+ ,
)}
diff --git a/app/javascript/mastodon/features/followers/index.jsx b/app/javascript/mastodon/features/followers/index.jsx
index 92fce79c35..c13033b289 100644
--- a/app/javascript/mastodon/features/followers/index.jsx
+++ b/app/javascript/mastodon/features/followers/index.jsx
@@ -8,6 +8,7 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
+import { Account } from 'mastodon/components/account';
import { TimelineHint } from 'mastodon/components/timeline_hint';
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
@@ -23,7 +24,6 @@ import {
import { ColumnBackButton } from '../../components/column_back_button';
import { LoadingIndicator } from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
-import AccountContainer from '../../containers/account_container';
import { LimitedAccountHint } from '../account_timeline/components/limited_account_hint';
import HeaderContainer from '../account_timeline/containers/header_container';
import Column from '../ui/components/column';
@@ -175,7 +175,7 @@ class Followers extends ImmutablePureComponent {
bindToDocument={!multiColumn}
>
{forceEmptyState ? [] : accountIds.map(id =>
- ,
+ ,
)}
diff --git a/app/javascript/mastodon/features/following/index.jsx b/app/javascript/mastodon/features/following/index.jsx
index b53a016ff1..d37c0c30ef 100644
--- a/app/javascript/mastodon/features/following/index.jsx
+++ b/app/javascript/mastodon/features/following/index.jsx
@@ -8,6 +8,7 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
+import { Account } from 'mastodon/components/account';
import { TimelineHint } from 'mastodon/components/timeline_hint';
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
@@ -23,7 +24,6 @@ import {
import { ColumnBackButton } from '../../components/column_back_button';
import { LoadingIndicator } from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
-import AccountContainer from '../../containers/account_container';
import { LimitedAccountHint } from '../account_timeline/components/limited_account_hint';
import HeaderContainer from '../account_timeline/containers/header_container';
import Column from '../ui/components/column';
@@ -175,7 +175,7 @@ class Following extends ImmutablePureComponent {
bindToDocument={!multiColumn}
>
{forceEmptyState ? [] : accountIds.map(id =>
- ,
+ ,
)}
diff --git a/app/javascript/mastodon/features/lists/members.tsx b/app/javascript/mastodon/features/lists/members.tsx
index 97b730f436..41d02ad9fc 100644
--- a/app/javascript/mastodon/features/lists/members.tsx
+++ b/app/javascript/mastodon/features/lists/members.tsx
@@ -9,9 +9,13 @@ import { useDebouncedCallback } from 'use-debounce';
import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react';
import SquigglyArrow from '@/svg-icons/squiggly_arrow.svg?react';
+import { fetchRelationships } from 'mastodon/actions/accounts';
+import { showAlertForError } from 'mastodon/actions/alerts';
import { importFetchedAccounts } from 'mastodon/actions/importer';
import { fetchList } from 'mastodon/actions/lists';
+import { openModal } from 'mastodon/actions/modal';
import { apiRequest } from 'mastodon/api';
+import { apiFollowAccount } from 'mastodon/api/accounts';
import {
apiGetAccounts,
apiAddAccountToList,
@@ -28,13 +32,14 @@ import { DisplayName } from 'mastodon/components/display_name';
import ScrollableList from 'mastodon/components/scrollable_list';
import { ShortNumber } from 'mastodon/components/short_number';
import { VerifiedBadge } from 'mastodon/components/verified_badge';
+import { me } from 'mastodon/initial_state';
import { useAppDispatch, useAppSelector } from 'mastodon/store';
const messages = defineMessages({
heading: { id: 'column.list_members', defaultMessage: 'Manage list members' },
placeholder: {
- id: 'lists.search_placeholder',
- defaultMessage: 'Search people you follow',
+ id: 'lists.search',
+ defaultMessage: 'Search',
},
enterSearch: { id: 'lists.add_to_list', defaultMessage: 'Add to list' },
add: { id: 'lists.add_member', defaultMessage: 'Add' },
@@ -51,17 +56,51 @@ const AccountItem: React.FC<{
onToggle: (accountId: string) => void;
}> = ({ accountId, listId, partOfList, onToggle }) => {
const intl = useIntl();
+ const dispatch = useAppDispatch();
const account = useAppSelector((state) => state.accounts.get(accountId));
+ const relationship = useAppSelector((state) =>
+ accountId ? state.relationships.get(accountId) : undefined,
+ );
+ const following =
+ accountId === me || relationship?.following || relationship?.requested;
+
+ useEffect(() => {
+ if (accountId) {
+ dispatch(fetchRelationships([accountId]));
+ }
+ }, [dispatch, accountId]);
const handleClick = useCallback(() => {
if (partOfList) {
void apiRemoveAccountFromList(listId, accountId);
+ onToggle(accountId);
} else {
- void apiAddAccountToList(listId, accountId);
+ if (following) {
+ void apiAddAccountToList(listId, accountId);
+ onToggle(accountId);
+ } else {
+ dispatch(
+ openModal({
+ modalType: 'CONFIRM_FOLLOW_TO_LIST',
+ modalProps: {
+ accountId,
+ onConfirm: () => {
+ apiFollowAccount(accountId)
+ .then(() => apiAddAccountToList(listId, accountId))
+ .then(() => {
+ onToggle(accountId);
+ return '';
+ })
+ .catch((err: unknown) => {
+ dispatch(showAlertForError(err));
+ });
+ },
+ },
+ }),
+ );
+ }
}
-
- onToggle(accountId);
- }, [accountId, listId, partOfList, onToggle]);
+ }, [dispatch, accountId, following, listId, partOfList, onToggle]);
if (!account) {
return null;
@@ -186,8 +225,7 @@ const ListMembers: React.FC<{
signal: searchRequestRef.current.signal,
params: {
q: value,
- resolve: false,
- following: true,
+ resolve: true,
},
})
.then((data) => {
diff --git a/app/javascript/mastodon/features/mutes/index.jsx b/app/javascript/mastodon/features/mutes/index.jsx
index 3b50244ea4..5a5711da58 100644
--- a/app/javascript/mastodon/features/mutes/index.jsx
+++ b/app/javascript/mastodon/features/mutes/index.jsx
@@ -11,11 +11,11 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
import VolumeOffIcon from '@/material-icons/400-24px/volume_off.svg?react';
+import { Account } from 'mastodon/components/account';
import { fetchMutes, expandMutes } from '../../actions/mutes';
import { LoadingIndicator } from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
-import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
const messages = defineMessages({
@@ -72,7 +72,7 @@ class Mutes extends ImmutablePureComponent {
bindToDocument={!multiColumn}
>
{accountIds.map(id =>
- ,
+ ,
)}
diff --git a/app/javascript/mastodon/features/notifications/components/notification.jsx b/app/javascript/mastodon/features/notifications/components/notification.jsx
index 7e3a860e3e..00963b2274 100644
--- a/app/javascript/mastodon/features/notifications/components/notification.jsx
+++ b/app/javascript/mastodon/features/notifications/components/notification.jsx
@@ -18,8 +18,8 @@ import PersonIcon from '@/material-icons/400-24px/person-fill.svg?react';
import PersonAddIcon from '@/material-icons/400-24px/person_add-fill.svg?react';
import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react';
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
+import { Account } from 'mastodon/components/account';
import { Icon } from 'mastodon/components/icon';
-import AccountContainer from 'mastodon/containers/account_container';
import StatusContainer from 'mastodon/containers/status_container';
import { me } from 'mastodon/initial_state';
import { WithRouterPropTypes } from 'mastodon/utils/react_router';
@@ -147,7 +147,7 @@ class Notification extends ImmutablePureComponent {
-
+
);
@@ -167,7 +167,7 @@ class Notification extends ImmutablePureComponent {
-
+
);
@@ -420,7 +420,7 @@ class Notification extends ImmutablePureComponent {
-
+
);
diff --git a/app/javascript/mastodon/features/onboarding/follows.tsx b/app/javascript/mastodon/features/onboarding/follows.tsx
index 6ff0d31fd7..703a4449be 100644
--- a/app/javascript/mastodon/features/onboarding/follows.tsx
+++ b/app/javascript/mastodon/features/onboarding/follows.tsx
@@ -14,11 +14,11 @@ import { fetchSuggestions } from 'mastodon/actions/suggestions';
import { markAsPartial } from 'mastodon/actions/timelines';
import { apiRequest } from 'mastodon/api';
import type { ApiAccountJSON } from 'mastodon/api_types/accounts';
+import { Account } from 'mastodon/components/account';
import { Column } from 'mastodon/components/column';
import { ColumnHeader } from 'mastodon/components/column_header';
import { ColumnSearchHeader } from 'mastodon/components/column_search_header';
import ScrollableList from 'mastodon/components/scrollable_list';
-import Account from 'mastodon/containers/account_container';
import { useAppSelector, useAppDispatch } from 'mastodon/store';
const messages = defineMessages({
@@ -170,12 +170,7 @@ export const Follows: React.FC<{
}
>
{displayedAccountIds.map((accountId) => (
-
+
))}
diff --git a/app/javascript/mastodon/features/reblogs/index.jsx b/app/javascript/mastodon/features/reblogs/index.jsx
index 3d1fc94cb7..8bde919a0f 100644
--- a/app/javascript/mastodon/features/reblogs/index.jsx
+++ b/app/javascript/mastodon/features/reblogs/index.jsx
@@ -11,13 +11,13 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
import RefreshIcon from '@/material-icons/400-24px/refresh.svg?react';
+import { Account } from 'mastodon/components/account';
import { Icon } from 'mastodon/components/icon';
import { fetchReblogs, expandReblogs } from '../../actions/interactions';
import ColumnHeader from '../../components/column_header';
import { LoadingIndicator } from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
-import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
const messages = defineMessages({
@@ -88,7 +88,7 @@ class Reblogs extends ImmutablePureComponent {
bindToDocument={!multiColumn}
>
{accountIds.map(id =>
- ,
+ ,
)}
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/follow_to_list.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/follow_to_list.tsx
new file mode 100644
index 0000000000..b862a29827
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/follow_to_list.tsx
@@ -0,0 +1,43 @@
+import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
+
+import { useAppSelector } from 'mastodon/store';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const messages = defineMessages({
+ title: {
+ id: 'confirmations.follow_to_list.title',
+ defaultMessage: 'Follow user?',
+ },
+ confirm: {
+ id: 'confirmations.follow_to_list.confirm',
+ defaultMessage: 'Follow and add to list',
+ },
+});
+
+export const ConfirmFollowToListModal: React.FC<
+ {
+ accountId: string;
+ onConfirm: () => void;
+ } & BaseConfirmationModalProps
+> = ({ accountId, onConfirm, onClose }) => {
+ const intl = useIntl();
+ const account = useAppSelector((state) => state.accounts.get(accountId));
+
+ return (
+ @{account?.acct} }}
+ />
+ }
+ confirm={intl.formatMessage(messages.confirm)}
+ onConfirm={onConfirm}
+ onClose={onClose}
+ />
+ );
+};
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 912c99a393..16478d0d11 100644
--- a/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts
@@ -6,3 +6,4 @@ export { ConfirmEditStatusModal } from './edit_status';
export { ConfirmUnfollowModal } from './unfollow';
export { ConfirmClearNotificationsModal } from './clear_notifications';
export { ConfirmLogOutModal } from './log_out';
+export { ConfirmFollowToListModal } from './follow_to_list';
diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx
index c3446d9be2..16d4973b94 100644
--- a/app/javascript/mastodon/features/ui/components/modal_root.jsx
+++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx
@@ -35,6 +35,7 @@ import {
ConfirmUnfollowModal,
ConfirmClearNotificationsModal,
ConfirmLogOutModal,
+ ConfirmFollowToListModal,
} from './confirmation_modals';
import FocalPointModal from './focal_point_modal';
import ImageModal from './image_modal';
@@ -56,6 +57,7 @@ export const MODAL_COMPONENTS = {
'CONFIRM_UNFOLLOW': () => Promise.resolve({ default: ConfirmUnfollowModal }),
'CONFIRM_CLEAR_NOTIFICATIONS': () => Promise.resolve({ default: ConfirmClearNotificationsModal }),
'CONFIRM_LOG_OUT': () => Promise.resolve({ default: ConfirmLogOutModal }),
+ 'CONFIRM_FOLLOW_TO_LIST': () => Promise.resolve({ default: ConfirmFollowToListModal }),
'MUTE': MuteModal,
'BLOCK': BlockModal,
'DOMAIN_BLOCK': DomainBlockModal,
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 4c7dcb57ec..36e1807228 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.logout.title": "Log out?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Members of the list",
"lists.replies_policy.none": "No one",
"lists.save": "Save",
- "lists.search_placeholder": "Search people you follow",
+ "lists.search": "Search",
"lists.show_replies_to": "Include replies from list members to",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading…",
From 836810e88b0b54721079cb579aa0b63fdf80bfab Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 3 Dec 2024 10:44:20 +0100
Subject: [PATCH 009/175] New Crowdin Translations (automated) (#33146)
Co-authored-by: GitHub Actions
---
app/javascript/mastodon/locales/el.json | 8 ++++++
app/javascript/mastodon/locales/nan.json | 1 +
app/javascript/mastodon/locales/ru.json | 17 ++++++------
app/javascript/mastodon/locales/zh-CN.json | 10 ++++----
config/locales/activerecord.nan.yml | 1 +
config/locales/bg.yml | 30 +++++++++++++++++-----
config/locales/devise.nan.yml | 1 +
config/locales/doorkeeper.nan.yml | 1 +
config/locales/fi.yml | 4 +--
config/locales/nan.yml | 1 +
config/locales/ru.yml | 1 +
config/locales/simple_form.nan.yml | 1 +
config/locales/simple_form.tr.yml | 2 ++
13 files changed, 56 insertions(+), 22 deletions(-)
create mode 100644 app/javascript/mastodon/locales/nan.json
create mode 100644 config/locales/activerecord.nan.yml
create mode 100644 config/locales/devise.nan.yml
create mode 100644 config/locales/doorkeeper.nan.yml
create mode 100644 config/locales/nan.yml
create mode 100644 config/locales/simple_form.nan.yml
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 7bf5e99032..000c0e7650 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -101,6 +101,7 @@
"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": "Αυτό σε βάζει στην κορυφή του των χρηστών του Mastodon.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Δεν θα το πούμε στον Bernie.",
@@ -128,6 +129,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": "Καθώς το Mastodon είναι αποκεντρωμένο, μπορείς να δημιουργήσεις λογαριασμό σε άλλον διακομιστή αλλά να συνεχίσεις να αλληλεπιδράς με αυτόν.",
"closed_registrations_modal.description": "Η δημιουργία λογαριασμού στον {domain} προς το παρόν δεν είναι δυνατή, αλλά λάβε υπόψη ότι δεν χρειάζεσαι λογαριασμό ειδικά στον {domain} για να χρησιμοποιήσεις το Mastodon.",
@@ -138,13 +140,16 @@
"column.blocks": "Αποκλεισμένοι χρήστες",
"column.bookmarks": "Σελιδοδείκτες",
"column.community": "Τοπική ροή",
+ "column.create_list": "Δημιουργία λίστας",
"column.direct": "Ιδιωτικές αναφορές",
"column.directory": "Περιήγηση στα προφίλ",
"column.domain_blocks": "Αποκλεισμένοι τομείς",
+ "column.edit_list": "Επεξεργασία λίστας",
"column.favourites": "Αγαπημένα",
"column.firehose": "Ζωντανές ροές",
"column.follow_requests": "Αιτήματα ακολούθησης",
"column.home": "Αρχική",
+ "column.list_members": "Διαχείριση μελών λίστας",
"column.lists": "Λίστες",
"column.mutes": "Αποσιωπημένοι χρήστες",
"column.notifications": "Ειδοποιήσεις",
@@ -157,6 +162,7 @@
"column_header.pin": "Καρφίτσωμα",
"column_header.show_settings": "Εμφάνιση ρυθμίσεων",
"column_header.unpin": "Ξεκαρφίτσωμα",
+ "column_search.cancel": "Ακύρωση",
"column_subheading.settings": "Ρυθμίσεις",
"community.column_settings.local_only": "Τοπικά μόνο",
"community.column_settings.media_only": "Μόνο πολυμέσα",
@@ -230,6 +236,8 @@
"disabled_account_banner.text": "Ο λογαριασμός σου {disabledAccount} είναι προς το παρόν απενεργοποιημένος.",
"dismissable_banner.community_timeline": "Αυτές είναι οι πιο πρόσφατες δημόσιες αναρτήσεις ατόμων των οποίων οι λογαριασμοί φιλοξενούνται στο {domain}.",
"dismissable_banner.dismiss": "Παράβλεψη",
+ "dismissable_banner.explore_links": "Αυτές οι ιστορίες ειδήσεων μοιράζονται περισσότερο στο fediverse σήμερα. Νεότερες ιστορίες ειδήσεων που δημοσιεύτηκαν από πιο διαφορετικά άτομα κατατάσσονται υψηλότερα.",
+ "dismissable_banner.explore_statuses": "Αυτές οι αναρτήσεις από όλο το fediverse κερδίζουν την προσοχή σήμερα. Νεότερες αναρτήσεις με περισσότερες ενισχύσεις και αγαπημένα κατατάσσονται υψηλότερα.",
"domain_block_modal.block": "Αποκλεισμός διακομιστή",
"domain_block_modal.block_account_instead": "Αποκλεισμός @{name} αντ' αυτού",
"domain_block_modal.they_can_interact_with_old_posts": "Άτομα από αυτόν τον διακομιστή μπορούν να αλληλεπιδράσουν με τις παλιές αναρτήσεις σου.",
diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/app/javascript/mastodon/locales/nan.json
@@ -0,0 +1 @@
+{}
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 6ea8d65851..81b5525da2 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -89,7 +89,7 @@
"announcement.announcement": "Объявление",
"annual_report.summary.archetype.booster": "Репостер",
"annual_report.summary.archetype.lurker": "Молчун",
- "annual_report.summary.archetype.oracle": "Шаман",
+ "annual_report.summary.archetype.oracle": "Гуру",
"annual_report.summary.archetype.pollster": "Опросчик",
"annual_report.summary.archetype.replier": "Душа компании",
"annual_report.summary.followers.followers": "подписчиков",
@@ -284,7 +284,7 @@
"empty_column.account_timeline": "Здесь нет постов!",
"empty_column.account_unavailable": "Профиль недоступен",
"empty_column.blocks": "Вы ещё никого не заблокировали.",
- "empty_column.bookmarked_statuses": "У вас пока нет постов в закладках. Как добавите один, он отобразится здесь.",
+ "empty_column.bookmarked_statuses": "У вас пока нет закладок. Когда вы добавляете пост в закладки, он появляется здесь.",
"empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!",
"empty_column.direct": "У вас пока нет личных сообщений. Как только вы отправите или получите сообщение, оно появится здесь.",
"empty_column.domain_blocks": "Скрытых доменов пока нет.",
@@ -293,9 +293,9 @@
"empty_column.favourites": "Никто ещё не добавил этот пост в «Избранное». Как только кто-то это сделает, это отобразится здесь.",
"empty_column.follow_requests": "Вам ещё не приходили запросы на подписку. Все новые запросы будут показаны здесь.",
"empty_column.followed_tags": "Вы еще не подписались ни на один хэштег. Когда вы это сделаете, они появятся здесь.",
- "empty_column.hashtag": "С этим хэштегом пока ещё ничего не постили.",
+ "empty_column.hashtag": "С этим хэштегом пока ещё ничего не публиковали.",
"empty_column.home": "Ваша лента совсем пуста! Подписывайтесь на других, чтобы заполнить её.",
- "empty_column.list": "В этом списке пока ничего нет.",
+ "empty_column.list": "В этом списке пока ничего нет. Когда пользователи в списке публикуют новые посты, они появляются здесь.",
"empty_column.mutes": "Вы ещё никого не добавляли в список игнорируемых.",
"empty_column.notification_requests": "Здесь ничего нет! Когда вы получите новые уведомления, они здесь появятся согласно вашим настройкам.",
"empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.",
@@ -566,7 +566,7 @@
"notification.moderation_warning.action_sensitive": "С этого момента ваши сообщения будут помечены как деликатные.",
"notification.moderation_warning.action_silence": "Ваша учётная запись была ограничена.",
"notification.moderation_warning.action_suspend": "Действие вашей учётной записи приостановлено.",
- "notification.own_poll": "Ваш опрос закончился",
+ "notification.own_poll": "Ваш опрос завершился",
"notification.poll": "Голосование, в котором вы приняли участие, завершилось",
"notification.reblog": "{name} продвинул(а) ваш пост",
"notification.reblog.name_and_others_with_link": "{name} и ещё {count, plural, one {# пользователь} few {# пользователя} other {# пользователей}} продвинули ваш пост",
@@ -575,7 +575,7 @@
"notification.relationships_severance_event.domain_block": "Администратор {from} заблокировал {target} включая {followersCount} ваших подписчиков и {followingCount, plural, one {# аккаунт} few {# аккаунта} other {# аккаунтов}}, на которые вы подписаны.",
"notification.relationships_severance_event.learn_more": "Узнать больше",
"notification.relationships_severance_event.user_domain_block": "Вы заблокировали {target} включая {followersCount} ваших подписчиков и {followingCount, plural, one {# аккаунт} few {# аккаунта} other {# аккаунтов}}, на которые вы подписаны.",
- "notification.status": "{name} только что запостил",
+ "notification.status": "{name} опубликовал(а) новый пост",
"notification.update": "{name} изменил(а) пост",
"notification_requests.accept": "Принять",
"notification_requests.accept_multiple": "{count, plural, one {Принять # запрос…} few {Принять # запроса…} other {Принять # запросов…}}",
@@ -722,7 +722,7 @@
"report.close": "Готово",
"report.comment.title": "Есть ли что-нибудь ещё, что нам стоит знать?",
"report.forward": "Переслать в {target}",
- "report.forward_hint": "Эта учётная запись расположена на другом узле. Отправить туда анонимную копию вашей жалобы?",
+ "report.forward_hint": "Эта учётная запись расположена на другом сервере. Отправить туда анонимную копию вашей жалобы?",
"report.mute": "Игнорировать",
"report.mute_explanation": "Вы не будете видеть их посты. Они по-прежнему могут подписываться на вас и видеть ваши посты, но не будут знать, что они в списке игнорируемых.",
"report.next": "Далее",
@@ -837,7 +837,7 @@
"status.replied_to": "Ответил(а) {name}",
"status.reply": "Ответить",
"status.replyAll": "Ответить всем",
- "status.report": "Пожаловаться",
+ "status.report": "Пожаловаться на @{name}",
"status.sensitive_warning": "Содержимое «деликатного характера»",
"status.share": "Поделиться",
"status.show_less_all": "Свернуть все спойлеры в ветке",
@@ -875,6 +875,7 @@
"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_form.thumbnail": "Изменить обложку",
"upload_form.video_description": "Опишите видео для людей с нарушением слуха или зрения",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 3a4ac6976b..937aebeaa9 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -93,7 +93,7 @@
"annual_report.summary.archetype.pollster": "投票狂魔",
"annual_report.summary.archetype.replier": "评论区原住民",
"annual_report.summary.followers.followers": "关注者",
- "annual_report.summary.followers.total": "{count} 人",
+ "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": "传播最广嘟嘟",
@@ -102,10 +102,10 @@
"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.new_posts.new_posts": "新嘟嘟",
"annual_report.summary.percentile.text": "这使你跻身 Mastodon 用户的前",
- "annual_report.summary.percentile.we_wont_tell_bernie": "我们打死也不会告诉扣税国王的(他知道的话要来收你发嘟税了)。",
- "annual_report.summary.thanks": "感谢你这一年和 Mastodon 上的大家一起嘟嘟!",
+ "annual_report.summary.percentile.we_wont_tell_bernie": "我们打死也不会告诉扣税国王的。",
+ "annual_report.summary.thanks": "谢谢你这一年和 Mastodon 上的大家一起嘟嘟!",
"attachments_list.unprocessed": "(未处理)",
"audio.hide": "隐藏音频",
"block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重你的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。",
@@ -392,7 +392,7 @@
"home.hide_announcements": "隐藏公告",
"home.pending_critical_update.body": "请尽快更新你的 Mastodon 服务器!",
"home.pending_critical_update.link": "查看更新",
- "home.pending_critical_update.title": "紧急安全更新可用!",
+ "home.pending_critical_update.title": "有紧急安全更新!",
"home.show_announcements": "显示公告",
"ignore_notifications_modal.disclaimer": "Mastodon无法通知对方用户你忽略了他们的通知。忽略通知不会阻止消息本身的发送。",
"ignore_notifications_modal.filter_instead": "改为过滤",
diff --git a/config/locales/activerecord.nan.yml b/config/locales/activerecord.nan.yml
new file mode 100644
index 0000000000..512c65fe8b
--- /dev/null
+++ b/config/locales/activerecord.nan.yml
@@ -0,0 +1 @@
+nan:
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 6b75147625..7ff595b41a 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -61,6 +61,7 @@ bg:
demote: Понижаване
destroyed_msg: Данните на %{username} вече са на опашка за незабавно изтриване
disable: Замразяване
+ disable_sign_in_token_auth: Изключване на удостоверяването с маркер по е-поща
disable_two_factor_authentication: Изключване на 2факт. удостов.
disabled: Замразено
display_name: Име на показ
@@ -69,6 +70,7 @@ bg:
email: Имейл
email_status: Състояние на имейл
enable: Размразяване
+ enable_sign_in_token_auth: Задействане на удостоверяването с маркер по е-поща
enabled: Включено
enabled_msg: Успешно размразяване на акаунта на %{username}
followers: Последователи
@@ -133,6 +135,7 @@ bg:
resubscribe: Абониране пак
role: Роля
search: Търсене
+ search_same_email_domain: Други потребители със същия домейн за е-поща
search_same_ip: Други потребители със същия IP
security: Сигурност
security_measures:
@@ -173,10 +176,12 @@ bg:
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: Създаване на блокиране за домейна
@@ -916,6 +921,8 @@ bg:
allow_provider: Позволяване на публикуващия
confirm_allow: Наистина ли искате да позволите избраните връзки?
confirm_allow_provider: Наистина ли искате да позволите избраните доставчици?
+ confirm_disallow: Наистина ли искате да забраните избраните връзки?
+ confirm_disallow_provider: Наистина ли искате да забраните избраните доставчици?
description_html: Това са връзки, които в момента са много пъти споделяни от акаунти, чиито публикации сървърът ви вижда. Може да помогне на потребителите ви да разберат какво се случва по света. Никоя връзка няма да се показва публично, докато не одобрите публикуващия. Може още и да одобрявате или отхвърляте отделни връзки.
disallow: Забранявам връзката
disallow_provider: Забраняване на публикуващия
@@ -941,13 +948,15 @@ bg:
allow_account: Позволяване на автора
confirm_allow: Наистина ли искате да позволите избраните статуси?
confirm_allow_account: Наистина ли искате да позволите избраните акаунти?
- description_html: Това са публикации, за които сървърът ви знае, че са често споделяни или харесвани в момента. Това може да помогне на вашите нови и завръщащи се потребители да открият повече хора за следване. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предлган на другите. Също така можете да позволявате или отхвърляте отделни публикации.
+ confirm_disallow: Наистина ли искате да забраните избраните статуси?
+ confirm_disallow_account: Наистина ли искате да забраните избраните акаунти?
+ description_html: Има публикации, за които сървърът ви знае, че в момента са често споделяни или любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора за последване. Никоя от публикациите няма да се показва публично, докато не одобрите автора и докато авторът не позволи акаунтът му да се предлага на другите. Може също така да позволявате или отхвърляте отделни публикации.
disallow: Забраняване на публикацията
disallow_account: Забрана на автора
no_status_selected: Няма промяна, тъй като няма избрана нашумяла публикация
not_discoverable: Авторът не е избрал да е откриваем
shared_by:
- one: Споделено или харесано веднъж
+ one: Еднократно споделено или любимо
other: Споделено или харесано %{friendly_count} пъти
title: Налагащи се публикации
tags:
@@ -973,6 +982,7 @@ bg:
used_by_over_week:
one: Употребено от един човек през последната седмица
other: Използвано от %{count} души през последната седмица
+ title: Препоръки и насоки на развитие
trending: Изгряващи
warning_presets:
add_new: Добавяне на ново
@@ -1059,6 +1069,7 @@ bg:
application_mailer:
notification_preferences: Промяна на предпочитанията за е-поща
salutation: "%{name},"
+ settings: 'Промяна на предпочитанията за имейл: %{link}'
unsubscribe: Стоп на абонамента
view: 'Преглед:'
view_profile: Преглед на профила
@@ -1078,6 +1089,7 @@ bg:
hint_html: Просто още едно нещо! Трябва да потвърдим, че сте човек (това е с цел предпазване на нежелани съобщения!). Разгадайте капчата долу и щракнете на "Продължаване".
title: Проверка за сигурност
confirmations:
+ awaiting_review: Вашият адрес на е-поща е потвърден! Служителите на %{domain} сега разглеждат регистрацията ви. Ще получите е-писмо, ако одобрят акаунта ви!
awaiting_review_title: Вашата регистрация се преглежда
clicking_this_link: щракване на тази връзка
login_link: влизане
@@ -1426,8 +1438,12 @@ bg:
confirmation_html: Наистина ли искате да спрете абонамента от получаването на %{type} за Mastodon в %{domain} към имейла си при %{email}? Може винаги пак да се абонирате от своите настройки за известяване по е-поща.
emails:
notification_emails:
+ favourite: е-писма за известия с любими
+ follow: е-писма с известия за последване
+ follow_request: е-писма със заявки за следване
mention: е-писма с известия за споменаване
reblog: е-писма с известия за подсилване
+ resubscribe_html: Ако погрешка сте спрели абонамента, то може пак да се абонирате от своите настройки за известия по е-поща.
success_html: Повече няма да получавате %{type} за Mastodon на %{domain} към имейла си при %{email}.
title: Спиране на абонамента
media_attachments:
@@ -1482,8 +1498,8 @@ bg:
sign_up:
subject: "%{name} се регистрира"
favourite:
- body: 'Вашата публикация беше харесана от %{name}:'
- subject: "%{name} хареса вашата публикация"
+ body: 'Ваша публикация е любима за %{name}:'
+ subject: "%{name} означи като любима ваша публикация"
title: Нова харесана публикация
follow:
body: "%{name} те последва!"
@@ -1745,8 +1761,8 @@ bg:
keep_polls_hint: Не изтрива запитвания
keep_self_bookmark: Запазване на публикации, добавени в отметки
keep_self_bookmark_hint: Не се изтриват ваши публикации, ако сте ги добавили към отметки
- keep_self_fav: Задържане на публикации, които сте харесали
- keep_self_fav_hint: Не се изтриват публикации, които сте харесали
+ keep_self_fav: Задържане на любимите ви публикации
+ keep_self_fav_hint: Да не се изтриват ваши публикации, ако са ви любими
min_age:
'1209600': 2 седмици
'15778476': 6 месеца
@@ -1757,7 +1773,7 @@ bg:
'63113904': 2 години
'7889238': 3 месеца
min_age_label: Възрастов праг
- min_favs: Запазване на харесани публикации поне
+ min_favs: Задържане поне на любимите публикации
min_favs_hint: Не се изтрива никоя от публикациите, които сте харесали поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя харесвания
min_reblogs: Запазване на публикации с поне толкова раздувания
min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя на техния раздувания
diff --git a/config/locales/devise.nan.yml b/config/locales/devise.nan.yml
new file mode 100644
index 0000000000..512c65fe8b
--- /dev/null
+++ b/config/locales/devise.nan.yml
@@ -0,0 +1 @@
+nan:
diff --git a/config/locales/doorkeeper.nan.yml b/config/locales/doorkeeper.nan.yml
new file mode 100644
index 0000000000..512c65fe8b
--- /dev/null
+++ b/config/locales/doorkeeper.nan.yml
@@ -0,0 +1 @@
+nan:
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 1879db7677..7b8b280975 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -281,7 +281,7 @@ fi:
reject_appeal_html: "%{name} hylkäsi käyttäjän %{target} valituksen moderointipäätöksestä"
reject_user_html: "%{name} hylkäsi käyttäjän %{target} rekisteröitymisen"
remove_avatar_user_html: "%{name} poisti käyttäjän %{target} profiilikuvan"
- reopen_report_html: "%{name} avasi uudelleen raportin %{target}"
+ reopen_report_html: "%{name} avasi raportin %{target} uudelleen"
resend_user_html: "%{name} lähetti vahvistussähköpostiviestin uudelleen käyttäjälle %{target}"
reset_password_user_html: "%{name} palautti käyttäjän %{target} salasanan"
resolve_report_html: "%{name} ratkaisi raportin %{target}"
@@ -828,7 +828,7 @@ fi:
batch:
add_to_report: Lisää raporttiin nro %{id}
remove_from_report: Poista raportista
- report: Raportti
+ report: Raportoi
contents: Sisältö
deleted: Poistettu
favourites: Suosikit
diff --git a/config/locales/nan.yml b/config/locales/nan.yml
new file mode 100644
index 0000000000..512c65fe8b
--- /dev/null
+++ b/config/locales/nan.yml
@@ -0,0 +1 @@
+nan:
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index f7b0630f5d..ade13952ca 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -854,6 +854,7 @@ ru:
back_to_account: Назад к учётной записи
back_to_report: Вернуться к жалобе
batch:
+ add_to_report: Добавить к жалобе №%{id}
remove_from_report: Убрать из жалобы
report: Пожаловаться
contents: Содержание
diff --git a/config/locales/simple_form.nan.yml b/config/locales/simple_form.nan.yml
new file mode 100644
index 0000000000..512c65fe8b
--- /dev/null
+++ b/config/locales/simple_form.nan.yml
@@ -0,0 +1 @@
+nan:
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index 5aed566626..599b63ea6a 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -60,6 +60,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_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
username: Harfleri, sayıları veya alt çizgi kullanabilirsiniz
@@ -223,6 +224,7 @@ tr:
setting_hide_network: Sosyal grafiğini gizle
setting_reduce_motion: Animasyonlarda hareketi azalt
setting_system_font_ui: Sistemin varsayılan yazı tipini kullan
+ setting_system_scrollbars_ui: Sistemin varsayılan kaydırma çubuğunu kullan
setting_theme: Site teması
setting_trends: Bugünün gündemini göster
setting_unfollow_modal: Birini takip etmeden önce onay iletişim kutusu göster
From 30c2a6c01c9f001ecad9c4c3291931e8484f292a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 3 Dec 2024 16:53:36 +0100
Subject: [PATCH 010/175] Update dependency @rails/ujs to v7.1.500 (#32648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/package.json b/package.json
index 3b828ce3f8..ace714eb55 100644
--- a/package.json
+++ b/package.json
@@ -48,7 +48,7 @@
"@formatjs/intl-pluralrules": "^5.2.2",
"@gamestdio/websocket": "^0.3.2",
"@github/webauthn-json": "^2.1.1",
- "@rails/ujs": "7.1.402",
+ "@rails/ujs": "7.1.500",
"@reduxjs/toolkit": "^2.0.1",
"@svgr/webpack": "^5.5.0",
"arrow-key-navigation": "^1.2.0",
diff --git a/yarn.lock b/yarn.lock
index ecb7421a96..764d08fdc4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2830,7 +2830,7 @@ __metadata:
"@formatjs/intl-pluralrules": "npm:^5.2.2"
"@gamestdio/websocket": "npm:^0.3.2"
"@github/webauthn-json": "npm:^2.1.1"
- "@rails/ujs": "npm:7.1.402"
+ "@rails/ujs": "npm:7.1.500"
"@reduxjs/toolkit": "npm:^2.0.1"
"@svgr/webpack": "npm:^5.5.0"
"@testing-library/dom": "npm:^10.2.0"
@@ -3129,10 +3129,10 @@ __metadata:
languageName: node
linkType: hard
-"@rails/ujs@npm:7.1.402":
- version: 7.1.402
- resolution: "@rails/ujs@npm:7.1.402"
- checksum: 10c0/ccab74b8013ed8a8ab8d7497d0fa510a6ec079725b5fcf679936d80c342940e462b60243ad2cb98128f29db5708a094e319767e8f33a18eb63ceb745de63d1e0
+"@rails/ujs@npm:7.1.500":
+ version: 7.1.500
+ resolution: "@rails/ujs@npm:7.1.500"
+ checksum: 10c0/365f9a3944454d64c83463de017d9be7064494d6376c1f4d8cbff38c0f278bac7d9ab85f19b31abb70f0e775f30b64ad682fd4545bc27b5d91baef3618642b9f
languageName: node
linkType: hard
From 7420f59f762d02a0e02a7ce6d32f85636b0da861 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Wed, 4 Dec 2024 02:40:56 -0500
Subject: [PATCH 011/175] Add `maxlength` to registration reason input (#33162)
---
app/views/auth/registrations/new.html.haml | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml
index d58f1ccf4d..55db49f03c 100644
--- a/app/views/auth/registrations/new.html.haml
+++ b/app/views/auth/registrations/new.html.haml
@@ -62,6 +62,7 @@
as: :text,
hint: false,
label: false,
+ input_html: { maxlength: UserInviteRequest::TEXT_SIZE_LIMIT },
required: Setting.require_invite_text,
wrapper: :with_block_label
From 6fddf1610cdb7c5bd48e6325d8afe407d2329200 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Wed, 4 Dec 2024 02:43:29 -0500
Subject: [PATCH 012/175] Fix awkwardly-worded nature of scheduled too soon
error (#33156)
---
config/locales/en.yml | 2 +-
spec/services/post_status_service_spec.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 2971fe1f25..5253d2a65b 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1677,7 +1677,7 @@ en:
scheduled_statuses:
over_daily_limit: You have exceeded the limit of %{limit} scheduled posts for today
over_total_limit: You have exceeded the limit of %{limit} scheduled posts
- too_soon: The scheduled date must be in the future
+ too_soon: date must be in the future
self_destruct:
lead_html: Unfortunately, %{domain} is permanently closing down. If you had an account there, you will not be able to continue using it, but you can still request a backup of your data.
title: This server is closing down
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 26db398d5e..8836b9e0a6 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -70,7 +70,7 @@ RSpec.describe PostStatusService do
subject.call(account, text: 'Hi future!', scheduled_at: invalid_scheduled_time)
end.to raise_error(
ActiveRecord::RecordInvalid,
- 'Validation failed: Scheduled at The scheduled date must be in the future'
+ 'Validation failed: Scheduled at date must be in the future'
)
end
end
From e5bea68b204c9d76163e692ee2592baf1be0cab0 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Wed, 4 Dec 2024 04:05:58 -0500
Subject: [PATCH 013/175] Fix empty authors preview card serialization (#33151)
---
app/models/preview_card.rb | 9 +++-
.../rest/preview_card_serializer_spec.rb | 41 +++++++++++++++++++
2 files changed, 49 insertions(+), 1 deletion(-)
create mode 100644 spec/serializers/rest/preview_card_serializer_spec.rb
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index 7579178f83..f6f37c8c82 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -134,7 +134,7 @@ class PreviewCard < ApplicationRecord
end
def authors
- @authors ||= [PreviewCard::Author.new(self)]
+ @authors ||= Array(serialized_authors)
end
class Author < ActiveModelSerializers::Model
@@ -169,6 +169,13 @@ class PreviewCard < ApplicationRecord
private
+ def serialized_authors
+ if author_name? || author_url?
+ PreviewCard::Author
+ .new(self)
+ end
+ end
+
def extract_dimensions
file = image.queued_for_write[:original]
diff --git a/spec/serializers/rest/preview_card_serializer_spec.rb b/spec/serializers/rest/preview_card_serializer_spec.rb
new file mode 100644
index 0000000000..6dbc337865
--- /dev/null
+++ b/spec/serializers/rest/preview_card_serializer_spec.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe REST::PreviewCardSerializer do
+ subject do
+ serialized_record_json(
+ preview_card,
+ described_class
+ )
+ end
+
+ context 'when preview card does not have author data' do
+ let(:preview_card) { Fabricate.build :preview_card }
+
+ it 'includes empty authors array' do
+ expect(subject.deep_symbolize_keys)
+ .to include(
+ authors: be_an(Array).and(be_empty)
+ )
+ end
+ end
+
+ context 'when preview card has author data' do
+ let(:preview_card) { Fabricate.build :preview_card, author_name: 'Name', author_url: 'https://host.example/123' }
+
+ it 'includes populated authors array' do
+ expect(subject.deep_symbolize_keys)
+ .to include(
+ authors: be_an(Array).and(
+ contain_exactly(
+ include(
+ name: 'Name',
+ url: 'https://host.example/123'
+ )
+ )
+ )
+ )
+ end
+ end
+end
From 1cb303ca75ca34ee6390f33443bdfab66715a323 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 4 Dec 2024 10:12:26 +0100
Subject: [PATCH 014/175] Update dependency axios to v1.7.9 (#33168)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 764d08fdc4..41738846ff 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5137,13 +5137,13 @@ __metadata:
linkType: hard
"axios@npm:^1.4.0":
- version: 1.7.8
- resolution: "axios@npm:1.7.8"
+ version: 1.7.9
+ resolution: "axios@npm:1.7.9"
dependencies:
follow-redirects: "npm:^1.15.6"
form-data: "npm:^4.0.0"
proxy-from-env: "npm:^1.1.0"
- checksum: 10c0/23ae2d0105aea9170c34ac9b6f30d9b2ab2fa8b1370205d2f7ce98b9f9510ab420148c13359ee837ea5a4bf2fb028ff225bd2fc92052fb0c478c6b4a836e2d5f
+ checksum: 10c0/b7a41e24b59fee5f0f26c1fc844b45b17442832eb3a0fb42dd4f1430eb4abc571fe168e67913e8a1d91c993232bd1d1ab03e20e4d1fee8c6147649b576fc1b0b
languageName: node
linkType: hard
From c521a62b1eecd44415353ba0b29cf953fae958f0 Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 4 Dec 2024 10:45:35 +0100
Subject: [PATCH 015/175] Add tests for broken mention processing (#33171)
---
.../activitypub/process_status_update_service_spec.rb | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index b6ceba374f..498b3c8aa0 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -6,6 +6,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
subject { described_class.new }
let!(:status) { Fabricate(:status, text: 'Hello world', account: Fabricate(:account, domain: 'example.com')) }
+ let(:bogus_mention) { 'https://example.com/users/erroringuser' }
let(:payload) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
@@ -17,6 +18,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
tag: [
{ type: 'Hashtag', name: 'hoge' },
{ type: 'Mention', href: ActivityPub::TagManager.instance.uri_for(alice) },
+ { type: 'Mention', href: bogus_mention },
],
}
end
@@ -33,16 +35,18 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
mentions.each { |a| Fabricate(:mention, status: status, account: a) }
tags.each { |t| status.tags << t }
media_attachments.each { |m| status.media_attachments << m }
+ stub_request(:get, bogus_mention).to_raise(HTTP::ConnectionError)
end
describe '#call' do
- it 'updates text and content warning' do
+ it 'updates text and content warning, and schedules re-fetching broken mention' do
subject.call(status, json, json)
expect(status.reload)
.to have_attributes(
text: eq('Hello universe'),
spoiler_text: eq('Show more')
)
+ expect(MentionResolveWorker).to have_enqueued_sidekiq_job(status.id, bogus_mention, anything)
end
context 'when the changes are only in sanitized-out HTML' do
From ebbccb196a1710c5279c48ae0e550886fc5b640d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 4 Dec 2024 09:48:14 +0000
Subject: [PATCH 016/175] Update dependency aws-sdk-s3 to v1.176.0 (#33170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
Gemfile.lock | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 701ddd7821..f779ad2b3d 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -94,7 +94,7 @@ GEM
ast (2.4.2)
attr_required (1.0.2)
aws-eventstream (1.3.0)
- aws-partitions (1.1015.0)
+ aws-partitions (1.1017.0)
aws-sdk-core (3.214.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
@@ -103,7 +103,7 @@ GEM
aws-sdk-kms (1.96.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
- aws-sdk-s3 (1.175.0)
+ aws-sdk-s3 (1.176.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
From 0262310c88b34e61ffe39167ffd2c069c98af65c Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 4 Dec 2024 11:04:02 +0100
Subject: [PATCH 017/175] New Crowdin Translations (automated) (#33166)
Co-authored-by: GitHub Actions
---
app/javascript/mastodon/locales/bg.json | 10 +++++--
app/javascript/mastodon/locales/ca.json | 7 +++--
app/javascript/mastodon/locales/cy.json | 2 --
app/javascript/mastodon/locales/da.json | 7 +++--
app/javascript/mastodon/locales/de.json | 9 ++++--
app/javascript/mastodon/locales/el.json | 33 +++++++++++++++++++++-
app/javascript/mastodon/locales/en-GB.json | 2 --
app/javascript/mastodon/locales/eo.json | 6 +++-
app/javascript/mastodon/locales/es-AR.json | 7 +++--
app/javascript/mastodon/locales/es-MX.json | 9 ++++--
app/javascript/mastodon/locales/es.json | 7 +++--
app/javascript/mastodon/locales/et.json | 1 -
app/javascript/mastodon/locales/eu.json | 4 +++
app/javascript/mastodon/locales/fi.json | 7 +++--
app/javascript/mastodon/locales/fo.json | 7 +++--
app/javascript/mastodon/locales/fr-CA.json | 2 --
app/javascript/mastodon/locales/fr.json | 2 --
app/javascript/mastodon/locales/ga.json | 2 --
app/javascript/mastodon/locales/gd.json | 1 -
app/javascript/mastodon/locales/gl.json | 7 +++--
app/javascript/mastodon/locales/he.json | 7 +++--
app/javascript/mastodon/locales/hu.json | 7 +++--
app/javascript/mastodon/locales/ia.json | 2 --
app/javascript/mastodon/locales/is.json | 7 +++--
app/javascript/mastodon/locales/it.json | 9 ++++--
app/javascript/mastodon/locales/ja.json | 1 -
app/javascript/mastodon/locales/ko.json | 9 ++++--
app/javascript/mastodon/locales/lt.json | 7 +++--
app/javascript/mastodon/locales/lv.json | 20 +++++++++++--
app/javascript/mastodon/locales/nan.json | 30 +++++++++++++++++++-
app/javascript/mastodon/locales/nl.json | 9 ++++--
app/javascript/mastodon/locales/nn.json | 10 ++++++-
app/javascript/mastodon/locales/pl.json | 1 -
app/javascript/mastodon/locales/pt-BR.json | 6 ++--
app/javascript/mastodon/locales/ru.json | 2 --
app/javascript/mastodon/locales/sl.json | 1 -
app/javascript/mastodon/locales/sq.json | 7 +++--
app/javascript/mastodon/locales/sv.json | 1 -
app/javascript/mastodon/locales/th.json | 1 -
app/javascript/mastodon/locales/tok.json | 1 -
app/javascript/mastodon/locales/tr.json | 7 +++--
app/javascript/mastodon/locales/uk.json | 2 +-
app/javascript/mastodon/locales/vi.json | 7 +++--
app/javascript/mastodon/locales/zh-CN.json | 9 ++++--
app/javascript/mastodon/locales/zh-TW.json | 7 +++--
config/locales/activerecord.el.yml | 5 ++++
config/locales/bg.yml | 2 ++
config/locales/doorkeeper.fi.yml | 2 +-
config/locales/el.yml | 4 +++
config/locales/simple_form.bg.yml | 2 ++
config/locales/simple_form.ca.yml | 2 ++
config/locales/simple_form.da.yml | 2 ++
config/locales/simple_form.de.yml | 2 ++
config/locales/simple_form.es-AR.yml | 2 ++
config/locales/simple_form.es-MX.yml | 2 ++
config/locales/simple_form.es.yml | 2 ++
config/locales/simple_form.fi.yml | 2 ++
config/locales/simple_form.fo.yml | 2 ++
config/locales/simple_form.gl.yml | 2 ++
config/locales/simple_form.he.yml | 2 ++
config/locales/simple_form.hu.yml | 2 ++
config/locales/simple_form.is.yml | 2 ++
config/locales/simple_form.ko.yml | 2 ++
config/locales/simple_form.lt.yml | 2 ++
config/locales/simple_form.nl.yml | 2 ++
config/locales/simple_form.pt-BR.yml | 2 ++
config/locales/simple_form.sq.yml | 2 ++
config/locales/simple_form.uk.yml | 2 ++
config/locales/simple_form.vi.yml | 2 ++
config/locales/simple_form.zh-CN.yml | 2 ++
config/locales/simple_form.zh-TW.yml | 2 ++
71 files changed, 278 insertions(+), 81 deletions(-)
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 0669b7f405..141d20f16d 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -101,8 +101,9 @@
"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": "Това ви слага най-отгоресред потребителите на Mastodon.",
+ "annual_report.summary.percentile.text": "Това ви слага най-отгоресред потребителите на {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Няма да кажем на Бърни Сандърс.",
"annual_report.summary.thanks": "Благодарим, че сте част от Mastodon!",
"attachments_list.unprocessed": "(необработено)",
@@ -204,6 +205,9 @@
"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": "Излизате ли от системата?",
@@ -394,6 +398,7 @@
"home.pending_critical_update.title": "Налично критично обновяване на сигурността!",
"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": "Може да разгледате отделно филтрираните известия",
@@ -491,7 +496,7 @@
"lists.replies_policy.list": "Членуващите в списъка",
"lists.replies_policy.none": "Никого",
"lists.save": "Запазване",
- "lists.search_placeholder": "Търсене сред, които сте последвали",
+ "lists.search": "Търсене",
"lists.show_replies_to": "Включва отговори от членуващи в списъка до",
"load_pending": "{count, plural, one {# нов елемент} other {# нови елемента}}",
"loading_indicator.label": "Зареждане…",
@@ -634,6 +639,7 @@
"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, one {последния ден} other {последните # дена}}",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 022d5800bb..b2fb8726f3 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "l'etiqueta més utilitzada",
"annual_report.summary.most_used_hashtag.none": "Cap",
"annual_report.summary.new_posts.new_posts": "publicacions noves",
- "annual_report.summary.percentile.text": "Que us posa en elmés alt dels usuaris de Mastodon.",
+ "annual_report.summary.percentile.text": "Que us posa en elmés alt dels usuaris de {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "No li ho direm al Bernie.",
"annual_report.summary.thanks": "Gràcies per formar part de Mastodon!",
"attachments_list.unprocessed": "(sense processar)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Tanca la sessió",
"confirmations.logout.message": "Segur que vols tancar la sessió?",
"confirmations.logout.title": "Tancar la sessió?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Membres de la llista",
"lists.replies_policy.none": "Ningú",
"lists.save": "Desa",
- "lists.search_placeholder": "Cerca persones que seguiu",
+ "lists.search": "Cerca",
"lists.show_replies_to": "Inclou respostes de membres de la llista a",
"load_pending": "{count, plural, one {# element nou} other {# elements nous}}",
"loading_indicator.label": "Es carrega…",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 99dc11a88a..a533230acd 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -103,7 +103,6 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashnod a ddefnyddiwyd fwyaf",
"annual_report.summary.most_used_hashtag.none": "Dim",
"annual_report.summary.new_posts.new_posts": "postiadau newydd",
- "annual_report.summary.percentile.text": "Rydych chi yn y mwyaf o ddefnyddwyr Mastodon.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ni fyddwn yn dweud wrth Bernie.",
"annual_report.summary.thanks": "Diolch am fod yn rhan o Mastodon!",
"attachments_list.unprocessed": "(heb eu prosesu)",
@@ -487,7 +486,6 @@
"lists.replies_policy.list": "Aelodau'r rhestr",
"lists.replies_policy.none": "Neb",
"lists.save": "Cadw",
- "lists.search_placeholder": "Chwiliwch am bobl rydych chi'n eu dilyn",
"lists.show_replies_to": "Cynhwyswch atebion gan aelodau'r rhestr i",
"load_pending": "{count, plural, one {# eitem newydd} other {# eitem newydd}}",
"loading_indicator.label": "Yn llwytho…",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index e4e610ee1d..e489dd2302 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -103,7 +103,7 @@
"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 topaf Mastodon-brugere.",
+ "annual_report.summary.percentile.text": "Det betyder, at man er i topaf {domain}-brugere.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Vi fortæller det ikke til Bernie.",
"annual_report.summary.thanks": "Tak for at være en del af Mastodon!",
"attachments_list.unprocessed": "(ubehandlet)",
@@ -205,6 +205,9 @@
"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.title": "Følg bruger?",
"confirmations.logout.confirm": "Log ud",
"confirmations.logout.message": "Er du sikker på, at du vil logge ud?",
"confirmations.logout.title": "Log ud?",
@@ -492,7 +495,7 @@
"lists.replies_policy.list": "Listemedlemmer",
"lists.replies_policy.none": "Ingen",
"lists.save": "Gem",
- "lists.search_placeholder": "Søg efter folk, man følger",
+ "lists.search": "Søg",
"lists.show_replies_to": "Medtag svar fra listemedlemmer til",
"load_pending": "{count, plural, one {# nyt emne} other {# nye emner}}",
"loading_indicator.label": "Indlæser…",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index cf46a14680..52f297f604 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "am häufigsten verwendeter Hashtag",
"annual_report.summary.most_used_hashtag.none": "Keiner",
"annual_report.summary.new_posts.new_posts": "neue Beiträge",
- "annual_report.summary.percentile.text": "Damit gehörst du zu den oberstender Mastodon-Nutzer*innen.",
+ "annual_report.summary.percentile.text": "Damit gehörst du zu den oberstender Nutzer*innen auf {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Wir werden Bernie nichts verraten.",
"annual_report.summary.thanks": "Danke, dass du Teil von Mastodon bist!",
"attachments_list.unprocessed": "(ausstehend)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Abmelden",
"confirmations.logout.message": "Möchtest du dich wirklich abmelden?",
"confirmations.logout.title": "Abmelden?",
@@ -220,7 +223,7 @@
"confirmations.unfollow.title": "Profil entfolgen?",
"content_warning.hide": "Beitrag ausblenden",
"content_warning.show": "Trotzdem anzeigen",
- "content_warning.show_more": "Mehr anzeigen",
+ "content_warning.show_more": "Beitrag anzeigen",
"conversation.delete": "Unterhaltung löschen",
"conversation.mark_as_read": "Als gelesen markieren",
"conversation.open": "Unterhaltung anzeigen",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Mitglieder der Liste",
"lists.replies_policy.none": "Niemanden",
"lists.save": "Speichern",
- "lists.search_placeholder": "Nach Profilen suchen, denen du folgst",
+ "lists.search": "Suchen",
"lists.show_replies_to": "Antworten von Listenmitgliedern einbeziehen an …",
"load_pending": "{count, plural, one {# neuer Beitrag} other {# neue Beiträge}}",
"loading_indicator.label": "Wird geladen …",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 000c0e7650..dcd6357493 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -103,7 +103,7 @@
"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": "Αυτό σε βάζει στην κορυφή του των χρηστών του Mastodon.",
+ "annual_report.summary.percentile.text": "Αυτό σε βάζει στο των κορυφαίων χρηστών του {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Δεν θα το πούμε στον Bernie.",
"annual_report.summary.thanks": "Ευχαριστούμε που συμμετέχεις στο Mastodon!",
"attachments_list.unprocessed": "(μη επεξεργασμένο)",
@@ -205,6 +205,9 @@
"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": "Αποσύνδεση;",
@@ -238,6 +241,8 @@
"dismissable_banner.dismiss": "Παράβλεψη",
"dismissable_banner.explore_links": "Αυτές οι ιστορίες ειδήσεων μοιράζονται περισσότερο στο fediverse σήμερα. Νεότερες ιστορίες ειδήσεων που δημοσιεύτηκαν από πιο διαφορετικά άτομα κατατάσσονται υψηλότερα.",
"dismissable_banner.explore_statuses": "Αυτές οι αναρτήσεις από όλο το fediverse κερδίζουν την προσοχή σήμερα. Νεότερες αναρτήσεις με περισσότερες ενισχύσεις και αγαπημένα κατατάσσονται υψηλότερα.",
+ "dismissable_banner.explore_tags": "Αυτές οι ετικέτες κερδίζουν την προσοχή στο fediverse σήμερα. Οι ετικέτες που χρησιμοποιούνται από περισσότερα διαφορετικά άτομα είναι υψηλότερα.",
+ "dismissable_banner.public_timeline": "Αυτές είναι οι πιο πρόσφατες δημόσιες αναρτήσεις από άτομα στο fediverse που ακολουθούν άτομα από το {domain}.",
"domain_block_modal.block": "Αποκλεισμός διακομιστή",
"domain_block_modal.block_account_instead": "Αποκλεισμός @{name} αντ' αυτού",
"domain_block_modal.they_can_interact_with_old_posts": "Άτομα από αυτόν τον διακομιστή μπορούν να αλληλεπιδράσουν με τις παλιές αναρτήσεις σου.",
@@ -361,6 +366,7 @@
"footer.status": "Κατάσταση",
"generic.saved": "Αποθηκεύτηκε",
"getting_started.heading": "Ας ξεκινήσουμε",
+ "hashtag.admin_moderation": "Άνοιγμα διεπαφής συντονισμού για το #{name}",
"hashtag.column_header.tag_mode.all": "και {additional}",
"hashtag.column_header.tag_mode.any": "ή {additional}",
"hashtag.column_header.tag_mode.none": "χωρίς {additional}",
@@ -466,11 +472,32 @@
"link_preview.author": "Από {name}",
"link_preview.more_from_author": "Περισσότερα από {name}",
"link_preview.shares": "{count, plural, one {{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": "Λίστα μελών",
+ "lists.list_members_count": "{count, plural, one {# μέλος} 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": "Απόκρυψη",
@@ -627,7 +654,11 @@
"notifications_permission_banner.enable": "Ενεργοποίηση ειδοποιήσεων επιφάνειας εργασίας",
"notifications_permission_banner.how_to_control": "Για να λαμβάνεις ειδοποιήσεις όταν το Mastodon δεν είναι ανοιχτό, ενεργοποίησε τις ειδοποιήσεις επιφάνειας εργασίας. Μπορείς να ελέγξεις με ακρίβεια ποιοι τύποι αλληλεπιδράσεων δημιουργούν ειδοποιήσεις επιφάνειας εργασίας μέσω του κουμπιού {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": "Όταν επιλέγεις την δυνατότητα ανακάλυψης στο Mastodon, οι αναρτήσεις σου μπορεί να εμφανιστούν στα αποτελέσματα αναζήτησης και τις τάσεις, και το προφίλ σου μπορεί να προτείνεται σε άτομα με παρόμοια ενδιαφέροντα με εσένα.",
"onboarding.profile.display_name": "Εμφανιζόμενο όνομα",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index d7346d82e0..8f00fe5b20 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -103,7 +103,6 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "most used hashtag",
"annual_report.summary.most_used_hashtag.none": "None",
"annual_report.summary.new_posts.new_posts": "new posts",
- "annual_report.summary.percentile.text": "That puts you in the topof Mastodon users.",
"annual_report.summary.percentile.we_wont_tell_bernie": "We won't tell Bernie.",
"annual_report.summary.thanks": "Thanks for being part of Mastodon!",
"attachments_list.unprocessed": "(unprocessed)",
@@ -487,7 +486,6 @@
"lists.replies_policy.list": "Members of the list",
"lists.replies_policy.none": "No one",
"lists.save": "Save",
- "lists.search_placeholder": "Search people you follow",
"lists.show_replies_to": "Include replies from list members to",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index d23783b214..17ca70548e 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -87,6 +87,7 @@
"alert.unexpected.title": "Aj!",
"alt_text_badge.title": "Alt-teksto",
"announcement.announcement": "Anonco",
+ "annual_report.summary.archetype.pollster": "La balotenketisto",
"annual_report.summary.archetype.replier": "La plej societema",
"annual_report.summary.followers.followers": "sekvantoj",
"annual_report.summary.highlighted_post.by_favourites": "plej ŝatata afiŝo",
@@ -198,6 +199,9 @@
"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?",
"confirmations.logout.confirm": "Elsaluti",
"confirmations.logout.message": "Ĉu vi certas, ke vi volas elsaluti?",
"confirmations.logout.title": "Ĉu elsaluti?",
@@ -483,7 +487,7 @@
"lists.replies_policy.list": "Membroj de la listo",
"lists.replies_policy.none": "Neniu",
"lists.save": "Konservi",
- "lists.search_placeholder": "Serĉi homojn, kiujn vi sekvas",
+ "lists.search": "Ŝerci",
"load_pending": "{count,plural, one {# nova elemento} other {# novaj elementoj}}",
"loading_indicator.label": "Ŝargado…",
"media_gallery.hide": "Kaŝi",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 38a776700a..624e9c3639 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "la etiqueta más usada",
"annual_report.summary.most_used_hashtag.none": "Ninguna",
"annual_report.summary.new_posts.new_posts": "nuevos mensajes",
- "annual_report.summary.percentile.text": "Eso te pone en la cimade los usuarios de Mastodon.",
+ "annual_report.summary.percentile.text": "Eso te coloca en el topde usuarios de {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "No se lo diremos a Bernie.",
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
"attachments_list.unprocessed": "[sin procesar]",
@@ -205,6 +205,9 @@
"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 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?",
"confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
"confirmations.logout.title": "¿Cerrar sesión?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Miembros de la lista",
"lists.replies_policy.none": "Nadie",
"lists.save": "Guardar",
- "lists.search_placeholder": "Buscar gente a la que sigues",
+ "lists.search": "Buscar",
"lists.show_replies_to": "Incluir las respuestas de los miembros de la lista a",
"load_pending": "{count, plural, one {# elemento nuevo} other {# elementos nuevos}}",
"loading_indicator.label": "Cargando…",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index d32586db0b..a433db023d 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "etiqueta más utilizada",
"annual_report.summary.most_used_hashtag.none": "Ninguna",
"annual_report.summary.new_posts.new_posts": "nuevas publicaciones",
- "annual_report.summary.percentile.text": "Eso te sitúa en el topde usuarios de Mastodon.",
+ "annual_report.summary.percentile.text": "Eso te sitúa en el topde usuarios de {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "No se lo diremos a Bernie.",
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
"attachments_list.unprocessed": "(sin procesar)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro de que quieres cerrar la sesión?",
"confirmations.logout.title": "¿Deseas cerrar sesión?",
@@ -238,7 +241,7 @@
"dismissable_banner.dismiss": "Descartar",
"dismissable_banner.explore_links": "Estas noticias son las más compartidas hoy en el fediverso. Las noticias más recientes publicadas por más personas diferentes se clasifican mejor.",
"dismissable_banner.explore_statuses": "Estas publicaciones del fediverso están ganando popularidad hoy. Las publicaciones más recientes, con más impulsos y favoritos, se clasifican mejor.",
- "dismissable_banner.explore_tags": "Estas etiquetas están ganando popularidad hoy en el fediverso. Las etiquetas que son utilizados por más personas diferentes se puntúan más alto.",
+ "dismissable_banner.explore_tags": "Estas etiquetas están ganando popularidad en el fediverso hoy en día. Las etiquetas que son utilizadas por más personas diferentes se clasifican mejor.",
"dismissable_banner.public_timeline": "Estas son las publicaciones más recientes de las personas del fediverso a las que sigue la gente de {domain}.",
"domain_block_modal.block": "Bloquear servidor",
"domain_block_modal.block_account_instead": "Bloquear @{name} en su lugar",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Miembros de la lista",
"lists.replies_policy.none": "Nadie",
"lists.save": "Guardar",
- "lists.search_placeholder": "Buscar personas a las que sigues",
+ "lists.search": "Buscar",
"lists.show_replies_to": "Incluir respuestas de miembros de la lista a",
"load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
"loading_indicator.label": "Cargando…",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index cb076540f6..9b6f63d1d9 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "etiqueta más usada",
"annual_report.summary.most_used_hashtag.none": "Ninguna",
"annual_report.summary.new_posts.new_posts": "nuevas publicaciones",
- "annual_report.summary.percentile.text": "Eso te pone en el topde usuarios de Mastodon.",
+ "annual_report.summary.percentile.text": "Eso te coloca en el topde usuarios de {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "No se lo diremos a Bernie.",
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
"attachments_list.unprocessed": "(sin procesar)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Seguro que quieres cerrar la sesión?",
"confirmations.logout.title": "¿Cerrar sesión?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Miembros de la lista",
"lists.replies_policy.none": "Nadie",
"lists.save": "Guardar",
- "lists.search_placeholder": "Buscar gente a la que sigues",
+ "lists.search": "Buscar",
"lists.show_replies_to": "Incluir las respuestas de los miembros de la lista a",
"load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
"loading_indicator.label": "Cargando…",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 3260baf4ce..a9c36101b9 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -103,7 +103,6 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "enim kasutatud silt",
"annual_report.summary.most_used_hashtag.none": "Pole",
"annual_report.summary.new_posts.new_posts": "uus postitus",
- "annual_report.summary.percentile.text": "See paigutab su top Mastodoni kasutajatest.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Vägev.",
"annual_report.summary.thanks": "Tänud olemast osa Mastodonist!",
"attachments_list.unprocessed": "(töötlemata)",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 351ad59f1d..348f544c3a 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -180,6 +180,9 @@
"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?",
"confirmations.logout.confirm": "Amaitu saioa",
"confirmations.logout.message": "Ziur saioa amaitu nahi duzula?",
"confirmations.logout.title": "Itxi saioa?",
@@ -436,6 +439,7 @@
"lists.replies_policy.followed": "Jarraitutako edozein erabiltzaile",
"lists.replies_policy.list": "Zerrendako kideak",
"lists.replies_policy.none": "Bat ere ez",
+ "lists.search": "Bilatu",
"load_pending": "{count, plural, one {elementu berri #} other {# elementu berri}}",
"loading_indicator.label": "Kargatzen…",
"media_gallery.hide": "Ezkutatu",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 5ddc672f56..d3c9849e83 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "käytetyin aihetunniste",
"annual_report.summary.most_used_hashtag.none": "Ei mitään",
"annual_report.summary.new_posts.new_posts": "uutta julkaisua",
- "annual_report.summary.percentile.text": "Olet osa huippujoukkoa, johon kuuluuMastodon-käyttäjistä.",
+ "annual_report.summary.percentile.text": "Olet osa huippujoukkoa, johon kuuluu{domain}-käyttäjistä.",
"annual_report.summary.thanks": "Kiitos, että olet osa Mastodonia!",
"attachments_list.unprocessed": "(käsittelemätön)",
"audio.hide": "Piilota ääni",
@@ -204,6 +204,9 @@
"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ää?",
"confirmations.logout.confirm": "Kirjaudu ulos",
"confirmations.logout.message": "Haluatko varmasti kirjautua ulos?",
"confirmations.logout.title": "Kirjaudutaanko ulos?",
@@ -492,7 +495,7 @@
"lists.replies_policy.list": "Listan jäsenille",
"lists.replies_policy.none": "Ei kellekään",
"lists.save": "Tallenna",
- "lists.search_placeholder": "Hae käyttäjiä seurattavaksi",
+ "lists.search": "Haku",
"lists.show_replies_to": "Sisällytä listan jäsenten vastaukset kohteeseen",
"load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}",
"loading_indicator.label": "Ladataan…",
diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json
index d53d5a98ec..aa2e78afe8 100644
--- a/app/javascript/mastodon/locales/fo.json
+++ b/app/javascript/mastodon/locales/fo.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest brúkta frámerki",
"annual_report.summary.most_used_hashtag.none": "Einki",
"annual_report.summary.new_posts.new_posts": "nýggir postar",
- "annual_report.summary.percentile.text": "Tað fær teg í toppav Mastodon brúkarum.",
+ "annual_report.summary.percentile.text": "Tað fær teg í toppav {domain} brúkarum.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Vit fara ikki at fortelja Bernie tað.",
"annual_report.summary.thanks": "Takk fyri at tú er partur av Mastodon!",
"attachments_list.unprocessed": "(óviðgjørt)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Rita út",
"confirmations.logout.message": "Ert tú vís/ur í, at tú vilt útrita teg?",
"confirmations.logout.title": "Rita út?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Listalimunum",
"lists.replies_policy.none": "Eingin",
"lists.save": "Goym",
- "lists.search_placeholder": "Leita eftir fólki, sum tú fylgir",
+ "lists.search": "Leita",
"lists.show_replies_to": "Írokna svar frá limum á listanum til",
"load_pending": "{count, plural, one {# nýtt evni} other {# nýggj evni}}",
"loading_indicator.label": "Innlesur…",
diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json
index 6c9933ca38..7c87a36e54 100644
--- a/app/javascript/mastodon/locales/fr-CA.json
+++ b/app/javascript/mastodon/locales/fr-CA.json
@@ -100,7 +100,6 @@
"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 posts",
- "annual_report.summary.percentile.text": "Cela vous place dans le topdes utilisateurs de Mastodon.",
"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é)",
@@ -483,7 +482,6 @@
"lists.replies_policy.list": "Membres de la liste",
"lists.replies_policy.none": "Personne",
"lists.save": "Enregistrer",
- "lists.search_placeholder": "Rechercher parmi les gens que vous suivez",
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
"loading_indicator.label": "Chargement…",
"media_gallery.hide": "Masquer",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index d986f13502..ea7850ab60 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -100,7 +100,6 @@
"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 posts",
- "annual_report.summary.percentile.text": "Cela vous place dans le topdes utilisateurs de Mastodon.",
"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é)",
@@ -483,7 +482,6 @@
"lists.replies_policy.list": "Membres de la liste",
"lists.replies_policy.none": "Personne",
"lists.save": "Enregistrer",
- "lists.search_placeholder": "Rechercher parmi les gens que vous suivez",
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
"loading_indicator.label": "Chargement…",
"media_gallery.hide": "Masquer",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 979490ca49..50b0c7d437 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -103,7 +103,6 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag is mó a úsáidtear",
"annual_report.summary.most_used_hashtag.none": "Dada",
"annual_report.summary.new_posts.new_posts": "postanna nua",
- "annual_report.summary.percentile.text": "Cuireann sé sin i mbarr úsáideoirí Mastodon.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ní inseoidh muid do Bernie.",
"annual_report.summary.thanks": "Go raibh maith agat as a bheith mar chuid de Mastodon!",
"attachments_list.unprocessed": "(neamhphróiseáilte)",
@@ -493,7 +492,6 @@
"lists.replies_policy.list": "Baill an liosta",
"lists.replies_policy.none": "Duine ar bith",
"lists.save": "Sábháil",
- "lists.search_placeholder": "Cuardaigh daoine a leanann tú",
"lists.show_replies_to": "Cuir san áireamh freagraí ó bhaill an liosta go",
"load_pending": "{count, plural, one {# mír nua} two {# mír nua} few {# mír nua} many {# mír nua} other {# mír nua}}",
"loading_indicator.label": "Á lódáil…",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index 1da6bdcdde..a90a9b197d 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -103,7 +103,6 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "an taga hais a chaidh a cleachdadh as trice",
"annual_report.summary.most_used_hashtag.none": "Chan eil gin",
"annual_report.summary.new_posts.new_posts": "postaichean ùra",
- "annual_report.summary.percentile.text": "Tha thu am measg brod nandhen luchd-cleachdaidh Mhastodon.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ainmeil ’nad latha ’s ’nad linn.",
"annual_report.summary.thanks": "Mòran taing airson conaltradh air Mastodon.",
"attachments_list.unprocessed": "(gun phròiseasadh)",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 1435969a8e..cac6147fdb 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "o cancelo mais utilizado",
"annual_report.summary.most_used_hashtag.none": "Nada",
"annual_report.summary.new_posts.new_posts": "novas publicacións",
- "annual_report.summary.percentile.text": "Sitúante no top das usuarias de Mastodon.",
+ "annual_report.summary.percentile.text": "Sitúante no top das usuarias de {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Moito tes que contarnos!",
"annual_report.summary.thanks": "Grazas por ser parte de Mastodon!",
"attachments_list.unprocessed": "(sen procesar)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Pechar sesión",
"confirmations.logout.message": "Desexas pechar a sesión?",
"confirmations.logout.title": "Pechar sesión?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Membros da lista",
"lists.replies_policy.none": "Ninguén",
"lists.save": "Gardar",
- "lists.search_placeholder": "Buscar persoas que segues",
+ "lists.search": "Buscar",
"lists.show_replies_to": "Incluír respostas dos membros das listas a",
"load_pending": "{count, plural, one {# novo elemento} other {# novos elementos}}",
"loading_indicator.label": "Estase a cargar…",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 8d689404e1..a9bd632ec1 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -103,7 +103,7 @@
"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": "ממקם אותך באחוזון של משמשי מסטודון.",
+ "annual_report.summary.percentile.text": "ממקם אותך באחוזון של משמשי {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "לא נגלה לברני.",
"annual_report.summary.thanks": "תודה על היותך חלק ממסטודון!",
"attachments_list.unprocessed": "(לא מעובד)",
@@ -205,6 +205,9 @@
"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": "להתנתק?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "משתמשים שברשימה",
"lists.replies_policy.none": "אף אחד",
"lists.save": "שמירה",
- "lists.search_placeholder": "חיפוש אנשים שאני עוקב\\ת אחריהם",
+ "lists.search": "חיפוש",
"lists.show_replies_to": "לכלול תשובות מחברי הרשימה אל",
"load_pending": "{count, plural, one {# פריט חדש} other {# פריטים חדשים}}",
"loading_indicator.label": "בטעינה…",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 3696b7ce95..25f37c82a1 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "legtöbbet használt hashtag",
"annual_report.summary.most_used_hashtag.none": "Nincs",
"annual_report.summary.new_posts.new_posts": "új bejegyzés",
- "annual_report.summary.percentile.text": "Ezzel acsúcs Mastodon felhasználó között vagy.",
+ "annual_report.summary.percentile.text": "Ezzel a csúcs{domain} felhasználó között vagy.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Nem mondjuk el Bernie-nek.",
"annual_report.summary.thanks": "Kösz, hogy a Mastodon része vagy!",
"attachments_list.unprocessed": "(feldolgozatlan)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Kijelentkezés",
"confirmations.logout.message": "Biztos, hogy kijelentkezel?",
"confirmations.logout.title": "Kijelentkezel?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "A lista tagjai",
"lists.replies_policy.none": "Senki",
"lists.save": "Mentés",
- "lists.search_placeholder": "Keresés a követett személyek között",
+ "lists.search": "Keresés",
"lists.show_replies_to": "Listatagok válaszainak hozzávétele",
"load_pending": "{count, plural, one {# új elem} other {# új elem}}",
"loading_indicator.label": "Betöltés…",
diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json
index 1de5247f22..35f0461422 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -103,7 +103,6 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag le plus usate",
"annual_report.summary.most_used_hashtag.none": "Necun",
"annual_report.summary.new_posts.new_posts": "nove messages",
- "annual_report.summary.percentile.text": "Isto te pone in le primedel usatores de Mastodon.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Tu es un primo inter pares.",
"annual_report.summary.thanks": "Gratias pro facer parte de Mastodon!",
"attachments_list.unprocessed": "(non processate)",
@@ -474,7 +473,6 @@
"lists.replies_policy.followed": "Qualcunque usator sequite",
"lists.replies_policy.list": "Membros del lista",
"lists.replies_policy.none": "Nemo",
- "lists.search_placeholder": "Cerca personas que tu seque",
"load_pending": "{count, plural, one {# nove entrata} other {# nove entratas}}",
"loading_indicator.label": "Cargante…",
"media_gallery.hide": "Celar",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index a2d94aa1e9..3f0ef723e9 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest notaða myllumerki",
"annual_report.summary.most_used_hashtag.none": "Ekkert",
"annual_report.summary.new_posts.new_posts": "nýjar færslur",
- "annual_report.summary.percentile.text": "Það setur þig á meðal efstunotenda Mastodon.",
+ "annual_report.summary.percentile.text": "Þetta setur þig á meðalof {domain} virkustu notendanna.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Við förum ekkert að raupa um þetta.",
"annual_report.summary.thanks": "Takk fyrir að vera hluti af Mastodon-samfélaginu!",
"attachments_list.unprocessed": "(óunnið)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Skrá út",
"confirmations.logout.message": "Ertu viss um að þú viljir skrá þig út?",
"confirmations.logout.title": "Skrá út?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Meðlima listans",
"lists.replies_policy.none": "Engra",
"lists.save": "Vista",
- "lists.search_placeholder": "Leitaðu að fólki sem þú fylgist með",
+ "lists.search": "Leita",
"lists.show_replies_to": "Hafa með svör frá meðlimum lista til",
"load_pending": "{count, plural, one {# nýtt atriði} other {# ný atriði}}",
"loading_indicator.label": "Hleð inn…",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index f97103d8b4..e02a0c115f 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "l'hashtag più usato",
"annual_report.summary.most_used_hashtag.none": "Nessuno",
"annual_report.summary.new_posts.new_posts": "nuovi post",
- "annual_report.summary.percentile.text": "Questo ti colloca tra ildei migliori utenti Mastodon.",
+ "annual_report.summary.percentile.text": "Ciò ti colloca in cimaagli utenti di {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Non lo diremo a Bernie.",
"annual_report.summary.thanks": "Grazie per far parte di Mastodon!",
"attachments_list.unprocessed": "(non elaborato)",
@@ -129,6 +129,7 @@
"bundle_column_error.routing.body": "Impossibile trovare la pagina richiesta. Sei sicuro che l'URL nella barra degli indirizzi sia corretto?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Chiudi",
+ "bundle_modal_error.message": "Si è verificato un errore durante il caricamento di questa schermata.",
"bundle_modal_error.retry": "Riprova",
"closed_registrations.other_server_instructions": "Poiché Mastodon è decentralizzato, puoi creare un profilo su un altro server, pur continuando a interagire con questo.",
"closed_registrations_modal.description": "Correntemente, è impossibile creare un profilo su {domain}, ma sei pregato di tenere presente che non necessiti di un profilo specificamente su {domain} per utilizzare Mastodon.",
@@ -204,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Disconnettiti",
"confirmations.logout.message": "Sei sicuro di volerti disconnettere?",
"confirmations.logout.title": "Uscire?",
@@ -235,6 +239,8 @@
"disabled_account_banner.text": "Il tuo profilo {disabledAccount} è correntemente disabilitato.",
"dismissable_banner.community_timeline": "Questi sono i post pubblici più recenti da persone i cui profili sono ospitati da {domain}.",
"dismissable_banner.dismiss": "Ignora",
+ "dismissable_banner.explore_links": "Queste notizie sono le più condivise sul fediverso, oggi. Le notizie più recenti pubblicate da più persone differenti sono classificate più in alto.",
+ "dismissable_banner.explore_tags": "Questi hashtag stanno guadagnando terreno nel fediverso, oggi. Gli hashtag che vengono usati da più persone differenti sono classificati più in alto.",
"domain_block_modal.block": "Blocca il server",
"domain_block_modal.block_account_instead": "Blocca invece @{name}",
"domain_block_modal.they_can_interact_with_old_posts": "Le persone da questo server possono interagire con i tuoi vecchi post.",
@@ -487,7 +493,6 @@
"lists.replies_policy.list": "Membri dell'elenco",
"lists.replies_policy.none": "Nessuno",
"lists.save": "Salva",
- "lists.search_placeholder": "Cerca le persone che segui",
"lists.show_replies_to": "Includi le risposte dei membri della lista a",
"load_pending": "{count, plural, one {# nuovo oggetto} other {# nuovi oggetti}}",
"loading_indicator.label": "Caricamento…",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index b08b81193c..a8894707b0 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -102,7 +102,6 @@
"annual_report.summary.most_used_app.most_used_app": "最も使用されているアプリ",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "最も使用されたハッシュタグ",
"annual_report.summary.new_posts.new_posts": "新しい投稿",
- "annual_report.summary.percentile.text": "それにより、あなたは上位に位置しています。Mastodonユーザーの中で。",
"annual_report.summary.percentile.we_wont_tell_bernie": "バー二ーには秘密にしておくよ。",
"annual_report.summary.thanks": "Mastodonの一員になってくれてありがとう!",
"attachments_list.unprocessed": "(未処理)",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index c8e7217357..179b2a4773 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -103,7 +103,7 @@
"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": "마스토돈 사용자의 상위입니다.",
+ "annual_report.summary.percentile.text": "{domain} 사용자의 상위입니다.",
"annual_report.summary.percentile.we_wont_tell_bernie": "엄마한테 말 안 할게요.",
"annual_report.summary.thanks": "마스토돈과 함께 해주셔서 감사합니다!",
"attachments_list.unprocessed": "(처리 안 됨)",
@@ -205,6 +205,9 @@
"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": "로그아웃 할까요?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "리스트의 구성원",
"lists.replies_policy.none": "모두 제외",
"lists.save": "저장",
- "lists.search_placeholder": "팔로우 중인 사람 찾기",
+ "lists.search": "검색",
"lists.show_replies_to": "리스트 구성원의 답글또한 포함하기",
"load_pending": "{count, plural, other {#}} 개의 새 항목",
"loading_indicator.label": "불러오는 중...",
@@ -721,7 +724,7 @@
"report.category.title_status": "게시물",
"report.close": "완료",
"report.comment.title": "우리가 더 알아야 할 내용이 있나요?",
- "report.forward": "{target}에 포워드 됨",
+ "report.forward": "{target}에 전달",
"report.forward_hint": "이 계정은 다른 서버에 있습니다. 익명화 된 사본을 해당 서버에도 전송할까요?",
"report.mute": "침묵",
"report.mute_explanation": "당신은 해당 계정의 게시물을 보지 않게 됩니다. 해당 계정은 여전히 당신을 팔로우 하거나 당신의 게시물을 볼 수 있으며 해당 계정은 자신이 뮤트 되었는지 알지 못합니다.",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 36dea27734..c6a9658f1c 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "labiausiai naudotas saitažodis",
"annual_report.summary.most_used_hashtag.none": "Nieko",
"annual_report.summary.new_posts.new_posts": "nauji įrašai",
- "annual_report.summary.percentile.text": "Tai reiškia, kad esate tarppopuliariausių „Mastodon“ naudotojų.",
+ "annual_report.summary.percentile.text": "Tai reiškia, kad esate tarppopuliariausių {domain} naudotojų.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Mes nesakysime Bernie.",
"annual_report.summary.thanks": "Dėkojame, kad esate „Mastodon“ dalis!",
"attachments_list.unprocessed": "(neapdorotas)",
@@ -205,6 +205,9 @@
"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ą?",
"confirmations.logout.confirm": "Atsijungti",
"confirmations.logout.message": "Ar tikrai nori atsijungti?",
"confirmations.logout.title": "Atsijungti?",
@@ -489,7 +492,7 @@
"lists.replies_policy.list": "Sąrašo nariams",
"lists.replies_policy.none": "Nei vienam",
"lists.save": "Išsaugoti",
- "lists.search_placeholder": "Ieškokite asmenų, kuriuos sekate",
+ "lists.search": "Ieškoti",
"lists.show_replies_to": "Įtraukti atsakymus iš sąrašo narių į",
"load_pending": "{count, plural, one {# naujas elementas} few {# nauji elementai} many {# naujo elemento} other {# naujų elementų}}",
"loading_indicator.label": "Kraunama…",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index cc441e138c..8abc2de9e4 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -86,14 +86,21 @@
"alert.unexpected.message": "Radās negaidīta kļūda.",
"alert.unexpected.title": "Ups!",
"announcement.announcement": "Paziņojums",
+ "annual_report.summary.archetype.replier": "Sabiedriskais tauriņš",
"annual_report.summary.followers.followers": "sekotāji",
"annual_report.summary.followers.total": "pavisam {count}",
"annual_report.summary.here_it_is": "Šeit ir {year}. gada pārskats:",
+ "annual_report.summary.highlighted_post.by_favourites": "izlasēs visvairāk ievietotais ieraksts",
+ "annual_report.summary.highlighted_post.by_reblogs": "vispastiprinātākais ieraksts",
+ "annual_report.summary.highlighted_post.by_replies": "ieraksts ar vislielāko atbilžu skaitu",
"annual_report.summary.highlighted_post.possessive": "{name}",
"annual_report.summary.most_used_app.most_used_app": "visizmantotākā lietotne",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "visizmantotākais tēmturis",
"annual_report.summary.most_used_hashtag.none": "Nav",
"annual_report.summary.new_posts.new_posts": "jauni ieraksti",
+ "annual_report.summary.percentile.text": "Tas ievieto Tevi virsējosno {domain} lietotājiem.",
+ "annual_report.summary.percentile.we_wont_tell_bernie": "Mēs neteiksim Bērnijam.",
+ "annual_report.summary.thanks": "Paldies, ka esi daļa no Mastodon!",
"attachments_list.unprocessed": "(neapstrādāti)",
"audio.hide": "Slēpt audio",
"block_modal.remote_users_caveat": "Mēs vaicāsim serverim {domain} ņemt vērā Tavu lēmumu. Tomēr atbilstība nav nodrošināta, jo atsevišķi serveri var apstrādāt bloķēšanu citādi. Publiski ieraksti joprojām var būt redzami lietotājiem, kuri nav pieteikušies.",
@@ -125,13 +132,16 @@
"column.blocks": "Bloķētie lietotāji",
"column.bookmarks": "Grāmatzīmes",
"column.community": "Vietējā laika līnija",
+ "column.create_list": "Izveidot sarakstu",
"column.direct": "Privātas pieminēšanas",
"column.directory": "Pārlūkot profilus",
"column.domain_blocks": "Bloķētie domēni",
+ "column.edit_list": "Labot sarakstu",
"column.favourites": "Iecienītie",
"column.firehose": "Tiešraides plūsmas",
"column.follow_requests": "Sekošanas pieprasījumi",
"column.home": "Sākums",
+ "column.list_members": "Pārvaldīt saraksta dalībniekus",
"column.lists": "Saraksti",
"column.mutes": "Apklusinātie lietotāji",
"column.notifications": "Paziņojumi",
@@ -144,6 +154,7 @@
"column_header.pin": "Piespraust",
"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",
@@ -162,10 +173,11 @@
"compose_form.poll.duration": "Aptaujas ilgums",
"compose_form.poll.multiple": "Vairākas izvēles iespējas",
"compose_form.poll.option_placeholder": "Izvēle {number}",
+ "compose_form.poll.single": "Viena izvēle",
"compose_form.poll.switch_to_multiple": "Mainīt aptaujas veidu, lai atļautu vairākas izvēles",
"compose_form.poll.switch_to_single": "Mainīt aptaujas veidu, lai atļautu vienu izvēli",
"compose_form.poll.type": "Stils",
- "compose_form.publish": "Iesūtīt",
+ "compose_form.publish": "Nosūtīt",
"compose_form.publish_form": "Jauns ieraksts",
"compose_form.reply": "Atbildēt",
"compose_form.save_changes": "Atjaunināt",
@@ -185,6 +197,9 @@
"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?",
"confirmations.logout.confirm": "Iziet",
"confirmations.logout.message": "Vai tiešām vēlies izrakstīties?",
"confirmations.logout.title": "Atteikties?",
@@ -404,7 +419,7 @@
"lists.replies_policy.followed": "Jebkuram sekotajam lietotājam",
"lists.replies_policy.list": "Saraksta dalībniekiem",
"lists.replies_policy.none": "Nevienam",
- "load_pending": "{count, plural, one {# jauna lieta} other {# jaunas lietas}}",
+ "load_pending": "{count, plural, zero{# jaunu vienumu} one {# jauns vienums} other {# jauni vienumi}}",
"loading_indicator.label": "Ielādē…",
"media_gallery.hide": "Paslēpt",
"moved_to_account_banner.text": "Tavs konts {disabledAccount} pašlaik ir atspējots, jo Tu pārcēlies uz kontu {movedToAccount}.",
@@ -639,6 +654,7 @@
"status.bookmark": "Grāmatzīme",
"status.cancel_reblog_private": "Nepastiprināt",
"status.cannot_reblog": "Šo ziņu nevar izcelt",
+ "status.continued_thread": "Turpināts pavediens",
"status.copy": "Ievietot ieraksta saiti starpliktuvē",
"status.delete": "Dzēst",
"status.detailed_status": "Detalizēts sarunas skats",
diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json
index 0967ef424b..0a3dc2c06b 100644
--- a/app/javascript/mastodon/locales/nan.json
+++ b/app/javascript/mastodon/locales/nan.json
@@ -1 +1,29 @@
-{}
+{
+ "about.blocks": "Siū 管制 ê 服侍器",
+ "about.contact": "聯絡lâng:",
+ "about.disclaimer": "Mastodon是自由、開放原始碼ê軟體,mā是Mastodon gGmbH ê商標。",
+ "about.domain_blocks.no_reason_available": "原因bē-tàng用",
+ "about.domain_blocks.preamble": "Mastodon一般ē允准lí看別ê fediverse 服侍器來ê聯絡人kap hām用者交流。Tsiah ê 是本服侍器建立ê例外。",
+ "about.domain_blocks.silenced.explanation": "Lí一般buē-tàng tuì tsit ê服侍器看用戶ê紹介kap內容,除非lí明白tshiau-tshuē á是跟tuè伊。",
+ "about.domain_blocks.silenced.title": "有限制",
+ "about.domain_blocks.suspended.explanation": "Uì tsit ê服侍器來ê資料lóng bē處理、儲存á是交換,無可能kap tsit ê服侍器ê用者互動á是溝通。.",
+ "about.domain_blocks.suspended.title": "權限中止",
+ "about.not_available": "Tsit ê資訊bē-tàng tī tsit ê服侍器使用。",
+ "about.powered_by": "由 {mastodon} 提供ê非中心化社群媒體",
+ "about.rules": "服侍器ê規則",
+ "account.account_note_header": "個人ê註解",
+ "account.add_or_remove_from_list": "加添kàu列單á是uì列單thâi掉",
+ "account.badges.bot": "機器lâng",
+ "account.badges.group": "群組",
+ "account.block": "封鎖 @{name}",
+ "account.block_domain": "封鎖網域 {domain}",
+ "account.block_short": "封鎖",
+ "account.blocked": "Hőng封鎖",
+ "account.cancel_follow_request": "取消跟tuè",
+ "account.follow_back": "Tuè tńg去",
+ "annual_report.summary.percentile.text": "Tse 予lí變做 {domain} ê用戶ê ",
+ "block_modal.show_less": "看khah少",
+ "compose.language.change": "換語言",
+ "confirmations.follow_to_list.confirm": "跟tuè,加入kàu列單",
+ "search_popout.language_code": "ISO語言代碼"
+}
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 6b19e0105e..2384ef6ce3 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "meest gebruikte hashtag",
"annual_report.summary.most_used_hashtag.none": "Geen",
"annual_report.summary.new_posts.new_posts": "nieuwe berichten",
- "annual_report.summary.percentile.text": "Dat zet je in de topvan Mastodon-gebruikers.",
+ "annual_report.summary.percentile.text": "Hiermee behoor je tot de top van {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "We zullen Bernie niets vertellen.",
"annual_report.summary.thanks": "Bedankt dat je deel uitmaakt van Mastodon!",
"attachments_list.unprocessed": "(niet verwerkt)",
@@ -205,6 +205,9 @@
"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.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?",
"confirmations.logout.confirm": "Uitloggen",
"confirmations.logout.message": "Weet je zeker dat je wilt uitloggen?",
"confirmations.logout.title": "Uitloggen?",
@@ -236,7 +239,7 @@
"disabled_account_banner.text": "Jouw account {disabledAccount} is momenteel uitgeschakeld.",
"dismissable_banner.community_timeline": "Dit zijn de meest recente openbare berichten van accounts op {domain}. Je kunt onder 'instellingen > voorkeuren > overig' kiezen welke talen je wilt zien.",
"dismissable_banner.dismiss": "Sluiten",
- "dismissable_banner.explore_links": "Deze nieuwsberichten worden vandaag de dag het meest gedeeld op de fediverse. Nieuwere verhalen die door meer verschillende mensen zijn gepost, worden hoger gerangschikt.",
+ "dismissable_banner.explore_links": "Deze nieuwsartikelen worden vandaag de dag het meest gedeeld op de fediverse. Nieuwere artikelen die door meer verschillende mensen zijn geplaatst, worden hoger gerangschikt.",
"dismissable_banner.explore_statuses": "Deze berichten uit de hele fediverse winnen vandaag aan populariteit. Nieuwere berichten met meer boosts en favorieten worden hoger gerangschikt.",
"dismissable_banner.explore_tags": "Deze hashtags winnen tegenwoordig aan populariteit op de fediverse. Hashtags die door meer verschillende mensen worden gebruikt, worden hoger gerangschikt.",
"dismissable_banner.public_timeline": "Dit zijn de meest recente openbare berichten van mensen op de fediverse die mensen op {domain} volgen.",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Leden van de lijst",
"lists.replies_policy.none": "Niemand",
"lists.save": "Opslaan",
- "lists.search_placeholder": "Zoek mensen die je volgt",
+ "lists.search": "Zoeken",
"lists.show_replies_to": "Voeg antwoorden van lijstleden toe aan",
"load_pending": "{count, plural, one {# nieuw item} other {# nieuwe items}}",
"loading_indicator.label": "Laden…",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 99b6533345..2c06f9068a 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest brukte emneknagg",
"annual_report.summary.most_used_hashtag.none": "Ingen",
"annual_report.summary.new_posts.new_posts": "nye innlegg",
- "annual_report.summary.percentile.text": "Du er av deiivrigaste Mastodon-brukarane.",
+ "annual_report.summary.percentile.text": "Du er av deiivrigaste brukarane på {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ikkje eit ord til pressa.",
"annual_report.summary.thanks": "Takk for at du er med i Mastodon!",
"attachments_list.unprocessed": "(ubehandla)",
@@ -129,6 +129,7 @@
"bundle_column_error.routing.body": "Den etterspurde sida vart ikkje funnen. Er du sikker på at URL-adressa er rett?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Lat att",
+ "bundle_modal_error.message": "Noko gjekk gale då denne sida vart lasta.",
"bundle_modal_error.retry": "Prøv igjen",
"closed_registrations.other_server_instructions": "Sidan Mastodon er desentralisert kan du lage ein brukar på ein anna tenar og framleis interagere med denne.",
"closed_registrations_modal.description": "Det er ikkje mogleg å opprette ein konto på {domain} nett no, men hugs at du ikkje treng ein konto på akkurat {domain} for å nytte Mastodon.",
@@ -139,13 +140,16 @@
"column.blocks": "Blokkerte brukarar",
"column.bookmarks": "Bokmerke",
"column.community": "Lokal tidsline",
+ "column.create_list": "Lag liste",
"column.direct": "Private omtaler",
"column.directory": "Sjå gjennom profilar",
"column.domain_blocks": "Blokkerte domene",
+ "column.edit_list": "Rediger liste",
"column.favourites": "Favorittar",
"column.firehose": "Tidslinjer",
"column.follow_requests": "Fylgjeførespurnadar",
"column.home": "Heim",
+ "column.list_members": "Administrer medlemer på lista",
"column.lists": "Lister",
"column.mutes": "Målbundne brukarar",
"column.notifications": "Varsel",
@@ -158,6 +162,7 @@
"column_header.pin": "Fest",
"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",
@@ -200,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Logg ut",
"confirmations.logout.message": "Er du sikker på at du vil logga ut?",
"confirmations.logout.title": "Logg ut?",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index dc482af4cd..165b1b5637 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -486,7 +486,6 @@
"lists.replies_policy.list": "Członkowie listy",
"lists.replies_policy.none": "Nikt",
"lists.save": "Zapisz",
- "lists.search_placeholder": "Szukaj wśród osób, które obserwujesz",
"lists.show_replies_to": "Pokaż odpowiedzi od członków listy do",
"load_pending": "{count, plural, one {# nowa pozycja} other {nowe pozycje}}",
"loading_indicator.label": "Ładowanie…",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 27d8b9a5a0..25387fc41c 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -103,7 +103,6 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag mais usada",
"annual_report.summary.most_used_hashtag.none": "Nenhuma",
"annual_report.summary.new_posts.new_posts": "novas publicações",
- "annual_report.summary.percentile.text": "Isso o coloca no topodos usuários de Mastodon.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Não contaremos à Bernie.",
"annual_report.summary.thanks": "Obrigada por fazer parte do Mastodon!",
"attachments_list.unprocessed": "(não processado)",
@@ -205,6 +204,9 @@
"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?",
"confirmations.logout.confirm": "Sair",
"confirmations.logout.message": "Você tem certeza de que deseja sair?",
"confirmations.logout.title": "Sair da sessão?",
@@ -493,7 +495,7 @@
"lists.replies_policy.list": "Membros da lista",
"lists.replies_policy.none": "Ninguém",
"lists.save": "Salvar",
- "lists.search_placeholder": "Buscar pessoas que você segue",
+ "lists.search": "Buscar",
"lists.show_replies_to": "Incluir respostas de membros da lista para",
"load_pending": "{count, plural, one {# novo item} other {# novos items}}",
"loading_indicator.label": "Carregando…",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 81b5525da2..8f5d73de0b 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -103,7 +103,6 @@
"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": "Всё это помещает вас в топпользователей Mastodon.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Роскомнадзор об этом не узнает.",
"annual_report.summary.thanks": "Спасибо за то, что были вместе с Mastodon!",
"attachments_list.unprocessed": "(не обработан)",
@@ -493,7 +492,6 @@
"lists.replies_policy.list": "Пользователи в списке",
"lists.replies_policy.none": "Никого",
"lists.save": "Сохранить",
- "lists.search_placeholder": "Искать среди подписок",
"lists.show_replies_to": "Показывать ответы участников списка на посты",
"load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}",
"loading_indicator.label": "Загрузка…",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index df7ff350b6..84f4d4dda2 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -448,7 +448,6 @@
"lists.replies_policy.list": "Članom seznama",
"lists.replies_policy.none": "Nikomur",
"lists.save": "Shrani",
- "lists.search_placeholder": "Iščite ljudi, katerim sledite",
"load_pending": "{count, plural, one {# nov element} two {# nova elementa} few {# novi elementi} other {# novih elementov}}",
"loading_indicator.label": "Nalaganje …",
"media_gallery.hide": "Skrij",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 6de39e6e99..b13f1af3a7 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -98,7 +98,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag-u më i përdorur",
"annual_report.summary.most_used_hashtag.none": "Asnjë",
"annual_report.summary.new_posts.new_posts": "postime të reja",
- "annual_report.summary.percentile.text": "Kjo ju vë në kryetë përdoruesve të Mastodon-it.",
+ "annual_report.summary.percentile.text": "Kjo ju vendos te kryesues të përdoruesve të {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Nuk do t’ia themi Bernit.",
"annual_report.summary.thanks": "Faleminderit që jeni pjesë e Mastodon-it!",
"attachments_list.unprocessed": "(e papërpunuar)",
@@ -200,6 +200,9 @@
"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?",
"confirmations.logout.confirm": "Dilni",
"confirmations.logout.message": "Jeni i sigurt se doni të dilet?",
"confirmations.logout.title": "Të dilet?",
@@ -488,7 +491,7 @@
"lists.replies_policy.list": "Anëtarë të listës",
"lists.replies_policy.none": "Askush",
"lists.save": "Ruaje",
- "lists.search_placeholder": "Kërkoni persona që ndiqni",
+ "lists.search": "Kërko",
"lists.show_replies_to": "Përfshi përgjigje nga anëtarë liste te",
"load_pending": "{count, plural,one {# objekt i ri }other {# objekte të rinj }}",
"loading_indicator.label": "Po ngarkohet…",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 5c04140e44..805f75c078 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -103,7 +103,6 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest använda hashtag",
"annual_report.summary.most_used_hashtag.none": "Inga",
"annual_report.summary.new_posts.new_posts": "nya inlägg",
- "annual_report.summary.percentile.text": "Det placerar dig i toppav Mastodon-användare.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Vi berättar inte för Bernie.",
"annual_report.summary.thanks": "Tack för att du är en del av Mastodon!",
"attachments_list.unprocessed": "(obehandlad)",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 609caa1126..e0f55f562b 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -481,7 +481,6 @@
"lists.replies_policy.list": "สมาชิกของรายการ",
"lists.replies_policy.none": "ไม่มีใคร",
"lists.save": "บันทึก",
- "lists.search_placeholder": "ค้นหาผู้คนที่คุณติดตาม",
"lists.show_replies_to": "รวมการตอบกลับจากสมาชิกของรายการถึง",
"load_pending": "{count, plural, other {# รายการใหม่}}",
"loading_indicator.label": "กำลังโหลด…",
diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json
index a10d202886..bdd91a56af 100644
--- a/app/javascript/mastodon/locales/tok.json
+++ b/app/javascript/mastodon/locales/tok.json
@@ -289,7 +289,6 @@
"lists.replies_policy.followed": "jan kute ale",
"lists.replies_policy.list": "jan pi kulupu ni taso",
"lists.replies_policy.none": "jan ala",
- "lists.search_placeholder": "o alasa lon kulupu jan ni: sina kute e ona",
"load_pending": "{count, plural, other {ijo sin #}}",
"loading_indicator.label": "ni li kama…",
"mute_modal.title": "sina wile ala wile kute e jan ni?",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 1cf5a3db1e..ae5285838a 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "en çok kullanılan etiket",
"annual_report.summary.most_used_hashtag.none": "Yok",
"annual_report.summary.new_posts.new_posts": "yeni gönderiler",
- "annual_report.summary.percentile.text": "Mastodon kullanıcılarınınüst dilimindesiniz.",
+ "annual_report.summary.percentile.text": "{domain} kullanıcılarınınüst dilimindesiniz",
"annual_report.summary.percentile.we_wont_tell_bernie": "Bernie'ye söylemeyiz.",
"annual_report.summary.thanks": "Mastodon'un bir parçası olduğunuz için teşekkürler!",
"attachments_list.unprocessed": "(işlenmemiş)",
@@ -205,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Oturumu kapat",
"confirmations.logout.message": "Oturumu kapatmak istediğinden emin misin?",
"confirmations.logout.title": "Oturumu kapat?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Listenin üyeleri",
"lists.replies_policy.none": "Hiç kimse",
"lists.save": "Kaydet",
- "lists.search_placeholder": "Takip ettiğiniz kişilerde arama yapın",
+ "lists.search": "Ara",
"lists.show_replies_to": "Liste üyelerinin yanıtlarını içer",
"load_pending": "{count, plural, one {# yeni öğe} other {# yeni öğe}}",
"loading_indicator.label": "Yükleniyor…",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index d68eddc5f6..6324360c15 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -103,7 +103,6 @@
"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": "Це виводить вас в топ користувачів Mastodon.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ми не скажемо Bernie.",
"annual_report.summary.thanks": "Дякуємо, що ви є частиною Mastodon!",
"attachments_list.unprocessed": "(не оброблено)",
@@ -204,6 +203,7 @@
"confirmations.edit.confirm": "Змінити",
"confirmations.edit.message": "Редагування перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?",
"confirmations.edit.title": "Перезаписати допис?",
+ "confirmations.follow_to_list.confirm": "Підписатися і додати до списку",
"confirmations.logout.confirm": "Вийти",
"confirmations.logout.message": "Ви впевнені, що хочете вийти?",
"confirmations.logout.title": "Вийти?",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 0c17953022..316eae0aa6 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag dùng nhiều nhất",
"annual_report.summary.most_used_hashtag.none": "Không có",
"annual_report.summary.new_posts.new_posts": "tút mới",
- "annual_report.summary.percentile.text": "Bạn nằm trong topthành viên Mastodon.",
+ "annual_report.summary.percentile.text": "Bạn thuộc topthành viên của {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Chúng tôi sẽ không kể cho Bernie.",
"annual_report.summary.thanks": "Cảm ơn đã trở thành một phần của Mastodon!",
"attachments_list.unprocessed": "(chưa xử lí)",
@@ -205,6 +205,9 @@
"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 và 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?",
"confirmations.logout.confirm": "Đăng xuất",
"confirmations.logout.message": "Bạn có chắc muốn thoát?",
"confirmations.logout.title": "Đăng xuất",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "Người trong danh sách",
"lists.replies_policy.none": "Không ai",
"lists.save": "Lưu",
- "lists.search_placeholder": "Tìm những người mà bạn quan tâm",
+ "lists.search": "Tìm kiếm",
"lists.show_replies_to": "Bao gồm lượt trả lời từ thành viên danh sách",
"load_pending": "{count, plural, one {# tút mới} other {# tút mới}}",
"loading_indicator.label": "Đang tải…",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 937aebeaa9..3a05f8c23d 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -103,8 +103,8 @@
"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": "这使你跻身 Mastodon 用户的前",
- "annual_report.summary.percentile.we_wont_tell_bernie": "我们打死也不会告诉扣税国王的。",
+ "annual_report.summary.percentile.text": "这使你跻身 {domain} 用户的前",
+ "annual_report.summary.percentile.we_wont_tell_bernie": " ",
"annual_report.summary.thanks": "谢谢你这一年和 Mastodon 上的大家一起嘟嘟!",
"attachments_list.unprocessed": "(未处理)",
"audio.hide": "隐藏音频",
@@ -205,6 +205,9 @@
"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": "是否退出登录?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "列表成员",
"lists.replies_policy.none": "不显示",
"lists.save": "保存",
- "lists.search_placeholder": "搜索你关注的人",
+ "lists.search": "搜索",
"lists.show_replies_to": "列表成员回复的显示范围",
"load_pending": "{count} 项",
"loading_indicator.label": "加载中…",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 0c831e5499..c8e394cb8a 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -103,7 +103,7 @@
"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": "這讓您成為前Mastodon 的使用者。",
+ "annual_report.summary.percentile.text": "這讓您成為前{domain} 的使用者。",
"annual_report.summary.percentile.we_wont_tell_bernie": "我們不會告訴 Bernie。",
"annual_report.summary.thanks": "感謝您成為 Mastodon 的一份子!",
"attachments_list.unprocessed": "(未經處理)",
@@ -205,6 +205,9 @@
"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": "您確定要登出嗎?",
@@ -493,7 +496,7 @@
"lists.replies_policy.list": "列表成員",
"lists.replies_policy.none": "沒有人",
"lists.save": "儲存",
- "lists.search_placeholder": "搜尋您跟隨的人",
+ "lists.search": "搜尋",
"lists.show_replies_to": "包含來自列表成員的回覆到",
"load_pending": "{count, plural, other {# 個新項目}}",
"loading_indicator.label": "正在載入...",
diff --git a/config/locales/activerecord.el.yml b/config/locales/activerecord.el.yml
index a476221616..2b1210e337 100644
--- a/config/locales/activerecord.el.yml
+++ b/config/locales/activerecord.el.yml
@@ -39,6 +39,11 @@ el:
attributes:
data:
malformed: δεν είναι έγκυρα
+ list_account:
+ attributes:
+ account_id:
+ taken: είναι ήδη στη λίστα
+ must_be_following: πρέπει να είναι ένας λογαριασμός που ακολουθείς
status:
attributes:
reblog:
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 7ff595b41a..fcadcb0f01 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -185,7 +185,9 @@ bg:
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: Понижаване на потребител
diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml
index 7d44a6a6b9..38f88943bf 100644
--- a/config/locales/doorkeeper.fi.yml
+++ b/config/locales/doorkeeper.fi.yml
@@ -139,7 +139,7 @@ fi:
profile: Mastodon-profiilisi
push: Puskuilmoitukset
reports: Raportit
- search: Hae
+ search: Haku
statuses: Julkaisut
layouts:
admin:
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 98ef5f18b7..20c16b00b1 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -430,6 +430,7 @@ el:
attempts_over_week:
one: "%{count} προσπάθεια την τελευταία εβδομάδα"
other: "%{count} προσπάθειες εγγραφής την τελευταία εβδομάδα"
+ created_msg: Επιτυχής αποκλεισμός τομέα email
delete: Διαγραφή
dns:
types:
@@ -859,6 +860,9 @@ el:
message_html: Δεν έχεις ορίσει κανέναν κανόνα διακομιστή.
sidekiq_process_check:
message_html: Καμία διεργασία Sidekiq δεν εκτελείται για την ουρά %{value}. Παρακαλώ έλεγξε τη διαμόρφωση του Sidekiq
+ software_version_check:
+ action: Δες τις διαθέσιμες ενημερώσεις
+ message_html: Μια ενημέρωση Mastodon είναι διαθέσιμη.
software_version_critical_check:
action: Δες τις διαθέσιμες ενημερώσεις
message_html: Μια κρίσιμη ενημέρωση του Mastodon είναι διαθέσιμη, παρακαλώ ενήμερωσε το συντομότερο δυνατόν.
diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml
index 17b7bd6239..2f9af21aeb 100644
--- a/config/locales/simple_form.bg.yml
+++ b/config/locales/simple_form.bg.yml
@@ -60,6 +60,7 @@ bg:
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: Може да ползвате букви, цифри и долни черти
@@ -223,6 +224,7 @@ bg:
setting_hide_network: Скриване на социалния ви свързан граф
setting_reduce_motion: Обездвижване на анимациите
setting_system_font_ui: Употреба на стандартния шрифт на системата
+ setting_system_scrollbars_ui: Употреба на системната подразбираща се лента за превъртане
setting_theme: Тема на сайта
setting_trends: Показване на днешното налагащо се
setting_unfollow_modal: Показване на прозорче за потвърждение преди прекратяване следването на някого
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index 3a70c41097..d2bf790c9e 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -60,6 +60,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_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
username: Pots emprar lletres, números i subratllats
@@ -223,6 +224,7 @@ ca:
setting_hide_network: Amaga la teva xarxa
setting_reduce_motion: Redueix el moviment de les animacions
setting_system_font_ui: Usa la lletra predeterminada del sistema
+ setting_system_scrollbars_ui: Usa la barra de desplaçament predeterminada del sistema
setting_theme: Tema del lloc
setting_trends: Mostra les tendències d'avui
setting_unfollow_modal: Mostra el diàleg de confirmació abans de deixar de seguir algú
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 32e8e90b85..78629c95ca 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -60,6 +60,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_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
username: Bogstaver, cifre og understregningstegn kan benyttes
@@ -223,6 +224,7 @@ da:
setting_hide_network: Skjul din sociale graf
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
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index d6d6536737..2ac7791273 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -60,6 +60,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_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
username: Du kannst Buchstaben, Zahlen und Unterstriche verwenden
@@ -223,6 +224,7 @@ de:
setting_hide_network: Follower und „Folge ich“ nicht anzeigen
setting_reduce_motion: Bewegung in Animationen verringern
setting_system_font_ui: Standardschriftart des Browsers verwenden
+ setting_system_scrollbars_ui: Bildlaufleiste des Systems 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.es-AR.yml b/config/locales/simple_form.es-AR.yml
index c3a65c0cc2..85dc47853c 100644
--- a/config/locales/simple_form.es-AR.yml
+++ b/config/locales/simple_form.es-AR.yml
@@ -60,6 +60,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_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 actualizaciones de la línea temporal detrás de un clic en lugar de desplazar automáticamente el flujo
username: Podés usar letras, números y subguiones ("_")
@@ -223,6 +224,7 @@ es-AR:
setting_hide_network: Ocultá tu gráfica social
setting_reduce_motion: Reducir el movimiento de las animaciones
setting_system_font_ui: Utilizar la tipografía predeterminada del sistema
+ setting_system_scrollbars_ui: Utilizar barra de desplazamiento predeterminada del sistema
setting_theme: Tema del sitio
setting_trends: Mostrar las tendencias de hoy
setting_unfollow_modal: Mostrar diálogo de confirmación antes de dejar de seguir a una cuenta
diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml
index 23e41d77a6..47a79edfdc 100644
--- a/config/locales/simple_form.es-MX.yml
+++ b/config/locales/simple_form.es-MX.yml
@@ -60,6 +60,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_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 las publicaciones de la línea de tiempo tras un clic en lugar de desplazar automáticamente el feed
username: Puedes usar letras, números y guiones bajos
@@ -223,6 +224,7 @@ es-MX:
setting_hide_network: Ocultar tu red
setting_reduce_motion: Reducir el movimiento de las animaciones
setting_system_font_ui: Utilizar la tipografía por defecto del sistema
+ setting_system_scrollbars_ui: Utilizar barra de desplazamiento predeterminada del sistema
setting_theme: Tema del sitio
setting_trends: Mostrar las tendencias de hoy
setting_unfollow_modal: Mostrar diálogo de confirmación antes de dejar de seguir a alguien
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index 56e9b33ee8..f83b4b1d1c 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -60,6 +60,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_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
username: Puedes usar letras, números y guiones bajos
@@ -223,6 +224,7 @@ es:
setting_hide_network: Ocultar tu red
setting_reduce_motion: Reducir el movimiento de las animaciones
setting_system_font_ui: Utilizar la tipografía por defecto del sistema
+ setting_system_scrollbars_ui: Utilizar barra de desplazamiento predeterminada del sistema
setting_theme: Tema del sitio
setting_trends: Mostrar las tendencias de hoy
setting_unfollow_modal: Mostrar diálogo de confirmación antes de dejar de seguir a alguien
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index 8c914295fe..ae3bbd5c9b 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -60,6 +60,7 @@ fi:
setting_display_media_default: Piilota arkaluonteiseksi merkitty mediasisältö
setting_display_media_hide_all: Piilota mediasisältö aina
setting_display_media_show_all: Näytä mediasisältö aina
+ setting_system_scrollbars_ui: Koskee vain Safari- ja Chrome-pohjaisia työpöytäselaimia
setting_use_blurhash: Liukuvärit perustuvat piilotettujen kuvien väreihin mutta sumentavat yksityiskohdat
setting_use_pending_items: Piilota aikajanan päivitykset napsautuksen taakse syötteen automaattisen vierityksen sijaan
username: Voit käyttää kirjaimia, numeroita ja alaviivoja
@@ -223,6 +224,7 @@ fi:
setting_hide_network: Piilota verkostotietosi
setting_reduce_motion: Vähennä animaatioiden liikettä
setting_system_font_ui: Käytä järjestelmän oletusfonttia
+ setting_system_scrollbars_ui: Käytä järjestelmän oletusarvoista vierityspalkkia
setting_theme: Sivuston teema
setting_trends: Näytä päivän trendit
setting_unfollow_modal: Kysy vahvistusta ennen seuraamisen lopettamista
diff --git a/config/locales/simple_form.fo.yml b/config/locales/simple_form.fo.yml
index e45183df99..0c9ec51722 100644
--- a/config/locales/simple_form.fo.yml
+++ b/config/locales/simple_form.fo.yml
@@ -60,6 +60,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_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
username: Tú kanst brúka bókstavir, tøl og botnstrikur
@@ -223,6 +224,7 @@ fo:
setting_hide_network: Fjal sosiala grafin hjá tær
setting_reduce_motion: Minka um rørslu í teknimyndum
setting_system_font_ui: Brúka vanliga skriftaslagið hjá skipanini
+ setting_system_scrollbars_ui: Brúka vanliga skrullibjálkan hjá skipanini
setting_theme: Uppsetingareyðkenni
setting_trends: Vís dagsins rák
setting_unfollow_modal: Vís váttanarmynd, áðrenn tú gevst at fylgja onkrum
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index b29a071e80..3dc6ea28d2 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -60,6 +60,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_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
username: Podes usar letras, números e trazos baixos
@@ -223,6 +224,7 @@ gl:
setting_hide_network: Non mostrar contactos
setting_reduce_motion: Reducir o movemento nas animacións
setting_system_font_ui: Utilizar a tipografía por defecto do sistema
+ setting_system_scrollbars_ui: Usar barras de desprazamento predeterminadas no sistema
setting_theme: Decorado da instancia
setting_trends: Mostrar as tendencias de hoxe
setting_unfollow_modal: Solicitar confirmación antes de deixar de seguir alguén
diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml
index d8d6af5e99..1c82aa9d40 100644
--- a/config/locales/simple_form.he.yml
+++ b/config/locales/simple_form.he.yml
@@ -60,6 +60,7 @@ he:
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: ניתן להשתמש בספרות, אותיות לטיניות ומקף תחתון
@@ -223,6 +224,7 @@ he:
setting_hide_network: להחביא את הגרף החברתי שלך
setting_reduce_motion: הפחתת תנועה בהנפשות
setting_system_font_ui: להשתמש בגופן ברירת המחדל של המערכת
+ setting_system_scrollbars_ui: להשתמש בפס הגלילה שהוא ברירת המחדל של המערכת
setting_theme: ערכת העיצוב של האתר
setting_trends: הצגת הנושאים החמים
setting_unfollow_modal: להראות תיבת אישור לפני הפסקת מעקב אחרי אחרים
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index 60922b06b5..2290440449 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -60,6 +60,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_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
username: Betűk, számok és alávonások használhatók
@@ -223,6 +224,7 @@ hu:
setting_hide_network: Hálózatod elrejtése
setting_reduce_motion: Animációk mozgásának csökkentése
setting_system_font_ui: Rendszer betűtípusának használata
+ setting_system_scrollbars_ui: Rendszer alapértelmezett görgetősávjának használata
setting_theme: Megjelenítési sablon
setting_trends: Mai trend mutatása
setting_unfollow_modal: Megerősítés kérése mielőtt abbahagyod valaki követését
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 40ae267a06..7c24ef80b1 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -60,6 +60,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_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
username: Þú mátt nota bókstafi, tölur og undirstrik
@@ -223,6 +224,7 @@ is:
setting_hide_network: Fela félagsnetið þitt
setting_reduce_motion: Minnka hreyfingu í hreyfimyndum
setting_system_font_ui: Nota sjálfgefið letur kerfisins
+ setting_system_scrollbars_ui: Nota sjálfgefna skrunstiku kerfisins
setting_theme: Þema vefsvæðis
setting_trends: Birta það sem er efst á baugi í dag
setting_unfollow_modal: Birta staðfestingarglugga áður en hætt er að fylgjast með einhverjum
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 962f062534..90c3d7f4b0 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -60,6 +60,7 @@ ko:
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: 문자, 숫자, 밑줄을 사용할 수 있습니다
@@ -223,6 +224,7 @@ ko:
setting_hide_network: 내 인맥 숨기기
setting_reduce_motion: 애니메이션 줄이기
setting_system_font_ui: 시스템의 기본 글꼴을 사용
+ setting_system_scrollbars_ui: 시스템 기본 스크롤바 사용
setting_theme: 사이트 테마
setting_trends: 오늘의 유행 보이기
setting_unfollow_modal: 누군가를 언팔로우 할 때 확인란 표시하기
diff --git a/config/locales/simple_form.lt.yml b/config/locales/simple_form.lt.yml
index 77482d8012..b3885fb12b 100644
--- a/config/locales/simple_form.lt.yml
+++ b/config/locales/simple_form.lt.yml
@@ -60,6 +60,7 @@ lt:
setting_display_media_default: Slėpti mediją, pažymėtą kaip jautrią
setting_display_media_hide_all: Visada slėpti mediją
setting_display_media_show_all: Visada rodyti mediją
+ setting_system_scrollbars_ui: Taikoma tik darbalaukio naršyklėms, karkasiniais „Safari“ ir „Chrome“.
setting_use_blurhash: Gradientai pagrįsti paslėptų vizualizacijų spalvomis, bet užgožia bet kokias detales.
setting_use_pending_items: Slėpti laiko skalės naujienas po paspaudimo, vietoj automatinio srauto slinkimo.
username: Gali naudoti raides, skaičius ir pabraukimus
@@ -150,6 +151,7 @@ lt:
setting_hide_network: Slėpti savo socialinę diagramą
setting_reduce_motion: Sumažinti judėjimą animacijose
setting_system_font_ui: Naudoti numatytąjį sistemos šriftą
+ setting_system_scrollbars_ui: Naudoti numatytąją sistemos slankjuostę
setting_theme: Svetainės tema
setting_trends: Rodyti šiandienos trendus
setting_use_blurhash: Rodyti spalvingus paslėptos medijos gradientus
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index 2bb31aa0f9..b1d0927eda 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -60,6 +60,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_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
username: Je kunt letters, cijfers en underscores gebruiken
@@ -223,6 +224,7 @@ nl:
setting_hide_network: Jouw volgers en wie je volgt verbergen
setting_reduce_motion: Beweging in animaties verminderen
setting_system_font_ui: Standaardlettertype van het systeem gebruiken
+ setting_system_scrollbars_ui: Standaard scrollbalk van het systeem gebruiken
setting_theme: Thema website
setting_trends: Trends van vandaag tonen
setting_unfollow_modal: Vraag voor het ontvolgen van iemand een bevestiging
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index fca59515f0..917b85a0bb 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -60,6 +60,7 @@ pt-BR:
setting_display_media_default: Sempre ocultar mídia sensível
setting_display_media_hide_all: Sempre ocultar todas as mídias
setting_display_media_show_all: Sempre mostrar mídia sensível
+ setting_system_scrollbars_ui: Se aplica apenas para navegadores de computador baseado no Safari e Chrome
setting_use_blurhash: O blur é baseado nas cores da imagem oculta, ofusca a maioria dos detalhes
setting_use_pending_items: Ocultar atualizações da linha do tempo atrás de um clique ao invés de rolar automaticamente
username: Você pode usar letras, números e underlines
@@ -223,6 +224,7 @@ pt-BR:
setting_hide_network: Ocultar suas relações
setting_reduce_motion: Reduzir animações
setting_system_font_ui: Usar fonte padrão do sistema
+ setting_system_scrollbars_ui: Usar barra de rolagem padrão do sistema
setting_theme: Tema do site
setting_trends: Mostrar em alta hoje
setting_unfollow_modal: Solicitar confirmação antes de deixar de seguir alguém
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
index 1ca9037e63..5a605e9872 100644
--- a/config/locales/simple_form.sq.yml
+++ b/config/locales/simple_form.sq.yml
@@ -60,6 +60,7 @@ sq:
setting_display_media_default: Fshih media me shenjën rezervat
setting_display_media_hide_all: Fshih përherë mediat
setting_display_media_show_all: Mediat shfaqi përherë
+ setting_system_scrollbars_ui: Ka vend vetëm për shfletues desktop bazuar në Safari dhe Chrome
setting_use_blurhash: Gradientët bazohen në ngjyrat e elementëve pamorë të fshehur, por errësojnë çfarëdo hollësie
setting_use_pending_items: Fshihi përditësimet e rrjedhës kohore pas një klikimi, në vend të rrëshqitjes automatike nëpër prurje
username: Mund të përdorni shkronja, numra dhe nënvija
@@ -223,6 +224,7 @@ sq:
setting_hide_network: Fshiheni rrjetin tuaj
setting_reduce_motion: Zvogëlo lëvizjen në animacione
setting_system_font_ui: Përdor shkronja parazgjedhje të sistemit
+ setting_system_scrollbars_ui: Përdor shtyllë rrëshqitjesh parazgjedhje të sistemit
setting_theme: Temë sajti
setting_trends: Shfaq prirjet sot
setting_unfollow_modal: Shfaq dialog ripohimi përpara heqjes së ndjekjes për dikë
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 74dcd3f908..91b35ead32 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -60,6 +60,7 @@ uk:
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: Можна використовувати літери, цифри та підкреслення
@@ -223,6 +224,7 @@ uk:
setting_hide_network: Сховати вашу мережу
setting_reduce_motion: Менше руху в анімаціях
setting_system_font_ui: Використовувати типовий системний шрифт
+ setting_system_scrollbars_ui: Використовувати системну прокрутку
setting_theme: Тема сайту
setting_trends: Показувати популярні сьогодні дописи
setting_unfollow_modal: Показувати діалог підтвердження під час відписки від когось
diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml
index 2b1d84f595..c04e541f70 100644
--- a/config/locales/simple_form.vi.yml
+++ b/config/locales/simple_form.vi.yml
@@ -60,6 +60,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_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
username: Chỉ dùng ký tự, số và dấu gạch dưới
@@ -223,6 +224,7 @@ vi:
setting_hide_network: Ẩn quan hệ của bạn
setting_reduce_motion: Giảm chuyển động ảnh GIF
setting_system_font_ui: Dùng phông chữ mặc định hệ thống
+ setting_system_scrollbars_ui: Dùng scrollbar mặc định hệ thống
setting_theme: Giao diện
setting_trends: Hiển thị xu hướng trong ngày
setting_unfollow_modal: Hỏi trước khi bỏ theo dõi ai đó
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index f0f1bf15c5..3188db7b94 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -60,6 +60,7 @@ zh-CN:
setting_display_media_default: 隐藏被标记为敏感内容的媒体
setting_display_media_hide_all: 始终隐藏媒体
setting_display_media_show_all: 始终显示媒体
+ setting_system_scrollbars_ui: 仅对基于 Safari 或 Chromium 内核的桌面端浏览器有效
setting_use_blurhash: 渐变是基于模糊后的隐藏内容生成的
setting_use_pending_items: 点击查看时间线更新,而非自动滚动更新动态。
username: 你只能使用字母、数字和下划线
@@ -223,6 +224,7 @@ zh-CN:
setting_hide_network: 隐藏你的社交网络
setting_reduce_motion: 降低过渡动画效果
setting_system_font_ui: 使用系统默认字体
+ setting_system_scrollbars_ui: 使用系统默认样式的滚动条
setting_theme: 站点主题
setting_trends: 显示今日热门
setting_unfollow_modal: 在取消关注前询问我
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 289a24f122..c1a3a8d6d9 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -60,6 +60,7 @@ zh-TW:
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: 您可以使用字幕、數字與底線
@@ -223,6 +224,7 @@ zh-TW:
setting_hide_network: 隱藏您的社交網路
setting_reduce_motion: 減少過渡動畫效果
setting_system_font_ui: 使用系統預設字型
+ setting_system_scrollbars_ui: 使用系統預設捲動軸
setting_theme: 佈景主題
setting_trends: 顯示本日熱門趨勢
setting_unfollow_modal: 取消跟隨某人前先詢問我
From 23a2366090d804f68ab8775a151b0b849bb455f6 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 4 Dec 2024 11:20:50 +0100
Subject: [PATCH 018/175] Update dependency dotenv to v16.4.7 (#33147)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 41738846ff..7c50592d56 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7371,9 +7371,9 @@ __metadata:
linkType: hard
"dotenv@npm:^16.0.3":
- version: 16.4.5
- resolution: "dotenv@npm:16.4.5"
- checksum: 10c0/48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f
+ version: 16.4.7
+ resolution: "dotenv@npm:16.4.7"
+ checksum: 10c0/be9f597e36a8daf834452daa1f4cc30e5375a5968f98f46d89b16b983c567398a330580c88395069a77473943c06b877d1ca25b4afafcdd6d4adb549e8293462
languageName: node
linkType: hard
From b9b26490e76437abb2523521fd279a92e362c603 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 4 Dec 2024 11:40:47 +0100
Subject: [PATCH 019/175] Update dependency sass to v1.82.0 (#32411)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 179 insertions(+), 6 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 7c50592d56..c8fb70bb0d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3101,6 +3101,150 @@ __metadata:
languageName: node
linkType: hard
+"@parcel/watcher-android-arm64@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-android-arm64@npm:2.5.0"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-darwin-arm64@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-darwin-arm64@npm:2.5.0"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-darwin-x64@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-darwin-x64@npm:2.5.0"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-freebsd-x64@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-freebsd-x64@npm:2.5.0"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm-glibc@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-linux-arm-glibc@npm:2.5.0"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm-musl@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-linux-arm-musl@npm:2.5.0"
+ conditions: os=linux & cpu=arm & libc=musl
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm64-glibc@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.5.0"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm64-musl@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-linux-arm64-musl@npm:2.5.0"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-x64-glibc@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-linux-x64-glibc@npm:2.5.0"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-x64-musl@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-linux-x64-musl@npm:2.5.0"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-arm64@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-win32-arm64@npm:2.5.0"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-ia32@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-win32-ia32@npm:2.5.0"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-x64@npm:2.5.0":
+ version: 2.5.0
+ resolution: "@parcel/watcher-win32-x64@npm:2.5.0"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher@npm:^2.4.1":
+ version: 2.5.0
+ resolution: "@parcel/watcher@npm:2.5.0"
+ dependencies:
+ "@parcel/watcher-android-arm64": "npm:2.5.0"
+ "@parcel/watcher-darwin-arm64": "npm:2.5.0"
+ "@parcel/watcher-darwin-x64": "npm:2.5.0"
+ "@parcel/watcher-freebsd-x64": "npm:2.5.0"
+ "@parcel/watcher-linux-arm-glibc": "npm:2.5.0"
+ "@parcel/watcher-linux-arm-musl": "npm:2.5.0"
+ "@parcel/watcher-linux-arm64-glibc": "npm:2.5.0"
+ "@parcel/watcher-linux-arm64-musl": "npm:2.5.0"
+ "@parcel/watcher-linux-x64-glibc": "npm:2.5.0"
+ "@parcel/watcher-linux-x64-musl": "npm:2.5.0"
+ "@parcel/watcher-win32-arm64": "npm:2.5.0"
+ "@parcel/watcher-win32-ia32": "npm:2.5.0"
+ "@parcel/watcher-win32-x64": "npm:2.5.0"
+ detect-libc: "npm:^1.0.3"
+ is-glob: "npm:^4.0.3"
+ micromatch: "npm:^4.0.5"
+ node-addon-api: "npm:^7.0.0"
+ node-gyp: "npm:latest"
+ dependenciesMeta:
+ "@parcel/watcher-android-arm64":
+ optional: true
+ "@parcel/watcher-darwin-arm64":
+ optional: true
+ "@parcel/watcher-darwin-x64":
+ optional: true
+ "@parcel/watcher-freebsd-x64":
+ optional: true
+ "@parcel/watcher-linux-arm-glibc":
+ optional: true
+ "@parcel/watcher-linux-arm-musl":
+ optional: true
+ "@parcel/watcher-linux-arm64-glibc":
+ optional: true
+ "@parcel/watcher-linux-arm64-musl":
+ optional: true
+ "@parcel/watcher-linux-x64-glibc":
+ optional: true
+ "@parcel/watcher-linux-x64-musl":
+ optional: true
+ "@parcel/watcher-win32-arm64":
+ optional: true
+ "@parcel/watcher-win32-ia32":
+ optional: true
+ "@parcel/watcher-win32-x64":
+ optional: true
+ checksum: 10c0/9bad727d8b11e5d150ec47459254544c583adaa47d047b8ef65e1c74aede1a0767dc7fc6b8997649dae07318d6ef39caba6a1c405d306398d5bcd47074ec5d29
+ languageName: node
+ linkType: hard
+
"@pkgjs/parseargs@npm:^0.11.0":
version: 0.11.0
resolution: "@pkgjs/parseargs@npm:0.11.0"
@@ -7162,6 +7306,15 @@ __metadata:
languageName: node
linkType: hard
+"detect-libc@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "detect-libc@npm:1.0.3"
+ bin:
+ detect-libc: ./bin/detect-libc.js
+ checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d
+ languageName: node
+ linkType: hard
+
"detect-newline@npm:^3.0.0":
version: 3.1.0
resolution: "detect-newline@npm:3.1.0"
@@ -9599,13 +9752,20 @@ __metadata:
languageName: node
linkType: hard
-"immutable@npm:^4.0.0, immutable@npm:^4.0.0-rc.1, immutable@npm:^4.3.0":
+"immutable@npm:^4.0.0-rc.1, immutable@npm:^4.3.0":
version: 4.3.7
resolution: "immutable@npm:4.3.7"
checksum: 10c0/9b099197081b22f6433003e34929da8ecddbbdc1474cdc8aa3b7669dee4adda349c06143de22def36016d1b6de5322b043eccd7a11db1dad2ca85dad4fff5435
languageName: node
linkType: hard
+"immutable@npm:^5.0.2":
+ version: 5.0.3
+ resolution: "immutable@npm:5.0.3"
+ checksum: 10c0/3269827789e1026cd25c2ea97f0b2c19be852ffd49eda1b674b20178f73d84fa8d945ad6f5ac5bc4545c2b4170af9f6e1f77129bc1cae7974a4bf9b04a9cdfb9
+ languageName: node
+ linkType: hard
+
"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0":
version: 3.3.0
resolution: "import-fresh@npm:3.3.0"
@@ -11850,7 +12010,7 @@ __metadata:
languageName: node
linkType: hard
-"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8, micromatch@npm:~4.0.8":
+"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8, micromatch@npm:~4.0.8":
version: 4.0.8
resolution: "micromatch@npm:4.0.8"
dependencies:
@@ -12221,6 +12381,15 @@ __metadata:
languageName: node
linkType: hard
+"node-addon-api@npm:^7.0.0":
+ version: 7.1.1
+ resolution: "node-addon-api@npm:7.1.1"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/fb32a206276d608037fa1bcd7e9921e177fe992fc610d098aa3128baca3c0050fc1e014fa007e9b3874cf865ddb4f5bd9f43ccb7cbbbe4efaff6a83e920b17e9
+ languageName: node
+ linkType: hard
+
"node-fetch@npm:^2.6.0":
version: 2.6.11
resolution: "node-fetch@npm:2.6.11"
@@ -15449,15 +15618,19 @@ __metadata:
linkType: hard
"sass@npm:^1.62.1":
- version: 1.79.4
- resolution: "sass@npm:1.79.4"
+ version: 1.82.0
+ resolution: "sass@npm:1.82.0"
dependencies:
+ "@parcel/watcher": "npm:^2.4.1"
chokidar: "npm:^4.0.0"
- immutable: "npm:^4.0.0"
+ immutable: "npm:^5.0.2"
source-map-js: "npm:>=0.6.2 <2.0.0"
+ dependenciesMeta:
+ "@parcel/watcher":
+ optional: true
bin:
sass: sass.js
- checksum: 10c0/505ff0d9267d0fb990971e617acfeabf7c060c55d4cef68fe8a4bc693e7ea88ae7d7caeca3975e4b453459ba4a707b6e5b6979fc9395a7e08f0a43ca6aed06b8
+ checksum: 10c0/7f86fe6ade4f6018862c448ed69d5c52f485b0125c9dab24e63f679739a04cc7c56562d588e3cf16b5efb4d2c4d0530e62740e1cfd273e2e3707d04d11011736
languageName: node
linkType: hard
From 48ea7552ddbfa22c37a5bdb695423d6c6215aced Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Wed, 4 Dec 2024 12:59:17 +0100
Subject: [PATCH 020/175] Change hashtag trends to be stored in the database
instead of redis (#32837)
Co-authored-by: David Roetzel
---
.../api/v1/trends/tags_controller.rb | 4 +-
app/models/tag.rb | 2 +
app/models/tag_trend.rb | 21 ++++++
app/models/trends/base.rb | 47 +-----------
app/models/trends/links.rb | 17 -----
app/models/trends/query.rb | 57 ++++++---------
app/models/trends/statuses.rb | 17 -----
app/models/trends/tag_filter.rb | 36 ++++++----
app/models/trends/tags.rb | 72 +++++++++++++------
app/views/admin/trends/tags/_tag.html.haml | 4 +-
.../admin_mailer/_new_trending_tags.text.erb | 2 +-
.../20241111141355_create_tag_trends.rb | 15 ++++
...20241123160722_move_tag_trends_to_table.rb | 25 +++++++
db/schema.rb | 12 +++-
spec/fabricators/tag_trend_fabricator.rb | 5 ++
spec/mailers/admin_mailer_spec.rb | 1 +
spec/models/tag_trend_spec.rb | 11 +++
spec/models/trends/tags_spec.rb | 4 +-
18 files changed, 195 insertions(+), 157 deletions(-)
create mode 100644 app/models/tag_trend.rb
create mode 100644 db/migrate/20241111141355_create_tag_trends.rb
create mode 100644 db/post_migrate/20241123160722_move_tag_trends_to_table.rb
create mode 100644 spec/fabricators/tag_trend_fabricator.rb
create mode 100644 spec/models/tag_trend_spec.rb
diff --git a/app/controllers/api/v1/trends/tags_controller.rb b/app/controllers/api/v1/trends/tags_controller.rb
index b15dd50131..10a3442344 100644
--- a/app/controllers/api/v1/trends/tags_controller.rb
+++ b/app/controllers/api/v1/trends/tags_controller.rb
@@ -27,7 +27,9 @@ class Api::V1::Trends::TagsController < Api::BaseController
end
def tags_from_trends
- Trends.tags.query.allowed
+ scope = Trends.tags.query.allowed.in_locale(content_locale)
+ scope = scope.filtered_for(current_account) if user_signed_in?
+ scope
end
def next_path
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 67fa9e5d3a..c9115b905b 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -32,6 +32,8 @@ class Tag < ApplicationRecord
has_many :featured_tags, dependent: :destroy, inverse_of: :tag
has_many :followers, through: :passive_relationships, source: :account
+ has_one :trend, class_name: 'TagTrend', inverse_of: :tag, dependent: :destroy
+
HASHTAG_SEPARATORS = "_\u00B7\u30FB\u200c"
HASHTAG_FIRST_SEQUENCE_CHUNK_ONE = "[[:word:]_][[:word:]#{HASHTAG_SEPARATORS}]*[[:alpha:]#{HASHTAG_SEPARATORS}]"
HASHTAG_FIRST_SEQUENCE_CHUNK_TWO = "[[:word:]#{HASHTAG_SEPARATORS}]*[[:word:]_]"
diff --git a/app/models/tag_trend.rb b/app/models/tag_trend.rb
new file mode 100644
index 0000000000..85a9028f21
--- /dev/null
+++ b/app/models/tag_trend.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: tag_trends
+#
+# id :bigint(8) not null, primary key
+# tag_id :bigint(8) not null
+# score :float default(0.0), not null
+# rank :integer default(0), not null
+# allowed :boolean default(FALSE), not null
+# language :string
+#
+class TagTrend < ApplicationRecord
+ include RankedTrend
+
+ belongs_to :tag
+
+ scope :allowed, -> { where(allowed: true) }
+ scope :not_allowed, -> { where(allowed: false) }
+end
diff --git a/app/models/trends/base.rb b/app/models/trends/base.rb
index a189f11f23..1e7749e4b1 100644
--- a/app/models/trends/base.rb
+++ b/app/models/trends/base.rb
@@ -34,19 +34,7 @@ class Trends::Base
end
def query
- Trends::Query.new(key_prefix, klass)
- end
-
- def score(id, locale: nil)
- redis.zscore([key_prefix, 'all', locale].compact.join(':'), id) || 0
- end
-
- def rank(id, locale: nil)
- redis.zrevrank([key_prefix, 'allowed', locale].compact.join(':'), id)
- end
-
- def currently_trending_ids(allowed, limit)
- redis.zrevrange(allowed ? "#{key_prefix}:allowed" : "#{key_prefix}:all", 0, limit.positive? ? limit - 1 : limit).map(&:to_i)
+ Trends::Query.new(klass)
end
protected
@@ -64,42 +52,9 @@ class Trends::Base
redis.expire(used_key(at_time), 1.day.seconds)
end
- def score_at_rank(rank)
- redis.zrevrange("#{key_prefix}:allowed", 0, rank, with_scores: true).last&.last || 0
- end
-
- def replace_items(suffix, items)
- tmp_prefix = "#{key_prefix}:tmp:#{SecureRandom.alphanumeric(6)}#{suffix}"
- allowed_items = filter_for_allowed_items(items)
-
- redis.pipelined do |pipeline|
- items.each { |item| pipeline.zadd("#{tmp_prefix}:all", item[:score], item[:item].id) }
- allowed_items.each { |item| pipeline.zadd("#{tmp_prefix}:allowed", item[:score], item[:item].id) }
-
- rename_set(pipeline, "#{tmp_prefix}:all", "#{key_prefix}:all#{suffix}", items)
- rename_set(pipeline, "#{tmp_prefix}:allowed", "#{key_prefix}:allowed#{suffix}", allowed_items)
- end
- end
-
- def filter_for_allowed_items(items)
- raise NotImplementedError
- end
-
private
def used_key(at_time)
"#{key_prefix}:used:#{at_time.beginning_of_day.to_i}"
end
-
- def rename_set(pipeline, from_key, to_key, set_items)
- if set_items.empty?
- pipeline.del(to_key)
- else
- pipeline.rename(from_key, to_key)
- end
- end
-
- def skip_review?
- Setting.trendable_by_default
- end
end
diff --git a/app/models/trends/links.rb b/app/models/trends/links.rb
index 9d721d25f8..0f3ead43f8 100644
--- a/app/models/trends/links.rb
+++ b/app/models/trends/links.rb
@@ -14,15 +14,6 @@ class Trends::Links < Trends::Base
}
class Query < Trends::Query
- def filtered_for!(account)
- @account = account
- self
- end
-
- def filtered_for(account)
- clone.filtered_for!(account)
- end
-
def to_arel
scope = PreviewCard.joins(:trend).reorder(score: :desc)
scope = scope.reorder(language_order_clause.desc, score: :desc) if preferred_languages.present?
@@ -37,14 +28,6 @@ class Trends::Links < Trends::Base
def language_order_clause
Arel::Nodes::Case.new.when(PreviewCardTrend.arel_table[:language].in(preferred_languages)).then(1).else(0)
end
-
- def preferred_languages
- if @account&.chosen_languages.present?
- @account.chosen_languages
- else
- @locale
- end
- end
end
def register(status, at_time = Time.now.utc)
diff --git a/app/models/trends/query.rb b/app/models/trends/query.rb
index c4edbba6b8..590e81f4fd 100644
--- a/app/models/trends/query.rb
+++ b/app/models/trends/query.rb
@@ -1,19 +1,18 @@
# frozen_string_literal: true
class Trends::Query
- include Redisable
include Enumerable
- attr_reader :prefix, :klass, :loaded
+ attr_reader :klass, :loaded
alias loaded? loaded
- def initialize(prefix, klass)
- @prefix = prefix
+ def initialize(_prefix, klass)
@klass = klass
@records = []
@loaded = false
@allowed = false
+ @account = nil
@limit = nil
@offset = nil
end
@@ -27,6 +26,15 @@ class Trends::Query
clone.allowed!
end
+ def filtered_for!(account)
+ @account = account
+ self
+ end
+
+ def filtered_for(account)
+ clone.filtered_for!(account)
+ end
+
def in_locale!(value)
@locale = value
self
@@ -68,22 +76,11 @@ class Trends::Query
alias to_a to_ary
def to_arel
- if ids_for_key.empty?
- klass.none
- else
- scope = klass.joins(sanitized_join_sql).reorder('x.ordering')
- scope = scope.offset(@offset) if @offset.present?
- scope = scope.limit(@limit) if @limit.present?
- scope
- end
+ raise NotImplementedError
end
private
- def key
- [@prefix, @allowed ? 'allowed' : 'all', @locale].compact.join(':')
- end
-
def load
unless loaded?
@records = perform_queries
@@ -93,29 +90,15 @@ class Trends::Query
self
end
- def ids_for_key
- @ids_for_key ||= redis.zrevrange(key, 0, -1).map(&:to_i)
- end
-
- def sanitized_join_sql
- ActiveRecord::Base.sanitize_sql_array(join_sql_array)
- end
-
- def join_sql_array
- [join_sql_query, ids_for_key]
- end
-
- def join_sql_query
- <<~SQL.squish
- JOIN unnest(array[?]) WITH ordinality AS x (id, ordering) ON #{klass.table_name}.id = x.id
- SQL
- end
-
def perform_queries
- apply_scopes(to_arel).to_a
+ to_arel.to_a
end
- def apply_scopes(scope)
- scope
+ def preferred_languages
+ if @account&.chosen_languages.present?
+ @account.chosen_languages
+ else
+ @locale
+ end
end
end
diff --git a/app/models/trends/statuses.rb b/app/models/trends/statuses.rb
index cdf5929069..1d2f02809b 100644
--- a/app/models/trends/statuses.rb
+++ b/app/models/trends/statuses.rb
@@ -13,15 +13,6 @@ class Trends::Statuses < Trends::Base
}
class Query < Trends::Query
- def filtered_for!(account)
- @account = account
- self
- end
-
- def filtered_for(account)
- clone.filtered_for!(account)
- end
-
def to_arel
scope = Status.joins(:trend).reorder(score: :desc)
scope = scope.reorder(language_order_clause.desc, score: :desc) if preferred_languages.present?
@@ -37,14 +28,6 @@ class Trends::Statuses < Trends::Base
def language_order_clause
Arel::Nodes::Case.new.when(StatusTrend.arel_table[:language].in(preferred_languages)).then(1).else(0)
end
-
- def preferred_languages
- if @account&.chosen_languages.present?
- @account.chosen_languages
- else
- @locale
- end
- end
end
def register(status, at_time = Time.now.utc)
diff --git a/app/models/trends/tag_filter.rb b/app/models/trends/tag_filter.rb
index d6f88a9486..02d558ac25 100644
--- a/app/models/trends/tag_filter.rb
+++ b/app/models/trends/tag_filter.rb
@@ -6,6 +6,8 @@ class Trends::TagFilter
status
).freeze
+ IGNORED_PARAMS = %w(page).freeze
+
attr_reader :params
def initialize(params)
@@ -13,14 +15,10 @@ class Trends::TagFilter
end
def results
- scope = if params[:status] == 'pending_review'
- Tag.unscoped.order(id: :desc)
- else
- trending_scope
- end
+ scope = initial_scope
params.each do |key, value|
- next if key.to_s == 'page'
+ next if IGNORED_PARAMS.include?(key.to_s)
scope.merge!(scope_for(key, value.to_s.strip)) if value.present?
end
@@ -30,19 +28,24 @@ class Trends::TagFilter
private
+ def initial_scope
+ Tag.select(Tag.arel_table[Arel.star])
+ .joins(:trend)
+ .eager_load(:trend)
+ .reorder(score: :desc)
+ end
+
def scope_for(key, value)
case key.to_s
when 'status'
status_scope(value)
+ when 'trending'
+ trending_scope(value)
else
- raise "Unknown filter: #{key}"
+ raise Mastodon::InvalidParameterError, "Unknown filter: #{key}"
end
end
- def trending_scope
- Trends.tags.query.to_arel
- end
-
def status_scope(value)
case value.to_s
when 'approved'
@@ -52,7 +55,16 @@ class Trends::TagFilter
when 'pending_review'
Tag.pending_review
else
- raise "Unknown status: #{value}"
+ raise Mastodon::InvalidParameterError, "Unknown status: #{value}"
+ end
+ end
+
+ def trending_scope(value)
+ case value
+ when 'allowed'
+ TagTrend.allowed
+ else
+ TagTrend.all
end
end
end
diff --git a/app/models/trends/tags.rb b/app/models/trends/tags.rb
index 9315329906..18f2a9a949 100644
--- a/app/models/trends/tags.rb
+++ b/app/models/trends/tags.rb
@@ -3,6 +3,8 @@
class Trends::Tags < Trends::Base
PREFIX = 'trending_tags'
+ BATCH_SIZE = 100
+
self.default_options = {
threshold: 5,
review_threshold: 3,
@@ -11,6 +13,22 @@ class Trends::Tags < Trends::Base
decay_threshold: 1,
}
+ class Query < Trends::Query
+ def to_arel
+ scope = Tag.joins(:trend).reorder(language_order_clause.desc, score: :desc)
+ scope = scope.merge(TagTrend.allowed) if @allowed
+ scope = scope.offset(@offset) if @offset.present?
+ scope = scope.limit(@limit) if @limit.present?
+ scope
+ end
+
+ private
+
+ def language_order_clause
+ Arel::Nodes::Case.new.when(TagTrend.arel_table[:language].in(preferred_languages)).then(1).else(0)
+ end
+ end
+
def register(status, at_time = Time.now.utc)
return unless !status.reblog? && status.public_visibility? && !status.account.silenced?
@@ -24,19 +42,39 @@ class Trends::Tags < Trends::Base
record_used_id(tag.id, at_time)
end
+ def query
+ Query.new(key_prefix, klass)
+ end
+
def refresh(at_time = Time.now.utc)
- tags = Tag.where(id: (recently_used_ids(at_time) + currently_trending_ids(false, -1)).uniq)
- calculate_scores(tags, at_time)
+ # First, recalculate scores for tags that were trending previously. We split the queries
+ # to avoid having to load all of the IDs into Ruby just to send them back into Postgres
+ Tag.where(id: TagTrend.select(:tag_id)).find_in_batches(batch_size: BATCH_SIZE) do |tags|
+ calculate_scores(tags, at_time)
+ end
+
+ # Then, calculate scores for tags that were used today. There are potentially some
+ # duplicate items here that we might process one more time, but that should be fine
+ Tag.where(id: recently_used_ids(at_time)).find_in_batches(batch_size: BATCH_SIZE) do |tags|
+ calculate_scores(tags, at_time)
+ end
+
+ # Now that all trends have up-to-date scores, and all the ones below the threshold have
+ # been removed, we can recalculate their positions
+ TagTrend.recalculate_ordered_rank
end
def request_review
- tags = Tag.where(id: currently_trending_ids(false, -1))
+ score_at_threshold = TagTrend.allowed.by_rank.ranked_below(options[:review_threshold]).first&.score || 0
+ tag_trends = TagTrend.not_allowed.includes(:tag)
- tags.filter_map do |tag|
- next unless would_be_trending?(tag.id) && !tag.trendable? && tag.requires_review_notification?
+ tag_trends.filter_map do |trend|
+ tag = trend.tag
- tag.touch(:requested_review_at)
- tag
+ if trend.score > score_at_threshold && !tag.trendable? && tag.requires_review_notification?
+ tag.touch(:requested_review_at)
+ tag
+ end
end
end
@@ -53,9 +91,7 @@ class Trends::Tags < Trends::Base
private
def calculate_scores(tags, at_time)
- items = []
-
- tags.each do |tag|
+ items = tags.map do |tag|
expected = tag.history.get(at_time - 1.day).accounts.to_f
expected = 1.0 if expected.zero?
observed = tag.history.get(at_time).accounts.to_f
@@ -79,19 +115,13 @@ class Trends::Tags < Trends::Base
decaying_score = max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f))
- next unless decaying_score >= options[:decay_threshold]
-
- items << { score: decaying_score, item: tag }
+ [decaying_score, tag]
end
- replace_items('', items)
- end
+ to_insert = items.filter { |(score, _)| score >= options[:decay_threshold] }
+ to_delete = items.filter { |(score, _)| score < options[:decay_threshold] }
- def filter_for_allowed_items(items)
- items.select { |item| item[:item].trendable? }
- end
-
- def would_be_trending?(id)
- score(id) > score_at_rank(options[:review_threshold] - 1)
+ TagTrend.upsert_all(to_insert.map { |(score, tag)| { tag_id: tag.id, score: score, language: '', allowed: tag.trendable? || false } }, unique_by: %w(tag_id language)) if to_insert.any?
+ TagTrend.where(tag_id: to_delete.map { |(_, tag)| tag.id }).delete_all if to_delete.any?
end
end
diff --git a/app/views/admin/trends/tags/_tag.html.haml b/app/views/admin/trends/tags/_tag.html.haml
index b1e714a912..e0f9f39e47 100644
--- a/app/views/admin/trends/tags/_tag.html.haml
+++ b/app/views/admin/trends/tags/_tag.html.haml
@@ -11,9 +11,9 @@
= link_to tag_path(tag), target: '_blank', rel: 'noopener noreferrer' do
= t('admin.trends.tags.used_by_over_week', count: tag.history.reduce(0) { |sum, day| sum + day.accounts })
- - if tag.trendable? && (rank = Trends.tags.rank(tag.id))
+ - if tag.trendable?
·
- %abbr{ title: t('admin.trends.tags.current_score', score: Trends.tags.score(tag.id)) }= t('admin.trends.tags.trending_rank', rank: rank + 1)
+ %abbr{ title: t('admin.trends.tags.current_score', score: tag.trend.score) }= t('admin.trends.tags.trending_rank', rank: tag.trend.rank + 1)
- if tag.decaying?
·
diff --git a/app/views/admin_mailer/_new_trending_tags.text.erb b/app/views/admin_mailer/_new_trending_tags.text.erb
index f738caaf3d..c9bd1bc717 100644
--- a/app/views/admin_mailer/_new_trending_tags.text.erb
+++ b/app/views/admin_mailer/_new_trending_tags.text.erb
@@ -2,7 +2,7 @@
<% new_trending_tags.each do |tag| %>
- #<%= tag.display_name %>
- <%= raw t('admin.trends.tags.usage_comparison', today: tag.history.get(Time.now.utc).accounts, yesterday: tag.history.get(Time.now.utc - 1.day).accounts) %> · <%= t('admin.trends.tags.current_score', score: Trends.tags.score(tag.id).round(2)) %>
+ <%= raw t('admin.trends.tags.usage_comparison', today: tag.history.get(Time.now.utc).accounts, yesterday: tag.history.get(Time.now.utc - 1.day).accounts) %> · <%= t('admin.trends.tags.current_score', score: tag.trend.score.round(2)) %>
<% end %>
<%= raw t('application_mailer.view')%> <%= admin_trends_tags_url(status: 'pending_review') %>
diff --git a/db/migrate/20241111141355_create_tag_trends.rb b/db/migrate/20241111141355_create_tag_trends.rb
new file mode 100644
index 0000000000..c4c7d13d19
--- /dev/null
+++ b/db/migrate/20241111141355_create_tag_trends.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class CreateTagTrends < ActiveRecord::Migration[7.2]
+ def change
+ create_table :tag_trends do |t| # rubocop:disable Rails/CreateTableWithTimestamps
+ t.references :tag, null: false, foreign_key: { on_delete: :cascade }, index: false
+ t.float :score, null: false, default: 0
+ t.integer :rank, null: false, default: 0
+ t.boolean :allowed, null: false, default: false
+ t.string :language, null: false, default: ''
+ end
+
+ add_index :tag_trends, [:tag_id, :language], unique: true
+ end
+end
diff --git a/db/post_migrate/20241123160722_move_tag_trends_to_table.rb b/db/post_migrate/20241123160722_move_tag_trends_to_table.rb
new file mode 100644
index 0000000000..3e1f1b5440
--- /dev/null
+++ b/db/post_migrate/20241123160722_move_tag_trends_to_table.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class MoveTagTrendsToTable < ActiveRecord::Migration[7.2]
+ include Redisable
+
+ disable_ddl_transaction!
+
+ def up
+ redis.zrange('trending_tags:all', 0, -1, with_scores: true).each do |(tag_id, score)|
+ TagTrend.create(
+ tag_id: tag_id,
+ score: score,
+ allowed: redis.zscore('trending_tags:allowed', tag_id).present?
+ )
+ end
+
+ TagTrend.recalculate_ordered_rank
+
+ redis.del('trending_tags:allowed', 'trending_tags:all')
+ end
+
+ def down
+ raise ActiveRecord::IrreversibleMigration
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 30b16a8a82..9130a937ac 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[7.2].define(version: 2024_11_04_082851) do
+ActiveRecord::Schema[7.2].define(version: 2024_11_23_160722) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -1080,6 +1080,15 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_04_082851) do
t.index ["tag_id"], name: "index_tag_follows_on_tag_id"
end
+ create_table "tag_trends", force: :cascade do |t|
+ t.bigint "tag_id", null: false
+ t.float "score", default: 0.0, null: false
+ t.integer "rank", default: 0, null: false
+ t.boolean "allowed", default: false, null: false
+ t.string "language"
+ t.index ["tag_id", "language"], name: "index_tag_trends_on_tag_id_and_language", unique: true
+ end
+
create_table "tags", force: :cascade do |t|
t.string "name", default: "", null: false
t.datetime "created_at", precision: nil, null: false
@@ -1343,6 +1352,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_04_082851) do
add_foreign_key "statuses_tags", "tags", name: "fk_3081861e21", on_delete: :cascade
add_foreign_key "tag_follows", "accounts", on_delete: :cascade
add_foreign_key "tag_follows", "tags", on_delete: :cascade
+ add_foreign_key "tag_trends", "tags", on_delete: :cascade
add_foreign_key "tombstones", "accounts", on_delete: :cascade
add_foreign_key "user_invite_requests", "users", on_delete: :cascade
add_foreign_key "users", "accounts", name: "fk_50500f500d", on_delete: :cascade
diff --git a/spec/fabricators/tag_trend_fabricator.rb b/spec/fabricators/tag_trend_fabricator.rb
new file mode 100644
index 0000000000..ddf9b9bf40
--- /dev/null
+++ b/spec/fabricators/tag_trend_fabricator.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+Fabricator(:tag_trend) do
+ tag
+end
diff --git a/spec/mailers/admin_mailer_spec.rb b/spec/mailers/admin_mailer_spec.rb
index cd1ab3311c..a4bf9dd667 100644
--- a/spec/mailers/admin_mailer_spec.rb
+++ b/spec/mailers/admin_mailer_spec.rb
@@ -71,6 +71,7 @@ RSpec.describe AdminMailer do
before do
PreviewCardTrend.create!(preview_card: link)
StatusTrend.create!(status: status, account: Fabricate(:account))
+ TagTrend.create!(tag: tag)
recipient.user.update(locale: :en)
end
diff --git a/spec/models/tag_trend_spec.rb b/spec/models/tag_trend_spec.rb
new file mode 100644
index 0000000000..37b50686db
--- /dev/null
+++ b/spec/models/tag_trend_spec.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe TagTrend do
+ include_examples 'RankedTrend'
+
+ describe 'Associations' do
+ it { is_expected.to belong_to(:tag).required }
+ end
+end
diff --git a/spec/models/trends/tags_spec.rb b/spec/models/trends/tags_spec.rb
index f2818fca87..936b441d92 100644
--- a/spec/models/trends/tags_spec.rb
+++ b/spec/models/trends/tags_spec.rb
@@ -61,10 +61,10 @@ RSpec.describe Trends::Tags do
it 'decays scores' do
subject.refresh(yesterday + 12.hours)
- original_score = subject.score(tag_ocs.id)
+ original_score = TagTrend.find_by(tag: tag_ocs).score
expect(original_score).to eq 144.0
subject.refresh(yesterday + 12.hours + subject.options[:max_score_halflife])
- decayed_score = subject.score(tag_ocs.id)
+ decayed_score = TagTrend.find_by(tag: tag_ocs).score
expect(decayed_score).to be <= original_score / 2
end
end
From 0fcf227a92e41bbbd3185753f1433edc141eae82 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Wed, 4 Dec 2024 10:10:20 -0500
Subject: [PATCH 021/175] Add media attachment description limit to instance
API response (#33153)
---
app/serializers/rest/instance_serializer.rb | 7 ++++---
spec/requests/api/v2/instance_spec.rb | 3 +++
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index 19361277ae..936748707f 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -77,12 +77,13 @@ class REST::InstanceSerializer < ActiveModel::Serializer
},
media_attachments: {
- supported_mime_types: MediaAttachment.supported_mime_types,
- image_size_limit: MediaAttachment::IMAGE_LIMIT,
+ description_limit: MediaAttachment::MAX_DESCRIPTION_LENGTH,
image_matrix_limit: Attachmentable::MAX_MATRIX_LIMIT,
- video_size_limit: MediaAttachment::VIDEO_LIMIT,
+ image_size_limit: MediaAttachment::IMAGE_LIMIT,
+ supported_mime_types: MediaAttachment.supported_mime_types,
video_frame_rate_limit: MediaAttachment::MAX_VIDEO_FRAME_RATE,
video_matrix_limit: MediaAttachment::MAX_VIDEO_MATRIX_LIMIT,
+ video_size_limit: MediaAttachment::VIDEO_LIMIT,
},
polls: {
diff --git a/spec/requests/api/v2/instance_spec.rb b/spec/requests/api/v2/instance_spec.rb
index fae92b7391..bdccfdb626 100644
--- a/spec/requests/api/v2/instance_spec.rb
+++ b/spec/requests/api/v2/instance_spec.rb
@@ -55,6 +55,9 @@ RSpec.describe 'Instances' do
max_characters: StatusLengthValidator::MAX_CHARS,
max_media_attachments: Status::MEDIA_ATTACHMENTS_LIMIT
),
+ media_attachments: include(
+ description_limit: MediaAttachment::MAX_DESCRIPTION_LENGTH
+ ),
polls: include(
max_options: PollValidator::MAX_OPTIONS
)
From 4934242acaa581c2253252d5e7275c1de6f691cb Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Wed, 4 Dec 2024 12:55:56 -0500
Subject: [PATCH 022/175] Update schema/annotations after tag trend db/redis
migrate (#33173)
---
app/models/tag_trend.rb | 8 ++++----
db/schema.rb | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/app/models/tag_trend.rb b/app/models/tag_trend.rb
index 85a9028f21..47e8489603 100644
--- a/app/models/tag_trend.rb
+++ b/app/models/tag_trend.rb
@@ -5,11 +5,11 @@
# Table name: tag_trends
#
# id :bigint(8) not null, primary key
-# tag_id :bigint(8) not null
-# score :float default(0.0), not null
-# rank :integer default(0), not null
# allowed :boolean default(FALSE), not null
-# language :string
+# language :string default(""), not null
+# rank :integer default(0), not null
+# score :float default(0.0), not null
+# tag_id :bigint(8) not null
#
class TagTrend < ApplicationRecord
include RankedTrend
diff --git a/db/schema.rb b/db/schema.rb
index 9130a937ac..e6ee0f55d9 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -1085,7 +1085,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_23_160722) do
t.float "score", default: 0.0, null: false
t.integer "rank", default: 0, null: false
t.boolean "allowed", default: false, null: false
- t.string "language"
+ t.string "language", default: "", null: false
t.index ["tag_id", "language"], name: "index_tag_trends_on_tag_id_and_language", unique: true
end
From b85d7eb7a333c098a2775917dfd8383997eba076 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Thu, 5 Dec 2024 03:48:15 -0500
Subject: [PATCH 023/175] Update `rails-html-sanitizer` to version 1.6.1
(#33177)
---
Gemfile.lock | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index f779ad2b3d..205e485e76 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -632,9 +632,9 @@ GEM
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
- rails-html-sanitizer (1.6.0)
+ rails-html-sanitizer (1.6.1)
loofah (~> 2.21)
- nokogiri (~> 1.14)
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
rails-i18n (7.0.10)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
From 3708039856aea9876598370c816872e47a0471f7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 5 Dec 2024 10:12:08 +0100
Subject: [PATCH 024/175] Update dependency @dnd-kit/core to v6.3.0 (#33181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index c8fb70bb0d..cd59b2fdaf 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1972,8 +1972,8 @@ __metadata:
linkType: hard
"@dnd-kit/core@npm:^6.1.0":
- version: 6.2.0
- resolution: "@dnd-kit/core@npm:6.2.0"
+ version: 6.3.0
+ resolution: "@dnd-kit/core@npm:6.3.0"
dependencies:
"@dnd-kit/accessibility": "npm:^3.1.1"
"@dnd-kit/utilities": "npm:^3.2.2"
@@ -1981,7 +1981,7 @@ __metadata:
peerDependencies:
react: ">=16.8.0"
react-dom: ">=16.8.0"
- checksum: 10c0/478d6bb027441b0e5fa5ecd9a4da8a5876811505147303de1a5a0783a4418c5f7f464bd3eb07b4be77ef7626364d1b905dc2a4f9055093b845cf39e1d6f13b73
+ checksum: 10c0/7b6ebae619921ac27a367b5f168cf66729ab2f5041a5376bb05399cdfd05e03c8fac5d218632ee04fe7c1e049bde9222930c6e8ee1dbb0ca8bde38038f1a1a48
languageName: node
linkType: hard
From d58173e45bf0fdf5a6015d40eb88c313a3d99e5c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 5 Dec 2024 10:12:21 +0100
Subject: [PATCH 025/175] Update dependency @dnd-kit/sortable to v10 (#33183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/package.json b/package.json
index ace714eb55..529ddcabfb 100644
--- a/package.json
+++ b/package.json
@@ -43,7 +43,7 @@
"@babel/preset-typescript": "^7.21.5",
"@babel/runtime": "^7.22.3",
"@dnd-kit/core": "^6.1.0",
- "@dnd-kit/sortable": "^9.0.0",
+ "@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@formatjs/intl-pluralrules": "^5.2.2",
"@gamestdio/websocket": "^0.3.2",
diff --git a/yarn.lock b/yarn.lock
index cd59b2fdaf..6ef07d8520 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1985,16 +1985,16 @@ __metadata:
languageName: node
linkType: hard
-"@dnd-kit/sortable@npm:^9.0.0":
- version: 9.0.0
- resolution: "@dnd-kit/sortable@npm:9.0.0"
+"@dnd-kit/sortable@npm:^10.0.0":
+ version: 10.0.0
+ resolution: "@dnd-kit/sortable@npm:10.0.0"
dependencies:
"@dnd-kit/utilities": "npm:^3.2.2"
tslib: "npm:^2.0.0"
peerDependencies:
- "@dnd-kit/core": ^6.2.0
+ "@dnd-kit/core": ^6.3.0
react: ">=16.8.0"
- checksum: 10c0/30566ec05371bd59729c0fb87537d78cd1760f08e4b49b5fa8298ebd3cb9f29fc258a48425c6a060b9efeca88e36a059000e770d630681986626abcc3589e97a
+ checksum: 10c0/37ee48bc6789fb512dc0e4c374a96d19abe5b2b76dc34856a5883aaa96c3297891b94cc77bbc409e074dcce70967ebcb9feb40cd9abadb8716fc280b4c7f99af
languageName: node
linkType: hard
@@ -2824,7 +2824,7 @@ __metadata:
"@babel/preset-typescript": "npm:^7.21.5"
"@babel/runtime": "npm:^7.22.3"
"@dnd-kit/core": "npm:^6.1.0"
- "@dnd-kit/sortable": "npm:^9.0.0"
+ "@dnd-kit/sortable": "npm:^10.0.0"
"@dnd-kit/utilities": "npm:^3.2.2"
"@formatjs/cli": "npm:^6.1.1"
"@formatjs/intl-pluralrules": "npm:^5.2.2"
From f57c82ed35bb361d412d11429cf7d06877475a61 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 5 Dec 2024 10:36:25 +0100
Subject: [PATCH 026/175] Update opentelemetry-ruby (non-major) (#33180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
Gemfile.lock | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 205e485e76..cca550e8bd 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -466,7 +466,7 @@ GEM
opentelemetry-api (1.4.0)
opentelemetry-common (0.21.0)
opentelemetry-api (~> 1.0)
- opentelemetry-exporter-otlp (0.29.0)
+ opentelemetry-exporter-otlp (0.29.1)
google-protobuf (>= 3.18)
googleapis-common-protos-types (~> 1.3)
opentelemetry-api (~> 1.1)
@@ -490,8 +490,9 @@ GEM
opentelemetry-instrumentation-active_job (0.7.8)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
- opentelemetry-instrumentation-active_model_serializers (0.20.2)
+ opentelemetry-instrumentation-active_model_serializers (0.20.3)
opentelemetry-api (~> 1.0)
+ opentelemetry-instrumentation-active_support (>= 0.6.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-active_record (0.8.1)
opentelemetry-api (~> 1.0)
@@ -545,7 +546,7 @@ GEM
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-registry (0.3.1)
opentelemetry-api (~> 1.1)
- opentelemetry-sdk (1.5.0)
+ opentelemetry-sdk (1.6.0)
opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.20)
opentelemetry-registry (~> 0.2)
From f9dc7842de049e4c8a9dc5f2875926ff0b9d1fb5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 5 Dec 2024 10:36:49 +0100
Subject: [PATCH 027/175] Update dependency browser to v6.2.0 (#33182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index cca550e8bd..8cbceae214 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -128,7 +128,7 @@ GEM
msgpack (~> 1.2)
brakeman (6.2.2)
racc
- browser (6.1.0)
+ browser (6.2.0)
brpoplpush-redis_script (0.1.3)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (>= 1.0, < 6)
From 8b223f3b15c524216bd9e534105e60eacc36da52 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 5 Dec 2024 09:37:49 +0000
Subject: [PATCH 028/175] New Crowdin Translations (automated) (#33185)
Co-authored-by: GitHub Actions
Co-authored-by: Claire
---
app/javascript/mastodon/locales/ca.json | 2 +-
app/javascript/mastodon/locales/da.json | 2 +-
app/javascript/mastodon/locales/es-AR.json | 2 +-
app/javascript/mastodon/locales/es.json | 2 +-
app/javascript/mastodon/locales/it.json | 4 +
app/javascript/mastodon/locales/ko.json | 2 +-
app/javascript/mastodon/locales/lv.json | 2 +-
app/javascript/mastodon/locales/ru.json | 87 ++++++------
app/javascript/mastodon/locales/uk.json | 3 +
app/javascript/mastodon/locales/zh-CN.json | 44 +++---
config/locales/activerecord.it.yml | 5 +
config/locales/an.yml | 1 -
config/locales/ar.yml | 1 -
config/locales/be.yml | 1 -
config/locales/bg.yml | 3 +-
config/locales/ca.yml | 2 +-
config/locales/ckb.yml | 1 -
config/locales/co.yml | 1 -
config/locales/cs.yml | 1 -
config/locales/cy.yml | 1 -
config/locales/da.yml | 2 +-
config/locales/de.yml | 2 +-
config/locales/doorkeeper.zh-CN.yml | 14 +-
config/locales/el.yml | 38 +++++-
config/locales/en-GB.yml | 1 -
config/locales/eo.yml | 1 -
config/locales/es-AR.yml | 2 +-
config/locales/es-MX.yml | 42 +++---
config/locales/es.yml | 2 +-
config/locales/et.yml | 1 -
config/locales/eu.yml | 1 -
config/locales/fa.yml | 1 -
config/locales/fi.yml | 2 +-
config/locales/fo.yml | 2 +-
config/locales/fr-CA.yml | 1 -
config/locales/fr.yml | 1 -
config/locales/fy.yml | 1 -
config/locales/ga.yml | 1 -
config/locales/gd.yml | 1 -
config/locales/gl.yml | 2 +-
config/locales/he.yml | 1 -
config/locales/hu.yml | 2 +-
config/locales/hy.yml | 2 -
config/locales/ia.yml | 1 -
config/locales/id.yml | 1 -
config/locales/ie.yml | 1 -
config/locales/io.yml | 1 -
config/locales/is.yml | 2 +-
config/locales/it.yml | 2 +-
config/locales/ja.yml | 3 +-
config/locales/kk.yml | 1 -
config/locales/ko.yml | 2 +-
config/locales/ku.yml | 1 -
config/locales/lad.yml | 1 -
config/locales/lt.yml | 1 -
config/locales/lv.yml | 1 -
config/locales/ms.yml | 1 -
config/locales/my.yml | 1 -
config/locales/nl.yml | 2 +-
config/locales/nn.yml | 1 -
config/locales/no.yml | 1 -
config/locales/oc.yml | 1 -
config/locales/pl.yml | 1 -
config/locales/pt-BR.yml | 2 +-
config/locales/pt-PT.yml | 1 -
config/locales/ro.yml | 1 -
config/locales/ru.yml | 4 +-
config/locales/sc.yml | 1 -
config/locales/sco.yml | 1 -
config/locales/si.yml | 2 -
config/locales/simple_form.el.yml | 5 +
config/locales/simple_form.es-MX.yml | 4 +-
config/locales/simple_form.it.yml | 2 +
config/locales/simple_form.pl.yml | 2 +
config/locales/simple_form.ru.yml | 2 +
config/locales/simple_form.zh-CN.yml | 18 +--
config/locales/sk.yml | 1 -
config/locales/sl.yml | 1 -
config/locales/sq.yml | 2 +-
config/locales/sr-Latn.yml | 1 -
config/locales/sr.yml | 1 -
config/locales/sv.yml | 1 -
config/locales/th.yml | 1 -
config/locales/tr.yml | 2 +-
config/locales/uk.yml | 2 +-
config/locales/vi.yml | 2 +-
config/locales/zh-CN.yml | 148 ++++++++++-----------
config/locales/zh-HK.yml | 1 -
config/locales/zh-TW.yml | 2 +-
89 files changed, 271 insertions(+), 255 deletions(-)
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index b2fb8726f3..b6344c45e8 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -103,7 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "l'etiqueta més utilitzada",
"annual_report.summary.most_used_hashtag.none": "Cap",
"annual_report.summary.new_posts.new_posts": "publicacions noves",
- "annual_report.summary.percentile.text": "Que us posa en elmés alt dels usuaris de {domain}.",
+ "annual_report.summary.percentile.text": "Que us posa alcapdamunt dels usuaris de {domain}.",
"annual_report.summary.percentile.we_wont_tell_bernie": "No li ho direm al Bernie.",
"annual_report.summary.thanks": "Gràcies per formar part de Mastodon!",
"attachments_list.unprocessed": "(sense processar)",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index e489dd2302..adf7c8386a 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -247,7 +247,7 @@
"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": "Vedkommende ser ikke den aktive blokering.",
+ "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_relationships": "Alle følgere og personer som følges på denne server mistes.",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 624e9c3639..d8c97028e4 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -241,7 +241,7 @@
"dismissable_banner.dismiss": "Descartar",
"dismissable_banner.explore_links": "Estas noticias son las más compartidas hoy en el fediverso. Las noticias más recientes publicadas por más personas diferentes se clasifican mejor.",
"dismissable_banner.explore_statuses": "Estas publicaciones del fediverso están ganando popularidad hoy. Las publicaciones más recientes, con más impulsos y favoritos, se clasifican mejor.",
- "dismissable_banner.explore_tags": "Estas etiquetas están ganando popularidad hoy en el fediverso. Las etiquetas que son utilizados por más personas diferentes se puntúan más alto.",
+ "dismissable_banner.explore_tags": "Estas etiquetas están ganando popularidad hoy en el fediverso. Las etiquetas que son utilizadas por más personas diferentes se puntúan más alto.",
"dismissable_banner.public_timeline": "Estas son las publicaciones más recientes de las personas del fediverso a las que sigue la gente de {domain}.",
"domain_block_modal.block": "Bloquear servidor",
"domain_block_modal.block_account_instead": "Bloquear @{name} en su lugar",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 9b6f63d1d9..37a88c979b 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -241,7 +241,7 @@
"dismissable_banner.dismiss": "Descartar",
"dismissable_banner.explore_links": "Estas noticias son las más compartidas hoy en el fediverso. Las noticias más recientes publicadas por más personas diferentes se clasifican mejor.",
"dismissable_banner.explore_statuses": "Estas publicaciones del fediverso están ganando popularidad hoy. Las publicaciones más recientes, con más impulsos y favoritos, se clasifican mejor.",
- "dismissable_banner.explore_tags": "Estas etiquetas están ganando popularidad hoy en el fediverso. Las etiquetas que son utilizados por más personas diferentes se puntúan más alto.",
+ "dismissable_banner.explore_tags": "Estas etiquetas están ganando popularidad hoy en el fediverso. Las etiquetas que son utilizadas por más personas diferentes se puntúan más alto.",
"dismissable_banner.public_timeline": "Estas son las publicaciones más recientes de las personas del fediverso a las que sigue la gente de {domain}.",
"domain_block_modal.block": "Bloquear servidor",
"domain_block_modal.block_account_instead": "Bloquear @{name} en su lugar",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index e02a0c115f..5b4ad99565 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -240,7 +240,9 @@
"dismissable_banner.community_timeline": "Questi sono i post pubblici più recenti da persone i cui profili sono ospitati da {domain}.",
"dismissable_banner.dismiss": "Ignora",
"dismissable_banner.explore_links": "Queste notizie sono le più condivise sul fediverso, oggi. Le notizie più recenti pubblicate da più persone differenti sono classificate più in alto.",
+ "dismissable_banner.explore_statuses": "Questi post provenienti da tutto il fediverso stanno guadagnando terreno oggi. I post più recenti con più condivisioni e gradimenti sono classificati più in alto.",
"dismissable_banner.explore_tags": "Questi hashtag stanno guadagnando terreno nel fediverso, oggi. Gli hashtag che vengono usati da più persone differenti sono classificati più in alto.",
+ "dismissable_banner.public_timeline": "Questi sono i post pubblici più recenti pubblicati dalle persone sul fediverso che sono seguite dagli utenti su {domain}.",
"domain_block_modal.block": "Blocca il server",
"domain_block_modal.block_account_instead": "Blocca invece @{name}",
"domain_block_modal.they_can_interact_with_old_posts": "Le persone da questo server possono interagire con i tuoi vecchi post.",
@@ -364,6 +366,7 @@
"footer.status": "Stato",
"generic.saved": "Salvato",
"getting_started.heading": "Per iniziare",
+ "hashtag.admin_moderation": "Apri l'interfaccia di moderazione per #{name}",
"hashtag.column_header.tag_mode.all": "e {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "senza {additional}",
@@ -493,6 +496,7 @@
"lists.replies_policy.list": "Membri dell'elenco",
"lists.replies_policy.none": "Nessuno",
"lists.save": "Salva",
+ "lists.search": "Cerca",
"lists.show_replies_to": "Includi le risposte dei membri della lista a",
"load_pending": "{count, plural, one {# nuovo oggetto} other {# nuovi oggetti}}",
"loading_indicator.label": "Caricamento…",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 179b2a4773..87c2b38ec6 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -104,7 +104,7 @@
"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.percentile.we_wont_tell_bernie": "종부세는 안 걷을게요",
"annual_report.summary.thanks": "마스토돈과 함께 해주셔서 감사합니다!",
"attachments_list.unprocessed": "(처리 안 됨)",
"audio.hide": "소리 숨기기",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 8abc2de9e4..bb6e3610e8 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -161,7 +161,7 @@
"community.column_settings.remote_only": "Tikai attālinātie",
"compose.language.change": "Mainīt valodu",
"compose.language.search": "Meklēt valodas...",
- "compose.published.body": "Ieraksts publicēta.",
+ "compose.published.body": "Ieraksts izveidots.",
"compose.published.open": "Atvērt",
"compose.saved.body": "Ziņa saglabāta.",
"compose_form.direct_message_warning_learn_more": "Uzzināt vairāk",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 8f5d73de0b..898c156d13 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -96,25 +96,26 @@
"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_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": "Спасибо за то, что были вместе с Mastodon!",
"attachments_list.unprocessed": "(не обработан)",
"audio.hide": "Скрыть аудио",
- "block_modal.remote_users_caveat": "Мы попросим сервер {domain} уважать ваше решение. Однако, соблюдение требований не гарантировано, поскольку некоторые серверы могут работать с блокировками по-разному. Публичные записи по-прежнему могут быть видны неавторизованным пользователям.",
+ "block_modal.remote_users_caveat": "Мы попросим сервер {domain} уважать ваше решение, однако соблюдение им блокировки не гарантировано, поскольку некоторые серверы могут по-разному обрабатывать запросы. Публичные посты по-прежнему могут быть видны неавторизованным пользователям.",
"block_modal.show_less": "Показать меньше",
"block_modal.show_more": "Показать больше",
- "block_modal.they_cant_mention": "Он не может упоминать или подписываться на вас.",
- "block_modal.they_cant_see_posts": "Он не может видеть ваши сообщения, и вы не увидите его.",
- "block_modal.they_will_know": "Он может видеть, что он заблокирован.",
+ "block_modal.they_cant_mention": "Он не сможет упоминать вас или подписаться на вас.",
+ "block_modal.they_cant_see_posts": "Он не сможет видеть ваши посты, а вы не будете видеть его посты.",
+ "block_modal.they_will_know": "Он будет знать, что вы его блокируете.",
"block_modal.title": "Заблокировать пользователя?",
- "block_modal.you_wont_see_mentions": "Вы не увидите записи, которые упоминают его.",
+ "block_modal.you_wont_see_mentions": "Вы не увидите посты, которые его упоминают.",
"boost_modal.combo": "{combo}, чтобы пропустить это в следующий раз",
"boost_modal.reblog": "Продвинуть пост?",
"boost_modal.undo_reblog": "Убрать продвижение?",
@@ -148,7 +149,7 @@
"column.firehose": "Живая лента",
"column.follow_requests": "Запросы на подписку",
"column.home": "Главная",
- "column.list_members": "Управление участниками списка",
+ "column.list_members": "Управление пользователями в списке",
"column.lists": "Списки",
"column.mutes": "Игнорируемые пользователи",
"column.notifications": "Уведомления",
@@ -204,6 +205,9 @@
"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": "Выйти?",
@@ -240,27 +244,27 @@
"dismissable_banner.explore_tags": "Эти хэштеги привлекают людей на этом и других серверах децентрализованной сети прямо сейчас.",
"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.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, one {{followersCountDisplay} подписчика} other {{followersCountDisplay} подписчиков}} и {followingCount, plural, one {{followingCountDisplay} подписку} other {{followingCountDisplay} подписок}}.",
- "domain_block_modal.you_will_lose_relationships": "Вы потеряете всех подписчиков и людей, на которых вы подписаны, на этом сервере.",
- "domain_block_modal.you_wont_see_posts": "Вы не будете видеть записи или уведомления от пользователей на этом сервере.",
- "domain_pill.activitypub_lets_connect": "Это позволяет вам общаться и взаимодействовать с людьми не только на Mastodon, но и в различных социальных приложениях.",
- "domain_pill.activitypub_like_language": "ActivityPub как язык Mastodon говорит с другими социальными сетями.",
+ "domain_block_modal.you_will_lose_num_followers": "Вы потеряете {followersCount, plural, one {{followersCountDisplay} подписчика} few {{followersCountDisplay} подписчика} other {{followersCountDisplay} подписчиков}} и {followingCount, plural, one {{followingCountDisplay} подписку} few {{followingCountDisplay} подписки} other {{followingCountDisplay} подписок}}.",
+ "domain_block_modal.you_will_lose_relationships": "Вы потеряете все подписки и всех подписчиков с этого сервера.",
+ "domain_block_modal.you_wont_see_posts": "Вы не будете видеть посты или уведомления от пользователей с этого сервера.",
+ "domain_pill.activitypub_lets_connect": "Благодаря ему вы можете связываться и взаимодействовать не только с пользователями Mastodon, но и с пользователями других платформ.",
+ "domain_pill.activitypub_like_language": "ActivityPub это язык, на котором Mastodon говорит с другими социальными сетями.",
"domain_pill.server": "Сервер",
- "domain_pill.their_handle": "Его бейдж:",
- "domain_pill.their_server": "Цифровой дом, где находятся все записи.",
- "domain_pill.their_username": "Уникальный идентификатор на сервере. Возможно найти пользователей с одним и тем же именем пользователя на разных серверах.",
+ "domain_pill.their_handle": "Адрес пользователя:",
+ "domain_pill.their_server": "Цифровой дом пользователя, где находятся все его посты.",
+ "domain_pill.their_username": "Уникальный идентификатор пользователя на его сервере. На разных серверах могут встречаться люди с тем же именем пользователя.",
"domain_pill.username": "Имя пользователя",
- "domain_pill.whats_in_a_handle": "Что такое бейдж?",
- "domain_pill.who_they_are": "Поскольку бейджи говорят о том, кто и где находится, вы можете взаимодействовать с людьми в социальной сети .",
- "domain_pill.who_you_are": "Поскольку ваш бейдж говорит о том, кто вы и где находитесь, люди могут взаимодействовать с вами через социальную сеть .",
- "domain_pill.your_handle": "Ваш бейдж:",
- "domain_pill.your_server": "Сервер, где живут все ваши посты. Этот не нравится? Поменяй сервер в любое время вместе со своими подписчиками.",
- "domain_pill.your_username": "Ваш уникальный идентификатор на этом сервере. Вы можете найти пользователей с одним именем пользователя на разных серверах.",
+ "domain_pill.whats_in_a_handle": "Что это значит?",
+ "domain_pill.who_they_are": "Поскольку адрес позволяет однозначно определить, кто и где находится, вы можете взаимодействовать с пользователями социальной сети .",
+ "domain_pill.who_you_are": "Поскольку ваш адрес позволяет однозначно определить, кто вы и где находитесь, пользователи социальной сети могут взаимодействовать с вами.",
+ "domain_pill.your_handle": "Ваш адрес:",
+ "domain_pill.your_server": "Ваш цифровой дом, где находятся все ваши посты. Если вам не нравится этот сервер, вы можете в любое время перенести свою учётную запись на другой сервер, не теряя подписчиков.",
+ "domain_pill.your_username": "Ваш уникальный идентификатор на этом сервере. На разных серверах могут встречаться люди с тем же именем пользователя.",
"embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:",
"embed.preview": "Так это будет выглядеть:",
"emoji_button.activity": "Занятия",
@@ -480,32 +484,33 @@
"lists.exclusive": "Не показывать участников в домашней ленте",
"lists.exclusive_hint": "Если кто-то есть в этом списке, скрыть его в домашней ленте, чтобы не видеть его посты дважды.",
"lists.find_users_to_add": "Найти пользователей для добавления",
- "lists.list_members": "Участники списка",
- "lists.list_members_count": "{count, plural, one {# участник} few {# участника} other {# участников}}",
+ "lists.list_members": "Пользователи в списке",
+ "lists.list_members_count": "{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}",
"lists.list_name": "Название списка",
"lists.new_list_name": "Новое имя списка",
"lists.no_lists_yet": "Пока нет списков.",
- "lists.no_members_yet": "Пока нет участников.",
+ "lists.no_members_yet": "Пока нет пользователей в списке.",
"lists.no_results_found": "Не найдено.",
"lists.remove_member": "Удалить",
- "lists.replies_policy.followed": "Пользователи, на которых вы подписаны",
- "lists.replies_policy.list": "Пользователи в списке",
+ "lists.replies_policy.followed": "Все пользователи, на которых вы подписаны",
+ "lists.replies_policy.list": "Другие пользователи в списке",
"lists.replies_policy.none": "Никого",
"lists.save": "Сохранить",
- "lists.show_replies_to": "Показывать ответы участников списка на посты",
+ "lists.search": "Поиск",
+ "lists.show_replies_to": "Показывать ответы пользователей в списке на посты",
"load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}",
"loading_indicator.label": "Загрузка…",
"media_gallery.hide": "Скрыть",
"moved_to_account_banner.text": "Ваша учетная запись {disabledAccount} в настоящее время заморожена, потому что вы переехали на {movedToAccount}.",
"mute_modal.hide_from_notifications": "Скрыть из уведомлений",
- "mute_modal.hide_options": "Скрыть параметры",
- "mute_modal.indefinite": "Пока я не разблокирую их",
+ "mute_modal.hide_options": "Скрыть опции",
+ "mute_modal.indefinite": "Бессрочно",
"mute_modal.show_options": "Показать опции",
- "mute_modal.they_can_mention_and_follow": "Они могут упоминать и следить за вами, но вы не будете их видеть.",
- "mute_modal.they_wont_know": "Они не будут знать, что их заглушили.",
- "mute_modal.title": "Заглушить пользователя?",
- "mute_modal.you_wont_see_mentions": "Вы не увидите постов, которые их упоминают.",
- "mute_modal.you_wont_see_posts": "Они по-прежнему смогут видеть ваши посты, но вы не сможете видеть их посты.",
+ "mute_modal.they_can_mention_and_follow": "Он сможет упоминать вас и подписаться на вас, но вы этого не увидите.",
+ "mute_modal.they_wont_know": "Он не будет знать, что вы его игнорируете.",
+ "mute_modal.title": "Игнорировать пользователя?",
+ "mute_modal.you_wont_see_mentions": "Вы не увидите посты, которые его упоминают.",
+ "mute_modal.you_wont_see_posts": "Он по-прежнему сможет видеть ваши посты, но вы не будете видеть его посты.",
"navigation_bar.about": "О проекте",
"navigation_bar.administration": "Администрирование",
"navigation_bar.advanced_interface": "Открыть в многоколоночном интерфейсе",
@@ -806,11 +811,11 @@
"status.edit": "Изменить",
"status.edited": "Дата последнего изменения: {date}",
"status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}",
- "status.embed": "Получить код для встраивания",
+ "status.embed": "Встроить на свой сайт",
"status.favourite": "Добавить в избранное",
"status.favourites": "{count, plural, other {в избранном}}",
"status.filter": "Фильтровать этот пост",
- "status.history.created": "{name} создал {date}",
+ "status.history.created": "{name} создал(а) {date}",
"status.history.edited": "{name} отредактировал(а) {date}",
"status.load_more": "Загрузить остальное",
"status.media.open": "Нажмите, чтобы открыть.",
@@ -827,7 +832,7 @@
"status.reblog": "Продвинуть",
"status.reblog_private": "Продвинуть для своей аудитории",
"status.reblogged_by": "{name} продвинул(а)",
- "status.reblogs": "{count, plural, one {boost} few {boosts} many {boosts} other {boosts}}",
+ "status.reblogs": "{count, plural, one {продвижение} few {продвижения} other {продвижений}}",
"status.reblogs.empty": "Никто ещё не продвинул этот пост. Как только кто-то это сделает, они появятся здесь.",
"status.redraft": "Создать заново",
"status.remove_bookmark": "Убрать из закладок",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 6324360c15..b96230d3e4 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -204,6 +204,8 @@
"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": "Вийти?",
@@ -469,6 +471,7 @@
"lists.replies_policy.followed": "Будь-який відстежуваний користувач",
"lists.replies_policy.list": "Учасники списку",
"lists.replies_policy.none": "Ніхто",
+ "lists.search": "Пошук",
"load_pending": "{count, plural, one {# новий елемент} other {# нових елементів}}",
"loading_indicator.label": "Завантаження…",
"media_gallery.hide": "Сховати",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 3a05f8c23d..0634b3a498 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -78,8 +78,8 @@
"admin.dashboard.retention.cohort": "注册月份",
"admin.dashboard.retention.cohort_size": "新用户",
"admin.impact_report.instance_accounts": "将被删除的账户",
- "admin.impact_report.instance_followers": "本实例用户即将丢失的关注者",
- "admin.impact_report.instance_follows": "对方实例用户将会丢失的关注者",
+ "admin.impact_report.instance_followers": "本站用户即将丢失的关注者",
+ "admin.impact_report.instance_follows": "对方站点用户即将丢失的关注者",
"admin.impact_report.title": "影响摘要",
"alert.rate_limited.message": "请在 {retry_time, time, medium} 后重试。",
"alert.rate_limited.title": "频率受限",
@@ -108,7 +108,7 @@
"annual_report.summary.thanks": "谢谢你这一年和 Mastodon 上的大家一起嘟嘟!",
"attachments_list.unprocessed": "(未处理)",
"audio.hide": "隐藏音频",
- "block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重你的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。",
+ "block_modal.remote_users_caveat": "我们将要求站点 {domain} 尊重你的决定。然而,我们无法保证对方一定遵从,因为某些站点可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录用户可见。",
"block_modal.show_less": "隐藏",
"block_modal.show_more": "显示更多",
"block_modal.they_cant_mention": "他们不能提及或关注你。",
@@ -174,7 +174,7 @@
"compose.saved.body": "嘟文已保存。",
"compose_form.direct_message_warning_learn_more": "详细了解",
"compose_form.encryption_warning": "Mastodon 上的嘟文未经端到端加密。请勿在 Mastodon 上分享敏感信息。",
- "compose_form.hashtag_warning": "这条嘟文被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开的嘟文才能通过话题标签进行搜索。",
+ "compose_form.hashtag_warning": "这条嘟文被设置为“不公开”,因此它不会出现在任何话题的列表下。只有公开的嘟文才能通过话题进行搜索。",
"compose_form.lock_disclaimer": "你的账户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。",
"compose_form.lock_disclaimer.lock": "锁嘟",
"compose_form.placeholder": "想写什么?",
@@ -245,13 +245,13 @@
"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_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, other {{followersCountDisplay} 名关注者}}和 {followingCount, plural, other {{followingCountDisplay} 名关注}}。",
- "domain_block_modal.you_will_lose_relationships": "你将失去在此实例上的所有关注和关注者。",
- "domain_block_modal.you_wont_see_posts": "你将不会看到此服务器上用户的嘟文或通知。",
+ "domain_block_modal.you_will_lose_relationships": "你将丢失该站点上的所有关注与关注者。",
+ "domain_block_modal.you_wont_see_posts": "你将不会看到该站点用户的嘟文或通知。",
"domain_pill.activitypub_lets_connect": "它可以让你与不同社交应用上的人交流互动,而不仅限于 Mastodon。",
"domain_pill.activitypub_like_language": "ActivityPub 好比 Mastodon 与其它社交网络交流时使用的语言。",
"domain_pill.server": "服务器",
@@ -295,8 +295,8 @@
"empty_column.favourited_statuses": "你没有喜欢过任何嘟文。喜欢过的嘟文会显示在这里。",
"empty_column.favourites": "没有人喜欢过这条嘟文。如果有人喜欢了,就会显示在这里。",
"empty_column.follow_requests": "你还没有收到任何关注请求。当你收到一个关注请求时,它会出现在这里。",
- "empty_column.followed_tags": "你还没有关注任何话题标签。 当你关注后,它们会出现在这里。",
- "empty_column.hashtag": "这个话题标签下暂时没有内容。",
+ "empty_column.followed_tags": "你还没有关注任何话题。 当你关注后,它们会出现在这里。",
+ "empty_column.hashtag": "该话题下暂无内容。",
"empty_column.home": "你的主页时间线还没有内容!快去关注更多人吧。",
"empty_column.list": "列表中还没有任何内容。当列表成员发布新嘟文时,它们将出现在这里。",
"empty_column.mutes": "你没有隐藏任何用户。",
@@ -314,7 +314,7 @@
"explore.title": "探索",
"explore.trending_links": "新闻",
"explore.trending_statuses": "嘟文",
- "explore.trending_tags": "话题标签",
+ "explore.trending_tags": "话题",
"filter_modal.added.context_mismatch_explanation": "这条过滤规则不适用于你当前访问此嘟文的场景。要在此场景下过滤嘟文,你必须编辑此过滤规则。",
"filter_modal.added.context_mismatch_title": "场景不匹配!",
"filter_modal.added.expired_explanation": "此过滤规则类别已过期,你需要修改到期日期才能应用。",
@@ -355,7 +355,7 @@
"follow_suggestions.similar_to_recently_followed_longer": "与你近期关注的用户相似",
"follow_suggestions.view_all": "查看全部",
"follow_suggestions.who_to_follow": "推荐关注",
- "followed_tags": "已关注话题标签",
+ "followed_tags": "已关注话题",
"footer.about": "关于",
"footer.directory": "用户列表",
"footer.get_app": "获取应用",
@@ -371,7 +371,7 @@
"hashtag.column_header.tag_mode.any": "或是 {additional}",
"hashtag.column_header.tag_mode.none": "而不用 {additional}",
"hashtag.column_settings.select.no_options_message": "未找到建议",
- "hashtag.column_settings.select.placeholder": "输入话题标签…",
+ "hashtag.column_settings.select.placeholder": "输入话题…",
"hashtag.column_settings.tag_mode.all": "全部",
"hashtag.column_settings.tag_mode.any": "任一",
"hashtag.column_settings.tag_mode.none": "无一",
@@ -379,8 +379,8 @@
"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.follow": "关注话题标签",
- "hashtag.unfollow": "取消关注话题标签",
+ "hashtag.follow": "关注话题",
+ "hashtag.unfollow": "取消关注话题",
"hashtags.and_other": "… 和另外 {count, plural, other {# 个话题}}",
"hints.profiles.followers_may_be_missing": "该账户的关注者列表可能没有完全显示。",
"hints.profiles.follows_may_be_missing": "该账户的关注列表可能没有完全显示。",
@@ -414,7 +414,7 @@
"interaction_modal.description.reply": "只需一个 Mastodon 账号,即可回复此嘟文。",
"interaction_modal.description.vote": "只需一个 Mastodon 账号,即可参与此投票。",
"interaction_modal.login.action": "转到主页",
- "interaction_modal.login.prompt": "你所入驻的服务器域名,如:mastodon.social",
+ "interaction_modal.login.prompt": "你所入驻的站点域名,如:mastodon.social",
"interaction_modal.no_account_yet": "还没加入 Mastodon?",
"interaction_modal.on_another_server": "在另一服务器",
"interaction_modal.on_this_server": "在此服务器",
@@ -525,7 +525,7 @@
"navigation_bar.favourites": "喜欢",
"navigation_bar.filters": "忽略的关键词",
"navigation_bar.follow_requests": "关注请求",
- "navigation_bar.followed_tags": "关注的话题标签",
+ "navigation_bar.followed_tags": "关注的话题",
"navigation_bar.follows_and_followers": "关注与关注者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "退出登录",
@@ -664,7 +664,7 @@
"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": "上传头像",
@@ -689,7 +689,7 @@
"privacy.private.short": "关注者",
"privacy.public.long": "所有 Mastodon 内外的人",
"privacy.public.short": "公开",
- "privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题标签、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。",
+ "privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。",
"privacy.unlisted.long": "减少算法影响",
"privacy.unlisted.short": "悄悄公开",
"privacy_policy.last_updated": "最近更新于 {date}",
@@ -766,7 +766,7 @@
"search.placeholder": "搜索",
"search.quick_action.account_search": "包含 {x} 的账户",
"search.quick_action.go_to_account": "打开 {x} 的账户页",
- "search.quick_action.go_to_hashtag": "打开话题标签 {x}",
+ "search.quick_action.go_to_hashtag": "打开话题 {x}",
"search.quick_action.open_url": "在 Mastodon 中打开此链接",
"search.quick_action.status_search": "包含 {x} 的嘟文",
"search.search_or_paste": "搜索或输入网址",
@@ -780,7 +780,7 @@
"search_popout.user": "用户",
"search_results.accounts": "用户",
"search_results.all": "全部",
- "search_results.hashtags": "话题标签",
+ "search_results.hashtags": "话题",
"search_results.nothing_found": "无法找到符合这些搜索词的任何内容",
"search_results.see_all": "查看全部",
"search_results.statuses": "嘟文",
@@ -788,7 +788,7 @@
"server_banner.about_active_users": "过去 30 天内使用此服务器的人(月活跃用户)",
"server_banner.active_users": "活跃用户",
"server_banner.administered_by": "本站管理员:",
- "server_banner.is_one_of_many": "{domain} 是可用于参与联邦宇宙的众多独立 Mastodon 服务器之一。",
+ "server_banner.is_one_of_many": "{domain} 是可用于参与联邦宇宙的众多独立 Mastodon 站点之一。",
"server_banner.server_stats": "服务器统计数据:",
"sign_in_banner.create_account": "创建账户",
"sign_in_banner.follow_anyone": "关注联邦宇宙中的任何人,并按时间顺序查看所有内容。没有算法、广告或诱导链接。",
diff --git a/config/locales/activerecord.it.yml b/config/locales/activerecord.it.yml
index 3d5be6c258..3e8897577a 100644
--- a/config/locales/activerecord.it.yml
+++ b/config/locales/activerecord.it.yml
@@ -39,6 +39,11 @@ it:
attributes:
data:
malformed: è malformato
+ list_account:
+ attributes:
+ account_id:
+ taken: è già nella lista
+ must_be_following: deve essere un account seguito
status:
attributes:
reblog:
diff --git a/config/locales/an.yml b/config/locales/an.yml
index f941651438..49033dc48e 100644
--- a/config/locales/an.yml
+++ b/config/locales/an.yml
@@ -1322,7 +1322,6 @@ an:
scheduled_statuses:
over_daily_limit: Ha superau lo limite de %{limit} publicacions programadas pa ixe día
over_total_limit: Ha superau lo limite de %{limit} publicacions programadas
- too_soon: La calendata programada ha d'estar en o futuro
sessions:
activity: Zaguera actividat
browser: Navegador
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 832f60795f..a3f6675952 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1644,7 +1644,6 @@ ar:
scheduled_statuses:
over_daily_limit: لقد تجاوزتَ حد الـ %{limit} منشورات مُبَرمَجة مسموح بها اليوم
over_total_limit: لقد بلغت حد الـ %{limit} مِن المنشورات المبرمَجة
- too_soon: يجب أن يكون تاريخ البرمجة في المستقبَل
self_destruct:
lead_html: للأسف، سيتم إغلاق %{domain} بشكل دائم. إذا كان لديك حساب هناك، لن تكون قادرًا على الاستمرار في استخدامه، غير أنه يمكنك طلب نسخة احتياطية لبياناتك.
title: سيُغلق هذا الخادم أبوابه
diff --git a/config/locales/be.yml b/config/locales/be.yml
index c97547b8b9..7ce89d9935 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -1647,7 +1647,6 @@ be:
scheduled_statuses:
over_daily_limit: Вы перавысілі ліміт ў %{limit} запланаваных на сёння допісаў
over_total_limit: Вы перавысілі ліміт ў %{limit} запланаваных допісаў
- too_soon: Запланаваная дата мусіць быць у будучыні
self_destruct:
lead_html: На жаль, дамен %{domain} зачыняецца назаўсёды. Калі ў вас быў уліковы запіс, вы не зможаце працягваць выкарыстоўваць яго, але вы ўсё яшчэ можаце запытаць рэзервовае капіраванне вашых даных.
title: Гэты сервер зачыняецца
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index fcadcb0f01..bfb9cc3b00 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -202,6 +202,7 @@ bg:
destroy_user_role: Унищожаване на роля
disable_2fa_user: Изкл. на 2факт.удостов.
disable_custom_emoji: Деактивиране на персонализирано емоджи
+ disable_sign_in_token_auth_user: Изключване на удостоверяването с код по имейл за потребител
disable_user: Изключване на потребител
enable_custom_emoji: Включване на персонализирано емоджи
enable_user: Активиране на потребител
@@ -1623,7 +1624,7 @@ bg:
scheduled_statuses:
over_daily_limit: Завишили сте ограничението от %{limit} планирани публикации за днес
over_total_limit: Завишили сте ограничението от %{limit} планирани публикации
- too_soon: Заплануваната дата трябва да е в бъдеще
+ too_soon: датата трябва да е в бъдеще
self_destruct:
lead_html: За жалост, %{domain} е трайно затворен. Ако сте имали там акаунт, то няма да може да продължите да го употребявате, но още може да заявите резервно копие на данните си.
title: Този сървър се затваря
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 28caa1d1fc..07fcd8632c 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -1638,7 +1638,7 @@ ca:
scheduled_statuses:
over_daily_limit: Has superat el límit de %{limit} tuts programats per a avui
over_total_limit: Has superat el límit de %{limit} tuts programats
- too_soon: La data programada ha de ser futura
+ too_soon: la data ha de ser al futur
self_destruct:
lead_html: Lamentablement, %{domain} tanca de forma definitiva. Si hi teníeu un compte, no el podreu continuar utilitzant, però podeu demanar una còpia de les vostres dades.
title: Aquest servidor tancarà
diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml
index cfee624e36..0f2a5ed364 100644
--- a/config/locales/ckb.yml
+++ b/config/locales/ckb.yml
@@ -863,7 +863,6 @@ ckb:
scheduled_statuses:
over_daily_limit: ئێوە لە سنووری ڕیپێدراوی %{limit} توتی ئەو رۆژە،خۆرتر ڕۆیشتوویت
over_total_limit: تۆ سنووری خشتەکراوی %{limit} ت بەزاندووە
- too_soon: پێویستە بەرواری خشتەکراو لە داهاتوودا بێت
sessions:
activity: دوایین چالاکی
browser: وێبگەڕ
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 39d9e9157e..2e45ab9263 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -843,7 +843,6 @@ co:
scheduled_statuses:
over_daily_limit: Avete trapassatu a limita di %{limit} statuti pianificati per stu ghjornu
over_total_limit: Avete trapassatu a limita di %{limit} statuti pianificati
- too_soon: A data deve esse indè u futuru
sessions:
activity: Ultima attività
browser: Navigatore
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 19a6372224..502e2fe0d8 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1591,7 +1591,6 @@ cs:
scheduled_statuses:
over_daily_limit: Pro dnešek jste překročili limit %{limit} naplánovaných příspěvků
over_total_limit: Překročili jste limit %{limit} naplánovaných příspěvků
- too_soon: Plánované datum musí být v budoucnosti
self_destruct:
lead_html: "%{domain} bohužel končí nadobro. Pokud jste tam měli účet, nebudete jej moci dále používat, ale stále si můžete vyžádat zálohu vašich dat."
title: Tento server končí
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 3d376bc4b8..2f2ae75e5d 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -1828,7 +1828,6 @@ cy:
scheduled_statuses:
over_daily_limit: Rydych wedi mynd dros y terfyn o %{limit} postiad a drefnwyd ar gyfer heddiw
over_total_limit: Rydych wedi mynd dros y terfyn o %{limit} postiad a drefnwyd
- too_soon: Rhaid i'r dyddiad a drefnwyd fod yn y dyfodol
self_destruct:
lead_html: Yn anffodus mae %{domain} yn cau'n barhaol. Os oedd gennych gyfrif yno, ni fydd modd i chi barhau i'w ddefnyddio, ond mae dal modd gofyn i gael copi wrth gefn o'ch data.
title: Mae'r gweinydd hwn yn cau
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 3a82278b93..916dc931f9 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -1676,7 +1676,7 @@ da:
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
- too_soon: Den planlagte dato skal være i fremtiden
+ too_soon: dato skal være i fremtiden
self_destruct:
lead_html: Desværre lukker %{domain} permanent. Har man en konto dér, vil fortsat brug heraf ikke være mulig. Man kan dog stadig anmode om en sikkerhedskopi af sine data.
title: Denne server er under nedlukning
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 0faee920b4..76b3c1f765 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1676,7 +1676,7 @@ de:
scheduled_statuses:
over_daily_limit: Du hast das Limit von %{limit} geplanten Beiträgen für heute erreicht
over_total_limit: Du hast das Limit für geplante Beiträge, das %{limit} beträgt, erreicht
- too_soon: Das geplante Datum muss in der Zukunft liegen
+ too_soon: Datum muss in der Zukunft liegen
self_destruct:
lead_html: Bedauerlicherweise wird %{domain} den Betrieb für immer einstellen. Wenn du dort ein Konto angelegt hast, wirst du es nicht weiter verwenden können. Du kannst allerdings eine Sicherung deiner Daten anfordern.
title: Dieser Server wird den Betrieb einstellen
diff --git a/config/locales/doorkeeper.zh-CN.yml b/config/locales/doorkeeper.zh-CN.yml
index 50705932e6..bccb26d5bf 100644
--- a/config/locales/doorkeeper.zh-CN.yml
+++ b/config/locales/doorkeeper.zh-CN.yml
@@ -152,17 +152,17 @@ zh-CN:
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: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:domain_allows: 修改站点允许列表
+ admin:write:domain_blocks: 修改站点屏蔽列表
+ admin:write:email_domain_blocks: 修改邮箱域名屏蔽列表
admin:write:ip_blocks: 针对 IP 段执行管理操作
admin:write:reports: 对举报执行管理操作
crypto: 使用端到端加密
@@ -184,7 +184,7 @@ zh-CN:
read:statuses: 查看所有嘟文
write: 修改你的账号数据
write:accounts: 修改你的个人资料
- write:blocks: 屏蔽账号和域名
+ write:blocks: 屏蔽账户与站点
write:bookmarks: 收藏嘟文
write:conversations: 静音并删除会话
write:favourites: 喜欢嘟文
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 20c16b00b1..dd534d6b0b 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -187,6 +187,7 @@ el:
create_domain_block: Δημιουργία Αποκλεισμού Τομέα
create_email_domain_block: Δημιουργία Αποκλεισμού Τομέα Email
create_ip_block: Δημιουργία κανόνα IP
+ create_relay: Δημιουργία Relay
create_unavailable_domain: Δημιουργία Μη Διαθέσιμου Τομέα
create_user_role: Δημιουργία Ρόλου
demote_user: Υποβιβασμός Χρήστη
@@ -198,14 +199,17 @@ el:
destroy_email_domain_block: Διαγραφή Αποκλεισμού Τομέα Email
destroy_instance: Εκκαθάριση Τομέα
destroy_ip_block: Διαγραφή κανόνα IP
+ destroy_relay: Διαγραφή Relay
destroy_status: Διαγραφή Ανάρτησης
destroy_unavailable_domain: Διαγραφή Μη Διαθέσιμου Τομέα
destroy_user_role: Καταστροφή Ρόλου
disable_2fa_user: Απενεργοποίηση 2FA
disable_custom_emoji: Απενεργοποίηση Προσαρμοσμένων Emoji
+ disable_relay: Απενεργοποίηση Relay
disable_sign_in_token_auth_user: Απενεργοποίηση Ελέγχου Ταυτότητας Διακριτικού Email για Χρήστη
disable_user: Απενεργοποίηση Χρήστη
enable_custom_emoji: Ενεργοποίηση Προσαρμοσμένων Emoji
+ enable_relay: Ενεργοποίηση Relay
enable_sign_in_token_auth_user: Ενεργοποίηση Ελέγχου Ταυτότητας Διακριτικού Email για Χρήστη
enable_user: Ενεργοποίηση Χρήστη
memorialize_account: Μετατροπή Λογαριασμού σε Εις Μνήμην
@@ -247,22 +251,30 @@ el:
create_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα %{target}
create_email_domain_block_html: Ο χρήστης %{name} απέκλεισε τον τομέα email %{target}
create_ip_block_html: Ο/Η %{name} δημιούργησε κανόνα για την IP %{target}
+ create_relay_html: Ο χρήστης %{name} δημιούργησε ένα relay %{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} έκανε άρση αποκλεισμού email με το hash %{target}
destroy_custom_emoji_html: Ο/Η %{name} διέγραψε το emoji %{target}
destroy_domain_allow_html: Ο/Η %{name} αφαίρεσε τον τομέα %{target} από τη λίστα εγκρίσεων
destroy_domain_block_html: Ο/Η %{name} επέτρεψε τον τομέα %{target}
+ destroy_email_domain_block_html: Ο χρήστης %{name} έκανε άρση αποκλεισμού του τομέα email %{target}
destroy_instance_html: Ο/Η %{name} εκκαθάρισε τον τομέα %{target}
destroy_ip_block_html: Ο/Η %{name} διέγραψε τον κανόνα για την IP %{target}
+ destroy_relay_html: Ο χρήστης %{name} διέγραψε το relay %{target}
destroy_status_html: Ο/Η %{name} αφαίρεσε την ανάρτηση του/της %{target}
destroy_unavailable_domain_html: Ο/Η %{name} ξανάρχισε να τροφοδοτεί το domain %{target}
destroy_user_role_html: Ο/Η %{name} διέγραψε τον ρόλο του %{target}
disable_2fa_user_html: Ο/Η %{name} απενεργοποίησε την απαίτηση για ταυτοποίηση δύο παραγόντων για τον χρήστη %{target}
disable_custom_emoji_html: Ο/Η %{name} απενεργοποίησε το emoji %{target}
+ disable_relay_html: Ο χρήστης %{name} απενεργοποίησε το relay %{target}
+ disable_sign_in_token_auth_user_html: Ο χρήστης %{name} απενεργοποίησε την ταυτοποίηση χαρακτηριστικού μέσω e-mail για %{target}
disable_user_html: Ο/Η %{name} απενεργοποίησε τη σύνδεση για τον χρήστη %{target}
enable_custom_emoji_html: Ο/Η %{name} ενεργοποίησε το emoji %{target}
+ enable_relay_html: Ο χρήστης %{name} ενεργοποίησε το relay %{target}
+ enable_sign_in_token_auth_user_html: Ο χρήστης %{name} ενεργοποίησε την πιστοποίηση αναγνωριστικού email του %{target}
enable_user_html: Ο/Η %{name} ενεργοποίησε τη σύνδεση για τον χρήστη %{target}
memorialize_account_html: O/H %{name} μετέτρεψε τον λογαριασμό του %{target} σε σελίδα εις μνήμην
promote_user_html: Ο/Η %{name} προβίβασε το χρήστη %{target}
@@ -270,6 +282,7 @@ el:
reject_user_html: ο/η %{name} απέρριψε την εγγραφή από %{target}
remove_avatar_user_html: ο/η %{name} αφαίρεσε το άβαταρ του/της %{target}
reopen_report_html: Ο/Η %{name} ξανάνοιξε την αναφορά %{target}
+ resend_user_html: Ο χρήστης %{name} έστειλε ξανά email επιβεβαίωσης για τον χρήστη %{target}
reset_password_user_html: Ο/Η %{name} επανέφερε το συνθηματικό του χρήστη %{target}
resolve_report_html: Ο/Η %{name} επέλυσε την αναφορά %{target}
sensitive_account_html: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα
@@ -439,8 +452,12 @@ el:
new:
create: Προσθήκη τομέα
resolve: Επίλυση τομέα
+ title: Αποκλεισμός νέου τομέα email
+ no_email_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα email καθώς δεν επιλέχθηκε κανένας
not_permitted: Δεν επιτρέπεται
+ resolved_dns_records_hint_html: Το όνομα τομέα επιλύεται στους ακόλουθους τομείς MX, οι οποίοι είναι τελικά υπεύθυνοι για την αποδοχή των email. Αποκλείοντας έναν τομέα MX θα αποκλείει τις εγγραφές από οποιαδήποτε διεύθυνση email που χρησιμοποιεί τον ίδιο τομέα MX, ακόμη και αν το ορατό όνομα τομέα είναι διαφορετικό. Προσέξτε να μην αποκλείσετε τους μεγάλους παρόχους ηλεκτρονικού ταχυδρομείου.
resolved_through_html: Επιλύθηκε μέσω %{domain}
+ title: Αποκλεισμένοι τομείς email
export_domain_allows:
new:
title: Εισαγωγή επιτρεπόμενων τομέων
@@ -594,7 +611,9 @@ el:
resolve_description_html: Δεν θα ληφθούν μέτρα κατά του αναφερόμενου λογαριασμού, δεν θα καταγραφεί κανένα παράπτωμα, και η αναφορά θα κλείσει.
silence_description_html: Ο λογαριασμός θα είναι ορατός μόνο σε εκείνους που ήδη τον ακολουθούν ή τον αναζητούν χειροκίνητα, περιορίζοντας κατά πολύ την εμβέλειά του. Η ενέργεια αυτή είναι αναστρέψιμη. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού.
suspend_description_html: Ο λογαριασμός και όλο το περιεχόμενό του θα είναι απρόσιτα και τελικά θα διαγραφούν και η αλληλεπίδραση με αυτόν θα είναι αδύνατη. Αναστρέψιμη εντός 30 ημερών. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού.
+ actions_description_html: Αποφάσισε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Εάν προβείς σε τιμωρητική ενέργεια κατά του αναφερόμενου λογαριασμού, θα αποσταλεί ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου σε αυτόν, εκτός όταν η κατηγορία Spam είναι επιλεγμένη.
actions_description_remote_html: Αποφάσισε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Αυτό θα επηρεάσει μόνο το πώς ο δικός σας διακομιστής επικοινωνεί με αυτόν τον απομακρυσμένο λογαριασμό και χειρίζεται το περιεχόμενό του.
+ actions_no_posts: Αυτή η αναφορά δεν έχει συσχετισμένες αναρτήσεις για διαγραφή
add_to_report: Πρόσθεσε περισσότερα στην αναφορά
already_suspended_badges:
local: Ήδη σε αναστολή σε αυτόν τον διακομιστή
@@ -658,6 +677,7 @@ el:
delete_data_html: Διάγραψε το προφίλ και το περιεχόμενο του @%{acct} σε 30 ημέρες από τώρα εκτός αν, εν τω μεταξύ, ανακληθεί η αναστολή
preview_preamble_html: 'Ο @%{acct} θα λάβει μια προειδοποίηση με τα ακόλουθο περιεχόμενο:'
record_strike_html: Κατάγραψε ένα παράπτωμα εναντίον του @%{acct} για να σε βοηθήσει να αποφασίσεις σε μελλοντικές παραβιάσεις από αυτόν τον λογαριασμό
+ send_email_html: Στείλε στον λογαριασμό @%{acct} ένα προειδοποιητικό email
warning_placeholder: Προαιρετικές επιπλέον εξηγήσεις για αυτή την ενέργεια από την ομάδα συντονισμού.
target_origin: Προέλευση του αναφερόμενου λογαριασμού
title: Αναφορές
@@ -697,6 +717,7 @@ el:
manage_appeals: Διαχείριση Εφέσεων
manage_appeals_description: Επιτρέπει στους χρήστες να εξετάζουν τις εφέσεις κατά των ενεργειών της ομάδας συντονισμού
manage_blocks: Διαχείριση Αποκλεισμών
+ manage_blocks_description: Επιτρέπει στους χρήστες να αποκλείουν παρόχους email και διευθύνσεις IP
manage_custom_emojis: Διαχείριση Προσαρμοσμένων Emojis
manage_custom_emojis_description: Επιτρέπει στους χρήστες να διαχειρίζονται προσαρμοσμένα emojis στον διακομιστή
manage_federation: Διαχείριση Συναλλαγών
@@ -714,6 +735,7 @@ el:
manage_taxonomies: Διαχείριση Ταξινομιών
manage_taxonomies_description: Επιτρέπει στους χρήστες να εξετάζουν το δημοφιλές περιεχόμενο και να ενημερώνουν τις ρυθμίσεις ετικέτας
manage_user_access: Διαχείριση Πρόσβασης Χρήστη
+ manage_user_access_description: Επιτρέπει στους χρήστες να απενεργοποιούν την ταυτοποίηση δύο παραγόντων άλλων χρηστών, να αλλάξουν τη διεύθυνση ηλεκτρονικού ταχυδρομείου τους και να επαναφέρουν τον κωδικό πρόσβασής τους
manage_users: Διαχείριση Χρηστών
manage_users_description: Επιτρέπει στους χρήστες να βλέπουν τις λεπτομέρειες άλλων χρηστών και να εκτελούν ενέργειες συντονισμού εναντίον τους
manage_webhooks: Διαχείριση Webhooks
@@ -788,6 +810,7 @@ el:
destroyed_msg: Η μεταφόρτωση ιστότοπου διαγράφηκε επιτυχώς!
software_updates:
critical_update: Κρίσιμο - παρακαλώ ενημέρωσε γρήγορα
+ description: Συνιστάται να διατηρείς την εγκατάσταση του Mastodon ενημερωμένη για να επωφεληθείς από τις πιο πρόσφατες διορθώσεις και δυνατότητες. Επιπλέον, μερικές φορές είναι κρίσιμο να ενημερώσεις το Mastodon εγκαίρως για να αποφύγεις προβλήματα ασφαλείας. Για αυτούς τους λόγους, το Mastodon ελέγχει για ενημερώσεις κάθε 30 λεπτά και θα σε ειδοποιεί σύμφωνα με τις προτιμήσεις ειδοποίησης μέσω email.
documentation_link: Μάθε περισσότερα
release_notes: Σημειώσεις έκδοσης
title: Διαθέσιμες ενημερώσεις
@@ -803,8 +826,10 @@ el:
back_to_account: Επιστροφή στη σελίδα λογαριασμού
back_to_report: Πίσω στη σελίδα αναφοράς
batch:
+ add_to_report: 'Προσθήκη στην αναφορά #%{id}'
remove_from_report: Αφαίρεση από την αναφορά
report: Αναφορά
+ contents: Περιεχόμενα
deleted: Διαγεγραμμένα
favourites: Αγαπημένα
history: Ιστορικό εκδόσεων
@@ -813,12 +838,17 @@ el:
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:
@@ -889,6 +919,7 @@ el:
name: Όνομα
newest: Νεότερη όλων
oldest: Παλαιότερη όλων
+ open: Προβολή Δημόσια
reset: Επαναφορά
review: Κατάσταση αξιολόγησης
search: Αναζήτηση
@@ -898,10 +929,16 @@ el:
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: Να μην επιτρέπεται ο εκδότης
@@ -1560,7 +1597,6 @@ el:
scheduled_statuses:
over_daily_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων αναρτήσεων για εκείνη τη μέρα
over_total_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων αναρτήσεων
- too_soon: Η προγραμματισμένη ημερομηνία πρέπει να είναι στο μέλλον
self_destruct:
lead_html: Δυστυχώς, το %{domain} κλείνει οριστικά. Αν είχατε λογαριασμό εκεί, δεν θα μπορείτε να συνεχίσετε τη χρήση του, αλλά μπορείτε ακόμα να ζητήσετε ένα αντίγραφο ασφαλείας των δεδομένων σας.
title: Αυτός ο διακομιστής κλείνει οριστικά
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index 9d535e3226..b08ce82368 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -1676,7 +1676,6 @@ en-GB:
scheduled_statuses:
over_daily_limit: You have exceeded the limit of %{limit} scheduled posts for today
over_total_limit: You have exceeded the limit of %{limit} scheduled posts
- too_soon: The scheduled date must be in the future
self_destruct:
lead_html: Unfortunately, %{domain} is permanently closing down. If you had an account there, you will not be able to continue using it, but you can still request a backup of your data.
title: This server is closing down
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index ad1396e4e8..70278460ee 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -1584,7 +1584,6 @@ eo:
scheduled_statuses:
over_daily_limit: Vi transpasis la limigon al %{limit} samtage planitaj mesaĝoj
over_total_limit: Vi transpasis la limigon al %{limit} planitaj mesaĝoj
- too_soon: La planita dato devas esti en la estonteco
self_destruct:
lead_html: Bedaŭrinde, %{domain} konstante fermiĝas. Se vi havis konton tie, vi ne povos daŭrigi uzi ĝin, sed vi ankoraŭ povas peti sekurkopion de viaj datumoj.
title: Ĉi tiu servilo fermiĝas
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 170c16f094..5ea429f5cb 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -1676,7 +1676,7 @@ es-AR:
scheduled_statuses:
over_daily_limit: Superaste el límite de %{limit} mensajes programados para ese día
over_total_limit: Superaste el límite de %{limit} mensajes programados
- too_soon: La fecha programada debe estar en el futuro
+ too_soon: la fecha debe ser en el futuro
self_destruct:
lead_html: Desafortunadamente, %{domain} va a cerrar permanentemente. Si tenías una cuenta ahí, no podrás continuar usándola, pero aún podés solicitar una copia de tus datos.
title: Este servidor está cerrando
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 25a7be8915..d9288cfb0b 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1390,36 +1390,36 @@ es-MX:
one: Estás a punto de reemplazar tus marcadores por %{count} publicación proveniente de %{filename}.
other: Estás a punto de reemplazar tus marcadores por hasta %{count} publicaciones provenientes de %{filename}.
domain_blocking_html:
- one: Estás a punto de reemplazar tu lista de bloqueos de dominio por %{count} dominio proveniente de %{filename}.
- other: Estás a punto de reemplazar tu lista de bloqueos de dominio por hasta %{count} dominios provenientes de %{filename}.
+ one: Estás a punto de reemplazar tu lista de dominios bloqueados con %{count} dominio de %{filename}.
+ other: Estás a punto de reemplazar tu lista de dominios bloqueados con hasta %{count} dominios de %{filename}.
following_html:
- one: Estás a punto de seguir a %{count} cuenta proveniente de %{filename} y dejar de seguir a cualquier otra cuenta.
- other: Estás a punto de seguir hasta %{count} cuentas provenientes de %{filename} y dejar de seguir a cualquier otra cuenta.
+ one: Estás a punto de seguir a %{count} cuenta de %{filename} y dejar de seguir a cualquier otra.
+ other: Estás a punto de seguir hasta %{count} cuentas de %{filename} y dejar de seguir cualquier otra cuenta.
lists_html:
- one: Estás a punto de reemplazar tus listas con el contenido de %{filename}. Se añadirá %{count} cuenta a una nueva lista.
- other: Estás a punto de reemplazar tus listas con el contenido de %{filename}. Se añadirán %{count} cuentas a nuevas listas.
+ one: Estás a punto de reemplazar tus listas con contenidos de %{filename}. Hasta %{count} cuenta será agregada a nuevas listas.
+ other: Estás a punto de reemplazar tus listas con contenidos de %{filename}. Hasta %{count} cuentas serán agregadas a nuevas listas.
muting_html:
- one: Estás a punto de reemplazar tu lista de cuentas silenciadas con %{count} cuenta proveninete de %{filename}.
- other: Estás a punto de reemplazar tu lista de cuentas silenciadas con hasta %{count} cuentas provenientes de %{filename}.
+ one: Estás a punto de reemplazar tu lista de cuentas silenciadas con %{count} cuenta de %{filename}.
+ other: Estás a punto de reemplazar tu lista de cuentas silenciadas con hasta %{count} cuentas de %{filename}.
preambles:
blocking_html:
- one: Estás a punto de bloquear a %{count} cuenta proveninete de %{filename}.
- other: Estás a punto de bloquear hasta %{count} cuentas provenientes de %{filename}.
+ one: Estás a punto de bloquear a %{count} cuenta de %{filename}.
+ other: Estás a punto de bloquear hasta %{count} cuentas de %{filename}.
bookmarks_html:
- one: Está a punto de añadir %{count} publicación proveniente de %{filename} a tus marcadores.
- other: Está a punto de añadir hasta %{count} publicaciones provenientes de %{filename} a tus marcadores.
+ one: Estás a punto de agregar %{count} publicación de %{filename} a tus marcadores.
+ other: Estás a punto de agregar %{count} publicaciones de %{filename} a tus marcadores.
domain_blocking_html:
- one: Estás a punto de bloquear%{count} dominio proveniente de %{filename}.
- other: Estás a punto de bloquear hasta %{count} dominios provenientes de %{filename}.
+ one: Estás a punto de bloquear%{count} dominio de %{filename}.
+ other: Estás a punto de bloquear hasta %{count} dominios de %{filename}.
following_html:
- one: Estás a punto de seguir a %{count} cuenta proveniente de %{filename}.
- other: Estás a punto de seguir hasta %{count} cuentas provenientes de %{filename}.
+ one: Estás a punto de seguir a %{count} cuenta de %{filename}.
+ other: Estás a punto de seguir hasta %{count} cuentas de %{filename}.
lists_html:
- one: Estás a punto de añadir %{count} cuenta desde %{filename} a tus listas. Se creará una nueva listas si no hay listas donde añadirla.
- other: Estás a punto de añadir %{count} cuentas desde %{filename} a tus listas. Se crearán nuevas listas si no hay listas donde añadirlas.
+ one: Estás a punto de agregar %{count} cuenta de %{filename} a tus listas. Se crearán nuevas listas si no hay ninguna lista a la que agregar.
+ other: Estás a punto de agregar %{count} cuentas de %{filename} a tus listas. Se crearán nuevas listas si no hay ninguna lista a la que agregar.
muting_html:
- one: Estás a punto de silenciar a %{count} cuenta proveniente de %{filename}.
- other: Estás a punto de silenciar hasta %{count} cuentas provenientes de %{filename}.
+ one: Estás a punto de silenciar a %{count} cuenta de %{filename}.
+ other: Estás a punto de silenciar hasta %{count} cuentas de %{filename}.
preface: Puedes importar ciertos datos, como todas las personas que estás siguiendo o bloqueando en tu cuenta en esta instancia, desde archivos exportados de otra instancia.
recent_imports: Importaciones recientes
states:
@@ -1676,7 +1676,7 @@ es-MX:
scheduled_statuses:
over_daily_limit: Has superado el límite de %{limit} publicaciones programadas para ese día
over_total_limit: Has superado el límite de %{limit} publicaciones programadas
- too_soon: La fecha programada debe estar en el futuro
+ too_soon: la fecha debe ser en el futuro
self_destruct:
lead_html: Desafortunadamente, %{domain} está cerrando de manera permanente. Si tenías una cuenta ahí, no puedes continuar utilizándolo, pero puedes solicitar un respaldo de tus datos.
title: Este servidor está cerrando
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 921db752ab..2984fbf2ad 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1676,7 +1676,7 @@ es:
scheduled_statuses:
over_daily_limit: Ha superado el límite de %{limit} publicaciones programadas para ese día
over_total_limit: Ha superado el límite de %{limit} publicaciones programadas
- too_soon: La fecha programada debe estar en el futuro
+ too_soon: la fecha debe ser en el futuro
self_destruct:
lead_html: Desafortunadamente, %{domain} va a cerrar permanentemente. Si tenías una cuenta allí, no podrás continuar usándola, pero aún puedes solicitar una copia de tus datos.
title: Este servidor está cerrando
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 40db2eede0..ea4545ac42 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -1661,7 +1661,6 @@ et:
scheduled_statuses:
over_daily_limit: Lubatud ajastatud postituste arv %{limit} päevas on tänaseks ületatud
over_total_limit: Oled jõudnud ajastatud postituste lubatud maksimumarvuni %{limit}
- too_soon: Ajastatud kuupäev peab olema tukevikus
self_destruct:
lead_html: Kahjuks suletakse %{domain} lõplikult. Kui sul oli seal konto, ei saa sa seda enam kasutada, kuid siiski võid taotleda oma andmete varukoopiat.
title: See server suletakse
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index dc064ebc7b..c1e5ab1ee6 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -1517,7 +1517,6 @@ eu:
scheduled_statuses:
over_daily_limit: 'Egun horretarako programatutako bidalketa kopuruaren muga gainditu duzu: %{limit}'
over_total_limit: 'Programatutako bidalketa kopuruaren muga gainditu duzu: %{limit}'
- too_soon: Programatutako data etorkizunean egon behar du
self_destruct:
lead_html: Zoritxarrez, %{domain} betirako itxiko da. Kontu bat baduzu bertan, ezin izango duzu erabiltzen jarraitu, baina, oraindik zure datuen babeskopia bat eska dezakezu.
title: Zerbitzari hau ixtear dago
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 7cb0714c28..ad242ca503 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -1464,7 +1464,6 @@ fa:
scheduled_statuses:
over_daily_limit: شما از حد مجاز %{limit} فرسته زمانبندیشده در آن روز فراتر رفتهاید
over_total_limit: شما از حد مجاز %{limit} فرسته زمانبندیشده فراتر رفتهاید
- too_soon: زمان تعیینشده باید در آینده باشد
self_destruct:
title: این کارساز دارد بسته میشود
sessions:
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 7b8b280975..eec42d0bfb 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -1676,7 +1676,7 @@ fi:
scheduled_statuses:
over_daily_limit: Olet ylittänyt %{limit} ajoitetun julkaisun rajan tälle päivälle
over_total_limit: Olet ylittänyt %{limit} ajoitetun julkaisun rajan
- too_soon: Ajoitetun päiväyksen pitää olla tulevaisuudessa
+ too_soon: päivämäärän on oltava tulevaisuudessa
self_destruct:
lead_html: Valitettavasti %{domain} sulkeutuu pysyvästi. Jos sinulla on siellä tili, et voi jatkaa sen käyttöä mutta voit yhä pyytää varmuuskopiota tiedoistasi.
title: Tämä palvelin sulkeutuu
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index 502c027b5d..6f2f94242c 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -1676,7 +1676,7 @@ fo:
scheduled_statuses:
over_daily_limit: Tú er komin at markinum, sum er %{limit} skrálagdir postar, í dag
over_total_limit: Tú er komin at markinum, sum er %{limit} skrálagdir postar
- too_soon: Ætlanardagfestingin má vera í framtíðini
+ too_soon: dagfesting má vera í framtíðini
self_destruct:
lead_html: Tíverri, %{domain} er í ferð við at blíva lukkað niður med alla. Um tú hevði eina kontu har, so ber ikki til framhaldandi at brúka hana, men tú kann framvegis biðja um trygdaravrit av tínum dátum.
title: Hesin ambætarin er í ferð við at lukka
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index 9c2bf3398e..057dac582c 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -1661,7 +1661,6 @@ fr-CA:
scheduled_statuses:
over_daily_limit: Vous avez dépassé la limite de %{limit} messages planifiés par jour
over_total_limit: Vous avez dépassé la limite de %{limit} messages planifiés
- too_soon: La date planifiée doit être dans le futur
self_destruct:
lead_html: Malheureusement, %{domain} ferme définitivement. Si vous y aviez un compte, vous ne pourrez pas continuer à l’utiliser, mais vous pouvez toujours demander une sauvegarde de vos données.
title: Ce serveur est en cours de fermeture
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 650147eb5d..e21e4f3e09 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1661,7 +1661,6 @@ fr:
scheduled_statuses:
over_daily_limit: Vous avez dépassé la limite de %{limit} messages planifiés par jour
over_total_limit: Vous avez dépassé la limite de %{limit} messages planifiés
- too_soon: La date planifiée doit être dans le futur
self_destruct:
lead_html: Malheureusement, %{domain} ferme définitivement. Si vous y aviez un compte, vous ne pourrez pas continuer à l’utiliser, mais vous pouvez toujours demander une sauvegarde de vos données.
title: Ce serveur est en cours de fermeture
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 24be51d9d7..088e49cb9d 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -1661,7 +1661,6 @@ fy:
scheduled_statuses:
over_daily_limit: Jo binne oer de limyt fan %{limit} yn te plannen berjochten foar hjoed
over_total_limit: Jo binne oer de limyt fan %{limit} yn te plannen berjochten
- too_soon: De datum foar it ynplande berjocht moat yn de takomst lizze
self_destruct:
lead_html: Spitigernôch sil %{domain} permanint ôfslute. As jo dêr in account hiene, kinne jo dizze net mear brûke, mar jo kinne noch hieltyd in reservekopy fan jo gegevens opfreegje.
title: Deze server sil ôfslute
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index deb9986691..424302fc2e 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -1790,7 +1790,6 @@ ga:
scheduled_statuses:
over_daily_limit: Tá an teorainn de %{limit} postáil sceidealaithe sáraithe agat don lá atá inniu ann
over_total_limit: Tá an teorainn de %{limit} postáil sceidealaithe sáraithe agat
- too_soon: Caithfidh an dáta sceidealta a bheith sa todhchaí
self_destruct:
lead_html: Ar an drochuair, tá %{domain} ag dúnadh síos go buan. Má bhí cuntas agat ann, ní bheidh tú in ann leanúint ar aghaidh á úsáid, ach is féidir leat cúltaca de do shonraí a iarraidh fós.
title: Tá an freastalaí seo ag dúnadh
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index 7581f6c856..ae714cddcf 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1752,7 +1752,6 @@ gd:
scheduled_statuses:
over_daily_limit: Chaidh thu thar na crìoch de %{limit} post(aichean) sgeidealaichte an-diugh
over_total_limit: Chaidh thu thar na crìoch de %{limit} post(aichean) sgeidealaichte
- too_soon: Feumaidh ceann-latha an sgeideil a bhith san àm ri teachd
self_destruct:
lead_html: Gu mì-fhortanach, thèid %{domain} a dhùnadh gu buan. Ma tha cunntas agad ann, chan urrainn dhut cumail a’ gol ’ga chleachdadh ach ’s urrainn dhut lethbhreac-glèidhidh dhen dàta agad iarraidh fhathast.
title: Tha am frithealaiche seo gu bhith dùnadh
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index feda673621..cf5363196c 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -1676,7 +1676,7 @@ gl:
scheduled_statuses:
over_daily_limit: Excedeches o límite de %{limit} publicacións programadas para ese día
over_total_limit: Excedeches o límite de %{limit} publicacións programadas
- too_soon: A data de programación debe estar no futuro
+ too_soon: a data ten que estar no futuro
self_destruct:
lead_html: Desafortunadamente, %{domain} vai deixar de dar servizo. Se tes unha conta aquí non poderás seguir usándoa, mais podes solicitar un ficheiro cos teus datos.
title: Este servidor vai fechar
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 513583f666..1c2796173b 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1752,7 +1752,6 @@ he:
scheduled_statuses:
over_daily_limit: חרגת מהמספר המקסימלי של הודעות מתוזמנות להיום, שהוא %{limit}
over_total_limit: חרגת מהמספר המקסימלי של הודעות מתוזמנות, שהוא %{limit}
- too_soon: תאריך התזמון חייב להיות בעתיד
self_destruct:
lead_html: לרוע המזל, %{domain} עומד לרדת באופן סופי. אם היה לך חשבון כאן, לא תהיה אפשרות להמשיך להשתמש בו, אבל ניתן לבקש גיבוי של כל המידע שלך.
title: שרת זה בתהליכי סגירה
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 9c3f7f03b1..fccda994ea 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1676,7 +1676,7 @@ hu:
scheduled_statuses:
over_daily_limit: Túllépted az időzített bejegyzésekre vonatkozó %{limit} db-os napi limitet
over_total_limit: Túllépted az időzített bejegyzésekre vonatkozó %{limit} db-os limitet
- too_soon: Az időzített időpontnak a jövőben kell lennie
+ too_soon: a dátumnak a jövőben kell lennie
self_destruct:
lead_html: Sajnos a %{domain} végleg bezár. Ha volt itt fiókod, nem fogod tudni tovább használni, de kérheted majd az adataid biztonsági mentését.
title: A kiszolgáló bezár
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index 3b4aaf3629..a6924c2b07 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -711,8 +711,6 @@ hy:
remove_selected_followers: Հեռացնել նշուած հետեւորդներին
remove_selected_follows: Ապահետեւել նշուած օգտատէրերին
status: Հաշուի կարգավիճակ
- scheduled_statuses:
- too_soon: Նախադրուած ամսաթիւը պէտք է լինի ապագայում
sessions:
activity: Վերջին Ակտիւութիւնը
browser: Դիտարկիչ
diff --git a/config/locales/ia.yml b/config/locales/ia.yml
index 54401b1c5a..9914db1aec 100644
--- a/config/locales/ia.yml
+++ b/config/locales/ia.yml
@@ -1676,7 +1676,6 @@ ia:
scheduled_statuses:
over_daily_limit: Tu ha excedite le limite de %{limit} messages programmate pro hodie
over_total_limit: Tu ha excedite le limite de %{limit} messages programmate
- too_soon: Le data programmate debe esser in le futuro
self_destruct:
lead_html: Infortunatemente, %{domain} tosto claudera permanentemente. Si tu habeva un conto illac, tu non potera continuar a usar lo, ma tu pote ancora requestar un copia de tu datos.
title: Iste servitor va clauder
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 34b690828d..60c2026667 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -1294,7 +1294,6 @@ id:
scheduled_statuses:
over_daily_limit: Anda telah melampaui batas %{limit} kiriman terjadwal untuk sehari
over_total_limit: Anda telah melampaui batas %{limit} kiriman terjadwal
- too_soon: Tanggal terjadwal haruslah pada hari yang akan datang
sessions:
activity: Aktivitas terakhir
browser: Peramban
diff --git a/config/locales/ie.yml b/config/locales/ie.yml
index f006f2c8ad..5dde082330 100644
--- a/config/locales/ie.yml
+++ b/config/locales/ie.yml
@@ -1515,7 +1515,6 @@ ie:
scheduled_statuses:
over_daily_limit: Tu ha atinget li límite de %{limit} planat postas por hodie
over_total_limit: Tu ha atinget li límite de %{limit} planat postas
- too_soon: Li planat date deve esser in li future
self_destruct:
lead_html: Ínfortunatmen, %{domain} va bentost permanentmen cluder. Si tu havet un conto ta, tu ne va posser continuar usar it, ma tu ancor posse demandar un archive de tui data.
title: Ti-ci servitor va cluder bentost
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 83c92484ff..c0e4ac6dc1 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1481,7 +1481,6 @@ io:
scheduled_statuses:
over_daily_limit: Vu ecesas limito quale esas %{limit} projetita posti por hodio
over_total_limit: Vu ecesas limito quale esas %{limit} projetita posti
- too_soon: Projetita dato mustas esar en futuro
self_destruct:
lead_html: Desfortunoze, %{domain} balde klozos. Se vu havis konto ibe, vu ne plus povas uzar it, ma vu ankore povas demandar exportacajo de vua datumi.
title: Ca servilo balde klozos
diff --git a/config/locales/is.yml b/config/locales/is.yml
index cad01257fd..d606106421 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1680,7 +1680,7 @@ is:
scheduled_statuses:
over_daily_limit: Þú hefur farið fram úr hámarkinu með %{limit} áætlaðar færslur fyrir þennan dag
over_total_limit: Þú hefur farið fram úr hámarkinu með %{limit} áætlaðar færslur
- too_soon: Áætluð dagsetning verður að vera í framtíðinni
+ too_soon: dagsetning verður að vera fram í tímann
self_destruct:
lead_html: Því miður, %{domain} er að hætta starfsemi endanlega. Ef þú varst með aðgang þar, muntu ekki geta haldið áfram að nota hann, en þú getur áfram beðið um afrit af gögnunum þínum.
title: Þessi netþjónn er að hætta starfsemi
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 3b36bd3f7a..f80728be0a 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1678,7 +1678,7 @@ it:
scheduled_statuses:
over_daily_limit: Hai superato il limite di %{limit} post programmati per questo giorno
over_total_limit: Hai superato il limite di %{limit} post programmati
- too_soon: La data di pubblicazione deve essere nel futuro
+ too_soon: la data deve essere nel futuro
self_destruct:
lead_html: Sfortunatamente, %{domain} sta chiudendo definitivamente. Se hai un account lì, non potrai continuare a usarlo, ma puoi ancora richiedere un backup dei tuoi dati.
title: Questo server sta chiudendo
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 810de2b227..7b992c743a 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -507,7 +507,7 @@ ja:
instance_accounts_dimension: 最もフォローされているアカウント
instance_accounts_measure: 保存されたアカウント
instance_followers_measure: そこでの我々のフォロワー
- instance_follows_measure: リモートフォローしているアカウント
+ instance_follows_measure: こちらからのフォロー数
instance_languages_dimension: 人気の言語
instance_media_attachments_measure: 保存されたメディア
instance_reports_measure: 通報
@@ -1638,7 +1638,6 @@ ja:
scheduled_statuses:
over_daily_limit: その日予約できる投稿数 %{limit}を超えています
over_total_limit: 予約できる投稿数 %{limit}を超えています
- too_soon: より先の時間を指定してください
self_destruct:
lead_html: 残念ながら、%{domain} は恒久的に閉鎖されます。ここにお持ちだったアカウントを今後使うことはできませんが、これまでのデータのバックアップを要求することはまだ可能です。
title: このサーバーは閉鎖されます
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index 7ab33b3134..a2123107ed 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -575,7 +575,6 @@ kk:
scheduled_statuses:
over_daily_limit: Сіз бір күндік %{limit} жазба лимитін тауыстыңыз
over_total_limit: Сіз %{limit} жазба лимитін тауыстыңыз
- too_soon: Жоспарланған күн болашақта болуы керек
sessions:
activity: Соңғы әрекеттер
browser: Браузер
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 3394433758..c7e12961b6 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -1640,7 +1640,7 @@ ko:
scheduled_statuses:
over_daily_limit: 그 날짜에 대한 %{limit}개의 예약 게시물 제한을 초과합니다
over_total_limit: 예약 게시물 제한 %{limit}을 초과합니다
- too_soon: 예약 날짜는 미래여야 합니다
+ too_soon: 미래의 날짜여야 합니다
self_destruct:
lead_html: 안타깝게도, %{domain} 도메인을 영구히 폐쇄합니다. 이곳의 계정을 가졌다면, 이제 이용할 수 없으며, 당분간 백업 데이터를 요청할 수 있습니다.
title: 이 서버는 폐쇄중입니다
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 5337610992..77d14c6ca8 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -1316,7 +1316,6 @@ ku:
scheduled_statuses:
over_daily_limit: Te sînorê %{limit} şandiyên demsazkirî yên ji bo îro derbas kir
over_total_limit: Te sînorê %{limit} şandiyên demsazkirî derbas kir
- too_soon: Dîroka bernamesazkirinê divê dîrokeke ji îro pêşvetir be
sessions:
activity: Çalakiya dawî
browser: Gerok
diff --git a/config/locales/lad.yml b/config/locales/lad.yml
index 2612ae2131..69bcd5b941 100644
--- a/config/locales/lad.yml
+++ b/config/locales/lad.yml
@@ -1598,7 +1598,6 @@ lad:
scheduled_statuses:
over_daily_limit: Tienes superado el limito de %{limit} publikasyones programadas para akel diya
over_total_limit: Tienes superado el limito de %{limit} publikasyones programadas
- too_soon: La data programada deve estar en el avenir
self_destruct:
lead_html: Malorozamente, %{domain} va serrar permanentemente. Si teniyas un kuento ayi, ya no podras utilizarlo, ama ainda puedes solisitar una kopya de tus datos.
title: Este sirvidor esta serrando
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 65bd4456ae..e629373483 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -1070,7 +1070,6 @@ lt:
scheduled_statuses:
over_daily_limit: Jūs pasieketė limitą (%{limit}) galimų toot'ų per dieną
over_total_limit: Jūs pasieketė %{limit} limitą galimų toot'ų
- too_soon: Planuota data privalo būti ateityje
sessions:
activity: Paskutinė veikla
browser: Naršyklė
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index d6f44cad5a..b49b57f27c 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -1612,7 +1612,6 @@ lv:
scheduled_statuses:
over_daily_limit: Tu esi pārsniedzis šodien ieplānoto %{limit} ziņu ierobežojumu
over_total_limit: Tu esi pārsniedzis ieplānoto %{limit} ziņu ierobežojumu
- too_soon: Ieplānotajam datumam ir jābūt nākotnē
self_destruct:
lead_html: Diemžēl domēns %{domain} tiek neatgriezeniski slēgts. Ja tev tur bija konts, tu nevarēsi turpināt to lietot, taču joprojām vari pieprasīt savu datu kopiju.
title: Šis serveris tiek slēgts
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 948ad56a54..d872c342cb 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -1455,7 +1455,6 @@ ms:
scheduled_statuses:
over_daily_limit: Anda telah melebihi had %{limit} pos berjadual untuk hari ini
over_total_limit: Anda telah melebihi had %{limit} pos berjadual
- too_soon: Tarikh yang dijadualkan mestilah pada masa hadapan
self_destruct:
lead_html: Malangnya, %{domain} akan ditutup secara kekal. Jika anda mempunyai akaun di situ, anda tidak akan dapat terus menggunakannya, tetapi anda masih boleh meminta sandaran data anda.
title: Pelayan ini akan ditutup
diff --git a/config/locales/my.yml b/config/locales/my.yml
index 4428843855..4c9573c2eb 100644
--- a/config/locales/my.yml
+++ b/config/locales/my.yml
@@ -1456,7 +1456,6 @@ my:
scheduled_statuses:
over_daily_limit: ယနေ့အတွက် စီစဉ်ထားသည့် ပို့စ်များ၏ ကန့်သတ်ချက် %{limit} ကို ကျော်လွန်သွားပါပြီ
over_total_limit: စီစဉ်ထားသည့် ပို့စ်များ၏ ကန့်သတ်ချက် %{limit} ကို ကျော်လွန်သွားပါပြီ
- too_soon: စီစဉ်ထားသောရက်စွဲမှာ အနာဂတ်အတွက်ဖြစ်သည်
self_destruct:
title: ဤဆာဗာ ပိတ်ထားပါသည်
sessions:
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index d5d60bc31f..86fc42527a 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -1676,7 +1676,7 @@ nl:
scheduled_statuses:
over_daily_limit: Je hebt de limiet van %{limit} in te plannen berichten voor vandaag overschreden
over_total_limit: Je hebt de limiet van %{limit} in te plannen berichten overschreden
- too_soon: De datum voor het ingeplande bericht moet in de toekomst liggen
+ too_soon: datum moet in de toekomst liggen
self_destruct:
lead_html: Helaas gaat %{domain} permanent sluiten. Als je daar een account had, kun je deze niet meer gebruiken, maar je kunt nog steeds een back-up van je gegevens opvragen.
title: Deze server gaat sluiten
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index dbb8b6c693..c0b6aac8bd 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1676,7 +1676,6 @@ nn:
scheduled_statuses:
over_daily_limit: Du har overskredet grensen på %{limit} planlagte tuter for den dagen
over_total_limit: Du har overskredet grensen på %{limit} planlagte tuter
- too_soon: Den planlagte datoen må være i fremtiden
self_destruct:
lead_html: Diverre stengjer %{domain} dørene for godt. Viss du hadde ein brukarkonto der, vil du ikkje kunna halda fram å bruka han, men du kan få ut ein tryggingskopi av dataa dine.
title: Denne tenaren stengjer
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 8bf5daad0e..01672fe3b3 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -1509,7 +1509,6 @@
scheduled_statuses:
over_daily_limit: Du har overskredet grensen på %{limit} planlagte innlegg for i dag
over_total_limit: Du har overskredet grensen på %{limit} planlagte innlegg
- too_soon: Den planlagte datoen må være i fremtiden
self_destruct:
lead_html: Dessverre stenger %{domain} for alltid. Hvis du hadde en konto der vil du ikke kunne fortsette å bruke den, men du kan fremdeles be om en sikkerhetskopi av dataene dine.
title: Denne serveren stenger
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 5dec5ebb77..a67f55c6b7 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -765,7 +765,6 @@ oc:
scheduled_statuses:
over_daily_limit: Avètz passat la limita de %{limit} tuts programats per aquel jorn
over_total_limit: Avètz passat la limita de %{limit} tuts programats
- too_soon: La data planificada deu èsser dins lo futur
sessions:
activity: Darrièra activitat
browser: Navigator
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 3592ea53f6..32425d8844 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -1690,7 +1690,6 @@ pl:
scheduled_statuses:
over_daily_limit: Przekroczyłeś(-aś) limit %{limit} zaplanowanych wpisów na ten dzień
over_total_limit: Przekroczyłeś(-aś) limit %{limit} zaplanowanych wpisów
- too_soon: Zaplanowana data musi wypadać w przyszłości
self_destruct:
lead_html: Niestety, %{domain} jest permanentnie zamykane. Konta z tego serwera nie będą dostępne, ale można jeszcze odzyskać kopię zapasową danych.
title: Ten serwer jest zamykany
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index bbeca84905..23a3b61f9e 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1652,7 +1652,7 @@ pt-BR:
scheduled_statuses:
over_daily_limit: Você excedeu o limite de %{limit} publicações agendadas para esse dia
over_total_limit: Você excedeu o limite de %{limit} publicações agendadas
- too_soon: A data agendada precisa ser no futuro
+ too_soon: a data deve ser no futuro
self_destruct:
lead_html: Infelizmente, %{domain} está se encerrando de forma permanente. Se você tem uma conta lá, não poderá continuar a usá-la, mas ainda pode solicitar uma cópia dos seus dados.
title: Este servidor está sendo fechado
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index cceceb0534..cdbed49a8d 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1603,7 +1603,6 @@ pt-PT:
scheduled_statuses:
over_daily_limit: Excedeste o limite de %{limit} publicações agendadas para esse dia
over_total_limit: Tu excedeste o limite de %{limit} publicações agendadas
- too_soon: A data de agendamento tem de ser futura
self_destruct:
lead_html: Infelizmente, %{domain} vai fechar definitivamente. Se lá tinha conta, não pode continuar a usá-la, mas ainda pode pedir uma cópia dos seus dados.
title: Este servidor vai fechar
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index d4f202637b..37c51cf1b5 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -653,7 +653,6 @@ ro:
scheduled_statuses:
over_daily_limit: Ai depășit limita de %{limit} postări programate pentru acea zi
over_total_limit: Ai depășit limita de %{limit} postări programate
- too_soon: Data programată trebuie să fie în viitor
sessions:
activity: Ultima activitate
browser: Navigator
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index ade13952ca..4a1dbb1dc1 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1347,7 +1347,7 @@ ru:
edit:
add_keyword: Добавить ключевое слово
keywords: Ключевые слова
- statuses: Отдельные сообщения
+ statuses: Отдельные посты
statuses_hint_html: Этот фильтр применяется для выбора отдельных постов, независимо от того, соответствуют ли они ключевым словам ниже. Просмотрите или удалите посты из фильтра.
title: Изменить фильтр
errors:
@@ -1752,7 +1752,7 @@ ru:
scheduled_statuses:
over_daily_limit: Вы превысили лимит в %{limit} запланированных постов на указанный день
over_total_limit: Вы превысили лимит на %{limit} запланированных постов
- too_soon: Запланированная дата должна быть в будущем
+ too_soon: дата публикации должна быть в будущем
self_destruct:
lead_html: К сожалению, %{domain} закрывается навсегда. Если вас учётная запись находиться здесь вы не сможете продолжить использовать его, но вы можете запросить резервную копию ваших данных.
title: Этот сервер закрывается
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
index 38ede0a72c..c9f0053bc4 100644
--- a/config/locales/sc.yml
+++ b/config/locales/sc.yml
@@ -1066,7 +1066,6 @@ sc:
scheduled_statuses:
over_daily_limit: As superadu su lìmite de %{limit} publicatziones programmadas pro cudda die
over_total_limit: As superadu su lìmite de %{limit} tuts programmados
- too_soon: Sa data programmada depet èssere benidora
sessions:
activity: Ùrtima atividade
browser: Navigadore
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index ff3a730b17..be3383ea66 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -1306,7 +1306,6 @@ sco:
scheduled_statuses:
over_daily_limit: Ye'v went by the limit o %{limit} scheduled posts thit ye'r allooed fir the day
over_total_limit: Ye'v went by the limit o %{limit} scheduled posts
- too_soon: The schedult date haes tae be in the future
sessions:
activity: Last activity
browser: Brooser
diff --git a/config/locales/si.yml b/config/locales/si.yml
index cd4abf6451..5c31bc7e12 100644
--- a/config/locales/si.yml
+++ b/config/locales/si.yml
@@ -1176,8 +1176,6 @@ si:
content_warning: 'අන්තර්ගත අනතුරු ඇඟවීම:'
descriptions:
account: "@%{acct} වෙතින් ප්රසිද්ධ ලිපි"
- scheduled_statuses:
- too_soon: නියමිත දිනය අනාගතයේ විය යුතුය
sessions:
activity: අවසාන ක්රියාකාරකම
browser: අතිරික්සුව
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index a04db4b228..8678ac376d 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -3,12 +3,14 @@ el:
simple_form:
hints:
account:
+ attribution_domains_as_text: Μία ανά γραμμή. Προστατεύει από ψευδείς ιδιότητες.
discoverable: Οι δημόσιες δημοσιεύσεις και το προφίλ σου μπορεί να εμφανίζονται ή να συνιστώνται σε διάφορους τομείς του Mastodon και το προφίλ σου μπορεί να προτείνεται σε άλλους χρήστες.
display_name: Το πλήρες ή το αστείο σου όνομα.
fields: Η αρχική σου σελίδα, αντωνυμίες, ηλικία, ό,τι θες.
indexable: Οι δημόσιες δημοσιεύσεις σου μπορεί να εμφανιστούν στα αποτελέσματα αναζήτησης στο Mastodon. Άτομα που έχουν αλληλεπιδράσει με τις δημοσιεύσεις σου μπορεί να είναι σε θέση να τις αναζητήσουν όπως και να 'χει.
note: 'Μπορείς να @επισημάνεις άλλα άτομα ή #ετικέτες.'
show_collections: Οι χρήστες θα είναι σε θέση να περιηγηθούν στα άτομα που ακολουθείς και στους ακόλουθούς σου. Άτομα που ακολουθείς θα βλέπουν ότι τους ακολουθείς όπως και να 'χει.
+ unlocked: Οι χρήστες θα είναι σε θέση να σε ακολουθήσουν χωρίς να ζητούν έγκριση. Κατάργησε την επιλογή αν θες να αξιολογείς τα αιτήματα ακολούθησης και να επιλέξεις αν θα αποδεχθείς ή απορρίψεις νέους ακόλουθους.
account_alias:
acct: Όρισε το username@domain του λογαριασμού από τον οποίο θέλεις να μετακινηθείς
account_migration:
@@ -58,6 +60,7 @@ el:
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: Μπορείς να χρησιμοποιήσεις γράμματα, αριθμούς και κάτω παύλες
@@ -142,6 +145,7 @@ el:
url: Πού θα σταλούν τα γεγονότα
labels:
account:
+ attribution_domains_as_text: Ιστοσελίδες που επιτρέπεται να σου δώσουν εύσημα
discoverable: Παροχή προφίλ και αναρτήσεων σε αλγορίθμους ανακάλυψης
fields:
name: Περιγραφή
@@ -220,6 +224,7 @@ el:
setting_hide_network: Κρύψε τις διασυνδέσεις σου
setting_reduce_motion: Μείωση κίνησης κινουμένων στοιχείων
setting_system_font_ui: Χρήση της προεπιλεγμένης γραμματοσειράς του συστήματος
+ setting_system_scrollbars_ui: Χρήση προκαθορισμένης γραμμής κύλισης του συστήματος
setting_theme: Θέμα ιστότοπου
setting_trends: Εμφάνιση σημερινών τάσεων
setting_unfollow_modal: Επιβεβαίωση πριν τη διακοπή παρακολούθησης κάποιου
diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml
index 47a79edfdc..2278fda6da 100644
--- a/config/locales/simple_form.es-MX.yml
+++ b/config/locales/simple_form.es-MX.yml
@@ -60,7 +60,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_system_scrollbars_ui: Solo aplica para navegadores de escritorio basados en Safari y Chrome
+ setting_system_scrollbars_ui: Solo se aplica a los 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 las publicaciones de la línea de tiempo tras un clic en lugar de desplazar automáticamente el feed
username: Puedes usar letras, números y guiones bajos
@@ -224,7 +224,7 @@ es-MX:
setting_hide_network: Ocultar tu red
setting_reduce_motion: Reducir el movimiento de las animaciones
setting_system_font_ui: Utilizar la tipografía por defecto del sistema
- setting_system_scrollbars_ui: Utilizar barra de desplazamiento predeterminada del sistema
+ setting_system_scrollbars_ui: Usar la barra de desplazamiento por defecto del sistema
setting_theme: Tema del sitio
setting_trends: Mostrar las tendencias de hoy
setting_unfollow_modal: Mostrar diálogo de confirmación antes de dejar de seguir a alguien
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index b1fb6c3fc1..27c1a00370 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -60,6 +60,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_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
username: Puoi usare lettere, numeri e caratteri di sottolineatura
@@ -223,6 +224,7 @@ it:
setting_hide_network: Nascondi la tua rete
setting_reduce_motion: Riduci movimento nelle animazioni
setting_system_font_ui: Usa il carattere predefinito del sistema
+ setting_system_scrollbars_ui: Utilizza la barra di scorrimento predefinita del sistema
setting_theme: Tema del sito
setting_trends: Mostra tendenze di oggi
setting_unfollow_modal: Chiedi conferma prima di smettere di seguire qualcuno
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index c5ff55c15d..cf09812382 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -60,6 +60,7 @@ pl:
setting_display_media_default: Ukrywaj zawartość multimedialną oznaczoną jako wrażliwa
setting_display_media_hide_all: Zawsze ukrywaj zawartość multimedialną
setting_display_media_show_all: Zawsze pokazuj zawartość multimedialną
+ setting_system_scrollbars_ui: Stosuje się tylko do przeglądarek komputerowych opartych na Safari i Chrome
setting_use_blurhash: Gradienty są oparte na kolorach ukrywanej zawartości, ale uniewidaczniają wszystkie szczegóły
setting_use_pending_items: Ukryj aktualizacje osi czasu za kliknięciem, zamiast automatycznego przewijania strumienia
username: Możesz używać liter, cyfr i podkreślników
@@ -223,6 +224,7 @@ pl:
setting_hide_network: Ukryj swoją sieć
setting_reduce_motion: Ogranicz ruch w animacjach
setting_system_font_ui: Używaj domyślnej czcionki systemu
+ setting_system_scrollbars_ui: Używaj domyślnego paska przewijania systemu
setting_theme: Motyw strony
setting_trends: Pokazuj dzisiejsze „Na czasie”
setting_unfollow_modal: Pytaj o potwierdzenie przed cofnięciem obserwacji
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index 37626ff9fd..ae142826f4 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -60,6 +60,7 @@ ru:
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: Вы можете использовать буквы, цифры и знаки подчеркивания
@@ -223,6 +224,7 @@ ru:
setting_hide_network: Скрыть свои связи
setting_reduce_motion: Уменьшить движение в анимации
setting_system_font_ui: Использовать шрифт системы по умолчанию
+ setting_system_scrollbars_ui: Использовать системные полосы прокрутки
setting_theme: Тема сайта
setting_trends: Показывать сегодняшние тренды
setting_unfollow_modal: Всегда спрашивать перед отпиской от учётной записи
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index 3188db7b94..cbbb1556ee 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -8,7 +8,7 @@ zh-CN:
display_name: 你的全名或昵称。
fields: 你的主页、人称代词、年龄,以及任何你想要添加的内容。
indexable: 你的公开嘟文会出现在 Mastodon 的搜索结果中。无论是否勾选,与你的嘟文有过交互的人都可能通过搜索找到它们。
- note: '你可以提及 @其他人 或 #话题标签 。'
+ note: '你可以提及 @其他人 或 #话题 。'
show_collections: 人们将能够浏览你的关注和追随者。你关注的人会看到你关注他们。
unlocked: 人们将能够在不请求批准的情况下关注你。如果你希望审核关注请求并选择接受或拒绝新的关注者,请取消勾选此项。
account_alias:
@@ -16,7 +16,7 @@ zh-CN:
account_migration:
acct: 指定你想迁移过去的目标账号:用户名@站点域名
account_warning_preset:
- text: 你可以使用嘟文格式,例如加入 URL、话题标签和“@”
+ text: 你可以使用嘟文格式,例如加入 URL、话题和“@”
title: 可选。对接收者不可见
admin_account_action:
include_statuses: 用户将会看到哪些嘟文导致了管理操作或警告
@@ -88,7 +88,7 @@ zh-CN:
favicon: WEBP、PNG、GIF 或 JPG。使用自定义图标覆盖 Mastodon 的默认图标。
mascot: 覆盖高级网页界面中的绘图形象。
media_cache_retention_period: 来自外站用户嘟文的媒体文件将被缓存到你的实例上。当该值被设为正值时,缓存的媒体文件将在指定天数后被清除。如果媒体文件在被清除后重新被请求,且源站内容仍然可用,它将被重新下载。由于链接预览卡拉取第三方站点的频率受到限制,建议将此值设置为至少 14 天,如果小于该值,链接预览卡将不会按需更新。
- peers_api_enabled: 此服务器在联邦宇宙中遇到的实例列表。 此处不包含关于您是否与给定服务器联合的数据,只是您的服务器知道它。 这由收集一般意义上的联邦统计信息的服务使用。
+ peers_api_enabled: 本站在联邦宇宙中遇到的站点列表。 此处不包含关于您是否与给定站点联合的数据,只是您的实例知道它。 这由收集一般意义上的联合统计信息的服务使用。
profile_directory: 个人资料目录会列出所有选择可被发现的用户。
require_invite_text: 当注册需要手动批准时,将“你为什么想要加入?”设为必填项
site_contact_email: 他人需要询恰法务或支持信息时的联络方式
@@ -240,7 +240,7 @@ zh-CN:
email_domain_block:
with_dns_records: 包括该域名的 MX 记录和 IP 地址
featured_tag:
- name: 话题标签
+ name: 话题
filters:
actions:
hide: 完全隐藏
@@ -260,8 +260,8 @@ zh-CN:
profile_directory: 启用用户目录
registrations_mode: 谁可以注册
require_invite_text: 注册时需要提供理由
- show_domain_blocks: 显示域名屏蔽列表
- show_domain_blocks_rationale: 显示域名屏蔽原因
+ show_domain_blocks: 显示站点屏蔽列表
+ show_domain_blocks_rationale: 显示站点屏蔽原因
site_contact_email: 联系邮箱
site_contact_username: 用于联系的公开用户名
site_extended_description: 完整说明
@@ -315,10 +315,10 @@ zh-CN:
indexable: 允许搜索引擎索引账户页
show_application: 显示你发嘟所用的应用
tag:
- listable: 允许这个话题标签在用户目录中显示
- name: 话题标签
+ listable: 允许这个话题在用户目录中显示
+ name: 话题
trendable: 允许在热门下显示此话题
- usable: 允许本站嘟文使用此话题标签
+ usable: 允许本站嘟文使用此话题
user:
role: 角色
time_zone: 时区
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index c946b8abf1..62d9eba758 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -1194,7 +1194,6 @@ sk:
scheduled_statuses:
over_daily_limit: Prekročil/a si denný limit %{limit} predplánovaných príspevkov
over_total_limit: Prekročil/a si limit %{limit} predplánovaných príspevkov
- too_soon: Dátum musí byť stanovený do budúcnosti
sessions:
activity: Najnovšia aktivita
browser: Prehliadač
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 909b89e5a9..b29808dc14 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -1654,7 +1654,6 @@ sl:
scheduled_statuses:
over_daily_limit: Za ta dan ste presegli omejitev %{limit} načrtovanih objav
over_total_limit: Presegli ste omejitev %{limit} načrtovanih objav
- too_soon: Načrtovani datum mora biti v prihodnosti
self_destruct:
lead_html: Na žalost se %{domain} za vedno zapira. Če ste tu imeli svoj račun, ga v prihodnje ne boste mogli več uporabljati. Zahtevate lahko kopijo svojih podatkov.
title: Ta strežnik se zapira
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index e9247ef365..afce58503d 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -1670,7 +1670,7 @@ sq:
scheduled_statuses:
over_daily_limit: Keni tejkaluar kufirin e %{limit} mesazheve të planifikuara për atë ditë
over_total_limit: Keni tejkaluar kufirin prej %{limit} mesazhesh të planifikuara
- too_soon: Data e planifikimit duhet të bjerë në të ardhmen
+ too_soon: data duhet të jetë në të ardhmen
self_destruct:
lead_html: Mjerisht, %{domain} po mbyllet përgjithmonë. Nëse patët një llogari këtu, s’do të jeni në gjendje të vazhdoni ta përdorni, por mundeni ende të kërkoni një kopjeruajtje të të dhënave tuaja.
title: Ky shërbyes po mbyllet
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 0b3043c47b..37c531b207 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -1544,7 +1544,6 @@ sr-Latn:
scheduled_statuses:
over_daily_limit: Prekoračili ste granicu od %{limit} planiranih objava za danas
over_total_limit: Prekoračili ste granicu od %{limit} planiranih objava
- too_soon: Planirani datum mora biti u budućnosti
self_destruct:
lead_html: Nažalost, %{domain} se trajno zatvara. Ako ste tamo imali nalog, nećete moći da nastavite da ga koristite, ali i dalje možete da zatražite rezervnu kopiju svojih podataka.
title: Ovaj server se zatvara
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index e077a40eee..7a8469d645 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -1574,7 +1574,6 @@ sr:
scheduled_statuses:
over_daily_limit: Прекорачили сте границу од %{limit} планираних објава за данас
over_total_limit: Прекорачили сте границу од %{limit} планираних објава
- too_soon: Планирани датум мора бити у будућности
self_destruct:
lead_html: Нажалост, %{domain} се трајно затвара. Ако сте тамо имали налог, нећете моћи да наставите да га користите, али и даље можете да затражите резервну копију својих података.
title: Овај сервер се затвара
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 173dd24c88..8d4aa7f7da 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1676,7 +1676,6 @@ sv:
scheduled_statuses:
over_daily_limit: Du har överskridit dygnsgränsen på %{limit} schemalagda inlägg
over_total_limit: Du har överskridit gränsen på %{limit} schemalagda inlägg
- too_soon: Schemaläggningsdatumet måste vara i framtiden
self_destruct:
lead_html: Tyvärr stänger %{domain} för gott. Om du hade ett konto där kommer du inte längre kunna använda det, men du kan fortfarande begära en säkerhetskopia av din data.
title: Denna server stänger ned
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 6834f8ac26..d0590d19ef 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -1638,7 +1638,6 @@ th:
scheduled_statuses:
over_daily_limit: คุณมีโพสต์ที่จัดกำหนดการไว้เกินขีดจำกัดที่ %{limit} สำหรับวันนี้แล้ว
over_total_limit: คุณมีโพสต์ที่จัดกำหนดการไว้เกินขีดจำกัดที่ %{limit} แล้ว
- too_soon: วันที่จัดกำหนดการต้องอยู่ในอนาคต
self_destruct:
lead_html: น่าเสียดาย %{domain} กำลังปิดตัวลงอย่างถาวร หากคุณมีบัญชีที่นั่น คุณจะไม่สามารถใช้บัญชีต่อไปได้ แต่คุณยังคงสามารถขอข้อมูลสำรองของข้อมูลของคุณ
title: เซิร์ฟเวอร์นี้กำลังปิดตัวลง
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 48f6c5e240..18e8dd1338 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1676,7 +1676,7 @@ tr:
scheduled_statuses:
over_daily_limit: Bugün için %{limit} zamanlanmış gönderi sınırını aştınız
over_total_limit: "%{limit} zamanlanmış gönderi sınırını aştınız"
- too_soon: Programlanan tarih bugünden ileri bir tarihte olmalıdır
+ too_soon: tarih ileri bir tarih olmalıdır
self_destruct:
lead_html: Maalesef %{domain} kalıcı olarak kapanıyor. Eğer orada hesabınız varsa, onu kullanmaya devam edemeyeceksiniz, ancak yine de verinizin bir yedeğini isteyebilirsiniz.
title: Bu sunucu kapanıyor
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 68ca10c0cc..40127b8917 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1675,7 +1675,7 @@ uk:
scheduled_statuses:
over_daily_limit: Ви перевищили ліміт в %{limit} запланованих дописів на сьогодні
over_total_limit: Ви перевищили ліміт в %{limit} запланованих дописів
- too_soon: Запланована дата має бути в майбутньому
+ too_soon: дата повинна бути в майбутньому
self_destruct:
lead_html: На жаль, %{domain} остаточно закривається. Якщо у вас є обліковий запис там, ви не зможете продовжити його використання, але ви все ще можете надіслати запит на резервну копію даних.
title: Сервер закривається
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index acc69f96cd..b226c44701 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1638,7 +1638,7 @@ vi:
scheduled_statuses:
over_daily_limit: Bạn đã vượt qua giới hạn được lên lịch đăng tút %{limit} hôm nay
over_total_limit: Bạn đã vượt quá giới hạn %{limit} của các tút được lên lịch
- too_soon: Ngày lên lịch phải trong tương lai
+ too_soon: ngày phải ở tương lai
self_destruct:
lead_html: Rất tiếc, %{domain}đã đóng cửa vĩnh viễn. Nếu bạn có tài khoản ở đó, bạn sẽ không thể tiếp tục sử dụng tài khoản đó nhưng bạn vẫn có thể yêu cầu bản sao lưu dữ liệu của mình.
title: Máy chủ đang đóng cửa
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 9f4b751044..7ce3eab939 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -164,7 +164,7 @@ zh-CN:
unsubscribe: 取消订阅
unsuspended_msg: 已成功取消封禁 %{username} 的账号
username: 用户名
- view_domain: 查看域名摘要
+ view_domain: 查看站点摘要
warn: 警告
web: 站内页面
whitelisted: 允许联合
@@ -180,8 +180,8 @@ zh-CN:
create_announcement: 创建公告
create_canonical_email_block: 封禁新的邮箱
create_custom_emoji: 创建自定义表情符号
- create_domain_allow: 允许新域名
- create_domain_block: 封禁新域名
+ create_domain_allow: 允许联合
+ create_domain_block: 屏蔽站点
create_email_domain_block: 封禁新的邮箱域名
create_ip_block: 新建 IP 规则
create_relay: 创建中继站
@@ -191,10 +191,10 @@ zh-CN:
destroy_announcement: 删除公告
destroy_canonical_email_block: 解除邮箱封禁
destroy_custom_emoji: 删除自定义表情符号
- destroy_domain_allow: 解除域名允许
- destroy_domain_block: 解除域名封禁
+ destroy_domain_allow: 撤销联合许可
+ destroy_domain_block: 撤销站点屏蔽
destroy_email_domain_block: 解除邮箱域名封禁
- destroy_instance: 删除实例
+ destroy_instance: 清除实例
destroy_ip_block: 删除 IP 规则
destroy_relay: 删除中继站
destroy_status: 删除嘟文
@@ -228,7 +228,7 @@ zh-CN:
unsuspend_account: 解除账号封禁
update_announcement: 更新公告
update_custom_emoji: 更新自定义表情符号
- update_domain_block: 更新域名屏蔽
+ update_domain_block: 更新站点屏蔽
update_ip_block: 编辑 IP 封禁规则
update_report: 更新举报
update_status: 更新嘟文
@@ -244,8 +244,8 @@ zh-CN:
create_announcement_html: "%{name} 创建了新公告 %{target}"
create_canonical_email_block_html: "%{name} 封禁了 hash 为 %{target} 的邮箱地址"
create_custom_emoji_html: "%{name} 添加了新的自定义表情 %{target}"
- create_domain_allow_html: "%{name} 允许了与实例 %{target} 的联合"
- create_domain_block_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}"
@@ -255,10 +255,10 @@ zh-CN:
destroy_announcement_html: "%{name} 删除了公告 %{target}"
destroy_canonical_email_block_html: "%{name} 解封了 hash 为 %{target} 的邮箱地址"
destroy_custom_emoji_html: "%{name} 删除了自定义表情 %{target}"
- destroy_domain_allow_html: "%{name} 拒绝了与实例 %{target} 的联合"
- destroy_domain_block_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_instance_html: "%{name} 清除了实例 %{target}"
destroy_ip_block_html: "%{name} 删除了 IP %{target} 的规则"
destroy_relay_html: "%{name} 删除了中继站 %{target}"
destroy_status_html: "%{name} 删除了 %{target} 的嘟文"
@@ -366,7 +366,7 @@ zh-CN:
pending_reports_html:
other: "%{count} 个待处理举报"
pending_tags_html:
- other: "%{count} 个待处理话题标签"
+ other: "%{count} 个待处理话题"
pending_users_html:
other: "%{count} 个待处理用户"
resolved_reports: 已处理的举报
@@ -382,27 +382,27 @@ zh-CN:
empty: 未找到申诉。
title: 申诉
domain_allows:
- add_new: 允许与此实例联合
- created_msg: 实例已被允许联合
- destroyed_msg: 实例已被禁止联合
+ add_new: 允许与此站点联合
+ created_msg: 站点已被允许联合
+ destroyed_msg: 站点已被禁止联合
export: 导出
import: 导入
- undo: 禁止与此实例联合
+ undo: 禁止与此站点联合
domain_blocks:
- add_new: 添加新屏蔽域名
+ add_new: 添加新站点屏蔽
confirm_suspension:
cancel: 取消
confirm: 封禁
- permanent_action: 撤销暂停不会恢复任何数据或关系。
- preamble_html: 你将要暂停 %{domain} 及其子域。
- remove_all_data: 这将从你的实例上删除此域名下账户的所有内容、媒体和个人资料数据。
- stop_communication: 你的实例将停止与这些实例的通信。
- title: 确认对 %{domain} 的封锁
- undo_relationships: 这将解除你的实例与这些实例上账户之间的任何关注。
- created_msg: 正在进行域名屏蔽
- destroyed_msg: 域名屏蔽已撤销
+ permanent_action: 撤销屏蔽不会恢复任何数据或关系。
+ preamble_html: 你即将封禁 %{domain} 及其子域名上的站点。
+ remove_all_data: 这将从你的站点上删除对方站点的账户的全部内容、媒体与个人资料数据。
+ stop_communication: 你的站点将停止与这些站点的通信。
+ title: 确认屏蔽 %{domain}
+ undo_relationships: 这将解除你的站点与对方站点的账户之间的任何关注。
+ created_msg: 正在执行站点屏蔽
+ destroyed_msg: 站点屏蔽已被撤销
domain: 域名
- edit: 编辑域名屏蔽
+ edit: 编辑站点屏蔽列表
existing_domain_block: 你已经对 %{name} 设置了更严格的限制。
existing_domain_block_html: 你已经对 %{name} 施加了更严格的限制,你需要先 解封。
export: 导出
@@ -421,7 +421,7 @@ zh-CN:
obfuscate: 混淆域名
obfuscate_hint: 如果启用了域名列表公开限制,就部分混淆列表中的域名
private_comment: 私密评论
- private_comment_hint: 给这一域名限制添加备注,供监察员内部使用
+ private_comment_hint: 给这一域名限制添加备注,供管理员内部使用
public_comment: 公开评论
public_comment_hint: 给这一域名限制添加公开的评论,在公告域名限制列表开启时这些评论将会公开可见。
reject_media: 拒绝接收媒体文件
@@ -475,14 +475,14 @@ zh-CN:
unsuppress: 恢复推荐关注
instances:
audit_log:
- title: 近期审计日志
- view_all: 查看完整审计日志
+ title: 近期审核记录
+ view_all: 查看完整审核记录
availability:
description_html:
- other: 如果连续 %{count} 天 均无法成功向该域名投递消息,则将不再尝试向其投递,直至收到来自该域名的消息。
+ other: 若连续 %{count} 天 均无法成功向该站点投递消息,则将不再尝试向其投递,直至收到来自该站点的消息。
failure_threshold_reached: 于 %{date} 达到失败阈值。
failures_recorded:
- other: 在 %{count} 天中尝试失败。
+ other: 连续 %{count} 天投递失败。
no_failures_recorded: 没有失败记录。
title: 可用性
warning: 上一次尝试连接此服务器失败
@@ -490,7 +490,7 @@ zh-CN:
back_to_limited: 受限
back_to_warning: 警告
by_domain: 域名
- confirm_purge: 你确认要从这个实例中永久地删除数据吗?
+ confirm_purge: 确定要删除此站点的全部数据吗?
content_policies:
comment: 内部备注
description_html: 你可以设置应用于此域名所有账号和其所有子域名的内容策略。
@@ -502,12 +502,12 @@ zh-CN:
suspend: 封禁
policy: 策略
reason: 公开理由
- title: 本站点内容发布规则
+ title: 内容策略
dashboard:
instance_accounts_dimension: 被关注最多的账号
instance_accounts_measure: 存储的账号
- instance_followers_measure: 本站关注者
- instance_follows_measure: 对方关注者
+ instance_followers_measure: 本站在对方站点的关注者
+ instance_follows_measure: 对方在本站的关注者
instance_languages_dimension: 语言排行
instance_media_attachments_measure: 存储的媒体文件
instance_reports_measure: 关于对方的举报
@@ -515,14 +515,14 @@ zh-CN:
delivery:
all: 全部
clear: 清理投递错误
- failing: 发送失败
+ failing: 投递失败
restart: 重新投递
stop: 停止投递
unavailable: 不可用
delivery_available: 可投递
delivery_error_days: 投递错误天数
delivery_error_hint: 如果投递已不可用 %{count} 天,它将被自动标记为无法投递。
- destroyed_msg: "%{domain} 中的数据现在正在排队等待被立刻删除。"
+ destroyed_msg: 来自 %{domain} 的数据已被加入删除队列,即将删除。
empty: 暂无域名。
known_accounts:
other: "%{count} 个已知账号"
@@ -532,16 +532,16 @@ zh-CN:
title: 审核
private_comment: 私密评论
public_comment: 公开评论
- purge: 删除
+ purge: 清除
purge_description_html: 如果你确认此域名已永久离线,可以从存储中删除此域名的所有账号记录和相关数据。这将会需要一段时间。
- title: 已知实例
- total_blocked_by_us: 被我站屏蔽的
+ title: 联合
+ total_blocked_by_us: 被本站屏蔽的
total_followed_by_them: 被对方关注的
- total_followed_by_us: 被我站关注的
+ total_followed_by_us: 被本站关注的
total_reported: 关于对方的举报
total_storage: 媒体文件
totals_time_period_hint_html: 下方显示的总数来自全部历史数据。
- unknown_instance: 此服务器上目前没有此域名的记录。
+ unknown_instance: 本站目前没有此站点的记录。
invites:
deactivate_all: 全部停用
filter:
@@ -608,7 +608,7 @@ zh-CN:
remote: 已在其所属服务器被封禁
are_you_sure: 你确定吗?
assign_to_self: 接管
- assigned: 已接管的监察员
+ assigned: 已接管的管理员
by_target_domain: 被举报账户的域名
cancel: 取消
category: 类别
@@ -634,7 +634,7 @@ zh-CN:
delete: 删除
placeholder: 描述已经执行的操作,或其他任何相关的跟进情况…
title: 备注
- notes_description_html: 查看备注或向其他监察员留言
+ notes_description_html: 查看备注或向其他管理员留言
processed_msg: '举报 #%{id} 处理成功'
quick_actions_description_html: 快捷选择操作或向下滚动以查看举报内容:
remote_user_placeholder: 来自 %{instance} 的外站用户
@@ -707,7 +707,7 @@ zh-CN:
manage_custom_emojis: 管理自定义表情
manage_custom_emojis_description: 允许用户管理服务器上的自定义表情
manage_federation: 管理联合
- manage_federation_description: 允许用户屏蔽或允许同其他域名的邦联,并控制消息投递能力
+ manage_federation_description: 允许用户禁止或允许本站同其他站点的联合,并控制消息投递能力
manage_invites: 管理邀请
manage_invites_description: 允许用户浏览和停用邀请链接
manage_reports: 管理举报
@@ -909,8 +909,8 @@ zh-CN:
reset: 重置
review: 审核状态
search: 搜索
- title: 话题标签
- updated_msg: 话题标签设置更新成功
+ title: 话题
+ updated_msg: 话题设置更新成功
title: 管理
trends:
allow: 允许
@@ -940,7 +940,7 @@ zh-CN:
pending_review: 待审核
preview_card_providers:
allowed: 来自此发布者的链接可进入流行列表
- description_html: 这些域名所属的链接经常在此服务器上被分享。在对应域名获得批准前链接不会公开显示在热门中。批准和拒绝操作也会对子域名生效。
+ description_html: 以下域名是用户在本站分享的链接的常见来源。在对应域名获得批准前链接不会公开显示在热门中。批准和拒绝操作也会对子域名生效。
rejected: 来自此发布者的链接不会进入热门列表
title: 发布者
rejected: 已拒绝
@@ -1026,17 +1026,17 @@ zh-CN:
subject: "%{username} 对 %{instance} 的审核结果提出了申诉"
new_critical_software_updates:
body: 新的紧急更新版本Mastodon已经发布,你可能希望尽快更新!
- subject: 适用于 %{instance} 的Mastodon紧急更新已经可用。
+ subject: "%{instance} 有 Mastodon 的紧急更新!"
new_pending_account:
body: 新账户的详细信息如下。你可以批准或拒绝此申请。
- subject: 在 %{instance} 上有新账号 (%{username}) 需要审核
+ subject: "%{instance} 上有新账号 (%{username}) 需要审核"
new_report:
body: "%{reporter} 举报了用户 %{target}"
body_remote: 来自 %{domain} 的用户举报了用户 %{target}
subject: 来自 %{instance} 的用户举报(#%{id})
new_software_updates:
body: 新的 Mastodon 版本已发布,你可能想要更新!
- subject: 适用于 %{instance} 的Mastodon版本更新已经可用!
+ subject: "%{instance} 有 Mastodon版本更新!"
new_trends:
body: 以下项目需要审核才能公开显示:
new_trending_links:
@@ -1087,7 +1087,7 @@ zh-CN:
hint_html: 只剩最后一件事了!我们需要确认你是一个人类(这样我们才能阻止恶意访问!)。请输入下面的验证码,然后点击“继续”。
title: 安全检查
confirmations:
- awaiting_review: 你的邮箱地址已确认!%{domain} 的工作人员正在审核你的注册信息。如果他们批准了你的账户,你将收到一封邮件通知!
+ awaiting_review: 邮箱确认成功!%{domain} 的工作人员正在审核你的注册信息。如果他们批准了你的账户,你将收到一封邮件通知!
awaiting_review_title: 你的注册申请正在审核中
clicking_this_link: 点击此链接
login_link: 登录
@@ -1132,7 +1132,7 @@ zh-CN:
back: 返回
invited_by: 欢迎加入%{domain},你是通过以下用户的邀请加入的:
preamble: 以下规则由 %{domain} 的管理员设定并执行。
- preamble_invited: 在你继续之前,请考虑 %{domain} 的管理员设定的基本规则。
+ preamble_invited: 在继续操作前,请先阅读并同意 %{domain} 管理员设置的基本规则。
title: 一些基本规则。
title_invited: 通过邀请加入
security: 账户安全
@@ -1144,10 +1144,10 @@ zh-CN:
new_confirmation_instructions_sent: 你将在几分钟内收到一封带有确认链接的新邮件!
title: 请检查你的收件箱
sign_in:
- preamble_html: 使用你在 %{domain} 的账户和密码登录。如果你的账户托管在其他的服务器上,你将无法在此登录。
+ preamble_html: 使用你在 %{domain} 的账户和密码登录。如果你的账户是在其他站点上注册的,你将无法在此登录。
title: 登录到 %{domain}
sign_up:
- manual_review: 你在 %{domain} 上的注册需要经由管理人员手动审核。 为了帮助我们处理你的注册,请稍微介绍一下你为什么想在 %{domain} 上注册。
+ manual_review: 你在 %{domain} 上的注册需要经由管理人员手动审核。 为了帮助我们处理你的注册,请简要说明你为什么想在 %{domain} 上注册。
preamble: 有了这个Mastodon服务器上的账户,你就可以关注Mastodon网络上的任何其他人,无论他们的账户在哪里。
title: 让我们在 %{domain} 上开始。
status:
@@ -1156,7 +1156,7 @@ zh-CN:
functional: 你的账号可以正常使用了。
pending: 站务人员正在审核你的申请。这需要花点时间。在申请被批准后,你将收到一封邮件。
redirecting_to: 你的账户无效,因为它已被设置为跳转到 %{acct}
- self_destruct: 由于 %{domain} 即将关闭,你只能获得对你本人账号的有限访问权限。
+ self_destruct: "%{domain} 即将关闭,你只能获得对你自己的账号的有限访问权限。"
view_strikes: 查看针对你账号的处罚记录
too_fast: 表单提交过快,请重试。
use_security_key: 使用安全密钥
@@ -1224,7 +1224,7 @@ zh-CN:
approve_appeal: 批准申诉
associated_report: 相关举报
created_at: 日期
- description_html: 这些是针对你的账户采取的行动和警告,已经由 %{instance} 的工作人员发送给你。
+ description_html: 以下是针对你的账户采取的行动和警告,已经由 %{instance} 的工作人员发送给你。
recipient: 发送至
reject_appeal: 驳回申诉
status: '嘟文 #%{id}'
@@ -1274,15 +1274,15 @@ zh-CN:
blocks: 屏蔽的用户
bookmarks: 收藏
csv: CSV
- domain_blocks: 域名屏蔽
+ domain_blocks: 站点屏蔽列表
lists: 列表
mutes: 已被你隐藏的
storage: 媒体文件存储
featured_tags:
add_new: 添加新条目
errors:
- limit: 你所推荐的话题标签数已达上限
- hint_html: "什么是精选话题标签? 它们被显示在你的公开个人资料中的突出位置,人们可以在这些标签下浏览你的公共嘟文。 它们是跟踪创作或长期项目的进度的重要工具。"
+ limit: 你所推荐的话题数已达上限
+ hint_html: "什么是精选话题? 它们被显示在你的公开个人资料中的突出位置,人们可以在这些标签下浏览你的公共嘟文。 它们是跟踪创作或长期项目的进度的重要工具。"
filters:
contexts:
account: 账户
@@ -1363,7 +1363,7 @@ zh-CN:
bookmarks_html:
other: 你即将使用来自 %{filename} 的最多 %{count} 条嘟文替换你的收藏列表。
domain_blocking_html:
- other: 你即将使用来自 %{filename} 的最多 %{count} 个域名替换你的域名屏蔽列表。
+ other: 你即将使用来自 %{filename} 的最多 %{count} 个站点域名替换你的站点屏蔽列表。
following_html:
other: 你即将关注来自 %{filename} 的最多 %{count} 个账户,并停止关注其他所有人。
lists_html:
@@ -1376,7 +1376,7 @@ zh-CN:
bookmarks_html:
other: 你即将把来自 %{filename} 的 %{count} 篇嘟文添加到你的收藏夹中。
domain_blocking_html:
- other: 你即将屏蔽来自 %{filename} 的最多 %{count} 个域名。
+ other: 你即将屏蔽来自 %{filename} 的最多 %{count} 个站点。
following_html:
other: 你即将关注来自 %{filename} 的最多 %{count} 个账号。
lists_html:
@@ -1396,7 +1396,7 @@ zh-CN:
titles:
blocking: 正在导入被屏蔽的账户
bookmarks: 正在导入收藏
- domain_blocking: 正在导入被屏蔽的域名
+ domain_blocking: 正在导入站点屏蔽列表
following: 正在导入关注的账户
lists: 导入列表
muting: 正在导入隐藏的账户
@@ -1407,7 +1407,7 @@ zh-CN:
types:
blocking: 屏蔽列表
bookmarks: 收藏
- domain_blocking: 域名屏蔽列表
+ domain_blocking: 站点屏蔽列表
following: 关注列表
lists: 列表
muting: 隐藏列表
@@ -1621,7 +1621,7 @@ zh-CN:
mutual: 互相关注
primary: 主要
relationship: 关系
- remove_selected_domains: 从选定的域名中删除所有关注者
+ remove_selected_domains: 删除在选定站点中的所有关注者
remove_selected_followers: 移除选中的关注者
remove_selected_follows: 取消关注所选用户
status: 账户状态
@@ -1638,7 +1638,7 @@ zh-CN:
scheduled_statuses:
over_daily_limit: 你已超出每日定时嘟文的上限(%{limit} 条)
over_total_limit: 你已超出定时嘟文的上限(%{limit} 条)
- too_soon: 所定的时间必须在未来
+ too_soon: 日期必须晚于当前时间
self_destruct:
lead_html: 很遗憾,%{domain} 即将永久关闭。 如果你在其中设有账号,那么你将无法再继续使用,但你仍可以请求获得本人数据的备份。
title: 此服务器即将关闭
@@ -1699,7 +1699,7 @@ zh-CN:
development: 开发
edit_profile: 更改个人资料
export: 导出
- featured_tags: 精选话题标签
+ featured_tags: 精选话题
import: 导入
import_and_export: 导入与导出
migrate: 账户迁移
@@ -1720,7 +1720,7 @@ zh-CN:
user_domain_block: 你屏蔽了 %{target_name}
lost_followers: 失去的关注者
lost_follows: 失去的关注
- preamble: 当你屏蔽一个域名或你的管理员决定封禁一个外站服务器时,你可能会失去关注和粉丝。在这种情况下,你可以下载被切断的关系的列表,进行检查以便导入另一个服务器。
+ preamble: 如果你屏蔽了某个站点,或者管理员封禁了某个站点,你可能会丢失一部分关注和关注者。你可以下载联系被中断的账户列表,进行检查并导入到其他站点。
purged: 关于此服务器的信息已被你所在服务器的管理员清除。
type: 事件
statuses:
@@ -1736,7 +1736,7 @@ zh-CN:
content_warning: 内容警告:%{warning}
default_language: 与界面显示语言相同
disallowed_hashtags:
- other: 包含了这些禁止的话题标签:%{tags}
+ other: 包含以下被禁止的话题:%{tags}
edited_at_html: 编辑于 %{date}
errors:
in_reply_not_found: 你回复的嘟文似乎不存在
@@ -1864,9 +1864,9 @@ zh-CN:
spam: 垃圾信息
violation: 内容违反了以下社区准则
explanation:
- delete_statuses: 你的一些嘟文被发现违反了一条或多条社区准则,并已被 %{instance} 的监察员删除。
+ delete_statuses: 你的一些嘟文被发现违反了一条或多条社区准则,并已被 %{instance} 的管理员删除。
disable: 你不能再使用你的账户,但你的个人资料和其他数据保持不变。你可以请求数据备份,更改账户设置或删除账户。
- mark_statuses_as_sensitive: 你的一些嘟文已经被 %{instance} 检察员标记为敏感内容。这意味着别人需要在嘟文中点击媒体,才能显示媒体预览。你可以在今后发布嘟文时自行将媒体标记为敏感内容。
+ mark_statuses_as_sensitive: 你的一些嘟文已经被 %{instance} 管理员标记为敏感内容。这意味着别人需要在嘟文中点击媒体,才能显示媒体预览。你可以在今后发布嘟文时自行将媒体标记为敏感内容。
sensitive: 即刻起,你上传的所有媒体文件都将被标记为敏感内容并隐藏,在点击警告后才能查看。
silence: 你可以继续使用你的账号,但只有已关注你的人才能在看到你在此服务器上的嘟文,并且你会被排除在各类公共列表之外。其他用户仍可以手动关注你。
suspend: 你不能再使用你的账户,并且你的个人资料和其他数据都将无法访问。在大约30天内,你仍可以登录并请求数据备份,之后相关数据将被完全删除。我们会保留一些基础数据以避免封禁失效。
@@ -1917,8 +1917,8 @@ zh-CN:
hashtags_recent_count:
other: 过去2天内有 %{people} 人
hashtags_subtitle: 探索过去2天以来的热门内容
- hashtags_title: 热门话题标签
- hashtags_view_more: 查看更多热门话题标签
+ hashtags_title: 热门话题
+ hashtags_view_more: 查看更多热门话题
post_action: 撰写
post_step: 向世界打个招呼吧。
post_title: 发布你的第一条嘟文
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 752c9b5cbf..cff96797ee 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1489,7 +1489,6 @@ zh-HK:
scheduled_statuses:
over_daily_limit: 你已經超越了當天排定發文的限額 (%{limit})
over_total_limit: 你已經超越了排定發文的限額 (%{limit})
- too_soon: 不可以改變過去哦,嘟文只可以排定在未來
self_destruct:
lead_html: 很遺憾,%{domain} 即將永久停止服務。如果你在該處擁有帳號,你將無法繼續使用它,但你仍然可以要求備份你的數據。
title: 這個伺服器即將停止服務
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index d14bfee1b4..6de2e0fd52 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -1640,7 +1640,7 @@ zh-TW:
scheduled_statuses:
over_daily_limit: 您已經超過了本日排定發嘟的限額 (%{limit})
over_total_limit: 您已經超過排程發嘟的限額 (%{limit})
- too_soon: 嘟文不可以改變過去哦,只能預定未來 (咦)
+ too_soon: 日期必須為未來
self_destruct:
lead_html: 很遺憾,%{domain} 即將永久停止服務。如果您於該伺服器擁有帳號,您將無法繼續使用它,但您仍然可以請求您的資料備份。
title: 這個伺服器即將停止服務
From 21f678049866dd9e61287c88cbfe34d271ae2d31 Mon Sep 17 00:00:00 2001
From: Claire
Date: Thu, 5 Dec 2024 10:38:48 +0100
Subject: [PATCH 029/175] Fix deletion of unconfirmed users with Webauthn set
(#33186)
---
app/workers/scheduler/user_cleanup_scheduler.rb | 1 +
spec/workers/scheduler/user_cleanup_scheduler_spec.rb | 3 +++
2 files changed, 4 insertions(+)
diff --git a/app/workers/scheduler/user_cleanup_scheduler.rb b/app/workers/scheduler/user_cleanup_scheduler.rb
index f755128332..03544e2e98 100644
--- a/app/workers/scheduler/user_cleanup_scheduler.rb
+++ b/app/workers/scheduler/user_cleanup_scheduler.rb
@@ -19,6 +19,7 @@ class Scheduler::UserCleanupScheduler
User.unconfirmed.where(confirmation_sent_at: ..UNCONFIRMED_ACCOUNTS_MAX_AGE_DAYS.days.ago).find_in_batches do |batch|
# We have to do it separately because of missing database constraints
AccountModerationNote.where(target_account_id: batch.map(&:account_id)).delete_all
+ WebauthnCredential.where(user_id: batch.map(&:id)).delete_all
Account.where(id: batch.map(&:account_id)).delete_all
User.where(id: batch.map(&:id)).delete_all
end
diff --git a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
index b1be7c4611..604f528586 100644
--- a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
@@ -9,6 +9,7 @@ RSpec.describe Scheduler::UserCleanupScheduler do
let!(:old_unconfirmed_user) { Fabricate(:user) }
let!(:confirmed_user) { Fabricate(:user) }
let!(:moderation_note) { Fabricate(:account_moderation_note, account: Fabricate(:account), target_account: old_unconfirmed_user.account) }
+ let!(:webauthn_credential) { Fabricate(:webauthn_credential, user_id: old_unconfirmed_user.id) }
describe '#perform' do
before do
@@ -26,6 +27,8 @@ RSpec.describe Scheduler::UserCleanupScheduler do
.from(true).to(false)
expect { moderation_note.reload }
.to raise_error(ActiveRecord::RecordNotFound)
+ expect { webauthn_credential.reload }
+ .to raise_error(ActiveRecord::RecordNotFound)
expect_preservation_of(new_unconfirmed_user)
expect_preservation_of(confirmed_user)
end
From 86b45a4a4832ef5e6fe54b5c7441ea8afc9b5c2d Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Thu, 5 Dec 2024 06:34:49 -0500
Subject: [PATCH 030/175] Add rel alternate rss/json links to tags show html
page (#33179)
---
app/views/tags/show.html.haml | 2 ++
spec/requests/tags_spec.rb | 23 +++++++++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/app/views/tags/show.html.haml b/app/views/tags/show.html.haml
index 4b4967a8f5..bce1b4aa4d 100644
--- a/app/views/tags/show.html.haml
+++ b/app/views/tags/show.html.haml
@@ -1,4 +1,6 @@
- content_for :header_tags do
+ %link{ rel: :alternate, type: 'application/rss+xml', href: tag_url(@tag) }/
+ %link{ rel: :alternate, type: 'application/activity+json', href: tag_url(@tag) }/
%meta{ name: 'robots', content: 'noindex' }/
= render partial: 'shared/og'
diff --git a/spec/requests/tags_spec.rb b/spec/requests/tags_spec.rb
index fbd1f7d56e..f04d1bc2d3 100644
--- a/spec/requests/tags_spec.rb
+++ b/spec/requests/tags_spec.rb
@@ -7,6 +7,29 @@ RSpec.describe 'Tags' do
context 'when tag exists' do
let(:tag) { Fabricate :tag }
+ context 'with HTML format' do
+ before { get tag_path(tag) }
+
+ it 'returns page with links to alternate resources' do
+ expect(rss_links.first[:href])
+ .to eq(tag_url(tag))
+ expect(activity_json_links.first[:href])
+ .to eq(tag_url(tag))
+ end
+
+ def rss_links
+ alternate_links.css('[type="application/rss+xml"]')
+ end
+
+ def activity_json_links
+ alternate_links.css('[type="application/activity+json"]')
+ end
+
+ def alternate_links
+ response.parsed_body.css('link[rel=alternate]')
+ end
+ end
+
context 'with JSON format' do
before { get tag_path(tag, format: :json) }
From 1ee149d01568a46c35f1f31362d0ba76f57351f2 Mon Sep 17 00:00:00 2001
From: Claire
Date: Thu, 5 Dec 2024 12:40:30 +0100
Subject: [PATCH 031/175] Add explicit migration breakpoints (#33089)
---
.github/workflows/test-migrations.yml | 6 ++++++
lib/tasks/db.rake | 10 ++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/test-migrations.yml b/.github/workflows/test-migrations.yml
index 5b80fef037..306191fb8e 100644
--- a/.github/workflows/test-migrations.yml
+++ b/.github/workflows/test-migrations.yml
@@ -12,6 +12,7 @@ on:
- '**/*.rb'
- '.github/workflows/test-migrations.yml'
- 'lib/tasks/tests.rake'
+ - 'lib/tasks/db.rake'
pull_request:
paths:
@@ -90,6 +91,11 @@ jobs:
bin/rails db:drop
bin/rails db:create
SKIP_POST_DEPLOYMENT_MIGRATIONS=true bin/rails tests:migrations:prepare_database
+
+ # Migrate up to v4.2.0 breakpoint
+ bin/rails db:migrate VERSION=20230907150100
+
+ # Migrate the rest
SKIP_POST_DEPLOYMENT_MIGRATIONS=true bin/rails db:migrate
bin/rails db:migrate
bin/rails tests:migrations:check_database
diff --git a/lib/tasks/db.rake b/lib/tasks/db.rake
index 73de0c120f..3288e72d46 100644
--- a/lib/tasks/db.rake
+++ b/lib/tasks/db.rake
@@ -43,8 +43,14 @@ namespace :db do
end
task pre_migration_check: :environment do
- version = ActiveRecord::Base.connection.database_version
- abort 'This version of Mastodon requires PostgreSQL 12.0 or newer. Please update PostgreSQL before updating Mastodon.' if version < 120_000
+ pg_version = ActiveRecord::Base.connection.database_version
+ abort 'This version of Mastodon requires PostgreSQL 12.0 or newer. Please update PostgreSQL before updating Mastodon.' if pg_version < 120_000
+
+ schema_version = ActiveRecord::Migrator.current_version
+ abort <<~MESSAGE if ENV['SKIP_POST_DEPLOYMENT_MIGRATIONS'] && schema_version < 2023_09_07_150100
+ Zero-downtime migrations from Mastodon versions earlier than 4.2.0 are not supported.
+ Please update to Mastodon 4.2.x first or upgrade by stopping all services and running migrations without `SKIP_POST_DEPLOYMENT_MIGRATIONS`.
+ MESSAGE
end
Rake::Task['db:migrate'].enhance(['db:pre_migration_check'])
From b82c791770b4a158f02263c48d329e8742fe331f Mon Sep 17 00:00:00 2001
From: Mohammad Kazemi
Date: Thu, 5 Dec 2024 15:10:50 +0330
Subject: [PATCH 032/175] Set unicode-bidi of account header content to
plaintext in styles (#33088)
---
app/javascript/styles/mastodon/components.scss | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index a80bf59713..88839b0431 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -7762,6 +7762,7 @@ noscript {
p {
margin-bottom: 20px;
+ unicode-bidi: plaintext;
&:last-child {
margin-bottom: 0;
From 17c02c92105b8c1c34df507c1ba84f24069da5c2 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Thu, 5 Dec 2024 09:34:14 -0500
Subject: [PATCH 033/175] Remove `thing_type` and `thing_id` columns from
settings table (#31971)
---
app/models/setting.rb | 10 +++----
...4195405_migrate_hide_network_preference.rb | 7 +++++
...135901_remove_legacy_user_settings_data.rb | 16 ++++++++++
...925_remove_legacy_user_settings_columns.rb | 30 +++++++++++++++++++
db/schema.rb | 6 ++--
spec/fabricators/setting_fabricator.rb | 2 +-
6 files changed, 60 insertions(+), 11 deletions(-)
create mode 100644 db/migrate/20241205135901_remove_legacy_user_settings_data.rb
create mode 100644 db/post_migrate/20241205135925_remove_legacy_user_settings_columns.rb
diff --git a/app/models/setting.rb b/app/models/setting.rb
index 6af7a98c6d..12ff32f00a 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -7,10 +7,8 @@
# id :bigint(8) not null, primary key
# var :string not null
# value :text
-# thing_type :string
# created_at :datetime
# updated_at :datetime
-# thing_id :bigint(8)
#
# This file is derived from a fork of the `rails-settings-cached` gem available at
@@ -46,10 +44,10 @@ class Setting < ApplicationRecord
after_commit :rewrite_cache, on: %i(create update)
after_commit :expire_cache, on: %i(destroy)
- # Settings are server-wide settings only, but they were previously
- # used for users too. This can be dropped later with a database
- # migration dropping any scoped setting.
- default_scope { where(thing_type: nil, thing_id: nil) }
+ self.ignored_columns += %w(
+ thing_id
+ thing_type
+ )
class << self
# get or set a variable with the variable as the called method
diff --git a/db/migrate/20220304195405_migrate_hide_network_preference.rb b/db/migrate/20220304195405_migrate_hide_network_preference.rb
index 0083e0422a..996b7d78ab 100644
--- a/db/migrate/20220304195405_migrate_hide_network_preference.rb
+++ b/db/migrate/20220304195405_migrate_hide_network_preference.rb
@@ -13,6 +13,13 @@ class MigrateHideNetworkPreference < ActiveRecord::Migration[6.1]
belongs_to :account
end
+ class Setting < ApplicationRecord
+ # Mirror the behavior of the `Setting` model at this point in db history
+ def value
+ YAML.safe_load(self[:value], permitted_classes: [ActiveSupport::HashWithIndifferentAccess, Symbol]) if self[:value].present?
+ end
+ end
+
def up
Account.reset_column_information
diff --git a/db/migrate/20241205135901_remove_legacy_user_settings_data.rb b/db/migrate/20241205135901_remove_legacy_user_settings_data.rb
new file mode 100644
index 0000000000..09cc80842c
--- /dev/null
+++ b/db/migrate/20241205135901_remove_legacy_user_settings_data.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class RemoveLegacyUserSettingsData < ActiveRecord::Migration[7.2]
+ def up
+ connection.execute(<<~SQL.squish)
+ DELETE FROM settings
+ WHERE
+ thing_type IS NOT NULL
+ AND thing_id IS NOT NULL
+ SQL
+ end
+
+ def down
+ raise ActiveRecord::IrreversibleMigration
+ end
+end
diff --git a/db/post_migrate/20241205135925_remove_legacy_user_settings_columns.rb b/db/post_migrate/20241205135925_remove_legacy_user_settings_columns.rb
new file mode 100644
index 0000000000..f713f18f25
--- /dev/null
+++ b/db/post_migrate/20241205135925_remove_legacy_user_settings_columns.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class RemoveLegacyUserSettingsColumns < ActiveRecord::Migration[7.2]
+ disable_ddl_transaction!
+
+ def up
+ # In normal usage this should not find anything to delete
+ # Deletion here is already done in RemoveLegacyUserSettingsData migration
+ # and no data like this should be created from app at this point
+ # Deleting again out of caution
+ connection.execute(<<~SQL.squish)
+ DELETE FROM settings
+ WHERE
+ thing_type IS NOT NULL
+ AND thing_id IS NOT NULL
+ SQL
+
+ add_index :settings, :var, unique: true, algorithm: :concurrently
+ remove_index :settings, [:thing_type, :thing_id, :var], name: :index_settings_on_thing_type_and_thing_id_and_var, unique: true
+
+ safety_assured do
+ remove_column :settings, :thing_type, :string
+ remove_column :settings, :thing_id, :bigint
+ end
+ end
+
+ def down
+ raise ActiveRecord::IrreversibleMigration
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index e6ee0f55d9..0cbf40b0da 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[7.2].define(version: 2024_11_23_160722) do
+ActiveRecord::Schema[7.2].define(version: 2024_12_05_135925) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -939,11 +939,9 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_23_160722) do
create_table "settings", force: :cascade do |t|
t.string "var", null: false
t.text "value"
- t.string "thing_type"
t.datetime "created_at", precision: nil
t.datetime "updated_at", precision: nil
- t.bigint "thing_id"
- t.index ["thing_type", "thing_id", "var"], name: "index_settings_on_thing_type_and_thing_id_and_var", unique: true
+ t.index ["var"], name: "index_settings_on_var", unique: true
end
create_table "severed_relationships", force: :cascade do |t|
diff --git a/spec/fabricators/setting_fabricator.rb b/spec/fabricators/setting_fabricator.rb
index ce9a48e901..689a0de002 100644
--- a/spec/fabricators/setting_fabricator.rb
+++ b/spec/fabricators/setting_fabricator.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
Fabricator(:setting) do
- var 'var'
+ var { sequence(:var) { |n| "var_#{n}" } }
end
From d29eddc40135865a21ca2b2a85f72d4d18617a20 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Thu, 5 Dec 2024 17:12:26 +0100
Subject: [PATCH 034/175] Fix tag trend migration failing due to duplicate rows
(#33189)
---
.../20241123160722_move_tag_trends_to_table.rb | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/db/post_migrate/20241123160722_move_tag_trends_to_table.rb b/db/post_migrate/20241123160722_move_tag_trends_to_table.rb
index 3e1f1b5440..629592ba8a 100644
--- a/db/post_migrate/20241123160722_move_tag_trends_to_table.rb
+++ b/db/post_migrate/20241123160722_move_tag_trends_to_table.rb
@@ -6,12 +6,8 @@ class MoveTagTrendsToTable < ActiveRecord::Migration[7.2]
disable_ddl_transaction!
def up
- redis.zrange('trending_tags:all', 0, -1, with_scores: true).each do |(tag_id, score)|
- TagTrend.create(
- tag_id: tag_id,
- score: score,
- allowed: redis.zscore('trending_tags:allowed', tag_id).present?
- )
+ redis.zrange('trending_tags:all', 0, -1, with_scores: true).each_slice(1_000) do |data|
+ TagTrend.upsert_all(data.map { |(tag_id, score)| { tag_id: tag_id, score: score, language: '', allowed: redis.zscore('trending_tags:allowed', tag_id).present? } }, unique_by: %w(tag_id language))
end
TagTrend.recalculate_ordered_rank
From 635da00cfad1db9d85af054deac3de1be2718c5c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 6 Dec 2024 09:28:21 +0100
Subject: [PATCH 035/175] Update Node.js to 22.12 (#33169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.nvmrc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.nvmrc b/.nvmrc
index 8b84b727be..35d2d08ea1 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-22.11
+22.12
From a1143c522b75f351aa53904e192e138b5161a8ac Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Fri, 6 Dec 2024 03:29:54 -0500
Subject: [PATCH 036/175] Add missing `on_delete: :cascade` foreign keys option
(#33175)
---
...ing_delete_cascade_webauthn_credentials.rb | 28 ++++++++++++
...delete_cascade_account_moderation_notes.rb | 45 +++++++++++++++++++
db/schema.rb | 8 ++--
3 files changed, 77 insertions(+), 4 deletions(-)
create mode 100644 db/migrate/20241205162640_add_missing_delete_cascade_webauthn_credentials.rb
create mode 100644 db/migrate/20241205163118_add_missing_delete_cascade_account_moderation_notes.rb
diff --git a/db/migrate/20241205162640_add_missing_delete_cascade_webauthn_credentials.rb b/db/migrate/20241205162640_add_missing_delete_cascade_webauthn_credentials.rb
new file mode 100644
index 0000000000..3fe75a50d3
--- /dev/null
+++ b/db/migrate/20241205162640_add_missing_delete_cascade_webauthn_credentials.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+class AddMissingDeleteCascadeWebauthnCredentials < ActiveRecord::Migration[7.2]
+ def up
+ safety_assured do
+ execute <<~SQL.squish
+ ALTER TABLE webauthn_credentials
+ DROP CONSTRAINT fk_rails_a4355aef77,
+ ADD CONSTRAINT fk_rails_a4355aef77
+ FOREIGN KEY (user_id)
+ REFERENCES users(id)
+ ON DELETE CASCADE
+ SQL
+ end
+ end
+
+ def down
+ safety_assured do
+ execute <<~SQL.squish
+ ALTER TABLE webauthn_credentials
+ DROP CONSTRAINT fk_rails_a4355aef77,
+ ADD CONSTRAINT fk_rails_a4355aef77
+ FOREIGN KEY (user_id)
+ REFERENCES users(id)
+ SQL
+ end
+ end
+end
diff --git a/db/migrate/20241205163118_add_missing_delete_cascade_account_moderation_notes.rb b/db/migrate/20241205163118_add_missing_delete_cascade_account_moderation_notes.rb
new file mode 100644
index 0000000000..1252e94574
--- /dev/null
+++ b/db/migrate/20241205163118_add_missing_delete_cascade_account_moderation_notes.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+
+class AddMissingDeleteCascadeAccountModerationNotes < ActiveRecord::Migration[7.2]
+ def up
+ safety_assured do
+ execute <<~SQL.squish
+ ALTER TABLE account_moderation_notes
+ DROP CONSTRAINT fk_rails_3f8b75089b,
+ ADD CONSTRAINT fk_rails_3f8b75089b
+ FOREIGN KEY (account_id)
+ REFERENCES accounts(id)
+ ON DELETE CASCADE
+ SQL
+
+ execute <<~SQL.squish
+ ALTER TABLE account_moderation_notes
+ DROP CONSTRAINT fk_rails_dd62ed5ac3,
+ ADD CONSTRAINT fk_rails_dd62ed5ac3
+ FOREIGN KEY (target_account_id)
+ REFERENCES accounts(id)
+ ON DELETE CASCADE
+ SQL
+ end
+ end
+
+ def down
+ safety_assured do
+ execute <<~SQL.squish
+ ALTER TABLE account_moderation_notes
+ DROP CONSTRAINT fk_rails_3f8b75089b,
+ ADD CONSTRAINT fk_rails_3f8b75089b
+ FOREIGN KEY (account_id)
+ REFERENCES accounts(id)
+ SQL
+
+ execute <<~SQL.squish
+ ALTER TABLE account_moderation_notes
+ DROP CONSTRAINT fk_rails_dd62ed5ac3,
+ ADD CONSTRAINT fk_rails_dd62ed5ac3
+ FOREIGN KEY (target_account_id)
+ REFERENCES accounts(id)
+ SQL
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 0cbf40b0da..889e914aa6 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[7.2].define(version: 2024_12_05_135925) do
+ActiveRecord::Schema[7.2].define(version: 2024_12_05_163118) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -1235,8 +1235,8 @@ ActiveRecord::Schema[7.2].define(version: 2024_12_05_135925) do
add_foreign_key "account_domain_blocks", "accounts", name: "fk_206c6029bd", on_delete: :cascade
add_foreign_key "account_migrations", "accounts", column: "target_account_id", on_delete: :nullify
add_foreign_key "account_migrations", "accounts", on_delete: :cascade
- add_foreign_key "account_moderation_notes", "accounts"
- add_foreign_key "account_moderation_notes", "accounts", column: "target_account_id"
+ add_foreign_key "account_moderation_notes", "accounts", column: "target_account_id", on_delete: :cascade
+ add_foreign_key "account_moderation_notes", "accounts", on_delete: :cascade
add_foreign_key "account_notes", "accounts", column: "target_account_id", on_delete: :cascade
add_foreign_key "account_notes", "accounts", on_delete: :cascade
add_foreign_key "account_pins", "accounts", column: "target_account_id", on_delete: :cascade
@@ -1360,7 +1360,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_12_05_135925) do
add_foreign_key "web_push_subscriptions", "oauth_access_tokens", column: "access_token_id", on_delete: :cascade
add_foreign_key "web_push_subscriptions", "users", on_delete: :cascade
add_foreign_key "web_settings", "users", name: "fk_11910667b2", on_delete: :cascade
- add_foreign_key "webauthn_credentials", "users"
+ add_foreign_key "webauthn_credentials", "users", on_delete: :cascade
create_view "instances", materialized: true, sql_definition: <<-SQL
WITH domain_counts(domain, accounts_count) AS (
From 25387dc4238d1e512029e2c6c76fb81b81bbc3b3 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Fri, 6 Dec 2024 09:42:24 +0100
Subject: [PATCH 037/175] Refactor `` to TypeScript (#33096)
---
app/javascript/mastodon/actions/tags.js | 91 ---------
app/javascript/mastodon/actions/tags_typed.ts | 17 ++
app/javascript/mastodon/api/tags.ts | 11 +
app/javascript/mastodon/api_types/tags.ts | 13 ++
.../components/hashtag_header.jsx | 94 ---------
.../components/hashtag_header.tsx | 188 ++++++++++++++++++
.../features/hashtag_timeline/index.jsx | 26 +--
app/javascript/mastodon/models/tags.ts | 7 +
app/javascript/mastodon/reducers/index.ts | 2 -
app/javascript/mastodon/reducers/tags.js | 26 ---
10 files changed, 238 insertions(+), 237 deletions(-)
create mode 100644 app/javascript/mastodon/actions/tags_typed.ts
create mode 100644 app/javascript/mastodon/api/tags.ts
create mode 100644 app/javascript/mastodon/api_types/tags.ts
delete mode 100644 app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx
create mode 100644 app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.tsx
create mode 100644 app/javascript/mastodon/models/tags.ts
delete mode 100644 app/javascript/mastodon/reducers/tags.js
diff --git a/app/javascript/mastodon/actions/tags.js b/app/javascript/mastodon/actions/tags.js
index d18d7e514f..6e0c95288a 100644
--- a/app/javascript/mastodon/actions/tags.js
+++ b/app/javascript/mastodon/actions/tags.js
@@ -1,9 +1,5 @@
import api, { getLinks } from '../api';
-export const HASHTAG_FETCH_REQUEST = 'HASHTAG_FETCH_REQUEST';
-export const HASHTAG_FETCH_SUCCESS = 'HASHTAG_FETCH_SUCCESS';
-export const HASHTAG_FETCH_FAIL = 'HASHTAG_FETCH_FAIL';
-
export const FOLLOWED_HASHTAGS_FETCH_REQUEST = 'FOLLOWED_HASHTAGS_FETCH_REQUEST';
export const FOLLOWED_HASHTAGS_FETCH_SUCCESS = 'FOLLOWED_HASHTAGS_FETCH_SUCCESS';
export const FOLLOWED_HASHTAGS_FETCH_FAIL = 'FOLLOWED_HASHTAGS_FETCH_FAIL';
@@ -12,39 +8,6 @@ export const FOLLOWED_HASHTAGS_EXPAND_REQUEST = 'FOLLOWED_HASHTAGS_EXPAND_REQUES
export const FOLLOWED_HASHTAGS_EXPAND_SUCCESS = 'FOLLOWED_HASHTAGS_EXPAND_SUCCESS';
export const FOLLOWED_HASHTAGS_EXPAND_FAIL = 'FOLLOWED_HASHTAGS_EXPAND_FAIL';
-export const HASHTAG_FOLLOW_REQUEST = 'HASHTAG_FOLLOW_REQUEST';
-export const HASHTAG_FOLLOW_SUCCESS = 'HASHTAG_FOLLOW_SUCCESS';
-export const HASHTAG_FOLLOW_FAIL = 'HASHTAG_FOLLOW_FAIL';
-
-export const HASHTAG_UNFOLLOW_REQUEST = 'HASHTAG_UNFOLLOW_REQUEST';
-export const HASHTAG_UNFOLLOW_SUCCESS = 'HASHTAG_UNFOLLOW_SUCCESS';
-export const HASHTAG_UNFOLLOW_FAIL = 'HASHTAG_UNFOLLOW_FAIL';
-
-export const fetchHashtag = name => (dispatch) => {
- dispatch(fetchHashtagRequest());
-
- api().get(`/api/v1/tags/${name}`).then(({ data }) => {
- dispatch(fetchHashtagSuccess(name, data));
- }).catch(err => {
- dispatch(fetchHashtagFail(err));
- });
-};
-
-export const fetchHashtagRequest = () => ({
- type: HASHTAG_FETCH_REQUEST,
-});
-
-export const fetchHashtagSuccess = (name, tag) => ({
- type: HASHTAG_FETCH_SUCCESS,
- name,
- tag,
-});
-
-export const fetchHashtagFail = error => ({
- type: HASHTAG_FETCH_FAIL,
- error,
-});
-
export const fetchFollowedHashtags = () => (dispatch) => {
dispatch(fetchFollowedHashtagsRequest());
@@ -116,57 +79,3 @@ export function expandFollowedHashtagsFail(error) {
error,
};
}
-
-export const followHashtag = name => (dispatch) => {
- dispatch(followHashtagRequest(name));
-
- api().post(`/api/v1/tags/${name}/follow`).then(({ data }) => {
- dispatch(followHashtagSuccess(name, data));
- }).catch(err => {
- dispatch(followHashtagFail(name, err));
- });
-};
-
-export const followHashtagRequest = name => ({
- type: HASHTAG_FOLLOW_REQUEST,
- name,
-});
-
-export const followHashtagSuccess = (name, tag) => ({
- type: HASHTAG_FOLLOW_SUCCESS,
- name,
- tag,
-});
-
-export const followHashtagFail = (name, error) => ({
- type: HASHTAG_FOLLOW_FAIL,
- name,
- error,
-});
-
-export const unfollowHashtag = name => (dispatch) => {
- dispatch(unfollowHashtagRequest(name));
-
- api().post(`/api/v1/tags/${name}/unfollow`).then(({ data }) => {
- dispatch(unfollowHashtagSuccess(name, data));
- }).catch(err => {
- dispatch(unfollowHashtagFail(name, err));
- });
-};
-
-export const unfollowHashtagRequest = name => ({
- type: HASHTAG_UNFOLLOW_REQUEST,
- name,
-});
-
-export const unfollowHashtagSuccess = (name, tag) => ({
- type: HASHTAG_UNFOLLOW_SUCCESS,
- name,
- tag,
-});
-
-export const unfollowHashtagFail = (name, error) => ({
- type: HASHTAG_UNFOLLOW_FAIL,
- name,
- error,
-});
diff --git a/app/javascript/mastodon/actions/tags_typed.ts b/app/javascript/mastodon/actions/tags_typed.ts
new file mode 100644
index 0000000000..6dca32fd84
--- /dev/null
+++ b/app/javascript/mastodon/actions/tags_typed.ts
@@ -0,0 +1,17 @@
+import { apiGetTag, apiFollowTag, apiUnfollowTag } from 'mastodon/api/tags';
+import { createDataLoadingThunk } from 'mastodon/store/typed_functions';
+
+export const fetchHashtag = createDataLoadingThunk(
+ 'tags/fetch',
+ ({ tagId }: { tagId: string }) => apiGetTag(tagId),
+);
+
+export const followHashtag = createDataLoadingThunk(
+ 'tags/follow',
+ ({ tagId }: { tagId: string }) => apiFollowTag(tagId),
+);
+
+export const unfollowHashtag = createDataLoadingThunk(
+ 'tags/unfollow',
+ ({ tagId }: { tagId: string }) => apiUnfollowTag(tagId),
+);
diff --git a/app/javascript/mastodon/api/tags.ts b/app/javascript/mastodon/api/tags.ts
new file mode 100644
index 0000000000..2cb802800c
--- /dev/null
+++ b/app/javascript/mastodon/api/tags.ts
@@ -0,0 +1,11 @@
+import { apiRequestPost, apiRequestGet } from 'mastodon/api';
+import type { ApiHashtagJSON } from 'mastodon/api_types/tags';
+
+export const apiGetTag = (tagId: string) =>
+ apiRequestGet(`v1/tags/${tagId}`);
+
+export const apiFollowTag = (tagId: string) =>
+ apiRequestPost(`v1/tags/${tagId}/follow`);
+
+export const apiUnfollowTag = (tagId: string) =>
+ apiRequestPost(`v1/tags/${tagId}/unfollow`);
diff --git a/app/javascript/mastodon/api_types/tags.ts b/app/javascript/mastodon/api_types/tags.ts
new file mode 100644
index 0000000000..0c16c8bd28
--- /dev/null
+++ b/app/javascript/mastodon/api_types/tags.ts
@@ -0,0 +1,13 @@
+interface ApiHistoryJSON {
+ day: string;
+ accounts: string;
+ uses: string;
+}
+
+export interface ApiHashtagJSON {
+ id: string;
+ name: string;
+ url: string;
+ history: [ApiHistoryJSON, ...ApiHistoryJSON[]];
+ following?: boolean;
+}
diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx b/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx
deleted file mode 100644
index 415cf7bf10..0000000000
--- a/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx
+++ /dev/null
@@ -1,94 +0,0 @@
-import PropTypes from 'prop-types';
-
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-
-import ImmutablePropTypes from 'react-immutable-proptypes';
-
-import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
-import { Button } from 'mastodon/components/button';
-import { ShortNumber } from 'mastodon/components/short_number';
-import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
-import { withIdentity } from 'mastodon/identity_context';
-import { PERMISSION_MANAGE_TAXONOMIES } from 'mastodon/permissions';
-
-const messages = defineMessages({
- followHashtag: { id: 'hashtag.follow', defaultMessage: 'Follow hashtag' },
- unfollowHashtag: { id: 'hashtag.unfollow', defaultMessage: 'Unfollow hashtag' },
- adminModeration: { id: 'hashtag.admin_moderation', defaultMessage: 'Open moderation interface for #{name}' },
-});
-
-const usesRenderer = (displayNumber, pluralReady) => (
- {displayNumber},
- }}
- />
-);
-
-const peopleRenderer = (displayNumber, pluralReady) => (
- {displayNumber},
- }}
- />
-);
-
-const usesTodayRenderer = (displayNumber, pluralReady) => (
- {displayNumber},
- }}
- />
-);
-
-export const HashtagHeader = withIdentity(injectIntl(({ tag, intl, disabled, onClick, identity }) => {
- if (!tag) {
- return null;
- }
-
- const { signedIn, permissions } = identity;
- const menu = [];
-
- if (signedIn && (permissions & PERMISSION_MANAGE_TAXONOMIES) === PERMISSION_MANAGE_TAXONOMIES ) {
- menu.push({ text: intl.formatMessage(messages.adminModeration, { name: tag.get("name") }), href: `/admin/tags/${tag.get('id')}` });
- }
-
- const [uses, people] = tag.get('history').reduce((arr, day) => [arr[0] + day.get('uses') * 1, arr[1] + day.get('accounts') * 1], [0, 0]);
- const dividingCircle = {' · '};
-
- return (
-
+ );
+};
diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.jsx b/app/javascript/mastodon/features/hashtag_timeline/index.jsx
index 42a668859e..ab3c32e6a7 100644
--- a/app/javascript/mastodon/features/hashtag_timeline/index.jsx
+++ b/app/javascript/mastodon/features/hashtag_timeline/index.jsx
@@ -5,7 +5,6 @@ import { FormattedMessage } from 'react-intl';
import { Helmet } from 'react-helmet';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
import { isEqual } from 'lodash';
@@ -13,7 +12,6 @@ import { isEqual } from 'lodash';
import TagIcon from '@/material-icons/400-24px/tag.svg?react';
import { addColumn, removeColumn, moveColumn } from 'mastodon/actions/columns';
import { connectHashtagStream } from 'mastodon/actions/streaming';
-import { fetchHashtag, followHashtag, unfollowHashtag } from 'mastodon/actions/tags';
import { expandHashtagTimeline, clearTimeline } from 'mastodon/actions/timelines';
import Column from 'mastodon/components/column';
import ColumnHeader from 'mastodon/components/column_header';
@@ -26,7 +24,6 @@ import ColumnSettingsContainer from './containers/column_settings_container';
const mapStateToProps = (state, props) => ({
hasUnread: state.getIn(['timelines', `hashtag:${props.params.id}${props.params.local ? ':local' : ''}`, 'unread']) > 0,
- tag: state.getIn(['tags', props.params.id]),
});
class HashtagTimeline extends PureComponent {
@@ -38,7 +35,6 @@ class HashtagTimeline extends PureComponent {
columnId: PropTypes.string,
dispatch: PropTypes.func.isRequired,
hasUnread: PropTypes.bool,
- tag: ImmutablePropTypes.map,
multiColumn: PropTypes.bool,
};
@@ -130,7 +126,6 @@ class HashtagTimeline extends PureComponent {
this._subscribe(dispatch, id, tags, local);
dispatch(expandHashtagTimeline(id, { tags, local }));
- dispatch(fetchHashtag(id));
}
componentDidMount () {
@@ -162,27 +157,10 @@ class HashtagTimeline extends PureComponent {
dispatch(expandHashtagTimeline(id, { maxId, tags, local }));
};
- handleFollow = () => {
- const { dispatch, params, tag } = this.props;
- const { id } = params;
- const { signedIn } = this.props.identity;
-
- if (!signedIn) {
- return;
- }
-
- if (tag.get('following')) {
- dispatch(unfollowHashtag(id));
- } else {
- dispatch(followHashtag(id));
- }
- };
-
render () {
- const { hasUnread, columnId, multiColumn, tag } = this.props;
+ const { hasUnread, columnId, multiColumn } = this.props;
const { id, local } = this.props.params;
const pinned = !!columnId;
- const { signedIn } = this.props.identity;
return (
@@ -202,7 +180,7 @@ class HashtagTimeline extends PureComponent {
}
+ prepend={pinned ? null : }
alwaysPrepend
trackScroll={!pinned}
scrollKey={`hashtag_timeline-${columnId}`}
diff --git a/app/javascript/mastodon/models/tags.ts b/app/javascript/mastodon/models/tags.ts
new file mode 100644
index 0000000000..3a4b1fb23e
--- /dev/null
+++ b/app/javascript/mastodon/models/tags.ts
@@ -0,0 +1,7 @@
+import type { ApiHashtagJSON } from 'mastodon/api_types/tags';
+
+export type Hashtag = ApiHashtagJSON;
+
+export const createHashtag = (serverJSON: ApiHashtagJSON): Hashtag => ({
+ ...serverJSON,
+});
diff --git a/app/javascript/mastodon/reducers/index.ts b/app/javascript/mastodon/reducers/index.ts
index 3f3d09b7ff..6da6abd81b 100644
--- a/app/javascript/mastodon/reducers/index.ts
+++ b/app/javascript/mastodon/reducers/index.ts
@@ -36,7 +36,6 @@ import settings from './settings';
import status_lists from './status_lists';
import statuses from './statuses';
import { suggestionsReducer } from './suggestions';
-import tags from './tags';
import timelines from './timelines';
import trends from './trends';
import user_lists from './user_lists';
@@ -76,7 +75,6 @@ const reducers = {
markers: markersReducer,
picture_in_picture: pictureInPictureReducer,
history,
- tags,
followed_tags,
notificationPolicy: notificationPolicyReducer,
notificationRequests: notificationRequestsReducer,
diff --git a/app/javascript/mastodon/reducers/tags.js b/app/javascript/mastodon/reducers/tags.js
deleted file mode 100644
index 23a1ae82b5..0000000000
--- a/app/javascript/mastodon/reducers/tags.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Map as ImmutableMap, fromJS } from 'immutable';
-
-import {
- HASHTAG_FETCH_SUCCESS,
- HASHTAG_FOLLOW_REQUEST,
- HASHTAG_FOLLOW_FAIL,
- HASHTAG_UNFOLLOW_REQUEST,
- HASHTAG_UNFOLLOW_FAIL,
-} from 'mastodon/actions/tags';
-
-const initialState = ImmutableMap();
-
-export default function tags(state = initialState, action) {
- switch(action.type) {
- case HASHTAG_FETCH_SUCCESS:
- return state.set(action.name, fromJS(action.tag));
- case HASHTAG_FOLLOW_REQUEST:
- case HASHTAG_UNFOLLOW_FAIL:
- return state.setIn([action.name, 'following'], true);
- case HASHTAG_FOLLOW_FAIL:
- case HASHTAG_UNFOLLOW_REQUEST:
- return state.setIn([action.name, 'following'], false);
- default:
- return state;
- }
-}
From fbcd14ff7e18c8689426433aa5ad673c9ebd6409 Mon Sep 17 00:00:00 2001
From: Claire
Date: Fri, 6 Dec 2024 11:58:18 +0100
Subject: [PATCH 038/175] Always remove setting keys in legacy user settings
migrations (#33196)
---
...205135901_remove_legacy_user_settings_data.rb | 16 ++++++++++++++++
...135925_remove_legacy_user_settings_columns.rb | 16 ++++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/db/migrate/20241205135901_remove_legacy_user_settings_data.rb b/db/migrate/20241205135901_remove_legacy_user_settings_data.rb
index 09cc80842c..82f86aad14 100644
--- a/db/migrate/20241205135901_remove_legacy_user_settings_data.rb
+++ b/db/migrate/20241205135901_remove_legacy_user_settings_data.rb
@@ -8,6 +8,22 @@ class RemoveLegacyUserSettingsData < ActiveRecord::Migration[7.2]
thing_type IS NOT NULL
AND thing_id IS NOT NULL
SQL
+
+ # When running these migrations on mastodon.social, we saw 'notification_emails'
+ # and 'interactions' records that were not associated to a user and caused a
+ # migration issue.
+ # While I have not been able to pinpoint the exact cause of the issue, it is likely
+ # related to the settings system changes made in b11fdc3ae3f90731c01149a5a36dc64e065d4ea2.
+ # So, delete a few user settings that should already have been deleted.
+ connection.execute(<<~SQL.squish)
+ DELETE FROM settings
+ WHERE var IN (
+ 'notification_emails', 'interactions', 'boost_modal', 'auto_play_gif',
+ 'delete_modal', 'system_font_ui', 'default_sensitive', 'unfollow_modal',
+ 'reduce_motion', 'display_sensitive_media', 'hide_network', 'expand_spoilers',
+ 'display_media', 'aggregate_reblogs', 'show_application', 'advanced_layout',
+ 'use_blurhash', 'use_pending_items')
+ SQL
end
def down
diff --git a/db/post_migrate/20241205135925_remove_legacy_user_settings_columns.rb b/db/post_migrate/20241205135925_remove_legacy_user_settings_columns.rb
index f713f18f25..3f0eaec4ed 100644
--- a/db/post_migrate/20241205135925_remove_legacy_user_settings_columns.rb
+++ b/db/post_migrate/20241205135925_remove_legacy_user_settings_columns.rb
@@ -15,6 +15,22 @@ class RemoveLegacyUserSettingsColumns < ActiveRecord::Migration[7.2]
AND thing_id IS NOT NULL
SQL
+ # When running these migrations on mastodon.social, we saw 'notification_emails'
+ # and 'interactions' records that were not associated to a user and caused a
+ # migration issue.
+ # While I have not been able to pinpoint the exact cause of the issue, it is likely
+ # related to the settings system changes made in b11fdc3ae3f90731c01149a5a36dc64e065d4ea2.
+ # So, delete a few user settings that should already have been deleted.
+ connection.execute(<<~SQL.squish)
+ DELETE FROM settings
+ WHERE var IN (
+ 'notification_emails', 'interactions', 'boost_modal', 'auto_play_gif',
+ 'delete_modal', 'system_font_ui', 'default_sensitive', 'unfollow_modal',
+ 'reduce_motion', 'display_sensitive_media', 'hide_network', 'expand_spoilers',
+ 'display_media', 'aggregate_reblogs', 'show_application', 'advanced_layout',
+ 'use_blurhash', 'use_pending_items')
+ SQL
+
add_index :settings, :var, unique: true, algorithm: :concurrently
remove_index :settings, [:thing_type, :thing_id, :var], name: :index_settings_on_thing_type_and_thing_id_and_var, unique: true
From e35655cf552c749bc4489b3581121eb65645e09f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 6 Dec 2024 16:20:19 +0100
Subject: [PATCH 039/175] Update dependency express to v4.21.2 (#33195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 6ef07d8520..757b087be7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8473,8 +8473,8 @@ __metadata:
linkType: hard
"express@npm:^4.17.1, express@npm:^4.18.2":
- version: 4.21.1
- resolution: "express@npm:4.21.1"
+ version: 4.21.2
+ resolution: "express@npm:4.21.2"
dependencies:
accepts: "npm:~1.3.8"
array-flatten: "npm:1.1.1"
@@ -8495,7 +8495,7 @@ __metadata:
methods: "npm:~1.1.2"
on-finished: "npm:2.4.1"
parseurl: "npm:~1.3.3"
- path-to-regexp: "npm:0.1.10"
+ path-to-regexp: "npm:0.1.12"
proxy-addr: "npm:~2.0.7"
qs: "npm:6.13.0"
range-parser: "npm:~1.2.1"
@@ -8507,7 +8507,7 @@ __metadata:
type-is: "npm:~1.6.18"
utils-merge: "npm:1.0.1"
vary: "npm:~1.1.2"
- checksum: 10c0/0c287867e5f6129d3def1edd9b63103a53c40d4dc8628839d4b6827e35eb8f0de5a4656f9d85f4457eba584f9871ebb2ad26c750b36bd75d9bbb8bcebdc4892c
+ checksum: 10c0/38168fd0a32756600b56e6214afecf4fc79ec28eca7f7a91c2ab8d50df4f47562ca3f9dee412da7f5cea6b1a1544b33b40f9f8586dbacfbdada0fe90dbb10a1f
languageName: node
linkType: hard
@@ -13076,10 +13076,10 @@ __metadata:
languageName: node
linkType: hard
-"path-to-regexp@npm:0.1.10":
- version: 0.1.10
- resolution: "path-to-regexp@npm:0.1.10"
- checksum: 10c0/34196775b9113ca6df88e94c8d83ba82c0e1a2063dd33bfe2803a980da8d49b91db8104f49d5191b44ea780d46b8670ce2b7f4a5e349b0c48c6779b653f1afe4
+"path-to-regexp@npm:0.1.12":
+ version: 0.1.12
+ resolution: "path-to-regexp@npm:0.1.12"
+ checksum: 10c0/1c6ff10ca169b773f3bba943bbc6a07182e332464704572962d277b900aeee81ac6aa5d060ff9e01149636c30b1f63af6e69dd7786ba6e0ddb39d4dee1f0645b
languageName: node
linkType: hard
From 3ad45ced5ebd984f33f823ca381676167dd780f7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 6 Dec 2024 16:20:36 +0100
Subject: [PATCH 040/175] Update dependency @dnd-kit/core to v6.3.1 (#33194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 757b087be7..ae8b57c961 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1972,8 +1972,8 @@ __metadata:
linkType: hard
"@dnd-kit/core@npm:^6.1.0":
- version: 6.3.0
- resolution: "@dnd-kit/core@npm:6.3.0"
+ version: 6.3.1
+ resolution: "@dnd-kit/core@npm:6.3.1"
dependencies:
"@dnd-kit/accessibility": "npm:^3.1.1"
"@dnd-kit/utilities": "npm:^3.2.2"
@@ -1981,7 +1981,7 @@ __metadata:
peerDependencies:
react: ">=16.8.0"
react-dom: ">=16.8.0"
- checksum: 10c0/7b6ebae619921ac27a367b5f168cf66729ab2f5041a5376bb05399cdfd05e03c8fac5d218632ee04fe7c1e049bde9222930c6e8ee1dbb0ca8bde38038f1a1a48
+ checksum: 10c0/196db95d81096d9dc248983533eab91ba83591770fa5c894b1ac776f42af0d99522b3fd5bb3923411470e4733fcfa103e6ee17adc17b9b7eb54c7fbec5ff7c52
languageName: node
linkType: hard
From 96498a09c26dbb976538bdca455e07109c9be903 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 6 Dec 2024 15:21:12 +0000
Subject: [PATCH 041/175] Update dependency @babel/preset-react to v7.26.3
(#33174)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index ae8b57c961..f1ba5a5379 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1372,8 +1372,8 @@ __metadata:
linkType: hard
"@babel/preset-react@npm:^7.12.5, @babel/preset-react@npm:^7.22.3":
- version: 7.25.9
- resolution: "@babel/preset-react@npm:7.25.9"
+ version: 7.26.3
+ resolution: "@babel/preset-react@npm:7.26.3"
dependencies:
"@babel/helper-plugin-utils": "npm:^7.25.9"
"@babel/helper-validator-option": "npm:^7.25.9"
@@ -1383,7 +1383,7 @@ __metadata:
"@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c294b475ee741f01f63ea0d828862811c453fabc6023f01814ce983bc316388e9d73290164d2b1384c2684db9c330803a3d4d2170285b105dcbacd483329eb93
+ checksum: 10c0/b470dcba11032ef6c832066f4af5c75052eaed49feb0f445227231ef1b5c42aacd6e216988c0bd469fd5728cd27b6b059ca307c9ecaa80c6bb5da4bf1c833e12
languageName: node
linkType: hard
From 8dc7f8533d1819fe812f96f0f092b3e7086dffe9 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 6 Dec 2024 16:44:21 +0100
Subject: [PATCH 042/175] New Crowdin Translations (automated) (#33193)
Co-authored-by: GitHub Actions
---
app/javascript/mastodon/locales/gl.json | 4 +-
app/javascript/mastodon/locales/nan.json | 5 +-
config/locales/bg.yml | 2 +
config/locales/eo.yml | 118 +++++++++++++++++++++++
config/locales/es-MX.yml | 4 +-
config/locales/nan.yml | 15 +++
config/locales/simple_form.eo.yml | 2 +
7 files changed, 145 insertions(+), 5 deletions(-)
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index cac6147fdb..e43ed157b3 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -546,8 +546,8 @@
"notification.admin.report_statuses_other": "{name} denunciou a {target}",
"notification.admin.sign_up": "{name} rexistrouse",
"notification.admin.sign_up.name_and_others": "{name} e {count, plural, one {# máis} other {# máis}} crearon unha conta",
- "notification.annual_report.message": "A #VidaEnMastodon de {year} agarda por ti! Desvela os momentos máis destacados e historias reseñables en Mastodon!",
- "notification.annual_report.view": "Ver #VidaEnMastodon",
+ "notification.annual_report.message": "#Wrapstodon de {year} agarda por ti! Desvela os momentos máis destacados e historias reseñables en Mastodon!",
+ "notification.annual_report.view": "Ver #Wrapstodon",
"notification.favourite": "{name} marcou como favorita a túa publicación",
"notification.favourite.name_and_others_with_link": "{name} e {count, plural, one {# máis} other {# máis}} favoreceron a túa publicación",
"notification.follow": "{name} comezou a seguirte",
diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json
index 0a3dc2c06b..ad02aacc1b 100644
--- a/app/javascript/mastodon/locales/nan.json
+++ b/app/javascript/mastodon/locales/nan.json
@@ -20,10 +20,13 @@
"account.block_short": "封鎖",
"account.blocked": "Hőng封鎖",
"account.cancel_follow_request": "取消跟tuè",
+ "account.copy": "Khóo-pih kàu個人資料ê連結",
+ "account.direct": "私人提起 @{name}",
"account.follow_back": "Tuè tńg去",
"annual_report.summary.percentile.text": "Tse 予lí變做 {domain} ê用戶ê ",
"block_modal.show_less": "看khah少",
"compose.language.change": "換語言",
"confirmations.follow_to_list.confirm": "跟tuè,加入kàu列單",
- "search_popout.language_code": "ISO語言代碼"
+ "search_popout.language_code": "ISO語言代碼",
+ "status.translated_from_with": "用 {provider} 翻譯 {lang}"
}
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index bfb9cc3b00..0e7ddeddc0 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -192,9 +192,11 @@ bg:
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_status: Изтриване на публикация
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 70278460ee..7e454ddcf4 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -455,6 +455,7 @@ eo:
title: Bloki novan retpoŝtan domajnon
no_email_domain_block_selected: Neniuj domajn blokoj ŝanĝiĝis ĉar nenio estis elektita
not_permitted: Ne permesita
+ resolved_dns_records_hint_html: La nomo de la domajno almontras la sekvajn MX-domajnojn, kiuj estas fine responsaj por akcepti retpoŝton. Blokas MX-domajnon blokus enskribadojn el retpoŝtadreso ajn, kiu uzas la saman MX-domajnon, eĉ se la videbla domajnnomo estas malsama. Gardemu ne bloki maĵorajn provizistojn de retpoŝto.
resolved_through_html: Solvis tra %{domain}
title: Blokis retpoŝtajn domajnojn
export_domain_allows:
@@ -483,6 +484,7 @@ eo:
instances:
audit_log:
title: Novaj Protokoloj Pri Ekzamenoj
+ view_all: Vidu la tutan protokolon de revizio
availability:
description_html:
one: Se sendo la domajno malsukcesis por %{count} dio, ne estas sendprovo plu escepte de la dojmano.
@@ -609,6 +611,7 @@ eo:
resolve_description_html: Nenio okazotas al la raportita konto kaj la raporto fermotas.
silence_description_html: La konto estos videbla al nur personoj kiu jam sekvis ĝin au permane serĉo ĝin, ege limigante ĝian atingon. Malfermi ciujn raportojn kontra ĉi tiun konton.
suspend_description_html: La konto kaj ciuj ĝiaj enhavoj estos neatingebla kaj poŝte forigitas, kaj interagi per ĝi estos neebla. Malfermi ciujn raportojn kontra ĉi tiu konto.
+ actions_description_html: Elektu kiun agon fari por ripari ĉi tiun raporton. Se vi punus la raportitan uzanton, sciigon de retpoŝto sendos al ri, krom kiam la Spamo kategorio estas elektita.
actions_description_remote_html: Decidu kiun klopodon por solvi ĉi tiun raporton. Ĉi tiu efikas kiel nur via servilo komuniki per ĉi tiu fora konto kaj trakti ĝian enhavon.
actions_no_posts: Ĉi tiu raporto havas neniujn rilatajn afiŝojn por forigi
add_to_report: Aldoni pli al raporto
@@ -630,6 +633,7 @@ eo:
created_at: Signalita
delete_and_resolve: Forigi afiŝojn
forwarded: Plusendita
+ forwarded_replies_explanation: Ĉi tiu raporto estas de malproksima uzanto kaj estas pri malproksima enhavo. Ĝi plusendis al vi ĉar la raportita enhavo estas rediraĵo je unu el viaj uzantoj.
forwarded_to: Plusendita al %{domain}
mark_as_resolved: Marki solvita
mark_as_sensitive: Marki kiel tiklan
@@ -673,6 +677,7 @@ eo:
delete_data_html: Forigi profilon kaj enhavojn de @%{acct} post 30 tagoj se ili ne malsuspenditas dum la dauro
preview_preamble_html: "@%{acct} akiros averton kun ĉi tiuj enhavoj:"
record_strike_html: Rekordu admonon kontra @%{acct} por helpi vi plikontroli estontajn malobservojn de ĉi tiu konto
+ send_email_html: Sendu @%{acct} retpoŝto de averto
warning_placeholder: Nedeviga aldona kialo por la moderigadago.
target_origin: Origino de raportita konto
title: Signaloj
@@ -712,6 +717,7 @@ eo:
manage_appeals: Administri Apelaciojn
manage_appeals_description: Rajtigas al uzantoj kontroli apelaciojn kontraǔ kontrolaj agoj
manage_blocks: Administri Blokojn
+ manage_blocks_description: Permesas uzantojn bloki provizistojn de retpoŝto kaj IP adresojn
manage_custom_emojis: Administri propajn emoĝiojn
manage_custom_emojis_description: Permesi uzantojn administri propajn emoĝiojn ĉe la servilo
manage_federation: Administri Federacion
@@ -729,6 +735,7 @@ eo:
manage_taxonomies: Administri kategoriarojn
manage_taxonomies_description: Permesi uzantojn kontroli popularan enhavon kaj ĝisdatigi kradvortopciojn
manage_user_access: Administri uzantoaliron
+ manage_user_access_description: Permesas uzantojn invalidi la du-faktoran aŭtentigon de aliaj uzantoj, ŝanĝi siajn retpoŝtadresojn, kaj restarigi siajn pasvorton
manage_users: Administri uzantojn
manage_users_description: Permesi uzantaojn vidi detalojn de aliaj uzantoj kaj administri ilin
manage_webhooks: Administri rethokojn
@@ -791,15 +798,19 @@ eo:
approved: Bezonas aprobi por aliĝi
none: Neniu povas aliĝi
open: Iu povas aliĝi
+ warning_hint: Ni rekomendas uzi "Konsento neprigas por enskribiĝi" krom se vi memcertas, ke via teamo de moderistoj povas ellabori spamon kaj malignajn registradojn rapide.
security:
authorized_fetch: Devigi aŭtentigon de frataraj serviloj
+ authorized_fetch_hint: Neprigante aŭtentigon por federataj serviloj permesas pli striktan devigon de ambaŭ uzanto-nivelaj kaj servilo-nivelaj blokoj. Tamen, ĉi tiu uzas pli risurcojn, reduktas la ĝisiradon de viaj respondoj, kaj povas enkonduki aferoj, pri kongruoj. Plu, ĉi tiu ne preventos homojn el alporti viajn afiŝojn kaj uzantojn.
authorized_fetch_overridden_hint: Vi nuntempe ne povas ŝanĝi ĉi tiun agordon ĉar ĝi estas anstataŭita de mediovariablo.
+ federation_authentication: Devigado de la aŭtentigo de la federacio
title: Agordoj de la servilo
site_uploads:
delete: Forigi elŝutitan dosieron
destroyed_msg: Reteja alŝuto sukcese forigita!
software_updates:
critical_update: Kritika — bonvolu ĝisdatiĝi rapide
+ description: Ni rekomendas ĝisdatigadi vian instalaĵon de Mastodon por deutili la plej ĵusajn riparojn kaj trajtojn. Plu, estas kelkajfoje grava ĝisdati Mastodon rapide por eviti problemojn pri sekureco. Tial, Mastodon kontrolas por ĝisdataĵoj ĉiuj 30 minutoj, kaj sciigos vin laŭ viaj agordoj pri retpoŝtaj sciigoj.
documentation_link: Lerni pli
release_notes: Eldono-notoj
title: Disponeblaj ĝisdatigoj
@@ -815,6 +826,7 @@ eo:
back_to_account: Reveni al konta paĝo
back_to_report: Reveni al raportpaĝo
batch:
+ add_to_report: 'Aldoni al raporto #%{id}'
remove_from_report: Forigi de raporto
report: Raporti
contents: Enhavoj
@@ -833,6 +845,7 @@ eo:
reblogs: Reblogaĵoj
replied_to_html: Respondis al %{acct_link}
status_changed: Afiŝo ŝanĝiĝis
+ status_title: Afiŝo de @%{name}
title: Afiŝoj de konto - @%{name}
trending: Popularaĵoj
view_publicly: Vidu publike
@@ -853,10 +866,20 @@ eo:
system_checks:
database_schema_check:
message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite
+ elasticsearch_health_red:
+ message_html: Elasticsearch peniko estas malsana (ruĝa statuso), trajtoj de serĉo malhaveblas
+ elasticsearch_health_yellow:
+ message_html: Peniko de Elasticsearch malsana (flava status), vi eble povas enketi la kialon
+ elasticsearch_index_mismatch:
+ message_html: Bildigoj de enhavtabelo de Elasticsearch posttempas. Bonvolu, rulu tootctl search deploy --only=%{value}
elasticsearch_preset:
action: Legi dokumentaron
+ message_html: Via peniko de Elasticsearch havas pli ol unu verticon, sed Mastodon ne estas agordita uzi ilin.
elasticsearch_preset_single_node:
action: Vidi dokumentadon
+ message_html: Via peniko de Elasticsearch havas nur unu verticon, ES_PRESET devus munti al single_node_cluster.
+ elasticsearch_reset_chewy:
+ message_html: Via enhavtabelo de la sistemo de Elasticsearch posttempas pro ŝanĝo de agordoj. Bonvolu, rulu tootctl search deploy --reset-chewy por ĝisdatigi ĝin.
elasticsearch_running_check:
message_html: Ne eblas konekti Elasticsearch. Bonvolu kontroli ke ĝi funkcias, aǔ malŝaltu plentekstan serĉon
elasticsearch_version_check:
@@ -875,6 +898,7 @@ eo:
message_html: Grava ĝisdatigo de Mastodon disponeblas, bonvolu ĝisdatigi kiel eble plej rapide.
software_version_patch_check:
action: Vidi disponeblajn ĝisdatigojn
+ message_html: Ĝisdataĵo de Mastodon pri cimriparo haveblas.
upload_check_privacy_error:
action: Klaku ĉi tie por pliaj informoj
message_html: "Via retservilo estas misagordita. La privateco de viaj uzantoj estas en risko."
@@ -883,10 +907,13 @@ eo:
message_html: "Via objektostokado estas misagordita. La privateco de viaj uzantoj estas en risko."
tags:
moderation:
+ not_trendable: Ne modebla
not_usable: Ne uzebla
+ pending_review: Pendata superrigardo
review_requested: Revizio petita
reviewed: Reviziita
title: Stato
+ trendable: Modebla
unreviewed: Nereviziita
usable: Uzebla
name: Nomo
@@ -935,7 +962,9 @@ eo:
statuses:
allow: Permesi afiŝon
allow_account: Permesi aŭtoron
+ confirm_allow: Ĉu vi certas, ke vi volas permesi elektitajn statusojn?
confirm_allow_account: Ĉu vi certas, ke vi volas permesi elektitajn kontojn?
+ confirm_disallow: Ĉu vi certas, ke vi volas malpermesi elektitajn statusojn?
confirm_disallow_account: Ĉu vi certas, ke vi volas malpermesi elektitajn kontojn?
description_html: Oni multe diskonigas kaj stelumas ĉi tiujn mesaĝojn nuntempe laŭ via servilo. Tio povas helpi novajn kaj revenantajn uzantojn trovi pli da homoj por sekvi. Mesaĝo estas montrita publike nur se vi aprobis la aŭtoron kaj se la aŭtoro aprobis ke ties konto estu proponita al aliaj. Vi ankaŭ povas permesi aŭ malakcepti specifajn mesaĝojn.
disallow: Malpermesi afiŝon
@@ -976,6 +1005,7 @@ eo:
delete: Forigi
edit_preset: Redakti avertan antaŭagordon
empty: Vi ankoraŭ ne difinis iun ajn antaŭagordon de averto.
+ title: Antaŭdifinoj de averto
webhooks:
add_new: Aldoni finpunkton
delete: Forigi
@@ -997,6 +1027,9 @@ eo:
title: Rethokoj
webhook: Rethoko
admin_mailer:
+ auto_close_registrations:
+ body: Pro seneco de ĵusaj aktivaĵoj de moderistoj, enskribadojn en %{instance} aŭtomate ŝanĝis al mana superrigardo, por eviti %{instance} estas uzita por eblaj fiuloj. Vi povas reŝanĝi ĝin al malfermaj enskribadoj iam ajn.
+ subject: Enskribadoj por %{instance} aŭtomate ŝanĝis al mana konsento
new_appeal:
actions:
delete_statuses: por forigi iliajn afiŝojn
@@ -1011,6 +1044,7 @@ eo:
subject: "%{username} apelacias kontroldecidon ĉe %{instance}"
new_critical_software_updates:
body: Novaj gravaj versioj de Mastodon estis publikigitaj, vi eble volas ĝisdatigi kiel eble plej baldaŭ!
+ subject: Sojlaj ĝisdataĵoj de Mastodon haveblas por %{instance}!
new_pending_account:
body: La detaloj de la nova konto estas ĉi-sube. Vi povas akcepti aŭ malakcepti tiun aliĝilon.
subject: Nova konto atendas por recenzo en %{instance} (%{username})
@@ -1071,10 +1105,12 @@ eo:
hint_html: Nur unu plia afero! Ni devas konfirmi, ke vi estas homo (tio estas por ke ni povu konservi la spamon ekstere!). Solvu la CAPTCHA sube kaj alklaku "Daŭrigu".
title: Sekureckontrolo
confirmations:
+ awaiting_review: Via retpoŝtadreso estas konfirmita! La teamo de %{domain} nun superrigardas vian enskribiĝon. Vi ricevos retpoŝton, se ili aprobos vian konton!
awaiting_review_title: Via registriĝo estas reviziita
clicking_this_link: alklakante ĉi tiun ligilon
login_link: ensaluti
proceed_to_login_html: Vi nun povas iri al %{login_link}.
+ redirect_to_app_html: Vi devus sendigi al la %{app_name} aplikaĵo. Se tion ne okazis, provu %{clicking_this_link} aŭ mane reiras al la aplikaĵo.
registration_complete: Via registriĝo sur %{domain} nun finiĝis!
welcome_title: Bonvenon, %{name}!
wrong_email_hint: Se tiu retadreso ne estas ĝusta, vi povas ŝanĝi ĝin en kontagordoj.
@@ -1120,6 +1156,8 @@ eo:
security: Sekureco
set_new_password: Elekti novan pasvorton
setup:
+ email_below_hint_html: Kontrolu vian spam-dosierujon aŭ petu novan. Se necese, vi povas korekti vian retadreson.
+ email_settings_hint_html: Enklaku la ligilon, ke ni sendis al vi por kontroli %{email}. Ni estos tien.
link_not_received: Ĉu vi ne ricevis ligilon?
new_confirmation_instructions_sent: Vi ricevos novan retpoŝton kun la konfirma ligilo post kelkaj minutoj!
title: Kontrolu vian retpoŝta enirkesto
@@ -1127,13 +1165,16 @@ eo:
preamble_html: Ensalutu per via detaloj de %{domain}. Se via konto gastigantigas sur malsama servilo, vi ne povas ensaluti ĉi tie.
title: Saluti en %{domain}
sign_up:
+ manual_review: Enskriboj en %{domain} havas manan superrigardon, farita de niaj moderistoj. Por helpi nin por procezi vian enskribon, skribu ion pri vi mem, kaj kial vi volas konton en %{domain}.
preamble: Per konto ĉe ĉi tiu Mastodon-servilo, vi povas sekvi ajn personojn en la reto.
title: Ni pretigu vin ĉe %{domain}.
status:
account_status: Statuso de la konto
confirming: Atendante ke retpoŝta konfirmo estos kompletigita.
functional: Via konto estas tute funkcia.
+ pending: Via apliko estas superrigardata de niaj teamo. Ĉi tiu povas bezoni iom da tempo. Vi ricevos retpoŝton, se via apliko estas konsentita.
redirecting_to: Via konto estas neaktiva ĉar ĝi nun alidirektas al %{acct}.
+ self_destruct: Pro %{domain} ekfermas, vi povos nur havi malvastan atingon al via konto.
view_strikes: Vidi antauaj admonoj kontra via konto
too_fast: Formularo sendita tro rapide, klopodu denove.
use_security_key: Uzi sekurecan ŝlosilon
@@ -1183,6 +1224,7 @@ eo:
data_removal: Viaj afiŝoj kaj aliaj informoj estos forigita por eterne
email_change_html: Vi povas ŝanĝi vian retadreson sen forigi vian konton
email_contact_html: Se ĝi ankoraŭ ne alvenas, vi povas retpoŝti al %{email} por helpo
+ email_reconfirmation_html: Se vi ne ricevas la konfirmretpoŝton, vi povas denove peti
irreversible: Vi ne povas regajni au reaktivigi vian konton
more_details_html: Por pli da detaloj, vidi la privatecan politikon.
username_available: Via uzantnomo iĝos denove disponebla
@@ -1219,6 +1261,7 @@ eo:
your_appeal_rejected: Via apelacio malakceptitas
edit_profile:
basic_information: Baza informo
+ hint_html: "Personigi, kion homoj vidi en via publika profilo kaj apud viaj afiŝoj. Aliaj homoj estas pli probable resekvi vin kaj interagi kun vi se vi havus finigitan profilon kaj profilan foton."
other: Alia
errors:
'400': La peto kiun vi sendis estas nevalida au malformas.
@@ -1341,6 +1384,44 @@ eo:
merge_long: Konservi ekzistajn registrojn kaj aldoni novajn
overwrite: Anstataŭigi
overwrite_long: Anstataŭigi la nunajn registrojn per la novaj
+ overwrite_preambles:
+ blocking_html:
+ one: Vi tuj anstataŭas vian blokliston, kun ĝis %{count} kontoj de %{filename}.
+ other: Vi tuj anstataŭas vian blokliston ĝis %{count} kontoj de %{filename}.
+ bookmarks_html:
+ one: Vi tuj anstataŭas viajn legosignojn kun ĝis %{count} afiŝoj de %{filename}.
+ other: Vi tuj anstataŭas viajn legosignojn kun ĝis %{count} afiŝoj de %{filename}.
+ domain_blocking_html:
+ one: Vi tuj anstataŭas vian domajnan blokliston kun ĝis %{count} domajnoj de %{filename}.
+ other: Vi tuj anstataŭas vian domajnan blokliston kun ĝis %{count} domajnoj de %{filename}.
+ following_html:
+ one: Vi tuj sekvos ĝis %{count} kontoj de %{filename} kaj ĉesos sekvi iun alian.
+ other: Vi tuj sekvos ĝis %{count} kontoj de %{filename} kaj ĉesos sekvi iun alian.
+ lists_html:
+ one: Vi tuj anstataŭos viajn listojn kun enhavo de %{filename}. Ĝis %{count} kontoj estos aldonitaj al novaj listoj.
+ other: Vi tuj anstataŭos viajn listojn kun enhavo de %{filename}. Ĝis %{count} kontoj estos aldonitaj al novaj listoj.
+ muting_html:
+ one: Vi tuj anstataŭas viajn listojn de silentigitaj kontoj kun ĝis%{count} kontoj de %{filename}.
+ other: Vi tuj anstataŭas viajn listojn de silentigitaj kontoj kun ĝis%{count} kontoj de %{filename}.
+ preambles:
+ blocking_html:
+ one: Vi tuj blokas ĝis %{count} kontoj de %{filename}.
+ other: Vi tuj blokas ĝis %{count} kontoj de %{filename}.
+ bookmarks_html:
+ one: Vi tuj aldonas ĝis %{count} afiŝojn de %{filename} al viaj legosignoj.
+ other: Vi tuj aldonas ĝis %{count} afiŝojn de %{filename} al viaj legosignoj.
+ domain_blocking_html:
+ one: Vi tuj blokas ĝis %{count} domajnoj de %{filename}.
+ other: Vi tuj blokas ĝis %{count} domajnoj de %{filename}.
+ following_html:
+ one: Vi tuj sekvas ĝis %{count} kontoj de %{filename}.
+ other: Vi tuj sekvas ĝis %{count} kontoj de %{filename}.
+ lists_html:
+ one: Vi tuj aldonas ĝis %{count} kontojn de %{filename} al viaj listoj. Novaj listoj estos kreitaj se ne estas listo por aldoni.
+ other: Vi tuj aldonas ĝis %{count} kontojn de %{filename} al viaj listoj. Novaj listoj estos kreitaj se ne estas listo por aldoni.
+ muting_html:
+ one: Vi tujsilentas ĝis %{count} kontoj de %{filename}.
+ other: Vi tujsilentas ĝis %{count} kontoj de %{filename}.
preface: Vi povas importi datumojn, kiujn vi eksportis el alia servilo, kiel liston de homoj, kiujn vi sekvas aŭ blokas.
recent_imports: Lastatempaj importoj
states:
@@ -1352,6 +1433,9 @@ eo:
success: Viaj datumoj estis sukcese alŝutitaj kaj estos traktitaj kiel planite
time_started: Komencis je
titles:
+ blocking: Enportante blokitajn kontojn
+ bookmarks: Enportante legosignojn
+ domain_blocking: Enportante blokitajn domajnojn
following: Importado de sekvaj kontoj
lists: Importi listojn
muting: Importado de silentigitaj kontoj
@@ -1408,13 +1492,21 @@ eo:
unsubscribe:
action: Jes, malabonu
complete: Malabonita
+ confirmation_html: Ĉu vi certas, ke vi volas malaboni je ricevi %{type} por Mastodon ĉe %{domain} al via retpoŝto ĉe %{email}? Vi ĉiam povas reaboni de viaj retpoŝtaj sciigaj agordoj.
emails:
notification_emails:
+ favourite: sciigoj retpoŝtaj de ŝatataj
+ follow: sciigoj retpoŝtaj de sekvoj
follow_request: retpoŝtajn petoj de sekvado
+ mention: sciigoj retpoŝtaj de mencioj
+ reblog: sciigoj retpoŝtaj de stimuloj
+ resubscribe_html: Se vi malabonis erare, vi povas reaboni de viaj retpoŝtaj sciigaj agordoj.
+ success_html: Vi ne plu ricevos %{type} por Mastodon ĉe %{domain} al via retpoŝto ĉe %{email}.
title: Malaboni
media_attachments:
validations:
images_and_video: Aldoni videon al mesaĝo, kiu jam havas bildojn ne eblas
+ not_found: Dosiero %{ids} ne trovis aŭ jam alteniĝis al alia afiŝo
not_ready: Ne povas aldoni dosieron kiu ne finas procezitis.
too_many: Aldoni pli ol 4 dosierojn ne eblas
migrations:
@@ -1491,6 +1583,8 @@ eo:
update:
subject: "%{name} redaktis afiŝon"
notifications:
+ administration_emails: Sciigoj retpoŝtaj de administacio
+ email_events: Eventoj por retpoŝtaj sciigoj
email_events_hint: 'Elekti la eventojn pri kioj vi volas ricevi sciigojn:'
number:
human:
@@ -1584,6 +1678,7 @@ eo:
scheduled_statuses:
over_daily_limit: Vi transpasis la limigon al %{limit} samtage planitaj mesaĝoj
over_total_limit: Vi transpasis la limigon al %{limit} planitaj mesaĝoj
+ too_soon: dato devas esti en la futuro
self_destruct:
lead_html: Bedaŭrinde, %{domain} konstante fermiĝas. Se vi havis konton tie, vi ne povos daŭrigi uzi ĝin, sed vi ankoraŭ povas peti sekurkopion de viaj datumoj.
title: Ĉi tiu servilo fermiĝas
@@ -1652,6 +1747,7 @@ eo:
preferences: Preferoj
profile: Profilo
relationships: Sekvatoj kaj sekvantoj
+ severed_relationships: Finitaj rilatoj
statuses_cleanup: Automata mesaĝforigo
strikes: Kontroladmonoj
two_factor_authentication: Dufaktora aŭtentigo
@@ -1659,8 +1755,13 @@ eo:
severed_relationships:
download: Elŝuti (%{count})
event_type:
+ account_suspension: Suspendado de konto (%{target_name})
+ domain_block: Suspendado de servilo (%{target_name})
user_domain_block: Vi blokis %{target_name}
lost_followers: Perditaj sekvantoj
+ lost_follows: Perditaj sekvantoj
+ preamble: Vi eble perdos sekvojn kaj sekvantojn, kiam vi blockus domajnon aŭ kiam viaj moderantoj elektus suspendi malproksiman servilon. Kiam tio okazas, vi povus elŝulti registrojn de finitaj rilatoj, por inspektiĝi kaj eble enporti en alia servilo.
+ purged: Informo pri ĉi tiu servilo foriĝis de la administracio de via servilo.
type: Evento
statuses:
attached:
@@ -1775,19 +1876,24 @@ eo:
action: Konto-agordoj
explanation: La apelacio de la admono kontra via konto je %{strike_date} pri sendodato %{appeal_date} aprobitas.
subject: Via apelacio de %{date} aprobitas
+ subtitle: Via konto estas denove bone.
title: Apelacio estis aprobita
appeal_rejected:
explanation: La apelacio je %{strike_date} pri dato %{appeal_date} malakceptitas.
subject: Via apelacio de %{date} estis malaprobita
+ subtitle: Via revizio negiĝis.
title: Apelacio estis malaprobita
backup_ready:
+ explanation: Vi petis por tuta rezervo de via Mastodon-a konto.
extra: Estas nun preta por elŝuto!
subject: Via arkivo estas preta por elŝutado
title: Arkiva elŝuto
failed_2fa:
+ details: 'Jen detaloj de la provaĵo de ensaluti:'
explanation: Iu provis ensaluti al via konto sed provizis nevalidan duan aŭtentikigfaktoron.
further_actions_html: Se ĉi tio ne estis vi, ni rekomendas ke vi %{action} tuj ĉar ĝi povas esti endanĝerigita.
subject: Malsukceso dum la dua aŭtentikigfaktoro
+ title: Du-faktora aŭtentigo malsukcesis
suspicious_sign_in:
change_password: ŝanĝi vian pasvorton
details: 'Ĉi-sube estas detaloj pri la saluto:'
@@ -1831,13 +1937,24 @@ eo:
apps_ios_action: Elŝutu ĉe la App Store
apps_step: Elŝutu niajn oficialajn aplikaĵojn.
apps_title: Aplikaĵoj de Mastodon
+ checklist_subtitle: 'Nin eku vin en ĉi tiu nova socia rando:'
checklist_title: Bonvenan Markolisto
edit_profile_action: Agordi
+ edit_profile_step: Plibonigi viajn interagojn per havas finitan profilon.
edit_profile_title: Agordi vian profilon
explanation: Jen kelkaj konsiloj por helpi vin komenci
feature_action: Lerni pli
+ feature_audience: Mastodon provizas vin per unika eblo por administri vian sekvantaron sen perantoj. Mastodon disponigita en via propra infrastrukturo ebligas al vi sekvi kaj esti sekvita de alia ajn Mastodon-servilo kaj estas tute sub via kontrolo nure.
+ feature_audience_title: Konstruu vian spektantaron memfide
+ feature_control: Vi scias plej bone, kion vi volas vidi en via hejmtemplinio. Neniaj algoritmoj nek reklamoj por malŝpari vian tempon. Sekvu iun ajn trans Mastodon-servilo ajn el unu konto kaj ricevu iliajn afiŝojn kronologie, kaj igu vian ejon de reto iom pli kiel vi.
+ feature_control_title: Havu la kontrolon de via propra templinio
+ feature_creativity: Mastodon subtenas aŭdaj, videajn kaj bildajn afiŝojn, priskribojn alireblecajn, enketojn, avertojn pri enhavo, animitajn bildetojn, personajn emoĝiojn, stucan kontrolon de bildetoj, kaj pli, por helpi al vi esprimi vin rete. Ĉu vi publikigas vian arton, vian muzikon, aŭ viajn podkastojn, Mastodon estas por vi.
+ feature_creativity_title: Senkompara kreemeco
+ feature_moderation: Mastodon denove donas al vi decidpovon. Ĉiu servilo kreas siajn proprajn regulojn kaj gvidliniojn, kiuj estas devigitaj loke kaj ne desupre kiel en firmaaj sociaj retejoj, igante ĝin la plej agordebla respondante al la bezonoj de malsamaj aroj de homoj. Aliĝu servilon kun la reguloj, kun kiuj vi konsentas, aŭ gastigu vian propran.
+ feature_moderation_title: Moderante kiel ĝi devus esti
follow_action: Sekvi
follow_step: Sekvi interesajn homojn estas pri kio Mastodon temas.
+ follow_title: Personigu vian hejmtemplinion
follows_subtitle: Sekvu konatajn kontojn
follows_title: Kiun sekvi
follows_view_more: Rigardu pli da homoj por sekvi
@@ -1862,6 +1979,7 @@ eo:
invalid_otp_token: Nevalida kodo de dufaktora aŭtentigo
otp_lost_help_html: Se vi perdas aliron al ambaŭ, vi povas kontakti %{email}
rate_limited: Estas tro multaj aŭtentigaj provoj, reprovu poste.
+ seamless_external_login: Vi estas ensalutinta per ekstera servo, do pasvortaj kaj retpoŝtaj agordoj ne estas disponeblaj.
signed_in_as: 'Salutinta kiel:'
verification:
extra_instructions_html: Konsilo: La ligilo en via retejo povas esti nevidebla. La grava parto estas rel="me", kiu evitas identoŝtelon en retejoj kun enhavo generita de uzantoj. Vi povas eĉ uzi link-etikedon en la header de la paĝo anstataŭ a, sed la HTML devas esti atingebla sen plenumado de JavaScript.
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index d9288cfb0b..3e0680aa61 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1069,11 +1069,11 @@ es-MX:
created_msg: El nuevo alias se ha creado correctamente. Ahora puedes empezar el traslado desde la cuenta antigua.
deleted_msg: Elimina el alias correctamente. El traslado de esa cuenta a esta ya no será posible.
empty: No tienes ningún alias.
- hint_html: Si quieres migrar de otra cuenta a esta, aquí puedes crear un alias, es necesario proceder antes de empezar a mover seguidores de la cuenta anterior a esta. Esta acción por sí misma es inofensiva y reversible. La migración de la cuenta se inicia desde la cuenta antigua.
+ hint_html: Si deseas migrar de otra cuenta a esta, aquí puedes crear un alias, que es necesario para poder mover seguidores de la cuenta anterior a esta. Esta acción por sí misma es inofensiva y reversible. La migración de la cuenta se inicia desde la cuenta anterior.
remove: Desvincular alias
appearance:
advanced_web_interface: Interfaz web avanzada
- advanced_web_interface_hint: 'Si quieres aprovechar todo el ancho de tu pantalla, la interfaz web avanzada te permite configurar muchas columnas diferentes para ver toda la información que quieras al mismo tiempo: Inicio, notificaciones, cronología federada, cualquier número de listas y etiquetas.'
+ advanced_web_interface_hint: 'Si deseas aprovechar todo el ancho de tu pantalla, la interfaz web avanzada te permite configurar muchas columnas diferentes para ver toda la información que quieras al mismo tiempo: inicio, notificaciones, cronología federada, cualquier número de listas y etiquetas.'
animations_and_accessibility: Animaciones y accesibilidad
confirmation_dialogs: Diálogos de confirmación
discovery: Descubrir
diff --git a/config/locales/nan.yml b/config/locales/nan.yml
index 512c65fe8b..d46de7249c 100644
--- a/config/locales/nan.yml
+++ b/config/locales/nan.yml
@@ -1 +1,16 @@
+---
nan:
+ admin:
+ instances:
+ dashboard:
+ instance_languages_dimension: Tsia̍p用ê語言
+ statuses:
+ language: 語言
+ trends:
+ tags:
+ dashboard:
+ tag_languages_dimension: Tsia̍p用ê語言
+ scheduled_statuses:
+ too_soon: Tio̍h用未來ê日期。
+ statuses:
+ default_language: Kap界面ê語言sio kâng
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index f39eb18f61..0c5c10d8bd 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -60,6 +60,7 @@ eo:
setting_display_media_default: Kaŝi plurmediojn markitajn kiel tiklaj
setting_display_media_hide_all: Ĉiam kaŝi la plurmediojn
setting_display_media_show_all: Ĉiam montri la plurmediojn
+ setting_system_scrollbars_ui: Aplikas nur por surtablaj retumiloj baziĝas de Safari kaj Chrome
setting_use_blurhash: Transirojn estas bazita sur la koloroj de la kaŝitaj aŭdovidaĵoj sed ne montri iun ajn detalon
setting_use_pending_items: Kaŝi tempoliniajn ĝisdatigojn malantaŭ klako anstataŭ aŭtomate rulumi la fluon
username: Vi povas uzi literojn, ciferojn kaj substrekojn
@@ -223,6 +224,7 @@ eo:
setting_hide_network: Kaŝi viajn sekvantojn kaj sekvatojn
setting_reduce_motion: Redukti la movecojn de la animacioj
setting_system_font_ui: Uzi la dekomencan tiparon de la sistemo
+ setting_system_scrollbars_ui: Uzu la defaŭltan rulumilon de la sistemo
setting_theme: Etoso de la retejo
setting_trends: Montri hodiaŭajn furoraĵojn
setting_unfollow_modal: Montri konfirman fenestron antaŭ ol ĉesi sekvi iun
From 72a4da83fdd2ac8a089cde208149792108783d97 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Fri, 6 Dec 2024 13:55:47 -0500
Subject: [PATCH 043/175] Merge duplicate custom css request specs (#33204)
---
spec/requests/custom_css_spec.rb | 30 +++++++++++++++++++-----
spec/requests/custom_stylesheets_spec.rb | 18 --------------
2 files changed, 24 insertions(+), 24 deletions(-)
delete mode 100644 spec/requests/custom_stylesheets_spec.rb
diff --git a/spec/requests/custom_css_spec.rb b/spec/requests/custom_css_spec.rb
index a46ebd7281..d97da00187 100644
--- a/spec/requests/custom_css_spec.rb
+++ b/spec/requests/custom_css_spec.rb
@@ -10,8 +10,14 @@ RSpec.describe 'Custom CSS' do
it 'returns empty stylesheet' do
get '/custom.css'
- expect(response.content_type).to include('text/css')
- expect(response.body.presence).to be_nil
+ expect(response)
+ .to have_http_status(200)
+ .and have_cacheable_headers
+ .and have_attributes(
+ content_type: match('text/css')
+ )
+ expect(response.body.presence)
+ .to be_nil
end
end
@@ -23,8 +29,14 @@ RSpec.describe 'Custom CSS' do
it 'returns stylesheet from settings' do
get '/custom.css'
- expect(response.content_type).to include('text/css')
- expect(response.body.strip).to eq(expected_css)
+ expect(response)
+ .to have_http_status(200)
+ .and have_cacheable_headers
+ .and have_attributes(
+ content_type: match('text/css')
+ )
+ expect(response.body.strip)
+ .to eq(expected_css)
end
def expected_css
@@ -44,8 +56,14 @@ RSpec.describe 'Custom CSS' do
it 'returns stylesheet from settings' do
get '/custom.css'
- expect(response.content_type).to include('text/css')
- expect(response.body.strip).to eq(expected_css)
+ expect(response)
+ .to have_http_status(200)
+ .and have_cacheable_headers
+ .and have_attributes(
+ content_type: match('text/css')
+ )
+ expect(response.body.strip)
+ .to eq(expected_css)
end
def expected_css
diff --git a/spec/requests/custom_stylesheets_spec.rb b/spec/requests/custom_stylesheets_spec.rb
deleted file mode 100644
index 9c5c058344..0000000000
--- a/spec/requests/custom_stylesheets_spec.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-RSpec.describe 'Custom stylesheets' do
- describe 'GET /custom.css' do
- before { get '/custom.css' }
-
- it 'returns http success' do
- expect(response)
- .to have_http_status(200)
- .and have_cacheable_headers
- .and have_attributes(
- content_type: match('text/css')
- )
- end
- end
-end
From 58c40caeb4f601b1733b86e786d2c11fccf994d5 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Sat, 7 Dec 2024 02:46:34 -0500
Subject: [PATCH 044/175] Extract SPA-handled routes to stand-alone file
(#33190)
---
config/routes.rb | 35 +----------------------------------
config/routes/web_app.rb | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 34 deletions(-)
create mode 100644 config/routes/web_app.rb
diff --git a/config/routes.rb b/config/routes.rb
index 0f4df757da..b4c9b6918b 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -16,37 +16,6 @@ def redirect_with_vary(path)
end
Rails.application.routes.draw do
- # Paths of routes on the web app that to not require to be indexed or
- # have alternative format representations requiring separate controllers
- web_app_paths = %w(
- /getting-started
- /keyboard-shortcuts
- /home
- /public
- /public/local
- /public/remote
- /conversations
- /lists/(*any)
- /links/(*any)
- /notifications/(*any)
- /notifications_v2/(*any)
- /favourites
- /bookmarks
- /pinned
- /start/(*any)
- /directory
- /explore/(*any)
- /search
- /publish
- /follow_requests
- /blocks
- /domain_blocks
- /mutes
- /followed_tags
- /statuses/(*any)
- /deck/(*any)
- ).freeze
-
root 'home#index'
mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development?
@@ -226,9 +195,7 @@ Rails.application.routes.draw do
draw(:api)
- web_app_paths.each do |path|
- get path, to: 'home#index'
- end
+ draw(:web_app)
get '/web/(*any)', to: redirect('/%{any}', status: 302), as: :web, defaults: { any: '' }, format: false
get '/about', to: 'about#show'
diff --git a/config/routes/web_app.rb b/config/routes/web_app.rb
new file mode 100644
index 0000000000..c09232d1f2
--- /dev/null
+++ b/config/routes/web_app.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+# Paths handled by the React application, which do not:
+# - Require indexing
+# - Have alternative format representations
+
+%w(
+ /blocks
+ /bookmarks
+ /conversations
+ /deck/(*any)
+ /directory
+ /domain_blocks
+ /explore/(*any)
+ /favourites
+ /follow_requests
+ /followed_tags
+ /getting-started
+ /home
+ /keyboard-shortcuts
+ /links/(*any)
+ /lists/(*any)
+ /mutes
+ /notifications_v2/(*any)
+ /notifications/(*any)
+ /pinned
+ /public
+ /public/local
+ /public/remote
+ /publish
+ /search
+ /start/(*any)
+ /statuses/(*any)
+).each { |path| get path, to: 'home#index' }
From ca45f896dd3d967521884d42b92d1a4844e16016 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Mon, 9 Dec 2024 09:23:19 +0100
Subject: [PATCH 045/175] Fix various visual sign-up flow issues (#33206)
---
app/controllers/auth/registrations_controller.rb | 8 ++++++++
app/javascript/styles/mastodon-light/diff.scss | 6 ++++++
app/javascript/styles/mastodon/about.scss | 5 ++++-
app/javascript/styles/mastodon/components.scss | 10 +++++-----
app/javascript/styles/mastodon/forms.scss | 14 +++-----------
app/javascript/styles/mastodon/variables.scss | 7 +++++++
app/views/auth/registrations/new.html.haml | 4 ++--
config/locales/devise.an.yml | 5 -----
config/locales/devise.ar.yml | 5 -----
config/locales/devise.ast.yml | 5 -----
config/locales/devise.be.yml | 5 -----
config/locales/devise.bg.yml | 5 -----
config/locales/devise.bn.yml | 5 -----
config/locales/devise.br.yml | 5 -----
config/locales/devise.ca.yml | 5 -----
config/locales/devise.ckb.yml | 5 -----
config/locales/devise.co.yml | 5 -----
config/locales/devise.cs.yml | 5 -----
config/locales/devise.cy.yml | 5 -----
config/locales/devise.da.yml | 5 -----
config/locales/devise.de.yml | 5 -----
config/locales/devise.el.yml | 5 -----
config/locales/devise.en-GB.yml | 5 -----
config/locales/devise.en.yml | 5 -----
config/locales/devise.eo.yml | 5 -----
config/locales/devise.es-AR.yml | 5 -----
config/locales/devise.es-MX.yml | 5 -----
config/locales/devise.es.yml | 5 -----
config/locales/devise.et.yml | 5 -----
config/locales/devise.eu.yml | 5 -----
config/locales/devise.fa.yml | 5 -----
config/locales/devise.fi.yml | 5 -----
config/locales/devise.fo.yml | 5 -----
config/locales/devise.fr-CA.yml | 5 -----
config/locales/devise.fr.yml | 5 -----
config/locales/devise.fy.yml | 5 -----
config/locales/devise.ga.yml | 5 -----
config/locales/devise.gd.yml | 5 -----
config/locales/devise.gl.yml | 5 -----
config/locales/devise.he.yml | 5 -----
config/locales/devise.hr.yml | 4 ----
config/locales/devise.hu.yml | 5 -----
config/locales/devise.hy.yml | 5 -----
config/locales/devise.ia.yml | 5 -----
config/locales/devise.id.yml | 5 -----
config/locales/devise.ie.yml | 5 -----
config/locales/devise.io.yml | 5 -----
config/locales/devise.is.yml | 5 -----
config/locales/devise.it.yml | 5 -----
config/locales/devise.ja.yml | 5 -----
config/locales/devise.ka.yml | 4 ----
config/locales/devise.kab.yml | 5 -----
config/locales/devise.kk.yml | 5 -----
config/locales/devise.ko.yml | 5 -----
config/locales/devise.ku.yml | 5 -----
config/locales/devise.la.yml | 1 -
config/locales/devise.lad.yml | 5 -----
config/locales/devise.lt.yml | 5 -----
config/locales/devise.lv.yml | 5 -----
config/locales/devise.ms.yml | 5 -----
config/locales/devise.my.yml | 5 -----
config/locales/devise.nl.yml | 5 -----
config/locales/devise.nn.yml | 5 -----
config/locales/devise.no.yml | 5 -----
config/locales/devise.oc.yml | 5 -----
config/locales/devise.pl.yml | 5 -----
config/locales/devise.pt-BR.yml | 5 -----
config/locales/devise.pt-PT.yml | 5 -----
config/locales/devise.ro.yml | 5 -----
config/locales/devise.ru.yml | 5 -----
config/locales/devise.sc.yml | 5 -----
config/locales/devise.sco.yml | 5 -----
config/locales/devise.si.yml | 5 -----
config/locales/devise.sk.yml | 5 -----
config/locales/devise.sl.yml | 5 -----
config/locales/devise.sq.yml | 5 -----
config/locales/devise.sr-Latn.yml | 5 -----
config/locales/devise.sr.yml | 5 -----
config/locales/devise.sv.yml | 5 -----
config/locales/devise.ta.yml | 5 -----
config/locales/devise.th.yml | 5 -----
config/locales/devise.tr.yml | 5 -----
config/locales/devise.tt.yml | 1 -
config/locales/devise.uk.yml | 5 -----
config/locales/devise.vi.yml | 5 -----
config/locales/devise.zh-CN.yml | 5 -----
config/locales/devise.zh-HK.yml | 5 -----
config/locales/devise.zh-TW.yml | 5 -----
88 files changed, 35 insertions(+), 414 deletions(-)
diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb
index 4d94c80158..34c7599553 100644
--- a/app/controllers/auth/registrations_controller.rb
+++ b/app/controllers/auth/registrations_controller.rb
@@ -142,4 +142,12 @@ class Auth::RegistrationsController < Devise::RegistrationsController
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
+
+ def is_flashing_format? # rubocop:disable Naming/PredicateName
+ if params[:action] == 'create'
+ false # Disable flash messages for sign-up
+ else
+ super
+ end
+ end
end
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 21da3575f5..4ed0e676de 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -3,6 +3,12 @@
.simple_form .button.button-tertiary {
color: $highlight-text-color;
+
+ &:hover,
+ &:focus,
+ &:active {
+ color: $white;
+ }
}
.status-card__actions button,
diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss
index 9307c21883..4d53195606 100644
--- a/app/javascript/styles/mastodon/about.scss
+++ b/app/javascript/styles/mastodon/about.scss
@@ -21,7 +21,6 @@ $fluid-breakpoint: $maximum-width + 20px;
.rules-list {
font-size: 15px;
line-height: 22px;
- color: $primary-text-color;
counter-reset: list-counter;
li {
@@ -82,6 +81,10 @@ $fluid-breakpoint: $maximum-width + 20px;
}
}
+ &__text {
+ color: $primary-text-color;
+ }
+
&__hint {
font-size: 14px;
font-weight: 400;
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 88839b0431..4af85d00ab 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -108,7 +108,7 @@
&:disabled,
&.disabled {
- background-color: $ui-primary-color;
+ background-color: $ui-button-disabled-color;
cursor: not-allowed;
}
@@ -148,14 +148,14 @@
&:disabled,
&.disabled {
opacity: 0.7;
- border-color: $ui-primary-color;
- color: $ui-primary-color;
+ border-color: $ui-button-disabled-color;
+ color: $ui-button-disabled-color;
&:active,
&:focus,
&:hover {
- border-color: $ui-primary-color;
- color: $ui-primary-color;
+ border-color: $ui-button-disabled-color;
+ color: $ui-button-disabled-color;
}
}
}
diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss
index 0d7992aba2..d79ab2aa21 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -584,8 +584,9 @@ code {
background-color: $ui-button-focus-background-color;
}
+ &:disabled,
&:disabled:hover {
- background-color: $ui-primary-color;
+ background-color: $ui-button-disabled-color;
}
&.negative {
@@ -599,16 +600,6 @@ code {
}
}
- .button.button-tertiary {
- padding: 9px;
-
- &:hover,
- &:focus,
- &:active {
- padding: 10px;
- }
- }
-
select {
appearance: none;
box-sizing: border-box;
@@ -1173,6 +1164,7 @@ code {
align-items: center;
padding-bottom: 30px;
margin-bottom: 30px;
+ color: $white;
li {
flex: 0 0 auto;
diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss
index 2095eb310c..32b3260634 100644
--- a/app/javascript/styles/mastodon/variables.scss
+++ b/app/javascript/styles/mastodon/variables.scss
@@ -1,3 +1,5 @@
+@use 'sass:color';
+
// Commonly used web colors
$black: #000000; // Black
$white: #ffffff; // White
@@ -46,6 +48,11 @@ $ui-button-focus-background-color: $blurple-600 !default;
$ui-button-focus-outline-color: $blurple-400 !default;
$ui-button-focus-outline: solid 2px $ui-button-focus-outline-color !default;
+$ui-button-disabled-color: color.adjust(
+ $ui-button-background-color,
+ $alpha: -0.3
+) !default;
+
$ui-button-secondary-color: $blurple-500 !default;
$ui-button-secondary-border-color: $blurple-500 !default;
$ui-button-secondary-focus-border-color: $blurple-300 !default;
diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml
index 55db49f03c..4864d81383 100644
--- a/app/views/auth/registrations/new.html.haml
+++ b/app/views/auth/registrations/new.html.haml
@@ -37,7 +37,7 @@
required: true
= f.input :password_confirmation,
hint: false,
- input_html: { 'aria-label': t('simple_form.labels.defaults.confirm_password'), autocomplete: 'new-password' },
+ input_html: { 'aria-label': t('simple_form.labels.defaults.confirm_password'), autocomplete: 'new-password', maxlength: User.password_length.last },
placeholder: t('simple_form.labels.defaults.confirm_password'),
required: true
= f.input :confirm_password,
@@ -73,7 +73,7 @@
= f.input :agreement,
as: :boolean,
label: t('auth.privacy_policy_agreement_html', rules_path: about_more_path, privacy_policy_path: privacy_policy_path),
- required: true,
+ required: false,
wrapper: :with_label
.actions
diff --git a/config/locales/devise.an.yml b/config/locales/devise.an.yml
index 4be18845cc..2d971d706a 100644
--- a/config/locales/devise.an.yml
+++ b/config/locales/devise.an.yml
@@ -84,11 +84,6 @@ an:
updated_not_active: La tuya clau s'ha cambiau con exito.
registrations:
destroyed: Dica unatra! La tuya cuenta ha estau cancelada con exito. Asperamos veyer-te de nuevo luego.
- signed_up: Bienveniu! T'has rechistrau correctament.
- signed_up_but_inactive: T'has rechistrau con exito. Manimenos, no s'ha puesto iniciar sesión perque la tuya cuenta encara no ye activada.
- signed_up_but_locked: T'has rechistrau con exito. Manimenos, no s'ha puesto iniciar sesión perque la tuya cuenta ye blocada.
- signed_up_but_pending: Un mensache con un vinclo de confirmación ha estau ninviau a la tuya adreza de correu electronico. Dimpués de fer clic en o vinclo, revisaremos la tuya solicitut. Serás notificau si s'apreba.
- signed_up_but_unconfirmed: Un mensache con un vinclo de confirmación ha estau ninviau a la tuya adreza de correu electronico. Per favor, sigue lo vinclo pa activar la tuya cuenta. Per favor, compreba la tuya carpeta de correu no deseyau si no recibes dito correu electronico.
update_needs_confirmation: Has actualizau la tuya cuenta con exito, pero amenestemos verificar la tuya nueva adreza de correu electronico. Per favor, compreba lo tuyo correu electronico y sigue lo vinclo de confirmación pa confirmar la tuya nueva adreza de correu electronico. Per favor, compreba la tuya carpeta de correu no deseyau si no recibes dito correu electronico.
updated: La tuya cuenta s'ha actualizau con exito.
sessions:
diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml
index e8b6ff7d93..7b3f6462aa 100644
--- a/config/locales/devise.ar.yml
+++ b/config/locales/devise.ar.yml
@@ -94,11 +94,6 @@ ar:
updated_not_active: تم تغيير كلمة المرور بنجاح.
registrations:
destroyed: إلى اللقاء! لقد تم إلغاء حسابك. نتمنى أن نراك مجددا.
- signed_up: أهلا وسهلا! تم تسجيل دخولك بنجاح.
- signed_up_but_inactive: لقد تمت عملية إنشاء حسابك بنجاح إلاّ أنه لا يمكننا تسجيل دخولك إلاّ بعد قيامك بتفعيله.
- signed_up_but_locked: لقد تم تسجيل حسابك بنجاح إلّا أنه لا يمكنك تسجيل الدخول لأن حسابك مجمد.
- signed_up_but_pending: لقد تم إرسال رسالة تحتوي على رابط للتفعيل إلى عنوان بريدك الإلكتروني. بالضغط على الرابط سوف نقوم بمراجعة طلبك. سنقوم بإشعارك إن حظيت بالموافقة.
- signed_up_but_unconfirmed: لقد تم إرسال رسالة تحتوي على رابط للتفعيل إلى عنوان بريدك الإلكتروني. بالضغط على الرابط سوف يتم تفعيل حسابك. لذا يُرجى إلقاء نظرة على ملف الرسائل غير المرغوب فيها إنْ لم تَعثُر على الرسالة السالفة الذِكر.
update_needs_confirmation: لقد قمت بتحديث حسابك بنجاح إلا أنه يجب علينا التأكد من صحة عنوان بريدك الإلكتروني الجديد. يرجى الإطلاع على بريدك و اتباع الرابط الذي تلقيتَه لتأكيد عنوان بريدك الإلكتروني الجديد. إن لم تتلقى تلك الرسالة ، ندعوك إلى تفقُّد مجلد البريد المزعج.
updated: تم تحديث حسابك بنجاح.
sessions:
diff --git a/config/locales/devise.ast.yml b/config/locales/devise.ast.yml
index c353607043..8c2f2f8e73 100644
--- a/config/locales/devise.ast.yml
+++ b/config/locales/devise.ast.yml
@@ -72,11 +72,6 @@ ast:
updated_not_active: La contraseña camudó correutamente.
registrations:
destroyed: "¡Ta llueu! La cuenta anulóse correutamente. Esperamos volver vete pronto."
- signed_up: "¡Afáyate! Rexistréstite correutamente."
- signed_up_but_inactive: Rexistréstite correutamente. Por embargu, nun se pudo aniciar la sesión porque la cuenta entá nun s'activó.
- signed_up_but_locked: Rexistréstite correutamente. Por embargu, nun se pudo aniciar la sesión porque la cuenta ta bloquiada.
- signed_up_but_pending: Unvióse un mensaxe a la direición de corréu electrónicu que contién un enllaz de confirmación. Darréu de calcar nel enllaz, vamos revisar la solicitú y si s'aprueba, avisámoste.
- signed_up_but_unconfirmed: Unvióse un mensaxe de confirmación a la to direición de corréu electrónicu. Sigui l'enllaz p'activar la cuenta y revisa la carpeta Puxarra si nun recibiesti esti mensaxe.
update_needs_confirmation: Anovesti la cuenta correutamente, mas tenemos de verificar la direición de corréu electrónicu nueva. Revisa'l to corréu electrónicu y sigui l'enllaz de confirmación pa confirmar esta direición. Si nun recibiesti'l mensaxe, revisa la carpeta Puxarra.
updated: La cuenta anovóse correutamente.
sessions:
diff --git a/config/locales/devise.be.yml b/config/locales/devise.be.yml
index 81f3120a88..5f03bf06b8 100644
--- a/config/locales/devise.be.yml
+++ b/config/locales/devise.be.yml
@@ -94,11 +94,6 @@ be:
updated_not_active: Ваш пароль быў паспяхова зменены.
registrations:
destroyed: Пакуль! Ваш уліковы запіс быў паспяхова выдалены. Мы спадзяваемся хутка ўбачыць вас зноў.
- signed_up: Вітаем! Вы былі паспяхова зарэгістраваны.
- signed_up_but_inactive: Вы паспяхова зарэгістраваліся. Аднак, мы не змаглі вас аўтарызаваць, таму што ваш уліковы запіс пакуль што не актывізаваны.
- signed_up_but_locked: Вы паспяхова зарэгістраваліся. Аднак, мы не змаглі вас аўтарызаваць, таму што ваш уліковы запіс заблакаваны.
- signed_up_but_pending: Ліст са спасылкай для пацверджання быў высланы на вашу электронную пошту. Пасля таго, як вы націсніце на спасылку, мы разгледзім вашу заяўку. Калі яна будзе ўхвалена, вы будзеце праінфармаваны.
- signed_up_but_unconfirmed: Ліст са спасылкай для пацверджання быў высланы на вашу электронную пошту. Калі ласка, перайдзіце па спасылцы для актывацыі вашага ўліковага запісу. Праверце вашу тэчку са спамам, калі вы не атрымалі такі ліст.
update_needs_confirmation: Вы паспяхова абнавілі свой уліковы запіс, аднак, нам неабходна пацвердзіць ваш новы адрас электроннай пошты. Калі ласка, праверце вашу пошту і перайдзіце па спасылцы для пацверджання вашага новага адраса электроннай пошты. Праверце тэчку са спамам, калі вы не атрымалі такі ліст.
updated: Ваш уліковы запіс быў паспяхова абноўлены.
sessions:
diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml
index 116939762c..5cb41fa616 100644
--- a/config/locales/devise.bg.yml
+++ b/config/locales/devise.bg.yml
@@ -94,11 +94,6 @@ bg:
updated_not_active: Паролата ви беше променена успешно.
registrations:
destroyed: Довиждане! Вашият акаунт беше успешно изтрит. Надяваме се скоро да ви видим пак.
- signed_up: Добре дошли! Успешно се регистрирахте.
- signed_up_but_inactive: Регистрирахте се успешно. Въпреки това, не може да влезете, тъй като акаунтът ви още не е задействан.
- signed_up_but_locked: Регистрирахте се успешно. Въпреки това, не можете да влезете, тъй като акаунтът ви е заключен.
- signed_up_but_pending: Изпратено е съобщение до адреса на имейла ви с връзка за потвърждение. След като щракнете върху линка, ние ще прегледаме заявлението ви. Ще бъдете уведомени при одобрение.
- signed_up_but_unconfirmed: Е-писмо с връзка за потвърждение е изпратено до имейла ви. Последвайте връзката, за да задействате акаунта си. Проверете папката си за спам, ако не сте получили това е-писмо.
update_needs_confirmation: Успешно осъвременихте акаунта си, но трябва да потвърдим новия ви адрес на имейл. Проверете имейла си и отворете връзката за потвърждаване на новия имейл адрес. Проверете папката си за спам, ако не сте получили това е-писмо.
updated: Акаунтът ви е успешно осъвременен.
sessions:
diff --git a/config/locales/devise.bn.yml b/config/locales/devise.bn.yml
index b046289039..897254ce2e 100644
--- a/config/locales/devise.bn.yml
+++ b/config/locales/devise.bn.yml
@@ -69,11 +69,6 @@ bn:
updated_not_active: আপনার পাসওয়ার্ড সফলভাবে পরিবর্তন করা হয়েছে।
registrations:
destroyed: টাটা! আপনার অ্যাকাউন্ট সফলভাবে বাতিল করা হয়েছে। আশা করি শীঘ্রই আবার দেখা হবে তোমার সাথে।
- signed_up: স্বাগতম! আপনার নিবন্ধনটি সঠিকভাবে হয়েছে।
- signed_up_but_inactive: আপনি সফলভাবে সাইন আপ করেছেন। তবে আপনার অ্যাকাউন্টটি এখনও সক্রিয় না হওয়ার কারণে আমরা আপনাকে সাইন ইন করতে পারি নি।
- signed_up_but_locked: আপনি সফলভাবে সাইন আপ করেছেন। তবে আপনার অ্যাকাউন্টটি লক থাকায় আমরা আপনাকে সাইন ইন করতে পারিনি।
- signed_up_but_pending: আপনার ইমেল ঠিকানায় একটি নিশ্চিতকরণ লিঙ্ক সহ একটি বার্তা প্রেরণ করা হয়েছে। আপনি লিঙ্কটি ক্লিক করার পরে, আমরা আপনার আবেদন পর্যালোচনা করব। এটি অনুমোদিত হলে আপনাকে অবহিত করা হবে।
- signed_up_but_unconfirmed: আপনার ইমেল ঠিকানায় একটি নিশ্চিতকরণ লিঙ্ক সহ একটি বার্তা প্রেরণ করা হয়েছে। আপনার অ্যাকাউন্টটি সক্রিয় করতে লিংকটি অনুসরণ করুন। আপনি এই ইমেলটি না পেলে দয়া করে আপনার স্প্যাম ফোল্ডারটি পরীক্ষা করুন।
update_needs_confirmation: আপনি আপনার অ্যাকাউন্টটি সফলভাবে আপডেট করেছেন, তবে আমাদের আপনার নতুন ইমেল ঠিকানা যাচাই করা দরকার। আপনার নতুন ইমেল ঠিকানাটি নিশ্চিত করতে দয়া করে আপনার ইমেলটি দেখুন এবং নিশ্চিত লিঙ্কটি অনুসরণ করুন। আপনি এই ইমেলটি না পেয়ে দয়া করে আপনার স্প্যাম ফোল্ডারটি পরীক্ষা করুন।
updated: আপনার অ্যাকাউন্ট সফলভাবে আপডেট করা হয়েছে।
sessions:
diff --git a/config/locales/devise.br.yml b/config/locales/devise.br.yml
index cb406e5f5e..a936bcc05f 100644
--- a/config/locales/devise.br.yml
+++ b/config/locales/devise.br.yml
@@ -84,11 +84,6 @@ br:
updated_not_active: Kemmet eo bet ho ker-tremen ent reizh.
registrations:
destroyed: Kenavo! Ho kont a zo bet nullet gant berzh. Emichañs e viot adwelet tuchant.
- signed_up: Donemat ! Enskrivet oc'h.
- signed_up_but_inactive: Enskrivet oc'h bet gant berzh. N'omp ket evit anavezadenniñ ac'hanoc'h alatao, rak ho kont n'eo ket aotreet c'hoazh.
- signed_up_but_locked: Enskrivet oc'h bet gant berzh. N'omp ket evit anavezadenniñ ac'hanoc'h alatao, rak ho kont a zo prennet.
- signed_up_but_pending: Ur c'hemennad gant ul lec'hienn kadarnaat a zo bet kaset d'ho chomlec'h-postel. Pa vo kliket al lec'hienn ganeoc'h e vo gwiriet hoc'h arload ganeomp. Ur gemennadenn a vo kaset deoc'h hag-eñ eo erbedet ho kont.
- signed_up_but_unconfirmed: Ur ch'emennad gant ul lec'hienn kadarnaat a zo bet kaset d'ho chomlec'h-postel. Mar plij, heuliit al lec'hienn evit gweredekaat ho kont. Gwiriit ho restr strobel ma ne oa ket resevet ar postel-mañ ganeoc'h.
update_needs_confirmation: Ho kont a zo bet hizivaet da benn, met ret eo deomp gwiriañ ho chomlec'h-postel nevez. Mar plij, gwiriit ho postelioù ha heuliit al lec'hienn evit kadarnaat ho chomlec'h-postel nevez. Gwiriit ho restr strobel ma ne oa ket resevet ar postel-mañ ganeoc'h.
updated: Ho kont a zo bet hizivaet da benn.
sessions:
diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml
index 9b4ccccff7..f228843863 100644
--- a/config/locales/devise.ca.yml
+++ b/config/locales/devise.ca.yml
@@ -96,11 +96,6 @@ ca:
updated_not_active: La contrasenya s'ha canviat correctament.
registrations:
destroyed: Adéu! el compte s'ha cancel·lat amb èxit. Desitgem veure't de nou ben aviat.
- signed_up: Benvingut! T'has registrat.
- signed_up_but_inactive: T'has registrat. Tanmateix, no podem iniciar la teva sessió perquè el compte encara no s'ha activat.
- signed_up_but_locked: T'has registrat. Tanmateix, no podem iniciar la sessió perquè el compte està blocat.
- signed_up_but_pending: S'ha enviat un missatge amb un enllaç de confirmació a la teva adreça de correu electrònic. Després que hagis fet clic a l'enllaç, revisarem la sol·licitud. Se't notificarà si s'aprova.
- signed_up_but_unconfirmed: S'ha enviat per correu electrònic un missatge amb un enllaç de confirmació. Fes clic a l'enllaç per a activar el compte. Si us plau, verifica la teva carpeta de correu brossa si no el reps.
update_needs_confirmation: Has actualitzat el teu compte amb èxit, però necessitem verificar la teva nova adreça de correu. Si us plau comprova el correu i segueixi l'enllaç per confirmar la nova adreça de correu. Si us plau verifica la teva carpeta de correu brossa si no reps aquest correu.
updated: El teu compte ha estat actualitzat amb èxit.
sessions:
diff --git a/config/locales/devise.ckb.yml b/config/locales/devise.ckb.yml
index f33959d76c..9a13e6cafa 100644
--- a/config/locales/devise.ckb.yml
+++ b/config/locales/devise.ckb.yml
@@ -84,11 +84,6 @@ ckb:
updated_not_active: تێپەڕوشەکەت بە سەرکەوتوویی گۆڕدرا.
registrations:
destroyed: خوات لەگەڵ! ئەژمێرەکەت بە سەرکەوتوویی هەڵوەشێنرایەوە. هیوادارین بەزوویی بتبینینەوە.
- signed_up: بەخێربێیت! تۆ بە سەرکەوتوویی تۆمار کرای.
- signed_up_but_inactive: تۆ بە سەرکەوتوویی تۆمارکرای. هەرچۆنێک بێت، نەمانتوانی چوونە ژوورەوەت بۆ بکەین لەبەرئەوەی هێشتا هەژمارەکەت کارا نەکراوە.
- signed_up_but_locked: تۆ بە سەرکەوتوویی تۆمارکرای. هەرچۆنێک بێت، نەمانتوانی چوونە ژوورەوەت بۆ بکەین لەبەرئەوەی هێشتا هەژمارەکەت قوفڵ کراوە.
- signed_up_but_pending: نامەیەک بە لینکی دووپاتکردنەوە نێردراوە بۆ ناونیشانی ئیمەیڵەکەت. دوای ئەوەی تۆ کرتە لەسەر لینکەکە دەکەیت، ئێمە پێداچوونەوە دەکەین بە بەرنامەکەتدا. ئاگادار دەکرێیت ئەگەر پەسەند کرا.
- signed_up_but_unconfirmed: نامەیەک بە لینکی دووپاتکردنەوە نێردراوە بۆ ناونیشانی ئیمەیڵەکەت. تکایە دوای لینکەکە بکەوە بۆ کاراکردنی هەژمارەکەت. تکایە بوخچەی سپامەکەت بکەرەوە ئەگەر ئەم ئیمەیڵەت پێنەدرا.
update_needs_confirmation: تۆ ئەژمێرەکەت بە سەرکەوتوویی نوێکردەوە، بەڵام پێویستە ئیمەیڵە نوێکەت بسەلمێنین. تکایە ئیمەیڵەکەت بپشکنە و دوای بەستەری دڵنیابوونەوە بکەوە بۆ دڵنیابوون لە ناونیشانی ئیمەیڵە نوێکەت. تکایە بوخچەی سپامەکەت بکەرەوە ئەگەر ئەم ئیمەیڵەت پێنەدرا.
updated: هەژمارەکەت بە سەرکەوتوویی نوێکرایەوە.
sessions:
diff --git a/config/locales/devise.co.yml b/config/locales/devise.co.yml
index d661637875..daaed95f6d 100644
--- a/config/locales/devise.co.yml
+++ b/config/locales/devise.co.yml
@@ -84,11 +84,6 @@ co:
updated_not_active: A vostra chjave d’accessu hè stata cambiata.
registrations:
destroyed: Avvedeci! U vostru contu hè statu sguassatu. Speremu di vi rivede da prestu.
- signed_up: Benvinutu! Site cunnettatu·a.
- signed_up_but_inactive: Site arregistratu·a, mà ùn pudete micca cunnettavi perchè u vostru contu deve esse attivatu.
- signed_up_but_locked: Site arregistratu·a, mà ùn pudete micca cunnettavi perchè u vostru contu hè chjosu.
- signed_up_but_pending: Un missaghju cù un ligame di cunfirmazione hè statu mandatu à u vostr'indirizzu e-mail. Dop'à avè cliccatu u ligame, avemu da rivede a vostra dumanda - sarete nutificatu·a s'ella hè appruvata.
- signed_up_but_unconfirmed: Un missaghju cù un ligame di cunfirmazione hè statu mandatu à u vostru indirizzu e-mail. Aprite stu ligame pè attivà u vostru contu. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda.
update_needs_confirmation: U vostru contu hè statu messu à ghjornu mà duvemu verificà u vostru novu e-mail. Un missaghju cù un ligame di cunfirmazione hè statu mandatu. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda.
updated: U vostru contu hè statu messu à ghjornu.
sessions:
diff --git a/config/locales/devise.cs.yml b/config/locales/devise.cs.yml
index 4dbc2e08bf..42ecc1d53e 100644
--- a/config/locales/devise.cs.yml
+++ b/config/locales/devise.cs.yml
@@ -94,11 +94,6 @@ cs:
updated_not_active: Vaše heslo bylo úspěšně změněno.
registrations:
destroyed: Sbohem! Váš účet byl úspěšně zrušen. Doufáme, že vás opět brzy uvidíme.
- signed_up: Vítejte! Vaše registrace proběhla úspěšně.
- signed_up_but_inactive: Vaše registrace proběhla úspěšně. Nemohli jsme vás však přihlásit, protože váš účet ještě není aktivován.
- signed_up_but_locked: Vaše registrace proběhla úspěšně. Nemohli jsme vás však přihlásit, protože váš účet je uzamčen.
- signed_up_but_pending: Na vaši e-mailovou adresu byla poslána zpráva s odkazem pro potvrzení. Poté, co na odkaz kliknete, vaši žádost posoudíme. Pokud bude schválena, budeme vás informovat.
- signed_up_but_unconfirmed: Na vaši e-mailovou adresu byla poslána zpráva s odkazem pro potvrzení. Pro aktivaci vašeho účtu prosím klepněte na v něm uvedený odkaz. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
update_needs_confirmation: Váš účet byl úspěšně aktualizován, ale je potřeba ověřit vaši novou e-mailovou adresu. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
updated: Váš účet byl úspěšně aktualizován.
sessions:
diff --git a/config/locales/devise.cy.yml b/config/locales/devise.cy.yml
index b41e12f85d..da383f70ae 100644
--- a/config/locales/devise.cy.yml
+++ b/config/locales/devise.cy.yml
@@ -94,11 +94,6 @@ cy:
updated_not_active: Mae eich cyfrinair wedi ei newid yn llwyddiannus.
registrations:
destroyed: Hwyl fawr! Mae eich cyfrif wedi ei chanslo'n llwyddiannus. Gobeithiwn eich gweld chi eto'n fuan.
- signed_up: Croeso! Rydych wedi cofrestru'n llwyddiannus.
- signed_up_but_inactive: Yr ydych wedi cofrestru'n llwyddiannus. Fodd bynnag, ni allwn eich mewngofnodi achos nid yw eich cyfrif wedi ei hagor eto.
- signed_up_but_locked: Rydych chi wedi cofrestru'n llwyddiannus. Fodd bynnag, ni allem eich mewngofnodi oherwydd bod eich cyfrif wedi'i gloi.
- signed_up_but_pending: Mae neges gyda dolen cadarnhau wedi'i hanfon i'ch cyfeiriad e-bost. Ar ôl i chi glicio ar y ddolen, byddwn yn adolygu eich cais. Byddwch yn cael gwybod os caiff ei gymeradwyo.
- signed_up_but_unconfirmed: Mae neges gyda dolen cadarnhau wedi ei anfon i'ch cyfeiriad e-bost. Dilynwch y ddolen er mwyn agor eich cyfrif. Edrychwch yn eich ffolder sbam os na dderbynioch chi'r e-bost hwn, os gwelwch yn dda.
update_needs_confirmation: Rydych wedi diweddaru eich cyfrif yn llwyddiannus, ond mae angen i ni wirio'ch cyfeiriad e-bost newydd. Edrychwch ar eich e-byst a dilynwch y ddolen gadarnhau er mwyn cadarnhau eich cyfeiriad e-bost newydd. Edrychwch ar eich ffolder sbam os na dderbynioch chi yr e-bost hwn.
updated: Mae eich cyfrif wedi ei ddiweddaru yn llwyddiannus.
sessions:
diff --git a/config/locales/devise.da.yml b/config/locales/devise.da.yml
index c472242ba7..d32cbbfd64 100644
--- a/config/locales/devise.da.yml
+++ b/config/locales/devise.da.yml
@@ -94,11 +94,6 @@ da:
updated_not_active: Din adgangskode er skiftet.
registrations:
destroyed: Farvel! Din konto er nu annulleret. Vi håber snart at se dig igen.
- signed_up: Velkommen! Du er nu tilmeldt.
- signed_up_but_inactive: Du har nu oprettet dig. Da din konto endnu ikke er aktiveret, kan du dog ikke logge ind med det samme.
- signed_up_but_locked: Du har nu oprettet dig. Da din konto er låst, kan du ikke logge ind med det samme.
- signed_up_but_pending: Et bekræftelseslink er e-mailet til dig. Når du har klikket på linket, gennemgår vi din ansøgning, og du får besked, hvis den godkendes.
- signed_up_but_unconfirmed: Et bekræftelseslink er e-mailet til dig. Følg linket for at aktivere din konto. Tjek spammappen, hvis e-mailen ikke dukker op i indbakken.
update_needs_confirmation: Du har opdateret din konto. Din nye e-mailadresse skal nu bekræftes. Til dette formål er du blevet e-mailet et bekræftelseslink, så følg dette for at bekræfte den nye e-mailadresse. Ser du ikke e-mailen i din indbakke snarest, så tjek Spam-mappen.
updated: Din konto er nu opdateret.
sessions:
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index f22f834e61..706fdfbee1 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -94,11 +94,6 @@ de:
updated_not_active: Dein Passwort wurde erfolgreich geändert.
registrations:
destroyed: Tschüss! Dein Konto wurde erfolgreich gelöscht. Wir hoffen, dich bald wiederzusehen.
- signed_up: Herzlich willkommen! Du hast dich erfolgreich registriert.
- signed_up_but_inactive: Du hast dich erfolgreich registriert. Allerdings ist dein Konto noch nicht aktiviert und du kannst dich daher noch nicht anmelden.
- signed_up_but_locked: Du hast dich erfolgreich registriert. Allerdings ist dein Konto gesperrt und du kannst dich daher nicht anmelden.
- signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an deine E-Mail-Adresse gesendet. Nachdem du diesen Link angeklickt hast, werden wir deine Bewerbung überprüfen. Sobald sie genehmigt wurde, wirst du benachrichtigt.
- signed_up_but_unconfirmed: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail. Darin wird erklärt, wie du dein Konto freischalten kannst.
update_needs_confirmation: Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhältst in wenigen Minuten eine E-Mail. Darin ist erklärt, wie du die Änderung deiner E-Mail-Adresse abschließen kannst.
updated: Dein Konto wurde erfolgreich aktualisiert.
sessions:
diff --git a/config/locales/devise.el.yml b/config/locales/devise.el.yml
index 209dfe5bdf..3d3d4f87d9 100644
--- a/config/locales/devise.el.yml
+++ b/config/locales/devise.el.yml
@@ -94,11 +94,6 @@ el:
updated_not_active: Το συνθηματικό σου άλλαξε.
registrations:
destroyed: Αντίο! Ο λογαριασμός σου ακυρώθηκε με επιτυχία. Ελπίζουμε να σε ξαναδούμε σύντομα.
- signed_up: Καλώς ήρθες! Εγγράφηκες με επιτυχία.
- signed_up_but_inactive: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου δεν έχει ενεργοποιηθεί ακόμα.
- signed_up_but_locked: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου είναι κλειδωμένος.
- signed_up_but_pending: Στάλθηκε στο email σου μήνυμα με ένα σύνδεσμο επιβεβαίωσης. Μόλις τον ακολουθήσεις θα ελέγξουμε την αίτηση σου. Θα ειδοποιήσεις εάν γίνει δεκτή.
- signed_up_but_unconfirmed: Σου στείλαμε ένα μήνυμα με σύνδεσμο επιβεβαίωσης στη διεύθυνση email σου. Παρακαλούμε ακολούθησε το σύνδεσμο για να ενεργοποιήσεις το λογαριασμό σου. Παρακαλούμε έλεγξε το φάκελο με τα ανεπιθύμητα μηνύματα σου αν δεν το λάβεις.
update_needs_confirmation: Ενημέρωσες το λογαριασμό σου με επιτυχία αλλά χρειαζόμαστε να επιβεβαιώσουμε τη νέα διεύθυνση email σου. Παρακαλούμε έλεγξε τα email σου και ακολούθησε το σύνδεσμο για να την επιβεβαιώσεις. Παρακαλούμε έλεγξε το φάκελο με τα ανεπιθύμητα μηνύματα σου αν δεν το λάβεις.
updated: Ο λογαριασμός σου επιβεβαιώθηκε με επιτυχία.
sessions:
diff --git a/config/locales/devise.en-GB.yml b/config/locales/devise.en-GB.yml
index 3e8a534e1f..1127735ca0 100644
--- a/config/locales/devise.en-GB.yml
+++ b/config/locales/devise.en-GB.yml
@@ -94,11 +94,6 @@ en-GB:
updated_not_active: Your password has been changed successfully.
registrations:
destroyed: Bye! Your account has been successfully cancelled. We hope to see you again soon.
- signed_up: Welcome! You have signed up successfully.
- signed_up_but_inactive: You have signed up successfully. However, we could not log you in because your account is not yet activated.
- signed_up_but_locked: You have signed up successfully. However, we could not log you in because your account is locked.
- signed_up_but_pending: A message with a confirmation link has been sent to your email address. After you click the link, we will review your application. You will be notified if it is approved.
- signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account. Please check your spam folder if you didn't receive this email.
update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address. Please check your spam folder if you didn't receive this email.
updated: Your account has been updated successfully.
sessions:
diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml
index 61bd33851b..65095cd788 100644
--- a/config/locales/devise.en.yml
+++ b/config/locales/devise.en.yml
@@ -94,11 +94,6 @@ en:
updated_not_active: Your password has been changed successfully.
registrations:
destroyed: Bye! Your account has been successfully cancelled. We hope to see you again soon.
- signed_up: Welcome! You have signed up successfully.
- signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated.
- signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked.
- signed_up_but_pending: A message with a confirmation link has been sent to your email address. After you click the link, we will review your application. You will be notified if it is approved.
- signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account. Please check your spam folder if you didn't receive this email.
update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address. Please check your spam folder if you didn't receive this email.
updated: Your account has been updated successfully.
sessions:
diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml
index 754fa01550..063b8707e0 100644
--- a/config/locales/devise.eo.yml
+++ b/config/locales/devise.eo.yml
@@ -94,11 +94,6 @@ eo:
updated_not_active: Via pasvorto estis sukcese ŝanĝita.
registrations:
destroyed: Ĝis! Via konto estis sukcese forigita. Ni esperas revidi vin baldaŭ.
- signed_up: Bonvenon! Vi sukcese registriĝis.
- signed_up_but_inactive: Vi sukcese registriĝis. Tamen, ni ne povis ensalutigi vin, ĉar via konto ankoraŭ ne estas konfirmita.
- signed_up_but_locked: Vi sukcese registriĝis. Tamen, ni ne povis ensalutigi vin, ĉar via konto estas ŝlosita.
- signed_up_but_pending: Mesaĝo kun konfirma ligilo estis sendita al via retpoŝta adreso. Post kiam vi alklakis la ligilon, ni revizios vian kandidatiĝon. Vi estos sciigita se ĝi estas aprobita.
- signed_up_but_unconfirmed: Retmesaĝo kun konfirma ligilo estis sendita al via retadreso. Bonvolu sekvi la ligilon por aktivigi vian konton. Bonvolu kontroli vian spamujon, se vi ne ricevis ĉi tiun retmesaĝon.
update_needs_confirmation: Vi sukcese ĝisdatigis vian konton, sed ni bezonas kontroli vian novan retadreson. Bonvolu kontroli viajn retmesaĝojn kaj sekvi la konfirman ligilon por konfirmi vian novan retadreson. Bonvolu kontroli vian spamujon, se vi ne ricevis ĉi tiun retmesaĝon.
updated: Via konto estis sukcese ĝisdatigita.
sessions:
diff --git a/config/locales/devise.es-AR.yml b/config/locales/devise.es-AR.yml
index 6249294597..f71b8473ec 100644
--- a/config/locales/devise.es-AR.yml
+++ b/config/locales/devise.es-AR.yml
@@ -94,11 +94,6 @@ es-AR:
updated_not_active: Se cambió exitosamente tu contraseña.
registrations:
destroyed: "¡Chauchas! Se canceló exitosamente tu cuenta. Esperamos verte pronto de nuevo."
- signed_up: "¡Bienvenido! Te registraste exitosamente."
- signed_up_but_inactive: Te registraste exitosamente. Sin embargo, no podés iniciar sesión porque tu cuenta todavía no está activada.
- signed_up_but_locked: Te registraste exitosamente. Sin embargo, no podés iniciar sesión porque tu cuenta está bloqueada.
- signed_up_but_pending: Se envió un correo electrónico a tu dirección de correo con un enlace de confirmación. Después que hagás clic en ese enlace, revisaremos tu pedido. Si sos aprobado, serás notificado.
- signed_up_but_unconfirmed: Se envió un correo electrónico a tu dirección de correo con un enlace de confirmación. Por favor, seguí ese enlace para activar tu cuenta. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
update_needs_confirmation: Actualizaste tu cuenta exitosamente. Sin embargo, necesitamos verificar tu nueva dirección de correo electrónico. Por favor, revisá tu correo electrónico y seguí el enlace de confirmación. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
updated: Se actualizó exitosamente tu cuenta.
sessions:
diff --git a/config/locales/devise.es-MX.yml b/config/locales/devise.es-MX.yml
index ac90412e85..2e8ddc2e40 100644
--- a/config/locales/devise.es-MX.yml
+++ b/config/locales/devise.es-MX.yml
@@ -94,11 +94,6 @@ es-MX:
updated_not_active: Su contraseña ha sido cambiada con éxito.
registrations:
destroyed: "¡Adios! Su cuenta ha sido cancelada con éxito. Esperamos verle pronto de nuevo."
- signed_up: "¡Bienvenido! Se ha registrado con éxito."
- signed_up_but_inactive: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta no ha sido activada todavía.
- signed_up_but_locked: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta está bloqueada.
- signed_up_but_pending: Un mensaje con un enlace de confirmacion ha sido enviado a su direccion de email. Luego de clickear el link revisaremos su aplicacion. Seras notificado si es aprovada.
- signed_up_but_unconfirmed: Un mensaje con un enlace de confirmación ha sido enviado a su correo electrónico. Por favor siga el enlace para activar su cuenta.
update_needs_confirmation: Ha actualizado su cuenta con éxito, pero necesitamos verificar su nueva dirección de correo. Por favor compruebe su correo y siga el enlace para confirmar su nueva dirección de correo.
updated: su cuenta ha sido actualizada con éxito.
sessions:
diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml
index 0fc329e0b6..ddfc1ba678 100644
--- a/config/locales/devise.es.yml
+++ b/config/locales/devise.es.yml
@@ -94,11 +94,6 @@ es:
updated_not_active: Tu contraseña se ha cambiado con éxito.
registrations:
destroyed: "¡Hasta otra! Tu cuenta ha sido cancelada con éxito. Esperamos verte de nuevo pronto."
- signed_up: "¡Bienvenido! Te has registrado correctamente."
- signed_up_but_inactive: Te has registrado con éxito. Sin embargo, no se ha podido iniciar sesión porque tu cuenta aún no está activada.
- signed_up_but_locked: Te has registrado con éxito. Sin embargo, no se ha podido iniciar sesión porque tu cuenta está bloqueada.
- signed_up_but_pending: Un mensaje con un enlace de confirmación ha sido enviado a tu dirección de correo electrónico. Después de hacer clic en el enlace, revisaremos tu solicitud. Serás notificado si se aprueba.
- signed_up_but_unconfirmed: Un mensaje con un enlace de confirmación ha sido enviado a tu dirección de correo electrónico. Por favor, sigue el enlace para activar tu cuenta. Por favor, comprueba tu carpeta de correo no deseado si no recibes dicho correo electrónico.
update_needs_confirmation: Has actualizado tu cuenta con éxito, pero necesitamos verificar tu nueva dirección de correo electrónico. Por favor, comprueba tu correo electrónico y sigue el enlace de confirmación para confirmar tu nueva dirección de correo electrónico. Por favor, comprueba tu carpeta de correo no deseado si no recibes dicho correo electrónico.
updated: Tu cuenta se ha actualizado con éxito.
sessions:
diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml
index 76fbf619cc..f09ad35b39 100644
--- a/config/locales/devise.et.yml
+++ b/config/locales/devise.et.yml
@@ -94,11 +94,6 @@ et:
updated_not_active: Sinu salasõna muutmine õnnestus.
registrations:
destroyed: Nägemist! Sinu konto sulgemine õnnestus. Me loodame sind varsti taas näha.
- signed_up: Tere tulemast! Sinu konto loomine õnnestus.
- signed_up_but_inactive: Sinu konto loodi edukalt, kuid me ei saanud sind sisse logida, kuna konto pole veel aktiveeritud.
- signed_up_but_locked: Sinu konto loodi edukalt, kuid me ei saanud sind sisse logida, kuna konto on lukustatud.
- signed_up_but_pending: Kiri kinnituslingiga saadeti sinu e-postile. Pärast seda, kui oled vajutanud kinnituslingile, vaatame me taotluse üle. Saad teavituse, kui taotlus on vastu võetud.
- signed_up_but_unconfirmed: Kiri kinnituslingiga saadeti sinu e-postile. Palun järgi linki, et oma konto aktiveerida. Palun kontrolli rämpspostikausta, kui selline kiri ei saabunud.
update_needs_confirmation: Konto uuendamine õnnestus, kuid e-postiaadress tuleb veel kinnitada. Palun kontrolli oma e-posti ning järgi kirjas olevat kinnituslinki, et e-postiaadress kinnitada. Palun kontrolli rämpspostikausta, kui selline kiri ei saabunud.
updated: Konto uuendamine õnnestus.
sessions:
diff --git a/config/locales/devise.eu.yml b/config/locales/devise.eu.yml
index 3e675659fe..4b3bbea8c6 100644
--- a/config/locales/devise.eu.yml
+++ b/config/locales/devise.eu.yml
@@ -94,11 +94,6 @@ eu:
updated_not_active: Zure pasahitza ongi aldatu da.
registrations:
destroyed: Agur! Zure kontua ongi ezeztatu da. Ea laster berriro ikusten garen.
- signed_up: Ongi etorri! Ongi hasi duzu saioa.
- signed_up_but_inactive: Ongi eman duzu izena. Hala ere, ezin duzu saioa hasi zure kontua oraindik ez dagoelako aktibatuta.
- signed_up_but_locked: Ongi eman duzu izena. Hala ere, ezin duzu saioa hasi zure kontua giltzapetuta dagoelako.
- signed_up_but_pending: Berrespen esteka bat duen mezu bat bidali dizugu zure eposta helbidera. Behin esteka sakatzen duzula, zure eskaera berrikusiko da. Onartzen bada, jakinarazpena jasoko duzu.
- signed_up_but_unconfirmed: Baieztapen esteka bat duen eposta bat bidali dizugu. Jarraitu esteka zure kontua aktibatzeko. Begiratu zure spam karpetan ez baduzu mezua jaso.
update_needs_confirmation: Zure kontua ongi eguneratu duzu, baina zure eposta helbide berria egiaztatu behar dugu. Berrespen esteka bat duen mezua bidali dizugu, sartu estekan zure eposta helbide berria berresteko. Begiratu zure spam karpetan ez baduzu mezua jaso.
updated: Zure kontua ongi eguneratu da.
sessions:
diff --git a/config/locales/devise.fa.yml b/config/locales/devise.fa.yml
index c441e346a2..20d7ec7503 100644
--- a/config/locales/devise.fa.yml
+++ b/config/locales/devise.fa.yml
@@ -94,11 +94,6 @@ fa:
updated_not_active: گذرواژه شما با موفقیت تغییر کرد.
registrations:
destroyed: بدرود! حساب شما با موفقیت لغو شد. امیدواریم دوباره شما را ببینیم.
- signed_up: خوش آمدید! شما با موفقیت ثبت نام کردید.
- signed_up_but_inactive: خوش آمدید! با موفقیت ثبت نام کردید. ولی هنوز وارد نشدهاید؛ چرا که حسابتان هنوز فعال نشده است.
- signed_up_but_locked: با موفّقیت ثبتنام کردهاید. با این حال نمیتوان واردتان کرد؛ چرا که حسابتان قفل است.
- signed_up_but_pending: پیامی با پیوند تأیید به نشانی رایانامهتان فرستاده شده. پس از زدن پیوند درخواستتان را بازبینی خواهیم کرد. در صورت پذیرش آگاه خواهید شد.
- signed_up_but_unconfirmed: پیامی با پیوند تأیید به نشانی رایانامهتان فرستاده شده. لطفاً برای فعّال کردن حسابتان پیوند را بزنید. اگر این رایانامه را نگرفتهاید شاخهٔ هرزنامهها را بررسی کنید.
update_needs_confirmation: حسابتان را با موفّقیت بهروز کردید؛ ولی باید نشانی رایانامهٔ جدیتان را تأیید کنیم. لطفاً رایانامهتان را بررسی کرده و برای تأیید نشانی رایانهٔ جدیدتان پیوند را بزنید. اگر این رایانامه را نگرفتهاید شاخهٔ هرزنامهها را بررسی کنید.
updated: حسابتان با موفّقیت بهروز شد.
sessions:
diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml
index 61d58981d8..d230da1f54 100644
--- a/config/locales/devise.fi.yml
+++ b/config/locales/devise.fi.yml
@@ -94,11 +94,6 @@ fi:
updated_not_active: Salasanan vaihto onnistui.
registrations:
destroyed: Tilisi on poistettu. Näkemiin ja tervetuloa uudelleen.
- signed_up: Tervetuloa! Rekisteröityminen onnistui.
- signed_up_but_inactive: Rekisteröityminen onnistui. Emme kuitenkaan voi kirjata sinua sisään, sillä käyttäjätiliäsi ei ole vielä aktivoitu.
- signed_up_but_locked: Rekisteröityminen onnistui. Emme kuitenkaan voi kirjata sinua sisään, sillä käyttäjätilisi on lukittuna.
- signed_up_but_pending: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Sen avattuasi tarkistamme hakemuksesi, ja ilmoitamme hyväksynnästä.
- signed_up_but_unconfirmed: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Aktivoi käyttäjätilisi seuraamalla linkkiä. Jos sitä ei kuulu, tarkista roskapostikansiosi.
update_needs_confirmation: Tilin päivitys onnistui. Uusi sähköpostiosoite on kuitenkin vahvistettava. Tarkista saapuneet viestisi, ja vahvista uusi sähköpostiosoitteesi vahvistuslinkkiä seuraten. Jos viestiä ei kuulu, tarkista myös roskapostikansiosi.
updated: Käyttäjätilisi tietojen päivittäminen onnistui.
sessions:
diff --git a/config/locales/devise.fo.yml b/config/locales/devise.fo.yml
index 30f83ba0da..f9783f30cc 100644
--- a/config/locales/devise.fo.yml
+++ b/config/locales/devise.fo.yml
@@ -94,11 +94,6 @@ fo:
updated_not_active: Loyniorðið er broytt.
registrations:
destroyed: Farvæl! Konta tín er gjørd óvirkin. Vit vóna at síggja teg aftur skjótt.
- signed_up: Vælkomin! Tú er nú tilmeldað/ur.
- signed_up_but_inactive: Tú er tilmeldað/ur. Vit kunnu tó ikki rita teg inn, tí konta tín er ikki gjørd virkin enn.
- signed_up_but_locked: Tú er tilmeldað/ur. Vit kunnu tó ikki rita teg inn, tí konta tín er læst.
- signed_up_but_pending: Eini boð við einum váttanarleinki er send til teldupoststaðin hjá tær. Tá tú hevur klikt á leinkið, so fara vit at eftirkanna umsókn tína. Tú fær boð, um hon verður játtað.
- signed_up_but_unconfirmed: Eini boð við einum váttanarleinki eru send til teldupoststaðin hjá tær. Vinarliga fylg leinkinum fyri at gera kontu tína virkna. Vinarliga eftirkanna mappuna við ruskposti, um tú ikki móttók teldupostin.
update_needs_confirmation: Tað eydnaðist tær at dagføra kontuna, men tað er neyðugt at vátta nýggja teldupoststaðin hjá tær. Vinarliga kanna teldupostin hjá tær og fylg váttanarleinkinum at vátta nýggja teldupostin. Vinarliga kanna mappuna við ruskposti, um tú ikki móttók teldubrævið.
updated: Tað eydnaðist at dagføra kontu tína.
sessions:
diff --git a/config/locales/devise.fr-CA.yml b/config/locales/devise.fr-CA.yml
index 69ee177e33..fbe549743c 100644
--- a/config/locales/devise.fr-CA.yml
+++ b/config/locales/devise.fr-CA.yml
@@ -94,11 +94,6 @@ fr-CA:
updated_not_active: Votre mot de passe a été modifié avec succès.
registrations:
destroyed: Au revoir! Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt.
- signed_up: Bienvenue! Vous êtes connecté·e.
- signed_up_but_inactive: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte n’est pas encore activé.
- signed_up_but_locked: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé.
- signed_up_but_pending: Un message avec un lien de confirmation a été envoyé à votre adresse courriel. Après avoir cliqué sur le lien, nous examinerons votre demande. Vous serez informé·e si elle a été approuvée.
- signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier de pourriels si vous n'avez pas reçu le courriel.
update_needs_confirmation: Votre compte a été mis à jour avec succès, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour valider votre nouvelle adresse. Veuillez vérifier votre dossier de pourriels si vous ne recevez pas le courriel.
updated: Votre compte a été modifié avec succès.
sessions:
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index 631a2eee6f..10c49b22e6 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -94,11 +94,6 @@ fr:
updated_not_active: Votre mot de passe a été modifié avec succès.
registrations:
destroyed: Au revoir ! Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt.
- signed_up: Bienvenue ! Vous êtes connecté.
- signed_up_but_inactive: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte n’est pas encore activé.
- signed_up_but_locked: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé.
- signed_up_but_pending: Un message avec un lien de confirmation a été envoyé à votre adresse courriel. Après avoir cliqué sur le lien, nous examinerons votre demande. Vous serez informé·e si elle a été approuvée.
- signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse de courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier d'indésirables si vous ne recevez pas le courriel.
update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse de courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier d’indésirables.
updated: Votre compte a été modifié avec succès.
sessions:
diff --git a/config/locales/devise.fy.yml b/config/locales/devise.fy.yml
index c8a04a7405..318d9beff1 100644
--- a/config/locales/devise.fy.yml
+++ b/config/locales/devise.fy.yml
@@ -96,11 +96,6 @@ fy:
updated_not_active: Jo wachtwurd is mei sukses wizige.
registrations:
destroyed: Jo account is mei sukses fuortsmiten. Miskien oant sjen.
- signed_up: Jo binne registrearre.
- signed_up_but_inactive: Jo binne registrearre. Jo koene allinnich net automatysk oanmeld wurde, omdat jo account noch net aktivearre is.
- signed_up_but_locked: Jo binne registrearre. Jo koene allinnich net automatysk oanmeld wurde, omdat jo account beskoattele is.
- signed_up_but_pending: Der is in berjocht mei in befêstigingskeppeling nei jo e-mailadres ferstjoerd. Neidat jo op dizze keppeling klikt hawwe nimme wy jo oanfraach yn behanneling. Jo wurde op de hichte steld wannear’t dizze goedkard wurdt.
- signed_up_but_unconfirmed: Jo ûntfange fia in e-mailberjocht ynstruksjes hoe’t jo jo account aktivearje kinne. Sjoch tusken jo net-winske wannear’t neat ûntfongen waard.
update_needs_confirmation: Jo hawwe jo e-mailadres mei sukses wizige, mar wy moatte jo nije e-mailadres noch befêstigje. Kontrolearje jo Postfek YN en klik op de keppeling yn it e-mailberjocht om jo e-mailadres te befêstigjen. Sjoch tusken jo net-winske wannear’t neat ûntfongen waard.
updated: Jo accountgegevens binne bewarre.
sessions:
diff --git a/config/locales/devise.ga.yml b/config/locales/devise.ga.yml
index ca51bb9467..5d03c2a8e6 100644
--- a/config/locales/devise.ga.yml
+++ b/config/locales/devise.ga.yml
@@ -94,11 +94,6 @@ ga:
updated_not_active: Athraíodh do phasfhocal go rathúil.
registrations:
destroyed: Slán! Cealaíodh do chuntas go rathúil. Tá súil againn tú a fheiceáil arís go luath.
- signed_up: Fáilte romhat! D'éirigh leat síniú suas.
- signed_up_but_inactive: D'éirigh leat síniú suas. Mar sin féin, níorbh fhéidir linn tú a shíniú isteach toisc nach bhfuil do chuntas gníomhachtaithe fós.
- signed_up_but_locked: D'éirigh leat síniú suas. Mar sin féin, níorbh fhéidir linn tú a shíniú isteach toisc go bhfuil do chuntas glasáilte.
- signed_up_but_pending: Tá teachtaireacht le nasc deimhnithe seolta chuig do sheoladh ríomhphoist. Tar éis duit an nasc a chliceáil, déanfaimid athbhreithniú ar d’iarratas. Cuirfear in iúl duit má cheadaítear é.
- signed_up_but_unconfirmed: Tá teachtaireacht le nasc deimhnithe seolta chuig do sheoladh ríomhphoist. Lean an nasc chun do chuntas a ghníomhachtú. Seiceáil d'fhillteán turscair mura bhfuair tú an ríomhphost seo.
update_needs_confirmation: D'éirigh leat do chuntas a nuashonrú, ach caithfimid do sheoladh ríomhphoist nua a fhíorú. Seiceáil do ríomhphost agus lean an nasc dearbhaithe chun do sheoladh ríomhphoist nua a dhearbhú. Seiceáil d'fhillteán turscair mura bhfuair tú an ríomhphost seo.
updated: D'éirigh le do chuntas a nuashonrú.
sessions:
diff --git a/config/locales/devise.gd.yml b/config/locales/devise.gd.yml
index ca9dcc4969..d110bc799b 100644
--- a/config/locales/devise.gd.yml
+++ b/config/locales/devise.gd.yml
@@ -94,11 +94,6 @@ gd:
updated_not_active: Chaidh am facal-faire agad atharrachadh.
registrations:
destroyed: Soraidh slàn leat! Chaidh crìoch a chur air a’ chunntas agad. Tha sinn an dòchas nach bi thu fada gun tilleadh.
- signed_up: Fàilte ort! Tha thu air clàradh leinn.
- signed_up_but_inactive: Tha thu air clàradh leinn. Gidheadh, chan urrainn dhuinn do clàradh a-steach air sgàth ’s nach deach an cunntas agad a ghnìomhachadh fhathast.
- signed_up_but_locked: Tha thu air clàradh leinn. Gidheadh, chan urrainn dhuinn do clàradh a-steach air sgàth ’s gu bheil an cunntas agad glaiste.
- signed_up_but_pending: Chaidh teachdaireachd le ceangal dearbhaidh a chur dhan t-seòladh puist-d agad. Nuair a bhios tu air briogadh air a’ cheangal, nì sinn lèirmheas air d’ iarrtas. Leigidh sinn fios dhut ma thèid aontachadh ris.
- signed_up_but_unconfirmed: Chaidh teachdaireachd le ceangal dearbhaidh a chur dhan t-seòladh puist-d agad. Lean air a’ cheangal ud a ghnìomhachadh a’ chunntais agad. Thoir sùil air pasgan an spama agad mura faigh thu am post-d seo.
update_needs_confirmation: Chaidh an cunntas agad ùrachadh ach feumaidh sinn an seòladh puist-d ùr agad a dhearbhadh. Thoir sùil air a’ phost-d agad agus lean air a’ cheangal dearbhaidh a dhearbhadh an t-seòlaidh puist-d ùir agad. Thoir sùil air pasgan an spama agad mura faigh thu am post-d seo.
updated: Chaidh an cunntas agad ùrachadh.
sessions:
diff --git a/config/locales/devise.gl.yml b/config/locales/devise.gl.yml
index 00b1824808..689d78f307 100644
--- a/config/locales/devise.gl.yml
+++ b/config/locales/devise.gl.yml
@@ -94,11 +94,6 @@ gl:
updated_not_active: O teu contrasinal foi mudado de xeito correcto.
registrations:
destroyed: Adeus! A túa conta foi cancelada de xeito correcto. Agardamos verte de novo.
- signed_up: Benvido! Rexistrácheste de xeito correcto.
- signed_up_but_inactive: A túa conta foi rexistada. Porén aínda non está activada.
- signed_up_but_locked: A túa conta foi rexistada. Porén está bloqueada.
- signed_up_but_pending: Acabamos de enviar unha mensaxe ao teu email cunha ligazón de confirmación. Após premer na ligazón, revisaremos a túa solicitude. Recibirás unha notificación se a túa conta é aprobada.
- signed_up_but_unconfirmed: Enviouse unha mensaxe cunha ligazón de confirmación ao teu email. Por favor, preme nesa ligazón para activar a túa conta. Comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o correo.
update_needs_confirmation: Actualizaches a túa conta de xeito correcto, pero precisamos verificar o teu novo enderezo de email. Por favor, revisa o teu email e segue a ligazón para confirmar o teu novo enderezo de email. Comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o correo.
updated: A túa conta foi actualizada de xeito correcto.
sessions:
diff --git a/config/locales/devise.he.yml b/config/locales/devise.he.yml
index 02e307ae1c..91eb75f9d1 100644
--- a/config/locales/devise.he.yml
+++ b/config/locales/devise.he.yml
@@ -94,11 +94,6 @@ he:
updated_not_active: סיסמתך שונתה בהצלחה.
registrations:
destroyed: בייוש! חשבונך בוטל בהצלחה. אנחנו מקווים לראות אותך שוב בקרוב.
- signed_up: ברוכים הבאים! נרשמת בהצלחה.
- signed_up_but_inactive: נרשמת בהצלחה. למרות זאת לא הצליחה הכניסה לחשבון מאחר וחשבונך עוד לא הופעל.
- signed_up_but_locked: נרשמת בהצלחה. למרות זאת לא הצליחה הכניסה לחשבון מאחר וחשבונך נעול.
- signed_up_but_pending: מסר עם קישורית אישור נשלח לכתובת הדוא"ל שלך. אחרי לחיצה על הקישורית, נבחן את בקשתך. הודעה תמסר אם בקשתך תתקבל.
- signed_up_but_unconfirmed: דוא"ל עם קישורית לאימות נשלך לכתובתך. נא לעקוב אחר הקישורית על מנת להפעיל את החשבון. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
update_needs_confirmation: עדכת את חשבונך בהצלחה, אך יש צורך לאמת את כתובת הדוא"ל החדשה שלך. נא לבדוק בחשבון הדוא"ל לקבלת קישורית אימות על מנת לאמת את הכתובת החדשה. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
updated: חשבונך עודכן בהצלחה.
sessions:
diff --git a/config/locales/devise.hr.yml b/config/locales/devise.hr.yml
index 89db8922e4..b7ecbbb90b 100644
--- a/config/locales/devise.hr.yml
+++ b/config/locales/devise.hr.yml
@@ -71,10 +71,6 @@ hr:
updated_not_active: Vaša lozinka uspješno je promijenjena.
registrations:
destroyed: Zbogom! Vaš je račun uspješno otkazan. Nadamo se da ćemo Vas uskoro ponovno vidjeti.
- signed_up: Dobro došli! Uspješno ste se prijavili.
- signed_up_but_inactive: Uspješno ste se registrirali. No, ne možemo Vas prijaviti jer Vaš račun još nije aktiviran.
- signed_up_but_locked: Uspješno ste se registrirali. No, ne možemo Vas prijaviti jer je Vaš račun zaključan.
- signed_up_but_unconfirmed: Poruka s poveznicom za potvrđivanje poslana je na Vašu adresu e-pošte. Molimo slijedite poveznicu za aktivaciju Vašeg računa. Molimo provjerite mapu neželjene pošte, ako niste primili ovu e-poštu.
update_needs_confirmation: Vaš račun uspješno je ažuriran, ali moramo potvrditi Vašu novu adresu e-pošte. Molimo provjerite Vašu e-poštu i slijedite poveznicu za potvrđivanje Vaše nove adrese e-pošte. Molimo provjerite mapu neželjene pošte, ako niste primili ovu e-poštu.
updated: Vaš je račun uspješno ažuriran.
sessions:
diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml
index d8958d5fb0..5ea81bef0d 100644
--- a/config/locales/devise.hu.yml
+++ b/config/locales/devise.hu.yml
@@ -94,11 +94,6 @@ hu:
updated_not_active: A jelszavad sikeresen megváltoztatásra került.
registrations:
destroyed: Viszlát! A fiókodat sikeresen töröltük. Reméljük hamarosan viszontláthatunk.
- signed_up: Üdvözlünk! Sikeresen regisztráltál.
- signed_up_but_inactive: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókodat még nem aktiválták.
- signed_up_but_locked: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókod le van zárva.
- signed_up_but_pending: Egy megerősítési hivatkozással ellátott üzenetet kiküldtünk az e-mail címedre. Ha kattintasz a hivatkozásra, átnézzük a kérelmedet. Értesítünk, ha jóváhagytuk.
- signed_up_but_unconfirmed: Egy megerősítési hivatkozással ellátott üzenetet kiküldtünk az e-mail címedre. Kérjük használd a hivatkozást a fiókod aktiválásához. Ellenőrizd a spam mappádat, ha nem kaptad meg ezt a levelet.
update_needs_confirmation: Sikeresen frissítetted a fiókodat, de szükségünk van az e-mail címed megerősítésére. Kérlek ellenőrizd az e-mailedet és kövesd a levélben szereplő megerősítési linket az e-mail címed megerősítéséhez. Ellenőrizd a levélszemét mappád, ha nem kaptál volna ilyen levelet.
updated: A fiókod sikeresen frissítésre került.
sessions:
diff --git a/config/locales/devise.hy.yml b/config/locales/devise.hy.yml
index ee23163f51..25b6641ce6 100644
--- a/config/locales/devise.hy.yml
+++ b/config/locales/devise.hy.yml
@@ -84,11 +84,6 @@ hy:
updated_not_active: Գաղտնաբառդ փոփոխուեց յաջողութեամբ։
registrations:
destroyed: Ցը՜․ Քո հաշիւը յաջողութեամբ չեղարկուեց։ Յոյս ունենք քեզ կրկին տեսնել։
- signed_up: Ողջո՜յն։ Բարեյաջող գրանցուեցիր։
- signed_up_but_inactive: Բարեյաջող գրանցուեցիր։ Սակայն, դեռ չես կարող մուտք գործել, քանի որ հաշիւդ դեռ ակտիւ չէ։
- signed_up_but_locked: Բարեյաջող գրանցուեցիր։ Սակայն, դեռ չես կարող մուտք գործել, քանի որ հաշիւդ փակ է։
- signed_up_but_pending: Հաղորդագրութիւնը՝ հաստատման յղումով ուղարկուել է քո էլ․ փոստին։ Յղմանը կտտացնելուց յետոյ մենք կը վերանայենք քո դիմումը։ Հաստատումից յետոյ քեզ կը տեղեկացնենք։
- signed_up_but_unconfirmed: Հաղորդագրութիւնը՝ հաստատման յղումով ուղարկուել է քո էլ․ փոստին։ Խնդրում ենք հետեւիր յղմանը հաշիւդ ակտիւացնելու համար։ Խնդրում ենք, ստուգիր սպամ պանակը, եթէ չստանաս իմակ։
update_needs_confirmation: Բարեյաջող թարմացրիր հաշիւդ, բայց մենք պէտք է հաստատենք քո էլ․ հասցէն։ Խնդրում ենք, ստուգիր փոստդ եւ հետեւիր հաստատման յղմանը՝ նոր էլ․ հասցէդ հաստատելու համար։ Ստուգիր սպամ պանակը, իմակ չստանալու դէպքում։
updated: Հաշիւդ բարեյաջող թարմացուեց։
sessions:
diff --git a/config/locales/devise.ia.yml b/config/locales/devise.ia.yml
index 8e073c9efb..eb580dde5d 100644
--- a/config/locales/devise.ia.yml
+++ b/config/locales/devise.ia.yml
@@ -94,11 +94,6 @@ ia:
updated_not_active: Tu contrasigno ha essite cambiate.
registrations:
destroyed: A revider! Tu conto ha essite cancellate. Nos spera vider te de novo tosto.
- signed_up: Benvenite! Tu te ha inscribite con successo.
- signed_up_but_inactive: Tu te ha inscribite con successo. Nonobstante, nos non poteva aperir tu session perque tu conto non es ancora activate.
- signed_up_but_locked: Tu te ha inscribite con successo. Nonobstante, nos non poteva aperir tu session perque tu conto es serrate.
- signed_up_but_pending: Un message con un ligamine de confirmation ha essite inviate a tu adresse de email. Post que tu clicca sur le ligamine, nos revidera tu demanda. Tu essera notificate si illo es approbate.
- signed_up_but_unconfirmed: Un message con un ligamine de confirmation ha essite inviate a tu adresse de e-mail. Per favor seque le ligamine pro activar tu conto. Consulta tu dossier de spam si tu non recipe iste e-mail.
update_needs_confirmation: Tu ha actualisate tu conto con successo, ma nos debe verificar tu nove adresse de e-mail. Accede a tu e-mail e seque le ligamine de confirmation pro confirmar tu nove adresse de e-mail. Consulta tu dossier de spam si tu non recipe iste e-mail.
updated: Tu conto ha essite actualisate con successo.
sessions:
diff --git a/config/locales/devise.id.yml b/config/locales/devise.id.yml
index c0dede95aa..7f87dea880 100644
--- a/config/locales/devise.id.yml
+++ b/config/locales/devise.id.yml
@@ -84,11 +84,6 @@ id:
updated_not_active: Kata sandi anda berhasil diubah.
registrations:
destroyed: Selamat tinggal! Akun anda berhasil dibatalkan. Kami harap berjumpa lagi dengan anda dilain waktu.
- signed_up: Selamat datang! Pendaftaran anda berhasil.
- signed_up_but_inactive: Anda berhasil melakukan pendaftaran. Tetapi kami tidak dapat memasukkan anda karena akun anda belum diaktifkan.
- signed_up_but_locked: Anda berhasil melakukan pendaftaran. Tetapi kami tidak dapat memasukkan anda karena akun anda dikunci.
- signed_up_but_pending: Pesan dengan tautan konfirmasi telah dikirim ke alamat email Anda. Setelah Anda mengklik tautan, kami akan meninjau lamaran Anda. Anda akan diberitahu jika diterima.
- signed_up_but_unconfirmed: Sebuah pesan berisi link konfirmasi telah dikirim ke alamat email anda. Silakan ikuti link tersebut untuk mengaktifkan akun anda.
update_needs_confirmation: Akun anda telah berhasil diubah, tetapi kami harus memverifikasi alamat email anda yang baru. Mohon cek email anda dan ikuti link untuk mengkonfirmasi alamat email anda yang baru.
updated: Akun anda berhasil diubah.
sessions:
diff --git a/config/locales/devise.ie.yml b/config/locales/devise.ie.yml
index 9c82bd4529..116fd3b5e0 100644
--- a/config/locales/devise.ie.yml
+++ b/config/locales/devise.ie.yml
@@ -94,11 +94,6 @@ ie:
updated_not_active: Tui passa-parol ha esset changeat successosimen.
registrations:
destroyed: Adío! Tui conto ha esset anullat con successe. Noi espera revider te pos ne long.
- signed_up: Benevenit! Tu ha successat registrar te.
- signed_up_but_inactive: Tu ha registrat te con successe, támen noi ne posset far te intrar pro que tui conto ancor ne ha esset activat.
- signed_up_but_locked: Tu ha registrat te con successe, támen noi ne posset far te intrar pro que tui conto es serrat.
- signed_up_but_pending: Un missage con un ligament de confirmation ha esset inviat a tui adresse electronic. Pos har cliccat sur li ligament, noi va inspecter tui aplication. Tu va reciver un notification si it es aprobat.
- signed_up_but_unconfirmed: Un missage con un ligament de confirmation ha esset inviat a tui adresse electronic. Ples sequer li ligament por activar tui conto, e confirmar tui spamiere si tu ne ha recivet li e-posta.
update_needs_confirmation: Tu ha actualisat tui conto con successe, ma noi deve verificar tui nov adresse electronic. Ples confirmar tui e-postas e sequer li ligament de confirmation por confirmar li nov adresse, e inspecter tui spamiere si tu ne ha recivet li e-posta.
updated: Tui conto ha esset actualisat successosimen.
sessions:
diff --git a/config/locales/devise.io.yml b/config/locales/devise.io.yml
index 49637579e4..feef32bf67 100644
--- a/config/locales/devise.io.yml
+++ b/config/locales/devise.io.yml
@@ -94,11 +94,6 @@ io:
updated_not_active: Tua pasvorto redaktesis senprobleme.
registrations:
destroyed: Til! Tua konto efacesis senprobleme. Ni esperas rividar tu balde.
- signed_up: Bonveno! Tu membreskis senprobleme.
- signed_up_but_inactive: Tu bone membreskis, ma tu ankore ne povas enirar pro ke tua konto ne konfirmesis.
- signed_up_but_locked: Tu bone membreskis, ma tu ne povas enirar pro ke tua konto extingesis.
- signed_up_but_pending: Mesajo kun konfirmoligilo sendesis a vua retpostadreso. Pos vu kliktas la ligilo, ni kontrolos vua apliko. Vu notifikesos se ol aprobesas.
- signed_up_but_unconfirmed: Retpost-mesajo kun tua ligilo por konfirmar tua konto sendesis a tua retpost-adreso. Voluntez uzar ta ligilo por konfirmar tua konto.
update_needs_confirmation: Tu vone aktualigis tua konto, ma ni bezonas kontrolar tua nova retpost-adreso. Voluntez kontrolar tua retpost-mesaji ed uzar la ligilo por konfirmar tua nova retpost-adreso.
updated: Tua konto aktualigesis senprobleme.
sessions:
diff --git a/config/locales/devise.is.yml b/config/locales/devise.is.yml
index a045bdd80c..a22c6d468f 100644
--- a/config/locales/devise.is.yml
+++ b/config/locales/devise.is.yml
@@ -94,11 +94,6 @@ is:
updated_not_active: Það tókst að breyta lykilorðinu þínu.
registrations:
destroyed: Bless! Hætt hefur verið við notandaaðganginn þinn. Við vonumst samt eftir að sjá þig fljótt aftur.
- signed_up: Velkomin/n! Það tókst að nýskrá þig.
- signed_up_but_inactive: Þér hefur tekist að nýskrá þig. Hinsvegar gátum við ekki skráð þig inn því notandaaðgangurinn þinn hefur ekki enn verið virkjaður.
- signed_up_but_locked: Þér hefur tekist að nýskrá þig. Hinsvegar gátum við ekki skráð þig inn því notandaaðgangurinn þinn er læstur.
- signed_up_but_pending: Skilaboð með staðfestingartengli hafa verið send á tölvupóstfangið þitt. Þegar þú smellir á þennan tengil munum við yfirfara og staðfesta umsóknina þína. Þú færð svo að vita hvort hún verður samþykkt.
- signed_up_but_unconfirmed: Skilaboð með staðfestingartengli hafa verið send á tölvupóstfangið þitt. Smelltu á þennan tengil til að virkja notandaaðganginn þinn. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þessi skilaboð.
update_needs_confirmation: Þú uppfærðir notandaaðganginn þinn, en við þurfum að sannreyna nýja tölvupóstfangið þitt. Skoðaðu tölvupóstinn þinn og fylgdu tenglinum sem þangað á að berast til að staðfesta tölvupóstfangið þitt. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þennan tölvupóst.
updated: Það tókst að uppfæra notandaaðganginn þinn.
sessions:
diff --git a/config/locales/devise.it.yml b/config/locales/devise.it.yml
index 8aaea3c15b..8497b369be 100644
--- a/config/locales/devise.it.yml
+++ b/config/locales/devise.it.yml
@@ -94,11 +94,6 @@ it:
updated_not_active: La tua password è stata modificata correttamente.
registrations:
destroyed: Addio! Il tuo profilo è stato eliminato correttamente. Speriamo di rivederti presto.
- signed_up: Benvenuto! Ti sei registrato con successo.
- signed_up_but_inactive: Ti sei registrato con successo. Tuttavia, non siamo riusciti a farti accedere perché il tuo profilo non è ancora stato attivato.
- signed_up_but_locked: Ti sei registrato con successo. Tuttavia, non siamo riusciti a farti accedere perché il tuo profilo è bloccato.
- signed_up_but_pending: Un messaggio con un link di conferma è stato inviato al tuo indirizzo email. Una volta che avrai cliccato il link, revisioneremo la tua richiesta. Sarai notificato, se verrà approvata.
- signed_up_but_unconfirmed: Un messaggio con un link di conferma è stato inviato al tuo indirizzo email. Sei pregato di seguire il link per attivare il tuo profilo. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
update_needs_confirmation: Hai aggiornato correttamente il tuo profilo, ma dobbiamo verificare il tuo nuovo indirizzo email. Sei pregato di controllare la tua email e di seguire il link di conferma, per confermare il tuo nuovo indirizzo email. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
updated: Il tuo profilo è stato aggiornato con successo.
sessions:
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index 2cd7cfa415..686299837c 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -94,11 +94,6 @@ ja:
updated_not_active: パスワードは正常に更新されました。
registrations:
destroyed: アカウントの作成はキャンセルされました。またのご利用をお待ちしています。
- signed_up: アカウントの作成が完了しました。Mastodonへようこそ。
- signed_up_but_inactive: アカウントの作成が完了しました。しかし、アカウントが有効化されていないためログインできませんでした。
- signed_up_but_locked: アカウントの作成が完了しました。しかし、アカウントがロックされているためログインできませんでした。
- signed_up_but_pending: メールアドレスの確認用のリンクが入力したメールアドレスに送信されました。リンクをクリックした後、あなたの申請を審査します。承認されると通知されます。
- signed_up_but_unconfirmed: メールアドレスの確認用のリンクが入力したメールアドレスに送信されました。メール内のリンクをクリックしてアカウントを有効化してください。
update_needs_confirmation: アカウント情報の更新に成功しました。しかし、メールアドレスの確認が必要です。送信されたメール内のリンクをクリックしてメールアドレスを確認してください。
updated: アカウント情報の更新に成功しました。
sessions:
diff --git a/config/locales/devise.ka.yml b/config/locales/devise.ka.yml
index 3267eb22eb..abce3639d4 100644
--- a/config/locales/devise.ka.yml
+++ b/config/locales/devise.ka.yml
@@ -56,10 +56,6 @@ ka:
updated_not_active: თქვენი პაროლი წარმატებით შეიცვალა.
registrations:
destroyed: ნახვამდის! თქვენი ანგარიში წარმატებით გაუქმდა. იმედი გვაქვს ისევ შევხვდებით.
- signed_up: გამარჯობა! თქვენ წარმატებით დარეგისტრირდით.
- signed_up_but_inactive: თქვენ წარმატებით დარეგისტრირდით. თუმცა, ავტორიზაცია ვერ შედგა, თქვენი ანგარიში ჯერ არაა გააქტიურებული.
- signed_up_but_locked: თქვენ წარმატებით დარეგისტრირდით. თუმცა, აცტორიზაცია ვერ შედგა, თქვენი ანგარიში ჩაკეტილია.
- signed_up_but_unconfirmed: წერილი დამოწმების ბმულით თქვენს ელ-ფოსტაზე გამოგზავნილია. გთხოვთ გაჰყევით ბმულს, რათა გაააქტიუროთ ანგარიში. გთხოვთ შეხედოთ თქვენი სპამის ფოლდერს თუ არ მიიღებთ ამ წერილს.
update_needs_confirmation: თქვენი ანგარიში წარმატებით განახლდა, მაგრამ გვესაჭიროება თქვენი ელ-ფოსტის მისამართის დამოწმება. შეამოწმეთ ელ-ფოსტა და დასამოწმებლად გადადით მიღებულ ბმულზე. გთხოვთ შეხედოთ თქვენი სპამის ფოლდერს თუ არ მიიღებთ ამ წერილს.
updated: თქვენი ანგარიში წარმატებით განახლდა.
sessions:
diff --git a/config/locales/devise.kab.yml b/config/locales/devise.kab.yml
index 32a98a37c3..4638afc8e0 100644
--- a/config/locales/devise.kab.yml
+++ b/config/locales/devise.kab.yml
@@ -94,11 +94,6 @@ kab:
updated_not_active: Awal-ik uffir yettwabeddel mebla ugur.
registrations:
destroyed: Ar timlilit! Amiḍan-ik yettwakkes mebla ugur. Nessaram ad k-nwali tikelt-nniḍen.
- signed_up: Anṣuf! Aqla-k tkecmeḍ.
- signed_up_but_inactive: Tjerdeḍ akken iwata. maca ur tezmireḍ ara ad teqneḍ akka tura acku amiḍan-ik·im mazal ur yermid ara.
- signed_up_but_locked: Tjerdeḍ akken iwata. maca ur tezmireḍ ara ad teqneḍ akka tura acku amiḍan-ik·im ittwawḥel.
- signed_up_but_pending: Aseɣwen n usentem ittwazen ɣer tensa-inen·inem n imayl. ticki tsenndeḍ ɣef useɣwen, ad nsenqed asnas-ik·im. ad ak·am-n-yaweḍ telɣut ma yella ittwaqbel.
- signed_up_but_unconfirmed: Aseɣwen n usentem ittwazen ɣer tensa-inen·inem n imayl. Ttxil ḍfer aseɣwen i usentem n umiḍan-ik·im. Ttxil wali akaram n ispamen ma ur teṭṭifeḍ ara imayl-agi.
update_needs_confirmation: Tleqmeḍ akken iwata amiḍan-ik·im, maca nesra ad nsenqed tansa-ik·im imayl tamaynut. Ttxil-k·m senqed imayl-k·m sakin ḍfer aseɣwen i usentem n n tansa imayl tamaynut. Ttxil senqed akaram n spam ma yella ur tufiḍ ara imayl-nni.
updated: Amiḍan-ik·im yettwalqem akken iwata.
sessions:
diff --git a/config/locales/devise.kk.yml b/config/locales/devise.kk.yml
index 06fad30aec..61e89f6245 100644
--- a/config/locales/devise.kk.yml
+++ b/config/locales/devise.kk.yml
@@ -69,11 +69,6 @@ kk:
updated_not_active: Құпиясөзіңіз сәтті өзгертілді.
registrations:
destroyed: Сау! Аккаунтыңыз тоқтатылды. Қайтадан ораласыз деп сенеміз.
- signed_up: Қош келдіңіз! Тіркелу сәтті өтті.
- signed_up_but_inactive: Тіркелу сәтті аяқталды. Дегенмен, аккаунтыңыз әлі белсендірілмегендіктен, сізге сайтқа кіру мүмкін болмайды.
- signed_up_but_locked: Тіркелу сәтті аяқталды. Дегенмен, аккаунтыңыз құлыпталғандықтан, сізге сайтқа кіру мүмкін болмайды.
- signed_up_but_pending: Электрондық пошта мекенжайыңызға растау сілтемесі бар хабарлама жіберілді. Сілтемені басқаннан кейін біз сіздің өтінішіңізді қарастырамыз. Егер ол мақұлданса, сізге хабарланады.
- signed_up_but_unconfirmed: Растау сілтемесі бар хат электрондық поштаыңызға жіберілді. Аккаунтыңызды белсендіру үшін сілтеме бойынша өтіңіз. Бұл хат келмесе, спам құтысын тексеріңіз.
update_needs_confirmation: Аккаунтыыызды сәтті жаңарттыңыз, бірақ жаңа электрондық поштаны тексеру қажет. Электрондық поштаңызды тексеріп, жаңа электрондық пошта мекенжайыңызды растаңыз. Бұл электрондық поштаны алмасаңыз, спам қалтаңызды тексеріңіз.
updated: Аккаунтыңыз сәтті жаңартылды.
sessions:
diff --git a/config/locales/devise.ko.yml b/config/locales/devise.ko.yml
index 7ba5ffb9c8..b57ef9684c 100644
--- a/config/locales/devise.ko.yml
+++ b/config/locales/devise.ko.yml
@@ -94,11 +94,6 @@ ko:
updated_not_active: 암호를 잘 변경하였습니다.
registrations:
destroyed: 안녕히 가세요! 계정이 성공적으로 제거되었습니다. 다시 만나기를 희망합니다.
- signed_up: 안녕하세요! 성공적으로 가입했습니다.
- signed_up_but_inactive: 성공적으로 가입했습니다. 하지만 계정이 활성화되지 않았기 때문에 아직 로그인할 수 없습니다.
- signed_up_but_locked: 성공적으로 가입했습니다. 하지만 계정이 잠겨있기 때문에 아직 로그인할 수 없습니다.
- signed_up_but_pending: 확인 링크를 포함한 메일이 발송 되었습니다. 링크를 클릭한 이후, 우리가 당신의 신청양식을 검토합니다. 승인이 되면 알림을 발송합니다.
- signed_up_but_unconfirmed: 확인 링크를 포함한 메일이 발송 되었습니다. 링크를 클릭해 계정을 활성화 하세요. 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요.
update_needs_confirmation: 계정 정보를 성공적으로 업데이트했으며, 새 이메일 주소에 대한 확인이 필요합니다. 이메일로 전달된 링크를 따라 새 이메일을 확인하세요. 메일을 받지 못하셨다면 스팸 폴더를 확인해 주세요.
updated: 계정 정보가 성공적으로 업데이트 되었습니다.
sessions:
diff --git a/config/locales/devise.ku.yml b/config/locales/devise.ku.yml
index 33a868a8a5..4072b1ae94 100644
--- a/config/locales/devise.ku.yml
+++ b/config/locales/devise.ku.yml
@@ -88,11 +88,6 @@ ku:
updated_not_active: Borînpeyva te bi serkeftî hate guhertin.
registrations:
destroyed: Xatirê te! Ajimêra te bi serkeftî hate pûçkirin. Em hêvî dikin ku tu di nêzîk de te dîsa bibînin.
- signed_up: Bi xêr hatî! Te bi serkeftî tomarkirin kir.
- signed_up_but_inactive: Te bi serkeftî tomarkirin kir. lê piştî ku tu çalak bikî em dikarin ku tu têketinê bikî.
- signed_up_but_locked: Te bi serkeftî tomarkirin kir. lê ajimêra te girtiye ber wê tu nikarî ku têketinê bikî.
- signed_up_but_pending: Peyamek bi girêdana pejirandinê ji navnîşana e-nameya te re hate şandin. Piştî ku tu girêdanê bitikînî, em ê serlêdana te binirxînin. Ku were pejirandin tu yê bê agahdarkirin.
- signed_up_but_unconfirmed: Peyamek bi girêdana pejirandinê ji navnîşana e-nameya te re hate şandin. Ji kerema xwe girêdanê bişopîne da ku tu ajimêra xwe çalak bikî. Ji kerema xwe ku te ev e-name nestand peldanka nexwestî (spam) ya xwe kontrol bike.
update_needs_confirmation: Te ajimêra xwe bi awayekî serkeftî rojane kir, lê pêdiviya me bi kontrolkirina navnîşana e -nameya te ya nû heye. Ji kerema xwe e -nameya xwe kontrol bike û girêdana piştrastkirinê bişopîne da ku navnîşana e -nameya xwe ya nû piştrast bikî. Ji kerema xwe ku te ev e-name nestand peldanka nexwestî (spam) ya xwe kontrol bike.
updated: Ajimêra te bi awayekî serkeftî hate rojanekirin.
sessions:
diff --git a/config/locales/devise.la.yml b/config/locales/devise.la.yml
index a6fe5e1e4b..1ca297cf6a 100644
--- a/config/locales/devise.la.yml
+++ b/config/locales/devise.la.yml
@@ -5,4 +5,3 @@ la:
send_instructions: Sī adresa tua epistularis in nostra basi datōrum exstat, vinculum ad recuperandam clavem adresa tua epistulari adferētur pauca momenta post. Sī autem hanc epistulam nōn recēpistī, rogāmus ut scrūtināriōnem spurcāriī tuī faciās.
registrations:
destroyed: Vale! Ratio tua succēssu cancellāta est. Spērāmus tē mox iterum vidēre.
- signed_up_but_inactive: Te cōnscrīpsistī succēdāneē. At nōn potuimus tē introīre quod ratio* tua nōn adhūc est activāta.*
diff --git a/config/locales/devise.lad.yml b/config/locales/devise.lad.yml
index 7d447140f4..45e4750450 100644
--- a/config/locales/devise.lad.yml
+++ b/config/locales/devise.lad.yml
@@ -94,11 +94,6 @@ lad:
updated_not_active: Tu kod se tiene trokado kon reushita.
registrations:
destroyed: Tu kuento a sido efasado kon reushita. Asperamos verte de muevo pronto.
- signed_up: Bienvenido! Te tienes enrejistrado djustamente.
- signed_up_but_inactive: Te tienes enrejistrado kon reushita. Entanto, no se pudio inisyar sesyon porke tu kuento ainda no esta aktivado.
- signed_up_but_locked: Te tienes enrejistrado kon reushita. Entanto, no pudites konektarte kon tu kuento porke tu kuento esta blokado.
- signed_up_but_pending: Un mesaj kon un atadijo de konfirmasyon a sido enviado a tu adreso de posta elektronika. Dempues de klikar en el atadijo, revizaremos tu solisitud. Seras avizado si se acheta.
- signed_up_but_unconfirmed: Un mesaj kon un atadijo de konfirmasyon a sido enviado a tu adreso de posta elektronika. Por favor, sigue el atadijo para aktivar tu kuento. Por favor, komprova tu kuti de posta spam si no risives akeya posta elektronika.
update_needs_confirmation: Tienes aktualizado tu kuento kon reushita, pero kale verifikar tu muevo adreso de posta elektronika. Por favor, komprova tu posta elektronika i sige el atadijo de konfirmasyon para konfirmar tu muevo adreso de posta elektronika. Por favor, komprova tu kuti de posta spam si no risives akeya posta elektronika.
updated: Tu kuento se aktualizo kon reushita.
sessions:
diff --git a/config/locales/devise.lt.yml b/config/locales/devise.lt.yml
index 7c72543574..1eb5692494 100644
--- a/config/locales/devise.lt.yml
+++ b/config/locales/devise.lt.yml
@@ -94,11 +94,6 @@ lt:
updated_not_active: Tavo slaptažodis buvo sėkmingai pakeistas.
registrations:
destroyed: Iki pasimatymo! Tavo paskyra sėkmingai atšaukta. Tikimės, kad netrukus vėl pamatysime tave.
- signed_up: Sveiki! Tu sėkmingai užsiregistravai.
- signed_up_but_inactive: Sėkmingai užsiregistravai. Tačiau negalėjome tavęs prijungti, nes tavo paskyra dar nėra aktyvuota.
- signed_up_but_locked: Sėkmingai užsiregistravai. Tačiau negalėjome tavęs prijungti, nes tavo paskyra dar užrakinta.
- signed_up_but_pending: Į tavo el. pašto adresą buvo išsiųstas laiškas su patvirtinimo nuoroda. Paspaudęs (-usi) nuorodą, peržiūrėsime tavo paraišką. Tau bus pranešta, jei ji patvirtinta.
- signed_up_but_unconfirmed: Į tavo el. pašto adresą buvo išsiųstas laiškas su patvirtinimo nuoroda. Sek nuorodą, kad aktyvuotum savo paskyrą. Jei negavai šio el. laiško, patikrink šlamšto aplanką.
update_needs_confirmation: Sėkmingai atnaujinai savo paskyrą, bet mums reikia patvirtinti naująjį el. pašto adresą. Patikrink savo el. paštą ir sek patvirtinimo nuorodą, kad patvirtintum savo naują el. pašto adresą. Jei negavai šio el. laiško, patikrink šlamšto aplanką.
updated: Tavo paskyra buvo sėkmingai atnaujinta.
sessions:
diff --git a/config/locales/devise.lv.yml b/config/locales/devise.lv.yml
index 5aaa23a731..9fbd99c0eb 100644
--- a/config/locales/devise.lv.yml
+++ b/config/locales/devise.lv.yml
@@ -94,11 +94,6 @@ lv:
updated_not_active: Tava parole ir veiksmīgi nomainīta.
registrations:
destroyed: Visu labu! Tavs konts ir veiksmīgi atcelts. Mēs ceram tevi drīz atkal redzēt.
- signed_up: Laipni lūdzam! Tu esi veiksmīgi reģistrējies.
- signed_up_but_inactive: Tava reģistrācija bija veiksmīga. Tomēr mēs nevarējām Tevi pieteikt, jo Tavs konts vēl nav aktivizēts.
- signed_up_but_locked: Tava reģistrācija bija veiksmīga. Tomēr mēs nevarējām Tevi pieteikt, jo Tavs konts ir slēgts.
- signed_up_but_pending: Uz tavu e-pasta adresi ir nosūtīts ziņojums ar apstiprinājuma saiti. Pēc noklikšķināšanas uz saites mēs izskatīsim tavu pieteikumu. Tu tiksi informēts, ja tas tiks apstiprināts.
- signed_up_but_unconfirmed: Uz tavu e-pasta adresi ir nosūtīts ziņojums ar apstiprinājuma saiti. Lūdzu, seko saitei, lai aktivizētu savu kontu. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
update_needs_confirmation: Tu veiksmīgi atjaunināji savu kontu, taču mums ir jāverificē teva jaunā e-pasta adrese. Lūdzu, pārbaudi savu e-pastu un seko apstiprinājuma saitei, lai apstiprinātu savu jauno e-pasta adresi. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
updated: Tavs konts ir veiksmīgi atjaunināts.
sessions:
diff --git a/config/locales/devise.ms.yml b/config/locales/devise.ms.yml
index da18d1896e..90d59798cb 100644
--- a/config/locales/devise.ms.yml
+++ b/config/locales/devise.ms.yml
@@ -84,11 +84,6 @@ ms:
updated_not_active: Kata laluan anda telah berjaya ditukar.
registrations:
destroyed: Selamat tinggal! Akaun anda telah berjaya dibatalkan. Kami harap berjumpa lagi.
- signed_up: Selamat datang! Anda telah berjaya mendaftar.
- signed_up_but_inactive: Anda telah berjaya mendaftar. Namun, kami tidak dapat mendaftar masuk anda kerana akaun anda belum diaktifkan.
- signed_up_but_locked: Anda telah berjaya mendaftar. Walau bagaimanapun, kami tidak dapat melog masuk anda kerana akaun anda dikunci.
- signed_up_but_pending: Mesej dengan pautan pengesahan telah dihantar ke alamat e-mel anda. Selepas anda mengklik pautan, kami akan menyemak permohonan anda. Anda akan dimaklumkan jika ia diluluskan.
- signed_up_but_unconfirmed: Mesej dengan pautan pengesahan telah dihantar ke alamat e-mel anda. Sila ikuti pautan untuk mengaktifkan akaun anda. Sila semak folder spam anda jika anda tidak menerima e-mel ini.
update_needs_confirmation: Anda berjaya mengemas kini akaun anda, tetapi kami perlu mengesahkan alamat e-mel baharu anda. Sila semak e-mel anda dan ikuti pautan pengesahan untuk mengesahkan alamat e-mel baharu anda. Sila semak folder spam anda jika anda tidak menerima e-mel ini.
updated: Akaun anda telah berjaya dikemas kini.
sessions:
diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml
index 126ecd7404..4eff1ddd6a 100644
--- a/config/locales/devise.my.yml
+++ b/config/locales/devise.my.yml
@@ -84,11 +84,6 @@ my:
updated_not_active: သင့်စကားဝှက်ကို အောင်မြင်စွာ ပြောင်းလဲပြီးပါပြီ။
registrations:
destroyed: တာ့တာ၊ သင့်အကောင့်ကို ပယ်ဖျက်လိုက်ပါပြီ။ မကြာခင် ပြန်တွေ့နိုင်ရန်မျှော်လင့်မိပါသည်။
- signed_up: ကြိုဆိုပါသည်။ သင်သည် အောင်မြင်စွာ စာရင်းသွင်းပြီးပါပြီ။
- signed_up_but_inactive: သင်သည် အောင်မြင်စွာ အကောင့်ဖွင့်ပြီးပါပြီ။ သို့သော်လည်း သင့်အကောင့် အတည်မပြုရသေးသောကြောင့် ဝင်၍မရနိုင်ပါ။
- signed_up_but_locked: သင်သည် အောင်မြင်စွာ အကောင့်ဖွင့်ပြီးပါပြီ။ သို့သော်လည်း သင့်အကောင့်လော့ခ်ချထားသောကြောင့် လက်မှတ်ထိုးဝင်၍မရနိုင်ပါ။
- signed_up_but_pending: အတည်ပြုချက်လင့်ခ်ပါရှိသော စာတိုတစ်စောင်ကို သင့်အီးမေးလ်လိပ်စာသို့ ပေးပို့လိုက်ပါပြီ။ လင့်ခ်ကို နှိပ်ပြီးနောက် သင့်အက်ပလီကေးရှင်းကို ကျွန်ုပ်တို့ ပြန်လည်စစ်ဆေးပါမည်။ အတည်ပြုပြီးပါက သင့်ထံ အကြောင်းကြားပါမည်။
- signed_up_but_unconfirmed: အကောင့်ဖွင့်ရန်အတွက် လင့်ခ်တစ်ခုကို ထောက်ခံချက်အီးမေးလ််နှင့်အတူပို့ပေးလိုက်ပါပြီ။ သင့်အကောင့်ဖွင့်နိုင်ရန် လင့်ခ်ကိုဝင်ရောက်ပေးပါ။ အီးမေးလ်မတွေ့ပါက စပမ်းဖိုင်တွဲထဲတွင်စစ်ကြည့်ပါ။
update_needs_confirmation: သင့်အကောင့်ကို မွမ်းမံပြင်ဆင်ထားသော်လည်း သင့်အီးမေးလ်လိပ်စာအသစ်ကို အတည်ပြုရန် လိုအပ်ပါသည်။ ကျေးဇူးပြု၍ သင့်အီးမေးလ်ကို စစ်ဆေးပြီး သင့်အီးမေးလ်လိပ်စာအသစ်ကို အတည်ပြုရန်အတွက် အတည်ပြုလင့်ခ်အား နှိပ်ပါ။ ဤအီးမေးလ်ကို မရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
updated: သင့်အကောင့်အားအောင်မြင်စွာ ပြင်ဆင်ပြီးပါပြီ။
sessions:
diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml
index 662401a57a..a80b5a7bfa 100644
--- a/config/locales/devise.nl.yml
+++ b/config/locales/devise.nl.yml
@@ -94,11 +94,6 @@ nl:
updated_not_active: Jouw wachtwoord is gewijzigd.
registrations:
destroyed: Jouw account is succesvol verwijderd. Wellicht tot ziens.
- signed_up: Je bent geregistreerd.
- signed_up_but_inactive: Je bent geregistreerd. Je kon alleen niet automatisch ingelogd worden omdat jouw account nog niet geactiveerd is.
- signed_up_but_locked: Je bent ingeschreven. Je kon alleen niet automatisch ingelogd worden omdat jouw account is opgeschort.
- signed_up_but_pending: Er is een bericht met een bevestigingslink naar jouw e-mailadres verzonden. Nadat je op deze link hebt geklikt nemen we jouw aanvraag in behandeling. Je wordt op de hoogte gesteld wanneer deze wordt goedgekeurd.
- signed_up_but_unconfirmed: Je ontvangt via e-mail instructies hoe je jouw account kunt activeren. Kijk tussen je spam wanneer niks werd ontvangen.
update_needs_confirmation: Je hebt je e-mailadres succesvol gewijzigd, maar we moeten je nieuwe mailadres nog bevestigen. Controleer jouw e-mail en klik op de link in de mail om jouw e-mailadres te bevestigen. Kijk tussen je spam wanneer niks werd ontvangen.
updated: Jouw accountgegevens zijn opgeslagen.
sessions:
diff --git a/config/locales/devise.nn.yml b/config/locales/devise.nn.yml
index e9e8e1f6e0..cdf358ce83 100644
--- a/config/locales/devise.nn.yml
+++ b/config/locales/devise.nn.yml
@@ -94,11 +94,6 @@ nn:
updated_not_active: Passordet ditt er endra.
registrations:
destroyed: Ha det! Kontoen din er sletta. Me vonar å sjå deg igjen snart.
- signed_up: Velkomen! No er du registrert.
- signed_up_but_inactive: Du har registrert deg, men me kunne ikkje logga deg inn fordi kontoen din er ikkje aktivert enno.
- signed_up_but_locked: Du har registrert deg, men me kunne ikkje logga deg inn fordi kontoen din er låst.
- signed_up_but_pending: Ei melding med ei stadfestingslenke har vorte sendt til epostadressa di. Når du klikkar på lenka skal me sjå gjennom søknaden din. Du får ei melding om den vert godkjend.
- signed_up_but_unconfirmed: Ei melding med ei lenke for å stadfeste kontoen har vorte sendt til epostadressa di. Klikk på lenka for å aktivere kontoen. Sjekk søppelpostmappa dersom du ikkje har fått eposten.
update_needs_confirmation: Du har oppdatert kontoen din, men me må stadfesta den nye epostadressa. Sjekk innboksen og fylg lenka for å stadfeste adressa di. Sjekk søppelpostmappa dersom du ikkje har fått denne eposten.
updated: Kontoen har vorte oppdatert.
sessions:
diff --git a/config/locales/devise.no.yml b/config/locales/devise.no.yml
index 2cd433c6e0..b92e7e8aa3 100644
--- a/config/locales/devise.no.yml
+++ b/config/locales/devise.no.yml
@@ -94,11 +94,6 @@
updated_not_active: Passordet ditt er endret.
registrations:
destroyed: Ha det! Kontoen din er avsluttet. Vi håper å se deg igjen snart.
- signed_up: Velkommen! Registreringen var vellykket.
- signed_up_but_inactive: Registreringen var vellykket. Vi kunne dessverre ikke logge deg inn fordi kontoen din ennå ikke har blitt aktivert.
- signed_up_but_locked: Registreringen var vellykket. Vi kunne dessverre ikke logge deg inn fordi kontoen din har blitt låst.
- signed_up_but_pending: En melding med en bekreftelseslenke er sendt til din e-postadresse. Etter at du har klikket på lenken, vil vi gjennomgå søknaden din. Du vil bli varslet hvis den blir godkjent.
- signed_up_but_unconfirmed: En melding med en bekreftelseslenke har blitt sendt til din e-postadresse. Klikk på lenken i e-posten for å aktivere kontoen din. Sjekk spam-mappen din hvis du ikke mottok e-posten.
update_needs_confirmation: Du har oppdatert kontoen din, men vi må bekrefte din nye e-postadresse. Sjekk e-posten din og følg bekreftelseslenken for å bekrefte din nye e-postadresse. Sjekk spam-mappen din hvis du ikke mottok e-posten.
updated: Kontoen din ble oppdatert.
sessions:
diff --git a/config/locales/devise.oc.yml b/config/locales/devise.oc.yml
index 2640777e00..a039975ef5 100644
--- a/config/locales/devise.oc.yml
+++ b/config/locales/devise.oc.yml
@@ -84,11 +84,6 @@ oc:
updated_not_active: Vòstre senhal es ben estat cambiat.
registrations:
destroyed: Adieu-siatz ! Vòstra inscripcion es estada anullada amb succès. Esperem vos tornar veire lèu.
- signed_up: La benvenguda ! Sètz ben marcat al malhum.
- signed_up_but_inactive: Sètz ben marcat. Pasmens, avèm pas pogut vos connectar perque vòstre compte es pas encara validat.
- signed_up_but_locked: Sètz ben marcat. Pasmens, avèm pas pogut vos connectar perque vòstre compte es pas encara blocat.
- signed_up_but_pending: Un messatge amb un ligam de confirmacion es estat enviat a vòstra adreça electronica. Aprèp aver clicat lo ligam, revisarem vòstra demanda. Seretz avisat se’s aprovada.
- signed_up_but_unconfirmed: Un messatge amb un ligam de confirmacion es estat enviat a vòstra adreça de corrièl. Clicatz sul ligam per activar vòstre compte. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
update_needs_confirmation: Avètz ben mes a jorn vòstre compte, mai nos cal verificar vòstra nòva adreça de corrièl. Mercés de verificar vòstres messatges e clicar sul ligam de confirmacion per confirmar vòstra nòva adreça de corrièl. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
updated: Vòstre compte es estat mes a jorn amb succès.
sessions:
diff --git a/config/locales/devise.pl.yml b/config/locales/devise.pl.yml
index f34fd04633..093ea6961d 100644
--- a/config/locales/devise.pl.yml
+++ b/config/locales/devise.pl.yml
@@ -94,11 +94,6 @@ pl:
updated_not_active: Twoje hasło zostało zmienione.
registrations:
destroyed: Do zobaczenia! Twoje konto zostało zawieszone. Mamy jednak nadzieję, że do nas wrócisz.
- signed_up: Witamy! Twoje konto zostało utworzone.
- signed_up_but_inactive: Twoje konto zostało utworzone. Nie mogliśmy Cię jednak zalogować, ponieważ konto nie zostało jeszcze aktywowane.
- signed_up_but_locked: Twoje konto zostało utworzone. Nie mogliśmy Cię jednak zalogować, ponieważ konto jest zablokowane.
- signed_up_but_pending: Na Twój adres e-mail została wysłana wiadomosć z odnośnikiem potwierdzającym. Po kliknięciu w odnośnik, przejrzymy Twoje podanie. Zostaniesz poinformowany(-a), gdy zostanie ono przyjęte.
- signed_up_but_unconfirmed: Na Twój adres e-mail została wysłana wiadomosć z odnośnikiem potwierdzającym. Kliknij w odnośnik, aby aktywować konto. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem.
update_needs_confirmation: Konto zostało zaktualizowane, musimy jednak zweryfikować Twój nowy adres e-mail. Została na niego wysłana wiadomość z odnośnikiem potwierdzającym. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem.
updated: Konto zostało zaktualizowane.
sessions:
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
index 8f504362de..6c33d0e30a 100644
--- a/config/locales/devise.pt-BR.yml
+++ b/config/locales/devise.pt-BR.yml
@@ -94,11 +94,6 @@ pt-BR:
updated_not_active: Sua senha foi alterada com sucesso.
registrations:
destroyed: Adeus! Sua conta foi cancelada. Talvez um dia possamos nos ver de novo.
- signed_up: Boas vindas! Conta criada.
- signed_up_but_inactive: Conta criada! Agora você deve confirmá-la.
- signed_up_but_locked: Você se cadastrou com sucesso. Contudo, não pudemos entrar na sua conta porque ela está bloqueada.
- signed_up_but_pending: Um e-mail com um link de confirmação foi enviado para o seu endereço de e-mail. Após você entrar no link, revisaremos sua solicitação e você será notificado caso seja aprovado.
- signed_up_but_unconfirmed: Um e-mail com instruções para confirmar o seu endereço de e-mail foi enviado. Verifique sua caixa de spam caso ainda não o tenha recebido.
update_needs_confirmation: Você alterou seu endereço de e-mail ou sua senha, porém é preciso confirmar a alteração. Entre no link que foi enviado para o seu novo endereço de e-mail e verifique sua caixa de spam caso ainda não o tenha recebido.
updated: Sua conta foi alterada com sucesso.
sessions:
diff --git a/config/locales/devise.pt-PT.yml b/config/locales/devise.pt-PT.yml
index edfb798509..1469e7403d 100644
--- a/config/locales/devise.pt-PT.yml
+++ b/config/locales/devise.pt-PT.yml
@@ -94,11 +94,6 @@ pt-PT:
updated_not_active: A tua palavra-passe foi alterada.
registrations:
destroyed: Adeus! A sua conta foi cancelada com sucesso. Esperamos voltar a vê-lo em breve.
- signed_up: Bem-vindo! A sua conta foi registada com sucesso.
- signed_up_but_inactive: Registou-se com sucesso. No entanto, não foi possível iniciar sessão porque a sua conta ainda não está ativada.
- signed_up_but_locked: Registou-se com sucesso. No entanto, não foi possível iniciar sessão porque a sua conta está bloqueada.
- signed_up_but_pending: Foi enviada uma mensagem com uma hiperligação de confirmação para o seu endereço de e-mail. Depois de clicar na hiperligação, analisaremos a sua candidatura. Será notificado se for aprovado.
- signed_up_but_unconfirmed: Foi enviada para o seu endereço de e-mail uma mensagem com uma hiperligação de confirmação. Siga a hiperligação para ativar a sua conta. Verifique a sua pasta de spam se não recebeu esta mensagem de e-mail.
update_needs_confirmation: Atualizou a sua conta com sucesso, mas temos de verificar o seu novo endereço de e-mail. Verifique o seu e-mail e siga a hiperligação de confirmação para confirmar o seu novo endereço de e-mail. Verifique a sua pasta de spam se não recebeu esta mensagem de correio eletrónico.
updated: A sua conta foi corretamente atualizada.
sessions:
diff --git a/config/locales/devise.ro.yml b/config/locales/devise.ro.yml
index f570f77e1d..1548dc36f3 100644
--- a/config/locales/devise.ro.yml
+++ b/config/locales/devise.ro.yml
@@ -94,11 +94,6 @@ ro:
updated_not_active: Parola dvs. a fost schimbată cu succes.
registrations:
destroyed: La revedere! Contul dvs. a fost anulat cu succes. Sperăm să vă vedem din nou în curând.
- signed_up: Bine ați venit! V-ați înregistrat cu succes.
- signed_up_but_inactive: V-ați înregistrat cu succes. Cu toate acestea, nu vă putem conecta deoarece contul dvs. nu este încă activat.
- signed_up_but_locked: V-ați înregistrat cu succes. Cu toate acestea, nu vă putem conecta deoarece contul dvs. este blocat.
- signed_up_but_pending: Un mesaj cu un link de confirmare a fost trimis la adresa dvs. de e-mail. După ce faceți clic pe link, vă vom revizui cererea. Veți fi notificat dacă este aprobat.
- signed_up_but_unconfirmed: Un mesaj cu un link de confirmare a fost trimis la adresa dvs. de e-mail. Vă rugăm să urmați link-ul pentru a vă activa contul. Vă rugăm să verificați folderul spam dacă nu ați primit acest e-mail.
update_needs_confirmation: V-ați actualizat contul cu succes, dar trebuie să verificăm noua dvs. adresă de e-mail. Vă rugăm să verificați adresa de e-mail și să urmați link-ul de confirmare pentru a confirma noua dvs. adresă de e-mail. Vă rugăm să verificați dosarul spam dacă nu ați primit acest e-mail.
updated: Contul dvs. a fost actualizat cu succes.
sessions:
diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml
index 9e7ace6433..853381801a 100644
--- a/config/locales/devise.ru.yml
+++ b/config/locales/devise.ru.yml
@@ -94,11 +94,6 @@ ru:
updated_not_active: Ваш пароль был успешно изменен.
registrations:
destroyed: До свидания! Ваша учётная запись была успешно удалена. Мы надеемся скоро увидеть вас снова.
- signed_up: Добро пожаловать! Вы успешно зарегистрировались.
- signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваша учётная запись еще не активирована.
- signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваша учётная запись заблокирована.
- signed_up_but_pending: На ваш e-mail адрес было отправлено письмо с ссылкой для подтверждения. После перехода по ней, мы начнём рассматривать вашу заявку. В случае подтверждения, мы вас оповестим.
- signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации вашей учётной записи.
update_needs_confirmation: Данные учётной записи обновлены, но нам необходимо подтвердить ваш новый e-mail адрес. Проверьте почту и перейдите по ссылке из письма. Если оно не приходит, проверьте папку «спам».
updated: Ваша учётная запись успешно обновлена.
sessions:
diff --git a/config/locales/devise.sc.yml b/config/locales/devise.sc.yml
index dde8fd229e..6926a85c42 100644
--- a/config/locales/devise.sc.yml
+++ b/config/locales/devise.sc.yml
@@ -84,11 +84,6 @@ sc:
updated_not_active: Sa crae tua est istada mudada.
registrations:
destroyed: A si bìdere! Su contu tuo est istadu cantzelladu. Isperamus de ti torrare a bìdere chitzi.
- signed_up: Registratzione curreta. Ti donamus sa benebènnida.
- signed_up_but_inactive: Registratzione curreta. Mancari de aici, si no ti faghimus intrare est ca su contu tuo no est ancora ativu.
- signed_up_but_locked: Registratzione curreta. Mancari de aici, si no ti faghimus intrare est ca su contu tuo est blocadu.
- signed_up_but_pending: Unu ligàmene de cunfirma est istadu imbiadu a s'indiritzu tuo de posta eletrònica. A pustis chi incarcas in su ligàmene, amus a revisionare sa dimanda tua. Si aprovada, t'at a arribare una notìfica.
- signed_up_but_unconfirmed: Unu ligàmene de cunfirma est istadu imbiadu a s'indiritzu tuo de posta eletrònica. Sighi su ligàmene pro ativare su contu tuo. Controlla sa cartella de s'àliga si no as retzidu custu messàgiu de posta eletrònica.
update_needs_confirmation: Su contu tuo est istadu atualizadu, ma depimus verificare s'indiritzu tuo de posta eletrònica nou. Controlla sa posta eletrònica e sighi su ligàmene pro cunfirmare s'indiritzu nou de posta eletrònica. Controlla sa cartella de s'àliga si no as retzidu custu messàgiu de posta eletrònica.
updated: Su contu tuo est istadu atualizadu.
sessions:
diff --git a/config/locales/devise.sco.yml b/config/locales/devise.sco.yml
index 1db6bbe303..991101f778 100644
--- a/config/locales/devise.sco.yml
+++ b/config/locales/devise.sco.yml
@@ -84,11 +84,6 @@ sco:
updated_not_active: Yer passwird haes been chynged successfully.
registrations:
destroyed: Cheerio! Yer accoont haes been successfully shut doon. We howp fir tae see ye again suin.
- signed_up: Hullo! Ye'v signed up successfully.
- signed_up_but_inactive: Ye'v signed up successfully. Hou an iver, we cuidnae sign ye in acause yer accoont isnae activatit yit.
- signed_up_but_locked: Ye'v signed up successfully. Hou an iver, we cuidnae sign ye in acause yer accoont is snibbed.
- signed_up_but_pending: A email wi a confirmation link haes been sent tae yer email address. Efter ye chap on the link, we'll luik ower yer application. Ye'll be sent a note gin it's approved.
- signed_up_but_unconfirmed: A message wi a confirmation link haes been sent tae yer email address. Please follae the link fir tae activate yer accoont. Please check yer mince folder if ye didnae get this email.
update_needs_confirmation: Ye updatit yer accoont successfully, but we need tae verify yer new email address. Please tak a deek at yer email an follae the confirm link fir tae confirm yer new email address. Please tak a deek at yer mince folder if ye didnae get this email.
updated: Yer accoont haes been updatit successfully.
sessions:
diff --git a/config/locales/devise.si.yml b/config/locales/devise.si.yml
index d0bfa719bc..354b6fc977 100644
--- a/config/locales/devise.si.yml
+++ b/config/locales/devise.si.yml
@@ -77,11 +77,6 @@ si:
updated_not_active: ඔබගේ මුරපදය සාර්ථකව වෙනස් කර ඇත.
registrations:
destroyed: ආයුබෝවන්! ඔබගේ ගිණුම සාර්ථකව අවලංගු කර ඇත. ඉක්මනින්ම ඔබව නැවත හමුවීමට අපි බලාපොරොත්තු වෙමු.
- signed_up: සාදරයෙන් පිළිගනිමු! ඔබ සාර්ථකව ලියාපදිංචි වී ඇත.
- signed_up_but_inactive: ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. කෙසේ වෙතත්, ඔබගේ ගිණුම තවමත් සක්රිය කර නොමැති නිසා අපට ඔබව පුරනය වීමට නොහැකි විය.
- signed_up_but_locked: ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. කෙසේ වෙතත්, ඔබගේ ගිණුම අගුලු දමා ඇති නිසා අපට ඔබව පුරනය කිරීමට නොහැකි විය.
- signed_up_but_pending: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබ සබැඳිය ක්ලික් කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. එය අනුමත වුවහොත් ඔබට දැනුම් දෙනු ලැබේ.
- signed_up_but_unconfirmed: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබගේ ගිණුම සක්රිය කිරීමට කරුණාකර සබැඳිය අනුගමනය කරන්න. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
update_needs_confirmation: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන වුවද අපට නව වි-තැපැල් ලිපිනය සත්යාපනය කර ගැනීමට වුවමනා කෙරේ. කරුණාකර ඔබගේ වි-තැපෑල පරීක්ෂා කර ඊට අදාළ සබැඳිය අනුගමනය කර ඔබගේ නව වි-තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම වි-තැපෑල නොලැබුණේ නම් කරුණාකර අයාචිත තැපැල් බහාලුම බලන්න.
updated: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන කර ඇත.
sessions:
diff --git a/config/locales/devise.sk.yml b/config/locales/devise.sk.yml
index b36416b317..08e93456b0 100644
--- a/config/locales/devise.sk.yml
+++ b/config/locales/devise.sk.yml
@@ -94,11 +94,6 @@ sk:
updated_not_active: Vaše heslo bolo úspešne zmenené.
registrations:
destroyed: Dovidenia! Váš účet bol úspešne zrušený. Dúfame ale, že vás tu opäť niekedy uvidíme.
- signed_up: Vitajte! Vaša registrácia bola úspešná.
- signed_up_but_inactive: Registrácia bola úspešná. Avšak váš účet ešte nebol aktivovaný, takže sa nemôžete prihlásiť.
- signed_up_but_locked: Registrácia bola úspešná. Avšak váš účet je zamknutý, takže sa nemôžete prihlásiť.
- signed_up_but_pending: Na váš e-mail bola odoslaná správa s odkazom na overenie. Po kliknutí na odkaz vašu prihlášku skontrolujeme. O jej schválení vás budeme informovať.
- signed_up_but_unconfirmed: Na váš e-mail bola odoslaná správa s odkazom na overenie. Svoj účet aktivujte kliknutím na odkaz. Ak ste e-mail nedostali, skontrolujte svoj priečinok pre spam.
update_needs_confirmation: Váš účet bol úspešne zmenený, ale ešte potrebujeme overiť vašu novú e-mailovú adresu. Overíte ju kliknutím na potvrdzovací odkaz zaslaný na váš e-mail. Ak ste e-mail nedostali, skontrolujte svoj priečinok pre spam.
updated: Váš účet bol úspešne aktualizovaný.
sessions:
diff --git a/config/locales/devise.sl.yml b/config/locales/devise.sl.yml
index 0eb9b6330a..8e708f4ebf 100644
--- a/config/locales/devise.sl.yml
+++ b/config/locales/devise.sl.yml
@@ -94,11 +94,6 @@ sl:
updated_not_active: Vaše geslo je bilo uspešno spremenjeno.
registrations:
destroyed: Srečno! Vaš račun je bil uspešno preklican. Upamo, da vas bomo kmalu spet videli.
- signed_up: Dobrodošli! Uspešno ste se vpisali.
- signed_up_but_inactive: Uspešno ste se vpisali. Vendar vas nismo mogli prijaviti, ker vaš račun še ni aktiviran.
- signed_up_but_locked: Uspešno ste se vpisali. Vendar vas nismo mogli prijaviti, ker je vaš račun zaklenjen.
- signed_up_but_pending: Na vaš e-poštni naslov je bilo poslano sporočilo s povezavo za potrditev. Ko kliknete povezavo, bomo pregledali vašo prijavo. Obveščeni boste, če bo odobrena.
- signed_up_but_unconfirmed: Na vaš e-poštni naslov je bilo poslano sporočilo s povezavo za potrditev. Sledite povezavi, da aktivirate svoj račun. Če niste prejeli te e-pošte, preverite mapo z neželeno pošto.
update_needs_confirmation: Uspešno ste posodobili račun, vendar moramo potrditi vaš novi e-poštni naslov. Preverite svojo e-pošto in sledite povezavi za potrditev, da potrdite nov e-poštni naslov. Če niste prejeli te e-pošte, preverite mapo z neželeno pošto.
updated: Vaš račun je bil uspešno posodobljen.
sessions:
diff --git a/config/locales/devise.sq.yml b/config/locales/devise.sq.yml
index 76dd493245..69ac7bd26d 100644
--- a/config/locales/devise.sq.yml
+++ b/config/locales/devise.sq.yml
@@ -94,11 +94,6 @@ sq:
updated_not_active: Fjalëkalimi juaj u ndryshua me sukses.
registrations:
destroyed: Shëndet! Llogaria juaj u fshi me sukses. Shpresojmë t’ju rishohim së shpejti.
- signed_up: Mirë se vini! U regjistruat me sukses.
- signed_up_but_inactive: U regjistruat me sukses. Megjithatë, s’u bë dot hyrja juaj, ngaqë llogaria juaj s’është aktivizuar ende.
- signed_up_but_locked: U regjistruat me sukses. Megjithatë, s’u bë dot hyrja juaj, ngaqë llogaria juaj është kyçur.
- signed_up_but_pending: Te adresa juaj email është dërguar një mesazh me një lidhje ripohimi. Pasi të klikoni mbi lidhjen, do të shqyrtojmë aplikimin tuaj. Nëse miratohet, do të njoftoheni.
- signed_up_but_unconfirmed: Te adresa juaj email u dërgua një mesazh me një lidhje ripohimi. Ju lutemi, që të aktivizoni llogarinë tuaj, ndiqni lidhjen. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
update_needs_confirmation: E përditësuat me sukses llogarinë tuaj, por na duhet të verifikojmë adresën tuaj të re email. Ju lutemi, që të ripohoni adresën tuaj të re email, kontrolloni email-in tuaj dhe ndiqni lidhjen. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
updated: Llogaria juaj u përditësua me sukses.
sessions:
diff --git a/config/locales/devise.sr-Latn.yml b/config/locales/devise.sr-Latn.yml
index 3947b2d84f..00e8ac4538 100644
--- a/config/locales/devise.sr-Latn.yml
+++ b/config/locales/devise.sr-Latn.yml
@@ -94,11 +94,6 @@ sr-Latn:
updated_not_active: Vaša lozinka nije uspešno promenjena.
registrations:
destroyed: Ćao! Vaš nalog je uspešno obrisan. Nadamo se da ćete se uskoro vratiti.
- signed_up: Dobro došli! Uspešno ste se registrovali.
- signed_up_but_inactive: Uspešno ste se registrovali. Nažalost ne možete se prijaviti zato što Vaš nalog još nije aktiviran.
- signed_up_but_locked: Uspešno ste se registrovali. Nažalost ne možete se prijaviti zato što je Vaš nalog zaključan.
- signed_up_but_pending: Na vaš imejl poslata je poruka sa vezom za potvrdu. Nakon što kliknete na vezu, pregledaćemo vašu prijavu. Bićete obavešteni ako bude odobreno.
- signed_up_but_unconfirmed: Poruka za potvrdu Vašeg naloga je poslata na Vašu imejl adresu. Kliknite na vezu u imejlu da potvrdite svoj nalog. Molimo proverite i spam fasciklu ako niste primili poruku.
update_needs_confirmation: Uspešno ste ažurirali svoj nalog, ali moramo da verifikujemo vašu novu adresu e-pošte. Proverite svoju e-poštu i pratite vezu za potvrdu da biste potvrdili novu adresu e-pošte. Proverite svoju fasciklu neželjene pošte ako niste primili ovu e-poštu.
updated: Vaš nalog je uspešno ažuriran.
sessions:
diff --git a/config/locales/devise.sr.yml b/config/locales/devise.sr.yml
index a4c08dfaf0..a7e855fa68 100644
--- a/config/locales/devise.sr.yml
+++ b/config/locales/devise.sr.yml
@@ -94,11 +94,6 @@ sr:
updated_not_active: Ваша лозинка није успешно промењена.
registrations:
destroyed: Ћао! Ваш налог је успешно обрисан. Надамо се да ћете се ускоро вратити.
- signed_up: Добро дошли! Успешно сте се регистровали.
- signed_up_but_inactive: Успешно сте се регистровали. Нажалост не можете се пријавити зато што Ваш налог још није активиран.
- signed_up_but_locked: Успешно сте се регистровали. Нажалост не можете се пријавити зато што је Ваш налог закључан.
- signed_up_but_pending: На ваш имејл послата је порука са везом за потврду. Након што кликнете на везу, прегледаћемо вашу пријаву. Бићете обавештени ако буде одобрено.
- signed_up_but_unconfirmed: Порука за потврду Вашег налога је послата на Вашу имејл адресу. Кликните на везу у имејлу да потврдите свој налог. Молимо проверите и спам фасциклу ако нисте примили поруку.
update_needs_confirmation: Успешно сте ажурирали свој налог, али морамо да верификујемо вашу нову адресу е-поште. Проверите своју е-пошту и пратите везу за потврду да бисте потврдили нову адресу е-поште. Проверите своју фасциклу нежељене поште ако нисте примили ову е-пошту.
updated: Ваш налог је успешно ажуриран.
sessions:
diff --git a/config/locales/devise.sv.yml b/config/locales/devise.sv.yml
index 1e14a7de52..1808cfee5e 100644
--- a/config/locales/devise.sv.yml
+++ b/config/locales/devise.sv.yml
@@ -94,11 +94,6 @@ sv:
updated_not_active: Ditt lösenord har ändrats. Du är nu inloggad.
registrations:
destroyed: Adjö! Ditt konto har blivit nedstängt. Vi hoppas att vi snart ses igen.
- signed_up: Välkommen! Du har nu registrerat dig.
- signed_up_but_inactive: Du har nu registrerat dig. Vi kunde dock inte logga in dig eftersom ditt konto ännu inte är aktiverat.
- signed_up_but_locked: Du har nu registrerat dig. Vi kunde dock inte logga in eftersom ditt konto är låst.
- signed_up_but_pending: Ett meddelande med en bekräftelselänk har skickats till din e-postadress. När du klickar på länken kommer vi att granska din ansökan. Du kommer att meddelas om den godkänns.
- signed_up_but_unconfirmed: Ett meddelande med en bekräftelselänk har skickats till din e-postadress. Vänligen följ länken för att aktivera ditt konto. Kontrollera din skräppostmapp om du inte fick det här e-postmeddelandet.
update_needs_confirmation: Du har uppdaterat ditt konto, men vi måste verifiera din nya e-postadress. Vänligen kolla din e-post och följ bekräfta-länken för att bekräfta din nya e-postadress. Kontrollera din skräppost om du inte fick e-postmeddelandet.
updated: Ditt konto har uppdaterats utan problem.
sessions:
diff --git a/config/locales/devise.ta.yml b/config/locales/devise.ta.yml
index a0e6187ec4..76fb45c7c1 100644
--- a/config/locales/devise.ta.yml
+++ b/config/locales/devise.ta.yml
@@ -69,11 +69,6 @@ ta:
updated_not_active: உங்கள் கடவுச்சொல் வெற்றிகரமாக மாற்றப்பட்டது.
registrations:
destroyed: நன்றி! தங்கள் கணக்கு வெற்றிகரமாக ரத்து செய்யப்பட்டது. தங்கள் வருகையை மீண்டும் எதிர்நோக்கியிருக்கிறோம்.
- signed_up: வருக! நீங்கள் வெற்றிகரமாகப் பதிவுசெய்துவிட்டீர்கள்.
- signed_up_but_inactive: நீங்கள் வெற்றிகரமாகப் பதிவுசெய்துவிட்டீர்கள். ஆனால், உங்கள் கணக்கு இன்னும் செயல்படுத்தப்படாததால், உங்களை உள்நுழைக்க இயலவில்லை.
- signed_up_but_locked: நீங்கள் வெற்றிகரமாகப் பதிவுசெய்துவிட்டீர்கள். ஆனால், உங்கள் கணக்கு பூட்டப்பட்டுள்ளதால், உங்களை உள்நுழைக்க இயலவில்லை.
- signed_up_but_pending: உங்கள் மின்னஞ்சல் முகவரிக்கு ஒரு உறுதிபடுத்தும் சுட்டி அனுப்பப்பட்டுள்ளது. அந்த சுட்டியை நீங்கள் கிளிக் செய்தவுடன் உங்களின் விண்ணப்பத்தை நாங்கள் பரிசீலிப்போம். விண்ணப்பம் அங்கீகரிக்கப்பட்டால் உங்களுக்குத் தெரிவிக்கப்படும்.
- signed_up_but_unconfirmed: உங்கள் மின்னஞ்சல் முகவரிக்கு ஒரு உறுதிபடுத்தும் சுட்டி அனுப்பப்பட்டுள்ளது. உங்கள் கணக்கை செயல்படுத்த அந்த சுட்டியை தயவுசெய்து கிளிக் செய்யவும். மின்னஞ்சலை நீங்கள் பெறவில்லை எனில், தயைகூர்ந்து ஸ்பேம் பெட்டியில் பார்க்கவும்.
update_needs_confirmation: உங்கள் கணக்கு வெற்றிகரமாகத் திருத்தப்பட்டது. ஆனால், உங்கள் புதிய மின்னஞ்சல் முகவரியை நாங்கள் உறுதிசெய்ய வேண்டும். உங்கள் மின்னஞ்சல் முகவரிக்கு அனுப்பப்பட்டுள்ள உறுதிபடுத்தும் சுட்டியை தயவுசெய்து கிளிக் செய்யவும். மின்னஞ்சலை நீங்கள் பெறவில்லை எனில், தயைகூர்ந்து ஸ்பேம் பெட்டியில் பார்க்கவும்.
updated: உங்கள் கணக்கு வெற்றிகரமாகத் திருத்தப்பட்டது.
sessions:
diff --git a/config/locales/devise.th.yml b/config/locales/devise.th.yml
index 50e2e4b29e..4909b50129 100644
--- a/config/locales/devise.th.yml
+++ b/config/locales/devise.th.yml
@@ -94,11 +94,6 @@ th:
updated_not_active: เปลี่ยนรหัสผ่านของคุณสำเร็จ
registrations:
destroyed: ลาก่อน! ยกเลิกบัญชีของคุณสำเร็จ เราหวังว่าจะได้พบคุณอีกในเร็ว ๆ นี้
- signed_up: ยินดีต้อนรับ! คุณได้ลงทะเบียนสำเร็จ
- signed_up_but_inactive: คุณได้ลงทะเบียนสำเร็จ อย่างไรก็ตาม เราไม่สามารถลงชื่อคุณเข้าได้เนื่องจากยังไม่ได้เปิดใช้งานบัญชีของคุณ
- signed_up_but_locked: คุณได้ลงทะเบียนสำเร็จ อย่างไรก็ตาม เราไม่สามารถลงชื่อคุณเข้าได้เนื่องจากมีการล็อคบัญชีของคุณอยู่
- signed_up_but_pending: ส่งข้อความพร้อมลิงก์การยืนยันไปยังที่อยู่อีเมลของคุณแล้ว หลังจากคุณคลิกลิงก์ เราจะตรวจทานใบสมัครของคุณ คุณจะได้รับการแจ้งเตือนหากมีการอนุมัติใบสมัคร
- signed_up_but_unconfirmed: ส่งข้อความพร้อมลิงก์การยืนยันไปยังที่อยู่อีเมลของคุณแล้ว โปรดไปตามลิงก์เพื่อเปิดใช้งานบัญชีของคุณ โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้
update_needs_confirmation: คุณได้อัปเดตบัญชีของคุณสำเร็จ แต่เราจำเป็นต้องยืนยันที่อยู่อีเมลใหม่ของคุณ โปรดตรวจสอบอีเมลของคุณและไปตามลิงก์การยืนยันเพื่อยืนยันที่อยู่อีเมลใหม่ของคุณ โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้
updated: อัปเดตบัญชีของคุณสำเร็จ
sessions:
diff --git a/config/locales/devise.tr.yml b/config/locales/devise.tr.yml
index e709d3fff1..57162e8055 100644
--- a/config/locales/devise.tr.yml
+++ b/config/locales/devise.tr.yml
@@ -94,11 +94,6 @@ tr:
updated_not_active: Parolanız başarıyla değiştirildi.
registrations:
destroyed: Görüşürüz! hesabın başarıyla iptal edildi. Umarız seni sonra tekrar görürüz.
- signed_up: Hoş geldiniz! Başarılı bir şekilde oturum açtınız.
- signed_up_but_inactive: Başarıyla kaydoldun. Ancak, seni içeri alamıyoruz çünkü hesabın henüz aktif değil.
- signed_up_but_locked: Başarıyla kaydoldun. Ancak, seni içeri alamıyoruz çünkü hesabın kilitli.
- signed_up_but_pending: Onay bağlantısına sahip bir mesaj e-posta adresinize gönderildi. Bağlantıyı tıkladıktan sonra başvurunuzu inceleyeceğiz. Onaylanması durumunda size bilgi verilecektir.
- signed_up_but_unconfirmed: Onay bağlantısına sahip bir mesaj e-posta adresinize gönderildi. Lütfen hesabınızı etkinleştirmek için bağlantıyı takip edin. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin.
update_needs_confirmation: Hesabınızı başarıyla güncellediniz, ancak yeni e-posta adresinizi doğrulamamız gerekiyor. Lütfen e-postanızı kontrol edin ve yeni e-posta adresinizi onaylamak için onay bağlantısını izleyin. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin.
updated: Hesabınız başarıyla güncellendi.
sessions:
diff --git a/config/locales/devise.tt.yml b/config/locales/devise.tt.yml
index 8757bcc033..b9ac2e09f6 100644
--- a/config/locales/devise.tt.yml
+++ b/config/locales/devise.tt.yml
@@ -16,7 +16,6 @@ tt:
updated: Серсүзегез уңышлы үзгәртелде. Сез хәзер кердегез.
updated_not_active: Серсүзегез уңышлы үзгәртелде.
registrations:
- signed_up: Рәхим итегез! Сез уңышлы теркәлдегез.
updated: Хисабыгыз уңышлы яңартылды.
sessions:
already_signed_out: Уңышлы чыккансыз.
diff --git a/config/locales/devise.uk.yml b/config/locales/devise.uk.yml
index 65e89a274f..7ede7a96c2 100644
--- a/config/locales/devise.uk.yml
+++ b/config/locales/devise.uk.yml
@@ -94,11 +94,6 @@ uk:
updated_not_active: Ваш пароль було успішно змінено.
registrations:
destroyed: До побачення! Ваш обліковий запис було успішно видалено. Сподіваємось, Ви скоро повернетеся.
- signed_up: Ласкаво просимо! Ви були успішно зареєстровані.
- signed_up_but_inactive: Ви були успішно зареєстровані, але ми не можемо авторизувати вас, оскільки ваш обліковий запис ще не активовано.
- signed_up_but_locked: Ви були успішно зареєстровані, але ми не можемо авторизувати вас, оскільки ваш обліковий запис заблокований.
- signed_up_but_pending: Лист з посиланням для підтвердження було надіслано на вашу електронну пошту. Коли ви перейдете за цим посиланням, ми розглянемо ваш запит. Вас буде проінформовано, якщо запит буде схвалено.
- signed_up_but_unconfirmed: Повідомлення з посиланням на підтвердження будо відправлено на вашу адресу електронної пошти. Будь ласка, перейдіть за посиланням, щоб активувати ваш обліковий запис. Якщо ви не отримали цього листа, перевірте теку зі спамом у вашій скринці.
update_needs_confirmation: Ваш обліковий запис оновлено, але необхідно підтвердити нову адресу електронної пошти. Будь ласка, перевірте свою електронну скриньку і перейдіть за посиланням "Підтвердити", шоб завершити оновлення адреси електронної пошти. Якщо ви не отримали цього листа, перевірте теку зі спамом у вашій скринці.
updated: Ваш обліковий запис було успішно оновлено.
sessions:
diff --git a/config/locales/devise.vi.yml b/config/locales/devise.vi.yml
index 6ae78f83cc..28414fa485 100644
--- a/config/locales/devise.vi.yml
+++ b/config/locales/devise.vi.yml
@@ -94,11 +94,6 @@ vi:
updated_not_active: Mật khẩu của bạn đã được thay đổi thành công.
registrations:
destroyed: Tạm biệt! Tài khoản của bạn đã bị hủy. Hi vọng chúng tôi sẽ sớm gặp lại bạn.
- signed_up: Chúc mừng! Bạn đã đăng ký thành công.
- signed_up_but_inactive: Bạn đã đăng ký thành công. Tuy nhiên, bạn cần phải kích hoạt tài khoản mới có thể đăng nhập.
- signed_up_but_locked: Bạn đã đăng ký thành công. Tuy nhiên, chúng tôi không thể đăng nhập cho bạn vì tài khoản của bạn bị khóa.
- signed_up_but_pending: Một email xác minh đã được gửi đến địa chỉ email của bạn. Sau khi bạn nhấp vào liên kết, chúng tôi sẽ xem xét đơn đăng ký của bạn và thông báo nếu đơn được chấp thuận.
- signed_up_but_unconfirmed: Một email xác minh đã được gửi đến địa chỉ email của bạn. Hãy nhấp vào liên kết trong email để kích hoạt tài khoản của bạn. Nếu không thấy, hãy kiểm tra mục thư rác.
update_needs_confirmation: Bạn đã cập nhật tài khoản thành công, nhưng chúng tôi cần xác minh địa chỉ email mới của bạn. Vui lòng kiểm tra email và nhấp vào liên kết xác minh. Nếu bạn không thấy email, hãy kiểm tra trong thư rác.
updated: Tài khoản của bạn đã được cập nhật thành công.
sessions:
diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index 1b5f364d08..e0b8a7c818 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -94,11 +94,6 @@ zh-CN:
updated_not_active: 你的密码已修改成功。
registrations:
destroyed: 再见!你的账户已成功注销。我们希望很快可以再见到你。
- signed_up: 欢迎!你已成功注册。
- signed_up_but_inactive: 你已成功注册,但我们无法让你登录,因为你的账户还没有激活。
- signed_up_but_locked: 你已成功注册,但我们无法让你登录,因为你的账户已被锁定。
- signed_up_but_pending: 一条带有确认链接的邮件已经发送到你的邮箱地址。在你点击该链接后,我们将会审核你的申请。如果申请被批准,你将收到通知。
- signed_up_but_unconfirmed: 一封带有确认链接的邮件已经发送至你的邮箱,请点击邮件中的链接以激活你的账户。如果没有,请检查你的垃圾邮件。
update_needs_confirmation: 账号信息更新成功,但我们需要验证你的新邮箱地址,请点击邮件中的链接以确认。如果没有收到邮件,请检查你的垃圾邮件文件夹。
updated: 账户资料更新成功。
sessions:
diff --git a/config/locales/devise.zh-HK.yml b/config/locales/devise.zh-HK.yml
index a2620a8e4a..b9c5529d9f 100644
--- a/config/locales/devise.zh-HK.yml
+++ b/config/locales/devise.zh-HK.yml
@@ -94,11 +94,6 @@ zh-HK:
updated_not_active: 你的密碼已經更新。
registrations:
destroyed: 再見!你的帳號已被取消,希望日後能再見到你。
- signed_up: 歡迎你!你已經成功登記。
- signed_up_but_inactive: 你的登記已經成功,可是由於你的帳號還未被啟用,暫時還不能讓你登入。
- signed_up_but_locked: 你的登記已經成功,可是由於你的帳號已被鎖定,我們無法讓你登入。
- signed_up_but_pending: 確認連結已發送到你的電郵地址。在你點擊連結後,我們會審核你的申請。一旦通過審核,你將會收到進一步通知。
- signed_up_but_unconfirmed: 一條確認連結已經電郵到你的郵址。請使用讓連結啟用你的帳號。
update_needs_confirmation: 你的帳號已經更新,但我們需要確認你的電郵地址。請打開你的郵箱,使用確認電郵的連結來確認的地郵址。如果未能在收件箱找相關電郵指示,請檢查垃圾郵件箱。
updated: 你的帳號已經成功更新。
sessions:
diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml
index fdbde86995..ca01b16591 100644
--- a/config/locales/devise.zh-TW.yml
+++ b/config/locales/devise.zh-TW.yml
@@ -94,11 +94,6 @@ zh-TW:
updated_not_active: 您的密碼已成功變更。
registrations:
destroyed: 再見!您的帳號已成功取消,期待再相逢。
- signed_up: 歡迎!您已成功註冊。
- signed_up_but_inactive: 您已註冊成功,但由於您的帳號尚未啟用,我們暫時無法讓您登入。
- signed_up_but_locked: 您已註冊成功,但由於您的帳號已被鎖定,我們無法讓您登入。
- signed_up_but_pending: 包含驗證連結的訊息已寄到您的電子郵件信箱。按下此連結後我們將審核您的申請。核准後將通知您。
- signed_up_but_unconfirmed: 包含驗證連結的訊息已寄至您的電子郵件信箱。請前往連結以啟用帳號。若未收到請檢查垃圾郵件資料夾。
update_needs_confirmation: 已成功更新您的帳號,但仍需驗證您的新電子郵件地址。請檢查電子郵件信箱並前往確認連結來確認新電子郵件地址。若未收到請檢查垃圾郵件資料夾。
updated: 您的帳號已成功更新。
sessions:
From 796dd57e1b81f56f060e7a616350028179fc481b Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Mon, 9 Dec 2024 09:31:56 +0100
Subject: [PATCH 046/175] Change ability to navigate of unconfirmed users
(#33209)
---
app/controllers/application_controller.rb | 8 ++++++-
app/views/auth/registrations/new.html.haml | 2 --
app/views/auth/registrations/rules.html.haml | 2 --
app/views/auth/setup/show.html.haml | 22 ++++++++++----------
config/locales/en.yml | 4 ++--
spec/system/log_in_spec.rb | 2 +-
6 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 7a858ed059..1b071e8655 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -70,7 +70,13 @@ class ApplicationController < ActionController::Base
end
def require_functional!
- redirect_to edit_user_registration_path unless current_user.functional?
+ return if current_user.functional?
+
+ if current_user.confirmed?
+ redirect_to edit_user_registration_path
+ else
+ redirect_to auth_setup_path
+ end
end
def skip_csrf_meta_tags?
diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml
index 4864d81383..6b2e6edb2b 100644
--- a/app/views/auth/registrations/new.html.haml
+++ b/app/views/auth/registrations/new.html.haml
@@ -78,5 +78,3 @@
.actions
= f.button :button, @invite.present? ? t('auth.register') : sign_up_message, type: :submit
-
-.form-footer= render 'auth/shared/links'
diff --git a/app/views/auth/registrations/rules.html.haml b/app/views/auth/registrations/rules.html.haml
index 69459c0233..4b0159e862 100644
--- a/app/views/auth/registrations/rules.html.haml
+++ b/app/views/auth/registrations/rules.html.haml
@@ -27,5 +27,3 @@
- accept_path = @invite_code.present? ? public_invite_url(invite_code: @invite_code, accept: @accept_token) : new_user_registration_path(accept: @accept_token)
= link_to t('auth.rules.accept'), accept_path, class: 'button'
= link_to t('auth.rules.back'), root_path, class: 'button button-tertiary'
-
-.form-footer= render 'auth/shared/links'
diff --git a/app/views/auth/setup/show.html.haml b/app/views/auth/setup/show.html.haml
index 713f77470d..91654ca214 100644
--- a/app/views/auth/setup/show.html.haml
+++ b/app/views/auth/setup/show.html.haml
@@ -11,17 +11,17 @@
= render 'shared/error_messages', object: @user
- %p.lead
- %strong= t('auth.setup.link_not_received')
- %p.lead= t('auth.setup.email_below_hint_html')
+ %details
+ %summary.lead
+ %strong= t('auth.setup.link_not_received')
- .fields-group
- = f.input :email,
- hint: false,
- input_html: { 'aria-label': t('simple_form.labels.defaults.email'), autocomplete: 'off' },
- required: true
+ %p.lead= t('auth.setup.email_below_hint_html')
- .actions
- = f.button :button, t('auth.resend_confirmation'), type: :submit, class: 'button timer-button', disabled: true
+ .fields-group
+ = f.input :email,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.email'), autocomplete: 'off', placeholder: t('simple_form.labels.defaults.email') },
+ required: true
-.form-footer= render 'auth/shared/links'
+ .actions
+ = f.button :button, t('auth.resend_confirmation'), type: :submit, class: 'button timer-button', disabled: true
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 5253d2a65b..d8c8d95303 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1157,7 +1157,7 @@ en:
set_new_password: Set new password
setup:
email_below_hint_html: Check your spam folder, or request another one. You can correct your email address if it's wrong.
- email_settings_hint_html: Click the link we sent you to verify %{email}. We'll wait right here.
+ email_settings_hint_html: Click the link we sent to %{email} to begin using Mastodon. We'll wait right here.
link_not_received: Didn't get a link?
new_confirmation_instructions_sent: You will receive a new email with the confirmation link in a few minutes!
title: Check your inbox
@@ -1166,7 +1166,7 @@ en:
title: Login to %{domain}
sign_up:
manual_review: Sign-ups on %{domain} go through manual review by our moderators. To help us process your registration, write a bit about yourself and why you want an account on %{domain}.
- preamble: With an account on this Mastodon server, you'll be able to follow any other person on the network, regardless of where their account is hosted.
+ preamble: With an account on this Mastodon server, you'll be able to follow any other person on the fediverse, regardless of where their account is hosted.
title: Let's get you set up on %{domain}.
status:
account_status: Account status
diff --git a/spec/system/log_in_spec.rb b/spec/system/log_in_spec.rb
index f8765e8e1c..10869fd240 100644
--- a/spec/system/log_in_spec.rb
+++ b/spec/system/log_in_spec.rb
@@ -34,7 +34,7 @@ RSpec.describe 'Log in' do
it 'A unconfirmed user is able to log in' do
fill_in_auth_details(email, password)
- expect(subject).to have_css('div.admin-wrapper')
+ expect(subject).to have_css('.title', text: I18n.t('auth.setup.title'))
end
end
From ab133c5e30c9c3cfd0f949df80f7aa1b8f841b05 Mon Sep 17 00:00:00 2001
From: Claire
Date: Mon, 9 Dec 2024 10:09:00 +0100
Subject: [PATCH 047/175] Bump version to v4.3.2 (#33226)
---
CHANGELOG.md | 42 ++++++++++++++++++++++++++++++++++++++++++
docker-compose.yml | 6 +++---
2 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ebc166a48a..743cc36ef5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,48 @@
All notable changes to this project will be documented in this file.
+## [4.3.2] - 2024-12-03
+
+### Added
+
+- Add `tootctl feeds vacuum` (#33065 by @ClearlyClaire)
+- Add error message when user tries to follow their own account (#31910 by @lenikadali)
+- Add client_secret_expires_at to OAuth Applications (#30317 by @ThisIsMissEm)
+
+### Changed
+
+- Change design of Content Warnings and filters (#32543 by @ClearlyClaire)
+
+### Fixed
+
+- Fix processing incoming post edits with mentions to unresolvable accounts (#33129 by @ClearlyClaire)
+- Fix error when including multiple instances of `embed.js` (#33107 by @YKWeyer)
+- Fix inactive users' timelines being backfilled on follow and unsuspend (#33094 by @ClearlyClaire)
+- Fix direct inbox delivery pushing posts into inactive followers' timelines (#33067 by @ClearlyClaire)
+- Fix `TagFollow` records not being correctly handled in account operations (#33063 by @ClearlyClaire)
+- Fix pushing hashtag-followed posts to feeds of inactive users (#33018 by @Gargron)
+- Fix duplicate notifications in notification groups when using slow mode (#33014 by @ClearlyClaire)
+- Fix posts made in the future being allowed to trend (#32996 by @ClearlyClaire)
+- Fix uploading higher-than-wide GIF profile picture with libvips enabled (#32911 by @ClearlyClaire)
+- Fix domain attribution field having autocorrect and autocapitalize enabled (#32903 by @ClearlyClaire)
+- Fix titles being escaped twice (#32889 by @ClearlyClaire)
+- Fix list creation limit check (#32869 by @ClearlyClaire)
+- Fix error in `tootctl email_domain_blocks` when supplying `--with-dns-records` (#32863 by @mjankowski)
+- Fix `min_id` and `max_id` causing error in search API (#32857 by @Gargron)
+- Fix inefficiencies when processing removal of posts that use featured tags (#32787 by @ClearlyClaire)
+- Fix alt-text pop-in not using the translated description (#32766 by @ClearlyClaire)
+- Fix preview cards with long titles erroneously causing layout changes (#32678 by @ClearlyClaire)
+- Fix embed modal layout on mobile (#32641 by @DismalShadowX)
+- Fix and improve batch attachment deletion handling when using OpenStack Swift (#32637 by @hugogameiro)
+- Fix blocks not being applied on link timeline (#32625 by @tribela)
+- Fix follow counters being incorrectly changed (#32622 by @oneiros)
+- Fix 'unknown' media attachment type rendering (#32613 and #32713 by @ThisIsMissEm and @renatolond)
+- Fix tl language native name (#32606 by @seav)
+
+### Security
+
+- Update dependencies
+
## [4.3.1] - 2024-10-21
### Added
diff --git a/docker-compose.yml b/docker-compose.yml
index 6018b85a70..6048129318 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.1
+ image: ghcr.io/mastodon/mastodon:v4.3.2
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.1
+ image: ghcr.io/mastodon/mastodon-streaming:v4.3.2
restart: always
env_file: .env.production
command: node ./streaming/index.js
@@ -101,7 +101,7 @@ services:
sidekiq:
build: .
- image: ghcr.io/mastodon/mastodon:v4.3.1
+ image: ghcr.io/mastodon/mastodon:v4.3.2
restart: always
env_file: .env.production
command: bundle exec sidekiq
From bf7917482985f643debb59bb76e4fe24f59040e3 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Mon, 9 Dec 2024 10:19:00 +0100
Subject: [PATCH 048/175] Fix design of search bar on explore screen in light
theme in web UI (#33224)
---
app/javascript/styles/mastodon/components.scss | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 4af85d00ab..aa2c23b14c 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -8643,10 +8643,10 @@ noscript {
}
.explore__search-header {
- background: darken($ui-base-color, 4%);
justify-content: center;
align-items: center;
- padding: 15px;
+ padding: 16px;
+ padding-bottom: 8px;
.search {
width: 100%;
@@ -8655,7 +8655,7 @@ noscript {
.search__input {
border: 1px solid var(--background-border-color);
- padding: 10px;
+ padding: 12px;
padding-inline-end: 30px;
}
@@ -8664,8 +8664,8 @@ noscript {
}
.search .icon {
- top: 9px;
- inset-inline-end: 10px;
+ top: 12px;
+ inset-inline-end: 12px;
color: $dark-text-color;
}
}
From f646fb025959b7d1124907d806415ecad1acb0a2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 9 Dec 2024 09:19:58 +0000
Subject: [PATCH 049/175] Update dependency doorkeeper to v5.8.1 (#33225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
Gemfile.lock | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 8cbceae214..ccc8270ccd 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -199,7 +199,7 @@ GEM
activerecord (>= 4.2, < 9.0)
docile (1.4.1)
domain_name (0.6.20240107)
- doorkeeper (5.8.0)
+ doorkeeper (5.8.1)
railties (>= 5)
dotenv (3.1.4)
drb (2.2.1)
@@ -384,7 +384,7 @@ GEM
llhttp-ffi (0.5.0)
ffi-compiler (~> 1.0)
rake (~> 13.0)
- logger (1.6.1)
+ logger (1.6.2)
lograge (0.14.0)
actionpack (>= 4)
activesupport (>= 4)
@@ -409,7 +409,7 @@ GEM
mime-types-data (3.2024.1105)
mini_mime (1.1.5)
mini_portile2 (2.8.8)
- minitest (5.25.2)
+ minitest (5.25.4)
msgpack (1.7.5)
multi_json (1.15.0)
mutex_m (0.3.0)
@@ -579,7 +579,8 @@ GEM
activesupport (>= 7.0.0)
rack
railties (>= 7.0.0)
- psych (5.2.0)
+ psych (5.2.1)
+ date
stringio
public_suffix (6.0.1)
puma (6.5.0)
@@ -608,7 +609,7 @@ GEM
rack (< 3)
rack-test (2.1.0)
rack (>= 1.3)
- rackup (1.0.0)
+ rackup (1.0.1)
rack (< 3)
webrick
rails (7.2.2)
@@ -664,7 +665,7 @@ GEM
redlock (1.3.2)
redis (>= 3.0.0, < 6.0)
regexp_parser (2.9.2)
- reline (0.5.11)
+ reline (0.5.12)
io-console (~> 0.5)
request_store (1.6.0)
rack (>= 1.4)
@@ -837,7 +838,7 @@ GEM
unf_ext (0.0.9.1)
unicode-display_width (2.6.0)
uri (0.13.1)
- useragent (0.16.10)
+ useragent (0.16.11)
validate_email (0.1.6)
activemodel (>= 3.0)
mail (>= 2.2.5)
@@ -866,7 +867,7 @@ GEM
rack-proxy (>= 0.6.1)
railties (>= 5.2)
semantic_range (>= 2.3.0)
- webrick (1.9.0)
+ webrick (1.9.1)
websocket (1.2.11)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
From 7a2a345c0831f400ce5ed8252b121aba28697ae4 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 9 Dec 2024 09:20:28 +0000
Subject: [PATCH 050/175] New Crowdin Translations (automated) (#33210)
Co-authored-by: GitHub Actions
---
app/javascript/mastodon/locales/de.json | 2 +-
app/javascript/mastodon/locales/eo.json | 15 ++-
app/javascript/mastodon/locales/fa.json | 56 +++++++++-
app/javascript/mastodon/locales/fr-CA.json | 39 +++++--
app/javascript/mastodon/locales/fr.json | 47 +++++---
app/javascript/mastodon/locales/ga.json | 5 +
app/javascript/mastodon/locales/gl.json | 4 +-
app/javascript/mastodon/locales/ja.json | 54 +++++++--
app/javascript/mastodon/locales/nan.json | 15 +++
app/javascript/mastodon/locales/tt.json | 7 ++
config/locales/activerecord.ja.yml | 2 +
config/locales/an.yml | 1 -
config/locales/ar.yml | 2 -
config/locales/ast.yml | 1 -
config/locales/be.yml | 2 -
config/locales/bg.yml | 2 -
config/locales/ca.yml | 2 -
config/locales/cs.yml | 2 -
config/locales/cy.yml | 2 -
config/locales/da.yml | 2 -
config/locales/de.yml | 2 -
config/locales/devise.fil.yml | 104 ++++++++++++++++++
config/locales/el.yml | 121 ++++++++++++++++++++-
config/locales/en-GB.yml | 2 -
config/locales/eo.yml | 4 +-
config/locales/es-AR.yml | 2 -
config/locales/es-MX.yml | 2 -
config/locales/es.yml | 2 -
config/locales/et.yml | 2 -
config/locales/eu.yml | 2 -
config/locales/fa.yml | 1 -
config/locales/fi.yml | 2 -
config/locales/fil.yml | 25 +++++
config/locales/fo.yml | 2 -
config/locales/fr-CA.yml | 23 +++-
config/locales/fr.yml | 35 ++++--
config/locales/fy.yml | 2 -
config/locales/ga.yml | 3 +-
config/locales/gd.yml | 2 -
config/locales/gl.yml | 2 -
config/locales/he.yml | 3 +-
config/locales/hu.yml | 2 -
config/locales/hy.yml | 1 -
config/locales/ia.yml | 2 -
config/locales/id.yml | 1 -
config/locales/ie.yml | 2 -
config/locales/io.yml | 2 -
config/locales/is.yml | 2 -
config/locales/it.yml | 4 +-
config/locales/ja.yml | 3 +-
config/locales/kab.yml | 2 -
config/locales/ko.yml | 2 -
config/locales/ku.yml | 1 -
config/locales/lad.yml | 2 -
config/locales/lt.yml | 3 +-
config/locales/lv.yml | 2 -
config/locales/ms.yml | 2 -
config/locales/my.yml | 2 -
config/locales/nl.yml | 2 -
config/locales/nn.yml | 2 -
config/locales/no.yml | 2 -
config/locales/pl.yml | 2 -
config/locales/pt-BR.yml | 2 -
config/locales/pt-PT.yml | 2 -
config/locales/ru.yml | 2 -
config/locales/sco.yml | 1 -
config/locales/simple_form.eo.yml | 2 +-
config/locales/simple_form.es-MX.yml | 12 +-
config/locales/simple_form.fr-CA.yml | 5 +
config/locales/simple_form.fr.yml | 9 +-
config/locales/simple_form.ga.yml | 2 +
config/locales/sl.yml | 2 -
config/locales/sq.yml | 2 -
config/locales/sr-Latn.yml | 2 -
config/locales/sr.yml | 2 -
config/locales/sv.yml | 2 -
config/locales/th.yml | 2 -
config/locales/tr.yml | 2 -
config/locales/uk.yml | 2 -
config/locales/vi.yml | 2 -
config/locales/zh-CN.yml | 2 -
config/locales/zh-HK.yml | 2 -
config/locales/zh-TW.yml | 2 -
83 files changed, 532 insertions(+), 177 deletions(-)
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 52f297f604..6da8478c06 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -71,7 +71,7 @@
"account.unmute": "Stummschaltung von @{name} aufheben",
"account.unmute_notifications_short": "Stummschaltung der Benachrichtigungen aufheben",
"account.unmute_short": "Stummschaltung aufheben",
- "account_note.placeholder": "Notiz durch Klicken hinzufügen",
+ "account_note.placeholder": "Klicken, um Notiz hinzuzufügen",
"admin.dashboard.daily_retention": "Verweildauer der Benutzer*innen pro Tag nach der Registrierung",
"admin.dashboard.monthly_retention": "Verweildauer der Benutzer*innen pro Monat nach der Registrierung",
"admin.dashboard.retention.average": "Durchschnitt",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 17ca70548e..c09d403daa 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -10,7 +10,7 @@
"about.domain_blocks.suspended.title": "Suspendita",
"about.not_available": "Ĉi tiu informo ne estas disponebla ĉe ĉi tiu servilo.",
"about.powered_by": "Malcentrigita socia retejo pere de {mastodon}",
- "about.rules": "Regularo de la servilo",
+ "about.rules": "Reguloj de la servilo",
"account.account_note_header": "Personaj notoj",
"account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj",
"account.badges.bot": "Aŭtomata",
@@ -87,9 +87,14 @@
"alert.unexpected.title": "Aj!",
"alt_text_badge.title": "Alt-teksto",
"announcement.announcement": "Anonco",
+ "annual_report.summary.archetype.booster": "La Ĉasanto de Mojoso",
+ "annual_report.summary.archetype.lurker": "La vidanto",
+ "annual_report.summary.archetype.oracle": "La Orakolo",
"annual_report.summary.archetype.pollster": "La balotenketisto",
"annual_report.summary.archetype.replier": "La plej societema",
"annual_report.summary.followers.followers": "sekvantoj",
+ "annual_report.summary.followers.total": "{count} tute",
+ "annual_report.summary.here_it_is": "Jen via resumo de {year}:",
"annual_report.summary.highlighted_post.by_favourites": "plej ŝatata afiŝo",
"annual_report.summary.highlighted_post.by_reblogs": "plej diskonigita afiŝo",
"annual_report.summary.highlighted_post.by_replies": "afiŝo kun la plej multaj respondoj",
@@ -98,6 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "plej uzata kradvorto",
"annual_report.summary.most_used_hashtag.none": "Nenio",
"annual_report.summary.new_posts.new_posts": "novaj afiŝoj",
+ "annual_report.summary.percentile.text": "Tio metas vin en la plejde {domain} uzantoj.",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ni ne diros al Zamenhof.",
"annual_report.summary.thanks": "Dankon pro esti parto de Mastodon!",
"attachments_list.unprocessed": "(neprilaborita)",
@@ -233,8 +239,10 @@
"disabled_account_banner.text": "Via konto {disabledAccount} estas nune malvalidigita.",
"dismissable_banner.community_timeline": "Jen la plej novaj publikaj afiŝoj de uzantoj, kies kontojn gastigas {domain}.",
"dismissable_banner.dismiss": "Eksigi",
+ "dismissable_banner.explore_links": "Ĉi tiuj revuaĵoj plejkunhaviĝas en la fediverso hodiaŭ. Pli novaj revuaĵoj afiŝis de pli da homoj metis pli alte.",
"dismissable_banner.explore_statuses": "Ĉi tiuj afiŝoj populariĝas sur la fediverso hodiaŭ. Pli novaj afiŝoj kun pli da diskonigoj kaj stemuloj estas rangigitaj pli alte.",
"dismissable_banner.explore_tags": "Ĉi tiuj kradvortoj populariĝas sur la fediverso hodiaŭ. Kradvortoj, kiuj estas uzataj de pli malsamaj homoj, estas rangigitaj pli alte.",
+ "dismissable_banner.public_timeline": "Ĉi tiuj estas la plej ĵusaj publikaj afiŝoj de homoj en la fediverso, kiujn la homoj en {domain} sekvas.",
"domain_block_modal.block": "Bloki servilon",
"domain_block_modal.block_account_instead": "Bloki @{name} anstataŭe",
"domain_block_modal.they_can_interact_with_old_posts": "Homoj de ĉi tiu servilo povas interagi kun viaj malnovaj afiŝoj.",
@@ -358,6 +366,7 @@
"footer.status": "Stato",
"generic.saved": "Konservita",
"getting_started.heading": "Por komenci",
+ "hashtag.admin_moderation": "Malfermi fasadon de moderigado por #{name}",
"hashtag.column_header.tag_mode.all": "kaj {additional}",
"hashtag.column_header.tag_mode.any": "aŭ {additional}",
"hashtag.column_header.tag_mode.none": "sen {additional}",
@@ -442,7 +451,7 @@
"keyboard_shortcuts.notifications": "Malfermu la sciigajn kolumnon",
"keyboard_shortcuts.open_media": "Malfermu plurmedion",
"keyboard_shortcuts.pinned": "Malfermu alpinglitajn afiŝojn-liston",
- "keyboard_shortcuts.profile": "Malfermu la profilon de aŭtoro",
+ "keyboard_shortcuts.profile": "Malfermu la profilon de aŭtoroprofilo",
"keyboard_shortcuts.reply": "Respondu al afiŝo",
"keyboard_shortcuts.requests": "Malfermi la liston de petoj por sekvado",
"keyboard_shortcuts.search": "Enfokusigi la serĉbreton",
@@ -488,6 +497,7 @@
"lists.replies_policy.none": "Neniu",
"lists.save": "Konservi",
"lists.search": "Ŝerci",
+ "lists.show_replies_to": "Inkludi respondojn de listomembroj al",
"load_pending": "{count,plural, one {# nova elemento} other {# novaj elementoj}}",
"loading_indicator.label": "Ŝargado…",
"media_gallery.hide": "Kaŝi",
@@ -536,6 +546,7 @@
"notification.admin.report_statuses_other": "{name} raportis {target}",
"notification.admin.sign_up": "{name} kreis konton",
"notification.admin.sign_up.name_and_others": "{name} kaj {count, plural, one {# alia} other {# aliaj}} kreis konton",
+ "notification.annual_report.message": "Via {year} #Wrapstodon atendas! Malkovru viajn bonaĵojn kaj memorindajn momentojn en Mastodon!",
"notification.annual_report.view": "Vidu #Wrapstodon",
"notification.favourite": "{name} stelumis vian afiŝon",
"notification.favourite.name_and_others_with_link": "{name} kaj {count, plural, one {# alia} other {# aliaj}} ŝatis vian afiŝon",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 469d42a00c..dd523aacbc 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -87,7 +87,24 @@
"alert.unexpected.title": "ای وای!",
"alt_text_badge.title": "متن جایگزین",
"announcement.announcement": "اعلامیه",
+ "annual_report.summary.archetype.booster": "باحالیاب",
+ "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.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} خواهیم خواست که به تصمیم شما احترام بگذارد. با این حال، تضمینی برای رعایت آن وجود ندارد زیرا برخی کارسازها ممکن است بلوکها را بهطور متفاوتی مدیریت کنند. فرستههای عمومی ممکن است همچنان برای کاربران که وارد نشده قابل مشاهده باشند.",
@@ -111,6 +128,7 @@
"bundle_column_error.routing.body": "صفحهٔ درخواستی پیدا نشد. مطمئنید که نشانی را درست وارد کردهاید؟",
"bundle_column_error.routing.title": "۴۰۴",
"bundle_modal_error.close": "بستن",
+ "bundle_modal_error.message": "هنگام بار کردن این صفحه، اشتباهی رخ داد.",
"bundle_modal_error.retry": "تلاش دوباره",
"closed_registrations.other_server_instructions": "از آنجا که ماستودون نامتمرکز است، میتوانید حسابی روی کارسازی دیگر ساخته و همچنان با اینیکی در تعامل باشید.",
"closed_registrations_modal.description": "هماکنون امکان ساخت حساب روی {domain} وجود ندارد؛ ولی لطفاً به خاطر داشته باشید که برای استفاده از ماستودون، نیازی به داشتن حساب روی {domain} نیست.",
@@ -121,13 +139,16 @@
"column.blocks": "کاربران مسدود شده",
"column.bookmarks": "نشانکها",
"column.community": "خط زمانی محلی",
+ "column.create_list": "ایجاد سیاهه",
"column.direct": "اشارههای خصوصی",
"column.directory": "مرور نمایهها",
"column.domain_blocks": "دامنههای مسدود شده",
+ "column.edit_list": "ویرایش سیاهه",
"column.favourites": "برگزیدهها",
"column.firehose": "خوراکهای زنده",
"column.follow_requests": "درخواستهای پیگیری",
"column.home": "خانه",
+ "column.list_members": "مدیریت اعضای سیاهه",
"column.lists": "سیاههها",
"column.mutes": "کاربران خموش",
"column.notifications": "آگاهیها",
@@ -183,6 +204,9 @@
"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": "خروج؟",
@@ -198,6 +222,7 @@
"confirmations.unfollow.title": "ناپیگیری کاربر؟",
"content_warning.hide": "نهفتن فرسته",
"content_warning.show": "در هر صورت نشان داده شود",
+ "content_warning.show_more": "نمایش بیشتر",
"conversation.delete": "حذف گفتگو",
"conversation.mark_as_read": "علامتگذاری به عنوان خوانده شده",
"conversation.open": "دیدن گفتگو",
@@ -213,6 +238,10 @@
"disabled_account_banner.text": "حسابتان {disabledAccount} اکنون از کار افتاده.",
"dismissable_banner.community_timeline": "اینها جدیدترین فرستههای عمومی از افرادیند که حسابهایشان به دست {domain} میزبانی میشود.",
"dismissable_banner.dismiss": "دور انداختن",
+ "dismissable_banner.explore_links": "امروز این روایتهای خبری بیشتر روی وب اجتماعی همرسانی میشوند. روایتهای خبری جدیدتری که به دست افراد بیشتری فرستاده شدهاند، بالاتر قرار گرفتهاند.",
+ "dismissable_banner.explore_statuses": "امروز این فرستهها روی وب اجتماعی جذّابند. فرستههای جدیدتری که بیشتر برگزیده و تقویت شده باشند، بالاتر قرار گرفتهاند.",
+ "dismissable_banner.explore_tags": "امروز این برچسبها روی وب اجتماعی جذّابند. برچسبهایی که به دست افراد بیشتری استفاده شده باشند، بالاتر قرار گرفتهاند.",
+ "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": "افزارد روی این کراساز میتوانند با فرستههای قدیمیتان تعامل داشته باشند.",
@@ -270,6 +299,7 @@
"empty_column.home": "خط زمانی خانگیتان خالی است! برای پر کردنش، افراد بیشتری را پی بگیرید. {suggestions}",
"empty_column.list": "هنوز چیزی در این سیاهه نیست. هنگامی که اعضایش فرستههای جدیدی بفرستند، اینجا ظاهر خواهند شد.",
"empty_column.mutes": "هنوز هیچ کاربری را خموش نکردهاید.",
+ "empty_column.notification_requests": "همه چیز تمیز است! هیچچیزی اینجا نیست. هنگامی که آگاهیهای جدیدی دریافت کنید، بسته به تنظیماتتان اینجا ظاهر خواهند شد.",
"empty_column.notifications": "هنوز هیچ آگاهیآی ندارید. هنگامی که دیگران با شما برهمکنش داشته باشند،اینحا خواهید دیدش.",
"empty_column.public": "اینجا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران کارسازهای دیگر را پیگیری کنید تا اینجا پُر شود",
"error.unexpected_crash.explanation": "به خاطر اشکالی در کدهای ما یا ناسازگاری با مرورگر شما، این صفحه به درستی نمایش نیافت.",
@@ -300,6 +330,7 @@
"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, =0 {هیچکسی} one {فردی} other {# نفر}} که ممکن است بشناسید",
"filtered_notifications_banner.title": "آگاهیهای پالوده",
"firehose.all": "همه",
@@ -334,6 +365,7 @@
"footer.status": "وضعیت",
"generic.saved": "ذخیره شده",
"getting_started.heading": "آغاز کنید",
+ "hashtag.admin_moderation": "گشودن میانای نظارت برای #{name}",
"hashtag.column_header.tag_mode.all": "و {additional}",
"hashtag.column_header.tag_mode.any": "یا {additional}",
"hashtag.column_header.tag_mode.none": "بدون {additional}",
@@ -375,6 +407,7 @@
"interaction_modal.description.follow": "با حسابی روی ماستودون میتوانید {name} را برای دریافت فرستههایش در خوراک خانگیتان دنبال کنید.",
"interaction_modal.description.reblog": "با حسابی روی ماستودون میتوانید این فرسته را با پیگیران خودتان همرسانی کنید.",
"interaction_modal.description.reply": "با حسابی روی ماستودون میتوانید به این فرسته پاسخ دهید.",
+ "interaction_modal.description.vote": "با حسابی روی ماستودون میتوانید در این نظرسنجی شرکت کنید.",
"interaction_modal.login.action": "رفتن به خانه",
"interaction_modal.login.prompt": "دامنهٔ کارساز شخصیتان چون mastodon.social",
"interaction_modal.no_account_yet": "در ماستودون نیست؟",
@@ -386,6 +419,7 @@
"interaction_modal.title.follow": "پیگیری {name}",
"interaction_modal.title.reblog": "تقویت فرستهٔ {name}",
"interaction_modal.title.reply": "پاسخ به فرستهٔ {name}",
+ "interaction_modal.title.vote": "رأی دادن در نظرسنجی {name}",
"intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
"intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
"intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}",
@@ -433,13 +467,31 @@
"link_preview.author": "از {name}",
"link_preview.more_from_author": "بیشتر از {name}",
"link_preview.shares": "{count, plural, one {{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": "اعضای سیاهه",
+ "lists.list_members_count": "{count, plural,one {# عضو}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": "جستوجو",
"load_pending": "{count, plural, one {# مورد جدید} other {# مورد جدید}}",
"loading_indicator.label": "در حال بارگذاری…",
"media_gallery.hide": "نهفتن",
@@ -485,6 +537,8 @@
"notification.admin.report_statuses_other": "{name}، {target} را گزارش داد",
"notification.admin.sign_up": "{name} ثبت نام کرد",
"notification.admin.sign_up.name_and_others": "{name} و {count, plural, one {# نفر دیگر} 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, one {# نفر دیگر} other {# نفر دیگر}} فرستهتان را برگزیدند",
"notification.follow": "{name} پیگیرتان شد",
@@ -770,7 +824,7 @@
"status.sensitive_warning": "محتوای حساس",
"status.share": "همرسانی",
"status.show_less_all": "نمایش کمتر همه",
- "status.show_more_all": "نمایش بیشتر همه",
+ "status.show_more_all": "نمایش بیشتر همه",
"status.show_original": "نمایش اصلی",
"status.title.with_attachments": "{user} {attachmentCount, plural, one {یک پیوست} other {{attachmentCount} پیوست}} فرستاد",
"status.translate": "ترجمه",
diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json
index 7c87a36e54..327474a1e2 100644
--- a/app/javascript/mastodon/locales/fr-CA.json
+++ b/app/javascript/mastodon/locales/fr-CA.json
@@ -85,10 +85,13 @@
"alert.rate_limited.title": "Débit limité",
"alert.unexpected.message": "Une erreur inattendue s’est produite.",
"alert.unexpected.title": "Oups!",
- "alt_text_badge.title": "Texte Alt",
+ "alt_text_badge.title": "Texte alternatif",
"announcement.announcement": "Annonce",
+ "annual_report.summary.archetype.booster": "Le chasseur de sang-froid",
"annual_report.summary.archetype.lurker": "Le faucheur",
"annual_report.summary.archetype.oracle": "L’oracle",
+ "annual_report.summary.archetype.pollster": "Le sondeur",
+ "annual_report.summary.archetype.replier": "Le papillon social",
"annual_report.summary.followers.followers": "abonné·e·s",
"annual_report.summary.followers.total": "{count} au total",
"annual_report.summary.here_it_is": "Voici votre récap de {year} :",
@@ -99,7 +102,8 @@
"annual_report.summary.most_used_app.most_used_app": "appli la plus utilisée",
"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 posts",
+ "annual_report.summary.new_posts.new_posts": "nouveaux messages",
+ "annual_report.summary.percentile.text": "Cela vous place dans le topdes 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é)",
@@ -108,10 +112,10 @@
"block_modal.show_less": "Afficher moins",
"block_modal.show_more": "Afficher plus",
"block_modal.they_cant_mention": "Il ne peut pas vous mentionner ou vous suivre.",
- "block_modal.they_cant_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
+ "block_modal.they_cant_see_posts": "Il peut toujours voir vos messages, mais vous ne verrez pas les siens.",
"block_modal.they_will_know": "Il peut voir qu'il est bloqué.",
- "block_modal.title": "Bloquer l'utilisateur·rice ?",
- "block_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
+ "block_modal.title": "Bloquer le compte ?",
+ "block_modal.you_wont_see_mentions": "Vous ne verrez pas les messages qui le mentionne.",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour sauter ceci la prochaine fois",
"boost_modal.reblog": "Booster le message ?",
"boost_modal.undo_reblog": "Annuler le boost du message ?",
@@ -125,6 +129,7 @@
"bundle_column_error.routing.body": "La page demandée est introuvable. Êtes-vous sûr que l’URL dans la barre d’adresse est correcte?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Fermer",
+ "bundle_modal_error.message": "Un problème s'est produit lors du chargement de cet écran.",
"bundle_modal_error.retry": "Réessayer",
"closed_registrations.other_server_instructions": "Puisque Mastodon est décentralisé, vous pouvez créer un compte sur un autre serveur et interagir quand même avec celui-ci.",
"closed_registrations_modal.description": "Créer un compte sur {domain} est présentement impossible, néanmoins souvenez-vous que vous n'avez pas besoin d'un compte spécifiquement sur {domain} pour utiliser Mastodon.",
@@ -191,7 +196,7 @@
"confirmations.block.confirm": "Bloquer",
"confirmations.delete.confirm": "Supprimer",
"confirmations.delete.message": "Voulez-vous vraiment supprimer cette publication?",
- "confirmations.delete.title": "Supprimer la publication ?",
+ "confirmations.delete.title": "Supprimer le message ?",
"confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?",
"confirmations.delete_list.title": "Supprimer la liste ?",
@@ -200,6 +205,9 @@
"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 ?",
"confirmations.logout.confirm": "Se déconnecter",
"confirmations.logout.message": "Voulez-vous vraiment vous déconnecter?",
"confirmations.logout.title": "Se déconnecter ?",
@@ -214,8 +222,8 @@
"confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name}?",
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
"content_warning.hide": "Masquer le message",
- "content_warning.show": "Afficher quand même",
- "content_warning.show_more": "Déplier",
+ "content_warning.show": "Montrer quand même",
+ "content_warning.show_more": "Montrer plus",
"conversation.delete": "Supprimer cette conversation",
"conversation.mark_as_read": "Marquer comme lu",
"conversation.open": "Afficher cette conversation",
@@ -231,15 +239,19 @@
"disabled_account_banner.text": "Votre compte {disabledAccount} est présentement désactivé.",
"dismissable_banner.community_timeline": "Voici les publications publiques les plus récentes de personnes dont les comptes sont hébergés par {domain}.",
"dismissable_banner.dismiss": "Rejeter",
+ "dismissable_banner.explore_links": "Ces nouvelles sont les plus partagées sur le fediverse aujourd'hui. Les nouvelles plus récentes postées par un plus grand nombre de personnes sont mieux classées.",
+ "dismissable_banner.explore_statuses": "Ces messages provenant de l'ensemble du fediverse gagnent en popularité aujourd'hui. Les messages les plus récents qui ont reçu le plus d'encouragements et de favoris sont mieux classés.",
+ "dismissable_banner.explore_tags": "Ces hashtags gagnent du terrain sur le fediverse aujourd'hui. Les hashtags qui sont utilisés par un plus grand nombre de personnes différentes sont mieux classés.",
+ "dismissable_banner.public_timeline": "Il s'agit des messages publics les plus récents publiés par des personnes sur le fediverse que les personnes sur {domain} suivent.",
"domain_block_modal.block": "Bloquer le serveur",
"domain_block_modal.block_account_instead": "Bloquer @{name} à la place",
- "domain_block_modal.they_can_interact_with_old_posts": "Les personnes de ce serveur peuvent interagir avec vos anciennes publications.",
+ "domain_block_modal.they_can_interact_with_old_posts": "Les personnes de ce serveur peuvent interagir avec vos anciens messages.",
"domain_block_modal.they_cant_follow": "Personne de ce serveur ne peut vous suivre.",
"domain_block_modal.they_wont_know": "Il ne saura pas qu'il a été bloqué.",
"domain_block_modal.title": "Bloquer le domaine ?",
"domain_block_modal.you_will_lose_num_followers": "Vous allez perdre {followersCount, plural, one {{followersCountDisplay} abonné·e} other {{followersCountDisplay} abonné·e·s}} et {followingCount, plural, one {{followingCountDisplay} personne que vous suivez} other {{followingCountDisplay} personnes que vous suivez}}.",
"domain_block_modal.you_will_lose_relationships": "Vous allez perdre tous les abonné·e·s et les personnes que vous suivez sur ce serveur.",
- "domain_block_modal.you_wont_see_posts": "Vous ne verrez plus les publications ou les notifications des utilisateur·rice·s de ce serveur.",
+ "domain_block_modal.you_wont_see_posts": "Vous ne verrez plus les messages ou les notifications des utilisateur·rice·s de ce serveur.",
"domain_pill.activitypub_lets_connect": "Cela vous permet de vous connecter et d'interagir avec les autres non seulement sur Mastodon, mais également sur d'autres applications de réseaux sociaux.",
"domain_pill.activitypub_like_language": "ActivityPub est comme une langue que Mastodon utilise pour communiquer avec les autres réseaux sociaux.",
"domain_pill.server": "Serveur",
@@ -354,6 +366,7 @@
"footer.status": "État",
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
+ "hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}",
"hashtag.column_header.tag_mode.all": "et {additional}",
"hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sans {additional}",
@@ -472,6 +485,7 @@
"lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.",
"lists.find_users_to_add": "Trouver des utilisateurs à ajouter",
"lists.list_members": "Lister les membres",
+ "lists.list_members_count": "{count, plural, one {# member} other {# members}}",
"lists.list_name": "Nom de la liste",
"lists.new_list_name": "Nom de la nouvelle liste",
"lists.no_lists_yet": "Aucune liste pour l'instant.",
@@ -482,6 +496,8 @@
"lists.replies_policy.list": "Membres de la liste",
"lists.replies_policy.none": "Personne",
"lists.save": "Enregistrer",
+ "lists.search": "Recherche",
+ "lists.show_replies_to": "Inclure les réponses des membres de la liste à",
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
"loading_indicator.label": "Chargement…",
"media_gallery.hide": "Masquer",
@@ -530,6 +546,7 @@
"notification.admin.report_statuses_other": "{name} a signalé {target}",
"notification.admin.sign_up": "{name} s'est inscrit·e",
"notification.admin.sign_up.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont inscrit",
+ "notification.annual_report.message": "Votre {year} #Wrapstodon attend ! Dévoilez les moments forts et mémorables de votre année sur Mastodon !",
"notification.annual_report.view": "Voir #Wrapstodon",
"notification.favourite": "{name} a ajouté votre publication à ses favoris",
"notification.favourite.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont mis votre message en favori",
@@ -641,6 +658,7 @@
"onboarding.follows.done": "Terminé",
"onboarding.follows.empty": "Malheureusement, aucun résultat ne peut être affiché pour le moment. Vous pouvez essayer de rechercher ou de parcourir la page \"Explorer\" pour trouver des personnes à suivre, ou réessayer plus tard.",
"onboarding.follows.search": "Recherche",
+ "onboarding.follows.title": "Suivre des personnes pour commencer",
"onboarding.profile.discoverable": "Rendre mon profil découvrable",
"onboarding.profile.discoverable_hint": "Lorsque vous acceptez d'être découvert sur Mastodon, vos messages peuvent apparaître dans les résultats de recherche et les tendances, et votre profil peut être suggéré à des personnes ayant des intérêts similaires aux vôtres.",
"onboarding.profile.display_name": "Nom affiché",
@@ -860,6 +878,7 @@
"upload_form.drag_and_drop.on_drag_cancel": "Le glissement a été annulé. La pièce jointe {item} n'a pas été ajoutée.",
"upload_form.drag_and_drop.on_drag_end": "La pièce jointe du média {item} a été déplacée.",
"upload_form.drag_and_drop.on_drag_over": "La pièce jointe du média {item} a été déplacée.",
+ "upload_form.drag_and_drop.on_drag_start": "A récupéré la pièce jointe {item}.",
"upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette",
"upload_form.video_description": "Décrire pour les personnes ayant des problèmes de vue ou d'audition",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index ea7850ab60..11334761a3 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -85,10 +85,13 @@
"alert.rate_limited.title": "Nombre de requêtes limité",
"alert.unexpected.message": "Une erreur inattendue s’est produite.",
"alert.unexpected.title": "Oups !",
- "alt_text_badge.title": "Texte Alt",
+ "alt_text_badge.title": "Texte alternatif",
"announcement.announcement": "Annonce",
+ "annual_report.summary.archetype.booster": "Le chasseur de sang-froid",
"annual_report.summary.archetype.lurker": "Le faucheur",
"annual_report.summary.archetype.oracle": "L’oracle",
+ "annual_report.summary.archetype.pollster": "Le sondeur",
+ "annual_report.summary.archetype.replier": "Le papillon social",
"annual_report.summary.followers.followers": "abonné·e·s",
"annual_report.summary.followers.total": "{count} au total",
"annual_report.summary.here_it_is": "Voici votre récap de {year} :",
@@ -99,7 +102,8 @@
"annual_report.summary.most_used_app.most_used_app": "appli la plus utilisée",
"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 posts",
+ "annual_report.summary.new_posts.new_posts": "nouveaux messages",
+ "annual_report.summary.percentile.text": "Cela vous place dans le topdes 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é)",
@@ -108,10 +112,10 @@
"block_modal.show_less": "Afficher moins",
"block_modal.show_more": "Afficher plus",
"block_modal.they_cant_mention": "Il ne peut pas vous mentionner ou vous suivre.",
- "block_modal.they_cant_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
+ "block_modal.they_cant_see_posts": "Il peut toujours voir vos messages, mais vous ne verrez pas les siens.",
"block_modal.they_will_know": "Il peut voir qu'il est bloqué.",
- "block_modal.title": "Bloquer l'utilisateur·rice ?",
- "block_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
+ "block_modal.title": "Bloquer le compte ?",
+ "block_modal.you_wont_see_mentions": "Vous ne verrez pas les messages qui le mentionne.",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois",
"boost_modal.reblog": "Booster le message ?",
"boost_modal.undo_reblog": "Annuler le boost du message ?",
@@ -125,6 +129,7 @@
"bundle_column_error.routing.body": "La page demandée est introuvable. Êtes-vous sûr que l’URL dans la barre d’adresse est correcte ?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Fermer",
+ "bundle_modal_error.message": "Un problème s'est produit lors du chargement de cet écran.",
"bundle_modal_error.retry": "Réessayer",
"closed_registrations.other_server_instructions": "Puisque Mastodon est décentralisé, vous pouvez créer un compte sur un autre serveur et interagir quand même avec celui-ci.",
"closed_registrations_modal.description": "Créer un compte sur {domain} est actuellement impossible, néanmoins souvenez-vous que vous n'avez pas besoin d'un compte spécifiquement sur {domain} pour utiliser Mastodon.",
@@ -181,7 +186,7 @@
"compose_form.poll.switch_to_single": "Modifier le sondage pour autoriser qu'un seul choix",
"compose_form.poll.type": "Style",
"compose_form.publish": "Publier",
- "compose_form.publish_form": "Nouvelle publication",
+ "compose_form.publish_form": "Nouveau message",
"compose_form.reply": "Répondre",
"compose_form.save_changes": "Mettre à jour",
"compose_form.spoiler.marked": "Enlever l’avertissement de contenu",
@@ -191,7 +196,7 @@
"confirmations.block.confirm": "Bloquer",
"confirmations.delete.confirm": "Supprimer",
"confirmations.delete.message": "Voulez-vous vraiment supprimer ce message ?",
- "confirmations.delete.title": "Supprimer la publication ?",
+ "confirmations.delete.title": "Supprimer le message ?",
"confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste ?",
"confirmations.delete_list.title": "Supprimer la liste ?",
@@ -200,12 +205,15 @@
"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 ?",
"confirmations.logout.confirm": "Se déconnecter",
"confirmations.logout.message": "Voulez-vous vraiment vous déconnecter ?",
"confirmations.logout.title": "Se déconnecter ?",
"confirmations.mute.confirm": "Masquer",
"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 partages ainsi que ses mises en favori seront perdus et ses réponses seront orphelines.",
+ "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 ?",
@@ -214,8 +222,8 @@
"confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name} ?",
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
"content_warning.hide": "Masquer le message",
- "content_warning.show": "Afficher quand même",
- "content_warning.show_more": "Déplier",
+ "content_warning.show": "Montrer quand même",
+ "content_warning.show_more": "Montrer plus",
"conversation.delete": "Supprimer la conversation",
"conversation.mark_as_read": "Marquer comme lu",
"conversation.open": "Afficher la conversation",
@@ -231,15 +239,19 @@
"disabled_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé.",
"dismissable_banner.community_timeline": "Voici les messages publics les plus récents des comptes hébergés par {domain}.",
"dismissable_banner.dismiss": "Rejeter",
+ "dismissable_banner.explore_links": "Ces nouvelles sont les plus partagées sur le fediverse aujourd'hui. Les nouvelles plus récentes postées par un plus grand nombre de personnes sont mieux classées.",
+ "dismissable_banner.explore_statuses": "Ces messages provenant de l'ensemble du fediverse gagnent en popularité aujourd'hui. Les messages les plus récents qui ont reçu le plus d'encouragements et de favoris sont mieux classés.",
+ "dismissable_banner.explore_tags": "Ces hashtags gagnent du terrain sur le fediverse aujourd'hui. Les hashtags qui sont utilisés par un plus grand nombre de personnes différentes sont mieux classés.",
+ "dismissable_banner.public_timeline": "Il s'agit des messages publics les plus récents publiés par des personnes sur le fediverse que les personnes sur {domain} suivent.",
"domain_block_modal.block": "Bloquer le serveur",
"domain_block_modal.block_account_instead": "Bloquer @{name} à la place",
- "domain_block_modal.they_can_interact_with_old_posts": "Les personnes de ce serveur peuvent interagir avec vos anciennes publications.",
+ "domain_block_modal.they_can_interact_with_old_posts": "Les personnes de ce serveur peuvent interagir avec vos anciens messages.",
"domain_block_modal.they_cant_follow": "Personne de ce serveur ne peut vous suivre.",
"domain_block_modal.they_wont_know": "Il ne saura pas qu'il a été bloqué.",
"domain_block_modal.title": "Bloquer le domaine ?",
"domain_block_modal.you_will_lose_num_followers": "Vous allez perdre {followersCount, plural, one {{followersCountDisplay} abonné·e} other {{followersCountDisplay} abonné·e·s}} et {followingCount, plural, one {{followingCountDisplay} personne que vous suivez} other {{followingCountDisplay} personnes que vous suivez}}.",
"domain_block_modal.you_will_lose_relationships": "Vous allez perdre tous les abonné·e·s et les personnes que vous suivez sur ce serveur.",
- "domain_block_modal.you_wont_see_posts": "Vous ne verrez plus les publications ou les notifications des utilisateur·rice·s de ce serveur.",
+ "domain_block_modal.you_wont_see_posts": "Vous ne verrez plus les messages ou les notifications des utilisateur·rice·s de ce serveur.",
"domain_pill.activitypub_lets_connect": "Cela vous permet de vous connecter et d'interagir avec les autres non seulement sur Mastodon, mais également sur d'autres applications de réseaux sociaux.",
"domain_pill.activitypub_like_language": "ActivityPub est comme une langue que Mastodon utilise pour communiquer avec les autres réseaux sociaux.",
"domain_pill.server": "Serveur",
@@ -354,6 +366,7 @@
"footer.status": "État",
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
+ "hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}",
"hashtag.column_header.tag_mode.all": "et {additional}",
"hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sans {additional}",
@@ -472,6 +485,7 @@
"lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.",
"lists.find_users_to_add": "Trouver des utilisateurs à ajouter",
"lists.list_members": "Lister les membres",
+ "lists.list_members_count": "{count, plural, one {# member} other {# members}}",
"lists.list_name": "Nom de la liste",
"lists.new_list_name": "Nom de la nouvelle liste",
"lists.no_lists_yet": "Aucune liste pour l'instant.",
@@ -482,6 +496,8 @@
"lists.replies_policy.list": "Membres de la liste",
"lists.replies_policy.none": "Personne",
"lists.save": "Enregistrer",
+ "lists.search": "Recherche",
+ "lists.show_replies_to": "Inclure les réponses des membres de la liste à",
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
"loading_indicator.label": "Chargement…",
"media_gallery.hide": "Masquer",
@@ -530,6 +546,7 @@
"notification.admin.report_statuses_other": "{name} a signalé {target}",
"notification.admin.sign_up": "{name} s'est inscrit",
"notification.admin.sign_up.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont inscrit",
+ "notification.annual_report.message": "Votre {year} #Wrapstodon attend ! Dévoilez les moments forts et mémorables de votre année sur Mastodon !",
"notification.annual_report.view": "Voir #Wrapstodon",
"notification.favourite": "{name} a ajouté votre message à ses favoris",
"notification.favourite.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont mis votre message en favori",
@@ -641,6 +658,7 @@
"onboarding.follows.done": "Terminé",
"onboarding.follows.empty": "Malheureusement, aucun résultat ne peut être affiché pour le moment. Vous pouvez essayer d'utiliser la recherche ou parcourir la page de découverte pour trouver des personnes à suivre, ou réessayez plus tard.",
"onboarding.follows.search": "Recherche",
+ "onboarding.follows.title": "Suivre des personnes pour commencer",
"onboarding.profile.discoverable": "Rendre mon profil découvrable",
"onboarding.profile.discoverable_hint": "Lorsque vous acceptez d'être découvert sur Mastodon, vos messages peuvent apparaître dans les résultats de recherche et les tendances, et votre profil peut être suggéré à des personnes ayant des intérêts similaires aux vôtres.",
"onboarding.profile.display_name": "Nom affiché",
@@ -733,7 +751,7 @@
"report.thanks.title": "Vous ne voulez pas voir cela ?",
"report.thanks.title_actionable": "Merci pour votre signalement, nous allons investiguer.",
"report.unfollow": "Ne plus suivre @{name}",
- "report.unfollow_explanation": "Vous êtes abonné à ce compte. Pour ne plus voir ses publications dans votre fil principal, retirez-le de votre liste d'abonnements.",
+ "report.unfollow_explanation": "Vous êtes abonné à ce compte. Pour ne plus voir ses messages dans votre fil principal, retirez-le de votre liste d'abonnements.",
"report_notification.attached_statuses": "{count, plural, one {{count} message lié} other {{count} messages liés}}",
"report_notification.categories.legal": "Légal",
"report_notification.categories.legal_sentence": "contenu illégal",
@@ -750,7 +768,7 @@
"search.quick_action.go_to_account": "Aller au profil {x}",
"search.quick_action.go_to_hashtag": "Aller au hashtag {x}",
"search.quick_action.open_url": "Ouvrir l'URL dans Mastodon",
- "search.quick_action.status_search": "Publications correspondant à {x}",
+ "search.quick_action.status_search": "Messages correspondant à {x}",
"search.search_or_paste": "Rechercher ou saisir une URL",
"search_popout.full_text_search_disabled_message": "Non disponible sur {domain}.",
"search_popout.full_text_search_logged_out_message": "Disponible uniquement lorsque vous êtes connecté.",
@@ -860,6 +878,7 @@
"upload_form.drag_and_drop.on_drag_cancel": "Le glissement a été annulé. La pièce jointe {item} n'a pas été ajoutée.",
"upload_form.drag_and_drop.on_drag_end": "La pièce jointe du média {item} a été déplacée.",
"upload_form.drag_and_drop.on_drag_over": "La pièce jointe du média {item} a été déplacée.",
+ "upload_form.drag_and_drop.on_drag_start": "A récupéré la pièce jointe {item}.",
"upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette",
"upload_form.video_description": "Décrire pour les personnes ayant des problèmes de vue ou d'audition",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 50b0c7d437..ca136274a6 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -103,6 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag is mó a úsáidtear",
"annual_report.summary.most_used_hashtag.none": "Dada",
"annual_report.summary.new_posts.new_posts": "postanna nua",
+ "annual_report.summary.percentile.text": "Cuireann sé sin i mbarr úsáideoirí {domain}. thú",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ní inseoidh muid do Bernie.",
"annual_report.summary.thanks": "Go raibh maith agat as a bheith mar chuid de Mastodon!",
"attachments_list.unprocessed": "(neamhphróiseáilte)",
@@ -204,6 +205,9 @@
"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?",
"confirmations.logout.confirm": "Logáil amach",
"confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?",
"confirmations.logout.title": "Logáil Amach?",
@@ -492,6 +496,7 @@
"lists.replies_policy.list": "Baill an liosta",
"lists.replies_policy.none": "Duine ar bith",
"lists.save": "Sábháil",
+ "lists.search": "Cuardach",
"lists.show_replies_to": "Cuir san áireamh freagraí ó bhaill an liosta go",
"load_pending": "{count, plural, one {# mír nua} two {# mír nua} few {# mír nua} many {# mír nua} other {# mír nua}}",
"loading_indicator.label": "Á lódáil…",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index e43ed157b3..ceb9901668 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -413,7 +413,7 @@
"interaction_modal.description.reblog": "Cunha conta en Mastodon, poderás promover esta publicación para compartila con quen te siga.",
"interaction_modal.description.reply": "Cunha conta en Mastodon, poderás responder a esta publicación.",
"interaction_modal.description.vote": "Podes votar nesta enquisa se tes unha conta en Mastodon.",
- "interaction_modal.login.action": "Lévame ao inicio",
+ "interaction_modal.login.action": "Seguir desde alá",
"interaction_modal.login.prompt": "Dominio do teu servidor de inicio, ex. mastodon.social",
"interaction_modal.no_account_yet": "Aínda non tes unha conta?",
"interaction_modal.on_another_server": "Nun servidor diferente",
@@ -684,7 +684,7 @@
"poll_button.remove_poll": "Eliminar enquisa",
"privacy.change": "Axustar privacidade",
"privacy.direct.long": "Todas as mencionadas na publicación",
- "privacy.direct.short": "Persoas concretas",
+ "privacy.direct.short": "Persoas mencionadas",
"privacy.private.long": "Só para seguidoras",
"privacy.private.short": "Seguidoras",
"privacy.public.long": "Para todas dentro e fóra de Mastodon",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index a8894707b0..c72975d8ca 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -101,12 +101,14 @@
"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": "Mastodonの一員になってくれてありがとう!",
"attachments_list.unprocessed": "(未処理)",
"audio.hide": "音声を閉じる",
- "block_modal.remote_users_caveat": "このサーバーはあなたのブロックの意思を尊重するように {domain} へ通知します。しかしながら、ブロックの扱い方はサーバーによってさまざまで、相手のサーバーは必ずしもこのブロックを適切に取り扱うものではないことに留意が必要です。また、あなたの公開投稿はサーバーからログアウトすれば誰からも見ることができます。",
+ "block_modal.remote_users_caveat": "このサーバーはあなたのブロックの意思を尊重するように {domain} へ通知します。しかし、サーバーによってはブロック機能の扱いが異なる場合もありえるため、相手のサーバー側で求める通りの処理が行われる確証はありません。また、公開投稿はユーザーがログアウト状態であれば閲覧できる可能性があります。",
"block_modal.show_less": "注意事項を閉じる",
"block_modal.show_more": "注意事項",
"block_modal.they_cant_mention": "相手はあなたへの返信やフォローができなくなります。",
@@ -127,6 +129,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": "Mastodonは分散型なので他のサーバーにアカウントを作ってもこのサーバーとやり取りできます。",
"closed_registrations_modal.description": "現在{domain}でアカウント作成はできませんがMastodonは{domain}のアカウントでなくても利用できます。",
@@ -137,13 +140,16 @@
"column.blocks": "ブロックしたユーザー",
"column.bookmarks": "ブックマーク",
"column.community": "ローカルタイムライン",
+ "column.create_list": "リストを作成",
"column.direct": "非公開の返信",
"column.directory": "ディレクトリ",
"column.domain_blocks": "ブロックしたドメイン",
+ "column.edit_list": "リストを編集",
"column.favourites": "お気に入り",
"column.firehose": "リアルタイムフィード",
"column.follow_requests": "フォローリクエスト",
"column.home": "ホーム",
+ "column.list_members": "リストのメンバーを管理",
"column.lists": "リスト",
"column.mutes": "ミュートしたユーザー",
"column.notifications": "通知",
@@ -156,6 +162,7 @@
"column_header.pin": "ピン留めする",
"column_header.show_settings": "設定を表示",
"column_header.unpin": "ピン留めを外す",
+ "column_search.cancel": "キャンセル",
"column_subheading.settings": "設定",
"community.column_settings.local_only": "ローカルのみ表示",
"community.column_settings.media_only": "メディアのみ表示",
@@ -198,6 +205,9 @@
"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": "ログアウトしようとしています",
@@ -229,6 +239,10 @@
"disabled_account_banner.text": "あなたのアカウント『{disabledAccount}』は現在無効になっています。",
"dismissable_banner.community_timeline": "これらは{domain}がホストしている人たちの最新の公開投稿です。",
"dismissable_banner.dismiss": "閉じる",
+ "dismissable_banner.explore_links": "Fediverseで今日話題になっているニュースです。記事が新しく、たくさんのユーザーから投稿があるものほど上位に表示されます。",
+ "dismissable_banner.explore_statuses": "Fediverse全体の投稿で今日特に注目が高まっているものです。投稿日時が新しく、ブーストやお気に入りが多いほど上位に表示されます。",
+ "dismissable_banner.explore_tags": "Fediverseで今日特に注目が高まっているハッシュタグです。たくさんのユーザーに使われたタグほど上位に表示されます。",
+ "dismissable_banner.public_timeline": "{domain}のユーザーがフォローしているFediverseユーザーによる最近の公開投稿です。",
"domain_block_modal.block": "サーバーをブロック",
"domain_block_modal.block_account_instead": "@{name} さんのみをブロック",
"domain_block_modal.they_can_interact_with_old_posts": "あなたの今までの投稿は、引き続きこのサーバーのユーザーが閲覧できます。",
@@ -238,17 +252,17 @@
"domain_block_modal.you_will_lose_num_followers": "「{followingCount, plural, other {{followingCountDisplay}フォロー}}」、「{followersCount, plural, other {{followersCountDisplay}フォロワー}}」を失うことになります。",
"domain_block_modal.you_will_lose_relationships": "このサーバーにいるすべてのフォローとフォロワーを失うことになります。",
"domain_block_modal.you_wont_see_posts": "このサーバーのユーザーからの投稿や通知が閲覧できなくなります。",
- "domain_pill.activitypub_lets_connect": "Mastodonからほかのソーシャルアプリのユーザーへ、そのまた別のアプリのユーザーへと、それぞれが互いにつながり関わり合うことをこのActivityPubの仕組みが実現しています。",
+ "domain_pill.activitypub_lets_connect": "この仕組みによって、Mastodonはもちろん、他のさまざまなソーシャルアプリも含めたユーザーとのつながりや交流が実現しています。",
"domain_pill.activitypub_like_language": "ActivityPubとは、Mastodonがほかのサーバーと会話をするときにしゃべる「言葉」のようなものです。",
"domain_pill.server": "サーバー",
- "domain_pill.their_handle": "このユーザーのユーザーID:",
+ "domain_pill.their_handle": "このユーザーのハンドル:",
"domain_pill.their_server": "ユーザーの仮想の住所です。そのユーザーIDによるすべての投稿を保持しています。",
"domain_pill.their_username": "ユーザーを識別する名前です。ユーザー名はひとつのサーバー内においては唯一無二の名前ですが、ほかのサーバーには同名のユーザーがいることもあります。",
"domain_pill.username": "ユーザー名",
- "domain_pill.whats_in_a_handle": "ユーザーIDについて",
- "domain_pill.who_they_are": "そのユーザーが「誰であるか」「どこに住んでいるか」はユーザーIDから知ることができます。これによりの集まりからなるネットワークを介してそれぞれのユーザーと関わり合うことができます。",
- "domain_pill.who_you_are": "ほかのユーザーはあなたが「誰であるか」「どこに住んでいるか」をユーザーIDから認識でき、これによりの集まりからなるネットワークを介してあなたと関わり合うことができます。",
- "domain_pill.your_handle": "あなたのユーザーID:",
+ "domain_pill.whats_in_a_handle": "ユーザーハンドルについて",
+ "domain_pill.who_they_are": "ユーザーハンドルには相手の「名前」と「住所」の情報が書いてあるため、が連合してつくるソーシャルネットワークのユーザーであれば交流が可能です。",
+ "domain_pill.who_you_are": "ユーザーハンドルにはあなたの「名前」と「住所」の情報が書いてあるため、が連合してつくるソーシャルネットワークのユーザーであればあなたと交流が可能です。",
+ "domain_pill.your_handle": "あなたのハンドル:",
"domain_pill.your_server": "あなたの仮想の住所です。投稿した内容はすべてここに保持されます。もし今いるサーバーが気に入っていない場合は、フォロワーを引き継いで別のサーバーに引っ越すこともできます。",
"domain_pill.your_username": "あなたを識別する名前です。ユーザー名はひとつのサーバー内においては唯一無二の名前ですが、ほかのサーバーには同名のユーザーがいることもあります。",
"embed.instructions": "下記のコードをコピーしてウェブサイトに埋め込みます。",
@@ -352,6 +366,7 @@
"footer.status": "ステータス",
"generic.saved": "保存しました",
"getting_started.heading": "スタート",
+ "hashtag.admin_moderation": "#{name}のモデレーション画面を開く",
"hashtag.column_header.tag_mode.all": "と{additional}",
"hashtag.column_header.tag_mode.any": "か{additional}",
"hashtag.column_header.tag_mode.none": "({additional} を除く)",
@@ -457,11 +472,32 @@
"link_preview.author": "{name}",
"link_preview.more_from_author": "{name}さんの投稿をもっと読む",
"link_preview.shares": "{count, plural, 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": "リストのメンバー",
+ "lists.list_members_count": "{count, plural, 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}件の新着",
"loading_indicator.label": "読み込み中…",
"media_gallery.hide": "隠す",
@@ -618,7 +654,11 @@
"notifications_permission_banner.enable": "デスクトップ通知を有効にする",
"notifications_permission_banner.how_to_control": "Mastodonを閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {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": "Mastodonの「見つける」機能にオプトインすると、あなたの投稿が検索結果やトレンドに表示されることがあります。また、あなたに似た関心を持つ人にプロフィールがおすすめされることがあります。",
"onboarding.profile.display_name": "表示名",
diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json
index ad02aacc1b..2dfa9f1327 100644
--- a/app/javascript/mastodon/locales/nan.json
+++ b/app/javascript/mastodon/locales/nan.json
@@ -22,7 +22,22 @@
"account.cancel_follow_request": "取消跟tuè",
"account.copy": "Khóo-pih kàu個人資料ê連結",
"account.direct": "私人提起 @{name}",
+ "account.disable_notifications": "停止佇 {name} PO文ê時通知我",
+ "account.domain_blocked": "封鎖ê網域",
+ "account.edit_profile": "編輯個人資料",
+ "account.enable_notifications": "佇 {name} PO文ê時通知我",
+ "account.endorse": "用個人資料推薦對方",
+ "account.featured_tags.last_status_at": "頂kái tī {date} Po文",
+ "account.featured_tags.last_status_never": "無PO文",
+ "account.featured_tags.title": "{name} ê推薦hashtag",
+ "account.follow": "跟tuè",
"account.follow_back": "Tuè tńg去",
+ "account.followers": "跟tuè lí ê",
+ "account.followers.empty": "Tsit ê用者iáu bô lâng跟tuè。",
+ "account.followers_counter": "Hōo {count, plural, other {{count} ê lâng}}跟tuè",
+ "account.following": "Lí跟tuè ê",
+ "account.following_counter": "Teh跟tuè {count,plural,other {{count} ê lâng}}",
+ "account.follows.empty": "Tsit ê用者iáu buē跟tuè別lâng。",
"annual_report.summary.percentile.text": "Tse 予lí變做 {domain} ê用戶ê ",
"block_modal.show_less": "看khah少",
"compose.language.change": "換語言",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index 6b0757f6ba..c133d2eac8 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -16,6 +16,7 @@
"account.badges.group": "Төркем",
"account.block": "@{name} кулланучыны блоклау",
"account.block_domain": "{domain} доменын блоклау",
+ "account.block_short": "Блокла",
"account.blocked": "Блокланган",
"account.cancel_follow_request": "Киләсе сорау",
"account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү",
@@ -68,10 +69,14 @@
"alert.rate_limited.title": "Тариф чикләнгән",
"alert.unexpected.message": "Көтелмәгән хата булды.",
"alert.unexpected.title": "Абау!",
+ "alt_text_badge.title": "Альт текст",
"announcement.announcement": "Игълан",
"attachments_list.unprocessed": "(чимал)",
"audio.hide": "Аудионы яшерү",
+ "block_modal.title": "Кулланучыны блокларгамы?",
"boost_modal.combo": "Сез баса аласыз {combo} киләсе тапкыр моны сагыну өчен",
+ "boost_modal.reblog": "Язманы күтәрергәме?",
+ "boost_modal.undo_reblog": "Язманы күтәрмәскәме?",
"bundle_column_error.copy_stacktrace": "Күчереп алу хата турында Отчет",
"bundle_column_error.error.body": "Соралган бит күрсәтелә алмый. Бу безнең кодтагы хата яки браузерга туры килү проблемасы аркасында булырга мөмкин.",
"bundle_column_error.error.title": "Әй, юк!",
@@ -92,9 +97,11 @@
"column.blocks": "Блокланган кулланучылар",
"column.bookmarks": "Кыстыргычлар",
"column.community": "Локаль вакыт сызыгы",
+ "column.create_list": "Исемлек яса",
"column.direct": "Хосусый искә алулар",
"column.directory": "Профильләрне карау",
"column.domain_blocks": "Блокланган доменнар",
+ "column.edit_list": "Исемлекне үзгәрт",
"column.follow_requests": "Язылу сораулары",
"column.home": "Баш бит",
"column.lists": "Исемлекләр",
diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml
index 21be8aa345..646da1ce9e 100644
--- a/config/locales/activerecord.ja.yml
+++ b/config/locales/activerecord.ja.yml
@@ -39,6 +39,8 @@ ja:
attributes:
data:
malformed: は不正です
+ list_account:
+ must_be_following: フォローされているアカウントでなければなりません
status:
attributes:
reblog:
diff --git a/config/locales/an.yml b/config/locales/an.yml
index 49033dc48e..fccfcae53e 100644
--- a/config/locales/an.yml
+++ b/config/locales/an.yml
@@ -935,7 +935,6 @@ an:
preamble_html: Inicia sesión con as tuys credencials %{domain}. Si la tuya cuenta se troba en un servidor diferent, no podrás iniciar aquí una sesión.
title: Iniciar sesión en %{domain}
sign_up:
- preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a qualsequier atra persona en o ret, independientment d'o servidor en o qual se trobe.
title: Creyar cuenta de Mastodon en %{domain}.
status:
account_status: Estau d'a cuenta
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index a3f6675952..3bbabdcaad 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1143,7 +1143,6 @@ ar:
set_new_password: إدخال كلمة مرور جديدة
setup:
email_below_hint_html: قم بفحص مجلد البريد المزعج الخاص بك، أو قم بطلب آخر. يمكنك تصحيح عنوان بريدك الإلكتروني إن كان خاطئا.
- email_settings_hint_html: انقر على الرابط الذي أرسلناه لك للتحقق من %{email}. سننتظر هنا.
link_not_received: ألم تحصل على رابط؟
new_confirmation_instructions_sent: سوف تتلقى رسالة بريد إلكتروني جديدة مع رابط التأكيد في غضون بضع دقائق!
title: تحقَّق من بريدك الوارِد
@@ -1152,7 +1151,6 @@ ar:
title: تسجيل الدخول إلى %{domain}
sign_up:
manual_review: عمليات التسجيل في %{domain} تمر عبر المراجعة اليدوية من قبل مشرفينا. لمساعدتنا في معالجة إنشاء حسابك، اكتب نَبْذَة عن نفسك ولماذا تريد حسابًا على %{domain}.
- preamble: مع حساب على خادم ماستدون هذا، ستتمكن من متابعة أي شخص آخر على الشبكة، بغض النظر عن المكان الذي يستضيف فيه حسابهم.
title: دعنا نجهّز %{domain}.
status:
account_status: حالة الحساب
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index a3310f0d46..69f887de55 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -472,7 +472,6 @@ ast:
setup:
link_not_received: "¿Nun consiguiesti l'enllaz?"
sign_up:
- preamble: Con una cuenta nesti sirvidor de Mastodon vas ser a siguir a cualesquier perfil de la rede, independientemente del sirvidor onde s'agospie la so cuenta.
title: 'Creación d''una cuenta en: %{domain}.'
status:
account_status: Estáu de la cuenta
diff --git a/config/locales/be.yml b/config/locales/be.yml
index 7ce89d9935..91f949b8e1 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -1159,7 +1159,6 @@ be:
set_new_password: Прызначыць новы пароль
setup:
email_below_hint_html: Праверце папку са спамам або зрабіце новы запыт. Вы можаце выправіць свой email, калі ён няправільны.
- email_settings_hint_html: Націсніце на спасылку, якую мы адправілі, каб спраўдзіць %{email}. Мы вас пачакаем тут.
link_not_received: Не атрымалі спасылку?
new_confirmation_instructions_sent: Праз некалькі хвілін вы атрымаеце новы ліст на email са спасылкай для пацверджання!
title: Праверце вашу пошту
@@ -1168,7 +1167,6 @@ be:
title: Уваход у %{domain}
sign_up:
manual_review: Рэгістрацыі на %{domain} праходзяць ручную праверку нашымі мадэратарамі. Каб дапамагчы нам апрацаваць вашу рэгістрацыю, напішыце крыху пра сябе і чаму вы хочаце мець уліковы запіс на %{domain}.
- preamble: Маючы ўліковы запіс на гэтым серверы Mastodon, вы будзеце мець магчымасць падпісацца на кожнага чалавека ў сетцы, незалежна ад таго, на якім серверы размешчаны ягоны ўліковы запіс.
title: Наладзьма вас на %{domain}.
status:
account_status: Стан уліковага запісу
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 0e7ddeddc0..41a62ecc2e 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -1145,7 +1145,6 @@ bg:
set_new_password: Задаване на нова парола
setup:
email_below_hint_html: Проверете папката си за спам или поискайте друго е-писмо. Може да поправите адреса на имейла си, ако е грешен.
- email_settings_hint_html: Щракнете на връзката за потвърждаване, която ви изпратихме до %{email}. Ще ви почакаме тук.
link_not_received: Не получихте ли връзка?
new_confirmation_instructions_sent: До няколко минути ще получите друго е-писмо с връзка за потвърждаване!
title: Проверете входящата си поща
@@ -1154,7 +1153,6 @@ bg:
title: Влизане в %{domain}
sign_up:
manual_review: Регистрирането в %{domain} преминава през ръчен преглед от модераторите ни. Напишете малко за себе си и защо искате акаунт в %{domain}, за да ни помогнете в процеса на регистрацията си.
- preamble: С акаунт на този съвър в Mastodon ще може да последвате всекиго в мрежата, независимо къде се намира акаунтът му.
title: Първоначални настройки за %{domain}.
status:
account_status: Състояние на акаунта
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 07fcd8632c..60d58a68e1 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -1157,7 +1157,6 @@ ca:
set_new_password: Estableix una contrasenya nova
setup:
email_below_hint_html: Verifiqueu la carpeta de correu brossa o demaneu-ne un altre. Podeu corregir l'adreça de correu-e si no és correcta.
- email_settings_hint_html: Toca l'enllaç que t'hem enviat per a verificar %{email}. Esperarem aquí mateix.
link_not_received: No has rebut l'enllaç?
new_confirmation_instructions_sent: Rebràs un nou correu amb l'enllaç de confirmació en pocs minuts!
title: Comprova la teva safata d'entrada
@@ -1166,7 +1165,6 @@ ca:
title: Inicia sessió a %{domain}
sign_up:
manual_review: Els registres a %{domain} passen per una revisió manual dels nostres moderadors. Per ajudar-nos a processar el teu registre, escriu-nos quelcom sobre tu i perquè vols un compte a %{domain}.
- preamble: Amb un compte en aquest servidor Mastodon podràs seguir qualsevol altra persona de la xarxa, independentment d'on tingui el compte.
title: Configurem-te a %{domain}.
status:
account_status: Estat del compte
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 502e2fe0d8..d8c721591b 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1122,7 +1122,6 @@ cs:
security: Zabezpečení
set_new_password: Nastavit nové heslo
setup:
- email_settings_hint_html: Klikněte na odkaz, který jsme Vám poslali k ověření %{email}. Budeme zde čekat.
link_not_received: Nedostali jste odkaz?
title: Zkontrolujte doručenou poštu
sign_in:
@@ -1130,7 +1129,6 @@ cs:
title: Přihlásit se k %{domain}
sign_up:
manual_review: Registrace na %{domain} procházejí manuálním hodnocením od našich moderátorů. Abyste nám pomohli zpracovat Vaši registraci, napište trochu o sobě a proč chcete účet na %{domain}.
- preamble: S účtem na tomto serveru Mastodon budete moci sledovat jakoukoliv jinou osobu v síti bez ohledu na to, kde je jejich účet hostován.
title: Pojďme vás nastavit na %{domain}.
status:
account_status: Stav účtu
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 2f2ae75e5d..168c37f106 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -1229,7 +1229,6 @@ cy:
set_new_password: Gosod cyfrinair newydd
setup:
email_below_hint_html: Gwiriwch eich ffolder sbam, neu gofynnwch am un arall. Gallwch gywiro eich cyfeiriad e-bost os yw'n anghywir.
- email_settings_hint_html: Cliciwch ar y ddolen a anfonwyd atoch i wirio %{email}. Byddwn yn aros yma amdanoch.
link_not_received: Heb gael dolen?
new_confirmation_instructions_sent: Byddwch yn derbyn e-bost newydd gyda'r ddolen gadarnhau ymhen ychydig funudau!
title: Gwiriwch eich blwch derbyn
@@ -1238,7 +1237,6 @@ cy:
title: Mewngofnodi i %{domain}
sign_up:
manual_review: Mae cofrestriadau ar %{domain} yn cael eu hadolygu â llaw gan ein cymedrolwyr. Er mwyn ein helpu i brosesu eich cofrestriad, ysgrifennwch ychydig amdanoch chi'ch hun a pham rydych chi eisiau cyfrif ar %{domain}.
- preamble: Gyda chyfrif ar y gweinydd Mastodon hwn, byddwch yn gallu dilyn unrhyw berson arall ar y rhwydwaith, lle bynnag mae eu cyfrif yn cael ei gynnal.
title: Gadewch i ni eich gosod ar %{domain}.
status:
account_status: Statws cyfrif
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 916dc931f9..04f5e46fd0 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -1157,7 +1157,6 @@ da:
set_new_password: Opsæt ny adgangskode
setup:
email_below_hint_html: Tjek Spam-mappen eller anmod om et nyt link. Om nødvendigt kan e-mailadressen rettes.
- email_settings_hint_html: Tryk på det tilsendte link for at bekræfte %{email}.
link_not_received: Intet link modtaget?
new_confirmation_instructions_sent: Du bør om få minutter modtage en ny e-mail med bekræftelseslinket!
title: Tjek indbakken
@@ -1166,7 +1165,6 @@ 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: Med en konto på denne Mastodon-server vil man kunne følge enhver anden person på netværket, uanset hvor vedkommendes konto hostes.
title: Lad os få dig sat op på %{domain}.
status:
account_status: Kontostatus
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 76b3c1f765..e1c20e2931 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1157,7 +1157,6 @@ de:
set_new_password: Neues Passwort einrichten
setup:
email_below_hint_html: Überprüfe deinen Spam-Ordner oder lass dir den Bestätigungslink erneut zusenden. Falls die angegebene E-Mail-Adresse falsch ist, kannst du sie auch korrigieren.
- email_settings_hint_html: Klicke auf den Bestätigungslink, den wir an %{email} gesendet haben, um die Adresse zu verifizieren. Wir warten hier solange auf dich.
link_not_received: Keinen Bestätigungslink erhalten?
new_confirmation_instructions_sent: In wenigen Minuten wirst du eine neue E-Mail mit dem Bestätigungslink erhalten!
title: Überprüfe dein E-Mail-Postfach
@@ -1166,7 +1165,6 @@ de:
title: Bei %{domain} anmelden
sign_up:
manual_review: Registrierungen für den Server %{domain} werden manuell durch unsere Moderator*innen überprüft. Um uns dabei zu unterstützen, schreibe etwas über dich und sage uns, weshalb du ein Konto auf %{domain} anlegen möchtest.
- preamble: Mit einem Konto auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Konto registriert ist.
title: Lass uns dein Konto auf %{domain} einrichten.
status:
account_status: Kontostatus
diff --git a/config/locales/devise.fil.yml b/config/locales/devise.fil.yml
index 4084bf2f90..cc88d26023 100644
--- a/config/locales/devise.fil.yml
+++ b/config/locales/devise.fil.yml
@@ -1 +1,105 @@
+---
fil:
+ devise:
+ confirmations:
+ confirmed: Matagumpay na nakumpirma ang email address mo.
+ send_instructions: Makakatanggap ka ng email na may instruksiyon kung paano kumpirmahin ang email address mo sa ilang minuto. Paki-check ang spam folder mo kung hindi mo natanggap ang email na ito.
+ send_paranoid_instructions: Kung nasa database namin ang email address mo, makakatanggap ka ng email na may instruksiyon kung paano kumpirmahin ang email address mo sa ilang minuto. Paki-check ang spam folder mo kung hindi mo natanggap ang email na ito.
+ failure:
+ already_authenticated: Naka-sign in ka na.
+ inactive: Hindi pa naa-activate ang account mo.
+ invalid: Invalid na %{authentication_keys} o password.
+ last_attempt: May isa ka pang attempt bago ma-lock ang account mo.
+ locked: Na-lock ang account mo.
+ not_found_in_database: Invalid na %{authentication_keys} o password.
+ omniauth_user_creation_failure: May error sa paggawa ng account para sa identidad na ito.
+ pending: Nire-review pa ang account mo.
+ timeout: Natapos na ang sesyon mo. Mag-login ulit para magpatuloy.
+ unauthenticated: Kailangan mong mag-login o mag-sign up bago magpatuloy.
+ unconfirmed: Kailangan mong kumpirmahin ang email address mo bago ka magpatuloy.
+ mailer:
+ confirmation_instructions:
+ action: Beripikahin ang email address
+ action_with_app: Kumpirmahin at bumalik sa %{app}
+ explanation: Nakagawa ka ng account sa %{host} gamit ang email address na ito. Isang click na lang para ma-activate ito. Kung hindi ikaw ito, balewalain ang email na ito.
+ explanation_when_pending: Nag-apply ka para sa imbitasyon sa %{host} gamit ang email address na ito. Kapag nakumpirma mo ang email address mo, rerebyuhin namin ang aplikasyon mo. Maaari kang mag-login para baguhin ang mga detalye mo o tanggalin ang iyong account, pero hindi mo maaakses ang karamihan sa mga function hanggang hindi naaaprubahan ang account mo. Kung tinanggihan ang aplikasyon mo, aalisin ang data mo, kaya wala ka nang ibang kailangang gawing aksiyon. Kung hindi ikaw ito, balewalain ang email na ito.
+ extra_html: Paki-check din ang mga tuntunin ng server at ang aming mga tuntunin sa serbisyo.
+ subject: 'Mastodon: Instruksiyon sa kumpirmasyon para sa %{instance}'
+ title: Beripikahin ang email address
+ email_changed:
+ explanation: 'Ang email address para sa account mo ay binabago sa:'
+ extra: Kung hindi mo binago ang email mo, malamang ay may nagkaroon ng akses sa account mo. Pakipalitan agad ang password mo o kontakin ang server admin kung na-lock out ka sa account mo.
+ subject: 'Mastodon: Napalitan ang email'
+ title: Bagong email address
+ password_change:
+ explanation: Nabago na ang password ng account mo.
+ extra: Kung hindi mo binago ang email mo, malamang ay may nagkaroon ng akses sa account mo. Pakipalitan agad ang password mo o kontakin ang server admin kung na-lock out ka sa account mo.
+ subject: 'Mastodon: Napalitan ang password'
+ title: Napalitan ang password
+ reconfirmation_instructions:
+ explanation: Kumpirmahin ang bagong address para baguhin ang email mo.
+ extra: Kung hindi ikaw ang gumawa ng pagbabagong ito, balewalain ang email na ito. Hindi mapapalitan ang email address para sa account sa Mastodon hanggang hindi mo napupuntahan ang link sa itaas.
+ subject: 'Mastodon: Kumpirmahin ang email para sa %{instance}'
+ title: Beripikahin ang email address
+ reset_password_instructions:
+ action: Palitan ang password
+ explanation: Humiling ka ng bagong passwird para sa account mo.
+ extra: Kung hindi mo hiniling ito, balewalain ang email na ito. Hindi mababago ang password mo hanggang hindi mo napupuntahan ang link sa itaas at nakakagawa ng bago.
+ subject: 'Mastodon: Instruksiyon sa pag-reset ng password'
+ title: Ang pasword nay nareset
+ two_factor_disabled:
+ explanation: Puwede nang mag-login gamit lang ang email address at password.
+ subject: 'Mastodon: Naka-disable ang two-factor authentication'
+ subtitle: Naka-disable ang two-factor authentication para sa account mo.
+ title: Naka-disable ang 2FA
+ two_factor_enabled:
+ explanation: Kakailanganin ang token na na-generate ng paired TOTP app para maka-login.
+ subject: 'Mastodon: Naka-enable ang two-factor authentication'
+ subtitle: Naka-enable ang two-factor authentication para sa account mo.
+ title: Naka-enable ang 2FA
+ two_factor_recovery_codes_changed:
+ explanation: Na-invalidate ang naunang mga recovery code at nakagawa na ng bago.
+ subject: 'Mastodon: Nakagawa ulit ng mga two-factor reecover code'
+ subtitle: Na-invalidate ang naunang mga recovery code at nakagawa na ng bago.
+ title: Nabago ang 2FA recovery codes
+ unlock_instructions:
+ subject: 'Mastodon: Buksan ang instruksiyon'
+ webauthn_credential:
+ added:
+ explanation: Naidagdag na sa account mo ang sumusunod na security key
+ subject: 'Mastodon: Bagong security key'
+ title: May naidagdag nang bagong security key
+ deleted:
+ explanation: Natanggal na sa account mo ang sumusunod na security key
+ subject: 'Mastodon: Na-delete ang security key'
+ title: Na-delete ang isa sa mga security key mo
+ webauthn_disabled:
+ explanation: Naka-disable ang authentication sa mga security key para sa account mo.
+ extra: Puwede nang mag-login gamit lang ang token na na-gennerate ng paired TOTP app.
+ subject: 'Mastodon: Naka-disable ang authentication sa mga security key'
+ title: Naka-disable ang mga security key
+ webauthn_enabled:
+ explanation: Naka-enable ang two-factor authentication para sa account mo.
+ extra: Magagamit na ngayon ang security key para maka-login.
+ subject: 'Mastodon: Naka-enable ang security key authentication'
+ title: Naka-enable ang mga security key
+ omniauth_callbacks:
+ failure: Hindi ka ma-authenticate mula sa %{kind} dahil “%{reason}”.
+ success: Matagumpay na na-aurthenticate mula sa %{kind} account.
+ passwords:
+ no_token: Hindi mo maaakses ang page na ito nang hindi nangaggaling sa password reset na email. Kung nangggaling ka sa password reset na email, siguruhin mong ginamit mo ang binigay na URL.
+ send_instructions: Kung nasa database namin ang email address mo, makakatanggap ka ng password recovery link ilang minuto. Paki-check ang spam folder mo kung hindi mo natanggap ang email na ito.
+ send_paranoid_instructions: Kung nasa database namin ang email address mo, makakatanggap ka ng password recovery link sa email address mo sa ilang minuto. Paki-check ang spam folder mo kung hindi mo natanggap ang email na ito.
+ updated: Matagumpay na napalitan ang password mo. Naka-sign in ka na.
+ updated_not_active: Matagumpay na napalitan ang password mo.
+ registrations:
+ destroyed: Paalam! Matagumpay na nakansela ang account mo. Sana ay magkita ulit tayo sa hinaharap.
+ update_needs_confirmation: Na-update mo na ang account mo, pero kailangan naming beripikahin ang bago mong email address. Pakitingnan ang email mo at sundan ang confirm link para makumpirma ang bagong email address mo. Pakitingnan ang spam folder mo kung hindi mo natanggap ang email na ito.
+ updated: Matagumpay na na-update ang account mo.
+ sessions:
+ already_signed_out: Matagumpay na naka-sign out.
+ signed_in: Matagumpay na naka-sign in.
+ signed_out: Matagumpay na naka-sign out.
+ unlocks:
+ send_instructions: Makakatanggap ka ng email na may instruksiyon kung paano i-unlock ang account mo sa ilang minuto. Pakitingnan ang spam folder mo kung hindi mo natanggap ang email na ito.
+ send_paranoid_instructions: Kung may account ka, makakatanggap ka ng email na may instruksiyon kung paano ito i-unlock sa ilang minuto. Pakitingnan ang spam folder mo kung hindi mo natanggap ang email na ito.
diff --git a/config/locales/el.yml b/config/locales/el.yml
index dd534d6b0b..5f1770ace9 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -962,6 +962,10 @@ el:
statuses:
allow: Να επιτρέπεται η ανάρτηση
allow_account: Να επιτρέπεται ο συγγραφέας
+ confirm_allow: Σίγουρα θες να επιτρέψεις τις επιλεγμένες καταστάσεις;
+ confirm_allow_account: Σίγουρα θες να επιτρέψεις τους επιλεγμένους λογαριασμούς;
+ confirm_disallow: Σίγουρα θες να απορρίψεις τις επιλεγμένες καταστάσεις;
+ confirm_disallow_account: Σίγουρα θες να απορρίψεις τους επιλεγμένους λογαριασμούς;
description_html: Αυτές είναι αναρτήσεις για τις οποίες ο διακομιστής σας γνωρίζει ότι κοινοποιούνται και αρέσουν πολύ αυτή τη περίοδο. Μπορεί να βοηθήσει νέους και χρήστες που επιστρέφουν, να βρουν περισσότερα άτομα να ακολουθήσουν. Καμία ανάρτηση δεν εμφανίζεται δημόσια μέχρι να εγκρίνεις τον συντάκτη και ο συντάκτης να επιτρέπει ο λογαριασμός του να προτείνεται και σε άλλους. Μπορείς επίσης να επιτρέψεις ή να απορρίψεις μεμονωμένες δημοσιεύσεις.
disallow: Να μην επιτρέπεται η δημοσίευση
disallow_account: Να μην επιτρέπεται ο συντάκτης
@@ -1101,6 +1105,7 @@ el:
hint_html: Και κάτι ακόμα! Πρέπει να επιβεβαιώσουμε ότι είσαι άνθρωπος (αυτό γίνεται για να κρατήσουμε μακριά το σπαμ!). Λύσε το CAPTCHA παρακάτω και κάνε κλικ "Συνέχεια".
title: Ελεγχος ασφαλείας
confirmations:
+ awaiting_review: Η διεύθυνση email σου επιβεβαιώθηκε! Το προσωπικό του %{domain} εξετάζει τώρα την εγγραφή σου. Θα λάβεις ένα email εάν εγκρίνουν τον λογαριασμό σου!
awaiting_review_title: Η εγγραφή σου εξετάζεται
clicking_this_link: κάνοντας κλικ σε αυτόν τον σύνδεσμο
login_link: σύνδεση
@@ -1108,6 +1113,7 @@ el:
redirect_to_app_html: Θα πρέπει να μεταφέρθηκες στην εφαρμογή %{app_name}. Αν αυτό δεν συμβεί, δοκιμάσε το %{clicking_this_link} ή επέστρεψε χειροκίνητα στην εφαρμογή.
registration_complete: Η εγγραφή σου στο %{domain} έχει πλέον ολοκληρωθεί!
welcome_title: Καλώς ήρθες, %{name}!
+ wrong_email_hint: Εάν αυτή η διεύθυνση email δεν είναι σωστή, μπορείς να την αλλάξεις στις ρυθμίσεις λογαριασμού.
delete_account: Διαγραφή λογαριασμού
delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να συνεχίσεις εδώ. Θα σου ζητηθεί επιβεβαίωση.
description:
@@ -1150,19 +1156,21 @@ el:
security: Ασφάλεια
set_new_password: Ορισμός νέου συνθηματικού
setup:
- email_settings_hint_html: Πάτησε το σύνδεσμο που σου στείλαμε για να επαληθεύσεις το %{email}. Θα σε περιμένουμε εδώ.
+ email_below_hint_html: Έλεγξε τον φάκελο ανεπιθύμητης αλληλογραφίας ή ζήτα καινούργιο. Μπορείς να διορθώσεις τη διεύθυνση email σου αν είναι λάθος.
link_not_received: Δεν έλαβες τον σύνδεσμο;
+ new_confirmation_instructions_sent: Θα λάβεις ένα νέο email με το σύνδεσμο επιβεβαίωσης σε λίγα λεπτά!
title: Ελέγξτε τα εισερχόμενά σας
sign_in:
preamble_html: Συνδεθείτε με τα διαπιστευτήριά σας στον %{domain}. Αν ο λογαριασμός σας φιλοξενείται σε διαφορετικό διακομιστή, δε θα μπορείτε να συνδεθείτε εδώ.
title: Συνδεθείτε στο %{domain}
sign_up:
manual_review: Οι εγγραφές στο %{domain} περνούν από χειροκίνητη αξιολόγηση από τους συντονιστές μας. Για να μας βοηθήσεις να επεξεργαστούμε την εγγραφή σου, γράψε λίγα λόγια για τον εαυτό σου και γιατί θέλεις έναν λογαριασμό στο %{domain}.
- preamble: Με έναν λογαριασμό σ' αυτόν τον διακομιστή Mastodon, θα μπορείτε να ακολουθήσετε οποιοδήποτε άλλο άτομο στο δίκτυο, ανεξάρτητα από το πού φιλοξενείται ο λογαριασμός του.
title: Ας ξεκινήσουμε τις ρυθμίσεις στο %{domain}.
status:
account_status: Κατάσταση λογαριασμού
+ confirming: Αναμονή για ολοκλήρωση επιβεβαίωσης του email.
functional: Ο λογαριασμός σας είναι πλήρως λειτουργικός.
+ pending: Η εφαρμογή σου εκκρεμεί έγκρισης. Ίσως θα διαρκέσει κάποιο χρόνο. Θα λάβεις email αν εγκριθεί.
redirecting_to: Ο λογαριασμός σου είναι ανενεργός γιατί επί του παρόντος ανακατευθύνει στον %{acct}.
self_destruct: Καθώς το %{domain} κλείνει, θα έχεις μόνο περιορισμένη πρόσβαση στον λογαριασμό σου.
view_strikes: Προβολή προηγούμενων ποινών εναντίον του λογαριασμού σας
@@ -1170,6 +1178,12 @@ el:
use_security_key: Χρήση κλειδιού ασφαλείας
author_attribution:
example_title: Δείγμα κειμένου
+ hint_html: Γράφεις ειδήσεις ή blog άρθρα εκτός του Mastodon; Έλεγξε πώς μπορείς να πάρεις τα εύσημα όταν μοιράζονται στο Mastodon.
+ instructions: 'Βεβαιώσου ότι ο κώδικας αυτός είναι στο HTML του άρθρου σου:'
+ more_from_html: Περισσότερα από %{name}
+ s_blog: Ιστολόγιο του/της %{name}
+ then_instructions: Στη συνέχεια, πρόσθεσε το όνομα τομέα της δημοσίευσης στο παρακάτω πεδίο.
+ title: Αναφορά συγγραφέα
challenge:
confirm: Συνέχεια
hint_html: "Συμβουλή: Δεν θα σου ζητήσουμε τον κωδικό ασφαλείας σου ξανά για την επόμενη ώρα."
@@ -1206,6 +1220,9 @@ el:
before: 'Πριν συνεχίσεις, παρακαλούμε να διαβάσεις τις παρακάτω σημειώσεις προσεκτικά:'
caches: Περιεχόμενο που έχει αποθηκευτεί προσωρινά σε άλλους διακομιστές ίσως παραμείνει
data_removal: Οι αναρτήσεις σου και άλλα δεδομένα θα διαγραφούν οριστικά
+ email_change_html: Μπορείς να αλλάξεις τη διεύθυνση email σου χωρίς να διαγράψεις το λογαριασμό σου
+ email_contact_html: Αν και πάλι δεν εμφανιστεί, μπορείς να στείλεις email στο %{email} για βοήθεια
+ email_reconfirmation_html: Αν δεν έχεις λάβει το email επιβεβαίωσης, μπορείς να το ζητήσεις ξανά
irreversible: Δεν θα μπορείς να ανακτήσεις ή ενεργοποιήσεις ξανά το λογαριασμό σου
more_details_html: Για περισσότερες πληροφορίες, δες την πολιτική απορρήτου.
username_available: Το όνομα χρήστη σου θα γίνει ξανά διαθέσιμο
@@ -1363,6 +1380,44 @@ el:
merge_long: Διατήρηση των εγγράφων που υπάρχουν και προσθήκη των νέων
overwrite: Αντικατάσταση
overwrite_long: Αντικατάσταση των υπαρχόντων εγγράφων με τις καινούργιες
+ overwrite_preambles:
+ blocking_html:
+ one: Πρόκειται να αντικαταστήσεις τη λίστα αποκλεισμών με έως και %{count} λογαριασμό από το %{filename}.
+ other: Πρόκειται να αντικαταστήσεις τη λίστα αποκλεισμών με έως και %{count} λογαριασμούς από το %{filename}.
+ bookmarks_html:
+ one: Πρόκειται να αντικαταστήσεις τους σελιδοδείκτες σου με έως και %{count} ανάρτηση από το %{filename}.
+ other: Πρόκειται να αντικαταστήσεις τους σελιδοδείκτες σου με έως και %{count} αναρτήσεις από το %{filename}.
+ domain_blocking_html:
+ one: Πρόκειται να αντικαταστήσεις τη λίστα αποκλεισμών τομέων με έως και %{count} τομέα από το %{filename}.
+ other: Πρόκειται να αντικαταστήσεις τη λίστα αποκλεισμών τομέων με έως και %{count} τομείς από το %{filename}.
+ following_html:
+ one: Πρόκειται να ακολουθήσεις μέχρι %{count} λογαριασμό από το %{filename} και να σταματήσεις να ακολουθείς οποιονδήποτε άλλο.
+ other: Πρόκειται να ακολουθήσεις μέχρι %{count} λογαριασμούς από το %{filename} και να σταματήσεις να ακολουθείς οποιονδήποτε άλλο.
+ lists_html:
+ one: Πρόκειται να αντικαταστήσεις τις λίστες σου με περιεχόμενο του %{filename}. Μέχρι %{count} λογαριασμός θα προστεθεί σε νέες λίστες.
+ other: Πρόκειται να αντικαταστήσεις τις λίστες σου με περιεχόμενο του %{filename}. Μέχρι %{count} λογαριασμοί θα προστεθούν σε νέες λίστες.
+ muting_html:
+ one: Πρόκειται να αντικαταστήσεις τη λίστα λογαριασμών σε σίγαση με έως και %{count} λογαριασμό από το %{filename}.
+ other: Πρόκειται να αντικαταστήσεις τη λίστα λογαριασμών σε σίγαση με έως και %{count} λογαριασμούς από το %{filename}.
+ preambles:
+ blocking_html:
+ one: Πρόκειται να αποκλείσεις έως και %{count} λογαριασμό από το %{filename}.
+ other: Πρόκειται να αποκλείσεις έως και %{count} λογαριασμούς από το %{filename}.
+ bookmarks_html:
+ one: Πρόκειται να προσθέσεις μέχρι και %{count} ανάρτηση από το %{filename} στους σελιδοδείκτες σου.
+ other: Πρόκειται να προσθέσεις μέχρι και %{count} αναρτήσεις από το %{filename} στους σελιδοδείκτες σου.
+ domain_blocking_html:
+ one: Πρόκειται να αποκλείσεις έως και %{count} τόμεα από το %{filename}.
+ other: Πρόκειται να αποκλείσεις έως και %{count} τομείς από το %{filename}.
+ following_html:
+ one: Πρόκειται να ακολουθήσεις έως και %{count} λογαριασμό από το %{filename}.
+ other: Πρόκειται να ακολουθήσεις έως και %{count} λογαριασμούς από το %{filename}.
+ lists_html:
+ one: Πρόκειται να προσθέσεις μέχρι και %{count} λογαριασμό από το %{filename} στις λίστες σου. Θα δημιουργηθούν νέες λίστες αν δεν υπάρχει λίστα για προσθήκη.
+ other: Πρόκειται να προσθέσεις μέχρι και %{count} λογαριασμούς από το %{filename} στις λίστες σου. Θα δημιουργηθούν νέες λίστες αν δεν υπάρχει λίστα για προσθήκη.
+ muting_html:
+ one: Πρόκειται να κάνεις σίγαση σε έως και %{count} λογαριασμό από το %{filename}.
+ other: Πρόκειται να κάνεις σίγαση σε έως και %{count} λογαριασμούς από το %{filename}.
preface: Μπορείς να εισάγεις τα δεδομένα που έχεις εξάγει από άλλο διακομιστή, όπως τη λίστα των ατόμων που ακολουθείς ή έχεις αποκλείσει.
recent_imports: Πρόσφατες Εισαγωγές
states:
@@ -1379,8 +1434,10 @@ el:
domain_blocking: Εισαγωγή αποκλεισμένων τομέων
following: Εισαγωγή λογαριασμών που ακολουθείτε
lists: Εισαγωγή λιστών
+ muting: Εισαγωγή λογαριασμών σε σίγαση
type: Τύπος εισαγωγής
type_groups:
+ constructive: Ακολουθείς & Σελιδοδείκτες
destructive: Μπλοκ & σίγαση
types:
blocking: Λίστα αποκλεισμού
@@ -1420,6 +1477,7 @@ el:
authentication_methods:
otp: εφαρμογή ταυτοποίησης δύο παραγόντων
password: συνθηματικό
+ sign_in_token: κωδικός ασφαλείας email
webauthn: κλειδιά ασφαλείας
description_html: Αν δεις δραστηριότητα που δεν αναγνωρίζεις, σκεφτείς να αλλάξεις τον κωδικό πρόσβασής σου και να ενεργοποιήσεις τον έλεγχο ταυτότητας δύο παραγόντων.
empty: Δεν υπάρχει διαθέσιμο ιστορικό ελέγχου ταυτότητας
@@ -1430,10 +1488,21 @@ el:
unsubscribe:
action: Ναι, κατάργηση συνδρομής
complete: Η συνδρομή καταργήθηκε
+ confirmation_html: Σίγουρα θες να καταργήσεις την εγγραφή σου για %{type} για το Mastodon στο %{domain} στο email σου %{email}; Μπορείς πάντα να εγγραφείς ξανά από τις ρυθμίσεις ειδοποιήσεων email.
+ emails:
+ notification_emails:
+ favourite: ειδοποιήσεις email για αγαπημένα
+ follow: ειδοποιήσεις email για ακολουθήσεις
+ follow_request: email για αιτήματα ακολούθησης
+ mention: ειδοποιήσεις email για επισημάνσεις
+ reblog: ειδοποιήσεις email για ενίσχυση
+ resubscribe_html: Αν έχεις καταργήσει την εγγραφή σου κατά λάθος, μπορείς να εγγραφείς εκ νέου από τις ρυθμίσεις ειδοποίησης email.
+ success_html: Δεν θα λαμβάνεις πλέον %{type} για το Mastodon στο %{domain} στο email σου στο %{email}.
title: Κατάργηση συνδρομής
media_attachments:
validations:
images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ανάρτηση που ήδη περιέχει εικόνες
+ not_found: Το πολυμέσο %{ids} δε βρέθηκε ή είναι ήδη συννημένο σε άλλη ανάρτηση
not_ready: Δεν μπορούν να επισυναφθούν αρχεία για τα οποία δεν έχει τελειώσει η επεξεργασία. Προσπαθήστε ξανά σε λίγο!
too_many: Δεν γίνεται να επισυνάψεις περισσότερα από 4 αρχεία
migrations:
@@ -1510,6 +1579,7 @@ el:
update:
subject: "%{name} επεξεργάστηκε μια ανάρτηση"
notifications:
+ administration_emails: Ειδοποιήσεις email διαχειριστή
email_events: Συμβάντα για ειδοποιήσεις μέσω email
email_events_hint: 'Επέλεξε συμβάντα για τα οποία θέλεις να λαμβάνεις ειδοποιήσεις μέσω email:'
number:
@@ -1545,6 +1615,7 @@ el:
expired: Η δημοσκόπηση έχει ήδη λήξει
invalid_choice: Αυτή η επιλογή ψήφου δεν υπάρχει
over_character_limit: δε μπορεί να υπερβαίνει τους %{max} χαρακτήρες έκαστη
+ self_vote: Δεν μπορείς να ψηφίσεις στις δικές σου δημοσκοπήσεις
too_few_options: πρέπει να έχει περισσότερες από μια επιλογές
too_many_options: δεν μπορεί να έχει περισσότερες από %{max} επιλογές
preferences:
@@ -1552,8 +1623,14 @@ el:
posting_defaults: Προεπιλογές ανάρτησης
public_timelines: Δημόσιες ροές
privacy:
+ hint_html: "Παραμετροποίησε πώς θες το προφίλ και οι αναρτήσεις σου να ανακαλύπτονται.. Μια ποικιλία δυνατοτήτων στο Mastodon μπορούν να σε βοηθήσουν να απευθυνθείς σε μεγαλύτερο κοινό όταν ενεργοποιηθούν. Αφιέρωσε μερικά λεπτά για να εξετάσεις τις ρυθμίσεις και να σιγουρευτείς ότι σου ταιριάζουν."
privacy: Απόρρητο
+ privacy_hint_html: "'Έλεγξε πόσο θες να αποκαλύπτεις προς όφελος των άλλων. Οι άνθρωποι ανακαλύπτουν ενδιαφέροντα προφίλ και εφαρμογές με την περιήγηση των ακολούθων άλλων ατόμων και βλέποντας από ποιες εφαρμογές δημοσιεύουν, αλλά μπορεί να προτιμάς να το κρατάς κρυφό."
+ reach: Προσιτότητα
+ reach_hint_html: Έλεγξε αν θες να ανακαλύπτεσαι και να ακολουθείσαι από καινούρια άτομα. Θες οι αναρτήσεις σου να εμφανίζονται στην οθόνη Εξερεύνηση; Θες άλλα άτομα να σε βλέπουν στις προτάσεις ακολούθησής τους; Θες να αποδέχεσαι όλους τους νέους ακολούθους αυτόματα ή να έχεις εξονυχιστικό έλεγχο στο καθένα;
search: Αναζήτηση
+ search_hint_html: Έλεγξε πώς θες να σε βρίσκουν. Θες οι χρήστες να σε βρουν από ό,τι έχεις αναρτήσει δημόσια; Θες άτομα εκτός Mastodon να βρουν το προφίλ σου κατά την αναζήτηση στο διαδίκτυο; Λάβε υπόψη ότι ο πλήρης αποκλεισμός από όλες τις μηχανές αναζήτησης δεν μπορεί να διασφαλιστεί για δημόσια ενημέρωση.
+ title: Ιδιωτικότητα και προσιτότητα
privacy_policy:
title: Πολιτική Απορρήτου
reactions:
@@ -1597,6 +1674,7 @@ el:
scheduled_statuses:
over_daily_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων αναρτήσεων για εκείνη τη μέρα
over_total_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων αναρτήσεων
+ too_soon: η ημερομηνία πρέπει να είναι στο μέλλον
self_destruct:
lead_html: Δυστυχώς, το %{domain} κλείνει οριστικά. Αν είχατε λογαριασμό εκεί, δεν θα μπορείτε να συνεχίσετε τη χρήση του, αλλά μπορείτε ακόμα να ζητήσετε ένα αντίγραφο ασφαλείας των δεδομένων σας.
title: Αυτός ο διακομιστής κλείνει οριστικά
@@ -1665,6 +1743,7 @@ el:
preferences: Προτιμήσεις
profile: Προφίλ
relationships: Ακολουθείς και σε ακολουθούν
+ severed_relationships: Αποκομμένες σχέσεις
statuses_cleanup: Αυτοματοποιημένη διαγραφή αναρτήσεων
strikes: Παραπτώματα από ομάδα συντονισμού
two_factor_authentication: Πιστοποίηση 2 παραγόντων
@@ -1674,6 +1753,11 @@ el:
event_type:
account_suspension: Αναστολή λογαριασμού (%{target_name})
domain_block: Αναστολή διακομιστή (%{target_name})
+ user_domain_block: Απέκλεισες τον χρήστη %{target_name}
+ lost_followers: Χαμένοι ακόλουθοι
+ lost_follows: Χαμένες ακολουθήσεις
+ preamble: Μπορεί να χάσεις ακολουθήσεις και ακόλουθους όταν αποκλείεις έναν τομέα ή όταν οι συντονιστές σου αποφασίζουν να αναστείλουν έναν απομακρυσμένο διακομιστή. Όταν συμβεί αυτό, θα είσαι σε θέση να κατεβάσεις λίστες των αποκομμένων σχέσεων, για να επιθεωρούνται και ενδεχομένως να εισάγονται σε άλλο διακομιστή.
+ purged: Πληροφορίες σχετικά με αυτόν τον διακομιστή έχουν εκκαθαριστεί από τους διαχειριστές του διακομιστή σου.
type: Συμβάν
statuses:
attached:
@@ -1764,6 +1848,10 @@ el:
month: "%b %Y"
time: "%H:%M"
with_time_zone: "%d %b %Y, %H:%M %Z"
+ translation:
+ errors:
+ quota_exceeded: Υπέρβαση του ορίου χρήσης για την υπηρεσία μετάφρασης για ολόκληρο τον διακομιστή.
+ too_many_requests: Υπήρξαν πάρα πολλά αιτήματα προς την υπηρεσία μετάφρασης τελευταία.
two_factor_authentication:
add: Προσθήκη
disable: Απενεργοποίηση 2FA
@@ -1797,6 +1885,9 @@ el:
subject: Το αρχείο σου είναι έτοιμο για λήψη
title: Λήψη εφεδρικού αρχείου
failed_2fa:
+ details: 'Εδώ είναι οι λεπτομέρειες της προσπάθειας σύνδεσης:'
+ explanation: Κάποιος έχει προσπαθήσει να εισέλθει στον λογαριασμό σου, αλλά παρείχε έναν μη έγκυρο δεύτερο παράγοντα ελέγχου ταυτότητας.
+ further_actions_html: Αν δεν ήσουν εσύ, σου συνιστούμε να %{action} αμέσως, καθώς μπορεί να έχει εκτεθεί.
subject: Αποτυχία ταυτοποίησης δεύτερου παράγοντα
title: Αποτυχία ελέγχου ταυτότητας δεύτερου παράγοντα
suspicious_sign_in:
@@ -1851,8 +1942,29 @@ el:
feature_action: Μάθε περισσότερα
feature_audience: Το Mastodon σού παρέχει μια μοναδική δυνατότητα διαχείρισης του κοινού σου χωρίς μεσάζοντες. Το Mastodon όταν αναπτύσσεται στη δική σου υποδομή σού επιτρέπει να ακολουθείς και να ακολουθείσαι από οποιονδήποτε άλλο συνδεδεμένο διακομιστή Mastodon και κανείς δεν τον ελέγχει, εκτός από σένα.
feature_audience_title: Χτίσε το κοινό σου με σιγουριά
+ feature_control: Εσύ ξέρεις καλύτερα τι θες να βλέπεις στην αρχική σου ροή. Δεν υπάρχουν αλγόριθμοι ή διαφημίσεις για να σπαταλάς το χρόνο σου. Ακολούθησε οποιονδήποτε σε οποιονδήποτε διακομιστή Mastodon από έναν λογαριασμό και δες τις αναρτήσεις τους με χρονολογική σειρά και κάνε τη δική σου γωνιά του ίντερνετ, λίγο πιο προσωπική.
+ feature_control_title: Διατήρησε τον έλεγχο της ροής σου
+ feature_creativity: Το Mastodon υποστηρίζει αναρτήσεις ήχου, βίντεο και εικόνας, περιγραφές για προσβασιμότητα, δημοσκοπήσεις, προειδοποιήσεις περιεχομένου, κινούμενα άβαταρ, προσαρμοσμένα εμότζι, έλεγχος περικοπής μικρογραφιών και πολλά άλλα, για να σε βοηθήσει να εκφραστείς στο διαδίκτυο. Είτε δημοσιεύεις την τέχνη σου, είτε τη μουσική σου, είτε το podcast σου, το Mastodon είναι εκεί για σένα.
+ feature_creativity_title: Ασύγκριτη δημιουργικότητα
+ feature_moderation: Το Mastodon δίνει την λήψη αποφάσεων πίσω σε σένα. Κάθε διακομιστής δημιουργεί τους δικούς του κανόνες και κανονισμούς, οι οποίοι επιβάλλονται τοπικά και όχι από πάνω προς τα κάτω όπως τα εταιρικά μέσα κοινωνικής δικτύωσης, καθιστώντας την πιο ευέλικτη στην ανταπόκριση στις ανάγκες των διαφορετικών ομάδων ανθρώπων. Γίνε μέλος σε έναν διακομιστή με τους κανόνες που συμφωνείς ή δημιούργησε τον δικό σου.
+ feature_moderation_title: Συντονισμός όπως θα έπρεπε
+ follow_action: Ακολούθησε
+ follow_step: Το να ακολουθείς ενδιαφέροντα άτομα είναι όλη η ουσία του Mastodon.
+ follow_title: Προσάρμοσε την αρχική ροή σου
+ follows_subtitle: Ακολουθήστε γνωστούς λογαριασμούς
+ follows_title: Ποιον να ακολουθήσεις
+ follows_view_more: Δες περισσότερα άτομα για να ακολουθήσεις
+ hashtags_recent_count:
+ one: "%{people} άτομο τις τελευταίες 2 ημέρες"
+ other: "%{people} άτομα τις τελευταίες 2 ημέρες"
+ hashtags_subtitle: Εξερεύνησε τις τάσεις των τελευταίων 2 ημερών
+ hashtags_title: Ετικέτες σε τάση
+ hashtags_view_more: Δες περισσότερες ετικέτες σε τάση
post_action: Σύνθεση
+ post_step: Πες γεια στον κόσμο με κείμενο, φωτογραφίες, βίντεο ή δημοσκοπήσεις.
+ post_title: Κάνε την πρώτη σου ανάρτηση
share_action: Κοινοποίηση
+ share_step: Πες στους φίλους σου πώς να σε βρουν στο Mastodon.
share_title: Μοιραστείτε το προφίλ σας στο Mastodon
sign_in_action: Σύνδεση
subject: Καλώς ήρθες στο Mastodon
@@ -1862,9 +1974,14 @@ el:
go_to_sso_account_settings: Πήγαινε στις ρυθμίσεις λογαριασμού του παρόχου ταυτότητας σου
invalid_otp_token: Άκυρος κωδικός πιστοποίησης 2 παραγόντων
otp_lost_help_html: Αν χάσεις πρόσβαση και στα δύο, μπορείς να επικοινωνήσεις με %{email}
+ rate_limited: Πάρα πολλές προσπάθειες ελέγχου ταυτότητας, προσπάθησε ξανά αργότερα.
+ seamless_external_login: Επειδή έχεις συνδεθεί μέσω τρίτης υπηρεσίας, οι ρυθμίσεις συνθηματικού και email δεν είναι διαθέσιμες.
signed_in_as: 'Έχεις συνδεθεί ως:'
verification:
+ extra_instructions_html: Συμβουλή: Ο σύνδεσμος στην ιστοσελίδα σου μπορεί να είναι αόρατος. Το σημαντικό μέρος είναι το rel="me" που αποτρέπει την μίμηση σε ιστοσελίδες με περιεχόμενο παραγόμενο από χρήστες. Μπορείς ακόμη να χρησιμοποιήσεις μια ετικέτα συνδέσμου στην κεφαλίδα της σελίδας αντί για a, αλλά ο κώδικας HTML πρέπει να είναι προσβάσιμος χωρίς την εκτέλεση JavaScript.
here_is_how: Δείτε πώς
+ hint_html: Η επαλήθευση της ταυτότητας στο Mastodon είναι για όλους. Βασισμένο σε ανοιχτά πρότυπα ιστού, τώρα και για πάντα δωρεάν. Το μόνο που χρειάζεσαι είναι μια προσωπική ιστοσελίδα που ο κόσμος να σε αναγνωρίζει από αυτή. Όταν συνδέεσαι σε αυτήν την ιστοσελίδα από το προφίλ σου, θα ελέγξουμε ότι η ιστοσελίδα συνδέεται πίσω στο προφίλ σου και θα δείξει μια οπτική ένδειξη σε αυτό.
+ instructions_html: Αντέγραψε και επικόλλησε τον παρακάτω κώδικα στην HTML της ιστοσελίδας σου. Στη συνέχεια, πρόσθεσε τη διεύθυνση της ιστοσελίδας σου σε ένα από τα επιπλέον πεδία στο προφίλ σου από την καρτέλα "Επεξεργασία προφίλ" και αποθήκευσε τις αλλαγές.
verification: Πιστοποίηση
verified_links: Οι επαληθευμένοι σύνδεσμοι σας
website_verification: Επαλήθευση ιστοτόπου
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index b08ce82368..583b3dc14d 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -1157,7 +1157,6 @@ en-GB:
set_new_password: Set new password
setup:
email_below_hint_html: Check your spam folder, or request another one. You can correct your email address if it's wrong.
- email_settings_hint_html: Click the link we sent you to verify %{email}. We'll wait right here.
link_not_received: Didn't get a link?
new_confirmation_instructions_sent: You will receive a new email with the confirmation link in a few minutes!
title: Check your inbox
@@ -1166,7 +1165,6 @@ en-GB:
title: Log in to %{domain}
sign_up:
manual_review: Sign-ups on %{domain} go through manual review by our moderators. To help us process your registration, write a bit about yourself and why you want an account on %{domain}.
- preamble: With an account on this Mastodon server, you'll be able to follow any other person on the network, regardless of where their account is hosted.
title: Let's get you set up on %{domain}.
status:
account_status: Account status
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 7e454ddcf4..74fc0c64a8 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -1157,7 +1157,6 @@ eo:
set_new_password: Elekti novan pasvorton
setup:
email_below_hint_html: Kontrolu vian spam-dosierujon aŭ petu novan. Se necese, vi povas korekti vian retadreson.
- email_settings_hint_html: Enklaku la ligilon, ke ni sendis al vi por kontroli %{email}. Ni estos tien.
link_not_received: Ĉu vi ne ricevis ligilon?
new_confirmation_instructions_sent: Vi ricevos novan retpoŝton kun la konfirma ligilo post kelkaj minutoj!
title: Kontrolu vian retpoŝta enirkesto
@@ -1166,7 +1165,6 @@ eo:
title: Saluti en %{domain}
sign_up:
manual_review: Enskriboj en %{domain} havas manan superrigardon, farita de niaj moderistoj. Por helpi nin por procezi vian enskribon, skribu ion pri vi mem, kaj kial vi volas konton en %{domain}.
- preamble: Per konto ĉe ĉi tiu Mastodon-servilo, vi povas sekvi ajn personojn en la reto.
title: Ni pretigu vin ĉe %{domain}.
status:
account_status: Statuso de la konto
@@ -1499,7 +1497,7 @@ eo:
follow: sciigoj retpoŝtaj de sekvoj
follow_request: retpoŝtajn petoj de sekvado
mention: sciigoj retpoŝtaj de mencioj
- reblog: sciigoj retpoŝtaj de stimuloj
+ reblog: sciigoj retpoŝtaj de diskonigoj
resubscribe_html: Se vi malabonis erare, vi povas reaboni de viaj retpoŝtaj sciigaj agordoj.
success_html: Vi ne plu ricevos %{type} por Mastodon ĉe %{domain} al via retpoŝto ĉe %{email}.
title: Malaboni
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 5ea429f5cb..a33865a0b6 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -1157,7 +1157,6 @@ es-AR:
set_new_password: Establecer nueva contraseña
setup:
email_below_hint_html: Revisá tu carpeta de correo no deseado / spam, o solicitá otro enlace de confirmación. Podés corregir tu dirección de correo electrónico si está mal.
- email_settings_hint_html: Hacé clic en el enlace que te enviamos para verificar %{email}. Te esperamos por acá.
link_not_received: "¿No recibiste un enlace?"
new_confirmation_instructions_sent: "¡Recibirás un nuevo correo electrónico con el enlace de confirmación en unos minutos!"
title: Revisá tu bandeja de entrada
@@ -1166,7 +1165,6 @@ es-AR:
title: Iniciar sesión en %{domain}
sign_up:
manual_review: Los registros en %{domain} pasan por la revisión manual de nuestros moderadores. Para ayudarnos a procesar tu registro, escribinos un poco sobre vos y contanos por qué querés una cuenta en %{domain}.
- preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra cuenta en la red, independientemente de en qué servidor esté alojada esa cuenta.
title: Dejá que te preparemos en %{domain}.
status:
account_status: Estado de la cuenta
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 3e0680aa61..51a59d93c8 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1157,7 +1157,6 @@ es-MX:
set_new_password: Establecer nueva contraseña
setup:
email_below_hint_html: Comprueba tu carpeta de correo no deseado o solicita otro enlace de confirmación. Puedes corregir tu dirección de correo electrónico si está mal.
- email_settings_hint_html: Pulsa el enlace que te hemos enviado para verificar %{email}. Esperaremos aquí mismo.
link_not_received: "¿No recibiste un enlace?"
new_confirmation_instructions_sent: "¡Recibirás un nuevo correo electrónico con el enlace de confirmación en unos minutos!"
title: Revisa tu bandeja de entrada
@@ -1166,7 +1165,6 @@ es-MX:
title: Registrate en %{domain}
sign_up:
manual_review: Los registros en %{domain} pasan por la revisión manual de nuestros moderadores. Para ayudarnos a procesar tu registro, escribe un poco sobre ti mismo y por qué quieres una cuenta en %{domain}.
- preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente del servidor en el que se encuentre.
title: Crear cuenta de Mastodon en %{domain}.
status:
account_status: Estado de la cuenta
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 2984fbf2ad..48177a20a6 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1157,7 +1157,6 @@ es:
set_new_password: Establecer nueva contraseña
setup:
email_below_hint_html: Comprueba tu carpeta de correo no deseado o solicita otro enlace de confirmación. Puedes corregir tu dirección de correo electrónico si está mal.
- email_settings_hint_html: Haz clic en el enlace que te hemos enviado para verificar %{email}. Te esperamos aquí.
link_not_received: "¿No recibiste un enlace?"
new_confirmation_instructions_sent: "¡Recibirás un nuevo correo electrónico con el enlace de confirmación en unos minutos!"
title: Revisa tu bandeja de entrada
@@ -1166,7 +1165,6 @@ es:
title: Iniciar sesión en %{domain}
sign_up:
manual_review: Los registros en %{domain} pasan por la revisión manual de nuestros moderadores. Para ayudarnos a procesar tu registro, escribe un poco sobre ti mismo y por qué quieres una cuenta en %{domain}.
- preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente del servidor en el que se encuentre.
title: Crear cuenta de Mastodon en %{domain}.
status:
account_status: Estado de la cuenta
diff --git a/config/locales/et.yml b/config/locales/et.yml
index ea4545ac42..759006f728 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -1142,7 +1142,6 @@ et:
set_new_password: Uue salasõna määramine
setup:
email_below_hint_html: Kontrolli rämpsposti kausta või taotle uut. Saad oma e-posti aadressi parandada, kui see on vale.
- email_settings_hint_html: Klõpsa linki, mis saadeti sulle, et kinnitada %{email}. Seni me ootame.
link_not_received: Kas ei saanud linki?
new_confirmation_instructions_sent: Saad mõne minuti pärast uue kinnituslingiga e-kirja!
title: Kontrolli sisendkasti
@@ -1151,7 +1150,6 @@ et:
title: Logi sisse kohta %{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}.
- preamble: Selle kontoga saad jälgida ja suhelda kõigi teiste kasutajatega erinevates Mastodoni serverites.
title: Loo konto serverisse %{domain}.
status:
account_status: Konto olek
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index c1e5ab1ee6..bb0d122ca1 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -1064,7 +1064,6 @@ eu:
security: Segurtasuna
set_new_password: Ezarri pasahitza berria
setup:
- email_settings_hint_html: Egin klik bidali dizugun estekan %{email} helbidea egiaztatzeko. Hementxe itxarongo zaitugu.
link_not_received: Ez duzu estekarik jaso?
title: Begiratu zure sarrera-ontzia
sign_in:
@@ -1072,7 +1071,6 @@ eu:
title: "%{domain}-(e)an saioa hasi"
sign_up:
manual_review: "%{domain}-(e)n eginiko izen-emateak gure moderatzaileek eskuz aztertzen dituzte. Zure izen-ematea prozesatzen lagun gaitzazun, idatz ezazu zertxobait zuri buruz eta azaldu zergatik nahi duzun %{domain}-(e)n kontu bat."
- preamble: Mastodon zerbitzari honetako kontu batekin, aukera izango duzu sareko edozein pertsona jarraitzeko, ez dio axola kontua non ostatatua dagoen.
title: "%{domain} zerbitzariko kontua prestatuko dizugu."
status:
account_status: Kontuaren egoera
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index ad242ca503..00b7497da8 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -999,7 +999,6 @@ fa:
security: امنیت
set_new_password: تعین گذرواژه جدید
setup:
- email_settings_hint_html: برای تأیید %{email}، روی پیوندی که برای شما ارسال کردیم ضربه بزنید. همین جا منتظر میمانیم.
link_not_received: پیوندی نگرفتید؟
title: صندوق ورودیتان را بررسی کنید
sign_in:
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index eec42d0bfb..be75536eb6 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -1157,7 +1157,6 @@ fi:
set_new_password: Aseta uusi salasana
setup:
email_below_hint_html: Tarkista roskapostikansiosi tai pyydä uusi viesti. Voit korjata sähköpostiosoitteesi tarvittaessa.
- email_settings_hint_html: Napsauta lähettämäämme linkkiä vahvistaaksesi osoitteen %{email}. Odotamme täällä.
link_not_received: Etkö saanut linkkiä?
new_confirmation_instructions_sent: Saat pian uuden vahvistuslinkin sisältävän sähköpostiviestin!
title: Tarkista sähköpostilaatikkosi
@@ -1166,7 +1165,6 @@ fi:
title: Kirjaudu palvelimelle %{domain}
sign_up:
manual_review: Palvelimen %{domain} ylläpito tarkastaa rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja siitä, miksi haluat luoda käyttäjätilin palvelimelle %{domain}.
- preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia käyttäjiä riippumatta siitä, missä heidän tilinsä on.
title: Otetaan %{domain} käyttöösi.
status:
account_status: Tilin tila
diff --git a/config/locales/fil.yml b/config/locales/fil.yml
index 4084bf2f90..fc19d9fd31 100644
--- a/config/locales/fil.yml
+++ b/config/locales/fil.yml
@@ -1 +1,26 @@
+---
fil:
+ about:
+ about_mastodon_html: 'Ang social network ng hinaharap: Walang mga ad, walang corporate na pagmamanman, etikal na disenyo, at desentralisasyon! Sa iyo ang data mo sa Mastodon!'
+ contact_missing: Hindi naka-set
+ contact_unavailable: N/A
+ hosted_on: Mastodon hosted sa %{domain}
+ title: About
+ accounts:
+ following: Following
+ instance_actor_flash: Ang account na ito ay virtual actor na ginagamit para i-represent ang mismong server at hindi anumang indibidwal na user. Ginagamit ito para sa mga layunin ng pederasyon at hindi dapat i-suspend.
+ last_active: huling aktibo
+ link_verified_on: Ang pagmamay-ari ng link na ito ay huling na-check sa %{date}
+ nothing_here: Walang makikita rito!
+ pin_errors:
+ following: Dapat ay fina-follow mo na ang taong gusto mong i-endorse
+ posts_tab_heading: Mga Post
+ self_follow_error: Hindi puwede ang pag-follow sa sariling account
+ admin:
+ account_actions:
+ action: Gawin ang aksiyon
+ already_silenced: Nalimitahan na ang account na ito.
+ already_suspended: Nasuspinde na ang account na ito.
+ title: Gawin ang moderation na aksiyon sa %{acct}
+ account_moderation_notes:
+ create: Mag-iwan ng note
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index 6f2f94242c..e5d0c3aa5c 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -1157,7 +1157,6 @@ fo:
set_new_password: Áset nýtt loyniorð
setup:
email_below_hint_html: Kekka mappuna við ruskposti ella bið um ein annan. Tú kanst rætta teldupostadressuna, um hon er skeiv.
- email_settings_hint_html: Kekka leinkið, sum vit sendu tær at eftirkanna %{email}. Vit bíða beint her.
link_not_received: Fekk tú einki leinki?
new_confirmation_instructions_sent: Tú fer at móttaka eitt nýtt teldubræv við váttanarleinkinum um nakrar fáar minuttir!
title: Kekka innbakkan hjá tær
@@ -1166,7 +1165,6 @@ fo:
title: Rita inn á %{domain}
sign_up:
manual_review: Tilmeldingar til %{domain} fara ígjøgnum eina manuella eftirkanning av okkara kjakleiðarum. Fyri at hjálpa okkum at skunda undir skrásetingina, skriva eitt sindur um teg sjálva/n og hví tú vil hava eina kontu á %{domain}.
- preamble: Við eini kontu á hesum Mastodon ambætaranum ber til hjá tær at fylgja ein og hvønn annan persón á netverkinum, óansæð hvar teirra konta er hýst.
title: Latum okkum fáa teg settan upp á %{domain}.
status:
account_status: Kontustøða
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index 057dac582c..991a4d669b 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -187,6 +187,7 @@ fr-CA:
create_domain_block: Créer un blocage de domaine
create_email_domain_block: Création d'un blocage de domaine de courrier électronique
create_ip_block: Créer une règle IP
+ create_relay: Créer un relais
create_unavailable_domain: Créer un domaine indisponible
create_user_role: Créer le rôle
demote_user: Rétrograder l’utilisateur·ice
@@ -198,14 +199,17 @@ fr-CA:
destroy_email_domain_block: Supprimer le blocage de domaine de courriel
destroy_instance: Purge du domaine
destroy_ip_block: Supprimer la règle IP
+ destroy_relay: Supprimer le relais
destroy_status: Supprimer le message
destroy_unavailable_domain: Supprimer le domaine indisponible
destroy_user_role: Détruire le rôle
disable_2fa_user: Désactiver l’A2F
disable_custom_emoji: Désactiver les émojis personnalisés
+ disable_relay: Désactiver le relais
disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par e-mail pour l'utilisateur
disable_user: Désactiver le compte
enable_custom_emoji: Activer les émojis personnalisées
+ enable_relay: Activer le relais
enable_sign_in_token_auth_user: Activer le jeton d'authentification par e-mail pour l'utilisateur
enable_user: Activer l’utilisateur
memorialize_account: Ériger en mémorial
@@ -247,6 +251,7 @@ fr-CA:
create_domain_block_html: "%{name} a bloqué le domaine %{target}"
create_email_domain_block_html: "%{name} a bloqué le domaine d'e-mail %{target}"
create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}"
+ create_relay_html: "%{name} a créé un relais %{target}"
create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}"
create_user_role_html: "%{name} a créé le rôle %{target}"
demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}"
@@ -258,14 +263,17 @@ fr-CA:
destroy_email_domain_block_html: "%{name} a débloqué le domaine d'e-mail %{target}"
destroy_instance_html: "%{name} a purgé le domaine %{target}"
destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}"
+ destroy_relay_html: "%{name} a supprimé le relais %{target}"
destroy_status_html: "%{name} a supprimé le message de %{target}"
destroy_unavailable_domain_html: "%{name} a repris la livraison au domaine %{target}"
destroy_user_role_html: "%{name} a supprimé le rôle %{target}"
disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}"
disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}"
+ disable_relay_html: "%{name} a désactivé le relais %{target}"
disable_sign_in_token_auth_user_html: "%{name} a désactivé l'authentification par jeton de courriel pour %{target}"
disable_user_html: "%{name} a désactivé la connexion de l'utilisateur·rice %{target}"
enable_custom_emoji_html: "%{name} a activé l'émoji %{target}"
+ enable_relay_html: "%{name} a activé le relais %{target}"
enable_sign_in_token_auth_user_html: "%{name} a activé l'authentification par jeton de courriel pour %{target}"
enable_user_html: "%{name} a activé la connexion de l'utilisateur·rice %{target}"
memorialize_account_html: "%{name} a converti le compte de %{target} en un mémorial"
@@ -821,8 +829,10 @@ fr-CA:
back_to_account: Retour à la page du compte
back_to_report: Retour à la page du rapport
batch:
+ add_to_report: 'Ajouter au rapport #%{id}'
remove_from_report: Retirer du rapport
report: Signalement
+ contents: Contenu
deleted: Supprimé
favourites: Favoris
history: Historique de version
@@ -831,12 +841,17 @@ fr-CA:
media:
title: Médias
metadata: Metadonnés
+ no_history: Ce message n'a pas été édité
no_status_selected: Aucun message n’a été modifié car aucun n’a été sélectionné
open: Ouvrir le message
original_status: Message original
reblogs: Partages
+ replied_to_html: Répondu à %{acct_link}
status_changed: Publication modifiée
+ status_title: Posté par @%{name}
+ title: Messages du compte - @%{name}
trending: Tendances
+ view_publicly: Afficher de manière publique
visibility: Visibilité
with_media: Avec médias
strikes:
@@ -1145,7 +1160,6 @@ fr-CA:
set_new_password: Définir le nouveau mot de passe
setup:
email_below_hint_html: Consultez votre dossier de courrier indésirable ou demandez-en un autre. Vous pouvez corriger votre adresse e-mail si elle est incorrecte.
- email_settings_hint_html: Cliquez sur le lien que nous vous avons envoyé pour vérifier %{email}. Nous vous attendrons ici.
link_not_received: Vous n'avez pas reçu de lien?
new_confirmation_instructions_sent: Vous allez recevoir un nouvel e-mail avec le lien de confirmation dans quelques minutes !
title: Vérifiez votre boîte de réception
@@ -1154,7 +1168,6 @@ fr-CA:
title: Se connecter à %{domain}
sign_up:
manual_review: Les inscriptions sur %{domain} passent par une revue manuelle de nos modérateurs. Pour les aider, écrivez un peu plus sur vous et pourquoi vous souhaitez créer un compte sur %{domain}.
- preamble: Avec un compte sur ce serveur Mastodon, vous serez en mesure de suivre toute autre personne sur le réseau, quel que soit l’endroit où son compte est hébergé.
title: Mettons les choses en place pour %{domain}.
status:
account_status: État du compte
@@ -1168,8 +1181,11 @@ fr-CA:
use_security_key: Utiliser la clé de sécurité
author_attribution:
example_title: Exemple de texte
+ hint_html: Vous écrivez des nouvelles ou des articles de blog en dehors de Mastodon ? Contrôlez la façon dont vous êtes crédité lorsqu'ils sont partagés sur Mastodon.
+ instructions: 'Assurez-vous que ce code se trouve dans le code HTML de votre article :'
more_from_html: Plus via %{name}
s_blog: Blog de %{name}
+ then_instructions: Ensuite, ajoutez le nom de domaine de la publication dans le champ ci-dessous.
title: Attribution de l'auteur·e
challenge:
confirm: Continuer
@@ -1661,6 +1677,7 @@ fr-CA:
scheduled_statuses:
over_daily_limit: Vous avez dépassé la limite de %{limit} messages planifiés par jour
over_total_limit: Vous avez dépassé la limite de %{limit} messages planifiés
+ too_soon: la date doit se situer dans le futur
self_destruct:
lead_html: Malheureusement, %{domain} ferme définitivement. Si vous y aviez un compte, vous ne pourrez pas continuer à l’utiliser, mais vous pouvez toujours demander une sauvegarde de vos données.
title: Ce serveur est en cours de fermeture
@@ -1928,7 +1945,7 @@ fr-CA:
feature_action: En savoir plus
feature_audience: Mastodon vous offre une possibilité unique de gérer votre audience sans intermédiaires. Mastodon peut être déployé sur votre propre infrastructure, ce qui vous permet de suivre et d'être suivi depuis n'importe quel autre serveur Mastodon et de n'être contrôlé par personne d'autre que vous.
feature_audience_title: Construisez votre audience en toute confiance
- feature_control: Vous savez mieux que quiconque ce que vous voulez voir sur votre fil principal. Personne ne veut d'un algorithme qui décide à vote place ou de publicité qui vous fera perdre votre temps. Suivez n'importe qui, sur n'importe quel serveur Mastodon, depuis votre compte. Recevez les publications du monde entier dans l'ordre chronologique et créez-vous votre chez-vous numérique qui vous ressemble.
+ feature_control: Vous savez mieux que quiconque ce que vous voulez voir sur votre fil principal. Pas d’algorithme ou de publicité qui vous fait perdre votre temps. Suivez n'importe qui sur n'importe quel serveur Mastodon depuis votre compte, recevez leurs messages dans l'ordre chronologique, et créez-vous un coin d’internet qui vous ressemble.
feature_control_title: Gardez le contrôle de votre fil
feature_creativity: Mastodon prend en charge les messages audio, vidéo et photo, les descriptions d'accessibilité, les sondages, les avertissements de contenu, les avatars animés, les émojis personnalisés, le contrôle des vignettes et bien plus encore pour vous aider à vous exprimer en ligne. Que vous publiiez votre art, votre musique ou votre podcast, Mastodon est là pour vous.
feature_creativity_title: Créativité inégalée
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index e21e4f3e09..9a8837d81f 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -187,6 +187,7 @@ fr:
create_domain_block: Créer un blocage de domaine
create_email_domain_block: Création d'un blocage de domaine de courrier électronique
create_ip_block: Créer une règle IP
+ create_relay: Créer un relais
create_unavailable_domain: Créer un domaine indisponible
create_user_role: Créer le rôle
demote_user: Rétrograder l’utilisateur·ice
@@ -198,14 +199,17 @@ fr:
destroy_email_domain_block: Supprimer le blocage de domaine de courriel
destroy_instance: Purge du domaine
destroy_ip_block: Supprimer la règle IP
+ destroy_relay: Supprimer le relais
destroy_status: Supprimer le message
destroy_unavailable_domain: Supprimer le domaine indisponible
destroy_user_role: Détruire le rôle
disable_2fa_user: Désactiver l’A2F
disable_custom_emoji: Désactiver les émojis personnalisés
+ disable_relay: Désactiver le relais
disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par e-mail pour l'utilisateur
disable_user: Désactiver le compte
enable_custom_emoji: Activer les émojis personnalisées
+ enable_relay: Activer le relais
enable_sign_in_token_auth_user: Activer le jeton d'authentification par e-mail pour l'utilisateur
enable_user: Activer le compte
memorialize_account: Ériger en mémorial
@@ -247,6 +251,7 @@ fr:
create_domain_block_html: "%{name} a bloqué le domaine %{target}"
create_email_domain_block_html: "%{name} a bloqué le domaine d'e-mail %{target}"
create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}"
+ create_relay_html: "%{name} a créé un relais %{target}"
create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}"
create_user_role_html: "%{name} a créé le rôle %{target}"
demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}"
@@ -258,14 +263,17 @@ fr:
destroy_email_domain_block_html: "%{name} a débloqué le domaine d'e-mail %{target}"
destroy_instance_html: "%{name} a purgé le domaine %{target}"
destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}"
+ destroy_relay_html: "%{name} a supprimé le relais %{target}"
destroy_status_html: "%{name} a supprimé le message de %{target}"
destroy_unavailable_domain_html: "%{name} a repris la livraison au domaine %{target}"
destroy_user_role_html: "%{name} a supprimé le rôle %{target}"
disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}"
disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}"
+ disable_relay_html: "%{name} a désactivé le relais %{target}"
disable_sign_in_token_auth_user_html: "%{name} a désactivé l'authentification par jeton de courriel pour %{target}"
disable_user_html: "%{name} a désactivé la connexion de l'utilisateur·rice %{target}"
enable_custom_emoji_html: "%{name} a activé l'émoji %{target}"
+ enable_relay_html: "%{name} a activé le relais %{target}"
enable_sign_in_token_auth_user_html: "%{name} a activé l'authentification par jeton de courriel pour %{target}"
enable_user_html: "%{name} a activé la connexion de l'utilisateur·rice %{target}"
memorialize_account_html: "%{name} a converti le compte de %{target} en un mémorial"
@@ -821,8 +829,10 @@ fr:
back_to_account: Retour à la page du compte
back_to_report: Retour à la page du rapport
batch:
+ add_to_report: 'Ajouter au rapport #%{id}'
remove_from_report: Retirer du rapport
report: Signalement
+ contents: Contenu
deleted: Supprimé
favourites: Favoris
history: Historique de version
@@ -831,12 +841,17 @@ fr:
media:
title: Médias
metadata: Metadonnés
+ no_history: Ce message n'a pas été édité
no_status_selected: Aucun message n’a été modifié car aucun n’a été sélectionné
open: Ouvrir le message
original_status: Message original
reblogs: Partages
- status_changed: Publication modifiée
+ replied_to_html: Répondu à %{acct_link}
+ status_changed: Message modifié
+ status_title: Posté par @%{name}
+ title: Messages du compte - @%{name}
trending: Tendances
+ view_publicly: Afficher de manière publique
visibility: Visibilité
with_media: Avec médias
strikes:
@@ -1145,7 +1160,6 @@ fr:
set_new_password: Définir le nouveau mot de passe
setup:
email_below_hint_html: Consultez votre dossier de courrier indésirable ou demandez-en un autre. Vous pouvez corriger votre adresse e-mail si elle est incorrecte.
- email_settings_hint_html: Cliquez sur le lien que nous vous avons envoyé pour vérifier l’adresse %{email}. Nous vous attendons ici.
link_not_received: Vous n'avez pas reçu de lien ?
new_confirmation_instructions_sent: Vous allez recevoir un nouvel e-mail avec le lien de confirmation dans quelques minutes !
title: Vérifiez votre boîte de réception
@@ -1154,7 +1168,6 @@ fr:
title: Se connecter à %{domain}
sign_up:
manual_review: Les inscriptions sur %{domain} passent par une revue manuelle de nos modérateurs. Pour les aider, écrivez un peu plus sur vous et pourquoi vous souhaitez créer un compte sur %{domain}.
- preamble: Avec un compte sur ce serveur Mastodon, vous serez en mesure de suivre toute autre personne sur le réseau, quel que soit l’endroit où son compte est hébergé.
title: Mettons les choses en place pour %{domain}.
status:
account_status: État du compte
@@ -1168,8 +1181,11 @@ fr:
use_security_key: Utiliser la clé de sécurité
author_attribution:
example_title: Exemple de texte
+ hint_html: Vous écrivez des nouvelles ou des articles de blog en dehors de Mastodon ? Contrôlez la façon dont vous êtes crédité lorsqu'ils sont partagés sur Mastodon.
+ instructions: 'Assurez-vous que ce code se trouve dans le code HTML de votre article :'
more_from_html: Plus via %{name}
s_blog: Blog de %{name}
+ then_instructions: Ensuite, ajoutez le nom de domaine de la publication dans le champ ci-dessous.
title: Attribution de l'auteur·e
challenge:
confirm: Continuer
@@ -1285,7 +1301,7 @@ fr:
add_new: Ajouter un nouveau hashtag
errors:
limit: Vous avez déjà mis en avant le nombre maximum de hashtags
- hint_html: "Mettez en évidence vos hashtags les plus importants sur votre profil. Un outil idéal pour suivre vos travaux créatifs et vos projets à long terme, les hashtags mis en avant sont affichés bien en évidence sur votre profil et permettent un accès rapide à vos propres publications."
+ hint_html: "Mettez en évidence vos hashtags les plus importants sur votre profil. Un outil idéal pour suivre vos travaux créatifs et vos projets à long terme, les hashtags mis en avant sont affichés bien en évidence sur votre profil et permettent un accès rapide à vos propres messages."
filters:
contexts:
account: Profils
@@ -1296,7 +1312,7 @@ fr:
edit:
add_keyword: Ajouter un mot-clé
keywords: Mots-clés
- statuses: Publications individuelles
+ statuses: Messages individuels
statuses_hint_html: Ce filtre s'applique à la sélection de messages individuels, qu'ils correspondent ou non aux mots-clés ci-dessous. Revoir ou supprimer des messages du filtre.
title: Modifier le filtre
errors:
@@ -1315,8 +1331,8 @@ fr:
one: "%{count} message"
other: "%{count} messages"
statuses_long:
- one: "%{count} publication individuelle cachée"
- other: "%{count} publications individuelles cachées"
+ one: "%{count} message individuel caché"
+ other: "%{count} messages individuels cachés"
title: Filtres
new:
save: Enregistrer le nouveau filtre
@@ -1661,6 +1677,7 @@ fr:
scheduled_statuses:
over_daily_limit: Vous avez dépassé la limite de %{limit} messages planifiés par jour
over_total_limit: Vous avez dépassé la limite de %{limit} messages planifiés
+ too_soon: la date doit se situer dans le futur
self_destruct:
lead_html: Malheureusement, %{domain} ferme définitivement. Si vous y aviez un compte, vous ne pourrez pas continuer à l’utiliser, mais vous pouvez toujours demander une sauvegarde de vos données.
title: Ce serveur est en cours de fermeture
@@ -1758,7 +1775,7 @@ fr:
one: "%{count} vidéo"
other: "%{count} vidéos"
boosted_from_html: Partagé depuis %{acct_link}
- content_warning: 'Avertissement sur le contenu : %{warning}'
+ content_warning: 'Avertissement de contenu : %{warning}'
default_language: Même langue que celle de l’interface
disallowed_hashtags:
one: 'contient un hashtag désactivé : %{tags}'
@@ -1928,7 +1945,7 @@ fr:
feature_action: En savoir plus
feature_audience: Mastodon vous offre une possibilité unique de gérer votre audience sans intermédiaires. Mastodon peut être déployé sur votre propre infrastructure, ce qui vous permet de suivre et d'être suivi depuis n'importe quel autre serveur Mastodon et de n'être contrôlé par personne d'autre que vous.
feature_audience_title: Construisez votre audience en toute confiance
- feature_control: Vous savez mieux que quiconque ce que vous voulez voir sur votre fil principal. Personne ne veut d'un algorithme qui décide à vote place ou de publicité qui vous fera perdre votre temps. Suivez n'importe qui, sur n'importe quel serveur Mastodon, depuis votre compte. Recevez les publications du monde entier dans l'ordre chronologique et créez-vous votre chez-vous numérique qui vous ressemble.
+ feature_control: Vous savez mieux que quiconque ce que vous voulez voir sur votre fil principal. Pas d’algorithme ou de publicité qui vous fait perdre votre temps. Suivez n'importe qui sur n'importe quel serveur Mastodon depuis votre compte, recevez leurs messages dans l'ordre chronologique, et créez-vous un coin d’internet qui vous ressemble.
feature_control_title: Gardez le contrôle de votre fil
feature_creativity: Mastodon prend en charge les messages audio, vidéo et photo, les descriptions d'accessibilité, les sondages, les avertissements de contenu, les avatars animés, les émojis personnalisés, le contrôle des vignettes et bien plus encore pour vous aider à vous exprimer en ligne. Que vous publiiez votre art, votre musique ou votre podcast, Mastodon est là pour vous.
feature_creativity_title: Créativité inégalée
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 088e49cb9d..85b45eef79 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -1142,7 +1142,6 @@ fy:
set_new_password: Nij wachtwurd ynstelle
setup:
email_below_hint_html: Kontrolearje jo map Net-winske, of freegje in nije befêstigingskeppeling oan. Jo kinne jo e-mailadres wizigje as it ferkeard is.
- email_settings_hint_html: Klik op de keppeling dy’t wy jo stjoerd hawwe om %{email} te ferifiearjen. Wy wachtsje wol even.
link_not_received: Gjin keppeling krigen?
new_confirmation_instructions_sent: Jo ûntfange binnen inkelde minuten in nij e-mailberjocht mei de befêstigingskeppeling!
title: Kontrolearje jo Postfek YN
@@ -1151,7 +1150,6 @@ fy:
title: Oanmelde op %{domain}
sign_up:
manual_review: Ynskriuwingen op %{domain} wurde hânmjittich troch de moderator beoardiele. Skriuw wat oer josels en wêrom jo in account wolle op %{domain} om ús te helpen jo registraasje te ferwurkjen.
- preamble: Jo kinne mei in Mastodon-account elkenien yn it netwurk folgen, wêr’t dizze persoan ek in account hat.
title: Litte wy jo account op %{domain} ynstelle.
status:
account_status: Accountsteat
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index 424302fc2e..6e3bc30b7a 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -1211,7 +1211,6 @@ ga:
set_new_password: Socraigh pasfhocal nua
setup:
email_below_hint_html: Seiceáil d'fhillteán turscair, nó iarr ceann eile. Is féidir leat do sheoladh ríomhphoist a cheartú má tá sé mícheart.
- email_settings_hint_html: Cliceáil ar an nasc a sheol muid chugat chun %{email} a fhíorú. Beidh muid ag fanacht ar dheis anseo.
link_not_received: Nach bhfuair tú nasc?
new_confirmation_instructions_sent: Gheobhaidh tú ríomhphost nua leis an nasc deimhnithe i gceann cúpla bomaite!
title: Seiceáil do bhosca isteach
@@ -1220,7 +1219,6 @@ ga:
title: Logáil isteach go %{domain}
sign_up:
manual_review: Téann clárúcháin ar %{domain} trí athbhreithniú láimhe ag ár modhnóirí. Chun cabhrú linn do chlárúchán a phróiseáil, scríobh beagán fút féin agus cén fáth a bhfuil cuntas uait ar %{domain}.
- preamble: Le cuntas ar an bhfreastalaí Mastodon seo, beidh tú in ann aon duine eile ar an líonra a leanúint, beag beann ar an áit a bhfuil a gcuntas á óstáil.
title: Déanaimis tú a shocrú ar %{domain}.
status:
account_status: Stádas cuntais
@@ -1790,6 +1788,7 @@ ga:
scheduled_statuses:
over_daily_limit: Tá an teorainn de %{limit} postáil sceidealaithe sáraithe agat don lá atá inniu ann
over_total_limit: Tá an teorainn de %{limit} postáil sceidealaithe sáraithe agat
+ too_soon: caithfidh dáta a bheith sa todhchaí
self_destruct:
lead_html: Ar an drochuair, tá %{domain} ag dúnadh síos go buan. Má bhí cuntas agat ann, ní bheidh tú in ann leanúint ar aghaidh á úsáid, ach is féidir leat cúltaca de do shonraí a iarraidh fós.
title: Tá an freastalaí seo ag dúnadh
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index ae714cddcf..c21dd9d439 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1193,7 +1193,6 @@ gd:
set_new_password: Suidhich facal-faire ùr
setup:
email_below_hint_html: Thoir sùil air pasgan an spama agad no iarr fear eile. ’S urrainn dhut an seòladh puist-d agad a chur ceart ma tha e ceàrr.
- email_settings_hint_html: Briog air a’ cheangal a chuir sinn thugad a dhearbhadh %{email}. Fuirichidh sinn ort an-seo.
link_not_received: Nach d’fhuair thu ceangal?
new_confirmation_instructions_sent: Gheibh thu post-d ùr le ceangal dearbhaidh an ceann corra mionaid!
title: Thoir sùil air a’ bhogsa a-steach agad
@@ -1202,7 +1201,6 @@ gd:
title: Clàraich a-steach gu %{domain}
sign_up:
manual_review: Nì na maoir againn lèirmheas a làimh air clàraidhean air %{domain}. Airson ar cuideachadh le làimhseachadh do chlàraidh, sgrìobh beagan mu do dhèidhinn agus carson a tha thu ag iarraidh cunntas air %{domain}.
- preamble: Le cunntas air an fhrithealaiche Mastodon seo, ’s urrainn dhut neach sam bith a leantainn air an lìonra, ge b’ e càit a bheil an cunntas aca-san ’ga òstadh.
title: Suidhicheamaid %{domain} dhut.
status:
account_status: Staid a’ chunntais
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index cf5363196c..ab0afe9a2a 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -1157,7 +1157,6 @@ gl:
set_new_password: Estabelecer novo contrasinal
setup:
email_below_hint_html: Mira no cartafol do spam, ou solicita outra. Podes cambiar o enderzo de correo se non é correcto.
- email_settings_hint_html: Preme na ligazón que che enviamos para verificar %{email}. Agardamos por ti.
link_not_received: Non recibiches a ligazón?
new_confirmation_instructions_sent: Nuns minutos recibirás un novo correo electrónico coa ligazón de confirmación!
title: Mira a caixa de entrada
@@ -1166,7 +1165,6 @@ gl:
title: Accede a %{domain}
sign_up:
manual_review: As novas contas en %{domain} son comprobadas manualmente pola moderación. Para axudarnos a xestionar o teu rexistro, escribe algo acerca de ti e por que queres unha conta en %{domain}.
- preamble: Cunha conta neste servidor Mastodon poderás seguir a calquera outra persoa na rede, independentemente de onde estivese hospedada esa conta.
title: Imos crear a túa conta en %{domain}.
status:
account_status: Estado da conta
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 1c2796173b..c54b244310 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1193,7 +1193,6 @@ he:
set_new_password: סיסמה חדשה
setup:
email_below_hint_html: אנא בדקו בתיקיית הספאם, או בקשו קוד חדש. ניתן לתקן את הכתובת אם נפלה תקלדה.
- email_settings_hint_html: לחצו על הקישור שנשלח כדי לאשר את הכתובת %{email}. אנו ממתינים פה.
link_not_received: לא קיבלת קישור?
new_confirmation_instructions_sent: אתם עומדים לקבל הודעת דואל חדשה עם קיש/ור אימות בדקות הקרובות!
title: בדוק/בדקי את תיבת הדואר הנכנס שלך
@@ -1202,7 +1201,6 @@ he:
title: התחבר אל %{domain}
sign_up:
manual_review: פתיחת חשבון אצל %{domain} עוברת בדיקה ידנית על ידי הצוות שלנו. כדי לסייע בתהליך הרישום שלכןם, כתבו לנו על עצמכןם ולמה אתןם רוצותים חשבון בשרת %{domain}.
- preamble: כיוון שמסטודון מבוזרת, תוכל/י להשתמש בחשבון שלך משרתי מסטודון או רשתות תואמות אחרות אם אין לך חשבון על שרת זה.
title: הבה ניצור לך חשבון בשרת %{domain}.
status:
account_status: מצב חשבון
@@ -1752,6 +1750,7 @@ he:
scheduled_statuses:
over_daily_limit: חרגת מהמספר המקסימלי של הודעות מתוזמנות להיום, שהוא %{limit}
over_total_limit: חרגת מהמספר המקסימלי של הודעות מתוזמנות, שהוא %{limit}
+ too_soon: התאריך חייב להיות עתידי
self_destruct:
lead_html: לרוע המזל, %{domain} עומד לרדת באופן סופי. אם היה לך חשבון כאן, לא תהיה אפשרות להמשיך להשתמש בו, אבל ניתן לבקש גיבוי של כל המידע שלך.
title: שרת זה בתהליכי סגירה
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index fccda994ea..70dd230251 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1157,7 +1157,6 @@ hu:
set_new_password: Új jelszó beállítása
setup:
email_below_hint_html: Nézd meg a levélszemét mappát, vagy kérj egy újat. Módosíthatod az e-mail-címet, ha az hibás.
- email_settings_hint_html: Kattints a hivatkozásra, melyet a(z) %{email} megerősítése céljából küldtünk. Addig várni fogunk.
link_not_received: Nem kaptad meg a hivatkozást?
new_confirmation_instructions_sent: Néhány perc múlva új e-mailt fogsz kapni a megerősítési hivatkozással.
title: Bejövő postaláda ellenőrzése
@@ -1166,7 +1165,6 @@ hu:
title: 'Bejelentkezés ide: %{domain}'
sign_up:
manual_review: A(z) %{domain} regisztrációi a moderátorok kézi felülvizsgálatán mennek át. Hogy segítsd a regisztráció feldolgozását, írj röviden magadról, és hogy miért szeretnél fiókot a(z) %{domain} oldalon.
- preamble: Egy fiókkal ezen a Mastodon-kiszolgálón követhetsz bárkit a hálózaton, függetlenül attól, hogy az illető fiókja melyik kiszolgálón található.
title: Állítsuk be a fiókod a %{domain} kiszolgálón.
status:
account_status: Fiók állapota
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index a6924c2b07..751d6af196 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -482,7 +482,6 @@ hy:
title: Մտնել %{domain}
sign_up:
manual_review: Գրանցումները %{domain}-ում վաւերացնում են մոդերատորնրը։ Մեզ օգնելու համար մի փոքր պատմէք ձեր մասին եւ թե ինչու էք ուզում գրանցուել։
- preamble: Այս հանգոյցում հաշիւ ունենալով դուք կարող էք հերտեւել դաշնեզերքի ցանկացած օգտատիրոջ, անկախ նրանից թե որտեղ է նրա հաշիւը տեղակայուած։
title: Ստեղծի՜ր հաշիւ %{domain}-ում
status:
account_status: Հաշուի կարգավիճակ
diff --git a/config/locales/ia.yml b/config/locales/ia.yml
index 9914db1aec..902f9be744 100644
--- a/config/locales/ia.yml
+++ b/config/locales/ia.yml
@@ -1157,7 +1157,6 @@ ia:
set_new_password: Definir un nove contrasigno
setup:
email_below_hint_html: Consulta tu dossier de spam, o requesta un altere ligamine de confirmation. Tu pote corriger tu adresse de e-mail si illo es errate.
- email_settings_hint_html: Clicca sur le ligamine que nos te ha inviate pro verificar %{email}. Nos te attendera hic.
link_not_received: Necun ligamine recipite?
new_confirmation_instructions_sent: Tu recipera un nove e-mail con le ligamine de confirmation in poc minutas!
title: Consulta tu cassa de entrata
@@ -1166,7 +1165,6 @@ ia:
title: Aperir session sur %{domain}
sign_up:
manual_review: Le inscriptiones sur %{domain} passa per un revision manual de nostre moderatores. Pro adjutar nos a processar tu inscription, per favor scribe un poco sur te e explica proque tu vole un conto sur %{domain}.
- preamble: Con un conto sur iste servitor de Mastodon, tu potera sequer qualcunque altere persona sur le rete, independentemente de ubi su conto es albergate.
title: Lassa nos installar tu conto sur %{domain}.
status:
account_status: Stato del conto
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 60c2026667..1b7205bb91 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -918,7 +918,6 @@ id:
sign_in:
title: Masuk ke %{domain}
sign_up:
- preamble: Dengan sebuah akun di server Mastodon ini, Anda akan dapat mengikuti orang lain dalam jaringan, di mana pun akun mereka berada.
title: Mari kita siapkan Anda di %{domain}.
status:
account_status: Status akun
diff --git a/config/locales/ie.yml b/config/locales/ie.yml
index 5dde082330..af35e1c82e 100644
--- a/config/locales/ie.yml
+++ b/config/locales/ie.yml
@@ -1062,7 +1062,6 @@ ie:
security: Securitá
set_new_password: Establisser nov passa-parol
setup:
- email_settings_hint_html: Clicca li ligament quel noi inviat a te por verificar %{email}. Noi va atender ci.
link_not_received: Recivet null ligament?
title: Vider tui inbuxe
sign_in:
@@ -1070,7 +1069,6 @@ ie:
title: Aperter session che %{domain}
sign_up:
manual_review: Adhesiones a %{domain} es tractat manualmen de nor moderatores. Por auxiliar nos tractar tui aplication, scri un poc pri te e pro quo tu vole un conto che %{domain}.
- preamble: Med un conto che ti-ci Mastodon-servitor, tu va posser sequer quelcunc altri person in li retage, sin egarda a u logia su conto.
title: Crear un conto che %{domain}.
status:
account_status: Statu del conto
diff --git a/config/locales/io.yml b/config/locales/io.yml
index c0e4ac6dc1..36d09c4056 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1037,7 +1037,6 @@ io:
security: Chanjar pasvorto
set_new_password: Selektar nova pasvorto
setup:
- email_settings_hint_html: Uzez la ligilo quan ni sendis a vu por verifikar %{email}. Ni vartos hike.
link_not_received: Ka vu ne recevis ligilo?
title: Kontrolez vua retposti
sign_in:
@@ -1045,7 +1044,6 @@ io:
title: Enirez a %{domain}
sign_up:
manual_review: Registragi che %{domain} es revuata da nia personaro. Por helpar ni traktar vua aplikajo, skribez kelko pri vu e pro quo vu volas konto che %{domain}.
- preamble: Per konto en ca servilo di Mastodon, on povas sequar irga persono en ca reto, ne ye ube ona konto hostagisas.
title: Ni komencigez vu en %{domain}.
status:
account_status: Kontostando
diff --git a/config/locales/is.yml b/config/locales/is.yml
index d606106421..dd850b748a 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1161,7 +1161,6 @@ is:
set_new_password: Stilla nýtt lykilorð
setup:
email_below_hint_html: Skoðaðu ruslpóstmöppuna þína, eða biddu um annan póst. Þú getur leiðrétt tölvupóstfangið þitt ef þörf er á.
- email_settings_hint_html: Ýttu á tengilinn sem við sendum þér til að staðfesta %{email}. Við bíðum á meðan.
link_not_received: Fékkstu ekki neinn tengil?
new_confirmation_instructions_sent: Þú munt fá nýjan tölvupóst með staðfestingartengli innan skamms!
title: Athugaðu pósthólfið þitt
@@ -1170,7 +1169,6 @@ is:
title: Skrá inn á %{domain}
sign_up:
manual_review: Nýskráningar á %{domain} fara í gegnum handvirka yfirferð hjá umsjónarfólkinu okkar. Til að flýta fyrir skráningarferlinu, ættirðu að skrifa smávegis um þig og ástæður þess að þú viljir skrá þig á %{domain}.
- preamble: Með notandaaðgangi á þessum Mastodon-þjóni geturðu fylgst með hverjum sem er á netkerfinu, sama hvar notandaaðgangurinn þeirra er hýstur.
title: Förum núna að setja þig upp á %{domain}.
status:
account_status: Staða notandaaðgangs
diff --git a/config/locales/it.yml b/config/locales/it.yml
index f80728be0a..28b0900fa6 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1159,7 +1159,7 @@ it:
set_new_password: Imposta una nuova password
setup:
email_below_hint_html: Controlla la tua cartella spam o richiedine un'altra. Puoi correggere il tuo indirizzo e-mail, se è sbagliato.
- email_settings_hint_html: Fai clic sul link che ti abbiamo inviato per verificare %{email}. Aspetteremo proprio qui.
+ email_settings_hint_html: Clicca sul collegamento che abbiamo inviato all'indirizzo %{email}, per iniziare a usare Mastodon. Ti aspettiamo qui.
link_not_received: Non hai ricevuto un link?
new_confirmation_instructions_sent: Riceverai una nuova e-mail con il link di conferma entro pochi minuti!
title: Controlla la tua posta in arrivo
@@ -1168,7 +1168,7 @@ it:
title: Accedi a %{domain}
sign_up:
manual_review: Le registrazioni su %{domain} vengono sottoposte a revisione manuale da parte dei nostri moderatori. Per aiutarci a elaborare la tua registrazione, scrivi qualcosa su di te e sul motivo per cui desideri un account su %{domain}.
- preamble: Con un account su questo server Mastodon, sarai in grado di seguire qualsiasi altra persona sulla rete, indipendentemente da dove sia ospitato il suo account.
+ preamble: Con un account su questo server Mastodon, potrai seguire qualsiasi altra persona sul fediverso, indipendentemente da dove sia ospitato il suo account.
title: Lascia che ti configuriamo su %{domain}.
status:
account_status: Stato dell'account
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 7b992c743a..50ef37b4e1 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -1139,7 +1139,6 @@ ja:
set_new_password: 新しいパスワード
setup:
email_below_hint_html: 確認メールが迷惑メールフォルダに振り分けられていないか確認してください。メールアドレスを間違えた場合は、ここでメールアドレスの変更と確認メールの再送ができます。
- email_settings_hint_html: メールに記載のリンクを開いて %{email} を確認してください。
link_not_received: 確認メールを受信できない場合は
new_confirmation_instructions_sent: 確認用のリンクを記載した新しいメールを送信しました
title: 確認メールを送信しました
@@ -1148,7 +1147,6 @@ ja:
title: "%{domain}にログイン"
sign_up:
manual_review: "%{domain} への登録にはモデレーターによる承認が必要です。審査の参考になるように、簡単な自己紹介や %{domain} に登録したい理由などを記入してください。"
- preamble: この Mastodon サーバーのアカウントがあれば、ネットワーク上の他の人のアカウントがどこでホストされているかに関係なく、その人をフォローすることができます。
title: さあ %{domain} でセットアップしましょう.
status:
account_status: アカウントの状態
@@ -1638,6 +1636,7 @@ ja:
scheduled_statuses:
over_daily_limit: その日予約できる投稿数 %{limit}を超えています
over_total_limit: 予約できる投稿数 %{limit}を超えています
+ too_soon: 日付は未来でなければなりません
self_destruct:
lead_html: 残念ながら、%{domain} は恒久的に閉鎖されます。ここにお持ちだったアカウントを今後使うことはできませんが、これまでのデータのバックアップを要求することはまだ可能です。
title: このサーバーは閉鎖されます
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index 1f5c5ded79..e4f5dddbe2 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -518,13 +518,11 @@ kab:
security: Taɣellist
set_new_password: Egr-d awal uffir amaynut
setup:
- email_settings_hint_html: Sit ɣef useɣwen i ak-d-nceyyeε akken ad tesfeqdeḍ %{email}. Ad nerǧu da kan.
link_not_received: Ur k-id-iṣaḥ ara wassaɣ ?
sign_in:
preamble_html: Kcem ar %{domain} s inekcam-inek n tuqqna. Ma yella yezga-d umiḍan-ik deg uqeddac-nniḍen, ur tezmireḍ ara ad tkecmeḍ sya.
title: Akeččum ɣer %{domain}
sign_up:
- preamble: S umiḍan deg uqeddac-a n Mastodon, ad tizmireḍ ad tḍefreḍ win i ak·kem-yehwan deg uẓeṭṭa, anida yebɣu yili umiḍan-nnsen.
title: Iyya ad d-nessewjed tiɣawsiwin i %{domain}.
status:
account_status: Addad n umiḍan
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index c7e12961b6..a0da1275ed 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -1141,7 +1141,6 @@ ko:
set_new_password: 새 암호 설정
setup:
email_below_hint_html: 스팸 폴더를 체크해보거나, 새로 요청할 수 있습니다. 이메일을 잘못 입력한 경우 수정할 수 있습니다.
- email_settings_hint_html: "%{email}을 인증하기 위해 우리가 보낸 링크를 누르세요. 여기서 기다리겠습니다."
link_not_received: 링크를 못 받으셨나요?
new_confirmation_instructions_sent: 확인 링크가 담긴 이메일이 몇 분 안에 도착할것입니다!
title: 수신함 확인하기
@@ -1150,7 +1149,6 @@ ko:
title: "%{domain}에 로그인"
sign_up:
manual_review: "%{domain} 가입은 중재자들의 심사를 거쳐 진행됩니다. 가입 절차를 원활하게 하기 위해, 간단한 자기소개와 왜 %{domain}에 계정을 만들려고 하는지 적어주세요."
- preamble: 이 마스토돈 서버의 계정을 통해, 네트워크에 속한 다른 사람들을, 그들이 어떤 서버에 있든 팔로우 할 수 있습니다.
title: "%{domain}에 가입하기 위한 정보들을 입력하세요."
status:
account_status: 계정 상태
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 77d14c6ca8..32d52f3923 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -932,7 +932,6 @@ ku:
preamble_html: Têketinê bike bi riya %{domain} xwe. Ku ajimêrê te li ser rajekareke cuda hatiye pêşkêşkirin, tu yê nikaribû têketinê bikî vir.
title: Têkeve %{domain}
sign_up:
- preamble: Bi ajimêrekê li ser vê rajekarê Mastodon re, tu yê karîbî her keseke din li ser torê bişopînî, her ku ajimêrê wan li ku derê tê pêşkêşkirin.
title: Ka em te bi rê bixin li ser %{domain}.
status:
account_status: Rewşa ajimêr
diff --git a/config/locales/lad.yml b/config/locales/lad.yml
index 69bcd5b941..b206b9de69 100644
--- a/config/locales/lad.yml
+++ b/config/locales/lad.yml
@@ -1122,7 +1122,6 @@ lad:
set_new_password: Establese muevo kod
setup:
email_below_hint_html: Mira en tu kuti de spam o solisita de muevo. Si el adreso de posta elektronika ke aparese aki es yerrado, puedes trokarlo aki.
- email_settings_hint_html: Klika el atadjiko ke te embimos para verifikar %{email}. Asperaremos aki.
link_not_received: No risivites un atadijo?
new_confirmation_instructions_sent: Resiviras un muevo mesaj de posta elektronika kon el atadjio de konfirmasyon en unos minutos!
title: Reviza tu kuti de arivo
@@ -1131,7 +1130,6 @@ lad:
title: Konektate kon %{domain}
sign_up:
manual_review: Las enrejistrasyones en %{domain} pasan por la revizyon manuala de muestros moderadores. Para ayudarmos a prosesar tu enrejistrasyon, eskrive un poko sovre ti i por ke keres un kuento en %{domain}.
- preamble: Kon un kuento en este sirvidor de Mastodon, podras segir a kualkier otra persona en la red, endependientemente del sirvidor en el ke se tope.
title: Kriya kuento de Mastodon en %{domain}.
status:
account_status: Estado del kuento
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index e629373483..09fad59410 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -818,7 +818,7 @@ lt:
security: Apsauga
set_new_password: Nustatyti naują slaptažodį
setup:
- email_settings_hint_html: Spustelėk mūsų atsiųstą nuorodą, kad patikrintum %{email}. Mes lauksime čia.
+ email_settings_hint_html: Spustelėkite nuorodą, kurią atsiuntėme adresu %{email}, kad pradėtumėte naudoti „Mastodon“. Lauksime čia.
link_not_received: Negavai nuorodos?
title: Patikrinti pašto dėžutę
sign_in:
@@ -1070,6 +1070,7 @@ lt:
scheduled_statuses:
over_daily_limit: Jūs pasieketė limitą (%{limit}) galimų toot'ų per dieną
over_total_limit: Jūs pasieketė %{limit} limitą galimų toot'ų
+ too_soon: data turi būti ateityje.
sessions:
activity: Paskutinė veikla
browser: Naršyklė
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index b49b57f27c..90ff8b6bcd 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -1135,7 +1135,6 @@ lv:
set_new_password: Iestatīt jaunu paroli
setup:
email_below_hint_html: Jāpārbauda sava surogātpasta mape vai jāpieprasa vēl vienu! Savu e-pasta adresi var labot, ja tā ir nepareiza.
- email_settings_hint_html: Noklikšķini uz saites, kuru mēs tev nosūtījām, lai apstiprinātu %{email}. Mēs tepat pagaidīsim.
link_not_received: Vai nesaņēmi sati?
new_confirmation_instructions_sent: Pēc dažām minūtēm saņemsi jaunu e-pasta ziņojumu ar apstiprinājuma saiti.
title: Pārbaudi savu iesūtni
@@ -1144,7 +1143,6 @@ lv:
title: Pieteikties %{domain}
sign_up:
manual_review: Reģistrācijas domēnā %{domain} manuāli pārbauda mūsu moderatori. Lai palīdzētu mums apstrādāt tavu reģistrāciju, uzraksti mazliet par sevi un to, kāpēc vēlies kontu %{domain}.
- preamble: Ar kontu šajā Mastodon serverī varēsi sekot jebkuram citam tīklā esošam cilvēkam neatkarīgi no tā, kur tiek mitināts viņa konts.
title: Atļauj tevi iestatīt %{domain}.
status:
account_status: Konta statuss
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index d872c342cb..461496fe07 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -1024,7 +1024,6 @@ ms:
security: Keselamatan
set_new_password: Tetapkan kata laluan baharu
setup:
- email_settings_hint_html: Klik pautan yang kami hantar kepada anda untuk mengesahkan %{email}. Kami akan tunggu di sini.
link_not_received: Tidak mendapat pautan?
title: Semak peti masuk anda
sign_in:
@@ -1032,7 +1031,6 @@ ms:
title: Log masuk ke %{domain}
sign_up:
manual_review: Pendaftaran pada %{domain} melalui semakan manual oleh penyederhana kami. Untuk membantu kami memproses pendaftaran anda, tulis sedikit tentang diri anda dan sebab anda mahukan akaun di %{domain}.
- preamble: Dengan akaun pada server Mastodon ini, anda akan dapat mengikuti mana-mana orang lain di rangkaian, tidak kira di mana akaun mereka dihoskan.
title: Mari sediakan anda pada %{domain}.
status:
account_status: Status akaun
diff --git a/config/locales/my.yml b/config/locales/my.yml
index 4c9573c2eb..342510bc48 100644
--- a/config/locales/my.yml
+++ b/config/locales/my.yml
@@ -1017,7 +1017,6 @@ my:
security: လုံခြုံရေး
set_new_password: စကားဝှက်အသစ် သတ်မှတ်ပါ။
setup:
- email_settings_hint_html: "%{email} အတည်ပြုရန် သင့်ထံပေးပို့သော လင့်ခ်ကို နှိပ်ပါ။ စောင့်နေပါမည်။"
link_not_received: လင့်ခ် မရခဲ့ဘူးလား။
title: သင့်ဝင်စာပုံးကို စစ်ဆေးပါ
sign_in:
@@ -1025,7 +1024,6 @@ my:
title: "%{domain} သို့ အကောင့်ဝင်ရန်"
sign_up:
manual_review: "%{domain} ၌ အကောင့်ဖွင့်ခြင်းများတွင် ကျွန်ုပ်တို့၏ ကြီးကြပ်သူများမှ ကိုယ်တိုင်သုံးသပ် လုပ်ဆောင်လျက်ရှိပါသည်။ သင့်အကြောင်းနှင့် %{domain} တွင် အကောင့်ဖွင့်လိုသည့်အကြောင်း အနည်းငယ်ရေးသားခြင်းဖြင့် သင့်အကောင့်စာရင်းသွင်းခြင်းမှာ ကျွန်ုပ်တို့ကို အကူအညီဖြစ်စေပါသည်။"
- preamble: ဤ Mastodon အကောင့်တစ်ခုဖြင့် သင်သည် ကွန်ရက်ပေါ်ရှိ အခြားမည်သူ့မဆို မည်သည့်ဆာဗာတွင်ရှိစေကာမူ သင်စောင့်ကြည့်နိုင်မည်ဖြစ်ပါသည်။
title: "%{domain} တွင် ထည့်သွင်းရန်။"
status:
account_status: အကောင့်အခြေအနေ
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 86fc42527a..fd0f7bb1f0 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -1157,7 +1157,6 @@ nl:
set_new_password: Nieuw wachtwoord instellen
setup:
email_below_hint_html: Controleer je map met spam, of vraag een nieuwe bevestigingslink aan. Je kan je e-mailadres corrigeren als het verkeerd is.
- email_settings_hint_html: Klik op de link die we je hebben gestuurd om %{email} te verifiëren. We wachten wel even.
link_not_received: Geen link ontvangen?
new_confirmation_instructions_sent: Je ontvangt binnen enkele minuten een nieuwe e-mail met de bevestigingslink!
title: Kijk in je mailbox
@@ -1166,7 +1165,6 @@ nl:
title: Inloggen op %{domain}
sign_up:
manual_review: Inschrijvingen op %{domain} worden handmatig door onze moderatoren beoordeeld. Schrijf wat over jezelf en waarom je een account op %{domain} wilt. Hiermee help je ons om de aanvraag van jouw account goed te kunnen verwerken.
- preamble: Je kunt met een Mastodon-account iedereen in het netwerk volgen, ongeacht waar deze persoon een account heeft.
title: Laten we je account op %{domain} instellen.
status:
account_status: Accountstatus
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index c0b6aac8bd..83803fb0f6 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1157,7 +1157,6 @@ nn:
set_new_password: Lag nytt passord
setup:
email_below_hint_html: Sjekk søppelpostmappa di, eller be om ein ny. Du kan endra e-postadressa di dersom ho er feil.
- email_settings_hint_html: Klikk lenka me sende deg for å stadfesta %{email}. Me sit her og ventar.
link_not_received: Fekk du ikkje lenka?
new_confirmation_instructions_sent: Du vil få ein ny e-post med stadfestingslenke innan nokre minutt!
title: Sjekk innboksen din
@@ -1166,7 +1165,6 @@ nn:
title: Logg inn på %{domain}
sign_up:
manual_review: Når du lagar ein konto på %{domain}, vil moderatorane våre gå gjennom påmeldinga di manuelt. For å hjelpa oss med påmeldinga di, er det fint om du skriv litt om deg sjølv og kvifor du vil ha ein konto på %{domain}.
- preamble: Med ein konto på denne Mastodon-tenaren kan du fylgja andre folk på nettverket, uansett kvar dei har brukarkontoen sin.
title: La oss få deg satt i gang på %{domain}.
status:
account_status: Kontostatus
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 01672fe3b3..5b66bde947 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -1056,7 +1056,6 @@
security: Sikkerhet
set_new_password: Angi nytt passord
setup:
- email_settings_hint_html: Klikk på lenken vi sendte deg for å bekrefte %{email}. Vi venter her.
link_not_received: Fikk du ikke lenken?
title: Sjekk innboksen din
sign_in:
@@ -1064,7 +1063,6 @@
title: Logg inn på %{domain}
sign_up:
manual_review: Registreringer på %{domain} krever manuell gjennomgang av moderatorene våre. For å hjelpe oss med å behandle registreringen din, skriv litt om deg selv og hvorfor du vil ha en konto på %{domain}.
- preamble: Med en konto på denne Mastodon-tjeneren vil du kunne følge andre personer på nettverket, uansett hvor kontoen deres holder til.
title: La oss få deg satt i gang på %{domain}.
status:
account_status: Kontostatus
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 32425d8844..02a1fc85dc 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -1193,7 +1193,6 @@ pl:
set_new_password: Ustaw nowe hasło
setup:
email_below_hint_html: Sprawdź folder ze spamem lub poproś o inny link potwierdzający. Możesz poprawić swój adres e-mail, jeśli jest niepoprawny.
- email_settings_hint_html: Kliknij link, który wysłaliśmy do Ciebie w celu zweryfikowania %{email}. Poczekamy tutaj.
link_not_received: Nie otrzymano linku?
new_confirmation_instructions_sent: Za kilka minut otrzymasz nowy e-mail z linkiem potwierdzającym!
title: Sprawdź swoją skrzynkę odbiorczą
@@ -1202,7 +1201,6 @@ pl:
title: Zaloguj się do %{domain}
sign_up:
manual_review: Rejestracja na %{domain} przechodzi przez ręczne sprawdzanie przez naszych moderatorów. Aby pomóc nam usprawnić ten proces, napisz coś o sobie oraz dlaczego chcesz założyć konto na %{domain}.
- preamble: Z kontem na tym serwerze Mastodon będziesz mógł obserwować każdą inną osobę w sieci, niezależnie od miejsca przechowywania ich konta.
title: Skonfigurujmy Twoje konto na %{domain}.
status:
account_status: Stan konta
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 23a3b61f9e..f79a56e148 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1157,7 +1157,6 @@ pt-BR:
set_new_password: Definir uma nova senha
setup:
email_below_hint_html: Verifique a sua pasta de spam, ou solicite outra. Você pode corrigir o seu endereço de e-mail se estiver errado.
- email_settings_hint_html: Clique no link que te enviamos para verificar %{email}. Esperaremos aqui.
link_not_received: Não recebeu um link?
new_confirmation_instructions_sent: Você receberá um novo e-mail com o link de confirmação em alguns minutos!
title: Verifique sua caixa de entrada
@@ -1166,7 +1165,6 @@ pt-BR:
title: Entrar em %{domain}
sign_up:
manual_review: Inscrições no %{domain} passam pela revisão manual dos nossos moderadores. Para nos ajudar a processar o seu cadastro, escreva um pouco sobre você e por que você quer uma conta no %{domain}.
- preamble: Com uma conta neste servidor Mastodon, você poderá seguir qualquer outra pessoa na rede, independentemente de onde sua conta esteja hospedada.
title: Então vamos lá criar uma conta em %{domain}.
status:
account_status: Status da conta
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index cdbed49a8d..b4ad361367 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1138,7 +1138,6 @@ pt-PT:
set_new_password: Editar palavra-passe
setup:
email_below_hint_html: Verifique a sua pasta de spam ou solicite outra. Pode corrigir o seu endereço de e-mail se estiver errado.
- email_settings_hint_html: Clique no link que enviamos para verificar %{email}. Esperaremos aqui.
link_not_received: Não recebeu um link?
new_confirmation_instructions_sent: Irá receber uma nova mensagem de e-mail com a ligação de confirmação dentro de alguns minutos!
title: Verifique a caixa de entrada do seu e-mail
@@ -1147,7 +1146,6 @@ pt-PT:
title: Iniciar sessão em %{domain}
sign_up:
manual_review: Inscrições no %{domain} passam por uma revisão manual pelos nossos moderadores. Para nos ajudar a processar o seu pedido de inscrição, escreva um pouco sobre si e o porquê de quer uma conta no %{domain}.
- preamble: Com uma conta neste servidor Mastodon, poderá seguir qualquer outra pessoa na rede, independentemente do servidor onde a conta esteja hospedada.
title: Vamos lá inscrevê-lo em %{domain}.
status:
account_status: Estado da conta
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 4a1dbb1dc1..d68c338588 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1193,7 +1193,6 @@ ru:
set_new_password: Задать новый пароль
setup:
email_below_hint_html: Проверьте папку "Спам" или запросите другую. Вы можете исправить свой адрес электронной почты, если он неправильный.
- email_settings_hint_html: Нажмите на ссылку, которую мы отправили вам для проверки %{email}. Мы будем ждать прямо здесь.
link_not_received: Не получили ссылку?
new_confirmation_instructions_sent: Через несколько минут вы получите новое письмо со ссылкой для подтверждения!
title: Проверьте свой почтовый ящик
@@ -1202,7 +1201,6 @@ ru:
title: Войти в %{domain}
sign_up:
manual_review: Регистрация на %{domain} проходит через ручную проверку нашими модераторами. Чтобы помочь нам обработать вашу регистрацию, напишите немного о себе и о том, почему вы хотите получить аккаунт на %{domain}.
- preamble: С учётной записью на этом сервере Mastodon вы сможете следить за любым другим пользователем в сети, независимо от того, где размещён их аккаунт.
title: Зарегистрируйтесь в %{domain}.
status:
account_status: Статус учётной записи
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index be3383ea66..ad97aa194b 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -922,7 +922,6 @@ sco:
security: Security
set_new_password: Set new passwird
sign_up:
- preamble: Wi a accoont on this Mastodon server, ye'll be able tae follae onie ither person on the netwirk, regairdless o whaur their accoont is hostit.
title: Let's get ye set up on %{domain}.
status:
account_status: Accoont status
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index 0c5c10d8bd..058b09a84c 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -183,7 +183,7 @@ eo:
defaults:
autofollow: Inviti al sekvi vian konton
avatar: Rolfiguro
- bot: Tio estas robota konto
+ bot: Ĉi tio estas aŭtomata konto
chosen_languages: Filtri lingvojn
confirm_new_password: Konfirmi novan pasvorton
confirm_password: Konfirmi pasvorton
diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml
index 2278fda6da..6286efc41a 100644
--- a/config/locales/simple_form.es-MX.yml
+++ b/config/locales/simple_form.es-MX.yml
@@ -25,7 +25,7 @@ es-MX:
type_html: Elige qué hacer con %{acct}
types:
disable: Evitar que el usuario utilice su cuenta, pero no eliminar ni ocultar sus contenidos.
- none: Utilizar esto para enviar una advertencia al usuario, sin poner en marcha ninguna otra acción.
+ none: Usa esto para enviar una advertencia al usuario, sin desencadenar ninguna otra acción.
sensitive: Forzar que todos los archivos multimedia de este usuario sean marcados como sensibles.
silence: Evita que el usuario pueda publicar con visibilidad pública, y oculta sus publicaciones y notificaciones a personas que no lo siguen. Cierra todas las denuncias contra esta cuenta.
suspend: Evita cualquier interacción desde o hacia esta cuenta y elimina su contenido. Reversible en 30 días. Cierra todas las denuncias contra esta cuenta.
@@ -48,7 +48,7 @@ es-MX:
digest: Solo enviado tras un largo periodo de inactividad y solo si has recibido mensajes personales durante tu ausencia
email: Se le enviará un correo de confirmación
header: WEBP, PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px
- inbox_url: Copia la URL de la página principal del relés que quieres utilizar
+ inbox_url: Copia la URL de la página principal del relé que deseas usar
irreversible: Las publicaciones filtradas desaparecerán irreversiblemente, incluso si este filtro es eliminado más adelante
locale: El idioma de la interfaz de usuario, correos y notificaciones push
password: Utiliza al menos 8 caracteres
@@ -61,7 +61,7 @@ es-MX:
setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia
setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible
setting_system_scrollbars_ui: Solo se aplica a los 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_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
username: Puedes usar letras, números y guiones bajos
whole_word: Cuando la palabra clave o frase es solo alfanumérica, solo será aplicado si concuerda con toda la palabra
@@ -134,7 +134,7 @@ es-MX:
chosen_languages: Cuando se marca, solo se mostrarán las publicaciones en los idiomas seleccionados en las líneas de tiempo públicas
role: El rol controla qué permisos tiene el usuario.
user_role:
- color: Color que se utilizará para el rol a lo largo de la interfaz de usuario, como RGB en formato hexadecimal
+ color: Color que se usará para el rol en toda la interfaz de usuario, como RGB en formato hexadecimal
highlighted: Esto hace que el rol sea públicamente visible
name: Nombre público del rol, si el rol se establece para que se muestre como una insignia
permissions_as_keys: Los usuarios con este rol tendrán acceso a...
@@ -223,12 +223,12 @@ es-MX:
setting_expand_spoilers: Siempre expandir las publicaciones marcadas con advertencias de contenido
setting_hide_network: Ocultar tu red
setting_reduce_motion: Reducir el movimiento de las animaciones
- setting_system_font_ui: Utilizar la tipografía por defecto del sistema
+ setting_system_font_ui: Usar la fuente por defecto del sistema
setting_system_scrollbars_ui: Usar la barra de desplazamiento por defecto del sistema
setting_theme: Tema del sitio
setting_trends: Mostrar las tendencias de hoy
setting_unfollow_modal: Mostrar diálogo de confirmación antes de dejar de seguir a alguien
- setting_use_blurhash: Mostrar gradientes coloridos para contenido multimedia oculto
+ setting_use_blurhash: Mostrar degradados de colores para contenidos multimedia ocultos
setting_use_pending_items: Modo lento
severity: Severidad
sign_in_token_attempt: Código de seguridad
diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml
index d38aeaa414..ddf37cd0dc 100644
--- a/config/locales/simple_form.fr-CA.yml
+++ b/config/locales/simple_form.fr-CA.yml
@@ -3,12 +3,14 @@ fr-CA:
simple_form:
hints:
account:
+ attribution_domains_as_text: Un par ligne. Protège contre les fausses attributions.
discoverable: Vos messages publics et votre profil peuvent être mis en avant ou recommandés dans diverses parties de Mastodon et votre profil peut être suggéré à d’autres utilisateurs.
display_name: Votre nom complet ou votre nom cool.
fields: Votre page d'accueil, pronoms, âge, tout ce que vous voulez.
indexable: Vos messages publics peuvent apparaître dans les résultats de recherche sur Mastodon. Les personnes qui ont interagi avec vos messages peuvent les trouver dans une recherche quoi qu’il arrive.
note: 'Vous pouvez @mentionner d’autres personnes ou des #hashtags.'
show_collections: Les gens pourront voir les personnes que vous suivez ou qui vous suivent. Ceux que vous suivez verront que vous les suivez dans tous les cas.
+ unlocked: Les personnes pourront vous suivre sans en demander la permission. Décochez cette case si vous souhaitez examiner les demandes de suivi et choisir d'accepter ou de rejeter les nouveaux followers.
account_alias:
acct: Spécifiez l’identifiant@domaine du compte que vous souhaitez faire migrer
account_migration:
@@ -58,6 +60,7 @@ fr-CA:
setting_display_media_default: Masquer les médias marqués comme sensibles
setting_display_media_hide_all: Toujours masquer les médias
setting_display_media_show_all: Toujours afficher les médias
+ setting_system_scrollbars_ui: S'applique uniquement aux navigateurs basés sur Safari et Chrome
setting_use_blurhash: Les dégradés sont basés sur les couleurs des images cachées mais n’en montrent pas les détails
setting_use_pending_items: Cacher les mises à jour des fils d’actualités derrière un clic, au lieu de les afficher automatiquement
username: Vous pouvez utiliser des lettres, des chiffres, et des tirets bas
@@ -142,6 +145,7 @@ fr-CA:
url: Là où les événements seront envoyés
labels:
account:
+ attribution_domains_as_text: Sites web autorisés à vous citer
discoverable: Autoriser des algorithmes de découverte à mettre en avant votre profil et vos messages
fields:
name: Étiquette
@@ -220,6 +224,7 @@ fr-CA:
setting_hide_network: Cacher votre réseau
setting_reduce_motion: Réduire la vitesse des animations
setting_system_font_ui: Utiliser la police par défaut du système
+ setting_system_scrollbars_ui: Utiliser la barre de défilement par défaut du système
setting_theme: Thème du site
setting_trends: Afficher les tendances du jour
setting_unfollow_modal: Afficher une fenêtre de confirmation avant de vous désabonner d’un compte
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index b601bf0b66..37cd7c918e 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -3,12 +3,14 @@ fr:
simple_form:
hints:
account:
+ attribution_domains_as_text: Un par ligne. Protège contre les fausses attributions.
discoverable: Vos messages publics et votre profil peuvent être mis en avant ou recommandés dans diverses parties de Mastodon et votre profil peut être suggéré à d’autres utilisateurs.
display_name: Votre nom complet ou votre nom rigolo.
fields: Votre page personnelle, vos pronoms, votre âge, ce que vous voulez.
indexable: Vos messages publics peuvent apparaître dans les résultats de recherche sur Mastodon. Les personnes qui ont interagi avec vos messages peuvent les trouver dans une recherche quoi qu’il arrive.
note: 'Vous pouvez @mentionner d’autres personnes ou des #hashtags.'
show_collections: Les gens pourront voir les personnes que vous suivez ou qui vous suivent. Ceux que vous suivez verront que vous les suivez dans tous les cas.
+ unlocked: Les personnes pourront vous suivre sans en demander la permission. Décochez cette case si vous souhaitez examiner les demandes de suivi et choisir d'accepter ou de rejeter les nouveaux followers.
account_alias:
acct: Spécifiez l’identifiant@domaine du compte à partir duquel vous souhaitez migrer
account_migration:
@@ -19,7 +21,7 @@ fr:
admin_account_action:
include_statuses: L’utilisateur·rice verra quels messages sont la source de l’action de modération ou de l’avertissement
send_email_notification: L’utilisateur recevra une explication de ce qu’il s’est passé avec son compte
- text_html: Facultatif. Vous pouvez utiliser la syntaxe des publications. Vous pouvez ajouter des présélections d'attention pour gagner du temps
+ text_html: Facultatif. Vous pouvez utiliser la syntaxe des messages. Vous pouvez ajouter des avertissements préconfigurés pour gagner du temps
type_html: Choisir que faire avec %{acct}
types:
disable: Empêcher l’utilisateur·rice d’utiliser son compte, mais ne pas supprimer ou masquer son contenu.
@@ -58,6 +60,7 @@ fr:
setting_display_media_default: Masquer les médias marqués comme sensibles
setting_display_media_hide_all: Toujours masquer les médias
setting_display_media_show_all: Toujours afficher les médias
+ setting_system_scrollbars_ui: S'applique uniquement aux navigateurs basés sur Safari et Chrome
setting_use_blurhash: Les dégradés sont basés sur les couleurs des images cachées mais n’en montrent pas les détails
setting_use_pending_items: Cacher les mises à jour des fils d’actualités derrière un clic, au lieu de les afficher automatiquement
username: Vous pouvez utiliser des lettres, des chiffres, et des tirets bas
@@ -99,7 +102,7 @@ fr:
thumbnail: Une image d'environ 2:1 affichée à côté des informations de votre serveur.
timeline_preview: Les utilisateur⋅rice⋅s déconnecté⋅e⋅s pourront parcourir les derniers messages publics disponibles sur le serveur.
trendable_by_default: Ignorer l'examen manuel du contenu tendance. Des éléments individuels peuvent toujours être supprimés des tendances après coup.
- trends: Les tendances montrent quelles publications, hashtags et actualités gagnent en ampleur sur votre serveur.
+ trends: Les tendances montrent quels messages, hashtags et actualités gagnent en popularité sur votre serveur.
trends_as_landing_page: Afficher le contenu tendance au lieu d'une description de ce serveur pour les comptes déconnectés et les non-inscrit⋅e⋅s. Nécessite que les tendances soient activées.
form_challenge:
current_password: Vous entrez une zone sécurisée
@@ -142,6 +145,7 @@ fr:
url: Là où les événements seront envoyés
labels:
account:
+ attribution_domains_as_text: Sites web autorisés à vous citer
discoverable: Autoriser des algorithmes de découverte à mettre en avant votre profil et vos messages
fields:
name: Étiquette
@@ -220,6 +224,7 @@ fr:
setting_hide_network: Cacher votre réseau
setting_reduce_motion: Réduire la vitesse des animations
setting_system_font_ui: Utiliser la police par défaut du système
+ setting_system_scrollbars_ui: Utiliser la barre de défilement par défaut du système
setting_theme: Thème du site
setting_trends: Afficher les tendances du jour
setting_unfollow_modal: Demander confirmation avant de vous désabonner d’un compte
diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml
index f8257a9da9..749efcb5b4 100644
--- a/config/locales/simple_form.ga.yml
+++ b/config/locales/simple_form.ga.yml
@@ -60,6 +60,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_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
username: Is féidir leat litreacha, uimhreacha, agus béim a úsáid
@@ -223,6 +224,7 @@ ga:
setting_hide_network: Folaigh do ghraf sóisialta
setting_reduce_motion: Laghdú ar an tairiscint i beochan
setting_system_font_ui: Úsáid cló réamhshocraithe an chórais
+ setting_system_scrollbars_ui: Bain úsáid as scrollbharra réamhshocraithe an chórais
setting_theme: Téama suímh
setting_trends: Taispeáin treochtaí an lae inniu
setting_unfollow_modal: Taispeáin dialóg deimhnithe sula ndíleanfaidh tú duine éigin
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index b29808dc14..a82e32756b 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -1166,7 +1166,6 @@ sl:
set_new_password: Nastavi novo geslo
setup:
email_below_hint_html: Poglejte v mapo neželene pošte ali zaprosite za novega. Če ste podali napačen e-naslov, ga lahko popravite.
- email_settings_hint_html: Kliknite povezavo, ki smo vam jo poslali, da overite %{email}. Počakali bomo.
link_not_received: Ali ste prejeli povezavo?
new_confirmation_instructions_sent: Čez nekaj minut boste prejeli novo e-sporočilo s potrditveno povezavo!
title: Preverite svojo dohodno e-pošto
@@ -1175,7 +1174,6 @@ sl:
title: Vpiši se v %{domain}
sign_up:
manual_review: Registracije na %{domain} ročno pregledajo naši moderatorji. Da nam olajšate obdelavo vaše prijave, zapišite kaj o sebi in zakaj si želite račun na %{domain}.
- preamble: Z računom na strežniku Mastodon boste lahko sledili vsem drugim v tem omrežju, ne glede na to, kje gostuje njihov račun.
title: Naj vas namestimo na %{domain}.
status:
account_status: Stanje računa
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index afce58503d..5abaf3b575 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -1151,7 +1151,6 @@ sq:
set_new_password: Caktoni fjalëkalim të ri
setup:
email_below_hint_html: Shihni te dosja juaj e të padëshiruarve, ose kërkoni një tjetër. Mundeni të saktësoni adresën tuaj email, nëse është gabim.
- email_settings_hint_html: Që të verifikoni %{email}, klikoni lidhjen që ju dërguam. Do të presim këtu.
link_not_received: S’morët lidhje?
new_confirmation_instructions_sent: Brenda pak mintuash do të merrni një email të ri me lidhjen e ripohimit!
title: Shihni te email-et tuaj
@@ -1160,7 +1159,6 @@ sq:
title: Bëni hyrjen te %{domain}
sign_up:
manual_review: Regjistrimet te %{domain} kalojnë një shqyrtim dorazi nga moderatorët tanë. Që të na ndihmoni të përfundojmë regjistrimin tuaj, na shkruani pakëz mbi veten dhe pse doni një llogari në %{domain}.
- preamble: Me një llogari në këtë shërbyes Mastodon, do të jeni në gjendje të ndiqni cilindo person tjetër në rrjet, pavarësisht se ku strehohet llogaria e tyre.
title: Le të ujdisim llogarinë tuaj në %{domain}.
status:
account_status: Gjendje llogarie
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 37c531b207..766552307d 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -1083,7 +1083,6 @@ sr-Latn:
security: Bezbednost
set_new_password: Postavi novu lozinku
setup:
- email_settings_hint_html: Kliknite na vezu koji smo vam poslali da verifikujete %{email}. Čekaćemo ovde.
link_not_received: Niste dobili vezu?
title: Proverite svoje prijemno sanduče
sign_in:
@@ -1091,7 +1090,6 @@ sr-Latn:
title: Prijavite se na %{domain}
sign_up:
manual_review: Naši moderatori ručno pregledaju registracije na %{domain}. Da biste nam pomogli da obradimo vašu registraciju, napišite nešto o sebi i zašto želite nalog na %{domain}.
- preamble: Sa nalogom na ovom Mastodon serveru, moći ćete da pratite bilo koga sa mreže, bez obzira na to na kom serveru se njegov/njen nalog nalazi.
title: Hajde da Vam namestimo nalog na %{domain}.
status:
account_status: Status naloga
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 7a8469d645..f61addafb6 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -1113,7 +1113,6 @@ sr:
security: Безбедност
set_new_password: Постави нову лозинку
setup:
- email_settings_hint_html: Кликните на везу који смо вам послали да верификујете %{email}. Чекаћемо овде.
link_not_received: Нисте добили везу?
title: Проверите своје пријемно сандуче
sign_in:
@@ -1121,7 +1120,6 @@ sr:
title: Пријавите се на %{domain}
sign_up:
manual_review: Наши модератори ручно прегледају регистрације на %{domain}. Да бисте нам помогли да обрадимо вашу регистрацију, напишите нешто о себи и зашто желите налог на %{domain}.
- preamble: Са налогом на овом Mastodon серверу, моћи ћете да пратите било кога са мреже, без обзира на то на ком серверу се његов/њен налог налази.
title: Хајде да Вам наместимо налог на %{domain}.
status:
account_status: Статус налога
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 8d4aa7f7da..3f0b05477f 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1157,7 +1157,6 @@ sv:
set_new_password: Skriv in nytt lösenord
setup:
email_below_hint_html: Kolla din skräppost-mapp eller begär en ny. Du kan korrigera din e-postadress om den är fel.
- email_settings_hint_html: Klicka på länken som vi har skickat till dig för att bekräfta %{email}. Vi väntar här.
link_not_received: Fick du ingen länk?
new_confirmation_instructions_sent: Du kommer att få ett nytt e-postmeddelande med bekräftelselänken om några minuter!
title: Kolla din inkorg
@@ -1166,7 +1165,6 @@ sv:
title: Logga in på %{domain}
sign_up:
manual_review: Registreringar på %{domain} går igenom manuell granskning av våra moderatorer. För att hjälpa oss att hantera din registrering, skriv lite om dig själv och varför du vill ha ett konto på %{domain}.
- preamble: Med ett konto på denna Mastodon-server kan du följa alla andra personer på nätverket, oavsett vilken server deras konto tillhör.
title: Låt oss få igång dig på %{domain}.
status:
account_status: Kontostatus
diff --git a/config/locales/th.yml b/config/locales/th.yml
index d0590d19ef..e3ed3989ff 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -1139,7 +1139,6 @@ th:
set_new_password: ตั้งรหัสผ่านใหม่
setup:
email_below_hint_html: ตรวจสอบโฟลเดอร์สแปมของคุณ หรือขออีเมลอื่น คุณสามารถแก้ไขที่อยู่อีเมลของคุณหากที่อยู่อีเมลผิด
- email_settings_hint_html: คลิกลิงก์ที่เราส่งถึงคุณเพื่อยืนยัน %{email} เราจะรออยู่ตรงนี้
link_not_received: ไม่ได้รับลิงก์?
new_confirmation_instructions_sent: คุณจะได้รับอีเมลใหม่พร้อมลิงก์การยืนยันในไม่กี่นาที!
title: ตรวจสอบกล่องขาเข้าของคุณ
@@ -1148,7 +1147,6 @@ th:
title: เข้าสู่ระบบ %{domain}
sign_up:
manual_review: การลงทะเบียนใน %{domain} จะผ่านการตรวจทานด้วยตนเองโดยผู้กลั่นกรองของเรา เพื่อช่วยให้เราประมวลผลการลงทะเบียนของคุณ เขียนสักนิดเกี่ยวกับตัวคุณเองและเหตุผลที่คุณต้องการบัญชีใน %{domain}
- preamble: ด้วยบัญชีในเซิร์ฟเวอร์ Mastodon นี้ คุณจะสามารถติดตามบุคคลอื่นใดในเครือข่าย โดยไม่คำนึงถึงที่ซึ่งบัญชีของเขาได้รับการโฮสต์
title: มาตั้งค่าของคุณใน %{domain} กันเลย
status:
account_status: สถานะบัญชี
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 18e8dd1338..e8b31bd1b4 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1157,7 +1157,6 @@ tr:
set_new_password: Yeni parola belirle
setup:
email_below_hint_html: İstenmeyenler dizininize bakın veya başka bir onay bağlantısı isteyin. Eğer yanlışsa e-posta adresinizi de düzeltebilirsiniz.
- email_settings_hint_html: "%{email} adresinizi doğrulamak için size gönderdiğimiz bağlantıya tıklayın. Biz burada bekliyoruz."
link_not_received: Bağlantı gelmedi mi?
new_confirmation_instructions_sent: Birkaç dakika içerisinde onaylama bağlantısını içeren yeni bir e-posta alacaksınız!
title: Gelen kutunuzu kontrol edin
@@ -1166,7 +1165,6 @@ tr:
title: "%{domain} giriş yapın"
sign_up:
manual_review: "%{domain} kayıtları moderatörler tarafından manuel olarak inceleniyor. Kaydınızı işlememizi kolaylaştırmak için kendiniz ve %{domain} sunucusundan neden hesap istediğiniz hakkında biraz bilgi verin."
- preamble: Bu Mastodon sunucusu üzerinden bir hesap ile ağdaki herhangi bir kişiyi, hesabı hangi sunucuda saklanırsa saklansın, takip edebilirsiniz.
title: "%{domain} için kurulumunuzu yapalım."
status:
account_status: Hesap durumu
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 40127b8917..4f2996714d 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1178,7 +1178,6 @@ uk:
set_new_password: Встановити новий пароль
setup:
email_below_hint_html: Перевірте теку "Спам", або зробіть ще один запит. Ви можете виправити свою електронну адресу, якщо вона неправильна.
- email_settings_hint_html: Натисніть на посилання, яке ми надіслали вам, щоб підтвердити %{email}. Ми чекатимемо прямо тут.
link_not_received: Не отримали посилання?
new_confirmation_instructions_sent: Ви отримаєте новий лист із посиланням для підтвердження протягом кількох хвилин!
title: Перевірте вашу поштову скриньку
@@ -1187,7 +1186,6 @@ uk:
title: Увійти до %{domain}
sign_up:
manual_review: Реєстрація на %{domain} проходить через ручний розгляд нашими модераторами. Щоб допомогти нам завершити вашу реєстрацію, напишіть трохи про себе і чому ви хочете зареєструватися на %{domain}.
- preamble: За допомогою облікового запису на цьому сервері Mastodon, ви зможете слідкувати за будь-якою іншою людиною в мережі, не зважаючи на те, де розміщений обліковий запис.
title: Налаштуймо вас на %{domain}.
status:
account_status: Стан облікового запису
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index b226c44701..c06cccfe81 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1139,7 +1139,6 @@ vi:
set_new_password: Đặt mật khẩu mới
setup:
email_below_hint_html: Kiểm tra hộp thư rác hoặc yêu cầu gửi lại. Bạn có thể sửa địa chỉ email của mình nếu sai.
- email_settings_hint_html: Nhấn vào liên kết chúng tôi vừa gửi để xác minh %{email}. Nhanh nhé bạn.
link_not_received: Không nhận được mã?
new_confirmation_instructions_sent: Bạn sẽ nhận được một email mới với liên kết xác minh sau vài phút!
title: Kiểm tra email của bạn
@@ -1148,7 +1147,6 @@ vi:
title: Đăng nhập %{domain}
sign_up:
manual_review: "%{domain} sẽ duyệt đăng ký thủ công. Để giúp chúng tôi duyệt nhanh, hãy viết một chút về bản thân và lý do bạn muốn có một tài khoản trên %{domain}."
- preamble: Với tài khoản trên máy chủ Mastodon này, bạn sẽ có thể theo dõi bất kỳ người nào thuộc các máy chủ khác.
title: Đang đăng ký trên %{domain}.
status:
account_status: Trạng thái tài khoản
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 7ce3eab939..65c96c05e6 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -1139,7 +1139,6 @@ zh-CN:
set_new_password: 设置新密码
setup:
email_below_hint_html: 请检查你的垃圾邮件文件夹,或请求重新发送邮件。如果你填写的邮箱地址有误,请更正。
- email_settings_hint_html: 请点击我们发送给 %{email} 地址中的确认链接。我在这儿等着你。
link_not_received: 没有收到链接?
new_confirmation_instructions_sent: 你将在几分钟内收到一封带有确认链接的新邮件!
title: 请检查你的收件箱
@@ -1148,7 +1147,6 @@ zh-CN:
title: 登录到 %{domain}
sign_up:
manual_review: 你在 %{domain} 上的注册需要经由管理人员手动审核。 为了帮助我们处理你的注册,请简要说明你为什么想在 %{domain} 上注册。
- preamble: 有了这个Mastodon服务器上的账户,你就可以关注Mastodon网络上的任何其他人,无论他们的账户在哪里。
title: 让我们在 %{domain} 上开始。
status:
account_status: 账户状态
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index cff96797ee..15b08c883e 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1044,7 +1044,6 @@ zh-HK:
security: 登入資訊
set_new_password: 設定新密碼
setup:
- email_settings_hint_html: 請點擊我們發送給你的連結來驗證 %{email}。我們會等着你。
link_not_received: 收不到連結嗎?
title: 檢查你的信箱
sign_in:
@@ -1052,7 +1051,6 @@ zh-HK:
title: 登入 %{domain}
sign_up:
manual_review: "%{domain} 的註冊均需要我們的管理員手動審核。為了幫助我們處理你的註冊,請填寫一些關於你的資訊,以及為何想在 %{domain} 上開設帳號。"
- preamble: 有了這個 Mastodon 伺服器的帳號,無論將帳號託管在何處,你都可以追蹤網絡上任何人。
title: 讓我為你在 %{domain} 上設定好。
status:
account_status: 帳戶文章
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 6de2e0fd52..7e9cd1fd51 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -1141,7 +1141,6 @@ zh-TW:
set_new_password: 設定新密碼
setup:
email_below_hint_html: 請檢查您的垃圾郵件資料夾,或是請求另一封驗證信。若不正確,您可以更正您的電子郵件地址。
- email_settings_hint_html: 請點擊我們寄給您連結以驗證 %{email}。我們將於此稍候。
link_not_received: 無法取得連結嗎?
new_confirmation_instructions_sent: 您將於幾分鐘之內收到新的包含驗證連結之電子郵件!
title: 請檢查您的收件匣
@@ -1150,7 +1149,6 @@ zh-TW:
title: 登入 %{domain}
sign_up:
manual_review: "%{domain} 上的註冊由我們的管理員進行人工審核。為協助我們處理您的註冊,請寫一些關於您自己的資訊以及您欲於 %{domain} 上註冊帳號之原因。"
- preamble: 若於此 Mastodon 伺服器擁有帳號,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。
title: 讓我們一起設定 %{domain} 吧!
status:
account_status: 帳號狀態
From 30aa0df88c00cc3597ad87a5b6402de4369e274c Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Mon, 9 Dec 2024 11:04:46 +0100
Subject: [PATCH 051/175] Add terms of service (#33055)
---
.../distributions_controller.rb | 18 ++
.../terms_of_service/drafts_controller.rb | 36 +++
.../terms_of_service/generates_controller.rb | 37 +++
.../terms_of_service/histories_controller.rb | 8 +
.../terms_of_service/previews_controller.rb | 16 +
.../terms_of_service/tests_controller.rb | 17 ++
.../admin/terms_of_service_controller.rb | 8 +
.../instances/terms_of_services_controller.rb | 16 +
.../terms_of_service_controller.rb | 11 +
app/helpers/formatting_helper.rb | 4 +
app/javascript/mastodon/api/instance.ts | 11 +
app/javascript/mastodon/api_types/instance.ts | 9 +
.../mastodon/features/about/index.jsx | 2 +-
.../features/getting_started/index.jsx | 2 +-
.../features/privacy_policy/index.jsx | 65 -----
.../features/privacy_policy/index.tsx | 90 ++++++
.../features/terms_of_service/index.tsx | 95 ++++++
.../features/ui/components/compose_panel.jsx | 3 +-
.../features/ui/components/link_footer.jsx | 95 ------
.../features/ui/components/link_footer.tsx | 105 +++++++
app/javascript/mastodon/features/ui/index.jsx | 2 +
.../features/ui/util/async-components.js | 4 +
app/javascript/mastodon/initial_state.js | 5 +-
app/javascript/mastodon/locales/en.json | 3 +-
app/javascript/styles/mailer.scss | 4 +-
app/javascript/styles/mastodon/admin.scss | 77 +++++
app/mailers/user_mailer.rb | 10 +
app/models/admin/action_log_filter.rb | 1 +
app/models/terms_of_service.rb | 34 +++
app/models/terms_of_service/generator.rb | 25 ++
app/policies/terms_of_service_policy.rb | 23 ++
app/serializers/initial_state_serializer.rb | 1 +
.../admin/terms_of_service/_links.html.haml | 6 +
.../terms_of_service/drafts/show.html.haml | 19 ++
.../terms_of_service/generates/show.html.haml | 41 +++
.../terms_of_service/histories/show.html.haml | 16 +
.../admin/terms_of_service/index.html.haml | 39 +++
.../terms_of_service/previews/show.html.haml | 20 ++
app/views/auth/registrations/new.html.haml | 2 +-
app/views/terms_of_service/show.html.haml | 6 +
.../terms_of_service_changed.html.haml | 17 ++
.../terms_of_service_changed.text.erb | 14 +
...te_terms_of_service_notification_worker.rb | 15 +
config/locales/an.yml | 1 -
config/locales/ar.yml | 1 -
config/locales/ast.yml | 1 -
config/locales/be.yml | 1 -
config/locales/bg.yml | 1 -
config/locales/ca.yml | 1 -
config/locales/cs.yml | 1 -
config/locales/cy.yml | 1 -
config/locales/da.yml | 1 -
config/locales/de.yml | 1 -
config/locales/el.yml | 1 -
config/locales/en-GB.yml | 1 -
config/locales/en.yml | 44 ++-
config/locales/eo.yml | 1 -
config/locales/es-AR.yml | 1 -
config/locales/es-MX.yml | 1 -
config/locales/es.yml | 1 -
config/locales/et.yml | 1 -
config/locales/eu.yml | 1 -
config/locales/fa.yml | 1 -
config/locales/fi.yml | 1 -
config/locales/fo.yml | 1 -
config/locales/fr-CA.yml | 1 -
config/locales/fr.yml | 1 -
config/locales/fy.yml | 1 -
config/locales/ga.yml | 1 -
config/locales/gd.yml | 1 -
config/locales/gl.yml | 1 -
config/locales/he.yml | 1 -
config/locales/hu.yml | 1 -
config/locales/hy.yml | 1 -
config/locales/ia.yml | 1 -
config/locales/id.yml | 1 -
config/locales/ie.yml | 1 -
config/locales/io.yml | 1 -
config/locales/is.yml | 1 -
config/locales/it.yml | 1 -
config/locales/ja.yml | 1 -
config/locales/kab.yml | 1 -
config/locales/ko.yml | 1 -
config/locales/ku.yml | 1 -
config/locales/lad.yml | 1 -
config/locales/lt.yml | 1 -
config/locales/lv.yml | 1 -
config/locales/ms.yml | 1 -
config/locales/my.yml | 1 -
config/locales/nl.yml | 1 -
config/locales/nn.yml | 1 -
config/locales/no.yml | 1 -
config/locales/oc.yml | 1 -
config/locales/pl.yml | 1 -
config/locales/pt-BR.yml | 1 -
config/locales/pt-PT.yml | 1 -
config/locales/ru.yml | 1 -
config/locales/sco.yml | 1 -
config/locales/simple_form.en.yml | 22 ++
config/locales/sl.yml | 1 -
config/locales/sq.yml | 1 -
config/locales/sr-Latn.yml | 1 -
config/locales/sr.yml | 1 -
config/locales/sv.yml | 1 -
config/locales/th.yml | 1 -
config/locales/tr.yml | 1 -
config/locales/uk.yml | 1 -
config/locales/vi.yml | 1 -
config/locales/zh-CN.yml | 1 -
config/locales/zh-HK.yml | 1 -
config/locales/zh-TW.yml | 1 -
config/navigation.rb | 1 +
config/routes.rb | 5 +-
config/routes/admin.rb | 12 +
config/routes/api.rb | 1 +
config/templates/terms-of-service.md | 274 ++++++++++++++++++
...20241123224956_create_terms_of_services.rb | 14 +
db/schema.rb | 9 +
.../distributions_controller_spec.rb | 22 ++
.../drafts_controller_spec.rb | 21 ++
.../generates_controller_spec.rb | 21 ++
.../histories_controller_spec.rb | 21 ++
.../previews_controller_spec.rb | 22 ++
.../terms_of_service/tests_controller_spec.rb | 22 ++
.../admin/terms_of_service_controller_spec.rb | 21 ++
.../terms_of_service_fabricator.rb | 8 +
spec/mailers/previews/user_mailer_preview.rb | 5 +
spec/models/terms_of_service_spec.rb | 27 ++
.../v1/instances/terms_of_services_spec.rb | 24 ++
129 files changed, 1456 insertions(+), 238 deletions(-)
create mode 100644 app/controllers/admin/terms_of_service/distributions_controller.rb
create mode 100644 app/controllers/admin/terms_of_service/drafts_controller.rb
create mode 100644 app/controllers/admin/terms_of_service/generates_controller.rb
create mode 100644 app/controllers/admin/terms_of_service/histories_controller.rb
create mode 100644 app/controllers/admin/terms_of_service/previews_controller.rb
create mode 100644 app/controllers/admin/terms_of_service/tests_controller.rb
create mode 100644 app/controllers/admin/terms_of_service_controller.rb
create mode 100644 app/controllers/api/v1/instances/terms_of_services_controller.rb
create mode 100644 app/controllers/terms_of_service_controller.rb
create mode 100644 app/javascript/mastodon/api/instance.ts
create mode 100644 app/javascript/mastodon/api_types/instance.ts
delete mode 100644 app/javascript/mastodon/features/privacy_policy/index.jsx
create mode 100644 app/javascript/mastodon/features/privacy_policy/index.tsx
create mode 100644 app/javascript/mastodon/features/terms_of_service/index.tsx
delete mode 100644 app/javascript/mastodon/features/ui/components/link_footer.jsx
create mode 100644 app/javascript/mastodon/features/ui/components/link_footer.tsx
create mode 100644 app/models/terms_of_service.rb
create mode 100644 app/models/terms_of_service/generator.rb
create mode 100644 app/policies/terms_of_service_policy.rb
create mode 100644 app/views/admin/terms_of_service/_links.html.haml
create mode 100644 app/views/admin/terms_of_service/drafts/show.html.haml
create mode 100644 app/views/admin/terms_of_service/generates/show.html.haml
create mode 100644 app/views/admin/terms_of_service/histories/show.html.haml
create mode 100644 app/views/admin/terms_of_service/index.html.haml
create mode 100644 app/views/admin/terms_of_service/previews/show.html.haml
create mode 100644 app/views/terms_of_service/show.html.haml
create mode 100644 app/views/user_mailer/terms_of_service_changed.html.haml
create mode 100644 app/views/user_mailer/terms_of_service_changed.text.erb
create mode 100644 app/workers/admin/distribute_terms_of_service_notification_worker.rb
create mode 100644 config/templates/terms-of-service.md
create mode 100644 db/migrate/20241123224956_create_terms_of_services.rb
create mode 100644 spec/controllers/admin/terms_of_service/distributions_controller_spec.rb
create mode 100644 spec/controllers/admin/terms_of_service/drafts_controller_spec.rb
create mode 100644 spec/controllers/admin/terms_of_service/generates_controller_spec.rb
create mode 100644 spec/controllers/admin/terms_of_service/histories_controller_spec.rb
create mode 100644 spec/controllers/admin/terms_of_service/previews_controller_spec.rb
create mode 100644 spec/controllers/admin/terms_of_service/tests_controller_spec.rb
create mode 100644 spec/controllers/admin/terms_of_service_controller_spec.rb
create mode 100644 spec/fabricators/terms_of_service_fabricator.rb
create mode 100644 spec/models/terms_of_service_spec.rb
create mode 100644 spec/requests/api/v1/instances/terms_of_services_spec.rb
diff --git a/app/controllers/admin/terms_of_service/distributions_controller.rb b/app/controllers/admin/terms_of_service/distributions_controller.rb
new file mode 100644
index 0000000000..c639b083dd
--- /dev/null
+++ b/app/controllers/admin/terms_of_service/distributions_controller.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class Admin::TermsOfService::DistributionsController < Admin::BaseController
+ before_action :set_terms_of_service
+
+ def create
+ authorize @terms_of_service, :distribute?
+ @terms_of_service.touch(:notification_sent_at)
+ Admin::DistributeTermsOfServiceNotificationWorker.perform_async(@terms_of_service.id)
+ redirect_to admin_terms_of_service_index_path
+ end
+
+ private
+
+ def set_terms_of_service
+ @terms_of_service = TermsOfService.find(params[:terms_of_service_id])
+ end
+end
diff --git a/app/controllers/admin/terms_of_service/drafts_controller.rb b/app/controllers/admin/terms_of_service/drafts_controller.rb
new file mode 100644
index 0000000000..5d32c0bd83
--- /dev/null
+++ b/app/controllers/admin/terms_of_service/drafts_controller.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+class Admin::TermsOfService::DraftsController < Admin::BaseController
+ before_action :set_terms_of_service
+
+ def show
+ authorize :terms_of_service, :create?
+ end
+
+ def update
+ authorize @terms_of_service, :update?
+
+ @terms_of_service.published_at = Time.now.utc if params[:action_type] == 'publish'
+
+ if @terms_of_service.update(resource_params)
+ log_action(:publish, @terms_of_service) if @terms_of_service.published?
+ redirect_to @terms_of_service.published? ? admin_terms_of_service_index_path : admin_terms_of_service_draft_path
+ else
+ render :show
+ end
+ end
+
+ private
+
+ def set_terms_of_service
+ @terms_of_service = TermsOfService.draft.first || TermsOfService.new(text: current_terms_of_service&.text)
+ end
+
+ def current_terms_of_service
+ TermsOfService.live.first
+ end
+
+ def resource_params
+ params.require(:terms_of_service).permit(:text, :changelog)
+ end
+end
diff --git a/app/controllers/admin/terms_of_service/generates_controller.rb b/app/controllers/admin/terms_of_service/generates_controller.rb
new file mode 100644
index 0000000000..28037674a3
--- /dev/null
+++ b/app/controllers/admin/terms_of_service/generates_controller.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+class Admin::TermsOfService::GeneratesController < Admin::BaseController
+ before_action :set_instance_presenter
+
+ def show
+ authorize :terms_of_service, :create?
+
+ @generator = TermsOfService::Generator.new(
+ domain: @instance_presenter.domain,
+ admin_email: @instance_presenter.contact.email
+ )
+ end
+
+ def create
+ authorize :terms_of_service, :create?
+
+ @generator = TermsOfService::Generator.new(resource_params)
+
+ if @generator.valid?
+ TermsOfService.create!(text: @generator.render)
+ redirect_to admin_terms_of_service_draft_path
+ else
+ render :show
+ end
+ end
+
+ private
+
+ def set_instance_presenter
+ @instance_presenter = InstancePresenter.new
+ end
+
+ def resource_params
+ params.require(:terms_of_service_generator).permit(*TermsOfService::Generator::VARIABLES)
+ end
+end
diff --git a/app/controllers/admin/terms_of_service/histories_controller.rb b/app/controllers/admin/terms_of_service/histories_controller.rb
new file mode 100644
index 0000000000..8f12341aea
--- /dev/null
+++ b/app/controllers/admin/terms_of_service/histories_controller.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class Admin::TermsOfService::HistoriesController < Admin::BaseController
+ def show
+ authorize :terms_of_service, :index?
+ @terms_of_service = TermsOfService.published.all
+ end
+end
diff --git a/app/controllers/admin/terms_of_service/previews_controller.rb b/app/controllers/admin/terms_of_service/previews_controller.rb
new file mode 100644
index 0000000000..0a1a966751
--- /dev/null
+++ b/app/controllers/admin/terms_of_service/previews_controller.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class Admin::TermsOfService::PreviewsController < Admin::BaseController
+ before_action :set_terms_of_service
+
+ def show
+ authorize @terms_of_service, :distribute?
+ @user_count = @terms_of_service.scope_for_notification.count
+ end
+
+ private
+
+ def set_terms_of_service
+ @terms_of_service = TermsOfService.find(params[:terms_of_service_id])
+ end
+end
diff --git a/app/controllers/admin/terms_of_service/tests_controller.rb b/app/controllers/admin/terms_of_service/tests_controller.rb
new file mode 100644
index 0000000000..e2483c1005
--- /dev/null
+++ b/app/controllers/admin/terms_of_service/tests_controller.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class Admin::TermsOfService::TestsController < Admin::BaseController
+ before_action :set_terms_of_service
+
+ def create
+ authorize @terms_of_service, :distribute?
+ UserMailer.terms_of_service_changed(current_user, @terms_of_service).deliver_later!
+ redirect_to admin_terms_of_service_preview_path(@terms_of_service)
+ end
+
+ private
+
+ def set_terms_of_service
+ @terms_of_service = TermsOfService.find(params[:terms_of_service_id])
+ end
+end
diff --git a/app/controllers/admin/terms_of_service_controller.rb b/app/controllers/admin/terms_of_service_controller.rb
new file mode 100644
index 0000000000..f70bfd2071
--- /dev/null
+++ b/app/controllers/admin/terms_of_service_controller.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class Admin::TermsOfServiceController < Admin::BaseController
+ def index
+ authorize :terms_of_service, :index?
+ @terms_of_service = TermsOfService.live.first
+ end
+end
diff --git a/app/controllers/api/v1/instances/terms_of_services_controller.rb b/app/controllers/api/v1/instances/terms_of_services_controller.rb
new file mode 100644
index 0000000000..e9e8e8ef55
--- /dev/null
+++ b/app/controllers/api/v1/instances/terms_of_services_controller.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class Api::V1::Instances::TermsOfServicesController < Api::V1::Instances::BaseController
+ before_action :set_terms_of_service
+
+ def show
+ cache_even_if_authenticated!
+ render json: @terms_of_service, serializer: REST::PrivacyPolicySerializer
+ end
+
+ private
+
+ def set_terms_of_service
+ @terms_of_service = TermsOfService.live.first!
+ end
+end
diff --git a/app/controllers/terms_of_service_controller.rb b/app/controllers/terms_of_service_controller.rb
new file mode 100644
index 0000000000..672fb07915
--- /dev/null
+++ b/app/controllers/terms_of_service_controller.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class TermsOfServiceController < ApplicationController
+ include WebAppControllerConcern
+
+ skip_before_action :require_functional!
+
+ def show
+ expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
+ end
+end
diff --git a/app/helpers/formatting_helper.rb b/app/helpers/formatting_helper.rb
index 9d5a2e2478..e827834975 100644
--- a/app/helpers/formatting_helper.rb
+++ b/app/helpers/formatting_helper.rb
@@ -64,6 +64,10 @@ module FormattingHelper
end
end
+ def markdown(text)
+ Redcarpet::Markdown.new(Redcarpet::Render::HTML, escape_html: true, no_images: true).render(text).html_safe # rubocop:disable Rails/OutputSafety
+ end
+
private
def wrapped_status_content_format(status)
diff --git a/app/javascript/mastodon/api/instance.ts b/app/javascript/mastodon/api/instance.ts
new file mode 100644
index 0000000000..ec9146fb34
--- /dev/null
+++ b/app/javascript/mastodon/api/instance.ts
@@ -0,0 +1,11 @@
+import { apiRequestGet } from 'mastodon/api';
+import type {
+ ApiTermsOfServiceJSON,
+ ApiPrivacyPolicyJSON,
+} from 'mastodon/api_types/instance';
+
+export const apiGetTermsOfService = () =>
+ apiRequestGet('v1/instance/terms_of_service');
+
+export const apiGetPrivacyPolicy = () =>
+ apiRequestGet('v1/instance/privacy_policy');
diff --git a/app/javascript/mastodon/api_types/instance.ts b/app/javascript/mastodon/api_types/instance.ts
new file mode 100644
index 0000000000..ead9774515
--- /dev/null
+++ b/app/javascript/mastodon/api_types/instance.ts
@@ -0,0 +1,9 @@
+export interface ApiTermsOfServiceJSON {
+ updated_at: string;
+ content: string;
+}
+
+export interface ApiPrivacyPolicyJSON {
+ updated_at: string;
+ content: string;
+}
diff --git a/app/javascript/mastodon/features/about/index.jsx b/app/javascript/mastodon/features/about/index.jsx
index 3b24a76368..24141b13cb 100644
--- a/app/javascript/mastodon/features/about/index.jsx
+++ b/app/javascript/mastodon/features/about/index.jsx
@@ -18,7 +18,7 @@ import Column from 'mastodon/components/column';
import { Icon } from 'mastodon/components/icon';
import { ServerHeroImage } from 'mastodon/components/server_hero_image';
import { Skeleton } from 'mastodon/components/skeleton';
-import LinkFooter from 'mastodon/features/ui/components/link_footer';
+import { LinkFooter} from 'mastodon/features/ui/components/link_footer';
const messages = defineMessages({
title: { id: 'column.about', defaultMessage: 'About' },
diff --git a/app/javascript/mastodon/features/getting_started/index.jsx b/app/javascript/mastodon/features/getting_started/index.jsx
index 8d26115dfa..ece06953ea 100644
--- a/app/javascript/mastodon/features/getting_started/index.jsx
+++ b/app/javascript/mastodon/features/getting_started/index.jsx
@@ -25,7 +25,7 @@ import StarIcon from '@/material-icons/400-24px/star.svg?react';
import { fetchFollowRequests } from 'mastodon/actions/accounts';
import Column from 'mastodon/components/column';
import ColumnHeader from 'mastodon/components/column_header';
-import LinkFooter from 'mastodon/features/ui/components/link_footer';
+import { LinkFooter } from 'mastodon/features/ui/components/link_footer';
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
import { canManageReports, canViewAdminDashboard } from 'mastodon/permissions';
diff --git a/app/javascript/mastodon/features/privacy_policy/index.jsx b/app/javascript/mastodon/features/privacy_policy/index.jsx
deleted file mode 100644
index d420546e4f..0000000000
--- a/app/javascript/mastodon/features/privacy_policy/index.jsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import PropTypes from 'prop-types';
-import { PureComponent } from 'react';
-
-import { FormattedMessage, FormattedDate, injectIntl, defineMessages } from 'react-intl';
-
-import { Helmet } from 'react-helmet';
-
-import api from 'mastodon/api';
-import Column from 'mastodon/components/column';
-import { Skeleton } from 'mastodon/components/skeleton';
-
-const messages = defineMessages({
- title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' },
-});
-
-class PrivacyPolicy extends PureComponent {
-
- static propTypes = {
- intl: PropTypes.object,
- multiColumn: PropTypes.bool,
- };
-
- state = {
- content: null,
- lastUpdated: null,
- isLoading: true,
- };
-
- componentDidMount () {
- api().get('/api/v1/instance/privacy_policy').then(({ data }) => {
- this.setState({ content: data.content, lastUpdated: data.updated_at, isLoading: false });
- }).catch(() => {
- this.setState({ isLoading: false });
- });
- }
-
- render () {
- const { intl, multiColumn } = this.props;
- const { isLoading, content, lastUpdated } = this.state;
-
- return (
-
-
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx
index a2521a93d2..2766bf3c61 100644
--- a/app/javascript/mastodon/features/ui/index.jsx
+++ b/app/javascript/mastodon/features/ui/index.jsx
@@ -71,6 +71,7 @@ import {
Explore,
About,
PrivacyPolicy,
+ TermsOfService,
} from './util/async-components';
import { ColumnsContextProvider } from './util/columns_context';
import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers';
@@ -198,6 +199,7 @@ class SwitchingColumnsArea extends PureComponent {
+
diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js
index 8c491e5a2f..1690794661 100644
--- a/app/javascript/mastodon/features/ui/util/async-components.js
+++ b/app/javascript/mastodon/features/ui/util/async-components.js
@@ -198,6 +198,10 @@ export function PrivacyPolicy () {
return import(/*webpackChunkName: "features/privacy_policy" */'../../privacy_policy');
}
+export function TermsOfService () {
+ return import(/*webpackChunkName: "features/terms_of_service" */'../../terms_of_service');
+}
+
export function NotificationRequests () {
return import(/*webpackChunkName: "features/notifications/requests" */'../../notifications/requests');
}
diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js
index 60b35cb31a..0c59fc9ee0 100644
--- a/app/javascript/mastodon/initial_state.js
+++ b/app/javascript/mastodon/initial_state.js
@@ -43,6 +43,8 @@
* @property {boolean=} use_pending_items
* @property {string} version
* @property {string} sso_redirect
+ * @property {string} status_page_url
+ * @property {boolean} terms_of_service_enabled
*/
/**
@@ -115,10 +117,9 @@ export const usePendingItems = getMeta('use_pending_items');
export const version = getMeta('version');
export const languages = initialState?.languages;
export const criticalUpdatesPending = initialState?.critical_updates_pending;
-// @ts-expect-error
export const statusPageUrl = getMeta('status_page_url');
export const sso_redirect = getMeta('sso_redirect');
-
+export const termsOfServiceEnabled = getMeta('terms_of_service_enabled');
/**
* @returns {string | undefined}
*/
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 36e1807228..ace2b05ba3 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -359,11 +359,11 @@
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
- "footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
+ "footer.terms_of_service": "Terms of service",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.admin_moderation": "Open moderation interface for #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Change subscribed languages for {target}",
"tabs_bar.home": "Home",
"tabs_bar.notifications": "Notifications",
+ "terms_of_service.title": "Terms of Service",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
diff --git a/app/javascript/styles/mailer.scss b/app/javascript/styles/mailer.scss
index f46160889a..1f3310877a 100644
--- a/app/javascript/styles/mailer.scss
+++ b/app/javascript/styles/mailer.scss
@@ -173,7 +173,9 @@ table + p {
}
.email-prose {
- p {
+ p,
+ ul,
+ ol {
color: #17063b;
font-size: 14px;
line-height: 20px;
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index b5f8570ae2..611cb2884a 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -253,6 +253,10 @@ $content-width: 840px;
.time-period {
padding: 0 10px;
}
+
+ .back-link {
+ margin-bottom: 0;
+ }
}
h2 small {
@@ -1940,3 +1944,76 @@ a.sparkline {
}
}
}
+
+.admin {
+ &__terms-of-service {
+ &__container {
+ background: var(--surface-background-color);
+ border-radius: 8px;
+ border: 1px solid var(--background-border-color);
+ overflow: hidden;
+
+ &__header {
+ padding: 16px;
+ font-size: 14px;
+ line-height: 20px;
+ color: $secondary-text-color;
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ }
+
+ &__body {
+ background: var(--background-color);
+ padding: 16px;
+ overflow-y: scroll;
+ height: 30vh;
+ }
+ }
+
+ &__history {
+ & > li {
+ border-bottom: 1px solid var(--background-border-color);
+
+ &:last-child {
+ border-bottom: 0;
+ }
+ }
+
+ &__item {
+ padding: 16px 0;
+ padding-bottom: 8px;
+
+ h5 {
+ font-size: 14px;
+ line-height: 20px;
+ font-weight: 600;
+ margin-bottom: 16px;
+ }
+ }
+ }
+ }
+}
+
+.dot-indicator {
+ display: inline-flex;
+ align-items: center;
+ gap: 8px;
+ font-weight: 500;
+
+ &__indicator {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background: $dark-text-color;
+ }
+
+ &.success {
+ color: $valid-value-color;
+
+ .dot-indicator__indicator {
+ background-color: $valid-value-color;
+ }
+ }
+}
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
index 5c9e5c96d9..b02c462217 100644
--- a/app/mailers/user_mailer.rb
+++ b/app/mailers/user_mailer.rb
@@ -209,6 +209,16 @@ class UserMailer < Devise::Mailer
end
end
+ def terms_of_service_changed(user, terms_of_service)
+ @resource = user
+ @terms_of_service = terms_of_service
+ @markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, escape_html: true, no_images: true)
+
+ I18n.with_locale(locale) do
+ mail subject: default_i18n_subject
+ end
+ end
+
private
def default_devise_subject
diff --git a/app/models/admin/action_log_filter.rb b/app/models/admin/action_log_filter.rb
index dfb7fd00ed..fd6b4289ce 100644
--- a/app/models/admin/action_log_filter.rb
+++ b/app/models/admin/action_log_filter.rb
@@ -57,6 +57,7 @@ class Admin::ActionLogFilter
enable_relay: { target_type: 'Relay', action: 'enable' }.freeze,
memorialize_account: { target_type: 'Account', action: 'memorialize' }.freeze,
promote_user: { target_type: 'User', action: 'promote' }.freeze,
+ publish_terms_of_service: { target_type: 'TermsOfService', action: 'publish' }.freeze,
remove_avatar_user: { target_type: 'User', action: 'remove_avatar' }.freeze,
reopen_report: { target_type: 'Report', action: 'reopen' }.freeze,
resend_user: { target_type: 'User', action: 'resend' }.freeze,
diff --git a/app/models/terms_of_service.rb b/app/models/terms_of_service.rb
new file mode 100644
index 0000000000..1f0832dc9a
--- /dev/null
+++ b/app/models/terms_of_service.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: terms_of_services
+#
+# id :bigint(8) not null, primary key
+# changelog :text default(""), not null
+# notification_sent_at :datetime
+# published_at :datetime
+# text :text default(""), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+class TermsOfService < ApplicationRecord
+ scope :published, -> { where.not(published_at: nil).order(published_at: :desc) }
+ scope :live, -> { published.limit(1) }
+ scope :draft, -> { where(published_at: nil).order(id: :desc).limit(1) }
+
+ validates :text, presence: true
+ validates :changelog, presence: true, if: -> { published? }
+
+ def published?
+ published_at.present?
+ end
+
+ def notification_sent?
+ notification_sent_at.present?
+ end
+
+ def scope_for_notification
+ User.confirmed.joins(:account).merge(Account.without_suspended).where(created_at: (..published_at))
+ end
+end
diff --git a/app/models/terms_of_service/generator.rb b/app/models/terms_of_service/generator.rb
new file mode 100644
index 0000000000..83c229720e
--- /dev/null
+++ b/app/models/terms_of_service/generator.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class TermsOfService::Generator
+ include ActiveModel::Model
+
+ TEMPLATE = Rails.root.join('config', 'templates', 'terms-of-service.md').read
+
+ VARIABLES = %i(
+ admin_email
+ arbitration_address
+ arbitration_website
+ dmca_address
+ dmca_email
+ domain
+ jurisdiction
+ ).freeze
+
+ attr_accessor(*VARIABLES)
+
+ validates(*VARIABLES, presence: true)
+
+ def render
+ format(TEMPLATE, VARIABLES.index_with { |key| public_send(key) })
+ end
+end
diff --git a/app/policies/terms_of_service_policy.rb b/app/policies/terms_of_service_policy.rb
new file mode 100644
index 0000000000..b4f0c71bc8
--- /dev/null
+++ b/app/policies/terms_of_service_policy.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class TermsOfServicePolicy < ApplicationPolicy
+ def index?
+ role.can?(:manage_settings)
+ end
+
+ def create?
+ role.can?(:manage_settings)
+ end
+
+ def distribute?
+ record.published? && !record.notification_sent? && role.can?(:manage_settings)
+ end
+
+ def update?
+ !record.published? && role.can?(:manage_settings)
+ end
+
+ def destroy?
+ !record.published? && role.can?(:manage_settings)
+ end
+end
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 13f332c95c..5778bcc60f 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -109,6 +109,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?,
}
end
diff --git a/app/views/admin/terms_of_service/_links.html.haml b/app/views/admin/terms_of_service/_links.html.haml
new file mode 100644
index 0000000000..aaf0f2c7b7
--- /dev/null
+++ b/app/views/admin/terms_of_service/_links.html.haml
@@ -0,0 +1,6 @@
+.content__heading__tabs
+ = render_navigation renderer: :links do |primary|
+ :ruby
+ primary.item :current, safe_join([material_symbol('description'), t('admin.terms_of_service.current')]), admin_terms_of_service_index_path
+ primary.item :draft, safe_join([material_symbol('description'), t('admin.terms_of_service.draft')]), admin_terms_of_service_draft_path
+ primary.item :previous, safe_join([material_symbol('history'), t('admin.terms_of_service.history')]), admin_terms_of_service_history_path
diff --git a/app/views/admin/terms_of_service/drafts/show.html.haml b/app/views/admin/terms_of_service/drafts/show.html.haml
new file mode 100644
index 0000000000..7a9a6fd3c4
--- /dev/null
+++ b/app/views/admin/terms_of_service/drafts/show.html.haml
@@ -0,0 +1,19 @@
+- content_for :page_title do
+ = t('admin.terms_of_service.title')
+
+- content_for :heading do
+ %h2= t('admin.terms_of_service.title')
+ = render partial: 'admin/terms_of_service/links'
+
+= simple_form_for @terms_of_service, url: admin_terms_of_service_draft_path, method: :put do |form|
+ = render 'shared/error_messages', object: @terms_of_service
+
+ .fields-group
+ = form.input :text, wrapper: :with_block_label, input_html: { rows: 8 }
+
+ .fields-group
+ = form.input :changelog, wrapper: :with_block_label, input_html: { rows: 8 }
+
+ .actions
+ = form.button :button, t('admin.terms_of_service.save_draft'), type: :submit, name: :action_type, value: :save_draft, class: 'button button-secondary'
+ = form.button :button, t('admin.terms_of_service.publish'), type: :submit, name: :action_type, value: :publish
diff --git a/app/views/admin/terms_of_service/generates/show.html.haml b/app/views/admin/terms_of_service/generates/show.html.haml
new file mode 100644
index 0000000000..46737e8355
--- /dev/null
+++ b/app/views/admin/terms_of_service/generates/show.html.haml
@@ -0,0 +1,41 @@
+- content_for :page_title do
+ = t('admin.terms_of_service.generates.title')
+
+- content_for :heading_actions do
+ .back-link
+ = link_to admin_terms_of_service_index_path do
+ = material_symbol 'chevron_left'
+ = t('admin.terms_of_service.back')
+
+%p.lead= t('admin.terms_of_service.generates.explanation_html')
+
+%p.lead= t('admin.terms_of_service.generates.chance_to_review_html')
+
+%hr.spacer/
+
+= simple_form_for @generator, url: admin_terms_of_service_generate_path, method: :post do |form|
+ = render 'shared/error_messages', object: @generator
+
+ .fields-group
+ = form.input :domain, wrapper: :with_label
+
+ .fields-group
+ = form.input :jurisdiction, wrapper: :with_label
+
+ .fields-group
+ = form.input :admin_email, wrapper: :with_label
+
+ .fields-group
+ = form.input :dmca_email, wrapper: :with_label
+
+ .fields-group
+ = form.input :dmca_address, wrapper: :with_label
+
+ .fields-group
+ = form.input :arbitration_address, wrapper: :with_label
+
+ .fields-group
+ = form.input :arbitration_website, wrapper: :with_label
+
+ .actions
+ = form.button :button, t('admin.terms_of_service.generates.action'), type: :submit
diff --git a/app/views/admin/terms_of_service/histories/show.html.haml b/app/views/admin/terms_of_service/histories/show.html.haml
new file mode 100644
index 0000000000..8b7b8eb82e
--- /dev/null
+++ b/app/views/admin/terms_of_service/histories/show.html.haml
@@ -0,0 +1,16 @@
+- content_for :page_title do
+ = t('admin.terms_of_service.history')
+
+- content_for :heading do
+ %h2= t('admin.terms_of_service.title')
+ = render partial: 'admin/terms_of_service/links'
+
+- if @terms_of_service.empty?
+ %p= t('admin.terms_of_service.no_history')
+- else
+ %ol.admin__terms-of-service__history
+ - @terms_of_service.each do |terms_of_service|
+ %li
+ .admin__terms-of-service__history__item
+ %h5= l(terms_of_service.published_at)
+ .prose= markdown(terms_of_service.changelog)
diff --git a/app/views/admin/terms_of_service/index.html.haml b/app/views/admin/terms_of_service/index.html.haml
new file mode 100644
index 0000000000..809d567674
--- /dev/null
+++ b/app/views/admin/terms_of_service/index.html.haml
@@ -0,0 +1,39 @@
+- content_for :page_title do
+ = t('admin.terms_of_service.title')
+
+- content_for :heading do
+ %h2= t('admin.terms_of_service.title')
+ = render partial: 'links'
+
+- if @terms_of_service.present?
+ .admin__terms-of-service__container
+ .admin__terms-of-service__container__header
+ .dot-indicator.success
+ .dot-indicator__indicator
+ %span= t('admin.terms_of_service.live')
+ ·
+ %span
+ = t('admin.terms_of_service.published_on_html', date: tag.time(l(@terms_of_service.published_at.to_date), class: 'formatted', date: @terms_of_service.published_at.to_date.iso8601))
+ ·
+ - if @terms_of_service.notification_sent?
+ %span
+ = t('admin.terms_of_service.notified_on_html', date: tag.time(l(@terms_of_service.notification_sent_at.to_date), class: 'formatted', date: @terms_of_service.notification_sent_at.to_date.iso8601))
+ - else
+ = link_to t('admin.terms_of_service.notify_users'), admin_terms_of_service_preview_path(@terms_of_service), class: 'link-button'
+
+ .admin__terms-of-service__container__body
+ .prose
+ = markdown(@terms_of_service.text)
+
+ %hr.spacer/
+
+ %h3= t('admin.terms_of_service.changelog')
+
+ .prose
+ = markdown(@terms_of_service.changelog)
+- else
+ %p.lead= t('admin.terms_of_service.no_terms_of_service_html')
+
+ .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/admin/terms_of_service/previews/show.html.haml b/app/views/admin/terms_of_service/previews/show.html.haml
new file mode 100644
index 0000000000..48c94cb052
--- /dev/null
+++ b/app/views/admin/terms_of_service/previews/show.html.haml
@@ -0,0 +1,20 @@
+- content_for :page_title do
+ = t('admin.terms_of_service.preview.title')
+
+- content_for :heading_actions do
+ .back-link
+ = link_to admin_terms_of_service_index_path do
+ = material_symbol 'chevron_left'
+ = t('admin.terms_of_service.back')
+
+%p.lead
+ = t('admin.terms_of_service.preview.explanation_html', count: @user_count, display_count: number_with_delimiter(@user_count), date: l(@terms_of_service.published_at.to_date))
+
+.prose
+ = markdown(@terms_of_service.changelog)
+
+%hr.spacer/
+
+.content__heading__actions
+ = link_to t('admin.terms_of_service.preview.send_preview', email: current_user.email), admin_terms_of_service_test_path(@terms_of_service), method: :post, class: 'button button-secondary'
+ = link_to t('admin.terms_of_service.preview.send_to_all', count: @user_count, display_count: number_with_delimiter(@user_count)), admin_terms_of_service_distribution_path(@terms_of_service), method: :post, class: 'button', data: { confirm: t('admin.reports.are_you_sure') }
diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml
index 6b2e6edb2b..afeeef0c6d 100644
--- a/app/views/auth/registrations/new.html.haml
+++ b/app/views/auth/registrations/new.html.haml
@@ -72,7 +72,7 @@
.fields-group
= f.input :agreement,
as: :boolean,
- label: t('auth.privacy_policy_agreement_html', rules_path: about_more_path, privacy_policy_path: privacy_policy_path),
+ label: t('auth.user_agreement_html', privacy_policy_path: privacy_policy_path, terms_of_service_path: terms_of_service_path),
required: false,
wrapper: :with_label
diff --git a/app/views/terms_of_service/show.html.haml b/app/views/terms_of_service/show.html.haml
new file mode 100644
index 0000000000..f6ca023da7
--- /dev/null
+++ b/app/views/terms_of_service/show.html.haml
@@ -0,0 +1,6 @@
+- content_for :page_title, t('terms_of_service.title')
+
+- content_for :header_tags do
+ = render partial: 'shared/og'
+
+= render 'shared/web_app'
diff --git a/app/views/user_mailer/terms_of_service_changed.html.haml b/app/views/user_mailer/terms_of_service_changed.html.haml
new file mode 100644
index 0000000000..95cc976418
--- /dev/null
+++ b/app/views/user_mailer/terms_of_service_changed.html.haml
@@ -0,0 +1,17 @@
+= content_for :heading do
+ = render 'application/mailer/heading',
+ image_url: frontend_asset_url('images/mailer-new/heading/user.png'),
+ subtitle: t('user_mailer.terms_of_service_changed.subtitle', domain: site_hostname),
+ title: t('user_mailer.terms_of_service_changed.title')
+%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-body-padding-td
+ %table.email-inner-card-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-inner-card-td.email-prose
+ %p= t('user_mailer.terms_of_service_changed.description_html', path: terms_of_service_url, domain: site_hostname)
+ %p
+ %strong= t('user_mailer.terms_of_service_changed.changelog')
+ = markdown(@terms_of_service.changelog)
+ %p= t('user_mailer.terms_of_service_changed.agreement', domain: site_hostname)
+ %p= t('user_mailer.terms_of_service_changed.sign_off', domain: site_hostname)
diff --git a/app/views/user_mailer/terms_of_service_changed.text.erb b/app/views/user_mailer/terms_of_service_changed.text.erb
new file mode 100644
index 0000000000..8416572f0a
--- /dev/null
+++ b/app/views/user_mailer/terms_of_service_changed.text.erb
@@ -0,0 +1,14 @@
+<%= t('user_mailer.terms_of_service_changed.title') %>
+
+===
+
+<%= t('user_mailer.terms_of_service_changed.description', domain: site_hostname) %>
+
+=> <%= terms_of_service_url %>
+
+<%= t('user_mailer.terms_of_service_changed.changelog') %>
+
+<%= @terms_of_service.changelog %>
+<%= t('user_mailer.terms_of_service_changed.agreement', domain: site_hostname) %>
+
+<%= t('user_mailer.terms_of_service_changed.sign_off', domain: site_hostname) %>
diff --git a/app/workers/admin/distribute_terms_of_service_notification_worker.rb b/app/workers/admin/distribute_terms_of_service_notification_worker.rb
new file mode 100644
index 0000000000..7370ee87e8
--- /dev/null
+++ b/app/workers/admin/distribute_terms_of_service_notification_worker.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class Admin::DistributeTermsOfServiceNotificationWorker
+ include Sidekiq::Worker
+
+ def perform(terms_of_service_id)
+ terms_of_service = TermsOfService.find(terms_of_service_id)
+
+ terms_of_service.scope_for_notification.find_each do |user|
+ UserMailer.terms_of_service_changed(user, terms_of_service).deliver_later!
+ end
+ rescue ActiveRecord::RecordNotFound
+ true
+ end
+end
diff --git a/config/locales/an.yml b/config/locales/an.yml
index fccfcae53e..6598ea3b90 100644
--- a/config/locales/an.yml
+++ b/config/locales/an.yml
@@ -919,7 +919,6 @@ an:
migrate_account: Mudar-se a unatra cuenta
migrate_account_html: Si deseyas reendrezar esta cuenta a unatra distinta, puetz configurar-lo aquí.
or_log_in_with: U inicia sesión con
- privacy_policy_agreement_html: He leyiu y accepto la politica de privacidat
providers:
cas: CAS
saml: SAML
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 3bbabdcaad..5eea1390ce 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1118,7 +1118,6 @@ ar:
migrate_account: الانتقال إلى حساب مختلف
migrate_account_html: إن كنت ترغب في تحويل هذا الحساب نحو حساب آخَر، يُمكِنُك إعداده هنا.
or_log_in_with: أو قم بتسجيل الدخول بواسطة
- privacy_policy_agreement_html: لقد قرأتُ وأوافق على سياسة الخصوصية
progress:
confirm: تأكيد عنوان البريد الإلكتروني
details: تفاصيلك
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index 69f887de55..6c2ebbfd72 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -459,7 +459,6 @@ ast:
logout: Zarrar la sesión
migrate_account: Cambéu de cuenta
migrate_account_html: Si quies redirixir esta cuenta a otra diferente, pues configurar esta opción equí.
- privacy_policy_agreement_html: Lleí y acepto la política de privacidá
providers:
cas: CAS
saml: SAML
diff --git a/config/locales/be.yml b/config/locales/be.yml
index 91f949b8e1..eaeb5aba43 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -1134,7 +1134,6 @@ be:
migrate_account: Пераехаць на іншы ўліковы запіс
migrate_account_html: Калі вы хочаце перанакіраваць гэты ўліковы запіс на іншы, то можаце наладзіць яго тут.
or_log_in_with: Або ўвайсці з дапамогай
- privacy_policy_agreement_html: Я азнаёміўся і пагаджаюся з палітыкай канфідэнцыйнасці
progress:
confirm: Пацвердзіць email
details: Вашы дадзеныя
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 41a62ecc2e..081418ef0a 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -1121,7 +1121,6 @@ bg:
migrate_account: Преместване в различен акаунт
migrate_account_html: Ако желаете да пренасочите този акаунт към друг, можете да настроите това тук.
or_log_in_with: Или влизане с помощта на
- privacy_policy_agreement_html: Прочетох и има съгласието ми за политиката за поверителност
progress:
details: Вашите подробности
review: Нашият преглед
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 60d58a68e1..9e4ee5a473 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -1132,7 +1132,6 @@ ca:
migrate_account: Mou a un compte diferent
migrate_account_html: Si vols redirigir aquest compte a un altre diferent, el pots configurar aquí.
or_log_in_with: O inicia sessió amb
- privacy_policy_agreement_html: He llegit i estic d'acord amb la política de privacitat
progress:
confirm: Confirmar email
details: Els teus detalls
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index d8c721591b..3c5d6c9ded 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1099,7 +1099,6 @@ cs:
migrate_account: Přesunout se na jiný účet
migrate_account_html: Zde můžete nastavit přesměrování tohoto účtu na jiný.
or_log_in_with: Nebo se přihlaste pomocí
- privacy_policy_agreement_html: Četl jsem a souhlasím se zásadami ochrany osobních údajů
progress:
details: Vaše údaje
review: Naše hodnocení
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 168c37f106..8d7e841501 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -1204,7 +1204,6 @@ cy:
migrate_account: Symud i gyfrif gwahanol
migrate_account_html: Os hoffech chi ailgyfeirio'r cyfrif hwn at un gwahanol, mae modd ei ffurfweddu yma.
or_log_in_with: Neu mewngofnodwch gyda
- privacy_policy_agreement_html: Rwyf wedi darllen ac yn cytuno i'r polisi preifatrwydd
progress:
confirm: Cadarnhau'r e-bost
details: Eich manylion
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 04f5e46fd0..2c4fe9437d 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -1132,7 +1132,6 @@ da:
migrate_account: Flyt til en anden konto
migrate_account_html: Ønsker du at omdirigere denne konto til en anden, kan du opsætte dette hér.
or_log_in_with: Eller log ind med
- privacy_policy_agreement_html: Jeg accepterer privatlivspolitikken
progress:
confirm: Bekræft e-mail
details: Dine detaljer
diff --git a/config/locales/de.yml b/config/locales/de.yml
index e1c20e2931..ca7dbf2421 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1132,7 +1132,6 @@ de:
migrate_account: Zu einem anderen Konto umziehen
migrate_account_html: Wenn du dieses Konto auf ein anderes weiterleiten möchtest, kannst du es hier konfigurieren.
or_log_in_with: Oder anmelden mit
- privacy_policy_agreement_html: Ich habe die Datenschutzerklärung gelesen und stimme ihr zu
progress:
confirm: E-Mail bestätigen
details: Deine Daten
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 5f1770ace9..44961b4b3e 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -1132,7 +1132,6 @@ el:
migrate_account: Μεταφορά σε διαφορετικό λογαριασμό
migrate_account_html: Αν θέλεις να ανακατευθύνεις αυτό τον λογαριασμό σε έναν διαφορετικό, μπορείς να το διαμορφώσεις εδώ.
or_log_in_with: Ή συνδέσου με
- privacy_policy_agreement_html: Έχω διαβάσει και συμφωνώ με την πολιτική απορρήτου
progress:
confirm: Επιβεβαίωση email
details: Τα στοιχεία σας
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index 583b3dc14d..20f134c959 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -1132,7 +1132,6 @@ en-GB:
migrate_account: Move to a different account
migrate_account_html: If you wish to redirect this account to a different one, you can configure it here.
or_log_in_with: Or log in with
- privacy_policy_agreement_html: I have read and agree to the privacy policy
progress:
confirm: Confirm email
details: Your details
diff --git a/config/locales/en.yml b/config/locales/en.yml
index d8c8d95303..ab76b462ee 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -214,6 +214,7 @@ en:
enable_user: Enable User
memorialize_account: Memorialize Account
promote_user: Promote User
+ publish_terms_of_service: Publish Terms of Service
reject_appeal: Reject Appeal
reject_user: Reject User
remove_avatar_user: Remove Avatar
@@ -278,6 +279,7 @@ en:
enable_user_html: "%{name} enabled login for user %{target}"
memorialize_account_html: "%{name} turned %{target}'s account into a memoriam page"
promote_user_html: "%{name} promoted user %{target}"
+ publish_terms_of_service_html: "%{name} published updates to the terms of service"
reject_appeal_html: "%{name} rejected moderation decision appeal from %{target}"
reject_user_html: "%{name} rejected sign-up from %{target}"
remove_avatar_user_html: "%{name} removed %{target}'s avatar"
@@ -925,6 +927,35 @@ en:
search: Search
title: Hashtags
updated_msg: Hashtag settings updated successfully
+ terms_of_service:
+ back: Back to terms of service
+ changelog: What's changed
+ create: Use your own
+ current: Current
+ draft: Draft
+ generate: Use template
+ generates:
+ action: Generate
+ 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
+ history: History
+ live: Live
+ no_history: There are no recorded changes of the terms of service yet.
+ no_terms_of_service_html: You don't currently have any terms of service configured. Terms of service are meant to provide clarity and protect you from potential liabilities in disputes with your users.
+ notified_on_html: Users notified on %{date}
+ notify_users: Notify users
+ preview:
+ explanation_html: 'The email will be sent to %{display_count} users who have signed up before %{date}. The following text will be included in the e-mail:'
+ send_preview: Send preview to %{email}
+ send_to_all:
+ one: Send %{display_count} email
+ other: Send %{display_count} emails
+ title: Preview terms of service notification
+ publish: Publish
+ published_on_html: Published on %{date}
+ save_draft: Save draft
+ title: Terms of Service
title: Administration
trends:
allow: Allow
@@ -1132,7 +1163,6 @@ en:
migrate_account: Move to a different account
migrate_account_html: If you wish to redirect this account to a different one, you can configure it here.
or_log_in_with: Or log in with
- privacy_policy_agreement_html: I have read and agree to the privacy policy
progress:
confirm: Confirm email
details: Your details
@@ -1178,6 +1208,7 @@ en:
view_strikes: View past strikes against your account
too_fast: Form submitted too fast, try again.
use_security_key: Use security key
+ user_agreement_html: I have read and agree to the terms of service and privacy policy
author_attribution:
example_title: Sample text
hint_html: Are you writing news or blog articles outside of Mastodon? Control how you get credited when they are shared on Mastodon.
@@ -1840,6 +1871,8 @@ en:
too_late: It is too late to appeal this strike
tags:
does_not_match_previous_name: does not match the previous name
+ terms_of_service:
+ title: Terms of Service
themes:
contrast: Mastodon (High contrast)
default: Mastodon (Dark)
@@ -1900,6 +1933,15 @@ en:
further_actions_html: If this wasn't you, we recommend that you %{action} immediately and enable two-factor authentication to keep your account secure.
subject: Your account has been accessed from a new IP address
title: A new sign-in
+ 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}. 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}. 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
+ title: Important update
warning:
appeal: Submit an appeal
appeal_description: If you believe this is an error, you can submit an appeal to the staff of %{instance}.
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 74fc0c64a8..a09181ef31 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -1132,7 +1132,6 @@ eo:
migrate_account: Movi al alia konto
migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas agordi ĝin ĉi tie.
or_log_in_with: Aŭ saluti per
- privacy_policy_agreement_html: Mi legis kaj konsentis pri privatpolitiko
progress:
confirm: Konfirmi retadreson
details: Viaj detaloj
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index a33865a0b6..78b30921c8 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -1132,7 +1132,6 @@ es-AR:
migrate_account: Mudarse a otra cuenta
migrate_account_html: Si querés redireccionar esta cuenta a otra distinta, podés configurar eso acá.
or_log_in_with: O iniciar sesión con
- privacy_policy_agreement_html: Leí y acepto la política de privacidad
progress:
confirm: Confirmar correo electrónico
details: Tus detalles
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 51a59d93c8..f05626399a 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1132,7 +1132,6 @@ es-MX:
migrate_account: Mudarse a otra cuenta
migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes configurarlo aquí.
or_log_in_with: O inicia sesión con
- privacy_policy_agreement_html: He leído y acepto la política de privacidad
progress:
confirm: Confirmar dirección de correo
details: Tus detalles
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 48177a20a6..bc0d816ef2 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1132,7 +1132,6 @@ es:
migrate_account: Mudarse a otra cuenta
migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes configurarlo aquí.
or_log_in_with: O inicia sesión con
- privacy_policy_agreement_html: He leído y acepto la política de privacidad
progress:
confirm: Confirmar dirección de correo
details: Tus detalles
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 759006f728..2f182d08b2 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -1117,7 +1117,6 @@ et:
migrate_account: Teisele kontole ära kolimine
migrate_account_html: Kui soovid konto siit ära kolida, saad seda teha siin.
or_log_in_with: Või logi sisse koos
- privacy_policy_agreement_html: Olen tutvunud isikuandmete kaitse põhimõtetega ja nõustun nendega
progress:
confirm: E-posti kinnitamine
details: Sinu üksikasjad
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index bb0d122ca1..8ca53d492c 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -1041,7 +1041,6 @@ eu:
migrate_account: Migratu beste kontu batera
migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu, hemen konfiguratu dezakezu.
or_log_in_with: Edo hasi saioa honekin
- privacy_policy_agreement_html: Pribatutasun politika irakurri dut eta ados nago
progress:
details: Zure xehetasunak
review: Gure berrikuspena
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 00b7497da8..341bb4cf54 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -978,7 +978,6 @@ fa:
migrate_account: نقل مکان به یک حساب دیگر
migrate_account_html: اگر میخواهید این حساب را به حساب دیگری منتقل کنید، اینجا را کلیک کنید.
or_log_in_with: یا ورود به وسیلهٔ
- privacy_policy_agreement_html: سیاست محرمانگی را خوانده و پذیرفتهام
progress:
confirm: تأیید رایانامه
details: جزئیات شما
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index be75536eb6..308d364612 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -1132,7 +1132,6 @@ fi:
migrate_account: Muuta toiseen tiliin
migrate_account_html: Jos haluat ohjata tämän tilin toiseen, voit asettaa toisen tilin tästä.
or_log_in_with: Tai käytä kirjautumiseen
- privacy_policy_agreement_html: Olen lukenut ja hyväksyn tietosuojakäytännön
progress:
confirm: Vahvista sähköpostiosoite
details: Omat tietosi
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index e5d0c3aa5c..00ffed90bb 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -1132,7 +1132,6 @@ fo:
migrate_account: Flyt til eina aðra kontu
migrate_account_html: Ynskir tú at víðaribeina hesa kontuna til eina aðra, so kanst tú seta tað upp her.
or_log_in_with: Ella innrita við
- privacy_policy_agreement_html: Eg havi lisið og taki undir við privatlívspolitikkinum
progress:
confirm: Vátta teldupost
details: Tínir smálutir
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index 991a4d669b..5cfd12d0be 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -1135,7 +1135,6 @@ fr-CA:
migrate_account: Déménager vers un compte différent
migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le configurer ici.
or_log_in_with: Ou authentifiez-vous avec
- privacy_policy_agreement_html: J’ai lu et j’accepte la politique de confidentialité
progress:
confirm: Confirmation de l'adresse mail
details: Vos infos
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 9a8837d81f..2593c60f06 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1135,7 +1135,6 @@ fr:
migrate_account: Déménager vers un compte différent
migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le configurer ici.
or_log_in_with: Ou authentifiez-vous avec
- privacy_policy_agreement_html: J’ai lu et j’accepte la politique de confidentialité
progress:
confirm: Confirmation de l'adresse mail
details: Vos infos
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 85b45eef79..5e9d328edc 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -1117,7 +1117,6 @@ fy:
migrate_account: Nei in oar account ferhúzje
migrate_account_html: Wannear’t jo dizze account nei in oare account trochferwize wolle, kinne jo dit hjir ynstelle.
or_log_in_with: Of oanmelde mei
- privacy_policy_agreement_html: Ik haw it privacybelied lêzen en gean dêrmei akkoard
progress:
confirm: E-mailadres werhelje
details: Jo gegevens
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index 6e3bc30b7a..1da40dc1c3 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -1186,7 +1186,6 @@ ga:
migrate_account: Bog chuig cuntas eile
migrate_account_html: Más mian leat an cuntas seo a atreorú chuig ceann eile, is féidir leat é a chumrú anseo.
or_log_in_with: Nó logáil isteach le
- privacy_policy_agreement_html: Léigh mé agus aontaím leis an polasaí príobháideachais
progress:
confirm: Deimhnigh ríomhphost
details: Do chuid sonraí
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index c21dd9d439..850143567f 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1168,7 +1168,6 @@ gd:
migrate_account: Imrich gu cunntas eile
migrate_account_html: Nam bu mhiann leat an cunntas seo ath-stiùireadh gu fear eile, ’s urrainn dhut a rèiteachadh an-seo.
or_log_in_with: No clàraich a-steach le
- privacy_policy_agreement_html: Leugh mi is tha mi ag aontachadh ris a’ phoileasaidh prìobhaideachd
progress:
confirm: Dearbh am post-d
details: Am fiosrachadh agad
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index ab0afe9a2a..c1de161be1 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -1132,7 +1132,6 @@ gl:
migrate_account: Mover a unha conta diferente
migrate_account_html: Se queres redirixir esta conta hacia outra diferente, podes facelo aquí.
or_log_in_with: Ou accede con
- privacy_policy_agreement_html: Lin e acepto a política de privacidade
progress:
confirm: Confirmar correo
details: Detalles
diff --git a/config/locales/he.yml b/config/locales/he.yml
index c54b244310..0ec1cd4620 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1168,7 +1168,6 @@ he:
migrate_account: מעבר לחשבון אחר
migrate_account_html: אם ברצונך להכווין את החשבון לעבר חשבון אחר, ניתן להגדיר זאת כאן.
or_log_in_with: או התחבר באמצעות
- privacy_policy_agreement_html: קראתי והסכמתי למדיניות הפרטיות
progress:
confirm: אימות כתובת הדואל
details: הפרטים שלך
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 70dd230251..bc298e7559 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1132,7 +1132,6 @@ hu:
migrate_account: Felhasználói fiók költöztetése
migrate_account_html: Ha át szeretnéd irányítani ezt a fiókodat egy másikra, akkor itt állíthatod be.
or_log_in_with: Vagy jelentkezz be ezzel
- privacy_policy_agreement_html: Elolvastam és egyetértek az adatvédemi nyilatkozattal
progress:
confirm: E-mail megerősítése
details: Saját adatok
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index 751d6af196..dfbbe73e2a 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -462,7 +462,6 @@ hy:
logout: Դուրս գալ
migrate_account: Տեղափոխուել այլ հաշիւ
or_log_in_with: Կամ մուտք գործել օգտագործելով՝
- privacy_policy_agreement_html: Ես կարդացել եւ ընդունել եմ գաղնիութեան քաղաքականութիւնը
progress:
details: Ձեր տուեալները
review: Վաւերացում
diff --git a/config/locales/ia.yml b/config/locales/ia.yml
index 902f9be744..2f8c3ee982 100644
--- a/config/locales/ia.yml
+++ b/config/locales/ia.yml
@@ -1132,7 +1132,6 @@ ia:
migrate_account: Migrar a un altere conto
migrate_account_html: Si tu vole rediriger iste conto a un altere, tu pote configurar lo hic.
or_log_in_with: O aperi session con
- privacy_policy_agreement_html: Io ha legite e accepta le politica de confidentialitate
progress:
confirm: Confirmar e-mail
details: Tu detalios
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 1b7205bb91..03d25a6e53 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -903,7 +903,6 @@ id:
migrate_account: Pindah ke akun berbeda
migrate_account_html: Jika Anda ingin mengalihkan akun ini ke akun lain, Anda dapat mengaturnya di sini.
or_log_in_with: Atau masuk dengan
- privacy_policy_agreement_html: Saya telah membaca dan menerima kebijakan privasi
providers:
cas: CAS
saml: SAML
diff --git a/config/locales/ie.yml b/config/locales/ie.yml
index af35e1c82e..4e154b3114 100644
--- a/config/locales/ie.yml
+++ b/config/locales/ie.yml
@@ -1039,7 +1039,6 @@ ie:
migrate_account: Mover te a un conto diferent
migrate_account_html: Si tu vole redirecter ti-ci conto a un altri, tu posse configurar it ci.
or_log_in_with: O intrar med
- privacy_policy_agreement_html: Yo leet e consenti li politica pri privatie
progress:
details: Tui detallies
review: Nor revise
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 36d09c4056..c89d920f30 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1014,7 +1014,6 @@ io:
migrate_account: Transferez a diferanta konto
migrate_account_html: Se vu volas ridirektar ca konto a diferanto, vu povas ajustar hike.
or_log_in_with: O eniras per
- privacy_policy_agreement_html: Me lektis e konsentis privatesguidilo
progress:
details: Vua detali
review: Nia revuo
diff --git a/config/locales/is.yml b/config/locales/is.yml
index dd850b748a..d0d0ac5914 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1136,7 +1136,6 @@ is:
migrate_account: Færa á annan notandaaðgang
migrate_account_html: Ef þú vilt endurbeina þessum aðgangi á einhvern annan, geturðu stillt það hér.
or_log_in_with: Eða skráðu inn með
- privacy_policy_agreement_html: Ég hef lesið og samþykkt persónuverndarstefnuna
progress:
confirm: Staðfesta tölvupóstfang
details: Nánari upplýsingar þínar
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 28b0900fa6..a062abc202 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1134,7 +1134,6 @@ it:
migrate_account: Sposta ad un account differente
migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi configurarlo qui.
or_log_in_with: Oppure accedi con
- privacy_policy_agreement_html: Ho letto e accetto l'informativa sulla privacy
progress:
confirm: Conferma l'e-mail
details: I tuoi dettagli
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 50ef37b4e1..1e0270b811 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -1114,7 +1114,6 @@ ja:
migrate_account: 別のアカウントに引っ越す
migrate_account_html: 引っ越し先を明記したい場合はこちらで設定できます。
or_log_in_with: または次のサービスでログイン
- privacy_policy_agreement_html: プライバシーポリシーを読み、同意します
progress:
confirm: メールアドレスの確認
details: ユーザー情報
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index e4f5dddbe2..314029a89e 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -495,7 +495,6 @@ kab:
logout: Ffeɣ
migrate_account: Gujj ɣer umiḍan nniḍen
or_log_in_with: Neɣ eqqen s
- privacy_policy_agreement_html: Ɣriɣ yerna qebleɣ tasertit n tbaḍnit
progress:
confirm: Sentem imayl
details: Isalli-inek
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index a0da1275ed..692d3638ef 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -1116,7 +1116,6 @@ ko:
migrate_account: 계정 옮기기
migrate_account_html: 이 계정을 다른 계정으로 리디렉션 하길 원하는 경우 여기에서 설정할 수 있습니다.
or_log_in_with: 다른 방법으로 로그인 하려면
- privacy_policy_agreement_html: 개인정보처리방침을 읽고 동의합니다
progress:
confirm: 이메일 확인
details: 세부사항
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 32d52f3923..06f3e32f20 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -916,7 +916,6 @@ ku:
migrate_account: Livandin bo ajimêreke din
migrate_account_html: Ku tu dixwazî ev ajimêr li ajimêreke cuda beralî bikî, tu dikarî ji vir de saz bike.
or_log_in_with: An têketinê bike bi riya
- privacy_policy_agreement_html: Min Politîka taybetiyê xwend û dipejirînim
providers:
cas: CAS
saml: SAML
diff --git a/config/locales/lad.yml b/config/locales/lad.yml
index b206b9de69..939a8826b2 100644
--- a/config/locales/lad.yml
+++ b/config/locales/lad.yml
@@ -1097,7 +1097,6 @@ lad:
migrate_account: Transferate a otro kuento
migrate_account_html: Si keres readresar este kuento a otra distinta, puedes konfigurarlo aki.
or_log_in_with: O konektate kon tu kuento kon
- privacy_policy_agreement_html: Tengo meldado i acheto la politika de privasita
progress:
confirm: Konfirma posta
details: Tus detalyos
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 09fad59410..7c8bb6898a 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -795,7 +795,6 @@ lt:
migrate_account: Persikelti prie kitos paskyros
migrate_account_html: Jei nori šią paskyrą nukreipti į kitą, gali sukonfigūruoti ją čia.
or_log_in_with: Arba prisijungti su
- privacy_policy_agreement_html: Perskaičiau ir sutinku su privatumo politika
progress:
details: Tavo duomenys
review: Mūsų peržiūra
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 90ff8b6bcd..2102e84c99 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -1110,7 +1110,6 @@ lv:
migrate_account: Pāriešana uz citu kontu
migrate_account_html: Ja vēlies novirzīt šo kontu uz citu, tu vari to konfigurēt šeit.
or_log_in_with: Vai piesakies ar
- privacy_policy_agreement_html: Esmu izlasījis un piekrītu privātuma politikai
progress:
confirm: Apstiprināt e-pasta adresi
details: Tavi dati
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 461496fe07..94cbca57fd 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -1001,7 +1001,6 @@ ms:
migrate_account: Pindah kepada akaun lain
migrate_account_html: Jika anda ingin mengubah hala akaun ini kepada akaun lain, anda boleh konfigurasikannya di sini.
or_log_in_with: Atau daftar masuk dengan
- privacy_policy_agreement_html: Saya telah membaca dan bersetuju menerima dasar privasi
progress:
details: Maklumat anda
review: Ulasan kami
diff --git a/config/locales/my.yml b/config/locales/my.yml
index 342510bc48..cba06d15f4 100644
--- a/config/locales/my.yml
+++ b/config/locales/my.yml
@@ -994,7 +994,6 @@ my:
migrate_account: အခြားအကောင့်တစ်ခုသို့ ရွှေ့ရန်
migrate_account_html: ဤအကောင့်ကို အခြားအကောင့်သို့ ပြန်ညွှန်းလိုပါက ဤနေရာတွင် စီစဉ်သတ်မှတ်နိုင်သည်။
or_log_in_with: သို့မဟုတ် အကောင့်ဖြင့် ဝင်ရောက်ပါ
- privacy_policy_agreement_html: ကိုယ်ရေးအချက်အလက်မူဝါဒ ကို ဖတ်ပြီး သဘောတူလိုက်ပါပြီ
progress:
details: သင့်အသေးစိတ်အချက်အလက်များ
review: ကျွန်ုပ်တို့၏သုံးသပ်ချက်
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index fd0f7bb1f0..3a5eaee1c3 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -1132,7 +1132,6 @@ nl:
migrate_account: Naar een ander account verhuizen
migrate_account_html: Wanneer je dit account naar een ander account wilt doorverwijzen, kun je dit hier instellen.
or_log_in_with: Of inloggen met
- privacy_policy_agreement_html: Ik heb het privacybeleid gelezen en ga daarmee akkoord
progress:
confirm: E-mailadres bevestigen
details: Jouw gegevens
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index 83803fb0f6..5d3ead4290 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1132,7 +1132,6 @@ nn:
migrate_account: Flytt til ein annan konto
migrate_account_html: Om du vil visa denne kontoen til ein anna, kan du skipe det her.
or_log_in_with: Eller logg inn med
- privacy_policy_agreement_html: Jeg har lest og godtar retningslinjer for personvern
progress:
confirm: Stadfest e-post
details: Opplysingane dine
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 5b66bde947..2529fafb4a 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -1033,7 +1033,6 @@
migrate_account: Flytt til en annen konto
migrate_account_html: Hvis du ønsker å henvise denne kontoen til en annen, kan du konfigurere det her.
or_log_in_with: Eller logg inn med
- privacy_policy_agreement_html: Jeg har lest og godtar retningslinjer for personvern
progress:
details: Dine opplysninger
review: Vår gjennomgang
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index a67f55c6b7..258348d41c 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -481,7 +481,6 @@ oc:
migrate_account: Mudar endacòm mai
migrate_account_html: Se volètz mandar los visitors d’aqueste compte a un autre, podètz o configurar aquí.
or_log_in_with: O autentificatz-vos amb
- privacy_policy_agreement_html: Ai legit e accepti la politica de confidencialitat
providers:
cas: CAS
saml: SAML
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 02a1fc85dc..f1dfbe4f7d 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -1168,7 +1168,6 @@ pl:
migrate_account: Przenieś konto
migrate_account_html: Jeżeli chcesz skonfigurować przekierowanie z obecnego konta na inne, możesz zrobić to tutaj.
or_log_in_with: Lub zaloguj się z użyciem
- privacy_policy_agreement_html: Przeczytałem/am i akceptuję politykę prywatności
progress:
confirm: Potwierdź adres e-mail
details: Twoje dane
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index f79a56e148..7255967172 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1132,7 +1132,6 @@ pt-BR:
migrate_account: Mudar-se para outra conta
migrate_account_html: Se você quer redirecionar essa conta para uma outra você pode configurar isso aqui.
or_log_in_with: Ou entre com
- privacy_policy_agreement_html: Eu li e concordo com a política de privacidade
progress:
confirm: Confirmar e-mail
details: Suas informações
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index b4ad361367..f739c93394 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1113,7 +1113,6 @@ pt-PT:
migrate_account: Mudar para uma conta diferente
migrate_account_html: Se deseja redirecionar esta conta para uma outra pode configurar isso aqui.
or_log_in_with: Ou iniciar sessão com
- privacy_policy_agreement_html: Eu li e concordo com a política de privacidade
progress:
confirm: Confirmar e-mail
details: Os seus dados
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index d68c338588..486d87f003 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1168,7 +1168,6 @@ ru:
migrate_account: Перенос учётной записи
migrate_account_html: Завели новую учётную запись? Перенаправьте подписчиков на неё — настройте перенаправление тут.
or_log_in_with: Или войти с помощью
- privacy_policy_agreement_html: Мной прочитана и принята политика конфиденциальности
progress:
confirm: Подтвердите электронную почту
details: Ваши данные
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index ad97aa194b..209b761851 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -909,7 +909,6 @@ sco:
migrate_account: Uise a different accoont
migrate_account_html: Gin ye'r wantin fir tae redireck this accoont tae a different ane, ye kin configure it here.
or_log_in_with: Or log in wi
- privacy_policy_agreement_html: A'v read an A agree tae the privacy policy
providers:
cas: CAS
saml: SAML
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index b6b0481368..3a052ad626 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -130,6 +130,17 @@ en:
show_application: You will always be able to see which app published your post regardless.
tag:
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.
+ 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
+ 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.
user:
chosen_languages: When checked, only posts in selected languages will be displayed in public timelines
role: The role controls which permissions the user has.
@@ -319,6 +330,17 @@ en:
name: Hashtag
trendable: Allow this hashtag to appear under trends
usable: Allow posts to use this hashtag locally
+ terms_of_service:
+ changelog: What's changed?
+ 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
+ dmca_address: Physical address for DMCA/copyright notices
+ dmca_email: Email address for DMCA/copyright notices
+ domain: Domain
+ jurisdiction: Legal jurisdiction
user:
role: Role
time_zone: Time zone
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index a82e32756b..24aa67e7ae 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -1141,7 +1141,6 @@ sl:
migrate_account: Premakni se na drug račun
migrate_account_html: Če želite ta račun preusmeriti na drugega, ga lahko nastavite tukaj.
or_log_in_with: Ali se prijavite z
- privacy_policy_agreement_html: Prebral_a sem in se strinjam s pravilnikom o zasebnosti.
progress:
confirm: Potrdi e-pošto
details: Vaši podatki
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 5abaf3b575..f6a7d34cff 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -1126,7 +1126,6 @@ sq:
migrate_account: Kaloni në një tjetër llogari
migrate_account_html: Nëse doni ta ridrejtoni këtë llogari te një tjetër, këtë mund ta formësoni këtu.
or_log_in_with: Ose bëni hyrjen me
- privacy_policy_agreement_html: I kam lexuar dhe pajtohem me rregullat e privatësisë
progress:
confirm: Ripohoni email-in
details: Hollësitë tuaja
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 766552307d..700e588550 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -1060,7 +1060,6 @@ sr-Latn:
migrate_account: Premeštanje u drugi nalog
migrate_account_html: Ako želite da preusmerite ovaj nalog na neki drugi, možete to podesiti ovde.
or_log_in_with: Ili se prijavite sa
- privacy_policy_agreement_html: Pročitao/-la sam i saglasan/-a sam sa politikom privatnosti
progress:
details: Vaši detalji
review: Naš pregled
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index f61addafb6..28abe3b46e 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -1090,7 +1090,6 @@ sr:
migrate_account: Премештање у други налог
migrate_account_html: Ако желите да преусмерите овај налог на неки други, можете то подесити овде.
or_log_in_with: Или се пријавите са
- privacy_policy_agreement_html: Прочитао/-ла сам и сагласан/-а сам са политиком приватности
progress:
details: Ваши детаљи
review: Наш преглед
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 3f0b05477f..f01ef42d0b 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1132,7 +1132,6 @@ sv:
migrate_account: Flytta till ett annat konto
migrate_account_html: Om du vill omdirigera detta konto till ett annat, kan du konfigurera det här.
or_log_in_with: Eller logga in med
- privacy_policy_agreement_html: Jag har läst och godkänner integritetspolicyn
progress:
confirm: Bekräfta e-postadress
details: Dina uppgifter
diff --git a/config/locales/th.yml b/config/locales/th.yml
index e3ed3989ff..4f0a6e98bd 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -1114,7 +1114,6 @@ th:
migrate_account: ย้ายไปยังบัญชีอื่น
migrate_account_html: หากคุณต้องการเปลี่ยนเส้นทางบัญชีนี้ไปยังบัญชีอื่น คุณสามารถ กำหนดค่าบัญชีที่นี่
or_log_in_with: หรือเข้าสู่ระบบด้วย
- privacy_policy_agreement_html: ฉันได้อ่านและเห็นด้วยกับ นโยบายความเป็นส่วนตัว
progress:
confirm: ยืนยันอีเมล
details: รายละเอียดของคุณ
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index e8b31bd1b4..e947964339 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1132,7 +1132,6 @@ tr:
migrate_account: Farklı bir hesaba taşıyın
migrate_account_html: Bu hesabı başka bir hesaba yönlendirmek istiyorsan, buradan yapılandırabilirsin.
or_log_in_with: 'Veya şununla oturum açın:'
- privacy_policy_agreement_html: Gizlilik politikasını okudum ve kabul ettim
progress:
confirm: E-postanızı onaylayın
details: Ayrıntılarınız
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 4f2996714d..000bac6170 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1153,7 +1153,6 @@ uk:
migrate_account: Переїхати на інший обліковий запис
migrate_account_html: Якщо ви бажаєте переспрямувати цей обліковий запис на інший, ви можете налаштувати це тут.
or_log_in_with: Або увійдіть з
- privacy_policy_agreement_html: Мною прочитано і я погоджуюся з політикою приватності
progress:
confirm: Підтвердити електронну адресу
details: Ваші дані
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index c06cccfe81..c718e94457 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1114,7 +1114,6 @@ vi:
migrate_account: Chuyển sang tài khoản khác
migrate_account_html: Nếu bạn muốn bỏ tài khoản này để dùng một tài khoản khác, bạn có thể thiết lập tại đây.
or_log_in_with: Hoặc đăng nhập bằng
- privacy_policy_agreement_html: Tôi đã đọc và đồng ý chính sách bảo mật
progress:
confirm: Xác nhận email
details: Điền thông tin
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 65c96c05e6..681de6186f 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -1114,7 +1114,6 @@ zh-CN:
migrate_account: 迁移到另一个账户
migrate_account_html: 如果你希望引导他人关注另一个账号,请点击这里进行设置。
or_log_in_with: 或通过外部服务登录
- privacy_policy_agreement_html: 我已阅读并同意 隐私政策
progress:
confirm: 确认邮箱
details: 你的详细信息
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 15b08c883e..7278058dce 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1021,7 +1021,6 @@ zh-HK:
migrate_account: 轉移到另一個帳號
migrate_account_html: 想要將這個帳號指向另一個帳號可到這裡設定。
or_log_in_with: 或登入於
- privacy_policy_agreement_html: 我已閱讀且同意私隱政策
progress:
details: 你的資料
review: 我們的審核
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 7e9cd1fd51..a2bcf41a02 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -1116,7 +1116,6 @@ zh-TW:
migrate_account: 轉移至另一個帳號
migrate_account_html: 如果您希望引導他人跟隨另一個帳號,請至這裡設定。
or_log_in_with: 或透過其他方式登入
- privacy_policy_agreement_html: 我已閱讀且同意 隱私權政策
progress:
confirm: 驗證電子郵件地址
details: 您的個人資料
diff --git a/config/navigation.rb b/config/navigation.rb
index bdda569092..de9e530f58 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -66,6 +66,7 @@ SimpleNavigation::Configuration.run do |navigation|
n.item :admin, safe_join([material_symbol('manufacturing'), t('admin.title')]), nil, if: -> { current_user.can?(:view_dashboard, :manage_settings, :manage_rules, :manage_announcements, :manage_custom_emojis, :manage_webhooks, :manage_federation) && !self_destruct } do |s|
s.item :dashboard, safe_join([material_symbol('speed'), t('admin.dashboard.title')]), admin_dashboard_path, if: -> { current_user.can?(:view_dashboard) }
s.item :settings, safe_join([material_symbol('manufacturing'), t('admin.settings.title')]), admin_settings_path, if: -> { current_user.can?(:manage_settings) }, highlights_on: %r{/admin/settings}
+ s.item :terms_of_service, safe_join([material_symbol('description'), t('admin.terms_of_service.title')]), admin_terms_of_service_index_path, highlights_on: %r{/admin/terms_of_service}, if: -> { current_user.can?(:manage_rules) }
s.item :rules, safe_join([material_symbol('gavel'), t('admin.rules.title')]), admin_rules_path, highlights_on: %r{/admin/rules}, if: -> { current_user.can?(:manage_rules) }
s.item :warning_presets, safe_join([material_symbol('warning'), t('admin.warning_presets.title')]), admin_warning_presets_path, highlights_on: %r{/admin/warning_presets}, if: -> { current_user.can?(:manage_settings) }
s.item :roles, safe_join([material_symbol('contact_mail'), t('admin.roles.title')]), admin_roles_path, highlights_on: %r{/admin/roles}, if: -> { current_user.can?(:manage_roles) }
diff --git a/config/routes.rb b/config/routes.rb
index b4c9b6918b..3909dd1b77 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -201,8 +201,9 @@ Rails.application.routes.draw do
get '/about', to: 'about#show'
get '/about/more', to: redirect('/about')
- get '/privacy-policy', to: 'privacy#show', as: :privacy_policy
- get '/terms', to: redirect('/privacy-policy')
+ get '/privacy-policy', to: 'privacy#show', as: :privacy_policy
+ get '/terms-of-service', to: 'terms_of_service#show', as: :terms_of_service
+ get '/terms', to: redirect('/terms-of-service')
match '/', via: [:post, :put, :patch, :delete], to: 'application#raise_not_found', format: false
match '*unmatched_route', via: :all, to: 'application#raise_not_found', format: false
diff --git a/config/routes/admin.rb b/config/routes/admin.rb
index 2afe570236..30778e8bb7 100644
--- a/config/routes/admin.rb
+++ b/config/routes/admin.rb
@@ -33,6 +33,18 @@ namespace :admin do
resources :action_logs, only: [:index]
resources :warning_presets, except: [:new, :show]
+ namespace :terms_of_service do
+ resource :generate, only: [:show, :create]
+ resource :history, only: [:show]
+ resource :draft, only: [:show, :update]
+ end
+
+ resources :terms_of_service, only: [:index, :create, :update] do
+ resource :preview, only: [:show], module: :terms_of_service
+ resource :test, only: [:create], module: :terms_of_service
+ resource :distribution, only: [:create], module: :terms_of_service
+ end
+
resources :announcements, except: [:show] do
member do
post :publish
diff --git a/config/routes/api.rb b/config/routes/api.rb
index 86e41a2abe..34a267b35d 100644
--- a/config/routes/api.rb
+++ b/config/routes/api.rb
@@ -116,6 +116,7 @@ namespace :api, format: false do
resources :rules, only: [:index]
resources :domain_blocks, only: [:index]
resource :privacy_policy, only: [:show]
+ resource :terms_of_service, only: [:show]
resource :extended_description, only: [:show]
resource :translation_languages, only: [:show]
resource :languages, only: [:show]
diff --git a/config/templates/terms-of-service.md b/config/templates/terms-of-service.md
new file mode 100644
index 0000000000..0b279c5386
--- /dev/null
+++ b/config/templates/terms-of-service.md
@@ -0,0 +1,274 @@
+## Introduction
+
+These terms of service (the "Terms") cover your access and use of Server
+Operator’s ("Administrator", "we", or "us") instance, located at %{domain} (the
+"Instance"). These Terms apply solely to your use of the Instance as operated
+by the Administrator. Please note that we have no affiliation with Mastodon
+gGmbH (“Mastodon”) and these Terms do not contain any representations or
+warranties or other promises from Mastodon about your use of the Instance. If
+you would like to contact us for any reason, please direct all questions,
+comments, concerns and notices to us by following the instructions provided in
+the Notice section below.
+
+Please read these Terms carefully before using the Instance as they contain
+important information about your interactions with the Instance. We may have
+other policies that apply to your use of the Instance and that are incorporated
+into these Terms. You should also read these policies before using the Instance.
+
+## Age Requirements and Responsibility of Parents and Legal Guardians
+
+By accessing the Instance, you signify that you are at least thirteen years old
+and that you meet the minimum age required by the laws in your country. If you
+are old enough to access the Instance in your country, but are not old enough to
+have the legal authority to consent to our Terms, please ask your parent or
+legal guardian to read these Terms with you, as they must agree to the Terms on
+your behalf. If you are a parent or legal guardian who has accepted these terms
+on your child’s behalf, these terms apply to you and you are responsible for
+your child’s activities on the Instance.
+
+## Prohibited Uses
+
+You are fully responsible for your activities while using the Instance,
+including any content, information or other materials you post or upload to the
+Instance, and you bear all risks associated with use of the Instance. By
+agreeing to these Terms, you agree to comply with all applicable federal, state,
+and local laws and regulations in connection with your use of the Instance. You
+also agree not to use the Instance to engage in any prohibited conduct, or to
+assist any other person or entity in engaging in any prohibited conduct.
+
+We reserve the right (but do not have the obligation) in our sole discretion to:
+(1) monitor the Instance for violations of these Terms; (2) take appropriate
+legal action against anyone who uses or accesses the Instance in a manner that
+we believe violates the law or these Terms, including without limitation,
+reporting such user to law enforcement authorities; (3) deny access to the
+Instance or any features of the Instance to anyone who violates these Terms or
+who we believe interferes with the ability of others to enjoy our Instance or
+infringes the rights of others; and (4) otherwise manage the Instance in a
+manner designed to protect our rights and property and to facilitate the proper
+functioning of the Instance.
+
+You are prohibited from using the Instance for the commission of harmful or
+illegal activities. Accordingly, you may not, or assist any other person to (or
+attempt to):
+
+- Violate these Terms or other policies and terms posted on, or otherwise
+- applicable to, the Instance; Upload any material, program, or software that
+- contains any virus, worm, spyware, Trojan horse or other program or code
+- designed to interrupt, destroy or limit the functionality of the Instance,
+- launch a denial of service attack, or in any other way attempt to interfere
+- with the functioning and availability of the Instance; Except as may be the
+- result of standard search engine or Internet browser usage, use, launch,
+- develop, or distribute any automated system, including without limitation, any
+- spider, robot, cheat utility, scraper, offline reader, or any data mining or
+- similar data gathering extraction tools to access the Instance, or use or
+- launch any unauthorized script or other software; Interfere with, disable,
+- vandalize or disrupt the Instance or servers or networks connected to the
+- Instance; Hack into, penetrate, disable, or otherwise circumvent the security
+- measures of the Instance or servers or networks connected to the Instance; or
+- otherwise use the Instance in any way that violates any applicable national,
+- federal, state, local or international law or regulation.
+
+## Intellectual Property
+
+The Instance contains content provided by its users, including you, such as
+text, photos, videos, audio, links, and streams (“Content”). When you submit
+Content to the Instance, you represent and warrant that you have all of the
+rights, power, and authority necessary to grant the rights to the Content
+contained within these Terms. Because you alone are responsible for the Content
+that you submit to the Instance, you may expose yourself to liability from third
+parties if you post or share such Content without all necessary rights.
+
+You retain all ownership rights you have in the Content that you submit to the
+Instance, but you grant us a limited, non-exclusive, irrevocable, transferable,
+royalty-free, perpetual license to use, copy, store, display, share, distribute,
+communicate and transfer the Content in ways that are consistent with your use
+of the Instance. To the fullest extent possible, you agree to waive or promise
+not to assert against the Administrator all moral rights you may have in the
+Content to the extent those rights are necessary for the Administrator to host
+the Content on the Instance.
+
+## DMCA Copyright Infringement Notice
+
+We have implemented the procedures described in the Digital Millennium Copyright
+Act of 1998 ("DMCA"), 17 U.S.C. § 512 , regarding the reporting of alleged
+copyright infringement and the removal of or disabling access to infringing
+material. If you have a good faith belief that copyrighted material on the
+Instance is being used in a way that infringes a copyright over which you are
+authorized to act, you may make a Notice of Infringing Material. If you have a
+good faith belief that copyrighted material that was removed or access to which
+was disabled was a result of a mistake or misidentification, then you may make a
+Notice of Counter-Notification.
+
+Before serving a Notice of Infringing Material or Counter-Notification, you may
+wish to contact a lawyer to better understand your rights and obligations under
+the DMCA and other applicable laws. For example, if your Notice or
+Counter-Notifications fails to comply with all requirements of sections
+512(c)(3) or 512(g)(3), respectively, your Notice or Counter-Notification may
+not be effective.
+
+### Termination of Repeat Infringers
+
+We will terminate or disable your use of the Instance in appropriate
+circumstances if you are deemed by us to be a repeat copyright infringer.
+
+### Notices and Counter-Notifications must be sent to:
+
+DMCA Agent: Copyright Manager
+
+Address: %{dmca_address}
+
+Email: %{dmca_email}
+
+## Disclaimer
+
+Administrator reserves the right in our sole discretion to modify or
+discontinue, temporarily or permanently, the Instance (or any part thereof) with
+or without notice to you. You agree that Administrator will not be liable to
+you or to any third party for any modification or discontinuance of the
+Instance, except as set forth in the "Limitation of Liability" section below.
+
+You understand that we are not responsible for any activities or legal
+consequences of your use of the Instance. Users are responsible for using the
+Instance in compliance with all applicable laws and regulations of the
+jurisdictions in which such users are domiciled, reside, or are located at the
+time of such access or use, as well as these Terms. Any violation of these
+Terms may result in the suspension or termination by us, in our sole discretion,
+of your access to and use of the Instance.
+
+## Limitation of Liability
+
+In no event will Administrator’s total liability to you for all damages, losses,
+or causes of action exceed one hundred dollars ($100). If you are dissatisfied
+with the Instance or with these Terms, your sole remedy is to discontinue your
+use of the Instance.
+
+## Links to and From Other Websites
+
+You may gain access to other websites and Instances via links on the Instance.
+These Terms apply to the Instance only and do not apply to Mastodon, other
+Instances, or other parties' websites. Similarly, you may have come to the
+Instance via a link from another website or Instance. The terms of use of other
+websites and Instances do not apply to the Instance. Administrator assumes no
+responsibility for any terms of use or material outside of the Instance accessed
+via any link. You are free to establish a hypertext link to the Instance so
+long as the link does not state or imply any sponsorship of your website,
+instance or service by Administrator or the Instance. Unless expressly agreed
+to by us in writing, reference to any of our products, services, processes or
+other information, by trade name, trademark, logo, or otherwise by you or any
+third party does not constitute or imply endorsement, sponsorship or
+recommendation thereof by us. You may not, without our prior written
+permission, scrape the Instance or incorporate into another website or other
+service any of our material, content or intellectual property, unless you are
+otherwise permitted by us to do so in accordance with a license or subject to
+separate terms.
+
+## Dispute Resolution by Binding Arbitration
+
+### Agreement to Arbitrate:
+
+This Dispute Resolution by Binding Arbitration section is referred to in these
+Terms as the “Arbitration Agreement.” You and the Instance agree that any and
+all disputes, claims, demands, or causes of action (“Claims”) that have arisen
+or may arise between you and us, whether arising out of or relating to these
+Terms, the website, or any aspect of the relationship or transactions between
+us, will be resolved exclusively through final and binding arbitration before a
+neutral arbitrator, rather than in a court by a judge or jury, in accordance
+with the terms of this Arbitration Agreement, except that, where available, you
+or we may (but are not required to) assert individual Claims in small claims
+court if such Claims are within the scope of such court’s jurisdiction. Further,
+this Arbitration Agreement does not preclude you from bringing issues to the
+attention of federal, state/provincial, or local agencies, and such agencies
+can, if the law allows, seek relief against us on your behalf. You agree that,
+by entering into these Terms, you and we are each waiving the right to a trial
+by jury or to participate in a class action and that our respective rights will
+be determined by a neutral arbitrator, not a judge or jury.
+
+### Prohibition of Class and Representative Actions and Non-Individualized
+
+### Relief
+
+You and we agree that each of us may bring claims against the other only on an
+individual basis and not as a plaintiff or class member in any purported class
+or representative action or proceeding.
+
+### Pre-Arbitration Dispute Resolution
+
+Before commencing any arbitration (or suit in small claims court, if available),
+you agree to provide the Instance with a written notice of Claim, and the
+Instance agrees to provide you with a written notice of Claim to the extent
+reasonably possible based on the availability of your contact information to the
+Instance (“Notice”). The Notice to the Instance shall be sent to
+%{arbitration_website} with a paper copy to %{arbitration_address}. Where the
+Instance has your contact information, the Instance will send its Notice to you
+using the last email address we have on file for you if you have provided us
+with an email address (each, a “Notice Address”). The Notice must (i) describe
+the nature and basis of the Claim in sufficient detail to evaluate the merits of
+the claiming party’s Claim and (ii) set forth the specific relief sought,
+including the amount of money (if any) that is demanded and the means by which
+the demanding party calculated the claimed amount. Both parties agree that they
+will attempt to resolve a Claim through informal negotiation within sixty (60)
+calendar days from the date the Notice is received. If the Claim is not resolved
+within sixty (60) calendar days after the Notice is received, you or we may
+commence an arbitration proceeding. Each party agrees that %{jurisdiction}
+courts may enter injunctive relief to enforce the pre-filing requirements of
+this paragraph, including an injunction to stay an arbitration that has been
+commenced in violation of this paragraph.
+
+### Arbitration Procedures
+
+The relevant arbitration rules of %{jurisdiction} fully applies to the
+Arbitration Agreement. The arbitration will be conducted by a neutral arbitrator
+in accordance with %{jurisdiction} rules (the “Rules”), as modified by this
+Arbitration Agreement. If there is any inconsistency between any term of the
+Rules and any term of this Arbitration Agreement, the applicable terms of this
+Arbitration Agreement will control. The arbitrator must also follow the
+provisions of these Terms as a court would. Except as set forth above, all
+issues are for the arbitrator to decide, including, but not limited to,
+threshold issues relating to the scope, enforceability, and arbitrability of
+this Arbitration Agreement and issues relating to (a) whether the terms of these
+Terms (or any aspect thereof) are enforceable, unconscionable, or illusory and
+(b) any defense to arbitration, including waiver, delay, laches, or estoppel.
+Regardless of the manner in which the arbitration is conducted, the arbitrator
+will issue a reasoned written decision sufficient to explain the essential
+findings and conclusions on which the award is based. Payment of all filing,
+administration and arbitrator fees (collectively, the “Arbitration Fees”) will
+be governed by the Rules unless otherwise provided in this Arbitration
+Agreement.
+
+### Small Claims Court
+
+Subject to applicable jurisdictional requirements, either party may elect to
+pursue a Claim in a local small claims court rather than through arbitration so
+long as the matter remains in a small claims court and proceeds only on an
+individual basis.
+
+## Choice of Law
+
+Any and all claims related to or arising out of your use of, or access to the
+Instance shall be governed by internal substantive laws of New York in all
+respects, without regard for the jurisdiction or forum in which you are
+domiciled, reside, or located at the time of such access or use.
+
+## Waiver and Severability
+
+If you do not comply with a portion of these Terms and we do not take action
+right away, this does not mean we are giving up any of our rights under these
+Terms. If any part of these Terms is determined to be invalid or unenforceable
+by a court of competent jurisdiction or arbitrator, the remainder of the Terms
+shall be enforced to the maximum extent permitted by law.
+
+## Notices
+
+All notices to Administrator under these Terms, unless otherwise specified shall
+be sent to %{admin_email}. Service of any notice will be deemed given on the
+date of receipt delivered by email.
+
+## Changes to these Terms
+
+We may change or modify these Terms by posting a revised version on the
+Instance, or by otherwise providing notice to you, and will state at the top of
+the revised Terms the date they were last revised. Changes will not apply
+retroactively and will become effective no earlier than fourteen (14) calendar
+days after they are posted, except for changes addressing changes made for legal
+reasons, which will be effective immediately. Your continued use of the
+Instance after any change means you agree to the new Terms.
diff --git a/db/migrate/20241123224956_create_terms_of_services.rb b/db/migrate/20241123224956_create_terms_of_services.rb
new file mode 100644
index 0000000000..dda2b0647c
--- /dev/null
+++ b/db/migrate/20241123224956_create_terms_of_services.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class CreateTermsOfServices < ActiveRecord::Migration[7.2]
+ def change
+ create_table :terms_of_services do |t|
+ t.text :text, null: false, default: ''
+ t.text :changelog, null: false, default: ''
+ t.datetime :published_at
+ t.datetime :notification_sent_at
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 889e914aa6..d28bc5efca 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -1103,6 +1103,15 @@ ActiveRecord::Schema[7.2].define(version: 2024_12_05_163118) do
t.index "lower((name)::text) text_pattern_ops", name: "index_tags_on_name_lower_btree", unique: true
end
+ create_table "terms_of_services", force: :cascade do |t|
+ t.text "text", default: "", null: false
+ t.text "changelog", default: "", null: false
+ t.datetime "published_at"
+ t.datetime "notification_sent_at"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
create_table "tombstones", force: :cascade do |t|
t.bigint "account_id"
t.string "uri", null: false
diff --git a/spec/controllers/admin/terms_of_service/distributions_controller_spec.rb b/spec/controllers/admin/terms_of_service/distributions_controller_spec.rb
new file mode 100644
index 0000000000..b6d436a26f
--- /dev/null
+++ b/spec/controllers/admin/terms_of_service/distributions_controller_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::TermsOfService::DistributionsController do
+ render_views
+
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+ let(:terms_of_service) { Fabricate(:terms_of_service, notification_sent_at: nil) }
+
+ before do
+ sign_in user, scope: :user
+ end
+
+ describe 'POST #create' do
+ it 'returns http success' do
+ post :create, params: { terms_of_service_id: terms_of_service.id }
+
+ expect(response).to redirect_to(admin_terms_of_service_index_path)
+ end
+ end
+end
diff --git a/spec/controllers/admin/terms_of_service/drafts_controller_spec.rb b/spec/controllers/admin/terms_of_service/drafts_controller_spec.rb
new file mode 100644
index 0000000000..d0a12f8b3e
--- /dev/null
+++ b/spec/controllers/admin/terms_of_service/drafts_controller_spec.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::TermsOfService::DraftsController do
+ render_views
+
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+
+ before do
+ sign_in user, scope: :user
+ end
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+
+ expect(response).to have_http_status(:success)
+ end
+ end
+end
diff --git a/spec/controllers/admin/terms_of_service/generates_controller_spec.rb b/spec/controllers/admin/terms_of_service/generates_controller_spec.rb
new file mode 100644
index 0000000000..1f33376de0
--- /dev/null
+++ b/spec/controllers/admin/terms_of_service/generates_controller_spec.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::TermsOfService::GeneratesController do
+ render_views
+
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+
+ before do
+ sign_in user, scope: :user
+ end
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+
+ expect(response).to have_http_status(:success)
+ end
+ end
+end
diff --git a/spec/controllers/admin/terms_of_service/histories_controller_spec.rb b/spec/controllers/admin/terms_of_service/histories_controller_spec.rb
new file mode 100644
index 0000000000..d11ea2cd33
--- /dev/null
+++ b/spec/controllers/admin/terms_of_service/histories_controller_spec.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::TermsOfService::HistoriesController do
+ render_views
+
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+
+ before do
+ sign_in user, scope: :user
+ end
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+
+ expect(response).to have_http_status(:success)
+ end
+ end
+end
diff --git a/spec/controllers/admin/terms_of_service/previews_controller_spec.rb b/spec/controllers/admin/terms_of_service/previews_controller_spec.rb
new file mode 100644
index 0000000000..5d923c9f30
--- /dev/null
+++ b/spec/controllers/admin/terms_of_service/previews_controller_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::TermsOfService::PreviewsController do
+ render_views
+
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+ let(:terms_of_service) { Fabricate(:terms_of_service, notification_sent_at: nil) }
+
+ before do
+ sign_in user, scope: :user
+ end
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show, params: { terms_of_service_id: terms_of_service.id }
+
+ expect(response).to have_http_status(:success)
+ end
+ end
+end
diff --git a/spec/controllers/admin/terms_of_service/tests_controller_spec.rb b/spec/controllers/admin/terms_of_service/tests_controller_spec.rb
new file mode 100644
index 0000000000..281c4d28c5
--- /dev/null
+++ b/spec/controllers/admin/terms_of_service/tests_controller_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::TermsOfService::TestsController do
+ render_views
+
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+ let(:terms_of_service) { Fabricate(:terms_of_service, notification_sent_at: nil) }
+
+ before do
+ sign_in user, scope: :user
+ end
+
+ describe 'POST #create' do
+ it 'returns http success' do
+ post :create, params: { terms_of_service_id: terms_of_service.id }
+
+ expect(response).to redirect_to(admin_terms_of_service_preview_path(terms_of_service))
+ end
+ end
+end
diff --git a/spec/controllers/admin/terms_of_service_controller_spec.rb b/spec/controllers/admin/terms_of_service_controller_spec.rb
new file mode 100644
index 0000000000..b7fdb90446
--- /dev/null
+++ b/spec/controllers/admin/terms_of_service_controller_spec.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::TermsOfServiceController do
+ render_views
+
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+
+ before do
+ sign_in user, scope: :user
+ end
+
+ describe 'GET #index' do
+ it 'returns http success' do
+ get :index
+
+ expect(response).to have_http_status(:success)
+ end
+ end
+end
diff --git a/spec/fabricators/terms_of_service_fabricator.rb b/spec/fabricators/terms_of_service_fabricator.rb
new file mode 100644
index 0000000000..2b0cfabcfb
--- /dev/null
+++ b/spec/fabricators/terms_of_service_fabricator.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+Fabricator(:terms_of_service) do
+ text { Faker::Lorem.paragraph }
+ changelog { Faker::Lorem.paragraph }
+ published_at { Time.zone.now }
+ notification_sent_at { Time.zone.now }
+end
diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb
index 2722538e1a..e677a24df2 100644
--- a/spec/mailers/previews/user_mailer_preview.rb
+++ b/spec/mailers/previews/user_mailer_preview.rb
@@ -98,4 +98,9 @@ class UserMailerPreview < ActionMailer::Preview
def failed_2fa
UserMailer.failed_2fa(User.first, '127.0.0.1', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0', Time.now.utc)
end
+
+ # Preview this email at http://localhost:3000/rails/mailers/user_mailer/terms_of_service_changed
+ def terms_of_service_changed
+ UserMailer.terms_of_service_changed(User.first, TermsOfService.live.first)
+ end
end
diff --git a/spec/models/terms_of_service_spec.rb b/spec/models/terms_of_service_spec.rb
new file mode 100644
index 0000000000..d32ba4e642
--- /dev/null
+++ b/spec/models/terms_of_service_spec.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe TermsOfService do
+ describe '#scope_for_notification' do
+ subject { terms_of_service.scope_for_notification }
+
+ let(:published_at) { Time.now.utc }
+ let(:terms_of_service) { Fabricate(:terms_of_service, published_at: published_at) }
+ let(:user_before) { Fabricate(:user, created_at: published_at - 2.days) }
+ let(:user_before_unconfirmed) { Fabricate(:user, created_at: published_at - 2.days, confirmed_at: nil) }
+ let(:user_before_suspended) { Fabricate(:user, created_at: published_at - 2.days) }
+ let(:user_after) { Fabricate(:user, created_at: published_at + 1.hour) }
+
+ before do
+ user_before_suspended.account.suspend!
+ user_before_unconfirmed
+ user_before
+ user_after
+ end
+
+ it 'includes only users created before the terms of service were published' do
+ expect(subject.pluck(:id)).to match_array(user_before.id)
+ end
+ end
+end
diff --git a/spec/requests/api/v1/instances/terms_of_services_spec.rb b/spec/requests/api/v1/instances/terms_of_services_spec.rb
new file mode 100644
index 0000000000..5feb49f48d
--- /dev/null
+++ b/spec/requests/api/v1/instances/terms_of_services_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Terms of Service' do
+ describe 'GET /api/v1/instance/terms_of_service' do
+ before do
+ Fabricate(:terms_of_service)
+ end
+
+ it 'returns http success' do
+ get api_v1_instance_terms_of_service_path
+
+ expect(response)
+ .to have_http_status(200)
+ expect(response.content_type)
+ .to start_with('application/json')
+
+ expect(response.parsed_body)
+ .to be_present
+ .and include(:content)
+ end
+ end
+end
From 7b7a29867bfc7303e63e263ff8fcd2dc10647735 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 9 Dec 2024 11:24:10 +0100
Subject: [PATCH 052/175] Update devDependencies (non-major) (#33221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index f1ba5a5379..0b6a7b779e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2213,15 +2213,15 @@ __metadata:
linkType: hard
"@formatjs/cli@npm:^6.1.1":
- version: 6.3.11
- resolution: "@formatjs/cli@npm:6.3.11"
+ version: 6.3.14
+ resolution: "@formatjs/cli@npm:6.3.14"
peerDependencies:
"@glimmer/env": ^0.1.7
- "@glimmer/reference": ^0.91.1 || ^0.92.0
- "@glimmer/syntax": ^0.92.0
- "@glimmer/validator": ^0.92.0
+ "@glimmer/reference": ^0.91.1 || ^0.92.0 || ^0.93.0
+ "@glimmer/syntax": ^0.92.0 || ^0.93.0
+ "@glimmer/validator": ^0.92.0 || ^0.93.0
"@vue/compiler-core": ^3.4.0
- content-tag: ^2.0.1
+ content-tag: ^2.0.1 || ^3.0.0
ember-template-recast: ^6.1.4
vue: ^3.4.0
peerDependenciesMeta:
@@ -2243,7 +2243,7 @@ __metadata:
optional: true
bin:
formatjs: bin/formatjs
- checksum: 10c0/31d5fac85314e97591c4c6a4793abf1d9c6fbf790fbbea779b2a4c0f742f1859804f290e77be06d128274468e44bc27992196aacb4cb6f2fbd141755ca79a98d
+ checksum: 10c0/b4c83ed7fdc8dcd48b2f48fa9cca65b52472fb096eb028517a872f8a71ed3964f4b0a6bbc607f821a9504f396fe7341ef4d9ad44a381a37f280ed7547de66f41
languageName: node
linkType: hard
@@ -3611,22 +3611,22 @@ __metadata:
linkType: hard
"@testing-library/react@npm:^16.0.0":
- version: 16.0.1
- resolution: "@testing-library/react@npm:16.0.1"
+ version: 16.1.0
+ resolution: "@testing-library/react@npm:16.1.0"
dependencies:
"@babel/runtime": "npm:^7.12.5"
peerDependencies:
"@testing-library/dom": ^10.0.0
- "@types/react": ^18.0.0
- "@types/react-dom": ^18.0.0
- react: ^18.0.0
- react-dom: ^18.0.0
+ "@types/react": ^18.0.0 || ^19.0.0
+ "@types/react-dom": ^18.0.0 || ^19.0.0
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
peerDependenciesMeta:
"@types/react":
optional: true
"@types/react-dom":
optional: true
- checksum: 10c0/67d05dec5ad5a2e6f92b6a3234af785435c7bb62bdbf12f3bfc89c9bca0c871a189e88c4ba023ed4cea504704c87c6ac7e86e24a3962df6c521ae89b62f48ff7
+ checksum: 10c0/8451dcc76ba0d4f3504af78f2a4aacc13117691f4b7a3c279f3e047d5ea817ff686496ad53e7f65f6183112aef2be3f318af609b1f5d666eed42b1014d1c68d5
languageName: node
linkType: hard
@@ -14287,11 +14287,11 @@ __metadata:
linkType: hard
"prettier@npm:^3.3.3":
- version: 3.4.1
- resolution: "prettier@npm:3.4.1"
+ version: 3.4.2
+ resolution: "prettier@npm:3.4.2"
bin:
prettier: bin/prettier.cjs
- checksum: 10c0/2d6cc3101ad9de72b49c59339480b0983e6ff6742143da0c43f476bf3b5ef88ede42ebd9956d7a0a8fa59f7a5990e8ef03c9ad4c37f7e4c9e5db43ee0853156c
+ checksum: 10c0/99e076a26ed0aba4ebc043880d0f08bbb8c59a4c6641cdee6cdadf2205bdd87aa1d7823f50c3aea41e015e99878d37c58d7b5f0e663bba0ef047f94e36b96446
languageName: node
linkType: hard
From 6615f17b4837b73b1c5baec48e5dcfa1371b6c14 Mon Sep 17 00:00:00 2001
From: Emelia Smith
Date: Mon, 9 Dec 2024 13:55:28 +0100
Subject: [PATCH 053/175] Fix missing top border on Admin Hashtags UI (#31443)
---
app/javascript/styles/mastodon/tables.scss | 8 ++++++++
app/views/admin/tags/index.html.haml | 3 ++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss
index 07d1ce12fd..e2996356bf 100644
--- a/app/javascript/styles/mastodon/tables.scss
+++ b/app/javascript/styles/mastodon/tables.scss
@@ -149,6 +149,14 @@ a.table-action-link {
}
.batch-table {
+ &--no-toolbar {
+ .batch-table__toolbar {
+ position: static;
+ height: 4px;
+ border-bottom: none;
+ }
+ }
+
&__toolbar,
&__row {
display: flex;
diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml
index be699e5ab2..cf265e22ad 100644
--- a/app/views/admin/tags/index.html.haml
+++ b/app/views/admin/tags/index.html.haml
@@ -29,7 +29,8 @@
%hr.spacer/
-.batch-table
+.batch-table.batch-table--no-toolbar
+ .batch-table__toolbar
.batch-table__body
- if @tags.empty?
= nothing_here 'nothing-here--under-tabs nothing-here--no-toolbar'
From 342055cb15bc96c9eee1489b0dc60d1ebfa5ab73 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Mon, 9 Dec 2024 09:52:49 -0500
Subject: [PATCH 054/175] Update `rubocop` to version 1.69.1 (#32967)
---
.rubocop/style.yml | 12 ++++++++++++
.rubocop_todo.yml | 3 +--
Gemfile.lock | 16 ++++++++--------
app/lib/request.rb | 2 +-
app/validators/domain_validator.rb | 2 +-
lib/mastodon/cli/progress_helper.rb | 2 +-
lib/tasks/mastodon.rake | 2 +-
7 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/.rubocop/style.yml b/.rubocop/style.yml
index 03e35a70ac..ee3ce39937 100644
--- a/.rubocop/style.yml
+++ b/.rubocop/style.yml
@@ -1,4 +1,7 @@
---
+Style/ArrayIntersect:
+ Enabled: false
+
Style/ClassAndModuleChildren:
Enabled: false
@@ -19,6 +22,12 @@ Style/HashSyntax:
EnforcedShorthandSyntax: either
EnforcedStyle: ruby19_no_mixed_keys
+Style/KeywordArgumentsMerging:
+ Enabled: false
+
+Style/MultipleComparison:
+ Enabled: false
+
Style/NumericLiterals:
AllowedPatterns:
- \d{4}_\d{2}_\d{2}_\d{6}
@@ -37,6 +46,9 @@ Style/RedundantFetchBlock:
Style/RescueStandardError:
EnforcedStyle: implicit
+Style/SafeNavigationChainLength:
+ Enabled: false
+
Style/SymbolArray:
Enabled: false
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index a6e51d6aee..552054898e 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-offense-counts --no-auto-gen-timestamp`
-# using RuboCop version 1.66.1.
+# using RuboCop version 1.69.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@@ -35,7 +35,6 @@ Rails/OutputSafety:
# Configuration parameters: AllowedVars.
Style/FetchEnvVar:
Exclude:
- - 'app/lib/translation_service.rb'
- 'config/environments/production.rb'
- 'config/initializers/2_limited_federation_mode.rb'
- 'config/initializers/3_omniauth.rb'
diff --git a/Gemfile.lock b/Gemfile.lock
index ccc8270ccd..b0910b4d53 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -327,7 +327,7 @@ GEM
azure-blob (~> 0.5.2)
hashie (~> 5.0)
jmespath (1.6.2)
- json (2.8.1)
+ json (2.9.0)
json-canonicalization (1.0.0)
json-jwt (1.15.3.1)
activesupport (>= 4.2)
@@ -664,7 +664,7 @@ GEM
redis (>= 4)
redlock (1.3.2)
redis (>= 3.0.0, < 6.0)
- regexp_parser (2.9.2)
+ regexp_parser (2.9.3)
reline (0.5.12)
io-console (~> 0.5)
request_store (1.6.0)
@@ -708,21 +708,21 @@ GEM
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 8)
rspec-support (3.13.1)
- rubocop (1.66.1)
+ rubocop (1.69.1)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
- regexp_parser (>= 2.4, < 3.0)
- rubocop-ast (>= 1.32.2, < 2.0)
+ regexp_parser (>= 2.9.3, < 3.0)
+ rubocop-ast (>= 1.36.2, < 2.0)
ruby-progressbar (~> 1.7)
- unicode-display_width (>= 2.4.0, < 3.0)
- rubocop-ast (1.32.3)
+ unicode-display_width (>= 2.4.0, < 4.0)
+ rubocop-ast (1.36.2)
parser (>= 3.3.1.0)
rubocop-capybara (2.21.0)
rubocop (~> 1.41)
- rubocop-performance (1.22.1)
+ rubocop-performance (1.23.0)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rails (2.27.0)
diff --git a/app/lib/request.rb b/app/lib/request.rb
index a12e6e3747..3d2a0c0e31 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -261,7 +261,7 @@ class Request
outer_e = nil
port = args.first
- addresses = []
+ addresses = [] # rubocop:disable Lint/UselessAssignment # TODO: https://github.com/rubocop/rubocop/issues/13395
begin
addresses = [IPAddr.new(host)]
rescue IPAddr::InvalidAddressError
diff --git a/app/validators/domain_validator.rb b/app/validators/domain_validator.rb
index 718fd190f1..f975dc8ff2 100644
--- a/app/validators/domain_validator.rb
+++ b/app/validators/domain_validator.rb
@@ -4,7 +4,7 @@ class DomainValidator < ActiveModel::EachValidator
MAX_DOMAIN_LENGTH = 256
MIN_LABEL_LENGTH = 1
MAX_LABEL_LENGTH = 63
- ALLOWED_CHARACTERS_RE = /^[a-z0-9\-]+$/i
+ ALLOWED_CHARACTERS_RE = /^[a-z0-9-]+$/i
def validate_each(record, attribute, value)
return if value.blank?
diff --git a/lib/mastodon/cli/progress_helper.rb b/lib/mastodon/cli/progress_helper.rb
index da9527ffd7..a0cfec69cf 100644
--- a/lib/mastodon/cli/progress_helper.rb
+++ b/lib/mastodon/cli/progress_helper.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-dev_null = Logger.new('/dev/null')
+dev_null = Logger.new(File::NULL)
Rails.logger = dev_null
ActiveRecord::Base.logger = dev_null
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index e1e2dd8194..692fe0a507 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -592,7 +592,7 @@ namespace :mastodon do
end
def disable_log_stdout!
- dev_null = Logger.new('/dev/null')
+ dev_null = Logger.new(File::NULL)
Rails.logger = dev_null
ActiveRecord::Base.logger = dev_null
From cfd2879ba40f44f82de17148cc83f44270560fab Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 9 Dec 2024 16:08:16 +0100
Subject: [PATCH 055/175] Update dependency nokogiri to v1.17.0 (#33218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index b0910b4d53..8c4b045baa 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -426,7 +426,7 @@ GEM
net-smtp (0.5.0)
net-protocol
nio4r (2.7.4)
- nokogiri (1.16.8)
+ nokogiri (1.17.0)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oj (3.16.7)
From 2e35b15b4d0607937a7172b84fa218058344908e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 9 Dec 2024 16:12:31 +0100
Subject: [PATCH 056/175] Update dependency react-textarea-autosize to v8.5.6
(#33228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 0b6a7b779e..24efee848a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -14937,15 +14937,15 @@ __metadata:
linkType: hard
"react-textarea-autosize@npm:^8.4.1":
- version: 8.5.5
- resolution: "react-textarea-autosize@npm:8.5.5"
+ version: 8.5.6
+ resolution: "react-textarea-autosize@npm:8.5.6"
dependencies:
"@babel/runtime": "npm:^7.20.13"
use-composed-ref: "npm:^1.3.0"
use-latest: "npm:^1.2.1"
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- checksum: 10c0/d708a31b39a409d0246cd8afbd956ce51db58ce0b6411b9d4e1dc876ce93c329d20875933ce5d337662fdcd3699596966dc630149236fee2835d74e302404c98
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/652d290d316c55a253507ecf65ca27f2162801dace10c715f2241203e81d82e9de6d282095b758b26c6bc9e1af9ca552cab5c3a361b230e5fcf25bec31e1bd25
languageName: node
linkType: hard
From 425311e1d95c8a64ddac6c724fca247b8b893a82 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Mon, 9 Dec 2024 23:42:45 +0100
Subject: [PATCH 057/175] Change referrer policy to be controlled by header in
web UI (#33214)
---
.eslintrc.js | 2 +-
app/controllers/admin/base_controller.rb | 5 +++++
.../mastodon/components/attachment_list.jsx | 2 +-
app/javascript/mastodon/components/dropdown_menu.jsx | 2 +-
.../mastodon/components/error_boundary.jsx | 2 +-
app/javascript/mastodon/components/follow_button.tsx | 2 +-
app/javascript/mastodon/components/media_gallery.jsx | 4 ++--
app/javascript/mastodon/components/server_banner.jsx | 2 +-
app/javascript/mastodon/components/status.jsx | 2 +-
app/javascript/mastodon/features/about/index.jsx | 2 +-
.../mastodon/features/account/components/header.jsx | 2 +-
.../mastodon/features/emoji/__tests__/emoji-test.js | 4 ++--
.../getting_started/components/announcements.jsx | 2 +-
.../components/relationships_severance_event.jsx | 2 +-
.../features/notifications/components/report.jsx | 2 +-
.../notifications_v2/components/embedded_status.tsx | 2 +-
.../mastodon/features/standalone/status/index.tsx | 2 +-
.../mastodon/features/status/components/card.jsx | 6 +++---
.../features/ui/components/actions_modal.jsx | 2 +-
.../mastodon/features/ui/components/link_footer.tsx | 12 ++++--------
app/lib/text_formatter.rb | 2 +-
app/views/admin/reports/_status.html.haml | 2 +-
app/views/admin/reports/actions/preview.html.haml | 2 +-
app/views/admin/statuses/show.html.haml | 2 +-
app/views/admin/tags/show.html.haml | 4 ++--
app/views/admin/trends/statuses/_status.html.haml | 2 +-
app/views/admin/trends/tags/_tag.html.haml | 2 +-
app/views/application/_card.html.haml | 2 +-
app/views/disputes/strikes/_card.html.haml | 2 +-
app/views/filters/statuses/_status_filter.html.haml | 4 ++--
.../oauth/authorized_applications/index.html.haml | 2 +-
app/views/redirects/show.html.haml | 2 +-
config/environments/production.rb | 2 +-
lib/sanitize_ext/sanitize_config.rb | 2 +-
spec/lib/sanitize/config_spec.rb | 8 ++++----
35 files changed, 51 insertions(+), 50 deletions(-)
diff --git a/.eslintrc.js b/.eslintrc.js
index 93ff1d7b59..480b274fad 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -109,7 +109,7 @@ module.exports = defineConfig({
'react/jsx-equals-spacing': 'error',
'react/jsx-no-bind': 'error',
'react/jsx-no-useless-fragment': 'error',
- 'react/jsx-no-target-blank': 'off',
+ 'react/jsx-no-target-blank': ['error', { allowReferrer: true }],
'react/jsx-tag-spacing': 'error',
'react/jsx-uses-react': 'off', // not needed with new JSX transform
'react/jsx-wrap-multilines': 'error',
diff --git a/app/controllers/admin/base_controller.rb b/app/controllers/admin/base_controller.rb
index 48685db17a..3dca3a9614 100644
--- a/app/controllers/admin/base_controller.rb
+++ b/app/controllers/admin/base_controller.rb
@@ -8,6 +8,7 @@ module Admin
layout 'admin'
before_action :set_cache_headers
+ before_action :set_referrer_policy_header
after_action :verify_authorized
@@ -17,6 +18,10 @@ module Admin
response.cache_control.replace(private: true, no_store: true)
end
+ def set_referrer_policy_header
+ response.headers['Referrer-Policy'] = 'same-origin'
+ end
+
def set_user
@user = Account.find(params[:account_id]).user || raise(ActiveRecord::RecordNotFound)
end
diff --git a/app/javascript/mastodon/components/attachment_list.jsx b/app/javascript/mastodon/components/attachment_list.jsx
index c5ac046751..f97e22f2d4 100644
--- a/app/javascript/mastodon/components/attachment_list.jsx
+++ b/app/javascript/mastodon/components/attachment_list.jsx
@@ -36,7 +36,7 @@ export default class AttachmentList extends ImmutablePureComponent {
return (
Mastodon:{' '}
-
+
-
+
@@ -91,7 +87,7 @@ export const LinkFooter: React.FC<{
/>
-
+ 'DENY',
'X-Content-Type-Options' => 'nosniff',
'X-XSS-Protection' => '0',
- 'Referrer-Policy' => 'same-origin',
+ 'Referrer-Policy' => ENV['ALLOW_REFERRER_ORIGIN'] == 'true' ? 'origin' : 'same-origin',
}
# TODO: Remove once devise-two-factor data migration complete
diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb
index c264548eb5..36c11a8263 100644
--- a/lib/sanitize_ext/sanitize_config.rb
+++ b/lib/sanitize_ext/sanitize_config.rb
@@ -114,7 +114,7 @@ class Sanitize
add_attributes: {
'a' => {
- 'rel' => 'nofollow noopener noreferrer',
+ 'rel' => 'nofollow noopener',
'target' => '_blank',
},
},
diff --git a/spec/lib/sanitize/config_spec.rb b/spec/lib/sanitize/config_spec.rb
index b1cab85827..b4c849c427 100644
--- a/spec/lib/sanitize/config_spec.rb
+++ b/spec/lib/sanitize/config_spec.rb
@@ -39,15 +39,15 @@ RSpec.describe Sanitize::Config do
end
it 'keeps a with href' do
- expect(Sanitize.fragment('Test', subject)).to eq 'Test'
+ expect(Sanitize.fragment('Test', subject)).to eq 'Test'
end
it 'keeps a with translate="no"' do
- expect(Sanitize.fragment('Test', subject)).to eq 'Test'
+ expect(Sanitize.fragment('Test', subject)).to eq 'Test'
end
it 'removes "translate" attribute with invalid value' do
- expect(Sanitize.fragment('Test', subject)).to eq 'Test'
+ expect(Sanitize.fragment('Test', subject)).to eq 'Test'
end
it 'removes a with unparsable href' do
@@ -55,7 +55,7 @@ RSpec.describe Sanitize::Config do
end
it 'keeps a with supported scheme and no host' do
- expect(Sanitize.fragment('Test', subject)).to eq 'Test'
+ expect(Sanitize.fragment('Test', subject)).to eq 'Test'
end
it 'sanitizes math to LaTeX' do
From 12d9ef6003e38d57db5bc7cdea5366d500f57d1a Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Mon, 9 Dec 2024 19:04:59 -0500
Subject: [PATCH 058/175] Character conversion on TOS template (#33233)
---
config/templates/terms-of-service.md | 90 ++++++++++++++--------------
1 file changed, 45 insertions(+), 45 deletions(-)
diff --git a/config/templates/terms-of-service.md b/config/templates/terms-of-service.md
index 0b279c5386..95e37355e1 100644
--- a/config/templates/terms-of-service.md
+++ b/config/templates/terms-of-service.md
@@ -1,7 +1,7 @@
## Introduction
-These terms of service (the "Terms") cover your access and use of Server
-Operator’s ("Administrator", "we", or "us") instance, located at %{domain} (the
+These terms of service (the "Terms") cover your access and use of Server
+Operator's ("Administrator", "we", or "us") instance, located at %{domain} (the
"Instance"). These Terms apply solely to your use of the Instance as operated
by the Administrator. Please note that we have no affiliation with Mastodon
gGmbH (“Mastodon”) and these Terms do not contain any representations or
@@ -23,8 +23,8 @@ are old enough to access the Instance in your country, but are not old enough to
have the legal authority to consent to our Terms, please ask your parent or
legal guardian to read these Terms with you, as they must agree to the Terms on
your behalf. If you are a parent or legal guardian who has accepted these terms
-on your child’s behalf, these terms apply to you and you are responsible for
-your child’s activities on the Instance.
+on your child's behalf, these terms apply to you and you are responsible for
+your child's activities on the Instance.
## Prohibited Uses
@@ -36,14 +36,14 @@ and local laws and regulations in connection with your use of the Instance. You
also agree not to use the Instance to engage in any prohibited conduct, or to
assist any other person or entity in engaging in any prohibited conduct.
-We reserve the right (but do not have the obligation) in our sole discretion to:
+We reserve the right (but do not have the obligation) in our sole discretion to:
(1) monitor the Instance for violations of these Terms; (2) take appropriate
-legal action against anyone who uses or accesses the Instance in a manner that
-we believe violates the law or these Terms, including without limitation,
-reporting such user to law enforcement authorities; (3) deny access to the
+legal action against anyone who uses or accesses the Instance in a manner that
+we believe violates the law or these Terms, including without limitation,
+reporting such user to law enforcement authorities; (3) deny access to the
Instance or any features of the Instance to anyone who violates these Terms or
-who we believe interferes with the ability of others to enjoy our Instance or
-infringes the rights of others; and (4) otherwise manage the Instance in a
+who we believe interferes with the ability of others to enjoy our Instance or
+infringes the rights of others; and (4) otherwise manage the Instance in a
manner designed to protect our rights and property and to facilitate the proper
functioning of the Instance.
@@ -53,16 +53,16 @@ attempt to):
- Violate these Terms or other policies and terms posted on, or otherwise
- applicable to, the Instance; Upload any material, program, or software that
-- contains any virus, worm, spyware, Trojan horse or other program or code
+- contains any virus, worm, spyware, Trojan horse or other program or code
- designed to interrupt, destroy or limit the functionality of the Instance,
-- launch a denial of service attack, or in any other way attempt to interfere
+- launch a denial of service attack, or in any other way attempt to interfere
- with the functioning and availability of the Instance; Except as may be the
- result of standard search engine or Internet browser usage, use, launch,
- develop, or distribute any automated system, including without limitation, any
- spider, robot, cheat utility, scraper, offline reader, or any data mining or
-- similar data gathering extraction tools to access the Instance, or use or
+- similar data gathering extraction tools to access the Instance, or use or
- launch any unauthorized script or other software; Interfere with, disable,
-- vandalize or disrupt the Instance or servers or networks connected to the
+- vandalize or disrupt the Instance or servers or networks connected to the
- Instance; Hack into, penetrate, disable, or otherwise circumvent the security
- measures of the Instance or servers or networks connected to the Instance; or
- otherwise use the Instance in any way that violates any applicable national,
@@ -90,11 +90,11 @@ the Content on the Instance.
## DMCA Copyright Infringement Notice
We have implemented the procedures described in the Digital Millennium Copyright
-Act of 1998 ("DMCA"), 17 U.S.C. § 512 , regarding the reporting of alleged
+Act of 1998 ("DMCA"), 17 U.S.C. § 512 , regarding the reporting of alleged
copyright infringement and the removal of or disabling access to infringing
-material. If you have a good faith belief that copyrighted material on the
-Instance is being used in a way that infringes a copyright over which you are
-authorized to act, you may make a Notice of Infringing Material. If you have a
+material. If you have a good faith belief that copyrighted material on the
+Instance is being used in a way that infringes a copyright over which you are
+authorized to act, you may make a Notice of Infringing Material. If you have a
good faith belief that copyrighted material that was removed or access to which
was disabled was a result of a mistake or misidentification, then you may make a
Notice of Counter-Notification.
@@ -103,57 +103,57 @@ Before serving a Notice of Infringing Material or Counter-Notification, you may
wish to contact a lawyer to better understand your rights and obligations under
the DMCA and other applicable laws. For example, if your Notice or
Counter-Notifications fails to comply with all requirements of sections
-512(c)(3) or 512(g)(3), respectively, your Notice or Counter-Notification may
+512(c)(3) or 512(g)(3), respectively, your Notice or Counter-Notification may
not be effective.
### Termination of Repeat Infringers
-We will terminate or disable your use of the Instance in appropriate
+We will terminate or disable your use of the Instance in appropriate
circumstances if you are deemed by us to be a repeat copyright infringer.
### Notices and Counter-Notifications must be sent to:
DMCA Agent: Copyright Manager
-Address: %{dmca_address}
+Address: %{dmca_address}
Email: %{dmca_email}
## Disclaimer
-Administrator reserves the right in our sole discretion to modify or
-discontinue, temporarily or permanently, the Instance (or any part thereof) with
+Administrator reserves the right in our sole discretion to modify or
+discontinue, temporarily or permanently, the Instance (or any part thereof) with
or without notice to you. You agree that Administrator will not be liable to
you or to any third party for any modification or discontinuance of the
Instance, except as set forth in the "Limitation of Liability" section below.
You understand that we are not responsible for any activities or legal
consequences of your use of the Instance. Users are responsible for using the
-Instance in compliance with all applicable laws and regulations of the
+Instance in compliance with all applicable laws and regulations of the
jurisdictions in which such users are domiciled, reside, or are located at the
-time of such access or use, as well as these Terms. Any violation of these
+time of such access or use, as well as these Terms. Any violation of these
Terms may result in the suspension or termination by us, in our sole discretion,
of your access to and use of the Instance.
## Limitation of Liability
-In no event will Administrator’s total liability to you for all damages, losses,
+In no event will Administrator's total liability to you for all damages, losses,
or causes of action exceed one hundred dollars ($100). If you are dissatisfied
with the Instance or with these Terms, your sole remedy is to discontinue your
use of the Instance.
## Links to and From Other Websites
-You may gain access to other websites and Instances via links on the Instance.
+You may gain access to other websites and Instances via links on the Instance.
These Terms apply to the Instance only and do not apply to Mastodon, other
Instances, or other parties' websites. Similarly, you may have come to the
Instance via a link from another website or Instance. The terms of use of other
-websites and Instances do not apply to the Instance. Administrator assumes no
+websites and Instances do not apply to the Instance. Administrator assumes no
responsibility for any terms of use or material outside of the Instance accessed
via any link. You are free to establish a hypertext link to the Instance so
long as the link does not state or imply any sponsorship of your website,
-instance or service by Administrator or the Instance. Unless expressly agreed
-to by us in writing, reference to any of our products, services, processes or
+instance or service by Administrator or the Instance. Unless expressly agreed
+to by us in writing, reference to any of our products, services, processes or
other information, by trade name, trademark, logo, or otherwise by you or any
third party does not constitute or imply endorsement, sponsorship or
recommendation thereof by us. You may not, without our prior written
@@ -175,7 +175,7 @@ us, will be resolved exclusively through final and binding arbitration before a
neutral arbitrator, rather than in a court by a judge or jury, in accordance
with the terms of this Arbitration Agreement, except that, where available, you
or we may (but are not required to) assert individual Claims in small claims
-court if such Claims are within the scope of such court’s jurisdiction. Further,
+court if such Claims are within the scope of such court's jurisdiction. Further,
this Arbitration Agreement does not preclude you from bringing issues to the
attention of federal, state/provincial, or local agencies, and such agencies
can, if the law allows, seek relief against us on your behalf. You agree that,
@@ -203,7 +203,7 @@ Instance has your contact information, the Instance will send its Notice to you
using the last email address we have on file for you if you have provided us
with an email address (each, a “Notice Address”). The Notice must (i) describe
the nature and basis of the Claim in sufficient detail to evaluate the merits of
-the claiming party’s Claim and (ii) set forth the specific relief sought,
+the claiming party's Claim and (ii) set forth the specific relief sought,
including the amount of money (if any) that is demanded and the means by which
the demanding party calculated the claimed amount. Both parties agree that they
will attempt to resolve a Claim through informal negotiation within sixty (60)
@@ -242,33 +242,33 @@ pursue a Claim in a local small claims court rather than through arbitration so
long as the matter remains in a small claims court and proceeds only on an
individual basis.
-## Choice of Law
+## Choice of Law
-Any and all claims related to or arising out of your use of, or access to the
-Instance shall be governed by internal substantive laws of New York in all
+Any and all claims related to or arising out of your use of, or access to the
+Instance shall be governed by internal substantive laws of New York in all
respects, without regard for the jurisdiction or forum in which you are
domiciled, reside, or located at the time of such access or use.
-## Waiver and Severability
+## Waiver and Severability
-If you do not comply with a portion of these Terms and we do not take action
-right away, this does not mean we are giving up any of our rights under these
+If you do not comply with a portion of these Terms and we do not take action
+right away, this does not mean we are giving up any of our rights under these
Terms. If any part of these Terms is determined to be invalid or unenforceable
-by a court of competent jurisdiction or arbitrator, the remainder of the Terms
-shall be enforced to the maximum extent permitted by law.
+by a court of competent jurisdiction or arbitrator, the remainder of the Terms
+shall be enforced to the maximum extent permitted by law.
## Notices
All notices to Administrator under these Terms, unless otherwise specified shall
-be sent to %{admin_email}. Service of any notice will be deemed given on the
+be sent to %{admin_email}. Service of any notice will be deemed given on the
date of receipt delivered by email.
## Changes to these Terms
-We may change or modify these Terms by posting a revised version on the
+We may change or modify these Terms by posting a revised version on the
Instance, or by otherwise providing notice to you, and will state at the top of
-the revised Terms the date they were last revised. Changes will not apply
-retroactively and will become effective no earlier than fourteen (14) calendar
+the revised Terms the date they were last revised. Changes will not apply
+retroactively and will become effective no earlier than fourteen (14) calendar
days after they are posted, except for changes addressing changes made for legal
reasons, which will be effective immediately. Your continued use of the
-Instance after any change means you agree to the new Terms.
+Instance after any change means you agree to the new Terms.
From 2131e61548ebf4f4522e3bbe5d6b69609d211069 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Mon, 9 Dec 2024 20:43:03 -0500
Subject: [PATCH 059/175] Fix hard wrap of markdown list in TOS template
(#33230)
---
config/templates/terms-of-service.md | 32 +++++++++++++++-------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/config/templates/terms-of-service.md b/config/templates/terms-of-service.md
index 95e37355e1..cb81a22e84 100644
--- a/config/templates/terms-of-service.md
+++ b/config/templates/terms-of-service.md
@@ -52,21 +52,23 @@ illegal activities. Accordingly, you may not, or assist any other person to (or
attempt to):
- Violate these Terms or other policies and terms posted on, or otherwise
-- applicable to, the Instance; Upload any material, program, or software that
-- contains any virus, worm, spyware, Trojan horse or other program or code
-- designed to interrupt, destroy or limit the functionality of the Instance,
-- launch a denial of service attack, or in any other way attempt to interfere
-- with the functioning and availability of the Instance; Except as may be the
-- result of standard search engine or Internet browser usage, use, launch,
-- develop, or distribute any automated system, including without limitation, any
-- spider, robot, cheat utility, scraper, offline reader, or any data mining or
-- similar data gathering extraction tools to access the Instance, or use or
-- launch any unauthorized script or other software; Interfere with, disable,
-- vandalize or disrupt the Instance or servers or networks connected to the
-- Instance; Hack into, penetrate, disable, or otherwise circumvent the security
-- measures of the Instance or servers or networks connected to the Instance; or
-- otherwise use the Instance in any way that violates any applicable national,
-- federal, state, local or international law or regulation.
+ applicable to, the Instance;
+- Upload any material, program, or software that contains any virus, worm,
+ spyware, Trojan horse or other program or code designed to interrupt, destroy
+ or limit the functionality of the Instance, launch a denial of service attack,
+ or in any other way attempt to interfere with the functioning and availability
+ of the Instance;
+- Except as may be the result of standard search engine or Internet browser
+ usage, use, launch, develop, or distribute any automated system, including
+ without limitation, any spider, robot, cheat utility, scraper, offline reader,
+ or any data mining or similar data gathering extraction tools to access the
+ Instance, or use or launch any unauthorized script or other software;
+- Interfere with, disable, vandalize or disrupt the Instance or servers or
+ networks connected to the Instance;
+- Hack into, penetrate, disable, or otherwise circumvent the security measures
+ of the Instance or servers or networks connected to the Instance;
+- or otherwise use the Instance in any way that violates any applicable
+ national, federal, state, local or international law or regulation.
## Intellectual Property
From c8c916e6570ac70005254ab8952cecde4e78fbe8 Mon Sep 17 00:00:00 2001
From: FND
Date: Tue, 10 Dec 2024 09:41:06 +0100
Subject: [PATCH 060/175] Change URL truncation to account for ellipses
(#33229)
---
app/lib/text_formatter.rb | 6 ++++++
spec/lib/text_formatter_spec.rb | 22 +++++++++++++++++++++-
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/app/lib/text_formatter.rb b/app/lib/text_formatter.rb
index 7fbb6fce12..c1b0a81652 100644
--- a/app/lib/text_formatter.rb
+++ b/app/lib/text_formatter.rb
@@ -68,6 +68,12 @@ class TextFormatter
suffix = url[prefix.length + 30..]
cutoff = url[prefix.length..].length > 30
+ if suffix && suffix.length == 1 # revert truncation to account for ellipsis
+ display_url += suffix
+ suffix = nil
+ cutoff = false
+ end
+
tag.a href: url, target: '_blank', rel: rel.join(' '), translate: 'no' do
tag.span(prefix, class: 'invisible') +
tag.span(display_url, class: (cutoff ? 'ellipsis' : '')) +
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index bde17bb79c..a71655ed2e 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -50,7 +50,7 @@ RSpec.describe TextFormatter do
end
end
- context 'when given a stand-alone google URL' do
+ context 'when given a stand-alone Google URL' do
let(:text) { 'http://google.com' }
it 'matches the full URL' do
@@ -280,6 +280,26 @@ RSpec.describe TextFormatter do
end
end
+ context 'when given a lengthy URL' do
+ let(:text) { 'lorem https://prepitaph.org/wip/web-dovespair/ ipsum' }
+
+ it 'truncates the URL' do
+ expect(subject).to include 'https://'
+ expect(subject).to include 'prepitaph.org/wip/web-dovespai'
+ expect(subject).to include 'r/'
+ end
+ end
+
+ context 'when given a sufficiently short URL' do
+ let(:text) { 'lorem https://prepitaph.org/wip/web-devspair/ ipsum' }
+
+ it 'does not truncate the URL' do
+ expect(subject).to include 'https://'
+ expect(subject).to include 'prepitaph.org/wip/web-devspair/'
+ expect(subject).to include ''
+ end
+ end
+
context 'when given text containing a hashtag' do
let(:text) { '#hashtag' }
From 801cd731beeaea07e429dce63601090d53b844cf Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 10 Dec 2024 10:10:28 +0100
Subject: [PATCH 061/175] New Crowdin Translations (automated) (#33235)
Co-authored-by: GitHub Actions
---
app/javascript/mastodon/locales/af.json | 1 -
app/javascript/mastodon/locales/an.json | 1 -
app/javascript/mastodon/locales/ar.json | 1 -
app/javascript/mastodon/locales/ast.json | 1 -
app/javascript/mastodon/locales/be.json | 1 -
app/javascript/mastodon/locales/bg.json | 3 +-
app/javascript/mastodon/locales/br.json | 1 -
app/javascript/mastodon/locales/ca.json | 3 +-
app/javascript/mastodon/locales/ckb.json | 1 -
app/javascript/mastodon/locales/cs.json | 1 -
app/javascript/mastodon/locales/cy.json | 1 -
app/javascript/mastodon/locales/da.json | 3 +-
app/javascript/mastodon/locales/de.json | 3 +-
app/javascript/mastodon/locales/el.json | 1 -
app/javascript/mastodon/locales/en-GB.json | 1 -
app/javascript/mastodon/locales/eo.json | 3 +-
app/javascript/mastodon/locales/es-AR.json | 3 +-
app/javascript/mastodon/locales/es-MX.json | 3 +-
app/javascript/mastodon/locales/es.json | 3 +-
app/javascript/mastodon/locales/et.json | 1 -
app/javascript/mastodon/locales/eu.json | 1 -
app/javascript/mastodon/locales/fa.json | 3 +-
app/javascript/mastodon/locales/fi.json | 3 +-
app/javascript/mastodon/locales/fo.json | 1 -
app/javascript/mastodon/locales/fr-CA.json | 3 +-
app/javascript/mastodon/locales/fr.json | 3 +-
app/javascript/mastodon/locales/fy.json | 1 -
app/javascript/mastodon/locales/ga.json | 1 -
app/javascript/mastodon/locales/gd.json | 1 -
app/javascript/mastodon/locales/gl.json | 3 +-
app/javascript/mastodon/locales/he.json | 3 +-
app/javascript/mastodon/locales/hi.json | 1 -
app/javascript/mastodon/locales/hr.json | 1 -
app/javascript/mastodon/locales/hu.json | 3 +-
app/javascript/mastodon/locales/hy.json | 1 -
app/javascript/mastodon/locales/ia.json | 1 -
app/javascript/mastodon/locales/id.json | 1 -
app/javascript/mastodon/locales/ie.json | 1 -
app/javascript/mastodon/locales/io.json | 1 -
app/javascript/mastodon/locales/is.json | 3 +-
app/javascript/mastodon/locales/it.json | 3 +-
app/javascript/mastodon/locales/ja.json | 1 -
app/javascript/mastodon/locales/kab.json | 1 -
app/javascript/mastodon/locales/ko.json | 2 +-
app/javascript/mastodon/locales/ku.json | 1 -
app/javascript/mastodon/locales/lad.json | 1 -
app/javascript/mastodon/locales/lt.json | 3 +-
app/javascript/mastodon/locales/lv.json | 1 -
app/javascript/mastodon/locales/ml.json | 1 -
app/javascript/mastodon/locales/ms.json | 1 -
app/javascript/mastodon/locales/my.json | 1 -
app/javascript/mastodon/locales/nl.json | 3 +-
app/javascript/mastodon/locales/nn.json | 1 -
app/javascript/mastodon/locales/no.json | 1 -
app/javascript/mastodon/locales/oc.json | 1 -
app/javascript/mastodon/locales/pa.json | 1 -
app/javascript/mastodon/locales/pl.json | 9 ++-
app/javascript/mastodon/locales/pt-BR.json | 3 +-
app/javascript/mastodon/locales/pt-PT.json | 1 -
app/javascript/mastodon/locales/ro.json | 1 -
app/javascript/mastodon/locales/ru.json | 1 -
app/javascript/mastodon/locales/sa.json | 1 -
app/javascript/mastodon/locales/sc.json | 1 -
app/javascript/mastodon/locales/sco.json | 1 -
app/javascript/mastodon/locales/si.json | 1 -
app/javascript/mastodon/locales/sk.json | 1 -
app/javascript/mastodon/locales/sl.json | 1 -
app/javascript/mastodon/locales/sq.json | 3 +-
app/javascript/mastodon/locales/sr-Latn.json | 1 -
app/javascript/mastodon/locales/sr.json | 1 -
app/javascript/mastodon/locales/sv.json | 1 -
app/javascript/mastodon/locales/th.json | 1 -
app/javascript/mastodon/locales/tr.json | 3 +-
app/javascript/mastodon/locales/tt.json | 1 -
app/javascript/mastodon/locales/uk.json | 2 +-
app/javascript/mastodon/locales/uz.json | 1 -
app/javascript/mastodon/locales/vi.json | 3 +-
app/javascript/mastodon/locales/zh-CN.json | 3 +-
app/javascript/mastodon/locales/zh-HK.json | 1 -
app/javascript/mastodon/locales/zh-TW.json | 5 +-
config/locales/activerecord.fy.yml | 5 ++
config/locales/bg.yml | 16 +++++
config/locales/ca.yml | 21 +++++++
config/locales/da.yml | 45 +++++++++++++++
config/locales/de.yml | 45 +++++++++++++++
config/locales/devise.zh-CN.yml | 2 +-
config/locales/eo.yml | 21 +++++++
config/locales/es-AR.yml | 29 ++++++++++
config/locales/es-MX.yml | 44 ++++++++++++++
config/locales/es.yml | 29 ++++++++++
config/locales/fi.yml | 45 +++++++++++++++
config/locales/fr-CA.yml | 45 +++++++++++++++
config/locales/fr.yml | 45 +++++++++++++++
config/locales/fy.yml | 61 ++++++++++++++++++++
config/locales/gl.yml | 45 +++++++++++++++
config/locales/he.yml | 47 +++++++++++++++
config/locales/hu.yml | 43 ++++++++++++++
config/locales/is.yml | 36 ++++++++++++
config/locales/it.yml | 43 ++++++++++++++
config/locales/ko.yml | 18 ++++++
config/locales/lt.yml | 47 +++++++++++++++
config/locales/nl.yml | 45 +++++++++++++++
config/locales/pt-BR.yml | 12 ++++
config/locales/simple_form.bg.yml | 16 +++++
config/locales/simple_form.ca.yml | 11 ++++
config/locales/simple_form.da.yml | 22 +++++++
config/locales/simple_form.de.yml | 21 +++++++
config/locales/simple_form.eo.yml | 4 ++
config/locales/simple_form.es-AR.yml | 11 ++++
config/locales/simple_form.es-MX.yml | 18 ++++++
config/locales/simple_form.es.yml | 11 ++++
config/locales/simple_form.fi.yml | 22 +++++++
config/locales/simple_form.fr-CA.yml | 22 +++++++
config/locales/simple_form.fr.yml | 22 +++++++
config/locales/simple_form.fy.yml | 25 ++++++++
config/locales/simple_form.gl.yml | 22 +++++++
config/locales/simple_form.he.yml | 22 +++++++
config/locales/simple_form.hu.yml | 17 ++++++
config/locales/simple_form.is.yml | 8 +++
config/locales/simple_form.it.yml | 22 +++++++
config/locales/simple_form.lt.yml | 22 +++++++
config/locales/simple_form.nl.yml | 22 +++++++
config/locales/simple_form.pl.yml | 6 ++
config/locales/simple_form.sq.yml | 21 +++++++
config/locales/simple_form.tr.yml | 3 +
config/locales/simple_form.zh-CN.yml | 22 +++++++
config/locales/simple_form.zh-TW.yml | 22 +++++++
config/locales/sq.yml | 45 +++++++++++++++
config/locales/tr.yml | 23 ++++++++
config/locales/uk.yml | 1 +
config/locales/vi.yml | 3 +
config/locales/zh-CN.yml | 44 ++++++++++++++
config/locales/zh-TW.yml | 44 ++++++++++++++
133 files changed, 1422 insertions(+), 83 deletions(-)
diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json
index 4bba9976eb..ff0d2d5cbc 100644
--- a/app/javascript/mastodon/locales/af.json
+++ b/app/javascript/mastodon/locales/af.json
@@ -162,7 +162,6 @@
"footer.about": "Oor",
"footer.directory": "Profielgids",
"footer.get_app": "Kry die app",
- "footer.invite": "Nooi ander",
"footer.keyboard_shortcuts": "Kortpadsleutels",
"footer.privacy_policy": "Privaatheidsbeleid",
"footer.source_code": "Wys bronkode",
diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json
index c0fc8bd9f1..260687de01 100644
--- a/app/javascript/mastodon/locales/an.json
+++ b/app/javascript/mastodon/locales/an.json
@@ -219,7 +219,6 @@
"footer.about": "Sobre",
"footer.directory": "Directorio de perfils",
"footer.get_app": "Obtener l'aplicación",
- "footer.invite": "Convidar chent",
"footer.keyboard_shortcuts": "Alcorces de teclau",
"footer.privacy_policy": "Politica de privacidat",
"footer.source_code": "Veyer codigo fuent",
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index e3183ac4ab..6020cd254a 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -322,7 +322,6 @@
"footer.about": "عن",
"footer.directory": "دليل الصفحات التعريفية",
"footer.get_app": "احصل على التطبيق",
- "footer.invite": "دعوة أشخاص",
"footer.keyboard_shortcuts": "اختصارات لوحة المفاتيح",
"footer.privacy_policy": "سياسة الخصوصية",
"footer.source_code": "الاطلاع على الشفرة المصدرية",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index b453dfe0e6..1b99b1dae1 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -196,7 +196,6 @@
"footer.about": "Tocante a",
"footer.directory": "Direutoriu de perfiles",
"footer.get_app": "Consiguir l'aplicación",
- "footer.invite": "Convidar a persones",
"footer.keyboard_shortcuts": "Atayos del tecláu",
"footer.privacy_policy": "Política de privacidá",
"footer.source_code": "Ver el códigu fonte",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index 4b85f982e5..5bc8625c96 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -328,7 +328,6 @@
"footer.about": "Пра нас",
"footer.directory": "Дырэкторыя профіляў",
"footer.get_app": "Спампаваць праграму",
- "footer.invite": "Запрасіць людзей",
"footer.keyboard_shortcuts": "Спалучэнні клавіш",
"footer.privacy_policy": "Палітыка прыватнасці",
"footer.source_code": "Прагледзець зыходны код",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 141d20f16d..527fa5f7f9 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -359,11 +359,11 @@
"footer.about": "Относно",
"footer.directory": "Директория на профилите",
"footer.get_app": "Вземане на приложението",
- "footer.invite": "Поканване на хора",
"footer.keyboard_shortcuts": "Клавишни комбинации",
"footer.privacy_policy": "Политика за поверителност",
"footer.source_code": "Преглед на изходния код",
"footer.status": "Състояние",
+ "footer.terms_of_service": "Условия на услугата",
"generic.saved": "Запазено",
"getting_started.heading": "Първи стъпки",
"hashtag.admin_moderation": "Отваряне на модериращия интерфейс за #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Промяна на абонираните езици за {target}",
"tabs_bar.home": "Начало",
"tabs_bar.notifications": "Известия",
+ "terms_of_service.title": "Условия на услугата",
"time_remaining.days": "{number, plural, one {остава # ден} other {остават # дни}}",
"time_remaining.hours": "{number, plural, one {остава # час} other {остават # часа}}",
"time_remaining.minutes": "{number, plural, one {остава # минута} other {остават # минути}}",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index 971d58b1fa..1620b8a526 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -263,7 +263,6 @@
"footer.about": "Diwar-benn",
"footer.directory": "Kavlec'h ar profiloù",
"footer.get_app": "Pellgargañ an arload",
- "footer.invite": "Pediñ tud",
"footer.keyboard_shortcuts": "Berradennoù klavier",
"footer.privacy_policy": "Reolennoù prevezded",
"footer.source_code": "Gwelet ar c'hod mammenn",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index b6344c45e8..b46116718f 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -359,11 +359,11 @@
"footer.about": "Quant a",
"footer.directory": "Directori de perfils",
"footer.get_app": "Aconsegueix l'app",
- "footer.invite": "Convida persones",
"footer.keyboard_shortcuts": "Dreceres de teclat",
"footer.privacy_policy": "Política de privadesa",
"footer.source_code": "Mostra el codi font",
"footer.status": "Estat",
+ "footer.terms_of_service": "Condicions de servei",
"generic.saved": "Desat",
"getting_started.heading": "Primeres passes",
"hashtag.admin_moderation": "Obre la interfície de moderació per a #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Canvia les llengües subscrites per a {target}",
"tabs_bar.home": "Inici",
"tabs_bar.notifications": "Notificacions",
+ "terms_of_service.title": "Condicions de servei",
"time_remaining.days": "{number, plural, one {# dia restant} other {# dies restants}}",
"time_remaining.hours": "{number, plural, one {# hora restant} other {# hores restants}}",
"time_remaining.minutes": "{number, plural, one {# minut restant} other {# minuts restants}}",
diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json
index fe22cd661f..865e336a7e 100644
--- a/app/javascript/mastodon/locales/ckb.json
+++ b/app/javascript/mastodon/locales/ckb.json
@@ -262,7 +262,6 @@
"footer.about": "دەربارە",
"footer.directory": "ڕابەری پەڕەی ناساندن",
"footer.get_app": "بەرنامەکە بەدەست بێنە",
- "footer.invite": "بانگهێشتکردنی خەڵک",
"footer.keyboard_shortcuts": "کورتەڕێکانی تەختەکلیک",
"footer.privacy_policy": "سیاسەتی تایبەتمەندێتی",
"footer.source_code": "پیشاندانی کۆدی سەرچاوە",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index c8042a1259..8aca6b570b 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -320,7 +320,6 @@
"footer.about": "O aplikaci",
"footer.directory": "Adresář profilů",
"footer.get_app": "Získat aplikaci",
- "footer.invite": "Pozvat lidi",
"footer.keyboard_shortcuts": "Klávesové zkratky",
"footer.privacy_policy": "Zásady ochrany osobních údajů",
"footer.source_code": "Zobrazit zdrojový kód",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index a533230acd..9255f972c6 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -350,7 +350,6 @@
"footer.about": "Ynghylch",
"footer.directory": "Cyfeiriadur proffiliau",
"footer.get_app": "Lawrlwytho'r ap",
- "footer.invite": "Gwahodd pobl",
"footer.keyboard_shortcuts": "Bysellau brys",
"footer.privacy_policy": "Polisi preifatrwydd",
"footer.source_code": "Gweld y cod ffynhonnell",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index adf7c8386a..697d196303 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -359,11 +359,11 @@
"footer.about": "Om",
"footer.directory": "Profiloversigt",
"footer.get_app": "Hent appen",
- "footer.invite": "Invitér personer",
"footer.keyboard_shortcuts": "Tastaturgenveje",
"footer.privacy_policy": "Privatlivspolitik",
"footer.source_code": "Vis kildekode",
"footer.status": "Status",
+ "footer.terms_of_service": "Tjenestevilkår",
"generic.saved": "Gemt",
"getting_started.heading": "Startmenu",
"hashtag.admin_moderation": "Åbn modereringsbrugerflade for #{name}",
@@ -856,6 +856,7 @@
"subscribed_languages.target": "Skift abonnementssprog for {target}",
"tabs_bar.home": "Hjem",
"tabs_bar.notifications": "Notifikationer",
+ "terms_of_service.title": "Tjenestevilkår",
"time_remaining.days": "{number, plural, one {# dag} other {# dage}} tilbage",
"time_remaining.hours": "{number, plural, one {# time} other {# timer}} tilbage",
"time_remaining.minutes": "{number, plural, one {# minut} other {# minutter}} tilbage",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 6da8478c06..468577cc6b 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -359,11 +359,11 @@
"footer.about": "Über",
"footer.directory": "Profilverzeichnis",
"footer.get_app": "App herunterladen",
- "footer.invite": "Leute einladen",
"footer.keyboard_shortcuts": "Tastenkombinationen",
"footer.privacy_policy": "Datenschutzerklärung",
"footer.source_code": "Quellcode anzeigen",
"footer.status": "Status",
+ "footer.terms_of_service": "Nutzungsbedingungen",
"generic.saved": "Gespeichert",
"getting_started.heading": "Auf gehts!",
"hashtag.admin_moderation": "#{name} moderieren",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Abonnierte Sprachen für {target} ändern",
"tabs_bar.home": "Startseite",
"tabs_bar.notifications": "Benachrichtigungen",
+ "terms_of_service.title": "Nutzungsbedingungen",
"time_remaining.days": "noch {number, plural, one {# Tag} other {# Tage}}",
"time_remaining.hours": "noch {number, plural, one {# Stunde} other {# Stunden}}",
"time_remaining.minutes": "noch {number, plural, one {# Minute} other {# Minuten}}",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index dcd6357493..19ef0febb4 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -359,7 +359,6 @@
"footer.about": "Σχετικά με",
"footer.directory": "Κατάλογος προφίλ",
"footer.get_app": "Αποκτήστε την εφαρμογή",
- "footer.invite": "Προσκάλεσε άτομα",
"footer.keyboard_shortcuts": "Συντομεύσεις πληκτρολογίου",
"footer.privacy_policy": "Πολιτική απορρήτου",
"footer.source_code": "Προβολή πηγαίου κώδικα",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index 8f00fe5b20..41bbfe6e20 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -350,7 +350,6 @@
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
- "footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index c09d403daa..6c060af493 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -359,11 +359,11 @@
"footer.about": "Pri",
"footer.directory": "Profilujo",
"footer.get_app": "Akiri la apon",
- "footer.invite": "Inviti homojn",
"footer.keyboard_shortcuts": "Fulmoklavoj",
"footer.privacy_policy": "Politiko de privateco",
"footer.source_code": "Montri fontkodon",
"footer.status": "Stato",
+ "footer.terms_of_service": "Kondiĉoj de uzado",
"generic.saved": "Konservita",
"getting_started.heading": "Por komenci",
"hashtag.admin_moderation": "Malfermi fasadon de moderigado por #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Ŝanĝu abonitajn lingvojn por {target}",
"tabs_bar.home": "Hejmo",
"tabs_bar.notifications": "Sciigoj",
+ "terms_of_service.title": "Kondiĉoj de uzado",
"time_remaining.days": "{number, plural, one {# tago} other {# tagoj}} restas",
"time_remaining.hours": "{number, plural, one {# horo} other {# horoj}} restas",
"time_remaining.minutes": "{number, plural, one {# minuto} other {# minutoj}} restas",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index d8c97028e4..f8ffcb5997 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -359,11 +359,11 @@
"footer.about": "Información",
"footer.directory": "Directorio de perfiles",
"footer.get_app": "Conseguí la aplicación",
- "footer.invite": "Invitá a gente",
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
"footer.status": "Estado",
+ "footer.terms_of_service": "Términos del servicio",
"generic.saved": "Guardado",
"getting_started.heading": "Inicio de Mastodon",
"hashtag.admin_moderation": "Abrir interfaz de moderación para #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Cambiar idiomas suscritos para {target}",
"tabs_bar.home": "Principal",
"tabs_bar.notifications": "Notificaciones",
+ "terms_of_service.title": "Términos del servicio",
"time_remaining.days": "{number, plural,one {queda # día} other {quedan # días}}",
"time_remaining.hours": "{number, plural,one {queda # hora} other {quedan # horas}}",
"time_remaining.minutes": "{number, plural,one {queda # minuto} other {quedan # minutos}}",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index a433db023d..fe581e9810 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -359,11 +359,11 @@
"footer.about": "Acerca de",
"footer.directory": "Directorio de perfiles",
"footer.get_app": "Obtener la aplicación",
- "footer.invite": "Invitar personas",
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
"footer.status": "Estado",
+ "footer.terms_of_service": "Condiciones del servicio",
"generic.saved": "Guardado",
"getting_started.heading": "Primeros pasos",
"hashtag.admin_moderation": "Abrir interfaz de moderación para #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Cambiar idiomas suscritos para {target}",
"tabs_bar.home": "Inicio",
"tabs_bar.notifications": "Notificaciones",
+ "terms_of_service.title": "Condiciones del servicio",
"time_remaining.days": "{number, plural, one {# día restante} other {# días restantes}}",
"time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}",
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 37a88c979b..f3679e8e7a 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -359,11 +359,11 @@
"footer.about": "Acerca de",
"footer.directory": "Directorio de perfiles",
"footer.get_app": "Obtener la aplicación",
- "footer.invite": "Invitar personas",
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
"footer.status": "Estado",
+ "footer.terms_of_service": "Términos del servicio",
"generic.saved": "Guardado",
"getting_started.heading": "Primeros pasos",
"hashtag.admin_moderation": "Abrir interfaz de moderación para #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Cambiar idiomas suscritos para {target}",
"tabs_bar.home": "Inicio",
"tabs_bar.notifications": "Notificaciones",
+ "terms_of_service.title": "Términos del servicio",
"time_remaining.days": "{number, plural, one {# día restante} other {# días restantes}}",
"time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}",
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index a9c36101b9..369ad2957b 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -355,7 +355,6 @@
"footer.about": "Teave",
"footer.directory": "Profiilikataloog",
"footer.get_app": "Tõmba äpp",
- "footer.invite": "Kutsu liituma",
"footer.keyboard_shortcuts": "Kiirklahvid",
"footer.privacy_policy": "Isikuandmete kaitse",
"footer.source_code": "Lähtekood",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 348f544c3a..0afee2ed1d 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -326,7 +326,6 @@
"footer.about": "Honi buruz",
"footer.directory": "Profil-direktorioa",
"footer.get_app": "Eskuratu aplikazioa",
- "footer.invite": "Gonbidatu jendea",
"footer.keyboard_shortcuts": "Lasterbideak",
"footer.privacy_policy": "Pribatutasun politika",
"footer.source_code": "Ikusi iturburu kodea",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index dd523aacbc..81ea7f0392 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -102,7 +102,7 @@
"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.text": "بین کاربران {domain} جزوبرتر هستید.",
"annual_report.summary.percentile.we_wont_tell_bernie": "به برنی خبر نمیدهیم.",
"annual_report.summary.thanks": "سپاس که بخشی از ماستودون هستید!",
"attachments_list.unprocessed": "(پردازش نشده)",
@@ -358,7 +358,6 @@
"footer.about": "درباره",
"footer.directory": "فهرست نمایهها",
"footer.get_app": "گرفتن کاره",
- "footer.invite": "دعوت دیگران",
"footer.keyboard_shortcuts": "میانبرهای صفحهکلید",
"footer.privacy_policy": "سیاست محرمانگی",
"footer.source_code": "نمایش کد مبدأ",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index d3c9849e83..855d66a77c 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -358,11 +358,11 @@
"footer.about": "Tietoja",
"footer.directory": "Profiilihakemisto",
"footer.get_app": "Hanki sovellus",
- "footer.invite": "Kutsu käyttäjiä",
"footer.keyboard_shortcuts": "Pikanäppäimet",
"footer.privacy_policy": "Tietosuojakäytäntö",
"footer.source_code": "Näytä lähdekoodi",
"footer.status": "Tila",
+ "footer.terms_of_service": "Käyttöehdot",
"generic.saved": "Tallennettu",
"getting_started.heading": "Näin pääset alkuun",
"hashtag.admin_moderation": "Avaa tunnisteen #{name} moderointinäkymä",
@@ -856,6 +856,7 @@
"subscribed_languages.target": "Vaihda tilattuja kieliä käyttäjältä {target}",
"tabs_bar.home": "Koti",
"tabs_bar.notifications": "Ilmoitukset",
+ "terms_of_service.title": "Käyttöehdot",
"time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä",
"time_remaining.hours": "{number, plural, one {# tunti} other {# tuntia}} jäljellä",
"time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä",
diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json
index aa2e78afe8..4a38d3b775 100644
--- a/app/javascript/mastodon/locales/fo.json
+++ b/app/javascript/mastodon/locales/fo.json
@@ -359,7 +359,6 @@
"footer.about": "Um",
"footer.directory": "Vangaskrá",
"footer.get_app": "Heinta appina",
- "footer.invite": "Bjóða fólki",
"footer.keyboard_shortcuts": "Knappasnarvegir",
"footer.privacy_policy": "Privatlívspolitikkur",
"footer.source_code": "Vís keldukotuna",
diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json
index 327474a1e2..f423d1549d 100644
--- a/app/javascript/mastodon/locales/fr-CA.json
+++ b/app/javascript/mastodon/locales/fr-CA.json
@@ -359,11 +359,11 @@
"footer.about": "À propos",
"footer.directory": "Annuaire des profils",
"footer.get_app": "Télécharger l’application",
- "footer.invite": "Inviter des gens",
"footer.keyboard_shortcuts": "Raccourcis clavier",
"footer.privacy_policy": "Politique de confidentialité",
"footer.source_code": "Voir le code source",
"footer.status": "État",
+ "footer.terms_of_service": "Conditions d’utilisation",
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
"hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Changer les langues abonnées pour {target}",
"tabs_bar.home": "Accueil",
"tabs_bar.notifications": "Notifications",
+ "terms_of_service.title": "Conditions d'utilisation",
"time_remaining.days": "{number, plural, one {# jour restant} other {# jours restants}}",
"time_remaining.hours": "{number, plural, one {# heure restante} other {# heures restantes}}",
"time_remaining.minutes": "{number, plural, one {# minute restante} other {# minutes restantes}}",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 11334761a3..d7cfc0aca5 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -359,11 +359,11 @@
"footer.about": "À propos",
"footer.directory": "Annuaire des profils",
"footer.get_app": "Télécharger l’application",
- "footer.invite": "Inviter des personnes",
"footer.keyboard_shortcuts": "Raccourcis clavier",
"footer.privacy_policy": "Politique de confidentialité",
"footer.source_code": "Voir le code source",
"footer.status": "État",
+ "footer.terms_of_service": "Conditions d’utilisation",
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
"hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Changer les langues abonnées pour {target}",
"tabs_bar.home": "Accueil",
"tabs_bar.notifications": "Notifications",
+ "terms_of_service.title": "Conditions d'utilisation",
"time_remaining.days": "{number, plural, one {# jour restant} other {# jours restants}}",
"time_remaining.hours": "{number, plural, one {# heure restante} other {# heures restantes}}",
"time_remaining.minutes": "{number, plural, one {# minute restante} other {# minutes restantes}}",
diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json
index 5d990090ca..ec0d5728dc 100644
--- a/app/javascript/mastodon/locales/fy.json
+++ b/app/javascript/mastodon/locales/fy.json
@@ -328,7 +328,6 @@
"footer.about": "Oer",
"footer.directory": "Profylmap",
"footer.get_app": "App downloade",
- "footer.invite": "Minsken útnûgje",
"footer.keyboard_shortcuts": "Fluchtoetsen",
"footer.privacy_policy": "Privacybelied",
"footer.source_code": "Boarnekoade besjen",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index ca136274a6..a6efe3739e 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -359,7 +359,6 @@
"footer.about": "Maidir le",
"footer.directory": "Eolaire próifílí",
"footer.get_app": "Faigh an aip",
- "footer.invite": "Tabhair cuireadh do dhaoine",
"footer.keyboard_shortcuts": "Aicearraí méarchláir",
"footer.privacy_policy": "Polasaí príobháideachais",
"footer.source_code": "Féach ar an gcód foinseach",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index a90a9b197d..26d0a49dd7 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -346,7 +346,6 @@
"footer.about": "Mu dhèidhinn",
"footer.directory": "Eòlaire nam pròifil",
"footer.get_app": "Faigh an aplacaid",
- "footer.invite": "Thoir cuireadh",
"footer.keyboard_shortcuts": "Ath-ghoiridean a’ mheur-chlàir",
"footer.privacy_policy": "Poileasaidh prìobhaideachd",
"footer.source_code": "Seall am bun-tùs",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index ceb9901668..2fa2c11796 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -359,11 +359,11 @@
"footer.about": "Sobre",
"footer.directory": "Directorio de perfís",
"footer.get_app": "Descarga a app",
- "footer.invite": "Convidar persoas",
"footer.keyboard_shortcuts": "Atallos do teclado",
"footer.privacy_policy": "Política de privacidade",
"footer.source_code": "Ver código fonte",
"footer.status": "Estado",
+ "footer.terms_of_service": "Termos do servizo",
"generic.saved": "Gardado",
"getting_started.heading": "Primeiros pasos",
"hashtag.admin_moderation": "Abrir interface de moderación para ##{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Cambiar a subscrición a idiomas para {target}",
"tabs_bar.home": "Inicio",
"tabs_bar.notifications": "Notificacións",
+ "terms_of_service.title": "Termos do Servizo",
"time_remaining.days": "Remata en {number, plural, one {# día} other {# días}}",
"time_remaining.hours": "Remata en {number, plural, one {# hora} other {# horas}}",
"time_remaining.minutes": "Remata en {number, plural, one {# minuto} other {# minutos}}",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index a9bd632ec1..f86a9f3833 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -359,11 +359,11 @@
"footer.about": "אודות",
"footer.directory": "ספריית פרופילים",
"footer.get_app": "להתקנת היישומון",
- "footer.invite": "להזמין אנשים",
"footer.keyboard_shortcuts": "קיצורי מקלדת",
"footer.privacy_policy": "מדיניות פרטיות",
"footer.source_code": "צפיה בקוד המקור",
"footer.status": "מצב",
+ "footer.terms_of_service": "תנאי השירות",
"generic.saved": "נשמר",
"getting_started.heading": "בואו נתחיל",
"hashtag.admin_moderation": "פתיחת ממשק פיקוח דיון עבור #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "שינוי רישום שפה עבור {target}",
"tabs_bar.home": "פיד הבית",
"tabs_bar.notifications": "התראות",
+ "terms_of_service.title": "תנאי השירות",
"time_remaining.days": "נותרו {number, plural, one {# יום} other {# ימים}}",
"time_remaining.hours": "נותרו {number, plural, one {# שעה} other {# שעות}}",
"time_remaining.minutes": "נותרו {number, plural, one {# דקה} other {# דקות}}",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index ab7001f15c..747d49f3c5 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -275,7 +275,6 @@
"footer.about": "अबाउट",
"footer.directory": "प्रोफाइल्स डायरेक्टरी",
"footer.get_app": "अप्प प्राप्त करें",
- "footer.invite": "लोगों को आमंत्रित करें",
"footer.keyboard_shortcuts": "कीबोर्ड शॉर्टकट",
"footer.privacy_policy": "प्राइवेसी पालिसी",
"footer.source_code": "सोर्स कोड देखें",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index ebb15ed096..e92ba20470 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -227,7 +227,6 @@
"footer.about": "O aplikaciji",
"footer.directory": "Direktorij profila",
"footer.get_app": "Preuzmi aplikaciju",
- "footer.invite": "Pozovi ljude",
"footer.keyboard_shortcuts": "Tipkovni prečaci",
"footer.privacy_policy": "Pravila o zaštiti privatnosti",
"footer.source_code": "Prikaz izvornog koda",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 25f37c82a1..ed3c1c0527 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -359,11 +359,11 @@
"footer.about": "Névjegy",
"footer.directory": "Profiltár",
"footer.get_app": "Alkalmazás beszerzése",
- "footer.invite": "Emberek meghívása",
"footer.keyboard_shortcuts": "Gyorsbillentyűk",
"footer.privacy_policy": "Adatvédelmi szabályzat",
"footer.source_code": "Forráskód megtekintése",
"footer.status": "Állapot",
+ "footer.terms_of_service": "Felhasználási feltételek",
"generic.saved": "Elmentve",
"getting_started.heading": "Első lépések",
"hashtag.admin_moderation": "Moderációs felület megnyitása a következőhöz: #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Feliratkozott nyelvek módosítása {target} esetében",
"tabs_bar.home": "Kezdőlap",
"tabs_bar.notifications": "Értesítések",
+ "terms_of_service.title": "Felhasználási feltételek",
"time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra",
"time_remaining.hours": "{number, plural, one {# óra} other {# óra}} van hátra",
"time_remaining.minutes": "{number, plural, one {# perc} other {# perc}} van hátra",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index 55b32b2c38..ab7f2c155d 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -201,7 +201,6 @@
"footer.about": "Մասին",
"footer.directory": "Հաշիւների մատեան",
"footer.get_app": "Ներբեռնիր յաւելուած",
- "footer.invite": "Հրաւիրել մարդկանց",
"footer.keyboard_shortcuts": "Ստեղնաշարի կարճատներ",
"footer.privacy_policy": "Գաղտնիութեան քաղաքականութիւն",
"footer.source_code": "Նայել ելակոդը",
diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json
index 35f0461422..530baa707d 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -350,7 +350,6 @@
"footer.about": "A proposito",
"footer.directory": "Directorio de profilos",
"footer.get_app": "Obtener le application",
- "footer.invite": "Invitar personas",
"footer.keyboard_shortcuts": "Accessos directe de claviero",
"footer.privacy_policy": "Politica de confidentialitate",
"footer.source_code": "Vider le codice fonte",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index ee5e888c39..12e4e83ba9 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -315,7 +315,6 @@
"footer.about": "Tentang",
"footer.directory": "Direktori profil",
"footer.get_app": "Dapatkan aplikasi",
- "footer.invite": "Undang orang",
"footer.keyboard_shortcuts": "Pintasan papan ketik",
"footer.privacy_policy": "Kebijakan privasi",
"footer.source_code": "Lihat kode sumber",
diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json
index db144a3d79..dd1fafea1d 100644
--- a/app/javascript/mastodon/locales/ie.json
+++ b/app/javascript/mastodon/locales/ie.json
@@ -306,7 +306,6 @@
"footer.about": "Information",
"footer.directory": "Profilarium",
"footer.get_app": "Obtener li aplication",
- "footer.invite": "Invitar gente",
"footer.keyboard_shortcuts": "Rapid-tastes",
"footer.privacy_policy": "Politica pri privatie",
"footer.source_code": "Vider li fonte-code",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 64c0f8ac9f..ad4baa1d4f 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -325,7 +325,6 @@
"footer.about": "Pri co",
"footer.directory": "Profilcheflisto",
"footer.get_app": "Obtenez la softwaro",
- "footer.invite": "Invitez personi",
"footer.keyboard_shortcuts": "Kombini di klavi",
"footer.privacy_policy": "Guidilo pri privateso",
"footer.source_code": "Vidar la fontokodexo",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 3f0ef723e9..84fe1903cc 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -359,11 +359,11 @@
"footer.about": "Nánari upplýsingar",
"footer.directory": "Notandasniðamappa",
"footer.get_app": "Ná í forritið",
- "footer.invite": "Bjóða fólki",
"footer.keyboard_shortcuts": "Flýtileiðir á lyklaborði",
"footer.privacy_policy": "Meðferð persónuupplýsinga",
"footer.source_code": "Skoða frumkóða",
"footer.status": "Staða",
+ "footer.terms_of_service": "Þjónustuskilmálar",
"generic.saved": "Vistað",
"getting_started.heading": "Komast í gang",
"hashtag.admin_moderation": "Opna umsjónarviðmót fyrir #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Breyta tungumálum í áskrift fyrir {target}",
"tabs_bar.home": "Heim",
"tabs_bar.notifications": "Tilkynningar",
+ "terms_of_service.title": "Þjónustuskilmálar",
"time_remaining.days": "{number, plural, one {# dagur} other {# dagar}} eftir",
"time_remaining.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}} eftir",
"time_remaining.minutes": "{number, plural, one {# mínúta} other {# mínútur}} eftir",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 5b4ad99565..8897d37141 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -359,11 +359,11 @@
"footer.about": "Info",
"footer.directory": "Cartella dei profili",
"footer.get_app": "Scarica l'app",
- "footer.invite": "Invita persone",
"footer.keyboard_shortcuts": "Scorciatoie da tastiera",
"footer.privacy_policy": "Politica sulla privacy",
"footer.source_code": "Visualizza il codice sorgente",
"footer.status": "Stato",
+ "footer.terms_of_service": "Termini di servizio",
"generic.saved": "Salvato",
"getting_started.heading": "Per iniziare",
"hashtag.admin_moderation": "Apri l'interfaccia di moderazione per #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Modifica le lingue in cui sei iscritto per {target}",
"tabs_bar.home": "Home",
"tabs_bar.notifications": "Notifiche",
+ "terms_of_service.title": "Termini di Servizio",
"time_remaining.days": "{number, plural, one {# giorno} other {# giorni}} left",
"time_remaining.hours": "{number, plural, one {# ora} other {# ore}} left",
"time_remaining.minutes": "{number, plural, one {# minuto} other {# minuti}} left",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index c72975d8ca..079ea78dbb 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -359,7 +359,6 @@
"footer.about": "概要",
"footer.directory": "ディレクトリ",
"footer.get_app": "アプリを入手",
- "footer.invite": "新規ユーザーの招待",
"footer.keyboard_shortcuts": "キーボードショートカット",
"footer.privacy_policy": "プライバシーポリシー",
"footer.source_code": "ソースコードを表示",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index 41c0ba6276..a0f0a57377 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -251,7 +251,6 @@
"footer.about": "Ɣef",
"footer.directory": "Akaram n imeɣna",
"footer.get_app": "Awi-d asnas",
- "footer.invite": "Ɛreḍ-d kra n yimdanen",
"footer.keyboard_shortcuts": "Inegzumen n unasiw",
"footer.privacy_policy": "Tasertit tabaḍnit",
"footer.source_code": "Wali tangalt taɣbalut",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 87c2b38ec6..9a772892b7 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -359,11 +359,11 @@
"footer.about": "정보",
"footer.directory": "프로필 책자",
"footer.get_app": "앱 다운로드하기",
- "footer.invite": "초대하기",
"footer.keyboard_shortcuts": "키보드 단축키",
"footer.privacy_policy": "개인정보처리방침",
"footer.source_code": "소스코드 보기",
"footer.status": "상태",
+ "footer.terms_of_service": "이용 약관",
"generic.saved": "저장됨",
"getting_started.heading": "시작하기",
"hashtag.admin_moderation": "#{name}에 대한 중재화면 열기",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index 0ef4bb8ced..34a616b52f 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -223,7 +223,6 @@
"footer.about": "Derbar",
"footer.directory": "Pelrêça profîlan",
"footer.get_app": "Bernamokê bistîne",
- "footer.invite": "Mirovan vexwîne",
"footer.keyboard_shortcuts": "Kurteriyên klavyeyê",
"footer.privacy_policy": "Peymana nepeniyê",
"footer.source_code": "Koda çavkanî nîşan bide",
diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json
index 5bb0f9ccaf..5161ed9803 100644
--- a/app/javascript/mastodon/locales/lad.json
+++ b/app/javascript/mastodon/locales/lad.json
@@ -322,7 +322,6 @@
"footer.about": "Sovre mozotros",
"footer.directory": "Katalogo de profiles",
"footer.get_app": "Abasha aplikasyon",
- "footer.invite": "Envita a djente",
"footer.keyboard_shortcuts": "Akortamientos de klaviatura",
"footer.privacy_policy": "Politika de privasita",
"footer.source_code": "Ve kodiche fuente",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index c6a9658f1c..a9b813deb3 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -355,11 +355,11 @@
"footer.about": "Apie",
"footer.directory": "Profilių katalogas",
"footer.get_app": "Gauti programėlę",
- "footer.invite": "Kviesti žmones",
"footer.keyboard_shortcuts": "Spartieji klavišai",
"footer.privacy_policy": "Privatumo politika",
"footer.source_code": "Peržiūrėti šaltinio kodą",
"footer.status": "Statusas",
+ "footer.terms_of_service": "Paslaugų sąlygos",
"generic.saved": "Išsaugota",
"getting_started.heading": "Kaip pradėti",
"hashtag.admin_moderation": "Atverti prižiūrėjimo sąsają saitažodžiui #{name}",
@@ -843,6 +843,7 @@
"subscribed_languages.target": "Keisti prenumeruojamas kalbas {target}",
"tabs_bar.home": "Pagrindinis",
"tabs_bar.notifications": "Pranešimai",
+ "terms_of_service.title": "Paslaugų sąlygos",
"time_remaining.days": "liko {number, plural, one {# diena} few {# dienos} many {# dienos} other {# dienų}}",
"time_remaining.hours": "liko {number, plural, one {# valanda} few {# valandos} many {# valandos} other {# valandų}}",
"time_remaining.minutes": "liko {number, plural, one {# minutė} few {# minutės} many {# minutės} other {# minučių}}",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index bb6e3610e8..f554b2c2c5 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -320,7 +320,6 @@
"footer.about": "Par",
"footer.directory": "Profilu direktorija",
"footer.get_app": "Iegūt lietotni",
- "footer.invite": "Uzaicināt cilvēkus",
"footer.keyboard_shortcuts": "Īsinājumtaustiņi",
"footer.privacy_policy": "Privātuma politika",
"footer.source_code": "Skatīt pirmkodu",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index 4c1fa940a2..c82dddac2f 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -208,7 +208,6 @@
"followed_tags": "പിന്തുടരിയതു് ചർച്ചാവിഷയങ്ങൾ",
"footer.directory": "രൂപരേഖ നാമഗൃഹസൂചി",
"footer.get_app": "ഉപകരണം ലഭിക്കൂ",
- "footer.invite": "ആളുകളെ ക്ഷണിക്കുക",
"footer.privacy_policy": "സ്വകാര്യത്തനയം",
"footer.source_code": "ഉറവിടസങ്കേതം കാണുക",
"footer.status": "അവസ്ഥ",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 6a4209913d..5656217ed5 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -273,7 +273,6 @@
"footer.about": "Perihal",
"footer.directory": "Direktori profil",
"footer.get_app": "Dapatkan app",
- "footer.invite": "Jemput kenalan",
"footer.keyboard_shortcuts": "Pintasan papan kekunci",
"footer.privacy_policy": "Dasar privasi",
"footer.source_code": "Lihat kod sumber",
diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json
index 359a17be5f..750f7788b4 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -251,7 +251,6 @@
"footer.about": "အကြောင်း",
"footer.directory": "ပရိုဖိုင်များလမ်းညွှန်",
"footer.get_app": "အက်ပ်ကို ရယူပါ",
- "footer.invite": "လူများကို ဖိတ်ပါ",
"footer.keyboard_shortcuts": "ကီးဘုတ်အမြန်ခလုတ်များ",
"footer.privacy_policy": "ကိုယ်ရေးအချက်အလက်မူဝါဒ",
"footer.source_code": "မူရင်းကုဒ်အားကြည့်ရှုမည်",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 2384ef6ce3..f6b61b01cb 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -359,11 +359,11 @@
"footer.about": "Over",
"footer.directory": "Gebruikersgids",
"footer.get_app": "App downloaden",
- "footer.invite": "Mensen uitnodigen",
"footer.keyboard_shortcuts": "Sneltoetsen",
"footer.privacy_policy": "Privacybeleid",
"footer.source_code": "Broncode bekijken",
"footer.status": "Status",
+ "footer.terms_of_service": "Gebruiksvoorwaarden",
"generic.saved": "Opgeslagen",
"getting_started.heading": "Aan de slag",
"hashtag.admin_moderation": "Moderatie-omgeving van #{name} openen",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Getoonde talen voor {target} wijzigen",
"tabs_bar.home": "Start",
"tabs_bar.notifications": "Meldingen",
+ "terms_of_service.title": "Gebruiksvoorwaarden",
"time_remaining.days": "{number, plural, one {# dag} other {# dagen}} te gaan",
"time_remaining.hours": "{number, plural, one {# uur} other {# uur}} te gaan",
"time_remaining.minutes": "{number, plural, one {# minuut} other {# minuten}} te gaan",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 2c06f9068a..7d24d26ec1 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -355,7 +355,6 @@
"footer.about": "Om",
"footer.directory": "Profilmappe",
"footer.get_app": "Få appen",
- "footer.invite": "Inviter folk",
"footer.keyboard_shortcuts": "Snøggtastar",
"footer.privacy_policy": "Personvernsreglar",
"footer.source_code": "Vis kjeldekode",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 8ccb936f22..5e4ae512ec 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -322,7 +322,6 @@
"footer.about": "Om",
"footer.directory": "Profilkatalog",
"footer.get_app": "Last ned appen",
- "footer.invite": "Inviter folk",
"footer.keyboard_shortcuts": "Hurtigtaster",
"footer.privacy_policy": "Personvernregler",
"footer.source_code": "Vis kildekode",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index be9df2abf3..051ea7fd4e 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -232,7 +232,6 @@
"footer.about": "A prepaus",
"footer.directory": "Annuari de perfils",
"footer.get_app": "Obténer l’aplicacion",
- "footer.invite": "Convidar de monde",
"footer.keyboard_shortcuts": "Acorchis clavièr",
"footer.privacy_policy": "Politica de confidencialitat",
"footer.source_code": "Veire lo còdi font",
diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json
index ec55387eed..5c0d4efe8b 100644
--- a/app/javascript/mastodon/locales/pa.json
+++ b/app/javascript/mastodon/locales/pa.json
@@ -224,7 +224,6 @@
"footer.about": "ਸਾਡੇ ਬਾਰੇ",
"footer.directory": "ਪਰੋਫਾਇਲ ਡਾਇਰੈਕਟਰੀ",
"footer.get_app": "ਐਪ ਲਵੋ",
- "footer.invite": "ਲੋਕਾਂ ਨੂੰ ਸੱਦਾ ਭੇਜੋ",
"footer.keyboard_shortcuts": "ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ",
"footer.privacy_policy": "ਪਰਦੇਦਾਰੀ ਨੀਤੀ",
"footer.source_code": "ਸਰੋਤ ਕੋਡ ਵੇਖੋ",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 165b1b5637..e1b3b84236 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -128,6 +128,7 @@
"bundle_column_error.routing.body": "Żądana strona nie została znaleziona. Czy na pewno adres URL w pasku adresu jest poprawny?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Zamknij",
+ "bundle_modal_error.message": "Coś poszło nie tak podczas ładowania tego ekranu.",
"bundle_modal_error.retry": "Spróbuj ponownie",
"closed_registrations.other_server_instructions": "Ponieważ Mastodon jest zdecentralizowany, możesz założyć konto na innym serwerze i wciąż mieć możliwość wchodzenia w interakcję z tym serwerem.",
"closed_registrations_modal.description": "Opcja tworzenia kont na {domain} jest aktualnie niedostępna, ale miej na uwadze to, że nie musisz mieć konta konkretnie na {domain} by używać Mastodona.",
@@ -203,6 +204,9 @@
"confirmations.edit.confirm": "Edytuj",
"confirmations.edit.message": "Edytowanie wpisu nadpisze wiadomość, którą obecnie piszesz. Czy na pewno chcesz to zrobić?",
"confirmations.edit.title": "Nadpisać wpis?",
+ "confirmations.follow_to_list.confirm": "Zaobserwuj i dodaj do listy",
+ "confirmations.follow_to_list.message": "Musisz obserwować {name} by dodać to konto do listy.",
+ "confirmations.follow_to_list.title": "Zaobserwować użytkownika?",
"confirmations.logout.confirm": "Wyloguj",
"confirmations.logout.message": "Czy na pewno chcesz się wylogować?",
"confirmations.logout.title": "Wylogować?",
@@ -350,13 +354,14 @@
"footer.about": "O serwerze",
"footer.directory": "Katalog profilów",
"footer.get_app": "Pobierz aplikację",
- "footer.invite": "Zaproś znajomych",
"footer.keyboard_shortcuts": "Skróty klawiszowe",
"footer.privacy_policy": "Polityka prywatności",
"footer.source_code": "Zobacz kod źródłowy",
"footer.status": "Status",
+ "footer.terms_of_service": "Warunki korzystania z usługi",
"generic.saved": "Zapisano",
"getting_started.heading": "Rozpocznij",
+ "hashtag.admin_moderation": "Otwórz interfejs moderacyjny dla #{name}",
"hashtag.column_header.tag_mode.all": "i {additional}",
"hashtag.column_header.tag_mode.any": "lub {additional}",
"hashtag.column_header.tag_mode.none": "bez {additional}",
@@ -486,6 +491,7 @@
"lists.replies_policy.list": "Członkowie listy",
"lists.replies_policy.none": "Nikt",
"lists.save": "Zapisz",
+ "lists.search": "Szukaj",
"lists.show_replies_to": "Pokaż odpowiedzi od członków listy do",
"load_pending": "{count, plural, one {# nowa pozycja} other {nowe pozycje}}",
"loading_indicator.label": "Ładowanie…",
@@ -844,6 +850,7 @@
"subscribed_languages.target": "Zmień subskrybowane języki dla {target}",
"tabs_bar.home": "Strona główna",
"tabs_bar.notifications": "Powiadomienia",
+ "terms_of_service.title": "Warunki korzystania z usługi",
"time_remaining.days": "{number, plural, one {Pozostał # dzień} few {Pozostały # dni} many {Pozostało # dni} other {Pozostało # dni}}",
"time_remaining.hours": "{number, plural, one {Pozostała # godzina} few {Pozostały # godziny} many {Pozostało # godzin} other {Pozostało # godzin}}",
"time_remaining.minutes": "{number, plural, one {Pozostała # minuta} few {Pozostały # minuty} many {Pozostało # minut} other {Pozostało # minut}}",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 25387fc41c..d9f3d2b631 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -358,11 +358,11 @@
"footer.about": "Sobre",
"footer.directory": "Diretório de perfis",
"footer.get_app": "Baixe o app",
- "footer.invite": "Convidar pessoas",
"footer.keyboard_shortcuts": "Atalhos de teclado",
"footer.privacy_policy": "Política de privacidade",
"footer.source_code": "Exibir código-fonte",
"footer.status": "Status",
+ "footer.terms_of_service": "Termos de serviço",
"generic.saved": "Salvo",
"getting_started.heading": "Primeiros passos",
"hashtag.admin_moderation": "Abrir interface de moderação para #{name}",
@@ -856,6 +856,7 @@
"subscribed_languages.target": "Alterar idiomas inscritos para {target}",
"tabs_bar.home": "Página inicial",
"tabs_bar.notifications": "Notificações",
+ "terms_of_service.title": "Termos de serviço",
"time_remaining.days": "{number, plural, one {# dia restante} other {# dias restantes}}",
"time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}",
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index 2da6baea81..289335dc67 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -326,7 +326,6 @@
"footer.about": "Sobre",
"footer.directory": "Diretório de perfis",
"footer.get_app": "Obtém a aplicação",
- "footer.invite": "Convidar pessoas",
"footer.keyboard_shortcuts": "Atalhos do teclado",
"footer.privacy_policy": "Política de privacidade",
"footer.source_code": "Ver código-fonte",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 4ed227339e..3484f6e7ae 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -256,7 +256,6 @@
"footer.about": "Despre",
"footer.directory": "Catalogul de profiluri",
"footer.get_app": "Obține aplicația",
- "footer.invite": "Invită persoane",
"footer.keyboard_shortcuts": "Comenzi rapide de la tastatură",
"footer.privacy_policy": "Politica de confidenţialitate",
"footer.source_code": "Vizualizează codul sursă",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 898c156d13..a9433a687c 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -359,7 +359,6 @@
"footer.about": "О проекте",
"footer.directory": "Каталог профилей",
"footer.get_app": "Скачать приложение",
- "footer.invite": "Пригласить людей",
"footer.keyboard_shortcuts": "Сочетания клавиш",
"footer.privacy_policy": "Политика конфиденциальности",
"footer.source_code": "Исходный код",
diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json
index 2ec006b7eb..9f03840b25 100644
--- a/app/javascript/mastodon/locales/sa.json
+++ b/app/javascript/mastodon/locales/sa.json
@@ -229,7 +229,6 @@
"footer.about": "विषये",
"footer.directory": "मुखपार्श्वविभागः",
"footer.get_app": "एप् लभस्व",
- "footer.invite": "जनं निमन्त्रय",
"footer.keyboard_shortcuts": "कीफलकहर्स्वमार्गाः",
"footer.privacy_policy": "गोपनीयतानीतिः",
"footer.source_code": "स्रोतविद्यादेशं दर्शय",
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
index 98f8ab49b5..396401511b 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -303,7 +303,6 @@
"footer.about": "Informatziones",
"footer.directory": "Diretòriu de profilos",
"footer.get_app": "Otene s'aplicatzione",
- "footer.invite": "Invita gente",
"footer.keyboard_shortcuts": "Incurtzaduras de tecladu",
"footer.privacy_policy": "Polìtica de riservadesa",
"footer.source_code": "Ammustra su còdighe de orìgine",
diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json
index 5c5bd8d3f3..a06cb7361a 100644
--- a/app/javascript/mastodon/locales/sco.json
+++ b/app/javascript/mastodon/locales/sco.json
@@ -215,7 +215,6 @@
"footer.about": "Aboot",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
- "footer.invite": "Invite fowk",
"footer.keyboard_shortcuts": "Keyboord shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View the soorce code",
diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json
index 08d24525f1..683cd62b3f 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -196,7 +196,6 @@
"footer.about": "පිළිබඳව",
"footer.directory": "පැතිකඩ නාමාවලිය",
"footer.get_app": "යෙදුම ගන්න",
- "footer.invite": "ආරාධනා කරන්න",
"footer.keyboard_shortcuts": "යතුරුපුවරුවේ කෙටිමං",
"footer.privacy_policy": "රහස්යතා ප්රතිපත්තිය",
"footer.source_code": "මූලාශ්ර කේතය බලන්න",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 55248bc12d..fce2b0109f 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -324,7 +324,6 @@
"footer.about": "Viac informácií",
"footer.directory": "Adresár profilov",
"footer.get_app": "Stiahnuť aplikáciu",
- "footer.invite": "Pozvať ľudí",
"footer.keyboard_shortcuts": "Klávesové skratky",
"footer.privacy_policy": "Pravidlá ochrany súkromia",
"footer.source_code": "Zobraziť zdrojový kód",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index 84f4d4dda2..ca879324fe 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -333,7 +333,6 @@
"footer.about": "O Mastodonu",
"footer.directory": "Imenik profilov",
"footer.get_app": "Prenesite aplikacijo",
- "footer.invite": "Povabite osebe",
"footer.keyboard_shortcuts": "Tipkovne bližnjice",
"footer.privacy_policy": "Pravilnik o zasebnosti",
"footer.source_code": "Pokaži izvorno kodo",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index b13f1af3a7..49e51c3030 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -354,11 +354,11 @@
"footer.about": "Mbi",
"footer.directory": "Drejtori profilesh",
"footer.get_app": "Merreni aplikacionin",
- "footer.invite": "Ftoni njerëz",
"footer.keyboard_shortcuts": "Shkurtore tastiere",
"footer.privacy_policy": "Rregulla privatësie",
"footer.source_code": "Shihni kodin burim",
"footer.status": "Gjendje",
+ "footer.terms_of_service": "Kushte shërbimi",
"generic.saved": "U ruajt",
"getting_started.heading": "Si t’ia fillohet",
"hashtag.admin_moderation": "Hap ndërfaqe moderimi për #{name}",
@@ -852,6 +852,7 @@
"subscribed_languages.target": "Ndryshoni gjuhë pajtimesh për {target}",
"tabs_bar.home": "Kreu",
"tabs_bar.notifications": "Njoftime",
+ "terms_of_service.title": "Kushte Shërbimi",
"time_remaining.days": "Edhe {number, plural, one {# ditë} other {# ditë}}",
"time_remaining.hours": "Edhe {number, plural, one {# orë} other {# orë}}",
"time_remaining.minutes": "Edhe {number, plural, one {# minutë} other {# minuta}}",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 3028019a9c..d3c93eefe2 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -309,7 +309,6 @@
"footer.about": "Osnovni podaci",
"footer.directory": "Direktorijum profila",
"footer.get_app": "Preuzmite aplikaciju",
- "footer.invite": "Pozovi osobe",
"footer.keyboard_shortcuts": "Tasterske prečice",
"footer.privacy_policy": "Politika privatnosti",
"footer.source_code": "Prikaži izvorni kod",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 151453bcf5..4c790e0fd9 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -309,7 +309,6 @@
"footer.about": "Основни подаци",
"footer.directory": "Директоријум профила",
"footer.get_app": "Преузмите апликацију",
- "footer.invite": "Позови особе",
"footer.keyboard_shortcuts": "Тастерске пречице",
"footer.privacy_policy": "Политика приватности",
"footer.source_code": "Прикажи изворни код",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 805f75c078..1ee01af7f5 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -346,7 +346,6 @@
"footer.about": "Om",
"footer.directory": "Profilkatalog",
"footer.get_app": "Skaffa appen",
- "footer.invite": "Bjud in personer",
"footer.keyboard_shortcuts": "Tangentbordsgenvägar",
"footer.privacy_policy": "Integritetspolicy",
"footer.source_code": "Visa källkod",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index e0f55f562b..2f29e219ec 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -345,7 +345,6 @@
"footer.about": "เกี่ยวกับ",
"footer.directory": "ไดเรกทอรีโปรไฟล์",
"footer.get_app": "รับแอป",
- "footer.invite": "เชิญผู้คน",
"footer.keyboard_shortcuts": "แป้นพิมพ์ลัด",
"footer.privacy_policy": "นโยบายความเป็นส่วนตัว",
"footer.source_code": "ดูโค้ดต้นฉบับ",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index ae5285838a..ec7195c234 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -359,11 +359,11 @@
"footer.about": "Hakkında",
"footer.directory": "Profil dizini",
"footer.get_app": "Uygulamayı indir",
- "footer.invite": "Kullacıları davet et",
"footer.keyboard_shortcuts": "Klavye kısayolları",
"footer.privacy_policy": "Gizlilik politikası",
"footer.source_code": "Kaynak kodu görüntüle",
"footer.status": "Durum",
+ "footer.terms_of_service": "Hizmet şartları",
"generic.saved": "Kaydet",
"getting_started.heading": "Başlarken",
"hashtag.admin_moderation": "#{name} için denetim arayüzünü açın",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "{target} abone olduğu dilleri değiştir",
"tabs_bar.home": "Anasayfa",
"tabs_bar.notifications": "Bildirimler",
+ "terms_of_service.title": "Hizmet Şartları",
"time_remaining.days": "{number, plural, one {# gün} other {# gün}} kaldı",
"time_remaining.hours": "{number, plural, one {# saat} other {# saat}} kaldı",
"time_remaining.minutes": "{number, plural, one {# dakika} other {# dakika}} kaldı",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index c133d2eac8..df4bdfca0a 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -209,7 +209,6 @@
"footer.about": "Проект турында",
"footer.directory": "Профильләр каталогы",
"footer.get_app": "Кушымта алыгыз",
- "footer.invite": "Кешеләрне чакырыгыз",
"footer.keyboard_shortcuts": "Төймә комбинацияләре",
"footer.privacy_policy": "Хосусыйлык сәясәте",
"footer.source_code": "Чыганак кодын карау",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index b96230d3e4..0861a8de02 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -353,11 +353,11 @@
"footer.about": "Про проєкт",
"footer.directory": "Каталог профілів",
"footer.get_app": "Завантажити застосунок",
- "footer.invite": "Запросити людей",
"footer.keyboard_shortcuts": "Комбінації клавіш",
"footer.privacy_policy": "Політика приватності",
"footer.source_code": "Перегляд програмного коду",
"footer.status": "Статус",
+ "footer.terms_of_service": "Умови використання",
"generic.saved": "Збережено",
"getting_started.heading": "Розпочати",
"hashtag.admin_moderation": "Відкрити інтерфейс модерації для #{name}",
diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json
index 53794af36d..b9670cb32e 100644
--- a/app/javascript/mastodon/locales/uz.json
+++ b/app/javascript/mastodon/locales/uz.json
@@ -221,7 +221,6 @@
"footer.about": "Haqida",
"footer.directory": "Profillar katalogi",
"footer.get_app": "Ilovani yuklab oling",
- "footer.invite": "Odamlarni taklif qilish",
"footer.keyboard_shortcuts": "Klaviatura yorliqlari",
"footer.privacy_policy": "Maxfiylik siyosati",
"footer.source_code": "Kodini ko'rish",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 316eae0aa6..8a8e84df1b 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -359,11 +359,11 @@
"footer.about": "Giới thiệu",
"footer.directory": "Cộng đồng",
"footer.get_app": "Ứng dụng",
- "footer.invite": "Mời bạn bè",
"footer.keyboard_shortcuts": "Phím tắt",
"footer.privacy_policy": "Bảo mật",
"footer.source_code": "Mã nguồn",
"footer.status": "Trạng thái",
+ "footer.terms_of_service": "Điều khoản dịch vụ",
"generic.saved": "Đã lưu",
"getting_started.heading": "Quản lý",
"hashtag.admin_moderation": "Mở giao diện quản trị #{name}",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "Đổi ngôn ngữ mong muốn cho {target}",
"tabs_bar.home": "Trang chủ",
"tabs_bar.notifications": "Thông báo",
+ "terms_of_service.title": "Điều khoản Dịch vụ",
"time_remaining.days": "{number, plural, other {# ngày}}",
"time_remaining.hours": "{number, plural, other {# giờ}}",
"time_remaining.minutes": "{number, plural, other {# phút}}",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 0634b3a498..791089b8d3 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -359,11 +359,11 @@
"footer.about": "关于",
"footer.directory": "用户列表",
"footer.get_app": "获取应用",
- "footer.invite": "邀请",
"footer.keyboard_shortcuts": "快捷键",
"footer.privacy_policy": "隐私政策",
"footer.source_code": "查看源代码",
"footer.status": "状态",
+ "footer.terms_of_service": "服务条款",
"generic.saved": "已保存",
"getting_started.heading": "开始使用",
"hashtag.admin_moderation": "打开 #{name} 的管理界面",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "更改 {target} 的订阅语言",
"tabs_bar.home": "主页",
"tabs_bar.notifications": "通知",
+ "terms_of_service.title": "服务条款",
"time_remaining.days": "剩余 {number, plural, other {# 天}}",
"time_remaining.hours": "剩余 {number, plural, other {# 小时}}",
"time_remaining.minutes": "剩余 {number, plural, other {# 分钟}}",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 169e789f80..608734172e 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -316,7 +316,6 @@
"footer.about": "關於",
"footer.directory": "個人檔案目錄",
"footer.get_app": "取得應用程式",
- "footer.invite": "邀請他人",
"footer.keyboard_shortcuts": "鍵盤快速鍵",
"footer.privacy_policy": "私隱政策",
"footer.source_code": "查看原始碼",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index c8e394cb8a..4cdea0703b 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -359,11 +359,11 @@
"footer.about": "關於",
"footer.directory": "個人檔案目錄",
"footer.get_app": "取得應用程式",
- "footer.invite": "邀請朋友加入",
"footer.keyboard_shortcuts": "鍵盤快速鍵",
"footer.privacy_policy": "隱私權政策",
"footer.source_code": "檢視原始碼",
"footer.status": "狀態",
+ "footer.terms_of_service": "服務條款",
"generic.saved": "已儲存",
"getting_started.heading": "開始使用",
"hashtag.admin_moderation": "開啟 #{name} 的管理介面",
@@ -419,7 +419,7 @@
"interaction_modal.on_another_server": "於不同伺服器",
"interaction_modal.on_this_server": "於此伺服器",
"interaction_modal.sign_in": "您未登入於此伺服器。您的帳號是於何方託管呢?",
- "interaction_modal.sign_in_hint": "提示:這是您所註冊之網站。若您無法回想起,請檢查您電子信箱收件夾內之歡迎信。您也能輸入完整帳號名稱!(如:@Mastodon@mastodon.social)",
+ "interaction_modal.sign_in_hint": "提示:這是您所註冊之網站。若您無法回想起,請檢查您電子郵件收件夾內之歡迎信。您也能輸入完整帳號名稱!(如:@Mastodon@mastodon.social)",
"interaction_modal.title.favourite": "將 {name} 之嘟文加入最愛",
"interaction_modal.title.follow": "跟隨 {name}",
"interaction_modal.title.reblog": "轉嘟 {name} 的嘟文",
@@ -857,6 +857,7 @@
"subscribed_languages.target": "變更 {target} 的訂閱語言",
"tabs_bar.home": "首頁",
"tabs_bar.notifications": "通知",
+ "terms_of_service.title": "服務條款",
"time_remaining.days": "剩餘 {number, plural, other {# 天}}",
"time_remaining.hours": "剩餘{number, plural, other {# 小時}}",
"time_remaining.minutes": "剩餘{number, plural, other {# 分鐘}}",
diff --git a/config/locales/activerecord.fy.yml b/config/locales/activerecord.fy.yml
index 69139eba1d..fb95d40868 100644
--- a/config/locales/activerecord.fy.yml
+++ b/config/locales/activerecord.fy.yml
@@ -39,6 +39,11 @@ fy:
attributes:
data:
malformed: hat de ferkearde opmaak
+ list_account:
+ attributes:
+ account_id:
+ taken: stiet al yn de list
+ must_be_following: moat in folge account wêze
status:
attributes:
reblog:
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 081418ef0a..1193e7869b 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -916,6 +916,22 @@ bg:
search: Търсене
title: Хаштагове
updated_msg: Успешно осъвременени настройки на хаштага
+ terms_of_service:
+ changelog: Какво е променено
+ current: Текущо
+ draft: Чернова
+ generate: Употреба на шаблон
+ generates:
+ action: Пораждане
+ chance_to_review_html: "Пораждани условия на услугата няма да се публикуват самодейно. Ще имате възможност да видите предварително резултата. Попълнете необходимите подробности, за да продължите."
+ history: История
+ live: На живо
+ no_history: Още няма записани промени в условията на услугата.
+ notified_on_html: Потребители, известени на %{date}
+ publish: Публикуване
+ published_on_html: Публикувано на %{date}
+ save_draft: Запазване на чернова
+ title: Условия на услугата
title: Администрация
trends:
allow: Позволяване
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 9e4ee5a473..6cb1085c8e 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -214,6 +214,7 @@ ca:
enable_user: Activa l'usuari
memorialize_account: Memoritza el compte
promote_user: Promou l'usuari
+ publish_terms_of_service: Publicar les condicions de servei
reject_appeal: Rebutja l'apel·lació
reject_user: Rebutja l'usuari
remove_avatar_user: Eliminar avatar
@@ -278,6 +279,7 @@ ca:
enable_user_html: "%{name} ha activat l'accés del usuari %{target}"
memorialize_account_html: "%{name} ha convertit el compte %{target} en una pàgina de memorial"
promote_user_html: "%{name} ha promogut l'usuari %{target}"
+ publish_terms_of_service_html: "%{name} ha publicat actualitzacions a les condicions de servei"
reject_appeal_html: "%{name} ha rebutjat l'apel·lació a la decisió de moderació de %{target}"
reject_user_html: "%{name} ha rebutjat el registre de %{target}"
remove_avatar_user_html: "%{name} ha eliminat l'avatar de %{target}"
@@ -925,6 +927,19 @@ ca:
search: Cerca
title: Etiquetes
updated_msg: Ajustaments d'etiquetes actualitzats amb èxit
+ terms_of_service:
+ back: Tornar a les condicions de servei
+ changelog: Què ha canviat
+ create: Feu servir el vostre
+ current: Actual
+ draft: Esborrany
+ generate: Fer servir la plantilla
+ generates:
+ action: Generar
+ chance_to_review_html: "Les condicions de servei generades no es publicaran automàticament. Tindreu l'oportunitat de revisar-ne els resultats. Empleneu els detalls necessaris per a procedir."
+ title: Configuració de les condicions de servei
+ history: Historial
+ live: En ús
title: Administració
trends:
allow: Permet
@@ -1156,6 +1171,7 @@ ca:
set_new_password: Estableix una contrasenya nova
setup:
email_below_hint_html: Verifiqueu la carpeta de correu brossa o demaneu-ne un altre. Podeu corregir l'adreça de correu-e si no és correcta.
+ email_settings_hint_html: Feu clic a l'enllaç que us hem enviat a %{email} per a començar a utilitzar Mastodon. Us esperem.
link_not_received: No has rebut l'enllaç?
new_confirmation_instructions_sent: Rebràs un nou correu amb l'enllaç de confirmació en pocs minuts!
title: Comprova la teva safata d'entrada
@@ -1164,6 +1180,7 @@ ca:
title: Inicia sessió a %{domain}
sign_up:
manual_review: Els registres a %{domain} passen per una revisió manual dels nostres moderadors. Per ajudar-nos a processar el teu registre, escriu-nos quelcom sobre tu i perquè vols un compte a %{domain}.
+ preamble: Amb un compte en aquest servidor de Mastodon podreu seguir qualsevol altra persona al Fedivers, sense importar a quin servidor tingui el compte.
title: Configurem-te a %{domain}.
status:
account_status: Estat del compte
@@ -1798,6 +1815,8 @@ ca:
too_late: És massa tard per a apel·lar aquesta acció
tags:
does_not_match_previous_name: no coincideix amb el nom anterior
+ terms_of_service:
+ title: Condicions de servei
themes:
contrast: Mastodon (alt contrast)
default: Mastodon (fosc)
@@ -1858,6 +1877,8 @@ ca:
further_actions_html: Si no has estat tu, %{action} immediatament i activa l'autenticació de dos-factors per a mantenir el teu compte segur.
subject: S'ha accedit al teu compte des d'una adreça IP nova
title: Un inici de sessió nou
+ terms_of_service_changed:
+ title: Actualització important
warning:
appeal: Envia una apel·lació
appeal_description: Si creus que això és un error, pots enviar una apel·lació a l'equip de %{instance}.
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 2c4fe9437d..c571c09902 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -214,6 +214,7 @@ da:
enable_user: Aktivér bruger
memorialize_account: Memoralisér konto
promote_user: Forfrem bruger
+ publish_terms_of_service: Offentliggør Tjenestevilkår
reject_appeal: Afvis appel
reject_user: Afvis bruger
remove_avatar_user: Fjern profilbillede
@@ -278,6 +279,7 @@ da:
enable_user_html: "%{name} aktiverede indlogning for brugeren %{target}"
memorialize_account_html: "%{name} gjorde %{target}s konto til en mindeside"
promote_user_html: "%{name} forfremmede brugeren %{target}"
+ publish_terms_of_service_html: "%{name} offentliggjorde opdateringer til tjenestevilkårene"
reject_appeal_html: "%{name} afviste moderationsafgørelsesappellen fra %{target}"
reject_user_html: "%{name} afviste tilmelding fra %{target}"
remove_avatar_user_html: "%{name} fjernede %{target}s profilbillede"
@@ -925,6 +927,35 @@ da:
search: Søg
title: Hashtags
updated_msg: Hashtag-indstillinger opdateret
+ terms_of_service:
+ back: Tilbage til Tjenestevilkår
+ changelog: Hvad der er ændret
+ create: Brug egne
+ current: Nuværende
+ draft: Udkast
+ generate: Brug skabelon
+ generates:
+ action: Generér
+ chance_to_review_html: "De genererede Tjenestevilkår offentliggøres ikke automatisk. Man vil have mulighed for at gennemgå resultaterne. Udfyld venligst de nødvendige oplysninger for at fortsætte."
+ explanation_html: Tjenestevilkår-skabelonen er alene til orientering og bør ikke fortolkes som juridisk rådgivning om noget emne. Kontakt en juridiske rådgiver vedr. den aktuelle situation samt specifikke juridiske spørgsmål, man måtte have.
+ title: Opsætning af Tjenestevilkår
+ history: Historik
+ live: Live
+ no_history: Der er endnu ingen registrerede ændringer af vilkårene for tjenesten.
+ no_terms_of_service_html: Der er p.t. ingen opsatte Tjenestevilkår. Tjenestevilkår er beregnet til at give klarhed, så man er beskyttet mod potentielle ansvarspådragelser i tvister med sine brugere.
+ notified_on_html: Brugere underrettet pr. %{date}
+ notify_users: Underrret brugere
+ preview:
+ explanation_html: 'E-mailen sendes til %{display_count} brugere, som har tilmeldt sig før %{date}. Følgende tekst medtages i e-mailen:'
+ send_preview: Send forhåndsvisning til %{email}
+ send_to_all:
+ one: Send %{display_count} e-mail
+ other: Send %{display_count} e-mails
+ title: Forhåndsvis Tjenestevilkår-underretning
+ publish: Udgiv
+ published_on_html: Udgivet pr. %{date}
+ save_draft: Gem udkast
+ title: Tjenestevilkår
title: Administration
trends:
allow: Tillad
@@ -1156,6 +1187,7 @@ da:
set_new_password: Opsæt ny adgangskode
setup:
email_below_hint_html: Tjek Spam-mappen eller anmod om et nyt link. Om nødvendigt kan e-mailadressen rettes.
+ email_settings_hint_html: Klik på det link, der er sendt til %{email} for at begynde at bruge Mastodon.
link_not_received: Intet link modtaget?
new_confirmation_instructions_sent: Du bør om få minutter modtage en ny e-mail med bekræftelseslinket!
title: Tjek indbakken
@@ -1164,6 +1196,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.
title: Lad os få dig sat op på %{domain}.
status:
account_status: Kontostatus
@@ -1175,6 +1208,7 @@ da:
view_strikes: Se tidligere anmeldelser af din konto
too_fast: Formularen indsendt for hurtigt, forsøg igen.
use_security_key: Brug sikkerhedsnøgle
+ user_agreement_html: Jeg accepterer Tjenestevilkår og Fortrolighedspolitik
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.
@@ -1836,6 +1870,8 @@ da:
too_late: Det er for sent at appellere denne advarsel
tags:
does_not_match_previous_name: matcher ikke det foregående navn
+ terms_of_service:
+ title: Tjenestevilkår
themes:
contrast: Mastodon (høj kontrast)
default: Mastodont (mørkt)
@@ -1896,6 +1932,15 @@ da:
further_actions_html: Hvis dette ikke var dig, anbefaler vi, at du %{action} med det samme og aktiverer to-faktor godkendelse for at holde din konto sikker.
subject: Din konto er blevet tilgået fra en ny IP-adresse
title: Ny indlogning
+ terms_of_service_changed:
+ agreement: Ved at fortsætte med at bruge %{domain}, accepteres disse vilkår. Kan du ikke acceptere de opdaterede vilkår, kan din aftale med %{domain} til enhver tid opsiges ved at slette din konto.
+ changelog: 'Med ét blik er her, hvad denne opdatering rent praktisk betyder:'
+ description: 'Man modtager denne e-mail, fordi der foretages nogle ændringer i vores Tjenestevilkår på %{domain}. Man opfordres til at gennemgå de opdaterede vilkår fuldt ud her:'
+ description_html: Man modtager denne e-mail, fordi der foretages nogle ændringer i vores Tjenestevilkår på %{domain}. Man opfordres til at gennemgå de opdaterede vilkår fuldt ud her.
+ sign_off: "%{domain}-teamet"
+ subject: Opdatering af Tjenestevilkår
+ subtitle: Tjenestevilkår for %{domain} ændres
+ title: Vigtig opdatering
warning:
appeal: Indgiv appel
appeal_description: Mener du, at dette er en fejl, kan der indgives en appel til %{instance}-personalet.
diff --git a/config/locales/de.yml b/config/locales/de.yml
index ca7dbf2421..d1d557432b 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -214,6 +214,7 @@ de:
enable_user: Benutzer*in aktivieren
memorialize_account: Gedenkkonto
promote_user: Benutzer*in hochstufen
+ publish_terms_of_service: Nutzungsbedingungen veröffentlichen
reject_appeal: Einspruch ablehnen
reject_user: Benutzer*in ablehnen
remove_avatar_user: Profilbild entfernen
@@ -278,6 +279,7 @@ de:
enable_user_html: "%{name} aktivierte den Zugang für %{target}"
memorialize_account_html: "%{name} wandelte das Konto von %{target} in eine Gedenkseite um"
promote_user_html: "%{name} beförderte %{target}"
+ publish_terms_of_service_html: "%{name} aktualisierte die Nutzungsbedingungen"
reject_appeal_html: "%{name} hat den Einspruch gegen eine Moderationsentscheidung von %{target} abgelehnt"
reject_user_html: "%{name} hat die Registrierung von %{target} abgelehnt"
remove_avatar_user_html: "%{name} entfernte das Profilbild von %{target}"
@@ -925,6 +927,35 @@ de:
search: Suchen
title: Hashtags
updated_msg: Hashtag-Einstellungen erfolgreich aktualisiert
+ terms_of_service:
+ back: Zurück zu den Nutzungsbedingungen
+ changelog: Was sich geändert hat
+ create: Eigene erstellen
+ current: Aktuell
+ draft: Entwurf
+ generate: Vorlage verwenden
+ generates:
+ action: Erstellen
+ chance_to_review_html: "Die durch diese Vorlage erstellten Nutzungsbedingungen werden nicht automatisch veröffentlicht. Du wirst alles noch einmal überprüfen können. Bitte fülle alle Felder mit den notwendigen Informationen aus, um fortzufahren."
+ explanation_html: Die Vorlage für die Nutzungsbedingungen dient ausschließlich zu Informationszwecken und sollte nicht als Rechtsberatung zu einem bestimmten Thema verstanden werden. Bei rechtlichen Fragen, konsultiere bitte deinen Rechtsbeistand.
+ title: Nutzungsbedingungen festlegen
+ history: Verlauf
+ live: Aktuell gültig
+ no_history: Es wurden noch keine Änderungen an den Nutzungsbedingungen aufgezeichnet.
+ no_terms_of_service_html: Du hast derzeit keine Nutzungsbedingungen bereitgestellt. Nutzungsbedingungen verschaffen Klarheit und schützen vor möglicher Haftung bei Streitigkeiten mit deinen Nutzer*innen.
+ notified_on_html: Nutzer*innen wurden am %{date} benachrichtigt
+ notify_users: Nutzer*innen benachrichtigen
+ preview:
+ explanation_html: 'Diese E-Mail wird an %{display_count} Nutzer*innen gesendet, die sich vor dem %{date} registriert haben. Der nachfolgende Text wird in der E-Mail enthalten sein:'
+ send_preview: Vorschau an %{email} senden
+ send_to_all:
+ one: "%{display_count} E-Mail senden"
+ other: "%{display_count} E-Mails senden"
+ title: Vorschau zu den neuen Nutzungsbedingungen
+ publish: Veröffentlichen
+ published_on_html: Veröffentlicht am %{date}
+ save_draft: Entwurf speichern
+ title: Nutzungsbedingungen
title: Administration
trends:
allow: Erlauben
@@ -1156,6 +1187,7 @@ de:
set_new_password: Neues Passwort einrichten
setup:
email_below_hint_html: Überprüfe deinen Spam-Ordner oder lass dir den Bestätigungslink erneut zusenden. Falls die angegebene E-Mail-Adresse falsch ist, kannst du sie auch korrigieren.
+ email_settings_hint_html: Klicke auf den Link, den wir an %{email} gesendet haben, um mit Mastodon loszulegen. Wir warten hier solange auf dich.
link_not_received: Keinen Bestätigungslink erhalten?
new_confirmation_instructions_sent: In wenigen Minuten wirst du eine neue E-Mail mit dem Bestätigungslink erhalten!
title: Überprüfe dein E-Mail-Postfach
@@ -1164,6 +1196,7 @@ de:
title: Bei %{domain} anmelden
sign_up:
manual_review: Registrierungen für den Server %{domain} werden manuell durch unsere Moderator*innen überprüft. Um uns dabei zu unterstützen, schreibe etwas über dich und sage uns, weshalb du ein Konto auf %{domain} anlegen möchtest.
+ preamble: Mit einem Konto auf diesem Mastodon-Server kannst du jeder anderen Person im Fediverse folgen, unabhängig davon, wo ihr Konto registriert ist.
title: Lass uns dein Konto auf %{domain} einrichten.
status:
account_status: Kontostatus
@@ -1175,6 +1208,7 @@ de:
view_strikes: Vorherige Verstöße deines Kontos ansehen
too_fast: Formular zu schnell übermittelt. Bitte versuche es erneut.
use_security_key: Sicherheitsschlüssel verwenden
+ user_agreement_html: Ich stimme den Nutzungsbedingungen sowie der Datenschutzerklärung zu
author_attribution:
example_title: Beispieltext
hint_html: Schreibst du außerhalb von Mastodon journalistische Artikel oder andere Texte, beispielsweise in einem Blog? Lege hier fest, wann auf dein Profil verwiesen werden soll, wenn Links zu deinen Werken auf Mastodon geteilt werden.
@@ -1836,6 +1870,8 @@ de:
too_late: Es ist zu spät, um gegen diese Maßnahme Einspruch zu erheben
tags:
does_not_match_previous_name: entspricht nicht dem vorherigen Namen
+ terms_of_service:
+ title: Nutzungsbedingungen
themes:
contrast: Mastodon (Hoher Kontrast)
default: Mastodon (Dunkel)
@@ -1896,6 +1932,15 @@ de:
further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung für dein Konto zu aktivieren, um es abzusichern.
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. 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. Wir empfehlen, die vollständig aktualisierte Fassung hier zu lesen.
+ sign_off: Das Team von %{domain}
+ subject: Aktualisierungen unserer Nutzungsbedingungen
+ subtitle: Die Nutzungsbedingungen von %{domain} ändern sich
+ title: Wichtige Mitteilung
warning:
appeal: Einspruch erheben
appeal_description: Wenn du glaubst, dass es sich um einen Fehler handelt, kannst du einen Einspruch an die Administration von %{instance} senden.
diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index e0b8a7c818..77d8a404dc 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -23,7 +23,7 @@ zh-CN:
action_with_app: 确认并返回%{app}
explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个账号。点击下面的链接即可激活账号。如果你没有创建账号,请忽略此邮件。
explanation_when_pending: 你用这个邮箱申请了在 %{host} 注册。在确认邮箱地址之后,我们会审核你的申请。在此之前,你不能登录。如果你的申请被驳回,你的数据会被移除,因此你无需再采取任何行动。如果申请人不是你,请忽略这封邮件。
- extra_html: 请记得阅读本实例的相关规定和我们的使用条款。
+ extra_html: 请记得阅读本实例的相关规定和我们的服务条款。
subject: Mastodon:来自 %{instance} 的确认指引
title: 验证邮箱地址
email_changed:
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index a09181ef31..749c6ee511 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -214,6 +214,7 @@ eo:
enable_user: Ebligi uzanton
memorialize_account: Memorigu Konton
promote_user: Promocii Uzanton
+ publish_terms_of_service: Publikigi kondiĉojn de uzado
reject_appeal: Malaprobi Apelacion
reject_user: Malakcepti Uzanton
remove_avatar_user: Forigi la profilbildon
@@ -925,6 +926,21 @@ eo:
search: Serĉi
title: Kradvortoj
updated_msg: Kradvorto agordoj ĝisdatigis sukcese
+ terms_of_service:
+ back: Reen al kondiĉoj de uzado
+ create: Uzu vian propran
+ current: Nuna
+ draft: Malneto
+ generates:
+ title: Agordo de kondiĉoj de uzado
+ preview:
+ send_to_all:
+ one: Sendi %{display_count} retpoŝton
+ other: Sendi %{display_count} retpoŝtojn
+ publish: Publikigi
+ published_on_html: Publikigita je %{date}
+ save_draft: Konservi malneton
+ title: Kondiĉoj de uzado
title: Administrado
trends:
allow: Permesi
@@ -1164,6 +1180,7 @@ eo:
title: Saluti en %{domain}
sign_up:
manual_review: Enskriboj en %{domain} havas manan superrigardon, farita de niaj moderistoj. Por helpi nin por procezi vian enskribon, skribu ion pri vi mem, kaj kial vi volas konton en %{domain}.
+ preamble: Per konto ĉe ĉi tiu Mastodon-servilo, vi povos sekvi ajnan alian personon ĉe la fediverso, sendepende de kie ilia konto estas gastigita.
title: Ni pretigu vin ĉe %{domain}.
status:
account_status: Statuso de la konto
@@ -1838,6 +1855,8 @@ eo:
too_late: Estas tro malfrua por apelacii ĉi tiun admonon
tags:
does_not_match_previous_name: ne kongruas kun la antaŭa nomo
+ terms_of_service:
+ title: Kondiĉoj de uzado
themes:
contrast: Mastodon (Forta kontrasto)
default: Mastodon (Malhela)
@@ -1898,6 +1917,8 @@ eo:
further_actions_html: Se ne estas vi, ni rekomendas ke vi %{action} tuj por sekurigi vian konton.
subject: Via konto estas alirita de nova IP-adreso
title: Nova saluto
+ terms_of_service_changed:
+ title: Grava ĝisdatigo
warning:
appeal: Sendi apelacion
appeal_description: Se vi pensas ke ĉi tio estas eraro, vi povas sendi apelacion al la teamo de %{instance}.
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 78b30921c8..e28a863024 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -214,6 +214,7 @@ es-AR:
enable_user: Habilitar usuario
memorialize_account: Convertir en cuenta conmemorativa
promote_user: Promover usuario
+ publish_terms_of_service: Publicar términos del servicio
reject_appeal: Rechazar apelación
reject_user: Rechazar usuario
remove_avatar_user: Quitar avatar
@@ -278,6 +279,7 @@ es-AR:
enable_user_html: "%{name} habilitó el inicio de sesión para el usuario %{target}"
memorialize_account_html: "%{name} convirtió la cuenta de %{target} en una cuenta conmemorativa"
promote_user_html: "%{name} promovió al usuario %{target}"
+ publish_terms_of_service_html: "%{name} ha publicado actualizaciones de los términos del servicio"
reject_appeal_html: "%{name} rechazó la solicitud de moderación de %{target}"
reject_user_html: "%{name} rechazó el registro de %{target}"
remove_avatar_user_html: "%{name} quitó el avatar de %{target}"
@@ -925,6 +927,25 @@ es-AR:
search: Buscar
title: Etiquetas
updated_msg: La configuración de la etiqueta se actualizó exitosamente
+ terms_of_service:
+ back: Volver a los términos del servicio
+ changelog: Qué ha cambiado
+ create: Usa el tuyo
+ current: Actual
+ draft: Borrador
+ generate: Usar plantilla
+ generates:
+ action: Generar
+ no_history: Aún no se han registrado cambios en los términos del servicio.
+ no_terms_of_service_html: Actualmente no tienes configurado ningún término del servicio. Los términos del servicio están pensados para proporcionar claridad y protegerte de posibles responsabilidades en disputas con tus usuarios.
+ preview:
+ send_to_all:
+ one: Enviar %{display_count} correo electrónico
+ other: Enviar %{display_count} correos electrónicos
+ publish: Publicar
+ published_on_html: Publicado el %{date}
+ save_draft: Guardar borrador
+ title: Términos del servicio
title: Administración
trends:
allow: Permitir
@@ -1164,6 +1185,7 @@ es-AR:
title: Iniciar sesión en %{domain}
sign_up:
manual_review: Los registros en %{domain} pasan por la revisión manual de nuestros moderadores. Para ayudarnos a procesar tu registro, escribinos un poco sobre vos y contanos por qué querés una cuenta en %{domain}.
+ preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en el fediverso, independientemente de dónde esté alojada su cuenta.
title: Dejá que te preparemos en %{domain}.
status:
account_status: Estado de la cuenta
@@ -1836,6 +1858,8 @@ es-AR:
too_late: Es demasiado tarde para apelar este incumplimiento
tags:
does_not_match_previous_name: no coincide con el nombre anterior
+ terms_of_service:
+ title: Términos del servicio
themes:
contrast: Alto contraste
default: Oscuro
@@ -1896,6 +1920,11 @@ es-AR:
further_actions_html: Si no fuiste vos, te recomendamos que %{action} inmediatamente y habilités la autenticación de dos factores para mantener tu cuenta segura.
subject: Se accedió a tu cuenta desde una nueva dirección IP
title: Un nuevo inicio de sesión
+ terms_of_service_changed:
+ changelog: 'En resumen, esto es lo que esta actualización significa para ti:'
+ sign_off: El equipo de %{domain}
+ subject: Actualizaciones en nuestros términos del servicio
+ title: Actualización importante
warning:
appeal: Enviar una apelación
appeal_description: Si creés que esto es un error, podés enviar una apelación al equipo de %{instance}.
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index f05626399a..e71098a97c 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -214,6 +214,7 @@ es-MX:
enable_user: Habilitar Usuario
memorialize_account: Transformar en Cuenta Conmemorativa
promote_user: Promover Usuario
+ publish_terms_of_service: Publicar condiciones del servicio
reject_appeal: Rechazar apelación
reject_user: Rechazar Usuario
remove_avatar_user: Eliminar Avatar
@@ -278,6 +279,7 @@ es-MX:
enable_user_html: "%{name} habilitó el inicio de sesión para el usuario %{target}"
memorialize_account_html: "%{name} convirtió la cuenta de %{target} en una página in memoriam"
promote_user_html: "%{name} promoción al usuario %{target}"
+ publish_terms_of_service_html: "%{name} publicó actualizaciones de las condiciones del servicio"
reject_appeal_html: "%{name} rechazó la solicitud de moderación de %{target}"
reject_user_html: "%{name} rechazó el registro de %{target}"
remove_avatar_user_html: "%{name} eliminó el avatar de %{target}"
@@ -925,6 +927,34 @@ es-MX:
search: Buscar
title: Etiquetas
updated_msg: Etiquetas actualizadas exitosamente
+ terms_of_service:
+ back: Regresar a las condiciones del servicio
+ changelog: Lo que ha cambiado
+ create: Usa el tuyo
+ current: Actual
+ draft: Borrador
+ generate: Usar plantilla
+ generates:
+ action: Generar
+ chance_to_review_html: "Las condiciones de servicio generadas no se publicarán automáticamente. Tendrás la oportunidad de revisar los resultados. Por favor, rellena los datos necesarios para continuar."
+ explanation_html: La plantilla de condiciones de servicio que se proporciona tiene únicamente fines informativos y no debe interpretarse como asesoramiento jurídico sobre ningún tema. Por favor, consulte con su propio asesor legal sobre su situación y las cuestiones legales específicas que tenga.
+ title: Configuración de las condiciones del servicio
+ history: Historial
+ no_history: No se han registrado cambios en las condiciones del servicio hasta el momento.
+ no_terms_of_service_html: Actualmente, no tiene configuradas condiciones del servicio. Las condiciones del servicio están diseñadas para proporcionar claridad y protegerte de posibles responsabilidades en disputas con tus usuarios.
+ notified_on_html: Usuarios notificados el %{date}
+ notify_users: Notificar usuarios
+ preview:
+ explanation_html: 'El correo electrónico se enviará a %{display_count} usuarios que se hayan registrado antes de %{date}. En el correo electrónico se incluirá el siguiente texto:'
+ send_preview: Enviar vista previa a %{email}
+ send_to_all:
+ one: Enviar %{display_count} correo electrónico
+ other: Enviar %{display_count} correos electrónicos
+ title: Vista previa de la notificación de las condiciones del servicio
+ publish: Publicar
+ published_on_html: Publicado el %{date}
+ save_draft: Guardar borrador
+ title: Condiciones del servicio
title: Administración
trends:
allow: Permitir
@@ -1156,6 +1186,7 @@ es-MX:
set_new_password: Establecer nueva contraseña
setup:
email_below_hint_html: Comprueba tu carpeta de correo no deseado o solicita otro enlace de confirmación. Puedes corregir tu dirección de correo electrónico si está mal.
+ email_settings_hint_html: Haz clic en el enlace que te enviamos a %{email} para comenzar a usar Mastodon. Te esperamos aquí.
link_not_received: "¿No recibiste un enlace?"
new_confirmation_instructions_sent: "¡Recibirás un nuevo correo electrónico con el enlace de confirmación en unos minutos!"
title: Revisa tu bandeja de entrada
@@ -1164,6 +1195,7 @@ es-MX:
title: Registrate en %{domain}
sign_up:
manual_review: Los registros en %{domain} pasan por la revisión manual de nuestros moderadores. Para ayudarnos a procesar tu registro, escribe un poco sobre ti mismo y por qué quieres una cuenta en %{domain}.
+ preamble: Al tener una cuenta en este servidor de Mastodon, tendrás la oportunidad de seguir a cualquier persona en el fediverso, sin importar en qué plataforma esté alojada su cuenta.
title: Crear cuenta de Mastodon en %{domain}.
status:
account_status: Estado de la cuenta
@@ -1175,6 +1207,7 @@ es-MX:
view_strikes: Ver amonestaciones pasadas contra tu cuenta
too_fast: Formulario enviado demasiado rápido, inténtelo de nuevo.
use_security_key: Usar la clave de seguridad
+ user_agreement_html: He leído y acepto las condiciones del servicio y la política de privacidad
author_attribution:
example_title: Texto de ejemplo
hint_html: "¿Estás escribiendo artículos de noticias o blogs fuera de Mastodon? Controla cómo te acreditan cuando se comparten en Mastodon."
@@ -1836,6 +1869,8 @@ es-MX:
too_late: Es demasiado tarde para apelar esta amonestación
tags:
does_not_match_previous_name: no coincide con el nombre anterior
+ terms_of_service:
+ title: Condiciones del servicio
themes:
contrast: Alto contraste
default: Mastodon
@@ -1896,6 +1931,15 @@ es-MX:
further_actions_html: Si no fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura.
subject: Tu cuenta ha sido accedida desde una nueva dirección IP
title: Un nuevo inicio de sesión
+ terms_of_service_changed:
+ agreement: Al seguir usando %{domain}, aceptas estas condiciones. Si no estás de acuerdo con las condiciones actualizadas, puedes cancelar tu acuerdo con %{domain} en cualquier momento eliminando tu cuenta.
+ changelog: 'En pocas palabras, esto es lo que esta actualización implica para ti:'
+ description: 'Estás recibiendo este correo electrónico porque estamos realizando algunos cambios en nuestras condiciones del servicio en %{domain}. Te animamos a revisar las condiciones actualizadas en su totalidad aquí:'
+ description_html: Estás recibiendo este correo electrónico porque estamos realizando algunos cambios en nuestras condiciones del servicio en %{domain}. Te animamos a revisar las condiciones actualizadas en su totalidad aquí.
+ sign_off: El equipo de %{domain}
+ subject: Actualizaciones en nuestras condiciones del servicio
+ subtitle: Las condiciones del servicio de %{domain} han cambiado
+ title: Actualización importante
warning:
appeal: Enviar una apelación
appeal_description: Si crees que esto es un error, puedes enviar una apelación al equipo de %{instance}.
diff --git a/config/locales/es.yml b/config/locales/es.yml
index bc0d816ef2..c9092db99f 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -214,6 +214,7 @@ es:
enable_user: Habilitar Usuario
memorialize_account: Transformar en Cuenta Conmemorativa
promote_user: Promover Usuario
+ publish_terms_of_service: Publicar términos del servicio
reject_appeal: Rechazar Apelación
reject_user: Rechazar Usuario
remove_avatar_user: Eliminar Avatar
@@ -278,6 +279,7 @@ es:
enable_user_html: "%{name} habilitó el inicio de sesión para el usuario %{target}"
memorialize_account_html: "%{name} convirtió la cuenta de %{target} en una página in memoriam"
promote_user_html: "%{name} promoción al usuario %{target}"
+ publish_terms_of_service_html: "%{name} ha publicado actualizaciones de los términos del servicio"
reject_appeal_html: "%{name} rechazó la solicitud de moderación de %{target}"
reject_user_html: "%{name} rechazó el registro de %{target}"
remove_avatar_user_html: "%{name} eliminó el avatar de %{target}"
@@ -925,6 +927,25 @@ es:
search: Buscar
title: Etiquetas
updated_msg: La configuración de etiquetas se actualizó correctamente
+ terms_of_service:
+ back: Volver a los términos del servicio
+ changelog: Qué ha cambiado
+ create: Usa el tuyo
+ current: Actual
+ draft: Borrador
+ generate: Usar plantilla
+ generates:
+ action: Generar
+ no_history: Aún no se han registrado cambios en los términos del servicio.
+ no_terms_of_service_html: Actualmente no tienes configurado ningún término del servicio. Los términos del servicio están pensados para proporcionar claridad y protegerte de posibles responsabilidades en disputas con tus usuarios.
+ preview:
+ send_to_all:
+ one: Enviar %{display_count} correo electrónico
+ other: Enviar %{display_count} correos electrónicos
+ publish: Publicar
+ published_on_html: Publicado el %{date}
+ save_draft: Guardar borrador
+ title: Términos del servicio
title: Administración
trends:
allow: Permitir
@@ -1164,6 +1185,7 @@ es:
title: Iniciar sesión en %{domain}
sign_up:
manual_review: Los registros en %{domain} pasan por la revisión manual de nuestros moderadores. Para ayudarnos a procesar tu registro, escribe un poco sobre ti mismo y por qué quieres una cuenta en %{domain}.
+ preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en el fediverso, independientemente de dónde esté alojada su cuenta.
title: Crear cuenta de Mastodon en %{domain}.
status:
account_status: Estado de la cuenta
@@ -1836,6 +1858,8 @@ es:
too_late: Es demasiado tarde para apelar esta amonestación
tags:
does_not_match_previous_name: no coincide con el nombre anterior
+ terms_of_service:
+ title: Términos del servicio
themes:
contrast: Mastodon (alto contraste)
default: Mastodon (oscuro)
@@ -1896,6 +1920,11 @@ es:
further_actions_html: Si no fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura.
subject: Tu cuenta ha sido accedida desde una nueva dirección IP
title: Un nuevo inicio de sesión
+ terms_of_service_changed:
+ changelog: 'En resumen, esto es lo que esta actualización significa para ti:'
+ sign_off: El equipo de %{domain}
+ subject: Actualizaciones en nuestros términos del servicio
+ title: Actualización importante
warning:
appeal: Enviar una apelación
appeal_description: Si crees que esto es un error, puedes enviar una apelación al personal de %{instance}.
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 308d364612..c4f9844679 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -214,6 +214,7 @@ fi:
enable_user: Ota tili käyttöön
memorialize_account: Muuta muistotiliksi
promote_user: Ylennä käyttäjä
+ publish_terms_of_service: Julkaise käyttöehdot
reject_appeal: Hylkää valitus
reject_user: Hylkää käyttäjä
remove_avatar_user: Poista profiilikuva
@@ -278,6 +279,7 @@ fi:
enable_user_html: "%{name} otti kirjautumisen käyttöön käyttäjälle %{target}"
memorialize_account_html: "%{name} muutti käyttäjän %{target} tilin muistosivuksi"
promote_user_html: "%{name} ylensi käyttäjän %{target}"
+ publish_terms_of_service_html: "%{name} julkaisi päivityksiä käyttöehtoihin"
reject_appeal_html: "%{name} hylkäsi käyttäjän %{target} valituksen moderointipäätöksestä"
reject_user_html: "%{name} hylkäsi käyttäjän %{target} rekisteröitymisen"
remove_avatar_user_html: "%{name} poisti käyttäjän %{target} profiilikuvan"
@@ -925,6 +927,35 @@ fi:
search: Hae
title: Aihetunnisteet
updated_msg: Aihetunnisteiden asetusten päivitys onnistui
+ terms_of_service:
+ back: Takaisin käyttöehtoihin
+ changelog: Mikä on muuttunut
+ create: Käytä omiasi
+ current: Voimassa olevat
+ draft: Luonnos
+ generate: Käytä mallia
+ generates:
+ action: Luo
+ chance_to_review_html: "Luotuja käyttöehtoja ei julkaista automaattisesti. Sinulla on mahdollisuus tarkistaa lopputulos. Jatka täyttämällä tarvittavat tiedot."
+ explanation_html: Tarjottu käyttöehtomalli on tarkoitettu vain tiedoksi, eikä sitä pidä tulkita oikeudellisena neuvontana missään yhteydessä. Käänny oman oikeusavustajasi puoleen tilanteessasi ja erityisissä oikeudellisissa kysymyksissäsi.
+ title: Käyttöehtojen määritys
+ history: Historia
+ live: Julki
+ no_history: Käyttöehtoihin ei ole vielä tehty muutoksia.
+ no_terms_of_service_html: Sinulla ei ole tällä hetkellä määritettyjä käyttöehtoja. Käyttöehtojen tarkoituksena on antaa selvyyttä ja suojata sinua mahdollisilta vastuilta riitatilanteissa käyttäjiesi kanssa.
+ notified_on_html: Ilmoitettu käyttäjille %{date}
+ notify_users: Ilmoita käyttäjille
+ preview:
+ explanation_html: 'Sähköpostia lähetetään %{display_count} käyttäjälle, jotka ovat rekisteröityneet ennen %{date}. Sähköpostiviestissä on seuraava teksti:'
+ send_preview: Lähetä esikatselu osoitteeseen %{email}
+ send_to_all:
+ one: Lähetä %{display_count} sähköpostiviesti
+ other: Lähetä %{display_count} sähköpostiviestiä
+ title: Esikatsele käyttöehtojen ilmoitus
+ publish: Julkaise
+ published_on_html: Julkaistu %{date}
+ save_draft: Tallenna luonnos
+ title: Käyttöehdot
title: Ylläpito
trends:
allow: Salli
@@ -1156,6 +1187,7 @@ fi:
set_new_password: Aseta uusi salasana
setup:
email_below_hint_html: Tarkista roskapostikansiosi tai pyydä uusi viesti. Voit korjata sähköpostiosoitteesi tarvittaessa.
+ email_settings_hint_html: Jotta voit aloittaa Mastodonin käytön, napsauta linkkiä, jonka lähetimme osoitteeseen %{email}. Odotamme täällä.
link_not_received: Etkö saanut linkkiä?
new_confirmation_instructions_sent: Saat pian uuden vahvistuslinkin sisältävän sähköpostiviestin!
title: Tarkista sähköpostilaatikkosi
@@ -1164,6 +1196,7 @@ fi:
title: Kirjaudu palvelimelle %{domain}
sign_up:
manual_review: Palvelimen %{domain} ylläpito tarkastaa rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja siitä, miksi haluat luoda käyttäjätilin palvelimelle %{domain}.
+ preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita fediversumin käyttäjiä riippumatta siitä, missä heidän tilinsä on.
title: Otetaan %{domain} käyttöösi.
status:
account_status: Tilin tila
@@ -1175,6 +1208,7 @@ fi:
view_strikes: Näytä aiemmat tiliäsi koskevat varoitukset
too_fast: Lomake lähetettiin liian nopeasti, yritä uudelleen.
use_security_key: Käytä suojausavainta
+ user_agreement_html: Olen lukenut ja hyväksyn käyttöehdot ja tietosuojakäytännön
author_attribution:
example_title: Esimerkkiteksti
hint_html: Kirjoitatko uutisia tai blogitekstejä Mastodonin ulkopuolella? Määrää, kuinka tulet tunnustetuksi, kun niitä jaetaan Mastodonissa.
@@ -1836,6 +1870,8 @@ fi:
too_late: On liian myöhäistä vedota tähän varoitukseen
tags:
does_not_match_previous_name: ei vastaa edellistä nimeä
+ terms_of_service:
+ title: Käyttöehdot
themes:
contrast: Mastodon (suuri kontrasti)
default: Mastodon (tumma)
@@ -1896,6 +1932,15 @@ fi:
further_actions_html: Jos tämä et ollut sinä, suosittelemme, että %{action} heti ja otat käyttöön kaksivaiheisen todennuksen pitääksesi tilisi turvassa.
subject: Tiliäsi on käytetty uudesta IP-osoitteesta
title: Uusi kirjautuminen
+ terms_of_service_changed:
+ agreement: Jatkamalla palvelun %{domain} käyttöä hyväksyt nämä ehdot. Jos et hyväksy päivitettyjä ehtoja, voit milloin tahansa päättää sopimuksesi palvelun %{domain} kanssa poistamalla tilisi.
+ changelog: 'Lyhyesti, mitä tämä päivitys tarkoittaa sinulle:'
+ description: 'Sait tämän sähköpostiviestin, koska teemme muutoksia palvelun %{domain} käyttöehtoihin. Kehotamme sinua tutustumaan päivitettyihin ehtoihin kokonaisuudessaan täällä:'
+ description_html: Sait tämän sähköpostiviestin, koska teemme muutoksia palvelun %{domain} käyttöehtoihin. Kehotamme sinua tutustumaan päivitettyihin ehtoihin kokonaisuudessaan täällä.
+ sign_off: Palvelimen %{domain} tiimi
+ subject: Käyttöehtojemme päivitykset
+ subtitle: Palvelimen %{domain} käyttöehdot muuttuvat
+ title: Tärkeä päivitys
warning:
appeal: Lähetä valitus
appeal_description: Jos uskot, että tämä on virhe, voit hakea muutosta palvelimen %{instance} ylläpidolta.
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index 5cfd12d0be..4fefee7ae0 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -214,6 +214,7 @@ fr-CA:
enable_user: Activer l’utilisateur
memorialize_account: Ériger en mémorial
promote_user: Promouvoir l’utilisateur
+ publish_terms_of_service: Publier les conditions d'utilisation
reject_appeal: Rejeter l'appel
reject_user: Rejeter l’utilisateur
remove_avatar_user: Supprimer l’avatar
@@ -278,6 +279,7 @@ fr-CA:
enable_user_html: "%{name} a activé la connexion de l'utilisateur·rice %{target}"
memorialize_account_html: "%{name} a converti le compte de %{target} en un mémorial"
promote_user_html: "%{name} a promu l'utilisateur·rice %{target}"
+ publish_terms_of_service_html: "%{name} a publié des mises à jour des conditions d'utilisation"
reject_appeal_html: "%{name} a rejeté l'appel de la décision de modération émis par %{target}"
reject_user_html: "%{name} a rejeté l’inscription de %{target}"
remove_avatar_user_html: "%{name} a supprimé l'avatar de %{target}"
@@ -928,6 +930,35 @@ fr-CA:
search: Recherche
title: Hashtags
updated_msg: Paramètres du hashtag mis à jour avec succès
+ terms_of_service:
+ back: Retour aux conditions d'utilisation
+ changelog: Nouveautés
+ create: Utilisez vos propres
+ current: Courant
+ draft: Brouillon
+ generate: Utiliser un modèle
+ generates:
+ action: Générer
+ chance_to_review_html: "Les conditions d'utilisation générées ne seront pas publiées automatiquement. Vous aurez la possibilité de vérifier les résultats. Veuillez remplir les informations nécessaires pour continuer."
+ explanation_html: Le modèle de conditions d'utilisation fourni l'est uniquement à titre informatif et ne doit pas être interprété comme un conseil juridique sur quelque sujet que ce soit. Veuillez consulter votre propre conseiller juridique sur votre situation et les questions juridiques spécifiques que vous vous posez.
+ title: Configuration des Conditions d'Utilisation
+ history: Historique
+ live: En cours d'utilisation
+ no_history: Il n'y a pas encore de modifications enregistrées des conditions d'utilisation.
+ no_terms_of_service_html: Vous n'avez actuellement aucune condition d'utilisation configurée. Les conditions d'utilisation ont pour but de clarifier les droits et obligations de chacun lors de l'utilisation du service et de vous protéger contre d'éventuelles responsabilités en cas de litige avec vos utilisateurs.
+ notified_on_html: Utilisateurs notifiés le `%{date}`
+ notify_users: Notifier les utilisateurs
+ preview:
+ explanation_html: 'L''e-mail sera envoyé aux utilisateurs %{display_count} qui se sont inscrits avant %{date}. Le texte suivant sera inclus dans l''e-mail :'
+ send_preview: Envoyer un aperçu à %{email}
+ send_to_all:
+ one: Envoyer %{display_count} email
+ other: Envoyer %{display_count} emails
+ title: Notification concernant l'aperçu des conditions d'utilisation
+ publish: Publier
+ published_on_html: Publié le %{date}
+ save_draft: Enregistrer le brouillon
+ title: Conditions d'utilisation
title: Administration
trends:
allow: Autoriser
@@ -1159,6 +1190,7 @@ fr-CA:
set_new_password: Définir le nouveau mot de passe
setup:
email_below_hint_html: Consultez votre dossier de courrier indésirable ou demandez-en un autre. Vous pouvez corriger votre adresse e-mail si elle est incorrecte.
+ email_settings_hint_html: Cliquez sur le lien que nous avons envoyé à %{email} pour commencer à utiliser Mastodon. Nous vous attendrons ici.
link_not_received: Vous n'avez pas reçu de lien?
new_confirmation_instructions_sent: Vous allez recevoir un nouvel e-mail avec le lien de confirmation dans quelques minutes !
title: Vérifiez votre boîte de réception
@@ -1167,6 +1199,7 @@ fr-CA:
title: Se connecter à %{domain}
sign_up:
manual_review: Les inscriptions sur %{domain} passent par une revue manuelle de nos modérateurs. Pour les aider, écrivez un peu plus sur vous et pourquoi vous souhaitez créer un compte sur %{domain}.
+ preamble: Avec un compte sur ce serveur Mastodon, vous pourrez suivre n'importe quelle autre personne du fediverse, quel que soit l'endroit où son compte est hébergé.
title: Mettons les choses en place pour %{domain}.
status:
account_status: État du compte
@@ -1178,6 +1211,7 @@ fr-CA:
view_strikes: Voir les sanctions précédemment appliquées à votre compte
too_fast: Formulaire envoyé trop rapidement, veuillez réessayer.
use_security_key: Utiliser la clé de sécurité
+ user_agreement_html: J'ai lu et j'accepte les conditions d'utilisation et la politique de confidentialité
author_attribution:
example_title: Exemple de texte
hint_html: Vous écrivez des nouvelles ou des articles de blog en dehors de Mastodon ? Contrôlez la façon dont vous êtes crédité lorsqu'ils sont partagés sur Mastodon.
@@ -1839,6 +1873,8 @@ fr-CA:
too_late: Il est trop tard pour faire appel à cette sanction
tags:
does_not_match_previous_name: ne correspond pas au nom précédent
+ terms_of_service:
+ title: Conditions d'utilisation
themes:
contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre)
@@ -1899,6 +1935,15 @@ fr-CA:
further_actions_html: Si ce n’était pas vous, nous vous recommandons de %{action} immédiatement et d’activer l’authentification à deux facteurs afin de garder votre compte sécurisé.
subject: Votre compte a été accédé à partir d'une nouvelle adresse IP
title: Une nouvelle connexion
+ terms_of_service_changed:
+ agreement: En continuant d'utiliser %{domain}, vous acceptez ces conditions. Si vous n'êtes pas d'accord avec les conditions mises à jour, vous pouvez résilier votre accord avec %{domain} à tout moment en supprimant votre compte.
+ changelog: 'En un coup d''œil, voici ce que cette mise à jour signifie pour vous :'
+ description: 'Vous recevez cet e-mail car nous apportons des modifications à nos conditions d''utilisation sur %{domain}. Nous vous encourageons à consulter l''intégralité des conditions mises à jour ici :'
+ description_html: Vous recevez cet e-mail car nous apportons des modifications à nos conditions d'utilisation sur %{domain}. Nous vous encourageons à consulter l'intégralité des conditions mises à jour ici.
+ sign_off: L'équipe %{domain}
+ subject: Mises à jour de nos conditions d'utilisation
+ subtitle: Les conditions d'utilisation de `%{domain}` changent
+ title: Mise à jour importante
warning:
appeal: Faire appel
appeal_description: Si vous pensez qu'il s'agit d'une erreur, vous pouvez faire appel auprès de l'équipe de %{instance}.
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 2593c60f06..3000f9a4a9 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -214,6 +214,7 @@ fr:
enable_user: Activer le compte
memorialize_account: Ériger en mémorial
promote_user: Promouvoir le compte
+ publish_terms_of_service: Publier les conditions d'utilisation
reject_appeal: Rejeter l'appel
reject_user: Rejeter le compte
remove_avatar_user: Supprimer l’avatar
@@ -278,6 +279,7 @@ fr:
enable_user_html: "%{name} a activé la connexion de l'utilisateur·rice %{target}"
memorialize_account_html: "%{name} a converti le compte de %{target} en un mémorial"
promote_user_html: "%{name} a promu l'utilisateur·rice %{target}"
+ publish_terms_of_service_html: "%{name} a publié des mises à jour des conditions d'utilisation"
reject_appeal_html: "%{name} a rejeté l'appel de la décision de modération émis par %{target}"
reject_user_html: "%{name} a rejeté l’inscription de %{target}"
remove_avatar_user_html: "%{name} a supprimé l'avatar de %{target}"
@@ -928,6 +930,35 @@ fr:
search: Recherche
title: Hashtags
updated_msg: Paramètres du hashtag mis à jour avec succès
+ terms_of_service:
+ back: Retour aux conditions d'utilisation
+ changelog: Nouveautés
+ create: Utilisez vos propres
+ current: Courant
+ draft: Brouillon
+ generate: Utiliser un modèle
+ generates:
+ action: Générer
+ chance_to_review_html: "Les conditions d'utilisation générées ne seront pas publiées automatiquement. Vous aurez la possibilité de vérifier les résultats. Veuillez remplir les informations nécessaires pour continuer."
+ explanation_html: Le modèle de conditions d'utilisation fourni l'est uniquement à titre informatif et ne doit pas être interprété comme un conseil juridique sur quelque sujet que ce soit. Veuillez consulter votre propre conseiller juridique sur votre situation et les questions juridiques spécifiques que vous vous posez.
+ title: Configuration des Conditions d'Utilisation
+ history: Historique
+ live: En cours d'utilisation
+ no_history: Il n'y a pas encore de modifications enregistrées des conditions d'utilisation.
+ no_terms_of_service_html: Vous n'avez actuellement aucune condition d'utilisation configurée. Les conditions d'utilisation ont pour but de clarifier les droits et obligations de chacun lors de l'utilisation du service et de vous protéger contre d'éventuelles responsabilités en cas de litige avec vos utilisateurs.
+ notified_on_html: Utilisateurs notifiés le `%{date}`
+ notify_users: Notifier les utilisateurs
+ preview:
+ explanation_html: 'L''e-mail sera envoyé aux utilisateurs %{display_count} qui se sont inscrits avant %{date}. Le texte suivant sera inclus dans l''e-mail :'
+ send_preview: Envoyer un aperçu à %{email}
+ send_to_all:
+ one: Envoyer %{display_count} email
+ other: Envoyer %{display_count} emails
+ title: Notification concernant l'aperçu des conditions d'utilisation
+ publish: Publier
+ published_on_html: Publié le %{date}
+ save_draft: Enregistrer le brouillon
+ title: Conditions d'utilisation
title: Administration
trends:
allow: Autoriser
@@ -1159,6 +1190,7 @@ fr:
set_new_password: Définir le nouveau mot de passe
setup:
email_below_hint_html: Consultez votre dossier de courrier indésirable ou demandez-en un autre. Vous pouvez corriger votre adresse e-mail si elle est incorrecte.
+ email_settings_hint_html: Cliquez sur le lien que nous avons envoyé à %{email} pour commencer à utiliser Mastodon. Nous vous attendrons ici.
link_not_received: Vous n'avez pas reçu de lien ?
new_confirmation_instructions_sent: Vous allez recevoir un nouvel e-mail avec le lien de confirmation dans quelques minutes !
title: Vérifiez votre boîte de réception
@@ -1167,6 +1199,7 @@ fr:
title: Se connecter à %{domain}
sign_up:
manual_review: Les inscriptions sur %{domain} passent par une revue manuelle de nos modérateurs. Pour les aider, écrivez un peu plus sur vous et pourquoi vous souhaitez créer un compte sur %{domain}.
+ preamble: Avec un compte sur ce serveur Mastodon, vous pourrez suivre n'importe quelle autre personne du fediverse, quel que soit l'endroit où son compte est hébergé.
title: Mettons les choses en place pour %{domain}.
status:
account_status: État du compte
@@ -1178,6 +1211,7 @@ fr:
view_strikes: Voir les sanctions précédemment appliquées à votre compte
too_fast: Formulaire envoyé trop rapidement, veuillez réessayer.
use_security_key: Utiliser la clé de sécurité
+ user_agreement_html: J'ai lu et j'accepte les conditions d'utilisation et la politique de confidentialité
author_attribution:
example_title: Exemple de texte
hint_html: Vous écrivez des nouvelles ou des articles de blog en dehors de Mastodon ? Contrôlez la façon dont vous êtes crédité lorsqu'ils sont partagés sur Mastodon.
@@ -1839,6 +1873,8 @@ fr:
too_late: Il est trop tard pour faire appel à cette sanction
tags:
does_not_match_previous_name: ne correspond pas au nom précédent
+ terms_of_service:
+ title: Conditions d'utilisation
themes:
contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre)
@@ -1899,6 +1935,15 @@ fr:
further_actions_html: Si ce n’était pas vous, nous vous recommandons de %{action} immédiatement et d’activer l’authentification à deux facteurs afin de garder votre compte sécurisé.
subject: Une nouvelle adresse IP a accédé à votre compte
title: Une nouvelle connexion
+ terms_of_service_changed:
+ agreement: En continuant d'utiliser %{domain}, vous acceptez ces conditions. Si vous n'êtes pas d'accord avec les conditions mises à jour, vous pouvez résilier votre accord avec %{domain} à tout moment en supprimant votre compte.
+ changelog: 'En un coup d''œil, voici ce que cette mise à jour signifie pour vous :'
+ description: 'Vous recevez cet e-mail car nous apportons des modifications à nos conditions d''utilisation sur %{domain}. Nous vous encourageons à consulter l''intégralité des conditions mises à jour ici :'
+ description_html: Vous recevez cet e-mail car nous apportons des modifications à nos conditions d'utilisation sur %{domain}. Nous vous encourageons à consulter l'intégralité des conditions mises à jour ici.
+ sign_off: L'équipe %{domain}
+ subject: Mises à jour de nos conditions d'utilisation
+ subtitle: Les conditions d'utilisation de `%{domain}` changent
+ title: Mise à jour importante
warning:
appeal: Faire appel
appeal_description: Si vous pensez qu'il s'agit d'une erreur, vous pouvez faire appel auprès de l'équipe de %{instance}.
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 5e9d328edc..2809019bf3 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -187,6 +187,7 @@ fy:
create_domain_block: Domeinblokkade oanmeitsje
create_email_domain_block: E-maildomeinblokkade oanmeitsje
create_ip_block: IP-rigel oanmeitsje
+ create_relay: Relay oanmeitsje
create_unavailable_domain: Net beskikber domein oanmeitsje
create_user_role: Rol oanmeitsje
demote_user: Brûker degradearje
@@ -198,18 +199,22 @@ fy:
destroy_email_domain_block: E-maildomeinblokkade fuortsmite
destroy_instance: Domein folslein fuortsmite
destroy_ip_block: IP-rigel fuortsmite
+ destroy_relay: Relay fuortsmite
destroy_status: Toot fuortsmite
destroy_unavailable_domain: Net beskikber domein fuortsmite
destroy_user_role: Rol permanint fuortsmite
disable_2fa_user: Twa-stapsferifikaasje útskeakelje
disable_custom_emoji: Lokale emoji útskeakelje
+ disable_relay: Relay útskeakelje
disable_sign_in_token_auth_user: Ferifikaasje mei in tagongskoade fia e-mail foar de brûker útskeakelje
disable_user: Brûker útskeakelje
enable_custom_emoji: Lokale emoji ynskeakelje
+ enable_relay: Relay ynskeakelje
enable_sign_in_token_auth_user: Ferifikaasje mei in tagongskoade fia e-mail foar de brûker ynskeakelje
enable_user: Brûker ynskeakelje
memorialize_account: De account yn in Yn memoriam wizigje
promote_user: Brûker promovearje
+ publish_terms_of_service: Algemiene gebrûksbetingsten publisearje
reject_appeal: Beswier ôfwize
reject_user: Brûker ôfwize
remove_avatar_user: Profylfoto fuortsmite
@@ -247,6 +252,7 @@ fy:
create_domain_block_html: Domein %{target} is troch %{name} blokkearre
create_email_domain_block_html: "%{name} hat it e-maildomein %{target} blokkearre"
create_ip_block_html: "%{name} hat de rigel foar IP %{target} oanmakke"
+ create_relay_html: "%{name} hat in relay oanmakke %{target}"
create_unavailable_domain_html: "%{name} hat de besoarging foar domein %{target} beëinige"
create_user_role_html: "%{name} hat de rol %{target} oanmakke"
demote_user_html: Brûker %{target} is troch %{name} degradearre
@@ -258,18 +264,22 @@ fy:
destroy_email_domain_block_html: "%{name} hat it e-maildomein %{target} deblokkearre"
destroy_instance_html: "%{name} hat it domein %{target} folslein fuortsmiten"
destroy_ip_block_html: "%{name} hat de rigel foar IP %{target} fuortsmiten"
+ destroy_relay_html: "%{name} hat de relay %{target} fuortsmiten"
destroy_status_html: Berjocht fan %{target} is troch %{name} fuortsmiten
destroy_unavailable_domain_html: "%{name} hat de besoarging foar domein %{target} opnij starte"
destroy_user_role_html: "%{name} hat de rol %{target} fuortsmiten"
disable_2fa_user_html: De fereaske twa-stapsferifikaasje foar %{target} is troch %{name} útskeakele
disable_custom_emoji_html: Emoji %{target} is troch %{name} útskeakele
+ disable_relay_html: "%{name} hat de relay %{target} útskeakele"
disable_sign_in_token_auth_user_html: "%{name} hat ferifikaasje mei in tagongskoade fia e-mail útskeakele foar %{target}"
disable_user_html: Oanmelden foar %{target} is troch %{name} útskeakele
enable_custom_emoji_html: Emoji %{target} is troch %{name} ynskeakele
+ enable_relay_html: "%{name} hat de relay %{target} ynskeakele"
enable_sign_in_token_auth_user_html: "%{name} hat ferifikaasje mei in tagongskoade fia e-mail ynskeakele foar %{target}"
enable_user_html: Oanmelden foar %{target} is troch %{name} ynskeakele
memorialize_account_html: De account %{target} is troch %{name} yn in Yn memoriam wizige
promote_user_html: Brûker %{target} is troch %{name} promovearre
+ publish_terms_of_service_html: "%{name} publisearre updates fan de tsjinstbetingsten"
reject_appeal_html: "%{name} hat it beswier tsjin de moderaasjemaatregel fan %{target} ôfwêzen"
reject_user_html: "%{name} hat de registraasje fan %{target} ôfwêzen"
remove_avatar_user_html: "%{name} hat de profylfoto fan %{target} fuortsmiten"
@@ -818,8 +828,10 @@ fy:
back_to_account: Tebek nei accountside
back_to_report: Tebek nei de rapportaazje
batch:
+ add_to_report: 'Oan rapport #%{id} tafoegje'
remove_from_report: Ut rapportaazje fuortsmite
report: Rapportaazje
+ contents: Ynhâld
deleted: Fuortsmiten
favourites: Favoriten
history: Ferzjeskiednis
@@ -828,12 +840,17 @@ fy:
media:
title: Media
metadata: Metagegevens
+ no_history: Dit berjocht is net bewurke
no_status_selected: Der binne gjin berjochten wizige, omdat der gjin ien selektearre waard
open: Berjocht toane
original_status: Oarspronklik berjocht
reblogs: Boosts
+ replied_to_html: Antwurde op %{acct_link}
status_changed: Berjocht wizige
+ status_title: Berjocht fan @%{name}
+ title: Accountberjochten - @%{name}
trending: Trending
+ view_publicly: Yn it iepenbier besjen
visibility: Sichtberheid
with_media: Mei media
strikes:
@@ -910,6 +927,35 @@ fy:
search: Sykje
title: Hashtags
updated_msg: Hashtagynstellingen mei sukses bywurke
+ terms_of_service:
+ back: Tebek nei de gebrûksbetingsten
+ changelog: Wat is wizige
+ create: Brûk jo eigen
+ current: Aktuele
+ draft: Konsept
+ generate: Sjabloan brûke
+ generates:
+ action: Generearje
+ chance_to_review_html: "De generearre gebrûksbetingsten wurde net automatysk publisearre. Jo krije gelegenheid om de resultaten te besjen. Folje de nedige gegevens yn om troch te gean."
+ explanation_html: It sjabloan foar de gebrûksbetingsten is útslutend bedoeld foar ynformative doeleinen en mei net opfette wurde as juridysk advys oer hokker ûnderwerp dan ek. Freegje in eigen juridysk adviseur oer jo situaasje en foar spesifike juridyske fragen.
+ title: Gebrûksbetingsten ynstelle
+ history: Skiednis
+ live: Aktueel
+ no_history: Der binne noch gjin bewarre wizigingen fan de gebrûksbetingsten.
+ no_terms_of_service_html: Jo hawwe op dit stuit gjin servicebetingsten konfigurearre. De gebrûksbetingsten binne bedoeld om dúdlikheid te ferskaffen en jo te beskermjen tsjin mooglike ferplichtingen yn konflikten mei brûkers.
+ notified_on_html: Brûkers ynljochte op %{date}
+ notify_users: Brûkers ynformearje
+ preview:
+ explanation_html: 'It e-mailberjocht wurdt ferstjoerd nei %{display_count} brûkers dy’t harren oanmeld hawwe foar %{date}. De folgjende tekst sil yn it e-mailberjocht opnommen wurde:'
+ send_preview: Foarbyld ferstjoere nei %{email}
+ send_to_all:
+ one: "%{display_count} e-mailberjocht ferstjoere"
+ other: "%{display_count} e-mailberjochten ferstjoere"
+ title: Foarbyld fan Melding gebrûksbetingsten
+ publish: Publisearje
+ published_on_html: Publisearre op %{date}
+ save_draft: Konsept bewarje
+ title: Gebrûksbetingsten
title: Behear
trends:
allow: Tastean
@@ -1141,6 +1187,7 @@ fy:
set_new_password: Nij wachtwurd ynstelle
setup:
email_below_hint_html: Kontrolearje jo map Net-winske, of freegje in nije befêstigingskeppeling oan. Jo kinne jo e-mailadres wizigje as it ferkeard is.
+ email_settings_hint_html: Klik op de keppeling dy’t wy nei %{email} stjoerd hawwe om Mastodon te brûken. Wy wachtsje hjir ôf.
link_not_received: Gjin keppeling krigen?
new_confirmation_instructions_sent: Jo ûntfange binnen inkelde minuten in nij e-mailberjocht mei de befêstigingskeppeling!
title: Kontrolearje jo Postfek YN
@@ -1149,6 +1196,7 @@ fy:
title: Oanmelde op %{domain}
sign_up:
manual_review: Ynskriuwingen op %{domain} wurde hânmjittich troch de moderator beoardiele. Skriuw wat oer josels en wêrom jo in account wolle op %{domain} om ús te helpen jo registraasje te ferwurkjen.
+ preamble: Mei in account op dizze Mastodon-server kinne jo elkenien folgje op de fediverse, nettsjinsteande wêr’t dizze persoan in account hat.
title: Litte wy jo account op %{domain} ynstelle.
status:
account_status: Accountsteat
@@ -1160,6 +1208,7 @@ fy:
view_strikes: Besjoch de earder troch moderatoaren fêststelde skeiningen dy’t jo makke hawwe
too_fast: Formulier is te fluch yntsjinne. Probearje it nochris.
use_security_key: Befeiligingskaai brûke
+ user_agreement_html: Ik haw de gebrûksbetingsten en it privacybelied lêzen en gean der mei akkoard
author_attribution:
example_title: Faorbyldtekst
hint_html: Skriuwe jo nijs- of blogartikelen bûten Mastodon? Bepaal hoe’t jo oahelle wurde as dizze dield wurde op Mastodon.
@@ -1658,6 +1707,7 @@ fy:
scheduled_statuses:
over_daily_limit: Jo binne oer de limyt fan %{limit} yn te plannen berjochten foar hjoed
over_total_limit: Jo binne oer de limyt fan %{limit} yn te plannen berjochten
+ too_soon: datum moat yn de takomst lizze
self_destruct:
lead_html: Spitigernôch sil %{domain} permanint ôfslute. As jo dêr in account hiene, kinne jo dizze net mear brûke, mar jo kinne noch hieltyd in reservekopy fan jo gegevens opfreegje.
title: Deze server sil ôfslute
@@ -1820,6 +1870,8 @@ fy:
too_late: De perioade dat jo beswier meitsje kinne tsjin dizze skeining is ferrûn
tags:
does_not_match_previous_name: komt net oerien mei de foarige namme
+ terms_of_service:
+ title: Gebrûksbetingsten
themes:
contrast: Mastodon (heech kontrast)
default: Mastodon (donker)
@@ -1880,6 +1932,15 @@ fy:
further_actions_html: Wannear’t jo dit net wiene, advisearje wy om daliks %{action} en om twa-stapsferifikaasje yn te skeakeljen, om sa jo account feilich te hâlden.
subject: Jo account is fan in nij IP-adres ôf benadere
title: In nije registraasje
+ terms_of_service_changed:
+ agreement: Troch %{domain} brûke te bliuwen, geane jo akkoard mei dizze betingsten. As jo it net iens binne mei de bywurke betingsten, kinne jo jo oerienkomst mei %{domain} op elk winske momint beëinigje troch jo account fuort te smiten.
+ changelog: 'Yn ien eachopslach betsjut dizze update foar jo:'
+ description: 'Jo ûntfange dit berjocht, omdat wy inkelde wizigingen oanbringe yn ús gebrûksbetingsten by %{domain}. Wy riede jo oan om de bywurke betingsten hjir folslein te besjen:'
+ description_html: Jo ûntfange dit berjocht, omdat wy inkelde wizigingen oanbringe yn ús gebrûksbetingsten by %{domain}. Wy riede jo oan om de bywurke betingsten hjir folslein te besjen.
+ sign_off: It %{domain}-team
+ subject: Aktualisaasje fan ús tsjinstbetingsten
+ subtitle: De gebrûksbetingsten fan %{domain} wizigje
+ title: Wichtige update
warning:
appeal: Beswier yntsjinje
appeal_description: Wannear’t jo tinke dat dit in flater is, kinne jo in beswier yntsjinje by de meiwurkers fan %{instance}.
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index c1de161be1..9530901f02 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -214,6 +214,7 @@ gl:
enable_user: Activar usuaria
memorialize_account: Transformar en conta conmemorativa
promote_user: Promover usuaria
+ publish_terms_of_service: Publicar os Termos do Servizo
reject_appeal: Rexeitar apelación
reject_user: Rexeitar Usuaria
remove_avatar_user: Eliminar avatar
@@ -278,6 +279,7 @@ gl:
enable_user_html: "%{name} activou as credenciais para a usuaria %{target}"
memorialize_account_html: "%{name} convertiu a conta de %{target} nunha páxina para o recordo"
promote_user_html: "%{name} promocionou a usuaria %{target}"
+ publish_terms_of_service_html: "%{name} actualizou os termos do servizo"
reject_appeal_html: "%{name} rexeitou a apelación da decisión da moderación de %{target}"
reject_user_html: "%{name} rexeitou o rexistro de %{target}"
remove_avatar_user_html: "%{name} eliminou o avatar de %{target}"
@@ -925,6 +927,35 @@ gl:
search: Buscar
title: Cancelos
updated_msg: Actualizaronse os axustes dos cancelos
+ terms_of_service:
+ back: Volver aos termos do servizo
+ changelog: Que cambios se fixeron
+ create: Usa os teus propios
+ current: Actuais
+ draft: Borrador
+ generate: Usar un modelo
+ generates:
+ action: Crear
+ chance_to_review_html: "Vanse publicar automaticamente os termos do servizo creados. Terás a oportunidade de revisar o resultado. Por favor completa os detalles precisos para continuar."
+ explanation_html: O modelo dos termos do servizo proporcionados é soamente informativo, e en ningún caso constitúe un consello legal. Por favor realiza unha consulta legal sobre a túa situación concreta e posibles cuestións legais que debas afrontar.
+ title: Configurar os Termos do Servizo
+ history: Historial
+ live: Actuais
+ no_history: Non hai rexistrados cambios nos termos do servizo.
+ no_terms_of_service_html: Actualmente non tes configurados ningúns termos do servizo. Os Termos do servizo están pensados para dar claridade e protexerte de responsabilidades potenciais nas disputas coas túas usuarias.
+ notified_on_html: Informouse ás usuarias o %{date}
+ notify_users: Informar ás usuarias
+ preview:
+ explanation_html: 'Vaise enviar un correo a %{display_count} usuarias que crearon a conta antes do %{date}. Incluirase o seguinte texto no correo:'
+ send_preview: Enviar vista previa a %{email}
+ send_to_all:
+ one: Enviar %{display_count} correo
+ other: Enviar %{display_count} correos
+ title: Vista previa da notificación sobre os termos do servizo
+ publish: Publicar
+ published_on_html: Publicados o %{date}
+ save_draft: Gardar borrador
+ title: Termos do Servizo
title: Administración
trends:
allow: Permitir
@@ -1156,6 +1187,7 @@ gl:
set_new_password: Estabelecer novo contrasinal
setup:
email_below_hint_html: Mira no cartafol do spam, ou solicita outra. Podes cambiar o enderzo de correo se non é correcto.
+ email_settings_hint_html: Preme na ligazón que enviamos a %{email} para comezar a usar Mastodon. Agardámoste.
link_not_received: Non recibiches a ligazón?
new_confirmation_instructions_sent: Nuns minutos recibirás un novo correo electrónico coa ligazón de confirmación!
title: Mira a caixa de entrada
@@ -1164,6 +1196,7 @@ gl:
title: Accede a %{domain}
sign_up:
manual_review: As novas contas en %{domain} son comprobadas manualmente pola moderación. Para axudarnos a xestionar o teu rexistro, escribe algo acerca de ti e por que queres unha conta en %{domain}.
+ preamble: Cunha conta neste servidor Mastodon poderás seguir a calquera outra persoa no fediverso, independentemente de onde estivese hospedada esa conta.
title: Imos crear a túa conta en %{domain}.
status:
account_status: Estado da conta
@@ -1175,6 +1208,7 @@ gl:
view_strikes: Ver avisos anteriores respecto da túa conta
too_fast: Formulario enviado demasiado rápido, inténtao outra vez.
use_security_key: Usa chave de seguridade
+ user_agreement_html: Lin e acepto os termos do servizo e a política de privacidade
author_attribution:
example_title: Texto de mostra
hint_html: Escribes novas ou artigos nun blog alleos a Mastodon? Xestiona o xeito en que podes dar crédito da túa autoría cando os compartes en Mastodon.
@@ -1836,6 +1870,8 @@ gl:
too_late: É demasiado tarde para recurrir este aviso
tags:
does_not_match_previous_name: non concorda co nome anterior
+ terms_of_service:
+ title: Termos do Servizo
themes:
contrast: Mastodon (Alto contraste)
default: Mastodon (Escuro)
@@ -1896,6 +1932,15 @@ gl:
further_actions_html: Se non foches ti, aconsellámosche %{action} inmediatamente e activar o segundo factor de autenticación para manter conta segura.
subject: Accedeuse á túa conta desde novos enderezos IP
title: Novo acceso
+ terms_of_service_changed:
+ agreement: Se continúas a usar %{domain} aceptas estas condicións. Se non aceptas as condicións actualizadas podería rematar o acordo con %{domain} en calquera momento e eliminarse a túa conta.
+ changelog: 'Dunha ollada, aquí tes o que implican os cambios para ti:'
+ description: 'Recibes este correo porque fixemos cambios nos termos do servizo de %{domain}. Recomendámosche que leas as condicións actualizadas ao completo aquí:'
+ description_html: Recibes este correo porque fixemos cambios nos termos do servizo de %{domain}. Recomendámosche que leas as condicións actualizadas ao completo aquí.
+ sign_off: O equipo de %{domain}
+ subject: Actualización dos nosos termos do servizo
+ subtitle: Cambiaron os termos do servizo de %{domain}
+ title: Notificación importante
warning:
appeal: Enviar unha apelación
appeal_description: Se cres que esto é un erro, podes enviar un recurso á administración de %{instance}.
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 0ec1cd4620..eea4c63179 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -220,6 +220,7 @@ he:
enable_user: אפשור משתמש
memorialize_account: הנצחת חשבון
promote_user: קידום משתמש
+ publish_terms_of_service: פרסום תנאי השירות
reject_appeal: דחיית ערעור
reject_user: דחיית משתמש
remove_avatar_user: הסרת תמונת פרופיל
@@ -284,6 +285,7 @@ he:
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}"
@@ -953,6 +955,37 @@ he:
search: חיפוש
title: תגיות
updated_msg: הגדרות תגיות עודכנו בהצלחה
+ terms_of_service:
+ back: חזרה אל תנאי השירות
+ changelog: מה נשתנה
+ create: הבאתי מהבית
+ current: גרסא נוכחית
+ draft: טיוטה
+ generate: שימוש בתבנית
+ generates:
+ action: לחולל
+ chance_to_review_html: "תנאי השירות שחוללו עצמונית לא יפורסמו אוטומטית. תהיה לך הזדמנות לעבור על התוצאה. יש למלא את הפרטים הבאים כדי להמשיך."
+ explanation_html: תבנית תנאי השירות סופקה לצרכי יידוע בלבד, ואין לראות בהם עצה חוקית על אף נושא. אנא התייעצו בעצמבם עם פרקליט לגבי מצבכם הייחודי ושאלות ספציפיות שעלולות להיות לכם.
+ title: הקמת מסמך תנאי השירות
+ 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:
+ many: שליחת %{display_count} הודעות דואל
+ one: שליחת הודעת דואל
+ other: שליחת %{display_count} הודעות דואל
+ two: שליחת שתי הודעות דואל
+ title: צפייה מוקדמת בתנאי השירות
+ publish: לפרסם
+ published_on_html: פורסם ביום %{date}
+ save_draft: שמירת טיוטה
+ title: תנאי השירות
title: ניהול
trends:
allow: לאפשר
@@ -1192,6 +1225,7 @@ he:
set_new_password: סיסמה חדשה
setup:
email_below_hint_html: אנא בדקו בתיקיית הספאם, או בקשו קוד חדש. ניתן לתקן את הכתובת אם נפלה תקלדה.
+ email_settings_hint_html: יש ללחוץ על הקישורית ששלחנו אל %{email} כדי להתחיל להשתמש במסטודון. נמתין לך כאן.
link_not_received: לא קיבלת קישור?
new_confirmation_instructions_sent: אתם עומדים לקבל הודעת דואל חדשה עם קיש/ור אימות בדקות הקרובות!
title: בדוק/בדקי את תיבת הדואר הנכנס שלך
@@ -1200,6 +1234,7 @@ he:
title: התחבר אל %{domain}
sign_up:
manual_review: פתיחת חשבון אצל %{domain} עוברת בדיקה ידנית על ידי הצוות שלנו. כדי לסייע בתהליך הרישום שלכןם, כתבו לנו על עצמכןם ולמה אתןם רוצותים חשבון בשרת %{domain}.
+ preamble: בעזרת חשבון על שרת מסטודון זה, ניתן לעקוב אחרי כל אדם בפידרציה, ולא משנה באיזה שרת נמצא החשבון שלהם.
title: הבה ניצור לך חשבון בשרת %{domain}.
status:
account_status: מצב חשבון
@@ -1211,6 +1246,7 @@ he:
view_strikes: צפיה בעברות קודמות שנרשמו נגד חשבונך
too_fast: הטופס הוגש מהר מדי, נסה/י שוב.
use_security_key: שימוש במפתח אבטחה
+ user_agreement_html: קראתי וזו הסכמתי למסמך תנאי השירות ומדיניות הפרטיות
author_attribution:
example_title: טקסט לדוגמה
hint_html: האם יש לך בלוג או טור חדשות שמתפרסם מחוץ למסטודון? ניתן לשלוט איך יוצג הקרדיט שלך כשמשתפים את הלינק במסטודון.
@@ -1920,6 +1956,8 @@ he:
too_late: מאוחר מדי להגיש ערעור
tags:
does_not_match_previous_name: לא תואם את השם האחרון
+ terms_of_service:
+ title: תנאי השירות
themes:
contrast: מסטודון (ניגודיות גבוהה)
default: מסטודון (כהה)
@@ -1980,6 +2018,15 @@ he:
further_actions_html: אם לא את/ה התחברת, אנו ממליצים שתבצע/י %{action} מיידית ותאפשר/י אימות דו גורמי על מנת לשמור על החשבון בטוח.
subject: נרשמה גישה לחשבונך מכתובת IP חדשה
title: התחברות חדשה
+ terms_of_service_changed:
+ agreement: עם המשך השימוש בשרת %{domain} אתן מסכימות לתנאים הללו. אם אינכם מסכימים עם עדכוני תנאי השירות, אתן יכולות להפסיק את ההסכם עם %{domain} בכל עת על ידי מחיקת החשבון.
+ changelog: 'בקצרה, הנה משמעות העדכון עבורך:'
+ description: 'קיבלת הודעת דואל זו כיוון שאנו מבצעים שינויים במסמך תנאי השירות של %{domain}. אנו מעודדים אותך לעבור על השינויים במסמך המלא כאן:'
+ description_html: 'קיבלת הודעת דואל זו כיוון שאנו מבצעים שינויים במסמך תנאי השירות של %{domain}. אנו מעודדים אותך לעבור על השינויים במסמך המלא כאן:'
+ sign_off: צוות %{domain}
+ subject: עדכונים לתנאי השירות שלנו
+ subtitle: מסמך תנאי השירות של %{domain} עוברים שינויים
+ title: עדכון חשוב
warning:
appeal: הגשת ערעור
appeal_description: אם את/ה מאמין/ה שזו טעות, ניתן להגיש ערעור לצוות של %{instance}.
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index bc298e7559..0db1bf0b98 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -214,6 +214,7 @@ hu:
enable_user: Felhasználó engedélyezése
memorialize_account: Fiók emlékké nyilvánítása
promote_user: Felhasználó előléptetése
+ publish_terms_of_service: Felhasználási feltételek közzététele
reject_appeal: Fellebbezés elutasítása
reject_user: Felhasználó Elutasítása
remove_avatar_user: Profilkép eltávolítása
@@ -278,6 +279,7 @@ hu:
enable_user_html: "%{name} engedélyezte %{target} felhasználó bejelentkezését"
memorialize_account_html: "%{name} emléket állított %{target} felhasználónak"
promote_user_html: "%{name} előléptette %{target} felhasználót"
+ publish_terms_of_service_html: "%{name} frissítette a felhasználási feltételeket"
reject_appeal_html: "%{name} visszautasított egy fellebbezést %{target} moderátori döntéséről"
reject_user_html: "%{name} elutasította %{target} regisztrációját"
remove_avatar_user_html: "%{name} törölte %{target} profilképét"
@@ -925,6 +927,35 @@ hu:
search: Keresés
title: Hashtagek
updated_msg: A hashtag beállításokat sikeresen frissítettük
+ terms_of_service:
+ back: Vissza a felhasználási feltételekhez
+ changelog: Mi változott
+ create: Saját használata
+ current: Jelenlegi
+ draft: Piszkozat
+ generate: Sablon használata
+ generates:
+ action: Előállítás
+ chance_to_review_html: "Az előállított felhasználási feltételek nem lesznek automatikusan közzétéve. Előtte áttekintheted az eredményt. A folytatáshoz töltsd ki a szükséges részleteket."
+ explanation_html: A felhasználási feltételek sablonja csak információs célokat szolgál, és semmilyen témában nem tekinthető jogi tanácsadásnak. Konzultálj a saját jogi tanácsadóddal a helyzetedről és a felmerülő konkrét jogi kérdésekről.
+ title: Felhasználási feltételek beállítása
+ history: Előzmények
+ live: Élő
+ no_history: Még nincsenek változtatások a szolgáltatási feltételekben.
+ no_terms_of_service_html: Még nincsenek felhasználási feltételek beállítva. A felhasználási feltételek célja, hogy egyértelműsítsen, és megvédjen a felelősségvállalásoktól a felhasználókkal szembeni lehetséges viták során.
+ notified_on_html: 'Felhasználók értesítve: %{date}'
+ notify_users: Felhasználók értesítése
+ preview:
+ explanation_html: 'Az e-mail %{display_count} felhasználónak lesz elküldve (akik %{date} előtt regisztráltak). A következő szöveg fog szerepelni a levélben:'
+ send_preview: 'Előnézet elküldése ide: %{email}'
+ send_to_all:
+ one: "%{display_count} e-mail elküldése"
+ other: "%{display_count} e-mail elküldése"
+ title: Felhasználási feltételek értesítésének előnézete
+ publish: Közzététel
+ published_on_html: 'Közzétéve: %{date}'
+ save_draft: Piszkozat mentése
+ title: Felhasználási feltételek
title: Karbantartás
trends:
allow: Engedélyezés
@@ -1156,6 +1187,7 @@ hu:
set_new_password: Új jelszó beállítása
setup:
email_below_hint_html: Nézd meg a levélszemét mappát, vagy kérj egy újat. Módosíthatod az e-mail-címet, ha az hibás.
+ email_settings_hint_html: A Mastodon használatának megkezdéséhez kattints a(z) %{email} címre küldött hivatkozásra. Itt fogunk várni.
link_not_received: Nem kaptad meg a hivatkozást?
new_confirmation_instructions_sent: Néhány perc múlva új e-mailt fogsz kapni a megerősítési hivatkozással.
title: Bejövő postaláda ellenőrzése
@@ -1164,6 +1196,7 @@ hu:
title: 'Bejelentkezés ide: %{domain}'
sign_up:
manual_review: A(z) %{domain} regisztrációi a moderátorok kézi felülvizsgálatán mennek át. Hogy segítsd a regisztráció feldolgozását, írj röviden magadról, és hogy miért szeretnél fiókot a(z) %{domain} oldalon.
+ preamble: Egy fiókkal ezen a Mastodon kiszolgálón követhetsz bárkit a födiverzumban, függetlenül attól, hogy az illető fiókja melyik kiszolgálón található.
title: Állítsuk be a fiókod a %{domain} kiszolgálón.
status:
account_status: Fiók állapota
@@ -1175,6 +1208,7 @@ hu:
view_strikes: Fiókod ellen felrótt korábbi vétségek megtekintése
too_fast: Túl gyorsan küldted el az űrlapot, próbáld később.
use_security_key: Biztonsági kulcs használata
+ user_agreement_html: Elolvastam és egyetértek a felhasználási feltételekkel és az adatvédelmi nyilatkozattal
author_attribution:
example_title: Mintaszöveg
hint_html: Mastodonon kívül írsz híreket vagy blogbejegyzéseket? Szabályozd, hogyan tüntethetnek fel szerzőként, amikor Mastodonon osztják meg őket.
@@ -1836,6 +1870,8 @@ hu:
too_late: Túl késő, hogy fellebbezd ezt a felrótt vétséget
tags:
does_not_match_previous_name: nem illeszkedik az előző névvel
+ terms_of_service:
+ title: Felhasználási feltételek
themes:
contrast: Mastodon (nagy kontrasztú)
default: Mastodon (sötét)
@@ -1896,6 +1932,13 @@ hu:
further_actions_html: Ha nem te voltál, akkor azt javasoljuk, hogy azonnal %{action} és engedélyezd a kétlépcsős hitelesítést, hogy biztonságban tudd a fiókodat.
subject: A fiókodat egy új IP-címről érték el
title: Új bejelentkezés
+ terms_of_service_changed:
+ agreement: A(z) %{domain} használatának folytatásával beleegyezel ezekbe a feltételekbe. Ha nem értesz egyet a frissített feltételekkel, akkor a fiókod törlésével megszakíthatod a(z) %{domain} weboldallal való megállapodásodat.
+ changelog: 'Dióhéjban ez a frissítés ezt jelenti számodra:'
+ sign_off: A(z) %{domain} csapata
+ subject: A felhasználási feltételei frissítései
+ subtitle: A(z) %{domain} felhasználási feltételei megváltoznak
+ title: Fontos frissítés
warning:
appeal: Fellebbezés beküldése
appeal_description: Ha azt gondolod, hogy ez hibás, beküldhetsz egy fellebbezést a(z) %{instance} szerver csapatának.
diff --git a/config/locales/is.yml b/config/locales/is.yml
index d0d0ac5914..ddb38b61af 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -214,6 +214,7 @@ is:
enable_user: Virkja notanda
memorialize_account: Gera aðgang að minningargrein
promote_user: Hækka notanda í tign
+ publish_terms_of_service: Birta þjónustuskilmála
reject_appeal: Hafna áfrýjun
reject_user: Hafna notanda
remove_avatar_user: Fjarlægja auðkennismynd
@@ -278,6 +279,7 @@ is:
enable_user_html: "%{name} gerði innskráningu virka fyrir notandann %{target}"
memorialize_account_html: "%{name} breytti notandaaðgangnum %{target} í minningargreinarsíðu"
promote_user_html: "%{name} hækkaði notandann %{target} í tign"
+ publish_terms_of_service_html: "%{name} gaf út uppfærða þjónustuskilmála"
reject_appeal_html: "%{name} hafnaði áfrýjun á ákvörðun umsjónarmanns frá %{target}"
reject_user_html: "%{name} hafnaði nýskráningu frá %{target}"
remove_avatar_user_html: "%{name} fjarlægði auðkennismynd af %{target}"
@@ -927,6 +929,30 @@ is:
search: Leita
title: Myllumerki
updated_msg: Það tókst að uppfæra stillingar myllumerkja
+ terms_of_service:
+ back: Til baka í þjónustuskilmála
+ changelog: Hvað breyttist
+ create: Notaðu þína eigin
+ current: Núverandi
+ draft: Drög
+ generate: Nota sniðmát
+ generates:
+ action: Útbúa
+ title: Uppsetning þjónustuskilmála
+ history: Ferill
+ live: Í beinni
+ notified_on_html: Notendur látnir vita þann %{date}
+ notify_users: Láta notendur vita
+ preview:
+ send_preview: Senda forskoðun til %{email}
+ send_to_all:
+ one: Senda %{display_count} tölvupóst
+ other: Senda %{display_count} tölvupósta
+ title: Forskoða tilkynningu um breytingar á þjónustuskilmálum
+ publish: Birta
+ published_on_html: Gefið út þann %{date}
+ save_draft: Vista drög
+ title: Þjónustuskilmálar
title: Stjórnendur
trends:
allow: Leyfa
@@ -1160,6 +1186,7 @@ is:
set_new_password: Stilla nýtt lykilorð
setup:
email_below_hint_html: Skoðaðu ruslpóstmöppuna þína, eða biddu um annan póst. Þú getur leiðrétt tölvupóstfangið þitt ef þörf er á.
+ email_settings_hint_html: Smelltu á tengilinn sem við sendum á %{email} til að byrja að nota Mastodon. Við bíðum hér á meðan.
link_not_received: Fékkstu ekki neinn tengil?
new_confirmation_instructions_sent: Þú munt fá nýjan tölvupóst með staðfestingartengli innan skamms!
title: Athugaðu pósthólfið þitt
@@ -1168,6 +1195,7 @@ is:
title: Skrá inn á %{domain}
sign_up:
manual_review: Nýskráningar á %{domain} fara í gegnum handvirka yfirferð hjá umsjónarfólkinu okkar. Til að flýta fyrir skráningarferlinu, ættirðu að skrifa smávegis um þig og ástæður þess að þú viljir skrá þig á %{domain}.
+ preamble: Með notandaaðgangi á þessum Mastodon-þjóni geturðu fylgst með hverjum sem er á sambandsnetinu, sama hvar notandaaðgangurinn þeirra er hýstur.
title: Förum núna að setja þig upp á %{domain}.
status:
account_status: Staða notandaaðgangs
@@ -1179,6 +1207,7 @@ is:
view_strikes: Skoða fyrri bönn notandaaðgangsins þíns
too_fast: Innfyllingarform sent inn of hratt, prófaðu aftur.
use_security_key: Nota öryggislykil
+ user_agreement_html: Ég hef lesið og samþykkt þjónustuskilmálana og stefnuna um persónuvernd
author_attribution:
example_title: Sýnitexti
hint_html: Ertu að skrifa fréttir eða bloggfærslur utan Mastodon? Stýrðu því hvernig vitnað er í þig þegar þeim er deilt á Mastodon.
@@ -1840,6 +1869,8 @@ is:
too_late: Það er orðið of sint að áfrýja þessari refsingu
tags:
does_not_match_previous_name: samsvarar ekki fyrra nafni
+ terms_of_service:
+ title: Þjónustuskilmálar
themes:
contrast: Mastodon (mikil birtuskil)
default: Mastodon (dökkt)
@@ -1900,6 +1931,11 @@ is:
further_actions_html: Ef þetta varst ekki þú, þá mælum við með að þú %{action} strax og virkjir tveggja-þátta auðkenningu til að halda aðgangnum þínum öruggum.
subject: Skráð hefur verið inn á aðganginn þinn frá nýju IP-vistfangi
title: Ný innskráning
+ terms_of_service_changed:
+ sign_off: "%{domain}-teymið"
+ subject: Breytingar á þjónustuskilmálum okkar
+ subtitle: Þjónustuskilmálar eru að breytast á %{domain}
+ title: Mikilvæg uppfærsla
warning:
appeal: Senda inn áfrýjun
appeal_description: Ef þú álítur að um mistök sé að ræða, geturðu sent áfrýjun til umsjónarmanna %{instance}.
diff --git a/config/locales/it.yml b/config/locales/it.yml
index a062abc202..a561079f3a 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -214,6 +214,7 @@ it:
enable_user: Abilita l'Utente
memorialize_account: Commemora Profilo
promote_user: Promuovi Utente
+ publish_terms_of_service: Pubblicare i Termini di Servizio
reject_appeal: Rifiuta Ricorso
reject_user: Rifiuta Utente
remove_avatar_user: Rimuovi Avatar
@@ -278,6 +279,7 @@ it:
enable_user_html: "%{name} ha abilitato l'accesso per l'utente %{target}"
memorialize_account_html: "%{name} ha trasformato il profilo di %{target} in una pagina commemorativa"
promote_user_html: "%{name} ha promosso l'utente %{target}"
+ publish_terms_of_service_html: "%{name} ha pubblicato aggiornamenti ai termini di servizio"
reject_appeal_html: "%{name} ha rifiutato il ricorso alla decisione di moderazione da %{target}"
reject_user_html: "%{name} ha rifiutato l'iscrizione da %{target}"
remove_avatar_user_html: "%{name} ha rimosso l'avatar di %{target}"
@@ -925,6 +927,35 @@ it:
search: Cerca
title: Hashtag
updated_msg: Impostazioni hashtag aggiornate con successo
+ terms_of_service:
+ back: Torna ai termini di servizio
+ changelog: Cosa è cambiato
+ create: Usa i tuoi
+ current: Attuale
+ draft: Bozza
+ generate: Usa il modello
+ generates:
+ action: Genera
+ chance_to_review_html: "I termini di servizio generati non verranno pubblicati automaticamente. Avrai la possibilità di esaminare i risultati. Si prega di inserire i dettagli necessari per procedere."
+ explanation_html: Il modello di termini di servizio fornito è solo a scopo informativo e non deve essere interpretato come consulenza legale su alcun argomento. Si prega di consultare il proprio consulente legale, in merito alla propria situazione e alle specifiche questioni legali che si hanno.
+ title: Impostazione dei Termini di Servizio
+ history: Cronologia
+ live: In uso
+ no_history: Non sono ancora state registrate modifiche ai termini di servizio.
+ no_terms_of_service_html: Al momento non hai configurato alcun termine di servizio. I termini di servizio sono pensati per fornire chiarezza e proteggerti da potenziali responsabilità in caso di controversie con i tuoi utenti.
+ notified_on_html: 'Utenti notificati in data: %{date}'
+ notify_users: Notifica gli utenti
+ preview:
+ explanation_html: 'L''email verrà inviata a %{display_count} utenti che si sono registrati prima del giorno %{date}. Il seguente testo sarà incluso nell''email:'
+ send_preview: Invia l'anteprima a %{email}
+ send_to_all:
+ one: Invia %{display_count} email
+ other: Invia %{display_count} email
+ title: Anteprima della notifica dei termini di servizio
+ publish: Pubblica
+ published_on_html: 'Pubblicati in data: %{date}'
+ save_draft: Salva la bozza
+ title: Termini di Servizio
title: Amministrazione
trends:
allow: Consenti
@@ -1179,6 +1210,7 @@ it:
view_strikes: Visualizza le sanzioni precedenti prese nei confronti del tuo account
too_fast: Modulo inviato troppo velocemente, riprova.
use_security_key: Usa la chiave di sicurezza
+ user_agreement_html: Ho letto e accetto i termini di servizio e l'informativa sulla privacy
author_attribution:
example_title: Testo di esempio
hint_html: Stai scrivendo notizie o articoli di blog al di fuori di Mastodon? Controlla come vieni accreditato quando vengono condivisi su Mastodon.
@@ -1840,6 +1872,8 @@ it:
too_late: È troppo tardi per fare appello contro questa sanzione
tags:
does_not_match_previous_name: non corrisponde al nome precedente
+ terms_of_service:
+ title: Termini di Servizio
themes:
contrast: Mastodon (contrasto elevato)
default: Mastodon (scuro)
@@ -1900,6 +1934,15 @@ it:
further_actions_html: Se non eri tu, ti consigliamo di %{action} subito e di abilitare l'autenticazione a due fattori per mantenere il tuo account al sicuro.
subject: C'è stato un accesso al tuo account da un nuovo indirizzo IP
title: Un nuovo accesso
+ terms_of_service_changed:
+ agreement: Continuando a usare %{domain}, accetti questi termini. Se non sei d'accordo con i termini aggiornati, puoi terminare il tuo accordo con %{domain} in qualsiasi momento eliminando il tuo account.
+ changelog: 'Ecco, in sintesi, cosa significa per te questo aggiornamento:'
+ description: 'Stai ricevendo questa e-mail perché stiamo apportando alcune modifiche ai nostri termini di servizio su %{domain}. Ti invitiamo a leggere i termini aggiornati per intero qui:'
+ description_html: Stai ricevendo questa e-mail perché stiamo apportando alcune modifiche ai nostri termini di servizio su %{domain}. Ti invitiamo a leggere i termini aggiornati per intero qui.
+ sign_off: Il team di %{domain}
+ subject: Aggiornamenti ai nostri termini di servizio
+ subtitle: I termini di servizio di %{domain} stanno cambiando
+ title: Aggiornamento importante
warning:
appeal: Presenta un appello
appeal_description: Se credi che si tratti di un errore, puoi presentare un appello allo staff di %{instance}.
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 692d3638ef..9f248795fe 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -913,6 +913,20 @@ ko:
search: 검색
title: 해시태그
updated_msg: 해시태그 설정이 성공적으로 갱신되었습니다
+ terms_of_service:
+ back: 이용약관으로 돌아가기
+ changelog: 변경사항
+ current: 현재
+ draft: 초안
+ generate: 템플릿 사용
+ generates:
+ action: 생성
+ history: 역사
+ live: 활성
+ notify_users: 사용자들에게 알리기
+ publish: 게시
+ published_on_html: "%{date}에 게시됨"
+ save_draft: 초안 저장
title: 관리
trends:
allow: 허용
@@ -1140,6 +1154,7 @@ ko:
set_new_password: 새 암호 설정
setup:
email_below_hint_html: 스팸 폴더를 체크해보거나, 새로 요청할 수 있습니다. 이메일을 잘못 입력한 경우 수정할 수 있습니다.
+ email_settings_hint_html: "%{email}로 보낸 링크를 클릭해 마스토돈을 시작하세요. 기다리고 있겠습니다."
link_not_received: 링크를 못 받으셨나요?
new_confirmation_instructions_sent: 확인 링크가 담긴 이메일이 몇 분 안에 도착할것입니다!
title: 수신함 확인하기
@@ -1148,6 +1163,7 @@ ko:
title: "%{domain}에 로그인"
sign_up:
manual_review: "%{domain} 가입은 중재자들의 심사를 거쳐 진행됩니다. 가입 절차를 원활하게 하기 위해, 간단한 자기소개와 왜 %{domain}에 계정을 만들려고 하는지 적어주세요."
+ preamble: 이 마스토돈 서버의 계정을 통해, 연합우주에 속한 다른 사람들을, 그들이 어떤 서버에 있든 팔로우 할 수 있습니다.
title: "%{domain}에 가입하기 위한 정보들을 입력하세요."
status:
account_status: 계정 상태
@@ -1796,6 +1812,8 @@ ko:
too_late: 이의를 제기하기에 너무 늦었습니다
tags:
does_not_match_previous_name: 이전 이름과 맞지 않습니다
+ terms_of_service:
+ title: 이용 약관
themes:
contrast: 마스토돈 (고대비)
default: 마스토돈 (어두움)
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 7c8bb6898a..dbca48dd37 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -208,6 +208,7 @@ lt:
enable_user: Įjungti naudotoją
memorialize_account: Memorializuoti paskyrą
promote_user: Paaukštinti naudotoją
+ publish_terms_of_service: Publikuoti paslaugų sąlygas
reject_appeal: Atmesti apeliaciją
reject_user: Atmesti naudotoją
remove_avatar_user: Pašalinti avatarą
@@ -264,6 +265,7 @@ lt:
enable_user_html: "%{name} įjungė prisijungimą naudotojui %{target}"
memorialize_account_html: "%{name} pavertė %{target} paskyrą į atminimo puslapį"
promote_user_html: "%{name} paaukštino naudotoją %{target}"
+ publish_terms_of_service_html: "%{name} publikavo paslaugų sąlygų naujinimus"
reject_appeal_html: "%{name} atmetė prižiūjimo veiksmo apeliaciją iš %{target}"
reject_user_html: "%{name} atmetė registraciją iš %{target}"
remove_avatar_user_html: "%{name} pašalino %{target} avatarą"
@@ -643,6 +645,37 @@ lt:
reset: Atkurti
search: Paieška
title: Saitažodžiai
+ terms_of_service:
+ back: Atgal į paslaugų sąlygas
+ changelog: Kas pasikeitė
+ create: Naudoti savo
+ current: Dabartinė
+ draft: Parengti iš naujo
+ generate: Naudoti šabloną
+ generates:
+ action: Generuoti
+ chance_to_review_html: "Sugeneruotos paslaugų sąlygos nebus publikuojamos automatiškai. Turėsite galimybę peržiūrėti rezultatus. Kad tęstumėte, užpildykite reikiamą informaciją."
+ explanation_html: Pateiktas paslaugų sąlygų šablonas yra tik informacinio pobūdžio ir neturėtų būti laikomas teisiniu patarimu bet kokiu klausimu. Dėl savo situacijos ir konkrečių teisinių klausimų pasitarkite su savo teisininku.
+ title: Paslaugų sąlygų sąranka
+ history: Istorija
+ live: Tiesioginis
+ no_history: Kol kas nėra įrašyta paslaugų sąlygų pakeitimų.
+ no_terms_of_service_html: Šiuo metu nesate sukonfigūravę jokių paslaugų sąlygų. Paslaugų sąlygos skirtos suteikti aiškumo ir apsaugoti jus nuo galimų įsipareigojimų ginčuose su naudotojais.
+ notified_on_html: Naudotojams pranešta %{date}
+ notify_users: Pranešti naudotojus
+ preview:
+ explanation_html: 'El. laiškas bus išsiųstas %{display_count} naudotojams, kurie užsiregistravo iki %{date}. Į el. laišką bus įtrauktas toks tekstas:'
+ send_preview: Siųsti peržiūrą į %{email}
+ send_to_all:
+ few: Siųsti %{display_count} el. laiškus
+ many: Siųsti %{display_count} el. laiško
+ one: Siųsti %{display_count} el. laišką
+ other: Siųsti %{display_count} el. laiškų
+ title: Peržiūrėti paslaugų sąlygų pranešimą
+ publish: Publikuoti
+ published_on_html: Publikuota %{date}
+ save_draft: Išsaugoti juodraštį
+ title: Paslaugų sąlygos
title: Administracija
trends:
allow: Leisti
@@ -823,11 +856,14 @@ lt:
sign_in:
preamble_html: Prisijunk su savo %{domain} kredencialais. Jei tavo yra kitame serveryje, čia prisijungti negalėsi.
title: Prisijungti prie %{domain}
+ sign_up:
+ preamble: Su šio „Mastodon“ serverio paskyra galėsite sekti bet kurį kitą fediversijoje esantį asmenį, nepriklausomai nuo to, kur yra jo paskyra.
status:
account_status: Paskyros būsena
redirecting_to: Tavo paskyra yra neaktyvi, nes šiuo metu ji nukreipiama į %{acct}.
self_destruct: Kadangi %{domain} uždaromas, turėsi tik ribotą prieigą prie savo paskyros.
view_strikes: Peržiūrėti ankstesnius savo paskyros pažeidimus
+ user_agreement_html: Perskaičiau ir sutinku su paslaugų sąlygomis ir privatumo politika
author_attribution:
example_title: Teksto pavyzdys
hint_html: Ar rašote naujienas ar tinklaraščio straipsnius už „Mastodon“ ribų? Valdykite, kaip būsite nurodomi, kai jais bus bendrinama platformoje „Mastodon“.
@@ -1161,6 +1197,8 @@ lt:
min_age_label: Amžiaus riba
stream_entries:
sensitive_content: Jautrus turinys
+ terms_of_service:
+ title: Paslaugų sąlygos
themes:
contrast: Mastodon (didelis kontrastas)
default: Mastodon (tamsi)
@@ -1198,6 +1236,15 @@ lt:
title: Nepavyko atlikti dvigubo tapatybės nustatymo
suspicious_sign_in:
further_actions_html: Jei tai buvai ne tu, rekomenduojame nedelsiant %{action} ir įjungti dvigubą tapatybės nustatymą, kad tavo paskyra būtų saugi.
+ terms_of_service_changed:
+ agreement: Tęsiant naudojimąsi %{domain}, jūs sutinkate su šiomis sąlygomis. Jei nesutinkate su atnaujintomis sąlygomis, bet kuriuo metu galite nutraukti sutartį su %{domain} ištrindami savo paskyrą.
+ changelog: Trumpai apie tai, ką šis naujinimas reiškia jums
+ description: 'Šį el. laišką gaunate, nes mes keičiame savo paslaugų sąlygas serveryje %{domain}. Kviečiame susipažinti su visomis atnaujintomis sąlygomis čia:'
+ description_html: Šį el. laišką gaunate, nes mes keičiame savo paslaugų sąlygas serveryje %{domain}. Kviečiame susipažinti su visomis atnaujintomis sąlygomis čia.
+ sign_off: "%{domain} komanda"
+ subject: Paslaugų sąlygų atnaujinimai
+ subtitle: Keičiasi %{domain} paslaugų sąlygos
+ title: Svarbus naujinimas
warning:
categories:
spam: Šlamštas
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 3a5eaee1c3..c41652ca0d 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -214,6 +214,7 @@ nl:
enable_user: Gebruiker inschakelen
memorialize_account: Het account in een In memoriam veranderen
promote_user: Gebruiker promoveren
+ publish_terms_of_service: Algemene gebruiksvoorwaarden publiceren
reject_appeal: Bezwaar afwijzen
reject_user: Gebruiker afwijzen
remove_avatar_user: Profielfoto verwijderen
@@ -278,6 +279,7 @@ nl:
enable_user_html: Inloggen voor %{target} is door %{name} ingeschakeld
memorialize_account_html: Het account %{target} is door %{name} in een In memoriam veranderd
promote_user_html: Gebruiker %{target} is door %{name} gepromoveerd
+ publish_terms_of_service_html: "%{name} publiceerde updates van de servicevoorwaarden"
reject_appeal_html: "%{name} heeft het bezwaar tegen de moderatiemaatregel van %{target} afgewezen"
reject_user_html: "%{name} heeft de registratie van %{target} afgewezen"
remove_avatar_user_html: "%{name} verwijderde de profielfoto van %{target}"
@@ -925,6 +927,35 @@ nl:
search: Zoeken
title: Hashtags
updated_msg: Instellingen hashtag succesvol bijgewerkt
+ terms_of_service:
+ back: Terug naar de gebruiksvoorwaarden
+ changelog: Wat is veranderd
+ create: Gebruik je eigen
+ current: Huidige
+ draft: Concept
+ generate: Sjabloon gebruiken
+ generates:
+ action: Genereren
+ chance_to_review_html: "De gegenereerde gebruiksvoorwaarden worden niet automatisch gepubliceerd. Je krijgt gelegenheid om de resultaten te bekijken. Vul de benodigde gegevens in om verder te gaan."
+ explanation_html: Het sjabloon voor de gebruiksvoorwaarden is uitsluitend bedoeld voor informatieve doeleinden en mag niet worden opgevat als juridisch advies over welk onderwerp dan ook. Raadpleeg een eigen juridisch adviseur over jouw situatie en voor specifieke juridische vragen.
+ title: Gebruiksvoorwaarden instellen
+ history: Geschiedenis
+ live: Actueel
+ no_history: Er zijn nog geen opgeslagen wijzigingen van de gebruiksvoorwaarden.
+ no_terms_of_service_html: Je hebt momenteel geen servicevoorwaarden geconfigureerd. De gebruiksvoorwaarden zijn bedoeld om duidelijkheid te verschaffen en je te beschermen tegen mogelijke verplichtingen in geschillen met gebruikers.
+ notified_on_html: Gebruikers ingelicht op %{date}
+ notify_users: Gebruikers informeren
+ preview:
+ explanation_html: 'De e-mail wordt verzonden naar %{display_count} gebruikers die zich hebben aangemeld voor %{date}. De volgende tekst zal in de e-mail worden opgenomen:'
+ send_preview: Voorbeeld verzenden naar %{email}
+ send_to_all:
+ one: "%{display_count} e-mail verzenden"
+ other: "%{display_count} e-mails verzenden"
+ title: Voorbeeld van Melding gebruiksvoorwaarden
+ publish: Publiceren
+ published_on_html: Gepubliceerd op %{date}
+ save_draft: Concept opslaan
+ title: Gebruiksvoorwaarden
title: Beheer
trends:
allow: Goedkeuren
@@ -1156,6 +1187,7 @@ nl:
set_new_password: Nieuw wachtwoord instellen
setup:
email_below_hint_html: Controleer je map met spam, of vraag een nieuwe bevestigingslink aan. Je kan je e-mailadres corrigeren als het verkeerd is.
+ email_settings_hint_html: Klik op de link die we naar %{email} hebben gestuurd om Mastodon te gebruiken. We wachten hier af.
link_not_received: Geen link ontvangen?
new_confirmation_instructions_sent: Je ontvangt binnen enkele minuten een nieuwe e-mail met de bevestigingslink!
title: Kijk in je mailbox
@@ -1164,6 +1196,7 @@ nl:
title: Inloggen op %{domain}
sign_up:
manual_review: Inschrijvingen op %{domain} worden handmatig door onze moderatoren beoordeeld. Schrijf wat over jezelf en waarom je een account op %{domain} wilt. Hiermee help je ons om de aanvraag van jouw account goed te kunnen verwerken.
+ preamble: Met een account op deze Mastodon-server kun je iedereen volgen op de fediverse, ongeacht waar deze persoon een account heeft.
title: Laten we je account op %{domain} instellen.
status:
account_status: Accountstatus
@@ -1175,6 +1208,7 @@ nl:
view_strikes: Bekijk de eerder door moderatoren vastgestelde overtredingen die je hebt gemaakt
too_fast: Formulier is te snel ingediend. Probeer het nogmaals.
use_security_key: Beveiligingssleutel gebruiken
+ user_agreement_html: Ik heb de gebruiksvoorwaarden en het privacybeleid gelezen en ga ermee akkoord
author_attribution:
example_title: Voorbeeldtekst
hint_html: Schrijf je nieuws- of blogartikelen buiten Mastodon? Bepaal hoe je geattribueerd wordt als deze gedeeld worden op Mastodon.
@@ -1836,6 +1870,8 @@ nl:
too_late: De periode dat je bezwaar kunt maken tegen deze overtreding is verstreken
tags:
does_not_match_previous_name: komt niet overeen met de vorige naam
+ terms_of_service:
+ title: Gebruiksvoorwaarden
themes:
contrast: Mastodon (hoog contrast)
default: Mastodon (donker)
@@ -1896,6 +1932,15 @@ nl:
further_actions_html: Wanneer jij dit niet was, adviseren wij om onmiddellijk %{action} en om tweestapsverificatie in te schakelen, om zo je account veilig te houden.
subject: Jouw account is vanaf een nieuw IP-adres benaderd
title: Een nieuwe registratie
+ terms_of_service_changed:
+ agreement: Door %{domain} te blijven gebruiken, ga je akkoord met deze voorwaarden. Als je het niet eens bent met de bijgewerkte voorwaarden, kun je je overeenkomst met %{domain} op elk gewenst moment beëindigen door je account te verwijderen.
+ changelog: 'In een oogopslag betekent deze update voor jou:'
+ description: 'Je ontvangt dit bericht omdat we enkele wijzigingen aanbrengen in onze gebruiksvoorwaarden bij %{domain}. We raden je aan om de bijgewerkte voorwaarden hier volledig te bekijken:'
+ description_html: Je ontvangt dit bericht omdat we enkele wijzigingen aanbrengen in onze gebruiksvoorwaarden bij %{domain}. We raden je aan om de bijgewerkte voorwaarden hier geheel te bestuderen.
+ sign_off: Het %{domain}-team
+ subject: Bijwerkingen van onze servicevoorwaarden
+ subtitle: De gebruiksvoorwaarden van %{domain} veranderen
+ title: Belangrijke update
warning:
appeal: Bezwaar indienen
appeal_description: Wanneer je denkt dat dit een fout is, kun je een bezwaar indienen bij de medewerkers van %{instance}.
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 7255967172..fe10dd6462 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -214,6 +214,7 @@ pt-BR:
enable_user: Ativar usuário
memorialize_account: Converter conta em memorial
promote_user: Promover usuário
+ publish_terms_of_service: Publicar termos de serviço
reject_appeal: Rejeitar revisão
reject_user: Rejeitar usuário
remove_avatar_user: Remover imagem de perfil
@@ -278,6 +279,7 @@ pt-BR:
enable_user_html: "%{name} ativou o login para %{target}"
memorialize_account_html: "%{name} transformou a conta de %{target} em um memorial"
promote_user_html: "%{name} promoveu o usuário %{target}"
+ publish_terms_of_service_html: "%{name} publicou atualizações aos termos de serviço"
reject_appeal_html: "%{name} rejeitou a revisão da decisão da moderação em %{target}"
reject_user_html: "%{name} rejeitou a inscrição de %{target}"
remove_avatar_user_html: "%{name} removeu a imagem de perfil de %{target}"
@@ -925,6 +927,16 @@ pt-BR:
search: Buscar
title: Hashtags
updated_msg: Configurações de hashtag atualizadas
+ terms_of_service:
+ back: Voltar aos termos de serviço
+ changelog: O que há de novo
+ create: Usar o meu próprio
+ current: Atual
+ draft: Rascunho
+ generate: Usar modelo
+ generates:
+ action: Gerar
+ chance_to_review_html: "Os termos de serviço gerado não será publicado automaticamente.Você terá uma chance de revisar os resultados. Preencha os detalhes necessários para continuar"
title: Administração
trends:
allow: Permitir
diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml
index 2f9af21aeb..68386eded6 100644
--- a/config/locales/simple_form.bg.yml
+++ b/config/locales/simple_form.bg.yml
@@ -130,6 +130,11 @@ bg:
show_application: Винаги ще може да видите кое приложение е публикувало публикацията ви независимо.
tag:
name: Можете да смените само употребата на големи/малки букви, например, за да е по-четимо
+ terms_of_service:
+ changelog: Може да се структурира със синтаксиса на Markdown.
+ text: Може да се структурира със синтаксиса на Markdown.
+ terms_of_service_generator:
+ jurisdiction: Впишете държавата, където живее всеки, който плаща сметките. Ако е дружество или друго образувание, то впишете държавата, в която е регистрирано, и градът, регионът, територията или щатът според случая.
user:
chosen_languages: Само публикации на отметнатите езици ще се показват в публичните часови оси
role: Ролята управлява какви позволения има потребителят.
@@ -319,6 +324,17 @@ bg:
name: Хаштаг
trendable: Показване на хаштага да се появява под нашумели
usable: Позволяване на публикациите да употребяват този хаштаг локално
+ terms_of_service:
+ changelog: Какво е променено?
+ text: Условия на услугата
+ terms_of_service_generator:
+ admin_email: Имейл адрес за правни известия
+ arbitration_address: Физичен адрес за арбитражни известия
+ arbitration_website: Уебсайт за подаване на арбитражни известия
+ dmca_address: Физичен адрес за DMCA/бележки за авторски права
+ dmca_email: Адрес на е-поща за DMCA/бележки за авторски права
+ domain: Домейн
+ jurisdiction: Законова юрисдикция
user:
role: Роля
time_zone: Часова зона
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index d2bf790c9e..2fecc78c79 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -319,6 +319,17 @@ ca:
name: Etiqueta
trendable: Permet que aquesta etiqueta aparegui en les tendències
usable: Permet a les publicacions emprar aquesta etiqueta localment
+ terms_of_service:
+ changelog: Què ha canviat?
+ text: Condicions de servei
+ terms_of_service_generator:
+ admin_email: Adreça-e per a les notificacions legals
+ arbitration_address: Adreça física per a les notificacions d'arbitratge
+ arbitration_website: Lloc web per a enviar les notificacions d'arbitratge
+ dmca_address: Adreça física per a les notificacions de copyright/DMCA
+ dmca_email: Adreça-e per a les notificacions de copyright/DMCA
+ domain: Domini
+ jurisdiction: Jurisdicció
user:
role: Rol
time_zone: Zona horària
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 78629c95ca..0ef8232dda 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -130,6 +130,17 @@ da:
show_application: Du vil dog altid kunne se, hvilken app, der offentliggjorde dit indlæg.
tag:
name: Kun bogstavtyper (store/små) kan ændres, eksempelvis for at gøre det mere læsbart
+ terms_of_service:
+ changelog: Kan struktureres med Markdown-syntaks.
+ text: Kan struktureres med Markdown-syntaks.
+ terms_of_service_generator:
+ admin_email: Juridiske bekendtgørelser omfatter imødegåelsesbekendtgørelser, retskendelser, nedtagelses- og retshåndhævelsesanmodninger.
+ arbitration_address: Kan være den samme som Fysisk adresse ovenfor, eller “N/A” ved brug af e-mail
+ arbitration_website: Kan være en webformular, eller “N/A” ved brug af e-mail
+ dmca_address: For amerikanske operatører, brug den adresse, der er registreret i DMCA Designated Agent Directory. En Postboksliste er tilgængelig på direkte anmodning, brug den DMCA Designated Agent Post Office Box Waiver Request til at e-maile Ophavsretskontoret og beskrive, at man er en hjemmebaseret indholdsmoderator, der frygter hævn eller gengældelse for sine handlinger og behøver en Postboks for at fjerne hjemmeadressen fra den offentlige visning.
+ dmca_email: Kan være samme e-mail, som brugt til “E-mailadresse til juridiske meddelelser” ovenfor
+ domain: Unik identifikation af den onlinetjeneste, man leverer.
+ jurisdiction: Angiv landet, hvor betaleren af regningerne er bosiddende. Er det en virksomhed eller en anden entitet, angiv det land, hvor det er stiftet, og byen, regionen, området eller staten efter behov.
user:
chosen_languages: Når markeret, vil kun indlæg på de valgte sprog fremgå på offentlige tidslinjer
role: Rollen styrer, hvilke tilladelser brugeren er tildelt.
@@ -319,6 +330,17 @@ da:
name: Hashtag
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?
+ text: Tjenestevilkår
+ terms_of_service_generator:
+ admin_email: E-mailadresse til juridiske meddelelser
+ arbitration_address: Fysisk adresse til voldgiftsmeddelelser
+ arbitration_website: Websted til indsendelse af voldgiftsmeddelelser
+ dmca_address: Fysisk adresse til DMCA-/ophavsretsmeddelelser
+ dmca_email: E-mailadresse til DMCA-/ophavsretsmeddelelser
+ domain: Domæne
+ jurisdiction: Juridisk jurisdiktion
user:
role: Rolle
time_zone: Tidszone
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 2ac7791273..201af831ad 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -130,6 +130,16 @@ de:
show_application: Du wirst immer sehen können, über welche App dein Beitrag veröffentlicht wurde.
tag:
name: Du kannst nur die Groß- und Kleinschreibung der Buchstaben ändern, um es z. B. lesbarer zu machen
+ terms_of_service:
+ changelog: Kann mit der Markdown-Syntax formatiert werden.
+ text: Kann mit der Markdown-Syntax formatiert werden.
+ terms_of_service_generator:
+ admin_email: Rechtliche Hinweise umfassen Gegendarstellungen, Gerichtsbeschlüsse, Anfragen zum Herunternehmen von Inhalten und Anfragen von Strafverfolgungsbehörden.
+ arbitration_address: Kann wie die Anschrift hierüber sein oder „N/A“, falls eine E-Mail verwendet wird
+ arbitration_website: Kann ein Webformular sein oder „N/A“, falls eine E-Mail verwendet wird
+ dmca_email: Kann dieselbe E-Mail wie bei „E-Mail-Adresse für rechtliche Hinweise“ sein
+ domain: Einzigartige Identifizierung des angebotenen Online-Services.
+ jurisdiction: Gib das Land an, in dem die Person lebt, die alle Rechnungen bezahlt. Falls es sich dabei um ein Unternehmen oder eine andere Einrichtung handelt, gib das Land mit dem Sitz an, sowie die Stadt oder Region.
user:
chosen_languages: Wenn du hier eine oder mehrere Sprachen auswählst, werden ausschließlich Beiträge in diesen Sprachen in deinen öffentlichen Timelines angezeigt
role: Die Rolle bestimmt, welche Berechtigungen das Konto hat.
@@ -319,6 +329,17 @@ de:
name: Hashtag
trendable: Erlaube, dass dieser Hashtag in den Trends erscheint
usable: Beiträge dürfen diesen Hashtag lokal verwenden
+ terms_of_service:
+ changelog: Was hat sich geändert?
+ text: Nutzungsbedingungen
+ terms_of_service_generator:
+ admin_email: E-Mail-Adresse für rechtliche Hinweise
+ arbitration_address: Anschrift für Schiedsverfahren
+ arbitration_website: Website zum Einreichen von Schiedsverfahren
+ dmca_address: Anschrift für Urheberrechtsverletzungen
+ dmca_email: E-Mail-Adresse für Urheberrechtsverletzungen
+ domain: Domain
+ jurisdiction: Gerichtsstand
user:
role: Rolle
time_zone: Zeitzone
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index 058b09a84c..146c6d5086 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -319,6 +319,10 @@ eo:
name: Kradvorto
trendable: Permesi al ĉi tiu kradvorto aperi en furoraĵoj
usable: Permesi afiŝojn uzi ĉi tiun kradvorton loke
+ terms_of_service:
+ text: Kondiĉoj de uzado
+ terms_of_service_generator:
+ domain: Domajno
user:
role: Rolo
time_zone: Horzono
diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml
index 85dc47853c..c9aaa3ab68 100644
--- a/config/locales/simple_form.es-AR.yml
+++ b/config/locales/simple_form.es-AR.yml
@@ -130,6 +130,9 @@ es-AR:
show_application: Sin embargo, siempre podrás ver desde qué aplicación se envió tu mensaje.
tag:
name: Sólo podés cambiar la capitalización de las letras, por ejemplo, para que sea más legible
+ terms_of_service:
+ changelog: Se puede estructurar con sintaxis Markdown.
+ text: Se puede estructurar con sintaxis Markdown.
user:
chosen_languages: Cuando estén marcados, sólo se mostrarán los mensajes en los idiomas seleccionados en las líneas temporales públicas
role: El rol controla qué permisos tiene el usuario.
@@ -319,6 +322,14 @@ es-AR:
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir que los mensajes usen esta etiqueta localmente
+ terms_of_service:
+ changelog: "¿Qué ha cambiado?"
+ text: Términos del servicio
+ terms_of_service_generator:
+ dmca_address: Dirección física para avisos de DMCA/derechos de autor
+ dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
+ domain: Dominio
+ jurisdiction: Jurisdicción legal
user:
role: Rol
time_zone: Zona horaria
diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml
index 6286efc41a..c79e50a043 100644
--- a/config/locales/simple_form.es-MX.yml
+++ b/config/locales/simple_form.es-MX.yml
@@ -130,6 +130,13 @@ es-MX:
show_application: Siempre podrás ver desde cuál aplicación realizaste una publicación.
tag:
name: Sólo se puede cambiar el cajón de las letras, por ejemplo, para que sea más legible
+ terms_of_service:
+ changelog: Puede estructurarse con la sintaxis Markdown.
+ text: Puede estructurarse con la sintaxis Markdown.
+ terms_of_service_generator:
+ admin_email: Las notificaciones legales incluyen contraavisos, órdenes judiciales, solicitudes de retirada y solicitudes de aplicación de la ley.
+ dmca_email: Puede ser la misma dirección de correo electrónico usada en “Dirección de correo electrónico para notificaciones legales”
+ domain: Identificación única del servicio en línea que presta.
user:
chosen_languages: Cuando se marca, solo se mostrarán las publicaciones en los idiomas seleccionados en las líneas de tiempo públicas
role: El rol controla qué permisos tiene el usuario.
@@ -319,6 +326,17 @@ es-MX:
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir a las publicaciones usar esta etiqueta localmente
+ terms_of_service:
+ changelog: "¿Qué es lo que ha cambiado?"
+ text: Condiciones del servicio
+ terms_of_service_generator:
+ admin_email: Dirección de correo electrónico para notificaciones legales
+ arbitration_address: Dirección física para notificaciones de arbitraje
+ arbitration_website: Sitio web para presentar notificaciones de arbitraje
+ dmca_address: Dirección física para avisos de DMCA/derechos de autor
+ dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
+ domain: Dominio
+ jurisdiction: Jurisdicción legal
user:
role: Rol
time_zone: Zona horaria
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index f83b4b1d1c..05560c918e 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -130,6 +130,9 @@ es:
show_application: Tú siempre podrás ver desde qué aplicación se ha publicado tu publicación.
tag:
name: Sólo se puede cambiar el cajón de las letras, por ejemplo, para que sea más legible
+ terms_of_service:
+ changelog: Se puede estructurar con sintaxis Markdown.
+ text: Se puede estructurar con sintaxis Markdown.
user:
chosen_languages: Cuando se marca, solo se mostrarán las publicaciones en los idiomas seleccionados en las líneas de tiempo públicas
role: El rol controla qué permisos tiene el usuario.
@@ -319,6 +322,14 @@ es:
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir a las publicaciones usar esta etiqueta localmente
+ terms_of_service:
+ changelog: "¿Qué ha cambiado?"
+ text: Términos del servicio
+ terms_of_service_generator:
+ dmca_address: Dirección física para avisos de DMCA/derechos de autor
+ dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
+ domain: Dominio
+ jurisdiction: Jurisdicción legal
user:
role: Rol
time_zone: Zona horaria
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index ae3bbd5c9b..acd1eefca6 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -130,6 +130,17 @@ fi:
show_application: Voit silti aina nähdä, mistä sovelluksesta julkaisusi lähetettiin.
tag:
name: Voit esimerkiksi vaihtaa suur- ja pienaakkosten kesken helppolukuistaaksesi tekstiäsi
+ terms_of_service:
+ changelog: Voidaan jäsentää Markdown-syntaksilla.
+ text: Voidaan jäsentää Markdown-syntaksilla.
+ terms_of_service_generator:
+ admin_email: Oikeudellisiin ilmoituksiin kuuluvat vastailmoitukset, oikeuden määräykset, poistopyynnöt ja lainvalvontaviranomaisten pyynnöt.
+ arbitration_address: Voi olla sama kuin edellä oleva fyysinen osoite tai ”N/A”, jos käytät sähköpostia
+ arbitration_website: Voi olla verkkolomake tai ”N/A”, jos käytät sähköpostia
+ dmca_address: Yhdysvaltalaisten operaattoreiden on käytettävä DMCA Designated Agent Directory -luetteloon rekisteröityä osoitetta. Postilokeroluettelo on saatavissa suoralla pyynnöllä, joten käytä DMCA Designated Agent Post Office Box Waiver Request -lomaketta lähettääksesi sähköpostia tekijänoikeusvirastolle ja kuvaile, että olet kotona toimiva sisältömoderaattori, joka pelkää kostoa tai rangaistusta toimistaan ja tarvitsee postilokeroa pitääkseen kotiosoitteensa poissa julkisuudesta.
+ dmca_email: Voi olla sama sähköpostiosoite kuin edellä kohdassa ”Sähköpostiosoite oikeudellisia ilmoituksia varten”
+ domain: Tarjoamasi verkkopalvelun yksilöllinen tunniste.
+ jurisdiction: Mainitse valtio, jossa laskujen maksaja asuu. Jos kyseessä on yritys tai muu yhteisö, mainitse valtio, johon se on rekisteröity, ja tarvittaessa kaupunki, alue, territorio tai osavaltio.
user:
chosen_languages: Jos valitset kieliä oheisesta luettelosta, vain niidenkieliset julkaisut näkyvät sinulle julkisilla aikajanoilla
role: Rooli määrää, millaiset käyttöoikeudet käyttäjällä on.
@@ -319,6 +330,17 @@ fi:
name: Aihetunniste
trendable: Salli tämän aihetunnisteen näkyä trendeissä
usable: Salli julkaisujen käyttää tätä aihetunnistetta paikallisesti
+ terms_of_service:
+ changelog: Mikä on muuttunut?
+ text: Käyttöehdot
+ terms_of_service_generator:
+ admin_email: Sähköpostiosoite oikeudellisille ilmoituksille
+ arbitration_address: Fyysinen osoite välimiesmenettelyn ilmoituksille
+ arbitration_website: Sähköpostiosoite välimiesmenettelyn ilmoituksille
+ dmca_address: Fyysinen osoite DMCA-/tekijänoikeusilmoituksille
+ dmca_email: Sähköpostiosoite DMCA-/tekijänoikeusilmoituksille
+ domain: Verkkotunnus
+ jurisdiction: Lainkäyttöalue
user:
role: Rooli
time_zone: Aikavyöhyke
diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml
index ddf37cd0dc..4f89eec5e6 100644
--- a/config/locales/simple_form.fr-CA.yml
+++ b/config/locales/simple_form.fr-CA.yml
@@ -130,6 +130,17 @@ fr-CA:
show_application: Vous pourrez toujours voir quelle application vous avez utilisé pour publier un message dans tous les cas.
tag:
name: Vous ne pouvez modifier que la casse des lettres, par exemple, pour le rendre plus lisible
+ terms_of_service:
+ changelog: Peut être structuré avec la syntaxe Markdown.
+ text: Peut être structuré avec la syntaxe Markdown.
+ terms_of_service_generator:
+ admin_email: Les avis juridiques comprennent les contre-avis, les ordonnances judiciaires, les demandes de retrait et les demandes des forces de l'ordre.
+ arbitration_address: Peut être la même que l'adresse physique ci-dessus, ou "N/A" si vous utilisez un e-mail
+ arbitration_website: Peut être un formulaire web, ou « N/A» si vous utilisez un e-mail
+ dmca_address: Pour les opérateurs américains, utilisez l'adresse enregistrée dans le répertoire des agents désignés du DMCA Designated Agent Directory. Une boîte postale est disponible sur demande directe. Utilisez le formulaire de demande de dérogation pour l'utilisation d'une boîte postale par un agent désigné du Designated Agent Post Office Box Waiver Request pour envoyer un e-mail au Bureau du droit d'auteur (Copyright Office) et expliquer que vous êtes un modérateur de contenu à domicile qui craint des représailles ou une vengeance pour ses actions et que vous avez besoin d'utiliser une boîte postale afin de masquer votre adresse personnelle au public.
+ dmca_email: Peut être la même adresse e-mail que celle utilisée pour « Adresse e-mail pour les mentions légales » ci-dessus
+ domain: Identification unique du service en ligne que vous offrez.
+ jurisdiction: Indiquez le pays dans lequel réside la personne qui paie les factures. S'il s'agit d'une entreprise ou d'une autre entité, indiquez le pays dans lequel elle est enregistrée, ainsi que la ville, la région, le territoire ou l'État, le cas échéant.
user:
chosen_languages: Lorsque coché, seuls les messages dans les langues sélectionnées seront affichés sur les fils publics
role: Le rôle définit quelles autorisations a l'utilisateur⋅rice.
@@ -319,6 +330,17 @@ fr-CA:
name: Mot-clic
trendable: Autoriser ce hashtag à apparaitre dans les tendances
usable: Autoriser les messages à utiliser ce hashtag localement
+ terms_of_service:
+ changelog: Nouveautés?
+ text: Conditions d'utilisation
+ terms_of_service_generator:
+ admin_email: Adresse électronique pour les notifications légales
+ arbitration_address: Adresse physique pour les notifications d'arbitrage
+ arbitration_website: Site Web pour soumettre les notifications d'arbitrage
+ dmca_address: Adresse physique pour les avis DMCA/copyright
+ dmca_email: Adresse e-mail pour les avis DMCA/copyright
+ domain: Domaine
+ jurisdiction: Juridiction
user:
role: Rôle
time_zone: Fuseau horaire
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index 37cd7c918e..1b0469f7a3 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -130,6 +130,17 @@ fr:
show_application: Vous pourrez toujours voir quelle application vous avez utilisé pour publier un message dans tous les cas.
tag:
name: Vous ne pouvez modifier que la casse des lettres, par exemple, pour le rendre plus lisible
+ terms_of_service:
+ changelog: Peut être structuré avec la syntaxe Markdown.
+ text: Peut être structuré avec la syntaxe Markdown.
+ terms_of_service_generator:
+ admin_email: Les avis juridiques comprennent les contre-avis, les ordonnances judiciaires, les demandes de retrait et les demandes des forces de l'ordre.
+ arbitration_address: Peut être la même que l'adresse physique ci-dessus, ou "N/A" si vous utilisez un e-mail
+ arbitration_website: Peut être un formulaire web, ou « N/A» si vous utilisez un e-mail
+ dmca_address: Pour les opérateurs américains, utilisez l'adresse enregistrée dans le répertoire des agents désignés du DMCA Designated Agent Directory. Une boîte postale est disponible sur demande directe. Utilisez le formulaire de demande de dérogation pour l'utilisation d'une boîte postale par un agent désigné du Designated Agent Post Office Box Waiver Request pour envoyer un e-mail au Bureau du droit d'auteur (Copyright Office) et expliquer que vous êtes un modérateur de contenu à domicile qui craint des représailles ou une vengeance pour ses actions et que vous avez besoin d'utiliser une boîte postale afin de masquer votre adresse personnelle au public.
+ dmca_email: Peut être la même adresse e-mail que celle utilisée pour « Adresse e-mail pour les mentions légales » ci-dessus
+ domain: Identification unique du service en ligne que vous offrez.
+ jurisdiction: Indiquez le pays dans lequel réside la personne qui paie les factures. S'il s'agit d'une entreprise ou d'une autre entité, indiquez le pays dans lequel elle est enregistrée, ainsi que la ville, la région, le territoire ou l'État, le cas échéant.
user:
chosen_languages: Lorsque coché, seuls les messages dans les langues sélectionnées seront affichés sur les fils publics
role: Le rôle définit quelles autorisations a l'utilisateur⋅rice.
@@ -319,6 +330,17 @@ fr:
name: Hashtag
trendable: Autoriser ce hashtag à apparaitre dans les tendances
usable: Autoriser les messages à utiliser ce hashtag localement
+ terms_of_service:
+ changelog: Nouveautés?
+ text: Conditions d'utilisation
+ terms_of_service_generator:
+ admin_email: Adresse électronique pour les notifications légales
+ arbitration_address: Adresse physique pour les notifications d'arbitrage
+ arbitration_website: Site Web pour soumettre les notifications d'arbitrage
+ dmca_address: Adresse physique pour les avis DMCA/copyright
+ dmca_email: Adresse e-mail pour les avis DMCA/copyright
+ domain: Domaine
+ jurisdiction: Juridiction
user:
role: Rôle
time_zone: Fuseau horaire
diff --git a/config/locales/simple_form.fy.yml b/config/locales/simple_form.fy.yml
index 6a37a09201..3c8fef4e05 100644
--- a/config/locales/simple_form.fy.yml
+++ b/config/locales/simple_form.fy.yml
@@ -10,6 +10,7 @@ fy:
indexable: Jo iepenbiere berjochten kinne ferskine yn de sykresultaten op Mastodon. Minsken dy’t reagearre hawwe op jo berjochten kinne se hoe dan ek trochsykje.
note: 'Jo kinne oare minsken @fermelde of #hashtags brûke.'
show_collections: Minsken kinne sjen wa’t jo folgje en wa’t jo folget.
+ unlocked: Minsken kinne jo folgje sûnder dêrfoar tastimming freegje te hoegen. Wannear’t jo nije folgers hânmjittich goedkarre wolle, moatte jo dizze opsje deselektearje.
account_alias:
acct: Fermeld de brûkersnamme@domein fan de account fan wêr’t jo ferhúzje wolle
account_migration:
@@ -59,6 +60,7 @@ fy:
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_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
username: Jo kinne letters, sifers en ûnderstreekjes brûke
@@ -128,6 +130,17 @@ fy:
show_application: Jo kinne sels altyd sjen mei hokker app jo in berjocht pleatst hawwe.
tag:
name: Jo kinne elk wurd mei in haadletter begjinne, om sa bygelyks de tekst mear lêsber te meitsjen
+ terms_of_service:
+ changelog: Kin strukturearre wurde mei Markdown-syntaksis.
+ text: Kin strukturearre wurde mei Markdown-syntaksis.
+ terms_of_service_generator:
+ admin_email: Juridyske meidielingen binne û.o. tsjinoantekeningen, rjochterlike befelen, ferwiderfersiken en fersiken om wetshanthaving.
+ arbitration_address: Kin itselde wêze as boppesteande strjitteof ‘N/A’ by gebrûk fan e-mail
+ arbitration_website: Kin in webformulier wêze, of ‘N/A’ as e-mail brûkt wurdt
+ dmca_address: 'Brûk foar behearders yn de FS: it adres dat registrearre is yn de DMCA Designated Agent Directory. Op fersyk is der in postbuslist beskikber. Brûk it DMCA Designated Agent Post Office Box Waiver Request om it Copyright Office te e-mailen en te beskriuwen dat jo in thúsbasearre ynhâldsmoderator binne dy’t wraak of fergelding frezet foar jo dieden en in postbus brûke moat om jo húsadres út it publike domein te hâlden.'
+ dmca_email: Kin itselde e-mailadres wêze as ‘E-mailadres foar juridyske berjochten’ hjirboppe
+ domain: In unike identifikaasje fan de online tsjinst dy’t ferliend wurdt.
+ jurisdiction: Fermeld it lân wêr’t de persoan wennet dy’t de rekkeningen betellet. As it in bedriuw of in oare entiteit is, fermeld it lân wêr’t it opnommen is en de stêd, regio, grûngebiet of steat, foar safier fan tapassing.
user:
chosen_languages: Allinnich berjochten yn de selektearre talen wurde op de iepenbiere tiidline toand
role: De rol bepaalt hokker rjochten in brûker hat.
@@ -222,6 +235,7 @@ fy:
setting_hide_network: Jo folgers en wa’t jo folget ferstopje
setting_reduce_motion: Stadigere animaasjes
setting_system_font_ui: Standertlettertype fan jo systeem brûke
+ setting_system_scrollbars_ui: Standert skowbalke fan jo systeem brûke
setting_theme: Websitetema
setting_trends: Trends fan hjoed toane
setting_unfollow_modal: Freegje foar it ûntfolgjen fan ien in befêstiging
@@ -316,6 +330,17 @@ fy:
name: Hashtag
trendable: Goedkarre dat dizze hashtag ûnder trends te sjen is
usable: Berjochten tastean dizze hashtag lokaal te brûken
+ terms_of_service:
+ changelog: Wat is wizige?
+ text: Gebrûksbetingsten
+ terms_of_service_generator:
+ admin_email: E-mailadres foar juridyske meldingen
+ arbitration_address: Strjitte foar arbitraazjemeldingen
+ arbitration_website: Website foar it yntsjinjen fan arbitraazjemeldingen
+ dmca_address: Strjitte foar DMCA/auteursrjocht-meidielingen
+ dmca_email: E-mailadres foar DMCA/auteursrjocht-meidielingen
+ domain: Domein
+ jurisdiction: Rjochtsgebiet
user:
role: Rol
time_zone: Tiidsône
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index 3dc6ea28d2..6fdbe06d06 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -130,6 +130,17 @@ gl:
show_application: Independentemente, ti sempre poderás ver a app coa que publicaches a túa publicación.
tag:
name: Só podes cambiar maiús/minúsculas, por exemplo, mellorar a lexibilidade
+ terms_of_service:
+ changelog: Pode usarse sintaxe Markdown.
+ text: Pode usarse sintaxe Markdown.
+ terms_of_service_generator:
+ admin_email: Os avisos legais inclúen ordes xudiciais, solicitudes de retirada de contido e requerimentos do cumprimento da lei.
+ arbitration_address: Pode ser o mesmo enderezo Físico de máis arriba, ou "N/A" se usas o correo electrónico
+ arbitration_website: Pode ser un formulario web ou "N/A" se usas o correo electrónico
+ dmca_address: Para operadores de USA, utiliza o mesmo enderezo rexistrado no DMCA Designated Agent Directory. Está dispoñible a opción de usar P.O. Box facendo a solicitude baixo a DMCA Designated Agent Post Office Box Waiver Request pedíndoa á Copyright Office e indicando que es un moderador de contidos na túa casa e temes ameazas ou violencia polas medidas que tomas e precisas usar un P.O. Box para que non sexa público o enderezo da túa casa.
+ dmca_email: Pode ser o mesmo enderezo de correo usado para "Enderezo para avisos legais"
+ domain: Identificador único do servizo en liña que proporcionas.
+ jurisdiction: Informa sobre o país onde vive quen paga as facturas. Se é unha empresa ou outra entidade, indica o país onde está establecida e é axeitado escribir a cidade, rexión, territorio ou estado.
user:
chosen_languages: Se ten marca, só as publicacións nos idiomas seleccionados serán mostrados en cronoloxías públicas
role: Os roles establecen os permisos que ten a usuaria.
@@ -319,6 +330,17 @@ gl:
name: Cancelo
trendable: Permitir que este cancelo apareza en tendencias
usable: Permitir que as publicacións usen este cancelo localmente
+ terms_of_service:
+ changelog: Que cambios se fixeron?
+ text: Termos do Servizo
+ terms_of_service_generator:
+ admin_email: Enderezo de correo para avisos legais
+ arbitration_address: Enderezo físico para avisos de arbitraxe
+ arbitration_website: Páxina web para enviar avisos de arbitraxe
+ dmca_address: Enderezo físico para avisos sobre DMCA/copyright
+ dmca_email: Enderezo de correo electrónico para avisos sobre DMCA/copyright
+ domain: Dominio
+ jurisdiction: Xurisdición legal
user:
role: Rol
time_zone: Fuso horario
diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml
index 1c82aa9d40..85e8cbc53e 100644
--- a/config/locales/simple_form.he.yml
+++ b/config/locales/simple_form.he.yml
@@ -130,6 +130,17 @@ he:
show_application: תמיד ניתן לראות איזו אפליקציה פרסמה את הפוסט שלך בכל מקרה.
tag:
name: ניתן רק להחליף בין אותיות קטנות וגדולות, למשל כדי לשפר את הקריאות
+ terms_of_service:
+ changelog: ניתן לעצב בעזרת תחביר מארקדאון.
+ text: ניתן לעצב בעזרת תחביר מארקדאון.
+ terms_of_service_generator:
+ admin_email: מזכרים חוקיים כוללים הוראות בימ"ש, בקשות הסרה, תשובות להתראות ובקשות ציות לאכיפה.
+ arbitration_address: יכול להיות כתובת פיזית זהה לעיל, או “N/A” אם משתמשים בדואל
+ arbitration_website: יכול להיות טופס בדפדפן או “N/A” אם משתמשים בדואל
+ 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: ניתן להשתמש באותה כתובת הדואל שעבור "כתובת דואל להודעות משפטיות" לעיל
+ domain: זיהוי ייחודי של השירות המקוון שאתה מספק.
+ jurisdiction: פרט את המדינה שבה גר משלם החשבונות. אם מדובר בחברה או גוף אחר, פרטו את המדינה שבה הוקם התאגיד, העיר, האזור, או המדינה בהתאם לצורך.
user:
chosen_languages: אם פעיל, רק הודעות בשפות הנבחרות יוצגו לפידים הפומביים
role: התפקיד שולט על אילו הרשאות יש למשתמש.
@@ -319,6 +330,17 @@ he:
name: תגית
trendable: הרשה/י לתגית זו להופיע תחת נושאים חמים
usable: הרשה/י להודעות להכיל תגית זו באופן מקומי
+ terms_of_service:
+ changelog: מה נשתנה?
+ text: תנאי השירות
+ terms_of_service_generator:
+ admin_email: כתובת דוא"ל להודעות משפטיות
+ arbitration_address: כתובת פיזית להודעות גישור
+ arbitration_website: אתר רשת להגשת הודעות גישור
+ dmca_address: כתובת פיזית לשליחת התראות זכויות יוצרים/DMCA
+ dmca_email: כתובת דואל לשליחת התראות זכויות יוצרים/DMCA
+ domain: מתחם (דומיין)
+ jurisdiction: איזור השיפוט
user:
role: תפקיד
time_zone: אזור זמן
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index 2290440449..d05362639e 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -130,6 +130,12 @@ hu:
show_application: Ettől függetlenül mindig láthatod, melyik alkalmazás tette közzé a bejegyzésedet.
tag:
name: Csak a kis/nagybetűséget változtathatod meg, pl. hogy olvashatóbb legyen
+ terms_of_service:
+ changelog: Markdown szintaxissal adható meg.
+ text: Markdown szintaxissal adható meg.
+ terms_of_service_generator:
+ arbitration_website: Lehet webes űrlap, vagy e-mail használata esetén „N/A”
+ domain: A nyújtott online szolgáltatás egyedi azonosítója.
user:
chosen_languages: Ha aktív, csak a kiválasztott nyelvű bejegyzések jelennek majd meg a nyilvános idővonalon
role: A szerep szabályozza, hogy a felhasználó milyen jogosultságokkal rendelkezik.
@@ -319,6 +325,17 @@ hu:
name: Hashtag
trendable: A hashtag megjelenhet a felkapottak között
usable: A helyi bejegyzések használhatják ezt a hashtaget
+ terms_of_service:
+ changelog: Mi változott?
+ text: Felhasználási feltételek
+ terms_of_service_generator:
+ admin_email: E-mail-cím a jogi nyilatkozatok benyújtásához
+ arbitration_address: Fizikai cím a békéltető testületi nyilatkozatok benyújtásához
+ arbitration_website: Weboldal a békéltető testületi nyilatkozatok benyújtásához
+ dmca_address: Fizikai cím a szerzői jogi nyilatkozatokhoz
+ dmca_email: E-mail-cím a szerzői jogi nyilatkozatokhoz
+ domain: Domain
+ jurisdiction: Joghatóság
user:
role: Szerep
time_zone: Időzóna
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 7c24ef80b1..2f113087e9 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -319,6 +319,14 @@ is:
name: Myllumerki
trendable: Leyfa þessu myllumerki að birtast undir vinsælu efni
usable: Leyfa færslum að nota þetta myllumerki staðvært
+ terms_of_service:
+ changelog: Hvað breyttist?
+ text: Þjónustuskilmálar
+ terms_of_service_generator:
+ admin_email: Tölvupóstfang vegna löglegra fyrirvara
+ dmca_email: Tölvupóstfang tylfynninga vegna DMCA/höfundarétt
+ domain: Lén
+ jurisdiction: Lögsagnarumdæmi
user:
role: Hlutverk
time_zone: Tímabelti
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 27c1a00370..97565f4b1a 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -130,6 +130,17 @@ it:
show_application: Tu sarai sempre in grado di vedere quale app ha pubblicato il tuo post anche se hai attivato questa impostazione.
tag:
name: Puoi cambiare solo il minuscolo/maiuscolo delle lettere, ad esempio, per renderlo più leggibile
+ terms_of_service:
+ changelog: Può essere strutturato con la sintassi Markdown.
+ text: Può essere strutturato con la sintassi Markdown.
+ terms_of_service_generator:
+ admin_email: Gli avvisi legali includono controavvisi, ordinanze del tribunale, richieste di rimozione e richieste delle forze dell'ordine.
+ arbitration_address: Può essere lo stesso dell'indirizzo fisico sopra o "N/A" se si utilizza l'email
+ arbitration_website: Può essere un modulo web o "N/A" se si utilizza l'email
+ dmca_address: Per gli operatori statunitensi, utilizzare l'indirizzo registrato nella DMCA Designated Agent Directory. L'elenco delle caselle postali è disponibile su richiesta diretta, utilizzando il DMCA Designated Agent Post Office Box Waiver Request per inviare un'email al Copyright Office e descrivendo di essere un moderatore di contenuti che lavora da casa e che teme vendette o punizioni per le proprie azioni e che hai bisogno di usare una casella postale per rimuovere il tuo indirizzo di casa dalla vista pubblica.
+ dmca_email: Può essere lo stesso indirizzo email utilizzato per "Indirizzo email per avvisi legali" sopra
+ domain: Identificazione univoca del servizio online che stai fornendo.
+ jurisdiction: Indica il Paese in cui risiede il soggetto che paga le fatture. Se si tratta di un'azienda o di un altro ente, indicare il Paese in cui è costituito, nonché la città, la regione, il territorio o lo Stato, a seconda dei casi.
user:
chosen_languages: Quando una o più lingue sono contrassegnate, nelle timeline pubbliche vengono mostrati solo i toot nelle lingue selezionate
role: Il ruolo controlla quali permessi ha l'utente.
@@ -319,6 +330,17 @@ it:
name: Hashtag
trendable: Permetti a questo hashtag di apparire nelle tendenze
usable: Permetti ai post di utilizzare questo hashtag localmente
+ terms_of_service:
+ changelog: Cosa è cambiato?
+ text: Termini di Servizio
+ terms_of_service_generator:
+ admin_email: Indirizzo email per avvisi legali
+ arbitration_address: Indirizzo fisico per avvisi di arbitrato
+ arbitration_website: Sito web per l'invio di avvisi di arbitrato
+ dmca_address: Indirizzo fisico per gli avvisi DMCA/copyright
+ dmca_email: Indirizzo email per gli avvisi DMCA/copyright
+ domain: Dominio
+ jurisdiction: Giurisdizione legale
user:
role: Ruolo
time_zone: Fuso orario
diff --git a/config/locales/simple_form.lt.yml b/config/locales/simple_form.lt.yml
index b3885fb12b..865272c60e 100644
--- a/config/locales/simple_form.lt.yml
+++ b/config/locales/simple_form.lt.yml
@@ -103,6 +103,17 @@ lt:
settings:
indexable: Tavo profilio puslapis gali būti rodomas paieškos rezultatuose Google, Bing ir kituose.
show_application: Neatsižvelgiant į tai, visada galėsi matyti, kuri programėlė paskelbė tavo įrašą.
+ terms_of_service:
+ changelog: Gali būti struktūrizuota su ženklinimo sintakse.
+ text: Gali būti struktūrizuota su ženklinimo sintakse.
+ terms_of_service_generator:
+ admin_email: Teisiniai pranešimai įtraukia priešpriešinius pranešimus, teismo įsakymus, pašalinimo prašymus ir teisėsaugos institucijų prašymus.
+ arbitration_address: Gali būti toks pat kaip aukščiau nurodytas fizinis adresas arba „N/A“ (netaikoma), jei naudojamas el. paštas.
+ arbitration_website: Gali būti interneto forma arba „N/A“ (netaikoma), jei naudojamas el. paštas.
+ dmca_address: JAV operatoriams naudokite DMCA paskirtojo agento kataloge užregistruotą adresą. Pašto dėžutės sąrašą galima sudaryti pateikus tiesioginį prašymą, naudokite DMCA paskirtojo agento pašto dėžutės atsisakymo prašymą, kad parašytumėte el. laišką Autorinių teisių tarnybai ir aprašytumėte, kad esate namuose įsikūręs turinio moderatorius, kuris baiminasi keršto ar bausmės už savo veiksmus ir kuriam reikia naudoti pašto dėžutę, kad jo namų adresas nebūtų viešai matomas.
+ dmca_email: Gali būti tas pats aukščiau nurodytas el. pašto adresas, naudojamas „El. pašto adresas, skirtas teisiniams pranešimams“.
+ domain: Unikalus jūsų teikiamos internetinės paslaugos identifikavimas.
+ jurisdiction: Nurodykite šalį, kurioje gyvena tas, kas apmoka sąskaitas. Jei tai bendrovė ar kita esybė, nurodykite šalį, kurioje jis įregistruotas, ir atitinkamai miestą, regioną, teritoriją ar valstiją.
user:
chosen_languages: Kai pažymėta, viešose laiko skalėse bus rodomi tik įrašai pasirinktomis kalbomis.
role: Vaidmuo valdo, kokius leidimus naudotojas turi.
@@ -215,6 +226,17 @@ lt:
name: Saitažodis
trendable: Leisti šį saitažodį rodyti pagal trendus
usable: Leisti įrašams naudoti šį saitažodį vietoje
+ terms_of_service:
+ changelog: Kas pasikeitė?
+ text: Paslaugų sąlygos
+ terms_of_service_generator:
+ admin_email: El. pašto adresas, skirtas teisiniams pranešimams
+ arbitration_address: Fizinis adresas pranešimams apie arbitražą
+ arbitration_website: Svetainė pranešimams apie arbitražą
+ dmca_address: Fizinis adresas, skirtas DMCA / autorinių teisių pranešimams
+ dmca_email: El. pašto adresas, skirtas DMCA / autorinių teisių pranešimams
+ domain: Domenas
+ jurisdiction: Teisinis teismingumas
user:
role: Vaidmuo
time_zone: Laiko juosta
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index b1d0927eda..d272ebef0d 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -130,6 +130,17 @@ nl:
show_application: Je kunt zelf altijd zien met welke app je een bericht hebt geplaatst.
tag:
name: Je kunt elk woord met een hoofdletter beginnen, om zo bijvoorbeeld de tekst leesbaarder te maken
+ terms_of_service:
+ changelog: Kan worden gestructureerd met Markdown-syntaxis.
+ text: Kan worden gestructureerd met Markdown-syntaxis.
+ terms_of_service_generator:
+ admin_email: Juridische mededelingen zijn o.a. tegenaantekeningen, rechterlijke bevelen, verwijderingsverzoeken en verzoeken om wetshandhaving.
+ arbitration_address: Kan hetzelfde zijn als bovenstaande straatadres of "N/A" bij gebruik van e-mail
+ arbitration_website: Kan een webformulier zijn, of "N/A" als e-mail wordt gebruikt
+ dmca_address: 'Gebruik voor beheerders in de VS: het adres dat is geregistreerd in de DMCA Designated Agent Directory. Op verzoek is er een postbuslijst beschikbaar. Gebruik het DMCA Designated Agent Post Office Box Waiver Request om het Copyright Office te e-mailen en te beschrijven dat u een thuisgebaseerde inhoudsmoderator bent die wraak of vergelding vreest voor uw daden en een postbus moet gebruiken om uw huisadres uit het publieke domein te houden.'
+ dmca_email: Kan dezelfde e-mail worden gebruikt voor "E-mailadres voor juridische berichten" hierboven
+ domain: Een unieke identificatie van de online dienst die wordt verleend.
+ jurisdiction: Vermeldt het land waar de persoon woont die de rekeningen betaalt. Als het een bedrijf of een andere entiteit is, vermeldt het land waar het is opgenomen en de stad, regio, grondgebied of staat, voor zover van toepassing.
user:
chosen_languages: Alleen berichten in de aangevinkte talen worden op de openbare tijdlijnen getoond
role: De rol bepaalt welke rechten de gebruiker heeft.
@@ -319,6 +330,17 @@ nl:
name: Hashtag
trendable: Goedkeuren dat deze hashtag onder trends te zien valt
usable: Berichten toestaan deze hashtag lokaal te gebruiken
+ terms_of_service:
+ changelog: Wat is veranderd?
+ text: Gebruiksvoorwaarden
+ terms_of_service_generator:
+ admin_email: E-mailadres voor juridische meldingen
+ arbitration_address: Straatadres voor arbitragemeldingen
+ arbitration_website: Website voor het indienen van arbitragemeldingen
+ dmca_address: Straatadres voor DMCA/auteursrecht-mededelingen
+ dmca_email: E-mailadres voor DMCA/auteursrecht-mededelingen
+ domain: Domein
+ jurisdiction: Rechtsgebied
user:
role: Rol
time_zone: Tijdzone
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index cf09812382..6061ff44dc 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -319,6 +319,12 @@ pl:
name: Hasztag
trendable: Pozwól na wyświetlanie tego hashtagu w „Na czasie”
usable: Pozwól na umieszczanie tego hashtagu w lokalnych wpisach
+ terms_of_service:
+ changelog: Co się zmieniło?
+ text: Warunki korzystania z usługi
+ terms_of_service_generator:
+ domain: Domena
+ jurisdiction: Jurysdykcja
user:
role: Rola
time_zone: Strefa czasowa
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
index 5a605e9872..8e01c6264d 100644
--- a/config/locales/simple_form.sq.yml
+++ b/config/locales/simple_form.sq.yml
@@ -130,6 +130,16 @@ sq:
show_application: Pavarësisht nga kjo, do të jeni përherë në gjendje të shihni cili aplikacion botoi postimin tuaj.
tag:
name: Mund të ndryshoni shkronjat vetëm nga të mëdha në të vogla ose anasjelltas, për shembull, për t’i bërë më të lexueshme
+ terms_of_service:
+ changelog: Mund të strukturohet me sintaksë Markdown.
+ text: Mund të strukturohet me sintaksë Markdown.
+ terms_of_service_generator:
+ admin_email: Njoftimet ligjore përfshijnë kundërnjoftime, vendime gjyqi, kërkesa për për nxjerrje sajti jashtë shërbimit dhe kërkesa nga organe ligjore.
+ arbitration_address: Mund të jetë e njëjtë me adresën Fizike më sipër, ose “N/A”, nëse përdoret email
+ arbitration_website: Mund të jetë një formular web, ose “N/A”, nëse përdoret email
+ dmca_email: Mund të jetë i njëjti email i përdorur për “Adresë email për njoftime ligjore” më sipëer
+ domain: Identifikues unik për shërbimin internetor që po ofroni.
+ jurisdiction: Vendosni vendin ku jeton cilido që paguan faturat. Nëse është një shoqëri apo tjetër njësi, vendosni vendin ku është regjistruar, si dhe qytetin, rajonin, territorin apo shtetin përkatës.
user:
chosen_languages: Në iu vëntë shenjë, te rrjedha kohore publike do të shfaqen vetëm mesazhe në gjuhët e përzgjedhura
role: Roli kontrollon cilat leje ka përdoruesi.
@@ -319,6 +329,17 @@ sq:
name: Hashtag
trendable: Lejoje këtë hashtag të shfaqet në prirje
usable: Lejoji postimet të përdorin lokalisht këtë hashtag
+ terms_of_service:
+ changelog: Ç’ka ndryshuar?
+ text: Kushte Shërbimi
+ terms_of_service_generator:
+ admin_email: Adresë email për njoftime ligjore
+ arbitration_address: Adresë fizike për njoftime arbitrazhi
+ arbitration_website: Sajtin për parashtrim njoftime arbitrazhi
+ dmca_address: Adresë fizike për njoftime DMCA/të drejtash kopjimi
+ dmca_email: Adresë email për njoftime DMCA/të drejtash kopjimi
+ domain: Përkatësi
+ jurisdiction: Juridiksion ligjor
user:
role: Rol
time_zone: Zonë kohore
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index 599b63ea6a..1ef07d0328 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -319,6 +319,9 @@ tr:
name: Etiket
trendable: Bu etiketin gündem altında görünmesine izin ver
usable: Gönderilerin yerelde bu etiketi kullanmasına izin ver
+ terms_of_service:
+ changelog: Ne Değişti?
+ text: Hizmet Şartları
user:
role: Rol
time_zone: Zaman dilimi
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index cbbb1556ee..b2c37d8dd3 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -130,6 +130,17 @@ zh-CN:
show_application: 无论如何,你始终可以看到是哪个应用发布了你的嘟文。
tag:
name: 你只能改变字母的大小写,让它更易读
+ terms_of_service:
+ changelog: 可以使用 Markdown 语法。
+ text: 可以使用 Markdown 语法。
+ terms_of_service_generator:
+ admin_email: 法务通知包括反通知、法院命令、内容下架要求与执法机关的要求。
+ arbitration_address: 可以与上面的实际地址相同,若使用邮箱,则填写“N/A”
+ arbitration_website: 可以为网页表单,若使用邮箱,则填写“N/A”
+ dmca_address: 如果你是位于美国的运营者,请使用在 DMCA 指定代表名录中注册的地址。如果你需要使用邮政信箱,可以直接申请。请使用 DMCA 指定代表邮政信箱豁免申请表,通过电子邮件联系版权办公室,并声明你是居家内容审核员,因担心审核操作会招致报复或打击报复,需要使用邮政信箱以避免公开家庭住址。
+ dmca_email: 可使用与上方“法务通知接收邮箱地址”相同的邮箱地址。
+ domain: 你所提供的在线服务的唯一标识。
+ jurisdiction: 请列出支付运营费用者所在的国家/地区。如果为公司或其他实体,请列出其注册的国家/地区以及相应的城市、地区、领地或州。
user:
chosen_languages: 仅选中语言的嘟文会出现在公共时间线上(全不选则显示所有语言的嘟文)
role: 角色用于控制用户拥有的权限。
@@ -319,6 +330,17 @@ zh-CN:
name: 话题
trendable: 允许在热门下显示此话题
usable: 允许本站嘟文使用此话题
+ terms_of_service:
+ changelog: 变更说明
+ text: 服务条款
+ terms_of_service_generator:
+ admin_email: 接收法务通知的邮箱地址
+ arbitration_address: 仲裁通知的实际送达地址
+ arbitration_website: 仲裁通知的在线提交入口
+ dmca_address: DMCA/版权通知的实际地址
+ dmca_email: 接收DMCA/版权通知的邮箱地址
+ domain: 域名
+ jurisdiction: 法律管辖区
user:
role: 角色
time_zone: 时区
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index c1a3a8d6d9..48a7941f76 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -130,6 +130,17 @@ zh-TW:
show_application: 將總是顯示您發嘟文之應用程式
tag:
name: 您只能變更大小寫,例如,以使其更易讀。
+ terms_of_service:
+ changelog: 能以 Markdown 語法撰寫。
+ text: 能以 Markdown 語法撰寫。
+ terms_of_service_generator:
+ admin_email: 法律通知包含反駁通知、法院命令、刪除請求和執法單位請求。
+ arbitration_address: 能與上述相同之實體地址,或「N/A」如使用 email
+ arbitration_website: 能為網路表單,或「N/A」如使用 email
+ dmca_address: 位於美國的運營團隊,請使用於 DMCA 指定代理目錄中註冊之地址。可直接請求 PO Box 清單,使用 DMCA 指定代理郵局信箱豁免請求向版權局發送電子郵件,並描述您是一名在家工作之內容管理員,擔心您的行為將遭報復,需要使用 PO Box 保護您的私人住址。
+ dmca_email: 能使用上述用於「法律通知用途電子郵件」之相同電子郵件
+ domain: 您所提供線上服務之唯一識別。
+ jurisdiction: 列出帳單支付人之居住國家。若為公司或其他實體,請列出其註冊地所在的國家,及城市、地區、領土、或州別等。
user:
chosen_languages: 當選取時,只有選取語言之嘟文會於公開時間軸中顯示
role: 角色控制使用者有哪些權限。
@@ -319,6 +330,17 @@ zh-TW:
name: 主題標籤
trendable: 允許此主題標籤於熱門趨勢下顯示
usable: 允許嘟文使用此主題標籤
+ terms_of_service:
+ changelog: 有何異動?
+ text: 服務條款
+ terms_of_service_generator:
+ admin_email: 法律通知用途電子郵件
+ arbitration_address: 仲裁通知之實體地址
+ arbitration_website: 提交仲裁通知之網站
+ dmca_address: DMCA 或版權通知之實體地址
+ dmca_email: DMCA 或版權通知之電子郵件地址
+ domain: 網域
+ jurisdiction: 司法管轄區
user:
role: 角色
time_zone: 時區
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index f6a7d34cff..4ac12b67a4 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -214,6 +214,7 @@ sq:
enable_user: Aktivizo Përdorues
memorialize_account: Bëje Llogari Përkujtimore
promote_user: Promovojeni Përdoruesin
+ publish_terms_of_service: Boto Kushte Shërbimi
reject_appeal: Hidheni Poshtë Apelimin
reject_user: Hidhe Poshtë Përdoruesin
remove_avatar_user: Hiqe Avatarin
@@ -278,6 +279,7 @@ sq:
enable_user_html: "%{name} aktivizoi hyrje për përdoruesin %{target}"
memorialize_account_html: "%{name} e shndërroi llogarinë e %{target} në një faqe përkujtimore"
promote_user_html: "%{name} gradoi përdoruesin %{target}"
+ publish_terms_of_service_html: "%{name} botoi përditësime të kushteve të shërbimit"
reject_appeal_html: "%{name} hodhi poshtë apelim vendimi moderimi nga %{target}"
reject_user_html: "%{name} hodhi poshtë regjistrimin nga %{target}"
remove_avatar_user_html: "%{name} hoqi avatarin e %{target}"
@@ -920,6 +922,35 @@ sq:
search: Kërkim
title: Hashtag-ë
updated_msg: Rregullimet për hashtag-ët u përditësuan me sukses
+ terms_of_service:
+ back: Mbrapsht te kushte shërbimi
+ changelog: Ç’ka ndryshuar
+ create: Përdorni tuajat
+ current: Të tanishmet
+ draft: Skicë
+ generate: Përdorni gjedhe
+ generates:
+ action: Prodhoji
+ chance_to_review_html: "Termat e shërbimit të prodhuar s’do të botohen automatikisht. Do të keni një mundësi të shqyrtoni përfundimet. Ju lutemi, që të vazhdohet, plotësoni hollësitë e nevojshme."
+ explanation_html: Gjedhja e dhënë për kushtet e shërbimit është vetëm për qëllime njohjeje dhe s’duhet marrë si këshillë ligjore, për çfarëdo çështje. Ju lutemi, për situatën tuaj dhe pyetje specifike ligjore, lidhuni me juristin tuaj.
+ title: Ujdisje Termash Shërbimi
+ history: Historik
+ live: Drejtpërdrejt
+ no_history: Ende s’ka ndryshime të regjistruara të kushteve të shërbimit.
+ no_terms_of_service_html: Aktualisht s’keni të formësuar terma shërbimit. Termat e shërbimit janë menduar të japin qartësi dhe t’ju mbrojnë nga penalitete potenciale në çështje gjyqësore me përdoruesit tuaj.
+ notified_on_html: Përdoruesi u njoftuan më %{date}
+ notify_users: Njoftoji përdoruesit
+ preview:
+ explanation_html: 'Email-i do t’u dërgohet %{display_count} përdoruesve që janë regjistruar para %{date}. Te email-i do të përfshihet teksti vijues:'
+ send_preview: Dërgo paraparje te %{email}
+ send_to_all:
+ one: Dërgo %{display_count} email
+ other: Dërgo %{display_count} email-e
+ title: Bëni paraparje të njoftimit të shërbimt
+ publish: Botoje
+ published_on_html: Botuar më %{date}
+ save_draft: Ruaje skicën
+ title: Kushte Shërbimi
title: Administrim
trends:
allow: Lejojeni
@@ -1150,6 +1181,7 @@ sq:
set_new_password: Caktoni fjalëkalim të ri
setup:
email_below_hint_html: Shihni te dosja juaj e të padëshiruarve, ose kërkoni një tjetër. Mundeni të saktësoni adresën tuaj email, nëse është gabim.
+ email_settings_hint_html: Që të filloni të përdorni Mastodon-in, klikoni mbi lidhjen që dërguam te%{email}. Do të presim këtu.
link_not_received: S’morët lidhje?
new_confirmation_instructions_sent: Brenda pak mintuash do të merrni një email të ri me lidhjen e ripohimit!
title: Shihni te email-et tuaj
@@ -1158,6 +1190,7 @@ sq:
title: Bëni hyrjen te %{domain}
sign_up:
manual_review: Regjistrimet te %{domain} kalojnë një shqyrtim dorazi nga moderatorët tanë. Që të na ndihmoni të përfundojmë regjistrimin tuaj, na shkruani pakëz mbi veten dhe pse doni një llogari në %{domain}.
+ preamble: Me një llogari te ky shërbyes Mastodon do të jeni në gjendje të ndiqni cilindo person në fedivers, pavarësisht se ku strehohet llogaria e tij.
title: Le të ujdisim llogarinë tuaj në %{domain}.
status:
account_status: Gjendje llogarie
@@ -1169,6 +1202,7 @@ sq:
view_strikes: Shihni paralajmërime të dikurshme kundër llogarisë tuaj
too_fast: Formulari u parashtrua shumë shpejt, riprovoni.
use_security_key: Përdor kyç sigurie
+ user_agreement_html: I kam lexuar dhe pajtohen me kushtet e shërbimit dhe rregullat e privatësisë
author_attribution:
example_title: Tekst shembull
hint_html: Shkruani lajme, apo artikuj blogu jashtë Mastodon-it? Kontrolloni se si ju jepet hakë, kur ndahen me të tjerët në Mastodon.
@@ -1830,6 +1864,8 @@ sq:
too_late: Është shumë vonë për apelim të këtij paralajmërimi
tags:
does_not_match_previous_name: s’përputhet me emrin e mëparshëm
+ terms_of_service:
+ title: Kushte Shërbimi
themes:
contrast: Mastodon (Me shumë kontrast)
default: Mastodon (I errët)
@@ -1890,6 +1926,15 @@ sq:
further_actions_html: Nëse s’ishit ju, këshillojmë të %{action} menjëherë dhe të aktivizoni mirëfilltësim dyfaktorësh, për ta mbajtur llogarinë tuaj të sigurt.
subject: Llogaria juaj është përdorur që nga një adresë e re IP
title: Hyrje e re
+ terms_of_service_changed:
+ agreement: Duke vazhduar të përdorni %{domain}, pajtoheni më këto terma. Nëse s’pajtoheni me termat e përditësuar, mund të përfundoni pajtimin tuaj me %{domain} në çfarëdo kohe, përmes fshirjes së llogarisë tuaj.
+ changelog: 'Me një vështrim, ja se ç’do të thotë ky përditësim për ju:'
+ description: 'Po e merrni këtë email ngaqë po bëjmë disa ndryshime te kushtet tona të shërbimit në %{domain}. Ju nxisim të shqyrtoni termat e përditësuar të plotë këtu:'
+ description_html: Po e merrni këtë email ngaqë po bëjmë disa ndryshime në kushtet tona të shërbimit te %{domain}. Ju nxisim të shqyrtoni termat e përditësuar të plotë këtu.
+ sign_off: Ekipi i %{domain}
+ subject: Përditësime të termave tanë të shërbimit
+ subtitle: Termat e shërbimit të %{domain} po ndryshojnë
+ title: Përditësim i rëndësishëm
warning:
appeal: Parashtroni një apelim
appeal_description: Nëse besoni se është gabim, mund t’i parashtroni një apelim stafit të %{instance}.
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index e947964339..48e8381189 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -925,6 +925,21 @@ tr:
search: Ara
title: Etiketler
updated_msg: Etiket ayarları başarıyla güncellendi
+ terms_of_service:
+ back: Hizmet şartlarına dön
+ changelog: Ne Değişti
+ current: Şimdiki
+ draft: Taslak
+ generate: Şablon kullan
+ generates:
+ action: Oluştur
+ history: Tarihçe
+ live: Canlı
+ notify_users: Kullanıcılara bildir
+ publish: Yayınla
+ published_on_html: "%{date} tarihinde yayınlandı"
+ save_draft: Taslağı kaydet
+ title: Hizmet Şartları
title: Yönetim
trends:
allow: İzin ver
@@ -1156,6 +1171,7 @@ tr:
set_new_password: Yeni parola belirle
setup:
email_below_hint_html: İstenmeyenler dizininize bakın veya başka bir onay bağlantısı isteyin. Eğer yanlışsa e-posta adresinizi de düzeltebilirsiniz.
+ email_settings_hint_html: Mastodon kullanmaya başlamak %{email} adresine gönderdiğimiz bağlantıya tıklayın. Sizi burada bekliyoruz.
link_not_received: Bağlantı gelmedi mi?
new_confirmation_instructions_sent: Birkaç dakika içerisinde onaylama bağlantısını içeren yeni bir e-posta alacaksınız!
title: Gelen kutunuzu kontrol edin
@@ -1164,6 +1180,7 @@ tr:
title: "%{domain} giriş yapın"
sign_up:
manual_review: "%{domain} kayıtları moderatörler tarafından manuel olarak inceleniyor. Kaydınızı işlememizi kolaylaştırmak için kendiniz ve %{domain} sunucusundan neden hesap istediğiniz hakkında biraz bilgi verin."
+ preamble: Bu Mastodon sunucusu üzerinden bir hesap ile fediverseteki herhangi bir kişiyi, hangi sunucuda olursa olsun, takip edebilirsiniz.
title: "%{domain} için kurulumunuzu yapalım."
status:
account_status: Hesap durumu
@@ -1836,6 +1853,8 @@ tr:
too_late: Bu eyleme itiraz etmek için çok geç
tags:
does_not_match_previous_name: önceki adla eşleşmiyor
+ terms_of_service:
+ title: Hizmet Şartları
themes:
contrast: Mastodon (Yüksek karşıtlık)
default: Mastodon (Karanlık)
@@ -1896,6 +1915,10 @@ tr:
further_actions_html: Eğer oturum açan siz değildiyseniz, hesabınızı güvenli tutmanız için hemen %{action} yapmanızı ve iki aşamalı yetkilendirmeyi etkinleştirmenizi öneriyoruz.
subject: Hesabınıza yeni bir IP adresinden erişim oldu
title: Yeni bir oturum açma
+ terms_of_service_changed:
+ sign_off: "%{domain} Ekibi"
+ subject: Şimdiki hizmet şartlarımıza güncellemeler
+ title: Önemli güncelleme
warning:
appeal: Bir itiraz gönder
appeal_description: Bunun bir hata olduğunu düşünüyorsanız, %{instance} sunucusunun personeline bir itiraz gönderebilirsiniz.
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 000bac6170..0478ce6d3b 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1177,6 +1177,7 @@ uk:
set_new_password: Встановити новий пароль
setup:
email_below_hint_html: Перевірте теку "Спам", або зробіть ще один запит. Ви можете виправити свою електронну адресу, якщо вона неправильна.
+ email_settings_hint_html: Натисніть посилання, надіслане на %{email} щоб почати використання Mastodon. Ми чекатимемо тут.
link_not_received: Не отримали посилання?
new_confirmation_instructions_sent: Ви отримаєте новий лист із посиланням для підтвердження протягом кількох хвилин!
title: Перевірте вашу поштову скриньку
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index c718e94457..3f37aef747 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -211,6 +211,7 @@ vi:
enable_user: Cho phép đăng nhập
memorialize_account: Gán tưởng niệm
promote_user: Nâng vai trò
+ publish_terms_of_service: Đăng Điều khoản Dịch vụ
reject_appeal: Từ chối khiếu nại
reject_user: Từ chối đăng ký
remove_avatar_user: Xóa ảnh đại diện
@@ -1138,6 +1139,7 @@ vi:
set_new_password: Đặt mật khẩu mới
setup:
email_below_hint_html: Kiểm tra hộp thư rác hoặc yêu cầu gửi lại. Bạn có thể sửa địa chỉ email của mình nếu sai.
+ email_settings_hint_html: Nhấn vào link được gửi đến %{email} để bắt đầu dùng Mastodon. Chúng tôi đợi bạn.
link_not_received: Không nhận được mã?
new_confirmation_instructions_sent: Bạn sẽ nhận được một email mới với liên kết xác minh sau vài phút!
title: Kiểm tra email của bạn
@@ -1146,6 +1148,7 @@ vi:
title: Đăng nhập %{domain}
sign_up:
manual_review: "%{domain} sẽ duyệt đăng ký thủ công. Để giúp chúng tôi duyệt nhanh, hãy viết một chút về bản thân và lý do bạn muốn có một tài khoản trên %{domain}."
+ preamble: Với tài khoản trên máy chủ Mastodon này, bạn sẽ có thể theo dõi bất kỳ người nào trên các máy chủ khác, bất kể tài khoản của họ ở đâu.
title: Đang đăng ký trên %{domain}.
status:
account_status: Trạng thái tài khoản
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 681de6186f..d0520b6afc 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -211,6 +211,7 @@ zh-CN:
enable_user: 启用用户
memorialize_account: 设为追悼账户
promote_user: 指派管理员
+ publish_terms_of_service: 发布服务条款
reject_appeal: 驳回申诉
reject_user: 拒绝用户
remove_avatar_user: 移除头像
@@ -275,6 +276,7 @@ zh-CN:
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} 的头像"
@@ -911,6 +913,34 @@ zh-CN:
search: 搜索
title: 话题
updated_msg: 话题设置更新成功
+ terms_of_service:
+ back: 返回服务条款页
+ changelog: 变更说明
+ create: 自定义
+ current: 当前版本
+ draft: 草案
+ generate: 使用模板
+ generates:
+ action: 生成
+ chance_to_review_html: "服务条款生成后不会自动发布。你可以审核生成的草案,填写必要的信息后继续操作。"
+ explanation_html: 此服务条款模板仅供参考,不构成法律意见。如有任何法律问题,请咨询法律顾问。
+ title: 设置服务条款
+ history: 历史记录
+ live: 生效中
+ no_history: 尚无服务条款变更记录。
+ no_terms_of_service_html: 你还没有设置任何服务条款。设置服务条款可以清晰地界定责任,并在与用户发生争议时有效保护您的权益。
+ notified_on_html: 已于 %{date} 通知用户
+ notify_users: 通知用户
+ preview:
+ explanation_html: 即将向在 %{date} 注册之前的 %{display_count} 名用户发送邮件。下述文本将会包含在邮件中:
+ send_preview: 向 %{email} 发送预览
+ send_to_all:
+ other: 发送 %{display_count} 封邮件
+ title: 服务条款变更通知预览
+ publish: 发布
+ published_on_html: 发表于 %{date}
+ save_draft: 保存草案
+ title: 服务条款
title: 管理
trends:
allow: 允许
@@ -1138,6 +1168,7 @@ zh-CN:
set_new_password: 设置新密码
setup:
email_below_hint_html: 请检查你的垃圾邮件文件夹,或请求重新发送邮件。如果你填写的邮箱地址有误,请更正。
+ email_settings_hint_html: 点击发送到 %{email} 的链接,即可开始使用 Mastodon。
link_not_received: 没有收到链接?
new_confirmation_instructions_sent: 你将在几分钟内收到一封带有确认链接的新邮件!
title: 请检查你的收件箱
@@ -1146,6 +1177,7 @@ zh-CN:
title: 登录到 %{domain}
sign_up:
manual_review: 你在 %{domain} 上的注册需要经由管理人员手动审核。 为了帮助我们处理你的注册,请简要说明你为什么想在 %{domain} 上注册。
+ preamble: 在这个 Mastodon 站点上注册一个账户,你就可以关注联邦宇宙中的任何人,无论他们的账户在哪里。
title: 让我们在 %{domain} 上开始。
status:
account_status: 账户状态
@@ -1157,6 +1189,7 @@ zh-CN:
view_strikes: 查看针对你账号的处罚记录
too_fast: 表单提交过快,请重试。
use_security_key: 使用安全密钥
+ user_agreement_html: 我已阅读并同意 服务条款 与 隐私政策
author_attribution:
example_title: 示例文本
hint_html: 你是否在 Mastodon 之外撰写新闻或博客文章?控制它们被分享到 Mastodon 时的署名方式。
@@ -1794,6 +1827,8 @@ zh-CN:
too_late: 已来不及对此次处罚提出申诉
tags:
does_not_match_previous_name: 和之前的名称不匹配
+ terms_of_service:
+ title: 服务条款
themes:
contrast: Mastodon (高对比度)
default: Mastodon (暗色)
@@ -1854,6 +1889,15 @@ zh-CN:
further_actions_html: 如果不是你本人操作,我们建议你立即 %{action} 并启用双因素认证,以确保账号安全。
subject: 已有新 IP 地址访问了你的账号
title: 一次新登录
+ terms_of_service_changed:
+ agreement: 继续使用你在 %{domain} 的账户即表示您同意这些条款。如果你不同意更新后的条款,你可以随时删除账户以终止与 %{domain} 的协议。
+ changelog: 本次更新的要点如下:
+ description: 你收到此邮件是因为我们更新了 %{domain} 的服务条款。我们建议你在此查看变更后的服务条款:
+ description_html: 你收到此邮件是因为我们更新了 %{domain} 的服务条款。我们建议你在此查看变更后的服务条款。
+ sign_off: "%{domain} 运营团队"
+ subject: 服务条款变更
+ subtitle: "%{domain} 更新了服务条款"
+ title: 重要变更
warning:
appeal: 提交申诉
appeal_description: 如果你认为此结果有误,可以向 %{instance} 的工作人员提交申诉。
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index a2bcf41a02..cf215240e9 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -211,6 +211,7 @@ zh-TW:
enable_user: 啓用帳號
memorialize_account: 設定成追悼帳號
promote_user: 將用戶升級
+ publish_terms_of_service: 發佈服務條款
reject_appeal: 駁回申訴
reject_user: 回絕使用者
remove_avatar_user: 刪除大頭貼
@@ -275,6 +276,7 @@ zh-TW:
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} 的大頭貼"
@@ -913,6 +915,34 @@ zh-TW:
search: 搜尋
title: 主題標籤
updated_msg: 成功更新主題標籤設定
+ terms_of_service:
+ back: 回到服務條款
+ changelog: 有何異動
+ create: 使用您自己的
+ current: 目前
+ draft: 草稿
+ generate: 使用模板
+ generates:
+ action: 產生
+ chance_to_review_html: "所產生之服務條款將不會自動發佈。 您將能檢視所產生之結果。請填寫必要細節以繼續。"
+ explanation_html: 提供之服務條款模板僅供參考資訊使用,不應將其作為任何法律建議。請依照您的具體情形與特定法律議題諮詢您的法律顧問。
+ title: 設定服務條款
+ history: 歷史
+ live: 目前版本
+ no_history: 未有任何服務條款變更紀錄。
+ no_terms_of_service_html: 您目前尚未設定任何服務條款。服務條款旨在提供明確性,並保護您與使用者的爭議中免受潛在責任。
+ notified_on_html: 於 %{date} 通知之使用者
+ notify_users: 通知使用者
+ preview:
+ explanation_html: 此 email 將寄至於 %{date} 前註冊之 %{display_count} 名使用者。以下文字將被包含於 e-mail 中:
+ send_preview: 將預覽寄至 %{email}
+ send_to_all:
+ other: 寄出 %{display_count} 封 email
+ title: 預覽服務條款通知
+ publish: 發佈
+ published_on_html: 發佈於 %{date}
+ save_draft: 儲存草稿
+ title: 服務條款
title: 管理介面
trends:
allow: 允許
@@ -1140,6 +1170,7 @@ zh-TW:
set_new_password: 設定新密碼
setup:
email_below_hint_html: 請檢查您的垃圾郵件資料夾,或是請求另一封驗證信。若不正確,您可以更正您的電子郵件地址。
+ email_settings_hint_html: 請點擊我們寄至 %{email} 之連結以開始使用 Mastodon。我們將於此稍候。
link_not_received: 無法取得連結嗎?
new_confirmation_instructions_sent: 您將於幾分鐘之內收到新的包含驗證連結之電子郵件!
title: 請檢查您的收件匣
@@ -1148,6 +1179,7 @@ zh-TW:
title: 登入 %{domain}
sign_up:
manual_review: "%{domain} 上的註冊由我們的管理員進行人工審核。為協助我們處理您的註冊,請寫一些關於您自己的資訊以及您欲於 %{domain} 上註冊帳號之原因。"
+ preamble: 若於此 Mastodon 伺服器擁有帳號,您將能跟隨聯邦宇宙中任何一份子,無論他們的帳號託管於何處。
title: 讓我們一起設定 %{domain} 吧!
status:
account_status: 帳號狀態
@@ -1159,6 +1191,7 @@ zh-TW:
view_strikes: 檢視針對您帳號過去的警示
too_fast: 送出表單的速度太快跟不上,請稍後再試。
use_security_key: 使用安全金鑰
+ user_agreement_html: 我已閱讀並同意 服務條款 與 隱私權政策
author_attribution:
example_title: 範例文字
hint_html: 您是否正於 Mastodon 之外撰寫新聞或部落格文章?控制當它們於 Mastodon 上分享時您如何獲得信譽。
@@ -1796,6 +1829,8 @@ zh-TW:
too_late: 您太晚申訴這個警示了
tags:
does_not_match_previous_name: 與先前的名稱不吻合
+ terms_of_service:
+ title: 服務條款
themes:
contrast: Mastodon(高對比)
default: Mastodon(深色)
@@ -1856,6 +1891,15 @@ zh-TW:
further_actions_html: 如果這個不是您,我們建議您立即 %{action} ,並且啟用二階段驗證 (2FA) 以確保帳號安全。
subject: 您的帳號已被新 IP 位址存取
title: 新登入
+ terms_of_service_changed:
+ agreement: 透過繼續使用 %{domain},您將同意這些條款。若您不同意此條款異動,您能隨時終止與 %{domain} 之協議並刪除您的帳號。
+ changelog: 簡而言之,此次更新對您將意味著:
+ description: 您收到此 e-mail 係因我們正在更新 %{domain} 之服務條款。我們鼓勵您審視此處之服務條款更新全文:
+ description_html: 您收到此 e-mail 係因我們正在更新 %{domain} 之服務條款。我們鼓勵您審視 此處之服務條款更新全文。
+ sign_off: "%{domain} 團隊"
+ subject: 我們的服務條款更新
+ subtitle: "%{domain} 之服務條款正在悄悄發生變化"
+ title: 重要更新
warning:
appeal: 遞交申訴
appeal_description: 若您認為這是錯誤,您可以向 %{instance} 的工作人員提出申訴。
From 58c5068bda2967c663202d955e65b7420db03b01 Mon Sep 17 00:00:00 2001
From: Claire
Date: Tue, 10 Dec 2024 14:02:17 +0100
Subject: [PATCH 062/175] Fix Chromium showing scrollbar on embedded posts
(#33237)
---
app/javascript/entrypoints/embed.tsx | 4 ++++
app/javascript/styles/mastodon/basics.scss | 8 +-------
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/app/javascript/entrypoints/embed.tsx b/app/javascript/entrypoints/embed.tsx
index f8c824d287..cb62727563 100644
--- a/app/javascript/entrypoints/embed.tsx
+++ b/app/javascript/entrypoints/embed.tsx
@@ -60,6 +60,10 @@ window.addEventListener('message', (e) => {
const data = e.data;
+ // Only set overflow to `hidden` once we got the expected `message` so the post can still be scrolled if
+ // embedded without parent Javascript support
+ document.body.style.overflow = 'hidden';
+
// We use a timeout to allow for the React page to render before calculating the height
afterInitialRender(() => {
window.parent.postMessage(
diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss
index 1a74d8d52d..ec6e4d0a9a 100644
--- a/app/javascript/styles/mastodon/basics.scss
+++ b/app/javascript/styles/mastodon/basics.scss
@@ -107,13 +107,7 @@ body {
&.embed {
margin: 0;
padding-bottom: 0;
-
- .container {
- position: absolute;
- width: 100%;
- height: 100%;
- overflow: hidden;
- }
+ overflow: hidden;
}
&.admin {
From 7d52b2456928c8cd1ec830f2a8b39098218d1ce3 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 08:02:52 -0500
Subject: [PATCH 063/175] Add coverage for `AccountPin` model (#33231)
---
app/models/account_pin.rb | 2 +-
spec/models/account_pin_spec.rb | 33 +++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 1 deletion(-)
create mode 100644 spec/models/account_pin_spec.rb
diff --git a/app/models/account_pin.rb b/app/models/account_pin.rb
index 6c78e8c446..2dc32809b8 100644
--- a/app/models/account_pin.rb
+++ b/app/models/account_pin.rb
@@ -23,6 +23,6 @@ class AccountPin < ApplicationRecord
private
def validate_follow_relationship
- errors.add(:base, I18n.t('accounts.pin_errors.following')) unless account.following?(target_account)
+ errors.add(:base, I18n.t('accounts.pin_errors.following')) unless account&.following?(target_account)
end
end
diff --git a/spec/models/account_pin_spec.rb b/spec/models/account_pin_spec.rb
new file mode 100644
index 0000000000..b3460da2fb
--- /dev/null
+++ b/spec/models/account_pin_spec.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe AccountPin do
+ describe 'Associations' do
+ it { is_expected.to belong_to(:account).required }
+ it { is_expected.to belong_to(:target_account).required }
+ end
+
+ describe 'Validations' do
+ describe 'the follow relationship' do
+ subject { Fabricate.build :account_pin, account: account }
+
+ let(:account) { Fabricate :account }
+ let(:target_account) { Fabricate :account }
+
+ context 'when account is following target account' do
+ before { account.follow!(target_account) }
+
+ it { is_expected.to allow_value(target_account).for(:target_account).against(:base) }
+ end
+
+ context 'when account is not following target account' do
+ it { is_expected.to_not allow_value(target_account).for(:target_account).against(:base).with_message(not_following_message) }
+
+ def not_following_message
+ I18n.t('accounts.pin_errors.following')
+ end
+ end
+ end
+ end
+end
From 2a369a8977ca3f1fad4e9210a717c70b545f0df4 Mon Sep 17 00:00:00 2001
From: Renaud Chaput
Date: Tue, 10 Dec 2024 14:16:52 +0100
Subject: [PATCH 064/175] Use a system setting for the Referer policy (#33239)
---
app/controllers/concerns/web_app_controller_concern.rb | 7 +++++++
config/environments/production.rb | 2 +-
config/settings.yml | 1 +
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/app/controllers/concerns/web_app_controller_concern.rb b/app/controllers/concerns/web_app_controller_concern.rb
index 249bb20a25..1d8ee43507 100644
--- a/app/controllers/concerns/web_app_controller_concern.rb
+++ b/app/controllers/concerns/web_app_controller_concern.rb
@@ -7,6 +7,7 @@ module WebAppControllerConcern
vary_by 'Accept, Accept-Language, Cookie'
before_action :redirect_unauthenticated_to_permalinks!
+ before_action :set_referer_header
content_security_policy do |p|
policy = ContentSecurityPolicy.new
@@ -41,4 +42,10 @@ module WebAppControllerConcern
end
end
end
+
+ protected
+
+ def set_referer_header
+ response.set_header('Referrer-Policy', Setting.allow_referrer_origin ? 'origin' : 'same-origin')
+ end
end
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 4b1d327d93..6d4c30cd20 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -153,7 +153,7 @@ Rails.application.configure do
'X-Frame-Options' => 'DENY',
'X-Content-Type-Options' => 'nosniff',
'X-XSS-Protection' => '0',
- 'Referrer-Policy' => ENV['ALLOW_REFERRER_ORIGIN'] == 'true' ? 'origin' : 'same-origin',
+ 'Referrer-Policy' => 'same-origin',
}
# TODO: Remove once devise-two-factor data migration complete
diff --git a/config/settings.yml b/config/settings.yml
index 673a4c1be2..ba81fcb8c6 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -51,6 +51,7 @@ defaults: &defaults
require_invite_text: false
backups_retention_period: 7
captcha_enabled: false
+ allow_referer_origin: false
development:
<<: *defaults
From c72083ad68ba7a23f82eb1788637fd91ffc9c570 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 09:14:28 -0500
Subject: [PATCH 065/175] Add system spec for TOS page (#33243)
---
spec/system/terms_of_service_spec.rb | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 spec/system/terms_of_service_spec.rb
diff --git a/spec/system/terms_of_service_spec.rb b/spec/system/terms_of_service_spec.rb
new file mode 100644
index 0000000000..0de12bae36
--- /dev/null
+++ b/spec/system/terms_of_service_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Terms of Service page' do
+ it 'visits the about page and renders the web app' do
+ visit terms_of_service_path
+
+ expect(page)
+ .to have_css('noscript', text: /Mastodon/)
+ .and have_css('body', class: 'app-body')
+ end
+end
From 19c6cb82f63f44627fc38d586c0517b7b79fb9e9 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 09:45:14 -0500
Subject: [PATCH 066/175] Add coverage for
`Admin::DistributeTermsOfServiceNotificationWorker` class (#33245)
---
...rms_of_service_notification_worker_spec.rb | 32 +++++++++++++++++++
1 file changed, 32 insertions(+)
create mode 100644 spec/workers/admin/distribute_terms_of_service_notification_worker_spec.rb
diff --git a/spec/workers/admin/distribute_terms_of_service_notification_worker_spec.rb b/spec/workers/admin/distribute_terms_of_service_notification_worker_spec.rb
new file mode 100644
index 0000000000..27ddfb28bc
--- /dev/null
+++ b/spec/workers/admin/distribute_terms_of_service_notification_worker_spec.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::DistributeTermsOfServiceNotificationWorker do
+ let(:worker) { described_class.new }
+
+ describe '#perform' do
+ context 'with missing record' do
+ it 'runs without error' do
+ expect { worker.perform(nil) }.to_not raise_error
+ end
+ end
+
+ context 'with valid terms' do
+ let(:terms) { Fabricate(:terms_of_service) }
+ let!(:user) { Fabricate :user, confirmed_at: 3.days.ago }
+
+ it 'sends the terms update via email', :inline_jobs do
+ emails = capture_emails { worker.perform(terms.id) }
+
+ expect(emails.size)
+ .to eq(1)
+ expect(emails.first)
+ .to have_attributes(
+ to: [user.email],
+ subject: I18n.t('user_mailer.terms_of_service_changed.subject')
+ )
+ end
+ end
+ end
+end
From 66266ec6fc335937d319b8ea8687b2c2330f8d97 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 09:45:40 -0500
Subject: [PATCH 067/175] Add coverage for
`UserMailer#terms_of_service_changed` mailer (#33242)
---
spec/mailers/user_mailer_spec.rb | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb
index 0257465817..0a128355b5 100644
--- a/spec/mailers/user_mailer_spec.rb
+++ b/spec/mailers/user_mailer_spec.rb
@@ -272,4 +272,16 @@ RSpec.describe UserMailer do
.and(have_body_text(I18n.t('user_mailer.backup_ready.explanation')))
end
end
+
+ describe '#terms_of_service_changed' do
+ let(:terms) { Fabricate :terms_of_service }
+ let(:mail) { described_class.terms_of_service_changed(receiver, terms) }
+
+ it 'renders terms_of_service_changed mail' do
+ expect(mail)
+ .to be_present
+ .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
+ end
end
From 12eb6b0e6d37b84eb1286124f5994266b3609adc Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 10:09:44 -0500
Subject: [PATCH 068/175] Add coverage for `TermsOfServicePolicy` class
(#33241)
---
spec/policies/terms_of_service_policy_spec.rb | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 spec/policies/terms_of_service_policy_spec.rb
diff --git a/spec/policies/terms_of_service_policy_spec.rb b/spec/policies/terms_of_service_policy_spec.rb
new file mode 100644
index 0000000000..18345d9fd0
--- /dev/null
+++ b/spec/policies/terms_of_service_policy_spec.rb
@@ -0,0 +1,73 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe TermsOfServicePolicy do
+ subject { described_class }
+
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
+ let(:john) { Fabricate(:account) }
+
+ permissions :index?, :create? do
+ it { is_expected.to permit(admin, TermsOfService) }
+ it { is_expected.to_not permit(john, TermsOfService) }
+ end
+
+ permissions :update?, :destroy? do
+ let(:terms) { Fabricate(:terms_of_service, published_at: published) }
+
+ context 'with an unpublished terms' do
+ let(:published) { nil }
+
+ it { is_expected.to permit(admin, terms) }
+ it { is_expected.to_not permit(john, terms) }
+ end
+
+ context 'with a published terms' do
+ let(:published) { 5.days.ago }
+
+ it { is_expected.to_not permit(admin, terms) }
+ it { is_expected.to_not permit(john, terms) }
+ end
+ end
+
+ permissions :distribute? do
+ let(:terms) { Fabricate(:terms_of_service, published_at: published, notification_sent_at: notification) }
+
+ context 'with notification already sent' do
+ let(:notification) { 3.days.ago }
+
+ context 'with published true' do
+ let(:published) { 5.days.ago }
+
+ it { is_expected.to_not permit(admin, terms) }
+ it { is_expected.to_not permit(john, terms) }
+ end
+
+ context 'with published false' do
+ let(:published) { nil }
+
+ it { is_expected.to_not permit(admin, terms) }
+ it { is_expected.to_not permit(john, terms) }
+ end
+ end
+
+ context 'with notification not yet sent' do
+ let(:notification) { nil }
+
+ context 'with published true' do
+ let(:published) { 5.days.ago }
+
+ it { is_expected.to permit(admin, terms) }
+ it { is_expected.to_not permit(john, terms) }
+ end
+
+ context 'with published false' do
+ let(:published) { nil }
+
+ it { is_expected.to_not permit(admin, terms) }
+ it { is_expected.to_not permit(john, terms) }
+ end
+ end
+ end
+end
From 3222c19d455f5c6f73195ff1d07551b092b04397 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 10 Dec 2024 16:10:09 +0100
Subject: [PATCH 069/175] Update dependency nokogiri to v1.17.1 (#33246)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 8c4b045baa..95ead5f93b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -426,7 +426,7 @@ GEM
net-smtp (0.5.0)
net-protocol
nio4r (2.7.4)
- nokogiri (1.17.0)
+ nokogiri (1.17.1)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oj (3.16.7)
From e76aff7de563f1c7afdfdd83e35728ba412d02b8 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 10:45:13 -0500
Subject: [PATCH 070/175] Standardize uniqueness validation declaration on
`Mention` (#33247)
---
app/models/mention.rb | 2 +-
spec/models/mention_spec.rb | 8 +++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/app/models/mention.rb b/app/models/mention.rb
index a508ed630e..e921d41de3 100644
--- a/app/models/mention.rb
+++ b/app/models/mention.rb
@@ -18,7 +18,7 @@ class Mention < ApplicationRecord
has_one :notification, as: :activity, dependent: :destroy
- validates :account, uniqueness: { scope: :status }
+ validates :account_id, uniqueness: { scope: :status_id }
scope :active, -> { where(silent: false) }
scope :silent, -> { where(silent: true) }
diff --git a/spec/models/mention_spec.rb b/spec/models/mention_spec.rb
index 3a9b9fddf2..67c22b5d1f 100644
--- a/spec/models/mention_spec.rb
+++ b/spec/models/mention_spec.rb
@@ -3,8 +3,14 @@
require 'rails_helper'
RSpec.describe Mention do
- describe 'validations' do
+ describe 'Associations' do
it { is_expected.to belong_to(:account).required }
it { is_expected.to belong_to(:status).required }
end
+
+ describe 'Validations' do
+ subject { Fabricate.build :mention }
+
+ it { is_expected.to validate_uniqueness_of(:account_id).scoped_to(:status_id) }
+ end
end
From e4e35ab1348234d3910f8f24f0c3e67c303f3967 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 10:50:49 -0500
Subject: [PATCH 071/175] Add NOT NULL requirement to account columns on
`AccountPin` (#33244)
---
app/models/account_pin.rb | 4 ++--
...not_null_to_account_pin_account_columns.rb | 23 +++++++++++++++++++
db/schema.rb | 6 ++---
3 files changed, 28 insertions(+), 5 deletions(-)
create mode 100644 db/migrate/20241210140838_add_not_null_to_account_pin_account_columns.rb
diff --git a/app/models/account_pin.rb b/app/models/account_pin.rb
index 2dc32809b8..dc05d3cd25 100644
--- a/app/models/account_pin.rb
+++ b/app/models/account_pin.rb
@@ -5,10 +5,10 @@
# Table name: account_pins
#
# id :bigint(8) not null, primary key
-# account_id :bigint(8)
-# target_account_id :bigint(8)
# created_at :datetime not null
# updated_at :datetime not null
+# account_id :bigint(8) not null
+# target_account_id :bigint(8) not null
#
class AccountPin < ApplicationRecord
diff --git a/db/migrate/20241210140838_add_not_null_to_account_pin_account_columns.rb b/db/migrate/20241210140838_add_not_null_to_account_pin_account_columns.rb
new file mode 100644
index 0000000000..69b5b4a025
--- /dev/null
+++ b/db/migrate/20241210140838_add_not_null_to_account_pin_account_columns.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class AddNotNullToAccountPinAccountColumns < ActiveRecord::Migration[7.2]
+ def up
+ connection.execute(<<~SQL.squish)
+ DELETE FROM account_pins
+ WHERE account_id IS NULL
+ OR target_account_id IS NULL
+ SQL
+
+ safety_assured do
+ change_column_null :account_pins, :account_id, false
+ change_column_null :account_pins, :target_account_id, false
+ end
+ end
+
+ def down
+ safety_assured do
+ change_column_null :account_pins, :account_id, true
+ change_column_null :account_pins, :target_account_id, true
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index d28bc5efca..f7f6cf63b3 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[7.2].define(version: 2024_12_05_163118) do
+ActiveRecord::Schema[7.2].define(version: 2024_12_10_140838) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -82,8 +82,8 @@ ActiveRecord::Schema[7.2].define(version: 2024_12_05_163118) do
end
create_table "account_pins", force: :cascade do |t|
- t.bigint "account_id"
- t.bigint "target_account_id"
+ t.bigint "account_id", null: false
+ t.bigint "target_account_id", null: false
t.datetime "created_at", precision: nil, null: false
t.datetime "updated_at", precision: nil, null: false
t.index ["account_id", "target_account_id"], name: "index_account_pins_on_account_id_and_target_account_id", unique: true
From ded799f91302c1ea2ac0b463ef50e309e154466c Mon Sep 17 00:00:00 2001
From: Renaud Chaput
Date: Tue, 10 Dec 2024 23:54:07 +0100
Subject: [PATCH 072/175] Convert polls to Typescript / Immutable Records
(#29789)
---
.../mastodon/actions/importer/index.js | 20 +---
.../mastodon/actions/importer/normalizer.js | 39 +------
.../mastodon/actions/importer/polls.ts | 7 ++
app/javascript/mastodon/actions/polls.js | 61 ----------
app/javascript/mastodon/actions/polls.ts | 40 +++++++
app/javascript/mastodon/api/polls.ts | 10 ++
app/javascript/mastodon/api_types/polls.ts | 4 +-
app/javascript/mastodon/components/poll.jsx | 9 +-
.../mastodon/containers/poll_container.js | 6 +-
app/javascript/mastodon/models/account.ts | 14 +--
.../mastodon/models/custom_emoji.ts | 23 +++-
app/javascript/mastodon/models/poll.ts | 109 ++++++++++++++++++
app/javascript/mastodon/reducers/index.ts | 4 +-
app/javascript/mastodon/reducers/polls.js | 45 --------
app/javascript/mastodon/reducers/polls.ts | 67 +++++++++++
15 files changed, 272 insertions(+), 186 deletions(-)
create mode 100644 app/javascript/mastodon/actions/importer/polls.ts
delete mode 100644 app/javascript/mastodon/actions/polls.js
create mode 100644 app/javascript/mastodon/actions/polls.ts
create mode 100644 app/javascript/mastodon/api/polls.ts
create mode 100644 app/javascript/mastodon/models/poll.ts
delete mode 100644 app/javascript/mastodon/reducers/polls.js
create mode 100644 app/javascript/mastodon/reducers/polls.ts
diff --git a/app/javascript/mastodon/actions/importer/index.js b/app/javascript/mastodon/actions/importer/index.js
index 516a7a7973..047cf11910 100644
--- a/app/javascript/mastodon/actions/importer/index.js
+++ b/app/javascript/mastodon/actions/importer/index.js
@@ -1,10 +1,12 @@
+import { createPollFromServerJSON } from 'mastodon/models/poll';
+
import { importAccounts } from '../accounts_typed';
-import { normalizeStatus, normalizePoll } from './normalizer';
+import { normalizeStatus } from './normalizer';
+import { importPolls } from './polls';
export const STATUS_IMPORT = 'STATUS_IMPORT';
export const STATUSES_IMPORT = 'STATUSES_IMPORT';
-export const POLLS_IMPORT = 'POLLS_IMPORT';
export const FILTERS_IMPORT = 'FILTERS_IMPORT';
function pushUnique(array, object) {
@@ -25,10 +27,6 @@ export function importFilters(filters) {
return { type: FILTERS_IMPORT, filters };
}
-export function importPolls(polls) {
- return { type: POLLS_IMPORT, polls };
-}
-
export function importFetchedAccount(account) {
return importFetchedAccounts([account]);
}
@@ -73,7 +71,7 @@ export function importFetchedStatuses(statuses) {
}
if (status.poll?.id) {
- pushUnique(polls, normalizePoll(status.poll, getState().getIn(['polls', status.poll.id])));
+ pushUnique(polls, createPollFromServerJSON(status.poll, getState().polls.get(status.poll.id)));
}
if (status.card) {
@@ -83,15 +81,9 @@ export function importFetchedStatuses(statuses) {
statuses.forEach(processStatus);
- dispatch(importPolls(polls));
+ dispatch(importPolls({ polls }));
dispatch(importFetchedAccounts(accounts));
dispatch(importStatuses(normalStatuses));
dispatch(importFilters(filters));
};
}
-
-export function importFetchedPoll(poll) {
- return (dispatch, getState) => {
- dispatch(importPolls([normalizePoll(poll, getState().getIn(['polls', poll.id]))]));
- };
-}
diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js
index c09a3f442c..c2918ef8d5 100644
--- a/app/javascript/mastodon/actions/importer/normalizer.js
+++ b/app/javascript/mastodon/actions/importer/normalizer.js
@@ -1,15 +1,12 @@
import escapeTextContentForBrowser from 'escape-html';
+import { makeEmojiMap } from 'mastodon/models/custom_emoji';
+
import emojify from '../../features/emoji/emoji';
import { expandSpoilers } from '../../initial_state';
const domParser = new DOMParser();
-const makeEmojiMap = emojis => emojis.reduce((obj, emoji) => {
- obj[`:${emoji.shortcode}:`] = emoji;
- return obj;
-}, {});
-
export function searchTextFromRawStatus (status) {
const spoilerText = status.spoiler_text || '';
const searchContent = ([spoilerText, status.content].concat((status.poll && status.poll.options) ? status.poll.options.map(option => option.title) : [])).concat(status.media_attachments.map(att => att.description)).join('\n\n').replace(/ /g, '\n').replace(/<\/p>
/g, '\n\n');
@@ -112,38 +109,6 @@ export function normalizeStatusTranslation(translation, status) {
return normalTranslation;
}
-export function normalizePoll(poll, normalOldPoll) {
- const normalPoll = { ...poll };
- const emojiMap = makeEmojiMap(poll.emojis);
-
- normalPoll.options = poll.options.map((option, index) => {
- const normalOption = {
- ...option,
- voted: poll.own_votes && poll.own_votes.includes(index),
- titleHtml: emojify(escapeTextContentForBrowser(option.title), emojiMap),
- };
-
- if (normalOldPoll && normalOldPoll.getIn(['options', index, 'title']) === option.title) {
- normalOption.translation = normalOldPoll.getIn(['options', index, 'translation']);
- }
-
- return normalOption;
- });
-
- return normalPoll;
-}
-
-export function normalizePollOptionTranslation(translation, poll) {
- const emojiMap = makeEmojiMap(poll.get('emojis').toJS());
-
- const normalTranslation = {
- ...translation,
- titleHtml: emojify(escapeTextContentForBrowser(translation.title), emojiMap),
- };
-
- return normalTranslation;
-}
-
export function normalizeAnnouncement(announcement) {
const normalAnnouncement = { ...announcement };
const emojiMap = makeEmojiMap(normalAnnouncement.emojis);
diff --git a/app/javascript/mastodon/actions/importer/polls.ts b/app/javascript/mastodon/actions/importer/polls.ts
new file mode 100644
index 0000000000..5bbe7d57d6
--- /dev/null
+++ b/app/javascript/mastodon/actions/importer/polls.ts
@@ -0,0 +1,7 @@
+import { createAction } from '@reduxjs/toolkit';
+
+import type { Poll } from 'mastodon/models/poll';
+
+export const importPolls = createAction<{ polls: Poll[] }>(
+ 'poll/importMultiple',
+);
diff --git a/app/javascript/mastodon/actions/polls.js b/app/javascript/mastodon/actions/polls.js
deleted file mode 100644
index aa49341444..0000000000
--- a/app/javascript/mastodon/actions/polls.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import api from '../api';
-
-import { importFetchedPoll } from './importer';
-
-export const POLL_VOTE_REQUEST = 'POLL_VOTE_REQUEST';
-export const POLL_VOTE_SUCCESS = 'POLL_VOTE_SUCCESS';
-export const POLL_VOTE_FAIL = 'POLL_VOTE_FAIL';
-
-export const POLL_FETCH_REQUEST = 'POLL_FETCH_REQUEST';
-export const POLL_FETCH_SUCCESS = 'POLL_FETCH_SUCCESS';
-export const POLL_FETCH_FAIL = 'POLL_FETCH_FAIL';
-
-export const vote = (pollId, choices) => (dispatch) => {
- dispatch(voteRequest());
-
- api().post(`/api/v1/polls/${pollId}/votes`, { choices })
- .then(({ data }) => {
- dispatch(importFetchedPoll(data));
- dispatch(voteSuccess(data));
- })
- .catch(err => dispatch(voteFail(err)));
-};
-
-export const fetchPoll = pollId => (dispatch) => {
- dispatch(fetchPollRequest());
-
- api().get(`/api/v1/polls/${pollId}`)
- .then(({ data }) => {
- dispatch(importFetchedPoll(data));
- dispatch(fetchPollSuccess(data));
- })
- .catch(err => dispatch(fetchPollFail(err)));
-};
-
-export const voteRequest = () => ({
- type: POLL_VOTE_REQUEST,
-});
-
-export const voteSuccess = poll => ({
- type: POLL_VOTE_SUCCESS,
- poll,
-});
-
-export const voteFail = error => ({
- type: POLL_VOTE_FAIL,
- error,
-});
-
-export const fetchPollRequest = () => ({
- type: POLL_FETCH_REQUEST,
-});
-
-export const fetchPollSuccess = poll => ({
- type: POLL_FETCH_SUCCESS,
- poll,
-});
-
-export const fetchPollFail = error => ({
- type: POLL_FETCH_FAIL,
- error,
-});
diff --git a/app/javascript/mastodon/actions/polls.ts b/app/javascript/mastodon/actions/polls.ts
new file mode 100644
index 0000000000..28f729394b
--- /dev/null
+++ b/app/javascript/mastodon/actions/polls.ts
@@ -0,0 +1,40 @@
+import { apiGetPoll, apiPollVote } from 'mastodon/api/polls';
+import type { ApiPollJSON } from 'mastodon/api_types/polls';
+import { createPollFromServerJSON } from 'mastodon/models/poll';
+import {
+ createAppAsyncThunk,
+ createDataLoadingThunk,
+} from 'mastodon/store/typed_functions';
+
+import { importPolls } from './importer/polls';
+
+export const importFetchedPoll = createAppAsyncThunk(
+ 'poll/importFetched',
+ (args: { poll: ApiPollJSON }, { dispatch, getState }) => {
+ const { poll } = args;
+
+ dispatch(
+ importPolls({
+ polls: [createPollFromServerJSON(poll, getState().polls.get(poll.id))],
+ }),
+ );
+ },
+);
+
+export const vote = createDataLoadingThunk(
+ 'poll/vote',
+ ({ pollId, choices }: { pollId: string; choices: string[] }) =>
+ apiPollVote(pollId, choices),
+ async (poll, { dispatch, discardLoadData }) => {
+ await dispatch(importFetchedPoll({ poll }));
+ return discardLoadData;
+ },
+);
+
+export const fetchPoll = createDataLoadingThunk(
+ 'poll/fetch',
+ ({ pollId }: { pollId: string }) => apiGetPoll(pollId),
+ async (poll, { dispatch }) => {
+ await dispatch(importFetchedPoll({ poll }));
+ },
+);
diff --git a/app/javascript/mastodon/api/polls.ts b/app/javascript/mastodon/api/polls.ts
new file mode 100644
index 0000000000..07cebca735
--- /dev/null
+++ b/app/javascript/mastodon/api/polls.ts
@@ -0,0 +1,10 @@
+import { apiRequestGet, apiRequestPost } from 'mastodon/api';
+import type { ApiPollJSON } from 'mastodon/api_types/polls';
+
+export const apiGetPoll = (pollId: string) =>
+ apiRequestGet(`/v1/polls/${pollId}`);
+
+export const apiPollVote = (pollId: string, choices: string[]) =>
+ apiRequestPost(`/v1/polls/${pollId}/votes`, {
+ data: { choices },
+ });
diff --git a/app/javascript/mastodon/api_types/polls.ts b/app/javascript/mastodon/api_types/polls.ts
index 8181f7b813..275ca29fd7 100644
--- a/app/javascript/mastodon/api_types/polls.ts
+++ b/app/javascript/mastodon/api_types/polls.ts
@@ -18,6 +18,6 @@ export interface ApiPollJSON {
options: ApiPollOptionJSON[];
emojis: ApiCustomEmojiJSON[];
- voted: boolean;
- own_votes: number[];
+ voted?: boolean;
+ own_votes?: number[];
}
diff --git a/app/javascript/mastodon/components/poll.jsx b/app/javascript/mastodon/components/poll.jsx
index 06b09f5b35..1326131009 100644
--- a/app/javascript/mastodon/components/poll.jsx
+++ b/app/javascript/mastodon/components/poll.jsx
@@ -33,15 +33,10 @@ const messages = defineMessages({
},
});
-const makeEmojiMap = record => record.get('emojis').reduce((obj, emoji) => {
- obj[`:${emoji.get('shortcode')}:`] = emoji.toJS();
- return obj;
-}, {});
-
class Poll extends ImmutablePureComponent {
static propTypes = {
identity: identityContextPropShape,
- poll: ImmutablePropTypes.map.isRequired,
+ poll: ImmutablePropTypes.record.isRequired,
status: ImmutablePropTypes.map.isRequired,
lang: PropTypes.string,
intl: PropTypes.object.isRequired,
@@ -150,7 +145,7 @@ class Poll extends ImmutablePureComponent {
let titleHtml = option.getIn(['translation', 'titleHtml']) || option.get('titleHtml');
if (!titleHtml) {
- const emojiMap = makeEmojiMap(poll);
+ const emojiMap = emojiMap(poll);
titleHtml = emojify(escapeTextContentForBrowser(title), emojiMap);
}
diff --git a/app/javascript/mastodon/containers/poll_container.js b/app/javascript/mastodon/containers/poll_container.js
index db378cba7c..7ca840138d 100644
--- a/app/javascript/mastodon/containers/poll_container.js
+++ b/app/javascript/mastodon/containers/poll_container.js
@@ -9,14 +9,14 @@ import Poll from 'mastodon/components/poll';
const mapDispatchToProps = (dispatch, { pollId }) => ({
refresh: debounce(
() => {
- dispatch(fetchPoll(pollId));
+ dispatch(fetchPoll({ pollId }));
},
1000,
{ leading: true },
),
onVote (choices) {
- dispatch(vote(pollId, choices));
+ dispatch(vote({ pollId, choices }));
},
onInteractionModal (type, status) {
@@ -32,7 +32,7 @@ const mapDispatchToProps = (dispatch, { pollId }) => ({
});
const mapStateToProps = (state, { pollId }) => ({
- poll: state.getIn(['polls', pollId]),
+ poll: state.polls.get(pollId),
});
export default connect(mapStateToProps, mapDispatchToProps)(Poll);
diff --git a/app/javascript/mastodon/models/account.ts b/app/javascript/mastodon/models/account.ts
index 34fd1b57e9..4d95d24757 100644
--- a/app/javascript/mastodon/models/account.ts
+++ b/app/javascript/mastodon/models/account.ts
@@ -8,12 +8,11 @@ import type {
ApiAccountRoleJSON,
ApiAccountJSON,
} from 'mastodon/api_types/accounts';
-import type { ApiCustomEmojiJSON } from 'mastodon/api_types/custom_emoji';
import emojify from 'mastodon/features/emoji/emoji';
import { unescapeHTML } from 'mastodon/utils/html';
-import { CustomEmojiFactory } from './custom_emoji';
-import type { CustomEmoji } from './custom_emoji';
+import { CustomEmojiFactory, makeEmojiMap } from './custom_emoji';
+import type { CustomEmoji, EmojiMap } from './custom_emoji';
// AccountField
interface AccountFieldShape extends Required {
@@ -102,15 +101,6 @@ export const accountDefaultValues: AccountShape = {
const AccountFactory = ImmutableRecord(accountDefaultValues);
-type EmojiMap = Record;
-
-function makeEmojiMap(emojis: ApiCustomEmojiJSON[]) {
- return emojis.reduce((obj, emoji) => {
- obj[`:${emoji.shortcode}:`] = emoji;
- return obj;
- }, {});
-}
-
function createAccountField(
jsonField: ApiAccountFieldJSON,
emojiMap: EmojiMap,
diff --git a/app/javascript/mastodon/models/custom_emoji.ts b/app/javascript/mastodon/models/custom_emoji.ts
index 76479f3aeb..5297dcd470 100644
--- a/app/javascript/mastodon/models/custom_emoji.ts
+++ b/app/javascript/mastodon/models/custom_emoji.ts
@@ -1,15 +1,32 @@
-import type { RecordOf } from 'immutable';
-import { Record } from 'immutable';
+import type { RecordOf, List as ImmutableList } from 'immutable';
+import { Record as ImmutableRecord, isList } from 'immutable';
import type { ApiCustomEmojiJSON } from 'mastodon/api_types/custom_emoji';
type CustomEmojiShape = Required; // no changes from server shape
export type CustomEmoji = RecordOf;
-export const CustomEmojiFactory = Record({
+export const CustomEmojiFactory = ImmutableRecord({
shortcode: '',
static_url: '',
url: '',
category: '',
visible_in_picker: false,
});
+
+export type EmojiMap = Record;
+
+export function makeEmojiMap(
+ emojis: ApiCustomEmojiJSON[] | ImmutableList,
+) {
+ if (isList(emojis)) {
+ return emojis.reduce((obj, emoji) => {
+ obj[`:${emoji.shortcode}:`] = emoji.toJS();
+ return obj;
+ }, {});
+ } else
+ return emojis.reduce((obj, emoji) => {
+ obj[`:${emoji.shortcode}:`] = emoji;
+ return obj;
+ }, {});
+}
diff --git a/app/javascript/mastodon/models/poll.ts b/app/javascript/mastodon/models/poll.ts
new file mode 100644
index 0000000000..b4ba38a9c6
--- /dev/null
+++ b/app/javascript/mastodon/models/poll.ts
@@ -0,0 +1,109 @@
+import type { RecordOf } from 'immutable';
+import { Record, List } from 'immutable';
+
+import escapeTextContentForBrowser from 'escape-html';
+
+import type { ApiPollJSON, ApiPollOptionJSON } from 'mastodon/api_types/polls';
+import emojify from 'mastodon/features/emoji/emoji';
+
+import { CustomEmojiFactory, makeEmojiMap } from './custom_emoji';
+import type { CustomEmoji, EmojiMap } from './custom_emoji';
+
+interface PollOptionTranslationShape {
+ title: string;
+ titleHtml: string;
+}
+
+export type PollOptionTranslation = RecordOf;
+
+export const PollOptionTranslationFactory = Record({
+ title: '',
+ titleHtml: '',
+});
+
+interface PollOptionShape extends Required {
+ voted: boolean;
+ titleHtml: string;
+ translation: PollOptionTranslation | null;
+}
+
+export function createPollOptionTranslationFromServerJSON(
+ translation: { title: string },
+ emojiMap: EmojiMap,
+) {
+ return PollOptionTranslationFactory({
+ ...translation,
+ titleHtml: emojify(
+ escapeTextContentForBrowser(translation.title),
+ emojiMap,
+ ),
+ });
+}
+
+export type PollOption = RecordOf;
+
+export const PollOptionFactory = Record({
+ title: '',
+ votes_count: 0,
+ voted: false,
+ titleHtml: '',
+ translation: null,
+});
+
+interface PollShape
+ extends Omit {
+ emojis: List;
+ options: List;
+ own_votes?: List;
+}
+export type Poll = RecordOf;
+
+export const PollFactory = Record({
+ id: '',
+ expires_at: '',
+ expired: false,
+ multiple: false,
+ voters_count: 0,
+ votes_count: 0,
+ voted: false,
+ emojis: List(),
+ options: List(),
+ own_votes: List(),
+});
+
+export function createPollFromServerJSON(
+ serverJSON: ApiPollJSON,
+ previousPoll?: Poll,
+) {
+ const emojiMap = makeEmojiMap(serverJSON.emojis);
+
+ return PollFactory({
+ ...serverJSON,
+ emojis: List(serverJSON.emojis.map((emoji) => CustomEmojiFactory(emoji))),
+ own_votes: serverJSON.own_votes ? List(serverJSON.own_votes) : undefined,
+ options: List(
+ serverJSON.options.map((optionJSON, index) => {
+ const option = PollOptionFactory({
+ ...optionJSON,
+ voted: serverJSON.own_votes?.includes(index) || false,
+ titleHtml: emojify(
+ escapeTextContentForBrowser(optionJSON.title),
+ emojiMap,
+ ),
+ });
+
+ const prevOption = previousPoll?.options.get(index);
+ if (prevOption?.translation && prevOption.title === option.title) {
+ const { translation } = prevOption;
+
+ option.set(
+ 'translation',
+ createPollOptionTranslationFromServerJSON(translation, emojiMap),
+ );
+ }
+
+ return option;
+ }),
+ ),
+ });
+}
diff --git a/app/javascript/mastodon/reducers/index.ts b/app/javascript/mastodon/reducers/index.ts
index 6da6abd81b..52f7c7d485 100644
--- a/app/javascript/mastodon/reducers/index.ts
+++ b/app/javascript/mastodon/reducers/index.ts
@@ -27,7 +27,7 @@ import { notificationPolicyReducer } from './notification_policy';
import { notificationRequestsReducer } from './notification_requests';
import notifications from './notifications';
import { pictureInPictureReducer } from './picture_in_picture';
-import polls from './polls';
+import { pollsReducer } from './polls';
import push_notifications from './push_notifications';
import { relationshipsReducer } from './relationships';
import search from './search';
@@ -70,7 +70,7 @@ const reducers = {
filters,
conversations,
suggestions: suggestionsReducer,
- polls,
+ polls: pollsReducer,
trends,
markers: markersReducer,
picture_in_picture: pictureInPictureReducer,
diff --git a/app/javascript/mastodon/reducers/polls.js b/app/javascript/mastodon/reducers/polls.js
deleted file mode 100644
index 5e8e775dac..0000000000
--- a/app/javascript/mastodon/reducers/polls.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Map as ImmutableMap, fromJS } from 'immutable';
-
-import { POLLS_IMPORT } from 'mastodon/actions/importer';
-
-import { normalizePollOptionTranslation } from '../actions/importer/normalizer';
-import { STATUS_TRANSLATE_SUCCESS, STATUS_TRANSLATE_UNDO } from '../actions/statuses';
-
-const importPolls = (state, polls) => state.withMutations(map => polls.forEach(poll => map.set(poll.id, fromJS(poll))));
-
-const statusTranslateSuccess = (state, pollTranslation) => {
- return state.withMutations(map => {
- if (pollTranslation) {
- const poll = state.get(pollTranslation.id);
-
- pollTranslation.options.forEach((item, index) => {
- map.setIn([pollTranslation.id, 'options', index, 'translation'], fromJS(normalizePollOptionTranslation(item, poll)));
- });
- }
- });
-};
-
-const statusTranslateUndo = (state, id) => {
- return state.withMutations(map => {
- const options = map.getIn([id, 'options']);
-
- if (options) {
- options.forEach((item, index) => map.deleteIn([id, 'options', index, 'translation']));
- }
- });
-};
-
-const initialState = ImmutableMap();
-
-export default function polls(state = initialState, action) {
- switch(action.type) {
- case POLLS_IMPORT:
- return importPolls(state, action.polls);
- case STATUS_TRANSLATE_SUCCESS:
- return statusTranslateSuccess(state, action.translation.poll);
- case STATUS_TRANSLATE_UNDO:
- return statusTranslateUndo(state, action.pollId);
- default:
- return state;
- }
-}
diff --git a/app/javascript/mastodon/reducers/polls.ts b/app/javascript/mastodon/reducers/polls.ts
new file mode 100644
index 0000000000..9b9a5d2ff8
--- /dev/null
+++ b/app/javascript/mastodon/reducers/polls.ts
@@ -0,0 +1,67 @@
+import type { Reducer } from '@reduxjs/toolkit';
+import { Map as ImmutableMap } from 'immutable';
+
+import { importPolls } from 'mastodon/actions/importer/polls';
+import { makeEmojiMap } from 'mastodon/models/custom_emoji';
+import { createPollOptionTranslationFromServerJSON } from 'mastodon/models/poll';
+import type { Poll } from 'mastodon/models/poll';
+
+import {
+ STATUS_TRANSLATE_SUCCESS,
+ STATUS_TRANSLATE_UNDO,
+} from '../actions/statuses';
+
+const initialState = ImmutableMap();
+type PollsState = typeof initialState;
+
+const statusTranslateSuccess = (
+ state: PollsState,
+ pollTranslation: Poll | undefined,
+) => {
+ if (!pollTranslation) return state;
+
+ return state.withMutations((map) => {
+ const poll = state.get(pollTranslation.id);
+
+ if (!poll) return;
+
+ const emojiMap = makeEmojiMap(poll.emojis);
+
+ pollTranslation.options.forEach((item, index) => {
+ map.setIn(
+ [pollTranslation.id, 'options', index, 'translation'],
+ createPollOptionTranslationFromServerJSON(item, emojiMap),
+ );
+ });
+ });
+};
+
+const statusTranslateUndo = (state: PollsState, id: string) => {
+ return state.withMutations((map) => {
+ const options = map.get(id)?.options;
+
+ if (options) {
+ options.forEach((item, index) =>
+ map.deleteIn([id, 'options', index, 'translation']),
+ );
+ }
+ });
+};
+
+export const pollsReducer: Reducer = (
+ state = initialState,
+ action,
+) => {
+ if (importPolls.match(action)) {
+ return state.withMutations((polls) => {
+ action.payload.polls.forEach((poll) => polls.set(poll.id, poll));
+ });
+ } else if (action.type === STATUS_TRANSLATE_SUCCESS)
+ return statusTranslateSuccess(
+ state,
+ (action.translation as { poll?: Poll }).poll,
+ );
+ else if (action.type === STATUS_TRANSLATE_UNDO)
+ return statusTranslateUndo(state, action.pollId as string);
+ else return state;
+};
From 094e2172ec6243141eabc79cfcc8c1d633a331ac Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 18:08:14 -0500
Subject: [PATCH 073/175] Add system spec for `Admin::TermsOfService` index
view (#33250)
---
spec/system/admin/terms_of_service_spec.rb | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 spec/system/admin/terms_of_service_spec.rb
diff --git a/spec/system/admin/terms_of_service_spec.rb b/spec/system/admin/terms_of_service_spec.rb
new file mode 100644
index 0000000000..d6ee1469d2
--- /dev/null
+++ b/spec/system/admin/terms_of_service_spec.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Admin Terms of services' do
+ describe 'Viewing terms of services index page' do
+ let!(:terms) { Fabricate :terms_of_service, text: 'Test terms' }
+
+ before { sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+
+ it 'allows tags listing and editing' do
+ visit admin_terms_of_service_index_path
+
+ expect(page)
+ .to have_title(I18n.t('admin.terms_of_service.title'))
+
+ expect(page)
+ .to have_content(terms.text)
+ end
+ end
+end
From 39364346bb08c90e2e0239297c6a345b1c8f490b Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 10 Dec 2024 18:09:36 -0500
Subject: [PATCH 074/175] Add coverage for admin/terms/drafts#update and
admin/terms/generates#create actions (#33251)
---
.../drafts_controller_spec.rb | 45 +++++++++++++++++++
.../generates_controller_spec.rb | 44 ++++++++++++++++++
2 files changed, 89 insertions(+)
diff --git a/spec/controllers/admin/terms_of_service/drafts_controller_spec.rb b/spec/controllers/admin/terms_of_service/drafts_controller_spec.rb
index d0a12f8b3e..6c19b973d0 100644
--- a/spec/controllers/admin/terms_of_service/drafts_controller_spec.rb
+++ b/spec/controllers/admin/terms_of_service/drafts_controller_spec.rb
@@ -18,4 +18,49 @@ RSpec.describe Admin::TermsOfService::DraftsController do
expect(response).to have_http_status(:success)
end
end
+
+ describe 'PUT #update' do
+ subject { put :update, params: params }
+
+ let!(:terms) { Fabricate :terms_of_service, published_at: nil }
+
+ context 'with publishing params' do
+ let(:params) { { terms_of_service: { text: 'new' }, action_type: 'publish' } }
+
+ it 'publishes the record' do
+ expect { subject }
+ .to change(Admin::ActionLog, :count).by(1)
+
+ expect(response)
+ .to redirect_to(admin_terms_of_service_index_path)
+ expect(terms.reload.published_at)
+ .to_not be_nil
+ end
+ end
+
+ context 'with non publishing params' do
+ let(:params) { { terms_of_service: { text: 'new' }, action_type: 'save_draft' } }
+
+ it 'updates but does not publish the record' do
+ expect { subject }
+ .to_not change(Admin::ActionLog, :count)
+
+ expect(response)
+ .to redirect_to(admin_terms_of_service_draft_path)
+ expect(terms.reload.published_at)
+ .to be_nil
+ end
+ end
+
+ context 'with invalid params' do
+ let(:params) { { terms_of_service: { text: '' }, action_type: 'save_draft' } }
+
+ it 'does not update the record' do
+ subject
+
+ expect(response)
+ .to have_http_status(:success)
+ end
+ end
+ end
end
diff --git a/spec/controllers/admin/terms_of_service/generates_controller_spec.rb b/spec/controllers/admin/terms_of_service/generates_controller_spec.rb
index 1f33376de0..2f85fbc25f 100644
--- a/spec/controllers/admin/terms_of_service/generates_controller_spec.rb
+++ b/spec/controllers/admin/terms_of_service/generates_controller_spec.rb
@@ -18,4 +18,48 @@ RSpec.describe Admin::TermsOfService::GeneratesController do
expect(response).to have_http_status(:success)
end
end
+
+ describe 'POST #create' do
+ subject { post :create, params: params }
+
+ context 'with valid params' do
+ let(:params) do
+ {
+ terms_of_service_generator: {
+ admin_email: 'test@host.example',
+ arbitration_address: '123 Main Street',
+ arbitration_website: 'https://host.example',
+ dmca_address: '123 DMCA Ave',
+ dmca_email: 'dmca@host.example',
+ domain: 'host.example',
+ jurisdiction: 'Europe',
+ },
+ }
+ end
+
+ it 'saves new record' do
+ expect { subject }
+ .to change(TermsOfService, :count).by(1)
+ expect(response)
+ .to redirect_to(admin_terms_of_service_draft_path)
+ end
+ end
+
+ context 'with invalid params' do
+ let(:params) do
+ {
+ terms_of_service_generator: {
+ admin_email: 'what the',
+ },
+ }
+ end
+
+ it 'does not save new record' do
+ expect { subject }
+ .to_not change(TermsOfService, :count)
+ expect(response)
+ .to have_http_status(200)
+ end
+ end
+ end
end
From a70ae286446ac7ba526de7c70a6f8e028e903e2e Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Wed, 11 Dec 2024 03:28:21 +0100
Subject: [PATCH 075/175] Support animated PNGs in media attachments (#28516)
---
app/models/media_attachment.rb | 20 +++-
config/application.rb | 2 +-
lib/paperclip/blurhash_transcoder.rb | 2 +-
lib/paperclip/gif_transcoder.rb | 126 ---------------------
lib/paperclip/gifv_transcoder.rb | 20 ++++
spec/fixtures/files/600x400-animated.gif | Bin 0 -> 11085 bytes
spec/fixtures/files/600x400-animated.png | Bin 0 -> 35766 bytes
spec/fixtures/files/600x400.gif | Bin 0 -> 5848 bytes
spec/fixtures/files/attachment.gif | Bin 30184 -> 0 bytes
spec/models/media_attachment_spec.rb | 134 ++++++++++++++---------
spec/requests/api/v1/media_spec.rb | 2 +-
11 files changed, 123 insertions(+), 183 deletions(-)
delete mode 100644 lib/paperclip/gif_transcoder.rb
create mode 100644 lib/paperclip/gifv_transcoder.rb
create mode 100644 spec/fixtures/files/600x400-animated.gif
create mode 100644 spec/fixtures/files/600x400-animated.png
create mode 100644 spec/fixtures/files/600x400.gif
delete mode 100644 spec/fixtures/files/attachment.gif
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index 6708cd7793..76815dede5 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -58,6 +58,7 @@ class MediaAttachment < ApplicationRecord
).freeze
IMAGE_MIME_TYPES = %w(image/jpeg image/png image/gif image/heic image/heif image/webp image/avif).freeze
+ IMAGE_ANIMATED_MIME_TYPES = %w(image/png image/gif).freeze
IMAGE_CONVERTIBLE_MIME_TYPES = %w(image/heic image/heif image/avif).freeze
VIDEO_MIME_TYPES = %w(video/webm video/mp4 video/quicktime video/ogg).freeze
VIDEO_CONVERTIBLE_MIME_TYPES = %w(video/webm video/quicktime).freeze
@@ -102,7 +103,7 @@ class MediaAttachment < ApplicationRecord
'preset' => 'veryfast',
'movflags' => 'faststart', # Move metadata to start of file so playback can begin before download finishes
'pix_fmt' => 'yuv420p', # Ensure color space for cross-browser compatibility
- 'vf' => 'crop=floor(iw/2)*2:floor(ih/2)*2', # h264 requires width and height to be even. Crop instead of scale to avoid blurring
+ 'filter_complex' => 'drawbox=t=fill:c=white[bg];[bg][0]overlay,crop=trunc(iw/2)*2:trunc(ih/2)*2', # Remove transparency. h264 requires width and height to be even; crop instead of scale to avoid blurring
'c:v' => 'h264',
'c:a' => 'aac',
'b:a' => '192k',
@@ -296,7 +297,7 @@ class MediaAttachment < ApplicationRecord
private
def file_styles(attachment)
- if attachment.instance.file_content_type == 'image/gif' || VIDEO_CONVERTIBLE_MIME_TYPES.include?(attachment.instance.file_content_type)
+ if attachment.instance.animated_image? || VIDEO_CONVERTIBLE_MIME_TYPES.include?(attachment.instance.file_content_type)
VIDEO_CONVERTED_STYLES
elsif IMAGE_CONVERTIBLE_MIME_TYPES.include?(attachment.instance.file_content_type)
IMAGE_CONVERTED_STYLES
@@ -310,8 +311,8 @@ class MediaAttachment < ApplicationRecord
end
def file_processors(instance)
- if instance.file_content_type == 'image/gif'
- [:gif_transcoder, :blurhash_transcoder]
+ if instance.animated_image?
+ [:gifv_transcoder, :blurhash_transcoder]
elsif VIDEO_MIME_TYPES.include?(instance.file_content_type)
[:transcoder, :blurhash_transcoder, :type_corrector]
elsif AUDIO_MIME_TYPES.include?(instance.file_content_type)
@@ -322,6 +323,17 @@ class MediaAttachment < ApplicationRecord
end
end
+ def animated_image?
+ if processing_complete?
+ gifv?
+ elsif IMAGE_ANIMATED_MIME_TYPES.include?(file_content_type)
+ @animated_image = FastImage.animated?(file.queued_for_write[:original].path) unless defined?(@animated_image)
+ @animated_image
+ else
+ false
+ end
+ end
+
private
def set_unknown_type
diff --git a/config/application.rb b/config/application.rb
index e4e9680e66..59afafd5be 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -28,7 +28,7 @@ require_relative '../lib/redis/namespace_extensions'
require_relative '../lib/paperclip/url_generator_extensions'
require_relative '../lib/paperclip/attachment_extensions'
-require_relative '../lib/paperclip/gif_transcoder'
+require_relative '../lib/paperclip/gifv_transcoder'
require_relative '../lib/paperclip/media_type_spoof_detector_extensions'
require_relative '../lib/paperclip/transcoder'
require_relative '../lib/paperclip/type_corrector'
diff --git a/lib/paperclip/blurhash_transcoder.rb b/lib/paperclip/blurhash_transcoder.rb
index b4ff4a12a0..fe58d1bce1 100644
--- a/lib/paperclip/blurhash_transcoder.rb
+++ b/lib/paperclip/blurhash_transcoder.rb
@@ -23,7 +23,7 @@ module Paperclip
image = Vips::Image.thumbnail(@file.path, 100)
[image.width, image.height, image.colourspace(:srgb).extract_band(0, n: 3).to_a.flatten]
else
- pixels = convert(':source -depth 8 RGB:-', source: File.expand_path(@file.path)).unpack('C*')
+ pixels = convert(':source -flatten -depth 8 -compress none RGB:-', source: File.expand_path(@file.path)).unpack('C*')
geometry = options.fetch(:file_geometry_parser).from_file(@file)
[geometry.width, geometry.height, pixels]
end
diff --git a/lib/paperclip/gif_transcoder.rb b/lib/paperclip/gif_transcoder.rb
deleted file mode 100644
index 32bdb8a863..0000000000
--- a/lib/paperclip/gif_transcoder.rb
+++ /dev/null
@@ -1,126 +0,0 @@
-# frozen_string_literal: true
-
-class GifReader
- attr_reader :animated
-
- EXTENSION_LABELS = [0xf9, 0x01, 0xff].freeze
- GIF_HEADERS = %w(GIF87a GIF89a).freeze
-
- class GifReaderException < StandardError; end
-
- class UnknownImageType < GifReaderException; end
-
- class CannotParseImage < GifReaderException; end
-
- def self.animated?(path)
- new(path).animated
- rescue GifReaderException
- false
- end
-
- def initialize(path, max_frames = 2)
- @path = path
- @nb_frames = 0
-
- File.open(path, 'rb') do |s|
- raise UnknownImageType unless GIF_HEADERS.include?(s.read(6))
-
- # Skip to "packed byte"
- s.seek(4, IO::SEEK_CUR)
-
- # "Packed byte" gives us the size of the GIF color table
- packed_byte, = s.read(1).unpack('C')
-
- # Skip background color and aspect ratio
- s.seek(2, IO::SEEK_CUR)
-
- if packed_byte & 0x80 != 0
- # GIF uses a global color table, skip it
- s.seek(3 * (1 << ((packed_byte & 0x07) + 1)), IO::SEEK_CUR)
- end
-
- # Now read data
- while @nb_frames < max_frames
- separator = s.read(1)
-
- case separator
- when ',' # Image block
- @nb_frames += 1
-
- # Skip to "packed byte"
- s.seek(8, IO::SEEK_CUR)
- packed_byte, = s.read(1).unpack('C')
-
- if packed_byte & 0x80 != 0
- # Image uses a local color table, skip it
- s.seek(3 * (1 << ((packed_byte & 0x07) + 1)), IO::SEEK_CUR)
- end
-
- # Skip lzw min code size
- raise InvalidValue unless s.read(1).unpack1('C') >= 2
-
- # Skip image data sub-blocks
- skip_sub_blocks!(s)
- when '!' # Extension block
- skip_extension_block!(s)
- when ';' # Trailer
- break
- else
- raise CannotParseImage
- end
- end
- end
-
- @animated = @nb_frames > 1
- end
-
- private
-
- def skip_extension_block!(file)
- if EXTENSION_LABELS.include?(file.read(1).unpack1('C'))
- block_size, = file.read(1).unpack('C')
- file.seek(block_size, IO::SEEK_CUR)
- end
-
- # Read until extension block end marker
- skip_sub_blocks!(file)
- end
-
- # Skip sub-blocks up until block end marker
- def skip_sub_blocks!(file)
- loop do
- size, = file.read(1).unpack('C')
-
- break if size.zero?
-
- file.seek(size, IO::SEEK_CUR)
- end
- end
-end
-
-module Paperclip
- # This transcoder is only to be used for the MediaAttachment model
- # to convert animated GIFs to videos
-
- class GifTranscoder < Paperclip::Processor
- def make
- return File.open(@file.path) unless needs_convert?
-
- final_file = Paperclip::Transcoder.make(file, options, attachment)
-
- if options[:style] == :original
- attachment.instance.file_file_name = "#{File.basename(attachment.instance.file_file_name, '.*')}.mp4"
- attachment.instance.file_content_type = 'video/mp4'
- attachment.instance.type = MediaAttachment.types[:gifv]
- end
-
- final_file
- end
-
- private
-
- def needs_convert?
- GifReader.animated?(file.path)
- end
- end
-end
diff --git a/lib/paperclip/gifv_transcoder.rb b/lib/paperclip/gifv_transcoder.rb
new file mode 100644
index 0000000000..4bb27e3b75
--- /dev/null
+++ b/lib/paperclip/gifv_transcoder.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module Paperclip
+ # This transcoder is only to be used for the MediaAttachment model
+ # to convert animated GIFs and PNGs to videos
+
+ class GifvTranscoder < Paperclip::Processor
+ def make
+ final_file = Paperclip::Transcoder.make(file, options, attachment)
+
+ if options[:style] == :original
+ attachment.instance.file_file_name = "#{File.basename(attachment.instance.file_file_name, '.*')}.mp4"
+ attachment.instance.file_content_type = 'video/mp4'
+ attachment.instance.type = MediaAttachment.types[:gifv]
+ end
+
+ final_file
+ end
+ end
+end
diff --git a/spec/fixtures/files/600x400-animated.gif b/spec/fixtures/files/600x400-animated.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1a773c0af1d1aab72f789db9b662a6980110865a
GIT binary patch
literal 11085
zcmb{2BS%Vicgp~2l#&J?
z{5|;xJml!XyiEavuKjEBK}cvu(&m>8Hi7)02Z#5mX_csOME
zxa5TRR74om#8?bO*fgZrj3l^>q<8=_0w6giJ0%_m6+Q!ZU0(9%Ao3R=3OznzJ$@1cL9$mu64x_
zq`Uy6=`p4212YVmbM+ZA4e9d?7z+#mg|C>3UIUBYFvE>lN{!i!Tg=fC@9FT2q$F
zcffix)`oX%sQ2uR<{V8HoGq5jZPqN`Kd`pju=Rc5?6hU?x8drt;~cQ%9<<{bwrAyx
zSr~C(8+Byoj$Isc;&>FdH1UxW6u&&@#53v4#h>83H_r%BnCMLF84V%@rO<3rV^4RXu2dfTpM$E9||wQkd`{^uvumV4ulN7Jrn
z^PXSpmjCyi@YbDx_C0Xh9_0IeM8`p7=V5H;PF(kHe9vA&?|xF>VRHYkl!4!=gGZS|
z`&q*W*&~NJqrY;;j`GHj^CwT>Q@=`QepgQ)mCYU3%$(HDp4QEs)i3;MS~zN6I&N7$
zX^-T5=Od%m!DvABP^
zba=J=>w4w)?ds9p`tjw)$<^NR_2%jI{>jbOpWB18+rvM1zt8`kTwI@C-ke?C{<*%p
zxVgW){d;x)_xkUD(}B$7=JMY{%y>^-N7KZ$M{PK)Tqko2qvKBGwrX+?Fy&h)PiXs^Lio~9y=`e
zBlG)W*pwrHn$-mZ3A_e8*4^=X`N<+ygD}mSqTv+LS9{9?HN|7u3c*Co4&y}=`5Fm)
zuOezFCyHO@Yh`NHm5vq~)i|sS&TtQ@yzYu%)~+vGfSOH}nhid!9#n}c+fq;I6eYAE_}y6$iZg*&=BlJVtmxjmRaY^51>Jk^=NFRXowI^E9l7tVgZ
z^5|@T-axx@wDqR%V6E$(^Wu4%tm^U3l>4f4TkDPg$jnf-|3$0c$=T^X>+pS>|I+c{
zqqTsycedt^I6Uw*6MPA(u!W1{;F(P~c!8I-G5C8V&vsYPSv%ii58k
z^48m}M~IO9T#sVwwX=F5z6H1Ne|mmN86u5W!Wtt_2Z@W-u(aEZ2XOBegy^VwuO=As
z@%~IAdsXrw$jB2io@`F0QIMh?W?vLw?diRheqG4Oo#DE*T@m=atXcxs}2L~vT$g;Vq0{kQikBt@E6njWn*x1@9G#-_oO=3%$
zcT$+030Sb2kyr#_YulFBVGw({V$*uyT)9JpwnRgTiJi*N7uDaJchQFuNNUhOH4?#C
z@)B+hxF!B}9j_cF+Pok-rLa0mt6o
z;+~CrIfOGDU)`d=jH`wH;)jNiVTRlt3;WR-9<_~oqYhtj=5!=6Ret0gE)UfF9vEYyX&RsLW8-Is+g%e;y!fLa&UqD=
ztv2;0w9wSO08JeTllPw#F=k-74$j1U^YMi6QQ_wpZPG3{GD>^On^hdggyEi%&x>
zC!HDZ8?Ruv?{>yZ{c-O!F?Omz&00QypwLjcSU*4395MH`(6@{)?uvq@Y;-C}w>IGQ
z_7jgX>rk*SQSMCr^HI!z9L*Pp5zV+jT3I*0e&3w-xi#EC9z|Y(Uqx)$;U=Hu>kSU}
zvH%Hit=FIFV{OeDIkLq}&ppjT2i`nGH1QPK*1%rH5Nk9y3AKk1m%X|-BUy`BOe*Lj
zr-7C)0$;YY?j?W1?ccX|bbNcJfo{m9#?lT6FdYx2F6qA0_fZ=+U7O4$Yb^gYsgc9d
zS8eFpGNJ6*u!BLzkV|Br6U<`07cM)_PWqZHi1>9{7gY-dn9>!KvMhF0w(5x7$IFE_
zsvRpkq8h_6#My%|kA<&_3g=}z_Ui-lP^u{UY+Mmcx`O~(Sq1j|yzU@%`r);+GKF}8
zdCc(UNqlYwqkJ;EAeKqXaG>dBun>bN>v2yq}>04_7hojd1XdfP;w`X7S4@g-=RVXpfvW6iy
zmqXJe>wT=iuDbllERc#@J(4k)tsIsm!0qLE@0F=MH>kGs7S`@$j!@wQKbkvL
z86!*9Gx!asbg#1V!G6#R0)s5
z@U@l|rt~7Sgsmuwn->BZzO-iu@`_@;{UPA>Az|l?eMQ{n2gkgvl?TJS>-l*)^6tm;
z2h*F1QShu0cCT;Ek2W&b*V%9P3|E;dt;R8Xa-~U#W6#_3)FHVm(B_nPK#DF`jHDQZ
z7f!B<l`ga(C
zmZ@8R9BGy`uikb|hcXTJcc#bKdXufT-#lUWe{d;mfqzXRY(EA6ke;vmR0C5Ghvg?b8
zWA$2ml~VaOj`{TrUxlon$tzhY)H8r~-rw}X|Bo#&7*Cl`B=9yRVCxGr$)zF_ifIr}
znRJechCrE)7esUk6b37bN-}jMDvRU<5ukj%Qv#*Vf~zU96~sf>z`-0S-!23k9)f8Hv`AI5>SubIsw8FPB8UojKhNZNsrV7a
zy*N8Kt%HBUrLpG9Qbh3CQ}-lj57dg)AiMa-r~I2(m6
zJPnrxM`?RO(Wr=@>d^sq(Qm-fKD^QU^P$Z~P$WSNm^X&rF3Q6$rWG7h2al1y4DX`^
z-#!MzbE8hXqTuMLQ*3BWuER=d7@RjO9tE*6g8bQmUJyhd!=rCBVtXxOPlIENb7ObA
zVvEtSyV!Bn>~TdJ_i;b$;_~3&M0i}^PRsy7YzJ@br~YW%-RO}1gpr+uZ@lq6it)Qv
z@kN30==}Jij(GG&JiIgJCp=+$C+>4(nMi7%7-g4q2u}J9Pr@8XdZrm8
zH4yg~o-8+ztiGG1NtpZyl+3T0+=H25Hy@CykuWa_0b3?3LXwq1DXN+&JxJ&>LqdRY
zoRe2vJ{@=GK_T
zx{$^WNo>tcM0X`-qZ4Pbld{>9W|fo5Kcz8&GV(Mt-r8rF*{3u@QglmF^afH|+|sET
z(;g3`2j4^DHg;ewxf!!v8CmFzF>F{CJ8VoDwqcR_9+GMymHyQ@eWt|0F$J)8CA+@B
zxVbC4wZOQuE4yb8m`zKUN2Pmdq)8a39(bqxN=rGC$~=)`GPi)aKw!otFvkH{A38PW
zDy0;ZhQFBJ16
zpw7v1ONZ~~y|T*@<;xq>$dj?jFAmJ_$j?vg$VYADCt?<$I14fr3+AqJTQLc~Q50E9
z7g?JW+4vM$@tH0er)BMC)?gN*I17t|3LEkZ8#)Ws_`p+2#R#k7M8yJCAJ}|}z`bv&
z^tVBNuZXnZbb(NSbU1(!C=K=YiT&D?_bLq@v{xA7P*Q>k4>ZY*G!cLjNyh*L00}
zuLbh8qzX+KvLZ@-N=soTuvDVb^g(z{Qm@*$`lD`}U?udd5)2J_g5kUe`y?wk0%ruzz8#`Is;$i%>^
z3f^jBL?z==ir{{AIAKk@QkAz=l_#=Bb}38#hF>A_snQaiiX##YK`t+(>N?gi4^{E+
zml;G>&zDw94OI&6S7u^XAvmjY<7=I2YGHh)8I2y?Yl1$qRsC6wl)+Y5*~?y+=zrPp<cc
z#Pt~nfwZND>_}np48!~-;avWv;-SV8L?c2*uzbI%lDG*e(_FUHR39mXL^L&O3pNim
zx9$sk*S6`{Z|>r6?iu3iBW@XJ<{uhr8F|Y;M%+4qXqmc?Y?*lrn&YR)%4q#s-P*n1
zI!oL(&)*iP)P{C!%L!`RMYJV%wjJ)b#bSNOo@hPM=01CCdC|;!h4_B+we4>I``@pR
zFik1WW!i=G+i?TiJ@eY}JKCMr+sR2fEcBaD+8u8>I(kAoo?CV_4|TlA>!8H#RO09)
zRqT|u?0gi}Nm$m&KitW_-mym9#lGJ8LA49Ry6a777bQp6*-#hJde;?kcTz!@x>EP6
z58Z;H-Mj4FfZ^@}csDg>j}BiCmTJ!j`yRHyo~6>Bhkt_hdpOUQ1PBH#FB_Sxs@k-B9h|E=mwOmo*}mYLQ(
zIT@5r8mPY2t2G^Jq8maj4>q+7RV~Z64G*;ghc~zeT(pM?5nTPSVe0DPVOix-U#(v1
z5!Ce1bd>s%`$)3&$fBvr!t#i1_sE*8;t$zTajwy=VY#2MQOuChgEFc8+tL1w(UaT9
zXQpEW?qioaBG)Zre?AS}JB{4|$A4mt5+9*{
zVL5+ZFo4F*5TuM4vDyLiw
z=UDDkZ0|K=ZufH@IAqqCT&6u?7y=09jDO?|HC!3Cb^bVDCI
zt{&7?Z;$1WyR+yvdCZN&4G(y3O?;=27nZHuf5&hd|68N+0n)erx)Mv
zZLTg)nOdB`fA?>k+SWv6|7_x8$$w(Dqa|mkXgl&;Fz^
zHnlA@m}`+{9paq?Uyl&Y-Qh41=h}vo%3$KP@pqjkJU);
z&W_WO*073ySuwMj$gE~xsAgz0fKD>iFZh{4=LsrOHc!4h)gB
zup6|u4fOcry`6QBoBAl;7tbL(+y9(*C-;n&k1H>#qL?=ZswTafFTBpXTiC1T!%+mY
zEG`L4_T+PL&Q_D$E9q%8cJPJQmu8gSBeJ&l%1}KKtmUXS8-Cx$^TovqoNGP-+xBly
z50DqM+Gg;6iKUe4DJlL#%W*Nu!@6&;n1J=m@`&<}D`CWQ4RsL5inp5;p1+#jQ>Itg
z9`xRzn{xy~zgtB+v|KDM&m*VXl0^4^w`07JIO=#zE5Ol7(p6ApL8^Yc+6B@AiuU*z
z`-=8{u@?~S^ZX#C3932^ih4ZjI;ATm;NLYOG096EB~<1Sq!A7F>WmQT;N={VSoZDu
zB(>sd1%2FihBd^SXiZpcqVtJkNNja}V{FFAw*1fRJ<45Iq)cOyox2Rj9V%m5Jn~s?
zRe*DdM@ODCKRThGgH+C8yS(B4*-cJ93I9_jFaiHiPR#|{bcz!ykZ{ZU)Kctu-q6z<
zHs{90>zAimYiI0O+E1=cg_>q>yxg@n#N?mTMTQmV>;BB|Yx^wM@6nm{XmFbI=9kfL
z16@9>_wc6Id>kCw(k+iFKT8yX-)Kn;s{ei=)9fmr*Vcvqii4w}pY!hG-goNOy)Xc~
z?d*8j(l2S@jcT62A+S(CGG*!a=yyJc5BkLOCJ#7`Nlq;ho=E@4k(BXTxqj5BWO#{{`&;*_lB3{J@UXPoP?lFSS49DXm8
zZjN+%%+r=|X>^M}C>GH;zDv|1hMs;`%{a<=7fZ855DNhOe-
zV=Yst-pyZB!-;#p-p#g6*yiCx4FXHzKRYdsVZ7eXVhQAt!jo38^6gLtu%I|a%(XJL#
z;CslgwjWGj1d#ClJ&({yyq@3e$wy@A3ux_IMGo@CFo?5<*(MZEou?Ys(Daa4F?5vfGT%
zk1cL?Yior0Yhl@E)nf93>PJmPB`*Z)nVQY3xEMB>&FqfMPBx9Q@+W9SlhLSs=B?`pR*~(vA?rNx1?LJNz{s`;)`q-x3eGo
zSksSfgUUIsTX0p+&}&D@$zmWx>|jaFe!8z4ch?j|*hp@xz$mnwz_0u>SH4jL3l>tV
ze(#VO{FAyyohI6;@A8@hV((-K;EL7;DJ`q%eQOx$vVS2=umBbQi%Vztyht7o!Jy?j
z5hLJ4o`XHY@*_SDkm?u7u%t<@CyqyXna?SKBDA{}kB?gD7dMqa%Q^K1Cr2sb_%>^h
z>o+vYCFgL8N?}K+$mp}Oj6`w1)>Z?iT+SZosWSaR6He;rr`}*}+R39G$+f=9-Gn-P
z{WhUipUi_mdf3@_FZR5jZ)!b5y3^m;rw8<&087t_Ilv<-{MvwpgWN9^uh8jw-IG)0
z7S8k&Zq7&b_>^+;tRLSSKws!%OZ1bh%dfX)=>Le0dd8#si0WHMb!SnHnfQLe{gEz<
zp~o=`%^Q+9LSx-|$-G7Ekd18QauyB#aU)79lymzwedD?4#sc!v2V+R(=epVt1H*7<
zoKcnT_(x0PAIHRsB;8hAGorUfp`4OJavzqNh8%gG!-EN;SG+o7IQ*eksYcMs43ykP
zs--BHQ&o)5?`dDE<-#1bbx(cx7)ad5Id($Lnxc=^z$tub$+2=9EEQ_+Pr5$9>$MEa
zgq#|+bSz+>k{7jzCfMa8-Gg0uR+UdDK9bKRefhGEAs_lnwXNSWsvgU;C8;gVzYYbP>&Y$(Di|t;$UYgT;phtYYD1mY~
zL(n_PPhzM5D2gd2RVfa|B%7)ve+e`PGh2Eo27{T>b`&$Hk27>>@_y!##}juI+%gUh?;L01QHTEPDVBp*$X;
zAEhynnoyqB7(jm|$7l>-x{_lq;b+wZvR}z@YTg65L2{2Y0U(eZ|1Kb*D0b>Hj1&SU
zPxDV=2$4$*e+Gg;coVsKp+Oo@^#MpiYJgxPlQ2k5R0{BzQSONp;3=b=)D^!$3DYY^
zxiP-L)XROnT(g>fh`VN@gp3MGt)fiPK>$bM*Kv`v$>Z)9{#ll^E6a2ZH++f8ua
zjU9u7o9CnBq@okNqmyB3?J9$g
z5eATg(KckN7-y2$
zeQN)=J;87F^~ycSv|?!f!HIha-TaHv^;vM+3c6yA5|7QQvfdgGO4m!7rIn8UMGtW5-O2f;fv;isU&yM;m&njm((
zBS~Aj^kKD*lvw(-2=i*If*
z=ZlYEpM%r@5ks{!V$%dM|EU6;P~nfP7~YE<1ypz}mLH~<|86RGma6z;Trq`J8O~Yh
zCt9TUsC-1L{F12r8c_Aiq2it|^Q^S$e6Z^4U