+
+
+
+
- {/* @ts-expect-error Expected until StatusContent is typed */}
-
+
+
+ {status.get('reblogged') ? (
+
+ ) : (
+
+ )}
+
+
+
+ Shift+
+
+ ),
+ }}
+ />
+
+
+
- {(status.get('media_attachments') as Immutable.List
).size >
- 0 && (
-
- )}
+
+
-
-
-
- Shift +
-
- ),
- }}
+
+
+ {!status.get('reblogged') && (
+
+ )}
+
+
+
+
+
+
- {statusVisibility !== 'private' && !status.get('reblogged') && (
-
- )}
-
);
diff --git a/app/javascript/mastodon/features/ui/components/column_link.jsx b/app/javascript/mastodon/features/ui/components/column_link.jsx
index 6ef122c07be..3386c17f071 100644
--- a/app/javascript/mastodon/features/ui/components/column_link.jsx
+++ b/app/javascript/mastodon/features/ui/components/column_link.jsx
@@ -3,11 +3,11 @@ import PropTypes from 'prop-types';
import classNames from 'classnames';
import { useRouteMatch, NavLink } from 'react-router-dom';
-import { Icon } from 'mastodon/components/icon';
+import { Icon } from 'mastodon/components/icon';
-const ColumnLink = ({ icon, activeIcon, iconComponent, activeIconComponent, text, to, href, method, badge, transparent, ...other }) => {
+const ColumnLink = ({ icon, activeIcon, iconComponent, activeIconComponent, text, to, href, method, badge, transparent, optional, ...other }) => {
const match = useRouteMatch(to);
- const className = classNames('column-link', { 'column-link--transparent': transparent });
+ const className = classNames('column-link', { 'column-link--transparent': transparent, 'column-link--optional': optional });
const badgeElement = typeof badge !== 'undefined' ?
{badge} : null;
const iconElement = (typeof icon === 'string' || iconComponent) ?
: icon;
const activeIconElement = activeIcon ?? (activeIconComponent ?
: iconElement);
@@ -43,6 +43,7 @@ ColumnLink.propTypes = {
method: PropTypes.string,
badge: PropTypes.node,
transparent: PropTypes.bool,
+ optional: PropTypes.bool,
};
export default ColumnLink;
diff --git a/app/javascript/mastodon/features/ui/components/column_loading.tsx b/app/javascript/mastodon/features/ui/components/column_loading.tsx
index 42174838cf3..d9563dda7a0 100644
--- a/app/javascript/mastodon/features/ui/components/column_loading.tsx
+++ b/app/javascript/mastodon/features/ui/components/column_loading.tsx
@@ -1,11 +1,8 @@
-import Column from '../../../components/column';
-import ColumnHeader from '../../../components/column_header';
+import Column from 'mastodon/components/column';
+import { ColumnHeader } from 'mastodon/components/column_header';
+import type { Props as ColumnHeaderProps } from 'mastodon/components/column_header';
-interface Props {
- multiColumn?: boolean;
-}
-
-export const ColumnLoading: React.FC
= (otherProps) => (
+export const ColumnLoading: React.FC = (otherProps) => (
diff --git a/app/javascript/mastodon/features/ui/components/columns_area.jsx b/app/javascript/mastodon/features/ui/components/columns_area.jsx
index 19c2f40ac61..de957a79b67 100644
--- a/app/javascript/mastodon/features/ui/components/columns_area.jsx
+++ b/app/javascript/mastodon/features/ui/components/columns_area.jsx
@@ -4,13 +4,11 @@ import { Children, cloneElement, useCallback } from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { supportsPassiveEvents } from 'detect-passive-events';
-
import { scrollRight } from '../../../scroll';
import BundleContainer from '../containers/bundle_container';
import {
Compose,
- Notifications,
+ NotificationsWrapper,
HomeTimeline,
CommunityTimeline,
PublicTimeline,
@@ -32,7 +30,7 @@ import NavigationPanel from './navigation_panel';
const componentMap = {
'COMPOSE': Compose,
'HOME': HomeTimeline,
- 'NOTIFICATIONS': Notifications,
+ 'NOTIFICATIONS': NotificationsWrapper,
'PUBLIC': PublicTimeline,
'REMOTE': PublicTimeline,
'COMMUNITY': CommunityTimeline,
@@ -63,7 +61,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
children: PropTypes.node,
};
- // Corresponds to (max-width: $no-gap-breakpoint + 285px - 1px) in SCSS
+ // Corresponds to (max-width: $no-gap-breakpoint - 1px) in SCSS
mediaQuery = 'matchMedia' in window && window.matchMedia('(max-width: 1174px)');
state = {
@@ -71,10 +69,6 @@ export default class ColumnsArea extends ImmutablePureComponent {
};
componentDidMount() {
- if (!this.props.singleColumn) {
- this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false);
- }
-
if (this.mediaQuery) {
if (this.mediaQuery.addEventListener) {
this.mediaQuery.addEventListener('change', this.handleLayoutChange);
@@ -87,23 +81,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
this.isRtlLayout = document.getElementsByTagName('body')[0].classList.contains('rtl');
}
- UNSAFE_componentWillUpdate(nextProps) {
- if (this.props.singleColumn !== nextProps.singleColumn && nextProps.singleColumn) {
- this.node.removeEventListener('wheel', this.handleWheel);
- }
- }
-
- componentDidUpdate(prevProps) {
- if (this.props.singleColumn !== prevProps.singleColumn && !this.props.singleColumn) {
- this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false);
- }
- }
-
componentWillUnmount () {
- if (!this.props.singleColumn) {
- this.node.removeEventListener('wheel', this.handleWheel);
- }
-
if (this.mediaQuery) {
if (this.mediaQuery.removeEventListener) {
this.mediaQuery.removeEventListener('change', this.handleLayoutChange);
@@ -116,7 +94,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
handleChildrenContentChange() {
if (!this.props.singleColumn) {
const modifier = this.isRtlLayout ? -1 : 1;
- this._interruptScrollAnimation = scrollRight(this.node, (this.node.scrollWidth - window.innerWidth) * modifier);
+ scrollRight(this.node, (this.node.scrollWidth - window.innerWidth) * modifier);
}
}
@@ -124,14 +102,6 @@ export default class ColumnsArea extends ImmutablePureComponent {
this.setState({ renderComposePanel: !e.matches });
};
- handleWheel = () => {
- if (typeof this._interruptScrollAnimation !== 'function') {
- return;
- }
-
- this._interruptScrollAnimation();
- };
-
setRef = (node) => {
this.node = node;
};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx b/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx
deleted file mode 100644
index 5080c0bf858..00000000000
--- a/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import PropTypes from 'prop-types';
-import { PureComponent } from 'react';
-
-import { injectIntl, FormattedMessage } from 'react-intl';
-
-import { Button } from '../../../components/button';
-
-class ConfirmationModal extends PureComponent {
-
- static propTypes = {
- message: PropTypes.node.isRequired,
- confirm: PropTypes.string.isRequired,
- onClose: PropTypes.func.isRequired,
- onConfirm: PropTypes.func.isRequired,
- secondary: PropTypes.string,
- onSecondary: PropTypes.func,
- closeWhenConfirm: PropTypes.bool,
- intl: PropTypes.object.isRequired,
- };
-
- static defaultProps = {
- closeWhenConfirm: true,
- };
-
- handleClick = () => {
- if (this.props.closeWhenConfirm) {
- this.props.onClose();
- }
- this.props.onConfirm();
- };
-
- handleSecondary = () => {
- this.props.onClose();
- this.props.onSecondary();
- };
-
- handleCancel = () => {
- this.props.onClose();
- };
-
- render () {
- const { message, confirm, secondary } = this.props;
-
- return (
-
-
- {message}
-
-
-
-
- {secondary !== undefined && (
-
- )}
-
-
-
- );
- }
-
-}
-
-export default injectIntl(ConfirmationModal);
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/clear_notifications.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/clear_notifications.tsx
new file mode 100644
index 00000000000..312ec600a64
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/clear_notifications.tsx
@@ -0,0 +1,46 @@
+import { useCallback } from 'react';
+
+import { defineMessages, useIntl } from 'react-intl';
+
+import { clearNotifications } from 'mastodon/actions/notification_groups';
+import { useAppDispatch } from 'mastodon/store';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const messages = defineMessages({
+ clearTitle: {
+ id: 'notifications.clear_title',
+ defaultMessage: 'Clear notifications?',
+ },
+ clearMessage: {
+ id: 'notifications.clear_confirmation',
+ defaultMessage:
+ 'Are you sure you want to permanently clear all your notifications?',
+ },
+ clearConfirm: {
+ id: 'notifications.clear',
+ defaultMessage: 'Clear notifications',
+ },
+});
+
+export const ConfirmClearNotificationsModal: React.FC<
+ BaseConfirmationModalProps
+> = ({ onClose }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+
+ const onConfirm = useCallback(() => {
+ void dispatch(clearNotifications());
+ }, [dispatch]);
+
+ return (
+
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx
new file mode 100644
index 00000000000..ab567c697ae
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx
@@ -0,0 +1,82 @@
+import { useCallback } from 'react';
+
+import { FormattedMessage } from 'react-intl';
+
+import { Button } from 'mastodon/components/button';
+
+export interface BaseConfirmationModalProps {
+ onClose: () => void;
+}
+
+export const ConfirmationModal: React.FC<
+ {
+ title: React.ReactNode;
+ message: React.ReactNode;
+ confirm: React.ReactNode;
+ secondary?: React.ReactNode;
+ onSecondary?: () => void;
+ onConfirm: () => void;
+ closeWhenConfirm?: boolean;
+ } & BaseConfirmationModalProps
+> = ({
+ title,
+ message,
+ confirm,
+ onClose,
+ onConfirm,
+ secondary,
+ onSecondary,
+ closeWhenConfirm = true,
+}) => {
+ const handleClick = useCallback(() => {
+ if (closeWhenConfirm) {
+ onClose();
+ }
+
+ onConfirm();
+ }, [onClose, onConfirm, closeWhenConfirm]);
+
+ const handleSecondary = useCallback(() => {
+ onClose();
+ onSecondary?.();
+ }, [onClose, onSecondary]);
+
+ const handleCancel = useCallback(() => {
+ onClose();
+ }, [onClose]);
+
+ return (
+
+
+
+
+
+ {secondary && (
+ <>
+
+
+
+ >
+ )}
+
+
+
+ {/* eslint-disable-next-line jsx-a11y/no-autofocus -- we are in a modal and thus autofocusing is justified */}
+
+
+
+
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_list.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_list.tsx
new file mode 100644
index 00000000000..8fd9d8da012
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_list.tsx
@@ -0,0 +1,58 @@
+import { useCallback } from 'react';
+
+import { defineMessages, useIntl } from 'react-intl';
+
+import { useHistory } from 'react-router';
+
+import { removeColumn } from 'mastodon/actions/columns';
+import { deleteList } from 'mastodon/actions/lists';
+import { useAppDispatch } from 'mastodon/store';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const messages = defineMessages({
+ deleteListTitle: {
+ id: 'confirmations.delete_list.title',
+ defaultMessage: 'Delete list?',
+ },
+ deleteListMessage: {
+ id: 'confirmations.delete_list.message',
+ defaultMessage: 'Are you sure you want to permanently delete this list?',
+ },
+ deleteListConfirm: {
+ id: 'confirmations.delete_list.confirm',
+ defaultMessage: 'Delete',
+ },
+});
+
+export const ConfirmDeleteListModal: React.FC<
+ {
+ listId: string;
+ columnId: string;
+ } & BaseConfirmationModalProps
+> = ({ listId, columnId, onClose }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+ const history = useHistory();
+
+ const onConfirm = useCallback(() => {
+ dispatch(deleteList(listId));
+
+ if (columnId) {
+ dispatch(removeColumn(columnId));
+ } else {
+ history.push('/lists');
+ }
+ }, [dispatch, history, columnId, listId]);
+
+ return (
+
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_status.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_status.tsx
new file mode 100644
index 00000000000..39e80cf7410
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_status.tsx
@@ -0,0 +1,67 @@
+import { useCallback } from 'react';
+
+import { defineMessages, useIntl } from 'react-intl';
+
+import { deleteStatus } from 'mastodon/actions/statuses';
+import { useAppDispatch } from 'mastodon/store';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const messages = defineMessages({
+ deleteAndRedraftTitle: {
+ id: 'confirmations.redraft.title',
+ defaultMessage: 'Delete & redraft post?',
+ },
+ deleteAndRedraftMessage: {
+ id: 'confirmations.redraft.message',
+ defaultMessage:
+ 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.',
+ },
+ deleteAndRedraftConfirm: {
+ id: 'confirmations.redraft.confirm',
+ defaultMessage: 'Delete & redraft',
+ },
+ deleteTitle: {
+ id: 'confirmations.delete.title',
+ defaultMessage: 'Delete post?',
+ },
+ deleteMessage: {
+ id: 'confirmations.delete.message',
+ defaultMessage: 'Are you sure you want to delete this status?',
+ },
+ deleteConfirm: {
+ id: 'confirmations.delete.confirm',
+ defaultMessage: 'Delete',
+ },
+});
+
+export const ConfirmDeleteStatusModal: React.FC<
+ {
+ statusId: string;
+ withRedraft: boolean;
+ } & BaseConfirmationModalProps
+> = ({ statusId, withRedraft, onClose }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+
+ const onConfirm = useCallback(() => {
+ dispatch(deleteStatus(statusId, withRedraft));
+ }, [dispatch, statusId, withRedraft]);
+
+ return (
+
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx
new file mode 100644
index 00000000000..fb958518c25
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx
@@ -0,0 +1,45 @@
+import { useCallback } from 'react';
+
+import { defineMessages, useIntl } from 'react-intl';
+
+import { editStatus } from 'mastodon/actions/statuses';
+import { useAppDispatch } from 'mastodon/store';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const messages = defineMessages({
+ editTitle: {
+ id: 'confirmations.edit.title',
+ defaultMessage: 'Overwrite post?',
+ },
+ editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' },
+ editMessage: {
+ id: 'confirmations.edit.message',
+ defaultMessage:
+ 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?',
+ },
+});
+
+export const ConfirmEditStatusModal: React.FC<
+ {
+ statusId: string;
+ } & BaseConfirmationModalProps
+> = ({ statusId, onClose }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+
+ const onConfirm = useCallback(() => {
+ dispatch(editStatus(statusId));
+ }, [dispatch, statusId]);
+
+ return (
+
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts b/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts
new file mode 100644
index 00000000000..912c99a393a
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts
@@ -0,0 +1,8 @@
+export { ConfirmationModal } from './confirmation_modal';
+export { ConfirmDeleteStatusModal } from './delete_status';
+export { ConfirmDeleteListModal } from './delete_list';
+export { ConfirmReplyModal } from './reply';
+export { ConfirmEditStatusModal } from './edit_status';
+export { ConfirmUnfollowModal } from './unfollow';
+export { ConfirmClearNotificationsModal } from './clear_notifications';
+export { ConfirmLogOutModal } from './log_out';
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx
new file mode 100644
index 00000000000..ec61146877e
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx
@@ -0,0 +1,40 @@
+import { useCallback } from 'react';
+
+import { defineMessages, useIntl } from 'react-intl';
+
+import { logOut } from 'mastodon/utils/log_out';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const messages = defineMessages({
+ logoutTitle: { id: 'confirmations.logout.title', defaultMessage: 'Log out?' },
+ logoutMessage: {
+ id: 'confirmations.logout.message',
+ defaultMessage: 'Are you sure you want to log out?',
+ },
+ logoutConfirm: {
+ id: 'confirmations.logout.confirm',
+ defaultMessage: 'Log out',
+ },
+});
+
+export const ConfirmLogOutModal: React.FC = ({
+ onClose,
+}) => {
+ const intl = useIntl();
+
+ const onConfirm = useCallback(() => {
+ void logOut();
+ }, []);
+
+ return (
+
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx
new file mode 100644
index 00000000000..cccd62e4b41
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx
@@ -0,0 +1,46 @@
+import { useCallback } from 'react';
+
+import { defineMessages, useIntl } from 'react-intl';
+
+import { replyCompose } from 'mastodon/actions/compose';
+import type { Status } from 'mastodon/models/status';
+import { useAppDispatch } from 'mastodon/store';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const messages = defineMessages({
+ replyTitle: {
+ id: 'confirmations.reply.title',
+ defaultMessage: 'Overwrite post?',
+ },
+ replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
+ replyMessage: {
+ id: 'confirmations.reply.message',
+ defaultMessage:
+ 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?',
+ },
+});
+
+export const ConfirmReplyModal: React.FC<
+ {
+ status: Status;
+ } & BaseConfirmationModalProps
+> = ({ status, onClose }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+
+ const onConfirm = useCallback(() => {
+ dispatch(replyCompose(status));
+ }, [dispatch, status]);
+
+ return (
+
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/unfollow.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/unfollow.tsx
new file mode 100644
index 00000000000..58e39da07bf
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/unfollow.tsx
@@ -0,0 +1,50 @@
+import { useCallback } from 'react';
+
+import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
+
+import { unfollowAccount } from 'mastodon/actions/accounts';
+import type { Account } from 'mastodon/models/account';
+import { useAppDispatch } from 'mastodon/store';
+
+import type { BaseConfirmationModalProps } from './confirmation_modal';
+import { ConfirmationModal } from './confirmation_modal';
+
+const messages = defineMessages({
+ unfollowTitle: {
+ id: 'confirmations.unfollow.title',
+ defaultMessage: 'Unfollow user?',
+ },
+ unfollowConfirm: {
+ id: 'confirmations.unfollow.confirm',
+ defaultMessage: 'Unfollow',
+ },
+});
+
+export const ConfirmUnfollowModal: React.FC<
+ {
+ account: Account;
+ } & BaseConfirmationModalProps
+> = ({ account, onClose }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+
+ const onConfirm = useCallback(() => {
+ dispatch(unfollowAccount(account.id));
+ }, [dispatch, account.id]);
+
+ return (
+ @{account.acct} }}
+ />
+ }
+ confirm={intl.formatMessage(messages.unfollowConfirm)}
+ onConfirm={onConfirm}
+ onClose={onClose}
+ />
+ );
+};
diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx
index 6a71bb2465e..3d1380f6669 100644
--- a/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx
+++ b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx
@@ -1,7 +1,7 @@
import PropTypes from 'prop-types';
import { PureComponent } from 'react';
-import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
+import { FormattedMessage, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
@@ -9,29 +9,15 @@ import { connect } from 'react-redux';
import { openModal } from 'mastodon/actions/modal';
import { disabledAccountId, movedToAccountId, domain } from 'mastodon/initial_state';
-import { logOut } from 'mastodon/utils/log_out';
-
-const messages = defineMessages({
- logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
- logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
-});
const mapStateToProps = (state) => ({
disabledAcct: state.getIn(['accounts', disabledAccountId, 'acct']),
movedToAcct: movedToAccountId ? state.getIn(['accounts', movedToAccountId, 'acct']) : undefined,
});
-const mapDispatchToProps = (dispatch, { intl }) => ({
+const mapDispatchToProps = (dispatch) => ({
onLogout () {
- dispatch(openModal({
- modalType: 'CONFIRM',
- modalProps: {
- message: intl.formatMessage(messages.logoutMessage),
- confirm: intl.formatMessage(messages.logoutConfirm),
- closeWhenConfirm: false,
- onConfirm: () => logOut(),
- },
- }));
+ dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' }));
},
});
diff --git a/app/javascript/mastodon/features/ui/components/domain_block_modal.jsx b/app/javascript/mastodon/features/ui/components/domain_block_modal.jsx
deleted file mode 100644
index e69db634895..00000000000
--- a/app/javascript/mastodon/features/ui/components/domain_block_modal.jsx
+++ /dev/null
@@ -1,106 +0,0 @@
-import PropTypes from 'prop-types';
-import { useCallback } from 'react';
-
-import { FormattedMessage } from 'react-intl';
-
-import { useDispatch } from 'react-redux';
-
-import CampaignIcon from '@/material-icons/400-24px/campaign.svg?react';
-import DomainDisabledIcon from '@/material-icons/400-24px/domain_disabled.svg?react';
-import HistoryIcon from '@/material-icons/400-24px/history.svg?react';
-import PersonRemoveIcon from '@/material-icons/400-24px/person_remove.svg?react';
-import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
-import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react';
-import { blockAccount } from 'mastodon/actions/accounts';
-import { blockDomain } from 'mastodon/actions/domain_blocks';
-import { closeModal } from 'mastodon/actions/modal';
-import { Button } from 'mastodon/components/button';
-import { Icon } from 'mastodon/components/icon';
-
-export const DomainBlockModal = ({ domain, accountId, acct }) => {
- const dispatch = useDispatch();
-
- const handleClick = useCallback(() => {
- dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
- dispatch(blockDomain(domain));
- }, [dispatch, domain]);
-
- const handleSecondaryClick = useCallback(() => {
- dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
- dispatch(blockAccount(accountId));
- }, [dispatch, accountId]);
-
- const handleCancel = useCallback(() => {
- dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
- }, [dispatch]);
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-};
-
-DomainBlockModal.propTypes = {
- domain: PropTypes.string.isRequired,
- accountId: PropTypes.string.isRequired,
- acct: PropTypes.string.isRequired,
-};
-
-export default DomainBlockModal;
diff --git a/app/javascript/mastodon/features/ui/components/domain_block_modal.tsx b/app/javascript/mastodon/features/ui/components/domain_block_modal.tsx
new file mode 100644
index 00000000000..7e6715990e0
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/domain_block_modal.tsx
@@ -0,0 +1,204 @@
+import { useCallback, useEffect, useState } from 'react';
+
+import { FormattedMessage } from 'react-intl';
+
+import CampaignIcon from '@/material-icons/400-24px/campaign.svg?react';
+import DomainDisabledIcon from '@/material-icons/400-24px/domain_disabled.svg?react';
+import HistoryIcon from '@/material-icons/400-24px/history.svg?react';
+import PersonRemoveIcon from '@/material-icons/400-24px/person_remove.svg?react';
+import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
+import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react';
+import { blockAccount } from 'mastodon/actions/accounts';
+import { blockDomain } from 'mastodon/actions/domain_blocks';
+import { closeModal } from 'mastodon/actions/modal';
+import { apiRequest } from 'mastodon/api';
+import { Button } from 'mastodon/components/button';
+import { Icon } from 'mastodon/components/icon';
+import { LoadingIndicator } from 'mastodon/components/loading_indicator';
+import { ShortNumber } from 'mastodon/components/short_number';
+import { useAppDispatch } from 'mastodon/store';
+
+interface DomainBlockPreviewResponse {
+ following_count: number;
+ followers_count: number;
+}
+
+export const DomainBlockModal: React.FC<{
+ domain: string;
+ accountId: string;
+ acct: string;
+}> = ({ domain, accountId, acct }) => {
+ const dispatch = useAppDispatch();
+ const [loading, setLoading] = useState(true);
+ const [preview, setPreview] = useState(
+ null,
+ );
+
+ const handleClick = useCallback(() => {
+ if (loading) {
+ return; // Prevent destructive action before the preview finishes loading or times out
+ }
+
+ dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
+ dispatch(blockDomain(domain));
+ }, [dispatch, loading, domain]);
+
+ const handleSecondaryClick = useCallback(() => {
+ dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
+ dispatch(blockAccount(accountId));
+ }, [dispatch, accountId]);
+
+ const handleCancel = useCallback(() => {
+ dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
+ }, [dispatch]);
+
+ useEffect(() => {
+ setLoading(true);
+
+ apiRequest('GET', 'v1/domain_blocks/preview', {
+ params: { domain },
+ timeout: 5000,
+ })
+ .then((data) => {
+ setPreview(data);
+ setLoading(false);
+ return '';
+ })
+ .catch(() => {
+ setLoading(false);
+ });
+ }, [setPreview, setLoading, domain]);
+
+ return (
+
+
+
+
+
+ {preview && preview.followers_count + preview.following_count > 0 && (
+
+
+
+
+
+
+
+ ),
+ followingCount: preview.following_count,
+ followingCountDisplay: (
+
+ ),
+ }}
+ />
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+// eslint-disable-next-line import/no-default-export
+export default DomainBlockModal;
diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.jsx b/app/javascript/mastodon/features/ui/components/embed_modal.jsx
deleted file mode 100644
index a4e5fc9dfb3..00000000000
--- a/app/javascript/mastodon/features/ui/components/embed_modal.jsx
+++ /dev/null
@@ -1,101 +0,0 @@
-import PropTypes from 'prop-types';
-
-import { defineMessages, FormattedMessage, injectIntl } from 'react-intl';
-
-import ImmutablePureComponent from 'react-immutable-pure-component';
-
-import CloseIcon from '@/material-icons/400-24px/close.svg?react';
-import api from 'mastodon/api';
-import { IconButton } from 'mastodon/components/icon_button';
-
-const messages = defineMessages({
- close: { id: 'lightbox.close', defaultMessage: 'Close' },
-});
-
-class EmbedModal extends ImmutablePureComponent {
-
- static propTypes = {
- id: PropTypes.string.isRequired,
- onClose: PropTypes.func.isRequired,
- onError: PropTypes.func.isRequired,
- intl: PropTypes.object.isRequired,
- };
-
- state = {
- loading: false,
- oembed: null,
- };
-
- componentDidMount () {
- const { id } = this.props;
-
- this.setState({ loading: true });
-
- api().get(`/api/web/embeds/${id}`).then(res => {
- this.setState({ loading: false, oembed: res.data });
-
- const iframeDocument = this.iframe.contentWindow.document;
-
- iframeDocument.open();
- iframeDocument.write(res.data.html);
- iframeDocument.close();
-
- iframeDocument.body.style.margin = 0;
- this.iframe.width = iframeDocument.body.scrollWidth;
- this.iframe.height = iframeDocument.body.scrollHeight;
- }).catch(error => {
- this.props.onError(error);
- });
- }
-
- setIframeRef = c => {
- this.iframe = c;
- };
-
- handleTextareaClick = (e) => {
- e.target.select();
- };
-
- render () {
- const { intl, onClose } = this.props;
- const { oembed } = this.state;
-
- return (
-
- );
- }
-
-}
-
-export default injectIntl(EmbedModal);
diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.tsx b/app/javascript/mastodon/features/ui/components/embed_modal.tsx
new file mode 100644
index 00000000000..8f623e62b52
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/embed_modal.tsx
@@ -0,0 +1,116 @@
+import { useRef, useState, useEffect } from 'react';
+
+import { FormattedMessage } from 'react-intl';
+
+import { showAlertForError } from 'mastodon/actions/alerts';
+import api from 'mastodon/api';
+import { Button } from 'mastodon/components/button';
+import { CopyPasteText } from 'mastodon/components/copy_paste_text';
+import { useAppDispatch } from 'mastodon/store';
+
+interface OEmbedResponse {
+ html: string;
+}
+
+const EmbedModal: React.FC<{
+ id: string;
+ onClose: () => void;
+}> = ({ id, onClose }) => {
+ const iframeRef = useRef(null);
+ const intervalRef = useRef>();
+ const [oembed, setOembed] = useState(null);
+ const dispatch = useAppDispatch();
+
+ useEffect(() => {
+ api()
+ .get(`/api/web/embeds/${id}`)
+ .then((res) => {
+ const data = res.data as OEmbedResponse;
+
+ setOembed(data);
+
+ const iframeDocument = iframeRef.current?.contentWindow?.document;
+
+ if (!iframeDocument) {
+ return '';
+ }
+
+ iframeDocument.open();
+ iframeDocument.write(data.html);
+ iframeDocument.close();
+
+ iframeDocument.body.style.margin = '0px';
+
+ // This is our best chance to ensure the parent iframe has the correct height...
+ intervalRef.current = setInterval(
+ () =>
+ window.requestAnimationFrame(() => {
+ if (iframeRef.current) {
+ iframeRef.current.width = `${iframeDocument.body.scrollWidth}px`;
+ iframeRef.current.height = `${iframeDocument.body.scrollHeight}px`;
+ }
+ }),
+ 100,
+ );
+
+ return '';
+ })
+ .catch((error: unknown) => {
+ dispatch(showAlertForError(error));
+ });
+ }, [dispatch, id, setOembed]);
+
+ useEffect(
+ () => () => {
+ if (intervalRef.current) {
+ clearInterval(intervalRef.current);
+ }
+ },
+ [],
+ );
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+// eslint-disable-next-line import/no-default-export
+export default EmbedModal;
diff --git a/app/javascript/mastodon/features/ui/components/ignore_notifications_modal.jsx b/app/javascript/mastodon/features/ui/components/ignore_notifications_modal.jsx
new file mode 100644
index 00000000000..dffaa04492c
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/ignore_notifications_modal.jsx
@@ -0,0 +1,108 @@
+import PropTypes from 'prop-types';
+import { useCallback } from 'react';
+
+import { FormattedMessage } from 'react-intl';
+
+import { useDispatch } from 'react-redux';
+
+import InventoryIcon from '@/material-icons/400-24px/inventory_2.svg?react';
+import PersonAlertIcon from '@/material-icons/400-24px/person_alert.svg?react';
+import ShieldQuestionIcon from '@/material-icons/400-24px/shield_question.svg?react';
+import { closeModal } from 'mastodon/actions/modal';
+import { updateNotificationsPolicy } from 'mastodon/actions/notification_policies';
+import { Button } from 'mastodon/components/button';
+import { Icon } from 'mastodon/components/icon';
+
+export const IgnoreNotificationsModal = ({ filterType }) => {
+ const dispatch = useDispatch();
+
+ const handleClick = useCallback(() => {
+ dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
+ void dispatch(updateNotificationsPolicy({ [filterType]: 'drop' }));
+ }, [dispatch, filterType]);
+
+ const handleSecondaryClick = useCallback(() => {
+ dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
+ void dispatch(updateNotificationsPolicy({ [filterType]: 'filter' }));
+ }, [dispatch, filterType]);
+
+ const handleCancel = useCallback(() => {
+ dispatch(closeModal({ modalType: undefined, ignoreFocus: false }));
+ }, [dispatch]);
+
+ let title = null;
+
+ switch(filterType) {
+ case 'for_not_following':
+ title = ;
+ break;
+ case 'for_not_followers':
+ title = ;
+ break;
+ case 'for_new_accounts':
+ title = ;
+ break;
+ case 'for_private_mentions':
+ title = ;
+ break;
+ case 'for_limited_accounts':
+ title = ;
+ break;
+ }
+
+ return (
+
+
+
+
{title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+IgnoreNotificationsModal.propTypes = {
+ filterType: PropTypes.string.isRequired,
+};
+
+export default IgnoreNotificationsModal;
diff --git a/app/javascript/mastodon/features/ui/components/image_loader.jsx b/app/javascript/mastodon/features/ui/components/image_loader.jsx
index 9dabc621b42..b1417deda77 100644
--- a/app/javascript/mastodon/features/ui/components/image_loader.jsx
+++ b/app/javascript/mastodon/features/ui/components/image_loader.jsx
@@ -17,7 +17,7 @@ export default class ImageLoader extends PureComponent {
width: PropTypes.number,
height: PropTypes.number,
onClick: PropTypes.func,
- zoomButtonHidden: PropTypes.bool,
+ zoomedIn: PropTypes.bool,
};
static defaultProps = {
@@ -134,7 +134,7 @@ export default class ImageLoader extends PureComponent {
};
render () {
- const { alt, lang, src, width, height, onClick } = this.props;
+ const { alt, lang, src, width, height, onClick, zoomedIn } = this.props;
const { loading } = this.state;
const className = classNames('image-loader', {
@@ -149,6 +149,7 @@ export default class ImageLoader extends PureComponent {
+
)}
diff --git a/app/javascript/mastodon/features/ui/components/link_footer.jsx b/app/javascript/mastodon/features/ui/components/link_footer.jsx
index 08af6fa4442..49b21c2e487 100644
--- a/app/javascript/mastodon/features/ui/components/link_footer.jsx
+++ b/app/javascript/mastodon/features/ui/components/link_footer.jsx
@@ -1,7 +1,7 @@
import PropTypes from 'prop-types';
import { PureComponent } from 'react';
-import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
+import { FormattedMessage, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
@@ -11,24 +11,11 @@ import { openModal } from 'mastodon/actions/modal';
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
import { domain, version, source_url, statusPageUrl, profile_directory as profileDirectory } from 'mastodon/initial_state';
import { PERMISSION_INVITE_USERS } from 'mastodon/permissions';
-import { logOut } from 'mastodon/utils/log_out';
-const messages = defineMessages({
- logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
- logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
-});
-
-const mapDispatchToProps = (dispatch, { intl }) => ({
+const mapDispatchToProps = (dispatch) => ({
onLogout () {
- dispatch(openModal({
- modalType: 'CONFIRM',
- modalProps: {
- message: intl.formatMessage(messages.logoutMessage),
- confirm: intl.formatMessage(messages.logoutConfirm),
- closeWhenConfirm: false,
- onConfirm: () => logOut(),
- },
- }));
+ dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' }));
+
},
});
diff --git a/app/javascript/mastodon/features/ui/components/media_modal.jsx b/app/javascript/mastodon/features/ui/components/media_modal.jsx
index 0f6e8a727be..d69ceba5396 100644
--- a/app/javascript/mastodon/features/ui/components/media_modal.jsx
+++ b/app/javascript/mastodon/features/ui/components/media_modal.jsx
@@ -12,6 +12,8 @@ import ReactSwipeableViews from 'react-swipeable-views';
import ChevronLeftIcon from '@/material-icons/400-24px/chevron_left.svg?react';
import ChevronRightIcon from '@/material-icons/400-24px/chevron_right.svg?react';
import CloseIcon from '@/material-icons/400-24px/close.svg?react';
+import FitScreenIcon from '@/material-icons/400-24px/fit_screen.svg?react';
+import ActualSizeIcon from '@/svg-icons/actual_size.svg?react';
import { getAverageFromBlurhash } from 'mastodon/blurhash';
import { GIFV } from 'mastodon/components/gifv';
import { Icon } from 'mastodon/components/icon';
@@ -26,6 +28,8 @@ const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
previous: { id: 'lightbox.previous', defaultMessage: 'Previous' },
next: { id: 'lightbox.next', defaultMessage: 'Next' },
+ zoomIn: { id: 'lightbox.zoom_in', defaultMessage: 'Zoom to actual size' },
+ zoomOut: { id: 'lightbox.zoom_out', defaultMessage: 'Zoom to fit' },
});
class MediaModal extends ImmutablePureComponent {
@@ -46,30 +50,39 @@ class MediaModal extends ImmutablePureComponent {
state = {
index: null,
navigationHidden: false,
- zoomButtonHidden: false,
+ zoomedIn: false,
+ };
+
+ handleZoomClick = () => {
+ this.setState(prevState => ({
+ zoomedIn: !prevState.zoomedIn,
+ }));
};
handleSwipe = (index) => {
- this.setState({ index: index % this.props.media.size });
+ this.setState({
+ index: index % this.props.media.size,
+ zoomedIn: false,
+ });
};
handleTransitionEnd = () => {
this.setState({
- zoomButtonHidden: false,
+ zoomedIn: false,
});
};
handleNextClick = () => {
this.setState({
index: (this.getIndex() + 1) % this.props.media.size,
- zoomButtonHidden: true,
+ zoomedIn: false,
});
};
handlePrevClick = () => {
this.setState({
index: (this.props.media.size + this.getIndex() - 1) % this.props.media.size,
- zoomButtonHidden: true,
+ zoomedIn: false,
});
};
@@ -78,7 +91,7 @@ class MediaModal extends ImmutablePureComponent {
this.setState({
index: index % this.props.media.size,
- zoomButtonHidden: true,
+ zoomedIn: false,
});
};
@@ -130,15 +143,22 @@ class MediaModal extends ImmutablePureComponent {
return this.state.index !== null ? this.state.index : this.props.index;
}
- toggleNavigation = () => {
+ handleToggleNavigation = () => {
this.setState(prevState => ({
navigationHidden: !prevState.navigationHidden,
}));
};
+ setRef = c => {
+ this.setState({
+ viewportWidth: c?.clientWidth,
+ viewportHeight: c?.clientHeight,
+ });
+ };
+
render () {
const { media, statusId, lang, intl, onClose } = this.props;
- const { navigationHidden } = this.state;
+ const { navigationHidden, zoomedIn, viewportWidth, viewportHeight } = this.state;
const index = this.getIndex();
@@ -160,8 +180,8 @@ class MediaModal extends ImmutablePureComponent {
alt={description}
lang={lang}
key={image.get('url')}
- onClick={this.toggleNavigation}
- zoomButtonHidden={this.state.zoomButtonHidden}
+ onClick={this.handleToggleNavigation}
+ zoomedIn={zoomedIn}
/>
);
} else if (image.get('type') === 'video') {
@@ -230,9 +250,12 @@ class MediaModal extends ImmutablePureComponent {
));
}
+ const currentMedia = media.get(index);
+ const zoomable = currentMedia.get('type') === 'image' && (currentMedia.getIn(['meta', 'original', 'width']) > viewportWidth || currentMedia.getIn(['meta', 'original', 'height']) > viewportHeight);
+
return (
-
-
+
+
-
+
+ {zoomable && }
+
+
{leftNav}
{rightNav}
diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx
index 404b53c7429..64933fd1ae5 100644
--- a/app/javascript/mastodon/features/ui/components/modal_root.jsx
+++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx
@@ -17,6 +17,7 @@ import {
InteractionModal,
SubscribedLanguagesModal,
ClosedRegistrationsModal,
+ IgnoreNotificationsModal,
} from 'mastodon/features/ui/util/async-components';
import { getScrollbarWidth } from 'mastodon/utils/scrollbar';
@@ -26,7 +27,16 @@ import ActionsModal from './actions_modal';
import AudioModal from './audio_modal';
import { BoostModal } from './boost_modal';
import BundleModalError from './bundle_modal_error';
-import ConfirmationModal from './confirmation_modal';
+import {
+ ConfirmationModal,
+ ConfirmDeleteStatusModal,
+ ConfirmDeleteListModal,
+ ConfirmReplyModal,
+ ConfirmEditStatusModal,
+ ConfirmUnfollowModal,
+ ConfirmClearNotificationsModal,
+ ConfirmLogOutModal,
+} from './confirmation_modals';
import FocalPointModal from './focal_point_modal';
import ImageModal from './image_modal';
import MediaModal from './media_modal';
@@ -40,6 +50,13 @@ export const MODAL_COMPONENTS = {
'IMAGE': () => Promise.resolve({ default: ImageModal }),
'BOOST': () => Promise.resolve({ default: BoostModal }),
'CONFIRM': () => Promise.resolve({ default: ConfirmationModal }),
+ 'CONFIRM_DELETE_STATUS': () => Promise.resolve({ default: ConfirmDeleteStatusModal }),
+ 'CONFIRM_DELETE_LIST': () => Promise.resolve({ default: ConfirmDeleteListModal }),
+ 'CONFIRM_REPLY': () => Promise.resolve({ default: ConfirmReplyModal }),
+ 'CONFIRM_EDIT_STATUS': () => Promise.resolve({ default: ConfirmEditStatusModal }),
+ 'CONFIRM_UNFOLLOW': () => Promise.resolve({ default: ConfirmUnfollowModal }),
+ 'CONFIRM_CLEAR_NOTIFICATIONS': () => Promise.resolve({ default: ConfirmClearNotificationsModal }),
+ 'CONFIRM_LOG_OUT': () => Promise.resolve({ default: ConfirmLogOutModal }),
'MUTE': MuteModal,
'BLOCK': BlockModal,
'DOMAIN_BLOCK': DomainBlockModal,
@@ -54,6 +71,7 @@ export const MODAL_COMPONENTS = {
'SUBSCRIBED_LANGUAGES': SubscribedLanguagesModal,
'INTERACTION': InteractionModal,
'CLOSED_REGISTRATIONS': ClosedRegistrationsModal,
+ 'IGNORE_NOTIFICATIONS': IgnoreNotificationsModal,
};
export default class ModalRoot extends PureComponent {
diff --git a/app/javascript/mastodon/features/ui/components/mute_modal.jsx b/app/javascript/mastodon/features/ui/components/mute_modal.jsx
index df466cfac6a..70d95b59316 100644
--- a/app/javascript/mastodon/features/ui/components/mute_modal.jsx
+++ b/app/javascript/mastodon/features/ui/components/mute_modal.jsx
@@ -137,7 +137,7 @@ export const MuteModal = ({ accountId, acct }) => {
-
diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.jsx b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx
index ff90eef359f..8fa20a554d3 100644
--- a/app/javascript/mastodon/features/ui/components/navigation_panel.jsx
+++ b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx
@@ -7,16 +7,17 @@ import { Link } from 'react-router-dom';
import { useSelector, useDispatch } from 'react-redux';
-
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
import BookmarksActiveIcon from '@/material-icons/400-24px/bookmarks-fill.svg?react';
import BookmarksIcon from '@/material-icons/400-24px/bookmarks.svg?react';
import ExploreActiveIcon from '@/material-icons/400-24px/explore-fill.svg?react';
import ExploreIcon from '@/material-icons/400-24px/explore.svg?react';
+import ModerationIcon from '@/material-icons/400-24px/gavel.svg?react';
import HomeActiveIcon from '@/material-icons/400-24px/home-fill.svg?react';
import HomeIcon from '@/material-icons/400-24px/home.svg?react';
import ListAltActiveIcon from '@/material-icons/400-24px/list_alt-fill.svg?react';
import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react';
+import AdministrationIcon from '@/material-icons/400-24px/manufacturing.svg?react';
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
import NotificationsActiveIcon from '@/material-icons/400-24px/notifications-fill.svg?react';
import NotificationsIcon from '@/material-icons/400-24px/notifications.svg?react';
@@ -34,6 +35,8 @@ import { NavigationPortal } from 'mastodon/components/navigation_portal';
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
import { timelinePreview, trendsEnabled } from 'mastodon/initial_state';
import { transientSingleColumn } from 'mastodon/is_mobile';
+import { canManageReports, canViewAdminDashboard } from 'mastodon/permissions';
+import { selectUnreadNotificationGroupsCount } from 'mastodon/selectors/notifications';
import ColumnLink from './column_link';
import DisabledAccountBanner from './disabled_account_banner';
@@ -50,6 +53,8 @@ const messages = defineMessages({
bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
+ administration: { id: 'navigation_bar.administration', defaultMessage: 'Administration' },
+ moderation: { id: 'navigation_bar.moderation', defaultMessage: 'Moderation' },
followsAndFollowers: { id: 'navigation_bar.follows_and_followers', defaultMessage: 'Follows and followers' },
about: { id: 'navigation_bar.about', defaultMessage: 'About' },
search: { id: 'navigation_bar.search', defaultMessage: 'Search' },
@@ -59,11 +64,13 @@ const messages = defineMessages({
});
const NotificationsLink = () => {
- const count = useSelector(state => state.getIn(['notifications', 'unread']));
+
+ const count = useSelector(selectUnreadNotificationGroupsCount);
const intl = useIntl();
return (
}
@@ -109,18 +116,21 @@ class NavigationPanel extends Component {
render () {
const { intl } = this.props;
- const { signedIn, disabledAccountId } = this.props.identity;
+ const { signedIn, disabledAccountId, permissions } = this.props.identity;
let banner = undefined;
- if(transientSingleColumn)
- banner = ();
+ if (transientSingleColumn) {
+ banner = (
+
+ );
+ }
return (
@@ -134,51 +144,58 @@ class NavigationPanel extends Component {
}
- {signedIn && (
- <>
-
-
-
- >
- )}
+
+ {signedIn && (
+ <>
+
+
+
+ >
+ )}
- {trendsEnabled ? (
-
- ) : (
-
- )}
+ {trendsEnabled ? (
+
+ ) : (
+
+ )}
- {(signedIn || timelinePreview) && (
-
- )}
+ {(signedIn || timelinePreview) && (
+
+ )}
- {!signedIn && (
-
+ {!signedIn && (
+
+
+ { disabledAccountId ? : }
+
+ )}
+
+ {signedIn && (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+ {canManageReports(permissions) &&
}
+ {canViewAdminDashboard(permissions) &&
}
+ >
+ )}
+
+
- { disabledAccountId ? : }
+
- )}
-
- {signedIn && (
- <>
-
-
-
-
-
-
-
-
-
-
- >
- )}
-
-
-
-
+
+
);
diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
index 272a3cff009..c4129bf2609 100644
--- a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
+++ b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
@@ -1,17 +1,6 @@
import PropTypes from 'prop-types';
import { PureComponent } from 'react';
-import { defineMessages, injectIntl } from 'react-intl';
-
-import FullscreenExitIcon from '@/material-icons/400-24px/fullscreen_exit.svg?react';
-import RectangleIcon from '@/material-icons/400-24px/rectangle.svg?react';
-import { IconButton } from 'mastodon/components/icon_button';
-
-const messages = defineMessages({
- compress: { id: 'lightbox.compress', defaultMessage: 'Compress image view box' },
- expand: { id: 'lightbox.expand', defaultMessage: 'Expand image view box' },
-});
-
const MIN_SCALE = 1;
const MAX_SCALE = 4;
const NAV_BAR_HEIGHT = 66;
@@ -104,8 +93,7 @@ class ZoomableImage extends PureComponent {
width: PropTypes.number,
height: PropTypes.number,
onClick: PropTypes.func,
- zoomButtonHidden: PropTypes.bool,
- intl: PropTypes.object.isRequired,
+ zoomedIn: PropTypes.bool,
};
static defaultProps = {
@@ -131,8 +119,6 @@ class ZoomableImage extends PureComponent {
translateX: null,
translateY: null,
},
- zoomState: 'expand', // 'expand' 'compress'
- navigationHidden: false,
dragPosition: { top: 0, left: 0, x: 0, y: 0 },
dragged: false,
lockScroll: { x: 0, y: 0 },
@@ -169,35 +155,20 @@ class ZoomableImage extends PureComponent {
this.container.addEventListener('DOMMouseScroll', handler);
this.removers.push(() => this.container.removeEventListener('DOMMouseScroll', handler));
- this.initZoomMatrix();
+ this._initZoomMatrix();
}
componentWillUnmount () {
- this.removeEventListeners();
+ this._removeEventListeners();
}
- componentDidUpdate () {
- this.setState({ zoomState: this.state.scale >= this.state.zoomMatrix.rate ? 'compress' : 'expand' });
-
- if (this.state.scale === MIN_SCALE) {
- this.container.style.removeProperty('cursor');
+ componentDidUpdate (prevProps) {
+ if (prevProps.zoomedIn !== this.props.zoomedIn) {
+ this._toggleZoom();
}
}
- UNSAFE_componentWillReceiveProps () {
- // reset when slide to next image
- if (this.props.zoomButtonHidden) {
- this.setState({
- scale: MIN_SCALE,
- lockTranslate: { x: 0, y: 0 },
- }, () => {
- this.container.scrollLeft = 0;
- this.container.scrollTop = 0;
- });
- }
- }
-
- removeEventListeners () {
+ _removeEventListeners () {
this.removers.forEach(listeners => listeners());
this.removers = [];
}
@@ -220,9 +191,6 @@ class ZoomableImage extends PureComponent {
};
mouseDownHandler = e => {
- this.container.style.cursor = 'grabbing';
- this.container.style.userSelect = 'none';
-
this.setState({ dragPosition: {
left: this.container.scrollLeft,
top: this.container.scrollTop,
@@ -246,9 +214,6 @@ class ZoomableImage extends PureComponent {
};
mouseUpHandler = () => {
- this.container.style.cursor = 'grab';
- this.container.style.removeProperty('user-select');
-
this.image.removeEventListener('mousemove', this.mouseMoveHandler);
this.image.removeEventListener('mouseup', this.mouseUpHandler);
};
@@ -276,13 +241,13 @@ class ZoomableImage extends PureComponent {
const _MAX_SCALE = Math.max(MAX_SCALE, this.state.zoomMatrix.rate);
const scale = clamp(MIN_SCALE, _MAX_SCALE, this.state.scale * distance / this.lastDistance);
- this.zoom(scale, midpoint);
+ this._zoom(scale, midpoint);
this.lastMidpoint = midpoint;
this.lastDistance = distance;
};
- zoom(nextScale, midpoint) {
+ _zoom(nextScale, midpoint) {
const { scale, zoomMatrix } = this.state;
const { scrollLeft, scrollTop } = this.container;
@@ -318,14 +283,13 @@ class ZoomableImage extends PureComponent {
if (dragged) return;
const handler = this.props.onClick;
if (handler) handler();
- this.setState({ navigationHidden: !this.state.navigationHidden });
};
handleMouseDown = e => {
e.preventDefault();
};
- initZoomMatrix = () => {
+ _initZoomMatrix = () => {
const { width, height } = this.props;
const { clientWidth, clientHeight } = this.container;
const { offsetWidth, offsetHeight } = this.image;
@@ -357,10 +321,7 @@ class ZoomableImage extends PureComponent {
});
};
- handleZoomClick = e => {
- e.preventDefault();
- e.stopPropagation();
-
+ _toggleZoom () {
const { scale, zoomMatrix } = this.state;
if ( scale >= zoomMatrix.rate ) {
@@ -394,10 +355,7 @@ class ZoomableImage extends PureComponent {
this.container.scrollTop = zoomMatrix.scrollTop;
});
}
-
- this.container.style.cursor = 'grab';
- this.container.style.removeProperty('user-select');
- };
+ }
setContainerRef = c => {
this.container = c;
@@ -408,52 +366,37 @@ class ZoomableImage extends PureComponent {
};
render () {
- const { alt, lang, src, width, height, intl } = this.props;
- const { scale, lockTranslate } = this.state;
+ const { alt, lang, src, width, height } = this.props;
+ const { scale, lockTranslate, dragged } = this.state;
const overflow = scale === MIN_SCALE ? 'hidden' : 'scroll';
- const zoomButtonShouldHide = this.state.navigationHidden || this.props.zoomButtonHidden || this.state.zoomMatrix.rate <= MIN_SCALE ? 'media-modal__zoom-button--hidden' : '';
- const zoomButtonTitle = this.state.zoomState === 'compress' ? intl.formatMessage(messages.compress) : intl.formatMessage(messages.expand);
+ const cursor = scale === MIN_SCALE ? null : (dragged ? 'grabbing' : 'grab');
return (
- <>
-
+
-
-
-
- >
+
);
}
-
}
-export default injectIntl(ZoomableImage);
+export default ZoomableImage;
diff --git a/app/javascript/mastodon/features/ui/containers/modal_container.js b/app/javascript/mastodon/features/ui/containers/modal_container.js
index 1c3872cd504..63c568f8479 100644
--- a/app/javascript/mastodon/features/ui/containers/modal_container.js
+++ b/app/javascript/mastodon/features/ui/containers/modal_container.js
@@ -3,10 +3,12 @@ import { connect } from 'react-redux';
import { openModal, closeModal } from '../../../actions/modal';
import ModalRoot from '../components/modal_root';
+const defaultProps = {};
+
const mapStateToProps = state => ({
ignoreFocus: state.getIn(['modal', 'ignoreFocus']),
type: state.getIn(['modal', 'stack', 0, 'modalType'], null),
- props: state.getIn(['modal', 'stack', 0, 'modalProps'], {}),
+ props: state.getIn(['modal', 'stack', 0, 'modalProps'], defaultProps),
});
const mapDispatchToProps = dispatch => ({
diff --git a/app/javascript/mastodon/features/ui/containers/notifications_container.js b/app/javascript/mastodon/features/ui/containers/notifications_container.js
index 3d60cfdad1b..b8aa9bc4614 100644
--- a/app/javascript/mastodon/features/ui/containers/notifications_container.js
+++ b/app/javascript/mastodon/features/ui/containers/notifications_container.js
@@ -4,24 +4,11 @@ import { connect } from 'react-redux';
import { NotificationStack } from 'react-notification';
-import { dismissAlert } from '../../../actions/alerts';
-import { getAlerts } from '../../../selectors';
-
-const formatIfNeeded = (intl, message, values) => {
- if (typeof message === 'object') {
- return intl.formatMessage(message, values);
- }
-
- return message;
-};
+import { dismissAlert } from 'mastodon/actions/alerts';
+import { getAlerts } from 'mastodon/selectors';
const mapStateToProps = (state, { intl }) => ({
- notifications: getAlerts(state).map(alert => ({
- ...alert,
- action: formatIfNeeded(intl, alert.action, alert.values),
- title: formatIfNeeded(intl, alert.title, alert.values),
- message: formatIfNeeded(intl, alert.message, alert.values),
- })),
+ notifications: getAlerts(state, { intl }),
});
const mapDispatchToProps = (dispatch) => ({
diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx
index 7742f64860d..2f9f962b810 100644
--- a/app/javascript/mastodon/features/ui/index.jsx
+++ b/app/javascript/mastodon/features/ui/index.jsx
@@ -13,7 +13,9 @@ import { HotKeys } from 'react-hotkeys';
import { focusApp, unfocusApp, changeLayout } from 'mastodon/actions/app';
import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'mastodon/actions/markers';
+import { initializeNotifications } from 'mastodon/actions/notifications_migration';
import { INTRODUCTION_VERSION } from 'mastodon/actions/onboarding';
+import { HoverCardController } from 'mastodon/components/hover_card_controller';
import { PictureInPicture } from 'mastodon/features/picture_in_picture';
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
import { layoutFromWindow } from 'mastodon/is_mobile';
@@ -21,10 +23,9 @@ import { WithRouterPropTypes } from 'mastodon/utils/react_router';
import { uploadCompose, resetCompose, changeComposeSpoilerness } from '../../actions/compose';
import { clearHeight } from '../../actions/height_cache';
-import { expandNotifications } from '../../actions/notifications';
import { fetchServer, fetchServerTranslationLanguages } from '../../actions/server';
import { expandHomeTimeline } from '../../actions/timelines';
-import initialState, { me, owner, singleUserMode, trendsEnabled, trendsAsLanding } from '../../initial_state';
+import initialState, { me, owner, singleUserMode, trendsEnabled, trendsAsLanding, disableHoverCards } from '../../initial_state';
import BundleColumnError from './components/bundle_column_error';
import Header from './components/header';
@@ -48,13 +49,14 @@ import {
Favourites,
DirectTimeline,
HashtagTimeline,
- Notifications,
+ NotificationsWrapper,
NotificationRequests,
NotificationRequest,
FollowRequests,
FavouritedStatuses,
BookmarkedStatuses,
FollowedTags,
+ LinkTimeline,
ListTimeline,
Blocks,
DomainBlocks,
@@ -69,6 +71,7 @@ import {
} from './util/async-components';
import { ColumnsContextProvider } from './util/columns_context';
import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers';
+
// Dummy import, to make sure that ends up in the application bundle.
// Without this it ends up in ~8 very commonly used bundles.
import '../../components/status';
@@ -82,7 +85,7 @@ const mapStateToProps = state => ({
isComposing: state.getIn(['compose', 'is_composing']),
hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0,
hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0,
- canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < 4,
+ canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < state.getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments']),
firstLaunch: state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION,
username: state.getIn(['accounts', me, 'username']),
});
@@ -183,7 +186,7 @@ class SwitchingColumnsArea extends PureComponent {
{redirect}
{singleColumn ? : null}
- {singleColumn && pathName.startsWith('/deck/') ? : null}
+ {singleColumn && pathName.startsWith('/deck/') ? : null}
{/* Redirect old bookmarks (without /deck) with home-like routes to the advanced interface */}
{!singleColumn && pathName === '/getting-started' ? : null}
{!singleColumn && pathName === '/home' ? : null}
@@ -201,8 +204,9 @@ class SwitchingColumnsArea extends PureComponent {
+
-
+
@@ -315,8 +319,8 @@ class UI extends PureComponent {
try {
e.dataTransfer.dropEffect = 'copy';
- } catch (err) {
-
+ } catch {
+ // do nothing
}
return false;
@@ -402,7 +406,7 @@ class UI extends PureComponent {
if (signedIn) {
this.props.dispatch(fetchMarkers());
this.props.dispatch(expandHomeTimeline());
- this.props.dispatch(expandNotifications());
+ this.props.dispatch(initializeNotifications());
this.props.dispatch(fetchServerTranslationLanguages());
setTimeout(() => this.props.dispatch(fetchServer()), 3000);
@@ -585,6 +589,7 @@ class UI extends PureComponent {
{layout !== 'mobile' && }
+ {!disableHoverCards && }
diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js
index e1f5bfdaf60..7e9a7af00a4 100644
--- a/app/javascript/mastodon/features/ui/util/async-components.js
+++ b/app/javascript/mastodon/features/ui/util/async-components.js
@@ -7,7 +7,15 @@ export function Compose () {
}
export function Notifications () {
- return import(/* webpackChunkName: "features/notifications" */'../../notifications');
+ return import(/* webpackChunkName: "features/notifications_v1" */'../../notifications');
+}
+
+export function Notifications_v2 () {
+ return import(/* webpackChunkName: "features/notifications_v2" */'../../notifications_v2');
+}
+
+export function NotificationsWrapper () {
+ return import(/* webpackChunkName: "features/notifications" */'../../notifications_wrapper');
}
export function HomeTimeline () {
@@ -126,6 +134,10 @@ export function ReportModal () {
return import(/* webpackChunkName: "modals/report_modal" */'../components/report_modal');
}
+export function IgnoreNotificationsModal () {
+ return import(/* webpackChunkName: "modals/domain_block_modal" */'../components/ignore_notifications_modal');
+}
+
export function MediaGallery () {
return import(/* webpackChunkName: "status/media_gallery" */'../../../components/media_gallery');
}
@@ -201,3 +213,7 @@ export function NotificationRequests () {
export function NotificationRequest () {
return import(/*webpackChunkName: "features/notifications/request" */'../../notifications/request');
}
+
+export function LinkTimeline () {
+ return import(/*webpackChunkName: "features/link_timeline" */'../../link_timeline');
+}
diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js
index 9ec3df0df87..60b35cb31ac 100644
--- a/app/javascript/mastodon/initial_state.js
+++ b/app/javascript/mastodon/initial_state.js
@@ -15,6 +15,7 @@
* @property {boolean=} boost_modal
* @property {boolean=} delete_modal
* @property {boolean=} disable_swiping
+ * @property {boolean=} disable_hover_cards
* @property {string=} disabled_account_id
* @property {string} display_media
* @property {string} domain
@@ -86,6 +87,7 @@ export const autoPlayGif = getMeta('auto_play_gif');
export const boostModal = getMeta('boost_modal');
export const deleteModal = getMeta('delete_modal');
export const disableSwiping = getMeta('disable_swiping');
+export const disableHoverCards = getMeta('disable_hover_cards');
export const disabledAccountId = getMeta('disabled_account_id');
export const displayMedia = getMeta('display_media');
export const domain = getMeta('domain');
diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json
index e4f7f12b0ed..a506b996544 100644
--- a/app/javascript/mastodon/locales/af.json
+++ b/app/javascript/mastodon/locales/af.json
@@ -9,7 +9,6 @@
"about.not_available": "Hierdie inligting is nie op hierdie bediener beskikbaar gestel nie.",
"about.powered_by": "Gedesentraliseerde sosiale media aangedryf deur {mastodon}",
"about.rules": "Bedienerreëls",
- "account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Voeg by of verwyder van lyste",
"account.badges.bot": "Bot",
"account.badges.group": "Groep",
@@ -17,7 +16,6 @@
"account.block_domain": "Blokkeer domein {domain}",
"account.block_short": "Blokkeer",
"account.blocked": "Geblokkeer",
- "account.browse_more_on_origin_server": "Verken die oorspronklike profiel",
"account.cancel_follow_request": "Herroep volgversoek",
"account.disable_notifications": "Hou op om my van @{name} se plasings te laat weet",
"account.domain_blocked": "Domein geblokkeer",
@@ -50,7 +48,6 @@
"account.requested_follow": "{name} het versoek om jou te volg",
"account.share": "Deel @{name} se profiel",
"account.show_reblogs": "Wys aangestuurde plasings van @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Plaas} other {{counter} Plasings}}",
"account.unblock": "Deblokkeer @{name}",
"account.unblock_domain": "Deblokkeer domein {domain}",
"account.unblock_short": "Deblokkeer",
@@ -120,8 +117,6 @@
"compose_form.spoiler.unmarked": "Voeg inhoudswaarskuwing by",
"confirmation_modal.cancel": "Kanselleer",
"confirmations.block.confirm": "Blokkeer",
- "confirmations.cancel_follow_request.confirm": "Herroep versoek",
- "confirmations.cancel_follow_request.message": "Is jy seker jy wil jou versoek om {name} te volg, terugtrek?",
"confirmations.delete.confirm": "Wis uit",
"confirmations.delete.message": "Is jy seker jy wil hierdie plasing uitvee?",
"confirmations.delete_list.confirm": "Wis uit",
@@ -312,7 +307,6 @@
"status.translated_from_with": "Uit {lang} vertaal deur {provider}",
"tabs_bar.home": "Tuis",
"tabs_bar.notifications": "Kennisgewings",
- "timeline_hint.resources.statuses": "Ouer plasings",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json
index af5f8426d07..be303985ee2 100644
--- a/app/javascript/mastodon/locales/an.json
+++ b/app/javascript/mastodon/locales/an.json
@@ -11,14 +11,12 @@
"about.not_available": "Esta información no ye disponible en este servidor.",
"about.powered_by": "Retz socials descentralizaus con tecnolochía de {mastodon}",
"about.rules": "Reglas d'o servidor",
- "account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Adhibir u eliminar de listas",
"account.badges.bot": "Bot",
"account.badges.group": "Grupo",
"account.block": "Blocar a @{name}",
"account.block_domain": "Blocar dominio {domain}",
"account.blocked": "Blocau",
- "account.browse_more_on_origin_server": "Veyer mas en o perfil orichinal",
"account.cancel_follow_request": "Retirar solicitut de seguimiento",
"account.disable_notifications": "Deixar de notificar-me quan @{name} publique bella cosa",
"account.domain_blocked": "Dominio blocau",
@@ -31,9 +29,7 @@
"account.follow": "Seguir",
"account.followers": "Seguidores",
"account.followers.empty": "Encara no sigue dengún a este usuario.",
- "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
"account.following": "Seguindo",
- "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Seguindo}}",
"account.follows.empty": "Este usuario encara no sigue a dengún.",
"account.go_to_profile": "Ir ta lo perfil",
"account.hide_reblogs": "Amagar retutz de @{name}",
@@ -54,7 +50,6 @@
"account.requested_follow": "{name} ha demandau seguir-te",
"account.share": "Compartir lo perfil de @{name}",
"account.show_reblogs": "Amostrar retutz de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicaciones}}",
"account.unblock": "Desblocar a @{name}",
"account.unblock_domain": "Amostrar a {domain}",
"account.unblock_short": "Desblocar",
@@ -133,15 +128,12 @@
"compose_form.spoiler.unmarked": "Texto no amagau",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.confirm": "Blocar",
- "confirmations.cancel_follow_request.confirm": "Retirar solicitut",
- "confirmations.cancel_follow_request.message": "Yes seguro que deseyas retirar la tuya solicitut pa seguir a {name}?",
"confirmations.delete.confirm": "Eliminar",
"confirmations.delete.message": "Yes seguro que quiers borrar esta publicación?",
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "Seguro que quiers borrar esta lista permanentment?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tiens cambios sin alzar en a descripción u vista previa d'o fichero audiovisual, descartar-los de totz modos?",
- "confirmations.domain_block.message": "Yes seguro que quiers blocar lo dominio {domain} entero? En cheneral ye prou, y preferible, fer uns quantos bloqueyos y silenciaus concretos. Los tuyos seguidros d'ixe dominio serán eliminaus.",
"confirmations.logout.confirm": "Zarrar sesión",
"confirmations.logout.message": "Yes seguro de querer zarrar la sesión?",
"confirmations.mute.confirm": "Silenciar",
@@ -296,8 +288,6 @@
"keyboard_shortcuts.unfocus": "Retirar lo foco d'a caixa de redacción/busqueda",
"keyboard_shortcuts.up": "Ir enta alto en a lista",
"lightbox.close": "Zarrar",
- "lightbox.compress": "Comprimir quadro de visualización d'imachen",
- "lightbox.expand": "Expandir quadro de visualización d'imachen",
"lightbox.next": "Siguient",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Amostrar perfil de totz modos",
@@ -316,7 +306,6 @@
"lists.search": "Buscar entre la chent a la quala sigues",
"lists.subheading": "Las tuyas listas",
"load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
- "media_gallery.toggle_visible": "{number, plural, one {Amaga la imachen} other {Amaga las imáchens}}",
"moved_to_account_banner.text": "La tuya cuenta {disabledAccount} ye actualment deshabilitada perque t'has mudau a {movedToAccount}.",
"navigation_bar.about": "Sobre",
"navigation_bar.blocks": "Usuarios blocaus",
@@ -343,9 +332,7 @@
"notification.admin.sign_up": "{name} se rechistró",
"notification.follow": "{name} t'empecipió a seguir",
"notification.follow_request": "{name} ha solicitau seguir-te",
- "notification.mention": "{name} t'ha mencionau",
"notification.own_poll": "La tuya enqüesta ha rematau",
- "notification.poll": "Una enqüesta en a quala has votau ha rematau",
"notification.reblog": "{name} ha retutau la tuya publicación",
"notification.status": "{name} acaba de publicar",
"notification.update": "{name} editó una publicación",
@@ -491,10 +478,7 @@
"status.detailed_status": "Vista de conversación detallada",
"status.edit": "Editar",
"status.edited_x_times": "Editau {count, plural, one {{count} vez} other {{count} veces}}",
- "status.embed": "Incrustado",
"status.filter": "Filtrar esta publicación",
- "status.filtered": "Filtrau",
- "status.hide": "Amagar la publicación",
"status.history.created": "{name} creyó {date}",
"status.history.edited": "{name} editó {date}",
"status.load_more": "Cargar mas",
@@ -519,10 +503,7 @@
"status.report": "Denunciar €{name}",
"status.sensitive_warning": "Conteniu sensible",
"status.share": "Compartir",
- "status.show_filter_reason": "Amostrar de totz modos",
- "status.show_less": "Amostrar menos",
"status.show_less_all": "Amostrar menos pa tot",
- "status.show_more": "Amostrar mas",
"status.show_more_all": "Amostrar mas pa tot",
"status.show_original": "Amostrar orichinal",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -540,10 +521,6 @@
"time_remaining.minutes": "{number, plural, one {# menuto restante} other {# menutos restantes}}",
"time_remaining.moments": "Momentos restantes",
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} d'atros servidors no s'amuestran.",
- "timeline_hint.resources.followers": "Seguidores",
- "timeline_hint.resources.follows": "Seguius",
- "timeline_hint.resources.statuses": "Publicacions mas antigas",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en os zaguers {days, plural, one {días} other {{days} días}}",
"trends.trending_now": "Tendencia agora",
"ui.beforeunload": "Lo tuyo borrador se perderá si sales de Mastodon.",
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index b5ce0ae861f..17b288723bf 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -3,15 +3,15 @@
"about.contact": "للاتصال:",
"about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.",
"about.domain_blocks.no_reason_available": "السبب غير متوفر",
- "about.domain_blocks.preamble": "يسمح لك ماستدون عموماً بعرض المحتوى من المستخدمين من أي خادم آخر في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادم بالذات.",
- "about.domain_blocks.silenced.explanation": "عموماً، لن ترى ملفات التعريف والمحتوى من هذا الخادم، إلا إذا كنت تبحث عنه بشكل صريح أو تختار أن تتابعه.",
+ "about.domain_blocks.preamble": "يتيح مَستُدون عمومًا لمستخدميه مطالعة المحتوى من المستخدمين من الخواديم الأخرى في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم.",
+ "about.domain_blocks.silenced.explanation": "لن تظهر لك ملفات التعريف الشخصية والمحتوى من هذا الخادوم، إلا إن بحثت عنه عمدًا أو تابعته.",
"about.domain_blocks.silenced.title": "محدود",
"about.domain_blocks.suspended.explanation": "لن يتم معالجة أي بيانات من هذا الخادم أو تخزينها أو تبادلها، مما يجعل أي تفاعل أو اتصال مع المستخدمين من هذا الخادم مستحيلا.",
"about.domain_blocks.suspended.title": "مُعلّق",
"about.not_available": "لم يتم توفير هذه المعلومات على هذا الخادم.",
"about.powered_by": "شبكة اجتماعية لامركزية مدعومة من {mastodon}",
"about.rules": "قواعد الخادم",
- "account.account_note_header": "مُلاحظة",
+ "account.account_note_header": "ملاحظة شخصية",
"account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة",
"account.badges.bot": "آلي",
"account.badges.group": "فريق",
@@ -19,9 +19,8 @@
"account.block_domain": "حظر اسم النِّطاق {domain}",
"account.block_short": "حظر",
"account.blocked": "محظور",
- "account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي",
"account.cancel_follow_request": "إلغاء طلب المتابعة",
- "account.copy": "نسخ الرابط إلى الحساب",
+ "account.copy": "نسخ الرابط إلى الملف الشخصي",
"account.direct": "إشارة خاصة لـ @{name}",
"account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}",
"account.domain_blocked": "اسم النِّطاق محظور",
@@ -32,7 +31,7 @@
"account.featured_tags.last_status_never": "لا توجد رسائل",
"account.featured_tags.title": "وسوم {name} المميَّزة",
"account.follow": "متابعة",
- "account.follow_back": "رد المتابعة",
+ "account.follow_back": "تابعه بالمثل",
"account.followers": "مُتابِعون",
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
"account.followers_counter": "{count, plural, zero{لا مُتابع} one {مُتابعٌ واحِد} two {مُتابعانِ اِثنان} few {{counter} مُتابِعين} many {{counter} مُتابِعًا} other {{counter} مُتابع}}",
@@ -45,7 +44,7 @@
"account.joined_short": "انضم في",
"account.languages": "تغيير اللغات المشترَك فيها",
"account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}",
- "account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.",
+ "account.locked_info": "تم ضبط حالة خصوصية هذا الحساب على أنه مؤمّن. إذ يراجع صاحبه يدويًا من يُسمح له بالمتابعة.",
"account.media": "وسائط",
"account.mention": "أذكُر @{name}",
"account.moved_to": "أشار {name} إلى أن حسابه الجديد الآن:",
@@ -53,7 +52,7 @@
"account.mute_notifications_short": "كتم الإشعارات",
"account.mute_short": "اكتم",
"account.muted": "مَكتوم",
- "account.mutual": "متبادل",
+ "account.mutual": "متبادلة",
"account.no_bio": "لم يتم تقديم وصف.",
"account.open_original_page": "افتح الصفحة الأصلية",
"account.posts": "منشورات",
@@ -63,7 +62,6 @@
"account.requested_follow": "لقد طلب {name} متابعتك",
"account.share": "شارِك الملف التعريفي لـ @{name}",
"account.show_reblogs": "اعرض إعادات نشر @{name}",
- "account.statuses_counter": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}",
"account.unblock": "إلغاء الحَظر عن @{name}",
"account.unblock_domain": "إلغاء الحَظر عن النِّطاق {domain}",
"account.unblock_short": "ألغ الحجب",
@@ -73,8 +71,8 @@
"account.unmute_notifications_short": "إلغاء كَتم الإشعارات",
"account.unmute_short": "إلغاء الكتم",
"account_note.placeholder": "اضغط لإضافة مُلاحظة",
- "admin.dashboard.daily_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بيوم",
- "admin.dashboard.monthly_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بالشهور",
+ "admin.dashboard.daily_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالأيام",
+ "admin.dashboard.monthly_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالشهور",
"admin.dashboard.retention.average": "المعدل",
"admin.dashboard.retention.cohort": "شهر التسجيل",
"admin.dashboard.retention.cohort_size": "المستخدمون الجدد",
@@ -90,14 +88,16 @@
"attachments_list.unprocessed": "(غير معالَج)",
"audio.hide": "إخفاء المقطع الصوتي",
"block_modal.remote_users_caveat": "سوف نطلب من الخادم {domain} أن يحترم قرارك، لكن الالتزام غير مضمون لأن بعض الخواديم قد تتعامل مع نصوص الكتل بشكل مختلف. قد تظل المنشورات العامة مرئية للمستخدمين غير المسجلين الدخول.",
- "block_modal.show_less": "أظهر الأقل",
- "block_modal.show_more": "أظهر المزيد",
+ "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.title": "أتريد حظر المستخدم؟",
+ "block_modal.they_cant_see_posts": "لن يستطيع مطالعة منشوراتك ولن تطالع منشوراته.",
+ "block_modal.they_will_know": "سيعلم أنه قد حُظِر.",
+ "block_modal.title": "أتريد حظر هذا المستخدم؟",
"block_modal.you_wont_see_mentions": "لن تر المنشورات التي يُشار فيهم إليه.",
"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": "أوه لا!",
@@ -159,7 +159,7 @@
"compose_form.poll.single": "اختر واحدا",
"compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة",
"compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط",
- "compose_form.poll.type": "الأسلوب",
+ "compose_form.poll.type": "الطراز",
"compose_form.publish": "نشر",
"compose_form.publish_form": "منشور جديد",
"compose_form.reply": "ردّ",
@@ -169,27 +169,32 @@
"compose_form.spoiler_placeholder": "تحذير المحتوى (اختياري)",
"confirmation_modal.cancel": "إلغاء",
"confirmations.block.confirm": "حظر",
- "confirmations.cancel_follow_request.confirm": "إلغاء الطلب",
- "confirmations.cancel_follow_request.message": "متأكد من أنك تريد إلغاء طلب متابعتك لـ {name}؟",
"confirmations.delete.confirm": "حذف",
"confirmations.delete.message": "هل أنتَ مُتأكدٌ أنك تُريدُ حَذفَ هذا المنشور؟",
+ "confirmations.delete.title": "أتريد حذف المنشور؟",
"confirmations.delete_list.confirm": "حذف",
"confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمة بشكلٍ دائم؟",
+ "confirmations.delete_list.title": "أتريد حذف القائمة؟",
"confirmations.discard_edit_media.confirm": "تجاهل",
"confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، أتريد تجاهلها على أي حال؟",
- "confirmations.domain_block.confirm": "حظر الخادم",
- "confirmations.domain_block.message": "متأكد من أنك تود حظر اسم النطاق {domain} بالكامل ؟ في غالب الأحيان يُستَحسَن كتم أو حظر بعض الحسابات بدلا من حظر نطاق بالكامل.\nلن تتمكن مِن رؤية محتوى هذا النطاق لا على خيوطك العمومية و لا في إشعاراتك. سوف يتم كذلك إزالة كافة متابعيك المنتمين إلى هذا النطاق.",
"confirmations.edit.confirm": "تعديل",
"confirmations.edit.message": "التعديل في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد تحريرها. متأكد من أنك تريد المواصلة؟",
+ "confirmations.edit.title": "هل تريد استبدال المنشور؟",
"confirmations.logout.confirm": "خروج",
"confirmations.logout.message": "متأكد من أنك تريد الخروج؟",
+ "confirmations.logout.title": "أتريد المغادرة؟",
"confirmations.mute.confirm": "أكتم",
"confirmations.redraft.confirm": "إزالة وإعادة الصياغة",
"confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.",
+ "confirmations.redraft.title": "أتريد حذف وإعادة صياغة المنشور؟",
"confirmations.reply.confirm": "رد",
"confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟",
+ "confirmations.reply.title": "هل تريد استبدال المنشور؟",
"confirmations.unfollow.confirm": "إلغاء المتابعة",
"confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟",
+ "confirmations.unfollow.title": "إلغاء متابعة المستخدم؟",
+ "content_warning.hide": "إخفاء المنشور",
+ "content_warning.show": "إظهار على أي حال",
"conversation.delete": "احذف المحادثة",
"conversation.mark_as_read": "اعتبرها كمقروءة",
"conversation.open": "اعرض المحادثة",
@@ -225,10 +230,10 @@
"domain_pill.their_username": "مُعرّفُهم الفريد على الخادم. من الممكن العثور على مستخدمين بنفس اسم المستخدم على خوادم مختلفة.",
"domain_pill.username": "اسم المستخدم",
"domain_pill.whats_in_a_handle": "ما المقصود بالمُعرِّف؟",
- "domain_pill.who_they_are": "بما أن المعالجات تقول من هو الشخص ومكان وجوده، يمكنك التفاعل مع الناس عبر الشبكة الاجتماعية لـ ActivityPub-Power منصات.",
- "domain_pill.who_you_are": "لأن معالجتك تقول من أنت ومكان وجودك، يمكن الناس التفاعل معك عبر الشبكة الاجتماعية لـ ActivityPub-Power منصات.",
+ "domain_pill.who_they_are": "بما أن المُعرّفات تحدد هوية الشخص ومكان وجوده، فبإمكانك التفاعل مع الأشخاص عبر الويب الاجتماعي لـ المنصات التي تعمل بواسطة أكتيفيتي بوب.",
+ "domain_pill.who_you_are": "بما أن مُعرّفك يحدد هويتك ومكان وجوده، فبإمكانك الآخرين التفاعل معك عبر الويب الاجتماعي لـ المنصات التي تعمل بواسطة أكتيفيتي بوب.",
"domain_pill.your_handle": "عنوانك الكامل:",
- "domain_pill.your_server": "منزلك الرقمي، حيث تعيش جميع مشاركاتك. لا تحب هذا؟ إنقل الخوادم في أي وقت واخضر متابعينك أيضًا.",
+ "domain_pill.your_server": "موطِنك الرقمي، حيث توجد فيه كافة منشوراتك. ألا يعجبك المكان؟ يمكنك الانتقال بين الخوادم في أي وقت واصطحاب متابعيك أيضاً.",
"domain_pill.your_username": "معرفك الفريد على هذا الخادم. من الممكن العثور على مستخدمين بنفس إسم المستخدم على خوادم مختلفة.",
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
"embed.preview": "إليك ما سيبدو عليه:",
@@ -288,7 +293,7 @@
"filter_modal.added.review_and_configure": "لمراجعة وزيادة تكوين فئة عوامل التصفية هذه، انتقل إلى {settings_link}.",
"filter_modal.added.review_and_configure_title": "إعدادات التصفية",
"filter_modal.added.settings_link": "صفحة الإعدادات",
- "filter_modal.added.short_explanation": "تمت إضافة هذه المشاركة إلى فئة الفلاتر التالية: {title}.",
+ "filter_modal.added.short_explanation": "تمت إضافة هذا المنشور إلى فئة عوامل التصفية التالية: {title}.",
"filter_modal.added.title": "تمت إضافة عامل التصفية!",
"filter_modal.select_filter.context_mismatch": "لا ينطبق على هذا السياق",
"filter_modal.select_filter.expired": "منتهية الصلاحيّة",
@@ -297,8 +302,7 @@
"filter_modal.select_filter.subtitle": "استخدم فئة موجودة أو قم بإنشاء فئة جديدة",
"filter_modal.select_filter.title": "تصفية هذا المنشور",
"filter_modal.title.status": "تصفية منشور",
- "filtered_notifications_banner.mentions": "{count, plural, one {إشارة} two {إشارتين} few {# إشارات} other {# إشارة}}",
- "filtered_notifications_banner.pending_requests": "إشعارات من {count, plural, zero {}=0 {لا أحد} one {شخص واحد قد تعرفه} two {شخصين قد تعرفهما} few {# أشخاص قد تعرفهم} many {# شخص قد تعرفهم} other {# شخص قد تعرفهم}}",
+ "filter_warning.matches_filter": "يطابق عامل التصفية \"{title}\"",
"filtered_notifications_banner.title": "الإشعارات المصفاة",
"firehose.all": "الكل",
"firehose.local": "هذا الخادم",
@@ -306,7 +310,7 @@
"follow_request.authorize": "ترخيص",
"follow_request.reject": "رفض",
"follow_requests.unlocked_explanation": "حتى وإن كان حسابك غير مقفل، يعتقد فريق {domain} أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.",
- "follow_suggestions.curated_suggestion": "اختيار الموظفين",
+ "follow_suggestions.curated_suggestion": "انتقاه الفريق",
"follow_suggestions.dismiss": "لا تُظهرها مجدّدًا",
"follow_suggestions.featured_longer": "مختار يدوياً من قِبل فريق {domain}",
"follow_suggestions.friends_of_friends_longer": "مشهور بين الأشخاص الذين تتابعهم",
@@ -347,6 +351,10 @@
"hashtag.follow": "اتبع الوسم",
"hashtag.unfollow": "ألغِ متابعة الوسم",
"hashtags.and_other": "…و {count, plural, zero {} one {# واحد آخر} two {# اثنان آخران} few {# آخرون} many {# آخَرًا}other {# آخرون}}",
+ "hints.profiles.see_more_followers": "عرض المزيد من المتابعين على {domain}",
+ "hints.profiles.see_more_posts": "عرض المزيد من المنشورات من {domain}",
+ "hints.threads.replies_may_be_missing": "قد تكون الردود الواردة من الخوادم الأخرى غائبة.",
+ "hints.threads.see_more": "اطلع على المزيد من الردود على {domain}",
"home.column_settings.show_reblogs": "اعرض المعاد نشرها",
"home.column_settings.show_replies": "اعرض الردود",
"home.hide_announcements": "إخفاء الإعلانات",
@@ -354,6 +362,11 @@
"home.pending_critical_update.link": "اطّلع على التحديثات",
"home.pending_critical_update.title": "تحديث أمان حرج متوفر!",
"home.show_announcements": "إظهار الإعلانات",
+ "ignore_notifications_modal.disclaimer": "لا يمكن لـ Mastodon إبلاغ المستخدمين بأنك قد تجاهلت إشعاراتهم. تجاهل الإشعارات لن يمنع إرسال الرسائل نفسها.",
+ "ignore_notifications_modal.filter_instead": "تصفيتها بدلا من ذلك",
+ "ignore_notifications_modal.ignore": "تجاهل الإشعارات",
+ "ignore_notifications_modal.limited_accounts_title": "تجاهل الإشعارات من الحسابات التي هي تحت الإشراف؟",
+ "ignore_notifications_modal.new_accounts_title": "تجاهل الإشعارات الصادرة من الحسابات الجديدة؟",
"interaction_modal.description.favourite": "بفضل حساب على ماستدون، يمكنك إضافة هذا المنشور إلى مفضلتك لإبلاغ الناشر عن تقديرك وكذا للاحتفاظ بالمنشور إلى وقت لاحق.",
"interaction_modal.description.follow": "بفضل حساب في ماستدون، يمكنك متابعة {name} وتلقي منشوراته في موجزات خيطك الرئيس.",
"interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور ومشاركته مع مُتابِعيك.",
@@ -407,8 +420,6 @@
"keyboard_shortcuts.unfocus": "لإلغاء التركيز على حقل النص أو نافذة البحث",
"keyboard_shortcuts.up": "للانتقال إلى أعلى القائمة",
"lightbox.close": "إغلاق",
- "lightbox.compress": "ضغط مربع عرض الصورة",
- "lightbox.expand": "توسيع مربع عرض الصور",
"lightbox.next": "التالي",
"lightbox.previous": "العودة",
"limited_account_hint.action": "إظهار الملف التعريفي على أي حال",
@@ -431,7 +442,7 @@
"lists.subheading": "قوائمك",
"load_pending": "{count, plural, one {# عنصر جديد} other {# عناصر جديدة}}",
"loading_indicator.label": "جاري التحميل…",
- "media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}",
+ "media_gallery.hide": "إخفاء",
"moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.",
"mute_modal.hide_from_notifications": "إخفاء من قائمة الإشعارات",
"mute_modal.hide_options": "إخفاء الخيارات",
@@ -440,9 +451,10 @@
"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_mentions": "لن تر المنشورات التي يُشار فيها إليه.",
"mute_modal.you_wont_see_posts": "سيكون بإمكانه رؤية منشوراتك، لكنك لن ترى منشوراته.",
"navigation_bar.about": "عن",
+ "navigation_bar.administration": "الإدارة",
"navigation_bar.advanced_interface": "افتحه في واجهة الويب المتقدمة",
"navigation_bar.blocks": "الحسابات المحجوبة",
"navigation_bar.bookmarks": "الفواصل المرجعية",
@@ -459,6 +471,7 @@
"navigation_bar.follows_and_followers": "المتابِعون والمتابَعون",
"navigation_bar.lists": "القوائم",
"navigation_bar.logout": "خروج",
+ "navigation_bar.moderation": "الإشراف",
"navigation_bar.mutes": "الحسابات المكتومة",
"navigation_bar.opened_in_classic_interface": "تُفتَح المنشورات والحسابات وغيرها من الصفحات الخاصة بشكل مبدئي على واجهة الويب التقليدية.",
"navigation_bar.personal": "شخصي",
@@ -473,10 +486,14 @@
"notification.favourite": "أضاف {name} منشورك إلى مفضلته",
"notification.follow": "يتابعك {name}",
"notification.follow_request": "لقد طلب {name} متابعتك",
- "notification.mention": "{name} ذكرك",
+ "notification.label.mention": "إشارة",
+ "notification.label.private_mention": "إشارة خاصة",
+ "notification.label.private_reply": "رد خاص",
+ "notification.label.reply": "ردّ",
+ "notification.mention": "إشارة",
"notification.moderation-warning.learn_more": "اعرف المزيد",
"notification.moderation_warning": "لقد تلقيت تحذيرًا بالإشراف",
- "notification.moderation_warning.action_delete_statuses": "تم إزالة بعض مشاركاتك.",
+ "notification.moderation_warning.action_delete_statuses": "تم حذف بعض من منشوراتك.",
"notification.moderation_warning.action_disable": "تم تعطيل حسابك.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "بعض من منشوراتك تم تصنيفها على أنها حساسة.",
"notification.moderation_warning.action_none": "لقد تلقى حسابك تحذيرا بالإشراف.",
@@ -484,7 +501,7 @@
"notification.moderation_warning.action_silence": "لقد تم تقييد حسابك.",
"notification.moderation_warning.action_suspend": "لقد تم تعليق حسابك.",
"notification.own_poll": "انتهى استطلاعك للرأي",
- "notification.poll": "لقد انتهى استطلاع رأي شاركتَ فيه",
+ "notification.poll": "لقد انتهى استطلاع رأي صوتت فيه",
"notification.reblog": "قام {name} بمشاركة منشورك",
"notification.relationships_severance_event": "فقدت الاتصالات مع {name}",
"notification.relationships_severance_event.account_suspension": "قام مشرف من {from} بتعليق {target}، مما يعني أنك لم يعد بإمكانك تلقي التحديثات منهم أو التفاعل معهم.",
@@ -494,11 +511,19 @@
"notification.status": "{name} نشر للتو",
"notification.update": "عدّلَ {name} منشورًا",
"notification_requests.accept": "موافقة",
+ "notification_requests.confirm_accept_multiple.title": "قبول طلبات الإشعار؟",
+ "notification_requests.confirm_dismiss_multiple.title": "تجاهل طلبات الإشعار؟",
"notification_requests.dismiss": "تخطي",
+ "notification_requests.edit_selection": "تعديل",
+ "notification_requests.exit_selection": "تمّ",
+ "notification_requests.explainer_for_limited_account": "تم تصفية الإشعارات من هذا الحساب لأن الحساب تم تقييده من قبل مشرف.",
+ "notification_requests.minimize_banner": "تصغير شريط الإشعارات المُصفاة",
"notification_requests.notifications_from": "إشعارات من {name}",
"notification_requests.title": "الإشعارات المصفاة",
+ "notification_requests.view": "عرض الإشعارات",
"notifications.clear": "مسح الإشعارات",
"notifications.clear_confirmation": "متأكد من أنك تود مسح جميع الإشعارات الخاصة بك و المتلقاة إلى حد الآن ؟",
+ "notifications.clear_title": "أترغب في مسح الإشعارات؟",
"notifications.column_settings.admin.report": "التبليغات الجديدة:",
"notifications.column_settings.admin.sign_up": "التسجيلات الجديدة:",
"notifications.column_settings.alert": "إشعارات سطح المكتب",
@@ -506,7 +531,7 @@
"notifications.column_settings.filter_bar.advanced": "عرض جميع الفئات",
"notifications.column_settings.filter_bar.category": "شريط التصفية السريعة",
"notifications.column_settings.follow": "متابعُون جُدُد:",
- "notifications.column_settings.follow_request": "الطلبات الجديد لِمتابَعتك:",
+ "notifications.column_settings.follow_request": "الطلبات الجديدة لِمتابَعتك:",
"notifications.column_settings.mention": "الإشارات:",
"notifications.column_settings.poll": "نتائج استطلاع الرأي:",
"notifications.column_settings.push": "الإشعارات",
@@ -530,15 +555,21 @@
"notifications.permission_denied": "تنبيهات سطح المكتب غير متوفرة بسبب رفض أذونات المتصفح مسبقاً",
"notifications.permission_denied_alert": "لا يمكن تفعيل إشعارات سطح المكتب، لأن إذن المتصفح قد تم رفضه سابقاً",
"notifications.permission_required": "إشعارات سطح المكتب غير متوفرة لأنه لم يتم منح الإذن المطلوب.",
+ "notifications.policy.accept": "قبول",
+ "notifications.policy.accept_hint": "إظهار في الإشعارات",
+ "notifications.policy.drop": "تجاهل",
+ "notifications.policy.filter": "تصفية",
+ "notifications.policy.filter_limited_accounts_hint": "المحدودة من قبل مشرفي الخادم",
+ "notifications.policy.filter_limited_accounts_title": "حسابات تحت الإشراف",
"notifications.policy.filter_new_accounts.hint": "تم إنشاؤها منذ {days, plural, zero {}one {يوم واحد} two {يومان} few {# أيام} many {# أيام} other {# أيام}}",
"notifications.policy.filter_new_accounts_title": "حسابات جديدة",
- "notifications.policy.filter_not_followers_hint": "بما في ذلك الأشخاص الذين يتابعونك أقل من {days, plural, zero {}one {يوم واحد} two {يومان} few {# أيام} many {# أيام} other {# أيام}}",
+ "notifications.policy.filter_not_followers_hint": "بما في ذلك الأشخاص الذين يتابعونك منذ أقل من {days, plural, zero {}one {يوم واحد} two {يومين} few {# أيام} many {# يوما} other {# أيام}}",
"notifications.policy.filter_not_followers_title": "أشخاص لا يتابعونك",
"notifications.policy.filter_not_following_hint": "حتى توافق عليهم يدويا",
"notifications.policy.filter_not_following_title": "أشخاص لا تتابعهم",
- "notifications.policy.filter_private_mentions_hint": "تمت تصفيته إلا إذا أن يكون ردًا على ذكرك أو إذا كنت تتابع الحساب",
- "notifications.policy.filter_private_mentions_title": "إشارات خاصة غير مرغوب فيها",
- "notifications.policy.title": "تصفية الإشعارات من…",
+ "notifications.policy.filter_private_mentions_hint": "يتم تصفيتها إلا إن كانت ردًا على أحد ردودك أو إذا كنت متابعا للمرسل",
+ "notifications.policy.filter_private_mentions_title": "الإشارات الخاصة غير المرغوب فيها",
+ "notifications.policy.title": "إدارة الإشعارات الواردة من…",
"notifications_permission_banner.enable": "تفعيل إشعارات سطح المكتب",
"notifications_permission_banner.how_to_control": "لتلقي الإشعارات عندما لا يكون ماستدون مفتوح، قم بتفعيل إشعارات سطح المكتب، يمكنك التحكم بدقة في أنواع التفاعلات التي تولد إشعارات سطح المكتب من خلال زر الـ{icon} أعلاه بمجرد تفعيلها.",
"notifications_permission_banner.title": "لا تفوت شيئاً أبداً",
@@ -647,7 +678,7 @@
"report.reasons.legal_description": "أنت تعتقد أنه ينتهك قانون بلدك أو دولة الخادم",
"report.reasons.other": "شيء آخر",
"report.reasons.other_description": "لا تندرج هذه المشكلة ضمن فئات أخرى",
- "report.reasons.spam": "إنها رسالة مزعجة",
+ "report.reasons.spam": "إنه منشور غير مرغوب فيه",
"report.reasons.spam_description": "روابط خبيثة أو تفاعل كاذب أو ردود متكررة",
"report.reasons.violation": "ينتهك قواعد الخادم",
"report.reasons.violation_description": "تعلم أنه ينتهك قواعد محددة",
@@ -665,9 +696,13 @@
"report.unfollow_explanation": "أنت تتابع هذا الحساب، لإزالة مَنشوراته من موجزات خيطك الرئيس، ألغ متابعته.",
"report_notification.attached_statuses": "{count, plural, one {{count} منشور} other {{count} منشورات}} مرفقة",
"report_notification.categories.legal": "أمور قانونية",
+ "report_notification.categories.legal_sentence": "محتوى غير قانوني",
"report_notification.categories.other": "آخر",
+ "report_notification.categories.other_sentence": "آخر",
"report_notification.categories.spam": "مزعج",
+ "report_notification.categories.spam_sentence": "مزعج",
"report_notification.categories.violation": "القاعدة المنتهَكة",
+ "report_notification.categories.violation_sentence": "انتهاك لقاعدة",
"report_notification.open": "فتح التقرير",
"search.no_recent_searches": "ما من عمليات بحث تمت مؤخرًا",
"search.placeholder": "ابحث",
@@ -695,6 +730,7 @@
"server_banner.about_active_users": "الأشخاص الذين يستخدمون هذا الخادم خلال الأيام الثلاثين الأخيرة (المستخدمون النشطون شهريًا)",
"server_banner.active_users": "مستخدم نشط",
"server_banner.administered_by": "يُديره:",
+ "server_banner.is_one_of_many": "{domain} هو واحد من بين العديد من خوادم ماستدون المستقلة التي يمكنك استخدامها للمشاركة في الفديفرس.",
"server_banner.server_stats": "إحصائيات الخادم:",
"sign_in_banner.create_account": "أنشئ حسابًا",
"sign_in_banner.sign_in": "تسجيل الدخول",
@@ -706,6 +742,7 @@
"status.bookmark": "أضفه إلى الفواصل المرجعية",
"status.cancel_reblog_private": "إلغاء إعادة النشر",
"status.cannot_reblog": "لا يمكن إعادة نشر هذا المنشور",
+ "status.continued_thread": "تكملة للخيط",
"status.copy": "انسخ رابط الرسالة",
"status.delete": "احذف",
"status.detailed_status": "تفاصيل المحادثة",
@@ -714,17 +751,15 @@
"status.edit": "تعديل",
"status.edited": "آخر تعديل يوم {date}",
"status.edited_x_times": "عُدّل {count, plural, zero {} one {مرةً واحدة} two {مرّتان} few {{count} مرات} many {{count} مرة} other {{count} مرة}}",
- "status.embed": "إدماج",
+ "status.embed": "الحصول على شيفرة الدمج",
"status.favourite": "فضّل",
"status.favourites": "{count, plural, zero {}one {مفضلة واحدة} two {مفضلتان} few {# مفضلات} many {# مفضلات} other {# مفضلات}}",
- "status.filter": "تصفية هذه الرسالة",
- "status.filtered": "مُصفّى",
- "status.hide": "إخفاء المنشور",
+ "status.filter": "تصفية هذا المنشور",
"status.history.created": "أنشأه {name} {date}",
"status.history.edited": "عدله {name} {date}",
"status.load_more": "حمّل المزيد",
"status.media.open": "اضغط للفتح",
- "status.media.show": "اضغط للإظهار",
+ "status.media.show": "اضغط لإظهاره",
"status.media_hidden": "وسائط مخفية",
"status.mention": "أذكُر @{name}",
"status.more": "المزيد",
@@ -737,20 +772,18 @@
"status.reblog": "إعادة النشر",
"status.reblog_private": "إعادة النشر إلى الجمهور الأصلي",
"status.reblogged_by": "شارَكَه {name}",
- "status.reblogs": "{count, plural, one {تعزيز واحد} two {تعزيزتان} few {# تعزيزات} many {# تعزيزات} other {# تعزيزات}}",
+ "status.reblogs": "{count, plural, one {إعادة نشر واحدة} two {معاد نشرها مرتان} few {# إعادات نشر} many {# إعادات نشر} other {# إعادة نشر}}",
"status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.",
"status.redraft": "إزالة وإعادة الصياغة",
"status.remove_bookmark": "احذفه مِن الفواصل المرجعية",
+ "status.replied_in_thread": "رد في خيط",
"status.replied_to": "رَدًا على {name}",
"status.reply": "ردّ",
"status.replyAll": "رُد على الخيط",
"status.report": "ابلِغ عن @{name}",
"status.sensitive_warning": "محتوى حساس",
"status.share": "مشاركة",
- "status.show_filter_reason": "إظهار على أي حال",
- "status.show_less": "اعرض أقلّ",
"status.show_less_all": "طي الكل",
- "status.show_more": "أظهر المزيد",
"status.show_more_all": "توسيع الكل",
"status.show_original": "إظهار الأصل",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -769,10 +802,6 @@
"time_remaining.minutes": "{number, plural, one {# دقيقة} other {# دقائق}} متبقية",
"time_remaining.moments": "لحظات متبقية",
"time_remaining.seconds": "{number, plural, one {# ثانية} other {# ثوانٍ}} متبقية",
- "timeline_hint.remote_resource_not_displayed": "{resource} من الخوادم الأخرى لا يتم عرضها.",
- "timeline_hint.resources.followers": "المتابِعون",
- "timeline_hint.resources.follows": "المتابَعون",
- "timeline_hint.resources.statuses": "المنشورات القديمة",
"trends.counter_by_accounts": "{count, plural, one {شخص واحد} two {شخصان} few {{counter} أشخاصٍ} many {{counter} شخصًا} other {{counter} شخصًا}} {days, plural, one {خلال اليوم الماضي} two {خلال اليومَيْنِ الماضيَيْنِ} few {خلال {days} أيام الماضية} many {خلال {days} يومًا الماضية} other {خلال {days} يومٍ الماضية}}",
"trends.trending_now": "المتداولة الآن",
"ui.beforeunload": "سوف تفقد مسودتك إن تركت ماستدون.",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 80e0aa6cbf9..219ea0d17cf 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -1,7 +1,7 @@
{
"about.blocks": "Sirvidores moderaos",
"about.contact": "Contautu:",
- "about.disclaimer": "Mastodon ye software gratuito ya de códigu llibre, ya una marca rexistrada de Mastodon gGmbH.",
+ "about.disclaimer": "Mastodon ye software gratuito y de códigu llibre, y una marca rexistrada de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "El motivu nun ta disponible",
"about.domain_blocks.preamble": "Polo xeneral, Mastodon permítete ver el conteníu ya interactuar colos perfiles d'otros sirvidores nel fediversu. Estes son les esceiciones que se ficieron nesti sirvidor.",
"about.domain_blocks.silenced.explanation": "Polo xeneral, nun ves los perfiles ya'l conteníu d'esti sirvidor sacante que los busques o decidas siguilos.",
@@ -11,15 +11,12 @@
"about.not_available": "Esta información nun ta disponible nesti sirvidor.",
"about.powered_by": "Una rede social descentralizada que tien la teunoloxía de {mastodon}",
"about.rules": "Normes del sirvidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota personal",
"account.add_or_remove_from_list": "Amestar o quitar de les llistes",
"account.badges.group": "Grupu",
"account.block": "Bloquiar a @{name}",
"account.block_domain": "Bloquiar el dominiu {domain}",
- "account.block_short": "Bloquiar",
"account.blocked": "Perfil bloquiáu",
- "account.browse_more_on_origin_server": "Restolar más nel perfil orixinal",
- "account.copy": "Copiar I'enllaz al perfil",
"account.direct": "Mentar a @{name} per privao",
"account.disable_notifications": "Dexar d'avisame cuando @{name} espublice artículos",
"account.domain_blocked": "Dominiu bloquiáu",
@@ -31,28 +28,25 @@
"account.follow": "Siguir",
"account.followers": "Siguidores",
"account.followers.empty": "Naide sigue a esti perfil.",
- "account.following": "Siguiendo",
- "account.following_counter": "{count, plural,one {Sigue a {counter}} other {Sigue a {counter}}}",
"account.follows.empty": "Esti perfil nun sigue a naide.",
- "account.go_to_profile": "Dir al perfil",
"account.hide_reblogs": "Anubrir los artículos compartíos de @{name}",
"account.in_memoriam": "N'alcordanza.",
"account.joined_short": "Data de xunión",
- "account.link_verified_on": "La propiedá d'esti enllaz foi comprobada'l {date}",
+ "account.link_verified_on": "La propiedá d'esti enllaz comprobóse'l {date}",
"account.media": "Multimedia",
"account.mention": "Mentar a @{name}",
"account.moved_to": "{name} indicó qu'agora la so cuenta nueva ye:",
"account.mute": "Desactivar los avisos de @{name}",
+ "account.no_bio": "Nun se fornió nenguna descripción.",
"account.open_original_page": "Abrir la páxina orixinal",
"account.posts": "Artículos",
- "account.posts_with_replies": "Artículos ya rempuestes",
- "account.report": "Informar de: @{name}",
+ "account.posts_with_replies": "Artículos y rempuestes",
+ "account.report": "Informar de @{name}",
"account.requested_follow": "{name} solicitó siguite",
+ "account.share": "Compartir el perfil de @{name}",
"account.show_reblogs": "Amosar los artículos compartíos de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} artículu} other {{counter} artículos}}",
"account.unblock": "Desbloquiar a @{name}",
"account.unblock_domain": "Desbloquiar el dominiu «{domain}»",
- "account.unblock_short": "Desbloquiar",
"account.unendorse": "Dexar de destacar nel perfil",
"account.unfollow": "Dexar de siguir",
"account.unmute": "Activar los avisos de @{name}",
@@ -73,7 +67,7 @@
"bundle_column_error.routing.body": "Nun se pudo atopar la páxina solicitada. ¿De xuru que la URL de la barra de direiciones ta bien escrita?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.message": "Asocedió daqué malo mentanto se cargaba esti componente.",
- "closed_registrations.other_server_instructions": "Darréu que Mastodon ye una rede social descentralizada, pues crear una cuenta n'otru sirvidor ya siguir interactuando con esti.",
+ "closed_registrations.other_server_instructions": "Darréu que Mastodon ye una rede social descentralizada, pues crear una cuenta n'otru sirvidor y siguir interactuando con esti.",
"closed_registrations_modal.description": "Anguaño nun ye posible crear cuentes en {domain}, mas ten en cuenta que nun precises una cuenta nesti sirvidor pa usar Mastodon.",
"closed_registrations_modal.find_another_server": "Atopar otru sirvidor",
"closed_registrations_modal.preamble": "Mastodon ye una rede social descentralizada polo que nun importa ónde crees la cuenta, vas ser a siguir ya interactuar con persones d'esti sirvidor. ¡Ya tamién pues tener el to propiu sirvidor!",
@@ -109,12 +103,10 @@
"compose_form.lock_disclaimer.lock": "privada",
"compose_form.placeholder": "¿En qué pienses?",
"compose_form.poll.option_placeholder": "Opción {number}",
- "compose_form.poll.type": "Estilu",
+ "compose_form.poll.type": "Tipu",
"compose_form.publish_form": "Artículu nuevu",
"confirmation_modal.cancel": "Encaboxar",
"confirmations.block.confirm": "Bloquiar",
- "confirmations.cancel_follow_request.confirm": "Retirala",
- "confirmations.cancel_follow_request.message": "¿De xuru que quies retirar la solicitú pa siguir a {name}?",
"confirmations.delete.confirm": "Desaniciar",
"confirmations.delete.message": "¿De xuru que quies desaniciar esti artículu?",
"confirmations.delete_list.confirm": "Desaniciar",
@@ -122,7 +114,7 @@
"confirmations.edit.message": "La edición va sobrescribir el mensaxe que tas escribiendo. ¿De xuru que quies siguir?",
"confirmations.logout.confirm": "Zarrar la sesión",
"confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
- "confirmations.redraft.confirm": "Desaniciar ya reeditar",
+ "confirmations.redraft.confirm": "Desaniciar y reeditar",
"confirmations.reply.confirm": "Responder",
"confirmations.unfollow.confirm": "Dexar de siguir",
"confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?",
@@ -142,7 +134,7 @@
"embed.preview": "Va apaecer asina:",
"emoji_button.activity": "Actividá",
"emoji_button.flags": "Banderes",
- "emoji_button.food": "Comida ya bébora",
+ "emoji_button.food": "Comida y bébora",
"emoji_button.nature": "Natura",
"emoji_button.not_found": "Nun s'atoparon fustaxes que concasen",
"emoji_button.objects": "Oxetos",
@@ -151,11 +143,10 @@
"emoji_button.search": "Buscar…",
"emoji_button.search_results": "Resultaos de la busca",
"emoji_button.symbols": "Símbolos",
- "emoji_button.travel": "Viaxes ya llugares",
+ "emoji_button.travel": "Viaxes y llugares",
"empty_column.account_timeline": "¡Equí nun hai nengún artículu!",
"empty_column.blocks": "Nun bloquiesti a nengún perfil.",
"empty_column.bookmarked_statuses": "Nun tienes nengún artículu en Marcadores. Cuando amiestes dalgún, apaez equí.",
- "empty_column.community": "La llinia de tiempu llocal ta balera. ¡Espubliza daqué públicamente pa comenzar l'alderique!",
"empty_column.direct": "Nun tienes nenguna mención privada. Cuando unvies o recibas dalguna, apaez equí.",
"empty_column.domain_blocks": "Nun hai nengún dominiu bloquiáu.",
"empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!",
@@ -170,7 +161,7 @@
"error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.",
"error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.",
"error.unexpected_crash.next_steps": "Prueba a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.",
- "error.unexpected_crash.next_steps_addons": "Prueba a desactivalos ya a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.",
+ "error.unexpected_crash.next_steps_addons": "Prueba a desactivalos y a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.",
"explore.search_results": "Resultaos de la busca",
"explore.suggested_follows": "Perfiles",
"explore.title": "Esploración",
@@ -181,7 +172,7 @@
"filter_modal.added.context_mismatch_title": "¡El contestu nun coincide!",
"filter_modal.added.expired_explanation": "Esta categoría de peñera caducó, tienes de camudar la so data de caducidá p'aplicala.",
"filter_modal.added.expired_title": "¡La peñera caducó!",
- "filter_modal.added.review_and_configure": "Pa revisar ya configurar a fondu esta categoría de peñera, vete a la {settings_link}.",
+ "filter_modal.added.review_and_configure": "Pa revisar y configurar a fondu esta categoría de peñera, vete a la {settings_link}.",
"filter_modal.added.review_and_configure_title": "Configuración de la peñera",
"filter_modal.added.settings_link": "páxina de configuración",
"filter_modal.added.short_explanation": "Esti artículu amestóse a la categoría de peñera siguiente: {title}.",
@@ -191,14 +182,18 @@
"filter_modal.select_filter.subtitle": "Usa una categoría esistente o créala",
"filter_modal.select_filter.title": "Peñerar esti artículu",
"filter_modal.title.status": "Peñera d'un artículu",
+ "firehose.all": "Tolos sirvidores",
"firehose.local": "Esti sirvidor",
"firehose.remote": "Otros sirvidores",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Refugar",
"follow_requests.unlocked_explanation": "Magar que la to cuenta nun seya privada, el personal del dominiu «{domain}» pensó qu'a lo meyor quies revisar manualmente les solicitúes de siguimientu d'estes cuentes.",
"follow_suggestions.dismiss": "Nun volver amosar",
+ "follow_suggestions.friends_of_friends_longer": "Ye popular ente los perfiles que sigues",
"follow_suggestions.personalized_suggestion": "Suxerencia personalizada",
"follow_suggestions.popular_suggestion": "Suxerencia popular",
+ "follow_suggestions.popular_suggestion_longer": "Ye popular na instancia {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Aseméyase a los perfiles que siguiesti apocayá",
"follow_suggestions.view_all": "Ver too",
"follow_suggestions.who_to_follow": "A quién siguir",
"footer.about": "Tocante a",
@@ -273,7 +268,6 @@
"lists.search": "Buscar ente los perfiles que sigues",
"lists.subheading": "Les tos llistes",
"load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
- "media_gallery.toggle_visible": "{number, plural, one {Anubrir la imaxe} other {Anubrir les imáxenes}}",
"navigation_bar.about": "Tocante a",
"navigation_bar.blocks": "Perfiles bloquiaos",
"navigation_bar.bookmarks": "Marcadores",
@@ -283,11 +277,11 @@
"navigation_bar.explore": "Esploración",
"navigation_bar.filters": "Pallabres desactivaes",
"navigation_bar.follow_requests": "Solicitúes de siguimientu",
- "navigation_bar.follows_and_followers": "Perfiles que sigues ya te siguen",
+ "navigation_bar.follows_and_followers": "Perfiles que sigues y te siguen",
"navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Zarrar la sesión",
"navigation_bar.mutes": "Perfiles colos avisos desactivaos",
- "navigation_bar.opened_in_classic_interface": "Los artículos, les cuentes ya otres páxines específiques ábrense por defeutu na interfaz web clásica.",
+ "navigation_bar.opened_in_classic_interface": "Los artículos, les cuentes y otres páxines específiques ábrense por defeutu na interfaz web clásica.",
"navigation_bar.pins": "Artículos fixaos",
"navigation_bar.preferences": "Preferencies",
"navigation_bar.public_timeline": "Llinia de tiempu federada",
@@ -297,8 +291,6 @@
"notification.admin.sign_up": "{name} rexistróse",
"notification.follow": "{name} siguióte",
"notification.follow_request": "{name} solicitó siguite",
- "notification.mention": "{name} mentóte",
- "notification.poll": "Finó una encuesta na que votesti",
"notification.reblog": "{name} compartió'l to artículu",
"notification.status": "{name} ta acabante d'espublizar",
"notification.update": "{name} editó un artículu",
@@ -321,7 +313,7 @@
"notifications.mark_as_read": "Marcar tolos avisos como lleíos",
"notifications.permission_required": "Los avisos d'escritoriu nun tán disponibles porque nun se concedió'l permisu riquíu.",
"onboarding.profile.note_hint": "Pues @mentar a otros perfiles o poner #etiquetes…",
- "onboarding.start.lead": "Xá yes parte de Mastodon, una plataforma social multimedia descentralizada onde tu ya non un algoritmu, personalices la to esperiencia. Vamos presentate esti llugar social nuevu:",
+ "onboarding.start.lead": "Yá yes parte de Mastodon, una plataforma social multimedia descentralizada onde tu y non un algoritmu, personalices la to esperiencia. Vamos presentate esti llugar social nuevu:",
"onboarding.start.skip": "¿Nun precises ayuda pa comenzar?",
"onboarding.steps.follow_people.body": "Mastodon trata namás de siguir a cuentes interesantes.",
"onboarding.steps.publish_status.body": "Saluda al mundu con semeyes, vídeos, testu o encuestes {emoji}",
@@ -336,6 +328,8 @@
"poll_button.add_poll": "Amestar una encuesta",
"poll_button.remove_poll": "Quitar la encuesta",
"privacy.change": "Configurar la privacidá del artículu",
+ "privacy.direct.short": "Perfiles específicos",
+ "privacy.private.short": "Siguidores",
"privacy.public.short": "Artículu públicu",
"privacy_policy.last_updated": "Data del últimu anovamientu: {date}",
"privacy_policy.title": "Política de privacidá",
@@ -353,7 +347,6 @@
"relative_time.seconds": "{number} s",
"relative_time.today": "güei",
"reply_indicator.cancel": "Encaboxar",
- "reply_indicator.poll": "Encuesta",
"report.block": "Bloquiar",
"report.categories.spam": "Spam",
"report.categories.violation": "El conteníu incumple una o más normes del sirvidor",
@@ -385,10 +378,11 @@
"report.thanks.take_action": "Equí tienes les opciones pa controlar qué ves en Mastodon:",
"report.thanks.take_action_actionable": "Mentanto revisamos esti informe, pues tomar midíes contra @{name}:",
"report.thanks.title": "¿Nun quies ver esti conteníu?",
- "report.thanks.title_actionable": "Gracies pol informe, el casu xá ta n'investigación.",
+ "report.thanks.title_actionable": "Gracies pol informe, el casu yá ta n'investigación.",
"report.unfollow": "Dexar de siguir a @{name}",
"report.unfollow_explanation": "Sigues a esta cuenta. Pa dexar de ver los sos artículos nel to feed d'aniciu, dexa de siguila.",
"report_notification.attached_statuses": "{count, plural, one {Axuntóse {count} artículu} other {Axuntáronse {count} artículos}}",
+ "report_notification.categories.legal_sentence": "conteníu illegal",
"report_notification.open": "Abrir l'informe",
"search.no_recent_searches": "Nun hai nenguna busca recién",
"search.placeholder": "Buscar",
@@ -398,6 +392,7 @@
"search.quick_action.status_search": "Artículos que concasen con {x}",
"search.search_or_paste": "Busca o apiega una URL",
"search_popout.language_code": "códigu de llingua ISO",
+ "search_popout.options": "Opciones de busca",
"search_popout.quick_actions": "Aiciones rápides",
"search_popout.recent": "Busques de recién",
"search_popout.specific_date": "data específica",
@@ -423,10 +418,7 @@
"status.direct": "Mentar a @{name} per privao",
"status.direct_indicator": "Mención privada",
"status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}",
- "status.embed": "Empotrar",
"status.filter": "Peñerar esti artículu",
- "status.filtered": "Peñeróse",
- "status.hide": "Anubrir l'artículu",
"status.history.created": "{name} creó {date}",
"status.history.edited": "{name} editó {date}",
"status.load_more": "Cargar más",
@@ -442,15 +434,13 @@
"status.reblog": "Compartir",
"status.reblogged_by": "{name} compartió",
"status.reblogs.empty": "Naide nun compartió esti artículu. Cuando daquién lo faiga, apaez equí.",
- "status.redraft": "Desaniciar ya reeditar",
+ "status.redraft": "Desaniciar y reeditar",
"status.replied_to": "En rempuesta a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder al filu",
"status.report": "Informar de @{name}",
"status.sensitive_warning": "Conteníu sensible",
- "status.show_filter_reason": "Amosar de toes toes",
- "status.show_less": "Amosar menos",
- "status.show_more": "Amosar más",
+ "status.share": "Compartir",
"status.show_original": "Amosar l'orixinal",
"status.translate": "Traducir",
"status.translated_from_with": "Tradúxose del {lang} con {provider}",
@@ -463,9 +453,6 @@
"time_remaining.hours": "{number, plural, one {Queda # hora} other {Queden # hores}}",
"time_remaining.minutes": "{number, plural, one {Queda # minutu} other {Queden # minutos}}",
"time_remaining.seconds": "{number, plural, one {Queda # segundu} other {Queden # segundos}}",
- "timeline_hint.remote_resource_not_displayed": "Nun s'amuesa'l recursu «{resource}» d'otros sirvidores.",
- "timeline_hint.resources.followers": "Siguidores",
- "timeline_hint.resources.statuses": "Artículos antiguos",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} {days, plural, one {nel últimu día} other {nos últimos {days} díes}}",
"trends.trending_now": "En tendencia",
"ui.beforeunload": "El borrador piérdese si coles de Mastodon.",
@@ -474,7 +461,7 @@
"units.short.thousand": "{count} mil",
"upload_button.label": "Amestar ficheros multimedia",
"upload_error.poll": "La xuba de ficheros nun ta permitida coles encuestes.",
- "upload_form.audio_description": "Describi'l conteníu pa persones sordes ya/o ciegues",
+ "upload_form.audio_description": "Describi'l conteníu pa persones sordes y/o ciegues",
"upload_form.edit": "Editar",
"upload_modal.analyzing_picture": "Analizando la semeya…",
"upload_modal.apply": "Aplicar",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index 03164c4290f..098c7a7e9d4 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -11,7 +11,7 @@
"about.not_available": "Дадзеная інфармацыя не дасяжная на гэтым серверы.",
"about.powered_by": "Дэцэнтралізаваная сацыяльная сетка, створаная {mastodon}",
"about.rules": "Правілы сервера",
- "account.account_note_header": "Нататка",
+ "account.account_note_header": "Асабістая нататка",
"account.add_or_remove_from_list": "Дадаць або выдаліць са спісаў",
"account.badges.bot": "Бот",
"account.badges.group": "Група",
@@ -19,7 +19,6 @@
"account.block_domain": "Заблакіраваць дамен {domain}",
"account.block_short": "Заблакіраваць",
"account.blocked": "Заблакіраваны",
- "account.browse_more_on_origin_server": "Глядзіце больш у арыгінальным профілі",
"account.cancel_follow_request": "Скасаваць запыт на падпіску",
"account.copy": "Скапіраваць спасылку на профіль",
"account.direct": "Згадаць асабіста @{name}",
@@ -169,27 +168,32 @@
"compose_form.spoiler_placeholder": "Папярэджанне аб змесціве (неабавязкова)",
"confirmation_modal.cancel": "Скасаваць",
"confirmations.block.confirm": "Заблакіраваць",
- "confirmations.cancel_follow_request.confirm": "Скасаваць запыт",
- "confirmations.cancel_follow_request.message": "Сапраўды хочаце скасаваць свой запыт на падпіску на {name}?",
"confirmations.delete.confirm": "Выдаліць",
"confirmations.delete.message": "Вы ўпэўненыя, што хочаце выдаліць гэты допіс?",
+ "confirmations.delete.title": "Выдаліць допіс?",
"confirmations.delete_list.confirm": "Выдаліць",
"confirmations.delete_list.message": "Вы ўпэўненыя, што хочаце беззваротна выдаліць гэты чарнавік?",
+ "confirmations.delete_list.title": "Выдаліць спіс?",
"confirmations.discard_edit_media.confirm": "Адмяніць",
"confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?",
- "confirmations.domain_block.confirm": "Заблакіраваць сервер",
- "confirmations.domain_block.message": "Вы абсалютна дакладна ўпэўнены, што хочаце заблакіраваць {domain} зусім? У большасці выпадкаў, дастаткова некалькіх мэтавых блакіровак ці ігнараванняў. Вы перастанеце бачыць змесціва з гэтага дамену ва ўсіх стужках і апавяшчэннях. Вашы падпіскі з гэтага дамену будуць выдаленыя.",
"confirmations.edit.confirm": "Рэдагаваць",
"confirmations.edit.message": "Калі вы зменіце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
+ "confirmations.edit.title": "Замяніць допіс?",
"confirmations.logout.confirm": "Выйсці",
"confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?",
+ "confirmations.logout.title": "Выйсці?",
"confirmations.mute.confirm": "Ігнараваць",
"confirmations.redraft.confirm": "Выдаліць і перапісаць",
"confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.",
+ "confirmations.redraft.title": "Выдаліць і перапісаць допіс?",
"confirmations.reply.confirm": "Адказаць",
"confirmations.reply.message": "Калі вы адкажаце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
+ "confirmations.reply.title": "Замяніць допіс?",
"confirmations.unfollow.confirm": "Адпісацца",
"confirmations.unfollow.message": "Вы ўпэўненыя, што хочаце адпісацца ад {name}?",
+ "confirmations.unfollow.title": "Адпісацца ад карыстальніка?",
+ "content_warning.hide": "Схаваць допіс",
+ "content_warning.show": "Усё адно паказаць",
"conversation.delete": "Выдаліць размову",
"conversation.mark_as_read": "Адзначыць прачытаным",
"conversation.open": "Прагледзець размову",
@@ -297,8 +301,8 @@
"filter_modal.select_filter.subtitle": "Скарыстайцеся існуючай катэгорыяй або стварыце новую",
"filter_modal.select_filter.title": "Фільтраваць гэты допіс",
"filter_modal.title.status": "Фільтраваць допіс",
- "filtered_notifications_banner.mentions": "{count, plural, one {згадванне} few {згадванні} many {згадванняў} other {згадвання}}",
- "filtered_notifications_banner.pending_requests": "Апавяшчэнні ад {count, plural, =0 {# людзей якіх} one {# чалавека якіх} few {# чалавек якіх} many {# людзей якіх} other {# чалавека якіх}} вы магчыма ведаеце",
+ "filter_warning.matches_filter": "Адпавядае фільтру \"{title}\"",
+ "filtered_notifications_banner.pending_requests": "Ад {count, plural, =0 {# людзей якіх} one {# чалавека якіх} few {# чалавек якіх} many {# людзей якіх} other {# чалавека якіх}} вы магчыма ведаеце",
"filtered_notifications_banner.title": "Адфільтраваныя апавяшчэнні",
"firehose.all": "Усе",
"firehose.local": "Гэты сервер",
@@ -347,13 +351,14 @@
"hashtag.follow": "Падпісацца на хэштэг",
"hashtag.unfollow": "Адпісацца ад хэштэга",
"hashtags.and_other": "…і яшчэ {count, plural, other {#}}",
- "home.column_settings.show_reblogs": "Паказаць пашырэнні",
+ "home.column_settings.show_reblogs": "Паказваць пашырэнні",
"home.column_settings.show_replies": "Паказваць адказы",
"home.hide_announcements": "Схаваць аб'явы",
"home.pending_critical_update.body": "Калі ласка, абнавіце свой сервер Mastodon як мага хутчэй!",
"home.pending_critical_update.link": "Прагледзець абнаўленні",
"home.pending_critical_update.title": "Даступна крытычнае абнаўленне бяспекі!",
"home.show_announcements": "Паказаць аб'явы",
+ "ignore_notifications_modal.not_following_title": "Ігнараваць апавяшчэнні ад людзей на якіх вы не падпісаны?",
"interaction_modal.description.favourite": "Маючы ўліковы запіс Mastodon, вы можаце ўпадабаць гэты допіс, каб паведаміць аўтару, што ён вам падабаецца, і захаваць яго на будучыню.",
"interaction_modal.description.follow": "Маючы акаўнт у Mastodon, вы можаце падпісацца на {name}, каб бачыць яго/яе допісы ў сваёй хатняй стужцы.",
"interaction_modal.description.reblog": "З уліковым запісам Mastodon, вы можаце пашырыць гэты пост, каб падзяліцца ім са сваімі падпісчыкамі.",
@@ -407,14 +412,13 @@
"keyboard_shortcuts.unfocus": "Расфакусаваць тэкставую вобласць/пошукавы радок",
"keyboard_shortcuts.up": "Перамясціцца ўверх па спісе",
"lightbox.close": "Закрыць",
- "lightbox.compress": "Сціснуць бачную вобласць выявы",
- "lightbox.expand": "Павялічыць бачную вобласць выявы",
"lightbox.next": "Далей",
"lightbox.previous": "Назад",
"limited_account_hint.action": "Усе роўна паказваць профіль",
"limited_account_hint.title": "Гэты профіль быў схаваны мадэратарамі",
"link_preview.author": "Ад {name}",
"link_preview.more_from_author": "Больш ад {name}",
+ "link_preview.shares": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}",
"lists.account.add": "Дадаць да спісу",
"lists.account.remove": "Выдаліць са спісу",
"lists.delete": "Выдаліць спіс",
@@ -431,7 +435,6 @@
"lists.subheading": "Вашыя спісы",
"load_pending": "{count, plural, one {# новы элемент} few {# новыя элементы} many {# новых элементаў} other {# новых элементаў}}",
"loading_indicator.label": "Загрузка…",
- "media_gallery.toggle_visible": "{number, plural, one {Схаваць відарыс} other {Схаваць відарысы}}",
"moved_to_account_banner.text": "Ваш уліковы запіс {disabledAccount} зараз адключаны таму што вы перанесены на {movedToAccount}.",
"mute_modal.hide_from_notifications": "Схаваць з апавяшчэнняў",
"mute_modal.hide_options": "Схаваць опцыі",
@@ -469,11 +472,19 @@
"navigation_bar.security": "Бяспека",
"not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.",
"notification.admin.report": "{name} паскардзіўся на {target}",
+ "notification.admin.report_account": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target} з прычыны {category}",
+ "notification.admin.report_account_other": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target}",
+ "notification.admin.report_statuses": "{name} паскардзіўся на {target} з прычыны {category}",
+ "notification.admin.report_statuses_other": "{name} паскардзіўся на {target}",
"notification.admin.sign_up": "{name} зарэгістраваўся",
"notification.favourite": "Ваш допіс упадабаны {name}",
"notification.follow": "{name} падпісаўся на вас",
"notification.follow_request": "{name} адправіў запыт на падпіску",
- "notification.mention": "{name} згадаў вас",
+ "notification.label.mention": "Згадванне",
+ "notification.label.private_mention": "Асабістае згадванне",
+ "notification.label.private_reply": "Асабісты адказ",
+ "notification.label.reply": "Адказ",
+ "notification.mention": "Згадванне",
"notification.moderation-warning.learn_more": "Даведацца больш",
"notification.moderation_warning": "Вы атрымалі папярэджанне аб мадэрацыі",
"notification.moderation_warning.action_delete_statuses": "Некаторыя вашыя допісы былі выдаленыя.",
@@ -494,11 +505,19 @@
"notification.status": "Новы допіс ад {name}",
"notification.update": "Допіс {name} адрэдагаваны",
"notification_requests.accept": "Прыняць",
+ "notification_requests.confirm_accept_multiple.title": "Прыняць запыты на апавяшчэнні?",
+ "notification_requests.confirm_dismiss_multiple.title": "Адхіліць запыты на апавяшчэнні?",
"notification_requests.dismiss": "Адхіліць",
+ "notification_requests.edit_selection": "Рэдагаваць",
+ "notification_requests.exit_selection": "Гатова",
+ "notification_requests.maximize": "Разгарнуць",
+ "notification_requests.minimize_banner": "Згарнуць банер адфільтраваных апавяшчэнняў",
"notification_requests.notifications_from": "Апавяшчэнні ад {name}",
"notification_requests.title": "Адфільтраваныя апавяшчэнні",
+ "notification_requests.view": "Прагляд апавяшчэнняў",
"notifications.clear": "Ачысціць апавяшчэнні",
"notifications.clear_confirmation": "Вы ўпэўнены, што жадаеце назаўсёды сцерці ўсё паведамленні?",
+ "notifications.clear_title": "Ачысціць апавяшчэнні?",
"notifications.column_settings.admin.report": "Новыя скаргі:",
"notifications.column_settings.admin.sign_up": "Новыя ўваходы:",
"notifications.column_settings.alert": "Апавяшчэнні на працоўным стале",
@@ -530,6 +549,10 @@
"notifications.permission_denied": "Апавяшчэнні на працоўным стале недаступныя з-за папярэдне адхіленага запыта праў браўзера",
"notifications.permission_denied_alert": "Апавяшчэнні на працоўным стале не могуць быць уключаныя, з-за таго што запыт браўзера быў адхілены",
"notifications.permission_required": "Апавяшчэнні на працоўным стале недаступныя, з-за таго што неабходны дазвол не быў дадзены.",
+ "notifications.policy.accept": "Прыняць",
+ "notifications.policy.accept_hint": "Паказваць у апавяшчэннях",
+ "notifications.policy.drop": "Iгнараваць",
+ "notifications.policy.filter": "Фільтраваць",
"notifications.policy.filter_new_accounts.hint": "Створаныя на працягу {days, plural, one {апошняга # дня} few {апошніх # дзён} many {апошніх # дзён} other {апошняй # дня}}",
"notifications.policy.filter_new_accounts_title": "Новыя ўліковыя запісы",
"notifications.policy.filter_not_followers_hint": "Уключаючы людзей, якія падпісаны на вас менш, чым {days, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}",
@@ -538,7 +561,7 @@
"notifications.policy.filter_not_following_title": "Людзі, на якіх вы не падпісаны",
"notifications.policy.filter_private_mentions_hint": "Фільтруецца за выключэннем адказу на вашае згадванне ці калі вы падпісаны на адпраўніка",
"notifications.policy.filter_private_mentions_title": "Непажаданыя асаблівыя згадванні",
- "notifications.policy.title": "Адфільтроўваць апавяшчэнні ад…",
+ "notifications.policy.title": "Наладзіць апавяшчэнні ад…",
"notifications_permission_banner.enable": "Уключыць апавяшчэнні на працоўным стале",
"notifications_permission_banner.how_to_control": "Каб атрымліваць апавяшчэнні, калі Mastodon не адкрыты, уключыце апавяшчэнні працоўнага стала. Вы зможаце дакладна кантраляваць, якія падзеі будуць ствараць апавяшчэнні з дапамогай {icon} кнопкі, як толькі яны будуць уключаны.",
"notifications_permission_banner.title": "Не прапусціце нічога",
@@ -665,9 +688,13 @@
"report.unfollow_explanation": "Вы падпісаныя на гэты ўліковы запіс. Каб не бачыць допісы з яго ў вашай стужцы, адпішыцеся.",
"report_notification.attached_statuses": "{count, plural, one {{count} допіс прымацаваны} few {{count} допісы прымацаваны} many {{count} допісаў прымацавана} other {{count} допісу прымацавана}}",
"report_notification.categories.legal": "Права",
+ "report_notification.categories.legal_sentence": "нелегальнае змесціва",
"report_notification.categories.other": "Іншае",
+ "report_notification.categories.other_sentence": "іншае",
"report_notification.categories.spam": "Спам",
+ "report_notification.categories.spam_sentence": "спам",
"report_notification.categories.violation": "Парушэнне правілаў",
+ "report_notification.categories.violation_sentence": "парушэнне правілаў",
"report_notification.open": "Адкрыць скаргу",
"search.no_recent_searches": "Гісторыя пошуку пустая",
"search.placeholder": "Пошук",
@@ -695,8 +722,11 @@
"server_banner.about_active_users": "Людзі, якія карыстаюцца гэтым сервера на працягу апошніх 30 дзён (Штомесячна Актыўныя Карыстальнікі)",
"server_banner.active_users": "актыўныя карыстальнікі",
"server_banner.administered_by": "Адміністратар:",
+ "server_banner.is_one_of_many": "{domain} - гэта адзін з многіх незалежных сервераў Mastodon, якія вы можаце выкарыстоўваць для ўдзелу ў fediverse.",
"server_banner.server_stats": "Статыстыка сервера:",
"sign_in_banner.create_account": "Стварыць уліковы запіс",
+ "sign_in_banner.follow_anyone": "Сачыце за кім заўгодна ва ўсім fediverse і глядзіце ўсё ў храналагічным парадку. Ніякіх алгарытмаў, рэкламы або клікбэйту.",
+ "sign_in_banner.mastodon_is": "Mastodon - лепшы спосаб быць у курсе ўсяго, што адбываецца.",
"sign_in_banner.sign_in": "Увайсці",
"sign_in_banner.sso_redirect": "Уваход ці рэгістрацыя",
"status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}",
@@ -714,12 +744,9 @@
"status.edit": "Рэдагаваць",
"status.edited": "Апошняе рэдагаванне {date}",
"status.edited_x_times": "Рэдагавана {count, plural, one {{count} раз} few {{count} разы} many {{count} разоў} other {{count} разу}}",
- "status.embed": "Убудаваць",
"status.favourite": "Упадабанае",
"status.favourites": "{count, plural, one {# упадабанае} few {# упадабаныя} many {# упадабаных} other {# упадабанага}}",
"status.filter": "Фільтраваць гэты допіс",
- "status.filtered": "Адфільтравана",
- "status.hide": "Схаваць допіс",
"status.history.created": "Створана {name} {date}",
"status.history.edited": "Адрэдагавана {name} {date}",
"status.load_more": "Загрузіць яшчэ",
@@ -747,10 +774,7 @@
"status.report": "Паскардзіцца на @{name}",
"status.sensitive_warning": "Уражвальны змест",
"status.share": "Абагуліць",
- "status.show_filter_reason": "Усё адно паказаць",
- "status.show_less": "Паказаць меньш",
"status.show_less_all": "Згарнуць усё",
- "status.show_more": "Паказаць болей",
"status.show_more_all": "Разгарнуць усё",
"status.show_original": "Паказаць арыгінал",
"status.title.with_attachments": "{user} апублікаваў {attachmentCount, plural, one {далучэнне} few {{attachmentCount} далучэнні} many {{attachmentCount} далучэнняў} other {{attachmentCount} далучэння}}",
@@ -769,10 +793,6 @@
"time_remaining.minutes": "{number, plural, one {засталася # хвіліна} few {засталося # хвіліны} many {засталося # хвілін} other {засталося # хвіліны}}",
"time_remaining.moments": "Засталося некалькі секунд",
"time_remaining.seconds": "{number, plural, one {засталася # секунда} few {засталося # секунды} many {засталося # секунд} other {засталося # секунды}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} з іншых сервераў не адлюстроўваецца.",
- "timeline_hint.resources.followers": "Падпісчыкі",
- "timeline_hint.resources.follows": "Падпісаны на",
- "timeline_hint.resources.statuses": "Старэйшыя допісы",
"trends.counter_by_accounts": "{count, plural, one {{counter} чалавек} few {{counter} чалавекі} many {{counter} людзей} other {{counter} чалавек}} за {days, plural, one {{days} апошні дзень} few {{days} апошнія дні} many {{days} апошніх дзён} other {{days} апошніх дзён}}",
"trends.trending_now": "Актуальнае",
"ui.beforeunload": "Ваш чарнавік знішчыцца калі вы пакінеце Mastodon.",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 98e84c45d75..c8f8474e91b 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -11,7 +11,7 @@
"about.not_available": "Тази информация не е публична на този сървър.",
"about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}",
"about.rules": "Правила на сървъра",
- "account.account_note_header": "Бележка",
+ "account.account_note_header": "Лична бележка",
"account.add_or_remove_from_list": "Добавяне или премахване от списъци",
"account.badges.bot": "Бот",
"account.badges.group": "Група",
@@ -19,7 +19,6 @@
"account.block_domain": "Блокиране на домейн {domain}",
"account.block_short": "Блокиране",
"account.blocked": "Блокирани",
- "account.browse_more_on_origin_server": "Разглеждане на още в оригиналния профил",
"account.cancel_follow_request": "Оттегляне на заявката за последване",
"account.copy": "Копиране на връзка към профила",
"account.direct": "Частно споменаване на @{name}",
@@ -98,6 +97,8 @@
"block_modal.title": "Блокирате ли потребителя?",
"block_modal.you_wont_see_mentions": "Няма да виждате публикациите, които ги споменават.",
"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": "О, не!",
@@ -169,27 +170,31 @@
"compose_form.spoiler_placeholder": "Предупреждение за съдържание (по избор)",
"confirmation_modal.cancel": "Отказ",
"confirmations.block.confirm": "Блокиране",
- "confirmations.cancel_follow_request.confirm": "Оттегляне на заявката",
- "confirmations.cancel_follow_request.message": "Наистина ли искате да оттеглите заявката си за последване на {name}?",
"confirmations.delete.confirm": "Изтриване",
"confirmations.delete.message": "Наистина ли искате да изтриете публикацията?",
+ "confirmations.delete.title": "Изтривате ли публикацията?",
"confirmations.delete_list.confirm": "Изтриване",
"confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?",
+ "confirmations.delete_list.title": "Изтривате ли списъка?",
"confirmations.discard_edit_media.confirm": "Отхвърляне",
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
- "confirmations.domain_block.confirm": "Блокиране на сървър",
- "confirmations.domain_block.message": "Наистина ли искате да блокирате целия {domain}? В повечето случаи няколко блокирания или заглушавания са достатъчно и за предпочитане. Няма да виждате съдържание от домейна из публични часови оси или известията си. Вашите последователи от този домейн ще се премахнат.",
"confirmations.edit.confirm": "Редактиране",
"confirmations.edit.message": "Редактирането сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
+ "confirmations.edit.title": "Презаписвате ли публикацията?",
"confirmations.logout.confirm": "Излизане",
"confirmations.logout.message": "Наистина ли искате да излезете?",
+ "confirmations.logout.title": "Излизате ли от системата?",
"confirmations.mute.confirm": "Заглушаване",
"confirmations.redraft.confirm": "Изтриване и преработване",
"confirmations.redraft.message": "Наистина ли искате да изтриете тази публикация и да я направите чернова? Означаванията като любими и подсилванията ще се изгубят, а и отговорите към първоначалната публикация ще осиротеят.",
+ "confirmations.redraft.title": "Изтривате и преработвате ли публикацията?",
"confirmations.reply.confirm": "Отговор",
"confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
+ "confirmations.reply.title": "Презаписвате ли публикацията?",
"confirmations.unfollow.confirm": "Без следване",
"confirmations.unfollow.message": "Наистина ли искате да не следвате {name}?",
+ "confirmations.unfollow.title": "Спирате ли да следвате потребителя?",
+ "content_warning.hide": "Скриване на публ.",
"conversation.delete": "Изтриване на разговора",
"conversation.mark_as_read": "Маркиране като прочетено",
"conversation.open": "Преглед на разговора",
@@ -297,8 +302,7 @@
"filter_modal.select_filter.subtitle": "Изберете съществуваща категория или създайте нова",
"filter_modal.select_filter.title": "Филтриране на публ.",
"filter_modal.title.status": "Филтриране на публ.",
- "filtered_notifications_banner.mentions": "{count, plural, one {споменаване} other {споменавания}}",
- "filtered_notifications_banner.pending_requests": "Известията от {count, plural, =0 {никого, когото може да познавате} one {едно лице, което може да познавате} other {# души, които може да познавате}}",
+ "filtered_notifications_banner.pending_requests": "От {count, plural, =0 {никого, когото може да познавате} one {едно лице, което може да познавате} other {# души, които може да познавате}}",
"filtered_notifications_banner.title": "Филтрирани известия",
"firehose.all": "Всичко",
"firehose.local": "Този сървър",
@@ -347,6 +351,14 @@
"hashtag.follow": "Следване на хаштаг",
"hashtag.unfollow": "Спиране на следване на хаштаг",
"hashtags.and_other": "…и {count, plural, other {# още}}",
+ "hints.profiles.followers_may_be_missing": "Последователи за този профил може да липсват.",
+ "hints.profiles.follows_may_be_missing": "Последванията за този профил може да липсват.",
+ "hints.profiles.posts_may_be_missing": "Някои публикации от този профил може да липсват.",
+ "hints.profiles.see_more_followers": "Преглед на още последователи на {domain}",
+ "hints.profiles.see_more_follows": "Преглед на още последвания на {domain}",
+ "hints.profiles.see_more_posts": "Преглед на още публикации на {domain}",
+ "hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.",
+ "hints.threads.see_more": "Преглед на още отговори на {domain}",
"home.column_settings.show_reblogs": "Показване на подсилванията",
"home.column_settings.show_replies": "Показване на отговорите",
"home.hide_announcements": "Скриване на оповестяванията",
@@ -407,8 +419,6 @@
"keyboard_shortcuts.unfocus": "Разфокусиране на текстовото поле за съставяне/търсене",
"keyboard_shortcuts.up": "Преместване нагоре в списъка",
"lightbox.close": "Затваряне",
- "lightbox.compress": "Свиване на полето за преглед на образи",
- "lightbox.expand": "Разгъване на полето за преглед на образи",
"lightbox.next": "Напред",
"lightbox.previous": "Назад",
"limited_account_hint.action": "Показване на профила въпреки това",
@@ -432,7 +442,6 @@
"lists.subheading": "Вашите списъци",
"load_pending": "{count, plural, one {# нов елемент} other {# нови елемента}}",
"loading_indicator.label": "Зареждане…",
- "media_gallery.toggle_visible": "Скриване на {number, plural, one {изображение} other {изображения}}",
"moved_to_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен, защото се преместихте в {movedToAccount}.",
"mute_modal.hide_from_notifications": "Скриване от известията",
"mute_modal.hide_options": "Скриване на възможностите",
@@ -444,6 +453,7 @@
"mute_modal.you_wont_see_mentions": "Няма да виждате споменаващите ги публикации.",
"mute_modal.you_wont_see_posts": "Още могат да виждат публикациите ви, но вие техните не.",
"navigation_bar.about": "Относно",
+ "navigation_bar.administration": "Администрация",
"navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
"navigation_bar.blocks": "Блокирани потребители",
"navigation_bar.bookmarks": "Отметки",
@@ -460,6 +470,7 @@
"navigation_bar.follows_and_followers": "Последвания и последователи",
"navigation_bar.lists": "Списъци",
"navigation_bar.logout": "Излизане",
+ "navigation_bar.moderation": "Модериране",
"navigation_bar.mutes": "Заглушени потребители",
"navigation_bar.opened_in_classic_interface": "Публикации, акаунти и други особени страници се отварят по подразбиране в класическия мрежови интерфейс.",
"navigation_bar.personal": "Лично",
@@ -470,11 +481,23 @@
"navigation_bar.security": "Сигурност",
"not_signed_in_indicator.not_signed_in": "Трябва ви вход за достъп до ресурса.",
"notification.admin.report": "{name} докладва {target}",
+ "notification.admin.report_account": "{name} докладва {count, plural, one {публикация} other {# публикации}} от {target} за {category}",
+ "notification.admin.report_account_other": "{name} докладва {count, plural, one {публикация} other {# публикации}} от {target}",
+ "notification.admin.report_statuses": "{name} докладва {target} за {category}",
+ "notification.admin.report_statuses_other": "{name} докладва {target}",
"notification.admin.sign_up": "{name} се регистрира",
+ "notification.admin.sign_up.name_and_others": "{name} и {count, plural, one {# друг} other {# други}} се регистрираха",
"notification.favourite": "{name} направи любима публикацията ви",
+ "notification.favourite.name_and_others_with_link": "{name} и {count, plural, one {# друг} other {# други}} направиха любима ваша публикация",
"notification.follow": "{name} ви последва",
+ "notification.follow.name_and_others": "{name} и {count, plural, one {# друг} other {# други}} ви последваха",
"notification.follow_request": "{name} поиска да ви последва",
- "notification.mention": "{name} ви спомена",
+ "notification.follow_request.name_and_others": "{name} и {count, plural, one {# друг} other {# други}} поискаха да ви последват",
+ "notification.label.mention": "Споменаване",
+ "notification.label.private_mention": "Частно споменаване",
+ "notification.label.private_reply": "Личен отговор",
+ "notification.label.reply": "Отговор",
+ "notification.mention": "Споменаване",
"notification.moderation-warning.learn_more": "Научете повече",
"notification.moderation_warning": "Получихте предупреждение за модериране",
"notification.moderation_warning.action_delete_statuses": "Някои от публикациите ви са премахнати.",
@@ -487,6 +510,7 @@
"notification.own_poll": "Анкетата ви приключи",
"notification.poll": "Анкета, в която гласувахте, приключи",
"notification.reblog": "{name} подсили ваша публикация",
+ "notification.reblog.name_and_others_with_link": "{name} и {count, plural, one {# друг} other {# други}} подсилиха ваша публикация",
"notification.relationships_severance_event": "Изгуби се връзката с {name}",
"notification.relationships_severance_event.account_suspension": "Администратор от {from} спря {target}, което значи че повече не може да получавате новости от тях или да взаимодействате с тях.",
"notification.relationships_severance_event.domain_block": "Администратор от {from} блокира {target}, вкючващо {followersCount} от последователите ви и {followingCount, plural, one {# акаунт, който} other {# акаунта, които}} следвате.",
@@ -495,11 +519,22 @@
"notification.status": "{name} току-що публикува",
"notification.update": "{name} промени публикация",
"notification_requests.accept": "Приемам",
+ "notification_requests.confirm_accept_multiple.message": "На път сте да приемете {count, plural, one {едно известие за заявка} other {# известия за заявки}}. Наистина ли искате да продължите?",
+ "notification_requests.confirm_accept_multiple.title": "Приемате ли заявките за известие?",
+ "notification_requests.confirm_dismiss_multiple.title": "Отхвърляте ли заявките за известие?",
"notification_requests.dismiss": "Отхвърлям",
+ "notification_requests.edit_selection": "Редактиране",
+ "notification_requests.exit_selection": "Готово",
+ "notification_requests.explainer_for_limited_account": "Известията от този акаунт са прецедени, защото акаунтът е ограничен от модератор.",
+ "notification_requests.explainer_for_limited_remote_account": "Известията от този акаунт са прецедени, защото акаунтът или сървърът му е ограничен от модератор.",
+ "notification_requests.maximize": "Максимизиране",
+ "notification_requests.minimize_banner": "Минимизиране на банера за филтрирани известия",
"notification_requests.notifications_from": "Известия от {name}",
"notification_requests.title": "Филтрирани известия",
+ "notification_requests.view": "Преглед на известията",
"notifications.clear": "Изчистване на известията",
"notifications.clear_confirmation": "Наистина ли искате да изчистите завинаги всичките си известия?",
+ "notifications.clear_title": "Изчиствате ли известията?",
"notifications.column_settings.admin.report": "Нови доклади:",
"notifications.column_settings.admin.sign_up": "Нови регистрации:",
"notifications.column_settings.alert": "Известия на работния плот",
@@ -531,6 +566,11 @@
"notifications.permission_denied": "Известията на работния плот не са налични поради предварително отказана заявка за разрешение в браузъра",
"notifications.permission_denied_alert": "Известията на работния плот не могат да се включат, тъй като разрешението на браузъра е отказвано преди",
"notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.",
+ "notifications.policy.accept": "Приемам",
+ "notifications.policy.accept_hint": "Показване в известия",
+ "notifications.policy.filter": "Филтър",
+ "notifications.policy.filter_limited_accounts_hint": "Ограничено от модераторите на сървъра",
+ "notifications.policy.filter_limited_accounts_title": "Модерирани акаунти",
"notifications.policy.filter_new_accounts.hint": "Сътворено през {days, plural, one {последния ден} other {последните # дена}}",
"notifications.policy.filter_new_accounts_title": "Нови акаунти",
"notifications.policy.filter_not_followers_hint": "Включително хора, които са ви последвали по-малко от {days, plural, one {ден} other {# дни}}",
@@ -539,7 +579,7 @@
"notifications.policy.filter_not_following_title": "Хора, които не следвате",
"notifications.policy.filter_private_mentions_hint": "Филтрирано, освен ако е отговор към ваше собствено споменаване или ако следвате подателя",
"notifications.policy.filter_private_mentions_title": "Непоискани частни споменавания",
- "notifications.policy.title": "Да се филтрират известия от…",
+ "notifications.policy.title": "Управление на известията от…",
"notifications_permission_banner.enable": "Включване на известията на работния плот",
"notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, включете известията на работния плот. Може да управлявате точно кои видове взаимодействия пораждат известия на работния плот чрез бутона {icon} по-горе, след като бъдат включени.",
"notifications_permission_banner.title": "Никога не пропускайте нищо",
@@ -666,9 +706,13 @@
"report.unfollow_explanation": "Последвали сте този акаунт. За да не виждате повече публикациите му в началния си инфопоток, спрете да го следвате.",
"report_notification.attached_statuses": "{count, plural, one {прикаченa {count} публикация} other {прикачени {count} публикации}}",
"report_notification.categories.legal": "Правни въпроси",
+ "report_notification.categories.legal_sentence": "незаконно съдържание",
"report_notification.categories.other": "Друго",
+ "report_notification.categories.other_sentence": "друго",
"report_notification.categories.spam": "Спам",
+ "report_notification.categories.spam_sentence": "спам",
"report_notification.categories.violation": "Нарушение на правилото",
+ "report_notification.categories.violation_sentence": "нарушение на правило",
"report_notification.open": "Отваряне на доклада",
"search.no_recent_searches": "Няма скорошни търсения",
"search.placeholder": "Търсене",
@@ -718,12 +762,9 @@
"status.edit": "Редактиране",
"status.edited": "Последно редактирано на {date}",
"status.edited_x_times": "Редактирано {count, plural,one {{count} път} other {{count} пъти}}",
- "status.embed": "Вграждане",
"status.favourite": "Любимо",
"status.favourites": "{count, plural, one {любимо} other {любими}}",
"status.filter": "Филтриране на публ.",
- "status.filtered": "Филтрирано",
- "status.hide": "Скриване на публ.",
"status.history.created": "{name} създаде {date}",
"status.history.edited": "{name} редактира {date}",
"status.load_more": "Зареждане на още",
@@ -751,10 +792,7 @@
"status.report": "Докладване на @{name}",
"status.sensitive_warning": "Деликатно съдържание",
"status.share": "Споделяне",
- "status.show_filter_reason": "Покажи въпреки това",
- "status.show_less": "Показване на по-малко",
"status.show_less_all": "Показване на по-малко за всички",
- "status.show_more": "Показване на повече",
"status.show_more_all": "Показване на повече за всички",
"status.show_original": "Показване на първообраза",
"status.title.with_attachments": "{user} публикува {attachmentCount, plural, one {прикачване} other {{attachmentCount} прикачвания}}",
@@ -773,10 +811,6 @@
"time_remaining.minutes": "{number, plural, one {остава # минута} other {остават # минути}}",
"time_remaining.moments": "Оставащи моменти",
"time_remaining.seconds": "{number, plural, one {# секунда} other {# секунди}} остава",
- "timeline_hint.remote_resource_not_displayed": "{resource} от други сървъри не се показват.",
- "timeline_hint.resources.followers": "Последователи",
- "timeline_hint.resources.follows": "Последвани",
- "timeline_hint.resources.statuses": "По-стари публикации",
"trends.counter_by_accounts": "{count, plural, one {{counter} човек} other {{counter} души}} {days, plural, one {за последния {days} ден} other {за последните {days} дни}}",
"trends.trending_now": "Налагащи се сега",
"ui.beforeunload": "Черновата ви ще се загуби, излизайки от Mastodon.",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index 4c4138bcf12..9512f6a92b3 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -11,7 +11,6 @@
"about.not_available": "এই তথ্য এই সার্ভারে উন্মুক্ত করা হয়নি.",
"about.powered_by": "{mastodon} দ্বারা তৈরি বিকেন্দ্রীভূত সামাজিক মিডিয়া।",
"about.rules": "সার্ভারের নিয়মাবলী",
- "account.account_note_header": "বিজ্ঞপ্তি",
"account.add_or_remove_from_list": "তালিকাতে যোগ বা অপসারণ করো",
"account.badges.bot": "বট",
"account.badges.group": "দল",
@@ -19,7 +18,6 @@
"account.block_domain": "{domain} কে ব্লক করুন",
"account.block_short": "ব্লক",
"account.blocked": "অবরুদ্ধ",
- "account.browse_more_on_origin_server": "মূল প্রোফাইলটিতে আরও ব্রাউজ করুন",
"account.cancel_follow_request": "অনুসরণ অনুরোধ প্রত্যাহার করুন",
"account.direct": "গোপনে মেনশন করুন @{name}",
"account.disable_notifications": "আমাকে জানানো বন্ধ করো যখন @{name} পোস্ট করবে",
@@ -33,9 +31,7 @@
"account.follow": "অনুসরণ",
"account.followers": "অনুসরণকারী",
"account.followers.empty": "এই ব্যক্তিকে এখনো কেউ অনুসরণ করে না.",
- "account.followers_counter": "{count, plural,one {{counter} জন অনুসরণকারী } other {{counter} জন অনুসরণকারী}}",
"account.following": "অনুসরণ করা হচ্ছে",
- "account.following_counter": "{count, plural,one {{counter} জনকে অনুসরণ} other {{counter} জনকে অনুসরণ}}",
"account.follows.empty": "এই সদস্য কাউকে এখনো ফলো করেন না.",
"account.go_to_profile": "প্রোফাইলে যান",
"account.hide_reblogs": "@{name}'র সমর্থনগুলি লুকিয়ে ফেলুন",
@@ -60,7 +56,6 @@
"account.requested_follow": "{name} আপনাকে অনুসরণ করার জন্য অনুরোধ করেছে",
"account.share": "@{name} র প্রোফাইল অন্যদের দেখান",
"account.show_reblogs": "@{name} র সমর্থনগুলো দেখান",
- "account.statuses_counter": "{count, plural,one {{counter} টুট} other {{counter} টুট}}",
"account.unblock": "@{name} র কার্যকলাপ দেখুন",
"account.unblock_domain": "{domain} কে আবার দেখুন",
"account.unblock_short": "আনব্লক করুন",
@@ -149,15 +144,12 @@
"compose_form.spoiler.unmarked": "লেখাটি লুকানো নেই",
"confirmation_modal.cancel": "বাতিল করুন",
"confirmations.block.confirm": "ব্লক করুন",
- "confirmations.cancel_follow_request.confirm": "অনুরোধ বাতিল করুন",
- "confirmations.cancel_follow_request.message": "আপনি কি নিশ্চিত যে আপনি {name} কে অনুসরণ করার অনুরোধ প্রত্যাহার করতে চান?",
"confirmations.delete.confirm": "মুছে ফেলুন",
"confirmations.delete.message": "আপনি কি নিশ্চিত যে এই লেখাটি মুছে ফেলতে চান ?",
"confirmations.delete_list.confirm": "মুছে ফেলুন",
"confirmations.delete_list.message": "আপনি কি নিশ্চিত যে আপনি এই তালিকাটি স্থায়িভাবে মুছে ফেলতে চান ?",
"confirmations.discard_edit_media.confirm": "বাতিল করো",
"confirmations.discard_edit_media.message": "মিডিয়া Description বা Preview তে আপনার আপনার অসংরক্ষিত পরিবর্তন আছে, সেগুলো বাতিল করবেন?",
- "confirmations.domain_block.message": "আপনি কি সত্যিই সত্যই নিশ্চিত যে আপনি পুরো {domain}'টি ব্লক করতে চান? বেশিরভাগ ক্ষেত্রে কয়েকটি লক্ষ্যযুক্ত ব্লক বা নীরবতা যথেষ্ট এবং পছন্দসই। আপনি কোনও পাবলিক টাইমলাইন বা আপনার বিজ্ঞপ্তিগুলিতে সেই ডোমেন থেকে সামগ্রী দেখতে পাবেন না। সেই ডোমেন থেকে আপনার অনুসরণকারীদের সরানো হবে।",
"confirmations.edit.confirm": "সম্পাদন",
"confirmations.edit.message": "এখন সম্পাদনা করলে আপনি যে মেসেজ লিখছেন তা overwrite করবে, চালিয়ে যেতে চান?",
"confirmations.logout.confirm": "প্রস্থান",
@@ -296,7 +288,6 @@
"lists.search": "যাদের অনুসরণ করেন তাদের ভেতরে খুঁজুন",
"lists.subheading": "আপনার তালিকা",
"load_pending": "{count, plural, one {# নতুন জিনিস} other {# নতুন জিনিস}}",
- "media_gallery.toggle_visible": "দৃশ্যতার অবস্থা বদলান",
"navigation_bar.about": "পরিচিতি",
"navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী",
"navigation_bar.bookmarks": "বুকমার্ক",
@@ -321,9 +312,7 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} আপনাকে অনুসরণ করেছেন",
"notification.follow_request": "{name} আপনাকে অনুসরণ করার জন্য অনুরধ করেছে",
- "notification.mention": "{name} আপনাকে উল্লেখ করেছেন",
"notification.own_poll": "আপনার পোল শেষ হয়েছে",
- "notification.poll": "আপনি ভোট দিয়েছিলেন এমন এক নির্বাচনের ভোটের সময় শেষ হয়েছে",
"notification.reblog": "{name} আপনার কার্যক্রমে সমর্থন দেখিয়েছেন",
"notifications.clear": "প্রজ্ঞাপনগুলো মুছে ফেলতে",
"notifications.clear_confirmation": "আপনি কি নির্চিত প্রজ্ঞাপনগুলো মুছে ফেলতে চান ?",
@@ -419,10 +408,7 @@
"status.detailed_status": "বিস্তারিত কথোপকথনের হিসেবে দেখতে",
"status.edit": "সম্পাদন",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "এমবেড করতে",
"status.favourite": "পছন্দ",
- "status.filtered": "ছাঁকনিদিত",
- "status.hide": "পোস্ট লুকাও",
"status.load_more": "আরো দেখুন",
"status.media_hidden": "মিডিয়া লুকানো আছে",
"status.mention": "@{name}কে উল্লেখ করতে",
@@ -444,9 +430,7 @@
"status.report": "@{name} কে রিপোর্ট করতে",
"status.sensitive_warning": "সংবেদনশীল কিছু",
"status.share": "অন্যদের জানান",
- "status.show_less": "কম দেখতে",
"status.show_less_all": "সবগুলোতে কম দেখতে",
- "status.show_more": "আরো দেখাতে",
"status.show_more_all": "সবগুলোতে আরো দেখতে",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.translate": "অনুবাদ",
@@ -459,10 +443,6 @@
"time_remaining.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}} বাকি আছে",
"time_remaining.moments": "সময় বাকি আছে",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} বাকি আছে",
- "timeline_hint.remote_resource_not_displayed": "অন্য সার্ভারগুলি থেকে {resource} দেখাচ্ছে না। ",
- "timeline_hint.resources.followers": "অনুসরকারীরা",
- "timeline_hint.resources.follows": "অনুসরণ করে",
- "timeline_hint.resources.statuses": "পুরনো টুটগুলি",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "বর্তমানে জনপ্রিয়",
"ui.beforeunload": "যে পর্যন্ত এটা লেখা হয়েছে, মাস্টাডন থেকে চলে গেলে এটা মুছে যাবে।",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index 7cd49ba59d8..79949ed91f1 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -11,7 +11,6 @@
"about.not_available": "An titour-mañ ne c'heller ket gwelet war ar servijer-mañ.",
"about.powered_by": "Rouedad sokial digreizenned kaset gant {mastodon}",
"about.rules": "Reolennoù ar servijer",
- "account.account_note_header": "Notenn",
"account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù",
"account.badges.bot": "Robot",
"account.badges.group": "Strollad",
@@ -19,7 +18,6 @@
"account.block_domain": "Stankañ an domani {domain}",
"account.block_short": "Stankañ",
"account.blocked": "Stanket",
- "account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin",
"account.cancel_follow_request": "Nullañ ar reked heuliañ",
"account.copy": "Eilañ al liamm war-zu ho profil",
"account.direct": "Menegiñ @{name} ent-prevez",
@@ -35,9 +33,8 @@
"account.follow_back": "Heuliañ d'ho tro",
"account.followers": "Tud koumanantet",
"account.followers.empty": "Den na heul an implijer·ez-mañ c'hoazh.",
- "account.followers_counter": "{count, plural, other{{counter} Heulier·ez}}",
+ "account.followers_counter": "{count, plural, one {{counter} heulier} two {{counter} heulier} few {{counter} heulier} many {{counter} heulier} other {{counter} heulier}}",
"account.following": "Koumanantoù",
- "account.following_counter": "{count, plural, one{{counter} C'houmanant} two{{counter} Goumanant} other {{counter} a Goumanant}}",
"account.follows.empty": "An implijer·ez-mañ na heul den ebet.",
"account.go_to_profile": "Gwelet ar profil",
"account.hide_reblogs": "Kuzh skignadennoù gant @{name}",
@@ -62,7 +59,7 @@
"account.requested_follow": "Gant {name} eo bet goulennet ho heuliañ",
"account.share": "Skignañ profil @{name}",
"account.show_reblogs": "Diskouez skignadennoù @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} C'hannad} two {{counter} Gannad} other {{counter} a Gannadoù}}",
+ "account.statuses_counter": "{count, plural, one {{counter} embannadur} two {{counter} embannadur} few {{counter} embannadur} many {{counter} embannadur} other {{counter} embannadur}}",
"account.unblock": "Diverzañ @{name}",
"account.unblock_domain": "Diverzañ an domani {domain}",
"account.unblock_short": "Distankañ",
@@ -160,15 +157,12 @@
"compose_form.spoiler.unmarked": "N'eo ket kuzhet an destenn",
"confirmation_modal.cancel": "Nullañ",
"confirmations.block.confirm": "Stankañ",
- "confirmations.cancel_follow_request.confirm": "Nullañ ar reked",
- "confirmations.cancel_follow_request.message": "Ha sur oc'h e fell deoc'h nullañ ho reked evit heuliañ {name} ?",
"confirmations.delete.confirm": "Dilemel",
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?",
"confirmations.delete_list.confirm": "Dilemel",
"confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?",
"confirmations.discard_edit_media.confirm": "Nac'hañ",
"confirmations.discard_edit_media.message": "Bez ez eus kemmoù n'int ket enrollet e deskrivadur ar media pe ar rakwel, nullañ anezho evelato?",
- "confirmations.domain_block.message": "Ha sur oc'h e fell deoc'h berzañ an {domain} a-bezh? Peurvuiañ eo trawalc'h berzañ pe mudañ un nebeud implijer·ezed·ien. Ne welot danvez ebet o tont eus an domani-mañ. Dilamet e vo ar c'houmanantoù war an domani-mañ.",
"confirmations.edit.confirm": "Kemmañ",
"confirmations.logout.confirm": "Digevreañ",
"confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?",
@@ -256,7 +250,6 @@
"filter_modal.select_filter.subtitle": "Implijout ur rummad a zo anezhañ pe krouiñ unan nevez",
"filter_modal.select_filter.title": "Silañ an toud-mañ",
"filter_modal.title.status": "Silañ un toud",
- "filtered_notifications_banner.mentions": "{count, plural, one {meneg} two {veneg} few {meneg} other {a venegoù}}",
"firehose.all": "Pep tra",
"firehose.local": "Ar servijer-mañ",
"firehose.remote": "Servijerioù all",
@@ -345,8 +338,6 @@
"keyboard_shortcuts.unfocus": "Difokus an dachenn testenn/klask",
"keyboard_shortcuts.up": "Pignat er roll",
"lightbox.close": "Serriñ",
- "lightbox.compress": "Bihanaat boest hewel ar skeudenn",
- "lightbox.expand": "Ledanaat boest hewel ar skeudenn",
"lightbox.next": "Da-heul",
"lightbox.previous": "A-raok",
"limited_account_hint.action": "Diskouez an aelad memes tra",
@@ -367,7 +358,6 @@
"lists.subheading": "Ho listennoù",
"load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}",
"loading_indicator.label": "O kargañ…",
- "media_gallery.toggle_visible": "{number, plural, one {Kuzhat ar skeudenn} other {Kuzhat ar skeudenn}}",
"navigation_bar.about": "Diwar-benn",
"navigation_bar.blocks": "Implijer·ezed·ien berzet",
"navigation_bar.bookmarks": "Sinedoù",
@@ -396,10 +386,8 @@
"notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv",
"notification.follow": "heuliañ a ra {name} ac'hanoc'h",
"notification.follow_request": "Gant {name} eo bet goulennet ho heuliañ",
- "notification.mention": "Gant {name} oc'h bet meneget",
"notification.moderation-warning.learn_more": "Gouzout hiroc'h",
"notification.own_poll": "Echu eo ho sontadeg",
- "notification.poll": "Ur sontadeg ho deus mouezhet warnañ a zo echuet",
"notification.reblog": "Gant {name} eo bet skignet ho toud",
"notification.status": "Emañ {name} o paouez toudañ",
"notification.update": "Gant {name} ez eus bet kemmet un toud",
@@ -585,11 +573,8 @@
"status.edit": "Kemmañ",
"status.edited": "Kemmet da ziwezhañ d'an {date}",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "Enframmañ",
"status.favourite": "Muiañ-karet",
"status.filter": "Silañ ar c'hannad-mañ",
- "status.filtered": "Silet",
- "status.hide": "Kuzhat an embannadur",
"status.history.created": "Krouet gant {name} {date}",
"status.history.edited": "Kemmet gant {name} {date}",
"status.load_more": "Kargañ muioc'h",
@@ -616,10 +601,7 @@
"status.report": "Disklêriañ @{name}",
"status.sensitive_warning": "Dalc'had kizidik",
"status.share": "Rannañ",
- "status.show_filter_reason": "Diskwel memes tra",
- "status.show_less": "Diskouez nebeutoc'h",
"status.show_less_all": "Diskouez nebeutoc'h evit an holl",
- "status.show_more": "Diskouez muioc'h",
"status.show_more_all": "Diskouez miuoc'h evit an holl",
"status.show_original": "Diskouez hini orin",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -637,10 +619,6 @@
"time_remaining.minutes": "{number, plural, one {# munut} other{# a vunut}} a chom",
"time_remaining.moments": "Pennadoù a-zilerc'h",
"time_remaining.seconds": "{number, plural, one {# eilenn} other{# eilenn}} a chom",
- "timeline_hint.remote_resource_not_displayed": "{resource} eus servijerien all n'int ket skrammet.",
- "timeline_hint.resources.followers": "Heulier·ezed·ien",
- "timeline_hint.resources.follows": "Heuliañ",
- "timeline_hint.resources.statuses": "Toudoù koshoc'h",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Luskad ar mare",
"ui.beforeunload": "Kollet e vo ho prell ma kuitit Mastodon.",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 88dd34aff04..710ac594f5e 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -11,7 +11,7 @@
"about.not_available": "Aquesta informació no és disponible en aquest servidor.",
"about.powered_by": "Xarxa social descentralitzada impulsada per {mastodon}",
"about.rules": "Normes del servidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota personal",
"account.add_or_remove_from_list": "Afegeix o elimina de les llistes",
"account.badges.bot": "Automatitzat",
"account.badges.group": "Grup",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloca el domini {domain}",
"account.block_short": "Bloca",
"account.blocked": "Blocat",
- "account.browse_more_on_origin_server": "Explora'n més al perfil original",
"account.cancel_follow_request": "Cancel·la el seguiment",
"account.copy": "Copia l'enllaç al perfil",
"account.direct": "Menciona privadament @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Segueix tu també",
"account.followers": "Seguidors",
"account.followers.empty": "A aquest usuari encara no el segueix ningú.",
- "account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} Seguidors}}",
+ "account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidors}}",
"account.following": "Seguint",
- "account.following_counter": "{count, plural, other {{counter} Seguint-ne}}",
+ "account.following_counter": "{count, plural, other {Seguint-ne {counter}}}",
"account.follows.empty": "Aquest usuari encara no segueix ningú.",
"account.go_to_profile": "Vés al perfil",
"account.hide_reblogs": "Amaga els impulsos de @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} ha demanat de seguir-te",
"account.share": "Comparteix el perfil de @{name}",
"account.show_reblogs": "Mostra els impulsos de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}",
+ "account.statuses_counter": "{count, plural, one {{counter} publicació} other {{counter} publicacions}}",
"account.unblock": "Desbloca @{name}",
"account.unblock_domain": "Desbloca el domini {domain}",
"account.unblock_short": "Desbloca",
@@ -98,6 +97,8 @@
"block_modal.title": "Bloquem l'usuari?",
"block_modal.you_wont_see_mentions": "No veureu publicacions que l'esmentin.",
"boost_modal.combo": "Pots prémer {combo} per a evitar-ho el pròxim cop",
+ "boost_modal.reblog": "Voleu impulsar la publicació?",
+ "boost_modal.undo_reblog": "Voleu retirar l'impuls a la publicació?",
"bundle_column_error.copy_stacktrace": "Copia l'informe d'error",
"bundle_column_error.error.body": "No s'ha pogut renderitzar la pàgina sol·licitada. Podria ser per un error en el nostre codi o per un problema de compatibilitat del navegador.",
"bundle_column_error.error.title": "Oh, no!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Avís de contingut (opcional)",
"confirmation_modal.cancel": "Cancel·la",
"confirmations.block.confirm": "Bloca",
- "confirmations.cancel_follow_request.confirm": "Retirar la sol·licitud",
- "confirmations.cancel_follow_request.message": "Segur que vols retirar la sol·licitud de seguiment de {name}?",
"confirmations.delete.confirm": "Elimina",
"confirmations.delete.message": "Segur que vols eliminar aquest tut?",
+ "confirmations.delete.title": "Eliminar la publicació?",
"confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
+ "confirmations.delete_list.title": "Eliminar la llista?",
"confirmations.discard_edit_media.confirm": "Descarta",
"confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?",
- "confirmations.domain_block.confirm": "Bloca el servidor",
- "confirmations.domain_block.message": "Segur que vols blocar {domain} del tot? En la majoria dels casos, només amb blocar o silenciar uns pocs comptes n'hi ha prou i és millor. No veuràs el contingut d’aquest domini en cap de les línies de temps ni en les notificacions. S'eliminaran els teus seguidors d’aquest domini.",
"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.logout.confirm": "Tanca la sessió",
"confirmations.logout.message": "Segur que vols tancar la sessió?",
+ "confirmations.logout.title": "Tancar la sessió?",
"confirmations.mute.confirm": "Silencia",
"confirmations.redraft.confirm": "Esborra i reescriu",
"confirmations.redraft.message": "Segur que vols eliminar aquest tut i tornar a escriure'l? Es perdran tots els impulsos i els favorits, i les respostes al tut original quedaran aïllades.",
+ "confirmations.redraft.title": "Esborrar i reescriure la publicació?",
"confirmations.reply.confirm": "Respon",
"confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
+ "confirmations.reply.title": "Sobreescriure la publicació?",
"confirmations.unfollow.confirm": "Deixa de seguir",
"confirmations.unfollow.message": "Segur que vols deixar de seguir {name}?",
+ "confirmations.unfollow.title": "Deixar de seguir l'usuari?",
+ "content_warning.hide": "Amaga la publicació",
+ "content_warning.show": "Mostra-la igualment",
"conversation.delete": "Elimina la conversa",
"conversation.mark_as_read": "Marca com a llegida",
"conversation.open": "Mostra la conversa",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Usa una categoria existent o crea'n una de nova",
"filter_modal.select_filter.title": "Filtra aquest tut",
"filter_modal.title.status": "Filtra un tut",
- "filtered_notifications_banner.mentions": "{count, plural, one {menció} other {mencions}}",
- "filtered_notifications_banner.pending_requests": "Notificacions {count, plural, =0 {de ningú} one {d'una persona} other {de # persones}} que potser coneixes",
+ "filter_warning.matches_filter": "Coincideix amb el filtre “{title}”",
+ "filtered_notifications_banner.pending_requests": "{count, plural, =0 {De ningú} one {D'una persona} other {De # persones}} que potser coneixes",
"filtered_notifications_banner.title": "Notificacions filtrades",
"firehose.all": "Tots",
"firehose.local": "Aquest servidor",
@@ -347,6 +353,14 @@
"hashtag.follow": "Segueix l'etiqueta",
"hashtag.unfollow": "Deixa de seguir l'etiqueta",
"hashtags.and_other": "…i {count, plural, other {# més}}",
+ "hints.profiles.followers_may_be_missing": "Es poden haver perdut seguidors d'aquest perfil.",
+ "hints.profiles.follows_may_be_missing": "Es poden haver perdut seguiments d'aquest perfil.",
+ "hints.profiles.posts_may_be_missing": "Es poden haver perdut algunes publicacions d'aquest perfil.",
+ "hints.profiles.see_more_followers": "Vegeu més seguidors a {domain}",
+ "hints.profiles.see_more_follows": "Vegeu més seguiments a {domain}",
+ "hints.profiles.see_more_posts": "Vegeu més publicacions a {domain}",
+ "hints.threads.replies_may_be_missing": "Es poden haver perdut respostes d'altres servidors.",
+ "hints.threads.see_more": "Vegeu més respostes a {domain}",
"home.column_settings.show_reblogs": "Mostra els impulsos",
"home.column_settings.show_replies": "Mostra les respostes",
"home.hide_announcements": "Amaga els anuncis",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Veure actualitzacions",
"home.pending_critical_update.title": "Actualització de seguretat crítica disponible!",
"home.show_announcements": "Mostra els anuncis",
+ "ignore_notifications_modal.disclaimer": "Mastodon no pot informar els usuaris que heu ignorat notificacions seves.\nIgnorar notificacions no evitarà que se segueixin enviant els missatges.",
+ "ignore_notifications_modal.filter_instead": "Altrament filtra",
+ "ignore_notifications_modal.filter_to_act_users": "Encara podreu acceptar, rebutjar o reportar usuaris",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrar ajuda a evitar potencials confusions",
+ "ignore_notifications_modal.filter_to_review_separately": "Podeu revisar separadament notificacions filtrades",
+ "ignore_notifications_modal.ignore": "Ignora les notificacions",
+ "ignore_notifications_modal.limited_accounts_title": "Voleu ignorar les notificacions dels comptes moderats?",
+ "ignore_notifications_modal.new_accounts_title": "Voleu ignorar les notificacions dels comptes nous?",
+ "ignore_notifications_modal.not_followers_title": "Voleu ignorar les notificacions de qui no us segueix?",
+ "ignore_notifications_modal.not_following_title": "Voleu ignorar les notificacions de qui no seguiu?",
+ "ignore_notifications_modal.private_mentions_title": "Voleu ignorar les notificacions de mencions privades no sol·licitades?",
"interaction_modal.description.favourite": "Amb un compte a Mastodon pots afavorir aquest tut perquè l'autor sàpiga que t'ha agradat i desar-lo per a més endavant.",
"interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre els seus tuts en la teva línia de temps d'Inici.",
"interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquest tut per a compartir-lo amb els teus seguidors.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
"keyboard_shortcuts.up": "Apuja a la llista",
"lightbox.close": "Tanca",
- "lightbox.compress": "Comprimeix el quadre de visualització d’imatge",
- "lightbox.expand": "Amplia el quadre de visualització d’imatge",
"lightbox.next": "Següent",
"lightbox.previous": "Anterior",
+ "lightbox.zoom_in": "Amplia fins a la mida real",
+ "lightbox.zoom_out": "Amplia fins a encabir",
"limited_account_hint.action": "Mostra el perfil de totes maneres",
"limited_account_hint.title": "Aquest perfil l'han amagat els moderadors de {domain}.",
"link_preview.author": "Per {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Les teves llistes",
"load_pending": "{count, plural, one {# element nou} other {# elements nous}}",
"loading_indicator.label": "Es carrega…",
- "media_gallery.toggle_visible": "{number, plural, one {Amaga la imatge} other {Amaga les imatges}}",
+ "media_gallery.hide": "Amaga",
"moved_to_account_banner.text": "El teu compte {disabledAccount} està desactivat perquè l'has mogut a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Amaga de les notificacions",
"mute_modal.hide_options": "Amaga les opcions",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "No veureu publicacions que els esmentin.",
"mute_modal.you_wont_see_posts": "Encara poden veure les vostres publicacions, però no veureu les seves.",
"navigation_bar.about": "Quant a",
+ "navigation_bar.administration": "Administració",
"navigation_bar.advanced_interface": "Obre en la interfície web avançada",
"navigation_bar.blocks": "Usuaris blocats",
"navigation_bar.bookmarks": "Marcadors",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Seguint i seguidors",
"navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Tanca la sessió",
+ "navigation_bar.moderation": "Moderació",
"navigation_bar.mutes": "Usuaris silenciats",
"navigation_bar.opened_in_classic_interface": "Els tuts, comptes i altres pàgines especifiques s'obren per defecte en la interfície web clàssica.",
"navigation_bar.personal": "Personal",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Seguretat",
"not_signed_in_indicator.not_signed_in": "Cal que iniciïs la sessió per a accedir a aquest recurs.",
"notification.admin.report": "{name} ha reportat {target}",
+ "notification.admin.report_account": "{name} ha reportat {count, plural, one {una publicació} other {# publicacions}} de {target} per {category}",
+ "notification.admin.report_account_other": "{name} ha reportat {count, plural, one {una publicació} other {# publicacions}} de {target}",
+ "notification.admin.report_statuses": "{name} ha reportat {target} per {category}",
+ "notification.admin.report_statuses_other": "{name} ha reportat {target}",
"notification.admin.sign_up": "{name} s'ha registrat",
+ "notification.admin.sign_up.name_and_others": "{name} i {count, plural, one {# altre} other {# altres}} s'han registrat",
"notification.favourite": "{name} ha afavorit el teu tut",
+ "notification.favourite.name_and_others_with_link": "{name} i {count, plural, one {# altre} other {# altres}} han afavorit la vostra publicació",
"notification.follow": "{name} et segueix",
+ "notification.follow.name_and_others": "{name} i {count, plural, one {# altre} other {# altres}} us han seguit",
"notification.follow_request": "{name} ha sol·licitat de seguir-te",
- "notification.mention": "{name} t'ha esmentat",
+ "notification.follow_request.name_and_others": "{name} i {count, plural, one {# altre} other {# altres}} han demanat de seguir-vos",
+ "notification.label.mention": "Menció",
+ "notification.label.private_mention": "Menció privada",
+ "notification.label.private_reply": "Resposta en privat",
+ "notification.label.reply": "Resposta",
+ "notification.mention": "Menció",
"notification.moderation-warning.learn_more": "Per a saber-ne més",
"notification.moderation_warning": "Heu rebut un avís de moderació",
"notification.moderation_warning.action_delete_statuses": "S'han eliminat algunes de les vostres publicacions.",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "S'ha limitat el vostre compte.",
"notification.moderation_warning.action_suspend": "S'ha suspès el vostre compte.",
"notification.own_poll": "La teva enquesta ha finalitzat",
- "notification.poll": "Ha finalitzat una enquesta en què has votat",
+ "notification.poll": "Ha finalitzat una enquesta que heu respost",
"notification.reblog": "{name} t'ha impulsat",
+ "notification.reblog.name_and_others_with_link": "{name} i {count, plural, one {# altre} other {# altres}} han impulsat la vostra publicació",
"notification.relationships_severance_event": "S'han perdut les connexions amb {name}",
"notification.relationships_severance_event.account_suspension": "Un administrador de {from} ha suspès {target}; això vol dir que ja no en podreu rebre actualitzacions o interactuar-hi.",
"notification.relationships_severance_event.domain_block": "Un administrador de {from} ha blocat {target}, incloent-hi {followersCount} dels vostres seguidors i {followingCount, plural, one {# compte} other {# comptes}} que seguiu.",
@@ -495,11 +535,27 @@
"notification.status": "{name} acaba de publicar",
"notification.update": "{name} ha editat un tut",
"notification_requests.accept": "Accepta",
+ "notification_requests.accept_multiple": "{count, plural, one {Accepta # petició…} other {Accepta # peticions…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accepta petició} other {Accepta peticions}}",
+ "notification_requests.confirm_accept_multiple.message": "Esteu a punt d'acceptar {count, plural, one {una petició de notificació} other {# peticions de notificació}}. N'esteu segurs de continuar?",
+ "notification_requests.confirm_accept_multiple.title": "Acceptar peticions de notificació?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Descarta petició} other {Descarta peticions}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Esteu a punt de descartar {count, plural, one {una petició de notificació} other {# peticions de notificació}}. No hi {count, plural, one {} other {}} podreu tornar a accedir fàcilment. N'esteu segurs de continuar?",
+ "notification_requests.confirm_dismiss_multiple.title": "Descartar les peticions de notificació?",
"notification_requests.dismiss": "Ignora",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Descarta # petició…} other {Descarta # peticions…}}",
+ "notification_requests.edit_selection": "Edita",
+ "notification_requests.exit_selection": "Fet",
+ "notification_requests.explainer_for_limited_account": "S'han filtrat les notificacions d'aquest compte perquè un moderador l'ha limitat.",
+ "notification_requests.explainer_for_limited_remote_account": "S'han filtrat les notificacions d'aquest compte perquè un moderador ha limitat el compte o el seu servidor.",
+ "notification_requests.maximize": "Maximitza",
+ "notification_requests.minimize_banner": "Minimitza el bàner de notificacions filtrades",
"notification_requests.notifications_from": "Notificacions de {name}",
"notification_requests.title": "Notificacions filtrades",
+ "notification_requests.view": "Mostra les notificacions",
"notifications.clear": "Esborra les notificacions",
"notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?",
+ "notifications.clear_title": "Esborrar les notificacions?",
"notifications.column_settings.admin.report": "Nous informes:",
"notifications.column_settings.admin.sign_up": "Registres nous:",
"notifications.column_settings.alert": "Notificacions d'escriptori",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Les notificacions d’escriptori no estan disponibles perquè prèviament s’ha denegat el permís al navegador",
"notifications.permission_denied_alert": "No es poden activar les notificacions de l'escriptori perquè abans s'ha denegat el permís del navegador",
"notifications.permission_required": "Les notificacions d'escriptori no estan disponibles perquè el permís requerit no ha estat concedit.",
+ "notifications.policy.accept": "Accepta",
+ "notifications.policy.accept_hint": "Mostra a notificacions",
+ "notifications.policy.drop": "Ignora",
+ "notifications.policy.drop_hint": "Envia al buit, no es tornarà a veure mai més",
+ "notifications.policy.filter": "Filtra",
+ "notifications.policy.filter_hint": "Envia a la bústia de notificacions filtrades",
+ "notifications.policy.filter_limited_accounts_hint": "Limitat pels moderadors del servidor",
+ "notifications.policy.filter_limited_accounts_title": "Comptes moderats",
"notifications.policy.filter_new_accounts.hint": "Creat {days, plural, one {ahir} other {durant els # dies passats}}",
"notifications.policy.filter_new_accounts_title": "Comptes nous",
"notifications.policy.filter_not_followers_hint": "Incloent les persones que us segueixen fa menys {days, plural, one {d'un dia} other {de # dies}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Persones que no seguiu",
"notifications.policy.filter_private_mentions_hint": "Filtrat si no és que és en resposta a una menció vostra o si seguiu el remitent",
"notifications.policy.filter_private_mentions_title": "Mencions privades no sol·licitades",
- "notifications.policy.title": "Filtra les notificacions de…",
+ "notifications.policy.title": "Gestiona les notificacions des de…",
"notifications_permission_banner.enable": "Activa les notificacions d’escriptori",
"notifications_permission_banner.how_to_control": "Per a rebre notificacions quan Mastodon no és obert cal activar les notificacions d’escriptori. Pots controlar amb precisió quins tipus d’interaccions generen notificacions d’escriptori després d’activar el botó {icon} de dalt.",
"notifications_permission_banner.title": "No et perdis mai res",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Estàs seguint aquest compte. Per no veure els seus tuts a la teva línia de temps d'Inici, deixa de seguir-lo.",
"report_notification.attached_statuses": "{count, plural, one {{count} tut} other {{count} tuts}} adjunts",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "contingut no permès",
"report_notification.categories.other": "Altres",
+ "report_notification.categories.other_sentence": "altres",
"report_notification.categories.spam": "Brossa",
+ "report_notification.categories.spam_sentence": "brossa",
"report_notification.categories.violation": "Violació de norma",
+ "report_notification.categories.violation_sentence": "violació de normes",
"report_notification.open": "Obre l'informe",
"search.no_recent_searches": "No hi ha cerques recents",
"search.placeholder": "Cerca",
@@ -710,6 +778,7 @@
"status.bookmark": "Marca",
"status.cancel_reblog_private": "Desfés l'impuls",
"status.cannot_reblog": "No es pot impulsar aquest tut",
+ "status.continued_thread": "Continuació del fil",
"status.copy": "Copia l'enllaç al tut",
"status.delete": "Elimina",
"status.detailed_status": "Vista detallada de la conversa",
@@ -718,12 +787,10 @@
"status.edit": "Edita",
"status.edited": "Darrera edició {date}",
"status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}",
- "status.embed": "Incrusta",
+ "status.embed": "Obté el codi encastat",
"status.favourite": "Favorit",
"status.favourites": "{count, plural, one {favorit} other {favorits}}",
"status.filter": "Filtra aquest tut",
- "status.filtered": "Filtrada",
- "status.hide": "Amaga el tut",
"status.history.created": "creat per {name} {date}",
"status.history.edited": "editat per {name} {date}",
"status.load_more": "Carrega'n més",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Encara no ha impulsat ningú aquest tut. Quan algú ho faci, apareixerà aquí.",
"status.redraft": "Esborra i reescriu",
"status.remove_bookmark": "Elimina el marcador",
+ "status.replied_in_thread": "Respost al fil",
"status.replied_to": "En resposta a {name}",
"status.reply": "Respon",
"status.replyAll": "Respon al fil",
"status.report": "Denuncia @{name}",
"status.sensitive_warning": "Contingut sensible",
"status.share": "Comparteix",
- "status.show_filter_reason": "Mostra igualment",
- "status.show_less": "Mostra'n menys",
"status.show_less_all": "Mostra'n menys per a tot",
- "status.show_more": "Mostra'n més",
"status.show_more_all": "Mostra'n més per a tot",
"status.show_original": "Mostra l'original",
"status.title.with_attachments": "{user} ha publicat {attachmentCount, plural, one {un adjunt} other {{attachmentCount} adjunts}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minut restant} other {# minuts restants}}",
"time_remaining.moments": "Moments restants",
"time_remaining.seconds": "{number, plural, one {# segon restant} other {# segons restants}}",
- "timeline_hint.remote_resource_not_displayed": "No es mostren {resource} d'altres servidors.",
- "timeline_hint.resources.followers": "Seguidors",
- "timeline_hint.resources.follows": "Seguiments",
- "timeline_hint.resources.statuses": "Tuts més antics",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} en {days, plural, one {el passat dia} other {els passats {days} dies}}",
"trends.trending_now": "És tendència",
"ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.",
diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json
index c212b53a8b2..bea6e5ceecc 100644
--- a/app/javascript/mastodon/locales/ckb.json
+++ b/app/javascript/mastodon/locales/ckb.json
@@ -11,7 +11,6 @@
"about.not_available": "ئەم زانیاریانە لەسەر ئەم سێرڤەرە بەردەست نەکراون.",
"about.powered_by": "سۆشیال میدیای لامەرکەزی کە لەلایەن {mastodon} ەوە بەهێز دەکرێت",
"about.rules": "یاساکانی سێرڤەر",
- "account.account_note_header": "تێبینی ",
"account.add_or_remove_from_list": "زیادکردن یان سڕینەوە لە پێرستەکان",
"account.badges.bot": "بوت",
"account.badges.group": "گرووپ",
@@ -19,7 +18,6 @@
"account.block_domain": "بلۆکی هەموو شتێک لە {domain}",
"account.block_short": "بلۆک",
"account.blocked": "بلۆککرا",
- "account.browse_more_on_origin_server": "گەڕانی فرەتر لە سەر پرۆفایلی سەرەکی",
"account.cancel_follow_request": "داواکاری فۆڵۆو بکشێنەوە",
"account.copy": "ڕوونووسی بەستەر بۆ توت",
"account.direct": "بە شێوەیەکی تایبەت باسی @{name} بکە",
@@ -35,9 +33,7 @@
"account.follow_back": "فۆڵۆو بکەنەوە",
"account.followers": "شوێنکەوتووان",
"account.followers.empty": "کەسێک شوێن ئەم بەکارهێنەرە نەکەوتووە",
- "account.followers_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}",
"account.following": "بەدوادا",
- "account.following_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}",
"account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.",
"account.go_to_profile": "بڕۆ بۆ پڕۆفایلی",
"account.hide_reblogs": "داشاردنی بووستەکان لە @{name}",
@@ -63,7 +59,6 @@
"account.requested_follow": "{name} داوای کردووە شوێنت بکەوێت",
"account.share": "پرۆفایلی @{name} هاوبەش بکە",
"account.show_reblogs": "پیشاندانی بەرزکردنەوەکان لە @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.unblock": "@{name} لاببە",
"account.unblock_domain": "کردنەوەی دۆمەینی {domain}",
"account.unblock_short": "لابردنی بەربەست",
@@ -161,15 +156,12 @@
"compose_form.spoiler_placeholder": "ئاگادارکردنەوەی ناوەڕۆک (ئیختیاری)",
"confirmation_modal.cancel": "هەڵوەشاندنەوه",
"confirmations.block.confirm": "بلۆک",
- "confirmations.cancel_follow_request.confirm": "داواکاری کشانەوە",
- "confirmations.cancel_follow_request.message": "ئایا دڵنیای کە دەتەوێت داواکارییەکەت بۆ شوێنکەوتنی {ناو} بکشێنیتەوە؟",
"confirmations.delete.confirm": "سڕینەوە",
"confirmations.delete.message": "ئایا دڵنیایت لەوەی دەتەوێت ئەم توتە بسڕیتەوە?",
"confirmations.delete_list.confirm": "سڕینەوە",
"confirmations.delete_list.message": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی ئەم لیستە بسڕیتەوە?",
"confirmations.discard_edit_media.confirm": "ڕەتکردنەوە",
"confirmations.discard_edit_media.message": "گۆڕانکاریت لە وەسف یان پێشبینی میدیادا هەڵنەگیراوە، بەهەر حاڵ فڕێیان بدە؟",
- "confirmations.domain_block.message": "ئایا بەڕاستی، بەڕاستی تۆ دەتەوێت هەموو {domain} بلۆک بکەیت؟ لە زۆربەی حاڵەتەکاندا چەند بلۆکێکی ئامانجدار یان بێدەنگەکان پێویست و پەسەندن. تۆ ناوەڕۆک ێک نابینیت لە دۆمەینەکە لە هیچ هێڵی کاتی گشتی یان ئاگانامەکانت. شوێنکەوتوانی تۆ لەو دۆمەینەوە لادەبرێن.",
"confirmations.edit.confirm": "دەستکاری",
"confirmations.edit.message": "دەستکاری کردنی ئێستا: دەبێتە هۆی نووسینەوەی ئەو پەیامەی، کە ئێستا داتدەڕشت. ئایا دڵنیای، کە دەتەوێت بەردەوام بیت؟",
"confirmations.logout.confirm": "چوونە دەرەوە",
@@ -343,8 +335,6 @@
"keyboard_shortcuts.unfocus": "بۆ دروستکردنی ناوچەی دەق/گەڕان",
"keyboard_shortcuts.up": "بۆ ئەوەی لە لیستەکەدا بڕۆیت",
"lightbox.close": "دابخە",
- "lightbox.compress": "سندوقی نیشاندانی وێنە بپەستێنە",
- "lightbox.expand": "فراوانکردنی سندوقی بینینی وێنە",
"lightbox.next": "داهاتوو",
"lightbox.previous": "پێشوو",
"limited_account_hint.action": "بەهەر حاڵ پڕۆفایلی پیشان بدە",
@@ -363,7 +353,6 @@
"lists.search": "بگەڕێ لەناو ئەو کەسانەی کە شوێنیان کەوتویت",
"lists.subheading": "لیستەکانت",
"load_pending": "{count, plural, one {# بەڕگەی نوێ} other {# بەڕگەی نوێ}}",
- "media_gallery.toggle_visible": "شاردنەوەی {number, plural, one {image} other {images}}",
"moved_to_account_banner.text": "ئەکاونتەکەت {disabledAccount} لە ئێستادا لەکارخراوە چونکە تۆ چوویتە {movedToAccount}.",
"navigation_bar.about": "دەربارە",
"navigation_bar.blocks": "بەکارهێنەرە بلۆککراوەکان",
@@ -392,9 +381,7 @@
"notification.admin.sign_up": "{name} تۆمارکرا",
"notification.follow": "{name} دوای تۆ کەوت",
"notification.follow_request": "{name} داوای کردووە کە شوێنت بکەوێت",
- "notification.mention": "{name} باسی ئێوەی کرد",
"notification.own_poll": "ڕاپرسیەکەت کۆتایی هات",
- "notification.poll": "ڕاپرسییەک کە دەنگی پێداویت کۆتایی هات",
"notification.reblog": "{name} نووسراوەکەتی دووبارە توتاند",
"notification.status": "{name} تازە بڵاوکرایەوە",
"notification.update": "{name} پۆستێکی دەستکاریکرد",
@@ -550,10 +537,7 @@
"status.direct_indicator": "ئاماژەی تایبەت",
"status.edit": "دەستکاری",
"status.edited_x_times": "دەستکاریکراوە {count, plural, one {{count} کات} other {{count} کات}}",
- "status.embed": "نیشتەجێ بکە",
"status.filter": "ئەم پۆستە فلتەر بکە",
- "status.filtered": "پاڵاوتن",
- "status.hide": "شاردنەوەی پۆست",
"status.history.created": "{name} دروستکراوە لە{date}",
"status.history.edited": "{name} دروستکاریکراوە لە{date}",
"status.load_more": "زیاتر بار بکە",
@@ -578,10 +562,7 @@
"status.report": "گوزارشت @{name}",
"status.sensitive_warning": "ناوەڕۆکی هەستیار",
"status.share": "هاوبەشی بکە",
- "status.show_filter_reason": "بە هەر حاڵ نیشان بدە",
- "status.show_less": "کەمتر نیشان بدە",
"status.show_less_all": "هەمووی بچووک بکەوە",
- "status.show_more": "زیاتر نیشان بدە",
"status.show_more_all": "زیاتر نیشان بدە بۆ هەمووی",
"status.show_original": "پیشاندانی شێوهی ڕاستهقینه",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -599,10 +580,6 @@
"time_remaining.minutes": "{number, plural, one {# خولەک} other {# خولەک}} ماوە",
"time_remaining.moments": "کاتی ماوە",
"time_remaining.seconds": "{number, plural, one {# چرکە} other {# چرکە}} ماوە",
- "timeline_hint.remote_resource_not_displayed": "{resource} لە ڕاژەکانی ترەوە پیشان نادرێت.",
- "timeline_hint.resources.followers": "شوێنکەوتوو",
- "timeline_hint.resources.follows": "شوێنکەوتن",
- "timeline_hint.resources.statuses": "نێردراوی کۆن",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "ڕۆژەڤ",
"ui.beforeunload": "ڕەشنووسەکەت لەدەست دەچێت ئەگەر ماستۆدۆن جێ بهێڵیت.",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index be4cce2692a..043061769be 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -1,12 +1,10 @@
{
- "account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Aghjunghje o toglie da e liste",
"account.badges.bot": "Bot",
"account.badges.group": "Gruppu",
"account.block": "Bluccà @{name}",
"account.block_domain": "Piattà u duminiu {domain}",
"account.blocked": "Bluccatu",
- "account.browse_more_on_origin_server": "Vede di più nant'à u prufile uriginale",
"account.cancel_follow_request": "Withdraw follow request",
"account.disable_notifications": "Ùn mi nutificate più quandu @{name} pubblica qualcosa",
"account.domain_blocked": "Duminiu piattatu",
@@ -16,8 +14,6 @@
"account.follow": "Siguità",
"account.followers": "Abbunati",
"account.followers.empty": "Nisunu hè abbunatu à st'utilizatore.",
- "account.followers_counter": "{count, plural, one {{counter} Abbunatu} other {{counter} Abbunati}}",
- "account.following_counter": "{count, plural, one {{counter} Abbunamentu} other {{counter} Abbunamenti}}",
"account.follows.empty": "St'utilizatore ùn seguita nisunu.",
"account.hide_reblogs": "Piattà spartere da @{name}",
"account.link_verified_on": "A prupietà di stu ligame hè stata verificata u {date}",
@@ -32,7 +28,6 @@
"account.requested": "In attesa d'apprubazione. Cliccate per annullà a dumanda",
"account.share": "Sparte u prufile di @{name}",
"account.show_reblogs": "Vede spartere da @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Statutu} other {{counter} Statuti}}",
"account.unblock": "Sbluccà @{name}",
"account.unblock_domain": "Ùn piattà più {domain}",
"account.unendorse": "Ùn fà figurà nant'à u prufilu",
@@ -92,7 +87,6 @@
"confirmations.delete_list.confirm": "Toglie",
"confirmations.delete_list.message": "Site sicuru·a che vulete toglie sta lista?",
"confirmations.discard_edit_media.confirm": "Scartà",
- "confirmations.domain_block.message": "Site veramente sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà. Ùn viderete più nunda da quallà indè e linee pubbliche o e nutificazione. I vostri abbunati da stu duminiu saranu tolti.",
"confirmations.logout.confirm": "Scunnettassi",
"confirmations.logout.message": "Site sicuru·a che vulete scunnettà vi?",
"confirmations.mute.confirm": "Piattà",
@@ -202,8 +196,6 @@
"keyboard_shortcuts.unfocus": "ùn fucalizà più l'area di testu",
"keyboard_shortcuts.up": "cullà indè a lista",
"lightbox.close": "Chjudà",
- "lightbox.compress": "Cumprime a finestra d'affissera di i ritratti",
- "lightbox.expand": "Ingrandà a finestra d'affissera di i ritratti",
"lightbox.next": "Siguente",
"lightbox.previous": "Pricidente",
"lists.account.add": "Aghjunghje à a lista",
@@ -220,7 +212,6 @@
"lists.search": "Circà indè i vostr'abbunamenti",
"lists.subheading": "E vo liste",
"load_pending": "{count, plural, one {# entrata nova} other {# entrate nove}}",
- "media_gallery.toggle_visible": "Piattà {number, plural, one {ritrattu} other {ritratti}}",
"navigation_bar.blocks": "Utilizatori bluccati",
"navigation_bar.bookmarks": "Segnalibri",
"navigation_bar.community_timeline": "Linea pubblica lucale",
@@ -241,9 +232,7 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} v'hà seguitatu",
"notification.follow_request": "{name} vole abbunassi à u vostru contu",
- "notification.mention": "{name} v'hà mintuvatu",
"notification.own_poll": "U vostru scandagliu hè compiu",
- "notification.poll": "Un scandagliu induve avete vutatu hè finitu",
"notification.reblog": "{name} hà spartutu u vostru statutu",
"notification.status": "{name} hà appena pubblicatu",
"notifications.clear": "Purgà e nutificazione",
@@ -328,8 +317,6 @@
"status.delete": "Toglie",
"status.detailed_status": "Vista in ditagliu di a cunversazione",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "Integrà",
- "status.filtered": "Filtratu",
"status.load_more": "Vede di più",
"status.media_hidden": "Media piattata",
"status.mention": "Mintuvà @{name}",
@@ -351,9 +338,7 @@
"status.report": "Palisà @{name}",
"status.sensitive_warning": "Cuntinutu sensibile",
"status.share": "Sparte",
- "status.show_less": "Ripiegà",
"status.show_less_all": "Ripiegà tuttu",
- "status.show_more": "Slibrà",
"status.show_more_all": "Slibrà tuttu",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.unmute_conversation": "Ùn piattà più a cunversazione",
@@ -365,10 +350,6 @@
"time_remaining.minutes": "{number, plural, one {# minuta ferma} other {# minute fermanu}} left",
"time_remaining.moments": "Ci fermanu qualchi mumentu",
"time_remaining.seconds": "{number, plural, one {# siconda ferma} other {# siconde fermanu}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} da l'altri servori ùn so micca affissati·e.",
- "timeline_hint.resources.followers": "Abbunati",
- "timeline_hint.resources.follows": "Abbunamenti",
- "timeline_hint.resources.statuses": "Statuti più anziani",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Tindenze d'avà",
"ui.beforeunload": "A bruttacopia sarà persa s'ellu hè chjosu Mastodon.",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index d8d83ae5fad..b70ff3ee2bf 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -11,7 +11,7 @@
"about.not_available": "Tato informace nebyla zpřístupněna na tomto serveru.",
"about.powered_by": "Decentralizovaná sociální média poháněná {mastodon}",
"about.rules": "Pravidla serveru",
- "account.account_note_header": "Poznámka",
+ "account.account_note_header": "Osobní poznámka",
"account.add_or_remove_from_list": "Přidat nebo odstranit ze seznamů",
"account.badges.bot": "Bot",
"account.badges.group": "Skupina",
@@ -19,8 +19,7 @@
"account.block_domain": "Blokovat doménu {domain}",
"account.block_short": "Zablokovat",
"account.blocked": "Blokovaný",
- "account.browse_more_on_origin_server": "Více na původním profilu",
- "account.cancel_follow_request": "Zrušit žádost o sledování",
+ "account.cancel_follow_request": "Zrušit sledování",
"account.copy": "Kopírovat odkaz na profil",
"account.direct": "Soukromě zmínit @{name}",
"account.disable_notifications": "Přestat mě upozorňovat, když @{name} zveřejní příspěvek",
@@ -35,9 +34,9 @@
"account.follow_back": "Také sledovat",
"account.followers": "Sledující",
"account.followers.empty": "Tohoto uživatele zatím nikdo nesleduje.",
- "account.followers_counter": "{count, plural, one {{counter} Sledující} few {{counter} Sledující} many {{counter} Sledujících} other {{counter} Sledujících}}",
+ "account.followers_counter": "{count, plural, one {{counter} sledující} few {{counter} sledující} many {{counter} sledujících} other {{counter} sledujících}}",
"account.following": "Sledujete",
- "account.following_counter": "{count, plural, one {{counter} Sledovaný} few {{counter} Sledovaní} many {{counter} Sledovaných} other {{counter} Sledovaných}}",
+ "account.following_counter": "{count, plural, one {{counter} sledovaný} few {{counter} sledovaní} many {{counter} sledovaných} other {{counter} sledovaných}}",
"account.follows.empty": "Tento uživatel zatím nikoho nesleduje.",
"account.go_to_profile": "Přejít na profil",
"account.hide_reblogs": "Skrýt boosty od @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} tě požádal o sledování",
"account.share": "Sdílet profil @{name}",
"account.show_reblogs": "Zobrazit boosty od @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Příspěvek} few {{counter} Příspěvky} many {{counter} Příspěvků} other {{counter} Příspěvků}}",
+ "account.statuses_counter": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} many {{counter} příspěvků} other {{counter} příspěvků}}",
"account.unblock": "Odblokovat @{name}",
"account.unblock_domain": "Odblokovat doménu {domain}",
"account.unblock_short": "Odblokovat",
@@ -78,9 +77,9 @@
"admin.dashboard.retention.average": "Průměr",
"admin.dashboard.retention.cohort": "Měsíc registrace",
"admin.dashboard.retention.cohort_size": "Noví uživatelé",
- "admin.impact_report.instance_accounts": "Profily účtů, které by odstranily",
- "admin.impact_report.instance_followers": "Sledovatelé, o které by naši uživatelé přišli",
- "admin.impact_report.instance_follows": "Následovníci jejich uživatelé by ztratili",
+ "admin.impact_report.instance_accounts": "Profily účtů, které by byli odstaněny",
+ "admin.impact_report.instance_followers": "Sledující, o které by naši uživatelé přišli",
+ "admin.impact_report.instance_follows": "Sledující, o které by naši uživatelé přišli",
"admin.impact_report.title": "Shrnutí dopadu",
"alert.rate_limited.message": "Zkuste to prosím znovu po {retry_time, time, medium}.",
"alert.rate_limited.title": "Spojení omezena",
@@ -89,7 +88,7 @@
"announcement.announcement": "Oznámení",
"attachments_list.unprocessed": "(nezpracováno)",
"audio.hide": "Skrýt zvuk",
- "block_modal.remote_users_caveat": "Požádáme server {domain}, aby respektoval vaše rozhodnutí. Úplné dodržování nastavení však není zaručeno, protože některé servery mohou řešit blokování různě. Veřejné příspěvky mohou být stále viditelné pro nepřihlášené uživatele.",
+ "block_modal.remote_users_caveat": "Požádáme server {domain}, aby respektoval vaše rozhodnutí. Úplné dodržování nastavení však není zaručeno, protože některé servery mohou řešit blokování různě. Veřejné příspěvky mohou stále být viditelné pro nepřihlášené uživatele.",
"block_modal.show_less": "Zobrazit méně",
"block_modal.show_more": "Zobrazit více",
"block_modal.they_cant_mention": "Nemůže vás zmiňovat ani sledovat.",
@@ -98,6 +97,8 @@
"block_modal.title": "Zablokovat uživatele?",
"block_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které ho zmiňují.",
"boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}",
+ "boost_modal.reblog": "Boostnout příspěvek?",
+ "boost_modal.undo_reblog": "Zrušit boostování příspěvku?",
"bundle_column_error.copy_stacktrace": "Zkopírovat zprávu o chybě",
"bundle_column_error.error.body": "Požadovanou stránku nelze vykreslit. Může to být způsobeno chybou v našem kódu nebo problémem s kompatibilitou prohlížeče.",
"bundle_column_error.error.title": "Ale ne!",
@@ -169,27 +170,31 @@
"compose_form.spoiler_placeholder": "Upozornění na obsah (nepovinné)",
"confirmation_modal.cancel": "Zrušit",
"confirmations.block.confirm": "Blokovat",
- "confirmations.cancel_follow_request.confirm": "Zrušit žádost",
- "confirmations.cancel_follow_request.message": "Opravdu chcete zrušit svou žádost o sledování {name}?",
"confirmations.delete.confirm": "Smazat",
"confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?",
+ "confirmations.delete.title": "Smazat příspěvek?",
"confirmations.delete_list.confirm": "Smazat",
"confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?",
+ "confirmations.delete_list.title": "Smazat seznam?",
"confirmations.discard_edit_media.confirm": "Zahodit",
"confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?",
- "confirmations.domain_block.confirm": "Blokovat server",
- "confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí blokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.",
"confirmations.edit.confirm": "Upravit",
"confirmations.edit.message": "Editovat teď znamená přepsání zprávy, kterou právě tvoříte. Opravdu chcete pokračovat?",
+ "confirmations.edit.title": "Přepsat příspěvek?",
"confirmations.logout.confirm": "Odhlásit se",
"confirmations.logout.message": "Opravdu se chcete odhlásit?",
+ "confirmations.logout.title": "Odhlásit se?",
"confirmations.mute.confirm": "Skrýt",
"confirmations.redraft.confirm": "Smazat a přepsat",
"confirmations.redraft.message": "Jste si jistí, že chcete odstranit tento příspěvek a vytvořit z něj koncept? Oblíbené a boosty budou ztraceny a odpovědi na původní příspěvek ztratí kontext.",
+ "confirmations.redraft.title": "Smazat a přepracovat příspěvek na koncept?",
"confirmations.reply.confirm": "Odpovědět",
"confirmations.reply.message": "Odpověď přepíše vaši rozepsanou zprávu. Opravdu chcete pokračovat?",
+ "confirmations.reply.title": "Přepsat příspěvek?",
"confirmations.unfollow.confirm": "Přestat sledovat",
"confirmations.unfollow.message": "Opravdu chcete {name} přestat sledovat?",
+ "confirmations.unfollow.title": "Přestat sledovat uživatele?",
+ "content_warning.hide": "Skrýt příspěvek",
"conversation.delete": "Smazat konverzaci",
"conversation.mark_as_read": "Označit jako přečtené",
"conversation.open": "Zobrazit konverzaci",
@@ -197,7 +202,7 @@
"copy_icon_button.copied": "Zkopírováno do schránky",
"copypaste.copied": "Zkopírováno",
"copypaste.copy_to_clipboard": "Zkopírovat do schránky",
- "directory.federated": "Ze známého fedivesmíru",
+ "directory.federated": "Ze známého fediversu",
"directory.local": "Pouze z {domain}",
"directory.new_arrivals": "Nově příchozí",
"directory.recently_active": "Nedávno aktivní",
@@ -213,7 +218,7 @@
"domain_block_modal.block_account_instead": "Raději blokovat @{name}",
"domain_block_modal.they_can_interact_with_old_posts": "Lidé z tohoto serveru mohou interagovat s vašimi starými příspěvky.",
"domain_block_modal.they_cant_follow": "Nikdo z tohoto serveru vás nemůže sledovat.",
- "domain_block_modal.they_wont_know": "Nebude vědět, že je zablokován.",
+ "domain_block_modal.they_wont_know": "Nebude vědět, že je zablokován*a.",
"domain_block_modal.title": "Blokovat doménu?",
"domain_block_modal.you_will_lose_followers": "Všichni vaši sledující z tohoto serveru budou odstraněni.",
"domain_block_modal.you_wont_see_posts": "Neuvidíte příspěvky ani upozornění od uživatelů z tohoto serveru.",
@@ -297,8 +302,6 @@
"filter_modal.select_filter.subtitle": "Použít existující kategorii nebo vytvořit novou kategorii",
"filter_modal.select_filter.title": "Filtrovat tento příspěvek",
"filter_modal.title.status": "Filtrovat příspěvek",
- "filtered_notifications_banner.mentions": "{count, plural, one {zmínka} few {zmínky} many {zmínek} other {zmínek}}",
- "filtered_notifications_banner.pending_requests": "Oznámení od {count, plural, =0 {nikoho} one {jednoho člověka, kterého znáte} few {# lidí, které znáte} many {# lidí, které znáte} other {# lidí, které znáte}}",
"filtered_notifications_banner.title": "Filtrovaná oznámení",
"firehose.all": "Vše",
"firehose.local": "Tento server",
@@ -341,7 +344,7 @@
"hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
"hashtag.column_settings.tag_mode.none": "Žádný z těchto",
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
- "hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} few {{counter} účastníci} other {{counter} účastníků}}",
+ "hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník*ice} few {{counter} účastníci} other {{counter} účastníků}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
"hashtag.follow": "Sledovat hashtag",
@@ -407,13 +410,13 @@
"keyboard_shortcuts.unfocus": "Zrušit zaměření na nový příspěvek/hledání",
"keyboard_shortcuts.up": "Posunout v seznamu nahoru",
"lightbox.close": "Zavřít",
- "lightbox.compress": "Sbalit pole zobrazení obrázku",
- "lightbox.expand": "Rozbalit pole zobrazení obrázku",
"lightbox.next": "Další",
"lightbox.previous": "Předchozí",
"limited_account_hint.action": "Přesto profil zobrazit",
"limited_account_hint.title": "Tento profil byl skryt moderátory {domain}.",
"link_preview.author": "Podle {name}",
+ "link_preview.more_from_author": "Více od {name}",
+ "link_preview.shares": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} many {{counter} příspěvků} other {{counter} příspěvků}}",
"lists.account.add": "Přidat do seznamu",
"lists.account.remove": "Odebrat ze seznamu",
"lists.delete": "Smazat seznam",
@@ -430,7 +433,6 @@
"lists.subheading": "Vaše seznamy",
"load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položek} other {# nových položek}}",
"loading_indicator.label": "Načítání…",
- "media_gallery.toggle_visible": "{number, plural, one {Skrýt obrázek} few {Skrýt obrázky} many {Skrýt obrázky} other {Skrýt obrázky}}",
"moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálně deaktivován, protože jste se přesunul/a na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Skrýt z notifikací",
"mute_modal.hide_options": "Skrýt možnosti",
@@ -438,7 +440,7 @@
"mute_modal.show_options": "Zobrazit možnosti",
"mute_modal.they_can_mention_and_follow": "Mohou vás zmínit a sledovat, ale neuvidíte je.",
"mute_modal.they_wont_know": "Nebudou vědět, že byli skryti.",
- "mute_modal.title": "Ztlumit uživatele?",
+ "mute_modal.title": "Ztlumit uživatele*ku?",
"mute_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které je zmiňují.",
"mute_modal.you_wont_see_posts": "Stále budou moci vidět vaše příspěvky, ale vy jejich neuvidíte.",
"navigation_bar.about": "O aplikaci",
@@ -468,11 +470,12 @@
"navigation_bar.security": "Zabezpečení",
"not_signed_in_indicator.not_signed_in": "Pro přístup k tomuto zdroji se musíte přihlásit.",
"notification.admin.report": "Uživatel {name} nahlásil {target}",
+ "notification.admin.report_statuses": "{name} nahlásil {target} za {category}",
+ "notification.admin.report_statuses_other": "{name} nahlásil {target}",
"notification.admin.sign_up": "Uživatel {name} se zaregistroval",
"notification.favourite": "Uživatel {name} si oblíbil váš příspěvek",
"notification.follow": "Uživatel {name} vás začal sledovat",
"notification.follow_request": "Uživatel {name} požádal o povolení vás sledovat",
- "notification.mention": "Uživatel {name} vás zmínil",
"notification.moderation-warning.learn_more": "Zjistit více",
"notification.moderation_warning": "Obdrželi jste moderační varování",
"notification.moderation_warning.action_delete_statuses": "Některé z vašich příspěvků byly odstraněny.",
@@ -494,10 +497,13 @@
"notification.update": "Uživatel {name} upravil příspěvek",
"notification_requests.accept": "Přijmout",
"notification_requests.dismiss": "Zamítnout",
+ "notification_requests.maximize": "Maximalizovat",
+ "notification_requests.minimize_banner": "Minimalizovat banner filtrovaných oznámení",
"notification_requests.notifications_from": "Oznámení od {name}",
"notification_requests.title": "Vyfiltrovaná oznámení",
"notifications.clear": "Vyčistit oznámení",
"notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?",
+ "notifications.clear_title": "Vyčistit oznámení?",
"notifications.column_settings.admin.report": "Nová hlášení:",
"notifications.column_settings.admin.sign_up": "Nové registrace:",
"notifications.column_settings.alert": "Oznámení na počítači",
@@ -537,7 +543,6 @@
"notifications.policy.filter_not_following_title": "Lidé, které nesledujete",
"notifications.policy.filter_private_mentions_hint": "Vyfiltrováno, pokud to není odpověď na vaši zmínku nebo pokud sledujete odesílatele",
"notifications.policy.filter_private_mentions_title": "Nevyžádané soukromé zmínky",
- "notifications.policy.title": "Vyfiltrovat oznámení od…",
"notifications_permission_banner.enable": "Povolit oznámení na ploše",
"notifications_permission_banner.how_to_control": "Chcete-li dostávat oznámení, i když nemáte Mastodon otevřený, povolte oznámení na ploše. Můžete si zvolit, o kterých druzích interakcí chcete být oznámením na ploše informování pod tlačítkem {icon} výše.",
"notifications_permission_banner.title": "Nenechte si nic uniknout",
@@ -564,8 +569,8 @@
"onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}",
"onboarding.share.next_steps": "Možné další kroky:",
"onboarding.share.title": "Sdílejte svůj profil",
- "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
- "onboarding.start.skip": "Want to skip right ahead?",
+ "onboarding.start.lead": "Nyní jste součástí Mastodonu, unikátní sociální sítě, kde vy - ne algoritmus - vytváří vaše vlastní prožitky. Začněte na této nové sociální platformě:",
+ "onboarding.start.skip": "Nepotřebujete pomoci začít?",
"onboarding.start.title": "Dokázali jste to!",
"onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.",
"onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál",
@@ -579,7 +584,7 @@
"onboarding.tips.accounts_from_other_servers": "Víte, že? Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
"onboarding.tips.migration": "Víte, že? Pokud máte pocit, že {domain} pro vás v budoucnu není vhodnou volbou, můžete se přesunout na jiný Mastodon server, aniž byste přišli o své sledující. Můžete dokonce hostovat svůj vlastní server!",
"onboarding.tips.verification": "Víte, že? Svůj účet můžete ověřit tak, že na své webové stránky umístíte odkaz na váš Mastodon profil a odkaz na stránku přidáte do svého profilu. Nejsou k tomu potřeba žádné poplatky ani dokumenty!",
- "password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální délku hesla",
+ "password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální povolenou délku hesla",
"password_confirmation.mismatching": "Zadaná hesla se neshodují",
"picture_in_picture.restore": "Vrátit zpět",
"poll.closed": "Uzavřeno",
@@ -663,10 +668,14 @@
"report.unfollow": "Přestat sledovat @{name}",
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
"report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
- "report_notification.categories.legal": "Zákonné",
+ "report_notification.categories.legal": "Právní ustanovení",
+ "report_notification.categories.legal_sentence": "nezákonný obsah",
"report_notification.categories.other": "Ostatní",
+ "report_notification.categories.other_sentence": "další",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Porušení pravidla",
+ "report_notification.categories.violation_sentence": "porušení pravidla",
"report_notification.open": "Otevřít hlášení",
"search.no_recent_searches": "Žádná nedávná vyhledávání",
"search.placeholder": "Hledat",
@@ -694,8 +703,11 @@
"server_banner.about_active_users": "Lidé používající tento server během posledních 30 dní (měsíční aktivní uživatelé)",
"server_banner.active_users": "aktivní uživatelé",
"server_banner.administered_by": "Spravováno:",
+ "server_banner.is_one_of_many": "{domain} je jedním z mnoha Mastodon serverů, které můžete použít k účasti na fediversu.",
"server_banner.server_stats": "Statistiky serveru:",
"sign_in_banner.create_account": "Vytvořit účet",
+ "sign_in_banner.follow_anyone": "Sledujte kohokoli napříč fediversem a uvidíte vše v chronologickém pořadí. Bez algoritmů, reklam a clickbaitu.",
+ "sign_in_banner.mastodon_is": "Mastodon je ten nejlepší způsob, jak udržet krok s tím, co se právě děje.",
"sign_in_banner.sign_in": "Přihlásit se",
"sign_in_banner.sso_redirect": "Přihlášení nebo Registrace",
"status.admin_account": "Otevřít moderátorské rozhraní pro @{name}",
@@ -713,12 +725,9 @@
"status.edit": "Upravit",
"status.edited": "Naposledy upraveno {date}",
"status.edited_x_times": "Upraveno {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}",
- "status.embed": "Vložit na web",
"status.favourite": "Oblíbit",
"status.favourites": "{count, plural, one {oblíbený} few {oblíbené} many {oblíbených} other {oblíbených}}",
"status.filter": "Filtrovat tento příspěvek",
- "status.filtered": "Filtrováno",
- "status.hide": "Skrýt příspěvek",
"status.history.created": "Uživatel {name} vytvořil {date}",
"status.history.edited": "Uživatel {name} upravil {date}",
"status.load_more": "Načíst více",
@@ -746,10 +755,7 @@
"status.report": "Nahlásit @{name}",
"status.sensitive_warning": "Citlivý obsah",
"status.share": "Sdílet",
- "status.show_filter_reason": "Přesto zobrazit",
- "status.show_less": "Zobrazit méně",
"status.show_less_all": "Zobrazit méně pro všechny",
- "status.show_more": "Zobrazit více",
"status.show_more_all": "Zobrazit více pro všechny",
"status.show_original": "Zobrazit originál",
"status.title.with_attachments": "{user} zveřejnil {attachmentCount, plural, one {přílohu} few {{attachmentCount} přílohy} many {{attachmentCount} příloh} other {{attachmentCount} příloh}}",
@@ -768,10 +774,6 @@
"time_remaining.minutes": "{number, plural, one {Zbývá # minuta} few {Zbývají # minuty} many {Zbývá # minut} other {Zbývá # minut}}",
"time_remaining.moments": "Zbývá několik sekund",
"time_remaining.seconds": "{number, plural, one {Zbývá # sekunda} few {Zbývají # sekundy} many {Zbývá # sekund} other {Zbývá # sekund}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} z jiných serverů se nezobrazují.",
- "timeline_hint.resources.followers": "Sledující",
- "timeline_hint.resources.follows": "Sledovaní",
- "timeline_hint.resources.statuses": "Starší příspěvky",
"trends.counter_by_accounts": "{count, plural, one {{counter} člověk} few {{counter} lidé} many {{counter} lidí} other {{counter} lidí}} za poslední {days, plural, one {den} few {{days} dny} many {{days} dnů} other {{days} dnů}}",
"trends.trending_now": "Právě populární",
"ui.beforeunload": "Pokud Mastodon opustíte, váš koncept se ztratí.",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 96476b14331..ec93a5b11be 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -1,17 +1,17 @@
{
- "about.blocks": "Gweinyddion sy'n cael eu cymedroli",
+ "about.blocks": "Gweinyddion gyda chymedrolwyr",
"about.contact": "Cysylltwch â:",
"about.disclaimer": "Mae Mastodon yn feddalwedd cod agored rhydd ac o dan hawlfraint Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Nid yw'r rheswm ar gael",
- "about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
+ "about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffedysawd a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
"about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.",
"about.domain_blocks.silenced.title": "Cyfyngedig",
"about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
"about.domain_blocks.suspended.title": "Ataliwyd",
"about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.",
- "about.powered_by": "Cyfrwng cymdeithasol datganoledig sy'n cael ei yrru gan {mastodon}",
+ "about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}",
"about.rules": "Rheolau'r gweinydd",
- "account.account_note_header": "Nodyn",
+ "account.account_note_header": "Nodyn personol",
"account.add_or_remove_from_list": "Ychwanegu neu Ddileu o'r rhestrau",
"account.badges.bot": "Bot",
"account.badges.group": "Grŵp",
@@ -19,7 +19,6 @@
"account.block_domain": "Blocio parth {domain}",
"account.block_short": "Blocio",
"account.blocked": "Blociwyd",
- "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol",
"account.cancel_follow_request": "Tynnu cais i ddilyn",
"account.copy": "Copïo dolen i'r proffil",
"account.direct": "Crybwyll yn breifat @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Dilyn yn ôl",
"account.followers": "Dilynwyr",
"account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
- "account.followers_counter": "{count, plural, one {Dilynwr: {counter}} other {Dilynwyr: {counter}}}",
+ "account.followers_counter": "{count, plural, one {{counter} dilynwr} two {{counter} ddilynwr} other {{counter} dilynwyr}}",
"account.following": "Yn dilyn",
- "account.following_counter": "{count, plural, one {Yn dilyn: {counter}} other {Yn dilyn: {counter}}}",
+ "account.following_counter": "{count, plural, one {Yn dilyn {counter}} other {Yn dilyn {counter}}}",
"account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
"account.go_to_profile": "Mynd i'r proffil",
"account.hide_reblogs": "Cuddio hybiau gan @{name}",
@@ -50,8 +49,8 @@
"account.mention": "Crybwyll @{name}",
"account.moved_to": "Mae {name} wedi nodi fod eu cyfrif newydd yn:",
"account.mute": "Tewi @{name}",
- "account.mute_notifications_short": "Distewi hysbysiadau",
- "account.mute_short": "Tewi",
+ "account.mute_notifications_short": "Diffodd hysbysiadau",
+ "account.mute_short": "Anwybyddu",
"account.muted": "Wedi anwybyddu",
"account.mutual": "Cydgydnabod",
"account.no_bio": "Dim disgrifiad wedi'i gynnig.",
@@ -63,7 +62,7 @@
"account.requested_follow": "Mae {name} wedi gwneud cais i'ch dilyn",
"account.share": "Rhannwch broffil @{name}",
"account.show_reblogs": "Dangos hybiau gan @{name}",
- "account.statuses_counter": "{count, plural, one {Postiad: {counter}} other {Postiad: {counter}}}",
+ "account.statuses_counter": "{count, plural, one {{counter} post} two {{counter} bost} few {{counter} phost} many {{counter} post} other {{counter} post}}",
"account.unblock": "Dadflocio @{name}",
"account.unblock_domain": "Dadflocio parth {domain}",
"account.unblock_short": "Dadflocio",
@@ -95,16 +94,18 @@
"block_modal.they_cant_mention": "Nid ydynt yn gallu eich crybwyll na'ch dilyn.",
"block_modal.they_cant_see_posts": "Nid ydynt yn gallu gweld eich postiadau ac ni fyddwch yn gweld eu rhai hwy.",
"block_modal.they_will_know": "Gallant weld eu bod wedi'u rhwystro.",
- "block_modal.title": "Rhwystro defnyddiwr?",
- "block_modal.you_wont_see_mentions": "Ni welwch bostiadau sy'n sôn amdanynt.",
+ "block_modal.title": "Blocio defnyddiwr?",
+ "block_modal.you_wont_see_mentions": "Fyddwch chi ddim yn gweld postiadau sy'n sôn amdanyn nhw.",
"boost_modal.combo": "Mae modd pwyso {combo} er mwyn hepgor hyn tro nesa",
+ "boost_modal.reblog": "Hybu postiad?",
+ "boost_modal.undo_reblog": "Dad-hybu postiad?",
"bundle_column_error.copy_stacktrace": "Copïo'r adroddiad gwall",
"bundle_column_error.error.body": "Nid oedd modd cynhyrchu'r dudalen honno. Gall fod oherwydd gwall yn ein cod neu fater cydnawsedd porwr.",
"bundle_column_error.error.title": "O na!",
"bundle_column_error.network.body": "Bu gwall wrth geisio llwytho'r dudalen hon. Gall hyn fod oherwydd anhawster dros-dro gyda'ch cysylltiad gwe neu'r gweinydd hwn.",
"bundle_column_error.network.title": "Gwall rhwydwaith",
"bundle_column_error.retry": "Ceisiwch eto",
- "bundle_column_error.return": "Mynd nôl adref",
+ "bundle_column_error.return": "Mynd i'r ffrwd gartref",
"bundle_column_error.routing.body": "Nid oedd modd canfod y dudalen honno. Ydych chi'n siŵr fod yr URL yn y bar cyfeiriad yn gywir?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Cau",
@@ -125,7 +126,7 @@
"column.favourites": "Ffefrynnau",
"column.firehose": "Ffrydiau byw",
"column.follow_requests": "Ceisiadau dilyn",
- "column.home": "Hafan",
+ "column.home": "Cartref",
"column.lists": "Rhestrau",
"column.mutes": "Defnyddwyr wedi'u tewi",
"column.notifications": "Hysbysiadau",
@@ -146,7 +147,7 @@
"compose.language.search": "Chwilio ieithoedd...",
"compose.published.body": "Postiad wedi ei gyhoeddi.",
"compose.published.open": "Agor",
- "compose.saved.body": "Post wedi'i gadw.",
+ "compose.saved.body": "Postiad wedi'i gadw.",
"compose_form.direct_message_warning_learn_more": "Dysgu mwy",
"compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth sensitif dros Mastodon.",
"compose_form.hashtag_warning": "Ni fydd y postiad hwn wedi ei restru o dan unrhyw hashnod gan nad yw'n gyhoeddus. Dim ond postiadau cyhoeddus y mae modd eu chwilio drwy hashnod.",
@@ -167,29 +168,34 @@
"compose_form.spoiler.marked": "Dileu rhybudd cynnwys",
"compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys",
"compose_form.spoiler_placeholder": "Rhybudd cynnwys (dewisol)",
- "confirmation_modal.cancel": "Diddymu",
+ "confirmation_modal.cancel": "Canslo",
"confirmations.block.confirm": "Blocio",
- "confirmations.cancel_follow_request.confirm": "Tynnu'r cais yn ôl",
- "confirmations.cancel_follow_request.message": "Ydych chi'n siŵr eich bod am dynnu'ch cais i ddilyn {name} yn ôl?",
"confirmations.delete.confirm": "Dileu",
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
+ "confirmations.delete.title": "Dileu postiad?",
"confirmations.delete_list.confirm": "Dileu",
"confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu'r rhestr hwn am byth?",
+ "confirmations.delete_list.title": "Dileu rhestr?",
"confirmations.discard_edit_media.confirm": "Dileu",
"confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg - eu dileu beth bynnag?",
- "confirmations.domain_block.confirm": "Rhwystro gweinydd",
- "confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu dewi pobl penodol yn broses mwy effeithiol. Fyddwch chi ddim yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.",
"confirmations.edit.confirm": "Golygu",
"confirmations.edit.message": "Bydd golygu nawr yn trosysgrifennu'r neges rydych yn ei ysgrifennu ar hyn o bryd. Ydych chi'n siŵr eich bod eisiau gwneud hyn?",
+ "confirmations.edit.title": "Trosysgrifo'r postiad?",
"confirmations.logout.confirm": "Allgofnodi",
"confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?",
+ "confirmations.logout.title": "Allgofnodi?",
"confirmations.mute.confirm": "Tewi",
"confirmations.redraft.confirm": "Dileu ac ailddrafftio",
- "confirmations.redraft.message": "Ydych chi'n siŵr eich bod am ddileu'r postiad hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd atebion i'r post gwreiddiol yn mynd yn amddifad.",
+ "confirmations.redraft.message": "Ydych chi wir eisiau'r dileu'r postiad hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd atebion i'r post gwreiddiol yn mynd yn amddifad.",
+ "confirmations.redraft.title": "Dileu & ailddraftio postiad?",
"confirmations.reply.confirm": "Ateb",
"confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n siŵr eich bod am barhau?",
+ "confirmations.reply.title": "Trosysgrifo'r postiad?",
"confirmations.unfollow.confirm": "Dad-ddilyn",
"confirmations.unfollow.message": "Ydych chi'n siŵr eich bod am ddad-ddilyn {name}?",
+ "confirmations.unfollow.title": "Dad-ddilyn defnyddiwr?",
+ "content_warning.hide": "Cuddio'r postiad",
+ "content_warning.show": "Dangos beth bynnag",
"conversation.delete": "Dileu sgwrs",
"conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
"conversation.open": "Gweld sgwrs",
@@ -204,17 +210,17 @@
"disabled_account_banner.account_settings": "Gosodiadau'r cyfrif",
"disabled_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn o bryd.",
"dismissable_banner.community_timeline": "Dyma'r postiadau cyhoeddus diweddaraf gan bobl sydd â chyfrifon ar {domain}.",
- "dismissable_banner.dismiss": "Diddymu",
+ "dismissable_banner.dismiss": "Cau",
"dismissable_banner.explore_links": "Dyma straeon newyddion sy’n cael eu rhannu fwyaf ar y we gymdeithasol heddiw. Mae'r straeon newyddion diweddaraf sy'n cael eu postio gan fwy o unigolion gwahanol yn cael eu graddio'n uwch.",
- "dismissable_banner.explore_statuses": "Mae'r rhain yn bostiadau o bob rhan o'r we gymdeithasol sydd ar gynnydd heddiw. Mae postiadau mwy diweddar sydd â mwy o hybiau a ffefrynu'n cael eu graddio'n uwch.",
+ "dismissable_banner.explore_statuses": "Dyma postiadau o bob gwr o'r we gymdeithasol sy'n derbyn sylw heddiw. Mae postiadau mwy diweddar sydd â mwy o hybiau a ffefrynnau'n cael eu graddio'n uwch.",
"dismissable_banner.explore_tags": "Mae'r rhain yn hashnodau sydd ar gynnydd ar y we gymdeithasol heddiw. Mae hashnodau sy'n cael eu defnyddio gan fwy o unigolion gwahanol yn cael eu graddio'n uwch.",
"dismissable_banner.public_timeline": "Dyma'r postiadau cyhoeddus diweddaraf gan bobl ar y we gymdeithasol y mae pobl ar {domain} yn eu dilyn.",
- "domain_block_modal.block": "Rhwystro gweinydd",
- "domain_block_modal.block_account_instead": "Rhwystro @{name} yn lle hynny",
+ "domain_block_modal.block": "Blocio gweinydd",
+ "domain_block_modal.block_account_instead": "Blocio @{name} yn ei le",
"domain_block_modal.they_can_interact_with_old_posts": "Gall pobl o'r gweinydd hwn ryngweithio â'ch hen bostiadau.",
"domain_block_modal.they_cant_follow": "Ni all neb o'r gweinydd hwn eich dilyn.",
- "domain_block_modal.they_wont_know": "Fyddan nhw ddim yn gwybod eu bod wedi cael eu rhwystro.",
- "domain_block_modal.title": "Rhwystro parth?",
+ "domain_block_modal.they_wont_know": "Fyddan nhw ddim yn gwybod eu bod wedi cael eu blocio.",
+ "domain_block_modal.title": "Blocio parth?",
"domain_block_modal.you_will_lose_followers": "Bydd eich holl ddilynwyr o'r gweinydd hwn yn cael eu tynnu.",
"domain_block_modal.you_wont_see_posts": "Fyddwch chi ddim yn gweld postiadau na hysbysiadau gan ddefnyddwyr ar y gweinydd hwn.",
"domain_pill.activitypub_lets_connect": "Mae'n caniatáu ichi gysylltu a rhyngweithio â phobl nid yn unig ar Mastodon, ond ar draws gwahanol apiau cymdeithasol hefyd.",
@@ -252,17 +258,17 @@
"empty_column.account_timeline": "Dim postiadau yma!",
"empty_column.account_unavailable": "Nid yw'r proffil ar gael",
"empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
- "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel llyfrnodau eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.",
+ "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel nod tudalen eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.",
"empty_column.community": "Mae'r ffrwd lleol yn wag. Beth am ysgrifennu rhywbeth cyhoeddus!",
"empty_column.direct": "Nid oes gennych unrhyw grybwylliadau preifat eto. Pan fyddwch chi'n anfon neu'n derbyn un, bydd yn ymddangos yma.",
- "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.",
- "empty_column.explore_statuses": "Does dim yn trendio ar hyn o bryd. Dewch nôl nes ymlaen!",
- "empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff bostiadau eto. Pan byddwch yn hoffi un, bydd yn ymddangos yma.",
- "empty_column.favourites": "Nid oes unrhyw un wedi hoffi'r postiad hwn eto. Pan fydd rhywun yn gwneud hynny, byddan nhw'n ymddangos yma.",
+ "empty_column.domain_blocks": "Nid oes unrhyw barthau wedi'u blocio eto.",
+ "empty_column.explore_statuses": "Does dim pynciau llosg ar hyn o bryd. Dewch nôl nes ymlaen!",
+ "empty_column.favourited_statuses": "Rydych chi heb ffafrio unrhyw bostiadau eto. Pan byddwch chi'n ffafrio un, bydd yn ymddangos yma.",
+ "empty_column.favourites": "Nid oes unrhyw un wedi ffafrio'r postiad hwn eto. Pan fydd rhywun yn gwneud hynny, byddan nhw'n ymddangos yma.",
"empty_column.follow_requests": "Nid oes gennych unrhyw geisiadau dilyn eto. Pan fyddwch yn derbyn un, byddan nhw'n ymddangos yma.",
"empty_column.followed_tags": "Nid ydych wedi dilyn unrhyw hashnodau eto. Pan fyddwch chi'n gwneud hynny, byddan nhw'n ymddangos yma.",
"empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.",
- "empty_column.home": "Mae eich ffrwd gartref yn wag! Ymwelwch â {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd â defnyddwyr eraill.",
+ "empty_column.home": "Mae eich ffrwd gartref yn wag! Dilynwch fwy o bobl i'w llenwi.",
"empty_column.list": "Does dim yn y rhestr yma eto. Pan fydd aelodau'r rhestr yn cyhoeddi postiad newydd, mi fydd yn ymddangos yma.",
"empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan fyddwch yn creu un, mi fydd yn ymddangos yma.",
"empty_column.mutes": "Nid ydych wedi tewi unrhyw ddefnyddwyr eto.",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëu un newydd",
"filter_modal.select_filter.title": "Hidlo'r postiad hwn",
"filter_modal.title.status": "Hidlo postiad",
- "filtered_notifications_banner.mentions": "{count, plural, one {crybwylliad} other {crybwylliad}}",
- "filtered_notifications_banner.pending_requests": "Hysbysiadau gan {count, plural, =0 {neb} one {un person} other {# person}} efallai y gwyddoch amdanyn nhw",
+ "filter_warning.matches_filter": "Yn cydweddu'r hidlydd “{title}”",
+ "filtered_notifications_banner.pending_requests": "Gan {count, plural, =0 {no one} one {un person} two {# berson} few {# pherson} other {# person}} efallai eich bod yn eu hadnabod",
"filtered_notifications_banner.title": "Hysbysiadau wedi'u hidlo",
"firehose.all": "Popeth",
"firehose.local": "Gweinydd hwn",
@@ -347,25 +353,44 @@
"hashtag.follow": "Dilyn hashnod",
"hashtag.unfollow": "Dad-ddilyn hashnod",
"hashtags.and_other": "…a {count, plural, other {# more}}",
+ "hints.profiles.followers_may_be_missing": "Mae'n bosibl bod dilynwyr y proffil hwn ar goll.",
+ "hints.profiles.follows_may_be_missing": "Mae'n bosibl bod dilynwyr y proffil hwn ar goll.",
+ "hints.profiles.posts_may_be_missing": "Mae'n bosibl bod rhai postiadau y proffil hwn ar goll.",
+ "hints.profiles.see_more_followers": "Gweld mwy o ddilynwyr ar {domain}",
+ "hints.profiles.see_more_follows": "Gweld mwy o 'yn dilyn' ar {domain}",
+ "hints.profiles.see_more_posts": "Gweld mwy o bostiadau ar {domain}",
+ "hints.threads.replies_may_be_missing": "Mae'n bosibl y bydd atebion gan weinyddion eraill ar goll.",
+ "hints.threads.see_more": "Gweld mwy o atebion ar {domain}",
"home.column_settings.show_reblogs": "Dangos hybiau",
"home.column_settings.show_replies": "Dangos atebion",
"home.hide_announcements": "Cuddio cyhoeddiadau",
"home.pending_critical_update.body": "Diweddarwch eich gweinydd Mastodon cyn gynted â phosibl!",
- "home.pending_critical_update.link": "Gweld y diweddariadau",
+ "home.pending_critical_update.link": "Gweld diweddariadau",
"home.pending_critical_update.title": "Mae diweddariad diogelwch hanfodol ar gael!",
"home.show_announcements": "Dangos cyhoeddiadau",
- "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r postiad hwn er mwyn roi gwybod i'r awdur eich bod chi'n ei werthfawrogi ac yn ei gadw ar gyfer nes ymlaen.",
- "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich llif cartref.",
+ "ignore_notifications_modal.disclaimer": "Ni all Mastodon hysbysu defnyddwyr eich bod wedi anwybyddu eu hysbysiadau. Ni fydd anwybyddu hysbysiadau yn atal y negeseuon eu hunain rhag cael eu hanfon.",
+ "ignore_notifications_modal.filter_instead": "Hidlo yn lle hynny",
+ "ignore_notifications_modal.filter_to_act_users": "Byddwch yn dal i allu derbyn, gwrthod neu adrodd ar ddefnyddwyr",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Mae hidlo yn helpu i osgoi dryswch posibl",
+ "ignore_notifications_modal.filter_to_review_separately": "Gallwch adolygu hysbysiadau wedi'u hidlo ar wahân",
+ "ignore_notifications_modal.ignore": "Anwybyddu hysbysiadau",
+ "ignore_notifications_modal.limited_accounts_title": "Anwybyddu hysbysiadau o gyfrifon wedi'u cymedroli?",
+ "ignore_notifications_modal.new_accounts_title": "Anwybyddu hysbysiadau o gyfrifon newydd?",
+ "ignore_notifications_modal.not_followers_title": "Anwybyddu hysbysiadau gan bobl nad ydynt yn eich dilyn?",
+ "ignore_notifications_modal.not_following_title": "Anwybyddu hysbysiadau gan bobl nad ydych yn eu dilyn?",
+ "ignore_notifications_modal.private_mentions_title": "Anwybyddu hysbysiadau o Grybwylliadau Preifat digymell?",
+ "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi ffafrio'r postiad hwn er mwyn roi gwybod i'r awdur eich bod chi'n ei werthfawrogi ac yn ei gadw ar gyfer nes ymlaen.",
+ "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich ffrwd gartref.",
"interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.",
"interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r postiad hwn.",
- "interaction_modal.login.action": "Ewch â fi adref",
+ "interaction_modal.login.action": "Mynd i'm ffrwd gartref",
"interaction_modal.login.prompt": "Parth eich gweinydd cartref, e.e. mastodon.social",
"interaction_modal.no_account_yet": "Dim ar Mastodon?",
"interaction_modal.on_another_server": "Ar weinydd gwahanol",
"interaction_modal.on_this_server": "Ar y gweinydd hwn",
"interaction_modal.sign_in": "Nid ydych wedi mewngofnodi i'r gweinydd hwn. Ble mae eich cyfrif yn cael ei gynnal?",
"interaction_modal.sign_in_hint": "Awgrym: Dyna'r wefan lle gwnaethoch gofrestru. Os nad ydych yn cofio, edrychwch am yr e-bost croeso yn eich blwch derbyn. Gallwch hefyd nodi eich enw defnyddiwr llawn! (e.e. @Mastodon@mastodon.social)",
- "interaction_modal.title.favourite": "Hoffi postiad {name}",
+ "interaction_modal.title.favourite": "Ffafrio postiad {name}",
"interaction_modal.title.follow": "Dilyn {name}",
"interaction_modal.title.reblog": "Hybu postiad {name}",
"interaction_modal.title.reply": "Ymateb i bostiad {name}",
@@ -381,11 +406,11 @@
"keyboard_shortcuts.direct": "i agor colofn crybwylliadau preifat",
"keyboard_shortcuts.down": "Symud lawr yn y rhestr",
"keyboard_shortcuts.enter": "Agor post",
- "keyboard_shortcuts.favourite": "Hoffi postiad",
+ "keyboard_shortcuts.favourite": "Ffafrio postiad",
"keyboard_shortcuts.favourites": "Agor rhestr ffefrynnau",
"keyboard_shortcuts.federated": "Agor ffrwd y ffederasiwn",
"keyboard_shortcuts.heading": "Bysellau brys",
- "keyboard_shortcuts.home": "Agor ffrwd cartref",
+ "keyboard_shortcuts.home": "Agor ffrwd gartref",
"keyboard_shortcuts.hotkey": "Bysell boeth",
"keyboard_shortcuts.legend": "Dangos y rhestr hon",
"keyboard_shortcuts.local": "Agor ffrwd lleol",
@@ -407,19 +432,19 @@
"keyboard_shortcuts.unfocus": "Dad-ffocysu ardal cyfansoddi testun/chwilio",
"keyboard_shortcuts.up": "Symud yn uwch yn y rhestr",
"lightbox.close": "Cau",
- "lightbox.compress": "Cywasgu blwch gweld delwedd",
- "lightbox.expand": "Ehangu blwch gweld delwedd",
"lightbox.next": "Nesaf",
"lightbox.previous": "Blaenorol",
"limited_account_hint.action": "Dangos y proffil beth bynnag",
"limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan gymedrolwyr {domain}.",
"link_preview.author": "Gan {name}",
+ "link_preview.more_from_author": "Mwy gan {name}",
+ "link_preview.shares": "{count, plural, one {{counter} ostiad } two {{counter} bostiad } few {{counter} postiad} many {{counter} postiad} other {{counter} postiad}}",
"lists.account.add": "Ychwanegu at restr",
"lists.account.remove": "Tynnu o'r rhestr",
"lists.delete": "Dileu rhestr",
"lists.edit": "Golygu rhestr",
"lists.edit.submit": "Newid teitl",
- "lists.exclusive": "Cuddiwch y postiadau hyn rhag cartref",
+ "lists.exclusive": "Cuddio'r postiadau hyn o'r ffrwd gartref",
"lists.new.create": "Ychwanegu rhestr",
"lists.new.title_placeholder": "Teitl rhestr newydd",
"lists.replies_policy.followed": "Unrhyw ddefnyddiwr sy'n cael ei ddilyn",
@@ -430,7 +455,7 @@
"lists.subheading": "Eich rhestrau",
"load_pending": "{count, plural, one {# eitem newydd} other {# eitem newydd}}",
"loading_indicator.label": "Yn llwytho…",
- "media_gallery.toggle_visible": "{number, plural, one {Cuddio delwedd} other {Cuddio delwedd}}",
+ "media_gallery.hide": "Cuddio",
"moved_to_account_banner.text": "Ar hyn y bryd, mae eich cyfrif {disabledAccount} wedi ei analluogi am i chi symud i {movedToAccount}.",
"mute_modal.hide_from_notifications": "Cuddio rhag hysbysiadau",
"mute_modal.hide_options": "Cuddio'r dewis",
@@ -442,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "Welwch chi ddim postiadau sy'n sôn amdanyn nhw.",
"mute_modal.you_wont_see_posts": "Gallan nhw weld eich postiadau o hyd, ond fyddwch chi ddim yn gweld eu rhai hwy.",
"navigation_bar.about": "Ynghylch",
+ "navigation_bar.administration": "Gweinyddiaeth",
"navigation_bar.advanced_interface": "Agor mewn rhyngwyneb gwe uwch",
"navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
"navigation_bar.bookmarks": "Nodau Tudalen",
@@ -458,6 +484,7 @@
"navigation_bar.follows_and_followers": "Yn dilyn a dilynwyr",
"navigation_bar.lists": "Rhestrau",
"navigation_bar.logout": "Allgofnodi",
+ "navigation_bar.moderation": "Cymedroil",
"navigation_bar.mutes": "Defnyddwyr wedi'u tewi",
"navigation_bar.opened_in_classic_interface": "Mae postiadau, cyfrifon a thudalennau penodol eraill yn cael eu hagor fel rhagosodiad yn y rhyngwyneb gwe clasurol.",
"navigation_bar.personal": "Personol",
@@ -468,11 +495,23 @@
"navigation_bar.security": "Diogelwch",
"not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
"notification.admin.report": "Adroddwyd ar {name} {target}",
+ "notification.admin.report_account": "{name} reported {count, plural, one {un postiad} other {# postiad}} from {target} for {category}",
+ "notification.admin.report_account_other": "Adroddodd {name} {count, plural, one {un postiad} two {# bostiad} few {# phost} other {# postiad}} gan {target}",
+ "notification.admin.report_statuses": "Adroddodd {name} {target} ar gyfer {category}",
+ "notification.admin.report_statuses_other": "Adroddodd {name} {target}",
"notification.admin.sign_up": "Cofrestrodd {name}",
- "notification.favourite": "Hoffodd {name} eich postiad",
+ "notification.admin.sign_up.name_and_others": "Cofrestrodd {name} {count, plural, one {ac # arall} other {a # eraill}}",
+ "notification.favourite": "Ffafriodd {name} eich postiad",
+ "notification.favourite.name_and_others_with_link": "Ffafriodd {name} a {count, plural, one {# arall} other {# eraill}} eich postiad",
"notification.follow": "Dilynodd {name} chi",
+ "notification.follow.name_and_others": "Mae {name} a {count, plural, one {# other} other {# others}} wedi'ch dilyn chi",
"notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn",
- "notification.mention": "Crybwyllodd {name} amdanoch chi",
+ "notification.follow_request.name_and_others": "Mae {name} a{count, plural, one {# other} other {# others}} wedi gofyn i'ch dilyn chi",
+ "notification.label.mention": "Crybwyll",
+ "notification.label.private_mention": "Crybwyll preifat",
+ "notification.label.private_reply": "Ateb preifat",
+ "notification.label.reply": "Ateb",
+ "notification.mention": "Crybwyll",
"notification.moderation-warning.learn_more": "Dysgu mwy",
"notification.moderation_warning": "Rydych wedi derbyn rhybudd gan gymedrolwr",
"notification.moderation_warning.action_delete_statuses": "Mae rhai o'ch postiadau wedi'u dileu.",
@@ -483,21 +522,38 @@
"notification.moderation_warning.action_silence": "Mae eich cyfrif wedi'i gyfyngu.",
"notification.moderation_warning.action_suspend": "Mae eich cyfrif wedi'i hatal.",
"notification.own_poll": "Mae eich pleidlais wedi dod i ben",
- "notification.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben",
+ "notification.poll": "Mae arolwg y gwnaethoch bleidleisio ynddo wedi dod i ben",
"notification.reblog": "Hybodd {name} eich post",
+ "notification.reblog.name_and_others_with_link": "Mae {name} a {count, plural, one {# other} other {# others}} wedi hybu eich postiad",
"notification.relationships_severance_event": "Wedi colli cysylltiad â {name}",
"notification.relationships_severance_event.account_suspension": "Mae gweinyddwr o {from} wedi atal {target}, sy'n golygu na allwch dderbyn diweddariadau ganddynt mwyach na rhyngweithio â nhw.",
- "notification.relationships_severance_event.domain_block": "Mae gweinyddwr o {from} wedi rhwystro {target}, gan gynnwys {followersCount} o'ch dilynwyr a {followingCount, plural, one {# cyfrif} other {# cyfrif}} arall rydych chi'n ei ddilyn.",
+ "notification.relationships_severance_event.domain_block": "Mae gweinyddwr o {from} wedi blocio {target}, gan gynnwys {followersCount} o'ch dilynwyr a {followingCount, plural, one {# cyfrif} other {# cyfrif}} arall rydych chi'n ei ddilyn.",
"notification.relationships_severance_event.learn_more": "Dysgu mwy",
- "notification.relationships_severance_event.user_domain_block": "Rydych wedi rhwystro {target}, gan ddileu {followersCount} o'ch dilynwyr a {followingCount, plural, one {# cyfrif} other {#cyfrifon}} arall rydych yn ei ddilyn.",
+ "notification.relationships_severance_event.user_domain_block": "Rydych wedi blocio {target}, gan ddileu {followersCount} o'ch dilynwyr a {followingCount, plural, one {# cyfrif} other {#cyfrifon}} arall rydych yn ei ddilyn.",
"notification.status": "{name} newydd ei bostio",
"notification.update": "Golygodd {name} bostiad",
"notification_requests.accept": "Derbyn",
+ "notification_requests.accept_multiple": "{count, plural, one {Accept # request…} other {Accept # requests…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accept request} other {Accept requests}}",
+ "notification_requests.confirm_accept_multiple.message": "Rydych ar fin derbyn {count, plural, one {one notification request} other {# notification requests}}. Ydych chi'n siŵr eich bod am barhau?",
+ "notification_requests.confirm_accept_multiple.title": "Derbyn ceisiadau hysbysu?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Diystyru cais} other {Diystyru ceisiadau}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Rydych ar fin diystyru {count, plural, one {un cais hysbysu} other {# cais hysbysiad}}. Fyddwch chi ddim yn gallu cyrchu {count, plural, one {it} other {them}} yn hawdd eto. Ydych chi'n yn siŵr eich bod am fwrw ymlaen?",
+ "notification_requests.confirm_dismiss_multiple.title": "Diystyru ceisiadau hysbysu?",
"notification_requests.dismiss": "Cau",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Diystyru # cais…} two {Diystyru # gais…} few {Diystyru # chais…} other {Diystyru # cais…}}",
+ "notification_requests.edit_selection": "Golygu",
+ "notification_requests.exit_selection": "Iawn",
+ "notification_requests.explainer_for_limited_account": "Mae hysbysiadau o'r cyfrif hwn wedi'u hidlo oherwydd bod y cyfrif wedi'i gyfyngu gan gymedrolwr.",
+ "notification_requests.explainer_for_limited_remote_account": "Mae hysbysiadau o'r cyfrif hwn wedi'u hidlo oherwydd bod y cyfrif neu ei weinydd wedi'i gyfyngu gan gymedrolwr.",
+ "notification_requests.maximize": "Mwyhau",
+ "notification_requests.minimize_banner": "Lleihau baner hysbysiadau wedi'u hidlo",
"notification_requests.notifications_from": "Hysbysiadau gan {name}",
"notification_requests.title": "Hysbysiadau wedi'u hidlo",
+ "notification_requests.view": "Gweld hysbysiadau",
"notifications.clear": "Clirio hysbysiadau",
"notifications.clear_confirmation": "Ydych chi'n siŵr eich bod am glirio'ch holl hysbysiadau am byth?",
+ "notifications.clear_title": "Clirio hysbysiadau?",
"notifications.column_settings.admin.report": "Adroddiadau newydd:",
"notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:",
"notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
@@ -529,6 +585,14 @@
"notifications.permission_denied": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd cais am ganiatâd porwr a wrthodwyd yn flaenorol",
"notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen",
"notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.",
+ "notifications.policy.accept": "Derbyn",
+ "notifications.policy.accept_hint": "Dangos mewn hysbysiadau",
+ "notifications.policy.drop": "Anwybyddu",
+ "notifications.policy.drop_hint": "Anfon i'r gwagle, byth i'w gweld eto",
+ "notifications.policy.filter": "Hidlo",
+ "notifications.policy.filter_hint": "Anfon i flwch derbyn hysbysiadau wedi'u hidlo",
+ "notifications.policy.filter_limited_accounts_hint": "Cyfyngedig gan gymedrolwyr gweinydd",
+ "notifications.policy.filter_limited_accounts_title": "Cyfrifon wedi'u cymedroli",
"notifications.policy.filter_new_accounts.hint": "Crëwyd o fewn {days, lluosog, un {yr un diwrnod} arall {y # diwrnod}} diwethaf",
"notifications.policy.filter_new_accounts_title": "Cyfrifon newydd",
"notifications.policy.filter_not_followers_hint": "Gan gynnwys pobl sydd wedi bod yn eich dilyn am llai {days, plural, un {nag un diwrnod} arall {na # diwrnod}}",
@@ -537,20 +601,20 @@
"notifications.policy.filter_not_following_title": "Pobl nad ydych yn eu dilyn",
"notifications.policy.filter_private_mentions_hint": "Wedi'i hidlo oni bai ei fod mewn ymateb i'ch crybwylliad eich hun neu os ydych yn dilyn yr anfonwr",
"notifications.policy.filter_private_mentions_title": "Crybwylliadau preifat digymell",
- "notifications.policy.title": "Hidlo hysbysiadau gan…",
+ "notifications.policy.title": "Rheoli hysbysiadau gan…",
"notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith",
"notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddan nhw wedi'u galluogi.",
"notifications_permission_banner.title": "Peidiwch â cholli dim",
- "onboarding.action.back": "Ewch â fi yn ôl",
- "onboarding.actions.back": "Ewch â fi yn ôl",
- "onboarding.actions.go_to_explore": "Gweld beth yw'r tuedd",
- "onboarding.actions.go_to_home": "Ewch i'ch ffrwd gartref",
+ "onboarding.action.back": "Ewch â fi nôl",
+ "onboarding.actions.back": "Ewch â fi nôl",
+ "onboarding.actions.go_to_explore": "Gweld y pynciau llosg",
+ "onboarding.actions.go_to_home": "Ewch i'm ffrwd gartref",
"onboarding.compose.template": "Helo, #Mastodon!",
"onboarding.follows.empty": "Yn anffodus, nid oes modd dangos unrhyw ganlyniadau ar hyn o bryd. Gallwch geisio defnyddio chwilio neu bori'r dudalen archwilio i ddod o hyd i bobl i'w dilyn, neu ceisio eto yn nes ymlaen.",
"onboarding.follows.lead": "Rydych chi'n curadu eich ffrwd gartref eich hun. Po fwyaf o bobl y byddwch chi'n eu dilyn, y mwyaf egnïol a diddorol fydd hi. Gall y proffiliau hyn fod yn fan cychwyn da - gallwch chi bob amser eu dad-ddilyn yn nes ymlaen:",
- "onboarding.follows.title": "Yn boblogaidd ar Mastodon",
+ "onboarding.follows.title": "Personolwch eich ffrwd gartref",
"onboarding.profile.discoverable": "Gwnewch fy mhroffil yn un y gellir ei ddarganfod",
- "onboarding.profile.discoverable_hint": "Pan fyddwch yn optio i mewn i ddarganfodadwyedd ar Mastodon, gall eich postiadau ymddangos mewn canlyniadau chwilio a thueddiadau, ac efallai y bydd eich proffil yn cael ei awgrymu i bobl sydd â diddordebau tebyg i chi.",
+ "onboarding.profile.discoverable_hint": "Pan fyddwch yn optio i mewn i ddarganfodadwyedd ar Mastodon, gall eich postiadau ymddangos mewn canlyniadau chwilio a threndiau, ac efallai y bydd eich proffil yn cael ei awgrymu i bobl sydd â diddordebau tebyg i chi.",
"onboarding.profile.display_name": "Enw dangos",
"onboarding.profile.display_name_hint": "Eich enw llawn neu'ch enw hwyl…",
"onboarding.profile.lead": "Gallwch chi bob amser gwblhau hyn yn ddiweddarach yn y gosodiadau, lle mae hyd yn oed mwy o ddewisiadau cyfaddasu ar gael.",
@@ -568,7 +632,7 @@
"onboarding.start.skip": "Eisiau mynd syth yn eich blaen?",
"onboarding.start.title": "Rydych chi wedi cyrraedd!",
"onboarding.steps.follow_people.body": "Rydych chi'n curadu eich ffrwd eich hun. Gadewch i ni ei lenwi â phobl ddiddorol.",
- "onboarding.steps.follow_people.title": "Dilynwch {count, plural, one {one person} other {# people}}",
+ "onboarding.steps.follow_people.title": "Personolwch eich ffrwd gartref",
"onboarding.steps.publish_status.body": "Dywedwch helo wrth y byd gyda thestun, lluniau, fideos neu arolygon barn {emoji}",
"onboarding.steps.publish_status.title": "Gwnewch eich postiad cyntaf",
"onboarding.steps.setup_profile.body": "Mae eraill yn fwy tebygol o ryngweithio â chi gyda phroffil wedi'i lenwi.",
@@ -593,7 +657,7 @@
"poll_button.add_poll": "Ychwanegu pleidlais",
"poll_button.remove_poll": "Tynnu pleidlais",
"privacy.change": "Addasu preifatrwdd y post",
- "privacy.direct.long": "Pawb sydd â son amdanyn nhw yn y postiad",
+ "privacy.direct.long": "Pawb sydd â sôn amdanyn nhw yn y postiad",
"privacy.direct.short": "Pobl benodol",
"privacy.private.long": "Eich dilynwyr yn unig",
"privacy.private.short": "Dilynwyr",
@@ -607,7 +671,7 @@
"recommended": "Argymhellwyd",
"refresh": "Adnewyddu",
"regeneration_indicator.label": "Yn llwytho…",
- "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
+ "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei pharatoi!",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# diwrnod} other {# diwrnod}} yn ôl",
"relative_time.full.hours": "{number, plural, one {# awr} other {# awr}} yn ôl",
@@ -661,12 +725,16 @@
"report.thanks.title": "Ddim eisiau gweld hwn?",
"report.thanks.title_actionable": "Diolch am adrodd, byddwn yn ymchwilio i hyn.",
"report.unfollow": "Dad-ddilyn @{name}",
- "report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.",
+ "report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich ffrwd gartref mwyach, dad-ddilynwch nhw.",
"report_notification.attached_statuses": "{count, plural, one {{count} postiad} arall {{count} postiad}} atodwyd",
"report_notification.categories.legal": "Cyfreithiol",
+ "report_notification.categories.legal_sentence": "cynnwys anghyfreithlon",
"report_notification.categories.other": "Arall",
+ "report_notification.categories.other_sentence": "arall",
"report_notification.categories.spam": "Sbam",
+ "report_notification.categories.spam_sentence": "sbam",
"report_notification.categories.violation": "Torri rheol",
+ "report_notification.categories.violation_sentence": "torri rheolau",
"report_notification.open": "Agor adroddiad",
"search.no_recent_searches": "Does dim chwiliadau diweddar",
"search.placeholder": "Chwilio",
@@ -694,8 +762,11 @@
"server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)",
"server_banner.active_users": "defnyddwyr gweithredol",
"server_banner.administered_by": "Gweinyddir gan:",
+ "server_banner.is_one_of_many": "Mae {domain} yn un o'r nifer o weinyddion Mastodon annibynnol y gallwch eu defnyddio i gymryd rhan yn y ffedysawd.",
"server_banner.server_stats": "Ystadegau'r gweinydd:",
"sign_in_banner.create_account": "Creu cyfrif",
+ "sign_in_banner.follow_anyone": "Dilynwch unrhyw un ar draws y ffedysawd a gweld y cyfan mewn trefn gronolegol. Dim algorithmau, hysbysebion, na straeon er mwyn cliciadau yn y golwg.",
+ "sign_in_banner.mastodon_is": "Mastodon yw'r ffordd orau o gadw i fyny â'r hyn sy'n digwydd.",
"sign_in_banner.sign_in": "Mewngofnodi",
"sign_in_banner.sso_redirect": "Mewngofnodi neu Gofrestru",
"status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}",
@@ -705,6 +776,7 @@
"status.bookmark": "Llyfrnodi",
"status.cancel_reblog_private": "Dadhybu",
"status.cannot_reblog": "Nid oes modd hybu'r postiad hwn",
+ "status.continued_thread": "Edefyn parhaus",
"status.copy": "Copïo dolen i'r post",
"status.delete": "Dileu",
"status.detailed_status": "Golwg manwl o'r sgwrs",
@@ -713,12 +785,9 @@
"status.edit": "Golygu",
"status.edited": "Golygwyd ddiwethaf {date}",
"status.edited_x_times": "Golygwyd {count, plural, one {count} two {count} other {{count} gwaith}}",
- "status.embed": "Mewnblannu",
- "status.favourite": "Hoffi",
+ "status.favourite": "Ffafrio",
"status.favourites": "{count, plural, one {ffefryn} other {ffefryn}}",
"status.filter": "Hidlo'r postiad hwn",
- "status.filtered": "Wedi'i hidlo",
- "status.hide": "Cuddio'r postiad",
"status.history.created": "Crëwyd gan {name} {date}",
"status.history.edited": "Golygwyd gan {name} {date}",
"status.load_more": "Llwythwch ragor",
@@ -740,16 +809,14 @@
"status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
"status.redraft": "Dileu ac ailddrafftio",
"status.remove_bookmark": "Tynnu nod tudalen",
+ "status.replied_in_thread": "Atebodd mewn edefyn",
"status.replied_to": "Wedi ateb {name}",
"status.reply": "Ateb",
"status.replyAll": "Ateb i edefyn",
"status.report": "Adrodd ar @{name}",
"status.sensitive_warning": "Cynnwys sensitif",
"status.share": "Rhannu",
- "status.show_filter_reason": "Dangos beth bynnag",
- "status.show_less": "Dangos llai",
"status.show_less_all": "Dangos llai i bawb",
- "status.show_more": "Dangos mwy",
"status.show_more_all": "Dangos mwy i bawb",
"status.show_original": "Dangos y gwreiddiol",
"status.title.with_attachments": "Postiodd {user} {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}",
@@ -758,7 +825,7 @@
"status.uncached_media_warning": "Dim rhagolwg ar gael",
"status.unmute_conversation": "Dad-dewi sgwrs",
"status.unpin": "Dadbinio o'r proffil",
- "subscribed_languages.lead": "Dim ond postiadau mewn ieithoedd penodol fydd yn ymddangos yn eich ffrydiau ar ôl y newid. Dewiswch ddim byd i dderbyn postiadau ym mhob iaith.",
+ "subscribed_languages.lead": "Dim ond postiadau mewn ieithoedd penodol fydd yn ymddangos yn eich ffrydiau cartref a rhestr ar ôl y newid. Dewiswch ddim byd i dderbyn postiadau ym mhob iaith.",
"subscribed_languages.save": "Cadw'r newidiadau",
"subscribed_languages.target": "Newid ieithoedd tanysgrifio {target}",
"tabs_bar.home": "Cartref",
@@ -768,12 +835,8 @@
"time_remaining.minutes": "{number, plural, one {# munud} other {# munud}} ar ôl",
"time_remaining.moments": "Munudau yn weddill",
"time_remaining.seconds": "{number, plural, one {# eiliad} other {# eiliad}} ar ôl",
- "timeline_hint.remote_resource_not_displayed": "Nid yw {resource} o weinyddion eraill yn cael ei ddangos.",
- "timeline_hint.resources.followers": "Dilynwyr",
- "timeline_hint.resources.follows": "Yn dilyn",
- "timeline_hint.resources.statuses": "Postiadau hŷn",
"trends.counter_by_accounts": "{count, plural, zero {neb} one {{counter} person} two {{counter} berson} few {{counter} pherson} other {{counter} o bobl}} yn y {days, plural, one {diwrnod diwethaf} two {ddeuddydd diwethaf} other {{days} diwrnod diwethaf}}",
- "trends.trending_now": "Yn trendio nawr",
+ "trends.trending_now": "Pynciau llosg",
"ui.beforeunload": "Byddwch yn colli eich drafft os byddwch yn gadael Mastodon.",
"units.short.billion": "{count}biliwn",
"units.short.million": "{count}miliwn",
@@ -806,7 +869,7 @@
"video.expand": "Ymestyn fideo",
"video.fullscreen": "Sgrin llawn",
"video.hide": "Cuddio fideo",
- "video.mute": "Tewi sain",
+ "video.mute": "Diffodd sain",
"video.pause": "Oedi",
"video.play": "Chwarae",
"video.unmute": "Dad-dewi sain"
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index 5ac7128a375..76752802b0e 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -11,7 +11,7 @@
"about.not_available": "Denne information er ikke blevet gjort tilgængelig på denne server.",
"about.powered_by": "Decentraliserede sociale medier drevet af {mastodon}",
"about.rules": "Serverregler",
- "account.account_note_header": "Note",
+ "account.account_note_header": "Personligt notat",
"account.add_or_remove_from_list": "Tilføj eller fjern fra lister",
"account.badges.bot": "Bot",
"account.badges.group": "Gruppe",
@@ -19,7 +19,6 @@
"account.block_domain": "Blokér domænet {domain}",
"account.block_short": "Bloker",
"account.blocked": "Blokeret",
- "account.browse_more_on_origin_server": "Se mere på den oprindelige profil",
"account.cancel_follow_request": "Annullér anmodning om at følge",
"account.copy": "Kopiér link til profil",
"account.direct": "Privat omtale @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Følg tilbage",
"account.followers": "Følgere",
"account.followers.empty": "Ingen følger denne bruger endnu.",
- "account.followers_counter": "{count, plural, one {{counter} Følger} other {{counter} Følgere}}",
+ "account.followers_counter": "{count, plural, one {{counter} følger} other {{counter} følgere}}",
"account.following": "Følger",
- "account.following_counter": "{count, plural, one {{counter} Følges} other {{counter} Følges}}",
+ "account.following_counter": "{count, plural, one {{counter} følger} other {{counter} følger}}",
"account.follows.empty": "Denne bruger følger ikke nogen endnu.",
"account.go_to_profile": "Gå til profil",
"account.hide_reblogs": "Skjul boosts fra @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} har anmodet om at følge dig",
"account.share": "Del @{name}s profil",
"account.show_reblogs": "Vis fremhævelser fra @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Indlæg} other {{counter} Indlæg}}",
+ "account.statuses_counter": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}",
"account.unblock": "Afblokér @{name}",
"account.unblock_domain": "Afblokér domænet {domain}",
"account.unblock_short": "Afblokér",
@@ -98,6 +97,8 @@
"block_modal.title": "Blokér bruger?",
"block_modal.you_wont_see_mentions": "Du vil ikke se indlæg, som nævner vedkommende.",
"boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang",
+ "boost_modal.reblog": "Boost indlæg?",
+ "boost_modal.undo_reblog": "Fjern boost af indlæg?",
"bundle_column_error.copy_stacktrace": "Kopiér fejlrapport",
"bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.",
"bundle_column_error.error.title": "Åh nej!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Indholdsadvarsel (valgfri)",
"confirmation_modal.cancel": "Afbryd",
"confirmations.block.confirm": "Blokér",
- "confirmations.cancel_follow_request.confirm": "Annullér anmodning",
- "confirmations.cancel_follow_request.message": "Er du sikker på, at anmodningen om at følge {name} skal annulleres?",
"confirmations.delete.confirm": "Slet",
"confirmations.delete.message": "Er du sikker på, at du vil slette dette indlæg?",
+ "confirmations.delete.title": "Slet indlæg?",
"confirmations.delete_list.confirm": "Slet",
"confirmations.delete_list.message": "Er du sikker på, at du vil slette denne liste permanent?",
+ "confirmations.delete_list.title": "Slet liste?",
"confirmations.discard_edit_media.confirm": "Kassér",
"confirmations.discard_edit_media.message": "Der er ugemte ændringer i mediebeskrivelsen eller forhåndsvisningen, kassér dem alligevel?",
- "confirmations.domain_block.confirm": "Blokér server",
- "confirmations.domain_block.message": "Er du fuldstændig sikker på, at du vil blokere hele {domain}-domænet? Oftest vil nogle få målrettede blokeringer eller skjulninger være tilstrækkelige og at foretrække. Du vil ikke se indhold fra dette domæne i nogle offentlige tidslinjer eller i dine notifikationer, og dine følgere herfra fjernes ligeledes.",
"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.logout.confirm": "Log ud",
"confirmations.logout.message": "Er du sikker på, at du vil logge ud?",
+ "confirmations.logout.title": "Log ud?",
"confirmations.mute.confirm": "Skjul (mute)",
"confirmations.redraft.confirm": "Slet og omformulér",
"confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og boosts går tabt, og svar til det oprindelige indlæg mister tilknytningen.",
+ "confirmations.redraft.title": "Slet og omformulér indlæg?",
"confirmations.reply.confirm": "Svar",
"confirmations.reply.message": "Hvis du svarer nu, vil det overskrive den besked, du er ved at skrive. Fortsæt alligevel?",
+ "confirmations.reply.title": "Overskriv indlæg?",
"confirmations.unfollow.confirm": "Følg ikke længere",
"confirmations.unfollow.message": "Er du sikker på, at du ikke længere vil følge {name}?",
+ "confirmations.unfollow.title": "Følg ikke længere bruger?",
+ "content_warning.hide": "Skjul indlæg",
+ "content_warning.show": "Vis alligevel",
"conversation.delete": "Slet samtale",
"conversation.mark_as_read": "Markér som læst",
"conversation.open": "Vis samtale",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Vælg en eksisterende kategori eller opret en ny",
"filter_modal.select_filter.title": "Filtrér dette indlæg",
"filter_modal.title.status": "Filtrér et indlæg",
- "filtered_notifications_banner.mentions": "{count, plural, one {omtale} other {omtaler}}",
- "filtered_notifications_banner.pending_requests": "Notifikationer fra {count, plural, =0 {ingen} one {én person} other {# personer}} du måske kender",
+ "filter_warning.matches_filter": "Matcher filteret “{title}”",
+ "filtered_notifications_banner.pending_requests": "Fra {count, plural, =0 {ingen} one {én person} other {# personer}}, man måske kender",
"filtered_notifications_banner.title": "Filtrerede notifikationer",
"firehose.all": "Alle",
"firehose.local": "Denne server",
@@ -347,6 +353,14 @@
"hashtag.follow": "Følg hashtag",
"hashtag.unfollow": "Stop med at følge hashtag",
"hashtags.and_other": "…og {count, plural, one {}other {# flere}}",
+ "hints.profiles.followers_may_be_missing": "Der kan mangle følgere for denne profil.",
+ "hints.profiles.follows_may_be_missing": "Fulgte kan mangle for denne profil.",
+ "hints.profiles.posts_may_be_missing": "Nogle indlæg kan mangle for denne profil.",
+ "hints.profiles.see_more_followers": "Se flere følgere på {domain}",
+ "hints.profiles.see_more_follows": "Se flere fulgte på {domain}",
+ "hints.profiles.see_more_posts": "Se flere indlæg på {domain}",
+ "hints.threads.replies_may_be_missing": "Der kan mangle svar fra andre servere.",
+ "hints.threads.see_more": "Se flere svar på {domain}",
"home.column_settings.show_reblogs": "Vis boosts",
"home.column_settings.show_replies": "Vis svar",
"home.hide_announcements": "Skjul bekendtgørelser",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Se opdateringer",
"home.pending_critical_update.title": "Kritisk sikkerhedsopdatering tilgængelig!",
"home.show_announcements": "Vis bekendtgørelser",
+ "ignore_notifications_modal.disclaimer": "Mastodon kan ikke informere brugere om, at man har ignoreret deres notifikationer. Ignorerer man notifikationer, forhindrer det ikke selve beskedafsendelsen.",
+ "ignore_notifications_modal.filter_instead": "Filtrer i stedet",
+ "ignore_notifications_modal.filter_to_act_users": "Man vil stadig kunne acceptere, afvise eller anmelde brugere",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering medvirker til at undgå potentiel forvirring",
+ "ignore_notifications_modal.filter_to_review_separately": "Man kan gennemgå filtrerede notifikationer separat",
+ "ignore_notifications_modal.ignore": "Ignorér notifikationer",
+ "ignore_notifications_modal.limited_accounts_title": "Ignorér notifikationer fra modererede konti?",
+ "ignore_notifications_modal.new_accounts_title": "Ignorér notifikationer fra nye konti?",
+ "ignore_notifications_modal.not_followers_title": "Ignorér notifikationer fra folk, som ikke er følgere?",
+ "ignore_notifications_modal.not_following_title": "Ignorér notifikationer fra folk, man ikke følger?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorér notifikationer fra uopfordrede Private omtaler?",
"interaction_modal.description.favourite": "Med en konto på Mastodon kan dette indlæg gøres til favorit for at lade forfatteren vide, at det værdsættes og gemmes til senere.",
"interaction_modal.description.follow": "Med en konto på Mastodon kan du følge {name} for at modtage vedkommendes indlæg i dit hjemmefeed.",
"interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg fremhæves så det deles med egne følgere.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Fjern fokus fra tekstskrivningsområde/søgning",
"keyboard_shortcuts.up": "Flyt opad på listen",
"lightbox.close": "Luk",
- "lightbox.compress": "Komprimér billedvisningsfelt",
- "lightbox.expand": "Udvid billedvisningsfelt",
"lightbox.next": "Næste",
"lightbox.previous": "Forrige",
+ "lightbox.zoom_in": "Zoom til faktisk størrelse",
+ "lightbox.zoom_out": "Zoom for at tilpasse",
"limited_account_hint.action": "Vis profil alligevel",
"limited_account_hint.title": "Denne profil er blevet skjult af {domain}-moderatorerne.",
"link_preview.author": "Af {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Dine lister",
"load_pending": "{count, plural, one {# nyt emne} other {# nye emner}}",
"loading_indicator.label": "Indlæser…",
- "media_gallery.toggle_visible": "{number, plural, one {Skjul billede} other {Skjul billeder}}",
+ "media_gallery.hide": "Skjul",
"moved_to_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret, da du flyttede til {movedToAccount}.",
"mute_modal.hide_from_notifications": "Skjul fra notifikationer",
"mute_modal.hide_options": "Skjul valgmuligheder",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Indlæg, som nævner vedkommende, vises ikke.",
"mute_modal.you_wont_see_posts": "Vedkommende kan stadig se dine indlæg, med vedkommendes vise ikke.",
"navigation_bar.about": "Om",
+ "navigation_bar.administration": "Håndtering",
"navigation_bar.advanced_interface": "Åbn i avanceret webgrænseflade",
"navigation_bar.blocks": "Blokerede brugere",
"navigation_bar.bookmarks": "Bogmærker",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Følges og følgere",
"navigation_bar.lists": "Lister",
"navigation_bar.logout": "Log af",
+ "navigation_bar.moderation": "Moderering",
"navigation_bar.mutes": "Skjulte brugere (mutede)",
"navigation_bar.opened_in_classic_interface": "Indlæg, konti og visse andre sider åbnes som standard i den klassiske webgrænseflade.",
"navigation_bar.personal": "Personlig",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Sikkerhed",
"not_signed_in_indicator.not_signed_in": "Log ind for at tilgå denne ressource.",
"notification.admin.report": "{name} anmeldte {target}",
+ "notification.admin.report_account": "{name} anmeldte {count, plural, one {et indlæg} other {# indlæg}} fra {target} angående {category}",
+ "notification.admin.report_account_other": "{name} anmeldte {count, plural, one {et indlæg} other {# indlæg}} fra {target}",
+ "notification.admin.report_statuses": "{name} anmeldte {target} angående {category}",
+ "notification.admin.report_statuses_other": "{name} anmeldte {target}",
"notification.admin.sign_up": "{name} tilmeldte sig",
+ "notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# anden} other {# andre}} tilmeldte sig",
"notification.favourite": "{name} favoritmarkerede dit indlæg",
+ "notification.favourite.name_and_others_with_link": "{name} og {count, plural, one {# anden} other {# andre}} gjorde dit indlæg til favorit",
"notification.follow": "{name} begyndte at følge dig",
+ "notification.follow.name_and_others": "{name} og {count, plural, one {# anden} other {# andre}} følger dig",
"notification.follow_request": "{name} har anmodet om at følge dig",
- "notification.mention": "{name} nævnte dig",
+ "notification.follow_request.name_and_others": "{name} og {count, plural, one {# anden} other {# andre}} har anmodet om at følger dig",
+ "notification.label.mention": "Omtale",
+ "notification.label.private_mention": "Privat omtale",
+ "notification.label.private_reply": "Privat svar",
+ "notification.label.reply": "Besvar",
+ "notification.mention": "Omtale",
"notification.moderation-warning.learn_more": "Læs mere",
"notification.moderation_warning": "Du er tildelt en moderationsadvarsel",
"notification.moderation_warning.action_delete_statuses": "Nogle af dine indlæg er blevet fjernet.",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "Din konto er blevet begrænset.",
"notification.moderation_warning.action_suspend": "Din konto er suspenderet.",
"notification.own_poll": "Din afstemning er afsluttet",
- "notification.poll": "En afstemning, hvori du stemte, er slut",
+ "notification.poll": "En afstemning, hvori du har stemt, er slut",
"notification.reblog": "{name} boostede dit indlæg",
+ "notification.reblog.name_and_others_with_link": "{name} og {count, plural, one {# anden} other {# andre}} boostede dit indlæg",
"notification.relationships_severance_event": "Mistede forbindelser med {name}",
"notification.relationships_severance_event.account_suspension": "En admin fra {from} har suspenderet {target}, hvofor opdateringer herfra eller interaktion hermed ikke længer er mulig.",
"notification.relationships_severance_event.domain_block": "En admin fra {from} har blokeret {target}, herunder {followersCount} tilhængere og {followingCount, plural, one {# konto, der} other {# konti, som}} følges.",
@@ -495,11 +535,27 @@
"notification.status": "{name} har netop postet",
"notification.update": "{name} redigerede et indlæg",
"notification_requests.accept": "Acceptér",
+ "notification_requests.accept_multiple": "{count, plural, one {Acceptér # anmodning…} other {Acceptér # anmodninger…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Acceptér anmodning} other {Acceptér anmodninger}}",
+ "notification_requests.confirm_accept_multiple.message": "{count, plural, one {En notifikationsanmodning} other {# notifikationsanmodninger}} er ved at blive accepteret. Fortsæt, sikker?",
+ "notification_requests.confirm_accept_multiple.title": "Acceptér notifikationsanmodninger?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Afvis anmodning} other {Afvis anmodninger}}",
+ "notification_requests.confirm_dismiss_multiple.message": "{count, plural, one {En notifikationsanmodning} other {# notifikationsanmodninger}} er ved at blive afvist, hvorfor man ikke nemt vil kunne tilgå {count, plural, one {den} other {dem}} igen. Fortsæt, sikker?",
+ "notification_requests.confirm_dismiss_multiple.title": "Afvis notifikationsanmodninger?",
"notification_requests.dismiss": "Afvis",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Afvis # anmodning…} other {Afvis # anmodninger…}}",
+ "notification_requests.edit_selection": "Redigér",
+ "notification_requests.exit_selection": "Udført",
+ "notification_requests.explainer_for_limited_account": "Notifikationer fra denne konto er blevet filtreret, da kontoen er pålagt restriktioner af en moderator.",
+ "notification_requests.explainer_for_limited_remote_account": "Notifikationer fra denne konto er blevet filtreret, da kontoen eller dens server er pålagt restriktioner af en moderator.",
+ "notification_requests.maximize": "Maksimér",
+ "notification_requests.minimize_banner": "Minimér filtrerede notifikationsbanner",
"notification_requests.notifications_from": "Notifikationer fra {name}",
"notification_requests.title": "Filtrerede notifikationer",
+ "notification_requests.view": "Vis notifikationer",
"notifications.clear": "Ryd notifikationer",
"notifications.clear_confirmation": "Er du sikker på, at du vil rydde alle dine notifikationer permanent?",
+ "notifications.clear_title": "Ryd notifikationer?",
"notifications.column_settings.admin.report": "Nye anmeldelser:",
"notifications.column_settings.admin.sign_up": "Nye tilmeldinger:",
"notifications.column_settings.alert": "Computernotifikationer",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Computernotifikationer er utilgængelige grundet tidligere afvist browsertilladelsesanmodning",
"notifications.permission_denied_alert": "Computernotifikationer kan ikke aktiveres, da browsertilladelse tidligere blev nægtet",
"notifications.permission_required": "Computernotifikationer er utilgængelige, da den krævede tilladelse ikke er tildelt.",
+ "notifications.policy.accept": "Acceptér",
+ "notifications.policy.accept_hint": "Vis notifikationer",
+ "notifications.policy.drop": "Ignorér",
+ "notifications.policy.drop_hint": "Send til intetheden, for aldrig at blive set igen",
+ "notifications.policy.filter": "Filter",
+ "notifications.policy.filter_hint": "Send til filtrerede notifikationsindbakke",
+ "notifications.policy.filter_limited_accounts_hint": "Begrænset af servermoderatorer",
+ "notifications.policy.filter_limited_accounts_title": "Modererede konti",
"notifications.policy.filter_new_accounts.hint": "Oprettet indenfor {days, plural, one {den seneste dag} other {de seneste # dage}}",
"notifications.policy.filter_new_accounts_title": "Ny konti",
"notifications.policy.filter_not_followers_hint": "Inklusiv personer, som har fulgt dig {days, plural, one {mindre end én dag} other {færre end # dage}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Folk, du ikke følger",
"notifications.policy.filter_private_mentions_hint": "Filtreret, medmindre det er i svar på egen omtale, eller hvis afsenderen følges",
"notifications.policy.filter_private_mentions_title": "Uopfordrede private omtaler",
- "notifications.policy.title": "Bortfiltrér notifikationer fra…",
+ "notifications.policy.title": "Håndtér notifikationer fra…",
"notifications_permission_banner.enable": "Aktivér computernotifikationer",
"notifications_permission_banner.how_to_control": "Aktivér computernotifikationer for at få besked, når Mastodon ikke er åben. Når de er aktiveret, kan man via knappen {icon} ovenfor præcist styre, hvilke typer af interaktioner, som genererer computernotifikationer.",
"notifications_permission_banner.title": "Gå aldrig glip af noget",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Du følger denne konto. For ikke længere at se vedkommendes indlæg i dit hjemmefeed, kan du stoppe med at følge dem.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet",
"report_notification.categories.legal": "Juridisk",
+ "report_notification.categories.legal_sentence": "ikke-tilladt indhold",
"report_notification.categories.other": "Andre",
+ "report_notification.categories.other_sentence": "andet",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Regelovertrædelse",
+ "report_notification.categories.violation_sentence": "regelovertrædelse",
"report_notification.open": "Åbn anmeldelse",
"search.no_recent_searches": "Ingen seneste søgninger",
"search.placeholder": "Søg",
@@ -696,8 +764,11 @@
"server_banner.about_active_users": "Folk, som brugte denne server de seneste 30 dage (månedlige aktive brugere)",
"server_banner.active_users": "aktive brugere",
"server_banner.administered_by": "Håndteres af:",
+ "server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, man kan bruge for at deltage i fediverset.",
"server_banner.server_stats": "Serverstatstik:",
"sign_in_banner.create_account": "Opret konto",
+ "sign_in_banner.follow_anyone": "Følg alle på tværs af fediverset og se alt i kronologisk rækkefølge. Ingen algoritmer, annoncer eller clickbait i syne.",
+ "sign_in_banner.mastodon_is": "Mastodon er den bedste måde at holde sig ajour med, hvad der sker.",
"sign_in_banner.sign_in": "Log ind",
"sign_in_banner.sso_redirect": "Log ind eller Tilmeld",
"status.admin_account": "Åbn modereringsbrugerflade for @{name}",
@@ -707,6 +778,7 @@
"status.bookmark": "Bogmærk",
"status.cancel_reblog_private": "Fjern boost",
"status.cannot_reblog": "Dette indlæg kan ikke fremhæves",
+ "status.continued_thread": "Fortsat tråd",
"status.copy": "Kopiér link til indlæg",
"status.delete": "Slet",
"status.detailed_status": "Detaljeret samtalevisning",
@@ -715,12 +787,10 @@
"status.edit": "Redigér",
"status.edited": "Senest redigeret {date}",
"status.edited_x_times": "Redigeret {count, plural, one {{count} gang} other {{count} gange}}",
- "status.embed": "Indlejr",
+ "status.embed": "Hent indlejringskode",
"status.favourite": "Favorit",
"status.favourites": "{count, plural, one {# favorit} other {# favoritter}}",
"status.filter": "Filtrér dette indlæg",
- "status.filtered": "Filtreret",
- "status.hide": "Skjul indlæg",
"status.history.created": "{name} oprettet {date}",
"status.history.edited": "{name} redigeret {date}",
"status.load_more": "Indlæs mere",
@@ -742,16 +812,14 @@
"status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
"status.redraft": "Slet og omformulér",
"status.remove_bookmark": "Fjern bogmærke",
+ "status.replied_in_thread": "Svaret i tråd",
"status.replied_to": "Besvarede {name}",
"status.reply": "Besvar",
"status.replyAll": "Besvar alle",
"status.report": "Anmeld @{name}",
"status.sensitive_warning": "Følsomt indhold",
"status.share": "Del",
- "status.show_filter_reason": "Vis alligevel",
- "status.show_less": "Vis mindre",
"status.show_less_all": "Vis mindre for alle",
- "status.show_more": "Vis mere",
"status.show_more_all": "Vis mere for alle",
"status.show_original": "Vis original",
"status.title.with_attachments": "{user} postede {attachmentCount, plural, one {en vedhæftning} other {{attachmentCount} vedhæftninger}}",
@@ -770,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minut} other {# minutter}} tilbage",
"time_remaining.moments": "Få øjeblikke tilbage",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} tilbage",
- "timeline_hint.remote_resource_not_displayed": "{resource} fra andre servere vises ikke.",
- "timeline_hint.resources.followers": "Følgere",
- "timeline_hint.resources.follows": "Følger",
- "timeline_hint.resources.statuses": "Ældre indlæg",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} {days, plural, one {den seneste dag} other {de seneste {days} dage}}",
"trends.trending_now": "Hot lige nu",
"ui.beforeunload": "Dit udkast går tabt, hvis du lukker Mastodon.",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 86438757a30..1931ce23f14 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -11,7 +11,7 @@
"about.not_available": "Diese Informationen sind auf diesem Server nicht verfügbar.",
"about.powered_by": "Ein dezentralisiertes soziales Netzwerk, angetrieben von {mastodon}",
"about.rules": "Serverregeln",
- "account.account_note_header": "Notiz",
+ "account.account_note_header": "Persönliche Notiz",
"account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen",
"account.badges.bot": "Automatisiert",
"account.badges.group": "Gruppe",
@@ -19,7 +19,6 @@
"account.block_domain": "{domain} sperren",
"account.block_short": "Blockieren",
"account.blocked": "Blockiert",
- "account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen",
"account.cancel_follow_request": "Folgeanfrage zurückziehen",
"account.copy": "Link zum Profil kopieren",
"account.direct": "@{name} privat erwähnen",
@@ -97,7 +96,9 @@
"block_modal.they_will_know": "Es wird erkennbar sein, dass dieses Profil blockiert wurde.",
"block_modal.title": "Profil blockieren?",
"block_modal.you_wont_see_mentions": "Du wirst keine Beiträge sehen, die dieses Profil erwähnen.",
- "boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt",
+ "boost_modal.combo": "Mit {combo} erscheint dieses Fenster beim nächsten Mal nicht mehr",
+ "boost_modal.reblog": "Beitrag teilen?",
+ "boost_modal.undo_reblog": "Beitrag nicht mehr teilen?",
"bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren",
"bundle_column_error.error.body": "Die angeforderte Seite konnte nicht dargestellt werden. Dies könnte auf einen Fehler in unserem Code oder auf ein Browser-Kompatibilitätsproblem zurückzuführen sein.",
"bundle_column_error.error.title": "Oh nein!",
@@ -154,7 +155,7 @@
"compose_form.lock_disclaimer.lock": "geschützt",
"compose_form.placeholder": "Was gibt’s Neues?",
"compose_form.poll.duration": "Umfragedauer",
- "compose_form.poll.multiple": "Multiple-Choice",
+ "compose_form.poll.multiple": "Mehrfachauswahl",
"compose_form.poll.option_placeholder": "Option {number}",
"compose_form.poll.single": "Einfachauswahl",
"compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Inhaltswarnung (optional)",
"confirmation_modal.cancel": "Abbrechen",
"confirmations.block.confirm": "Blockieren",
- "confirmations.cancel_follow_request.confirm": "Anfrage zurückziehen",
- "confirmations.cancel_follow_request.message": "Möchtest du deine Anfrage, {name} zu folgen, wirklich zurückziehen?",
"confirmations.delete.confirm": "Löschen",
"confirmations.delete.message": "Möchtest du diesen Beitrag wirklich löschen?",
+ "confirmations.delete.title": "Beitrag löschen?",
"confirmations.delete_list.confirm": "Löschen",
"confirmations.delete_list.message": "Möchtest du diese Liste für immer löschen?",
+ "confirmations.delete_list.title": "Liste löschen?",
"confirmations.discard_edit_media.confirm": "Verwerfen",
"confirmations.discard_edit_media.message": "Du hast Änderungen an der Medienbeschreibung oder -vorschau vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?",
- "confirmations.domain_block.confirm": "Server blockieren",
- "confirmations.domain_block.message": "Möchtest du die gesamte Domain {domain} wirklich blockieren? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
"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.logout.confirm": "Abmelden",
"confirmations.logout.message": "Möchtest du dich wirklich abmelden?",
+ "confirmations.logout.title": "Abmelden?",
"confirmations.mute.confirm": "Stummschalten",
"confirmations.redraft.confirm": "Löschen und neu erstellen",
- "confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Favoriten und geteilte Beiträge gehen verloren, und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.",
+ "confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Alle Favoriten sowie die bisher geteilten Beiträge werden verloren gehen und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.",
+ "confirmations.redraft.title": "Beitrag löschen und neu erstellen?",
"confirmations.reply.confirm": "Antworten",
"confirmations.reply.message": "Wenn du jetzt darauf antwortest, wird der andere Beitrag, an dem du gerade geschrieben hast, verworfen. Möchtest du wirklich fortfahren?",
+ "confirmations.reply.title": "Beitrag überschreiben?",
"confirmations.unfollow.confirm": "Entfolgen",
"confirmations.unfollow.message": "Möchtest du {name} wirklich entfolgen?",
+ "confirmations.unfollow.title": "Profil entfolgen?",
+ "content_warning.hide": "Beitrag ausblenden",
+ "content_warning.show": "Trotzdem anzeigen",
"conversation.delete": "Unterhaltung löschen",
"conversation.mark_as_read": "Als gelesen markieren",
"conversation.open": "Unterhaltung anzeigen",
@@ -205,10 +211,10 @@
"disabled_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert.",
"dismissable_banner.community_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen, deren Konten von {domain} verwaltet werden.",
"dismissable_banner.dismiss": "Ablehnen",
- "dismissable_banner.explore_links": "Diese Nachrichten werden heute am häufigsten im sozialen Netzwerk geteilt. Neuere Nachrichten, die von vielen verschiedenen Profilen veröffentlicht wurden, werden höher eingestuft.",
- "dismissable_banner.explore_statuses": "Diese Beiträge stammen aus dem gesamten sozialen Netzwerk und gewinnen derzeit an Reichweite. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, werden höher eingestuft.",
- "dismissable_banner.explore_tags": "Das sind Hashtags, die derzeit an Reichweite gewinnen. Hashtags, die von vielen verschiedenen Profilen verwendet werden, werden höher eingestuft.",
- "dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im sozialen Netzwerk, denen Leute auf {domain} folgen.",
+ "dismissable_banner.explore_links": "Diese Nachrichten werden heute am häufigsten im Social Web geteilt. Neuere Nachrichten, die von vielen verschiedenen Profilen geteilt wurden, erscheinen weiter oben.",
+ "dismissable_banner.explore_statuses": "Diese Beiträge sind heute im Social Web sehr beliebt. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, erscheinen weiter oben.",
+ "dismissable_banner.explore_tags": "Diese Hashtags sind heute im Social Web sehr beliebt. Hashtags, die von vielen verschiedenen Profilen verwendet werden, erscheinen weiter oben.",
+ "dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im Social Web, denen Leute auf {domain} folgen.",
"domain_block_modal.block": "Server blockieren",
"domain_block_modal.block_account_instead": "Stattdessen @{name} blockieren",
"domain_block_modal.they_can_interact_with_old_posts": "Profile von diesem Server werden mit deinen älteren Beiträgen interagieren können.",
@@ -230,7 +236,7 @@
"domain_pill.your_handle": "Deine Adresse:",
"domain_pill.your_server": "Dein digitales Zuhause. Hier „leben“ alle Beiträge von dir. Dir gefällt es hier nicht? Du kannst jederzeit den Server wechseln und ebenso deine Follower übertragen.",
"domain_pill.your_username": "Deine eindeutige Identität auf diesem Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.",
- "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.",
+ "embed.instructions": "Du kannst diesen Beitrag auf deiner Website einbetten, indem du den nachfolgenden Code kopierst.",
"embed.preview": "Vorschau:",
"emoji_button.activity": "Aktivitäten",
"emoji_button.clear": "Leeren",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Einem vorhandenen Filter hinzufügen oder einen neuen erstellen",
"filter_modal.select_filter.title": "Diesen Beitrag filtern",
"filter_modal.title.status": "Beitrag per Filter ausblenden",
- "filtered_notifications_banner.mentions": "{count, plural, one {Erwähnung} other {Erwähnungen}}",
- "filtered_notifications_banner.pending_requests": "Benachrichtigungen von {count, plural, =0 {keinem Profil, das du möglicherweise kennst} one {einem Profil, das du möglicherweise kennst} other {# Profilen, die du möglicherweise kennst}}",
+ "filter_warning.matches_filter": "Übereinstimmend mit dem Filter „{title}“",
+ "filtered_notifications_banner.pending_requests": "Von {count, plural, =0 {keinem, den} one {einer Person, die} other {# Personen, die}} du möglicherweise kennst",
"filtered_notifications_banner.title": "Gefilterte Benachrichtigungen",
"firehose.all": "Alles",
"firehose.local": "Dieser Server",
@@ -347,6 +353,14 @@
"hashtag.follow": "Hashtag folgen",
"hashtag.unfollow": "Hashtag entfolgen",
"hashtags.and_other": "… und {count, plural, one{# weiterer} other {# weitere}}",
+ "hints.profiles.followers_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle Follower angezeigt.",
+ "hints.profiles.follows_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle gefolgten Profile angezeigt.",
+ "hints.profiles.posts_may_be_missing": "Möglicherweise werden nicht alle Beiträge von diesem Profil angezeigt.",
+ "hints.profiles.see_more_followers": "Weitere Follower auf {domain} ansehen",
+ "hints.profiles.see_more_follows": "Weitere gefolgte Profile auf {domain} ansehen",
+ "hints.profiles.see_more_posts": "Weitere Beiträge auf {domain} ansehen",
+ "hints.threads.replies_may_be_missing": "Möglicherweise werden nicht alle Antworten von anderen Servern angezeigt.",
+ "hints.threads.see_more": "Weitere Antworten auf {domain} ansehen",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen",
"home.hide_announcements": "Ankündigungen ausblenden",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Updates ansehen",
"home.pending_critical_update.title": "Kritisches Sicherheitsupdate verfügbar!",
"home.show_announcements": "Ankündigungen anzeigen",
+ "ignore_notifications_modal.disclaimer": "Mastodon kann anderen Nutzer*innen nicht mitteilen, dass du deren Benachrichtigungen ignorierst. Das Ignorieren von Benachrichtigungen wird nicht das Absenden der Nachricht selbst unterbinden.",
+ "ignore_notifications_modal.filter_instead": "Stattdessen filtern",
+ "ignore_notifications_modal.filter_to_act_users": "Du wirst weiterhin die Möglichkeit haben, andere Nutzer*innen zu genehmigen, abzulehnen oder zu melden",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtern hilft, mögliches Durcheinander zu vermeiden",
+ "ignore_notifications_modal.filter_to_review_separately": "Gefilterte Benachrichtigungen können separat überprüft werden",
+ "ignore_notifications_modal.ignore": "Benachrichtigungen ignorieren",
+ "ignore_notifications_modal.limited_accounts_title": "Benachrichtigungen von moderierten Konten ignorieren?",
+ "ignore_notifications_modal.new_accounts_title": "Benachrichtigungen von neuen Konten ignorieren?",
+ "ignore_notifications_modal.not_followers_title": "Benachrichtigungen von Profilen ignorieren, die dir nicht folgen?",
+ "ignore_notifications_modal.not_following_title": "Benachrichtigungen von Profilen ignorieren, denen du nicht folgst?",
+ "ignore_notifications_modal.private_mentions_title": "Benachrichtigungen von unerwünschten privaten Erwähnungen ignorieren?",
"interaction_modal.description.favourite": "Mit einem Mastodon-Konto kannst du diesen Beitrag favorisieren, um deine Wertschätzung auszudrücken, und ihn für einen späteren Zeitpunkt speichern.",
"interaction_modal.description.follow": "Mit einem Mastodon-Konto kannst du {name} folgen, um die Beiträge auf deiner Startseite zu sehen.",
"interaction_modal.description.reblog": "Mit einem Mastodon-Konto kannst du die Reichweite dieses Beitrags erhöhen, indem du ihn mit deinen Followern teilst.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Eingabefeld/Suche nicht mehr fokussieren",
"keyboard_shortcuts.up": "Ansicht nach oben bewegen",
"lightbox.close": "Schließen",
- "lightbox.compress": "Bildansicht verkleinern",
- "lightbox.expand": "Bildansicht vergrößern",
"lightbox.next": "Vor",
"lightbox.previous": "Zurück",
+ "lightbox.zoom_in": "In Originalgröße anzeigen",
+ "lightbox.zoom_out": "In angepasster Größe anzeigen",
"limited_account_hint.action": "Profil trotzdem anzeigen",
"limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen von {domain} ausgeblendet.",
"link_preview.author": "Von {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Deine Listen",
"load_pending": "{count, plural, one {# neuer Beitrag} other {# neue Beiträge}}",
"loading_indicator.label": "Wird geladen …",
- "media_gallery.toggle_visible": "{number, plural, one {Medium ausblenden} other {Medien ausblenden}}",
+ "media_gallery.hide": "Ausblenden",
"moved_to_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert, weil du zu {movedToAccount} umgezogen bist.",
"mute_modal.hide_from_notifications": "Benachrichtigungen ausblenden",
"mute_modal.hide_options": "Einstellungen ausblenden",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Du wirst keine Beiträge sehen, die dieses Profil erwähnen.",
"mute_modal.you_wont_see_posts": "Deine Beiträge können weiterhin angesehen werden, aber du wirst deren Beiträge nicht mehr sehen.",
"navigation_bar.about": "Über",
+ "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Im erweiterten Webinterface öffnen",
"navigation_bar.blocks": "Blockierte Profile",
"navigation_bar.bookmarks": "Lesezeichen",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Follower und Folge ich",
"navigation_bar.lists": "Listen",
"navigation_bar.logout": "Abmelden",
+ "navigation_bar.moderation": "Moderation",
"navigation_bar.mutes": "Stummgeschaltete Profile",
"navigation_bar.opened_in_classic_interface": "Beiträge, Konten und andere bestimmte Seiten werden standardmäßig im klassischen Webinterface geöffnet.",
"navigation_bar.personal": "Persönlich",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Sicherheit",
"not_signed_in_indicator.not_signed_in": "Du musst dich anmelden, um auf diesen Inhalt zugreifen zu können.",
"notification.admin.report": "{name} meldete {target}",
+ "notification.admin.report_account": "{name} meldete {count, plural, one {einen Beitrag} other {# Beiträge}} von {target} wegen {category}",
+ "notification.admin.report_account_other": "{name} meldete {count, plural, one {einen Beitrag} other {# Beiträge}} von {target}",
+ "notification.admin.report_statuses": "{name} meldete {target} wegen {category}",
+ "notification.admin.report_statuses_other": "{name} meldete {target}",
"notification.admin.sign_up": "{name} registrierte sich",
+ "notification.admin.sign_up.name_and_others": "{name} und {count, plural, one {# weitere Person} other {# weitere Personen}} registrierten sich",
"notification.favourite": "{name} favorisierte deinen Beitrag",
+ "notification.favourite.name_and_others_with_link": "{name} und {count, plural, one {# weitere Person} other {# weitere Personen}} favorisierten deinen Beitrag",
"notification.follow": "{name} folgt dir",
+ "notification.follow.name_and_others": "{name} und {count, plural, one {# weitere Person} other {# weitere Personen}} folgen dir",
"notification.follow_request": "{name} möchte dir folgen",
- "notification.mention": "{name} erwähnte dich",
+ "notification.follow_request.name_and_others": "{name} und {count, plural, one {# weitere Person} other {# weitere Personen}} möchten dir folgen",
+ "notification.label.mention": "Erwähnung",
+ "notification.label.private_mention": "Private Erwähnung",
+ "notification.label.private_reply": "Private Antwort",
+ "notification.label.reply": "Antwort",
+ "notification.mention": "Erwähnung",
"notification.moderation-warning.learn_more": "Mehr erfahren",
"notification.moderation_warning": "Du wurdest von den Moderator*innen verwarnt",
"notification.moderation_warning.action_delete_statuses": "Einige deiner Beiträge sind entfernt worden.",
@@ -487,6 +526,7 @@
"notification.own_poll": "Deine Umfrage ist beendet",
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
"notification.reblog": "{name} teilte deinen Beitrag",
+ "notification.reblog.name_and_others_with_link": "{name} und {count, plural, one {# weitere Person} other {# weitere Personen}} teilten deinen Beitrag",
"notification.relationships_severance_event": "Verbindungen mit {name} verloren",
"notification.relationships_severance_event.account_suspension": "Ein Admin von {from} hat {target} gesperrt. Du wirst von diesem Profil keine Updates mehr erhalten und auch nicht mit ihm interagieren können.",
"notification.relationships_severance_event.domain_block": "Ein Admin von {from} hat {target} blockiert – darunter {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst.",
@@ -494,12 +534,28 @@
"notification.relationships_severance_event.user_domain_block": "Du hast {target} blockiert – {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst, wurden entfernt.",
"notification.status": "{name} hat gerade etwas gepostet",
"notification.update": "{name} bearbeitete einen Beitrag",
- "notification_requests.accept": "Akzeptieren",
+ "notification_requests.accept": "Genehmigen",
+ "notification_requests.accept_multiple": "{count, plural, one {# Anfrage genehmigen …} other {# Anfragen genehmigen …}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Anfrage genehmigen} other {Anfragen genehmigen}}",
+ "notification_requests.confirm_accept_multiple.message": "Du bist dabei, {{count, plural, one {eine Benachrichtigungsanfrage} other {# Benachrichtigungsanfragen}} zu genehmigen. Möchtest du wirklich fortfahren?",
+ "notification_requests.confirm_accept_multiple.title": "Benachrichtigungsanfragen genehmigen?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Anfrage ablehnen} other {Anfragen ablehnen}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Du bist dabei, {count, plural, one {eine Benachrichtigungsanfrage} other {# Benachrichtigungsanfragen}} abzulehnen. Du wirst nicht mehr ohne Weiteres auf {count, plural, one {sie} other {sie}} zugreifen können. Möchtest du wirklich fortfahren?",
+ "notification_requests.confirm_dismiss_multiple.title": "Benachrichtigungsanfragen ablehnen?",
"notification_requests.dismiss": "Ablehnen",
+ "notification_requests.dismiss_multiple": "{count, plural, one {# Anfrage ablehnen …} other {# Anfragen ablehnen …}}",
+ "notification_requests.edit_selection": "Bearbeiten",
+ "notification_requests.exit_selection": "Fertig",
+ "notification_requests.explainer_for_limited_account": "Benachrichtigungen von diesem Konto wurden gefiltert, weil es durch Moderator*innen eingeschränkt wurde.",
+ "notification_requests.explainer_for_limited_remote_account": "Benachrichtigungen von diesem Konto wurden gefiltert, weil deren Konto oder Server durch Moderator*innen eingeschränkt wurde.",
+ "notification_requests.maximize": "Maximieren",
+ "notification_requests.minimize_banner": "Banner für gefilterte Benachrichtigungen minimieren",
"notification_requests.notifications_from": "Benachrichtigungen von {name}",
"notification_requests.title": "Gefilterte Benachrichtigungen",
+ "notification_requests.view": "Benachrichtigungen anzeigen",
"notifications.clear": "Benachrichtigungen löschen",
"notifications.clear_confirmation": "Möchtest du wirklich alle Benachrichtigungen für immer löschen?",
+ "notifications.clear_title": "Benachrichtigungen löschen?",
"notifications.column_settings.admin.report": "Neue Meldungen:",
"notifications.column_settings.admin.sign_up": "Neue Registrierungen:",
"notifications.column_settings.alert": "Desktop-Benachrichtigungen",
@@ -531,15 +587,23 @@
"notifications.permission_denied": "Desktop-Benachrichtigungen können aufgrund einer zuvor verweigerten Berechtigung nicht aktiviert werden",
"notifications.permission_denied_alert": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Browser-Berechtigung zuvor verweigert wurde",
"notifications.permission_required": "Desktop-Benachrichtigungen sind nicht verfügbar, da die erforderliche Berechtigung nicht erteilt wurde.",
+ "notifications.policy.accept": "Akzeptieren",
+ "notifications.policy.accept_hint": "In Benachrichtigungen anzeigen",
+ "notifications.policy.drop": "Ignorieren",
+ "notifications.policy.drop_hint": "In die Leere senden und nie wieder sehen",
+ "notifications.policy.filter": "Filtern",
+ "notifications.policy.filter_hint": "An gefilterte Benachrichtigungen im Posteingang senden",
+ "notifications.policy.filter_limited_accounts_hint": "Durch Server-Moderator*innen eingeschränkt",
+ "notifications.policy.filter_limited_accounts_title": "Moderierte Konten",
"notifications.policy.filter_new_accounts.hint": "Innerhalb {days, plural, one {des letzten Tages} other {der letzten # Tagen}} erstellt",
"notifications.policy.filter_new_accounts_title": "Neuen Konten",
"notifications.policy.filter_not_followers_hint": "Einschließlich Profilen, die dir seit weniger als {days, plural, one {einem Tag} other {# Tagen}} folgen",
"notifications.policy.filter_not_followers_title": "Profilen, die mir nicht folgen",
- "notifications.policy.filter_not_following_hint": "Solange du sie nicht manuell akzeptierst",
+ "notifications.policy.filter_not_following_hint": "Bis du sie manuell genehmigst",
"notifications.policy.filter_not_following_title": "Profilen, denen ich nicht folge",
"notifications.policy.filter_private_mentions_hint": "Solange sie keine Antwort auf deine Erwähnung ist oder du dem Profil nicht folgst",
"notifications.policy.filter_private_mentions_title": "Unerwünschten privaten Erwähnungen",
- "notifications.policy.title": "Benachrichtigungen herausfiltern von …",
+ "notifications.policy.title": "Benachrichtigungen verwalten von …",
"notifications_permission_banner.enable": "Aktiviere Desktop-Benachrichtigungen",
"notifications_permission_banner.how_to_control": "Um Benachrichtigungen zu erhalten, wenn Mastodon nicht geöffnet ist, aktiviere die Desktop-Benachrichtigungen. Du kannst genau bestimmen, welche Arten von Interaktionen Desktop-Benachrichtigungen über die {icon} -Taste erzeugen, sobald diese aktiviert sind.",
"notifications_permission_banner.title": "Nichts verpassen",
@@ -601,9 +665,9 @@
"privacy.private.short": "Follower",
"privacy.public.long": "Alle in und außerhalb von Mastodon",
"privacy.public.short": "Öffentlich",
- "privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch erscheint dieser Beitrag nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion – selbst wenn du das in den Einstellungen aktiviert hast.",
+ "privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch gibt es einige Einschränkungen. Der Beitrag wird nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion auffindbar sein – selbst wenn die zugehörige Einstellung aktiviert wurde.",
"privacy.unlisted.long": "Weniger im Algorithmus berücksichtigt",
- "privacy.unlisted.short": "Öffentlich (eingeschränkt)",
+ "privacy.unlisted.short": "Öffentlich (still)",
"privacy_policy.last_updated": "Stand: {date}",
"privacy_policy.title": "Datenschutzerklärung",
"recommended": "Empfohlen",
@@ -644,7 +708,7 @@
"report.placeholder": "Ergänzende Hinweise",
"report.reasons.dislike": "Das gefällt mir nicht",
"report.reasons.dislike_description": "Das ist etwas, das du nicht sehen möchtest",
- "report.reasons.legal": "Das ist illegal",
+ "report.reasons.legal": "Das ist rechtswidrig",
"report.reasons.legal_description": "Du glaubst, dass es gegen die Gesetze deines Landes oder des Landes des Servers verstößt",
"report.reasons.other": "Es ist etwas anderes",
"report.reasons.other_description": "Der Vorfall passt zu keiner dieser Kategorien",
@@ -666,12 +730,16 @@
"report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.",
"report_notification.attached_statuses": "{count, plural, one {{count} angehangener Beitrag} other {{count} angehängte Beiträge}}",
"report_notification.categories.legal": "Rechtliches",
+ "report_notification.categories.legal_sentence": "rechtswidrigem Inhalt",
"report_notification.categories.other": "Nicht aufgeführt",
+ "report_notification.categories.other_sentence": "etwas anderem",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "Spam",
"report_notification.categories.violation": "Regelverstoß",
+ "report_notification.categories.violation_sentence": "Regelverletzung",
"report_notification.open": "Meldung öffnen",
"search.no_recent_searches": "Keine früheren Suchanfragen",
- "search.placeholder": "Suche",
+ "search.placeholder": "Suchen",
"search.quick_action.account_search": "Profile passend zu {x}",
"search.quick_action.go_to_account": "Profil {x} aufrufen",
"search.quick_action.go_to_hashtag": "Hashtag {x} aufrufen",
@@ -707,9 +775,10 @@
"status.admin_domain": "{domain} moderieren",
"status.admin_status": "Beitrag moderieren",
"status.block": "@{name} blockieren",
- "status.bookmark": "Beitrag als Lesezeichen setzen",
+ "status.bookmark": "Lesezeichen setzen",
"status.cancel_reblog_private": "Beitrag nicht mehr teilen",
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
+ "status.continued_thread": "Fortgeführter Thread",
"status.copy": "Link zum Beitrag kopieren",
"status.delete": "Beitrag löschen",
"status.detailed_status": "Detaillierte Ansicht der Unterhaltung",
@@ -718,12 +787,10 @@
"status.edit": "Beitrag bearbeiten",
"status.edited": "Zuletzt am {date} bearbeitet",
"status.edited_x_times": "{count, plural, one {{count}-mal} other {{count}-mal}} bearbeitet",
- "status.embed": "Beitrag per iFrame einbetten",
+ "status.embed": "Code zum Einbetten",
"status.favourite": "Favorisieren",
"status.favourites": "{count, plural, one {Mal favorisiert} other {Mal favorisiert}}",
"status.filter": "Beitrag filtern",
- "status.filtered": "Gefiltert",
- "status.hide": "Beitrag ausblenden",
"status.history.created": "{name} erstellte {date}",
"status.history.edited": "{name} bearbeitete {date}",
"status.load_more": "Mehr laden",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird das Profil hier erscheinen.",
"status.redraft": "Löschen und neu erstellen",
"status.remove_bookmark": "Lesezeichen entfernen",
+ "status.replied_in_thread": "Antwortete im Thread",
"status.replied_to": "Antwortete {name}",
"status.reply": "Antworten",
"status.replyAll": "Allen antworten",
"status.report": "@{name} melden",
"status.sensitive_warning": "Inhaltswarnung",
"status.share": "Teilen",
- "status.show_filter_reason": "Trotzdem anzeigen",
- "status.show_less": "Weniger anzeigen",
"status.show_less_all": "Alles einklappen",
- "status.show_more": "Mehr anzeigen",
"status.show_more_all": "Alles ausklappen",
"status.show_original": "Ursprünglichen Beitrag anzeigen",
"status.title.with_attachments": "{user} veröffentlichte {attachmentCount, plural, one {ein Medium} other {{attachmentCount} Medien}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "noch {number, plural, one {# Minute} other {# Minuten}}",
"time_remaining.moments": "Wird gleich beendet",
"time_remaining.seconds": "noch {number, plural, one {# Sekunde} other {# Sekunden}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} von anderen Servern werden nicht angezeigt.",
- "timeline_hint.resources.followers": "Follower",
- "timeline_hint.resources.follows": "„Folge ich“",
- "timeline_hint.resources.statuses": "Ältere Beiträge",
"trends.counter_by_accounts": "{count, plural, one {{counter} Profil} other {{counter} Profile}} {days, plural, one {seit gestern} other {in {days} Tagen}}",
"trends.trending_now": "Aktuelle Trends",
"ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 47a8df62001..83f0227a0ad 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -11,7 +11,7 @@
"about.not_available": "Αυτές οι πληροφορίες δεν έχουν είναι διαθέσιμες σε αυτόν τον διακομιστή.",
"about.powered_by": "Αποκεντρωμένα μέσα κοινωνικής δικτύωσης που βασίζονται στο {mastodon}",
"about.rules": "Κανόνες διακομιστή",
- "account.account_note_header": "Σημείωση",
+ "account.account_note_header": "Προσωπική σημείωση",
"account.add_or_remove_from_list": "Προσθήκη ή Αφαίρεση από λίστες",
"account.badges.bot": "Αυτοματοποιημένος",
"account.badges.group": "Ομάδα",
@@ -19,7 +19,6 @@
"account.block_domain": "Αποκλεισμός τομέα {domain}",
"account.block_short": "Αποκλεισμός",
"account.blocked": "Αποκλεισμένος/η",
- "account.browse_more_on_origin_server": "Δες περισσότερα στο αρχικό προφίλ",
"account.cancel_follow_request": "Απόσυρση αιτήματος παρακολούθησης",
"account.copy": "Αντιγραφή συνδέσμου προφίλ",
"account.direct": "Ιδιωτική αναφορά @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Ακολούθησε και εσύ",
"account.followers": "Ακόλουθοι",
"account.followers.empty": "Κανείς δεν ακολουθεί αυτόν τον χρήστη ακόμα.",
- "account.followers_counter": "{count, plural, one {{counter} Ακόλουθος} other {{counter} Ακόλουθοι}}",
+ "account.followers_counter": "{count, plural, one {{counter} ακόλουθος} other {{counter} ακόλουθοι}}",
"account.following": "Ακολουθείτε",
- "account.following_counter": "{count, plural, one {{counter} Ακολουθεί} other {{counter} Ακολουθούν}}",
+ "account.following_counter": "{count, plural, one {{counter} ακολουθεί} other {{counter} ακολουθούν}}",
"account.follows.empty": "Αυτός ο χρήστης δεν ακολουθεί κανέναν ακόμα.",
"account.go_to_profile": "Μετάβαση στο προφίλ",
"account.hide_reblogs": "Απόκρυψη ενισχύσεων από @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "Ο/Η {name} αιτήθηκε να σε ακολουθήσει",
"account.share": "Κοινοποίηση του προφίλ @{name}",
"account.show_reblogs": "Εμφάνιση ενισχύσεων από @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Ανάρτηση} other {{counter} Αναρτήσεις}}",
+ "account.statuses_counter": "{count, plural, one {{counter} ανάρτηση} other {{counter} αναρτήσεις}}",
"account.unblock": "Άρση αποκλεισμού @{name}",
"account.unblock_domain": "Άρση αποκλεισμού του τομέα {domain}",
"account.unblock_short": "Άρση αποκλεισμού",
@@ -78,6 +77,10 @@
"admin.dashboard.retention.average": "Μέσος όρος",
"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.title": "Περίληψη επιπτώσεων",
"alert.rate_limited.message": "Παρακαλούμε δοκίμασε ξανά μετά τις {retry_time, time, medium}",
"alert.rate_limited.title": "Περιορισμός συχνότητας",
"alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.",
@@ -85,7 +88,17 @@
"announcement.announcement": "Ανακοίνωση",
"attachments_list.unprocessed": "(μη επεξεργασμένο)",
"audio.hide": "Απόκρυψη αρχείου ήχου",
+ "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.title": "Αποκλεισμός χρήστη;",
+ "block_modal.you_wont_see_mentions": "Δε θα βλέπεις τις αναρτήσεις που τον αναφέρουν.",
"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": "Ωχ όχι!",
@@ -111,6 +124,7 @@
"column.directory": "Περιήγηση στα προφίλ",
"column.domain_blocks": "Αποκλεισμένοι τομείς",
"column.favourites": "Αγαπημένα",
+ "column.firehose": "Ζωντανές ροές",
"column.follow_requests": "Αιτήματα ακολούθησης",
"column.home": "Αρχική",
"column.lists": "Λίστες",
@@ -143,6 +157,7 @@
"compose_form.poll.duration": "Διάρκεια δημοσκόπησης",
"compose_form.poll.multiple": "Πολλαπλή επιλογή",
"compose_form.poll.option_placeholder": "Επιλογή {number}",
+ "compose_form.poll.single": "Διάλεξε ένα",
"compose_form.poll.switch_to_multiple": "Ενημέρωση δημοσκόπησης με πολλαπλές επιλογές",
"compose_form.poll.switch_to_single": "Ενημέρωση δημοσκόπησης με μοναδική επιλογή",
"compose_form.poll.type": "Στυλ",
@@ -155,26 +170,32 @@
"compose_form.spoiler_placeholder": "Προειδοποίηση περιεχομένου (προαιρετική)",
"confirmation_modal.cancel": "Άκυρο",
"confirmations.block.confirm": "Αποκλεισμός",
- "confirmations.cancel_follow_request.confirm": "Απόσυρση αιτήματος",
- "confirmations.cancel_follow_request.message": "Είσαι σίγουρος/η ότι θέλεις να αποσύρεις το αίτημά σου να ακολουθείς τον/την {name};",
"confirmations.delete.confirm": "Διαγραφή",
"confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή τη δημοσίευση;",
+ "confirmations.delete.title": "Διαγραφή ανάρτησης;",
"confirmations.delete_list.confirm": "Διαγραφή",
"confirmations.delete_list.message": "Σίγουρα θες να διαγράψεις οριστικά αυτή τη λίστα;",
+ "confirmations.delete_list.title": "Διαγραφή λίστας;",
"confirmations.discard_edit_media.confirm": "Απόρριψη",
"confirmations.discard_edit_media.message": "Έχεις μη αποθηκευμένες αλλαγές στην περιγραφή πολυμέσων ή στην προεπισκόπηση, απόρριψη ούτως ή άλλως;",
- "confirmations.domain_block.message": "Σίγουρα θες να αποκλείσεις ολόκληρο τον {domain}; Συνήθως μερικοί συγκεκρίμένοι αποκλεισμοί ή σιγάσεις επαρκούν και προτιμούνται. Δεν θα βλέπεις περιεχόμενο από αυτό τον τομέα σε καμία δημόσια ροή ή στις ειδοποιήσεις σου. Όσους ακόλουθους έχεις αυτό αυτό τον τομέα θα αφαιρεθούν.",
"confirmations.edit.confirm": "Επεξεργασία",
"confirmations.edit.message": "Αν το επεξεργαστείς τώρα θα αντικατασταθεί το μήνυμα που συνθέτεις. Είσαι σίγουρος ότι θέλεις να συνεχίσεις;",
+ "confirmations.edit.title": "Αντικατάσταση ανάρτησης;",
"confirmations.logout.confirm": "Αποσύνδεση",
"confirmations.logout.message": "Σίγουρα θέλεις να αποσυνδεθείς;",
+ "confirmations.logout.title": "Αποσύνδεση;",
"confirmations.mute.confirm": "Αποσιώπηση",
"confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο",
"confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.",
+ "confirmations.redraft.title": "Διαγραφή & επανασύνταξη;",
"confirmations.reply.confirm": "Απάντησε",
"confirmations.reply.message": "Απαντώντας τώρα θα αντικαταστήσεις το κείμενο που ήδη γράφεις. Σίγουρα θέλεις να συνεχίσεις;",
+ "confirmations.reply.title": "Αντικατάσταση ανάρτησης;",
"confirmations.unfollow.confirm": "Άρση ακολούθησης",
"confirmations.unfollow.message": "Σίγουρα θες να πάψεις να ακολουθείς τον/την {name};",
+ "confirmations.unfollow.title": "Άρση ακολούθησης;",
+ "content_warning.hide": "Απόκρυψη ανάρτησης",
+ "content_warning.show": "Εμφάνιση ούτως ή άλλως",
"conversation.delete": "Διαγραφή συζήτησης",
"conversation.mark_as_read": "Σήμανση ως αναγνωσμένο",
"conversation.open": "Προβολή συνομιλίας",
@@ -193,6 +214,28 @@
"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": "Άτομα από αυτόν τον διακομιστή μπορούν να αλληλεπιδράσουν με τις παλιές αναρτήσεις σου.",
+ "domain_block_modal.they_cant_follow": "Κανείς από αυτόν τον διακομιστή δεν μπορεί να σε ακολουθήσει.",
+ "domain_block_modal.they_wont_know": "Δεν θα ξέρουν ότι έχουν αποκλειστεί.",
+ "domain_block_modal.title": "Αποκλεισμός τομέα;",
+ "domain_block_modal.you_will_lose_followers": "Οι ακόλουθοί σου από αυτόν τον διακομιστή θα αφαιρεθούν.",
+ "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.username": "Όνομα χρήστη",
+ "domain_pill.whats_in_a_handle": "Τί υπάρχει σε ένα πλήρες όνομα χρήστη;",
+ "domain_pill.who_they_are": "Από τη στιγμή που τα πλήρη ονόματα λένε ποιος είναι κάποιος και πού είναι, μπορείς να αλληλεπιδράσεις με άτομα απ' όλο τον κοινωνικό ιστό των πλατφορμών που στηρίζονται στο ActivityPub.",
+ "domain_pill.who_you_are": "Επειδή το πλήρες όνομα χρήστη σου λέει ποιος είσαι και πού βρίσκεσαι, άτομα μπορούν να αλληλεπιδράσουν μαζί σου στον κοινωνικό ιστό των πλατφορμών που στηρίζονται στο ActivityPub.",
+ "domain_pill.your_handle": "Το πλήρες όνομα χρήστη σου:",
+ "domain_pill.your_server": "Το ψηφιακό σου σπίτι, όπου ζουν όλες σου οι αναρτήσεις. Δε σ' αρέσει αυτός; Μετακινήσου σε διακομιστές ανά πάσα στιγμή και πάρε και τους ακόλουθούς σου.",
+ "domain_pill.your_username": "Το μοναδικό σου αναγνωριστικό σε τούτο τον διακομιστή. Είναι πιθανό να βρεις χρήστες με το ίδιο όνομα χρήστη σε διαφορετικούς διακομιστές.",
"embed.instructions": "Ενσωμάτωσε αυτή την ανάρτηση στην ιστοσελίδα σου αντιγράφοντας τον παρακάτω κώδικα.",
"embed.preview": "Ορίστε πως θα φαίνεται:",
"emoji_button.activity": "Δραστηριότητα",
@@ -210,6 +253,7 @@
"emoji_button.search_results": "Αποτελέσματα αναζήτησης",
"emoji_button.symbols": "Σύμβολα",
"emoji_button.travel": "Ταξίδια & Τοποθεσίες",
+ "empty_column.account_hides_collections": "Αυτός ο χρήστης έχει επιλέξει να μην καταστήσει αυτές τις πληροφορίες διαθέσιμες",
"empty_column.account_suspended": "Λογαριασμός σε αναστολή",
"empty_column.account_timeline": "Δεν έχει αναρτήσεις εδώ!",
"empty_column.account_unavailable": "Μη διαθέσιμο προφίλ",
@@ -219,6 +263,8 @@
"empty_column.direct": "Δεν έχεις καμία προσωπική επισήμανση ακόμα. Όταν στείλεις ή λάβεις μία, θα εμφανιστεί εδώ.",
"empty_column.domain_blocks": "Δεν υπάρχουν αποκλεισμένοι τομείς ακόμα.",
"empty_column.explore_statuses": "Τίποτα δεν βρίσκεται στις τάσεις αυτή τη στιγμή. Έλεγξε αργότερα!",
+ "empty_column.favourited_statuses": "Δεν έχεις καμία αγαπημένη ανάρτηση ακόμα. Μόλις αγαπήσεις κάποια, θα εμφανιστεί εδώ.",
+ "empty_column.favourites": "Κανείς δεν έχει αγαπήσει αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.",
"empty_column.follow_requests": "Δεν έχεις κανένα αίτημα παρακολούθησης ακόμα. Μόλις λάβεις κάποιο, θα εμφανιστεί εδώ.",
"empty_column.followed_tags": "Δεν έχετε παρακολουθήσει ακόμα καμία ετικέτα. Όταν το κάνετε, θα εμφανιστούν εδώ.",
"empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ετικέτα.",
@@ -226,6 +272,7 @@
"empty_column.list": "Δεν υπάρχει τίποτα σε αυτή τη λίστα ακόμα. Όταν τα μέλη της δημοσιεύσουν νέες καταστάσεις, θα εμφανιστούν εδώ.",
"empty_column.lists": "Δεν έχεις καμία λίστα ακόμα. Μόλις φτιάξεις μια, θα εμφανιστεί εδώ.",
"empty_column.mutes": "Δεν έχεις κανένα χρήστη σε σίγαση ακόμα.",
+ "empty_column.notification_requests": "Όλα καθαρά! Δεν υπάρχει τίποτα εδώ. Όταν λαμβάνεις νέες ειδοποιήσεις, αυτές θα εμφανίζονται εδώ σύμφωνα με τις ρυθμίσεις σου.",
"empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Όταν άλλα άτομα αλληλεπιδράσουν μαζί σου, θα το δεις εδώ.",
"empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο ή ακολούθησε χειροκίνητα χρήστες από άλλους διακομιστές για να τη γεμίσεις",
"error.unexpected_crash.explanation": "Είτε λόγω σφάλματος στον κώδικά μας ή λόγω ασυμβατότητας με τον περιηγητή, η σελίδα δε μπόρεσε να εμφανιστεί σωστά.",
@@ -256,12 +303,30 @@
"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": "Όλα",
"firehose.local": "Αυτός ο διακομιστής",
"firehose.remote": "Άλλοι διακομιστές",
"follow_request.authorize": "Εξουσιοδότησε",
"follow_request.reject": "Απέρριψε",
"follow_requests.unlocked_explanation": "Παρόλο που ο λογαριασμός σου δεν είναι κλειδωμένος, το προσωπικό του {domain} θεώρησαν πως ίσως να θέλεις να ελέγξεις χειροκίνητα αυτά τα αιτήματα ακολούθησης.",
+ "follow_suggestions.curated_suggestion": "Επιλογή προσωπικού",
+ "follow_suggestions.dismiss": "Να μην εμφανιστεί ξανά",
+ "follow_suggestions.featured_longer": "Προσεκτικά επιλεγμένα απ' την ομάδα του {domain}",
+ "follow_suggestions.friends_of_friends_longer": "Δημοφιλή μεταξύ των ατόμων που ακολουθείς",
+ "follow_suggestions.hints.featured": "Αυτό το προφίλ έχει επιλεγεί προσεκτικά από την ομάδα του {domain}.",
+ "follow_suggestions.hints.friends_of_friends": "Αυτό το προφίλ είναι δημοφιλές μεταξύ των ατόμων που ακολουθείς.",
+ "follow_suggestions.hints.most_followed": "Αυτό το προφίλ είναι ένα από τα πιο ακολουθούμενα στο {domain}.",
+ "follow_suggestions.hints.most_interactions": "Αυτό το προφίλ έχει πάρει πρόσφατα μεγάλη προσοχή στο {domain}.",
+ "follow_suggestions.hints.similar_to_recently_followed": "Αυτό το προφίλ είναι παρόμοιο με τα προφίλ που έχεις ακολουθήσει πρόσφατα.",
+ "follow_suggestions.personalized_suggestion": "Εξατομικευμένη πρόταση",
+ "follow_suggestions.popular_suggestion": "Δημοφιλής πρόταση",
+ "follow_suggestions.popular_suggestion_longer": "Δημοφιλή στο {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Παρόμοια με προφίλ που ακολούθησες πρόσφατα",
+ "follow_suggestions.view_all": "Εμφάνιση όλων",
+ "follow_suggestions.who_to_follow": "Ποιον να ακολουθήσεις",
"followed_tags": "Ετικέτες που ακολουθούνται",
"footer.about": "Σχετικά με",
"footer.directory": "Κατάλογος προφίλ",
@@ -282,21 +347,49 @@
"hashtag.column_settings.tag_mode.any": "Οποιοδήποτε από αυτά",
"hashtag.column_settings.tag_mode.none": "Κανένα από αυτά",
"hashtag.column_settings.tag_toggle": "Προσθήκη επιπλέον ταμπελών για την κολώνα",
+ "hashtag.counter_by_accounts": "{count, plural, one {{counter} συμμετέχων} other {{counter} συμμετέχοντες}}",
+ "hashtag.counter_by_uses": "{count, plural, one {{counter} ανάρτηση} other {{counter} αναρτήσεις}}",
+ "hashtag.counter_by_uses_today": "{count, plural, one {{counter} ανάρτηση} other {{counter} αναρτήσεις}} σήμερα",
"hashtag.follow": "Παρακολούθηση ετικέτας",
"hashtag.unfollow": "Διακοπή παρακολούθησης ετικέτας",
+ "hashtags.and_other": "…και {count, plural, one {}other {# ακόμη}}",
+ "hints.profiles.followers_may_be_missing": "Μπορεί να λείπουν ακόλουθοι για αυτό το προφίλ.",
+ "hints.profiles.follows_may_be_missing": "Άτομα που ακολουθούνται μπορεί να λείπουν απ' αυτό το προφίλ.",
+ "hints.profiles.posts_may_be_missing": "Κάποιες αναρτήσεις από αυτό το προφίλ μπορεί να λείπουν.",
+ "hints.profiles.see_more_followers": "Δες περισσότερους ακόλουθους στο {domain}",
+ "hints.profiles.see_more_follows": "Δες περισσότερα άτομα που ακολουθούνται στο {domain}",
+ "hints.profiles.see_more_posts": "Δες περισσότερες αναρτήσεις στο {domain}",
+ "hints.threads.replies_may_be_missing": "Απαντήσεις από άλλους διακομιστές μπορεί να λείπουν.",
+ "hints.threads.see_more": "Δες περισσότερες αναρτήσεις στο {domain}",
"home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
"home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
"home.hide_announcements": "Απόκρυψη ανακοινώσεων",
+ "home.pending_critical_update.body": "Παρακαλούμε ενημέρωσε τον διακομιστή Mastodon σου το συντομότερο δυνατόν!",
"home.pending_critical_update.link": "Δείτε ενημερώσεις",
"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": "Μπορείς να δεις τις φιλτραρισμένες ειδοποιήσεις ξεχωριστά",
+ "ignore_notifications_modal.ignore": "Αγνόηση ειδοποιήσεων",
+ "ignore_notifications_modal.limited_accounts_title": "Αγνόηση ειδοποιήσεων από συντονισμένους λογαριασμούς;",
+ "ignore_notifications_modal.new_accounts_title": "Αγνόηση ειδοποιήσεων από νέους λογαριασμούς;",
+ "ignore_notifications_modal.not_followers_title": "Αγνόηση ειδοποιήσεων από άτομα που δε σας ακολουθούν;",
+ "ignore_notifications_modal.not_following_title": "Αγνόηση ειδοποιήσεων από άτομα που δεν ακολουθείς;",
+ "ignore_notifications_modal.private_mentions_title": "Αγνόηση ειδοποιήσεων από μη ζητηθείσες ιδιωτικές αναφορές;",
+ "interaction_modal.description.favourite": "Με ένα συντάκτη στο Mastodon μπορείς να αγαπήσεις αυτή την ανάρτηση, για να ενημερώσεις τον συγγραφέα ότι την εκτιμάς και να την αποθηκεύσεις για αργότερα.",
"interaction_modal.description.follow": "Με έναν λογαριασμό Mastodon, μπορείς να ακολουθήσεις τον/την {name} ώστε να λαμβάνεις τις αναρτήσεις του/της στη δική σου ροή.",
"interaction_modal.description.reblog": "Με ένα λογαριασμό Mastodon, μπορείς να ενισχύσεις αυτή την ανάρτηση για να τη μοιραστείς με τους δικούς σου ακολούθους.",
"interaction_modal.description.reply": "Με ένα λογαριασμό Mastodon, μπορείς να απαντήσεις σε αυτή την ανάρτηση.",
"interaction_modal.login.action": "Take me home\nΠήγαινέ με στην αρχική σελίδα",
+ "interaction_modal.login.prompt": "Τομέας του οικιακού σου διακομιστή, πχ. mastodon.social",
"interaction_modal.no_account_yet": "Not on Mastodon?\nΔεν είστε στο Mastodon;",
"interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή",
"interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή",
+ "interaction_modal.sign_in": "Δεν είσαι συνδεδεμένος σε αυτόν το διακομιστή. Πού φιλοξενείται ο λογαριασμός σου;",
+ "interaction_modal.sign_in_hint": "Συμβουλή: Αυτή είναι η ιστοσελίδα όπου έχεις εγγραφεί. Αν δεν θυμάσαι, αναζήτησε το καλώς ήρθες e-mail στα εισερχόμενά σου. Μπορείς επίσης να εισάγεις το πλήρες όνομα χρήστη! (πχ. @Mastodon@mastodon.social)",
"interaction_modal.title.favourite": "Favorite {name}'s post\nΠροτίμησε την ανάρτηση της/του {name}",
"interaction_modal.title.follow": "Ακολούθησε {name}",
"interaction_modal.title.reblog": "Ενίσχυσε την ανάρτηση του {name}",
@@ -314,6 +407,7 @@
"keyboard_shortcuts.down": "κίνηση προς τα κάτω στη λίστα",
"keyboard_shortcuts.enter": "Εμφάνιση ανάρτησης",
"keyboard_shortcuts.favourite": "Αγαπημένη δημοσίευση",
+ "keyboard_shortcuts.favourites": "Άνοιγμα λίστας αγαπημένων",
"keyboard_shortcuts.federated": "Άνοιγμα ροής συναλλαγών",
"keyboard_shortcuts.heading": "Συντομεύσεις πληκτρολογίου",
"keyboard_shortcuts.home": "Άνοιγμα ροής αρχικής σελίδας",
@@ -338,17 +432,21 @@
"keyboard_shortcuts.unfocus": "Αποεστίαση του πεδίου σύνθεσης/αναζήτησης",
"keyboard_shortcuts.up": "Μετακίνηση προς τα πάνω στη λίστα",
"lightbox.close": "Κλείσιμο",
- "lightbox.compress": "Συμπίεση πλαισίου προβολής εικόνας",
- "lightbox.expand": "Ανάπτυξη πλαισίου εμφάνισης εικόνας",
"lightbox.next": "Επόμενο",
"lightbox.previous": "Προηγούμενο",
+ "lightbox.zoom_in": "Εστίαση στο πραγματικό μέγεθος",
+ "lightbox.zoom_out": "Εστίαση για προσαρμογή",
"limited_account_hint.action": "Εμφάνιση προφίλ ούτως ή άλλως",
"limited_account_hint.title": "Αυτό το προφίλ έχει αποκρυφτεί από τους διαχειριστές του διακομιστή {domain}.",
+ "link_preview.author": "Από {name}",
+ "link_preview.more_from_author": "Περισσότερα από {name}",
+ "link_preview.shares": "{count, plural, one {{counter} ανάρτηση} other {{counter} αναρτήσεις}}",
"lists.account.add": "Πρόσθεσε στη λίστα",
"lists.account.remove": "Βγάλε από τη λίστα",
"lists.delete": "Διαγραφή λίστας",
"lists.edit": "Επεξεργασία λίστας",
"lists.edit.submit": "Αλλαγή τίτλου",
+ "lists.exclusive": "Απόκρυψη αυτών των αναρτήσεων από την αρχική",
"lists.new.create": "Προσθήκη λίστας",
"lists.new.title_placeholder": "Τίτλος νέας λίστα",
"lists.replies_policy.followed": "Οποιοσδήποτε χρήστης που ακολουθείς",
@@ -359,9 +457,20 @@
"lists.subheading": "Οι λίστες σου",
"load_pending": "{count, plural, one {# νέο στοιχείο} other {# νέα στοιχεία}}",
"loading_indicator.label": "Φόρτωση…",
- "media_gallery.toggle_visible": "{number, plural, one {Απόκρυψη εικόνας} other {Απόκρυψη εικόνων}}",
+ "media_gallery.hide": "Απόκρυψη",
"moved_to_account_banner.text": "Ο λογαριασμός σου {disabledAccount} είναι προσωρινά απενεργοποιημένος επειδή μεταφέρθηκες στον {movedToAccount}.",
+ "mute_modal.hide_from_notifications": "Απόκρυψη από ειδοποιήσεις",
+ "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": "Μπορεί ακόμα να δει τις αναρτήσεις σου, αλλά δε θα βλέπεις τις δικές του.",
"navigation_bar.about": "Σχετικά με",
+ "navigation_bar.administration": "Διαχείριση",
+ "navigation_bar.advanced_interface": "Άνοιγμα σε προηγμένη διεπαφή ιστού",
"navigation_bar.blocks": "Αποκλεισμένοι χρήστες",
"navigation_bar.bookmarks": "Σελιδοδείκτες",
"navigation_bar.community_timeline": "Τοπική ροή",
@@ -370,12 +479,14 @@
"navigation_bar.discover": "Ανακάλυψη",
"navigation_bar.domain_blocks": "Αποκλεισμένοι τομείς",
"navigation_bar.explore": "Εξερεύνηση",
+ "navigation_bar.favourites": "Αγαπημένα",
"navigation_bar.filters": "Αποσιωπημένες λέξεις",
"navigation_bar.follow_requests": "Αιτήματα ακολούθησης",
"navigation_bar.followed_tags": "Ετικέτες που ακολουθούνται",
"navigation_bar.follows_and_followers": "Ακολουθείς και σε ακολουθούν",
"navigation_bar.lists": "Λίστες",
"navigation_bar.logout": "Αποσύνδεση",
+ "navigation_bar.moderation": "Συντονισμός",
"navigation_bar.mutes": "Αποσιωπημένοι χρήστες",
"navigation_bar.opened_in_classic_interface": "Δημοσιεύσεις, λογαριασμοί και άλλες συγκεκριμένες σελίδες ανοίγονται από προεπιλογή στην κλασική διεπαφή ιστού.",
"navigation_bar.personal": "Προσωπικά",
@@ -386,22 +497,71 @@
"navigation_bar.security": "Ασφάλεια",
"not_signed_in_indicator.not_signed_in": "Πρέπει να συνδεθείς για να αποκτήσεις πρόσβαση σε αυτόν τον πόρο.",
"notification.admin.report": "Ο/Η {name} ανέφερε τον {target}",
+ "notification.admin.report_account": "Ο χρήστης {name} ανέφερε {count, plural, one {μία ανάρτηση} other {# αναρτήσεις}} από {target} για {category}",
+ "notification.admin.report_account_other": "Ο χρήστης {name} ανέφερε {count, plural, one {μία ανάρτηση} other {# αναρτήσεις}} από {target}",
+ "notification.admin.report_statuses": "Ο χρήστης {name} ανέφερε τον χρήστη {target} για {category}",
+ "notification.admin.report_statuses_other": "Ο χρήστης {name} ανέφερε τον χρήστη {target}",
"notification.admin.sign_up": "{name} έχει εγγραφεί",
+ "notification.admin.sign_up.name_and_others": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} έχουν εγγραφεί",
"notification.favourite": "{name} favorited your post\n{name} προτίμησε την ανάρτηση σου",
+ "notification.favourite.name_and_others_with_link": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} αγάπησαν την ανάρτησή σου",
"notification.follow": "Ο/Η {name} σε ακολούθησε",
+ "notification.follow.name_and_others": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} σε ακολούθησαν",
"notification.follow_request": "Ο/H {name} ζήτησε να σε ακολουθήσει",
- "notification.mention": "Ο/Η {name} σε επισήμανε",
+ "notification.follow_request.name_and_others": "{name} και {count, plural, one {# άλλος} other {# άλλοι}} ζήτησαν να σε ακολουθήσουν",
+ "notification.label.mention": "Επισήμανση",
+ "notification.label.private_mention": "Ιδιωτική επισήμανση",
+ "notification.label.private_reply": "Ιδιωτική απάντηση",
+ "notification.label.reply": "Απάντηση",
+ "notification.mention": "Επισήμανση",
+ "notification.moderation-warning.learn_more": "Μάθε περισσότερα",
+ "notification.moderation_warning": "Έχετε λάβει μία προειδοποίηση συντονισμού",
+ "notification.moderation_warning.action_delete_statuses": "Ορισμένες από τις αναρτήσεις σου έχουν αφαιρεθεί.",
+ "notification.moderation_warning.action_disable": "Ο λογαριασμός σου έχει απενεργοποιηθεί.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Μερικές από τις αναρτήσεις σου έχουν επισημανθεί ως ευαίσθητες.",
+ "notification.moderation_warning.action_none": "Ο λογαριασμός σου έχει λάβει προειδοποίηση συντονισμού.",
+ "notification.moderation_warning.action_sensitive": "Οι αναρτήσεις σου θα επισημαίνονται, από εδώ και στο εξής, ως ευαίσθητες.",
+ "notification.moderation_warning.action_silence": "Ο λογαριασμός σου έχει περιοριστεί.",
+ "notification.moderation_warning.action_suspend": "Ο λογαριασμός σου έχει ανασταλεί.",
"notification.own_poll": "Η δημοσκόπησή σου έληξε",
- "notification.poll": "Τελείωσε μια από τις δημοσκοπήσεις που συμμετείχες",
+ "notification.poll": "Μία ψηφοφορία στην οποία συμμετείχες έχει τελειώσει",
"notification.reblog": "Ο/Η {name} ενίσχυσε τη δημοσίευσή σου",
+ "notification.reblog.name_and_others_with_link": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} ενίσχυσαν την ανάρτησή σου",
+ "notification.relationships_severance_event": "Χάθηκε η σύνδεση με το {name}",
+ "notification.relationships_severance_event.account_suspension": "Ένας διαχειριστής από το {from} ανέστειλε το {target}, πράγμα που σημαίνει ότι δεν μπορείς πλέον να λαμβάνεις ενημερώσεις από αυτούς ή να αλληλεπιδράς μαζί τους.",
+ "notification.relationships_severance_event.domain_block": "Ένας διαχειριστής από {from} έχει μπλοκάρει το {target}, συμπεριλαμβανομένων {followersCount} από τους ακόλουθούς σου και {followingCount, plural, one {# λογαριασμό} other {# λογαριασμοί}} που ακολουθείς.",
+ "notification.relationships_severance_event.learn_more": "Μάθε περισσότερα",
+ "notification.relationships_severance_event.user_domain_block": "Έχεις αποκλείσει τον λογαριασμό {target}, αφαιρώντας {followersCount} από τους ακόλουθούς σου και {followingCount, plural, one {# λογαριασμό} other {# λογαριασμοί}} που ακολουθείς.",
"notification.status": "Ο/Η {name} μόλις ανέρτησε κάτι",
"notification.update": "ο/η {name} επεξεργάστηκε μια ανάρτηση",
+ "notification_requests.accept": "Αποδοχή",
+ "notification_requests.accept_multiple": "{count, plural, one {Αποδοχή # αιτήματος…} other {Αποδοχή # αιτημάτων…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Αποδοχή αιτήματος} other {Αποδοχή αιτημάτων}}",
+ "notification_requests.confirm_accept_multiple.message": "Πρόκειται να αποδεχτείς {count, plural, one {ένα αίτημα ειδοποίησης} other {# αιτήματα ειδοποίησης}}. Σίγουρα θες να συνεχίσεις;",
+ "notification_requests.confirm_accept_multiple.title": "Αποδοχή αιτήσεων ειδοποίησης;",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Παράβλεψη αιτήματος} other {Παράβλεψη αιτημάτων}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Πρόκειται να απορρίψεις {count, plural, one {ένα αίτημα ειδοποίησης} other {# αιτήματα ειδοποίησης}}. Δεν θα μπορείς να έχεις πρόσβαση εύκολα {count, plural, one {σε αυτό} other {σε αυτά}} ξανά. Σίγουρα θες να συνεχίσεις;",
+ "notification_requests.confirm_dismiss_multiple.title": "Απόρριψη αιτημάτων ειδοποίησης;",
+ "notification_requests.dismiss": "Απόρριψη",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Παράβλεψη # αιτήματος…} other {Παράβλεψη # αιτημάτων…}}",
+ "notification_requests.edit_selection": "Επεξεργασία",
+ "notification_requests.exit_selection": "Έγινε",
+ "notification_requests.explainer_for_limited_account": "Οι ειδοποιήσεις από αυτόν τον λογαριασμό έχουν φιλτραριστεί επειδή ο λογαριασμός έχει περιοριστεί από έναν συντονιστή.",
+ "notification_requests.explainer_for_limited_remote_account": "Οι ειδοποιήσεις από αυτόν τον λογαριασμό έχουν φιλτραριστεί επειδή ο λογαριασμός ή ο διακομιστής του έχει περιοριστεί από έναν συντονιστή.",
+ "notification_requests.maximize": "Μεγιστοποίηση",
+ "notification_requests.minimize_banner": "Ελαχιστοποίηση μπάνερ φιλτραρισμένων ειδοποιήσεων",
+ "notification_requests.notifications_from": "Ειδοποιήσεις από {name}",
+ "notification_requests.title": "Φιλτραρισμένες ειδοποιήσεις",
+ "notification_requests.view": "Προβολή ειδοποιήσεων",
"notifications.clear": "Καθαρισμός ειδοποιήσεων",
"notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις μόνιμα όλες τις ειδοποιήσεις σου;",
+ "notifications.clear_title": "Εκκαθάριση ειδοποιήσεων;",
"notifications.column_settings.admin.report": "Νέες αναφορές:",
"notifications.column_settings.admin.sign_up": "Νέες εγγραφές:",
"notifications.column_settings.alert": "Ειδοποιήσεις επιφάνειας εργασίας",
"notifications.column_settings.favourite": "Αγαπημένα:",
+ "notifications.column_settings.filter_bar.advanced": "Εμφάνιση όλων των κατηγοριών",
+ "notifications.column_settings.filter_bar.category": "Μπάρα γρήγορου φίλτρου",
"notifications.column_settings.follow": "Νέοι ακόλουθοι:",
"notifications.column_settings.follow_request": "Νέο αίτημα ακολούθησης:",
"notifications.column_settings.mention": "Επισημάνσεις:",
@@ -416,6 +576,7 @@
"notifications.column_settings.update": "Επεξεργασίες:",
"notifications.filter.all": "Όλες",
"notifications.filter.boosts": "Προωθήσεις",
+ "notifications.filter.favourites": "Αγαπημένα",
"notifications.filter.follows": "Ακολουθείς",
"notifications.filter.mentions": "Επισημάνσεις",
"notifications.filter.polls": "Αποτελέσματα δημοσκόπησης",
@@ -426,6 +587,23 @@
"notifications.permission_denied": "Οι ειδοποιήσεις στην επιφάνεια εργασίας δεν είναι διαθέσιμες διότι έχει απορριφθεί κάποιο προηγούμενο αίτημα άδειας",
"notifications.permission_denied_alert": "Δεν είναι δυνατή η ενεργοποίηση των ειδοποιήσεων της επιφάνειας εργασίας, καθώς η άδεια του προγράμματος περιήγησης έχει απορριφθεί νωρίτερα",
"notifications.permission_required": "Οι ειδοποιήσεις δεν είναι διαθέσιμες επειδή δεν έχει δοθεί η απαιτούμενη άδεια.",
+ "notifications.policy.accept": "Αποδοχή",
+ "notifications.policy.accept_hint": "Εμφάνιση στις ειδοποιήσεις",
+ "notifications.policy.drop": "Αγνόηση",
+ "notifications.policy.drop_hint": "Στείλε τες στο υπερπέραν, να μην ξαναδούν το φως του ήλιου",
+ "notifications.policy.filter": "Φίλτρο",
+ "notifications.policy.filter_hint": "Αποστολή στα εισερχόμενα φιλτραρισμένων ειδοποιήσεων",
+ "notifications.policy.filter_limited_accounts_hint": "Περιορισμένη από συντονιστές διακομιστή",
+ "notifications.policy.filter_limited_accounts_title": "Συντονισμένοι λογαριασμοί",
+ "notifications.policy.filter_new_accounts.hint": "Δημιουργήθηκε εντός {days, plural, one {της τελευταίας ημέρας} other {των τελευταίων # ημερών}}",
+ "notifications.policy.filter_new_accounts_title": "Νέοι λογαριασμοί",
+ "notifications.policy.filter_not_followers_hint": "Συμπεριλαμβανομένων των ατόμων που σας έχουν ακολουθήσει λιγότερο από {days, plural, one {μια ημέρα} other {# ημέρες}} πριν",
+ "notifications.policy.filter_not_followers_title": "Άτομα που δε σε ακολουθούν",
+ "notifications.policy.filter_not_following_hint": "Μέχρι να τους εγκρίνεις χειροκίνητα",
+ "notifications.policy.filter_not_following_title": "Άτομα που δεν ακολουθείς",
+ "notifications.policy.filter_private_mentions_hint": "Φιλτραρισμένο εκτός αν είναι απάντηση σε δική σου αναφορά ή αν ακολουθείς τον αποστολέα",
+ "notifications.policy.filter_private_mentions_title": "Μη συναινετικές ιδιωτικές αναφορές",
+ "notifications.policy.title": "Διαχείριση ειδοποιήσεων από…",
"notifications_permission_banner.enable": "Ενεργοποίηση ειδοποιήσεων επιφάνειας εργασίας",
"notifications_permission_banner.how_to_control": "Για να λαμβάνεις ειδοποιήσεις όταν το Mastodon δεν είναι ανοιχτό, ενεργοποίησε τις ειδοποιήσεις επιφάνειας εργασίας. Μπορείς να ελέγξεις με ακρίβεια ποιοι τύποι αλληλεπιδράσεων δημιουργούν ειδοποιήσεις επιφάνειας εργασίας μέσω του κουμπιού {icon} μόλις ενεργοποιηθούν.",
"notifications_permission_banner.title": "Μη χάσεις στιγμή",
@@ -433,8 +611,15 @@
"onboarding.actions.back": "Επιστροφή",
"onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Πηγαίνετε στην αρχική σας ροή",
+ "onboarding.compose.template": "Γειά σου #Mastodon!",
+ "onboarding.follows.empty": "Δυστυχώς, δεν μπορούν να εμφανιστούν αποτελέσματα αυτή τη στιγμή. Μπορείς να προσπαθήσεις να χρησιμοποιήσεις την αναζήτηση ή να περιηγηθείς στη σελίδα εξερεύνησης για να βρεις άτομα να ακολουθήσεις ή να δοκιμάσεις ξανά αργότερα.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Δημοφιλή στο Mastodon",
+ "onboarding.profile.discoverable": "Κάνε το προφίλ μου ανακαλύψιμο",
+ "onboarding.profile.discoverable_hint": "Όταν επιλέγεις την δυνατότητα ανακάλυψης στο Mastodon, οι αναρτήσεις σου μπορεί να εμφανιστούν στα αποτελέσματα αναζήτησης και τις τάσεις, και το προφίλ σου μπορεί να προτείνεται σε άτομα με παρόμοια ενδιαφέροντα με εσένα.",
+ "onboarding.profile.display_name": "Εμφανιζόμενο όνομα",
+ "onboarding.profile.display_name_hint": "Το πλήρες ή το διασκεδαστικό σου όνομα…",
+ "onboarding.profile.lead": "Μπορείς πάντα να το ολοκληρώσεις αργότερα στις ρυθμίσεις, όπου είναι διαθέσιμες ακόμα περισσότερες επιλογές προσαρμογής.",
"onboarding.profile.note": "Βιογραφικό",
"onboarding.profile.note_hint": "Μπορείτε να @αναφέρετε άλλα άτομα ή #hashtags…",
"onboarding.profile.save_and_continue": "Αποθήκευση και συνέχεια",
@@ -442,7 +627,9 @@
"onboarding.profile.upload_avatar": "Μεταφόρτωση εικόνας προφίλ",
"onboarding.profile.upload_header": "Μεταφόρτωση κεφαλίδας προφίλ",
"onboarding.share.lead": "Let people know how they can find you on Mastodon!\nΕνημερώστε άλλα άτομα πώς μπορούν να σας βρουν στο Mastodon!",
+ "onboarding.share.message": "Με λένε {username} στο #Mastodon! Έλα να με ακολουθήσεις στο {url}",
"onboarding.share.next_steps": "Πιθανά επόμενα βήματα:",
+ "onboarding.share.title": "Κοινοποίηση του προφίλ σου",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "You've made it!\nΤα καταφέρατε!",
@@ -454,6 +641,10 @@
"onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
+ "onboarding.tips.2fa": "Το ήξερες; Μπορείς να ασφαλίσεις το λογαριασμό σου ρυθμίζοντας ταυτότητα δύο παραγόντων στις ρυθμίσεις του λογαριασμού σου. Λειτουργεί με οποιαδήποτε εφαρμογή TOTP της επιλογής σας, δεν απαιτείται αριθμός τηλεφώνου!",
+ "onboarding.tips.accounts_from_other_servers": "Το ήξερες; Από τη στιγμή που το Mastodon είναι αποκεντρωμένο, κάποια προφίλ που συναντάς θα φιλοξενούνται σε διακομιστές διαφορετικούς από τον δικό σου. Και παρόλα αυτά μπορείς να αλληλεπιδράσεις μαζί τους απρόσκοπτα! Ο διακομιστής τους είναι στο δεύτερο μισό του ονόματος χρήστη!",
+ "onboarding.tips.migration": "Το ήξερες; Αν αισθάνεσαι ότι το {domain} δεν είναι η κατάλληλη επιλογή διακομιστή για σένα στο μέλλον, μπορείς να μετακινηθείς σε άλλο διακομιστή Mastodon χωρίς να χάσεις τους ακόλουθούς σου. Μπορείς να κάνεις ακόμα και τον δικό σου διακομιστή!",
+ "onboarding.tips.verification": "Το ήξερες; Μπορείς να επαληθεύσεις τον λογαριασμό σου βάζοντας έναν σύνδεσμο του προφίλ σου στο Mastodon στην ιστοσελίδα σου και να προσθέσεις την ιστοσελίδα στο προφίλ σου. Χωρίς έξοδα ή έγγραφα!",
"password_confirmation.exceeds_maxlength": "Η επιβεβαίωση κωδικού πρόσβασης υπερβαίνει το μέγιστο μήκος κωδικού πρόσβασης",
"password_confirmation.mismatching": "Η επιβεβαίωση του κωδικού πρόσβασης δε συμπίπτει",
"picture_in_picture.restore": "Βάλε το πίσω",
@@ -472,7 +663,11 @@
"privacy.direct.short": "Συγκεκριμένα άτομα",
"privacy.private.long": "Μόνο οι ακόλουθοί σας",
"privacy.private.short": "Ακόλουθοι",
+ "privacy.public.long": "Όλοι εντός και εκτός του Mastodon",
"privacy.public.short": "Δημόσιο",
+ "privacy.unlisted.additional": "Αυτό συμπεριφέρεται ακριβώς όπως το δημόσιο, εκτός από το ότι η ανάρτηση δεν θα εμφανιστεί σε ζωντανές ροές ή ετικέτες, εξερεύνηση ή αναζήτηση στο Mastodon, ακόμη και αν το έχεις επιλέξει για τον λογαριασμό σου.",
+ "privacy.unlisted.long": "Λιγότερα αλγοριθμικά κόλπα",
+ "privacy.unlisted.short": "Ήσυχα δημόσια",
"privacy_policy.last_updated": "Τελευταία ενημέρωση {date}",
"privacy_policy.title": "Πολιτική Απορρήτου",
"recommended": "Προτεινόμενα",
@@ -490,6 +685,7 @@
"relative_time.minutes": "{number}λ",
"relative_time.seconds": "{number}δ",
"relative_time.today": "σήμερα",
+ "reply_indicator.attachments": "{count, plural, one {# συνημμένο} other {# συνημμένα}}",
"reply_indicator.cancel": "Άκυρο",
"reply_indicator.poll": "Δημοσκόπηση",
"report.block": "Αποκλεισμός",
@@ -533,9 +729,14 @@
"report.unfollow": "Κατάργηση ακολούθησης του @{name}",
"report.unfollow_explanation": "Ακολουθείς αυτό τον λογαριασμό. Για να μη βλέπεις τις αναρτήσεις τους στη δική σου ροή, πάψε να τον ακολουθείς.",
"report_notification.attached_statuses": "{count, plural, one {{count} ανάρτηση} other {{count} αναρτήσεις}} επισυνάπτονται",
+ "report_notification.categories.legal": "Νομικά",
+ "report_notification.categories.legal_sentence": "παράνομο περιεχόμενο",
"report_notification.categories.other": "Άλλες",
+ "report_notification.categories.other_sentence": "άλλο",
"report_notification.categories.spam": "Ανεπιθύμητα",
+ "report_notification.categories.spam_sentence": "ανεπιθύμητα",
"report_notification.categories.violation": "Παραβίαση κανόνα",
+ "report_notification.categories.violation_sentence": "παραβίαση κανόνα",
"report_notification.open": "Ανοιχτή αναφορά",
"search.no_recent_searches": "Καμία πρόσφατη αναζήτηση",
"search.placeholder": "Αναζήτηση",
@@ -545,8 +746,13 @@
"search.quick_action.open_url": "Άνοιγμα διεύθυνσης URL στο Mastodon",
"search.quick_action.status_search": "Αναρτήσεις που ταιριάζουν με {x}",
"search.search_or_paste": "Αναζήτηση ή εισαγωγή URL",
+ "search_popout.full_text_search_disabled_message": "Μη διαθέσιμο στο {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Διαθέσιμο μόνο όταν συνδεθείς.",
+ "search_popout.language_code": "Κωδικός γλώσσας ISO",
+ "search_popout.options": "Επιλογές αναζήτησης",
"search_popout.quick_actions": "Γρήγορες ενέργειες",
"search_popout.recent": "Πρόσφατες αναζητήσεις",
+ "search_popout.specific_date": "συγκεκριμένη ημερομηνία",
"search_popout.user": "χρήστης",
"search_results.accounts": "Προφίλ",
"search_results.all": "Όλα",
@@ -558,8 +764,11 @@
"server_banner.about_active_users": "Άτομα που χρησιμοποιούν αυτόν τον διακομιστή κατά τις τελευταίες 30 ημέρες (Μηνιαία Ενεργοί Χρήστες)",
"server_banner.active_users": "ενεργοί χρήστες",
"server_banner.administered_by": "Διαχειριστής:",
+ "server_banner.is_one_of_many": "Το {domain} είναι ένας από τους πολλούς ανεξάρτητους διακομιστές Mastodon που μπορείς να χρησιμοποιήσεις για να συμμετάσχεις στο fediverse.",
"server_banner.server_stats": "Στατιστικά διακομιστή:",
"sign_in_banner.create_account": "Δημιουργία λογαριασμού",
+ "sign_in_banner.follow_anyone": "Ακολούθησε οποιονδήποτε κατά μήκος του fediverse και δες τα όλα με χρονολογική σειρά. Δεν υπάρχουν αλγόριθμοι, διαφημίσεις ή clickbait ούτε για δείγμα.",
+ "sign_in_banner.mastodon_is": "Το Mastodon είναι ο καλύτερος τρόπος για να συμβαδίσεις με τα γεγονότα.",
"sign_in_banner.sign_in": "Σύνδεση",
"sign_in_banner.sso_redirect": "Συνδεθείτε ή Εγγραφείτε",
"status.admin_account": "Άνοιγμα διεπαφής συντονισμού για τον/την @{name}",
@@ -569,21 +778,24 @@
"status.bookmark": "Σελιδοδείκτης",
"status.cancel_reblog_private": "Ακύρωση ενίσχυσης",
"status.cannot_reblog": "Αυτή η ανάρτηση δεν μπορεί να ενισχυθεί",
+ "status.continued_thread": "Συνεχιζόμενο νήματος",
"status.copy": "Αντιγραφή συνδέσμου ανάρτησης",
"status.delete": "Διαγραφή",
"status.detailed_status": "Προβολή λεπτομερούς συζήτησης",
"status.direct": "Ιδιωτική επισήμανση @{name}",
"status.direct_indicator": "Ιδιωτική επισήμανση",
"status.edit": "Επεξεργασία",
+ "status.edited": "Τελευταία επεξεργασία {date}",
"status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}",
- "status.embed": "Ενσωμάτωσε",
+ "status.embed": "Απόκτηση κώδικα ενσωμάτωσης",
"status.favourite": "Αγαπημένα",
+ "status.favourites": "{count, plural, one {# αγαπημένο} other {# αγαπημένα}}",
"status.filter": "Φιλτράρισμα αυτής της ανάρτησης",
- "status.filtered": "Φιλτραρισμένα",
- "status.hide": "Απόκρυψη ανάρτησης",
"status.history.created": "{name} δημιούργησε στις {date}",
"status.history.edited": "{name} επεξεργάστηκε στις {date}",
"status.load_more": "Φόρτωσε περισσότερα",
+ "status.media.open": "Κάνε κλικ για άνοιγμα",
+ "status.media.show": "Κάνε κλικ για εμφάνιση",
"status.media_hidden": "Κρυμμένο πολυμέσο",
"status.mention": "Επισήμανε @{name}",
"status.more": "Περισσότερα",
@@ -596,24 +808,24 @@
"status.reblog": "Ενίσχυση",
"status.reblog_private": "Ενίσχυση με αρχική ορατότητα",
"status.reblogged_by": "{name} προώθησε",
+ "status.reblogs": "{count, plural, one {# ενίσχυση} other {# ενισχύσεις}}",
"status.reblogs.empty": "Κανείς δεν ενίσχυσε αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.",
"status.redraft": "Σβήσε & ξαναγράψε",
"status.remove_bookmark": "Αφαίρεση σελιδοδείκτη",
+ "status.replied_in_thread": "Απαντήθηκε σε νήμα",
"status.replied_to": "Απάντησε στον {name}",
"status.reply": "Απάντησε",
"status.replyAll": "Απάντησε στο νήμα συζήτησης",
"status.report": "Αναφορά @{name}",
"status.sensitive_warning": "Ευαίσθητο περιεχόμενο",
"status.share": "Κοινοποίηση",
- "status.show_filter_reason": "Εμφάνιση παρ' όλα αυτά",
- "status.show_less": "Δείξε λιγότερα",
"status.show_less_all": "Δείξε λιγότερα για όλα",
- "status.show_more": "Δείξε περισσότερα",
"status.show_more_all": "Δείξε περισσότερα για όλα",
"status.show_original": "Εμφάνιση αρχικού",
"status.title.with_attachments": "{user} δημοσίευσε {attachmentCount, plural, one {ένα συνημμένο} other {{attachmentCount} συνημμένα}}",
"status.translate": "Μετάφραση",
"status.translated_from_with": "Μεταφράστηκε από {lang} χρησιμοποιώντας {provider}",
+ "status.uncached_media_warning": "Μη διαθέσιμη προεπισκόπηση",
"status.unmute_conversation": "Αναίρεση σίγασης συνομιλίας",
"status.unpin": "Ξεκαρφίτσωσε από το προφίλ",
"subscribed_languages.lead": "Μόνο αναρτήσεις σε επιλεγμένες γλώσσες θα εμφανίζονται στην αρχική σου και θα παραθέτονται χρονοδιαγράμματα μετά την αλλαγή. Επέλεξε καμία για να λαμβάνεις αναρτήσεις σε όλες τις γλώσσες.",
@@ -626,10 +838,6 @@
"time_remaining.minutes": "απομένουν {number, plural, one {# λεπτό} other {# λεπτά}}",
"time_remaining.moments": "Στιγμές που απομένουν",
"time_remaining.seconds": "απομένουν {number, plural, one {# δευτερόλεπτο} other {# δευτερόλεπτα}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} από άλλους διακομιστές δεν εμφανίζονται.",
- "timeline_hint.resources.followers": "Ακόλουθοι",
- "timeline_hint.resources.follows": "Ακολουθείς",
- "timeline_hint.resources.statuses": "Παλαιότερες αναρτήσεις",
"trends.counter_by_accounts": "{count, plural, one {{counter} άτομο} other {{counter} άτομα} }{days, plural, one { την τελευταία ημέρα} other { τις τελευταίες {days} ημέρες}}",
"trends.trending_now": "Δημοφιλή τώρα",
"ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Mastodon.",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index 108880cc97f..c0335dd6b2a 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -11,7 +11,7 @@
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralised social media powered by {mastodon}",
"about.rules": "Server rules",
- "account.account_note_header": "Note",
+ "account.account_note_header": "Personal note",
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Automated",
"account.badges.group": "Group",
@@ -19,7 +19,6 @@
"account.block_domain": "Block domain {domain}",
"account.block_short": "Block",
"account.blocked": "Blocked",
- "account.browse_more_on_origin_server": "Browse more on the original profile",
"account.cancel_follow_request": "Cancel follow",
"account.copy": "Copy link to profile",
"account.direct": "Privately mention @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Follow back",
"account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.",
- "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
+ "account.followers_counter": "{count, plural, one {{counter} follower} other {{counter} followers}}",
"account.following": "Following",
- "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+ "account.following_counter": "{count, plural, one {{counter} following} other {{counter} following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "Hide boosts from @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} has requested to follow you",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
+ "account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} posts}}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unblock domain {domain}",
"account.unblock_short": "Unblock",
@@ -98,6 +97,8 @@
"block_modal.title": "Block user?",
"block_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"boost_modal.combo": "You can press {combo} to skip this next time",
+ "boost_modal.reblog": "Boost post?",
+ "boost_modal.undo_reblog": "Unboost post?",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Content warning (optional)",
"confirmation_modal.cancel": "Cancel",
"confirmations.block.confirm": "Block",
- "confirmations.cancel_follow_request.confirm": "Withdraw request",
- "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "Are you sure you want to delete this post?",
+ "confirmations.delete.title": "Delete post?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
+ "confirmations.delete_list.title": "Delete list?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
- "confirmations.domain_block.confirm": "Block server",
- "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
+ "confirmations.logout.title": "Log out?",
"confirmations.mute.confirm": "Mute",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
+ "confirmations.redraft.title": "Delete & redraft post?",
"confirmations.reply.confirm": "Reply",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.reply.title": "Overwrite post?",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+ "confirmations.unfollow.title": "Unfollow user?",
+ "content_warning.hide": "Hide post",
+ "content_warning.show": "Show anyway",
"conversation.delete": "Delete conversation",
"conversation.mark_as_read": "Mark as read",
"conversation.open": "View conversation",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
- "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentions}}",
- "filtered_notifications_banner.pending_requests": "Notifications from {count, plural, =0 {no one} one {one person} other {# people}} you may know",
+ "filter_warning.matches_filter": "Matches filter “{title}”",
+ "filtered_notifications_banner.pending_requests": "From {count, plural, =0 {no one} one {one person} other {# people}} you may know",
"filtered_notifications_banner.title": "Filtered notifications",
"firehose.all": "All",
"firehose.local": "This server",
@@ -347,6 +353,14 @@
"hashtag.follow": "Follow hashtag",
"hashtag.unfollow": "Unfollow hashtag",
"hashtags.and_other": "…and {count, plural, one {one more} other {# more}}",
+ "hints.profiles.followers_may_be_missing": "Followers for this profile may be missing.",
+ "hints.profiles.follows_may_be_missing": "Follows for this profile may be missing.",
+ "hints.profiles.posts_may_be_missing": "Some posts from this profile may be missing.",
+ "hints.profiles.see_more_followers": "See more followers on {domain}",
+ "hints.profiles.see_more_follows": "See more follows on {domain}",
+ "hints.profiles.see_more_posts": "See more posts on {domain}",
+ "hints.threads.replies_may_be_missing": "Replies from other servers may be missing.",
+ "hints.threads.see_more": "See more replies on {domain}",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.hide_announcements": "Hide announcements",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "See updates",
"home.pending_critical_update.title": "Critical security update available!",
"home.show_announcements": "Show announcements",
+ "ignore_notifications_modal.disclaimer": "Mastodon cannot inform users that you've ignored their notifications. Ignoring notifications will not stop the messages themselves from being sent.",
+ "ignore_notifications_modal.filter_instead": "Filter instead",
+ "ignore_notifications_modal.filter_to_act_users": "You'll still be able to accept, reject, or report users",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtering helps avoid potential confusion",
+ "ignore_notifications_modal.filter_to_review_separately": "You can review filtered notifications separately",
+ "ignore_notifications_modal.ignore": "Ignore notifications",
+ "ignore_notifications_modal.limited_accounts_title": "Ignore notifications from restricted accounts?",
+ "ignore_notifications_modal.new_accounts_title": "Ignore notifications from new accounts?",
+ "ignore_notifications_modal.not_followers_title": "Ignore notifications from people not following you?",
+ "ignore_notifications_modal.not_following_title": "Ignore notifications from people you don't follow?",
+ "ignore_notifications_modal.private_mentions_title": "Ignore notifications from unsolicited Private Mentions?",
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
@@ -407,13 +432,15 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "Move up in the list",
"lightbox.close": "Close",
- "lightbox.compress": "Compress image view box",
- "lightbox.expand": "Expand image view box",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
+ "lightbox.zoom_in": "Zoom to actual size",
+ "lightbox.zoom_out": "Zoom to fit",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"link_preview.author": "By {name}",
+ "link_preview.more_from_author": "More from {name}",
+ "link_preview.shares": "{count, plural, one {{counter} post} other {{counter} posts}}",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
@@ -430,7 +457,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading…",
- "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
+ "media_gallery.hide": "Hide",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.hide_from_notifications": "Hide from notifications",
"mute_modal.hide_options": "Hide options",
@@ -442,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.",
"navigation_bar.about": "About",
+ "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Open in advanced web interface",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
@@ -458,6 +486,7 @@
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
+ "navigation_bar.moderation": "Moderation",
"navigation_bar.mutes": "Muted users",
"navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.",
"navigation_bar.personal": "Personal",
@@ -468,11 +497,23 @@
"navigation_bar.security": "Security",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}",
+ "notification.admin.report_account": "{name} reported {count, plural, one {one post} other {# posts}} from {target} for {category}",
+ "notification.admin.report_account_other": "{name} reported {count, plural, one {one post} other {# posts}} from {target}",
+ "notification.admin.report_statuses": "{name} reported {target} for {category}",
+ "notification.admin.report_statuses_other": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
+ "notification.admin.sign_up.name_and_others": "{name} and {count, plural, one {# other} other {# others}} signed up",
"notification.favourite": "{name} favourited your post",
+ "notification.favourite.name_and_others_with_link": "{name} and {count, plural, one {# other} other {# others}} favourited your post",
"notification.follow": "{name} followed you",
+ "notification.follow.name_and_others": "{name} and {count, plural, one {# other} other {# others}} followed you",
"notification.follow_request": "{name} has requested to follow you",
- "notification.mention": "{name} mentioned you",
+ "notification.follow_request.name_and_others": "{name} and {count, plural, one {# other} other {# others}} has requested to follow you",
+ "notification.label.mention": "Mention",
+ "notification.label.private_mention": "Private mention",
+ "notification.label.private_reply": "Private reply",
+ "notification.label.reply": "Reply",
+ "notification.mention": "Mention",
"notification.moderation-warning.learn_more": "Learn more",
"notification.moderation_warning": "You have received a moderation warning",
"notification.moderation_warning.action_delete_statuses": "Some of your posts have been removed.",
@@ -483,8 +524,9 @@
"notification.moderation_warning.action_silence": "Your account has been limited.",
"notification.moderation_warning.action_suspend": "Your account has been suspended.",
"notification.own_poll": "Your poll has ended",
- "notification.poll": "A poll you have voted in has ended",
+ "notification.poll": "A poll you voted in has ended",
"notification.reblog": "{name} boosted your status",
+ "notification.reblog.name_and_others_with_link": "{name} and {count, plural, one {# other} other {# others}} boosted your post",
"notification.relationships_severance_event": "Lost connections with {name}",
"notification.relationships_severance_event.account_suspension": "An admin from {from} has suspended {target}, which means you can no longer receive updates from them or interact with them.",
"notification.relationships_severance_event.domain_block": "An admin from {from} has blocked {target}, including {followersCount} of your followers and {followingCount, plural, one {# account} other {# accounts}} you follow.",
@@ -493,11 +535,27 @@
"notification.status": "{name} just posted",
"notification.update": "{name} edited a post",
"notification_requests.accept": "Accept",
+ "notification_requests.accept_multiple": "{count, plural, one {Accept # request…} other {Accept # requests…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accept request} other {Accept requests}}",
+ "notification_requests.confirm_accept_multiple.message": "You are about to accept {count, plural, one {one notification request} other {# notification requests}}. Are you sure you want to proceed?",
+ "notification_requests.confirm_accept_multiple.title": "Accept notification requests?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Dismiss request} other {Dismiss requests}}",
+ "notification_requests.confirm_dismiss_multiple.message": "You are about to dismiss {count, plural, one {one notification request} other {# notification requests}}. You won't be able to easily access {count, plural, one {it} other {them}} again. Are you sure you want to proceed?",
+ "notification_requests.confirm_dismiss_multiple.title": "Dismiss notification requests?",
"notification_requests.dismiss": "Dismiss",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Dismiss # request…} other {Dismiss # requests…}}",
+ "notification_requests.edit_selection": "Edit",
+ "notification_requests.exit_selection": "Done",
+ "notification_requests.explainer_for_limited_account": "Notifications from this account have been filtered because the account has been limited by a moderator.",
+ "notification_requests.explainer_for_limited_remote_account": "Notifications from this account have been filtered because the account or its server has been limited by a moderator.",
+ "notification_requests.maximize": "Maximise",
+ "notification_requests.minimize_banner": "Minimize filtered notifications banner",
"notification_requests.notifications_from": "Notifications from {name}",
"notification_requests.title": "Filtered notifications",
+ "notification_requests.view": "View notifications",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
+ "notifications.clear_title": "Clear notifications?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Desktop notifications",
@@ -529,6 +587,14 @@
"notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
"notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
"notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
+ "notifications.policy.accept": "Accept",
+ "notifications.policy.accept_hint": "Show in notifications",
+ "notifications.policy.drop": "Ignore",
+ "notifications.policy.drop_hint": "Send to the void, never to be seen again",
+ "notifications.policy.filter": "Filter",
+ "notifications.policy.filter_hint": "Send to filtered notifications inbox",
+ "notifications.policy.filter_limited_accounts_hint": "Limited by server moderators",
+ "notifications.policy.filter_limited_accounts_title": "Moderated accounts",
"notifications.policy.filter_new_accounts.hint": "Created within the past {days, plural, one {one day} other {# days}}",
"notifications.policy.filter_new_accounts_title": "New accounts",
"notifications.policy.filter_not_followers_hint": "Including people who have been following you fewer than {days, plural, one {one day} other {# days}}",
@@ -537,7 +603,7 @@
"notifications.policy.filter_not_following_title": "People you don't follow",
"notifications.policy.filter_private_mentions_hint": "Filtered unless it's in reply to your own mention or if you follow the sender",
"notifications.policy.filter_private_mentions_title": "Unsolicited private mentions",
- "notifications.policy.title": "Filter out notifications from…",
+ "notifications.policy.title": "Manage notifications from…",
"notifications_permission_banner.enable": "Enable desktop notifications",
"notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
"notifications_permission_banner.title": "Never miss a thing",
@@ -664,9 +730,13 @@
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "illegal content",
"report_notification.categories.other": "Other",
+ "report_notification.categories.other_sentence": "other",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Rule violation",
+ "report_notification.categories.violation_sentence": "rule violation",
"report_notification.open": "Open report",
"search.no_recent_searches": "No recent searches",
"search.placeholder": "Search",
@@ -694,8 +764,11 @@
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
"server_banner.active_users": "active users",
"server_banner.administered_by": "Administered by:",
+ "server_banner.is_one_of_many": "{domain} is one of the many independent Mastodon servers you can use to participate in the fediverse.",
"server_banner.server_stats": "Server stats:",
"sign_in_banner.create_account": "Create account",
+ "sign_in_banner.follow_anyone": "Follow anyone across the fediverse and see it all in chronological order. No algorithms, ads, or clickbait in sight.",
+ "sign_in_banner.mastodon_is": "Mastodon is the best way to keep up with what's happening.",
"sign_in_banner.sign_in": "Sign in",
"sign_in_banner.sso_redirect": "Login or Register",
"status.admin_account": "Open moderation interface for @{name}",
@@ -705,6 +778,7 @@
"status.bookmark": "Bookmark",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
+ "status.continued_thread": "Continued thread",
"status.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
@@ -713,12 +787,10 @@
"status.edit": "Edit",
"status.edited": "Last edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
- "status.embed": "Embed",
+ "status.embed": "Get embed code",
"status.favourite": "Favourite",
"status.favourites": "{count, plural, one {favorite} other {favorites}}",
"status.filter": "Filter this post",
- "status.filtered": "Filtered",
- "status.hide": "Hide post",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Load more",
@@ -740,16 +812,14 @@
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
+ "status.replied_in_thread": "Replied in thread",
"status.replied_to": "Replied to {name}",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
- "status.show_filter_reason": "Show anyway",
- "status.show_less": "Show less",
"status.show_less_all": "Show less for all",
- "status.show_more": "Show more",
"status.show_more_all": "Show more for all",
"status.show_original": "Show original",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}",
@@ -768,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
- "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
- "timeline_hint.resources.followers": "Followers",
- "timeline_hint.resources.follows": "Follows",
- "timeline_hint.resources.statuses": "Older posts",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "Trending now",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index f0c27ad7068..0dc4ccee804 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -11,7 +11,7 @@
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules",
- "account.account_note_header": "Note",
+ "account.account_note_header": "Personal note",
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Automated",
"account.badges.group": "Group",
@@ -19,7 +19,6 @@
"account.block_domain": "Block domain {domain}",
"account.block_short": "Block",
"account.blocked": "Blocked",
- "account.browse_more_on_origin_server": "Browse more on the original profile",
"account.cancel_follow_request": "Cancel follow",
"account.copy": "Copy link to profile",
"account.direct": "Privately mention @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Follow back",
"account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.",
- "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
+ "account.followers_counter": "{count, plural, one {{counter} follower} other {{counter} followers}}",
"account.following": "Following",
- "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+ "account.following_counter": "{count, plural, one {{counter} following} other {{counter} following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "Hide boosts from @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} has requested to follow you",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
+ "account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} posts}}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unblock domain {domain}",
"account.unblock_short": "Unblock",
@@ -98,6 +97,8 @@
"block_modal.title": "Block user?",
"block_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"boost_modal.combo": "You can press {combo} to skip this next time",
+ "boost_modal.reblog": "Boost post?",
+ "boost_modal.undo_reblog": "Unboost post?",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Content warning (optional)",
"confirmation_modal.cancel": "Cancel",
"confirmations.block.confirm": "Block",
- "confirmations.cancel_follow_request.confirm": "Withdraw request",
- "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "Are you sure you want to delete this post?",
+ "confirmations.delete.title": "Delete post?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
+ "confirmations.delete_list.title": "Delete list?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
- "confirmations.domain_block.confirm": "Block server",
- "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
+ "confirmations.logout.title": "Log out?",
"confirmations.mute.confirm": "Mute",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.",
+ "confirmations.redraft.title": "Delete & redraft post?",
"confirmations.reply.confirm": "Reply",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.reply.title": "Overwrite post?",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+ "confirmations.unfollow.title": "Unfollow user?",
+ "content_warning.hide": "Hide post",
+ "content_warning.show": "Show anyway",
"conversation.delete": "Delete conversation",
"conversation.mark_as_read": "Mark as read",
"conversation.open": "View conversation",
@@ -215,7 +221,7 @@
"domain_block_modal.they_cant_follow": "Nobody from this server can follow you.",
"domain_block_modal.they_wont_know": "They won't know they've been blocked.",
"domain_block_modal.title": "Block domain?",
- "domain_block_modal.you_will_lose_followers": "All your followers from this server will be removed.",
+ "domain_block_modal.you_will_lose_num_followers": "You will lose {followersCount, plural, one {{followersCountDisplay} follower} other {{followersCountDisplay} followers}} and {followingCount, plural, one {{followingCountDisplay} person you follow} other {{followingCountDisplay} people you follow}}.",
"domain_block_modal.you_wont_see_posts": "You won't see posts or notifications from users on this server.",
"domain_pill.activitypub_lets_connect": "It lets you connect and interact with people not just on Mastodon, but across different social apps too.",
"domain_pill.activitypub_like_language": "ActivityPub is like the language Mastodon speaks with other social networks.",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
- "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentions}}",
- "filtered_notifications_banner.pending_requests": "Notifications from {count, plural, =0 {no one} one {one person} other {# people}} you may know",
+ "filter_warning.matches_filter": "Matches filter “{title}”",
+ "filtered_notifications_banner.pending_requests": "From {count, plural, =0 {no one} one {one person} other {# people}} you may know",
"filtered_notifications_banner.title": "Filtered notifications",
"firehose.all": "All",
"firehose.local": "This server",
@@ -347,6 +353,14 @@
"hashtag.follow": "Follow hashtag",
"hashtag.unfollow": "Unfollow hashtag",
"hashtags.and_other": "…and {count, plural, other {# more}}",
+ "hints.profiles.followers_may_be_missing": "Followers for this profile may be missing.",
+ "hints.profiles.follows_may_be_missing": "Follows for this profile may be missing.",
+ "hints.profiles.posts_may_be_missing": "Some posts from this profile may be missing.",
+ "hints.profiles.see_more_followers": "See more followers on {domain}",
+ "hints.profiles.see_more_follows": "See more follows on {domain}",
+ "hints.profiles.see_more_posts": "See more posts on {domain}",
+ "hints.threads.replies_may_be_missing": "Replies from other servers may be missing.",
+ "hints.threads.see_more": "See more replies on {domain}",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.hide_announcements": "Hide announcements",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "See updates",
"home.pending_critical_update.title": "Critical security update available!",
"home.show_announcements": "Show announcements",
+ "ignore_notifications_modal.disclaimer": "Mastodon cannot inform users that you've ignored their notifications. Ignoring notifications will not stop the messages themselves from being sent.",
+ "ignore_notifications_modal.filter_instead": "Filter instead",
+ "ignore_notifications_modal.filter_to_act_users": "You'll still be able to accept, reject, or report users",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtering helps avoid potential confusion",
+ "ignore_notifications_modal.filter_to_review_separately": "You can review filtered notifications separately",
+ "ignore_notifications_modal.ignore": "Ignore notifications",
+ "ignore_notifications_modal.limited_accounts_title": "Ignore notifications from moderated accounts?",
+ "ignore_notifications_modal.new_accounts_title": "Ignore notifications from new accounts?",
+ "ignore_notifications_modal.not_followers_title": "Ignore notifications from people not following you?",
+ "ignore_notifications_modal.not_following_title": "Ignore notifications from people you don't follow?",
+ "ignore_notifications_modal.private_mentions_title": "Ignore notifications from unsolicited Private Mentions?",
"interaction_modal.description.favourite": "With an account on Mastodon, you can favorite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Unfocus compose textarea/search",
"keyboard_shortcuts.up": "Move up in the list",
"lightbox.close": "Close",
- "lightbox.compress": "Compress image view box",
- "lightbox.expand": "Expand image view box",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
+ "lightbox.zoom_in": "Zoom to actual size",
+ "lightbox.zoom_out": "Zoom to fit",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"link_preview.author": "By {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading…",
- "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
+ "media_gallery.hide": "Hide",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.hide_from_notifications": "Hide from notifications",
"mute_modal.hide_options": "Hide options",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.",
"navigation_bar.about": "About",
+ "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Open in advanced web interface",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
+ "navigation_bar.moderation": "Moderation",
"navigation_bar.mutes": "Muted users",
"navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.",
"navigation_bar.personal": "Personal",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Security",
"not_signed_in_indicator.not_signed_in": "You need to login to access this resource.",
"notification.admin.report": "{name} reported {target}",
+ "notification.admin.report_account": "{name} reported {count, plural, one {one post} other {# posts}} from {target} for {category}",
+ "notification.admin.report_account_other": "{name} reported {count, plural, one {one post} other {# posts}} from {target}",
+ "notification.admin.report_statuses": "{name} reported {target} for {category}",
+ "notification.admin.report_statuses_other": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
+ "notification.admin.sign_up.name_and_others": "{name} and {count, plural, one {# other} other {# others}} signed up",
"notification.favourite": "{name} favorited your post",
+ "notification.favourite.name_and_others_with_link": "{name} and {count, plural, one {# other} other {# others}} favorited your post",
"notification.follow": "{name} followed you",
+ "notification.follow.name_and_others": "{name} and {count, plural, one {# other} other {# others}} followed you",
"notification.follow_request": "{name} has requested to follow you",
- "notification.mention": "{name} mentioned you",
+ "notification.follow_request.name_and_others": "{name} and {count, plural, one {# other} other {# others}} has requested to follow you",
+ "notification.label.mention": "Mention",
+ "notification.label.private_mention": "Private mention",
+ "notification.label.private_reply": "Private reply",
+ "notification.label.reply": "Reply",
+ "notification.mention": "Mention",
"notification.moderation-warning.learn_more": "Learn more",
"notification.moderation_warning": "You have received a moderation warning",
"notification.moderation_warning.action_delete_statuses": "Some of your posts have been removed.",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "Your account has been limited.",
"notification.moderation_warning.action_suspend": "Your account has been suspended.",
"notification.own_poll": "Your poll has ended",
- "notification.poll": "A poll you have voted in has ended",
+ "notification.poll": "A poll you voted in has ended",
"notification.reblog": "{name} boosted your post",
+ "notification.reblog.name_and_others_with_link": "{name} and {count, plural, one {# other} other {# others}} boosted your post",
"notification.relationships_severance_event": "Lost connections with {name}",
"notification.relationships_severance_event.account_suspension": "An admin from {from} has suspended {target}, which means you can no longer receive updates from them or interact with them.",
"notification.relationships_severance_event.domain_block": "An admin from {from} has blocked {target}, including {followersCount} of your followers and {followingCount, plural, one {# account} other {# accounts}} you follow.",
@@ -495,11 +535,27 @@
"notification.status": "{name} just posted",
"notification.update": "{name} edited a post",
"notification_requests.accept": "Accept",
+ "notification_requests.accept_multiple": "{count, plural, one {Accept # request…} other {Accept # requests…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accept request} other {Accept requests}}",
+ "notification_requests.confirm_accept_multiple.message": "You are about to accept {count, plural, one {one notification request} other {# notification requests}}. Are you sure you want to proceed?",
+ "notification_requests.confirm_accept_multiple.title": "Accept notification requests?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Dismiss request} other {Dismiss requests}}",
+ "notification_requests.confirm_dismiss_multiple.message": "You are about to dismiss {count, plural, one {one notification request} other {# notification requests}}. You won't be able to easily access {count, plural, one {it} other {them}} again. Are you sure you want to proceed?",
+ "notification_requests.confirm_dismiss_multiple.title": "Dismiss notification requests?",
"notification_requests.dismiss": "Dismiss",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Dismiss # request…} other {Dismiss # requests…}}",
+ "notification_requests.edit_selection": "Edit",
+ "notification_requests.exit_selection": "Done",
+ "notification_requests.explainer_for_limited_account": "Notifications from this account have been filtered because the account has been limited by a moderator.",
+ "notification_requests.explainer_for_limited_remote_account": "Notifications from this account have been filtered because the account or its server has been limited by a moderator.",
+ "notification_requests.maximize": "Maximize",
+ "notification_requests.minimize_banner": "Minimize filtered notifications banner",
"notification_requests.notifications_from": "Notifications from {name}",
"notification_requests.title": "Filtered notifications",
+ "notification_requests.view": "View notifications",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
+ "notifications.clear_title": "Clear notifications?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Desktop notifications",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
"notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
"notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
+ "notifications.policy.accept": "Accept",
+ "notifications.policy.accept_hint": "Show in notifications",
+ "notifications.policy.drop": "Ignore",
+ "notifications.policy.drop_hint": "Send to the void, never to be seen again",
+ "notifications.policy.filter": "Filter",
+ "notifications.policy.filter_hint": "Send to filtered notifications inbox",
+ "notifications.policy.filter_limited_accounts_hint": "Limited by server moderators",
+ "notifications.policy.filter_limited_accounts_title": "Moderated accounts",
"notifications.policy.filter_new_accounts.hint": "Created within the past {days, plural, one {one day} other {# days}}",
"notifications.policy.filter_new_accounts_title": "New accounts",
"notifications.policy.filter_not_followers_hint": "Including people who have been following you fewer than {days, plural, one {one day} other {# days}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "People you don't follow",
"notifications.policy.filter_private_mentions_hint": "Filtered unless it's in reply to your own mention or if you follow the sender",
"notifications.policy.filter_private_mentions_title": "Unsolicited private mentions",
- "notifications.policy.title": "Filter out notifications from…",
+ "notifications.policy.title": "Manage notifications from…",
"notifications_permission_banner.enable": "Enable desktop notifications",
"notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
"notifications_permission_banner.title": "Never miss a thing",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "illegal content",
"report_notification.categories.other": "Other",
+ "report_notification.categories.other_sentence": "other",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Rule violation",
+ "report_notification.categories.violation_sentence": "rule violation",
"report_notification.open": "Open report",
"search.no_recent_searches": "No recent searches",
"search.placeholder": "Search",
@@ -710,6 +778,7 @@
"status.bookmark": "Bookmark",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
+ "status.continued_thread": "Continued thread",
"status.copy": "Copy link to post",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
@@ -718,12 +787,10 @@
"status.edit": "Edit",
"status.edited": "Last edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
- "status.embed": "Embed",
+ "status.embed": "Get embed code",
"status.favourite": "Favorite",
"status.favourites": "{count, plural, one {favorite} other {favorites}}",
"status.filter": "Filter this post",
- "status.filtered": "Filtered",
- "status.hide": "Hide post",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Load more",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
+ "status.replied_in_thread": "Replied in thread",
"status.replied_to": "Replied to {name}",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
- "status.show_filter_reason": "Show anyway",
- "status.show_less": "Show less",
"status.show_less_all": "Show less for all",
- "status.show_more": "Show more",
"status.show_more_all": "Show more for all",
"status.show_original": "Show original",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
- "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
- "timeline_hint.resources.followers": "Followers",
- "timeline_hint.resources.follows": "Follows",
- "timeline_hint.resources.statuses": "Older posts",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "Trending now",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index bab277b4832..fbf74e9efaf 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -11,7 +11,7 @@
"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",
- "account.account_note_header": "Noto",
+ "account.account_note_header": "Personaj notoj",
"account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj",
"account.badges.bot": "Roboto",
"account.badges.group": "Grupo",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloki la domajnon {domain}",
"account.block_short": "Bloko",
"account.blocked": "Blokita",
- "account.browse_more_on_origin_server": "Foliumi pli ĉe la originala profilo",
"account.cancel_follow_request": "Nuligi peton por sekvado",
"account.copy": "Kopii ligilon al profilo",
"account.direct": "Private mencii @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Sekvu reen",
"account.followers": "Sekvantoj",
"account.followers.empty": "Ankoraŭ neniu sekvas ĉi tiun uzanton.",
- "account.followers_counter": "{count, plural, one{{counter} Sekvanto} other {{counter} Sekvantoj}}",
+ "account.followers_counter": "{count, plural, one{{counter} sekvanto} other {{counter} sekvantoj}}",
"account.following": "Sekvatoj",
- "account.following_counter": "{count, plural, one {{counter} Sekvato} other {{counter} Sekvatoj}}",
+ "account.following_counter": "{count, plural, one {{counter} sekvato} other {{counter} sekvatoj}}",
"account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.",
"account.go_to_profile": "Iri al profilo",
"account.hide_reblogs": "Kaŝi diskonigojn de @{name}",
@@ -63,12 +62,12 @@
"account.requested_follow": "{name} petis sekvi vin",
"account.share": "Diskonigi la profilon de @{name}",
"account.show_reblogs": "Montri diskonigojn de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Afiŝo} other {{counter} Afiŝoj}}",
+ "account.statuses_counter": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}}",
"account.unblock": "Malbloki @{name}",
"account.unblock_domain": "Malbloki la domajnon {domain}",
"account.unblock_short": "Malbloki",
"account.unendorse": "Ne plu rekomendi ĉe la profilo",
- "account.unfollow": "Malaboni",
+ "account.unfollow": "Ĉesi sekvi",
"account.unmute": "Ne plu silentigi @{name}",
"account.unmute_notifications_short": "Malsilentigu Sciigojn",
"account.unmute_short": "Ne plu silentigi",
@@ -89,7 +88,17 @@
"announcement.announcement": "Anoncoj",
"attachments_list.unprocessed": "(neprilaborita)",
"audio.hide": "Kaŝi aŭdion",
+ "block_modal.remote_users_caveat": "Ni petos al la servilo {domain} respekti vian elekton. Tamen, plenumo ne estas garantiita ĉar iuj serviloj eble manipulas blokojn malsame. Publikaj afiŝoj eble ankoraŭ estas videbla por ne-ensalutintaj uzantoj.",
+ "block_modal.show_less": "Montri malpli",
+ "block_modal.show_more": "Montri pli",
+ "block_modal.they_cant_mention": "Ili ne povas mencii aŭ sekvi vin.",
+ "block_modal.they_cant_see_posts": "Ili ne povas vidi viajn afiŝojn kaj vi ne povas vidi iliajn.",
+ "block_modal.they_will_know": "Ili povas vidi, ke ili estas blokita.",
+ "block_modal.title": "Ĉu bloki uzanton?",
+ "block_modal.you_wont_see_mentions": "Vi ne vidos afiŝojn, ke mencii ilin.",
"boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje",
+ "boost_modal.reblog": "Ĉu diskonigi afiŝon?",
+ "boost_modal.undo_reblog": "Ĉu ĉesi diskonigi afiŝon?",
"bundle_column_error.copy_stacktrace": "Kopii la eraran raporton",
"bundle_column_error.error.body": "La petita paĝo ne povas redonitis. Eble estas eraro.",
"bundle_column_error.error.title": "Ho, ve!",
@@ -146,33 +155,47 @@
"compose_form.lock_disclaimer.lock": "ŝlosita",
"compose_form.placeholder": "Kion vi pensas?",
"compose_form.poll.duration": "Daŭro de la balotenketo",
+ "compose_form.poll.multiple": "Multobla elekto",
+ "compose_form.poll.option_placeholder": "Opcio {number}",
+ "compose_form.poll.single": "Elektu unu",
"compose_form.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn",
"compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton",
+ "compose_form.poll.type": "Stilo",
+ "compose_form.publish": "Afiŝo",
"compose_form.publish_form": "Afiŝi",
+ "compose_form.reply": "Respondi",
+ "compose_form.save_changes": "Ĝisdatigi",
"compose_form.spoiler.marked": "Forigi la averton de enhavo",
"compose_form.spoiler.unmarked": "Aldoni averton de enhavo",
+ "compose_form.spoiler_placeholder": "Enhava Averto (nedeviga)",
"confirmation_modal.cancel": "Nuligi",
"confirmations.block.confirm": "Bloki",
- "confirmations.cancel_follow_request.confirm": "Eksigi peton",
- "confirmations.cancel_follow_request.message": "Ĉu vi certas ke vi volas eksigi vian peton por sekvi {name}?",
"confirmations.delete.confirm": "Forigi",
"confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun afiŝon?",
+ "confirmations.delete.title": "Ĉu forigi Afiŝon?",
"confirmations.delete_list.confirm": "Forigi",
"confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?",
+ "confirmations.delete_list.title": "Ĉu forigi liston?",
"confirmations.discard_edit_media.confirm": "Forĵeti",
"confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭmontro de la plurmedio, ĉu vi forĵetu ilin malgraŭe?",
- "confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika templinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.",
"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.logout.confirm": "Adiaŭi",
"confirmations.logout.message": "Ĉu vi certas ke vi volas adiaŭi?",
+ "confirmations.logout.title": "Ĉu elsaluti?",
"confirmations.mute.confirm": "Silentigi",
"confirmations.redraft.confirm": "Forigi kaj reskribi",
"confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun afiŝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.",
+ "confirmations.redraft.title": "Ĉu forigi kaj redakcii afiŝon?",
"confirmations.reply.confirm": "Respondi",
"confirmations.reply.message": "Respondi nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
+ "confirmations.reply.title": "Ĉu superskribi afiŝon?",
"confirmations.unfollow.confirm": "Ne plu sekvi",
"confirmations.unfollow.message": "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?",
+ "confirmations.unfollow.title": "Ĉu ĉesi sekvi uzanton?",
+ "content_warning.hide": "Kaŝi afiŝon",
+ "content_warning.show": "Montri ĉiukaze",
"conversation.delete": "Forigi konversacion",
"conversation.mark_as_read": "Marki legita",
"conversation.open": "Vidi konversacion",
@@ -192,6 +215,27 @@
"dismissable_banner.explore_statuses": "Ĉi tioj estas afiŝoj de socia reto kiu populariĝas hodiau.",
"dismissable_banner.explore_tags": "Ĉi tiuj kradvostoj populariĝas en ĉi tiu kaj aliaj serviloj en la malcentraliza reto nun.",
"dismissable_banner.public_timeline": "Ĉi tioj estas plej lastaj publikaj afiŝoj de personoj ĉe socia reto kiu personoj ĉe {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.",
+ "domain_block_modal.they_cant_follow": "Neniu el ĉi tiu servilo povas sekvi vin.",
+ "domain_block_modal.they_wont_know": "Ili ne scios, ke ili estas blokitaj.",
+ "domain_block_modal.title": "Ĉu bloki la domajnon?",
+ "domain_block_modal.you_will_lose_followers": "Ĉiuj viaj sekvantoj de ĉi tiu servilo estos forigitaj.",
+ "domain_block_modal.you_wont_see_posts": "Vi ne vidos afiŝojn aŭ sciigojn de uzantoj sur ĉi tiu servilo.",
+ "domain_pill.activitypub_lets_connect": "Ĝi ebligas vin konekti kaj interagi kun homoj ne nur sur Mastodon, sed ankaŭ tra diversaj sociaj apoj.",
+ "domain_pill.activitypub_like_language": "ActivityPub estas kiel la lingvo kiun Mastodon parolas kun aliaj sociaj retoj.",
+ "domain_pill.server": "Servilo",
+ "domain_pill.their_handle": "Ilia identigo:",
+ "domain_pill.their_server": "Ilia cifereca hejmo, kie ĉiuj iliaj afiŝoj loĝas.",
+ "domain_pill.their_username": "Ilia unika identigilo sur ilia servilo. Eblas trovi uzantojn kun la sama uzantnomo sur malsamaj serviloj.",
+ "domain_pill.username": "Uzantnomo",
+ "domain_pill.whats_in_a_handle": "Kio estas en identigo?",
+ "domain_pill.who_they_are": "Ĉar identigoj diras, kiu iu estas kaj kie ili estas, vi povas interagi kun homoj tra la socia reto de ActivityPub-funkciigitaj platformoj.",
+ "domain_pill.who_you_are": "Ĉar via identigo diras kiu vi estas kaj kie vi estas, homoj povas interagi kun vi tra la socia reto de ActivityPub-funkciigitaj platformoj.",
+ "domain_pill.your_handle": "Via identigo:",
+ "domain_pill.your_server": "Via cifereca hejmo, kie loĝas ĉiuj viaj afiŝoj. Ĉu vi ne ŝatas ĉi tiun? Transloku servilojn iam ajn kaj alportu ankaŭ viajn sekvantojn.",
+ "domain_pill.your_username": "Via unika identigilo sur ĉi tiu servilo. Eblas trovi uzantojn kun la sama uzantnomo sur malsamaj serviloj.",
"embed.instructions": "Enkorpigu ĉi tiun afiŝon en vian retejon per kopio de la suba kodo.",
"embed.preview": "Ĝi aperos tiel:",
"emoji_button.activity": "Agadoj",
@@ -228,6 +272,7 @@
"empty_column.list": "Ankoraŭ estas nenio en ĉi tiu listo. Kiam membroj de ĉi tiu listo afiŝos novajn afiŝojn, ili aperos ĉi tie.",
"empty_column.lists": "Vi ankoraŭ ne havas liston. Kiam vi kreos iun, ĝi aperos ĉi tie.",
"empty_column.mutes": "Vi ne ankoraŭ silentigis iun uzanton.",
+ "empty_column.notification_requests": "Ĉio klara! Estas nenio tie ĉi. Kiam vi ricevas novajn sciigojn, ili aperos ĉi tie laŭ viaj agordoj.",
"empty_column.notifications": "Vi ankoraŭ ne havas sciigojn. Interagu kun aliaj por komenci konversacion.",
"empty_column.public": "Estas nenio ĉi tie! Publike skribu ion, aŭ mane sekvu uzantojn de aliaj serviloj por plenigi la publikan tempolinion",
"error.unexpected_crash.explanation": "Pro eraro en nia kodo, aŭ problemo de kongruo en via retumilo, ĉi tiu paĝo ne povis esti montrata ĝuste.",
@@ -258,12 +303,30 @@
"filter_modal.select_filter.subtitle": "Uzu ekzistantan kategorion aŭ kreu novan",
"filter_modal.select_filter.title": "Filtri ĉi tiun afiŝon",
"filter_modal.title.status": "Filtri mesaĝon",
+ "filter_warning.matches_filter": "Filtrilo de kongruoj “{title}”",
+ "filtered_notifications_banner.pending_requests": "El {count, plural, =0 {neniu} one {unu persono} other {# homoj}} vi eble konas",
+ "filtered_notifications_banner.title": "Filtritaj sciigoj",
"firehose.all": "Ĉiuj",
"firehose.local": "Ĉi tiu servilo",
"firehose.remote": "Aliaj serviloj",
"follow_request.authorize": "Rajtigi",
"follow_request.reject": "Rifuzi",
"follow_requests.unlocked_explanation": "Kvankam via konto ne estas ŝlosita, la dungitaro de {domain} opinias, ke vi eble volas revizii petojn pri sekvado de ĉi tiuj kontoj permane.",
+ "follow_suggestions.curated_suggestion": "Elekto de stabo",
+ "follow_suggestions.dismiss": "Ne montri denove",
+ "follow_suggestions.featured_longer": "Mane elektita de la teamo de {domain}",
+ "follow_suggestions.friends_of_friends_longer": "Populara inter homoj, kiujn vi sekvas",
+ "follow_suggestions.hints.featured": "Ĉi tiu profilo estis mane elektita de la teamo de {domain}.",
+ "follow_suggestions.hints.friends_of_friends": "Ĉi tiu profilo estas populara inter la homoj, kiujn vi sekvas.",
+ "follow_suggestions.hints.most_followed": "Ĉi tiu profilo estas unu el la plej sekvataj en {domain}.",
+ "follow_suggestions.hints.most_interactions": "Ĉi tiu profilo lastatempe ricevis multe da atento sur {domain}.",
+ "follow_suggestions.hints.similar_to_recently_followed": "Ĉi tiu profilo similas al la profiloj kiujn vi plej lastatempe sekvis.",
+ "follow_suggestions.personalized_suggestion": "Agordita propono",
+ "follow_suggestions.popular_suggestion": "Popularaj proponoj",
+ "follow_suggestions.popular_suggestion_longer": "Populara en {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Simile al profiloj, kiujn vi lastatempe sekvis",
+ "follow_suggestions.view_all": "Vidi ĉiujn",
+ "follow_suggestions.who_to_follow": "Kiun sekvi",
"followed_tags": "Sekvataj kradvortoj",
"footer.about": "Pri",
"footer.directory": "Profilujo",
@@ -290,6 +353,14 @@
"hashtag.follow": "Sekvi la kradvorton",
"hashtag.unfollow": "Ne plu sekvi la kradvorton",
"hashtags.and_other": "…kaj {count, plural,other {# pli}}",
+ "hints.profiles.followers_may_be_missing": "Sekvantoj por ĉi tiu profilo eble mankas.",
+ "hints.profiles.follows_may_be_missing": "Sekvatoj de ĉi tiu profilo eble mankas.",
+ "hints.profiles.posts_may_be_missing": "Iuj afiŝoj de ĉi tiu profilo eble mankas.",
+ "hints.profiles.see_more_followers": "Vidi pli da sekvantoj sur {domain}",
+ "hints.profiles.see_more_follows": "Vidi pli da sekvatoj sur {domain}",
+ "hints.profiles.see_more_posts": "Vidi pli da afiŝoj sur {domain}",
+ "hints.threads.replies_may_be_missing": "Respondoj de aliaj serviloj eble mankas.",
+ "hints.threads.see_more": "Vidi pli da respondoj sur {domain}",
"home.column_settings.show_reblogs": "Montri diskonigojn",
"home.column_settings.show_replies": "Montri respondojn",
"home.hide_announcements": "Kaŝi la anoncojn",
@@ -297,6 +368,17 @@
"home.pending_critical_update.link": "Vidi ĝisdatigojn",
"home.pending_critical_update.title": "Kritika sekurĝisdatigo estas disponebla!",
"home.show_announcements": "Montri anoncojn",
+ "ignore_notifications_modal.disclaimer": "Mastodon ne povas informi uzantojn, ke vi ignoris iliajn sciigojn. Ignori sciigojn ne malhelpos la mesaĝojn mem esti senditaj.",
+ "ignore_notifications_modal.filter_instead": "Filtri anstataŭe",
+ "ignore_notifications_modal.filter_to_act_users": "Vi ankoraŭ povos akcepti, malakcepti aŭ raporti uzantojn",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrado helpas eviti eblan konfuzon",
+ "ignore_notifications_modal.filter_to_review_separately": "Vi povas revizii filtritajn sciigojn aparte",
+ "ignore_notifications_modal.ignore": "Ignori sciigojn",
+ "ignore_notifications_modal.limited_accounts_title": "Ĉu ignori sciigojn de moderigitaj kontoj?",
+ "ignore_notifications_modal.new_accounts_title": "Ĉu ignori sciigojn de novaj kontoj?",
+ "ignore_notifications_modal.not_followers_title": "Ĉu ignori sciigojn de homoj, kiuj ne sekvas vin?",
+ "ignore_notifications_modal.not_following_title": "Ĉu ignori sciigojn de homoj, kiujn vi ne sekvas?",
+ "ignore_notifications_modal.private_mentions_title": "Ĉu ignori sciigojn de nepetitaj privataj mencioj?",
"interaction_modal.description.favourite": "Per konto ĉe Mastodon, vi povas stelumiti ĉi tiun afiŝon por sciigi la afiŝanton ke vi aprezigas ŝin kaj konservas por la estonteco.",
"interaction_modal.description.follow": "Kun konto ĉe Mastodon, vi povos sekvi {name} por vidi ties mesaĝojn en via hejmo.",
"interaction_modal.description.reblog": "Kun konto ĉe Mastodon, vi povas diskonigi ĉi tiun afiŝon, por ke viaj propraj sekvantoj vidu ĝin.",
@@ -350,13 +432,15 @@
"keyboard_shortcuts.unfocus": "malenfokusigi la tekstujon aŭ la serĉilon",
"keyboard_shortcuts.up": "iri supren en la listo",
"lightbox.close": "Fermi",
- "lightbox.compress": "Kunpremi bildan vidkeston",
- "lightbox.expand": "Pligrandigi bildan vidkeston",
"lightbox.next": "Antaŭen",
"lightbox.previous": "Malantaŭen",
+ "lightbox.zoom_in": "Zomi al reala grandeco",
+ "lightbox.zoom_out": "Zomi por konveni",
"limited_account_hint.action": "Montru profilon ĉiukaze",
"limited_account_hint.title": "La profilo estas kaŝita de la moderigantoj de {domain}.",
"link_preview.author": "De {name}",
+ "link_preview.more_from_author": "Pli de {name}",
+ "link_preview.shares": "{count, plural, one {{counter} afiŝo} other {{counter} afiŝoj}}",
"lists.account.add": "Aldoni al la listo",
"lists.account.remove": "Forigi de la listo",
"lists.delete": "Forigi la liston",
@@ -373,9 +457,19 @@
"lists.subheading": "Viaj listoj",
"load_pending": "{count,plural, one {# nova elemento} other {# novaj elementoj}}",
"loading_indicator.label": "Ŝargado…",
- "media_gallery.toggle_visible": "{number, plural, one {Kaŝi la bildon} other {Kaŝi la bildojn}}",
+ "media_gallery.hide": "Kaŝi",
"moved_to_account_banner.text": "Via konto {disabledAccount} estas malvalidigita ĉar vi movis ĝin al {movedToAccount}.",
+ "mute_modal.hide_from_notifications": "Kaŝi de sciigoj",
+ "mute_modal.hide_options": "Kaŝi agordojn",
+ "mute_modal.indefinite": "Ĝis mi malsilentas ilin",
+ "mute_modal.show_options": "Montri agordojn",
+ "mute_modal.they_can_mention_and_follow": "Ili povas mencii kaj sekvi vin, sed vi ne vidos ilin.",
+ "mute_modal.they_wont_know": "Ili ne scios, ke ili estas silentigitaj.",
+ "mute_modal.title": "Ĉu silentigi uzanton?",
+ "mute_modal.you_wont_see_mentions": "Vi ne vidos afiŝojn, kiuj mencias ilin.",
+ "mute_modal.you_wont_see_posts": "Ili ankoraŭ povas vidi viajn afiŝojn, sed vi ne vidos iliajn.",
"navigation_bar.about": "Pri",
+ "navigation_bar.administration": "Administrado",
"navigation_bar.advanced_interface": "Malfermi altnivelan retpaĝan interfacon",
"navigation_bar.blocks": "Blokitaj uzantoj",
"navigation_bar.bookmarks": "Legosignoj",
@@ -392,6 +486,7 @@
"navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj",
"navigation_bar.lists": "Listoj",
"navigation_bar.logout": "Adiaŭi",
+ "navigation_bar.moderation": "Modereco",
"navigation_bar.mutes": "Silentigitaj uzantoj",
"navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.",
"navigation_bar.personal": "Persone",
@@ -402,22 +497,71 @@
"navigation_bar.security": "Sekureco",
"not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.",
"notification.admin.report": "{name} raportis {target}",
+ "notification.admin.report_account": "{name} raportis {count, plural, one {afiŝon} other {# afiŝojn}} de {target} por {category}",
+ "notification.admin.report_account_other": "{name} raportis {count, plural, one {afiŝon} other {# afiŝojn}} de {target}",
+ "notification.admin.report_statuses": "{name} raportis {target} por {category}",
+ "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.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",
"notification.follow": "{name} eksekvis vin",
+ "notification.follow.name_and_others": "{name} kaj {count, plural, one {# alia} other {# aliaj}} sekvis vin",
"notification.follow_request": "{name} petis sekvi vin",
- "notification.mention": "{name} menciis vin",
+ "notification.follow_request.name_and_others": "{name} kaj {count, plural, one {# alia} other {# aliaj}} petis sekvi vin",
+ "notification.label.mention": "Mencii",
+ "notification.label.private_mention": "Privata mencio",
+ "notification.label.private_reply": "Privata respondo",
+ "notification.label.reply": "Respondi",
+ "notification.mention": "Mencii",
+ "notification.moderation-warning.learn_more": "Lerni pli",
+ "notification.moderation_warning": "Vi ricevis moderigan averton",
+ "notification.moderation_warning.action_delete_statuses": "Kelkaj el viaj afiŝoj estis forigitaj.",
+ "notification.moderation_warning.action_disable": "Via konto estas malŝaltita.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Kelkaj el viaj afiŝoj estis markitaj kiel sentemaj.",
+ "notification.moderation_warning.action_none": "Via konto ricevis moderigan averton.",
+ "notification.moderation_warning.action_sensitive": "Viaj afiŝoj estos markitaj kiel sentemaj ekde nun.",
+ "notification.moderation_warning.action_silence": "Via konto estis limigita.",
+ "notification.moderation_warning.action_suspend": "Via konto estas malakceptita.",
"notification.own_poll": "Via enketo finiĝis",
- "notification.poll": "Partoprenita balotenketo finiĝis",
+ "notification.poll": "Balotenketo, en kiu vi voĉdonis, finiĝis",
"notification.reblog": "{name} diskonigis vian afiŝon",
+ "notification.reblog.name_and_others_with_link": "{name} kaj {count, plural, one {# alia} other {# aliaj}} diskonigis vian afiŝon",
+ "notification.relationships_severance_event": "Perditaj konektoj kun {name}",
+ "notification.relationships_severance_event.account_suspension": "Administranto de {from} malakceptis {target}, kio signifas, ke vi ne plu povas ricevi ĝisdatigojn de ili aŭ interagi kun ili.",
+ "notification.relationships_severance_event.domain_block": "Administranto de {from} blokis {target}, inkluzive de {followersCount} de viaj sekvantoj kaj {followingCount, plural, one {# konto} other {# kontoj}} kiujn vi sekvas.",
+ "notification.relationships_severance_event.learn_more": "Lerni pli",
+ "notification.relationships_severance_event.user_domain_block": "Vi blokis {target}, forigante {followersCount} de viaj sekvantoj kaj {followingCount, plural, one {# konto} other {# kontoj}} kiujn vi sekvas.",
"notification.status": "{name} ĵus afiŝis",
"notification.update": "{name} redaktis afiŝon",
+ "notification_requests.accept": "Akcepti",
+ "notification_requests.accept_multiple": "{count, plural, one {Akcepti # peton…} other {Akcepti # petojn…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Akcepti peton} other {Akcepti petojn}}",
+ "notification_requests.confirm_accept_multiple.message": "Vi estas akceptonta {count, plural, one {unu sciigan peton} other {# sciigajn petojn}}. Ĉu vi certas, ke vi volas daŭrigi?",
+ "notification_requests.confirm_accept_multiple.title": "Ĉu akcepti sciigajn petojn?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Malakcepti peton} other {Malakcepti petojn}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Vi estas malakceptonta {count, plural, one {unu sciigan peton} other {# sciigajn petojn}}. Vi ne povos facile aliri {count, plural, one {ĝin} other {ilin}} denove. Ĉu vi certas, ke vi volas daŭrigi?",
+ "notification_requests.confirm_dismiss_multiple.title": "Ĉu malakcepti sciigajn petojn?",
+ "notification_requests.dismiss": "Forĵeti",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Malakcepti # peton…} other {# Malakcepti # petojn…}}",
+ "notification_requests.edit_selection": "Redakti",
+ "notification_requests.exit_selection": "Farita",
+ "notification_requests.explainer_for_limited_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto estis limigita de moderanto.",
+ "notification_requests.explainer_for_limited_remote_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto aŭ ĝia servilo estis limigitaj de moderanto.",
+ "notification_requests.maximize": "Maksimumigi",
+ "notification_requests.minimize_banner": "Minimumigi filtritajn sciigojn-rubandon",
+ "notification_requests.notifications_from": "Sciigoj de {name}",
+ "notification_requests.title": "Filtritaj sciigoj",
+ "notification_requests.view": "Vidi sciigojn",
"notifications.clear": "Forviŝi sciigojn",
"notifications.clear_confirmation": "Ĉu vi certas, ke vi volas porĉiame forviŝi ĉiujn viajn sciigojn?",
+ "notifications.clear_title": "Ĉu forigi sciigojn?",
"notifications.column_settings.admin.report": "Novaj raportoj:",
"notifications.column_settings.admin.sign_up": "Novaj registriĝoj:",
"notifications.column_settings.alert": "Sciigoj de la retumilo",
"notifications.column_settings.favourite": "Stelumoj:",
+ "notifications.column_settings.filter_bar.advanced": "Montri ĉiujn kategoriojn",
+ "notifications.column_settings.filter_bar.category": "Rapida filtrila breto",
"notifications.column_settings.follow": "Novaj sekvantoj:",
"notifications.column_settings.follow_request": "Novaj petoj de sekvado:",
"notifications.column_settings.mention": "Mencioj:",
@@ -433,7 +577,7 @@
"notifications.filter.all": "Ĉiuj",
"notifications.filter.boosts": "Diskonigoj",
"notifications.filter.favourites": "Stelumoj",
- "notifications.filter.follows": "Sekvoj",
+ "notifications.filter.follows": "Sekvatoj",
"notifications.filter.mentions": "Mencioj",
"notifications.filter.polls": "Balotenketaj rezultoj",
"notifications.filter.statuses": "Ĝisdatigoj de homoj, kiujn vi sekvas",
@@ -443,6 +587,23 @@
"notifications.permission_denied": "Labortablaj sciigoj ne disponeblas pro peto antaŭe rifuzita de retumiloj",
"notifications.permission_denied_alert": "Labortablaj sciigoj ne povas esti ebligitaj, ĉar retumilpermeso antaŭe estis rifuzita",
"notifications.permission_required": "Labortablaj sciigoj ne disponeblas ĉar la bezonata permeso ne estis donita.",
+ "notifications.policy.accept": "Akcepti",
+ "notifications.policy.accept_hint": "Montri en sciigoj",
+ "notifications.policy.drop": "Ignori",
+ "notifications.policy.drop_hint": "Sendi al la malpleno, por neniam esti vidita denove",
+ "notifications.policy.filter": "Filtri",
+ "notifications.policy.filter_hint": "Sendi al filtritaj sciigoj-enirkesto",
+ "notifications.policy.filter_limited_accounts_hint": "Limigita de servilaj moderigantoj",
+ "notifications.policy.filter_limited_accounts_title": "Moderigitaj kontoj",
+ "notifications.policy.filter_new_accounts.hint": "Kreite en la {days, plural, one {lasta tago} other {# lastaj tagoj}}",
+ "notifications.policy.filter_new_accounts_title": "Novaj kontoj",
+ "notifications.policy.filter_not_followers_hint": "Inkluzive de homoj, kiuj sekvis vin malpli ol {days, plural, one {unu tago} other {# tagoj}}",
+ "notifications.policy.filter_not_followers_title": "Homoj, kiuj ne sekvas vin",
+ "notifications.policy.filter_not_following_hint": "Ĝis vi permane aprobas ilin",
+ "notifications.policy.filter_not_following_title": "Homoj, kiujn vi ne sekvas",
+ "notifications.policy.filter_private_mentions_hint": "Filtrite krom se ĝi respondas al via propra mencio aŭ se vi sekvas la sendinton",
+ "notifications.policy.filter_private_mentions_title": "Nepetitaj privataj mencioj",
+ "notifications.policy.title": "Administri sciigojn de…",
"notifications_permission_banner.enable": "Ŝalti retumilajn sciigojn",
"notifications_permission_banner.how_to_control": "Por ricevi sciigojn kiam Mastodon ne estas malfermita, ebligu labortablajn sciigojn. Vi povas regi precize kiuj specoj de interagoj generas labortablajn sciigojn per la supra butono {icon} post kiam ili estas ebligitaj.",
"notifications_permission_banner.title": "Neniam preterlasas iun ajn",
@@ -452,8 +613,8 @@
"onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Saluton #Mastodon!",
"onboarding.follows.empty": "Bedaŭrinde, neniu rezulto estas montrebla nuntempe. Vi povas provi serĉi aŭ foliumi la esploran paĝon por trovi kontojn por sekvi, aŭ retrovi baldaŭ.",
- "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
- "onboarding.follows.title": "Popular on Mastodon",
+ "onboarding.follows.lead": "Via hejma fluo estas la ĉefa maniero sperti Mastodon. Ju pli da homoj vi sekvas, des pli aktiva kaj interesa ĝi estos. Por komenci, jen kelkaj sugestoj:",
+ "onboarding.follows.title": "Agordi vian hejman fluon",
"onboarding.profile.discoverable": "Trovebligi mian profilon",
"onboarding.profile.discoverable_hint": "Kiam vi aliĝi al trovebleco ĉe Mastodon, viaj afiŝoj eble aperos en serĉaj rezultoj kaj populariĝoj, kaj via profilo eble estas sugestota al personoj kun similaj intereseoj al vi.",
"onboarding.profile.display_name": "Publika nomo",
@@ -474,7 +635,7 @@
"onboarding.start.title": "Vi atingas ĝin!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
- "onboarding.steps.publish_status.body": "Say hello to the world.",
+ "onboarding.steps.publish_status.body": "Salutu la mondon per teksto, fotoj, filmetoj aŭ balotenketoj {emoji}",
"onboarding.steps.publish_status.title": "Fari vian unuan afiŝon",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Customize your profile",
@@ -504,6 +665,7 @@
"privacy.private.short": "Sekvantoj",
"privacy.public.long": "Ĉiujn ajn ĉe kaj ekster Mastodon",
"privacy.public.short": "Publika",
+ "privacy.unlisted.additional": "Ĉi tio kondutas ekzakte kiel publika, krom ke la afiŝo ne aperos en vivaj fluoj aŭ kradvortoj, esploro aŭ Mastodon-serĉo, eĉ se vi estas enskribita en la tuta konto.",
"privacy.unlisted.long": "Malpli algoritmaj fanfaroj",
"privacy.unlisted.short": "Diskrete publika",
"privacy_policy.last_updated": "Laste ĝisdatigita en {date}",
@@ -523,7 +685,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hodiaŭ",
+ "reply_indicator.attachments": "{count, plural, one {# aldonaĵo} other {# aldonaĵoj}}",
"reply_indicator.cancel": "Nuligi",
+ "reply_indicator.poll": "Balotenketo",
"report.block": "Bloki",
"report.block_explanation": "Vi ne vidos iliajn afiŝojn. Ili ne povos vidi viajn afiŝojn, nek sekvi vin. Ili ne scios, ke vi blokas ilin.",
"report.categories.legal": "Laŭleĝa",
@@ -566,9 +730,13 @@
"report.unfollow_explanation": "Vi sekvas ĉi tiun konton. Por ne plu vidi ĝiajn afiŝojn en via hejma templinio, ĉesu sekvi ĝin.",
"report_notification.attached_statuses": "{count, plural, one {{count} afiŝo almetita} other {{count} afiŝoj almetitaj}}",
"report_notification.categories.legal": "Laŭleĝa",
+ "report_notification.categories.legal_sentence": "kontraŭleĝa enhavo",
"report_notification.categories.other": "Alia",
+ "report_notification.categories.other_sentence": "alia",
"report_notification.categories.spam": "Trudmesaĝo",
+ "report_notification.categories.spam_sentence": "trudmesaĝo",
"report_notification.categories.violation": "Malobservo de la regulo",
+ "report_notification.categories.violation_sentence": "malobservo de la regulo",
"report_notification.open": "Malfermi la raporton",
"search.no_recent_searches": "Neniuj lastaj serĉoj",
"search.placeholder": "Serĉi",
@@ -596,8 +764,11 @@
"server_banner.about_active_users": "Personoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
"server_banner.active_users": "aktivaj uzantoj",
"server_banner.administered_by": "Administrata de:",
+ "server_banner.is_one_of_many": "{domain} estas unu el la multaj sendependaj Mastodon-serviloj, kiujn vi povas uzi por partopreni en la fediverso.",
"server_banner.server_stats": "Statistikoj de la servilo:",
"sign_in_banner.create_account": "Krei konton",
+ "sign_in_banner.follow_anyone": "Sekvi iun ajn tra la fediverso kaj vidi ĉion en kronologia ordo. Neniuj algoritmoj, reklamoj aŭ klakbetoj videblas.",
+ "sign_in_banner.mastodon_is": "Mastodonto estas la plej bona maniero por resti flank-al-flanke kun kio okazas.",
"sign_in_banner.sign_in": "Saluti",
"sign_in_banner.sso_redirect": "Ensalutu aŭ Registriĝi",
"status.admin_account": "Malfermi fasadon de moderigado por @{name}",
@@ -607,18 +778,19 @@
"status.bookmark": "Aldoni al la legosignoj",
"status.cancel_reblog_private": "Ne plu diskonigi",
"status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi",
+ "status.continued_thread": "Daŭrigis fadenon",
"status.copy": "Kopii la ligilon al la mesaĝo",
"status.delete": "Forigi",
"status.detailed_status": "Detala konversacia vido",
"status.direct": "Private mencii @{name}",
"status.direct_indicator": "Privata mencio",
"status.edit": "Redakti",
+ "status.edited": "Laste redaktita {date}",
"status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}",
- "status.embed": "Enkorpigi",
+ "status.embed": "Akiri enkorpigan kodon",
"status.favourite": "Ŝatata",
+ "status.favourites": "{count, plural, one {plej ŝatata} other {plej ŝatataj}}",
"status.filter": "Filtri ĉi tiun afiŝon",
- "status.filtered": "Filtrita",
- "status.hide": "Kaŝi mesaĝon",
"status.history.created": "{name} kreis {date}",
"status.history.edited": "{name} redaktis {date}",
"status.load_more": "Ŝargi pli",
@@ -636,19 +808,18 @@
"status.reblog": "Diskonigi",
"status.reblog_private": "Diskonigi kun la sama videbleco",
"status.reblogged_by": "{name} diskonigis",
+ "status.reblogs": "{count, plural, one {diskonigo} other {diskonigoj}}",
"status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun afiŝon. Kiam iu faras tion, ri aperos ĉi tie.",
"status.redraft": "Forigi kaj reskribi",
"status.remove_bookmark": "Forigi legosignon",
+ "status.replied_in_thread": "Respondis en fadeno",
"status.replied_to": "Respondis al {name}",
"status.reply": "Respondi",
"status.replyAll": "Respondi al la fadeno",
"status.report": "Raporti @{name}",
"status.sensitive_warning": "Tikla enhavo",
"status.share": "Kundividi",
- "status.show_filter_reason": "Ĉial montri",
- "status.show_less": "Montri malpli",
"status.show_less_all": "Montri malpli ĉiun",
- "status.show_more": "Montri pli",
"status.show_more_all": "Montri pli ĉiun",
"status.show_original": "Montru originalon",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -667,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minuto} other {# minutoj}} restas",
"time_remaining.moments": "Momenteto restas",
"time_remaining.seconds": "{number, plural, one {# sekundo} other {# sekundoj}} restas",
- "timeline_hint.remote_resource_not_displayed": "{resource} de aliaj serviloj ne estas montrata.",
- "timeline_hint.resources.followers": "Sekvantoj",
- "timeline_hint.resources.follows": "Sekvatoj",
- "timeline_hint.resources.statuses": "Pli malnovaj mesaĝoj",
"trends.counter_by_accounts": "{count, plural, one {{counter} persono} other {{counter} personoj}} dum la pasinta{days, plural, one { tago} other {j {days} tagoj}}",
"trends.trending_now": "Nunaj furoraĵoj",
"ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 7da39b88ccf..8a37a33df2e 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -11,7 +11,7 @@
"about.not_available": "Esta información no está disponible en este servidor.",
"about.powered_by": "Redes sociales descentralizadas con tecnología de {mastodon}",
"about.rules": "Reglas del servidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota personal",
"account.add_or_remove_from_list": "Agregar o quitar de las listas",
"account.badges.bot": "Automatizada",
"account.badges.group": "Grupo",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloquear dominio {domain}",
"account.block_short": "Bloquear",
"account.blocked": "Bloqueado",
- "account.browse_more_on_origin_server": "Explorar más en el perfil original",
"account.cancel_follow_request": "Dejar de seguir",
"account.copy": "Copiar enlace al perfil",
"account.direct": "Mención privada a @{name}",
@@ -37,7 +36,7 @@
"account.followers.empty": "Todavía nadie sigue a este usuario.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Siguiendo",
- "account.following_counter": "{count, plural, other {Siguiendo a {counter}}}",
+ "account.following_counter": "{count, plural, one {siguiendo a {counter}} other {siguiendo a {counter}}}",
"account.follows.empty": "Todavía este usuario no sigue a nadie.",
"account.go_to_profile": "Ir al perfil",
"account.hide_reblogs": "Ocultar adhesiones de @{name}",
@@ -98,6 +97,8 @@
"block_modal.title": "¿Bloquear usuario?",
"block_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.",
"boost_modal.combo": "Podés hacer clic en {combo} para saltar esto la próxima vez",
+ "boost_modal.reblog": "¿Adherir al mensaje?",
+ "boost_modal.undo_reblog": "¿Dejar de adherir al mensaje?",
"bundle_column_error.copy_stacktrace": "Copiar informe de error",
"bundle_column_error.error.body": "La página solicitada no pudo ser cargada. Podría deberse a un error de programación en nuestro código o a un problema de compatibilidad con el navegador web.",
"bundle_column_error.error.title": "¡Epa!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.confirm": "Bloquear",
- "confirmations.cancel_follow_request.confirm": "Retirar solicitud",
- "confirmations.cancel_follow_request.message": "¿Estás seguro que querés retirar tu solicitud para seguir a {name}?",
"confirmations.delete.confirm": "Eliminar",
"confirmations.delete.message": "¿Estás seguro que querés eliminar este mensaje?",
+ "confirmations.delete.title": "¿Eliminar mensaje?",
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?",
+ "confirmations.delete_list.title": "¿Eliminar lista?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tenés cambios sin guardar en la descripción de medios o en la vista previa, ¿querés descartarlos de todos modos?",
- "confirmations.domain_block.confirm": "Bloquear servidor",
- "confirmations.domain_block.message": "¿Estás completamente seguro que querés bloquear el {domain} entero? En la mayoría de los casos, unos cuantos bloqueos y silenciados puntuales son suficientes y preferibles. No vas a ver contenido de ese dominio en ninguna de tus líneas temporales o en tus notificaciones. Tus seguidores de ese dominio serán quitados.",
"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.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
+ "confirmations.logout.title": "¿Cerrar sesión?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.redraft.confirm": "Eliminar mensaje original y editarlo",
"confirmations.redraft.message": "¿Estás seguro que querés eliminar este mensaje y volver a editarlo? Se perderán las veces marcadas como favorito y sus adhesiones, y las respuestas al mensaje original quedarán huérfanas.",
+ "confirmations.redraft.title": "¿Eliminar y volver a redactar mensaje?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?",
+ "confirmations.reply.title": "¿Sobrescribir mensaje?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro que querés dejar de seguir a {name}?",
+ "confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
+ "content_warning.hide": "Ocultar mensaje",
+ "content_warning.show": "Mostrar de todos modos",
"conversation.delete": "Eliminar conversación",
"conversation.mark_as_read": "Marcar como leída",
"conversation.open": "Ver conversación",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva",
"filter_modal.select_filter.title": "Filtrar este mensaje",
"filter_modal.title.status": "Filtrar un mensaje",
- "filtered_notifications_banner.mentions": "{count, plural, one {mención} other {menciones}}",
- "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer",
+ "filter_warning.matches_filter": "Coincide con el filtro “{title}”",
+ "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer",
"filtered_notifications_banner.title": "Notificaciones filtradas",
"firehose.all": "Todos",
"firehose.local": "Este servidor",
@@ -347,6 +353,14 @@
"hashtag.follow": "Seguir etiqueta",
"hashtag.unfollow": "Dejar de seguir etiqueta",
"hashtags.and_other": "…y {count, plural, other {# más}}",
+ "hints.profiles.followers_may_be_missing": "Es posible que falten seguidores de este perfil.",
+ "hints.profiles.follows_may_be_missing": "Es posible que falten seguimientos a este perfil.",
+ "hints.profiles.posts_may_be_missing": "Es posible que falten mensajes de este perfil.",
+ "hints.profiles.see_more_followers": "Ver más seguidores en {domain}",
+ "hints.profiles.see_more_follows": "Ver más seguimientos en {domain}",
+ "hints.profiles.see_more_posts": "Ver más mensajes en {domain}",
+ "hints.threads.replies_may_be_missing": "Es posible que falten respuestas de otros servidores.",
+ "hints.threads.see_more": "Ver más respuestas en {domain}",
"home.column_settings.show_reblogs": "Mostrar adhesiones",
"home.column_settings.show_replies": "Mostrar respuestas",
"home.hide_announcements": "Ocultar anuncios",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Ver actualizaciones",
"home.pending_critical_update.title": "¡Actualización de seguridad crítica disponible!",
"home.show_announcements": "Mostrar anuncios",
+ "ignore_notifications_modal.disclaimer": "Mastodon no puede informar a los usuarios que ignoraste sus notificaciones. Ignorar notificaciones no impedirá que se sigan enviando los mensajes.",
+ "ignore_notifications_modal.filter_instead": "Filtrar en vez de ignorar",
+ "ignore_notifications_modal.filter_to_act_users": "Aún podrás aceptar, rechazar o denunciar a usuarios",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrar ayuda a evitar confusiones potenciales",
+ "ignore_notifications_modal.filter_to_review_separately": "Podés revisar las notificaciones filtradas por separado",
+ "ignore_notifications_modal.ignore": "Ignorar notificaciones",
+ "ignore_notifications_modal.limited_accounts_title": "¿Ignorar notificaciones de cuentas moderadas?",
+ "ignore_notifications_modal.new_accounts_title": "¿Ignorar notificaciones de cuentas nuevas?",
+ "ignore_notifications_modal.not_followers_title": "¿Ignorar notificaciones de cuentas que no te siguen?",
+ "ignore_notifications_modal.not_following_title": "¿Ignorar notificaciones de cuentas a las que no seguís?",
+ "ignore_notifications_modal.private_mentions_title": "¿Ignorar notificaciones de menciones privadas no solicitadas?",
"interaction_modal.description.favourite": "Con una cuenta en Mastodon, podés marcar este mensaje como favorito para que el autor sepa que lo apreciás y lo guardás para más adelante.",
"interaction_modal.description.follow": "Con una cuenta en Mastodon, podés seguir a {name} para recibir sus mensajes en tu línea temporal principal.",
"interaction_modal.description.reblog": "Con una cuenta en Mastodon, podés adherir a este mensaje para compartirlo con tus propios seguidores.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Quitar el foco del área de texto de redacción o de búsqueda",
"keyboard_shortcuts.up": "Subir en la lista",
"lightbox.close": "Cerrar",
- "lightbox.compress": "Comprimir cuadro de vista de imagen",
- "lightbox.expand": "Expandir cuadro de vista de imagen",
"lightbox.next": "Siguiente",
"lightbox.previous": "Anterior",
+ "lightbox.zoom_in": "Ampliar al tamaño real",
+ "lightbox.zoom_out": "Ampliar hasta ajustar",
"limited_account_hint.action": "Mostrar perfil de todos modos",
"limited_account_hint.title": "Este perfil fue ocultado por los moderadores de {domain}.",
"link_preview.author": "Por {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Tus listas",
"load_pending": "{count, plural, one {# elemento nuevo} other {# elementos nuevos}}",
"loading_indicator.label": "Cargando…",
- "media_gallery.toggle_visible": "Ocultar {number, plural, one {imagen} other {imágenes}}",
+ "media_gallery.hide": "Ocultar",
"moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te mudaste a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ocultar en las notificaciones",
"mute_modal.hide_options": "Ocultar opciones",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.",
"mute_modal.you_wont_see_posts": "Todavía pueden ver tus mensajes, pero vos no verás los suyos.",
"navigation_bar.about": "Información",
+ "navigation_bar.administration": "Administración",
"navigation_bar.advanced_interface": "Abrir en interface web avanzada",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Cuentas seguidas y seguidores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Cerrar sesión",
+ "navigation_bar.moderation": "Moderación",
"navigation_bar.mutes": "Usuarios silenciados",
"navigation_bar.opened_in_classic_interface": "Los mensajes, las cuentas y otras páginas específicas se abren predeterminadamente en la interface web clásica.",
"navigation_bar.personal": "Personal",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Seguridad",
"not_signed_in_indicator.not_signed_in": "Necesitás iniciar sesión para acceder a este recurso.",
"notification.admin.report": "{name} denunció a {target}",
+ "notification.admin.report_account": "{name} denunció {count, plural, one {un mensaje} other {# mensajes}} de {target} por {category}",
+ "notification.admin.report_account_other": "{name} denunció {count, plural, one {un mensaje} other {# mensajes}} de {target}",
+ "notification.admin.report_statuses": "{name} denunció a {target} por {category}",
+ "notification.admin.report_statuses_other": "{name} denunció a {target}",
"notification.admin.sign_up": "Se registró {name}",
+ "notification.admin.sign_up.name_and_others": "Se registraron {name} y {count, plural, one {# cuenta más} other {# cuentas más}}",
"notification.favourite": "{name} marcó tu mensaje como favorito",
+ "notification.favourite.name_and_others_with_link": "{name} y {count, plural, one {# cuenta más} other {# cuentas más}} marcaron tu mensaje como favorito",
"notification.follow": "{name} te empezó a seguir",
+ "notification.follow.name_and_others": "{name} y {count, plural, one {# cuenta más} other {# cuentas más}} te están siguiendo",
"notification.follow_request": "{name} solicitó seguirte",
- "notification.mention": "{name} te mencionó",
+ "notification.follow_request.name_and_others": "{name} y {count, plural, one {# cuenta más} other {# cuentas más}} solicitaron seguirte",
+ "notification.label.mention": "Mención",
+ "notification.label.private_mention": "Mención privada",
+ "notification.label.private_reply": "Respuesta privada",
+ "notification.label.reply": "Respuesta",
+ "notification.mention": "Mención",
"notification.moderation-warning.learn_more": "Aprendé más",
"notification.moderation_warning": "Recibiste una advertencia de moderación",
"notification.moderation_warning.action_delete_statuses": "Se eliminaron algunos de tus mensajes.",
@@ -487,6 +526,7 @@
"notification.own_poll": "Tu encuesta finalizó",
"notification.poll": "Finalizó una encuesta en la que votaste",
"notification.reblog": "{name} adhirió a tu mensaje",
+ "notification.reblog.name_and_others_with_link": "{name} y {count, plural, one {# cuenta más} other {# cuentas más}} marcaron tu mensaje como favorito",
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
"notification.relationships_severance_event.account_suspension": "Un administrador de {from} suspendió a {target}, lo que significa que ya no podés recibir actualizaciones de esa cuenta o interactuar con la misma.",
"notification.relationships_severance_event.domain_block": "Un administrador de {from} bloqueó a {target}, incluyendo {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que seguís.",
@@ -495,11 +535,27 @@
"notification.status": "{name} acaba de enviar un mensaje",
"notification.update": "{name} editó un mensaje",
"notification_requests.accept": "Aceptar",
+ "notification_requests.accept_multiple": "{count, plural, one {Aceptar # solicitud…} other {Aceptar # solicitudes…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceptar solicitud} other {Aceptar solicitudes}}",
+ "notification_requests.confirm_accept_multiple.message": "Estás a punto de aceptar {count, plural, one {una solicitud} other {# solicitudes}}. ¿Estás seguro de que querés continuar?",
+ "notification_requests.confirm_accept_multiple.title": "¿Aceptar solicitudes de notificación?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Descartar solicitud} other {Descartar solicitudes}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Estás a punto de descartar {count, plural, one {una solicitud} other {# solicitudes}}. No vas a poder acceder fácilmente a {count, plural, one {ella} other {ellas}} de nuevo. ¿Estás seguro de que querés continuar?",
+ "notification_requests.confirm_dismiss_multiple.title": "¿Descartar solicitudes de notificación?",
"notification_requests.dismiss": "Descartar",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Descartar # solicitud…} other {Descartar # solicitudes…}}",
+ "notification_requests.edit_selection": "Editar",
+ "notification_requests.exit_selection": "Listo",
+ "notification_requests.explainer_for_limited_account": "Las notificaciones de esta cuenta fueron filtradas porque la misma fue limitada por un moderador.",
+ "notification_requests.explainer_for_limited_remote_account": "Las notificaciones de esta cuenta fueron filtradas porque la cuenta o su servidor fueron limitados por un moderador.",
+ "notification_requests.maximize": "Maximizar",
+ "notification_requests.minimize_banner": "Minimizar la barra de notificaciones filtradas",
"notification_requests.notifications_from": "Notificaciones de {name}",
"notification_requests.title": "Notificaciones filtradas",
+ "notification_requests.view": "Ver notificaciones",
"notifications.clear": "Limpiar notificaciones",
"notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?",
+ "notifications.clear_title": "¿Limpiar notificaciones?",
"notifications.column_settings.admin.report": "Nuevas denuncias:",
"notifications.column_settings.admin.sign_up": "Nuevos registros:",
"notifications.column_settings.alert": "Notificaciones de escritorio",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Las notificaciones de escritorio no están disponibles, debido a una solicitud de permiso del navegador web previamente denegada",
"notifications.permission_denied_alert": "No se pueden habilitar las notificaciones de escritorio, ya que el permiso del navegador fue denegado antes",
"notifications.permission_required": "Las notificaciones de escritorio no están disponibles porque no se concedió el permiso requerido.",
+ "notifications.policy.accept": "Aceptar",
+ "notifications.policy.accept_hint": "Mostrar en notificaciones",
+ "notifications.policy.drop": "Ignorar",
+ "notifications.policy.drop_hint": "Enviar al vacío, no volver a mostrar nunca",
+ "notifications.policy.filter": "Filtrar",
+ "notifications.policy.filter_hint": "Enviar a la bandeja de entrada de notificaciones filtradas",
+ "notifications.policy.filter_limited_accounts_hint": "Limitada por los moderadores del servidor",
+ "notifications.policy.filter_limited_accounts_title": "Cuentas moderadas",
"notifications.policy.filter_new_accounts.hint": "Creada hace {days, plural, one {un día} other {# días}}",
"notifications.policy.filter_new_accounts_title": "Nuevas cuentas",
"notifications.policy.filter_not_followers_hint": "Incluyendo cuentas que te han estado siguiendo menos de {days, plural, one {un día} other {# días}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Cuentas que no seguís",
"notifications.policy.filter_private_mentions_hint": "Filtradas, a menos que sea en respuesta a tu propia mención o si seguís al remitente",
"notifications.policy.filter_private_mentions_title": "Menciones privadas no solicitadas",
- "notifications.policy.title": "Filtrar notificaciones de…",
+ "notifications.policy.title": "Administrar notificaciones de…",
"notifications_permission_banner.enable": "Habilitar notificaciones de escritorio",
"notifications_permission_banner.how_to_control": "Para recibir notificaciones cuando Mastodon no está abierto, habilitá las notificaciones de escritorio. Podés controlar con precisión qué tipos de interacciones generan notificaciones de escritorio a través del botón {icon} de arriba, una vez que estén habilitadas.",
"notifications_permission_banner.title": "No te pierdas nada",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Estás siguiendo a esta cuenta. Para no ver sus mensajes en tu línea temporal principal, dejá de seguirla.",
"report_notification.attached_statuses": "{count, plural, one {{count} mensaje adjunto} other {{count} mensajes adjuntos}}",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "contenido ilegal",
"report_notification.categories.other": "Otros",
+ "report_notification.categories.other_sentence": "[otras categorías]",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Violación de regla",
+ "report_notification.categories.violation_sentence": "violación de regla",
"report_notification.open": "Abrir denuncia",
"search.no_recent_searches": "Sin búsquedas recientes",
"search.placeholder": "Buscar",
@@ -710,6 +778,7 @@
"status.bookmark": "Marcar",
"status.cancel_reblog_private": "Quitar adhesión",
"status.cannot_reblog": "No se puede adherir a este mensaje",
+ "status.continued_thread": "Continuación de hilo",
"status.copy": "Copiar enlace al mensaje",
"status.delete": "Eliminar",
"status.detailed_status": "Vista de conversación detallada",
@@ -718,12 +787,10 @@
"status.edit": "Editar",
"status.edited": "Última edición: {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",
- "status.embed": "Insertar",
+ "status.embed": "Obtener código para insertar",
"status.favourite": "Marcar como favorito",
"status.favourites": "{count, plural, one {# voto} other {# votos}}",
"status.filter": "Filtrar este mensaje",
- "status.filtered": "Filtrado",
- "status.hide": "Ocultar mensaje",
"status.history.created": "Creado por {name}, {date}",
"status.history.edited": "Editado por {name}, {date}",
"status.load_more": "Cargar más",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.",
"status.redraft": "Eliminar mensaje original y editarlo",
"status.remove_bookmark": "Quitar marcador",
+ "status.replied_in_thread": "Respuesta en hilo",
"status.replied_to": "Respondió a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder al hilo",
"status.report": "Denunciar a @{name}",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
- "status.show_filter_reason": "Mostrar de todos modos",
- "status.show_less": "Mostrar menos",
"status.show_less_all": "Mostrar menos para todo",
- "status.show_more": "Mostrar más",
"status.show_more_all": "Mostrar más para todo",
"status.show_original": "Mostrar original",
"status.title.with_attachments": "{user} envió {attachmentCount, plural, one {un adjunto} other {{attachmentCount} adjuntos}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural,one {queda # minuto} other {quedan # minutos}}",
"time_remaining.moments": "Momentos restantes",
"time_remaining.seconds": "{number, plural,one {queda # segundo} other {quedan # segundos}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} desde otros servidores no se muestran.",
- "timeline_hint.resources.followers": "Tus seguidores",
- "timeline_hint.resources.follows": "Las cuentas que seguís",
- "timeline_hint.resources.statuses": "Mensajes más antiguos",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en {days, plural, one {el pasado día} other {los pasados {days} días}}",
"trends.trending_now": "Tendencia ahora",
"ui.beforeunload": "Tu borrador se perderá si abandonás Mastodon.",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index d3e02cd6e11..52ebf0ae180 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -11,7 +11,7 @@
"about.not_available": "Esta información no está disponible en este servidor.",
"about.powered_by": "Medio social descentralizado con tecnología de {mastodon}",
"about.rules": "Reglas del servidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota personal",
"account.add_or_remove_from_list": "Agregar o eliminar de las listas",
"account.badges.bot": "Bot",
"account.badges.group": "Grupo",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloquear dominio {domain}",
"account.block_short": "Bloquear",
"account.blocked": "Bloqueado",
- "account.browse_more_on_origin_server": "Ver más en el perfil original",
"account.cancel_follow_request": "Retirar solicitud de seguimiento",
"account.copy": "Copiar enlace al perfil",
"account.direct": "Mención privada @{name}",
@@ -35,16 +34,16 @@
"account.follow_back": "Seguir también",
"account.followers": "Seguidores",
"account.followers.empty": "Todavía nadie sigue a este usuario.",
- "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
+ "account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Siguiendo",
- "account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
+ "account.following_counter": "{count, plural, one {{counter} siguiendo} other {{counter} siguiendo}}",
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
"account.go_to_profile": "Ir al perfil",
- "account.hide_reblogs": "Ocultar retoots de @{name}",
+ "account.hide_reblogs": "Ocultar impulsos de @{name}",
"account.in_memoriam": "En memoria.",
"account.joined_short": "Se unió",
"account.languages": "Cambiar idiomas suscritos",
- "account.link_verified_on": "El proprietario de este link fue comprobado el {date}",
+ "account.link_verified_on": "El proprietario de este enlace fue comprobado el {date}",
"account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.",
"account.media": "Multimedia",
"account.mention": "Mencionar a @{name}",
@@ -62,8 +61,8 @@
"account.requested": "Esperando aprobación. Haga clic para cancelar la solicitud de seguimiento",
"account.requested_follow": "{name} ha solicitado seguirte",
"account.share": "Compartir el perfil de @{name}",
- "account.show_reblogs": "Mostrar retoots de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+ "account.show_reblogs": "Mostrar impulsos de @{name}",
+ "account.statuses_counter": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
"account.unblock": "Desbloquear a @{name}",
"account.unblock_domain": "Mostrar a {domain}",
"account.unblock_short": "Desbloquear",
@@ -71,8 +70,8 @@
"account.unfollow": "Dejar de seguir",
"account.unmute": "Dejar de silenciar a @{name}",
"account.unmute_notifications_short": "Dejar de silenciar notificaciones",
- "account.unmute_short": "Desmutear",
- "account_note.placeholder": "Clic para añadir nota",
+ "account.unmute_short": "Dejar de silenciar",
+ "account_note.placeholder": "Haz clic para agregar una nota",
"admin.dashboard.daily_retention": "Tasa de retención de usuarios por día después de unirse",
"admin.dashboard.monthly_retention": "Tasa de retención de usuarios por mes después de unirse",
"admin.dashboard.retention.average": "Promedio",
@@ -98,6 +97,8 @@
"block_modal.title": "¿Bloquear usuario?",
"block_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.",
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez",
+ "boost_modal.reblog": "¿Deseas impulsar la publicación?",
+ "boost_modal.undo_reblog": "¿Dejar de impulsar la publicación?",
"bundle_column_error.copy_stacktrace": "Copiar informe de error",
"bundle_column_error.error.body": "La página solicitada no pudo ser renderizada. Podría deberse a un error en nuestro código o a un problema de compatibilidad con el navegador.",
"bundle_column_error.error.title": "¡Oh, no!",
@@ -129,7 +130,7 @@
"column.lists": "Listas",
"column.mutes": "Usuarios silenciados",
"column.notifications": "Notificaciones",
- "column.pins": "Toots fijados",
+ "column.pins": "Publicaciones fijadas",
"column.public": "Línea de tiempo federada",
"column_back_button.label": "Atrás",
"column_header.hide_settings": "Ocultar configuración",
@@ -147,10 +148,10 @@
"compose.published.body": "Publicado.",
"compose.published.open": "Abrir",
"compose.saved.body": "Publicación guardada.",
- "compose_form.direct_message_warning_learn_more": "Aprender mas",
+ "compose_form.direct_message_warning_learn_more": "Saber más",
"compose_form.encryption_warning": "Las publicaciones en Mastodon no están cifradas de extremo a extremo. No comparta ninguna información sensible en Mastodon.",
- "compose_form.hashtag_warning": "Este toot no será listado bajo ningún hashtag dado que no es público. Solo toots públicos pueden ser buscados por hashtag.",
- "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
+ "compose_form.hashtag_warning": "Esta publicación no será listada bajo ninguna etiqueta dado que no es pública. Solo publicaciones públicas pueden ser buscadas por etiqueta.",
+ "compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todos pueden seguirte para ver tus publicaciones solo para seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
"compose_form.placeholder": "¿En qué estás pensando?",
"compose_form.poll.duration": "Duración de la encuesta",
@@ -164,32 +165,37 @@
"compose_form.publish_form": "Publicar",
"compose_form.reply": "Respuesta",
"compose_form.save_changes": "Actualización",
- "compose_form.spoiler.marked": "Texto oculto tras la advertencia",
- "compose_form.spoiler.unmarked": "Texto no oculto",
+ "compose_form.spoiler.marked": "Quitar advertencia de contenido",
+ "compose_form.spoiler.unmarked": "Añadir advertencia de contenido",
"compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.confirm": "Bloquear",
- "confirmations.cancel_follow_request.confirm": "Retirar solicitud",
- "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?",
"confirmations.delete.confirm": "Eliminar",
- "confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?",
+ "confirmations.delete.message": "¿Estás seguro de que quieres borrar esta publicación?",
+ "confirmations.delete.title": "¿Eliminar publicación?",
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
+ "confirmations.delete_list.title": "¿Deseas eliminar la lista?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo, ¿deseas descartarlos de cualquier manera?",
- "confirmations.domain_block.confirm": "Bloquear servidor",
- "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.",
"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.logout.confirm": "Cerrar sesión",
- "confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?",
+ "confirmations.logout.message": "¿Estás seguro de que quieres cerrar la sesión?",
+ "confirmations.logout.title": "¿Deseas cerrar sesión?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.redraft.confirm": "Borrar y volver a borrador",
"confirmations.redraft.message": "¿Estás seguro que quieres borrar esta publicación y editarla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán separadas.",
+ "confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?",
+ "confirmations.reply.title": "¿Sobreescribir publicación?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
+ "confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
+ "content_warning.hide": "Ocultar publicación",
+ "content_warning.show": "Mostrar de todos modos",
"conversation.delete": "Borrar conversación",
"conversation.mark_as_read": "Marcar como leído",
"conversation.open": "Ver conversación",
@@ -207,8 +213,8 @@
"dismissable_banner.dismiss": "Descartar",
"dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.",
"dismissable_banner.explore_statuses": "Estas son las publicaciones que están en tendencia en la red ahora. Las publicaciones recientes con más impulsos y favoritos se muestran más arriba.",
- "dismissable_banner.explore_tags": "Se trata de hashtags que están ganando adeptos en las redes sociales hoy en día. Los hashtags que son utilizados por más personas diferentes se clasifican mejor.",
- "dismissable_banner.public_timeline": "Estos son los toots públicos más recientes de personas en la web social a las que sigue la gente en {domain}.",
+ "dismissable_banner.explore_tags": "Se trata de etiquetas que están ganando adeptos en las redes sociales 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 públicas más recientes de personas en la web social a las que sigue la gente en {domain}.",
"domain_block_modal.block": "Bloquear servidor",
"domain_block_modal.block_account_instead": "Bloquear @{name} en su lugar",
"domain_block_modal.they_can_interact_with_old_posts": "Las personas de este servidor pueden interactuar con tus publicaciones antiguas.",
@@ -230,7 +236,7 @@
"domain_pill.your_handle": "Tu alias:",
"domain_pill.your_server": "Tu hogar digital, donde residen todas tus publicaciones. ¿No te gusta este sitio? Muévete a otro servidor en cualquier momento y llévate a tus seguidores.",
"domain_pill.your_username": "Tu identificador único en este servidor. Es posible encontrar usuarios con el mismo nombre de usuario en diferentes servidores.",
- "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.",
+ "embed.instructions": "Añade esta publicación a tu sitio web con el siguiente código.",
"embed.preview": "Así es como se verá:",
"emoji_button.activity": "Actividad",
"emoji_button.clear": "Borrar",
@@ -243,16 +249,16 @@
"emoji_button.objects": "Objetos",
"emoji_button.people": "Gente",
"emoji_button.recent": "Usados frecuentemente",
- "emoji_button.search": "Buscar…",
+ "emoji_button.search": "Buscar...",
"emoji_button.search_results": "Resultados de búsqueda",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viajes y lugares",
"empty_column.account_hides_collections": "Este usuario ha elegido no hacer disponible esta información",
"empty_column.account_suspended": "Cuenta suspendida",
- "empty_column.account_timeline": "¡No hay toots aquí!",
+ "empty_column.account_timeline": "¡No hay publicaciones aquí!",
"empty_column.account_unavailable": "Perfil no disponible",
"empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
- "empty_column.bookmarked_statuses": "Aún no tienes ningún toot guardado como marcador. Cuando guardes uno, se mostrará aquí.",
+ "empty_column.bookmarked_statuses": "Aún no tienes ninguna publicación guardada como marcador. Cuando guardes una, se mostrará aquí.",
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
"empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.",
"empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
@@ -260,8 +266,8 @@
"empty_column.favourited_statuses": "Todavía no tienes publicaciones favoritas. Cuando le des favorito a una publicación se mostrarán acá.",
"empty_column.favourites": "Todavía nadie marcó como favorito esta publicación. Cuando alguien lo haga, se mostrará aquí.",
"empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.",
- "empty_column.followed_tags": "No estás siguiendo ningún hashtag todavía. Cuando lo hagas, aparecerá aquí.",
- "empty_column.hashtag": "No hay nada en este hashtag aún.",
+ "empty_column.followed_tags": "No estás siguiendo ninguna etiqueta todavía. Cuando lo hagas, aparecerá aquí.",
+ "empty_column.hashtag": "No hay nada en esta etiqueta aún.",
"empty_column.home": "No estás siguiendo a nadie aún. Visita {public} o haz búsquedas para empezar y conocer gente nueva.",
"empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.",
"empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva",
"filter_modal.select_filter.title": "Filtrar esta publicación",
"filter_modal.title.status": "Filtrar una publicación",
- "filtered_notifications_banner.mentions": "{count, plural, one {mención} other {menciones}}",
- "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer",
+ "filter_warning.matches_filter": "Coincide con el filtro “{title}”",
+ "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {nadie} one {una persona} other {# people}} que puede que tú conozcas",
"filtered_notifications_banner.title": "Notificaciones filtradas",
"firehose.all": "Todas",
"firehose.local": "Este servidor",
@@ -309,7 +315,7 @@
"follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
"follow_suggestions.dismiss": "No mostrar de nuevo",
"follow_suggestions.featured_longer": "Escogidos por el equipo de {domain}",
- "follow_suggestions.friends_of_friends_longer": "Populares entre las personas a las que sigues",
+ "follow_suggestions.friends_of_friends_longer": "Popular entre las personas a las que sigues",
"follow_suggestions.hints.featured": "Este perfil ha sido seleccionado a mano por el equipo de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las personas que sigues.",
"follow_suggestions.hints.most_followed": "Este perfil es uno de los más seguidos en {domain}.",
@@ -317,11 +323,11 @@
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil es similar a los perfiles que has seguido recientemente.",
"follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
"follow_suggestions.popular_suggestion": "Sugerencia popular",
- "follow_suggestions.popular_suggestion_longer": "Populares en {domain}",
+ "follow_suggestions.popular_suggestion_longer": "Popular en {domain}",
"follow_suggestions.similar_to_recently_followed_longer": "Similares a los perfiles que has seguido recientemente",
"follow_suggestions.view_all": "Ver todo",
"follow_suggestions.who_to_follow": "Recomendamos seguir",
- "followed_tags": "Hashtags seguidos",
+ "followed_tags": "Etiquetas seguidas",
"footer.about": "Acerca de",
"footer.directory": "Directorio de perfiles",
"footer.get_app": "Obtener la aplicación",
@@ -338,8 +344,8 @@
"hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias",
"hashtag.column_settings.select.placeholder": "Introducir etiquetas…",
"hashtag.column_settings.tag_mode.all": "Todos estos",
- "hashtag.column_settings.tag_mode.any": "Cualquiera de estos",
- "hashtag.column_settings.tag_mode.none": "Ninguno de estos",
+ "hashtag.column_settings.tag_mode.any": "Cualquiera de estas",
+ "hashtag.column_settings.tag_mode.none": "Ninguna de estas",
"hashtag.column_settings.tag_toggle": "Incluye etiquetas adicionales para esta columna",
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
@@ -347,13 +353,32 @@
"hashtag.follow": "Seguir etiqueta",
"hashtag.unfollow": "Dejar de seguir etiqueta",
"hashtags.and_other": "…y {count, plural, other {# más}}",
- "home.column_settings.show_reblogs": "Mostrar retoots",
+ "hints.profiles.followers_may_be_missing": "Puede que no se muestren todos los seguidores de este perfil.",
+ "hints.profiles.follows_may_be_missing": "Puede que no se muestren todas las cuentas seguidas por este perfil.",
+ "hints.profiles.posts_may_be_missing": "Puede que no se muestren todas las publicaciones de este perfil.",
+ "hints.profiles.see_more_followers": "Ver más seguidores en {domain}",
+ "hints.profiles.see_more_follows": "Ver más perfiles seguidos en {domain}",
+ "hints.profiles.see_more_posts": "Ver más publicaciones en {domain}",
+ "hints.threads.replies_may_be_missing": "Puede que no se muestren algunas respuestas de otros servidores.",
+ "hints.threads.see_more": "Ver más respuestas en {domain}",
+ "home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respuestas",
"home.hide_announcements": "Ocultar anuncios",
"home.pending_critical_update.body": "¡Por favor actualiza tu servidor Mastodon lo antes posible!",
"home.pending_critical_update.link": "Ver actualizaciones",
"home.pending_critical_update.title": "¡Actualización de seguridad crítica disponible!",
"home.show_announcements": "Mostrar anuncios",
+ "ignore_notifications_modal.disclaimer": "Mastodon no puede informar a los usuarios que has ignorado sus notificaciones. Ignorar notificaciones no impedirá que se sigan enviando los mensajes.",
+ "ignore_notifications_modal.filter_instead": "Filtrar en su lugar",
+ "ignore_notifications_modal.filter_to_act_users": "Aún podrás aceptar, rechazar o reportar usuarios",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrar ayuda a evitar confusiones potenciales",
+ "ignore_notifications_modal.filter_to_review_separately": "Puedes revisar las notificaciones filtradas por separado",
+ "ignore_notifications_modal.ignore": "Ignorar notificaciones",
+ "ignore_notifications_modal.limited_accounts_title": "¿Ignorar notificaciones de cuentas moderadas?",
+ "ignore_notifications_modal.new_accounts_title": "¿Ignorar notificaciones de cuentas nuevas?",
+ "ignore_notifications_modal.not_followers_title": "¿Ignorar notificaciones de personas que no te siguen?",
+ "ignore_notifications_modal.not_following_title": "¿Ignorar notificaciones de personas a las que no sigues?",
+ "ignore_notifications_modal.private_mentions_title": "¿Ignorar notificaciones de menciones privadas no solicitadas?",
"interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta, y guardala para más adelante.",
"interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu fuente de inicio.",
"interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.",
@@ -374,13 +399,13 @@
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
"keyboard_shortcuts.back": "volver atrás",
"keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados",
- "keyboard_shortcuts.boost": "retootear",
+ "keyboard_shortcuts.boost": "Impulsar publicación",
"keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
"keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
"keyboard_shortcuts.description": "Descripción",
"keyboard_shortcuts.direct": "para abrir la columna de menciones privadas",
"keyboard_shortcuts.down": "mover hacia abajo en la lista",
- "keyboard_shortcuts.enter": "abrir estado",
+ "keyboard_shortcuts.enter": "Abrir publicación",
"keyboard_shortcuts.favourite": "Marcar como favorita la publicación",
"keyboard_shortcuts.favourites": "Abrir lista de favoritos",
"keyboard_shortcuts.federated": "abrir el timeline federado",
@@ -394,23 +419,23 @@
"keyboard_shortcuts.my_profile": "abrir tu perfil",
"keyboard_shortcuts.notifications": "abrir la columna de notificaciones",
"keyboard_shortcuts.open_media": "para abrir archivos multimedia",
- "keyboard_shortcuts.pinned": "abrir la lista de toots destacados",
+ "keyboard_shortcuts.pinned": "Abrir la lista de publicaciones fijadas",
"keyboard_shortcuts.profile": "abrir el perfil del autor",
- "keyboard_shortcuts.reply": "para responder",
+ "keyboard_shortcuts.reply": "Responder a la publicación",
"keyboard_shortcuts.requests": "abrir la lista de peticiones de seguidores",
"keyboard_shortcuts.search": "para poner el foco en la búsqueda",
"keyboard_shortcuts.spoilers": "para mostrar/ocultar el campo CW",
"keyboard_shortcuts.start": "abrir la columna \"comenzar\"",
"keyboard_shortcuts.toggle_hidden": "mostrar/ocultar texto tras aviso de contenido (CW)",
"keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios",
- "keyboard_shortcuts.toot": "para comenzar un nuevo toot",
+ "keyboard_shortcuts.toot": "Comenzar una nueva publicación",
"keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda",
"keyboard_shortcuts.up": "para ir hacia arriba en la lista",
"lightbox.close": "Cerrar",
- "lightbox.compress": "Comprimir cuadro de visualización de imagen",
- "lightbox.expand": "Expandir cuadro de visualización de imagen",
"lightbox.next": "Siguiente",
"lightbox.previous": "Anterior",
+ "lightbox.zoom_in": "Ampliar al tamaño real",
+ "lightbox.zoom_out": "Ampliar para ajustar",
"limited_account_hint.action": "Mostrar perfil de todos modos",
"limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.",
"link_preview.author": "Por {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Tus listas",
"load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
"loading_indicator.label": "Cargando…",
- "media_gallery.toggle_visible": "Cambiar visibilidad",
+ "media_gallery.hide": "Ocultar",
"moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ocultar de las notificaciones",
"mute_modal.hide_options": "Ocultar opciones",
@@ -444,11 +469,12 @@
"mute_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.",
"mute_modal.you_wont_see_posts": "Todavía pueden ver tus publicaciones, pero tú no verás las de ellos.",
"navigation_bar.about": "Acerca de",
+ "navigation_bar.administration": "Administración",
"navigation_bar.advanced_interface": "Abrir en interfaz web avanzada",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
"navigation_bar.community_timeline": "Historia local",
- "navigation_bar.compose": "Escribir un nuevo toot",
+ "navigation_bar.compose": "Redactar una nueva publicación",
"navigation_bar.direct": "Menciones privadas",
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios ocultos",
@@ -456,37 +482,51 @@
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Solicitudes para seguirte",
- "navigation_bar.followed_tags": "Hashtags seguidos",
+ "navigation_bar.followed_tags": "Etiquetas seguidas",
"navigation_bar.follows_and_followers": "Siguiendo y seguidores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Cerrar sesión",
+ "navigation_bar.moderation": "Moderación",
"navigation_bar.mutes": "Usuarios silenciados",
"navigation_bar.opened_in_classic_interface": "Publicaciones, cuentas y otras páginas específicas se abren por defecto en la interfaz web clásica.",
"navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Toots fijados",
+ "navigation_bar.pins": "Publicaciones fijadas",
"navigation_bar.preferences": "Preferencias",
"navigation_bar.public_timeline": "Historia federada",
"navigation_bar.search": "Buscar",
"navigation_bar.security": "Seguridad",
"not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.",
"notification.admin.report": "{name} denunció a {target}",
+ "notification.admin.report_account": "{name} reportó {count, plural, one {una publicación} other {# publicaciones}} de {target} por {category}",
+ "notification.admin.report_account_other": "{name} reportó {count, plural, one {una publicación} other {# publicaciones}} de {target}",
+ "notification.admin.report_statuses": "{name} reportó {target} por {category}",
+ "notification.admin.report_statuses_other": "{name} reportó {target}",
"notification.admin.sign_up": "{name} se unio",
+ "notification.admin.sign_up.name_and_others": "{name} y {count, plural, one {# otro} other {# otros}} se registraron",
"notification.favourite": "{name} marcó como favorita tu publicación",
+ "notification.favourite.name_and_others_with_link": "{name} y {count, plural, one {# otro} other {# otros}} marcaron tu publicación como favorita",
"notification.follow": "{name} te empezó a seguir",
+ "notification.follow.name_and_others": "{name} y {count, plural, one {# otro} other {# otros}} te siguieron",
"notification.follow_request": "{name} ha solicitado seguirte",
- "notification.mention": "{name} te ha mencionado",
+ "notification.follow_request.name_and_others": "{name} y {count, plural, one {# otro} other {# otros}} han solicitado seguirte",
+ "notification.label.mention": "Mención",
+ "notification.label.private_mention": "Mención privada",
+ "notification.label.private_reply": "Respuesta privada",
+ "notification.label.reply": "Respuesta",
+ "notification.mention": "Mención",
"notification.moderation-warning.learn_more": "Saber más",
"notification.moderation_warning": "Has recibido una advertencia de moderación",
"notification.moderation_warning.action_delete_statuses": "Se han eliminado algunas de tus publicaciones.",
"notification.moderation_warning.action_disable": "Tu cuenta ha sido desactivada.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Se han marcado como sensibles algunas de tus publicaciones.",
- "notification.moderation_warning.action_none": "Tu cuenta ha recibido un aviso de moderación.",
+ "notification.moderation_warning.action_none": "Tu cuenta ha recibido una advertencia de moderación.",
"notification.moderation_warning.action_sensitive": "De ahora en adelante, todas tus publicaciones se marcarán como sensibles.",
"notification.moderation_warning.action_silence": "Tu cuenta ha sido limitada.",
"notification.moderation_warning.action_suspend": "Tu cuenta ha sido suspendida.",
"notification.own_poll": "Tu encuesta ha terminado",
"notification.poll": "Una encuesta en la que has votado ha terminado",
- "notification.reblog": "{name} ha retooteado tu estado",
+ "notification.reblog": "{name} ha impulsado tu publicación",
+ "notification.reblog.name_and_others_with_link": "{name} y {count, plural, one {# otro} other {# otros}} impulsaron tu publicación",
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
"notification.relationships_severance_event.account_suspension": "Un administrador de {from} ha suspendido {target}, lo que significa que ya no puedes recibir actualizaciones de sus cuentas o interactuar con ellas.",
"notification.relationships_severance_event.domain_block": "Un administrador de {from} ha bloqueado {target}, incluyendo {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que sigues.",
@@ -495,11 +535,27 @@
"notification.status": "{name} acaba de publicar",
"notification.update": "{name} editó una publicación",
"notification_requests.accept": "Aceptar",
+ "notification_requests.accept_multiple": "{count, plural, one {Aceptar # solicitud…} other {Aceptar # solicitudes…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Solicitud aceptada} other {Solicitudes aceptadas}}",
+ "notification_requests.confirm_accept_multiple.message": "Estás por aceptar {count, plural, one {una solicitud de notificación} other {# solicitudes de notificación}}. ¿Estás seguro de que quieres continuar?",
+ "notification_requests.confirm_accept_multiple.title": "¿Deseas aceptar las solicitudes de notificación?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Solicitud descartada} other {Solicitudes descartadas}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Estás por descartar {count, plural, one {una solicitud de notificación} other {# solicitudes de notificación}}. No serás capaz de acceder fácilmente a {count, plural, one {ella} other {ellas}} de nuevo. ¿Estás seguro de que quieres continuar?",
+ "notification_requests.confirm_dismiss_multiple.title": "¿Deseas descartar las solicitudes de notificación?",
"notification_requests.dismiss": "Descartar",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Descartar # solicitud…} other {Descartar # solicitudes…}}",
+ "notification_requests.edit_selection": "Editar",
+ "notification_requests.exit_selection": "Hecho",
+ "notification_requests.explainer_for_limited_account": "Las notificaciones de esta cuenta han sido filtradas, ya que la cuenta ha sido limitada por un moderador.",
+ "notification_requests.explainer_for_limited_remote_account": "Las notificaciones de esta cuenta han sido filtradas, ya que la cuenta o su servidor ha sido limitada por un moderador.",
+ "notification_requests.maximize": "Maximizar",
+ "notification_requests.minimize_banner": "Minimizar banner de notificaciones filtradas",
"notification_requests.notifications_from": "Notificaciones de {name}",
"notification_requests.title": "Notificaciones filtradas",
+ "notification_requests.view": "Ver notificaciones",
"notifications.clear": "Limpiar notificaciones",
"notifications.clear_confirmation": "¿Seguro de querer borrar permanentemente todas tus notificaciones?",
+ "notifications.clear_title": "¿Limpiar notificaciones?",
"notifications.column_settings.admin.report": "Nuevas denuncias:",
"notifications.column_settings.admin.sign_up": "Registros nuevos:",
"notifications.column_settings.alert": "Notificaciones de escritorio",
@@ -511,7 +567,7 @@
"notifications.column_settings.mention": "Menciones:",
"notifications.column_settings.poll": "Resultados de la votación:",
"notifications.column_settings.push": "Notificaciones push",
- "notifications.column_settings.reblog": "Retoots:",
+ "notifications.column_settings.reblog": "Impulsos:",
"notifications.column_settings.show": "Mostrar en columna",
"notifications.column_settings.sound": "Reproducir sonido",
"notifications.column_settings.status": "Nuevas publicaciones:",
@@ -519,7 +575,7 @@
"notifications.column_settings.unread_notifications.highlight": "Destacar notificaciones no leídas",
"notifications.column_settings.update": "Ediciones:",
"notifications.filter.all": "Todos",
- "notifications.filter.boosts": "Retoots",
+ "notifications.filter.boosts": "Impulsos",
"notifications.filter.favourites": "Favoritos",
"notifications.filter.follows": "Seguidores",
"notifications.filter.mentions": "Menciones",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "No se pueden habilitar las notificaciones de escritorio ya que se denegó el permiso.",
"notifications.permission_denied_alert": "No se pueden habilitar las notificaciones de escritorio, ya que el permiso del navegador fue denegado anteriormente",
"notifications.permission_required": "Las notificaciones de escritorio no están disponibles porque no se ha concedido el permiso requerido.",
+ "notifications.policy.accept": "Aceptar",
+ "notifications.policy.accept_hint": "Mostrar en notificaciones",
+ "notifications.policy.drop": "Ignorar",
+ "notifications.policy.drop_hint": "Enviar al vacío, no volver a mostrar nunca",
+ "notifications.policy.filter": "Filtrar",
+ "notifications.policy.filter_hint": "Enviar a la bandeja de entrada de notificaciones filtradas",
+ "notifications.policy.filter_limited_accounts_hint": "Limitadas por los moderadores del servidor",
+ "notifications.policy.filter_limited_accounts_title": "Cuentas moderadas",
"notifications.policy.filter_new_accounts.hint": "Creadas durante {days, plural, one {el último día} other {los últimos # días}}",
"notifications.policy.filter_new_accounts_title": "Cuentas nuevas",
"notifications.policy.filter_not_followers_hint": "Incluyendo personas que te han estado siguiendo desde hace menos de {days, plural, one {un día} other {# días}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Personas que no sigues",
"notifications.policy.filter_private_mentions_hint": "Filtrada, a menos que sea en respuesta a tu propia mención, o si sigues al remitente",
"notifications.policy.filter_private_mentions_title": "Menciones privadas no solicitadas",
- "notifications.policy.title": "Filtrar notificaciones de…",
+ "notifications.policy.title": "Gestionar notificaciones de…",
"notifications_permission_banner.enable": "Habilitar notificaciones de escritorio",
"notifications_permission_banner.how_to_control": "Para recibir notificaciones cuando Mastodon no esté abierto, habilite las notificaciones de escritorio. Puedes controlar con precisión qué tipos de interacciones generan notificaciones de escritorio a través del botón {icon} de arriba una vez que estén habilitadas.",
"notifications_permission_banner.title": "Nunca te pierdas nada",
@@ -557,7 +621,7 @@
"onboarding.profile.display_name_hint": "Tu nombre completo o tu apodo…",
"onboarding.profile.lead": "Siempre puedes completar esto más tarde en los ajustes, donde hay aún más opciones de personalización disponibles.",
"onboarding.profile.note": "Biografía",
- "onboarding.profile.note_hint": "Puedes @mencionar a otras personas o #hashtags…",
+ "onboarding.profile.note_hint": "Puedes @mencionar a otras personas o #etiquetas…",
"onboarding.profile.save_and_continue": "Guardar y continuar",
"onboarding.profile.title": "Configuración del perfil",
"onboarding.profile.upload_avatar": "Subir foto de perfil",
@@ -575,7 +639,7 @@
"onboarding.steps.publish_status.title": "Escribe tu primera publicación",
"onboarding.steps.setup_profile.body": "Si rellenas tu perfil tendrás más posibilidades de que otros interactúen contigo.",
"onboarding.steps.setup_profile.title": "Personaliza tu perfil",
- "onboarding.steps.share_profile.body": "¡Dile a tus amigos cómo encontrarte en Mastodon!",
+ "onboarding.steps.share_profile.body": "Dile a tus amigos cómo encontrarte en Mastodon",
"onboarding.steps.share_profile.title": "Comparte tu perfil",
"onboarding.tips.2fa": "¿Sabías que? Puedes proteger tu cuenta configurando la autenticación de dos factores en la configuración de su cuenta. Funciona con cualquier aplicación TOTP de su elección, ¡no necesitas número de teléfono!",
"onboarding.tips.accounts_from_other_servers": "¿Sabías que? Como Mastodon es descentralizado, algunos perfiles que encuentras están alojados en servidores distintos del tuyo. Y sin embargo, ¡puedes interactuar con ellos! ¡Su servidor corresponde a la segunda mitad de su nombre de usuario!",
@@ -601,7 +665,7 @@
"privacy.private.short": "Seguidores",
"privacy.public.long": "Cualquiera dentro y fuera de Mastodon",
"privacy.public.short": "Público",
- "privacy.unlisted.additional": "Esto se comporta exactamente igual que el público, excepto que el post no aparecerá en las cronologías en directo o en los hashtags, la exploración o busquedas en Mastodon, incluso si está optado por activar la cuenta de usuario.",
+ "privacy.unlisted.additional": "Esto se comporta exactamente igual que el público, excepto que el post no aparecerá en las cronologías en directo o en las etiquetas, la exploración o busquedas en Mastodon, incluso si está optado por activar la cuenta de usuario.",
"privacy.unlisted.long": "Menos fanfares algorítmicos",
"privacy.unlisted.short": "Público silencioso",
"privacy_policy.last_updated": "Actualizado por última vez {date}",
@@ -635,7 +699,7 @@
"report.category.title_account": "perfil",
"report.category.title_status": "publicación",
"report.close": "Realizado",
- "report.comment.title": "¿Hay algo más que usted cree que debamos saber?",
+ "report.comment.title": "¿Hay algo más que creas que deberíamos saber?",
"report.forward": "Reenviar a {target}",
"report.forward_hint": "Esta cuenta es de otro servidor. ¿Enviar una copia anonimizada del informe allí también?",
"report.mute": "Silenciar",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu inicio, deja de seguirla.",
"report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "contenido ilegal",
"report_notification.categories.other": "Otro",
+ "report_notification.categories.other_sentence": "otra",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Infracción de regla",
+ "report_notification.categories.violation_sentence": "infracción de regla",
"report_notification.open": "Abrir denuncia",
"search.no_recent_searches": "Sin búsquedas recientes",
"search.placeholder": "Buscar",
@@ -708,8 +776,9 @@
"status.admin_status": "Abrir este estado en la interfaz de moderación",
"status.block": "Bloquear a @{name}",
"status.bookmark": "Añadir marcador",
- "status.cancel_reblog_private": "Eliminar retoot",
- "status.cannot_reblog": "Este toot no puede retootearse",
+ "status.cancel_reblog_private": "Deshacer impulso",
+ "status.cannot_reblog": "Esta publicación no puede ser impulsada",
+ "status.continued_thread": "Hilo continuado",
"status.copy": "Copiar enlace al estado",
"status.delete": "Borrar",
"status.detailed_status": "Vista de conversación detallada",
@@ -718,12 +787,10 @@
"status.edit": "Editar",
"status.edited": "Última edición {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}",
- "status.embed": "Incrustado",
+ "status.embed": "Obtener código para incrustar",
"status.favourite": "Favorito",
"status.favourites": "{count, plural, one {favorito} other {favoritos}}",
"status.filter": "Filtrar esta publicación",
- "status.filtered": "Filtrado",
- "status.hide": "Ocultar toot",
"status.history.created": "{name} creó {date}",
"status.history.edited": "{name} editado {date}",
"status.load_more": "Cargar más",
@@ -736,25 +803,23 @@
"status.mute_conversation": "Silenciar conversación",
"status.open": "Expandir estado",
"status.pin": "Fijar",
- "status.pinned": "Toot fijado",
+ "status.pinned": "Publicación fijada",
"status.read_more": "Leer más",
- "status.reblog": "Retootear",
+ "status.reblog": "Impulsar",
"status.reblog_private": "Implusar a la audiencia original",
- "status.reblogged_by": "Retooteado por {name}",
+ "status.reblogged_by": "Impulsado por {name}",
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
- "status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.",
+ "status.reblogs.empty": "Nadie impulsó esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.",
"status.redraft": "Borrar y volver a borrador",
"status.remove_bookmark": "Eliminar marcador",
+ "status.replied_in_thread": "Respondido en el hilo",
"status.replied_to": "Respondió a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder al hilo",
"status.report": "Reportar",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
- "status.show_filter_reason": "Mostrar de todos modos",
- "status.show_less": "Mostrar menos",
"status.show_less_all": "Mostrar menos para todo",
- "status.show_more": "Mostrar más",
"status.show_more_all": "Mostrar más para todo",
"status.show_original": "Mostrar original",
"status.title.with_attachments": "{user} ha publicado {attachmentCount, plural, one {un adjunto} other {{attachmentCount} adjuntos}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
"time_remaining.moments": "Momentos restantes",
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} de otros servidores no se muestran.",
- "timeline_hint.resources.followers": "Seguidores",
- "timeline_hint.resources.follows": "Seguidos",
- "timeline_hint.resources.statuses": "Toots más antiguos",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en los últimos {days, plural, one {días} other {{days} días}}",
"trends.trending_now": "Tendencia ahora",
"ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 849e0fa27f1..5915c333c43 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -11,7 +11,7 @@
"about.not_available": "Esta información no está disponible en este servidor.",
"about.powered_by": "Redes sociales descentralizadas con tecnología de {mastodon}",
"about.rules": "Reglas del servidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota personal",
"account.add_or_remove_from_list": "Agregar o eliminar de listas",
"account.badges.bot": "Automatizada",
"account.badges.group": "Grupo",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloquear dominio {domain}",
"account.block_short": "Bloquear",
"account.blocked": "Bloqueado",
- "account.browse_more_on_origin_server": "Ver más en el perfil original",
"account.cancel_follow_request": "Retirar solicitud de seguimiento",
"account.copy": "Copiar enlace al perfil",
"account.direct": "Mención privada a @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Seguir también",
"account.followers": "Seguidores",
"account.followers.empty": "Todavía nadie sigue a este usuario.",
- "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
+ "account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Siguiendo",
- "account.following_counter": "{count, plural, other {Siguiendo a {counter}}}",
+ "account.following_counter": "{count, plural, one {{counter} siguiendo} other {{counter} siguiendo}}",
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
"account.go_to_profile": "Ir al perfil",
"account.hide_reblogs": "Ocultar impulsos de @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} ha solicitado seguirte",
"account.share": "Compartir el perfil de @{name}",
"account.show_reblogs": "Mostrar impulsos de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicaciones}}",
+ "account.statuses_counter": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
"account.unblock": "Desbloquear a @{name}",
"account.unblock_domain": "Desbloquear dominio {domain}",
"account.unblock_short": "Desbloquear",
@@ -98,6 +97,8 @@
"block_modal.title": "¿Bloquear usuario?",
"block_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.",
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez",
+ "boost_modal.reblog": "¿Impulsar la publicación?",
+ "boost_modal.undo_reblog": "¿Dejar de impulsar la publicación?",
"bundle_column_error.copy_stacktrace": "Copiar informe de error",
"bundle_column_error.error.body": "La página solicitada no pudo ser renderizada. Podría deberse a un error en nuestro código o a un problema de compatibilidad con el navegador.",
"bundle_column_error.error.title": "¡Oh, no!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.confirm": "Bloquear",
- "confirmations.cancel_follow_request.confirm": "Retirar solicitud",
- "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?",
"confirmations.delete.confirm": "Eliminar",
"confirmations.delete.message": "¿Estás seguro de que quieres borrar esta publicación?",
+ "confirmations.delete.title": "¿Eliminar publicación?",
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
+ "confirmations.delete_list.title": "¿Eliminar lista?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo audiovisual, ¿descartarlos de todos modos?",
- "confirmations.domain_block.confirm": "Bloquear servidor",
- "confirmations.domain_block.message": "¿Seguro que quieres bloquear todo el dominio {domain}? En general, unos cuantos bloqueos y silenciados concretos es suficiente y preferible. No verás contenido del dominio en ninguna cronología pública ni en tus notificaciones. Se eliminarán tus seguidores procedentes de ese dominio.",
"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.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Seguro que quieres cerrar la sesión?",
+ "confirmations.logout.title": "¿Cerrar sesión?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.redraft.confirm": "Borrar y volver a borrador",
"confirmations.redraft.message": "¿Estás seguro de querer borrar esta publicación y reescribirla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán sin contexto.",
+ "confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Seguro que deseas continuar?",
+ "confirmations.reply.title": "¿Sobrescribir publicación?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Seguro que quieres dejar de seguir a {name}?",
+ "confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
+ "content_warning.hide": "Ocultar publicación",
+ "content_warning.show": "Mostrar de todos modos",
"conversation.delete": "Borrar conversación",
"conversation.mark_as_read": "Marcar como leído",
"conversation.open": "Ver conversación",
@@ -261,7 +267,7 @@
"empty_column.favourites": "Todavía nadie marcó esta publicación como favorita. Cuando alguien lo haga, se mostrarán aquí.",
"empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.",
"empty_column.followed_tags": "No has seguido ninguna etiqueta todavía. Cuando lo hagas, se mostrarán aquí.",
- "empty_column.hashtag": "No hay nada en este hashtag aún.",
+ "empty_column.hashtag": "No hay nada en esta etiqueta todavía.",
"empty_column.home": "¡Tu línea temporal está vacía! Sigue a más personas para rellenarla.",
"empty_column.list": "Aún no hay nada en esta lista. Cuando los miembros de esta lista publiquen nuevos estados, estos aparecerán aquí.",
"empty_column.lists": "No tienes ninguna lista. Cuando crees una, se mostrará aquí.",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva",
"filter_modal.select_filter.title": "Filtrar esta publicación",
"filter_modal.title.status": "Filtrar una publicación",
- "filtered_notifications_banner.mentions": "{count, plural, one {mención} other {menciones}}",
- "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer",
+ "filter_warning.matches_filter": "Coincide con el filtro “{title}”",
+ "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {nadie} one {una persona} other {# personas}} que puede que conozcas",
"filtered_notifications_banner.title": "Notificaciones filtradas",
"firehose.all": "Todas",
"firehose.local": "Este servidor",
@@ -336,7 +342,7 @@
"hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "sin {additional}",
"hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias",
- "hashtag.column_settings.select.placeholder": "Introduzca hashtags…",
+ "hashtag.column_settings.select.placeholder": "Introduce etiquetas…",
"hashtag.column_settings.tag_mode.all": "Todos estos",
"hashtag.column_settings.tag_mode.any": "Cualquiera de estos",
"hashtag.column_settings.tag_mode.none": "Ninguno de estos",
@@ -347,6 +353,14 @@
"hashtag.follow": "Seguir etiqueta",
"hashtag.unfollow": "Dejar de seguir etiqueta",
"hashtags.and_other": "…y {count, plural, other {# más}}",
+ "hints.profiles.followers_may_be_missing": "Puede que no se muestren todos los seguidores de este perfil.",
+ "hints.profiles.follows_may_be_missing": "Puede que no se muestren todas las cuentas seguidas por este perfil.",
+ "hints.profiles.posts_may_be_missing": "Puede que no se muestren todas las publicaciones de este perfil.",
+ "hints.profiles.see_more_followers": "Ver más seguidores en {domain}",
+ "hints.profiles.see_more_follows": "Ver más perfiles seguidos en {domain}",
+ "hints.profiles.see_more_posts": "Ver más publicaciones en {domain}",
+ "hints.threads.replies_may_be_missing": "Puede que no se muestren algunas respuestas de otros servidores.",
+ "hints.threads.see_more": "Ver más respuestas en {domain}",
"home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respuestas",
"home.hide_announcements": "Ocultar anuncios",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Ver actualizaciones",
"home.pending_critical_update.title": "¡Actualización de seguridad crítica disponible!",
"home.show_announcements": "Mostrar anuncios",
+ "ignore_notifications_modal.disclaimer": "Mastodon no puede informar a los usuarios que has ignorado sus notificaciones. Ignorar notificaciones no impedirá que se sigan enviando los mensajes.",
+ "ignore_notifications_modal.filter_instead": "Filtrar en vez de ignorar",
+ "ignore_notifications_modal.filter_to_act_users": "Aún podrás aceptar, rechazar o reportar usuarios",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrar ayuda a evitar confusiones potenciales",
+ "ignore_notifications_modal.filter_to_review_separately": "Puedes revisar las notificaciones filtradas por separado",
+ "ignore_notifications_modal.ignore": "Ignorar notificaciones",
+ "ignore_notifications_modal.limited_accounts_title": "¿Ignorar notificaciones de cuentas moderadas?",
+ "ignore_notifications_modal.new_accounts_title": "¿Ignorar notificaciones de cuentas nuevas?",
+ "ignore_notifications_modal.not_followers_title": "¿Ignorar notificaciones de personas que no te siguen?",
+ "ignore_notifications_modal.not_following_title": "¿Ignorar notificaciones de personas a las que no sigues?",
+ "ignore_notifications_modal.private_mentions_title": "¿Ignorar notificaciones de menciones privadas no solicitadas?",
"interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta, y guardala para más adelante.",
"interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu línea temporal de inicio.",
"interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda",
"keyboard_shortcuts.up": "para ir hacia arriba en la lista",
"lightbox.close": "Cerrar",
- "lightbox.compress": "Comprimir cuadro de visualización de imagen",
- "lightbox.expand": "Expandir cuadro de visualización de imagen",
"lightbox.next": "Siguiente",
"lightbox.previous": "Anterior",
+ "lightbox.zoom_in": "Ampliar al tamaño real",
+ "lightbox.zoom_out": "Ampliar para ajustar",
"limited_account_hint.action": "Mostrar perfil de todos modos",
"limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.",
"link_preview.author": "Por {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Tus listas",
"load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
"loading_indicator.label": "Cargando…",
- "media_gallery.toggle_visible": "Cambiar visibilidad",
+ "media_gallery.hide": "Ocultar",
"moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ocultar de las notificaciones",
"mute_modal.hide_options": "Ocultar opciones",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.",
"mute_modal.you_wont_see_posts": "Todavía pueden ver tus publicaciones, pero tú no verás las suyas.",
"navigation_bar.about": "Acerca de",
+ "navigation_bar.administration": "Administración",
"navigation_bar.advanced_interface": "Abrir en la interfaz web avanzada",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Siguiendo y seguidores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Cerrar sesión",
+ "navigation_bar.moderation": "Moderación",
"navigation_bar.mutes": "Usuarios silenciados",
"navigation_bar.opened_in_classic_interface": "Publicaciones, cuentas y otras páginas específicas se abren por defecto en la interfaz web clásica.",
"navigation_bar.personal": "Personal",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Seguridad",
"not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.",
"notification.admin.report": "{name} informó {target}",
+ "notification.admin.report_account": "{name} informó de {count, plural, one {una publicación} other {# publicaciones}} de {target} por {category}",
+ "notification.admin.report_account_other": "{name} informó de {count, plural, one {una publicación} other {# publicaciones}} de {target}",
+ "notification.admin.report_statuses": "{name} informó de {target} por {category}",
+ "notification.admin.report_statuses_other": "{name} informó de {target}",
"notification.admin.sign_up": "{name} se registró",
+ "notification.admin.sign_up.name_and_others": "{name} y {count, plural, one {# más} other {# más}} se registraron",
"notification.favourite": "{name} marcó como favorita tu publicación",
+ "notification.favourite.name_and_others_with_link": "{name} y {count, plural, one {# más} other {# más}} marcaron tu publicación como favorita",
"notification.follow": "{name} te empezó a seguir",
+ "notification.follow.name_and_others": "{name} y {count, plural, one {# más} other {# más}} te siguieron",
"notification.follow_request": "{name} ha solicitado seguirte",
- "notification.mention": "{name} te ha mencionado",
+ "notification.follow_request.name_and_others": "{name} y {count, plural, one {# más} other {# más}} han solicitado seguirte",
+ "notification.label.mention": "Mención",
+ "notification.label.private_mention": "Mención privada",
+ "notification.label.private_reply": "Respuesta privada",
+ "notification.label.reply": "Respuesta",
+ "notification.mention": "Mención",
"notification.moderation-warning.learn_more": "Saber más",
"notification.moderation_warning": "Has recibido una advertencia de moderación",
"notification.moderation_warning.action_delete_statuses": "Se han eliminado algunas de tus publicaciones.",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "Tu cuenta ha sido limitada.",
"notification.moderation_warning.action_suspend": "Tu cuenta ha sido suspendida.",
"notification.own_poll": "Tu encuesta ha terminado",
- "notification.poll": "Una encuesta en la que has votado ha terminado",
+ "notification.poll": "Una encuesta ha terminado",
"notification.reblog": "{name} ha impulsado tu publicación",
+ "notification.reblog.name_and_others_with_link": "{name} y {count, plural, one {# más} other {# más}} impulsaron tu publicación",
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
"notification.relationships_severance_event.account_suspension": "Un administrador de {from} ha suspendido {target}, lo que significa que ya no puedes recibir actualizaciones de sus cuentas o interactuar con ellas.",
"notification.relationships_severance_event.domain_block": "Un administrador de {from} ha bloqueado {target}, incluyendo {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que sigues.",
@@ -495,11 +535,27 @@
"notification.status": "{name} acaba de publicar",
"notification.update": "{name} editó una publicación",
"notification_requests.accept": "Aceptar",
+ "notification_requests.accept_multiple": "{count, plural, one {Aceptar # solicitud…} other {Aceptar # solicitudes…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceptar solicitud} other {Aceptar solicitudes}}",
+ "notification_requests.confirm_accept_multiple.message": "Vas a aceptar {count, plural, one {una solicitud} other {# solicitudes}}. ¿Quieres continuar?",
+ "notification_requests.confirm_accept_multiple.title": "¿Aceptar las solicitudes?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Descartar solicitud} other {Descartar solicitudes}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Vas a descartar {count, plural, one {una solicitud} other {# solicitudes}}. No podrás volver a acceder fácilmente a {count, plural, one {ella} other {ellas}} de nuevo. ¿Seguro que quieres continuar?",
+ "notification_requests.confirm_dismiss_multiple.title": "¿Descartar las solicitudes?",
"notification_requests.dismiss": "Descartar",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Descartar # solicitud…} other {Descartar # solicitudes…}}",
+ "notification_requests.edit_selection": "Editar",
+ "notification_requests.exit_selection": "Hecho",
+ "notification_requests.explainer_for_limited_account": "Las notificaciones de esta cuenta han sido filtradas porque la cuenta ha sido limitada por un moderador.",
+ "notification_requests.explainer_for_limited_remote_account": "Las notificaciones de esta cuenta han sido filtradas porque la cuenta o su servidor ha sido limitada por un moderador.",
+ "notification_requests.maximize": "Maximizar",
+ "notification_requests.minimize_banner": "Minimizar banner de notificaciones filtradas",
"notification_requests.notifications_from": "Notificaciones de {name}",
"notification_requests.title": "Notificaciones filtradas",
+ "notification_requests.view": "Ver notificaciones",
"notifications.clear": "Limpiar notificaciones",
"notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
+ "notifications.clear_title": "¿Borrar notificaciones?",
"notifications.column_settings.admin.report": "Nuevos informes:",
"notifications.column_settings.admin.sign_up": "Nuevos registros:",
"notifications.column_settings.alert": "Notificaciones de escritorio",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "No se pueden habilitar las notificaciones de escritorio ya que se denegó el permiso.",
"notifications.permission_denied_alert": "No se pueden habilitar las notificaciones de escritorio, ya que el permiso del navegador fue denegado anteriormente",
"notifications.permission_required": "Las notificaciones de escritorio no están disponibles porque no se ha concedido el permiso requerido.",
+ "notifications.policy.accept": "Aceptar",
+ "notifications.policy.accept_hint": "Mostrar en notificaciones",
+ "notifications.policy.drop": "Ignorar",
+ "notifications.policy.drop_hint": "Enviar al vacío, no volver a mostrar nunca",
+ "notifications.policy.filter": "Filtrar",
+ "notifications.policy.filter_hint": "Enviar a la bandeja de entrada de notificaciones filtradas",
+ "notifications.policy.filter_limited_accounts_hint": "Limitadas por los moderadores del servidor",
+ "notifications.policy.filter_limited_accounts_title": "Cuentas moderadas",
"notifications.policy.filter_new_accounts.hint": "Creadas durante {days, plural, one {el último día} other {los últimos # días}}",
"notifications.policy.filter_new_accounts_title": "Cuentas nuevas",
"notifications.policy.filter_not_followers_hint": "Incluyendo personas que te han estado siguiendo desde hace menos de {days, plural, one {un día} other {# días}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Personas que no sigues",
"notifications.policy.filter_private_mentions_hint": "Filtradas a menos que sea en respuesta a tu propia mención, o si sigues al remitente",
"notifications.policy.filter_private_mentions_title": "Menciones privadas no solicitadas",
- "notifications.policy.title": "Filtrar notificaciones de…",
+ "notifications.policy.title": "Gestionar notificaciones de…",
"notifications_permission_banner.enable": "Habilitar notificaciones de escritorio",
"notifications_permission_banner.how_to_control": "Para recibir notificaciones cuando Mastodon no esté abierto, habilite las notificaciones de escritorio. Puedes controlar con precisión qué tipos de interacciones generan notificaciones de escritorio a través del botón {icon} de arriba una vez que estén habilitadas.",
"notifications_permission_banner.title": "Nunca te pierdas nada",
@@ -573,7 +637,7 @@
"onboarding.steps.follow_people.title": "Personaliza tu línea de inicio",
"onboarding.steps.publish_status.body": "Di hola al mundo con texto, fotos, vídeos o encuestas {emoji}",
"onboarding.steps.publish_status.title": "Escribe tu primera publicación",
- "onboarding.steps.setup_profile.body": "Aumenta tus interacciones tcompletando tu perfil.",
+ "onboarding.steps.setup_profile.body": "Aumenta tus interacciones con un perfil completo.",
"onboarding.steps.setup_profile.title": "Personaliza tu perfil",
"onboarding.steps.share_profile.body": "¡Dile a tus amigos cómo encontrarte en Mastodon!",
"onboarding.steps.share_profile.title": "Comparte tu perfil de Mastodon",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu muro de inicio, deja de seguirla.",
"report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "contenido ilegal",
"report_notification.categories.other": "Otros",
+ "report_notification.categories.other_sentence": "otra",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Infracción de regla",
+ "report_notification.categories.violation_sentence": "infracción de regla",
"report_notification.open": "Abrir informe",
"search.no_recent_searches": "No hay búsquedas recientes",
"search.placeholder": "Buscar",
@@ -710,6 +778,7 @@
"status.bookmark": "Añadir marcador",
"status.cancel_reblog_private": "Deshacer impulso",
"status.cannot_reblog": "Esta publicación no se puede impulsar",
+ "status.continued_thread": "Continuó el hilo",
"status.copy": "Copiar enlace a la publicación",
"status.delete": "Borrar",
"status.detailed_status": "Vista de conversación detallada",
@@ -718,12 +787,10 @@
"status.edit": "Editar",
"status.edited": "Última edición {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",
- "status.embed": "Incrustado",
+ "status.embed": "Obtener código para incrustar",
"status.favourite": "Favorito",
"status.favourites": "{count, plural, one {favorito} other {favoritos}}",
"status.filter": "Filtrar esta publicación",
- "status.filtered": "Filtrado",
- "status.hide": "Ocultar publicación",
"status.history.created": "{name} creó {date}",
"status.history.edited": "{name} editó {date}",
"status.load_more": "Cargar más",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Nadie ha impulsado esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.",
"status.redraft": "Borrar y volver a borrador",
"status.remove_bookmark": "Eliminar marcador",
+ "status.replied_in_thread": "Respondió en el hilo",
"status.replied_to": "Respondió a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder al hilo",
"status.report": "Reportar",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
- "status.show_filter_reason": "Mostrar de todos modos",
- "status.show_less": "Mostrar menos",
"status.show_less_all": "Mostrar menos para todo",
- "status.show_more": "Mostrar más",
"status.show_more_all": "Mostrar más para todo",
"status.show_original": "Mostrar original",
"status.title.with_attachments": "{user} ha publicado {attachmentCount, plural, one {un adjunto} other {{attachmentCount} adjuntos}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
"time_remaining.moments": "Momentos restantes",
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} de otros servidores no se muestran.",
- "timeline_hint.resources.followers": "Seguidores",
- "timeline_hint.resources.follows": "Seguidos",
- "timeline_hint.resources.statuses": "Publicaciones más antiguas",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en los últimos {days, plural, one {días} other {{days} días}}",
"trends.trending_now": "Tendencia ahora",
"ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 547a0fe61fb..287ffb98523 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -11,7 +11,7 @@
"about.not_available": "See info ei ole sellel serveril saadavaks tehtud.",
"about.powered_by": "Hajutatud sotsiaalmeedia, mille taga on {mastodon}",
"about.rules": "Serveri reeglid",
- "account.account_note_header": "Märge",
+ "account.account_note_header": "Isiklik märge",
"account.add_or_remove_from_list": "Lisa või Eemalda nimekirjadest",
"account.badges.bot": "Robot",
"account.badges.group": "Grupp",
@@ -19,7 +19,6 @@
"account.block_domain": "Peida kõik domeenist {domain}",
"account.block_short": "Blokeerimine",
"account.blocked": "Blokeeritud",
- "account.browse_more_on_origin_server": "Vaata rohkem algsel profiilil",
"account.cancel_follow_request": "Võta jälgimistaotlus tagasi",
"account.copy": "Kopeeri profiili link",
"account.direct": "Maini privaatselt @{name}",
@@ -37,7 +36,7 @@
"account.followers.empty": "Keegi ei jälgi veel seda kasutajat.",
"account.followers_counter": "{count, plural, one {{counter} jälgija} other {{counter} jälgijat}}",
"account.following": "Jälgib",
- "account.following_counter": "{count, plural, one {{counter} jälgitav} other {{counter} jälgitavat}}",
+ "account.following_counter": "{count, plural, one {{counter} jälgib} other {{counter} jälgib}}",
"account.follows.empty": "See kasutaja ei jälgi veel kedagi.",
"account.go_to_profile": "Mine profiilile",
"account.hide_reblogs": "Peida @{name} jagamised",
@@ -98,6 +97,8 @@
"block_modal.title": "Blokeeri kasutaja?",
"block_modal.you_wont_see_mentions": "Sa ei näe postitusi, mis mainivad teda.",
"boost_modal.combo": "Vajutades {combo}, saab selle edaspidi vahele jätta",
+ "boost_modal.reblog": "Jagada postitust?",
+ "boost_modal.undo_reblog": "Tühista postituse jagamine?",
"bundle_column_error.copy_stacktrace": "Kopeeri veateade",
"bundle_column_error.error.body": "Soovitud lehte ei õnnestunud esitada. See võib olla meie koodiviga või probleem brauseri ühilduvusega.",
"bundle_column_error.error.title": "Oh, ei!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Sisuhoiatus (valikuline)",
"confirmation_modal.cancel": "Katkesta",
"confirmations.block.confirm": "Blokeeri",
- "confirmations.cancel_follow_request.confirm": "Tühista taotlus",
- "confirmations.cancel_follow_request.message": "Oled kindel, et soovid kasutaja {name} jälgimistaotluse tagasi võtta?",
"confirmations.delete.confirm": "Kustuta",
"confirmations.delete.message": "Oled kindel, et soovid postituse kustutada?",
+ "confirmations.delete.title": "Kustutada postitus?",
"confirmations.delete_list.confirm": "Kustuta",
"confirmations.delete_list.message": "Oled kindel, et soovid selle loetelu pöördumatult kustutada?",
+ "confirmations.delete_list.title": "Kustutada loetelu?",
"confirmations.discard_edit_media.confirm": "Hülga",
"confirmations.discard_edit_media.message": "Sul on salvestamata muudatusi meediakirjelduses või eelvaates, kas hülgad need?",
- "confirmations.domain_block.confirm": "Blokeeri server",
- "confirmations.domain_block.message": "Oled ikka päris-päris kindel, et soovid blokeerida terve {domain}? Enamikel juhtudel piisab mõnest sihitud blokist või vaigistusest, mis on eelistatavam. Sa ei näe selle domeeni sisu ühelgi avalikul ajajoonel või enda teadetes. Su jälgijad sellest domeenist eemaldatakse.",
"confirmations.edit.confirm": "Muuda",
"confirmations.edit.message": "Muutes praegu kirjutatakse hetkel loodav sõnum üle. Kas oled kindel, et soovid jätkata?",
+ "confirmations.edit.title": "Kirjutada postitus üle?",
"confirmations.logout.confirm": "Välju",
"confirmations.logout.message": "Kas oled kindel, et soovid välja logida?",
+ "confirmations.logout.title": "Logida välja?",
"confirmations.mute.confirm": "Vaigista",
"confirmations.redraft.confirm": "Kustuta & taasalusta",
"confirmations.redraft.message": "Kindel, et soovid postituse kustutada ja võtta uue aluseks? Lemmikuks märkimised ja jagamised lähevad kaotsi ning vastused jäävad ilma algse postituseta.",
+ "confirmations.redraft.title": "Kustudada ja luua postituse mustand?",
"confirmations.reply.confirm": "Vasta",
"confirmations.reply.message": "Praegu vastamine kirjutab hetkel koostatava sõnumi üle. Oled kindel, et soovid jätkata?",
+ "confirmations.reply.title": "Kirjutada postitus üle?",
"confirmations.unfollow.confirm": "Ära jälgi",
"confirmations.unfollow.message": "Oled kindel, et ei soovi rohkem jälgida kasutajat {name}?",
+ "confirmations.unfollow.title": "Ei jälgi enam kasutajat?",
+ "content_warning.hide": "Peida postitus",
+ "content_warning.show": "Näita ikkagi",
"conversation.delete": "Kustuta vestlus",
"conversation.mark_as_read": "Märgi loetuks",
"conversation.open": "Vaata vestlust",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Kasuta olemasolevat kategooriat või loo uus",
"filter_modal.select_filter.title": "Filtreeri seda postitust",
"filter_modal.title.status": "Postituse filtreerimine",
- "filtered_notifications_banner.mentions": "{count, plural, one {mainimine} other {mainimist}}",
- "filtered_notifications_banner.pending_requests": "Teateid {count, plural, =0 {mitte üheltki} one {ühelt} other {#}} inimeselt, keda võid teada",
+ "filter_warning.matches_filter": "Sobib filtriga “{title}”",
+ "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Mitte üheltki inimeselt} one {Ühelt inimeselt} other {# inimeselt}}, keda võid teada",
"filtered_notifications_banner.title": "Filtreeritud teavitused",
"firehose.all": "Kõik",
"firehose.local": "See server",
@@ -347,6 +353,14 @@
"hashtag.follow": "Jälgi silti",
"hashtag.unfollow": "Lõpeta sildi jälgimine",
"hashtags.and_other": "…ja {count, plural, one {}other {# veel}}",
+ "hints.profiles.followers_may_be_missing": "Selle profiili jälgijaid võib olla puudu.",
+ "hints.profiles.follows_may_be_missing": "Selle profiili poolt jälgitavaid võib olla puudu.",
+ "hints.profiles.posts_may_be_missing": "Mõned selle profiili postitused võivad olla puudu.",
+ "hints.profiles.see_more_followers": "Vaata rohkem jälgijaid kohas {domain}",
+ "hints.profiles.see_more_follows": "Vaata rohkem jälgitavaid kohas {domain}",
+ "hints.profiles.see_more_posts": "Vaata rohkem postitusi kohas {domain}",
+ "hints.threads.replies_may_be_missing": "Vastuseid teistest serveritest võib olla puudu.",
+ "hints.threads.see_more": "Vaata rohkem vastuseid kohas {domain}",
"home.column_settings.show_reblogs": "Näita jagamisi",
"home.column_settings.show_replies": "Näita vastuseid",
"home.hide_announcements": "Peida teadaanded",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Vaata uuendusi",
"home.pending_critical_update.title": "Saadaval kriitiline turvauuendus!",
"home.show_announcements": "Kuva teadaandeid",
+ "ignore_notifications_modal.disclaimer": "Mastodon ei saa teavitada kasutajaid, et ignoreerisid nende teavitusi. Teavituste ignoreerimine ei peata sõnumite endi saatmist.",
+ "ignore_notifications_modal.filter_instead": "Selle asemel filtreeri",
+ "ignore_notifications_modal.filter_to_act_users": "Saad endiselt kasutajaid vastu võtta, tagasi lükata või neist teatada",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtreerimine aitab vältida võimalikke segaminiajamisi",
+ "ignore_notifications_modal.filter_to_review_separately": "Saad filtreeritud teateid eraldi vaadata",
+ "ignore_notifications_modal.ignore": "Ignoreeri teavitusi",
+ "ignore_notifications_modal.limited_accounts_title": "Ignoreeri modereeritud kontode teavitusi?",
+ "ignore_notifications_modal.new_accounts_title": "Ignoreeri uute kontode teavitusi?",
+ "ignore_notifications_modal.not_followers_title": "Ignoreeri inimeste teavitusi, kes sind ei jälgi?",
+ "ignore_notifications_modal.not_following_title": "Ignoreeri inimeste teavitusi, keda sa ei jälgi?",
+ "ignore_notifications_modal.private_mentions_title": "Ignoreeri soovimatute eraviisiliste mainimiste teateid?",
"interaction_modal.description.favourite": "Mastodoni kontoga saad postituse lemmikuks märkida, et autor teaks, et sa hindad seda, ja jätta see hiljemaks alles.",
"interaction_modal.description.follow": "Mastodoni kontoga saad jälgida kasutajat {name}, et tema postitusi oma koduvoos näha.",
"interaction_modal.description.reblog": "Mastodoni kontoga saad seda postitust levitada, jagades seda oma jälgijatele.",
@@ -407,8 +432,6 @@
"keyboard_shortcuts.unfocus": "Fookus tekstialalt/otsingult ära",
"keyboard_shortcuts.up": "Liigu loetelus üles",
"lightbox.close": "Sulge",
- "lightbox.compress": "Suru kokku pildi vaatamise kast",
- "lightbox.expand": "Laienda pildi vaatamise kast",
"lightbox.next": "Järgmine",
"lightbox.previous": "Eelmine",
"limited_account_hint.action": "Näita profilli sellegipoolest",
@@ -432,7 +455,7 @@
"lists.subheading": "Sinu nimekirjad",
"load_pending": "{count, plural, one {# uus kirje} other {# uut kirjet}}",
"loading_indicator.label": "Laadimine…",
- "media_gallery.toggle_visible": "{number, plural, one {Varja pilt} other {Varja pildid}}",
+ "media_gallery.hide": "Peida",
"moved_to_account_banner.text": "Kontot {disabledAccount} ei ole praegu võimalik kasutada, sest kolisid kontole {movedToAccount}.",
"mute_modal.hide_from_notifications": "Peida teavituste hulgast",
"mute_modal.hide_options": "Peida valikud",
@@ -444,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "Sa ei näe postitusi, mis teda mainivad.",
"mute_modal.you_wont_see_posts": "Ta näeb jätkuvalt sinu postitusi, kuid sa ei näe tema omi.",
"navigation_bar.about": "Teave",
+ "navigation_bar.administration": "Administreerimine",
"navigation_bar.advanced_interface": "Ava kohandatud veebiliides",
"navigation_bar.blocks": "Blokeeritud kasutajad",
"navigation_bar.bookmarks": "Järjehoidjad",
@@ -460,6 +484,7 @@
"navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad",
"navigation_bar.lists": "Nimekirjad",
"navigation_bar.logout": "Logi välja",
+ "navigation_bar.moderation": "Modereerimine",
"navigation_bar.mutes": "Vaigistatud kasutajad",
"navigation_bar.opened_in_classic_interface": "Postitused, kontod ja teised spetsiaalsed lehed avatakse vaikimisi klassikalises veebiliideses.",
"navigation_bar.personal": "Isiklik",
@@ -470,11 +495,23 @@
"navigation_bar.security": "Turvalisus",
"not_signed_in_indicator.not_signed_in": "Pead sisse logima, et saada ligipääsu sellele ressursile.",
"notification.admin.report": "{name} saatis teavituse {target} kohta",
+ "notification.admin.report_account": "{name} raporteeris {count, plural, one {ühest postitusest} other {# postitusest}} kohast {target} kategooriast {category}",
+ "notification.admin.report_account_other": "{name} raporteeris {count, plural, one {ühest postitusest} other {# postitusest}} kohast {target}",
+ "notification.admin.report_statuses": "{name} raporteeris {target} kategooriast {category}",
+ "notification.admin.report_statuses_other": "{name} raporteeris kohast {target}",
"notification.admin.sign_up": "{name} registreerus",
+ "notification.admin.sign_up.name_and_others": "{name} ja {count, plural, one {# veel} other {# teist}} liitus",
"notification.favourite": "{name} märkis su postituse lemmikuks",
+ "notification.favourite.name_and_others_with_link": "{name} ja {count, plural, one {# veel} other {# teist}} märkis su postituse lemmikuks",
"notification.follow": "{name} alustas su jälgimist",
+ "notification.follow.name_and_others": "{name} ja {count, plural, one {# veel} other {# teist}} hakkas sind jälgima",
"notification.follow_request": "{name} soovib sind jälgida",
- "notification.mention": "{name} mainis sind",
+ "notification.follow_request.name_and_others": "{name} ja {count, plural, one {# veel} other {# teist}} taotles sinu jälgimist",
+ "notification.label.mention": "Mainimine",
+ "notification.label.private_mention": "Privaatne mainimine",
+ "notification.label.private_reply": "Privaatne vastus",
+ "notification.label.reply": "Vastus",
+ "notification.mention": "Mainimine",
"notification.moderation-warning.learn_more": "Vaata lisa",
"notification.moderation_warning": "Said modereerimise hoiatuse",
"notification.moderation_warning.action_delete_statuses": "Mõni su postitus on eemaldatud.",
@@ -485,8 +522,9 @@
"notification.moderation_warning.action_silence": "Su kontole pandi piirang.",
"notification.moderation_warning.action_suspend": "Su konto on peatatud.",
"notification.own_poll": "Su küsitlus on lõppenud",
- "notification.poll": "Küsitlus, milles osalesid, on lõppenud",
+ "notification.poll": "Hääletus, millel osalesid, on lõppenud",
"notification.reblog": "{name} jagas edasi postitust",
+ "notification.reblog.name_and_others_with_link": "{name} ja {count, plural, one {# veel} other {# teist}} jagas su postitust",
"notification.relationships_severance_event": "Kadunud ühendus kasutajaga {name}",
"notification.relationships_severance_event.account_suspension": "{from} admin on kustutanud {target}, mis tähendab, et sa ei saa enam neilt uuendusi või suhelda nendega.",
"notification.relationships_severance_event.domain_block": "{from} admin on blokeerinud {target}, sealhulgas {followersCount} sinu jälgijat ja {followingCount, plural, one {# konto} other {# kontot}}, mida jälgid.",
@@ -495,11 +533,27 @@
"notification.status": "{name} just postitas",
"notification.update": "{name} muutis postitust",
"notification_requests.accept": "Nõus",
+ "notification_requests.accept_multiple": "{count, plural, one {Nõustu # taotlusega…} other {Nõustu # taotlusega…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Nõustu taotlusega} other {Nõustu taotlustega}}",
+ "notification_requests.confirm_accept_multiple.message": "Oled nõustumas {count, plural, one {ühe teavituse taotlusega} other {# teavituse taotlusega}}. Oled kindel, et soovid jätkata?",
+ "notification_requests.confirm_accept_multiple.title": "Nõustuda teavituste taotlustega?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Loobu taotlusest} other {Loobu taotlustest}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Oled loobumas {count, plural, one {ühest teavituse taotlusest} other {# teavituse taotlusest}}. {count, plural, one {Sellele} other {Neile}} pole hiljem lihtne ligi pääseda. Oled kindel, et soovid jätkata?",
+ "notification_requests.confirm_dismiss_multiple.title": "Hüljata teavituse taotlused?",
"notification_requests.dismiss": "Hülga",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Loobuda # taotlusest…} other {Loobuda # taotlusest…}}",
+ "notification_requests.edit_selection": "Muuda",
+ "notification_requests.exit_selection": "Valmis",
+ "notification_requests.explainer_for_limited_account": "Sellelt kontolt tulevad teavitused on filtreeritud, sest moderaator on seda kontot piiranud.",
+ "notification_requests.explainer_for_limited_remote_account": "Sellelt kontolt tulevad teavitused on filtreeritud, sest moderaator on seda kontot või serverit piiranud.",
+ "notification_requests.maximize": "Maksimeeri",
+ "notification_requests.minimize_banner": "Minimeeri filtreeritud teavituste bänner",
"notification_requests.notifications_from": "Teavitus kasutajalt {name}",
"notification_requests.title": "Filtreeritud teavitused",
+ "notification_requests.view": "Vaata teavitusi",
"notifications.clear": "Puhasta teated",
"notifications.clear_confirmation": "Oled kindel, et soovid püsivalt kõik oma teated eemaldada?",
+ "notifications.clear_title": "Tühjenda teavitus?",
"notifications.column_settings.admin.report": "Uued teavitused:",
"notifications.column_settings.admin.sign_up": "Uued kasutajad:",
"notifications.column_settings.alert": "Töölauateated",
@@ -531,6 +585,14 @@
"notifications.permission_denied": "Töölauamärguanded pole saadaval, kuna eelnevalt keelduti lehitsejale teavituste luba andmast",
"notifications.permission_denied_alert": "Töölaua märguandeid ei saa lubada, kuna brauseri luba on varem keeldutud",
"notifications.permission_required": "Töölaua märguanded ei ole saadaval, kuna vajalik luba pole antud.",
+ "notifications.policy.accept": "Nõustun",
+ "notifications.policy.accept_hint": "Näita teavitustes",
+ "notifications.policy.drop": "Ignoreeri",
+ "notifications.policy.drop_hint": "Saada tühjusse, mitte kunagi seda enam näha",
+ "notifications.policy.filter": "Filter",
+ "notifications.policy.filter_hint": "Saadetud filtreeritud teavituste sisendkasti",
+ "notifications.policy.filter_limited_accounts_hint": "Piiratud serveri moderaatorite poolt",
+ "notifications.policy.filter_limited_accounts_title": "Modereeritud kontod",
"notifications.policy.filter_new_accounts.hint": "Loodud viimase {days, plural, one {ühe päeva} other {# päeva}} jooksul",
"notifications.policy.filter_new_accounts_title": "Uued kontod",
"notifications.policy.filter_not_followers_hint": "Kaasates kasutajad, kes on sind jälginud vähem kui {days, plural, one {ühe päeva} other {# päeva}}",
@@ -539,7 +601,7 @@
"notifications.policy.filter_not_following_title": "Inimesed, keda sa ei jälgi",
"notifications.policy.filter_private_mentions_hint": "Filtreeritud, kui see pole vastus sinupoolt mainimisele või kui jälgid saatjat",
"notifications.policy.filter_private_mentions_title": "Soovimatud privaatsed mainimised",
- "notifications.policy.title": "Filtreeri välja teavitused kohast…",
+ "notifications.policy.title": "Halda teavitusi kohast…",
"notifications_permission_banner.enable": "Luba töölaua märguanded",
"notifications_permission_banner.how_to_control": "Et saada teateid, ajal mil Mastodon pole avatud, luba töölauamärguanded. Saad täpselt määrata, mis tüüpi tegevused tekitavad märguandeid, kasutates peale teadaannete sisse lülitamist üleval olevat nuppu {icon}.",
"notifications_permission_banner.title": "Ära jää millestki ilma",
@@ -666,9 +728,13 @@
"report.unfollow_explanation": "Jälgid seda kontot. Et mitte näha tema postitusi oma koduvoos, lõpeta ta jälgimine.",
"report_notification.attached_statuses": "{count, plural, one {{count} postitus} other {{count} postitust}} listatud",
"report_notification.categories.legal": "Õiguslik",
+ "report_notification.categories.legal_sentence": "ebaseaduslik sisu",
"report_notification.categories.other": "Muu",
+ "report_notification.categories.other_sentence": "muu",
"report_notification.categories.spam": "Rämpspost",
+ "report_notification.categories.spam_sentence": "rämps",
"report_notification.categories.violation": "Reeglite rikkumine",
+ "report_notification.categories.violation_sentence": "reeglite rikkumine",
"report_notification.open": "Ava teavitus",
"search.no_recent_searches": "Pole viimatisi otsinguid",
"search.placeholder": "Otsi",
@@ -710,6 +776,7 @@
"status.bookmark": "Järjehoidja",
"status.cancel_reblog_private": "Lõpeta jagamine",
"status.cannot_reblog": "Seda postitust ei saa jagada",
+ "status.continued_thread": "Jätkatud lõim",
"status.copy": "Kopeeri postituse link",
"status.delete": "Kustuta",
"status.detailed_status": "Detailne vestluskuva",
@@ -718,12 +785,10 @@
"status.edit": "Muuda",
"status.edited": "Viimati muudetud {date}",
"status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}",
- "status.embed": "Manustamine",
+ "status.embed": "Hangi manustamiskood",
"status.favourite": "Lemmik",
"status.favourites": "{count, plural, one {lemmik} other {lemmikud}}",
"status.filter": "Filtreeri seda postitust",
- "status.filtered": "Filtreeritud",
- "status.hide": "Peida postitus",
"status.history.created": "{name} lõi {date}",
"status.history.edited": "{name} muutis {date}",
"status.load_more": "Lae rohkem",
@@ -745,16 +810,14 @@
"status.reblogs.empty": "Keegi pole seda postitust veel jaganud. Kui keegi seda teeb, näeb seda siin.",
"status.redraft": "Kustuta & alga uuesti",
"status.remove_bookmark": "Eemalda järjehoidja",
+ "status.replied_in_thread": "Vastatud lõimes",
"status.replied_to": "Vastas kasutajale {name}",
"status.reply": "Vasta",
"status.replyAll": "Vasta lõimele",
"status.report": "Raporteeri @{name}",
"status.sensitive_warning": "Tundlik sisu",
"status.share": "Jaga",
- "status.show_filter_reason": "Näita ikka",
- "status.show_less": "Peida sisu",
"status.show_less_all": "Peida kogu tundlik sisu",
- "status.show_more": "Näita sisu",
"status.show_more_all": "Näita kogu tundlikku sisu",
"status.show_original": "Näita algset",
"status.title.with_attachments": "{user} postitas {attachmentCount, plural, one {manuse} other {{attachmentCount} manust}}",
@@ -773,10 +836,6 @@
"time_remaining.minutes": "{number, plural, one {# minut} other {# minutit}} jäänud",
"time_remaining.moments": "Hetked jäänud",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekundit}} jäänud",
- "timeline_hint.remote_resource_not_displayed": "{resource} teistest serveritest ei kuvata.",
- "timeline_hint.resources.followers": "Jälgijaid",
- "timeline_hint.resources.follows": "Jälgimisi",
- "timeline_hint.resources.statuses": "Eelnevaid postitusi",
"trends.counter_by_accounts": "{count, plural, one {{counter} inimene} other {{counter} inimest}} viimase {days, plural, one {päeva} other {{days} päeva}} jooksul",
"trends.trending_now": "Hetkel populaarne",
"ui.beforeunload": "Mustand läheb kaotsi, kui lahkud Mastodonist.",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 5fbac270cf8..b3137bc21a3 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -11,7 +11,7 @@
"about.not_available": "Zerbitzari honek ez du informazio hau eskuragarri jarri.",
"about.powered_by": "{mastodon} erabiltzen duen sare sozial deszentralizatua",
"about.rules": "Zerbitzariaren arauak",
- "account.account_note_header": "Oharra",
+ "account.account_note_header": "Ohar pertsonala",
"account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik",
"account.badges.bot": "Bot-a",
"account.badges.group": "Taldea",
@@ -19,7 +19,6 @@
"account.block_domain": "Blokeatu {domain} domeinua",
"account.block_short": "Blokeatu",
"account.blocked": "Blokeatuta",
- "account.browse_more_on_origin_server": "Arakatu gehiago jatorrizko profilean",
"account.cancel_follow_request": "Baztertu jarraitzeko eskaera",
"account.copy": "Kopiatu profilerako esteka",
"account.direct": "Aipatu pribatuki @{name}",
@@ -35,7 +34,7 @@
"account.follow_back": "Jarraitu bueltan",
"account.followers": "Jarraitzaileak",
"account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.",
- "account.followers_counter": "{count, plural, one {Jarraitzaile {counter}} other {{counter} jarraitzaile}}",
+ "account.followers_counter": "{count, plural, one {{counter} jarraitzaile} other {{counter} jarraitzaile}}",
"account.following": "Jarraitzen",
"account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}",
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name}-(e)k zu jarraitzeko eskaera egin du",
"account.share": "Partekatu @{name} erabiltzailearen profila",
"account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak",
- "account.statuses_counter": "{count, plural, one {Bidalketa {counter}} other {{counter} bidalketa}}",
+ "account.statuses_counter": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}",
"account.unblock": "Desblokeatu @{name}",
"account.unblock_domain": "Berriz erakutsi {domain}",
"account.unblock_short": "Desblokeatu",
@@ -98,6 +97,8 @@
"block_modal.title": "Erabiltzailea blokeatu nahi duzu?",
"block_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.",
"boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko",
+ "boost_modal.reblog": "Bultzatu bidalketa?",
+ "boost_modal.undo_reblog": "Bidalketari bultzada kendu?",
"bundle_column_error.copy_stacktrace": "Kopiatu errore-txostena",
"bundle_column_error.error.body": "Eskatutako orria ezin izan da bistaratu. Kodeko errore bategatik izan daiteke edo nabigatzailearen bateragarritasun arazo bategatik.",
"bundle_column_error.error.title": "O ez!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Edukiaren abisua (aukerakoa)",
"confirmation_modal.cancel": "Utzi",
"confirmations.block.confirm": "Blokeatu",
- "confirmations.cancel_follow_request.confirm": "Baztertu eskaera",
- "confirmations.cancel_follow_request.message": "Ziur {name} jarraitzeko eskaera bertan behera utzi nahi duzula?",
"confirmations.delete.confirm": "Ezabatu",
"confirmations.delete.message": "Ziur bidalketa hau ezabatu nahi duzula?",
+ "confirmations.delete.title": "Ezabatu bidalketa?",
"confirmations.delete_list.confirm": "Ezabatu",
"confirmations.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?",
+ "confirmations.delete_list.title": "Ezabatu zerrenda?",
"confirmations.discard_edit_media.confirm": "Baztertu",
"confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?",
- "confirmations.domain_block.confirm": "Blokeatu zerbitzaria",
- "confirmations.domain_block.message": "Ziur, erabat ziur, {domain} domeinu osoa blokeatu nahi duzula? Gehienetan gutxi batzuk blokeatu edo mututzearekin nahikoa da. Ez duzu domeinu horretako edukirik ikusiko denbora lerroetan edo jakinarazpenetan. Domeinu horretako zure jarraitzaileak kenduko dira ere.",
"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.logout.confirm": "Amaitu saioa",
"confirmations.logout.message": "Ziur saioa amaitu nahi duzula?",
+ "confirmations.logout.title": "Itxi saioa?",
"confirmations.mute.confirm": "Mututu",
"confirmations.redraft.confirm": "Ezabatu eta berridatzi",
"confirmations.redraft.message": "Ziur argitalpen hau ezabatu eta zirriborroa berriro egitea nahi duzula? Gogokoak eta bultzadak galduko dira, eta jatorrizko argitalpenaren erantzunak zurtz geratuko dira.",
+ "confirmations.redraft.title": "Ezabatu eta berridatzi bidalketa?",
"confirmations.reply.confirm": "Erantzun",
"confirmations.reply.message": "Orain erantzuteak idazten ari zaren mezua gainidatziko du. Ziur jarraitu nahi duzula?",
+ "confirmations.reply.title": "Gainidatzi bidalketa?",
"confirmations.unfollow.confirm": "Utzi jarraitzeari",
"confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?",
+ "confirmations.unfollow.title": "Erabiltzailea jarraitzeari utzi?",
+ "content_warning.hide": "Tuta ezkutatu",
+ "content_warning.show": "Erakutsi hala ere",
"conversation.delete": "Ezabatu elkarrizketa",
"conversation.mark_as_read": "Markatu irakurrita bezala",
"conversation.open": "Ikusi elkarrizketa",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Hautatu lehendik dagoen kategoria bat edo sortu berria",
"filter_modal.select_filter.title": "Iragazi bidalketa hau",
"filter_modal.title.status": "Iragazi bidalketa bat",
- "filtered_notifications_banner.mentions": "{count, plural, one {aipamen} other {aipamen}}",
- "filtered_notifications_banner.pending_requests": "Ezagutu {count, plural, =0 {dezakezun inoren} one {dezakezun pertsona baten} other {ditzakezun # pertsonen}} jakinarazpenak",
+ "filter_warning.matches_filter": "“{title}” iragazkiarekin bat dator",
+ "filtered_notifications_banner.pending_requests": "Ezagutu dezakezun {count, plural, =0 {inoren} one {pertsona baten} other {# pertsonen}}",
"filtered_notifications_banner.title": "Iragazitako jakinarazpenak",
"firehose.all": "Guztiak",
"firehose.local": "Zerbitzari hau",
@@ -347,6 +353,14 @@
"hashtag.follow": "Jarraitu traolari",
"hashtag.unfollow": "Utzi traola jarraitzeari",
"hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}",
+ "hints.profiles.followers_may_be_missing": "Baliteke profil honen jarraitzaile guztiak ez agertzea.",
+ "hints.profiles.follows_may_be_missing": "Baliteke profil honek jarraitzen dituen profil guztiak ez erakustea.",
+ "hints.profiles.posts_may_be_missing": "Baliteke profil honen tut guztiak ez erakustea.",
+ "hints.profiles.see_more_followers": "Ikusi jarraitzaile gehiago {domain}-(e)n",
+ "hints.profiles.see_more_follows": "Ikusi jarraitzaile gehiago {domain}-(e)n",
+ "hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n",
+ "hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.",
+ "hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n",
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak",
"home.hide_announcements": "Ezkutatu iragarpenak",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Ikusi eguneraketak",
"home.pending_critical_update.title": "Segurtasun eguneraketa kritikoa eskuragarri!",
"home.show_announcements": "Erakutsi iragarpenak",
+ "ignore_notifications_modal.disclaimer": "Mastodonek ezin die jakinarazi erabiltzaileei beraien jakinarazpenei ezikusiarena egingo diezula. Jakinarazpenei ezikusiarena egiteak ez du eragotziko mezuak bidaltzen jarraitzea.",
+ "ignore_notifications_modal.filter_instead": "Iragazi ez ikusiarena egin beharrean",
+ "ignore_notifications_modal.filter_to_act_users": "Oraindik ere erabiltzaileak onartu, baztertu edo salatu ahal izango dituzu",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Iragazteak nahaste potentzialak saihesten laguntzen du",
+ "ignore_notifications_modal.filter_to_review_separately": "Banaka berrikus ditzakezu iragazitako jakinarazpenak",
+ "ignore_notifications_modal.ignore": "Ezikusi jakinarazpenak",
+ "ignore_notifications_modal.limited_accounts_title": "Moderatutako kontuen jakinarazpenei ez ikusiarena egin?",
+ "ignore_notifications_modal.new_accounts_title": "Kontu berrien jakinarazpenei ez ikusiarena egin?",
+ "ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?",
+ "ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?",
+ "ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?",
"interaction_modal.description.favourite": "Mastodon kontu batekin bidalketa hau gogoko egin dezakezu, egileari eskertzeko eta gerorako gordetzeko.",
"interaction_modal.description.follow": "Mastodon kontu batekin {name} jarraitu dezakezu bere bidalketak zure hasierako denbora lerroan jasotzeko.",
"interaction_modal.description.reblog": "Mastodon kontu batekin bidalketa hau bultzatu dezakezu, zure jarraitzaileekin partekatzeko.",
@@ -407,13 +432,13 @@
"keyboard_shortcuts.unfocus": "testua konposatzeko area / bilaketatik fokua kentzea",
"keyboard_shortcuts.up": "zerrendan gora mugitzea",
"lightbox.close": "Itxi",
- "lightbox.compress": "Konprimatu irudia ikusteko kaxa",
- "lightbox.expand": "Zabaldu irudia ikusteko kaxa",
"lightbox.next": "Hurrengoa",
"lightbox.previous": "Aurrekoa",
"limited_account_hint.action": "Erakutsi profila hala ere",
"limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.",
"link_preview.author": "Egilea: {name}",
+ "link_preview.more_from_author": "{name} erabiltzaileaz gehiago jakin",
+ "link_preview.shares": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}",
"lists.account.add": "Gehitu zerrendara",
"lists.account.remove": "Kendu zerrendatik",
"lists.delete": "Ezabatu zerrenda",
@@ -430,7 +455,7 @@
"lists.subheading": "Zure zerrendak",
"load_pending": "{count, plural, one {elementu berri #} other {# elementu berri}}",
"loading_indicator.label": "Kargatzen…",
- "media_gallery.toggle_visible": "Txandakatu ikusgaitasuna",
+ "media_gallery.hide": "Ezkutatu",
"moved_to_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan, {movedToAccount} kontura aldatu zinelako.",
"mute_modal.hide_from_notifications": "Ezkutatu jakinarazpenetatik",
"mute_modal.hide_options": "Ezkutatu aukerak",
@@ -442,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.",
"mute_modal.you_wont_see_posts": "Zure argitalpenak ikus ditzake, baina ez dituzu bereak ikusiko.",
"navigation_bar.about": "Honi buruz",
+ "navigation_bar.administration": "Administrazioa",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.blocks": "Blokeatutako erabiltzaileak",
"navigation_bar.bookmarks": "Laster-markak",
@@ -458,6 +484,7 @@
"navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak",
"navigation_bar.lists": "Zerrendak",
"navigation_bar.logout": "Amaitu saioa",
+ "navigation_bar.moderation": "Moderazioa",
"navigation_bar.mutes": "Mutututako erabiltzaileak",
"navigation_bar.opened_in_classic_interface": "Argitalpenak, kontuak eta beste orri jakin batzuk lehenespenez irekitzen dira web-interfaze klasikoan.",
"navigation_bar.personal": "Pertsonala",
@@ -468,11 +495,23 @@
"navigation_bar.security": "Segurtasuna",
"not_signed_in_indicator.not_signed_in": "Baliabide honetara sarbidea izateko saioa hasi behar duzu.",
"notification.admin.report": "{name} erabiltzaileak {target} salatu du",
+ "notification.admin.report_account": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat} other {# bidalketa}} salatu zituen {category} delakoagatik",
+ "notification.admin.report_account_other": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat salatu zuen} other {# bidalketa salatu zituen}}",
+ "notification.admin.report_statuses": "{name}-(e)k {target} salatu zuen {category} delakoagatik",
+ "notification.admin.report_statuses_other": "{name} erabiltzaileak {target} salatu du",
"notification.admin.sign_up": "{name} erabiltzailea erregistratu da",
+ "notification.admin.sign_up.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiago} other {# erabiltzaile gehiago}} erregistratu dira",
"notification.favourite": "{name}(e)k zure bidalketa gogoko du",
+ "notification.favourite.name_and_others_with_link": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zure bidalketa gogoko dute",
"notification.follow": "{name}(e)k jarraitzen dizu",
+ "notification.follow.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} jarraitu dizute",
"notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du",
- "notification.mention": "{name}(e)k aipatu zaitu",
+ "notification.follow_request.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zu jarraitzeko eskaera egin dute",
+ "notification.label.mention": "Aipamena",
+ "notification.label.private_mention": "Aipamen pribatua",
+ "notification.label.private_reply": "Erantzun pribatua",
+ "notification.label.reply": "Erantzuna",
+ "notification.mention": "Aipamena",
"notification.moderation-warning.learn_more": "Informazio gehiago",
"notification.moderation_warning": "Moderazio-abisu bat jaso duzu",
"notification.moderation_warning.action_delete_statuses": "Argitalpen batzuk kendu dira.",
@@ -485,17 +524,32 @@
"notification.own_poll": "Zure inkesta amaitu da",
"notification.poll": "Zuk erantzun duzun inkesta bat bukatu da",
"notification.reblog": "{name}(e)k bultzada eman dio zure bidalketari",
+ "notification.reblog.name_and_others_with_link": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} bultzada eman diote zure bidalketari",
"notification.relationships_severance_event": "{name} erabiltzailearekin galdutako konexioak",
"notification.relationships_severance_event.account_suspension": "{from} zerbitzariko administratzaile batek {target} bertan behera utzi du, hau da, ezin izango dituzu jaso hango eguneratzerik edo hangoekin elkarreragin.",
"notification.relationships_severance_event.learn_more": "Informazio gehiago",
"notification.status": "{name} erabiltzaileak bidalketa egin berri du",
"notification.update": "{name} erabiltzaileak bidalketa bat editatu du",
"notification_requests.accept": "Onartu",
+ "notification_requests.accept_multiple": "{count, plural, one {Onartu eskaera…} other {Onartu # eskaerak…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Onartu eskaera} other {Onartu eskaerak}}",
+ "notification_requests.confirm_accept_multiple.title": "Onartu jakinarazpen-eskaerak?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Baztertu eskaera} other {Baztertu eskaerak}}",
+ "notification_requests.confirm_dismiss_multiple.title": "Baztertu jakinarazpen-eskaerak?",
"notification_requests.dismiss": "Baztertu",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Baztertu eskaera…} other {Baztertu # eskaerak…}}",
+ "notification_requests.edit_selection": "Editatu",
+ "notification_requests.exit_selection": "Egina",
+ "notification_requests.explainer_for_limited_account": "Kontu honen jakinarazpenak iragazi egin dira, kontua moderatzaile batek mugatu duelako.",
+ "notification_requests.explainer_for_limited_remote_account": "Kontu horren jakinarazpenak iragazi egin dira kontua edo bere zerbitzaria moderatzaile batek mugatu duelako.",
+ "notification_requests.maximize": "Maximizatu",
+ "notification_requests.minimize_banner": "Minimizatu iragazitako jakinarazpenen bannerra",
"notification_requests.notifications_from": "{name} erabiltzailearen jakinarazpenak",
"notification_requests.title": "Iragazitako jakinarazpenak",
+ "notification_requests.view": "Ikusi jakinarazpenak",
"notifications.clear": "Garbitu jakinarazpenak",
"notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?",
+ "notifications.clear_title": "Garbitu jakinarazpenak?",
"notifications.column_settings.admin.report": "Txosten berriak:",
"notifications.column_settings.admin.sign_up": "Izen-emate berriak:",
"notifications.column_settings.alert": "Mahaigaineko jakinarazpenak",
@@ -527,6 +581,14 @@
"notifications.permission_denied": "Mahaigaineko jakinarazpenak ez daude erabilgarri, nabigatzaileari baimen eskaera ukatu zitzaiolako",
"notifications.permission_denied_alert": "Mahaigaineko jakinarazpenak ezin dira gaitu, nabigatzaileari baimena ukatu zitzaiolako",
"notifications.permission_required": "Mahaigaineko jakinarazpenak ez daude erabilgarri, horretarako behar den baimena ez delako eman.",
+ "notifications.policy.accept": "Onartu",
+ "notifications.policy.accept_hint": "Erakutsi jakinarazpenetan",
+ "notifications.policy.drop": "Ezikusi",
+ "notifications.policy.drop_hint": "Hutsera bidali, ez erakutsi inoiz gehiago",
+ "notifications.policy.filter": "Iragazi",
+ "notifications.policy.filter_hint": "Bidali filtratutako jakinarazpenen sarrerako ontzira",
+ "notifications.policy.filter_limited_accounts_hint": "Zerbitzariaren moderatzaileek mugatuta",
+ "notifications.policy.filter_limited_accounts_title": "Moderatutako kontuak",
"notifications.policy.filter_new_accounts.hint": "Azken {days, plural, one {egunean} other {# egunetan}} sortua",
"notifications.policy.filter_new_accounts_title": "Kontu berriak",
"notifications.policy.filter_not_followers_hint": "{days, plural, one {Egun batez} other {# egunez}} baino gutxiago jarraitu zaituen jendea barne",
@@ -535,7 +597,7 @@
"notifications.policy.filter_not_following_title": "Jarraitzen ez duzun jendea",
"notifications.policy.filter_private_mentions_hint": "Iragazita, baldin eta zure aipamenaren erantzuna bada edo bidaltzailea jarraitzen baduzu",
"notifications.policy.filter_private_mentions_title": "Eskatu gabeko aipamen pribatuak",
- "notifications.policy.title": "Ez iragazi hemengo jakinarazpenak…",
+ "notifications.policy.title": "Kudeatu honen jakinarazpaenak…",
"notifications_permission_banner.enable": "Gaitu mahaigaineko jakinarazpenak",
"notifications_permission_banner.how_to_control": "Mastodon irekita ez dagoenean jakinarazpenak jasotzeko, gaitu mahaigaineko jakinarazpenak. Mahaigaineko jakinarazpenak ze elkarrekintzak eragingo dituzten zehazki kontrolatu dezakezu goiko {icon} botoia erabiliz, gaituta daudenean.",
"notifications_permission_banner.title": "Ez galdu ezer inoiz",
@@ -662,9 +724,13 @@
"report.unfollow_explanation": "Kontu hau jarraitzen ari zara. Zure denbora-lerro nagusian bere bidalketak ez ikusteko, jarraitzeari utzi.",
"report_notification.attached_statuses": "{count, plural, one {Bidalketa {count}} other {{count} bidalketa}} erantsita",
"report_notification.categories.legal": "Legala",
+ "report_notification.categories.legal_sentence": "eduki ilegala",
"report_notification.categories.other": "Bestelakoak",
+ "report_notification.categories.other_sentence": "bestelakoak",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spama",
"report_notification.categories.violation": "Arau haustea",
+ "report_notification.categories.violation_sentence": "arau haustea",
"report_notification.open": "Ireki salaketa",
"search.no_recent_searches": "Duela gutxiko bilaketarik ez",
"search.placeholder": "Bilatu",
@@ -692,8 +758,11 @@
"server_banner.about_active_users": "Azken 30 egunetan zerbitzari hau erabili duen jendea (hilabeteko erabiltzaile aktiboak)",
"server_banner.active_users": "erabiltzaile aktibo",
"server_banner.administered_by": "Administratzailea(k):",
+ "server_banner.is_one_of_many": "{domain} fedibertsoan parte hartzeko erabil dezakezun Mastodonen zerbitzari independenteetako bat da.",
"server_banner.server_stats": "Zerbitzariaren estatistikak:",
"sign_in_banner.create_account": "Sortu kontua",
+ "sign_in_banner.follow_anyone": "Jarraitu edonori fedibertsoan eta ikusi dena ordena kronologikoan. Algoritmorik gabe, iragarki edo titulu gezurtirik gabe.",
+ "sign_in_banner.mastodon_is": "Mastodon gertatzen ari denari buruz egunean egoteko modurik onena da.",
"sign_in_banner.sign_in": "Hasi saioa",
"sign_in_banner.sso_redirect": "Hasi saioa edo izena eman",
"status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea",
@@ -703,6 +772,7 @@
"status.bookmark": "Laster-marka",
"status.cancel_reblog_private": "Kendu bultzada",
"status.cannot_reblog": "Bidalketa honi ezin zaio bultzada eman",
+ "status.continued_thread": "Harian jarraitu zuen",
"status.copy": "Kopiatu bidalketaren esteka",
"status.delete": "Ezabatu",
"status.detailed_status": "Elkarrizketaren ikuspegi xehetsua",
@@ -711,12 +781,10 @@
"status.edit": "Editatu",
"status.edited": "Azken edizioa: {date}",
"status.edited_x_times": "{count, plural, one {behin} other {{count} aldiz}} editatua",
- "status.embed": "Txertatu",
+ "status.embed": "Lortu txertatzeko kodea",
"status.favourite": "Gogokoa",
"status.favourites": "{count, plural, one {gogoko} other {gogoko}}",
"status.filter": "Iragazi bidalketa hau",
- "status.filtered": "Iragazita",
- "status.hide": "Tuta ezkutatu",
"status.history.created": "{name} erabiltzaileak sortua {date}",
"status.history.edited": "{name} erabiltzaileak editatua {date}",
"status.load_more": "Kargatu gehiago",
@@ -738,16 +806,14 @@
"status.reblogs.empty": "Inork ez dio bultzada eman bidalketa honi oraindik. Inork egiten badu, hemen agertuko da.",
"status.redraft": "Ezabatu eta berridatzi",
"status.remove_bookmark": "Kendu laster-marka",
+ "status.replied_in_thread": "Harian erantzun zuen",
"status.replied_to": "{name} erabiltzaileari erantzuna",
"status.reply": "Erantzun",
"status.replyAll": "Erantzun harian",
"status.report": "Salatu @{name}",
"status.sensitive_warning": "Kontuz: Eduki hunkigarria",
"status.share": "Partekatu",
- "status.show_filter_reason": "Erakutsi hala ere",
- "status.show_less": "Erakutsi gutxiago",
"status.show_less_all": "Erakutsi denetarik gutxiago",
- "status.show_more": "Erakutsi gehiago",
"status.show_more_all": "Erakutsi denetarik gehiago",
"status.show_original": "Erakutsi jatorrizkoa",
"status.title.with_attachments": "{user} erabiltzaileak {attachmentCount, plural, one {eranskin bat} other {{attachmentCount} eranskin}} argitaratu d(it)u",
@@ -766,10 +832,6 @@
"time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko",
"time_remaining.moments": "Amaitzekotan",
"time_remaining.seconds": "{number, plural, one {segundo #} other {# segundo}} amaitzeko",
- "timeline_hint.remote_resource_not_displayed": "Beste zerbitzarietako {resource} ez da bistaratzen.",
- "timeline_hint.resources.followers": "Jarraitzaileak",
- "timeline_hint.resources.follows": "Jarraitzen",
- "timeline_hint.resources.statuses": "Bidalketa zaharragoak",
"trends.counter_by_accounts": "{count, plural, one {Pertsona {counter}} other {{counter} pertsona}} azken {days, plural, one {egunean} other {{days} egunetan}}",
"trends.trending_now": "Joera orain",
"ui.beforeunload": "Zure zirriborroa galduko da Mastodon uzten baduzu.",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 072a67421ae..fbc65ec2079 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -11,7 +11,7 @@
"about.not_available": "این اطّلاعات روی این کارساز موجود نشده.",
"about.powered_by": "رسانهٔ اجتماعی نامتمرکز قدرت گرفته از {mastodon}",
"about.rules": "قوانین کارساز",
- "account.account_note_header": "یادداشت",
+ "account.account_note_header": "یادداشت شخصی",
"account.add_or_remove_from_list": "افزودن یا برداشتن از سیاههها",
"account.badges.bot": "خودکار",
"account.badges.group": "گروه",
@@ -19,7 +19,6 @@
"account.block_domain": "انسداد دامنهٔ {domain}",
"account.block_short": "انسداد",
"account.blocked": "مسدود",
- "account.browse_more_on_origin_server": "مرور بیشتر روی نمایهٔ اصلی",
"account.cancel_follow_request": "رد کردن درخواست پیگیری",
"account.copy": "رونوشت از پیوند به نمایه",
"account.direct": "اشارهٔ خصوصی به @{name}",
@@ -89,7 +88,16 @@
"announcement.announcement": "اعلامیه",
"attachments_list.unprocessed": "(پردازش نشده)",
"audio.hide": "نهفتن صدا",
+ "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.title": "انسداد کاربر؟",
+ "block_modal.you_wont_see_mentions": "فرستههایی که از اون نام برده را نخواهید دید.",
"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": "وای، نه!",
@@ -161,26 +169,32 @@
"compose_form.spoiler_placeholder": "هشدار محتوا (اختیاری)",
"confirmation_modal.cancel": "لغو",
"confirmations.block.confirm": "انسداد",
- "confirmations.cancel_follow_request.confirm": "رد کردن درخواست",
- "confirmations.cancel_follow_request.message": "مطمئنید که می خواهید درخواست پیگیری {name} را لغو کنید؟",
"confirmations.delete.confirm": "حذف",
"confirmations.delete.message": "آیا مطمئنید که میخواهید این فرسته را حذف کنید؟",
+ "confirmations.delete.title": "حذف فرسته؟",
"confirmations.delete_list.confirm": "حذف",
"confirmations.delete_list.message": "مطمئنید میخواهید این سیاهه را برای همیشه حذف کنید؟",
+ "confirmations.delete_list.title": "حذف سیاهه؟",
"confirmations.discard_edit_media.confirm": "دور انداختن",
"confirmations.discard_edit_media.message": "تغییرات ذخیره نشدهای در توضیحات یا پیشنمایش رسانه دارید. همگی نادیده گرفته شوند؟",
- "confirmations.domain_block.message": "آیا جدی جدی میخواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدود کردن یا خموشاندن چند حساب خاص کافی است و توصیه میشود. پس از این کار شما هیچ محتوایی را از این دامنه در خط زمانی عمومی یا آگاهیهایتان نخواهید دید. پیگیرانتان از این دامنه هم برداشته خواهند شد.",
"confirmations.edit.confirm": "ویرایش",
"confirmations.edit.message": "در صورت ویرایش، پیامی که در حال نوشتنش بودید از بین خواهد رفت. میخواهید ادامه دهید؟",
+ "confirmations.edit.title": "رونویسی فرسته؟",
"confirmations.logout.confirm": "خروج از حساب",
"confirmations.logout.message": "مطمئنید میخواهید خارج شوید؟",
+ "confirmations.logout.title": "خروج؟",
"confirmations.mute.confirm": "خموش",
"confirmations.redraft.confirm": "حذف و بازنویسی",
"confirmations.redraft.message": "مطمئنید که میخواهید این فرسته را حذف کنید و از نو بنویسید؟ با این کار تقویتها و پسندهایش از دست رفته و پاسخها به آن بیمرجع میشود.",
+ "confirmations.redraft.title": "حذف و پیشنویسی دوبارهٔ فرسته؟",
"confirmations.reply.confirm": "پاسخ",
"confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. میخواهید ادامه دهید؟",
+ "confirmations.reply.title": "رونویسی فرسته؟",
"confirmations.unfollow.confirm": "پینگرفتن",
"confirmations.unfollow.message": "مطمئنید که میخواهید به پیگیری از {name} پایان دهید؟",
+ "confirmations.unfollow.title": "ناپیگیری کاربر؟",
+ "content_warning.hide": "نهفتن فرسته",
+ "content_warning.show": "نمایش به هر روی",
"conversation.delete": "حذف گفتگو",
"conversation.mark_as_read": "علامتگذاری به عنوان خوانده شده",
"conversation.open": "دیدن گفتگو",
@@ -200,6 +214,25 @@
"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": "افزارد روی این کراساز میتوانند با فرستههای قدیمیتان تعامل داشته باشند.",
+ "domain_block_modal.they_cant_follow": "هیچکسی از این کارساز نمیتواند پیتان بگیرد.",
+ "domain_block_modal.they_wont_know": "نخواهند دانست که مسدود شدهاند.",
+ "domain_block_modal.title": "انسداد دامنه؟",
+ "domain_block_modal.you_will_lose_followers": "همهٔ پیگیرندگانتان از این کارساز برداشته خواهند شد.",
+ "domain_block_modal.you_wont_see_posts": "فرستهها یا آگاهیها از کاربران روی این کارساز را نخواهید دید.",
+ "domain_pill.server": "کارساز",
+ "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": "شناسهٔ یکتایتان روی این کارساز. ممکن است کاربرانی با نام کاربری مشابه روی کارسازهای دیگر باشند.",
"embed.instructions": "جاسازی این فرسته روی پایگاهتان با رونوشت کردن کد زیر.",
"embed.preview": "این گونه دیده خواهد شد:",
"emoji_button.activity": "فعالیت",
@@ -266,6 +299,9 @@
"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": "همه",
"firehose.local": "این کارساز",
"firehose.remote": "دیگر کارسازها",
@@ -274,6 +310,8 @@
"follow_requests.unlocked_explanation": "با این که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواستها از این حسابها را به صورت دستی بازبینی کنید.",
"follow_suggestions.curated_suggestion": "گزینش سردبیر",
"follow_suggestions.dismiss": "دیگر نشان داده نشود",
+ "follow_suggestions.featured_longer": "دستچین شده به دست گروه {domain}",
+ "follow_suggestions.friends_of_friends_longer": "محبوب بین کسانی که پیگرفتهاید",
"follow_suggestions.hints.featured": "این نمایه به دست گروه {domain} دستچین شده.",
"follow_suggestions.hints.friends_of_friends": "این نمایه بین کسانی که پی میگیرید محبوب است.",
"follow_suggestions.hints.most_followed": "این نمایه روی {domain} بسیار پیگرفته شده.",
@@ -281,6 +319,8 @@
"follow_suggestions.hints.similar_to_recently_followed": "این نمایه شبیه نمایههاییست که اخیراً پیگرفتهاید.",
"follow_suggestions.personalized_suggestion": "پیشنهاد شخصی",
"follow_suggestions.popular_suggestion": "پیشنهاد محبوب",
+ "follow_suggestions.popular_suggestion_longer": "محبوب روی {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "شبیه نمایههایی که اخیراً پی گرفتهاید",
"follow_suggestions.view_all": "دیدن همه",
"follow_suggestions.who_to_follow": "افرادی برای پیگیری",
"followed_tags": "برچسبهای پیگرفته",
@@ -309,6 +349,14 @@
"hashtag.follow": "پیگرفتن برچسب",
"hashtag.unfollow": "پینگرفتن برچسب",
"hashtags.and_other": "…و {count, plural, other {# بیشتر}}",
+ "hints.profiles.followers_may_be_missing": "شاید پیگیرندگان این نمایه نباشند.",
+ "hints.profiles.follows_may_be_missing": "شاید پیگرفتههای این نمایه نباشند.",
+ "hints.profiles.posts_may_be_missing": "شاید فرستههایی از این نمایه نباشند.",
+ "hints.profiles.see_more_followers": "دیدن پیگیرندگان بیشتر روی {domain}",
+ "hints.profiles.see_more_follows": "دیدن پیگرفتههای بیشتر روی {domain}",
+ "hints.profiles.see_more_posts": "دیدن فرستههای بیشتر روی {domain}",
+ "hints.threads.replies_may_be_missing": "شاید پاسخها از دیگر کارسازها نباشند.",
+ "hints.threads.see_more": "دیدن پاسخهای بیشتر روی {domain}",
"home.column_settings.show_reblogs": "نمایش تقویتها",
"home.column_settings.show_replies": "نمایش پاسخها",
"home.hide_announcements": "نهفتن اعلامیهها",
@@ -316,6 +364,11 @@
"home.pending_critical_update.link": "دیدن بهروز رسانیها",
"home.pending_critical_update.title": "بهروز رسانی امنیتی بحرانی موجود است!",
"home.show_announcements": "نمایش اعلامیهها",
+ "ignore_notifications_modal.ignore": "چشمپوشی از آگاهیها",
+ "ignore_notifications_modal.limited_accounts_title": "چشمپوشی از آگاهیهای حسابهای نظارت شده؟",
+ "ignore_notifications_modal.new_accounts_title": "چشمپوشی از آگاهیهای حسابهای جدید؟",
+ "ignore_notifications_modal.not_followers_title": "چشمپوشی از آگاهیهای افرادی که پیتان نمیگیرند؟",
+ "ignore_notifications_modal.not_following_title": "چشمپوشی از آگاهیهای افرادی که پیشان نمیگیرید؟",
"interaction_modal.description.favourite": "با حسابی روی ماستودون میتوانید این فرسته را برگزیده تا نگارنده بداند قدردانش هستید و برای آینده ذخیرهاش میکنید.",
"interaction_modal.description.follow": "با حسابی روی ماستودون میتوانید {name} را برای دریافت فرستههایش در خوراک خانگیتان دنبال کنید.",
"interaction_modal.description.reblog": "با حسابی روی ماستودون میتوانید این فرسته را با پیگیران خودتان همرسانی کنید.",
@@ -369,13 +422,13 @@
"keyboard_shortcuts.unfocus": "برداشتن تمرکز از ناحیهٔ نوشتن یا جستوجو",
"keyboard_shortcuts.up": "بالا بردن در سیاهه",
"lightbox.close": "بستن",
- "lightbox.compress": "فشردهسازی جعبهٔ نمایش تصویر",
- "lightbox.expand": "گسترش جعبهٔ نمایش تصویر",
"lightbox.next": "بعدی",
"lightbox.previous": "قبلی",
"limited_account_hint.action": "به هر روی نمایه نشان داده شود",
"limited_account_hint.title": "این نمایه از سوی ناظمهای {domain} پنهان شده.",
"link_preview.author": "از {name}",
+ "link_preview.more_from_author": "بیشتر از {name}",
+ "link_preview.shares": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}",
"lists.account.add": "افزودن به سیاهه",
"lists.account.remove": "برداشتن از سیاهه",
"lists.delete": "حذف سیاهه",
@@ -392,9 +445,18 @@
"lists.subheading": "سیاهههایتان",
"load_pending": "{count, plural, one {# مورد جدید} other {# مورد جدید}}",
"loading_indicator.label": "در حال بارگذاری…",
- "media_gallery.toggle_visible": "{number, plural, one {نهفتن تصویر} other {نهفتن تصاویر}}",
+ "media_gallery.hide": "نهفتن",
"moved_to_account_banner.text": "حسابتان {disabledAccount} اکنون از کار افتاده؛ چرا که به {movedToAccount} منتقل شدید.",
+ "mute_modal.hide_from_notifications": "نهفتن از آگاهیها",
+ "mute_modal.hide_options": "گزینههای نهفتن",
+ "mute_modal.indefinite": "تا وقتی ناخموشش کنم",
+ "mute_modal.show_options": "نمایش گزینهها",
+ "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": "بازکردن در رابط کاربری وب پیشرفته",
"navigation_bar.blocks": "کاربران مسدود شده",
"navigation_bar.bookmarks": "نشانکها",
@@ -411,6 +473,7 @@
"navigation_bar.follows_and_followers": "پیگرفتگان و پیگیرندگان",
"navigation_bar.lists": "سیاههها",
"navigation_bar.logout": "خروج",
+ "navigation_bar.moderation": "نظارت",
"navigation_bar.mutes": "کاربران خموشانده",
"navigation_bar.opened_in_classic_interface": "فرستهها، حسابها و دیگر صفحههای خاص به طور پیشگزیده در میانای وب کلاسیک گشوده میشوند.",
"navigation_bar.personal": "شخصی",
@@ -421,22 +484,57 @@
"navigation_bar.security": "امنیت",
"not_signed_in_indicator.not_signed_in": "برای دسترسی به این منبع باید وارد شوید.",
"notification.admin.report": "{name}، {target} را گزارش داد",
+ "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.favourite": "{name} فرستهتان را برگزید",
+ "notification.favourite.name_and_others_with_link": "{name} و {count, plural, one {# نفر دیگر} other {# نفر دیگر}} فرستهتان را برگزیدند",
"notification.follow": "{name} پیگیرتان شد",
+ "notification.follow.name_and_others": "{name} و {count, plural, one {# نفر دیگر} other {# نفر دیگر}} پیتان گرفتند",
"notification.follow_request": "{name} درخواست پیگیریتان را داد",
- "notification.mention": "{name} به شما اشاره کرد",
+ "notification.follow_request.name_and_others": "{name} و {count, plural, one {# نفر دیگر} other {# نفر دیگر}} درخواست پیگیریتان را دادند",
+ "notification.label.mention": "اشاره",
+ "notification.label.private_mention": "اشارهٔ خصوصی",
+ "notification.label.private_reply": "پاسخ خصوصی",
+ "notification.label.reply": "پاسخ",
+ "notification.mention": "اشاره",
+ "notification.moderation-warning.learn_more": "بیشتر بدانید",
+ "notification.moderation_warning": "هشداری مدیریتی گرفتهاید",
+ "notification.moderation_warning.action_delete_statuses": "برخی از فرستههایتان برداشته شدند.",
+ "notification.moderation_warning.action_disable": "حسابتان از کار افتاد.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "برخی از فرستههایتان به عنوان حسّاس علامت خوردند.",
+ "notification.moderation_warning.action_none": "حسابتان هشداری مدیریتی گرفت.",
+ "notification.moderation_warning.action_sensitive": "فرستههایتان از اکنون به عنوان حسّاس علامت خواهند خورد.",
+ "notification.moderation_warning.action_silence": "حسابتان محدود شده.",
+ "notification.moderation_warning.action_suspend": "حسابتان معلّق شده.",
"notification.own_poll": "نظرسنجیتان پایان یافت",
- "notification.poll": "نظرسنجیای که در آن رأی دادید به پایان رسیده است",
+ "notification.poll": "نظرسنجیای که در آن رأی دادید به پایان رسید",
"notification.reblog": "{name} فرستهتان را تقویت کرد",
+ "notification.reblog.name_and_others_with_link": "{name} و {count, plural, one {# نفر دیگر} other {# نفر دیگر}} فرستهتان را تقویت کردند",
+ "notification.relationships_severance_event": "قطع ارتباط با {name}",
+ "notification.relationships_severance_event.learn_more": "بیشتر بدانید",
"notification.status": "{name} چیزی فرستاد",
"notification.update": "{name} فرستهای را ویرایش کرد",
+ "notification_requests.accept": "پذیرش",
+ "notification_requests.confirm_accept_multiple.title": "پذیرش درخواستهای آگاهی؟",
+ "notification_requests.confirm_dismiss_multiple.title": "رد کردن درخواستهای آگاهی؟",
+ "notification_requests.dismiss": "دورانداختن",
+ "notification_requests.edit_selection": "ویرایش",
+ "notification_requests.exit_selection": "انجام شد",
+ "notification_requests.maximize": "بیشنه",
+ "notification_requests.minimize_banner": "کمینه کردن بیرق آگاهیهای پالوده",
+ "notification_requests.notifications_from": "آگاهیها از {name}",
+ "notification_requests.title": "آگاهیهای پالوده",
+ "notification_requests.view": "دیدن آگاهیها",
"notifications.clear": "پاکسازی آگاهیها",
"notifications.clear_confirmation": "مطمئنید میخواهید همهٔ آگاهیهایتان را برای همیشه پاک کنید؟",
+ "notifications.clear_title": "پاکسازی آگاهیها؟",
"notifications.column_settings.admin.report": "گزارشهای جدید:",
"notifications.column_settings.admin.sign_up": "ثبت نامهای جدید:",
"notifications.column_settings.alert": "آگاهیهای میزکار",
"notifications.column_settings.favourite": "برگزیدهها:",
+ "notifications.column_settings.filter_bar.advanced": "نمایش همۀ دستهها",
+ "notifications.column_settings.filter_bar.category": "نوار پالایش سریع",
"notifications.column_settings.follow": "پیگیرندگان جدید:",
"notifications.column_settings.follow_request": "درخواستهای جدید پیگیری:",
"notifications.column_settings.mention": "اشارهها:",
@@ -462,8 +560,19 @@
"notifications.permission_denied": "آگاهیهای میزکار به دلیل رد کردن درخواست اجازهٔ پیشین مرورگر، در دسترس نیستند",
"notifications.permission_denied_alert": "از آنجا که پیش از این اجازهٔ مرورگر رد شده است، آگاهیهای میزکار نمیتوانند به کار بیفتند",
"notifications.permission_required": "آگاهیهای میزکار در دسترس نیستند زیرا اجازههای لازم، اعطا نشده.",
+ "notifications.policy.accept": "پذیرش",
+ "notifications.policy.accept_hint": "نمایش در آگاهیها",
+ "notifications.policy.drop": "چشمپوشی",
+ "notifications.policy.drop_hint": "فرستادن به هیچ. دیگر هرگز دیده نخواهند شد",
+ "notifications.policy.filter": "پالایش",
+ "notifications.policy.filter_hint": "فرستادن به صندوق آگاهیهای پالوده",
+ "notifications.policy.filter_limited_accounts_hint": "محدود شده به دست ناظمهای کارساز",
+ "notifications.policy.filter_limited_accounts_title": "حسابهای مدیریت شده",
+ "notifications.policy.filter_new_accounts_title": "حسابهای جدید",
"notifications.policy.filter_not_followers_title": "کسانی که شما را دنبال میکنند",
"notifications.policy.filter_not_following_hint": "",
+ "notifications.policy.filter_not_following_title": "کسانی که پی نمیگیرید",
+ "notifications.policy.title": "مدیریت آگاهیها از…",
"notifications_permission_banner.enable": "به کار انداختن آگاهیهای میزکار",
"notifications_permission_banner.how_to_control": "برای دریافت آگاهیها هنگام باز نبودن ماستودون، آگاهیهای میزکار را به کار بیندازید. پس از به کار افتادنشان میتوانید گونههای دقیق برهمکنشهایی که آگاهیهای میزکار تولید میکنند را از {icon} بالا واپایید.",
"notifications_permission_banner.title": "هرگز چیزی را از دست ندهید",
@@ -590,9 +699,13 @@
"report.unfollow_explanation": "شما این حساب را پیگرفتهاید، برای اینکه دیگر فرستههایش را در خوراک خانهتان نبینید؛ آن را پینگیرید.",
"report_notification.attached_statuses": "{count, plural, one {{count} فرسته} other {{count} فرسته}} پیوست شده",
"report_notification.categories.legal": "قانونی",
+ "report_notification.categories.legal_sentence": "محتوای غیرقانونی",
"report_notification.categories.other": "دیگر",
+ "report_notification.categories.other_sentence": "دیگر",
"report_notification.categories.spam": "هرزنامه",
+ "report_notification.categories.spam_sentence": "هرزنامه",
"report_notification.categories.violation": "تخطّی از قانون",
+ "report_notification.categories.violation_sentence": "تخطّی از قانون",
"report_notification.open": "گشودن گزارش",
"search.no_recent_searches": "جستوجوی اخیری نیست",
"search.placeholder": "جستوجو",
@@ -631,18 +744,18 @@
"status.bookmark": "نشانک",
"status.cancel_reblog_private": "ناتقویت",
"status.cannot_reblog": "این فرسته قابل تقویت نیست",
+ "status.continued_thread": "رشتهٔ دنباله دار",
"status.copy": "رونوشت از پیوند فرسته",
"status.delete": "حذف",
"status.detailed_status": "نمایش کامل گفتگو",
"status.direct": "اشارهٔ خصوصی به @{name}",
"status.direct_indicator": "اشارهٔ خصوصی",
"status.edit": "ویرایش",
+ "status.edited": "آخرین ویرایش {date}",
"status.edited_x_times": "{count, plural, one {{count} مرتبه} other {{count} مرتبه}} ویرایش شد",
- "status.embed": "جاسازی",
"status.favourite": "برگزیده",
+ "status.favourites": "{count, plural, one {برگزیده} other {برگزیده}}",
"status.filter": "پالایش این فرسته",
- "status.filtered": "پالوده",
- "status.hide": "نهفتن فرسته",
"status.history.created": "توسط {name} در {date} ایجاد شد",
"status.history.edited": "توسط {name} در {date} ویرایش شد",
"status.load_more": "بار کردن بیشتر",
@@ -660,19 +773,18 @@
"status.reblog": "تقویت",
"status.reblog_private": "تقویت برای مخاطبان نخستین",
"status.reblogged_by": "{name} تقویت کرد",
+ "status.reblogs": "{count, plural, one {تقویت} other {تقویت}}",
"status.reblogs.empty": "هنوز هیچ کسی این فرسته را تقویت نکرده است. وقتی کسی چنین کاری کند، اینجا نمایش داده خواهد شد.",
"status.redraft": "حذف و بازنویسی",
"status.remove_bookmark": "برداشتن نشانک",
+ "status.replied_in_thread": "در رشته پاسخ داده",
"status.replied_to": "به {name} پاسخ داد",
"status.reply": "پاسخ",
"status.replyAll": "پاسخ به رشته",
"status.report": "گزارش @{name}",
"status.sensitive_warning": "محتوای حساس",
"status.share": "همرسانی",
- "status.show_filter_reason": "به هر روی نشان داده شود",
- "status.show_less": "نمایش کمتر",
"status.show_less_all": "نمایش کمتر همه",
- "status.show_more": "نمایش بیشتر",
"status.show_more_all": "نمایش بیشتر همه",
"status.show_original": "نمایش اصلی",
"status.title.with_attachments": "{user} {attachmentCount, plural, one {یک پیوست} other {{attachmentCount} پیوست}} فرستاد",
@@ -691,10 +803,6 @@
"time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} باقی مانده",
"time_remaining.moments": "زمان باقیمانده",
"time_remaining.seconds": "{number, plural, one {# ثانیه} other {# ثانیه}} باقی مانده",
- "timeline_hint.remote_resource_not_displayed": "{resource} از دیگر کارسازها نمایش داده نمیشوند.",
- "timeline_hint.resources.followers": "پیگیرندگان",
- "timeline_hint.resources.follows": "پیگرفتگان",
- "timeline_hint.resources.statuses": "فرستههای قدیمیتر",
"trends.counter_by_accounts": "{count, plural, one {{counter} نفر} other {{counter} نفر}} در {days, plural, one {روز} other {{days} روز}} گذشته",
"trends.trending_now": "پرطرفدار",
"ui.beforeunload": "اگر از ماستودون خارج شوید پیشنویس شما از دست خواهد رفت.",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 67e2b72b869..d4adef40f2f 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -1,17 +1,17 @@
{
"about.blocks": "Moderoidut palvelimet",
- "about.contact": "Ota yhteys:",
+ "about.contact": "Yhteydenotto:",
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
"about.domain_blocks.no_reason_available": "Syy ei ole tiedossa",
- "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä, ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.",
+ "about.domain_blocks.preamble": "Mastodonin avulla voi yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.",
"about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.",
"about.domain_blocks.silenced.title": "Rajoitettu",
- "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.",
+ "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta eikä vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.",
"about.domain_blocks.suspended.title": "Jäädytetty",
"about.not_available": "Näitä tietoja ei ole julkaistu tällä palvelimella.",
"about.powered_by": "Hajautetun sosiaalisen median tarjoaa {mastodon}",
"about.rules": "Palvelimen säännöt",
- "account.account_note_header": "Muistiinpano",
+ "account.account_note_header": "Henkilökohtainen muistiinpano",
"account.add_or_remove_from_list": "Lisää tai poista listoilta",
"account.badges.bot": "Botti",
"account.badges.group": "Ryhmä",
@@ -19,7 +19,6 @@
"account.block_domain": "Estä verkkotunnus {domain}",
"account.block_short": "Estä",
"account.blocked": "Estetty",
- "account.browse_more_on_origin_server": "Selaile kattavampaa alkuperäprofiilia",
"account.cancel_follow_request": "Peruuta seurantapyyntö",
"account.copy": "Kopioi linkki profiiliin",
"account.direct": "Mainitse @{name} yksityisesti",
@@ -30,7 +29,7 @@
"account.endorse": "Suosittele profiilissasi",
"account.featured_tags.last_status_at": "Viimeisin julkaisu {date}",
"account.featured_tags.last_status_never": "Ei julkaisuja",
- "account.featured_tags.title": "Käyttäjän {name} esillä pidettävät aihetunnisteet",
+ "account.featured_tags.title": "Käyttäjän {name} suosittelemat aihetunnisteet",
"account.follow": "Seuraa",
"account.follow_back": "Seuraa takaisin",
"account.followers": "Seuraajat",
@@ -45,7 +44,7 @@
"account.joined_short": "Liittynyt",
"account.languages": "Vaihda tilattuja kieliä",
"account.link_verified_on": "Linkin omistus tarkistettiin {date}",
- "account.locked_info": "Tilin yksityisyystilaksi on määritetty lukittu ja tilin omistaja arvioi erikseen, kuka voi seurata häntä.",
+ "account.locked_info": "Tilin yksityisyystilaksi on määritetty lukittu. Tilin omistaja arvioi erikseen, kuka voi seurata häntä.",
"account.media": "Media",
"account.mention": "Mainitse @{name}",
"account.moved_to": "{name} on ilmoittanut uudeksi tilikseen",
@@ -59,30 +58,30 @@
"account.posts": "Julkaisut",
"account.posts_with_replies": "Julkaisut ja vastaukset",
"account.report": "Raportoi @{name}",
- "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö napsauttamalla",
+ "account.requested": "Odottaa hyväksyntää. Peruuta seurantapyyntö napsauttamalla",
"account.requested_follow": "{name} on pyytänyt lupaa seurata sinua",
"account.share": "Jaa käyttäjän @{name} profiili",
"account.show_reblogs": "Näytä käyttäjän @{name} tehostukset",
"account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
"account.unblock": "Kumoa käyttäjän @{name} esto",
"account.unblock_domain": "Kumoa verkkotunnuksen {domain} esto",
- "account.unblock_short": "Poista esto",
+ "account.unblock_short": "Kumoa esto",
"account.unendorse": "Kumoa suosittelu profiilissasi",
- "account.unfollow": "Lopeta seuraaminen",
+ "account.unfollow": "Älä seuraa",
"account.unmute": "Poista käyttäjän @{name} mykistys",
"account.unmute_notifications_short": "Poista ilmoitusten mykistys",
"account.unmute_short": "Poista mykistys",
"account_note.placeholder": "Lisää muistiinpano napsauttamalla",
- "admin.dashboard.daily_retention": "Käyttäjien pysyvyys rekisteröitymisen jälkeen päivittäin",
- "admin.dashboard.monthly_retention": "Käyttäjien pysyvyys rekisteröitymisen jälkeen kuukausittain",
- "admin.dashboard.retention.average": "Keskiarvo",
+ "admin.dashboard.daily_retention": "Käyttäjien pysyvyys päivittäin rekisteröitymisen jälkeen",
+ "admin.dashboard.monthly_retention": "Käyttäjien pysyvyys kuukausittain rekisteröitymisen jälkeen",
+ "admin.dashboard.retention.average": "Keskimäärin",
"admin.dashboard.retention.cohort": "Rekisteröitymis-kk.",
"admin.dashboard.retention.cohort_size": "Uusia käyttäjiä",
"admin.impact_report.instance_accounts": "Tilien profiilit, jotka tämä poistaisi",
"admin.impact_report.instance_followers": "Seuraajat, jotka käyttäjämme menettäisivät",
"admin.impact_report.instance_follows": "Seuraajat, jotka heidän käyttäjänsä menettäisivät",
"admin.impact_report.title": "Vaikutusten yhteenveto",
- "alert.rate_limited.message": "Yritä uudestaan {retry_time, time, medium} jälkeen.",
+ "alert.rate_limited.message": "Yritä uudelleen {retry_time, time, medium} jälkeen.",
"alert.rate_limited.title": "Pyyntömäärää rajoitettu",
"alert.unexpected.message": "Tapahtui odottamaton virhe.",
"alert.unexpected.title": "Hups!",
@@ -96,14 +95,16 @@
"block_modal.they_cant_see_posts": "Hän ei voi enää nähdä julkaisujasi, etkä sinä voi nähdä hänen.",
"block_modal.they_will_know": "Hän voi nähdä, että hänet on estetty.",
"block_modal.title": "Estetäänkö käyttäjä?",
- "block_modal.you_wont_see_mentions": "Et tule enää näkemään julkaisuja, joissa hänet mainitaan.",
+ "block_modal.you_wont_see_mentions": "Et näe enää julkaisuja, joissa hänet mainitaan.",
"boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}",
+ "boost_modal.reblog": "Tehostetaanko julkaisua?",
+ "boost_modal.undo_reblog": "Perutaanko julkaisun tehostus?",
"bundle_column_error.copy_stacktrace": "Kopioi virheraportti",
"bundle_column_error.error.body": "Pyydettyä sivua ei voitu hahmontaa. Se voi johtua virheestä koodissamme tai selaimen yhteensopivuudessa.",
"bundle_column_error.error.title": "Voi ei!",
"bundle_column_error.network.body": "Sivun lataamisessa tapahtui virhe. Tämä voi johtua tilapäisestä Internet-yhteyden tai tämän palvelimen ongelmasta.",
"bundle_column_error.network.title": "Verkkovirhe",
- "bundle_column_error.retry": "Yritä uudestaan",
+ "bundle_column_error.retry": "Yritä uudelleen",
"bundle_column_error.return": "Palaa takaisin kotiin",
"bundle_column_error.routing.body": "Pyydettyä sivua ei löytynyt. Oletko varma, että osoitepalkin URL-osoite on oikein?",
"bundle_column_error.routing.title": "404",
@@ -111,7 +112,7 @@
"bundle_modal_error.message": "Jotain meni pieleen komponenttia ladattaessa.",
"bundle_modal_error.retry": "Yritä uudelleen",
"closed_registrations.other_server_instructions": "Koska Mastodon on hajautettu, voit luoda tilin toiselle palvelimelle ja olla silti vuorovaikutuksessa tämän kanssa.",
- "closed_registrations_modal.description": "Tilin luonti palveluun {domain} ei tällä hetkellä ole mahdollista, mutta huomioi, ettei Mastodonin käyttö edellytä juuri kyseisen palvelun tiliä.",
+ "closed_registrations_modal.description": "Tilin luonti palvelimelle {domain} ei tällä hetkellä ole mahdollista, mutta ota huomioon, ettei Mastodonin käyttö edellytä juuri kyseisen palvelimen tiliä.",
"closed_registrations_modal.find_another_server": "Etsi toinen palvelin",
"closed_registrations_modal.preamble": "Mastodon on hajautettu, joten riippumatta siitä, missä luot tilisi, voit seurata ja olla vuorovaikutuksessa kenen tahansa kanssa tällä palvelimella. Voit jopa isännöidä palvelinta!",
"closed_registrations_modal.title": "Rekisteröityminen Mastodoniin",
@@ -119,12 +120,12 @@
"column.blocks": "Estetyt käyttäjät",
"column.bookmarks": "Kirjanmerkit",
"column.community": "Paikallinen aikajana",
- "column.direct": "Yksityiset maininnat",
+ "column.direct": "Yksityismaininnat",
"column.directory": "Selaa profiileja",
"column.domain_blocks": "Estetyt verkkotunnukset",
"column.favourites": "Suosikit",
"column.firehose": "Livesyötteet",
- "column.follow_requests": "Seuraamispyynnöt",
+ "column.follow_requests": "Seurantapyynnöt",
"column.home": "Koti",
"column.lists": "Listat",
"column.mutes": "Mykistetyt käyttäjät",
@@ -143,7 +144,7 @@
"community.column_settings.media_only": "Vain media",
"community.column_settings.remote_only": "Vain etätilit",
"compose.language.change": "Vaihda kieli",
- "compose.language.search": "Hae kieliä...",
+ "compose.language.search": "Hae kieliä…",
"compose.published.body": "Julkaisu lähetetty.",
"compose.published.open": "Avaa",
"compose.saved.body": "Julkaisu tallennettu.",
@@ -157,8 +158,8 @@
"compose_form.poll.multiple": "Monivalinta",
"compose_form.poll.option_placeholder": "Vaihtoehto {number}",
"compose_form.poll.single": "Valitse yksi",
- "compose_form.poll.switch_to_multiple": "Muuta kysely monivalinnaksi",
- "compose_form.poll.switch_to_single": "Muuta kysely sallimaan vain yksi valinta",
+ "compose_form.poll.switch_to_multiple": "Muuta äänestys monivalinnaksi",
+ "compose_form.poll.switch_to_single": "Muuta äänestys yksittäisvalinnaksi",
"compose_form.poll.type": "Tyyli",
"compose_form.publish": "Julkaise",
"compose_form.publish_form": "Uusi julkaisu",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Sisältövaroitus (valinnainen)",
"confirmation_modal.cancel": "Peruuta",
"confirmations.block.confirm": "Estä",
- "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö",
- "confirmations.cancel_follow_request.message": "Haluatko varmasti perua pyyntösi seurata käyttäjätiliä {name}?",
"confirmations.delete.confirm": "Poista",
"confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?",
+ "confirmations.delete.title": "Poistetaanko julkaisu?",
"confirmations.delete_list.confirm": "Poista",
"confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?",
+ "confirmations.delete_list.title": "Poistetaanko lista?",
"confirmations.discard_edit_media.confirm": "Hylkää",
"confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun. Hylätäänkö ne silti?",
- "confirmations.domain_block.confirm": "Estä palvelin",
- "confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkkotunnuksen {domain}? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimi. Et näe sisältöä tästä verkkotunnuksesta millään julkisilla aikajanoilla tai ilmoituksissa. Tähän verkkotunnukseen kuuluvat seuraajasi poistetaan.",
"confirmations.edit.confirm": "Muokkaa",
"confirmations.edit.message": "Jos muokkaat viestiä nyt, se korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?",
+ "confirmations.edit.title": "Korvataanko julkaisu?",
"confirmations.logout.confirm": "Kirjaudu ulos",
"confirmations.logout.message": "Haluatko varmasti kirjautua ulos?",
+ "confirmations.logout.title": "Kirjaudutaanko ulos?",
"confirmations.mute.confirm": "Mykistä",
"confirmations.redraft.confirm": "Poista ja palauta muokattavaksi",
"confirmations.redraft.message": "Haluatko varmasti poistaa julkaisun ja tehdä siitä luonnoksen? Suosikit ja tehostukset menetetään, ja alkuperäisen julkaisun vastaukset jäävät orvoiksi.",
+ "confirmations.redraft.title": "Poistetaanko julkaisu ja palautetaanko se muokattavaksi?",
"confirmations.reply.confirm": "Vastaa",
"confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?",
+ "confirmations.reply.title": "Korvataanko julkaisu?",
"confirmations.unfollow.confirm": "Lopeta seuraaminen",
"confirmations.unfollow.message": "Haluatko varmasti lopettaa profiilin {name} seuraamisen?",
+ "confirmations.unfollow.title": "Lopetetaanko käyttäjän seuraaminen?",
+ "content_warning.hide": "Piilota julkaisu",
+ "content_warning.show": "Näytä kuitenkin",
"conversation.delete": "Poista keskustelu",
"conversation.mark_as_read": "Merkitse luetuksi",
"conversation.open": "Näytä keskustelu",
@@ -197,7 +203,7 @@
"copy_icon_button.copied": "Sisältö kopioitiin leikepöydälle",
"copypaste.copied": "Kopioitu",
"copypaste.copy_to_clipboard": "Kopioi leikepöydälle",
- "directory.federated": "Koko tunnettu fediversumi",
+ "directory.federated": "Tunnetusta fediversumista",
"directory.local": "Vain palvelimelta {domain}",
"directory.new_arrivals": "Äskettäin saapuneet",
"directory.recently_active": "Hiljattain aktiiviset",
@@ -205,29 +211,29 @@
"disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.",
"dismissable_banner.community_timeline": "Nämä ovat tuoreimpia julkaisuja käyttäjiltä, joiden tili on palvelimella {domain}.",
"dismissable_banner.dismiss": "Hylkää",
- "dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat listauksessa korkeammalle.",
- "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat listauksessa korkeammalle.",
- "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat listauksessa korkeammalle.",
- "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.",
+ "dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat korkeammalle sijalle.",
+ "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat korkeammalle sijalle.",
+ "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat korkeammalle sijalle.",
+ "dismissable_banner.public_timeline": "Nämä ovat tuoreimpia julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.",
"domain_block_modal.block": "Estä palvelin",
"domain_block_modal.block_account_instead": "Estä sen sijaan @{name}",
- "domain_block_modal.they_can_interact_with_old_posts": "Ihmiset tältä palvelimelta eivät voi olla vuorovaikutuksessa vanhojen julkaisujesi kanssa.",
+ "domain_block_modal.they_can_interact_with_old_posts": "Tämän palvelimen käyttäjät eivät voi olla vuorovaikutuksessa vanhojen julkaisujesi kanssa.",
"domain_block_modal.they_cant_follow": "Kukaan tältä palvelimelta ei voi seurata sinua.",
- "domain_block_modal.they_wont_know": "Hän ei saa ilmoitusta tulleensa estetyksi.",
+ "domain_block_modal.they_wont_know": "Hän ei saa tietää tulleensa estetyksi.",
"domain_block_modal.title": "Estetäänkö verkkotunnus?",
"domain_block_modal.you_will_lose_followers": "Kaikki seuraajasi tältä palvelimelta poistetaan.",
"domain_block_modal.you_wont_see_posts": "Et enää näe julkaisuja etkä ilmoituksia tämän palvelimen käyttäjiltä.",
"domain_pill.activitypub_lets_connect": "Sen avulla voit muodostaa yhteyden ja olla vuorovaikutuksessa ihmisten kanssa, ei vain Mastodonissa vaan myös muissa sosiaalisissa sovelluksissa.",
"domain_pill.activitypub_like_language": "ActivityPub on kuin kieli, jota Mastodon puhuu muiden sosiaalisten verkostojen kanssa.",
"domain_pill.server": "Palvelin",
- "domain_pill.their_handle": "Hänen käyttäjänimensä:",
+ "domain_pill.their_handle": "Hänen käyttäjätunnuksensa:",
"domain_pill.their_server": "Hänen digitaalinen kotinsa, jossa kaikki hänen julkaisunsa sijaitsevat.",
"domain_pill.their_username": "Hänen yksilöllinen tunnisteensa omalla palvelimellaan. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.",
"domain_pill.username": "Käyttäjänimi",
- "domain_pill.whats_in_a_handle": "Mitä käyttäjänimessä on?",
- "domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa ihmisten kanssa läpi sosiaalisen verkon, joka koostuu ActivityPub-pohjaisista alustoista.",
- "domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, ihmiset voivat olla vaikutuksessa kanssasi läpi sosiaalisen verkon, joka koostuu ActivityPub-pohjaisista alustoista.",
- "domain_pill.your_handle": "Käyttäjänimesi:",
+ "domain_pill.whats_in_a_handle": "Mitä käyttäjätunnuksessa on?",
+ "domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa käyttäjien kanssa kaikkialla sosiaalisessa verkossa, joka koostuu ActivityPub-pohjaisista alustoista.",
+ "domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, käyttäjät voivat olla vaikutuksessa kanssasi kaikkialla sosiaalisessa verkossa, joka koostuu ActivityPub-pohjaisista alustoista.",
+ "domain_pill.your_handle": "Käyttäjätunnuksesi:",
"domain_pill.your_server": "Digitaalinen kotisi, jossa kaikki julkaisusi sijaitsevat. Etkö pidä tästä? Siirry palvelimelta toiselle milloin tahansa ja tuo myös seuraajasi mukanasi.",
"domain_pill.your_username": "Yksilöllinen tunnisteesi tällä palvelimella. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.",
"embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.",
@@ -243,7 +249,7 @@
"emoji_button.objects": "Esineet",
"emoji_button.people": "Ihmiset",
"emoji_button.recent": "Usein käytetyt",
- "emoji_button.search": "Etsi...",
+ "emoji_button.search": "Hae…",
"emoji_button.search_results": "Hakutulokset",
"emoji_button.symbols": "Symbolit",
"emoji_button.travel": "Matkailu ja paikat",
@@ -254,21 +260,21 @@
"empty_column.blocks": "Et ole vielä estänyt käyttäjiä.",
"empty_column.bookmarked_statuses": "Et ole vielä lisännyt julkaisuja kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
"empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
- "empty_column.direct": "Yksityisiä mainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellaisia, näet ne täällä.",
+ "empty_column.direct": "Yksityismainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellaisia, näet ne täällä.",
"empty_column.domain_blocks": "Verkkotunnuksia ei ole vielä estetty.",
"empty_column.explore_statuses": "Mikään ei ole nyt suosittua. Tarkista myöhemmin uudelleen!",
"empty_column.favourited_statuses": "Sinulla ei ole vielä yhtään suosikkijulkaisua. Kun lisäät sellaisen, näkyy se tässä.",
"empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä julkaisua suosikkeihinsa. Kun joku tekee niin, tulee hän tähän näkyviin.",
- "empty_column.follow_requests": "Et ole vielä vastaanottanut seuraamispyyntöjä. Saamasi pyynnöt näkyvät täällä.",
+ "empty_column.follow_requests": "Et ole vielä vastaanottanut seurantapyyntöjä. Saamasi pyynnöt näkyvät täällä.",
"empty_column.followed_tags": "Et seuraa vielä yhtäkään aihetunnistetta. Kun alat seurata, ne tulevat tähän näkyviin.",
"empty_column.hashtag": "Tällä aihetunnisteella ei löydy vielä sisältöä.",
- "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.",
+ "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia käyttäjiä, niin näet enemmän sisältöä.",
"empty_column.list": "Tällä listalla ei ole vielä mitään. Kun tämän listan jäsenet lähettävät uusia julkaisuja, ne näkyvät tässä.",
"empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.",
"empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.",
"empty_column.notification_requests": "Olet ajan tasalla! Täällä ei ole mitään uutta kerrottavaa. Kun saat uusia ilmoituksia, ne näkyvät täällä asetustesi mukaisesti.",
- "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.",
- "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myös seurata muiden palvelimien käyttäjiä",
+ "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun muut ovat vuorovaikutuksessa kanssasi, näet sen täällä.",
+ "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai seuraa muiden palvelinten käyttäjiä, niin saat sisältöä",
"error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.",
"error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.",
"error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos se ei auta, voi Mastodonin käyttö ehkä onnistua eri selaimella tai natiivisovelluksella.",
@@ -276,7 +282,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle",
"errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
"explore.search_results": "Hakutulokset",
- "explore.suggested_follows": "Henkilöt",
+ "explore.suggested_follows": "Käyttäjät",
"explore.title": "Selaa",
"explore.trending_links": "Uutiset",
"explore.trending_statuses": "Julkaisut",
@@ -297,21 +303,21 @@
"filter_modal.select_filter.subtitle": "Käytä olemassa olevaa luokkaa tai luo uusi",
"filter_modal.select_filter.title": "Suodata tämä julkaisu",
"filter_modal.title.status": "Suodata julkaisu",
- "filtered_notifications_banner.mentions": "{count, plural, one {maininta} other {mainintaa}}",
- "filtered_notifications_banner.pending_requests": "Ilmoituksia {count, plural, =0 {ei ole} one {1 henkilöltä} other {# henkilöltä}}, jonka saatat tuntea",
+ "filter_warning.matches_filter": "Vastaa suodatinta ”{title}”",
+ "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Ei keneltäkään, jonka} one {Yhdeltä käyttäjältä, jonka} other {# käyttäjältä, jotka}} saatat tuntea",
"filtered_notifications_banner.title": "Suodatetut ilmoitukset",
"firehose.all": "Kaikki",
"firehose.local": "Tämä palvelin",
"firehose.remote": "Muut palvelimet",
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
- "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.",
+ "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seurantapyynnöt erikseen.",
"follow_suggestions.curated_suggestion": "Ehdotus ylläpidolta",
"follow_suggestions.dismiss": "Älä näytä uudelleen",
"follow_suggestions.featured_longer": "Palvelimen {domain} tiimin poimintoja",
- "follow_suggestions.friends_of_friends_longer": "Suosittu seuraamiesi ihmisten keskuudessa",
+ "follow_suggestions.friends_of_friends_longer": "Suosittu seuraamiesi käyttäjien joukossa",
"follow_suggestions.hints.featured": "Tämän profiilin on valinnut palvelimen {domain} tiimi.",
- "follow_suggestions.hints.friends_of_friends": "Seuraamasi käyttäjät suosivat tätä profiilia.",
+ "follow_suggestions.hints.friends_of_friends": "Tämä profiili on suosittu seuraamiesi käyttäjien joukossa.",
"follow_suggestions.hints.most_followed": "Tämä profiili on palvelimen {domain} seuratuimpia.",
"follow_suggestions.hints.most_interactions": "Tämä profiili on viime aikoina saanut paljon huomiota palvelimella {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Tämä profiili on samankaltainen kuin profiilit, joita olet viimeksi seurannut.",
@@ -325,7 +331,7 @@
"footer.about": "Tietoja",
"footer.directory": "Profiilihakemisto",
"footer.get_app": "Hanki sovellus",
- "footer.invite": "Kutsu ihmisiä",
+ "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",
@@ -347,6 +353,14 @@
"hashtag.follow": "Seuraa aihetunnistetta",
"hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen",
"hashtags.and_other": "…ja {count, plural, other {# lisää}}",
+ "hints.profiles.followers_may_be_missing": "Tämän profiilin seuraajia saattaa puuttua.",
+ "hints.profiles.follows_may_be_missing": "Tämän profiilin seurattuja saattaa puuttua.",
+ "hints.profiles.posts_may_be_missing": "Tämän profiilin julkaisuja saattaa puuttua.",
+ "hints.profiles.see_more_followers": "Näytä lisää seuraajia palvelimella {domain}",
+ "hints.profiles.see_more_follows": "Näytä lisää seurattuja palvelimella {domain}",
+ "hints.profiles.see_more_posts": "Näytä lisää julkaisuja palvelimella {domain}",
+ "hints.threads.replies_may_be_missing": "Muiden palvelinten vastauksia saattaa puuttua.",
+ "hints.threads.see_more": "Näytä lisää vastauksia palvelimella {domain}",
"home.column_settings.show_reblogs": "Näytä tehostukset",
"home.column_settings.show_replies": "Näytä vastaukset",
"home.hide_announcements": "Piilota tiedotteet",
@@ -354,7 +368,18 @@
"home.pending_critical_update.link": "Tutustu päivityssisältöihin",
"home.pending_critical_update.title": "Kriittinen tietoturvapäivitys saatavilla!",
"home.show_announcements": "Näytä tiedotteet",
- "interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä tämän julkaisun suosikkeihisi osoittaaksesi kirjoittajalle arvostavasi sitä ja tallentaaksesi sen tulevaa käyttöä varten.",
+ "ignore_notifications_modal.disclaimer": "Mastodon ei voi ilmoittaa käyttäjille, että olet sivuuttanut heidän ilmoituksensa. Ilmoitusten sivuuttaminen ei lopeta itse viestien lähetystä.",
+ "ignore_notifications_modal.filter_instead": "Suodata sen sijaan",
+ "ignore_notifications_modal.filter_to_act_users": "Voit kuitenkin yhä hyväksyä, hylätä tai raportoida käyttäjiä",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Suodatus auttaa välttämään mahdollisia sekaannuksia",
+ "ignore_notifications_modal.filter_to_review_separately": "Voit käydä suodatettuja ilmoituksia läpi erikseen",
+ "ignore_notifications_modal.ignore": "Sivuuta ilmoitukset",
+ "ignore_notifications_modal.limited_accounts_title": "Sivuutetaanko ilmoitukset moderoiduilta tileiltä?",
+ "ignore_notifications_modal.new_accounts_title": "Sivuutetaanko ilmoitukset uusilta tileiltä?",
+ "ignore_notifications_modal.not_followers_title": "Sivuutetaanko ilmoitukset käyttäjiltä, jotka eivät seuraa sinua?",
+ "ignore_notifications_modal.not_following_title": "Sivuutetaanko ilmoitukset käyttäjiltä, joita et seuraa?",
+ "ignore_notifications_modal.private_mentions_title": "Sivuutetaanko ilmoitukset pyytämättömistä yksityismaininnoista?",
+ "interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä tämän julkaisun suosikkeihisi osoittaaksesi tekijälle arvostavasi sitä ja tallentaaksesi sen tulevaa käyttöä varten.",
"interaction_modal.description.follow": "Mastodon-tilillä voit seurata käyttäjää {name} saadaksesi hänen julkaisunsa kotisyötteeseesi.",
"interaction_modal.description.reblog": "Mastodon-tilillä voit tehostaa tätä julkaisua jakaaksesi sen seuraajiesi kanssa.",
"interaction_modal.description.reply": "Mastodon-tilillä voit vastata tähän julkaisuun.",
@@ -364,7 +389,7 @@
"interaction_modal.on_another_server": "Toisella palvelimella",
"interaction_modal.on_this_server": "Tällä palvelimella",
"interaction_modal.sign_in": "Et ole kirjautunut tälle palvelimelle. Millä palvelimella tilisi sijaitsee?",
- "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista, etsi tervetulosähköposti saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)",
+ "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista palvelintasi, etsi tervetulosähköposti saapuneista viesteistäsi. Voit syöttää myös koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)",
"interaction_modal.title.favourite": "Lisää käyttäjän {name} julkaisu suosikkeihin",
"interaction_modal.title.follow": "Seuraa käyttäjää {name}",
"interaction_modal.title.reblog": "Tehosta käyttäjän {name} julkaisua",
@@ -378,8 +403,8 @@
"keyboard_shortcuts.column": "Kohdista sarakkeeseen",
"keyboard_shortcuts.compose": "Kohdista kirjoituskenttään",
"keyboard_shortcuts.description": "Kuvaus",
- "keyboard_shortcuts.direct": "Avaa yksityisten mainintojen sarake",
- "keyboard_shortcuts.down": "Siirry listassa alaspäin",
+ "keyboard_shortcuts.direct": "Avaa yksityismainintojen sarake",
+ "keyboard_shortcuts.down": "Siirry luettelossa eteenpäin",
"keyboard_shortcuts.enter": "Avaa julkaisu",
"keyboard_shortcuts.favourite": "Lisää julkaisu suosikkeihin",
"keyboard_shortcuts.favourites": "Avaa suosikkiluettelo",
@@ -389,32 +414,32 @@
"keyboard_shortcuts.hotkey": "Pikanäppäin",
"keyboard_shortcuts.legend": "Näytä tämä ohje",
"keyboard_shortcuts.local": "Avaa paikallinen aikajana",
- "keyboard_shortcuts.mention": "Mainitse julkaisija",
+ "keyboard_shortcuts.mention": "Mainitse tekijä",
"keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo",
"keyboard_shortcuts.my_profile": "Avaa profiilisi",
"keyboard_shortcuts.notifications": "Avaa ilmoitussarake",
"keyboard_shortcuts.open_media": "Avaa media",
"keyboard_shortcuts.pinned": "Avaa kiinnitettyjen julkaisujen luettelo",
- "keyboard_shortcuts.profile": "Avaa kirjoittajan profiili",
+ "keyboard_shortcuts.profile": "Avaa tekijän profiili",
"keyboard_shortcuts.reply": "Vastaa julkaisuun",
- "keyboard_shortcuts.requests": "Avaa seuraamispyyntöjen luettelo",
+ "keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo",
"keyboard_shortcuts.search": "Kohdista hakukenttään",
- "keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä",
+ "keyboard_shortcuts.spoilers": "Näytä tai piilota sisältövaroituskenttä",
"keyboard_shortcuts.start": "Avaa Näin pääset alkuun -sarake",
- "keyboard_shortcuts.toggle_hidden": "Näytä/piilota sisältövaroituksella merkitty teksti",
- "keyboard_shortcuts.toggle_sensitivity": "Näytä/piilota media",
+ "keyboard_shortcuts.toggle_hidden": "Näytä tai piilota sisältövaroituksella merkitty teksti",
+ "keyboard_shortcuts.toggle_sensitivity": "Näytä tai piilota media",
"keyboard_shortcuts.toot": "Luo uusi julkaisu",
- "keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä",
- "keyboard_shortcuts.up": "Siirry listassa ylöspäin",
+ "keyboard_shortcuts.unfocus": "Poistu kirjoitus- tai hakukentästä",
+ "keyboard_shortcuts.up": "Siirry luettelossa taaksepäin",
"lightbox.close": "Sulje",
- "lightbox.compress": "Tiivis kuvankatselunäkymä",
- "lightbox.expand": "Laajennettu kuvankatselunäkymä",
"lightbox.next": "Seuraava",
"lightbox.previous": "Edellinen",
+ "lightbox.zoom_in": "Zoomaa todelliseen kokoon",
+ "lightbox.zoom_out": "Zoomaa mahtumaan",
"limited_account_hint.action": "Näytä profiili joka tapauksessa",
- "limited_account_hint.title": "Palvelimen {domain} valvojat ovat piilottaneet tämän käyttäjätilin.",
- "link_preview.author": "Julkaissut {name}",
- "link_preview.more_from_author": "Lisää käyttäjältä {name}",
+ "limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.",
+ "link_preview.author": "Tehnyt {name}",
+ "link_preview.more_from_author": "Lisää tekijältä {name}",
"link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
"lists.account.add": "Lisää listalle",
"lists.account.remove": "Poista listalta",
@@ -428,86 +453,117 @@
"lists.replies_policy.list": "Listan jäsenille",
"lists.replies_policy.none": "Ei kellekään",
"lists.replies_policy.title": "Näytä vastaukset:",
- "lists.search": "Etsi seuraamiesi henkilöiden keskuudesta",
+ "lists.search": "Hae seuraamistasi käyttäjistä",
"lists.subheading": "Omat listasi",
"load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}",
"loading_indicator.label": "Ladataan…",
- "media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}",
+ "media_gallery.hide": "Piilota",
"moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä, koska teit siirron tiliin {movedToAccount}.",
"mute_modal.hide_from_notifications": "Piilota ilmoituksista",
"mute_modal.hide_options": "Piilota vaihtoehdot",
- "mute_modal.indefinite": "Kunnes perun häntä koskevan mykistyksen",
+ "mute_modal.indefinite": "Kunnes kumoan häntä koskevan mykistyksen",
"mute_modal.show_options": "Näytä vaihtoehdot",
"mute_modal.they_can_mention_and_follow": "Hän voi mainita sinut ja seurata sinua, mutta sinä et näe häntä.",
- "mute_modal.they_wont_know": "Hän ei saa ilmoitusta tulleensa mykistetyksi.",
+ "mute_modal.they_wont_know": "Hän ei saa tietää tulleensa mykistetyksi.",
"mute_modal.title": "Mykistetäänkö käyttäjä?",
- "mute_modal.you_wont_see_mentions": "Et tule enää näkemään julkaisuja, joissa hänet mainitaan.",
+ "mute_modal.you_wont_see_mentions": "Et näe enää julkaisuja, joissa hänet mainitaan.",
"mute_modal.you_wont_see_posts": "Hän voi yhä nähdä julkaisusi, mutta sinä et näe hänen.",
"navigation_bar.about": "Tietoja",
+ "navigation_bar.administration": "Ylläpito",
"navigation_bar.advanced_interface": "Avaa edistyneessä selainkäyttöliittymässä",
"navigation_bar.blocks": "Estetyt käyttäjät",
"navigation_bar.bookmarks": "Kirjanmerkit",
"navigation_bar.community_timeline": "Paikallinen aikajana",
"navigation_bar.compose": "Luo uusi julkaisu",
- "navigation_bar.direct": "Yksityiset maininnat",
+ "navigation_bar.direct": "Yksityismaininnat",
"navigation_bar.discover": "Löydä uutta",
"navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
"navigation_bar.explore": "Selaa",
"navigation_bar.favourites": "Suosikit",
"navigation_bar.filters": "Mykistetyt sanat",
- "navigation_bar.follow_requests": "Seuraamispyynnöt",
+ "navigation_bar.follow_requests": "Seurantapyynnöt",
"navigation_bar.followed_tags": "Seuratut aihetunnisteet",
"navigation_bar.follows_and_followers": "Seuratut ja seuraajat",
"navigation_bar.lists": "Listat",
"navigation_bar.logout": "Kirjaudu ulos",
+ "navigation_bar.moderation": "Moderointi",
"navigation_bar.mutes": "Mykistetyt käyttäjät",
"navigation_bar.opened_in_classic_interface": "Julkaisut, profiilit ja tietyt muut sivut avautuvat oletuksena perinteiseen selainkäyttöliittymään.",
- "navigation_bar.personal": "Henkilökohtainen",
+ "navigation_bar.personal": "Henkilökohtaiset",
"navigation_bar.pins": "Kiinnitetyt julkaisut",
"navigation_bar.preferences": "Asetukset",
"navigation_bar.public_timeline": "Yleinen aikajana",
- "navigation_bar.search": "Hae",
+ "navigation_bar.search": "Haku",
"navigation_bar.security": "Turvallisuus",
"not_signed_in_indicator.not_signed_in": "Sinun on kirjauduttava sisään käyttääksesi resurssia.",
- "notification.admin.report": "{name} teki ilmoituksen käytäjästä {target}",
+ "notification.admin.report": "{name} raportoi käyttäjän {target}",
+ "notification.admin.report_account": "{name} raportoi {count, plural, one {julkaisun} other {# julkaisua}} käyttäjältä {target}, syynä {category}",
+ "notification.admin.report_account_other": "{name} raportoi {count, plural, one {julkaisun} other {# julkaisua}} käyttäjältä {target}",
+ "notification.admin.report_statuses": "{name} raportoi käyttäjän {target}, syynä {category}",
+ "notification.admin.report_statuses_other": "{name} raportoi käyttäjän {target}",
"notification.admin.sign_up": "{name} rekisteröityi",
+ "notification.admin.sign_up.name_and_others": "{name} ja {count, plural, one {# muu} other {# muuta}} rekisteröityivät",
"notification.favourite": "{name} lisäsi julkaisusi suosikkeihinsa",
+ "notification.favourite.name_and_others_with_link": "{name} ja {count, plural, one {# muu} other {# muuta}} lisäsivät julkaisusi suosikkeihinsa",
"notification.follow": "{name} seurasi sinua",
- "notification.follow_request": "{name} on pyytänyt lupaa saada seurata sinua",
- "notification.mention": "{name} mainitsi sinut",
+ "notification.follow.name_and_others": "{name} ja {count, plural, one {# muu} other {# muuta}} seurasivat sinua",
+ "notification.follow_request": "{name} on pyytänyt lupaa seurata sinua",
+ "notification.follow_request.name_and_others": "{name} ja {count, plural, one {# muu} other {# muuta}} pyysivät saada seurata sinua",
+ "notification.label.mention": "Maininta",
+ "notification.label.private_mention": "Yksityismaininta",
+ "notification.label.private_reply": "Yksityinen vastaus",
+ "notification.label.reply": "Vastaus",
+ "notification.mention": "Maininta",
"notification.moderation-warning.learn_more": "Lue lisää",
"notification.moderation_warning": "Olet saanut moderointivaroituksen",
- "notification.moderation_warning.action_delete_statuses": "Jotkin julkaisusi on poistettu.",
+ "notification.moderation_warning.action_delete_statuses": "Julkaisujasi on poistettu.",
"notification.moderation_warning.action_disable": "Tilisi on poistettu käytöstä.",
- "notification.moderation_warning.action_mark_statuses_as_sensitive": "Jotkin julkaisusi on merkitty arkaluonteisiksi.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Julkaisujasi on merkitty arkaluonteisiksi.",
"notification.moderation_warning.action_none": "Tilisi on saanut moderointivaroituksen.",
"notification.moderation_warning.action_sensitive": "Tästä lähtien julkaisusi merkitään arkaluonteisiksi.",
"notification.moderation_warning.action_silence": "Tiliäsi on rajoitettu.",
"notification.moderation_warning.action_suspend": "Tilisi on jäädytetty.",
"notification.own_poll": "Äänestyksesi on päättynyt",
- "notification.poll": "Kysely, johon osallistuit, on päättynyt",
+ "notification.poll": "Äänestys, johon osallistuit, on päättynyt",
"notification.reblog": "{name} tehosti julkaisuasi",
+ "notification.reblog.name_and_others_with_link": "{name} ja {count, plural, one {# muu} other {# muuta}} tehostivat julkaisuasi",
"notification.relationships_severance_event": "Menetettiin yhteydet palvelimeen {name}",
"notification.relationships_severance_event.account_suspension": "Palvelimen {from} ylläpitäjä on jäädyttänyt palvelimen {target} vuorovaikutuksen. Enää et voi siis vastaanottaa päivityksiä heiltä tai olla yhteyksissä heidän kanssaan.",
"notification.relationships_severance_event.domain_block": "Palvelimen {from} ylläpitäjä on estänyt palvelimen {target} vuorovaikutuksen – mukaan lukien {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.",
"notification.relationships_severance_event.learn_more": "Lue lisää",
- "notification.relationships_severance_event.user_domain_block": "Olet estänyt palvelimen {target}, mikä poisti {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.",
+ "notification.relationships_severance_event.user_domain_block": "Olet estänyt verkkotunnuksen {target}, mikä poisti {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.",
"notification.status": "{name} julkaisi juuri",
"notification.update": "{name} muokkasi julkaisua",
"notification_requests.accept": "Hyväksy",
+ "notification_requests.accept_multiple": "{count, plural, one {Hyväksy # pyyntö…} other {Hyväksy # pyyntöä…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Hyväksy pyyntö} other {Hyväksy pyynnöt}}",
+ "notification_requests.confirm_accept_multiple.message": "Olet aikeissa hyväksyä {count, plural, one {ilmoituspyynnön} other {# ilmoituspyyntöä}}. Haluatko varmasti jatkaa?",
+ "notification_requests.confirm_accept_multiple.title": "Hyväksytäänkö ilmoituspyynnöt?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Hylkää pyyntö} other {Hylkää pyynnöt}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Olet aikeissa hylätä {count, plural, one {ilmoituspyynnön} other {# ilmoituspyyntöä}}. Et saa {count, plural, one {sitä} other {niitä}} enää helposti takaisin. Haluatko varmasti jatkaa?",
+ "notification_requests.confirm_dismiss_multiple.title": "Hylätäänkö ilmoituspyynnöt?",
"notification_requests.dismiss": "Hylkää",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Hylkää # pyyntö…} other {Hylkää # pyyntöä…}}",
+ "notification_requests.edit_selection": "Muokkaa",
+ "notification_requests.exit_selection": "Valmis",
+ "notification_requests.explainer_for_limited_account": "Tähän tiliin liittyvät ilmoitukset on suodatettu, koska moderaattori on rajoittanut tiliä.",
+ "notification_requests.explainer_for_limited_remote_account": "Tähän tiliin liittyvät ilmoitukset on suodatettu, koska moderaattori on rajoittanut tiliä tai sen palvelinta.",
+ "notification_requests.maximize": "Suurenna",
+ "notification_requests.minimize_banner": "Pienennä suodatettujen ilmoitusten palkki",
"notification_requests.notifications_from": "Ilmoitukset käyttäjältä {name}",
"notification_requests.title": "Suodatetut ilmoitukset",
+ "notification_requests.view": "Näytä ilmoitukset",
"notifications.clear": "Tyhjennä ilmoitukset",
"notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?",
- "notifications.column_settings.admin.report": "Uudet ilmoitukset:",
+ "notifications.clear_title": "Tyhjennetäänkö ilmoitukset?",
+ "notifications.column_settings.admin.report": "Uudet raportit:",
"notifications.column_settings.admin.sign_up": "Uudet rekisteröitymiset:",
"notifications.column_settings.alert": "Työpöytäilmoitukset",
"notifications.column_settings.favourite": "Suosikit:",
"notifications.column_settings.filter_bar.advanced": "Näytä kaikki luokat",
"notifications.column_settings.filter_bar.category": "Pikasuodatuspalkki",
"notifications.column_settings.follow": "Uudet seuraajat:",
- "notifications.column_settings.follow_request": "Uudet seuraamispyynnöt:",
+ "notifications.column_settings.follow_request": "Uudet seurantapyynnöt:",
"notifications.column_settings.mention": "Maininnat:",
"notifications.column_settings.poll": "Äänestyksen tulokset:",
"notifications.column_settings.push": "Puskuilmoitukset",
@@ -521,25 +577,33 @@
"notifications.filter.all": "Kaikki",
"notifications.filter.boosts": "Tehostukset",
"notifications.filter.favourites": "Suosikit",
- "notifications.filter.follows": "Seuraa",
+ "notifications.filter.follows": "Seuraamiset",
"notifications.filter.mentions": "Maininnat",
"notifications.filter.polls": "Äänestyksen tulokset",
- "notifications.filter.statuses": "Päivitykset henkilöiltä, joita seuraat",
- "notifications.grant_permission": "Myönnä lupa.",
+ "notifications.filter.statuses": "Päivitykset seuraamiltasi käyttäjiltä",
+ "notifications.grant_permission": "Myönnä käyttöoikeus.",
"notifications.group": "{count} ilmoitusta",
"notifications.mark_as_read": "Merkitse jokainen ilmoitus luetuksi",
"notifications.permission_denied": "Työpöytäilmoitukset eivät ole käytettävissä, koska selaimen käyttöoikeuspyyntö on aiemmin evätty",
- "notifications.permission_denied_alert": "Työpöytäilmoituksia ei voi ottaa käyttöön, koska selaimen käyttöoikeus on aiemmin estetty",
- "notifications.permission_required": "Työpöytäilmoitukset eivät ole käytettävissä, koska siihen tarvittavaa lupaa ei ole myönnetty.",
- "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viimeisimmän päivän aikana} other {# viime päivän aikana}}",
+ "notifications.permission_denied_alert": "Työpöytäilmoituksia ei voi ottaa käyttöön, koska selaimen käyttöoikeus on aiemmin evätty",
+ "notifications.permission_required": "Työpöytäilmoitukset eivät ole käytettävissä, koska siihen tarvittavaa käyttöoikeutta ei ole myönnetty.",
+ "notifications.policy.accept": "Hyväksy",
+ "notifications.policy.accept_hint": "Näytä ilmoituksissa",
+ "notifications.policy.drop": "Sivuuta",
+ "notifications.policy.drop_hint": "Lähetä tyhjyyteen, jotta et näe niitä enää koskaan",
+ "notifications.policy.filter": "Suodata",
+ "notifications.policy.filter_hint": "Lähetä suodatettuihin ilmoituksiin",
+ "notifications.policy.filter_limited_accounts_hint": "Palvelimen moderaattorien rajoittamat",
+ "notifications.policy.filter_limited_accounts_title": "Moderoidut tilit",
+ "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viime päivän} other {viimeisen # päivän}} aikana",
"notifications.policy.filter_new_accounts_title": "Uudet tilit",
- "notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivän}} verran sinua seuranneet",
- "notifications.policy.filter_not_followers_title": "Henkilöt, jotka eivät seuraa sinua",
- "notifications.policy.filter_not_following_hint": "Kunnes hyväksyt ne omin käsin",
- "notifications.policy.filter_not_following_title": "Henkilöt, joita et seuraa",
- "notifications.policy.filter_private_mentions_hint": "Suodatetaan, ellei se vastaa omaan mainintaasi tai ellet seuraa lähettäjää",
- "notifications.policy.filter_private_mentions_title": "Ei-toivotut yksityismaininnat",
- "notifications.policy.title": "Suodata ilmoitukset pois kohteesta…",
+ "notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivää}} sinua seuranneet",
+ "notifications.policy.filter_not_followers_title": "Käyttäjät, jotka eivät seuraa sinua",
+ "notifications.policy.filter_not_following_hint": "Kunnes hyväksyt heidät manuaalisesti",
+ "notifications.policy.filter_not_following_title": "Käyttäjät, joita et seuraa",
+ "notifications.policy.filter_private_mentions_hint": "Suodatetaan, ellei se ole vastaus omaan mainintaasi tai ellet seuraa lähettäjää",
+ "notifications.policy.filter_private_mentions_title": "Pyytämättömät yksityismaininnat",
+ "notifications.policy.title": "Hallitse ilmoituksia kohteesta…",
"notifications_permission_banner.enable": "Ota työpöytäilmoitukset käyttöön",
"notifications_permission_banner.how_to_control": "Saadaksesi ilmoituksia, kun Mastodon ei ole auki, ota työpöytäilmoitukset käyttöön. Voit hallita tarkasti, mistä saat työpöytäilmoituksia kun ilmoitukset on otettu käyttöön yllä olevan {icon}-painikkeen kautta.",
"notifications_permission_banner.title": "Älä anna minkään mennä ohi",
@@ -560,8 +624,8 @@
"onboarding.profile.note_hint": "Voit @mainita muita käyttäjiä tai #aihetunnisteita…",
"onboarding.profile.save_and_continue": "Tallenna ja jatka",
"onboarding.profile.title": "Profiilin määritys",
- "onboarding.profile.upload_avatar": "Lataa profiilikuva",
- "onboarding.profile.upload_header": "Lataa profiilin otsakekuva",
+ "onboarding.profile.upload_avatar": "Lähetä profiilikuva",
+ "onboarding.profile.upload_header": "Lähetä profiilin otsakekuva",
"onboarding.share.lead": "Kerro ihmisille, kuinka he voivat löytää sinut Mastodonista!",
"onboarding.share.message": "Olen {username} #Mastodonissa! Seuraa minua osoitteessa {url}",
"onboarding.share.next_steps": "Mahdolliset seuraavat vaiheet:",
@@ -569,7 +633,7 @@
"onboarding.start.lead": "Uusi Mastodon-tilisi on nyt valmiina käyttöön. Kyseessä on ainutlaatuinen, hajautettu sosiaalisen median alusta, jolla sinä itse – algoritmin sijaan – määrität käyttökokemuksesi. Näin hyödyt Mastodonista eniten:",
"onboarding.start.skip": "Haluatko hypätä suoraan eteenpäin ilman alkuunpääsyohjeistuksia?",
"onboarding.start.title": "Olet tehnyt sen!",
- "onboarding.steps.follow_people.body": "Mastodon perustuu sinua kiinnostavien henkilöjen julkaisujen seuraamiseen.",
+ "onboarding.steps.follow_people.body": "Mastodonissa on kyse kiinnostavien käyttäjien seuraamisesta.",
"onboarding.steps.follow_people.title": "Mukauta kotisyötettäsi",
"onboarding.steps.publish_status.body": "Tervehdi maailmaa sanoin, kuvin tai äänestyksin {emoji}",
"onboarding.steps.publish_status.title": "Laadi ensimmäinen julkaisusi",
@@ -577,36 +641,36 @@
"onboarding.steps.setup_profile.title": "Mukauta profiiliasi",
"onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista",
"onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi",
- "onboarding.tips.2fa": "Tiesitkö? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeron antoa!",
- "onboarding.tips.accounts_from_other_servers": "Tiesitkö? Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjänimen jälkiosassa!",
+ "onboarding.tips.2fa": "Tiesitkö? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeron luovuttamista!",
+ "onboarding.tips.accounts_from_other_servers": "Tiesitkö? Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjätunnuksen jälkiosassa!",
"onboarding.tips.migration": "Tiesitkö? Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!",
"onboarding.tips.verification": "Tiesitkö? Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi lisäkenttään. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä asiakirjoja!",
"password_confirmation.exceeds_maxlength": "Salasanan vahvistus ylittää salasanan enimmäispituuden",
"password_confirmation.mismatching": "Salasanan vahvistus ei täsmää",
"picture_in_picture.restore": "Laita se takaisin",
- "poll.closed": "Suljettu",
+ "poll.closed": "Päättynyt",
"poll.refresh": "Päivitä",
"poll.reveal": "Näytä tulokset",
- "poll.total_people": "{count, plural, one {# henkilö} other {# henkilöä}}",
+ "poll.total_people": "{count, plural, one {# käyttäjä} other {# käyttäjää}}",
"poll.total_votes": "{count, plural, one {# ääni} other {# ääntä}}",
"poll.vote": "Äänestä",
"poll.voted": "Äänestit tätä vastausta",
"poll.votes": "{votes, plural, one {# ääni} other {# ääntä}}",
- "poll_button.add_poll": "Lisää kysely",
- "poll_button.remove_poll": "Poista kysely",
+ "poll_button.add_poll": "Lisää äänestys",
+ "poll_button.remove_poll": "Poista äänestys",
"privacy.change": "Muuta julkaisun näkyvyyttä",
"privacy.direct.long": "Kaikki tässä julkaisussa mainitut",
- "privacy.direct.short": "Tietyt henkilöt",
+ "privacy.direct.short": "Tietyt käyttäjät",
"privacy.private.long": "Vain seuraajasi",
"privacy.private.short": "Seuraajat",
"privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella",
"privacy.public.short": "Julkinen",
- "privacy.unlisted.additional": "Tämä on muutoin kuin julkinen julkaisu, mutta sitä ei näytetä livesyöte-, aihetunniste- tai selailunäkymissä eikä Mastodon-hakutuloksissakaan, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.",
+ "privacy.unlisted.additional": "Tämä toimii muuten kuin julkinen, mutta julkaisut eivät näy livesyöte-, aihetunniste- tai selausnäkymissä eivätkä Mastodonin hakutuloksissa, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.",
"privacy.unlisted.long": "Vähemmän algoritmiperusteista sisältöä",
"privacy.unlisted.short": "Vaivihkaisesti julkinen",
- "privacy_policy.last_updated": "Viimeksi päivitetty {date}",
+ "privacy_policy.last_updated": "Päivitetty viimeksi {date}",
"privacy_policy.title": "Tietosuojakäytäntö",
- "recommended": "Suositeltu",
+ "recommended": "Suositellaan",
"refresh": "Päivitä",
"regeneration_indicator.label": "Ladataan…",
"regeneration_indicator.sublabel": "Kotisyötettäsi valmistellaan!",
@@ -623,27 +687,27 @@
"relative_time.today": "tänään",
"reply_indicator.attachments": "{count, plural, one {# liite} other {# liitettä}}",
"reply_indicator.cancel": "Peruuta",
- "reply_indicator.poll": "Kysely",
+ "reply_indicator.poll": "Äänestys",
"report.block": "Estä",
"report.block_explanation": "Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkee, että olet estänyt hänet.",
- "report.categories.legal": "Juridiset tiedot",
+ "report.categories.legal": "Lakiseikat",
"report.categories.other": "Muu",
"report.categories.spam": "Roskaposti",
"report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen säännöistä",
"report.category.subtitle": "Valitse sopivin",
"report.category.title": "Kerro meille, miksi tämä {type} pitää raportoida",
- "report.category.title_account": "profiilissa",
- "report.category.title_status": "julkaisussa",
+ "report.category.title_account": "profiili",
+ "report.category.title_status": "julkaisu",
"report.close": "Valmis",
"report.comment.title": "Onko vielä jotain muuta, mitä meidän pitäisi tietää?",
- "report.forward": "Välitä kohteeseen {target}",
+ "report.forward": "Välitä palvelimelle {target}",
"report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?",
"report.mute": "Mykistä",
"report.mute_explanation": "Et näe hänen julkaisujaan. Hän voi silti seurata sinua ja nähdä julkaisusi. Hän ei tiedä, että hänet on mykistetty.",
"report.next": "Seuraava",
"report.placeholder": "Lisäkommentit",
"report.reasons.dislike": "En pidä siitä",
- "report.reasons.dislike_description": "Sisältö on sen tyyppistä, ettet halua nähdä sitä",
+ "report.reasons.dislike_description": "Sisältö on sellaista, jota et halua nähdä",
"report.reasons.legal": "Se on laitonta",
"report.reasons.legal_description": "Katsot sisällön rikkovan maasi tai palvelimen kotimaan lakeja",
"report.reasons.other": "Jotain muuta",
@@ -654,28 +718,32 @@
"report.reasons.violation_description": "Tiedät sisällön rikkovan tiettyjä sääntöjä",
"report.rules.subtitle": "Valitse kaikki sopivat",
"report.rules.title": "Mitä sääntöjä rikotaan?",
- "report.statuses.subtitle": "Valitse kaikki soveltuvat julkaisut",
+ "report.statuses.subtitle": "Valitse kaikki sopivat",
"report.statuses.title": "Onko julkaisuja, jotka tukevat tätä raporttia?",
"report.submit": "Lähetä",
"report.target": "Raportoidaan {target}",
"report.thanks.take_action": "Tässä on vaihtoehtosi hallita näkemääsi Mastodonissa:",
- "report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimenpiteisiin käyttäjää @{name} vastaan:",
+ "report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimiin käyttäjää @{name} kohtaan:",
"report.thanks.title": "Etkö halua nähdä tätä?",
- "report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.",
+ "report.thanks.title_actionable": "Kiitos raportista – tutkimme asiaa.",
"report.unfollow": "Lopeta käyttäjän @{name} seuraaminen",
- "report.unfollow_explanation": "Seuraat tätä tiliä. Estääksesi tilin viestejä näykymästä kotisyötteessäsi, lopeta sen seuraaminen.",
+ "report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näkisi sen julkaisuja kotisyötteessäsi, lopeta tilin seuraaminen.",
"report_notification.attached_statuses": "{count, plural, one {{count} julkaisu} other {{count} julkaisua}} liitteenä",
- "report_notification.categories.legal": "Laillinen",
+ "report_notification.categories.legal": "Lakiseikat",
+ "report_notification.categories.legal_sentence": "laiton sisältö",
"report_notification.categories.other": "Muu",
+ "report_notification.categories.other_sentence": "jokin muu",
"report_notification.categories.spam": "Roskaposti",
+ "report_notification.categories.spam_sentence": "roskaposti",
"report_notification.categories.violation": "Sääntörikkomus",
+ "report_notification.categories.violation_sentence": "sääntörikkomus",
"report_notification.open": "Avaa raportti",
"search.no_recent_searches": "Ei viimeaikaisia hakuja",
"search.placeholder": "Hae",
"search.quick_action.account_search": "Profiilit haulla {x}",
"search.quick_action.go_to_account": "Siirry profiiliin {x}",
"search.quick_action.go_to_hashtag": "Siirry aihetunnisteeseen {x}",
- "search.quick_action.open_url": "Avaa verkko-osoite Mastodonissa",
+ "search.quick_action.open_url": "Avaa URL-osoite Mastodonissa",
"search.quick_action.status_search": "Julkaisut haulla {x}",
"search.search_or_paste": "Hae tai liitä URL-osoite",
"search_popout.full_text_search_disabled_message": "Ei saatavilla palvelimella {domain}.",
@@ -699,31 +767,30 @@
"server_banner.is_one_of_many": "{domain} on yksi monista itsenäisistä Mastodon-palvelimista, joiden välityksellä voit toimia fediversumissa.",
"server_banner.server_stats": "Palvelimen tilastot:",
"sign_in_banner.create_account": "Luo tili",
- "sign_in_banner.follow_anyone": "Seuraa kenen tahansa julkaisuja fediversumissa ja näe ne kaikki aikajärjestyksessä. Ei algoritmejä, mainoksia tai klikkikalastelua.",
+ "sign_in_banner.follow_anyone": "Seuraa kenen tahansa julkaisuja fediversumissa ja näe ne kaikki aikajärjestyksessä. Ei algoritmeja, mainoksia eikä klikkausten kalastelua.",
"sign_in_banner.mastodon_is": "Mastodon on paras tapa pysyä ajan tasalla siitä, mitä ympärillä tapahtuu.",
"sign_in_banner.sign_in": "Kirjaudu",
"sign_in_banner.sso_redirect": "Kirjaudu tai rekisteröidy",
- "status.admin_account": "Avaa tilin @{name} valvontanäkymä",
- "status.admin_domain": "Avaa palvelimen {domain} valvontanäkymä",
- "status.admin_status": "Avaa julkaisu valvontanäkymässä",
+ "status.admin_account": "Avaa tilin @{name} moderointinäkymä",
+ "status.admin_domain": "Avaa palvelimen {domain} moderointinäkymä",
+ "status.admin_status": "Avaa julkaisu moderointinäkymässä",
"status.block": "Estä @{name}",
"status.bookmark": "Lisää kirjanmerkki",
"status.cancel_reblog_private": "Peru tehostus",
"status.cannot_reblog": "Tätä julkaisua ei voi tehostaa",
- "status.copy": "Kopioi julkaisun linkki",
+ "status.continued_thread": "Jatkoi ketjua",
+ "status.copy": "Kopioi linkki julkaisuun",
"status.delete": "Poista",
"status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
"status.direct": "Mainitse @{name} yksityisesti",
- "status.direct_indicator": "Yksityinen maininta",
+ "status.direct_indicator": "Yksityismaininta",
"status.edit": "Muokkaa",
"status.edited": "Viimeksi muokattu {date}",
"status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}",
- "status.embed": "Upota",
+ "status.embed": "Hanki upotuskoodi",
"status.favourite": "Suosikki",
"status.favourites": "{count, plural, one {suosikki} other {suosikkia}}",
"status.filter": "Suodata tämä julkaisu",
- "status.filtered": "Suodatettu",
- "status.hide": "Piilota julkaisu",
"status.history.created": "{name} loi {date}",
"status.history.edited": "{name} muokkasi {date}",
"status.load_more": "Lataa lisää",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä julkaisua. Kun joku tekee niin, tulee hän tähän näkyviin.",
"status.redraft": "Poista ja palauta muokattavaksi",
"status.remove_bookmark": "Poista kirjanmerkki",
+ "status.replied_in_thread": "Vastasi ketjuun",
"status.replied_to": "Vastaus käyttäjälle {name}",
"status.reply": "Vastaa",
"status.replyAll": "Vastaa ketjuun",
"status.report": "Raportoi @{name}",
"status.sensitive_warning": "Arkaluonteista sisältöä",
"status.share": "Jaa",
- "status.show_filter_reason": "Näytä joka tapauksessa",
- "status.show_less": "Näytä vähemmän",
"status.show_less_all": "Näytä kaikista vähemmän",
- "status.show_more": "Näytä enemmän",
"status.show_more_all": "Näytä kaikista enemmän",
"status.show_original": "Näytä alkuperäinen",
"status.title.with_attachments": "{user} liitti {attachmentCount, plural, one {{attachmentCount} tiedoston} other {{attachmentCount} tiedostoa}}",
@@ -765,7 +830,7 @@
"status.unpin": "Irrota profiilista",
"subscribed_languages.lead": "Vain valituilla kielillä kirjoitetut julkaisut näkyvät koti- ja lista-aikajanoillasi muutoksen jälkeen. Älä valitse mitään, jos haluat nähdä julkaisuja kaikilla kielillä.",
"subscribed_languages.save": "Tallenna muutokset",
- "subscribed_languages.target": "Vaihda tilatut kielet {target}",
+ "subscribed_languages.target": "Vaihda tilattuja kieliä käyttäjältä {target}",
"tabs_bar.home": "Koti",
"tabs_bar.notifications": "Ilmoitukset",
"time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä",
@@ -773,20 +838,16 @@
"time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä",
"time_remaining.moments": "Hetkiä jäljellä",
"time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä",
- "timeline_hint.remote_resource_not_displayed": "Muiden palvelinten {resource}-tietoa ei näytetä täällä.",
- "timeline_hint.resources.followers": "Seuraajat",
- "timeline_hint.resources.follows": "seurattua",
- "timeline_hint.resources.statuses": "Vanhemmat julkaisut",
- "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} {days, plural, one {viime päivänä} other {viimeisenä {days} päivänä}}",
+ "trends.counter_by_accounts": "{count, plural, one {{counter} käyttäjä} other {{counter} käyttäjää}} {days, plural, one {viime päivänä} other {viimeisenä {days} päivänä}}",
"trends.trending_now": "Suosittua nyt",
"ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
"units.short.billion": "{count} mrd.",
"units.short.million": "{count} milj.",
"units.short.thousand": "{count} t.",
- "upload_area.title": "Lataa raahaamalla ja pudottamalla tähän",
+ "upload_area.title": "Lähetä raahaamalla ja pudottamalla tähän",
"upload_button.label": "Lisää kuvia, video tai äänitiedosto",
- "upload_error.limit": "Tiedostolatauksien rajoitus ylitetty.",
- "upload_error.poll": "Tiedostojen lisääminen ei ole sallittua kyselyjen ohessa.",
+ "upload_error.limit": "Tiedostolähetysten rajoitus ylitetty.",
+ "upload_error.poll": "Tiedostojen lisääminen äänestysten oheen ei ole sallittua.",
"upload_form.audio_description": "Kuvaile sisältöä kuuroille ja kuulorajoitteisille",
"upload_form.description": "Kuvaile sisältöä sokeille ja näkörajoitteisille",
"upload_form.edit": "Muokkaa",
@@ -802,9 +863,9 @@
"upload_modal.hint": "Napsauta tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.",
"upload_modal.preparing_ocr": "Valmistellaan tekstintunnistusta…",
"upload_modal.preview_label": "Esikatselu ({ratio})",
- "upload_progress.label": "Tallennetaan...",
+ "upload_progress.label": "Lähetetään…",
"upload_progress.processing": "Käsitellään…",
- "username.taken": "Käyttäjänimi on jo varattu. Kokeile toista",
+ "username.taken": "Tämä käyttäjänimi on jo käytössä. Kokeile toista",
"video.close": "Sulje video",
"video.download": "Lataa tiedosto",
"video.exit_fullscreen": "Poistu koko näytön tilasta",
diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json
index 9e459f76719..31004560912 100644
--- a/app/javascript/mastodon/locales/fil.json
+++ b/app/javascript/mastodon/locales/fil.json
@@ -6,7 +6,6 @@
"about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.title": "Suspendido",
"about.rules": "Mga alituntunin ng server",
- "account.account_note_header": "Tala",
"account.add_or_remove_from_list": "I-dagdag o tanggalin mula sa mga listahan",
"account.badges.bot": "Pakusa",
"account.badges.group": "Pangkat",
@@ -14,7 +13,6 @@
"account.block_domain": "Hadlangan ang domain na {domain}",
"account.block_short": "Hadlangan",
"account.blocked": "Hinadlangan",
- "account.browse_more_on_origin_server": "Tingnan pa sa pangunahing profile",
"account.cancel_follow_request": "I-kansela ang pagsunod",
"account.copy": "I-sipi ang kawing sa profile",
"account.direct": "Palihim banggitin si @{name}",
@@ -112,8 +110,6 @@
"compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman",
"confirmation_modal.cancel": "Pagpaliban",
"confirmations.block.confirm": "Harangan",
- "confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan",
- "confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?",
"confirmations.delete.message": "Sigurado ka bang gusto mong burahin ang post na ito?",
"confirmations.delete_list.confirm": "Tanggalin",
"confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?",
@@ -186,6 +182,7 @@
"follow_request.authorize": "Tanggapin",
"follow_request.reject": "Tanggihan",
"follow_suggestions.dismiss": "Huwag nang ipakita muli",
+ "follow_suggestions.popular_suggestion_longer": "Sikat sa {domain}",
"follow_suggestions.view_all": "Tingnan lahat",
"follow_suggestions.who_to_follow": "Sinong maaaring sundan",
"footer.about": "Tungkol dito",
@@ -220,6 +217,7 @@
"link_preview.author": "Ni/ng {name}",
"lists.account.add": "Idagdag sa talaan",
"lists.account.remove": "Tanggalin mula sa talaan",
+ "lists.delete": "Burahin ang talaan",
"lists.new.create": "Idagdag sa talaan",
"lists.new.title_placeholder": "Bagong pangalan ng talaan",
"lists.replies_policy.title": "Ipakita ang mga tugon sa:",
@@ -240,7 +238,6 @@
"notification.admin.report": "Iniulat ni {name} si {target}",
"notification.follow": "Sinundan ka ni {name}",
"notification.follow_request": "Hinihiling ni {name} na sundan ka",
- "notification.mention": "Binanggit ka ni {name}",
"notification.moderation_warning": "Mayroong kang natanggap na babala sa pagtitimpi",
"notification.relationships_severance_event.learn_more": "Matuto nang higit pa",
"notification_requests.accept": "Tanggapin",
@@ -287,9 +284,13 @@
"reply_indicator.cancel": "Ipagpaliban",
"report.block": "Harangan",
"report.categories.other": "Iba pa",
+ "report.categories.violation": "Lumalabag ang nilalaman sa isa o higit pang mga patakaran ng serbiro",
+ "report.category.subtitle": "Piliin ang pinakamahusay na tugma",
"report.category.title": "Sabihin mo sa amin kung anong nangyari sa {type} na ito",
"report.close": "Tapos na",
"report.next": "Sunod",
+ "report.placeholder": "Mga Karagdagang Puna",
+ "report.reasons.dislike": "Hindi ko gusto ito",
"report.reasons.violation": "Lumalabag ito sa mga panuntunan ng serbiro",
"report.reasons.violation_description": "Alam mo na lumalabag ito sa mga partikular na panuntunan",
"report.rules.title": "Aling mga patakaran ang nilabag?",
@@ -327,9 +328,7 @@
"status.report": "I-ulat si/ang @{name}",
"status.sensitive_warning": "Sensitibong nilalaman",
"status.share": "Ibahagi",
- "status.show_less": "Magpakita ng mas kaunti",
"status.show_less_all": "Magpakita ng mas kaunti para sa lahat",
- "status.show_more": "Magpakita ng higit pa",
"status.show_more_all": "Magpakita ng higit pa para sa lahat",
"status.translate": "Isalin",
"status.translated_from_with": "Isalin mula sa {lang} gamit ang {provider}",
@@ -338,8 +337,5 @@
"time_remaining.days": "{number, plural, one {# araw} other {# na araw}} ang natitira",
"time_remaining.hours": "{number, plural, one {# oras} other {# na oras}} ang natitira",
"time_remaining.minutes": "{number, plural, one {# minuto} other {# na minuto}} ang natitira",
- "time_remaining.seconds": "{number, plural, one {# segundo} other {# na segundo}} ang natitira",
- "timeline_hint.remote_resource_not_displayed": "Hindi ipinapakita ang {resource} mula sa ibang mga serbiro.",
- "timeline_hint.resources.followers": "Mga tagasunod",
- "timeline_hint.resources.follows": "Mga sinusundan"
+ "time_remaining.seconds": "{number, plural, one {# segundo} other {# na segundo}} ang natitira"
}
diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json
index 7a317820bbf..9b87f5c8d91 100644
--- a/app/javascript/mastodon/locales/fo.json
+++ b/app/javascript/mastodon/locales/fo.json
@@ -11,7 +11,7 @@
"about.not_available": "Hetta er ikki tøkt á føroyska servaranum enn.",
"about.powered_by": "Miðfirra almennur miðil koyrandi á {mastodon}",
"about.rules": "Ambætarareglur",
- "account.account_note_header": "Viðmerking",
+ "account.account_note_header": "Persónlig viðmerking",
"account.add_or_remove_from_list": "Legg afturat ella tak av listum",
"account.badges.bot": "Bottur",
"account.badges.group": "Bólkur",
@@ -19,7 +19,6 @@
"account.block_domain": "Banna økisnavnið {domain}",
"account.block_short": "Blokera",
"account.blocked": "Bannað/ur",
- "account.browse_more_on_origin_server": "Kaga meira á upprunaligu vangamyndina",
"account.cancel_follow_request": "Strika fylgjaraumbøn",
"account.copy": "Avrita leinki til vangan",
"account.direct": "Umrøð @{name} privat",
@@ -35,7 +34,7 @@
"account.follow_back": "Fylg aftur",
"account.followers": "Fylgjarar",
"account.followers.empty": "Ongar fylgjarar enn.",
- "account.followers_counter": "{count, plural, one {{counter} Fylgjari} other {{counter} Fylgjarar}}",
+ "account.followers_counter": "{count, plural, one {{counter} fylgjari} other {{counter} fylgjarar}}",
"account.following": "Fylgir",
"account.following_counter": "{count, plural, one {{counter} fylgir} other {{counter} fylgja}}",
"account.follows.empty": "Hesin brúkari fylgir ongum enn.",
@@ -72,7 +71,7 @@
"account.unmute": "Doyv ikki @{name}",
"account.unmute_notifications_short": "Tendra fráboðanir",
"account.unmute_short": "Doyv ikki",
- "account_note.placeholder": "Klikka fyri at leggja notu afturat",
+ "account_note.placeholder": "Klikka fyri at leggja viðmerking afturat",
"admin.dashboard.daily_retention": "Hvussu nógvir brúkarar eru eftir, síðani tey skrásettu seg, roknað í døgum",
"admin.dashboard.monthly_retention": "Hvussu nógvir brúkarar eru eftir síðani tey skrásettu seg, roknað í mánaðum",
"admin.dashboard.retention.average": "Miðal",
@@ -98,6 +97,8 @@
"block_modal.title": "Banna brúkara?",
"block_modal.you_wont_see_mentions": "Tú sært ikki postar, sum nevna tey.",
"boost_modal.combo": "Tú kanst trýsta á {combo} fyri at loypa uppum hetta næstu ferð",
+ "boost_modal.reblog": "Stimbra post?",
+ "boost_modal.undo_reblog": "Strika stimbran av posti?",
"bundle_column_error.copy_stacktrace": "Avrita feilfráboðan",
"bundle_column_error.error.body": "Umbidna síðan kann ikki vísast. Tað kann vera orsakað av einum feili í koduni hjá okkum ella tað kann vera orsakað av kaganum, sum tú brúkar.",
"bundle_column_error.error.title": "Áh, nei!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Innihaldsávaring (valfrí)",
"confirmation_modal.cancel": "Strika",
"confirmations.block.confirm": "Banna",
- "confirmations.cancel_follow_request.confirm": "Tak umbønina aftur",
- "confirmations.cancel_follow_request.message": "Er tað tilætlað, at tú tekur umbønina at fylgja {name} aftur?",
"confirmations.delete.confirm": "Strika",
"confirmations.delete.message": "Er tað tilætlað, at tú strikar hetta uppslagið?",
+ "confirmations.delete.title": "Strika post?",
"confirmations.delete_list.confirm": "Strika",
"confirmations.delete_list.message": "Ert tú vís/ur í, at tú vilt strika hetta uppslagið?",
+ "confirmations.delete_list.title": "Strika lista?",
"confirmations.discard_edit_media.confirm": "Vraka",
"confirmations.discard_edit_media.message": "Tú hevur broytingar í miðlalýsingini ella undansýningini, sum ikki eru goymdar. Vilt tú kortini vraka?",
- "confirmations.domain_block.confirm": "Banna ambætara",
- "confirmations.domain_block.message": "Ert tú púra, púra vís/ur í, at tú vilt banna øllum {domain}? Í flestu førum er nóg mikið og betri, bert at banna ella doyva onkrum ávísum. Tú fert eingi evni at síggja frá økisnavninum á nakrari almennari tíðarrás ella í tínum fráboðanum. Tínir fylgjarar undir økisnavninum verða eisini strikaðir.",
"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.logout.confirm": "Rita út",
"confirmations.logout.message": "Ert tú vís/ur í, at tú vilt útrita teg?",
+ "confirmations.logout.title": "Rita út?",
"confirmations.mute.confirm": "Doyv",
"confirmations.redraft.confirm": "Sletta og skriva umaftur",
"confirmations.redraft.message": "Vilt tú veruliga strika hendan postin og í staðin gera hann til eina nýggja kladdu? Yndisfrámerki og framhevjanir blíva burtur, og svar til upprunapostin missa tilknýtið.",
+ "confirmations.redraft.title": "Strika & ger nýtt uppskot um post?",
"confirmations.reply.confirm": "Svara",
"confirmations.reply.message": "Svarar tú nú, verða boðini, sum tú ert í holt við at skriva yvirskrivað. Ert tú vís/ur í, at tú vilt halda fram?",
+ "confirmations.reply.title": "Skriva omaná post?",
"confirmations.unfollow.confirm": "Fylg ikki",
"confirmations.unfollow.message": "Ert tú vís/ur í, at tú vil steðga við at fylgja {name}?",
+ "confirmations.unfollow.title": "Gevst at fylgja brúkara?",
+ "content_warning.hide": "Fjal post",
+ "content_warning.show": "Vís kortini",
"conversation.delete": "Strika samrøðu",
"conversation.mark_as_read": "Merk sum lisið",
"conversation.open": "Vís samrøðu",
@@ -297,9 +303,9 @@
"filter_modal.select_filter.subtitle": "Brúka ein verandi bólk ella skapa ein nýggjan",
"filter_modal.select_filter.title": "Filtrera hendan postin",
"filter_modal.title.status": "Filtrera ein post",
- "filtered_notifications_banner.mentions": "{count, plural, one {umrøða} other {umrøður}}",
- "filtered_notifications_banner.pending_requests": "Fráboðanir frá {count, plural, =0 {ongum} one {einum persóni} other {# persónum}}, sum tú kanska kennir",
- "filtered_notifications_banner.title": "Sáldaðar fráboðanir",
+ "filter_warning.matches_filter": "Samsvarar við filtrið “{title}”",
+ "filtered_notifications_banner.pending_requests": "Frá {count, plural, =0 {ongum} one {einum persóni} other {# persónum}}, sum tú kanska kennir",
+ "filtered_notifications_banner.title": "Filtreraðar fráboðanir",
"firehose.all": "Allar",
"firehose.local": "Hesin ambætarin",
"firehose.remote": "Aðrir ambætarar",
@@ -347,6 +353,14 @@
"hashtag.follow": "Fylg frámerki",
"hashtag.unfollow": "Gevst at fylgja frámerki",
"hashtags.and_other": "…og {count, plural, other {# afturat}}",
+ "hints.profiles.followers_may_be_missing": "Fylgjarar hjá hesum vanganum kunnu mangla.",
+ "hints.profiles.follows_may_be_missing": "Listin við teimum, sum hesin vangin fylgir, kunnu mangla.",
+ "hints.profiles.posts_may_be_missing": "Summir postar frá hesum vanganum kunnu mangla.",
+ "hints.profiles.see_more_followers": "Sí fleiri fylgjarar á {domain}",
+ "hints.profiles.see_more_follows": "Sí fleiri, ið viðkomandi fylgir, á {domain}",
+ "hints.profiles.see_more_posts": "Sí fleiri postar á {domain}",
+ "hints.threads.replies_may_be_missing": "Svar frá øðrum ambætarum mangla møguliga.",
+ "hints.threads.see_more": "Sí fleiri svar á {domain}",
"home.column_settings.show_reblogs": "Vís lyft",
"home.column_settings.show_replies": "Vís svar",
"home.hide_announcements": "Fjal kunngerðir",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Sí dagføringar",
"home.pending_critical_update.title": "Kritisk trygdardagføring er tøk!",
"home.show_announcements": "Vís kunngerðir",
+ "ignore_notifications_modal.disclaimer": "Mastodon kann ikki upplýsa brúkarar um, at tú hevur latið sum um, at tú ikki hevur sæð teirra fráboðanir. At lata sum um, at tú ikki sær fráboðanir, forðar ikki, at boðini sjálv verða send.",
+ "ignore_notifications_modal.filter_instead": "Filtrera ístaðin",
+ "ignore_notifications_modal.filter_to_act_users": "Tú kanst framvegis góðtaka, avvísa og melda brúkarar",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering ger tað lættari at sleppa undan møguligum misskiljingum",
+ "ignore_notifications_modal.filter_to_review_separately": "Tú kanst kanna filtreraðar fráboðanir fyri seg",
+ "ignore_notifications_modal.ignore": "Lat sum um tú ikki sær fráboðanir",
+ "ignore_notifications_modal.limited_accounts_title": "Lat sum um tú ikki sær fráboðanir frá avmarkaðum kontum?",
+ "ignore_notifications_modal.new_accounts_title": "Lat sum um tú ikki sær fráboðanir frá nýggjum kontum?",
+ "ignore_notifications_modal.not_followers_title": "Lat sum um tú ikki sær fráboðanir frá fólki, sum ikki fylgja tær?",
+ "ignore_notifications_modal.not_following_title": "Lat sum um tú ikki sær fráboðanir frá fólki, sum tú ikki fylgir?",
+ "ignore_notifications_modal.private_mentions_title": "Lat sum um tú ikki sær fráboðanir frá óbiðnum privatum umrøðum?",
"interaction_modal.description.favourite": "Við einari kontu á Mastodon kanst tú dáma hendan postin fyri at vísa rithøvundanum at tú virðismetur hann og goymir hann til seinni.",
"interaction_modal.description.follow": "Við eini kontu á Mastodon kanst tú fylgja {name} fyri at síggja teirra postar á tíni heimarás.",
"interaction_modal.description.reblog": "Við eini kontu á Mastodon kanst tú stimbra hendan postin og soleiðis deila hann við tínar fylgjarar.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Tak skrivi-/leiti-økið úr miðdeplinum",
"keyboard_shortcuts.up": "Flyt upp á listanum",
"lightbox.close": "Lat aftur",
- "lightbox.compress": "Kroyst myndavísikassa saman",
- "lightbox.expand": "Víðka myndavísikassa",
"lightbox.next": "Fram",
"lightbox.previous": "Aftur",
+ "lightbox.zoom_in": "Suma til veruliga stødd",
+ "lightbox.zoom_out": "Suma, so tað passar",
"limited_account_hint.action": "Vís vangamynd kortini",
"limited_account_hint.title": "Hesin vangin er fjaldur av kjakleiðarunum á {domain}.",
"link_preview.author": "Av {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Tínir listar",
"load_pending": "{count, plural, one {# nýtt evni} other {# nýggj evni}}",
"loading_indicator.label": "Innlesur…",
- "media_gallery.toggle_visible": "{number, plural, one {Fjal mynd} other {Fjal myndir}}",
+ "media_gallery.hide": "Fjal",
"moved_to_account_banner.text": "Konta tín {disabledAccount} er í løtuni óvirkin, tí tú flutti til {movedToAccount}.",
"mute_modal.hide_from_notifications": "Fjal boð",
"mute_modal.hide_options": "Fjal valmøguleikar",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Tú sært ikki postar, sum nevna tey.",
"mute_modal.you_wont_see_posts": "Tey síggja framvegis tínar postar, men tú sært ikki teirra.",
"navigation_bar.about": "Um",
+ "navigation_bar.administration": "Umsiting",
"navigation_bar.advanced_interface": "Lat upp í framkomnum vevmarkamóti",
"navigation_bar.blocks": "Bannaðir brúkarar",
"navigation_bar.bookmarks": "Goymd",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Fylgd og fylgjarar",
"navigation_bar.lists": "Listar",
"navigation_bar.logout": "Rita út",
+ "navigation_bar.moderation": "Umsjón",
"navigation_bar.mutes": "Doyvdir brúkarar",
"navigation_bar.opened_in_classic_interface": "Postar, kontur og aðrar serstakar síður verða - um ikki annað er ásett - latnar upp í klassiska vev-markamótinum.",
"navigation_bar.personal": "Persónligt",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Trygd",
"not_signed_in_indicator.not_signed_in": "Tú mást rita inn fyri at fáa atgongd til hetta tilfarið.",
"notification.admin.report": "{name} hevur meldað {target}",
+ "notification.admin.report_account": "{name} meldaði {count, plural, one {ein post} other {# postar}} frá {target} fyri {category}",
+ "notification.admin.report_account_other": "{name} meldaði {count, plural, one {ein post} other {# postar}} frá {target}",
+ "notification.admin.report_statuses": "{name} meldaði {target} fyri {category}",
+ "notification.admin.report_statuses_other": "{name} meldaði {target}",
"notification.admin.sign_up": "{name} meldaði seg til",
+ "notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# annar/onnur} other {# onnur}} teknaðu seg",
"notification.favourite": "{name} dámdi postin hjá tær",
+ "notification.favourite.name_and_others_with_link": "{name} og {count, plural, one {# annar/onnur} other {# onnur}} yndisfrámerktu postin hjá tær",
"notification.follow": "{name} fylgdi tær",
+ "notification.follow.name_and_others": "{name} og {count, plural, one {# annar/onnur} other {# onnur}} fylgdu tær",
"notification.follow_request": "{name} biður um at fylgja tær",
- "notification.mention": "{name} nevndi teg",
+ "notification.follow_request.name_and_others": "{name} og {count, plural, one {# annar/onnur} other {# onnur}} hava biðið um at fylgja tær",
+ "notification.label.mention": "Umrøða",
+ "notification.label.private_mention": "Privat umrøða",
+ "notification.label.private_reply": "Privat svar",
+ "notification.label.reply": "Svara",
+ "notification.mention": "Umrøð",
"notification.moderation-warning.learn_more": "Lær meira",
"notification.moderation_warning": "Tú hevur móttikið eina umsjónarávaring",
"notification.moderation_warning.action_delete_statuses": "Onkrir av tínum postum eru strikaðir.",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "Konta tín er avmarkað.",
"notification.moderation_warning.action_suspend": "Konta tín er ógildað.",
"notification.own_poll": "Tín atkvøðugreiðsla er endað",
- "notification.poll": "Ein atkvøðugreiðsla, har tú hevur atkvøtt, er endað",
+ "notification.poll": "Ein atkvøðugreiðsla, har tú atkvøddi, er endað",
"notification.reblog": "{name} lyfti tín post",
+ "notification.reblog.name_and_others_with_link": "{name} og {count, plural, one {# annar/onnur} other {# onnur}} framhevjaðu tín post",
"notification.relationships_severance_event": "Mist sambond við {name}",
"notification.relationships_severance_event.account_suspension": "Ein umsitari frá {from} hevur gjørt {target} óvirkna, sum merkir, at tú ikki kanst móttaka dagføringar ella virka saman við teimum longur.",
"notification.relationships_severance_event.domain_block": "Ein umsitari frá {from} hevur blokerað {target}, íroknað {followersCount} av tínum fylgjarum og {followingCount, plural, one {# kontu} other {# kontur}}, sum tú fylgir.",
@@ -495,11 +535,27 @@
"notification.status": "{name} hevur júst postað",
"notification.update": "{name} rættaði ein post",
"notification_requests.accept": "Góðtak",
+ "notification_requests.accept_multiple": "{count, plural, one {Góðtak # umbøn…} other {Góðtak # umbønir…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Góðtak umbøn} other {Góðtak umbønir}}",
+ "notification_requests.confirm_accept_multiple.message": "Tú er í ferð við at góðtaka {count, plural, one {eina fráboðanarumbøn} other {# fráboðanarumbønir}}. Er tú vís/ur í, at tú vil halda fram?",
+ "notification_requests.confirm_accept_multiple.title": "Góðtak fráboðanarumbønir?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Avvís umbøn} other {Avvís umbønir}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Tú er í ferð við at avvísa {count, plural, one {eina fráboðanarumbøn} other {# fráboðanarumbønir}}. Tað verður ikki lætt hjá tær at fáa fatur á {count, plural, one {henni} other {teimum}} aftur. Er tú vís/ur í at tú vil halda fram?",
+ "notification_requests.confirm_dismiss_multiple.title": "Avvís fráboðanarumbønir?",
"notification_requests.dismiss": "Avvís",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Avvís # umbøn…} other {Avvís # umbønir…}}",
+ "notification_requests.edit_selection": "Rætta",
+ "notification_requests.exit_selection": "Liðugt",
+ "notification_requests.explainer_for_limited_account": "Fráboðanir frá hesi kontuni eru filtreraðar burtur, tí kontan er avmarkað av einum umsjónarfólki.",
+ "notification_requests.explainer_for_limited_remote_account": "Fráboðanir frá hesi kontuni eru filtreraðar burtur, tí kontan ella ambætarin hjá kontuni eru avmarkaði av einum umsjónarfólki.",
+ "notification_requests.maximize": "Mesta",
+ "notification_requests.minimize_banner": "Ger merkið við filtreraðum fráboðanum lítið",
"notification_requests.notifications_from": "Fráboðanir frá {name}",
- "notification_requests.title": "Sáldaðar fráboðanir",
+ "notification_requests.title": "Filtreraðar fráboðanir",
+ "notification_requests.view": "Vís fráboðanir",
"notifications.clear": "Rudda fráboðanir",
"notifications.clear_confirmation": "Ert tú vís/ur í, at tú vilt strika allar tínar fráboðanir?",
+ "notifications.clear_title": "Rudda fráboðanir?",
"notifications.column_settings.admin.report": "Nýggjar fráboðanir:",
"notifications.column_settings.admin.sign_up": "Nýggjar tilmeldingar:",
"notifications.column_settings.alert": "Skriviborðsfráboðanir",
@@ -531,15 +587,23 @@
"notifications.permission_denied": "Skriviborðsfráboðanir eru ikki tøkar tí at ein kaga-umbøn áður bleiv noktað",
"notifications.permission_denied_alert": "Tað ber ikki til at sláa skriviborðsfráboðanir til, tí at kagarættindi áður eru noktaði",
"notifications.permission_required": "Skriviborðsfráboðanir eru ikki tøkar, tí at neyðugu rættindini eru ikki latin.",
+ "notifications.policy.accept": "Góðtak",
+ "notifications.policy.accept_hint": "Vís í fráboðanum",
+ "notifications.policy.drop": "Lat sum um tú ikki sær",
+ "notifications.policy.drop_hint": "Send út í tóman heim, soleiðis at tað aldrin sæst aftur",
+ "notifications.policy.filter": "Filtrera",
+ "notifications.policy.filter_hint": "Send til filtreraðan fráboðanar-innbakka",
+ "notifications.policy.filter_limited_accounts_hint": "Avmarkað av umsjónarfólkunum á ambætaranum",
+ "notifications.policy.filter_limited_accounts_title": "Avmarkaðar kontur",
"notifications.policy.filter_new_accounts.hint": "Stovnaðar {days, plural, one {seinasta dagin} other {seinastu # dagarnar}}",
"notifications.policy.filter_new_accounts_title": "Nýggjar kontur",
"notifications.policy.filter_not_followers_hint": "Íroknað fólk, sum hava fylgt tær styttri enn {days, plural, one {ein dag} other {# dagar}}",
"notifications.policy.filter_not_followers_title": "Fólk, sum ikki fylgja tær",
"notifications.policy.filter_not_following_hint": "Til tú góðkennir tey manuelt",
"notifications.policy.filter_not_following_title": "Fólk, sum tú ikki fylgir",
- "notifications.policy.filter_private_mentions_hint": "Sáldaði, uttan so at tað er í svari til tínar egnu nevningar ella um tú fylgir sendaranum",
+ "notifications.policy.filter_private_mentions_hint": "Filtreraði, uttan so at tað er í svari til tínar egnu nevningar ella um tú fylgir sendaranum",
"notifications.policy.filter_private_mentions_title": "Óbidnar privatar umrøður",
- "notifications.policy.title": "Sálda burtur fráboðanir frá…",
+ "notifications.policy.title": "Stýr fráboðanir frá…",
"notifications_permission_banner.enable": "Ger skriviborðsfráboðanir virknar",
"notifications_permission_banner.how_to_control": "Ger skriviborðsfráboðanir virknar fyri at móttaka fráboðanir, tá Mastodon ikki er opið. Tá tær eru gjørdar virknar, kanst tú stýra, hvørji sløg av samvirkni geva skriviborðsfráboðanir. Hetta umvegis {icon} knøttin omanfyri.",
"notifications_permission_banner.title": "Miss einki",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Tú fylgir hesi kontuni. Gevst at fylgja henni, um tú ikki longur ynskir at síggja postarnar á heimarásini hjá tær.",
"report_notification.attached_statuses": "{count, plural, one {{count} postur atknýttur} other {{count} postar atknýttir}}",
"report_notification.categories.legal": "Løgfrøðisligt",
+ "report_notification.categories.legal_sentence": "ólógligt innihald",
"report_notification.categories.other": "Aðrir",
+ "report_notification.categories.other_sentence": "aðrir",
"report_notification.categories.spam": "Ruskpostur",
+ "report_notification.categories.spam_sentence": "ruskpostur",
"report_notification.categories.violation": "Brotin regla",
+ "report_notification.categories.violation_sentence": "brot á reglu",
"report_notification.open": "Opna melding",
"search.no_recent_searches": "Ongar nýggjar leitingar",
"search.placeholder": "Leita",
@@ -710,6 +778,7 @@
"status.bookmark": "Goym",
"status.cancel_reblog_private": "Strika stimbran",
"status.cannot_reblog": "Tað ber ikki til at stimbra hendan postin",
+ "status.continued_thread": "Framhaldandi tráður",
"status.copy": "Kopiera leinki til postin",
"status.delete": "Strika",
"status.detailed_status": "Útgreinað samrøðusýni",
@@ -718,12 +787,10 @@
"status.edit": "Rætta",
"status.edited": "Seinast broytt {date}",
"status.edited_x_times": "Rættað {count, plural, one {{count} ferð} other {{count} ferð}}",
- "status.embed": "Legg inní",
+ "status.embed": "Fá kodu at seta inn",
"status.favourite": "Dámdur postur",
"status.favourites": "{count, plural, one {yndispostur} other {yndispostar}}",
"status.filter": "Filtrera hendan postin",
- "status.filtered": "Filtrerað",
- "status.hide": "Fjal post",
"status.history.created": "{name} stovnað {date}",
"status.history.edited": "{name} rættað {date}",
"status.load_more": "Tak meira niður",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Eingin hevur stimbrað hendan postin enn. Tá onkur stimbrar postin, verður hann sjónligur her.",
"status.redraft": "Strika & ger nýggja kladdu",
"status.remove_bookmark": "Gloym",
+ "status.replied_in_thread": "Svaraði í tráðnum",
"status.replied_to": "Svaraði {name}",
"status.reply": "Svara",
"status.replyAll": "Svara tráðnum",
"status.report": "Melda @{name}",
"status.sensitive_warning": "Viðkvæmt tilfar",
"status.share": "Deil",
- "status.show_filter_reason": "Vís kortini",
- "status.show_less": "Vís minni",
"status.show_less_all": "Vís øllum minni",
- "status.show_more": "Vís meira",
"status.show_more_all": "Vís øllum meira",
"status.show_original": "Vís upprunaliga",
"status.title.with_attachments": "{user} postaði {attachmentCount, plural, one {eitt viðhefti} other {{attachmentCount} viðhefti}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minuttur} other {# minuttir}} eftir",
"time_remaining.moments": "Lítið bil eftir",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekund}} eftir",
- "timeline_hint.remote_resource_not_displayed": "{resource} frá øðrum ambætarum verður ikki víst.",
- "timeline_hint.resources.followers": "Fylgjarar",
- "timeline_hint.resources.follows": "Fylgir",
- "timeline_hint.resources.statuses": "Gamlir postar",
"trends.counter_by_accounts": "{count, plural, one {{counter} persónur} other {{counter} persónar}} {days, plural, one {seinasta dagin} other {{days} seinastu dagarnar}}",
"trends.trending_now": "Rák beint nú",
"ui.beforeunload": "Kladdan verður mist, um tú fer úr Mastodon.",
diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json
index 50b7dcf90dc..ead016dec2a 100644
--- a/app/javascript/mastodon/locales/fr-CA.json
+++ b/app/javascript/mastodon/locales/fr-CA.json
@@ -11,7 +11,7 @@
"about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.",
"about.powered_by": "Réseau social décentralisé propulsé par {mastodon}",
"about.rules": "Règles du serveur",
- "account.account_note_header": "Note",
+ "account.account_note_header": "Note personnelle",
"account.add_or_remove_from_list": "Ajouter ou enlever de listes",
"account.badges.bot": "Bot",
"account.badges.group": "Groupe",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloquer le domaine {domain}",
"account.block_short": "Bloquer",
"account.blocked": "Bloqué·e",
- "account.browse_more_on_origin_server": "Parcourir davantage sur le profil original",
"account.cancel_follow_request": "Retirer cette demande d'abonnement",
"account.copy": "Copier le lien vers le profil",
"account.direct": "Mention privée @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "S'abonner en retour",
"account.followers": "abonné·e·s",
"account.followers.empty": "Personne ne suit ce compte pour l'instant.",
- "account.followers_counter": "{count, plural, one {{counter} Abonné·e} other {{counter} Abonné·e·s}}",
+ "account.followers_counter": "{count, plural, one {{counter} abonné·e} other {{counter} abonné·e·s}}",
"account.following": "Abonné·e",
- "account.following_counter": "{count, plural, one {{counter} Abonnement} other {{counter} Abonnements}}",
+ "account.following_counter": "{count, plural, one {{counter} abonnement} other {{counter} abonnements}}",
"account.follows.empty": "Ce compte ne suit personne présentement.",
"account.go_to_profile": "Voir ce profil",
"account.hide_reblogs": "Masquer les boosts de @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} a demandé à vous suivre",
"account.share": "Partager le profil de @{name}",
"account.show_reblogs": "Afficher les boosts de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Publication} other {{counter} Publications}}",
+ "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
"account.unblock": "Débloquer @{name}",
"account.unblock_domain": "Débloquer le domaine {domain}",
"account.unblock_short": "Débloquer",
@@ -95,9 +94,11 @@
"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_will_know": "Il peut voir qu'il est bloqué.",
- "block_modal.title": "Bloquer l'utilisateur ?",
+ "block_modal.title": "Bloquer l'utilisateur·rice ?",
"block_modal.you_wont_see_mentions": "Vous ne verrez pas les publications 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 ?",
"bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur",
"bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela pourrait être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.",
"bundle_column_error.error.title": "Oh non!",
@@ -163,33 +164,38 @@
"compose_form.publish": "Publier",
"compose_form.publish_form": "Publier",
"compose_form.reply": "Répondre",
- "compose_form.save_changes": "Mis à jour",
+ "compose_form.save_changes": "Mettre à jour",
"compose_form.spoiler.marked": "Enlever l'avertissement de contenu",
"compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu",
"compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)",
"confirmation_modal.cancel": "Annuler",
"confirmations.block.confirm": "Bloquer",
- "confirmations.cancel_follow_request.confirm": "Retirer cette demande",
- "confirmations.cancel_follow_request.message": "Êtes-vous sûr de vouloir retirer votre demande pour suivre {name}?",
"confirmations.delete.confirm": "Supprimer",
"confirmations.delete.message": "Voulez-vous vraiment supprimer cette publication?",
+ "confirmations.delete.title": "Supprimer la publication ?",
"confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?",
+ "confirmations.delete_list.title": "Supprimer la liste ?",
"confirmations.discard_edit_media.confirm": "Rejeter",
"confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, voulez-vous quand même les supprimer?",
- "confirmations.domain_block.confirm": "Bloquer le serveur",
- "confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
"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.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 ses mises en favori et boosts seront perdus et ses réponses seront orphelines.",
+ "confirmations.redraft.title": "Supprimer et réécrire le message ?",
"confirmations.reply.confirm": "Répondre",
"confirmations.reply.message": "Répondre maintenant écrasera le message que vous rédigez présentement. Voulez-vous vraiment continuer?",
+ "confirmations.reply.title": "Remplacer le message ?",
"confirmations.unfollow.confirm": "Ne plus suivre",
"confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name}?",
+ "confirmations.unfollow.title": "Se désabonner de l'utilisateur ?",
+ "content_warning.hide": "Masquer le message",
+ "content_warning.show": "Afficher quand même",
"conversation.delete": "Supprimer cette conversation",
"conversation.mark_as_read": "Marquer comme lu",
"conversation.open": "Afficher cette conversation",
@@ -297,7 +303,8 @@
"filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle",
"filter_modal.select_filter.title": "Filtrer cette publication",
"filter_modal.title.status": "Filtrer une publication",
- "filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {d’une personne} other {de # personnes}} que vous pouvez connaitre",
+ "filter_warning.matches_filter": "Correspond au filtre « {title} »",
+ "filtered_notifications_banner.pending_requests": "De la part {count, plural, =0 {d’aucune personne} one {d'une personne} other {de # personnes}} que vous pourriez connaître",
"filtered_notifications_banner.title": "Notifications filtrées",
"firehose.all": "Tout",
"firehose.local": "Ce serveur",
@@ -305,8 +312,10 @@
"follow_request.authorize": "Autoriser",
"follow_request.reject": "Rejeter",
"follow_requests.unlocked_explanation": "Même si votre compte n’est pas privé, l’équipe de {domain} a pensé que vous pourriez vouloir peut-être consulter manuellement les demandes d'abonnement de ces comptes.",
- "follow_suggestions.curated_suggestion": "Choix du staff",
+ "follow_suggestions.curated_suggestion": "Sélectionné par l'équipe",
"follow_suggestions.dismiss": "Ne plus afficher",
+ "follow_suggestions.featured_longer": "Sélectionné par l'équipe de {domain}",
+ "follow_suggestions.friends_of_friends_longer": "Populaire dans le cercle des personnes que vous suivez",
"follow_suggestions.hints.featured": "Ce profil a été sélectionné par l'équipe de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ce profil est populaire parmi les personnes que vous suivez.",
"follow_suggestions.hints.most_followed": "Ce profil est l'un des plus suivis sur {domain}.",
@@ -314,6 +323,8 @@
"follow_suggestions.hints.similar_to_recently_followed": "Ce profil est similaire aux profils que vous avez suivis le plus récemment.",
"follow_suggestions.personalized_suggestion": "Suggestion personnalisée",
"follow_suggestions.popular_suggestion": "Suggestion populaire",
+ "follow_suggestions.popular_suggestion_longer": "Populaire sur {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Similaire aux profils que vous avez dernièrement suivis",
"follow_suggestions.view_all": "Tout afficher",
"follow_suggestions.who_to_follow": "Qui suivre",
"followed_tags": "Hashtags suivis",
@@ -342,6 +353,14 @@
"hashtag.follow": "Suivre ce hashtag",
"hashtag.unfollow": "Ne plus suivre ce hashtag",
"hashtags.and_other": "…et {count, plural, other {# de plus}}",
+ "hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.",
+ "hints.profiles.follows_may_be_missing": "Les abonnements pour ce profil peuvent être manquants.",
+ "hints.profiles.posts_may_be_missing": "Certains messages de ce profil peuvent être manquants.",
+ "hints.profiles.see_more_followers": "Afficher plus d'abonné·e·s sur {domain}",
+ "hints.profiles.see_more_follows": "Afficher plus d'abonné·e·s sur {domain}",
+ "hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
+ "hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
+ "hints.threads.see_more": "Afficher plus de réponses sur {domain}",
"home.column_settings.show_reblogs": "Afficher boosts",
"home.column_settings.show_replies": "Afficher réponses",
"home.hide_announcements": "Masquer les annonces",
@@ -349,6 +368,17 @@
"home.pending_critical_update.link": "Voir les mises à jour",
"home.pending_critical_update.title": "Une mise à jour de sécurité critique est disponible !",
"home.show_announcements": "Afficher annonces",
+ "ignore_notifications_modal.disclaimer": "Mastodon ne peut pas indiquer aux utilisateurs que vous avez ignoré leurs notifications. Le fait d'ignorer les notifications n'empêchera pas la transmission des messages eux-mêmes.",
+ "ignore_notifications_modal.filter_instead": "Filtrer plutôt",
+ "ignore_notifications_modal.filter_to_act_users": "Vous serez toujours en mesure d'accepter, de rejeter ou de signaler les utilisateur·rice·s",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Le filtrage permet d'éviter toute éventuelle confusion",
+ "ignore_notifications_modal.filter_to_review_separately": "Vous pouvez réexaminer les notifications filtrées séparément",
+ "ignore_notifications_modal.ignore": "Ignorer les notifications",
+ "ignore_notifications_modal.limited_accounts_title": "Ignorer les notifications provenant des comptes modérés ?",
+ "ignore_notifications_modal.new_accounts_title": "Ignorer les notifications provenant des nouveaux comptes ?",
+ "ignore_notifications_modal.not_followers_title": "Ignorer les notifications provenant des personnes qui ne vous suivent pas ?",
+ "ignore_notifications_modal.not_following_title": "Ignorer les notifications provenant des personnes que vous ne suivez pas ?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorer les notifications issues des mentions privées non sollicitées ?",
"interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter cette publication à vos favoris pour informer l'auteur⋅rice que vous l'appréciez et la sauvegarder pour plus tard.",
"interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs publications dans votre fil d'accueil.",
"interaction_modal.description.reblog": "Avec un compte Mastodon, vous pouvez booster cette publication pour la partager avec vos propres abonné·e·s.",
@@ -402,13 +432,13 @@
"keyboard_shortcuts.unfocus": "Ne plus se concentrer sur la zone de rédaction/barre de recherche",
"keyboard_shortcuts.up": "Monter dans la liste",
"lightbox.close": "Fermer",
- "lightbox.compress": "Compresser la fenêtre de visualisation d'images",
- "lightbox.expand": "Agrandir la fenêtre de visualisation d'images",
"lightbox.next": "Suivant",
"lightbox.previous": "Précédent",
"limited_account_hint.action": "Afficher le profil quand même",
"limited_account_hint.title": "Ce profil a été masqué par la modération de {domain}.",
"link_preview.author": "Par {name}",
+ "link_preview.more_from_author": "Plus via {name}",
+ "link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}",
"lists.account.add": "Ajouter à une liste",
"lists.account.remove": "Retirer d'une liste",
"lists.delete": "Supprimer la liste",
@@ -425,7 +455,7 @@
"lists.subheading": "Vos listes",
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
"loading_indicator.label": "Chargement…",
- "media_gallery.toggle_visible": "{number, plural, one {Cacher l’image} other {Cacher les images}}",
+ "media_gallery.hide": "Masquer",
"moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous avez déménagé sur {movedToAccount}.",
"mute_modal.hide_from_notifications": "Cacher des notifications",
"mute_modal.hide_options": "Masquer les options",
@@ -437,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
"navigation_bar.about": "À propos",
+ "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Ouvrir dans l’interface avancée",
"navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Signets",
@@ -453,6 +484,7 @@
"navigation_bar.follows_and_followers": "Abonnements et abonnés",
"navigation_bar.lists": "Listes",
"navigation_bar.logout": "Se déconnecter",
+ "navigation_bar.moderation": "Modération",
"navigation_bar.mutes": "Utilisateurs masqués",
"navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans l’interface classique.",
"navigation_bar.personal": "Personnel",
@@ -463,14 +495,36 @@
"navigation_bar.security": "Sécurité",
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}",
+ "notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}",
+ "notification.admin.report_account_other": "{name} a signalé {count, plural, one {un message} other {# messages}} depuis {target}",
+ "notification.admin.report_statuses": "{name} a signalé {target} pour {category}",
+ "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.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",
"notification.follow": "{name} vous suit",
+ "notification.follow.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont abonné à votre compte",
"notification.follow_request": "{name} a demandé à vous suivre",
- "notification.mention": "{name} vous a mentionné·e",
+ "notification.follow_request.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} ont demandé à vous suivre",
+ "notification.label.mention": "Mention",
+ "notification.label.private_mention": "Mention privée",
+ "notification.label.private_reply": "Répondre en privé",
+ "notification.label.reply": "Réponse",
+ "notification.mention": "Mention",
+ "notification.moderation-warning.learn_more": "En savoir plus",
+ "notification.moderation_warning": "Vous avez reçu un avertissement de modération",
+ "notification.moderation_warning.action_delete_statuses": "Certains de vos messages ont été supprimés.",
+ "notification.moderation_warning.action_disable": "Votre compte a été désactivé.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Certains de vos messages ont été marqués comme sensibles.",
+ "notification.moderation_warning.action_none": "Votre compte a reçu un avertissement de modération.",
+ "notification.moderation_warning.action_sensitive": "Vos messages seront désormais marqués comme sensibles.",
+ "notification.moderation_warning.action_silence": "Votre compte a été limité.",
+ "notification.moderation_warning.action_suspend": "Votre compte a été suspendu.",
"notification.own_poll": "Votre sondage est terminé",
- "notification.poll": "Un sondage auquel vous avez participé est terminé",
+ "notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
"notification.reblog": "{name} a boosté votre message",
+ "notification.reblog.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont boosté votre message",
"notification.relationships_severance_event": "Connexions perdues avec {name}",
"notification.relationships_severance_event.account_suspension": "Un·e administrateur·rice de {from} a suspendu {target}, ce qui signifie que vous ne pourrez plus recevoir de mises à jour ou interagir avec lui.",
"notification.relationships_severance_event.domain_block": "Un·e administrateur·rice de {from} en a bloqué {target}, comprenant {followersCount} de vos abonné·e·s et {followingCount, plural, one {# compte} other {# comptes}} vous suivez.",
@@ -479,11 +533,27 @@
"notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié une publication",
"notification_requests.accept": "Accepter",
+ "notification_requests.accept_multiple": "{count, plural, one {Accepter # requête …} other {Accepter # requêtes …}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accepter la requête} other {Accepter les requêtes}}",
+ "notification_requests.confirm_accept_multiple.message": "Vous êtes sur le point d'accepter {count, plural, one {une requête de notification} other {# requêtes de notification}}. Êtes-vous sûr de vouloir continuer ?",
+ "notification_requests.confirm_accept_multiple.title": "Accepter les requêtes de notification ?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Ignorer la requête} other {Ignorer les requêtes}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Vous êtes sur le point de rejeter {count, plural, one {une requête de notification} other {# requêtes de notification}}. Vous ne serez plus en mesure d’{count, plural, one {y} other {y}} accéder facilement, ultérieurement. Êtes-vous sûr de vouloir continuer ?",
+ "notification_requests.confirm_dismiss_multiple.title": "Rejeter les requêtes de notification ?",
"notification_requests.dismiss": "Rejeter",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Rejeter # requête …} other {Rejeter # requêtes …}}",
+ "notification_requests.edit_selection": "Modifier",
+ "notification_requests.exit_selection": "Fait",
+ "notification_requests.explainer_for_limited_account": "Les notifications en provenance de ce compte ont été filtrées car le compte a été limité par un modérateur.",
+ "notification_requests.explainer_for_limited_remote_account": "Les notifications en provenance de ce compte ont été filtrées car le compte ou le serveur dont il est issu a été limité par un modérateur.",
+ "notification_requests.maximize": "Agrandir",
+ "notification_requests.minimize_banner": "Réduire la bannière des notifications filtrées",
"notification_requests.notifications_from": "Notifications de {name}",
"notification_requests.title": "Notifications filtrées",
+ "notification_requests.view": "Afficher les notifications",
"notifications.clear": "Effacer notifications",
"notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications?",
+ "notifications.clear_title": "Effacer les notifications ?",
"notifications.column_settings.admin.report": "Nouveaux signalements:",
"notifications.column_settings.admin.sign_up": "Nouvelles inscriptions:",
"notifications.column_settings.alert": "Notifications navigateur",
@@ -515,15 +585,23 @@
"notifications.permission_denied": "Les notifications de bureau ne sont pas disponibles en raison d'une demande de permission de navigateur précédemment refusée",
"notifications.permission_denied_alert": "Les notifications de bureau ne peuvent pas être activées, car l’autorisation du navigateur a précedemment été refusée",
"notifications.permission_required": "Les notifications de bureau ne sont pas disponibles car l’autorisation requise n’a pas été accordée.",
+ "notifications.policy.accept": "Accepter",
+ "notifications.policy.accept_hint": "Afficher dans les notifications",
+ "notifications.policy.drop": "Ignorer",
+ "notifications.policy.drop_hint": "Expulser vers le vide, pour ne plus jamais les revoir",
+ "notifications.policy.filter": "Filtrer",
+ "notifications.policy.filter_hint": "Envoyer à la boîte de réception des notifications filtrées",
+ "notifications.policy.filter_limited_accounts_hint": "Limités par les modérateur·rice·s du serveur",
+ "notifications.policy.filter_limited_accounts_title": "Comptes modérés",
"notifications.policy.filter_new_accounts.hint": "Créés au cours des derniers {days, plural, one {un jour} other {# jours}}",
"notifications.policy.filter_new_accounts_title": "Nouveaux comptes",
"notifications.policy.filter_not_followers_hint": "Incluant les personnes qui vous suivent depuis moins de {days, plural, one {un jour} other {# jours}}",
"notifications.policy.filter_not_followers_title": "Personnes qui ne vous suivent pas",
"notifications.policy.filter_not_following_hint": "Jusqu'à ce que vous les validiez manuellement",
"notifications.policy.filter_not_following_title": "Personnes que vous ne suivez pas",
- "notifications.policy.filter_private_mentions_hint": "Filtré sauf si c'est en réponse à une mention de vous ou si vous suivez l'expéditeur",
+ "notifications.policy.filter_private_mentions_hint": "Filtrées sauf si c'est en réponse à l'une de vos mentions ou si vous suivez l'expéditeur·ice",
"notifications.policy.filter_private_mentions_title": "Mentions privées non sollicitées",
- "notifications.policy.title": "Filtrer les notifications de…",
+ "notifications.policy.title": "Gestion des notifications des …",
"notifications_permission_banner.enable": "Activer les notifications de bureau",
"notifications_permission_banner.how_to_control": "Pour recevoir des notifications lorsque Mastodon n’est pas ouvert, activez les notifications de bureau. Vous pouvez contrôler précisément quels types d’interactions génèrent des notifications de bureau via le bouton {icon} ci-dessus une fois qu’elles sont activées.",
"notifications_permission_banner.title": "Ne rien rater",
@@ -650,9 +728,13 @@
"report.unfollow_explanation": "Vous suivez ce compte. Pour ne plus en voir les messages sur votre fil d'accueil, arrêtez de le suivre.",
"report_notification.attached_statuses": "{count, plural, one {{count} publication liée} other {{count} publications liées}}",
"report_notification.categories.legal": "Mentions légales",
+ "report_notification.categories.legal_sentence": "contenu illégal",
"report_notification.categories.other": "Autre",
+ "report_notification.categories.other_sentence": "autre",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "indésirable",
"report_notification.categories.violation": "Infraction aux règles du serveur",
+ "report_notification.categories.violation_sentence": "infraction de règle",
"report_notification.open": "Ouvrir le signalement",
"search.no_recent_searches": "Aucune recherche récente",
"search.placeholder": "Rechercher",
@@ -680,8 +762,11 @@
"server_banner.about_active_users": "Personnes utilisant ce serveur au cours des 30 derniers jours (Comptes actifs mensuellement)",
"server_banner.active_users": "comptes actifs",
"server_banner.administered_by": "Administré par:",
+ "server_banner.is_one_of_many": "{domain} est l'un des nombreux serveurs Mastodon indépendants que vous pouvez utiliser pour participer au fédiverse.",
"server_banner.server_stats": "Statistiques du serveur:",
"sign_in_banner.create_account": "Créer un compte",
+ "sign_in_banner.follow_anyone": "Suivez n'importe qui à travers le fédivers et affichez tout dans un ordre chronologique. Ni algorithmes, ni publicités, ni appâts à clics en perspective.",
+ "sign_in_banner.mastodon_is": "Mastodon est le meilleur moyen de suivre ce qui se passe.",
"sign_in_banner.sign_in": "Se connecter",
"sign_in_banner.sso_redirect": "Se connecter ou s’inscrire",
"status.admin_account": "Ouvrir l’interface de modération pour @{name}",
@@ -691,6 +776,7 @@
"status.bookmark": "Ajouter aux signets",
"status.cancel_reblog_private": "Débooster",
"status.cannot_reblog": "Cette publication ne peut pas être boostée",
+ "status.continued_thread": "Suite du fil",
"status.copy": "Copier un lien vers cette publication",
"status.delete": "Supprimer",
"status.detailed_status": "Vue détaillée de la conversation",
@@ -699,12 +785,10 @@
"status.edit": "Modifier",
"status.edited": "Dernière modification le {date}",
"status.edited_x_times": "Modifiée {count, plural, one {{count} fois} other {{count} fois}}",
- "status.embed": "Intégrer",
+ "status.embed": "Obtenir le code d'intégration",
"status.favourite": "Ajouter aux favoris",
"status.favourites": "{count, plural, one {favori} other {favoris}}",
"status.filter": "Filtrer cette publication",
- "status.filtered": "Filtrée",
- "status.hide": "Masquer le message",
"status.history.created": "créé par {name} {date}",
"status.history.edited": "modifié par {name} {date}",
"status.load_more": "Charger plus",
@@ -726,16 +810,14 @@
"status.reblogs.empty": "Personne n’a encore boosté cette publication. Lorsque quelqu’un le fera, elle apparaîtra ici.",
"status.redraft": "Supprimer et réécrire",
"status.remove_bookmark": "Retirer des signets",
+ "status.replied_in_thread": "A répondu dans un fil de discussion",
"status.replied_to": "A répondu à {name}",
"status.reply": "Répondre",
"status.replyAll": "Répondre à cette discussion",
"status.report": "Signaler @{name}",
"status.sensitive_warning": "Contenu sensible",
"status.share": "Partager",
- "status.show_filter_reason": "Afficher quand même",
- "status.show_less": "Replier",
"status.show_less_all": "Tout replier",
- "status.show_more": "Déplier",
"status.show_more_all": "Tout déplier",
"status.show_original": "Afficher l’original",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -754,10 +836,6 @@
"time_remaining.minutes": "{number, plural, one {# minute restante} other {# minutes restantes}}",
"time_remaining.moments": "Encore quelques instants",
"time_remaining.seconds": "{number, plural, one {# seconde restante} other {# secondes restantes}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} des autres serveurs ne sont pas affichés.",
- "timeline_hint.resources.followers": "Abonné·e·s",
- "timeline_hint.resources.follows": "Abonnements",
- "timeline_hint.resources.statuses": "Publications plus anciennes",
"trends.counter_by_accounts": "{count, plural, one {{counter} personne} other {{counter} personnes}} au cours {days, plural, one {des dernières 24h} other {des {days} derniers jours}}",
"trends.trending_now": "Présentement populaire",
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 2e565c200f5..9375eccc6fb 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -11,7 +11,7 @@
"about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.",
"about.powered_by": "Réseau social décentralisé propulsé par {mastodon}",
"about.rules": "Règles du serveur",
- "account.account_note_header": "Note",
+ "account.account_note_header": "Note personnelle",
"account.add_or_remove_from_list": "Ajouter ou retirer des listes",
"account.badges.bot": "Bot",
"account.badges.group": "Groupe",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloquer le domaine {domain}",
"account.block_short": "Bloquer",
"account.blocked": "Bloqué·e",
- "account.browse_more_on_origin_server": "Parcourir davantage sur le profil original",
"account.cancel_follow_request": "Annuler le suivi",
"account.copy": "Copier le lien vers le profil",
"account.direct": "Mention privée @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "S'abonner en retour",
"account.followers": "Abonné·e·s",
"account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour l’instant.",
- "account.followers_counter": "{count, plural, one {{counter} Abonné·e} other {{counter} Abonné·e·s}}",
+ "account.followers_counter": "{count, plural, one {{counter} abonné·e} other {{counter} abonné·e·s}}",
"account.following": "Abonnements",
- "account.following_counter": "{count, plural, one {{counter} Abonnement} other {{counter} Abonnements}}",
+ "account.following_counter": "{count, plural, one {{counter} abonnement} other {{counter} abonnements}}",
"account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.",
"account.go_to_profile": "Aller au profil",
"account.hide_reblogs": "Masquer les partages de @{name}",
@@ -50,7 +49,7 @@
"account.mention": "Mentionner @{name}",
"account.moved_to": "{name} a indiqué que son nouveau compte est maintenant :",
"account.mute": "Masquer @{name}",
- "account.mute_notifications_short": "Désactiver les alertes",
+ "account.mute_notifications_short": "Désactiver les notifications",
"account.mute_short": "Mettre en sourdine",
"account.muted": "Masqué·e",
"account.mutual": "Mutuel",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} a demandé à vous suivre",
"account.share": "Partager le profil de @{name}",
"account.show_reblogs": "Afficher les partages de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Message} other {{counter} Messages}}",
+ "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
"account.unblock": "Débloquer @{name}",
"account.unblock_domain": "Débloquer le domaine {domain}",
"account.unblock_short": "Débloquer",
@@ -95,9 +94,11 @@
"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_will_know": "Il peut voir qu'il est bloqué.",
- "block_modal.title": "Bloquer l'utilisateur ?",
+ "block_modal.title": "Bloquer l'utilisateur·rice ?",
"block_modal.you_wont_see_mentions": "Vous ne verrez pas les publications 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 ?",
"bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur",
"bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela peut être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.",
"bundle_column_error.error.title": "Oh non !",
@@ -163,33 +164,38 @@
"compose_form.publish": "Publier",
"compose_form.publish_form": "Nouvelle publication",
"compose_form.reply": "Répondre",
- "compose_form.save_changes": "Mis à jour",
+ "compose_form.save_changes": "Mettre à jour",
"compose_form.spoiler.marked": "Enlever l’avertissement de contenu",
"compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu",
"compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)",
"confirmation_modal.cancel": "Annuler",
"confirmations.block.confirm": "Bloquer",
- "confirmations.cancel_follow_request.confirm": "Retirer la demande",
- "confirmations.cancel_follow_request.message": "Êtes-vous sûr de vouloir retirer votre demande pour suivre {name} ?",
"confirmations.delete.confirm": "Supprimer",
"confirmations.delete.message": "Voulez-vous vraiment supprimer ce message ?",
+ "confirmations.delete.title": "Supprimer la publication ?",
"confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste ?",
+ "confirmations.delete_list.title": "Supprimer la liste ?",
"confirmations.discard_edit_media.confirm": "Rejeter",
"confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, les supprimer quand même ?",
- "confirmations.domain_block.confirm": "Bloquer le serveur",
- "confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
"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.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.title": "Supprimer et réécrire le message ?",
"confirmations.reply.confirm": "Répondre",
"confirmations.reply.message": "Répondre maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?",
+ "confirmations.reply.title": "Remplacer le message ?",
"confirmations.unfollow.confirm": "Ne plus suivre",
"confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name} ?",
+ "confirmations.unfollow.title": "Se désabonner de l'utilisateur ?",
+ "content_warning.hide": "Masquer le message",
+ "content_warning.show": "Afficher quand même",
"conversation.delete": "Supprimer la conversation",
"conversation.mark_as_read": "Marquer comme lu",
"conversation.open": "Afficher la conversation",
@@ -208,7 +214,7 @@
"dismissable_banner.explore_links": "On parle actuellement de ces nouvelles sur ce serveur, ainsi que sur d'autres serveurs du réseau décentralisé.",
"dismissable_banner.explore_statuses": "Ces messages venant de tout le web social gagnent en popularité aujourd’hui. Les nouveaux messages avec plus de boosts et de favoris sont classés plus haut.",
"dismissable_banner.explore_tags": "Ces hashtags sont actuellement en train de gagner de l'ampleur parmi les personnes sur les serveurs du réseau décentralisé dont celui-ci.",
- "dismissable_banner.public_timeline": "Ce sont les posts publics les plus récents de personnes sur le web social que les gens sur {domain} suivent.",
+ "dismissable_banner.public_timeline": "Il s'agit des messages publics les plus récents publiés par des gens sur le web social et que les utilisateurs de {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.",
@@ -285,7 +291,7 @@
"filter_modal.added.context_mismatch_title": "Incompatibilité du contexte !",
"filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.",
"filter_modal.added.expired_title": "Filtre expiré !",
- "filter_modal.added.review_and_configure": "Pour examiner et affiner la configuration de cette catégorie de filtre, allez à {settings_link}.",
+ "filter_modal.added.review_and_configure": "Pour examiner et affiner la configuration de cette catégorie de filtres, allez à {settings_link}.",
"filter_modal.added.review_and_configure_title": "Paramètres du filtre",
"filter_modal.added.settings_link": "page des paramètres",
"filter_modal.added.short_explanation": "Ce message a été ajouté à la catégorie de filtre suivante : {title}.",
@@ -294,10 +300,11 @@
"filter_modal.select_filter.expired": "a expiré",
"filter_modal.select_filter.prompt_new": "Nouvelle catégorie : {name}",
"filter_modal.select_filter.search": "Rechercher ou créer",
- "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle",
+ "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou créez-en une nouvelle",
"filter_modal.select_filter.title": "Filtrer ce message",
"filter_modal.title.status": "Filtrer un message",
- "filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {d’une personne} other {de # personnes}} que vous pouvez connaitre",
+ "filter_warning.matches_filter": "Correspond au filtre « {title} »",
+ "filtered_notifications_banner.pending_requests": "De la part {count, plural, =0 {d’aucune personne} one {d'une personne} other {de # personnes}} que vous pourriez connaître",
"filtered_notifications_banner.title": "Notifications filtrées",
"firehose.all": "Tout",
"firehose.local": "Ce serveur",
@@ -305,8 +312,10 @@
"follow_request.authorize": "Accepter",
"follow_request.reject": "Rejeter",
"follow_requests.unlocked_explanation": "Même si votre compte n’est pas privé, l’équipe de {domain} a pensé que vous pourriez vouloir consulter manuellement les demandes de suivi de ces comptes.",
- "follow_suggestions.curated_suggestion": "Choix du staff",
+ "follow_suggestions.curated_suggestion": "Sélectionné par l'équipe",
"follow_suggestions.dismiss": "Ne plus afficher",
+ "follow_suggestions.featured_longer": "Sélectionné par l'équipe de {domain}",
+ "follow_suggestions.friends_of_friends_longer": "Populaire dans le cercle des personnes que vous suivez",
"follow_suggestions.hints.featured": "Ce profil a été sélectionné par l'équipe de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ce profil est populaire parmi les personnes que vous suivez.",
"follow_suggestions.hints.most_followed": "Ce profil est l'un des plus suivis sur {domain}.",
@@ -314,6 +323,8 @@
"follow_suggestions.hints.similar_to_recently_followed": "Ce profil est similaire aux profils que vous avez suivis le plus récemment.",
"follow_suggestions.personalized_suggestion": "Suggestion personnalisée",
"follow_suggestions.popular_suggestion": "Suggestion populaire",
+ "follow_suggestions.popular_suggestion_longer": "Populaire sur {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Similaire aux profils que vous avez dernièrement suivis",
"follow_suggestions.view_all": "Tout afficher",
"follow_suggestions.who_to_follow": "Qui suivre",
"followed_tags": "Hashtags suivis",
@@ -342,6 +353,14 @@
"hashtag.follow": "Suivre le hashtag",
"hashtag.unfollow": "Ne plus suivre le hashtag",
"hashtags.and_other": "…et {count, plural, other {# de plus}}",
+ "hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.",
+ "hints.profiles.follows_may_be_missing": "Les abonnements pour ce profil peuvent être manquants.",
+ "hints.profiles.posts_may_be_missing": "Certains messages de ce profil peuvent être manquants.",
+ "hints.profiles.see_more_followers": "Afficher plus d'abonné·e·s sur {domain}",
+ "hints.profiles.see_more_follows": "Afficher plus d'abonné·e·s sur {domain}",
+ "hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
+ "hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
+ "hints.threads.see_more": "Afficher plus de réponses sur {domain}",
"home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses",
"home.hide_announcements": "Masquer les annonces",
@@ -349,6 +368,17 @@
"home.pending_critical_update.link": "Voir les mises à jour",
"home.pending_critical_update.title": "Une mise à jour de sécurité critique est disponible !",
"home.show_announcements": "Afficher les annonces",
+ "ignore_notifications_modal.disclaimer": "Mastodon ne peut pas indiquer aux utilisateurs que vous avez ignoré leurs notifications. Le fait d'ignorer les notifications n'empêchera pas la transmission des messages eux-mêmes.",
+ "ignore_notifications_modal.filter_instead": "Filtrer plutôt",
+ "ignore_notifications_modal.filter_to_act_users": "Vous serez toujours en mesure d'accepter, de rejeter ou de signaler les utilisateur·rice·s",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Le filtrage permet d'éviter toute éventuelle confusion",
+ "ignore_notifications_modal.filter_to_review_separately": "Vous pouvez réexaminer les notifications filtrées séparément",
+ "ignore_notifications_modal.ignore": "Ignorer les notifications",
+ "ignore_notifications_modal.limited_accounts_title": "Ignorer les notifications provenant des comptes modérés ?",
+ "ignore_notifications_modal.new_accounts_title": "Ignorer les notifications provenant des nouveaux comptes ?",
+ "ignore_notifications_modal.not_followers_title": "Ignorer les notifications provenant des personnes qui ne vous suivent pas ?",
+ "ignore_notifications_modal.not_following_title": "Ignorer les notifications provenant des personnes que vous ne suivez pas ?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorer les notifications issues des mentions privées non sollicitées ?",
"interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter ce message à vos favoris pour informer l'auteur⋅rice que vous l'appréciez et pour le sauvegarder pour plus tard.",
"interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.",
"interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez partager ce message pour le faire découvrir à vos propres abonné⋅e⋅s.",
@@ -402,13 +432,13 @@
"keyboard_shortcuts.unfocus": "Quitter la zone de rédaction/barre de recherche",
"keyboard_shortcuts.up": "Monter dans la liste",
"lightbox.close": "Fermer",
- "lightbox.compress": "Compresser la fenêtre de visualisation des images",
- "lightbox.expand": "Agrandir la fenêtre de visualisation des images",
"lightbox.next": "Suivant",
"lightbox.previous": "Précédent",
"limited_account_hint.action": "Afficher le profil quand même",
"limited_account_hint.title": "Ce profil a été masqué par la modération de {domain}.",
"link_preview.author": "Par {name}",
+ "link_preview.more_from_author": "Plus via {name}",
+ "link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}",
"lists.account.add": "Ajouter à la liste",
"lists.account.remove": "Supprimer de la liste",
"lists.delete": "Supprimer la liste",
@@ -425,7 +455,7 @@
"lists.subheading": "Vos listes",
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
"loading_indicator.label": "Chargement…",
- "media_gallery.toggle_visible": "{number, plural, one {Cacher l’image} other {Cacher les images}}",
+ "media_gallery.hide": "Masquer",
"moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous l'avez déplacé à {movedToAccount}.",
"mute_modal.hide_from_notifications": "Cacher des notifications",
"mute_modal.hide_options": "Masquer les options",
@@ -437,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
"navigation_bar.about": "À propos",
+ "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Ouvrir dans l’interface avancée",
"navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Marque-pages",
@@ -453,6 +484,7 @@
"navigation_bar.follows_and_followers": "Abonnements et abonnés",
"navigation_bar.lists": "Listes",
"navigation_bar.logout": "Déconnexion",
+ "navigation_bar.moderation": "Modération",
"navigation_bar.mutes": "Comptes masqués",
"navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans l’interface classique.",
"navigation_bar.personal": "Personnel",
@@ -463,14 +495,36 @@
"navigation_bar.security": "Sécurité",
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}",
+ "notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}",
+ "notification.admin.report_account_other": "{name} a signalé {count, plural, one {un message} other {# messages}} depuis {target}",
+ "notification.admin.report_statuses": "{name} a signalé {target} pour {category}",
+ "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.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",
"notification.follow": "{name} vous suit",
+ "notification.follow.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont abonné à votre compte",
"notification.follow_request": "{name} a demandé à vous suivre",
- "notification.mention": "{name} vous a mentionné·e :",
+ "notification.follow_request.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} ont demandé à vous suivre",
+ "notification.label.mention": "Mention",
+ "notification.label.private_mention": "Mention privée",
+ "notification.label.private_reply": "Répondre en privé",
+ "notification.label.reply": "Réponse",
+ "notification.mention": "Mention",
+ "notification.moderation-warning.learn_more": "En savoir plus",
+ "notification.moderation_warning": "Vous avez reçu un avertissement de modération",
+ "notification.moderation_warning.action_delete_statuses": "Certains de vos messages ont été supprimés.",
+ "notification.moderation_warning.action_disable": "Votre compte a été désactivé.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Certains de vos messages ont été marqués comme sensibles.",
+ "notification.moderation_warning.action_none": "Votre compte a reçu un avertissement de modération.",
+ "notification.moderation_warning.action_sensitive": "Vos messages seront désormais marqués comme sensibles.",
+ "notification.moderation_warning.action_silence": "Votre compte a été limité.",
+ "notification.moderation_warning.action_suspend": "Votre compte a été suspendu.",
"notification.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
"notification.reblog": "{name} a partagé votre message",
+ "notification.reblog.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont boosté votre message",
"notification.relationships_severance_event": "Connexions perdues avec {name}",
"notification.relationships_severance_event.account_suspension": "Un·e administrateur·rice de {from} a suspendu {target}, ce qui signifie que vous ne pourrez plus recevoir de mises à jour ou interagir avec lui.",
"notification.relationships_severance_event.domain_block": "Un·e administrateur·rice de {from} en a bloqué {target}, comprenant {followersCount} de vos abonné·e·s et {followingCount, plural, one {# compte} other {# comptes}} vous suivez.",
@@ -479,11 +533,27 @@
"notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié un message",
"notification_requests.accept": "Accepter",
+ "notification_requests.accept_multiple": "{count, plural, one {Accepter # requête …} other {Accepter # requêtes …}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accepter la requête} other {Accepter les requêtes}}",
+ "notification_requests.confirm_accept_multiple.message": "Vous êtes sur le point d'accepter {count, plural, one {une requête de notification} other {# requêtes de notification}}. Êtes-vous sûr de vouloir continuer ?",
+ "notification_requests.confirm_accept_multiple.title": "Accepter les requêtes de notification ?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Ignorer la requête} other {Ignorer les requêtes}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Vous êtes sur le point de rejeter {count, plural, one {une requête de notification} other {# requêtes de notification}}. Vous ne serez plus en mesure d’{count, plural, one {y} other {y}} accéder facilement, ultérieurement. Êtes-vous sûr de vouloir continuer ?",
+ "notification_requests.confirm_dismiss_multiple.title": "Rejeter les requêtes de notification ?",
"notification_requests.dismiss": "Rejeter",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Rejeter # requête …} other {Rejeter # requêtes …}}",
+ "notification_requests.edit_selection": "Modifier",
+ "notification_requests.exit_selection": "Fait",
+ "notification_requests.explainer_for_limited_account": "Les notifications en provenance de ce compte ont été filtrées car le compte a été limité par un modérateur.",
+ "notification_requests.explainer_for_limited_remote_account": "Les notifications en provenance de ce compte ont été filtrées car le compte ou le serveur dont il est issu a été limité par un modérateur.",
+ "notification_requests.maximize": "Agrandir",
+ "notification_requests.minimize_banner": "Réduire la bannière des notifications filtrées",
"notification_requests.notifications_from": "Notifications de {name}",
"notification_requests.title": "Notifications filtrées",
+ "notification_requests.view": "Afficher les notifications",
"notifications.clear": "Effacer les notifications",
"notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications ?",
+ "notifications.clear_title": "Effacer les notifications ?",
"notifications.column_settings.admin.report": "Nouveaux signalements :",
"notifications.column_settings.admin.sign_up": "Nouvelles inscriptions :",
"notifications.column_settings.alert": "Notifications du navigateur",
@@ -515,15 +585,23 @@
"notifications.permission_denied": "Impossible d’activer les notifications de bureau car l’autorisation a été refusée.",
"notifications.permission_denied_alert": "Les notifications de bureau ne peuvent pas être activées, car l’autorisation du navigateur a été refusée avant",
"notifications.permission_required": "Les notifications de bureau ne sont pas disponibles car l’autorisation requise n’a pas été accordée.",
+ "notifications.policy.accept": "Accepter",
+ "notifications.policy.accept_hint": "Afficher dans les notifications",
+ "notifications.policy.drop": "Ignorer",
+ "notifications.policy.drop_hint": "Expulser vers le vide, pour ne plus jamais les revoir",
+ "notifications.policy.filter": "Filtrer",
+ "notifications.policy.filter_hint": "Envoyer à la boîte de réception des notifications filtrées",
+ "notifications.policy.filter_limited_accounts_hint": "Limités par les modérateur·rice·s du serveur",
+ "notifications.policy.filter_limited_accounts_title": "Comptes modérés",
"notifications.policy.filter_new_accounts.hint": "Créés au cours des derniers {days, plural, one {un jour} other {# jours}}",
"notifications.policy.filter_new_accounts_title": "Nouveaux comptes",
"notifications.policy.filter_not_followers_hint": "Incluant les personnes qui vous suivent depuis moins de {days, plural, one {un jour} other {# jours}}",
"notifications.policy.filter_not_followers_title": "Personnes qui ne vous suivent pas",
"notifications.policy.filter_not_following_hint": "Jusqu'à ce que vous les validiez manuellement",
"notifications.policy.filter_not_following_title": "Personnes que vous ne suivez pas",
- "notifications.policy.filter_private_mentions_hint": "Filtré sauf si c'est en réponse à une mention de vous ou si vous suivez l'expéditeur",
+ "notifications.policy.filter_private_mentions_hint": "Filtrées sauf si c'est en réponse à l'une de vos mentions ou si vous suivez l'expéditeur·ice",
"notifications.policy.filter_private_mentions_title": "Mentions privées non sollicitées",
- "notifications.policy.title": "Filtrer les notifications de…",
+ "notifications.policy.title": "Gestion des notifications des …",
"notifications_permission_banner.enable": "Activer les notifications de bureau",
"notifications_permission_banner.how_to_control": "Pour recevoir des notifications lorsque Mastodon n’est pas ouvert, activez les notifications du bureau. Vous pouvez contrôler précisément quels types d’interactions génèrent des notifications de bureau via le bouton {icon} ci-dessus une fois qu’elles sont activées.",
"notifications_permission_banner.title": "Toujours au courant",
@@ -647,12 +725,16 @@
"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 suivez ce compte. Désabonnez-vous pour ne plus en voir les messages sur votre fil principal.",
+ "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_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",
"report_notification.categories.other": "Autre",
+ "report_notification.categories.other_sentence": "autre",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "indésirable",
"report_notification.categories.violation": "Infraction aux règles du serveur",
+ "report_notification.categories.violation_sentence": "infraction de règle",
"report_notification.open": "Ouvrir le signalement",
"search.no_recent_searches": "Aucune recherche récente",
"search.placeholder": "Rechercher",
@@ -680,8 +762,11 @@
"server_banner.about_active_users": "Personnes utilisant ce serveur au cours des 30 derniers jours (Comptes actifs mensuellement)",
"server_banner.active_users": "comptes actifs",
"server_banner.administered_by": "Administré par :",
+ "server_banner.is_one_of_many": "{domain} est l'un des nombreux serveurs Mastodon indépendants que vous pouvez utiliser pour participer au fédiverse.",
"server_banner.server_stats": "Statistiques du serveur :",
"sign_in_banner.create_account": "Créer un compte",
+ "sign_in_banner.follow_anyone": "Suivez n'importe qui à travers le fédivers et affichez tout dans un ordre chronologique. Ni algorithmes, ni publicités, ni appâts à clics en perspective.",
+ "sign_in_banner.mastodon_is": "Mastodon est le meilleur moyen de suivre ce qui se passe.",
"sign_in_banner.sign_in": "Se connecter",
"sign_in_banner.sso_redirect": "Se connecter ou s’inscrire",
"status.admin_account": "Ouvrir l’interface de modération pour @{name}",
@@ -691,6 +776,7 @@
"status.bookmark": "Ajouter aux marque-pages",
"status.cancel_reblog_private": "Annuler le partage",
"status.cannot_reblog": "Ce message ne peut pas être partagé",
+ "status.continued_thread": "Suite du fil",
"status.copy": "Copier le lien vers le message",
"status.delete": "Supprimer",
"status.detailed_status": "Vue détaillée de la conversation",
@@ -699,17 +785,15 @@
"status.edit": "Modifier",
"status.edited": "Dernière modification le {date}",
"status.edited_x_times": "Modifié {count, plural, one {{count} fois} other {{count} fois}}",
- "status.embed": "Intégrer",
+ "status.embed": "Obtenir le code d'intégration",
"status.favourite": "Ajouter aux favoris",
"status.favourites": "{count, plural, one {favori} other {favoris}}",
"status.filter": "Filtrer ce message",
- "status.filtered": "Filtré",
- "status.hide": "Masquer le message",
"status.history.created": "créé par {name} {date}",
"status.history.edited": "modifié par {name} {date}",
"status.load_more": "Charger plus",
"status.media.open": "Cliquez pour ouvrir",
- "status.media.show": "Cliquez pour voir",
+ "status.media.show": "Cliquer pour afficher",
"status.media_hidden": "Média caché",
"status.mention": "Mentionner @{name}",
"status.more": "Plus",
@@ -726,16 +810,14 @@
"status.reblogs.empty": "Personne n’a encore partagé ce message. Lorsque quelqu’un le fera, il apparaîtra ici.",
"status.redraft": "Supprimer et réécrire",
"status.remove_bookmark": "Retirer des marque-pages",
+ "status.replied_in_thread": "A répondu dans un fil de discussion",
"status.replied_to": "En réponse à {name}",
"status.reply": "Répondre",
"status.replyAll": "Répondre au fil",
"status.report": "Signaler @{name}",
"status.sensitive_warning": "Contenu sensible",
"status.share": "Partager",
- "status.show_filter_reason": "Afficher quand même",
- "status.show_less": "Replier",
"status.show_less_all": "Tout replier",
- "status.show_more": "Déplier",
"status.show_more_all": "Tout déplier",
"status.show_original": "Afficher l’original",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -754,10 +836,6 @@
"time_remaining.minutes": "{number, plural, one {# minute restante} other {# minutes restantes}}",
"time_remaining.moments": "Encore quelques instants",
"time_remaining.seconds": "{number, plural, one {# seconde restante} other {# secondes restantes}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} des autres serveurs ne sont pas affichés.",
- "timeline_hint.resources.followers": "Les abonnés",
- "timeline_hint.resources.follows": "Les abonnements",
- "timeline_hint.resources.statuses": "Messages plus anciens",
"trends.counter_by_accounts": "{count, plural, one {{counter} pers.} other {{counter} pers.}} sur {days, plural, one {les dernières 24h} other {les {days} derniers jours}}",
"trends.trending_now": "Tendance en ce moment",
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",
diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json
index 11b11ff819f..e7723c95337 100644
--- a/app/javascript/mastodon/locales/fy.json
+++ b/app/javascript/mastodon/locales/fy.json
@@ -11,7 +11,7 @@
"about.not_available": "Dizze ynformaasje is troch dizze server net iepenbier makke.",
"about.powered_by": "Desintralisearre sosjale media, mooglik makke troch {mastodon}",
"about.rules": "Serverrigels",
- "account.account_note_header": "Opmerking",
+ "account.account_note_header": "Persoanlike opmerking",
"account.add_or_remove_from_list": "Tafoegje oan of fuortsmite út listen",
"account.badges.bot": "Automatisearre",
"account.badges.group": "Groep",
@@ -19,7 +19,6 @@
"account.block_domain": "Domein {domain} blokkearje",
"account.block_short": "Blokkearje",
"account.blocked": "Blokkearre",
- "account.browse_more_on_origin_server": "Mear op it orizjinele profyl besjen",
"account.cancel_follow_request": "Folchfersyk annulearje",
"account.copy": "Keppeling nei profyl kopiearje",
"account.direct": "Privee fermelde @{name}",
@@ -98,6 +97,8 @@
"block_modal.title": "Brûker blokkearje?",
"block_modal.you_wont_see_mentions": "Jo sjogge gjin berjochten mear dy’t dizze account fermelde.",
"boost_modal.combo": "Jo kinne op {combo} drukke om dit de folgjende kear oer te slaan",
+ "boost_modal.reblog": "Berjocht booste?",
+ "boost_modal.undo_reblog": "Berjocht net langer booste?",
"bundle_column_error.copy_stacktrace": "Flaterrapport kopiearje",
"bundle_column_error.error.body": "De opfrege side koe net werjûn wurde. It kin wêze troch in flater yn ús koade, of in probleem mei browserkompatibiliteit.",
"bundle_column_error.error.title": "Oh nee!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Ynhâldswarskôging (opsjoneel)",
"confirmation_modal.cancel": "Annulearje",
"confirmations.block.confirm": "Blokkearje",
- "confirmations.cancel_follow_request.confirm": "Fersyk annulearje",
- "confirmations.cancel_follow_request.message": "Binne jo wis dat jo jo fersyk om {name} te folgjen annulearje wolle?",
"confirmations.delete.confirm": "Fuortsmite",
"confirmations.delete.message": "Binne jo wis dat jo dit berjocht fuortsmite wolle?",
+ "confirmations.delete.title": "Berjocht fuortsmite?",
"confirmations.delete_list.confirm": "Fuortsmite",
"confirmations.delete_list.message": "Binne jo wis dat jo dizze list foar permanint fuortsmite wolle?",
+ "confirmations.delete_list.title": "List fuortsmite?",
"confirmations.discard_edit_media.confirm": "Fuortsmite",
"confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?",
- "confirmations.domain_block.confirm": "Server blokkearje",
- "confirmations.domain_block.message": "Binne jo echt wis dat jo alles fan {domain} negearje wolle? Yn de measte gefallen is it blokkearjen of negearjen fan in pear spesifike persoanen genôch en better. Jo sille gjin berjochten fan dizze server op iepenbiere tiidlinen sjen of yn jo meldingen. Jo folgers fan dizze server wurde fuortsmiten.",
"confirmations.edit.confirm": "Bewurkje",
"confirmations.edit.message": "Troch no te bewurkjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
+ "confirmations.edit.title": "Berjocht oerskriuwe?",
"confirmations.logout.confirm": "Ofmelde",
"confirmations.logout.message": "Binne jo wis dat jo ôfmelde wolle?",
+ "confirmations.logout.title": "Ofmelde?",
"confirmations.mute.confirm": "Negearje",
"confirmations.redraft.confirm": "Fuortsmite en opnij opstelle",
"confirmations.redraft.message": "Binne jo wis dat jo dit berjocht fuortsmite en opnij opstelle wolle? Favoriten en boosts geane dan ferlern en reaksjes op it oarspronklike berjocht reitsje jo kwyt.",
+ "confirmations.redraft.title": "Berjocht fuortsmite en opnij opstelle?",
"confirmations.reply.confirm": "Reagearje",
"confirmations.reply.message": "Troch no te reagearjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
+ "confirmations.reply.title": "Berjocht oerskriuwe?",
"confirmations.unfollow.confirm": "Net mear folgje",
"confirmations.unfollow.message": "Binne jo wis dat jo {name} net mear folgje wolle?",
+ "confirmations.unfollow.title": "Brûker net mear folgje?",
+ "content_warning.hide": "Berjocht ferstopje",
+ "content_warning.show": "Dochs toane",
"conversation.delete": "Petear fuortsmite",
"conversation.mark_as_read": "As lêzen markearje",
"conversation.open": "Petear toane",
@@ -226,7 +232,10 @@
"domain_pill.username": "Brûkersnamme",
"domain_pill.whats_in_a_handle": "Wat is in fediverse-adres?",
"domain_pill.who_they_are": "Omdat jo oan in fediverse-adres sjen kinne hoe’t ien hjit en op hokker server dy sit, kinne jo mei minsken op it troch ActivityPub oandreaune sosjale web (fediverse) kommunisearje.",
+ "domain_pill.who_you_are": "Omdat jo oan in fediverse-adres sjen kinne hoe’t jo hjitte en op hokker server jo sitte, kinne jo mei minsken op it troch ActivityPub oandreaune sosjale web (fediverse) kommunisearje.",
"domain_pill.your_handle": "Jo fediverse-adres:",
+ "domain_pill.your_server": "Jo digitale thús, wer't al jo berjochten stean. Is dizze server dochs net nei jo winsk? Dan kinne jo op elk momint nei in oare server ferhúzje en ek jo folgers oerbringe.",
+ "domain_pill.your_username": "Jo unike identifikaasje-adres op dizze server. It is mooglik dat der brûkers mei deselde brûkersnamme op ferskate servers te finen binne.",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Sa komt it der út te sjen:",
"emoji_button.activity": "Aktiviteiten",
@@ -263,6 +272,7 @@
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "Jo hawwe noch gjin inkelde list. Wannear’t jo der ien oanmakke hawwe, falt dat hjir te sjen.",
"empty_column.mutes": "Jo hawwe noch gjin brûkers negearre.",
+ "empty_column.notification_requests": "Hielendal leech! Der is hjir neat. Wannear’t jo nije meldingen ûntfange, ferskine dizze hjir neffens jo ynstellingen.",
"empty_column.notifications": "Jo hawwe noch gjin meldingen. Ynteraksjes mei oare minsken sjogge jo hjir.",
"empty_column.public": "Der is hjir neat! Skriuw eat publyklik, of folgje sels brûkers fan oare servers om it hjir te foljen",
"error.unexpected_crash.explanation": "Troch in bug in ús koade of in probleem mei de komptabiliteit fan jo browser, koe dizze side net toand wurde.",
@@ -293,6 +303,8 @@
"filter_modal.select_filter.subtitle": "In besteande kategory brûke of in nije oanmeitsje",
"filter_modal.select_filter.title": "Dit berjocht filterje",
"filter_modal.title.status": "In berjocht filterje",
+ "filter_warning.matches_filter": "Komt oerien mei filter ‘{title}’",
+ "filtered_notifications_banner.pending_requests": "Fan {count, plural, =0 {net ien} one {ien persoan} other {# persoanen}} dy’t jo mooglik kinne",
"filtered_notifications_banner.title": "Filtere meldingen",
"firehose.all": "Alles",
"firehose.local": "Dizze server",
@@ -302,6 +314,8 @@
"follow_requests.unlocked_explanation": "Ek al is jo account net besletten, de meiwurkers fan {domain} tinke dat jo miskien de folgjende folchfersiken hânmjittich kontrolearje.",
"follow_suggestions.curated_suggestion": "Spesjaal selektearre",
"follow_suggestions.dismiss": "Net mear werjaan",
+ "follow_suggestions.featured_longer": "Hânmjittich selektearre troch it team fan {domain}",
+ "follow_suggestions.friends_of_friends_longer": "Populêr ûnder minsken dy’t jo folgje",
"follow_suggestions.hints.featured": "Dit profyl is hânmjittich troch it {domain}-team selektearre.",
"follow_suggestions.hints.friends_of_friends": "Dit profyl is populêr ûnder de minsken dy’t jo folgje.",
"follow_suggestions.hints.most_followed": "Dit profyl is ien fan de meast folge op {domain}.",
@@ -309,6 +323,8 @@
"follow_suggestions.hints.similar_to_recently_followed": "Dit profyl is hast lyk oan de profilen dy’t jo koartlyn folge hawwe.",
"follow_suggestions.personalized_suggestion": "Personalisearre suggestje",
"follow_suggestions.popular_suggestion": "Populêre suggestje",
+ "follow_suggestions.popular_suggestion_longer": "Populêr op {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Fergelykber mei accounts dy’t jo sûnt koart folgje",
"follow_suggestions.view_all": "Alles werjaan",
"follow_suggestions.who_to_follow": "Wa te folgjen",
"followed_tags": "Folge hashtags",
@@ -337,6 +353,14 @@
"hashtag.follow": "Hashtag folgje",
"hashtag.unfollow": "Hashtag ûntfolgje",
"hashtags.and_other": "…en {count, plural, one {}other {# mear}}",
+ "hints.profiles.followers_may_be_missing": "Folgers foar dit profyl kinne ûntbrekke.",
+ "hints.profiles.follows_may_be_missing": "De folgers foar dit profyl kinne ûntbrekke.",
+ "hints.profiles.posts_may_be_missing": "Der ûntbrekke mooglik berjochten fan dit profyl.",
+ "hints.profiles.see_more_followers": "Besjoch mear folgers op {domain}",
+ "hints.profiles.see_more_follows": "Besjoch mear folge accounts op {domain}",
+ "hints.profiles.see_more_posts": "Besjoch mear berjochten op {domain}",
+ "hints.threads.replies_may_be_missing": "Antwurden fan oare servers kinne ûntbrekke.",
+ "hints.threads.see_more": "Besjoch mear reaksjes op {domain}",
"home.column_settings.show_reblogs": "Boosts toane",
"home.column_settings.show_replies": "Reaksjes toane",
"home.hide_announcements": "Meidielingen ferstopje",
@@ -344,6 +368,17 @@
"home.pending_critical_update.link": "Fernijingen besjen",
"home.pending_critical_update.title": "Kritike befeiligingsfernijing beskikber!",
"home.show_announcements": "Meidielingen toane",
+ "ignore_notifications_modal.disclaimer": "Mastodon kin brûkers net ynformearje dat jo harren meldingen negearre hawwe. Meldingen negearje sil net foarkomme dat de berjochten sels ferstjoerd wurde.",
+ "ignore_notifications_modal.filter_instead": "Yn stee derfan filterje",
+ "ignore_notifications_modal.filter_to_act_users": "Jo binne noch hieltyd yn steat om folchfersiken goed- of ôf te karren en om brûkers te rapportearjen",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filterjen foarkomt potinsjele betizing",
+ "ignore_notifications_modal.filter_to_review_separately": "Jo kinne filtere meldingen ôfsûnderlik beoardiele",
+ "ignore_notifications_modal.ignore": "Meldingen negearje",
+ "ignore_notifications_modal.limited_accounts_title": "Meldingen fan beheinde accounts negearje?",
+ "ignore_notifications_modal.new_accounts_title": "Meldingen fan nije accounts negearje?",
+ "ignore_notifications_modal.not_followers_title": "Meldingen negearje fan minsken dy’t jo net folgje?",
+ "ignore_notifications_modal.not_following_title": "Meldingen negearje fan minsken dy’t josels net folgje?",
+ "ignore_notifications_modal.private_mentions_title": "Meldingen negearje fan net frege priveeberjochten?",
"interaction_modal.description.favourite": "Jo kinne mei in Mastodon-account dit berjocht as favoryt markearje, om dy brûker witte te litten dat jo it berjocht wurdearje en om it te bewarjen.",
"interaction_modal.description.follow": "Jo kinne mei in Mastodon-account {name} folgje, om sa harren berjochten op jo starttiidline te ûntfangen.",
"interaction_modal.description.reblog": "Jo kinne mei in Mastodon-account dit berjocht booste, om it sa mei jo folgers te dielen.",
@@ -397,13 +432,13 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "Nei boppe yn list ferpleatse",
"lightbox.close": "Slute",
- "lightbox.compress": "Ofbylding passend werjaan",
- "lightbox.expand": "Ofbylding grut werjaan",
"lightbox.next": "Folgjende",
"lightbox.previous": "Foarige",
"limited_account_hint.action": "Profyl dochs besjen",
"limited_account_hint.title": "Dit profyl is troch de behearders fan {domain} ferstoppe.",
"link_preview.author": "Troch {name}",
+ "link_preview.more_from_author": "Mear fan {name}",
+ "link_preview.shares": "{count, plural, one {{counter} berjocht} other {{counter} berjochten}}",
"lists.account.add": "Oan list tafoegje",
"lists.account.remove": "Ut list fuortsmite",
"lists.delete": "List fuortsmite",
@@ -420,12 +455,18 @@
"lists.subheading": "Jo listen",
"load_pending": "{count, plural, one {# nij item} other {# nije items}}",
"loading_indicator.label": "Lade…",
- "media_gallery.toggle_visible": "{number, plural, one {ôfbylding ferstopje} other {ôfbyldingen ferstopje}}",
"moved_to_account_banner.text": "Omdat jo nei {movedToAccount} ferhuze binne is jo account {disabledAccount} op dit stuit útskeakele.",
+ "mute_modal.hide_from_notifications": "Meldingen ferstopje",
"mute_modal.hide_options": "Opsjes ferstopje",
"mute_modal.indefinite": "Oant ik se net mear negearje",
"mute_modal.show_options": "Opsjes toane",
+ "mute_modal.they_can_mention_and_follow": "De persoan kin jo fermelde en folgje, mar jo sjogge neat mear fan dizze persoan.",
+ "mute_modal.they_wont_know": "Se krije net te witten dat se negearre wurde.",
+ "mute_modal.title": "Brûker negearje?",
+ "mute_modal.you_wont_see_mentions": "Jo sjogge gjin berjochten mear dy’t dizze account fermelde.",
+ "mute_modal.you_wont_see_posts": "De persoan kin jo berjochten noch hieltyd sjen, mar jo sjogge harren berjochten net mear.",
"navigation_bar.about": "Oer",
+ "navigation_bar.administration": "Behear",
"navigation_bar.advanced_interface": "Yn avansearre webomjouwing iepenje",
"navigation_bar.blocks": "Blokkearre brûkers",
"navigation_bar.bookmarks": "Blêdwizers",
@@ -442,6 +483,7 @@
"navigation_bar.follows_and_followers": "Folgers en folgjenden",
"navigation_bar.lists": "Listen",
"navigation_bar.logout": "Ofmelde",
+ "navigation_bar.moderation": "Moderaasje",
"navigation_bar.mutes": "Negearre brûkers",
"navigation_bar.opened_in_classic_interface": "Berjochten, accounts en oare spesifike siden, wurde standert iepene yn de klassike webinterface.",
"navigation_bar.personal": "Persoanlik",
@@ -452,28 +494,71 @@
"navigation_bar.security": "Befeiliging",
"not_signed_in_indicator.not_signed_in": "Jo moatte oanmelde om tagong ta dizze ynformaasje te krijen.",
"notification.admin.report": "{name} hat {target} rapportearre",
+ "notification.admin.report_account": "{name} rapportearre {count, plural, one {in berjocht} other {# berjochten}} fan {target} foar {category}",
+ "notification.admin.report_account_other": "{name} rapportearre {count, plural, one {in berjocht} other {# berjochten}} fan {target}",
+ "notification.admin.report_statuses": "{name} rapportearre {target} foar {category}",
+ "notification.admin.report_statuses_other": "{name} hat {target} rapportearre",
"notification.admin.sign_up": "{name} hat harren registrearre",
+ "notification.admin.sign_up.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe harren registrearre",
"notification.favourite": "{name} hat jo berjocht as favoryt markearre",
+ "notification.favourite.name_and_others_with_link": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe jo berjocht as favoryt markearre",
"notification.follow": "{name} folget dy",
+ "notification.follow.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe jo folge",
"notification.follow_request": "{name} hat dy in folchfersyk stjoerd",
- "notification.mention": "{name} hat dy fermeld",
+ "notification.follow_request.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe frege om jo te folgjen",
+ "notification.label.mention": "Fermelding",
+ "notification.label.private_mention": "Priveeberjocht",
+ "notification.label.private_reply": "Priveereaksje",
+ "notification.label.reply": "Beäntwurdzje",
+ "notification.mention": "Fermelding",
+ "notification.moderation-warning.learn_more": "Mear ynfo",
+ "notification.moderation_warning": "Jo hawwe in moderaasje-warskôging ûntfongen",
+ "notification.moderation_warning.action_delete_statuses": "Guon fan jo berjochten binne fuortsmiten.",
+ "notification.moderation_warning.action_disable": "Jo account is útskeakele.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Guon fan jo berjochten binne as gefoelich markearre.",
+ "notification.moderation_warning.action_none": "Jo account hat in moderaasje-warskôging ûntfongen.",
+ "notification.moderation_warning.action_sensitive": "Jo berjochten wurde fan no ôf as gefoelich markearre.",
+ "notification.moderation_warning.action_silence": "Jo account is beheind.",
+ "notification.moderation_warning.action_suspend": "Jo account is útsteld.",
"notification.own_poll": "Jo poll is beëinige",
- "notification.poll": "In enkête dêr’t jo yn stimd hawwe is beëinige",
+ "notification.poll": "In enkête dêr’t jo oan meidien hawwe is beëinige",
"notification.reblog": "{name} hat jo berjocht boost",
+ "notification.reblog.name_and_others_with_link": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe jo berjocht boost",
+ "notification.relationships_severance_event": "Ferlerne ferbiningen mei {name}",
+ "notification.relationships_severance_event.account_suspension": "In behearder fan {from} hat {target} útsteld, wat betsjut dat jo gjin updates mear fan harren ûntfange kinne of mei harren kommunisearje kinne.",
+ "notification.relationships_severance_event.domain_block": "In behearder fan {from} hat {target} blokkearre, ynklusyf {followersCount} fan jo folgers en {followingCount, plural, one {# account} other {# accounts}} dy’t jo folgje.",
"notification.relationships_severance_event.learn_more": "Mear ynfo",
+ "notification.relationships_severance_event.user_domain_block": "Jo hawwe {target} blokkearre, wêrmei’t jo {followersCount} fan jo folgers en {followingCount, plural, one {# account} other {# accounts}} dy’t jo folgje ferlern binne.",
"notification.status": "{name} hat in berjocht pleatst",
"notification.update": "{name} hat in berjocht bewurke",
"notification_requests.accept": "Akseptearje",
+ "notification_requests.accept_multiple": "{count, plural, one {# fersyk akseptearje…} other {# fersiken akseptearje…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Fersyk akseptearje} other {Fersiken akseptearje}}",
+ "notification_requests.confirm_accept_multiple.message": "Jo steane op it punt om {count, plural, one {ien meldingsfersyk} other {# meldingsfersiken}} te akseptearjen. Binne jo wis dat jo trochgean wolle?",
+ "notification_requests.confirm_accept_multiple.title": "Meldingsfersiken akseptearje?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Fersyk ôfwize} other {Fersiken ôfwize}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Jo steane op it punt om {count, plural, one {ien meldingsfersyk} other {# meldingsfersiken}} ôf te wizen. Jo sille net yn steat wêze om {count, plural, one {hier} other {hier}} wer maklik tagong ta te krijen. Wolle jo trochgean?",
+ "notification_requests.confirm_dismiss_multiple.title": "Meldingsfersiken ôfwize?",
"notification_requests.dismiss": "Ofwize",
+ "notification_requests.dismiss_multiple": "{count, plural, one {# fersyk ôfwize…} other {# fersiken ôfwize…}}",
+ "notification_requests.edit_selection": "Bewurkje",
+ "notification_requests.exit_selection": "Klear",
+ "notification_requests.explainer_for_limited_account": "Meldingen fan dizze account binne filtere, omdat dizze account troch in moderator beheind is.",
+ "notification_requests.explainer_for_limited_remote_account": "Meldingen fan dizze account binne filtere, omdat dizze account of harren server troch in moderator beheind is.",
+ "notification_requests.maximize": "Maksimalisearje",
+ "notification_requests.minimize_banner": "Banner mei filtere meldingen minimalisearje",
"notification_requests.notifications_from": "Meldingen fan {name}",
"notification_requests.title": "Filtere meldingen",
+ "notification_requests.view": "Meldingen besjen",
"notifications.clear": "Meldingen wiskje",
"notifications.clear_confirmation": "Binne jo wis dat jo al jo meldingen permanint fuortsmite wolle?",
+ "notifications.clear_title": "Meldingen fuortsmite?",
"notifications.column_settings.admin.report": "Nije rapportaazjes:",
"notifications.column_settings.admin.sign_up": "Nije registraasjes:",
"notifications.column_settings.alert": "Desktopmeldingen",
"notifications.column_settings.favourite": "Favoriten:",
"notifications.column_settings.filter_bar.advanced": "Alle kategoryen toane",
+ "notifications.column_settings.filter_bar.category": "Flugge filterbalke",
"notifications.column_settings.follow": "Nije folgers:",
"notifications.column_settings.follow_request": "Nij folchfersyk:",
"notifications.column_settings.mention": "Fermeldingen:",
@@ -499,6 +584,23 @@
"notifications.permission_denied": "Desktopmeldingen binne net beskikber, omdat in eardere browsertastimming wegere waard",
"notifications.permission_denied_alert": "Desktopmeldingen kinne net ynskeakele wurde, omdat in eardere browsertastimming wegere waard",
"notifications.permission_required": "Desktopmeldingen binne net beskikber, omdat de nedige tastimming net ferliend is.",
+ "notifications.policy.accept": "Akseptearje",
+ "notifications.policy.accept_hint": "Yn meldingen toane",
+ "notifications.policy.drop": "Negearje",
+ "notifications.policy.drop_hint": "Permanint fuortsmite",
+ "notifications.policy.filter": "Filter",
+ "notifications.policy.filter_hint": "Nei filtere ynboks foar meldingen ferstjoere",
+ "notifications.policy.filter_limited_accounts_hint": "Beheind troch servermoderatoren",
+ "notifications.policy.filter_limited_accounts_title": "Moderearre accounts",
+ "notifications.policy.filter_new_accounts.hint": "Yn de ôfrûne {days, plural, one {dei} other {# dagen}} registrearre",
+ "notifications.policy.filter_new_accounts_title": "Nije accounts",
+ "notifications.policy.filter_not_followers_hint": "Ynklusyf minsken dy’t jo koarter as {days, plural, one {dei} other {# dagen}} folgje",
+ "notifications.policy.filter_not_followers_title": "Minsken dy’t jo net folgje",
+ "notifications.policy.filter_not_following_hint": "Oant jo se hânmjittich goedkarre",
+ "notifications.policy.filter_not_following_title": "Minsken dy’t josels net folgje",
+ "notifications.policy.filter_private_mentions_hint": "Unsichtber útsein it in antwurd is op in priveeberjocht fan jo of wannear’t jo de ôfstjoerder folgje",
+ "notifications.policy.filter_private_mentions_title": "Net frege priveeberjochten",
+ "notifications.policy.title": "Meldingen beheare fan…",
"notifications_permission_banner.enable": "Desktopmeldingen ynskeakelje",
"notifications_permission_banner.how_to_control": "Om meldingen te ûntfangen wannear’t Mastodon net iepen stiet. Jo kinne krekt bepale hokker soarte fan ynteraksjes wol of gjin desktopmeldingen jouwe fia de boppesteande {icon} knop.",
"notifications_permission_banner.title": "Mis neat",
@@ -625,9 +727,13 @@
"report.unfollow_explanation": "Jo folgje dizze account. Om harren berjochten net mear op jo starttiidline te sjen, kinne jo dyjinge ûntfolgje.",
"report_notification.attached_statuses": "{count, plural, one {{count} berjocht} other {{count} berjochten}} tafoege",
"report_notification.categories.legal": "Juridysk",
+ "report_notification.categories.legal_sentence": "yllegale ynhâld",
"report_notification.categories.other": "Oars",
+ "report_notification.categories.other_sentence": "oars",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Skeinde regels",
+ "report_notification.categories.violation_sentence": "skeinde regels",
"report_notification.open": "Rapport iepenje",
"search.no_recent_searches": "Gjin resinte sykopdrachten",
"search.placeholder": "Sykje",
@@ -655,8 +761,11 @@
"server_banner.about_active_users": "Oantal brûkers yn de ôfrûne 30 dagen (MAU)",
"server_banner.active_users": "warbere brûkers",
"server_banner.administered_by": "Beheard troch:",
+ "server_banner.is_one_of_many": "{domain} is ien fan de protte ôfhinklike Mastodon-servers dy’t jo brûke kinne om diel te nimmen oan de fediverse.",
"server_banner.server_stats": "Serverstatistiken:",
"sign_in_banner.create_account": "Account registrearje",
+ "sign_in_banner.follow_anyone": "Folgje elkenien yn de fediverse en sjoch it allegearre yn gronologyske folchoarder. Gjin algoritmen, advertinsjes of clickbaits.",
+ "sign_in_banner.mastodon_is": "Mastodon is de beste manier om wat der bart by te hâlden.",
"sign_in_banner.sign_in": "Oanmelde",
"sign_in_banner.sso_redirect": "Oanmelde of Registrearje",
"status.admin_account": "Moderaasje-omjouwing fan @{name} iepenje",
@@ -672,12 +781,11 @@
"status.direct": "Privee fermelde @{name}",
"status.direct_indicator": "Priveefermelding",
"status.edit": "Bewurkje",
+ "status.edited": "Lêst bywurke op {date}",
"status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke",
- "status.embed": "Ynslute",
"status.favourite": "Favoryt",
+ "status.favourites": "{count, plural, one {favoryt} other {favoriten}}",
"status.filter": "Dit berjocht filterje",
- "status.filtered": "Filtere",
- "status.hide": "Berjocht ferstopje",
"status.history.created": "{name} makke dit {date}",
"status.history.edited": "{name} bewurke dit {date}",
"status.load_more": "Mear lade",
@@ -695,6 +803,7 @@
"status.reblog": "Booste",
"status.reblog_private": "Boost nei oarspronklike ûntfangers",
"status.reblogged_by": "{name} hat boost",
+ "status.reblogs": "{count, plural, one {boost} other {boosts}}",
"status.reblogs.empty": "Net ien hat dit berjocht noch boost. Wannear’t ien dit docht, falt dat hjir te sjen.",
"status.redraft": "Fuortsmite en opnij opstelle",
"status.remove_bookmark": "Blêdwizer fuortsmite",
@@ -704,10 +813,7 @@
"status.report": "@{name} rapportearje",
"status.sensitive_warning": "Gefoelige ynhâld",
"status.share": "Diele",
- "status.show_filter_reason": "Dochs toane",
- "status.show_less": "Minder toane",
"status.show_less_all": "Alles minder toane",
- "status.show_more": "Mear toane",
"status.show_more_all": "Alles mear toane",
"status.show_original": "Orizjineel besjen",
"status.title.with_attachments": "{user} hat {attachmentCount, plural, one {ien bylage} other {{attachmentCount} bylagen}} tafoege",
@@ -726,10 +832,6 @@
"time_remaining.minutes": "{number, plural, one {# minút} other {# minuten}} te gean",
"time_remaining.moments": "Noch krekt efkes te gean",
"time_remaining.seconds": "{number, plural, one {# sekonde} other {# sekonden}} te gean",
- "timeline_hint.remote_resource_not_displayed": "{resource} fan oare servers wurde net toand.",
- "timeline_hint.resources.followers": "Folgers",
- "timeline_hint.resources.follows": "Folgjend",
- "timeline_hint.resources.statuses": "Aldere berjochten",
"trends.counter_by_accounts": "{count, plural, one {{counter} persoan} other {{counter} persoanen}} {days, plural, one {de ôfrûne dei} other {de ôfrûne {days} dagen}}",
"trends.trending_now": "Aktuele trends",
"ui.beforeunload": "Jo konsept giet ferlern wannear’t jo Mastodon ferlitte.",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 97dcc752b8c..e05adc27325 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -11,30 +11,33 @@
"about.not_available": "Níor cuireadh an t-eolas seo ar fáil ar an bhfreastalaí seo.",
"about.powered_by": "Meáin shóisialta díláraithe faoi chumhacht {mastodon}",
"about.rules": "Rialacha an fhreastalaí",
- "account.account_note_header": "Nóta",
+ "account.account_note_header": "Nóta pearsanta",
"account.add_or_remove_from_list": "Cuir Le nó Bain De na liostaí",
"account.badges.bot": "Bota",
"account.badges.group": "Grúpa",
"account.block": "Déan cosc ar @{name}",
"account.block_domain": "Bac ainm fearainn {domain}",
+ "account.block_short": "Bloc",
"account.blocked": "Bactha",
- "account.browse_more_on_origin_server": "Brabhsáil níos mó ar an phróifíl bhunaidh",
"account.cancel_follow_request": "Éirigh as iarratas leanta",
+ "account.copy": "Cóipeáil nasc chuig an bpróifíl",
+ "account.direct": "Luaigh @{name} go príobháideach",
"account.disable_notifications": "Éirigh as ag cuir mé in eol nuair bpostálann @{name}",
"account.domain_blocked": "Ainm fearainn bactha",
"account.edit_profile": "Cuir an phróifíl in eagar",
"account.enable_notifications": "Cuir mé in eol nuair bpostálann @{name}",
"account.endorse": "Cuir ar an phróifíl mar ghné",
"account.featured_tags.last_status_at": "Postáil is déanaí ar {date}",
- "account.featured_tags.last_status_never": "Níl postáil ar bith ann",
- "account.featured_tags.title": "Haischlib {name}",
+ "account.featured_tags.last_status_never": "Gan aon phoist",
+ "account.featured_tags.title": "Haischlib faoi thrácht {name}",
"account.follow": "Lean",
+ "account.follow_back": "Leanúint ar ais",
"account.followers": "Leantóirí",
"account.followers.empty": "Ní leanann éinne an t-úsáideoir seo fós.",
- "account.followers_counter": "{count, plural, one {Leantóir amháin} other {{counter} Leantóir}}",
+ "account.followers_counter": "{count, plural, one {{counter} leantóir} other {{counter} leantóirí}}",
"account.following": "Ag leanúint",
- "account.following_counter": "{count, plural, one {Ag leanúint cúntas amháin} other {Ag leanúint {counter} cúntas}}",
- "account.follows.empty": "Ní leanann an t-úsáideoir seo duine ar bith fós.",
+ "account.following_counter": "{count, plural, one {{counter} ag leanúint} other {{counter} ag leanúint}}",
+ "account.follows.empty": "Ní leanann an t-úsáideoir seo aon duine go fóill.",
"account.go_to_profile": "Téigh go dtí próifíl",
"account.hide_reblogs": "Folaigh moltaí ó @{name}",
"account.in_memoriam": "Cuimhneachán.",
@@ -42,11 +45,15 @@
"account.languages": "Athraigh teangacha foscríofa",
"account.link_verified_on": "Seiceáladh úinéireacht an naisc seo ar {date}",
"account.locked_info": "Tá an socrú príobháideachais don cuntas seo curtha go 'faoi ghlas'. Déanann an t-úinéir léirmheas ar cén daoine atá ceadaithe an cuntas leanúint.",
- "account.media": "Ábhair",
+ "account.media": "Meáin",
"account.mention": "Luaigh @{name}",
"account.moved_to": "Tá tugtha le fios ag {name} gurb é an cuntas nua atá acu ná:",
"account.mute": "Balbhaigh @{name}",
+ "account.mute_notifications_short": "Balbhaigh fógraí",
+ "account.mute_short": "Balbhaigh",
"account.muted": "Balbhaithe",
+ "account.mutual": "Frithpháirteach",
+ "account.no_bio": "Níor tugadh tuairisc.",
"account.open_original_page": "Oscail an leathanach bunaidh",
"account.posts": "Postálacha",
"account.posts_with_replies": "Postálacha agus freagraí",
@@ -55,13 +62,14 @@
"account.requested_follow": "D'iarr {name} ort do chuntas a leanúint",
"account.share": "Roinn próifíl @{name}",
"account.show_reblogs": "Taispeáin moltaí ó @{name}",
- "account.statuses_counter": "{count, plural, one {Postáil amháin} other {{counter} Postáil}}",
+ "account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} poist}}",
"account.unblock": "Bain bac de @{name}",
"account.unblock_domain": "Bain bac den ainm fearainn {domain}",
- "account.unblock_short": "Bain bac de",
+ "account.unblock_short": "Díbhlocáil",
"account.unendorse": "Ná chuir ar an phróifíl mar ghné",
"account.unfollow": "Ná lean a thuilleadh",
"account.unmute": "Díbhalbhaigh @{name}",
+ "account.unmute_notifications_short": "Díbhalbhaigh fógraí",
"account.unmute_short": "Díbhalbhaigh",
"account_note.placeholder": "Cliceáil chun nóta a chuir leis",
"admin.dashboard.daily_retention": "Ráta coinneála an úsáideora de réir an lae tar éis clárú",
@@ -69,6 +77,10 @@
"admin.dashboard.retention.average": "Meán",
"admin.dashboard.retention.cohort": "Mí cláraraithe",
"admin.dashboard.retention.cohort_size": "Úsáideoirí nua",
+ "admin.impact_report.instance_accounts": "Próifílí cuntais a scriosfadh sé seo",
+ "admin.impact_report.instance_followers": "Leanúna a chaillfeadh ár n-úsáideoirí",
+ "admin.impact_report.instance_follows": "Leanúna a bheadh a n-úsáideoirí chailleadh",
+ "admin.impact_report.title": "Achoimre ar an tionchar",
"alert.rate_limited.message": "Atriail aris tar éis {retry_time, time, medium}.",
"alert.rate_limited.title": "Rátatheoranta",
"alert.unexpected.message": "Tharla earráid gan choinne.",
@@ -76,10 +88,20 @@
"announcement.announcement": "Fógra",
"attachments_list.unprocessed": "(neamhphróiseáilte)",
"audio.hide": "Cuir fuaim i bhfolach",
+ "block_modal.remote_users_caveat": "Iarrfaimid ar an bhfreastalaí {domain} meas a bheith agat ar do chinneadh. Mar sin féin, ní ráthaítear comhlíonadh toisc go bhféadfadh roinnt freastalaithe bloic a láimhseáil ar bhealach difriúil. Seans go mbeidh postálacha poiblí fós le feiceáil ag úsáideoirí nach bhfuil logáilte isteach.",
+ "block_modal.show_less": "Taispeáin níos lú",
+ "block_modal.show_more": "Taispeáin níos mó",
+ "block_modal.they_cant_mention": "Ní féidir leo tú a lua ná a leanúint.",
+ "block_modal.they_cant_see_posts": "Ní féidir leo do chuid postálacha a fheiceáil agus ní fheicfidh tú a gcuid postanna.",
+ "block_modal.they_will_know": "Is féidir leo a fheiceáil go bhfuil bac orthu.",
+ "block_modal.title": "An bhfuil fonn ort an t-úsáideoir a bhlocáil?",
+ "block_modal.you_wont_see_mentions": "Ní fheicfidh tú postálacha a luann iad.",
"boost_modal.combo": "Is féidir leat {combo} a bhrú chun é seo a scipeáil an chéad uair eile",
+ "boost_modal.reblog": "An post a threisiú?",
+ "boost_modal.undo_reblog": "An deireadh a chur le postáil?",
"bundle_column_error.copy_stacktrace": "Cóipeáil tuairisc earráide",
"bundle_column_error.error.body": "Ní féidir an leathanach a iarradh a sholáthar. Seans gurb amhlaidh mar gheall ar fhabht sa chód, nó mar gheall ar mhíréireacht leis an mbrabhsálaí.",
- "bundle_column_error.error.title": "Ná habair!",
+ "bundle_column_error.error.title": "Ó, níl sé sin go maith!",
"bundle_column_error.network.body": "Tharla earráid agus an leathanach á lódáil. Seans gur mar gheall ar fhadhb shealadach le do nasc idirlín nó i ndáil leis an bhfreastalaí seo atá sé.",
"bundle_column_error.network.title": "Earráid líonra",
"bundle_column_error.retry": "Bain triail as arís",
@@ -98,8 +120,11 @@
"column.blocks": "Cuntais choiscthe",
"column.bookmarks": "Leabharmharcanna",
"column.community": "Amlíne áitiúil",
+ "column.direct": "Luann príobháideach",
"column.directory": "Brabhsáil próifílí",
"column.domain_blocks": "Fearainn bhactha",
+ "column.favourites": "Ceanáin",
+ "column.firehose": "Fothaí beo",
"column.follow_requests": "Iarratais leanúnaí",
"column.home": "Baile",
"column.lists": "Liostaí",
@@ -111,15 +136,18 @@
"column_header.hide_settings": "Folaigh socruithe",
"column_header.moveLeft_settings": "Bog an colún ar chlé",
"column_header.moveRight_settings": "Bog an colún ar dheis",
- "column_header.pin": "Greamaigh",
+ "column_header.pin": "Pionna",
"column_header.show_settings": "Taispeáin socruithe",
- "column_header.unpin": "Díghreamaigh",
+ "column_header.unpin": "Bain pionna",
"column_subheading.settings": "Socruithe",
"community.column_settings.local_only": "Áitiúil amháin",
"community.column_settings.media_only": "Meáin Amháin",
"community.column_settings.remote_only": "Cian amháin",
"compose.language.change": "Athraigh teanga",
"compose.language.search": "Cuardaigh teangacha...",
+ "compose.published.body": "Post foilsithe.",
+ "compose.published.open": "Oscail",
+ "compose.saved.body": "Postáil sábháilte.",
"compose_form.direct_message_warning_learn_more": "Tuilleadh eolais",
"compose_form.encryption_warning": "Ní criptiú taobh-go-taobh déanta ar theachtaireachtaí ar Mhastodon. Ná roinn eolas íogair ar Mhastodon.",
"compose_form.hashtag_warning": "Ní áireofar an teachtaireacht seo faoi haischlib ar bith mar níl sí ar fáil don phobal. Ní féidir ach teachtaireachtaí poiblí a chuardach de réir haischlib.",
@@ -127,35 +155,54 @@
"compose_form.lock_disclaimer.lock": "faoi ghlas",
"compose_form.placeholder": "Cad atá ag tarlú?",
"compose_form.poll.duration": "Achar suirbhéanna",
+ "compose_form.poll.multiple": "Ilrogha",
+ "compose_form.poll.option_placeholder": "Rogha {number}",
+ "compose_form.poll.single": "Roghnaigh ceann amháin",
"compose_form.poll.switch_to_multiple": "Athraigh suirbhé chun cead a thabhairt do ilrogha",
"compose_form.poll.switch_to_single": "Athraigh suirbhé chun cead a thabhairt do rogha amháin",
- "compose_form.publish_form": "Foilsigh\n",
+ "compose_form.poll.type": "Stíl",
+ "compose_form.publish": "Postáil",
+ "compose_form.publish_form": "Post nua",
+ "compose_form.reply": "Freagra",
+ "compose_form.save_changes": "Nuashonrú",
"compose_form.spoiler.marked": "Bain rabhadh ábhair",
"compose_form.spoiler.unmarked": "Cuir rabhadh ábhair",
+ "compose_form.spoiler_placeholder": "Rabhadh ábhair (roghnach)",
"confirmation_modal.cancel": "Cealaigh",
"confirmations.block.confirm": "Bac",
- "confirmations.cancel_follow_request.confirm": "Éirigh as iarratas",
- "confirmations.cancel_follow_request.message": "An bhfuil tú cinnte gur mhaith leat éirigh as an iarratas leanta {name}?",
"confirmations.delete.confirm": "Scrios",
"confirmations.delete.message": "An bhfuil tú cinnte gur mhaith leat an phostáil seo a scriosadh?",
+ "confirmations.delete.title": "Scrios postáil?",
"confirmations.delete_list.confirm": "Scrios",
"confirmations.delete_list.message": "An bhfuil tú cinnte gur mhaith leat an liosta seo a scriosadh go buan?",
+ "confirmations.delete_list.title": "Scrios liosta?",
"confirmations.discard_edit_media.confirm": "Faigh réidh de",
"confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?",
- "confirmations.domain_block.message": "An bhfuil tú iontach cinnte gur mhaith leat bac an t-ainm fearainn {domain} in iomlán? I bhformhór na gcásanna, is leor agus is fearr cúpla baic a cur i bhfeidhm nó cúpla úsáideoirí a balbhú. Ní fheicfidh tú ábhair ón t-ainm fearainn sin in amlíne ar bith, nó i d'fhógraí. Scaoilfear do leantóirí ón ainm fearainn sin.",
+ "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.logout.confirm": "Logáil amach",
"confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?",
+ "confirmations.logout.title": "Logáil Amach?",
"confirmations.mute.confirm": "Balbhaigh",
"confirmations.redraft.confirm": "Scrios ⁊ athdhréachtaigh",
+ "confirmations.redraft.message": "An bhfuil tú cinnte gur mhaith leat an postáil seo a scriosadh agus é a athdhréachtú? Caillfear ceanáin agus treisithe, agus dílleachtaí freagraí ar an mbunphostála.",
+ "confirmations.redraft.title": "Scrios & athdhréachtú postáil?",
"confirmations.reply.confirm": "Freagair",
"confirmations.reply.message": "Scriosfaidh freagra láithreach an teachtaireacht atá a chumadh anois agat. An bhfuil tú cinnte gur mhaith leat leanúint leat?",
+ "confirmations.reply.title": "Forscríobh postáil?",
"confirmations.unfollow.confirm": "Ná lean",
"confirmations.unfollow.message": "An bhfuil tú cinnte gur mhaith leat {name} a dhíleanúint?",
+ "confirmations.unfollow.title": "Dílean an t-úsáideoir?",
+ "content_warning.hide": "Folaigh postáil",
+ "content_warning.show": "Taispeáin ar aon nós",
"conversation.delete": "Scrios comhrá",
"conversation.mark_as_read": "Marcáil mar léite",
"conversation.open": "Féach ar comhrá",
"conversation.with": "Le {names}",
+ "copy_icon_button.copied": "Cóipeáladh chuig an ngearrthaisce",
"copypaste.copied": "Cóipeáilte",
+ "copypaste.copy_to_clipboard": "Cóipeáil chuig an ngearrthaisce",
"directory.federated": "Ó chomhchruinne aitheanta",
"directory.local": "Ó {domain} amháin",
"directory.new_arrivals": "Daoine atá tar éis teacht",
@@ -165,7 +212,30 @@
"dismissable_banner.community_timeline": "Seo iad na postála is déanaí ó dhaoine le cuntais ar {domain}.",
"dismissable_banner.dismiss": "Diúltaigh",
"dismissable_banner.explore_links": "Tá na scéalta nuachta seo á phlé anseo agus ar fhreastalaithe eile ar an líonra díláraithe faoi láthair.",
- "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
+ "dismissable_banner.explore_statuses": "Is postálacha iad seo ó ar fud an ghréasáin shóisialta atá ag éirí níos tarraingtí inniu. Rangaítear poist níos nuaí le níos mó teanntáin agus ceanáin níos airde.",
+ "dismissable_banner.explore_tags": "Is hashtags iad seo atá ag tarraingt ar an ngréasán sóisialta inniu. Tá na hashtags a úsáideann níos mó daoine difriúla rangaithe níos airde.",
+ "dismissable_banner.public_timeline": "Seo iad na postálacha poiblí is déanaí ó dhaoine ar an ngréasán sóisialta a leanann daoine ar {domain}.",
+ "domain_block_modal.block": "Bloc freastalaí",
+ "domain_block_modal.block_account_instead": "Cuir bac ar @{name} ina ionad sin",
+ "domain_block_modal.they_can_interact_with_old_posts": "Is féidir le daoine ón bhfreastalaí seo idirghníomhú le do sheanphoist.",
+ "domain_block_modal.they_cant_follow": "Ní féidir le duine ar bith ón bhfreastalaí seo tú a leanúint.",
+ "domain_block_modal.they_wont_know": "Ní bheidh a fhios acu go bhfuil bac orthu.",
+ "domain_block_modal.title": "Blocáil fearann?",
+ "domain_block_modal.you_will_lose_followers": "Bainfear do leantóirí go léir ón bhfreastalaí seo.",
+ "domain_block_modal.you_wont_see_posts": "Ní fheicfidh tú postálacha nó fógraí ó úsáideoirí ar an bhfreastalaí seo.",
+ "domain_pill.activitypub_lets_connect": "Ligeann sé duit ceangal agus idirghníomhú le daoine, ní hamháin ar Mastodon, ach thar aipeanna sóisialta éagsúla freisin.",
+ "domain_pill.activitypub_like_language": "Tá GníomhaíochtPub cosúil leis an teanga a labhraíonn Mastodon le líonraí sóisialta eile.",
+ "domain_pill.server": "Freastalaí",
+ "domain_pill.their_handle": "A láimhseáil:",
+ "domain_pill.their_server": "A dteach digiteach, áit a bhfuil a gcuid post go léir ina gcónaí.",
+ "domain_pill.their_username": "Aitheantóir uathúil ar a bhfreastalaí. Is féidir teacht ar úsáideoirí leis an ainm úsáideora céanna ar fhreastalaithe éagsúla.",
+ "domain_pill.username": "Ainm úsáideora",
+ "domain_pill.whats_in_a_handle": "Cad atá i láimhseáil?",
+ "domain_pill.who_they_are": "Ós rud é go ndeir láimhseálaithe cé hé duine agus cá bhfuil siad, is féidir leat idirghníomhú le daoine ar fud an ghréasáin shóisialta de ardáin atá á gcumhachtú le ActionPub.",
+ "domain_pill.who_you_are": "Toisc go ndeir do láimhseáil cé tú féin agus cén áit a bhfuil tú, is féidir le daoine idirghníomhú leat ar fud an ghréasáin shóisialta de ardáin atá á gcumhachtú le ActionPub.",
+ "domain_pill.your_handle": "Do láimhseáil:",
+ "domain_pill.your_server": "Do theach digiteach, áit a bhfuil do phoist go léir ina gcónaí. Nach maith leat an ceann seo? Aistrigh freastalaithe am ar bith agus tabhair leat do leantóirí freisin.",
+ "domain_pill.your_username": "D'aitheantóir uathúil ar an bhfreastalaí seo. Is féidir teacht ar úsáideoirí leis an ainm úsáideora céanna ar fhreastalaithe éagsúla.",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Seo an chuma a bheidh air:",
"emoji_button.activity": "Gníomhaíocht",
@@ -183,49 +253,81 @@
"emoji_button.search_results": "Torthaí cuardaigh",
"emoji_button.symbols": "Comharthaí",
"emoji_button.travel": "Taisteal ⁊ Áiteanna",
+ "empty_column.account_hides_collections": "Roghnaigh an t-úsáideoir seo gan an fhaisnéis seo a chur ar fáil",
"empty_column.account_suspended": "Cuntas ar fionraí",
"empty_column.account_timeline": "Níl postálacha ar bith anseo!",
"empty_column.account_unavailable": "Níl an phróifíl ar fáil",
"empty_column.blocks": "Níl aon úsáideoir bactha agat fós.",
"empty_column.bookmarked_statuses": "Níl aon phostáil leabharmharcaithe agat fós. Nuair a dhéanann tú leabharmharc, beidh sé le feiceáil anseo.",
"empty_column.community": "Tá an amlíne áitiúil folamh. Foilsigh rud éigin go poiblí le tús a chur le cúrsaí!",
+ "empty_column.direct": "Níl aon tagairtí príobháideacha agat fós. Nuair a sheolann tú nó a gheobhaidh tú ceann, beidh sé le feiceáil anseo.",
"empty_column.domain_blocks": "Níl aon fearainn bhactha ann go fóill.",
"empty_column.explore_statuses": "Níl rud ar bith ag treochtáil faoi láthair. Tar ar ais ar ball!",
+ "empty_column.favourited_statuses": "Níl aon postálacha is fearr leat fós. Nuair is fearr leat ceann, beidh sé le feiceáil anseo.",
+ "empty_column.favourites": "Níor thaitin an post seo le haon duine go fóill. Nuair a dhéanann duine, taispeánfaidh siad suas anseo.",
"empty_column.follow_requests": "Níl aon phostáil leabharmharcaithe agat fós. Nuair a dhéanann tú leabharmharc, feicfear anseo é.",
+ "empty_column.followed_tags": "Níor lean tú aon hashtags fós. Nuair a dhéanann tú, beidh siad a thaispeáint suas anseo.",
"empty_column.hashtag": "Níl rud ar bith faoin haischlib seo go fóill.",
"empty_column.home": "Tá d'amlíne baile folamh! B'fhiú duit cúpla duine eile a leanúint lena líonadh! {suggestions}",
- "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
+ "empty_column.list": "Níl aon rud ar an liosta seo fós. Nuair a fhoilseoidh baill an liosta seo postálacha nua, beidh siad le feiceáil anseo.",
"empty_column.lists": "Níl aon liostaí fós agat. Nuair a chruthaíonn tú ceann, feicfear anseo é.",
"empty_column.mutes": "Níl aon úsáideoir balbhaithe agat fós.",
+ "empty_column.notification_requests": "Gach soiléir! Níl aon rud anseo. Nuair a gheobhaidh tú fógraí nua, beidh siad le feiceáil anseo de réir do shocruithe.",
"empty_column.notifications": "Níl aon fógraí agat fós. Nuair a dhéanann daoine eile idirghníomhú leat, feicfear anseo é.",
"empty_column.public": "Faic anseo! Scríobh rud éigin go poiblí, nó lean úsáideoirí ar fhreastalaithe eile chun é a líonadh",
"error.unexpected_crash.explanation": "De bharr fabht inár gcód, nó fadhb le chomhoiriúnacht brabhsálaí, níorbh fhéadfadh an leathanach seo a léiriú i gceart.",
"error.unexpected_crash.explanation_addons": "Ní taispeántar an leathanach seo mar is ceart. Is dócha go gcruthaíonn breiseán brabhsálaí nó uirlisí uathaistriúcháin an fhadhb seo.",
+ "error.unexpected_crash.next_steps": "Bain triail as an leathanach a athnuachan. Mura gcabhraíonn sé sin, seans go mbeidh tú fós in ann Mastodon a úsáid trí bhrabhsálaí nó aip dhúchais eile.",
+ "error.unexpected_crash.next_steps_addons": "Déan iarracht iad a dhíchumasú agus an leathanach a athnuachan. Mura gcabhraíonn sé sin, seans go mbeidh tú fós in ann Mastodon a úsáid trí bhrabhsálaí nó aip dhúchais eile.",
+ "errors.unexpected_crash.copy_stacktrace": "Cóipeáil rian cruachta go dtí an ghearrthaisce",
"errors.unexpected_crash.report_issue": "Tuairiscigh deacracht",
"explore.search_results": "Torthaí cuardaigh",
+ "explore.suggested_follows": "Daoine",
"explore.title": "Féach thart",
"explore.trending_links": "Nuacht",
"explore.trending_statuses": "Postálacha",
"explore.trending_tags": "Haischlibeanna",
+ "filter_modal.added.context_mismatch_explanation": "Ní bhaineann an chatagóir scagaire seo leis an gcomhthéacs ina bhfuair tú rochtain ar an bpostáil seo. Más mian leat an postáil a scagadh sa chomhthéacs seo freisin, beidh ort an scagaire a chur in eagar.",
+ "filter_modal.added.context_mismatch_title": "Neamhréir comhthéacs!",
+ "filter_modal.added.expired_explanation": "Tá an chatagóir scagaire seo imithe in éag, beidh ort an dáta éaga a athrú chun é a chur i bhfeidhm.",
"filter_modal.added.expired_title": "Scagaire as feidhm!",
+ "filter_modal.added.review_and_configure": "Chun an chatagóir scagaire seo a athbhreithniú agus a chumrú tuilleadh, téigh chuig {settings_link}.",
"filter_modal.added.review_and_configure_title": "Socruithe scagtha",
"filter_modal.added.settings_link": "leathan socruithe",
+ "filter_modal.added.short_explanation": "Cuireadh an postáil seo leis an gcatagóir scagaire seo a leanas: {title}.",
"filter_modal.added.title": "Scagaire curtha leis!",
"filter_modal.select_filter.context_mismatch": "ní bhaineann sé leis an gcomhthéacs seo",
- "filter_modal.select_filter.expired": "as feidhm",
+ "filter_modal.select_filter.expired": "imithe in éag",
"filter_modal.select_filter.prompt_new": "Catagóir nua: {name}",
"filter_modal.select_filter.search": "Cuardaigh nó cruthaigh",
"filter_modal.select_filter.subtitle": "Bain úsáid as catagóir reatha nó cruthaigh ceann nua",
"filter_modal.select_filter.title": "Déan scagadh ar an bpostáil seo",
"filter_modal.title.status": "Déan scagadh ar phostáil",
+ "filter_warning.matches_filter": "Meaitseálann an scagaire “{title}”",
+ "filtered_notifications_banner.pending_requests": "Ó {count, plural, =0 {duine ar bith} one {duine amháin} two {# daoine} few {# daoine} many {# daoine} other {# daoine}} b’fhéidir go bhfuil aithne agat orthu",
+ "filtered_notifications_banner.title": "Fógraí scagtha",
+ "firehose.all": "Gach",
+ "firehose.local": "An freastalaí seo",
+ "firehose.remote": "Freastalaithe eile",
"follow_request.authorize": "Ceadaigh",
"follow_request.reject": "Diúltaigh",
"follow_requests.unlocked_explanation": "Cé nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat súil siar ar iarratais leanúnaí as na cuntais seo.",
+ "follow_suggestions.curated_suggestion": "Pioc foirne",
"follow_suggestions.dismiss": "Ná taispeáin arís",
+ "follow_suggestions.featured_longer": "Lámh-roghnaithe ag an bhfoireann {domain}",
+ "follow_suggestions.friends_of_friends_longer": "Coitianta i measc na ndaoine a leanann tú",
+ "follow_suggestions.hints.featured": "Tá an phróifíl seo roghnaithe de láimh ag foireann {domain}.",
+ "follow_suggestions.hints.friends_of_friends": "Tá an-tóir ar an bpróifíl seo i measc na ndaoine a leanann tú.",
+ "follow_suggestions.hints.most_followed": "Tá an phróifíl seo ar cheann de na cinn is mó a leantar ar {domain}.",
+ "follow_suggestions.hints.most_interactions": "Tá an phróifíl seo ag tarraingt go leor airde ar {domain} le déanaí.",
+ "follow_suggestions.hints.similar_to_recently_followed": "Tá an phróifíl seo cosúil leis na próifílí a lean tú le déanaí.",
"follow_suggestions.personalized_suggestion": "Nod pearsantaithe",
"follow_suggestions.popular_suggestion": "Nod coiteann",
+ "follow_suggestions.popular_suggestion_longer": "Tá an-tóir ar {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Cosúil le próifílí a lean tú le déanaí",
"follow_suggestions.view_all": "Féach uile",
"follow_suggestions.who_to_follow": "Cé le leanúint",
+ "followed_tags": "Hashtags le leanúint",
"footer.about": "Maidir le",
"footer.directory": "Eolaire próifílí",
"footer.get_app": "Faigh an aip",
@@ -233,6 +335,7 @@
"footer.keyboard_shortcuts": "Aicearraí méarchláir",
"footer.privacy_policy": "Polasaí príobháideachais",
"footer.source_code": "Féach ar an gcód foinseach",
+ "footer.status": "Stádas",
"generic.saved": "Sábháilte",
"getting_started.heading": "Ag tosú amach",
"hashtag.column_header.tag_mode.all": "agus {additional}",
@@ -241,15 +344,53 @@
"hashtag.column_settings.select.no_options_message": "Moltaí ar bith faighte",
"hashtag.column_settings.select.placeholder": "Iontráil haischlibeanna…",
"hashtag.column_settings.tag_mode.all": "Iad seo go léir",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_settings.tag_mode.any": "Aon cheann díobh seo",
+ "hashtag.column_settings.tag_mode.none": "Níl aon cheann díobh seo",
+ "hashtag.column_settings.tag_toggle": "Cuir clibeanna breise san áireamh don cholún seo",
+ "hashtag.counter_by_accounts": "{count, plural, one {{counter} rannpháirtí} two {{counter} rannpháirtí} few {{counter} rannpháirtí} many {{counter} rannpháirtí} other {{counter} rannpháirtí}}",
+ "hashtag.counter_by_uses": "{count, plural, one {{counter} post} two {{counter} post} few {{counter} post} many {{counter} post} other {{counter} poist}}",
+ "hashtag.counter_by_uses_today": "{count, plural, one {{counter} post inniu} other {{counter} poist inniu}} inniu",
"hashtag.follow": "Lean haischlib",
"hashtag.unfollow": "Ná lean haischlib",
+ "hashtags.and_other": "agus {count, plural, one {} two {# níos} few {# níos} many {# níos} other {# níos}}",
+ "hints.profiles.followers_may_be_missing": "Seans go bhfuil leantóirí don phróifíl seo in easnamh.",
+ "hints.profiles.follows_may_be_missing": "Seans go bhfuil na nithe seo a leanas in easnamh ar an bpróifíl seo.",
+ "hints.profiles.posts_may_be_missing": "Seans go bhfuil roinnt postálacha ón bpróifíl seo in easnamh.",
+ "hints.profiles.see_more_followers": "Féach ar a thuilleadh leantóirí ar {domain}",
+ "hints.profiles.see_more_follows": "Féach tuilleadh seo a leanas ar {domain}",
+ "hints.profiles.see_more_posts": "Féach ar a thuilleadh postálacha ar {domain}",
+ "hints.threads.replies_may_be_missing": "Seans go bhfuil freagraí ó fhreastalaithe eile in easnamh.",
+ "hints.threads.see_more": "Féach ar a thuilleadh freagraí ar {domain}",
"home.column_settings.show_reblogs": "Taispeáin moltaí",
"home.column_settings.show_replies": "Taispeán freagraí",
"home.hide_announcements": "Cuir fógraí i bhfolach",
+ "home.pending_critical_update.body": "Nuashonraigh do fhreastalaí Mastodon chomh luath agus is féidir!",
+ "home.pending_critical_update.link": "Féach nuashonruithe",
+ "home.pending_critical_update.title": "Nuashonrú slándála ríthábhachtach ar fáil!",
"home.show_announcements": "Taispeáin fógraí",
+ "ignore_notifications_modal.disclaimer": "Ní féidir le Mastodon úsáideoirí a chur ar an eolas gur thug tú neamhaird dá bhfógraí. Má dhéantar neamhaird de fhógraí, ní stopfar na teachtaireachtaí iad féin a sheoladh.",
+ "ignore_notifications_modal.filter_instead": "Scag ina ionad sin",
+ "ignore_notifications_modal.filter_to_act_users": "Beidh tú fós in ann glacadh le húsáideoirí, iad a dhiúltú nó a thuairisciú",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Cuidíonn scagadh le mearbhall a sheachaint",
+ "ignore_notifications_modal.filter_to_review_separately": "Is féidir leat fógraí scagtha a athbhreithniú ar leithligh",
+ "ignore_notifications_modal.ignore": "Déan neamhaird de fhógraí",
+ "ignore_notifications_modal.limited_accounts_title": "An dtugann tú neamhaird d'fhógraí ó chuntais mhodhnaithe?",
+ "ignore_notifications_modal.new_accounts_title": "An bhfuil fonn ort neamhaird a dhéanamh d'fhógraí ó chuntais nua?",
+ "ignore_notifications_modal.not_followers_title": "An dtugann tú aird ar fhógraí ó dhaoine nach leanann tú?",
+ "ignore_notifications_modal.not_following_title": "An ndéanann tú neamhaird de fhógraí ó dhaoine nach leanann tú?",
+ "ignore_notifications_modal.private_mentions_title": "An dtugann tú aird ar fhógraí ó Luaintí Príobháideacha gan iarraidh?",
+ "interaction_modal.description.favourite": "Le cuntas ar Mastodon, is fearr leat an postáil seo chun a chur in iúl don údar go bhfuil meas agat air agus é a shábháil ar feadh níos déanaí.",
+ "interaction_modal.description.follow": "Le cuntas ar Mastodon, is féidir leat {name} a leanúint chun a gcuid postálacha a fháil i do fhotha baile.",
+ "interaction_modal.description.reblog": "Le cuntas ar Mastodon, is féidir leat an postáil seo a threisiú chun é a roinnt le do leantóirí féin.",
+ "interaction_modal.description.reply": "Le cuntas ar Mastodon, is féidir leat freagra a thabhairt ar an bpostáil seo.",
+ "interaction_modal.login.action": "Thabhairt dom abhaile",
+ "interaction_modal.login.prompt": "Fearann do fhreastalaí baile, e.g. mastodon.sóisialta",
+ "interaction_modal.no_account_yet": "Ní ar Mastodon?",
"interaction_modal.on_another_server": "Ar freastalaí eile",
"interaction_modal.on_this_server": "Ar an freastalaí seo",
+ "interaction_modal.sign_in": "Níl tú logáilte isteach ar an bhfreastalaí seo. Cá bhfuil do chuntas á óstáil?",
+ "interaction_modal.sign_in_hint": "Leid: Sin é an suíomh Gréasáin inar chláraigh tú. Mura cuimhin leat, lorg an ríomhphost fáilte i do bhosca isteach. Is féidir leat d'ainm úsáideora iomlán a chur isteach freisin! (m.sh. @Mastodon@mastodon.social)",
+ "interaction_modal.title.favourite": "An postáil {name} is fearr leat",
"interaction_modal.title.follow": "Lean {name}",
"interaction_modal.title.reblog": "Mol postáil de chuid {name}",
"interaction_modal.title.reply": "Freagair postáil {name}",
@@ -259,45 +400,53 @@
"keyboard_shortcuts.back": "Nasclean siar",
"keyboard_shortcuts.blocked": "Oscail liosta na n-úsáideoirí bactha",
"keyboard_shortcuts.boost": "Treisigh postáil",
- "keyboard_shortcuts.column": "to focus a status in one of the columns",
- "keyboard_shortcuts.compose": "to focus the compose textarea",
- "keyboard_shortcuts.description": "Cuntas",
- "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.column": "Colún fócas",
+ "keyboard_shortcuts.compose": "Fócas a chumadh textarea",
+ "keyboard_shortcuts.description": "Cur síos",
+ "keyboard_shortcuts.direct": "chun colún lua príobháideach a oscailt",
"keyboard_shortcuts.down": "Bog síos ar an liosta",
"keyboard_shortcuts.enter": "Oscail postáil",
+ "keyboard_shortcuts.favourite": "Postáil is fearr leat",
+ "keyboard_shortcuts.favourites": "Oscail liosta ceanáin",
"keyboard_shortcuts.federated": "Oscail amlíne cónaidhmithe",
"keyboard_shortcuts.heading": "Aicearraí méarchláir",
"keyboard_shortcuts.home": "Oscail amlíne bhaile",
"keyboard_shortcuts.hotkey": "Eochair aicearra",
- "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.legend": "Taispeáin an finscéal seo",
"keyboard_shortcuts.local": "Oscail an amlíne áitiúil",
"keyboard_shortcuts.mention": "Luaigh údar",
"keyboard_shortcuts.muted": "Oscail liosta na n-úsáideoirí balbhaithe",
"keyboard_shortcuts.my_profile": "Oscail do phróifíl",
- "keyboard_shortcuts.notifications": "to open notifications column",
+ "keyboard_shortcuts.notifications": "Oscail colún fógraí",
"keyboard_shortcuts.open_media": "Oscail meáin",
- "keyboard_shortcuts.pinned": "to open pinned posts list",
+ "keyboard_shortcuts.pinned": "Oscail liosta postálacha pinn",
"keyboard_shortcuts.profile": "Oscail próifíl an t-údar",
"keyboard_shortcuts.reply": "Freagair ar phostáil",
"keyboard_shortcuts.requests": "Oscail liosta iarratas leanúnaí",
- "keyboard_shortcuts.search": "to focus search",
- "keyboard_shortcuts.spoilers": "to show/hide CW field",
- "keyboard_shortcuts.start": "to open \"get started\" column",
- "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
+ "keyboard_shortcuts.search": "Díriú ar an mbosca cuardaigh",
+ "keyboard_shortcuts.spoilers": "Taispeáin / folaigh réimse CW",
+ "keyboard_shortcuts.start": "Oscail an colún “tosaigh”",
+ "keyboard_shortcuts.toggle_hidden": "Taispeáin/folaigh an téacs taobh thiar de CW",
"keyboard_shortcuts.toggle_sensitivity": "Taispeáin / cuir i bhfolach meáin",
"keyboard_shortcuts.toot": "Cuir tús le postáil nua",
- "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.unfocus": "Unfocus cum textarea/search",
"keyboard_shortcuts.up": "Bog suas ar an liosta",
"lightbox.close": "Dún",
"lightbox.next": "An céad eile",
"lightbox.previous": "Roimhe seo",
+ "lightbox.zoom_in": "Súmáil chuig an méid iarbhír",
+ "lightbox.zoom_out": "Súmáil a d'oirfeadh",
"limited_account_hint.action": "Taispeáin an phróifíl ar aon nós",
"limited_account_hint.title": "Tá an phróifíl seo curtha i bhfolach ag na modhnóra {domain}.",
+ "link_preview.author": "Le {name}",
+ "link_preview.more_from_author": "Tuilleadh ó {name}",
+ "link_preview.shares": "{count, plural, one {{counter} post} other {{counter} poist}}",
"lists.account.add": "Cuir leis an liosta",
"lists.account.remove": "Scrios as an liosta",
"lists.delete": "Scrios liosta",
"lists.edit": "Cuir an liosta in eagar",
"lists.edit.submit": "Athraigh teideal",
+ "lists.exclusive": "Folaigh na poist seo ón mbaile",
"lists.new.create": "Cruthaigh liosta",
"lists.new.title_placeholder": "Teideal liosta nua",
"lists.replies_policy.followed": "Úsáideoir ar bith atá á leanúint",
@@ -306,40 +455,113 @@
"lists.replies_policy.title": "Taispeáin freagraí:",
"lists.search": "Cuardaigh i measc daoine atá á leanúint agat",
"lists.subheading": "Do liostaí",
+ "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…",
+ "media_gallery.hide": "Folaigh",
+ "moved_to_account_banner.text": "Tá do chuntas {disabledAccount} díchumasaithe faoi láthair toisc gur bhog tú go {movedToAccount}.",
+ "mute_modal.hide_from_notifications": "Folaigh ó fhógraí",
+ "mute_modal.hide_options": "Folaigh roghanna",
+ "mute_modal.indefinite": "Go dtí go ndíbhalfaidh mé iad",
+ "mute_modal.show_options": "Taispeáin roghanna",
+ "mute_modal.they_can_mention_and_follow": "Is féidir leo tú a lua agus a leanúint, ach ní fheicfidh tú iad.",
+ "mute_modal.they_wont_know": "Ní bheidh a fhios acu go bhfuil balbhú orthu.",
+ "mute_modal.title": "An bhfuil fonn ort úsáideoir a bhalbhú?",
+ "mute_modal.you_wont_see_mentions": "Ní fheicfidh tú postálacha a luann iad.",
+ "mute_modal.you_wont_see_posts": "Is féidir leo do phoist a fheiceáil go fóill, ach ní fheicfidh tú a gcuid postanna.",
"navigation_bar.about": "Maidir le",
+ "navigation_bar.administration": "Riarachán",
+ "navigation_bar.advanced_interface": "Oscail i gcomhéadan gréasáin chun cinn",
"navigation_bar.blocks": "Cuntais bhactha",
"navigation_bar.bookmarks": "Leabharmharcanna",
"navigation_bar.community_timeline": "Amlíne áitiúil",
"navigation_bar.compose": "Cum postáil nua",
+ "navigation_bar.direct": "Luann príobháideach",
"navigation_bar.discover": "Faigh amach",
"navigation_bar.domain_blocks": "Fearainn bhactha",
"navigation_bar.explore": "Féach thart",
+ "navigation_bar.favourites": "Ceanáin",
"navigation_bar.filters": "Focail bhalbhaithe",
"navigation_bar.follow_requests": "Iarratais leanúnaí",
+ "navigation_bar.followed_tags": "Haischlibeanna ina dhiaidh",
"navigation_bar.follows_and_followers": "Ag leanúint agus do do leanúint",
"navigation_bar.lists": "Liostaí",
"navigation_bar.logout": "Logáil Amach",
+ "navigation_bar.moderation": "Measarthacht",
"navigation_bar.mutes": "Úsáideoirí balbhaithe",
+ "navigation_bar.opened_in_classic_interface": "Osclaítear poist, cuntais agus leathanaigh shonracha eile de réir réamhshocraithe sa chomhéadan gréasáin clasaiceach.",
"navigation_bar.personal": "Pearsanta",
"navigation_bar.pins": "Postálacha pionnáilte",
"navigation_bar.preferences": "Sainroghanna pearsanta",
"navigation_bar.public_timeline": "Amlíne cónaidhmithe",
"navigation_bar.search": "Cuardaigh",
"navigation_bar.security": "Slándáil",
- "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
+ "not_signed_in_indicator.not_signed_in": "Ní mór duit logáil isteach chun rochtain a fháil ar an acmhainn seo.",
"notification.admin.report": "Tuairiscigh {name} {target}",
+ "notification.admin.report_account": "{name} thuairiscigh {count, plural, one {aon phost} two {# phost} few {# phost} many {# bpost} other {# bpost}} ó {target} do {category}",
+ "notification.admin.report_account_other": "{name} thuairiscigh {count, plural, one {aon phost} two {# phost} few {# phost} many {# bpost} other {# bpost}} ó {target}",
+ "notification.admin.report_statuses": "Thuairiscigh {name} {target} le haghaidh {category}",
+ "notification.admin.report_statuses_other": "{name} tuairiscithe {target}",
"notification.admin.sign_up": "Chláraigh {name}",
+ "notification.admin.sign_up.name_and_others": "{name} agus {count, plural, one {# duine eile} two {# daoine eile} few {# daoine eile} many {# daoine eile} other {# daoine eile}} a chláraigh",
+ "notification.favourite": "Is fearr le {name} do phostáil",
+ "notification.favourite.name_and_others_with_link": "{name} agus {count, plural, one {# duine eile} other {# daoine eile}} thaitin le do phost",
"notification.follow": "Lean {name} thú",
+ "notification.follow.name_and_others": "{name} agus {count, plural, one {# duine eile} other {# daoine eile}} a lean tú",
"notification.follow_request": "D'iarr {name} ort do chuntas a leanúint",
- "notification.mention": "Luaigh {name} tú",
+ "notification.follow_request.name_and_others": "{name} agus {count, plural, one {# duine eile} other {# daoine eile}} iarratas a dhéanamh chun tú a leanúint",
+ "notification.label.mention": "Luaigh",
+ "notification.label.private_mention": "Lua príobháideach",
+ "notification.label.private_reply": "Freagra príobháideach",
+ "notification.label.reply": "Freagra",
+ "notification.mention": "Luaigh",
+ "notification.moderation-warning.learn_more": "Foghlaim níos mó",
+ "notification.moderation_warning": "Tá rabhadh modhnóireachta faighte agat",
+ "notification.moderation_warning.action_delete_statuses": "Baineadh cuid de do phostálacha.",
+ "notification.moderation_warning.action_disable": "Díchumasaíodh do chuntas.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Tá cuid de do phostálacha marcáilte mar íogair.",
+ "notification.moderation_warning.action_none": "Tá rabhadh modhnóireachta faighte ag do chuntas.",
+ "notification.moderation_warning.action_sensitive": "Déanfar do phostálacha a mharcáil mar íogair as seo amach.",
+ "notification.moderation_warning.action_silence": "Tá do chuntas teoranta.",
+ "notification.moderation_warning.action_suspend": "Cuireadh do chuntas ar fionraí.",
"notification.own_poll": "Tá do suirbhé críochnaithe",
- "notification.poll": "Tá suirbhé inar vótáil tú tar éis críochnú",
+ "notification.poll": "Tá deireadh le vótaíocht inar vótáil tú",
"notification.reblog": "Mhol {name} do phostáil",
+ "notification.reblog.name_and_others_with_link": "{name} agus {count, plural, one {# duine eile} other {# daoine eile}} a chuir borradh faoi do phost",
+ "notification.relationships_severance_event": "Cailleadh naisc le {name}",
+ "notification.relationships_severance_event.account_suspension": "Chuir riarthóir ó {from} {target} ar fionraí, rud a chiallaíonn nach féidir leat nuashonruithe a fháil uathu a thuilleadh ná idirghníomhú leo.",
+ "notification.relationships_severance_event.domain_block": "Chuir riarthóir ó {from} bac ar {target}, lena n-áirítear {followersCount} de do leantóirí agus {followingCount, plural, one {#cuntas} other {#cuntas}} leanann tú.",
+ "notification.relationships_severance_event.learn_more": "Foghlaim níos mó",
+ "notification.relationships_severance_event.user_domain_block": "Chuir tú bac ar {target}, bhain tú {followersCount} de do leantóirí agus {followingCount, plural, one {# cuntas} other {# cuntais}} a leanann tú.",
"notification.status": "Phostáil {name} díreach",
"notification.update": "Chuir {name} postáil in eagar",
+ "notification_requests.accept": "Glac",
+ "notification_requests.accept_multiple": "{count, plural, one {Glac le # iarratas…} other {Glac le # iarratais…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Glac le hIarratas} other {Glac le hIarratais}}",
+ "notification_requests.confirm_accept_multiple.message": "Tá tú ar tí glacadh le {count, plural, one {iarratas fógra amháin} other {# iarratas fógra}}. An bhfuil tú cinnte gur mian leat leanúint ar aghaidh?",
+ "notification_requests.confirm_accept_multiple.title": "Glac le hiarratais ar fhógra?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Dún iarratas} other {Dún iarratais}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Tá tú ar tí iarratas fógra {count, plural, one {a hAon} other {#}} a dhúnadh. Ní bheidh tú in ann {count, plural, one {é} other {iad}} a fháil go héasca arís. An bhfuil tú cinnte gur mian leat leanúint ar aghaidh?",
+ "notification_requests.confirm_dismiss_multiple.title": "An bhfuil fonn ort iarratais ar fhógra a dhíbhe?",
+ "notification_requests.dismiss": "Díbhe",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Dún # iarratas…} other {Dún # iarratais…}}",
+ "notification_requests.edit_selection": "Cuir in eagar",
+ "notification_requests.exit_selection": "Déanta",
+ "notification_requests.explainer_for_limited_account": "Scagadh fógraí ón gcuntas seo toisc go bhfuil an cuntas teoranta ag modhnóir.",
+ "notification_requests.explainer_for_limited_remote_account": "Scagadh fógraí ón gcuntas seo toisc go bhfuil an cuntas nó a fhreastalaí teoranta ag modhnóir.",
+ "notification_requests.maximize": "Uasmhéadaigh",
+ "notification_requests.minimize_banner": "Íoslaghdaigh bratach na bhfógraí scagtha",
+ "notification_requests.notifications_from": "Fógraí ó {name}",
+ "notification_requests.title": "Fógraí scagtha",
+ "notification_requests.view": "Féach ar fhógraí",
"notifications.clear": "Glan fógraí",
+ "notifications.clear_confirmation": "An bhfuil tú cinnte gur mhaith leat d'fhógraí go léir a ghlanadh go buan?",
+ "notifications.clear_title": "Glan fógraí?",
"notifications.column_settings.admin.report": "Tuairiscí nua:",
+ "notifications.column_settings.admin.sign_up": "Clárúcháin nua:",
"notifications.column_settings.alert": "Fógraí deisce",
+ "notifications.column_settings.favourite": "Ceanáin:",
+ "notifications.column_settings.filter_bar.advanced": "Taispeáin gach catagóir",
+ "notifications.column_settings.filter_bar.category": "Barra scagairí tapa",
"notifications.column_settings.follow": "Leantóirí nua:",
"notifications.column_settings.follow_request": "Iarratais leanúnaí nua:",
"notifications.column_settings.mention": "Tráchtanna:",
@@ -350,33 +572,85 @@
"notifications.column_settings.sound": "Seinn an fhuaim",
"notifications.column_settings.status": "Postálacha nua:",
"notifications.column_settings.unread_notifications.category": "Brúfhógraí neamhléite",
+ "notifications.column_settings.unread_notifications.highlight": "Aibhsigh fógraí neamhléite",
"notifications.column_settings.update": "Eagair:",
"notifications.filter.all": "Uile",
"notifications.filter.boosts": "Treisithe",
+ "notifications.filter.favourites": "Ceanáin",
"notifications.filter.follows": "Ag leanúint",
"notifications.filter.mentions": "Tráchtanna",
"notifications.filter.polls": "Torthaí suirbhéanna",
"notifications.filter.statuses": "Nuashonruithe ó dhaoine a leanann tú",
"notifications.grant_permission": "Tabhair cead.",
"notifications.group": "{count} fógraí",
+ "notifications.mark_as_read": "Marcáil gach fógra mar atá léite",
+ "notifications.permission_denied": "Níl fógraí deisce ar fáil mar gheall ar iarratas ar chead brabhsálaí a diúltaíodh roimhe seo",
+ "notifications.permission_denied_alert": "Ní féidir fógraí deisce a chumasú, mar gur diúltaíodh cead brabhsálaí roimhe seo",
+ "notifications.permission_required": "Níl fógraí deisce ar fáil toisc nár tugadh an cead riachtanach.",
+ "notifications.policy.accept": "Glac",
+ "notifications.policy.accept_hint": "Taispeáin i bhfógraí",
+ "notifications.policy.drop": "Déan neamhaird de",
+ "notifications.policy.drop_hint": "Seol chuig an neamhní, gan a bheith le feiceáil arís",
+ "notifications.policy.filter": "Scagaire",
+ "notifications.policy.filter_hint": "Seol chuig an mbosca isteach fógraí scagtha",
+ "notifications.policy.filter_limited_accounts_hint": "Teoranta ag modhnóirí freastalaí",
+ "notifications.policy.filter_limited_accounts_title": "Cuntais mhodhnaithe",
+ "notifications.policy.filter_new_accounts.hint": "Cruthaithe laistigh den {days, plural, one {lae amháin} two {# lá} few {# lá} many {# lá} other {# lá}}",
+ "notifications.policy.filter_new_accounts_title": "Cuntais nua",
+ "notifications.policy.filter_not_followers_hint": "Agus daoine a bhfuil siad ag leanúint ort le níos lú ná {days, plural, one {lae amháin} two {# lá} few {# lá} many {# lá} other {# lá}}",
+ "notifications.policy.filter_not_followers_title": "Daoine nach leanann tú",
+ "notifications.policy.filter_not_following_hint": "Go dtí go gceadaíonn tú iad de láimh",
+ "notifications.policy.filter_not_following_title": "Daoine nach leanann tú",
+ "notifications.policy.filter_private_mentions_hint": "Scagtha mura bhfuil sé mar fhreagra ar do lua féin nó má leanann tú an seoltóir",
+ "notifications.policy.filter_private_mentions_title": "Tagairtí príobháideacha gan iarraidh",
+ "notifications.policy.title": "Bainistigh fógraí ó…",
"notifications_permission_banner.enable": "Ceadaigh fógraí ar an deasc",
+ "notifications_permission_banner.how_to_control": "Chun fógraí a fháil nuair nach bhfuil Mastodon oscailte, cumasaigh fógraí deisce. Is féidir leat a rialú go beacht cé na cineálacha idirghníomhaíochtaí a ghineann fógraí deisce tríd an gcnaipe {icon} thuas nuair a bhíonn siad cumasaithe.",
"notifications_permission_banner.title": "Ná caill aon rud go deo",
- "onboarding.actions.go_to_explore": "See what's trending",
- "onboarding.actions.go_to_home": "Go to your home feed",
- "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
- "onboarding.follows.title": "Popular on Mastodon",
- "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
- "onboarding.start.skip": "Want to skip right ahead?",
- "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
- "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
- "onboarding.steps.publish_status.body": "Say hello to the world.",
- "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
- "onboarding.steps.setup_profile.title": "Customize your profile",
- "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
- "onboarding.steps.share_profile.title": "Share your profile",
+ "onboarding.action.back": "Tóg ar ais mé",
+ "onboarding.actions.back": "Tóg ar ais mé",
+ "onboarding.actions.go_to_explore": "Tóg mé chun trending",
+ "onboarding.actions.go_to_home": "Tóg go dtí mo bheathú baile mé",
+ "onboarding.compose.template": "Dia duit #Mastodon!",
+ "onboarding.follows.empty": "Ar an drochuair, ní féidir aon torthaí a thaispeáint faoi láthair. Is féidir leat triail a bhaint as cuardach nó brabhsáil ar an leathanach taiscéalaíochta chun teacht ar dhaoine le leanúint, nó bain triail eile as níos déanaí.",
+ "onboarding.follows.lead": "Is é do bheathú baile an príomhbhealach chun taithí a fháil ar Mastodon. Dá mhéad daoine a leanann tú, is ea is gníomhaí agus is suimiúla a bheidh sé. Chun tú a chur ar bun, seo roinnt moltaí:",
+ "onboarding.follows.title": "Cuir do chuid fotha baile in oiriúint duit féin",
+ "onboarding.profile.discoverable": "Déan mo phróifíl a fháil amach",
+ "onboarding.profile.discoverable_hint": "Nuair a roghnaíonn tú infhionnachtana ar Mastodon, d’fhéadfadh do phoist a bheith le feiceáil i dtorthaí cuardaigh agus treochtaí, agus d’fhéadfaí do phróifíl a mholadh do dhaoine a bhfuil na leasanna céanna acu leat.",
+ "onboarding.profile.display_name": "Ainm taispeána",
+ "onboarding.profile.display_name_hint": "D’ainm iomlán nó d’ainm spraíúil…",
+ "onboarding.profile.lead": "Is féidir leat é seo a chomhlánú i gcónaí níos déanaí sna socruithe, áit a bhfuil níos mó roghanna saincheaptha ar fáil.",
+ "onboarding.profile.note": "Bith",
+ "onboarding.profile.note_hint": "Is féidir leat @ daoine eile a lua nó #hashtags…",
+ "onboarding.profile.save_and_continue": "Sábháil agus lean ar aghaidh",
+ "onboarding.profile.title": "Socrú próifíle",
+ "onboarding.profile.upload_avatar": "Íosluchtaigh pictiúr próifíl",
+ "onboarding.profile.upload_header": "Íoslódáil an ceanntásca próifíl",
+ "onboarding.share.lead": "Cuir in iúl do dhaoine conas is féidir leo tú a aimsiú ar Mastodon!",
+ "onboarding.share.message": "Is {username} mé ar #Mastodon! Tar lean mé ag {url}",
+ "onboarding.share.next_steps": "Na chéad chéimeanna eile is féidir:",
+ "onboarding.share.title": "Roinn do phróifíl",
+ "onboarding.start.lead": "Tá tú mar chuid de Mastodon anois, ardán meán sóisialta díláraithe uathúil ina ndéanann tú - ní algartam - do thaithí féin a choimeád. Cuirimis tús leat ar an teorainn shóisialta nua seo:",
+ "onboarding.start.skip": "Nach bhfuil cabhair uait le tosú?",
+ "onboarding.start.title": "Tá sé déanta agat!",
+ "onboarding.steps.follow_people.body": "Is éard atá i gceist le daoine suimiúla a leanúint ná Mastodon.",
+ "onboarding.steps.follow_people.title": "Cuir do chuid fotha baile in oiriúint duit féin",
+ "onboarding.steps.publish_status.body": "Abair heileo leis an domhan le téacs, grianghraif, físeáin nó pobalbhreith {emoji}",
+ "onboarding.steps.publish_status.title": "Déan do chéad phostáil",
+ "onboarding.steps.setup_profile.body": "Cuir le d'idirghníomhaíochtaí trí phróifíl chuimsitheach a bheith agat.",
+ "onboarding.steps.setup_profile.title": "Déan do phróifíl a phearsantú",
+ "onboarding.steps.share_profile.body": "Cuir in iúl do do chairde conas tú a aimsiú ar Mastodon",
+ "onboarding.steps.share_profile.title": "Roinn do phróifíl Mastodon",
+ "onboarding.tips.2fa": "An raibh a fhios agat? Is féidir leat do chuntas a dhéanamh slán trí fhíordheimhniú dhá fhachtóir a shocrú i socruithe do chuntais. Oibríonn sé le haon aip TOTP de do rogha féin, níl aon uimhir theileafóin riachtanach!",
+ "onboarding.tips.accounts_from_other_servers": "An raibh a fhios agat? Ós rud é go bhfuil Mastodon díláraithe, déanfar roinnt próifílí a dtagann tú trasna orthu a óstáil ar fhreastalaithe seachas do fhreastalaithe. Agus fós is féidir leat idirghníomhú leo gan uaim! Tá an freastalaí acu sa dara leath dá n-ainm úsáideora!",
+ "onboarding.tips.migration": "An raibh a fhios agat? Más dóigh leat nach rogha freastalaí iontach é {domain} amach anseo, is féidir leat bogadh go freastalaí Mastodon eile gan do leantóirí a chailliúint. Is féidir leat do fhreastalaí féin a óstáil fiú!",
+ "onboarding.tips.verification": "An raibh a fhios agat? Is féidir leat do chuntas a fhíorú trí nasc a chur le do phróifíl Mastodon ar do shuíomh Gréasáin féin agus an suíomh Gréasáin a chur le do phróifíl. Níl aon táillí nó doiciméid riachtanach!",
+ "password_confirmation.exceeds_maxlength": "Sáraíonn dearbhú pasfhocail uasfhad an phasfhocail",
+ "password_confirmation.mismatching": "Ní hionann dearbhú pasfhocail",
"picture_in_picture.restore": "Cuir é ar ais",
"poll.closed": "Dúnta",
"poll.refresh": "Athnuaigh",
+ "poll.reveal": "Féach torthaí",
"poll.total_people": "{count, plural, one {# duine} other {# duine}}",
"poll.total_votes": "{count, plural, one {# vóta} other {# vóta}}",
"poll.vote": "Vótáil",
@@ -384,11 +658,22 @@
"poll.votes": "{votes, plural, one {# vóta} other {# vóta}}",
"poll_button.add_poll": "Cruthaigh suirbhé",
"poll_button.remove_poll": "Bain suirbhé",
- "privacy.change": "Adjust status privacy",
+ "privacy.change": "Athraigh príobháideacht postála",
+ "privacy.direct.long": "Luaigh gach duine sa phost",
+ "privacy.direct.short": "Daoine ar leith",
+ "privacy.private.long": "Do leanúna amháin",
+ "privacy.private.short": "Leantóirí",
+ "privacy.public.long": "Duine ar bith ar agus amach Mastodon",
"privacy.public.short": "Poiblí",
+ "privacy.unlisted.additional": "Iompraíonn sé seo díreach mar a bheadh poiblí, ach amháin ní bheidh an postáil le feiceáil i bhfothaí beo nó i hashtags, in iniúchadh nó i gcuardach Mastodon, fiú má tá tú liostáilte ar fud an chuntais.",
+ "privacy.unlisted.long": "Níos lú fanfarraí algarthacha",
+ "privacy.unlisted.short": "Poiblí ciúin",
+ "privacy_policy.last_updated": "Nuashonraithe {date}",
"privacy_policy.title": "Polasaí príobháideachais",
+ "recommended": "Molta",
"refresh": "Athnuaigh",
"regeneration_indicator.label": "Ag lódáil…",
+ "regeneration_indicator.sublabel": "Tá do bheathú baile á ullmhú!",
"relative_time.days": "{number}l",
"relative_time.full.days": "{number, plural, one {# lá} other {# lá}} ó shin",
"relative_time.full.hours": "{number, plural, one {# uair} other {# uair}} ó shin",
@@ -400,123 +685,190 @@
"relative_time.minutes": "{number}n",
"relative_time.seconds": "{number}s",
"relative_time.today": "inniu",
+ "reply_indicator.attachments": "{count, plural, one {# alán} two {# aláin} few {# aláin} many {# aláin} other {# aláin}}",
"reply_indicator.cancel": "Cealaigh",
+ "reply_indicator.poll": "Vótaíocht",
"report.block": "Bac",
"report.block_explanation": "Ní fheicfidh tú a c(h)úid postálacha. Ní bheidh sé/sí in ann do chuid postálacha a fheiceáil ná tú féin a leanúint. Beidh sé/sí in ann a dhéanamh amach go bhfuil sé/sí bactha.",
+ "report.categories.legal": "Dlíthiúil",
"report.categories.other": "Eile",
"report.categories.spam": "Turscar",
"report.categories.violation": "Sáraíonn ábhar riail freastalaí amháin nó níos mó",
"report.category.subtitle": "Roghnaigh an toradh is fearr",
+ "report.category.title": "Inis dúinn cad atá ar siúl leis an {type} seo",
"report.category.title_account": "próifíl",
"report.category.title_status": "postáil",
"report.close": "Déanta",
+ "report.comment.title": "An bhfuil aon rud eile ba chóir dúinn a fhios agat, dar leat?",
"report.forward": "Seol ar aghaidh chun {target}",
+ "report.forward_hint": "Is ó fhreastalaí eile an cuntas. Cuir cóip gan ainm den tuarascáil ansin freisin?",
"report.mute": "Balbhaigh",
"report.mute_explanation": "Ní fheicfidh tú a postálacha. Is féidir an té seo tú a leanúint agus do phostálacha a fheiceáil, agus ní fhios go bhfuil iad balbhaithe.",
"report.next": "An céad eile",
"report.placeholder": "Ráitis bhreise",
"report.reasons.dislike": "Ní maith liom é",
+ "report.reasons.dislike_description": "Ní rud é ba mhaith leat a fheiceáil",
+ "report.reasons.legal": "Tá sé mídhleathach",
+ "report.reasons.legal_description": "Creideann tú go sáraíonn sé dlí do thíre nó do thír an fhreastalaí",
"report.reasons.other": "Is rud eile é",
+ "report.reasons.other_description": "Ní luíonn an cheist le catagóirí eile",
"report.reasons.spam": "Is turscar é",
+ "report.reasons.spam_description": "Naisc mhailíseacha, rannpháirtíocht bhréige, nó freagraí athchleachtach",
"report.reasons.violation": "Sáraíonn sé rialacha an fhreastalaí",
"report.reasons.violation_description": "Tá a fhios agat go sáraíonn sé rialacha ar leith",
"report.rules.subtitle": "Roghnaigh gach atá i bhfeidhm",
"report.rules.title": "Cén rialacha atá á sárú?",
"report.statuses.subtitle": "Roghnaigh gach atá i bhfeidhm",
+ "report.statuses.title": "An bhfuil aon phoist a thacaíonn leis an tuarascáil seo?",
"report.submit": "Cuir isteach",
"report.target": "Ag tuairisciú {target}",
+ "report.thanks.take_action": "Seo do roghanna chun an méid a fheiceann tú ar Mastodon a rialú:",
+ "report.thanks.take_action_actionable": "Agus é seo á athbhreithniú againn, is féidir leat caingean a dhéanamh in aghaidh @{name}:",
+ "report.thanks.title": "Ná bí ag iarraidh é seo a fheiceáil?",
+ "report.thanks.title_actionable": "Go raibh maith agat as tuairisc a thabhairt, scrúdóimid é seo.",
"report.unfollow": "Ná lean @{name}",
+ "report.unfollow_explanation": "Tá tú ag leanúint an chuntais seo. Chun nach bhfeicfidh tú a bpoist i do fhotha baile a thuilleadh, dílean iad.",
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
+ "report_notification.categories.legal": "Dlíthiúil",
+ "report_notification.categories.legal_sentence": "ábhar mídhleathach",
"report_notification.categories.other": "Eile",
+ "report_notification.categories.other_sentence": "eile",
"report_notification.categories.spam": "Turscar",
+ "report_notification.categories.spam_sentence": "turscar",
"report_notification.categories.violation": "Sárú rialach",
+ "report_notification.categories.violation_sentence": "sárú riail",
"report_notification.open": "Oscail tuairisc",
+ "search.no_recent_searches": "Níl aon chuardach le déanaí",
"search.placeholder": "Cuardaigh",
+ "search.quick_action.account_search": "Próifílí a mheaitseálann {x}",
+ "search.quick_action.go_to_account": "Téigh go próifíl {x}",
+ "search.quick_action.go_to_hashtag": "Téigh chuig hashtag {x}",
+ "search.quick_action.open_url": "Oscail URL i Mastodon",
+ "search.quick_action.status_search": "Postálacha a mheaitseálann {x}",
"search.search_or_paste": "Cuardaigh nó cuir URL isteach",
- "search_results.all": "Uile",
- "search_results.hashtags": "Haischlibeanna",
+ "search_popout.full_text_search_disabled_message": "Níl sé ar fáil ar {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Ar fáil ach amháin nuair atá tú logáilte isteach.",
+ "search_popout.language_code": "Cód teanga ISO",
+ "search_popout.options": "Roghanna cuardaigh",
+ "search_popout.quick_actions": "Gníomhartha tapa",
+ "search_popout.recent": "Cuardach le déanaí",
+ "search_popout.specific_date": "dáta ar leith",
+ "search_popout.user": "úsáideoir",
+ "search_results.accounts": "Próifílí",
+ "search_results.all": "Gach",
+ "search_results.hashtags": "Haischlib",
+ "search_results.nothing_found": "Níorbh fhéidir aon rud a aimsiú do na téarmaí cuardaigh seo",
+ "search_results.see_all": "Gach rud a fheicáil",
"search_results.statuses": "Postálacha",
"search_results.title": "Cuardaigh ar thóir {q}",
+ "server_banner.about_active_users": "Daoine a úsáideann an freastalaí seo le 30 lá anuas (Úsáideoirí Gníomhacha Míosúla)",
"server_banner.active_users": "úsáideoirí gníomhacha",
+ "server_banner.administered_by": "Arna riar ag:",
+ "server_banner.is_one_of_many": "Tá {domain} ar cheann de na freastalaithe Mastodon neamhspleácha go leor is féidir leat a úsáid chun páirt a ghlacadh sa feiliúnach.",
"server_banner.server_stats": "Staitisticí freastalaí:",
"sign_in_banner.create_account": "Cruthaigh cuntas",
+ "sign_in_banner.follow_anyone": "Lean aon duine ar fud an fhealsúnachta agus féach ar fad in ord croineolaíoch. Gan algartam, fógraí, nó clickbait i radharc.",
+ "sign_in_banner.mastodon_is": "Is é Mastodon an bealach is fearr le coinneáil suas lena bhfuil ag tarlú.",
"sign_in_banner.sign_in": "Sinigh isteach",
- "status.admin_status": "Open this status in the moderation interface",
+ "sign_in_banner.sso_redirect": "Logáil isteach nó Cláraigh",
+ "status.admin_account": "Oscail comhéadan modhnóireachta do @{name}",
+ "status.admin_domain": "Oscail comhéadan modhnóireachta le haghaidh {domain}",
+ "status.admin_status": "Oscail an postáil seo sa chomhéadan modhnóireachta",
"status.block": "Bac @{name}",
"status.bookmark": "Leabharmharcanna",
"status.cancel_reblog_private": "Dímhol",
"status.cannot_reblog": "Ní féidir an phostáil seo a mholadh",
- "status.copy": "Copy link to status",
+ "status.continued_thread": "Snáithe ar lean",
+ "status.copy": "Cóipeáil an nasc chuig an bpostáil",
"status.delete": "Scrios",
+ "status.detailed_status": "Amharc comhrá mionsonraithe",
+ "status.direct": "Luaigh @{name} go príobháideach",
+ "status.direct_indicator": "Lua príobháideach",
"status.edit": "Cuir in eagar",
+ "status.edited": "Arna chuir in eagar anuas {date}",
"status.edited_x_times": "Curtha in eagar {count, plural, one {{count} uair amháin} two {{count} uair} few {{count} uair} many {{count} uair} other {{count} uair}}",
- "status.embed": "Leabaigh",
+ "status.embed": "Faigh cód leabú",
+ "status.favourite": "Is fearr leat",
+ "status.favourites": "{count, plural, one {a bhfuil grá agat do} two {gráite} few {gráite} many {gráite} other {gráite}}",
"status.filter": "Déan scagadh ar an bpostáil seo",
- "status.filtered": "Scagtha",
- "status.hide": "Cuir postáil i bhfolach",
"status.history.created": "Chruthaigh {name} {date}",
"status.history.edited": "Curtha in eagar ag {name} in {date}",
"status.load_more": "Lódáil a thuilleadh",
+ "status.media.open": "Cliceáil chun oscailt",
+ "status.media.show": "Cliceáil chun a thaispeáint",
"status.media_hidden": "Cuirtear meáin i bhfolach",
"status.mention": "Luaigh @{name}",
"status.more": "Tuilleadh",
"status.mute": "Balbhaigh @{name}",
"status.mute_conversation": "Balbhaigh comhrá",
- "status.open": "Expand this status",
+ "status.open": "Leathnaigh an post seo",
"status.pin": "Pionnáil ar do phróifíl",
"status.pinned": "Postáil pionnáilte",
"status.read_more": "Léan a thuilleadh",
- "status.reblog": "Mol",
+ "status.reblog": "Treisiú",
"status.reblog_private": "Mol le léargas bunúsach",
"status.reblogged_by": "Mhol {name}",
+ "status.reblogs": "{count, plural, one {buaic} other {buaic}}",
"status.reblogs.empty": "Níor mhol éinne an phostáil seo fós. Nuair a mholfaidh duine éigin í, taispeánfar anseo é sin.",
"status.redraft": "Scrios ⁊ athdhréachtaigh",
+ "status.remove_bookmark": "Bain leabharmharc",
+ "status.replied_in_thread": "D'fhreagair sa snáithe",
+ "status.replied_to": "D'fhreagair {name}",
"status.reply": "Freagair",
"status.replyAll": "Freagair le snáithe",
"status.report": "Tuairiscigh @{name}",
"status.sensitive_warning": "Ábhar íogair",
"status.share": "Comhroinn",
- "status.show_filter_reason": "Taispeáin ar aon nós",
- "status.show_less": "Taispeáin níos lú",
"status.show_less_all": "Taispeáin níos lú d'uile",
- "status.show_more": "Taispeáin níos mó",
"status.show_more_all": "Taispeáin níos mó d'uile",
"status.show_original": "Taispeáin bunchóip",
- "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
+ "status.title.with_attachments": "{user} a sheol {attachmentCount, plural, one {ceangal} two {{attachmentCount} ceangal} few {{attachmentCount} ceangail} many {{attachmentCount} ceangal} other {{attachmentCount} ceangal}}",
"status.translate": "Aistrigh",
"status.translated_from_with": "D'Aistrigh ón {lang} ag úsáid {provider}",
+ "status.uncached_media_warning": "Níl an réamhamharc ar fáil",
"status.unmute_conversation": "Díbhalbhaigh comhrá",
"status.unpin": "Díphionnáil de do phróifíl",
+ "subscribed_languages.lead": "Ní bheidh ach postálacha i dteangacha roghnaithe le feiceáil ar do bhaile agus liostaí amlínte tar éis an athraithe. Roghnaigh ceann ar bith chun postálacha a fháil i ngach teanga.",
"subscribed_languages.save": "Sábháil athruithe",
+ "subscribed_languages.target": "Athraigh teangacha suibscríofa le haghaidh {target}",
"tabs_bar.home": "Baile",
"tabs_bar.notifications": "Fógraí",
"time_remaining.days": "{number, plural, one {# lá} other {# lá}} fágtha",
"time_remaining.hours": "{number, plural, one {# uair} other {# uair}} fágtha",
"time_remaining.minutes": "{number, plural, one {# nóiméad} other {# nóiméad}} fágtha",
+ "time_remaining.moments": "Chuimhneacháin fágtha",
"time_remaining.seconds": "{number, plural, one {# soicind} other {# soicind}} fágtha",
- "timeline_hint.resources.followers": "Leantóirí",
- "timeline_hint.resources.follows": "Cuntais leanta",
- "timeline_hint.resources.statuses": "Postáilí níos sine",
"trends.counter_by_accounts": "{count, plural, one {{counter} duine} other {{counter} duine}} le {days, plural, one {lá} other {{days} lá}} anuas",
"trends.trending_now": "Ag treochtáil anois",
+ "ui.beforeunload": "Caillfear do dhréacht má fhágann tú Mastodon.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}k",
"upload_area.title": "Tarraing ⁊ scaoil chun uaslódáil",
- "upload_form.audio_description": "Describe for people with hearing loss",
+ "upload_button.label": "Cuir íomhánna, físeán nó comhad fuaime leis",
+ "upload_error.limit": "Sáraíodh an teorainn uaslódála comhaid.",
+ "upload_error.poll": "Ní cheadaítear uaslódáil comhad le pobalbhreith.",
+ "upload_form.audio_description": "Déan cur síos ar dhaoine bodhra nó lagéisteachta",
"upload_form.description": "Describe for the visually impaired",
"upload_form.edit": "Cuir in eagar",
- "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+ "upload_form.thumbnail": "Athraigh mionsamhail",
+ "upload_form.video_description": "Déan cur síos ar dhaoine atá bodhar, lagéisteachta, dall nó lagamhairc",
"upload_modal.analyzing_picture": "Ag anailísiú íomhá…",
"upload_modal.apply": "Cuir i bhFeidhm",
"upload_modal.applying": "Á gcur i bhfeidhm…",
"upload_modal.choose_image": "Roghnaigh íomhá",
"upload_modal.description_placeholder": "Chuaigh bé mhórsách le dlúthspád fíorfhinn trí hata mo dhea-phorcáin bhig",
+ "upload_modal.detect_text": "Braith téacs ó phictiúr",
"upload_modal.edit_media": "Cuir gné in eagar",
+ "upload_modal.hint": "Cliceáil nó tarraing an ciorcal ar an réamhamharc chun an pointe fócasach a roghnú a bheidh le feiceáil i gcónaí ar na mionsamhlacha go léir.",
+ "upload_modal.preparing_ocr": "OCR á ullmhú…",
+ "upload_modal.preview_label": "Réamhamharc ({ratio})",
"upload_progress.label": "Ag uaslódáil...",
"upload_progress.processing": "Ag próiseáil…",
+ "username.taken": "Glactar leis an ainm úsáideora sin. Bain triail eile as",
"video.close": "Dún físeán",
"video.download": "Íoslódáil comhad",
+ "video.exit_fullscreen": "Scoir scáileán iomlán",
"video.expand": "Leath físeán",
"video.fullscreen": "Lánscáileán",
"video.hide": "Cuir físeán i bhfolach",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index 714fa6e364b..8f51d43ef85 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -11,7 +11,7 @@
"about.not_available": "Cha deach am fiosrachadh seo a sholar air an fhrithealaiche seo.",
"about.powered_by": "Lìonra sòisealta sgaoilte le cumhachd {mastodon}",
"about.rules": "Riaghailtean an fhrithealaiche",
- "account.account_note_header": "Nòta",
+ "account.account_note_header": "Nòta pearsanta",
"account.add_or_remove_from_list": "Cuir ris no thoir air falbh o liostaichean",
"account.badges.bot": "Fèin-obrachail",
"account.badges.group": "Buidheann",
@@ -19,7 +19,6 @@
"account.block_domain": "Bac an àrainn {domain}",
"account.block_short": "Bac",
"account.blocked": "’Ga bhacadh",
- "account.browse_more_on_origin_server": "Rùraich barrachd dheth air a’ phròifil thùsail",
"account.cancel_follow_request": "Sguir dhen leantainn",
"account.copy": "Dèan lethbhreac dhen cheangal dhan phròifil",
"account.direct": "Thoir iomradh air @{name} gu prìobhaideach",
@@ -35,9 +34,9 @@
"account.follow_back": "Lean air ais",
"account.followers": "Luchd-leantainn",
"account.followers.empty": "Chan eil neach sam bith a’ leantainn air a’ chleachdaiche seo fhathast.",
- "account.followers_counter": "{count, plural, one {{counter} neach-leantainn} two {{counter} neach-leantainn} few {{counter} luchd-leantainn} other {{counter} luchd-leantainn}}",
+ "account.followers_counter": "{count, plural, one {{counter} neach-leantainn} other {{counter} luchd-leantainn}}",
"account.following": "A’ leantainn",
- "account.following_counter": "{count, plural, one {A’ leantainn {counter}} two {A’ leantainn {counter}} few {A’ leantainn {counter}} other {A’ leantainn {counter}}}",
+ "account.following_counter": "{count, plural, one {A’ leantainn {counter}} other {A’ leantainn {counter}}}",
"account.follows.empty": "Chan eil an cleachdaiche seo a’ leantainn neach sam bith fhathast.",
"account.go_to_profile": "Tadhail air a’ phròifil",
"account.hide_reblogs": "Falaich na brosnachaidhean o @{name}",
@@ -98,6 +97,8 @@
"block_modal.title": "A bheil thu airson an cleachdaiche a bhacadh?",
"block_modal.you_wont_see_mentions": "Chan fhaic thu na postaichean a bheir iomradh orra.",
"boost_modal.combo": "Brùth air {combo} nam b’ fheàrr leat leum a ghearradh thar seo an ath-thuras",
+ "boost_modal.reblog": "A bheil thu airson am post a bhrosnachadh?",
+ "boost_modal.undo_reblog": "A bheil thu airson sgur de bhrosnachadh a’ phuist?",
"bundle_column_error.copy_stacktrace": "Dèan lethbhreac de aithris na mearachd",
"bundle_column_error.error.body": "Cha b’ urrainn dhuinn an duilleag a dh’iarr thu a reandaradh. Dh’fhaoidte gu bheil buga sa chòd againn no duilgheadas co-chòrdalachd leis a’ bhrabhsair.",
"bundle_column_error.error.title": "Ìoc!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Rabhadh susbainte (roghainneil)",
"confirmation_modal.cancel": "Sguir dheth",
"confirmations.block.confirm": "Bac",
- "confirmations.cancel_follow_request.confirm": "Cuir d’ iarrtas dhan dàrna taobh",
- "confirmations.cancel_follow_request.message": "A bheil thu cinnteach gu bheil thu airson d’ iarrtas airson {name} a leantainn a chur dhan dàrna taobh?",
"confirmations.delete.confirm": "Sguab às",
"confirmations.delete.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às?",
+ "confirmations.delete.title": "A bheil thu airson am post a sguabadh às?",
"confirmations.delete_list.confirm": "Sguab às",
"confirmations.delete_list.message": "A bheil thu cinnteach gu bheil thu airson an liosta seo a sguabadh às gu buan?",
+ "confirmations.delete_list.title": "A bheil thu airson an liosta a sguabadh às?",
"confirmations.discard_edit_media.confirm": "Tilg air falbh",
"confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?",
- "confirmations.domain_block.confirm": "Bac am frithealaiche",
- "confirmations.domain_block.message": "A bheil thu cinnteach dha-rìribh gu bheil thu airson an àrainn {domain} a bhacadh uile gu lèir? Mar as trice, foghnaidh gun dèan thu bacadh no mùchadh no dhà gu sònraichte agus bhiodh sin na b’ fheàrr. Chan fhaic thu susbaint on àrainn ud air loidhne-ama phoblach sam bith no am measg nam brathan agad. Thèid an luchd-leantainn agad on àrainn ud a thoirt air falbh.",
"confirmations.edit.confirm": "Deasaich",
"confirmations.edit.message": "Ma nì thu deasachadh an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
+ "confirmations.edit.title": "A bheil thu airson sgrìobhadh thairis air a’ phost?",
"confirmations.logout.confirm": "Clàraich a-mach",
"confirmations.logout.message": "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?",
+ "confirmations.logout.title": "A bheil thu airson clàradh a-mach?",
"confirmations.mute.confirm": "Mùch",
"confirmations.redraft.confirm": "Sguab às ⁊ dèan dreachd ùr",
"confirmations.redraft.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às agus dreachd ùr a thòiseachadh? Caillidh tu gach annsachd is brosnachadh air agus thèid freagairtean dhan phost thùsail ’nan dìlleachdanan.",
+ "confirmations.redraft.title": "A bheil thu airson am post a sguabadh às ⁊ dreachd ùr a dhèanamh dheth?",
"confirmations.reply.confirm": "Freagair",
"confirmations.reply.message": "Ma bheir thu freagairt an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
+ "confirmations.reply.title": "A bheil thu airson sgrìobhadh thairis air a’ phost?",
"confirmations.unfollow.confirm": "Na lean tuilleadh",
"confirmations.unfollow.message": "A bheil thu cinnteach nach eil thu airson {name} a leantainn tuilleadh?",
+ "confirmations.unfollow.title": "A bheil thu airson sgur de leantainn a chleachdaiche?",
+ "content_warning.hide": "Falaich am post",
+ "content_warning.show": "Seall e co-dhiù",
"conversation.delete": "Sguab às an còmhradh",
"conversation.mark_as_read": "Cuir comharra gun deach a leughadh",
"conversation.open": "Seall an còmhradh",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Cleachd roinn-seòrsa a tha ann no cruthaich tè ùr",
"filter_modal.select_filter.title": "Criathraich am post seo",
"filter_modal.title.status": "Criathraich post",
- "filtered_notifications_banner.mentions": "{count, plural, one {iomradh} two {iomradh} few {iomraidhean} other {iomradh}}",
- "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Chan eil brath ann o dhaoine} one {Tha brathan ann o # neach} two {Tha brathan ann o # neach} few {Tha brathan ann o # daoine} other {Tha brathan ann o # duine}} air a bheil thu eòlach ’s dòcha",
+ "filter_warning.matches_filter": "A’ maidseadh na criathraige “{title}”",
+ "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Chan eil gin ann} one {O # neach} two {O # neach} few {O # daoine} other {O # duine}} air a bheil thu eòlach ’s dòcha",
"filtered_notifications_banner.title": "Brathan criathraichte",
"firehose.all": "Na h-uile",
"firehose.local": "Am frithealaiche seo",
@@ -308,6 +314,7 @@
"follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.",
"follow_suggestions.curated_suggestion": "Roghainn an sgioba",
"follow_suggestions.dismiss": "Na seall seo a-rithist",
+ "follow_suggestions.featured_longer": "Chaidh a thaghadh a làmh leis an sgioba aig {domain}",
"follow_suggestions.friends_of_friends_longer": "Fèill mhòr am measg nan daoine a leanas tu",
"follow_suggestions.hints.featured": "Chaidh a’ phròifil seo a thaghadh le sgioba {domain} a làimh.",
"follow_suggestions.hints.friends_of_friends": "Tha fèill mhòr air a’ phròifil seo am measg nan daoine a leanas tu.",
@@ -317,6 +324,7 @@
"follow_suggestions.personalized_suggestion": "Moladh pearsanaichte",
"follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhòr",
"follow_suggestions.popular_suggestion_longer": "Fèill mhòr air {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Tha e coltach ri pròifilean a lean thu o chionn goirid",
"follow_suggestions.view_all": "Seall na h-uile",
"follow_suggestions.who_to_follow": "Molaidhean leantainn",
"followed_tags": "Tagaichean hais ’gan leantainn",
@@ -345,6 +353,14 @@
"hashtag.follow": "Lean an taga hais",
"hashtag.unfollow": "Na lean an taga hais tuilleadh",
"hashtags.and_other": "…agus {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}",
+ "hints.profiles.followers_may_be_missing": "Dh’fhaoidte gu bheil cuid dhen luchd-leantainn na pròifil seo a dhìth.",
+ "hints.profiles.follows_may_be_missing": "Dh’fhaoidte gu bheil cuid a tha a’ phròifil seo a’ leantainn a dhìth.",
+ "hints.profiles.posts_may_be_missing": "Dh’fhaoide gu bheil cuid dhe na postaichean aig a’ phròifil seo a dhìth.",
+ "hints.profiles.see_more_followers": "Faic barrachd luchd-leantainn air {domain}",
+ "hints.profiles.see_more_follows": "Faic barrachd a tha 'gan leantainn air {domain}",
+ "hints.profiles.see_more_posts": "Faic barrachd phostaichean air {domain}",
+ "hints.threads.replies_may_be_missing": "Dh’fhaoidte gu bheil freagairtean o fhrithealaichean eile a dhìth.",
+ "hints.threads.see_more": "Faic barrachd fhreagairtean air {domain}",
"home.column_settings.show_reblogs": "Seall na brosnachaidhean",
"home.column_settings.show_replies": "Seall na freagairtean",
"home.hide_announcements": "Falaich na brathan-fios",
@@ -352,6 +368,17 @@
"home.pending_critical_update.link": "Faic na h-ùrachaidhean",
"home.pending_critical_update.title": "Tha ùrachadh tèarainteachd èiginneach ri fhaighinn!",
"home.show_announcements": "Seall na brathan-fios",
+ "ignore_notifications_modal.disclaimer": "Chan urrainn do Mhastodon innse do cheachdaichean gun do leig thu seachad na brathan uapa. Cha bhac leigeil seachad nam brathan gun dèid na teachdaireachdan fhèin a chur.",
+ "ignore_notifications_modal.filter_instead": "Criathraich ’na àite",
+ "ignore_notifications_modal.filter_to_act_users": "’S urrainn dhut gabhail ri cleachdaichean, an diùltadh no gearan a dhèanamh mun dèidhinn fhathast",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Cuidichidh criathradh le rù-rà ma dh’fhaoidte",
+ "ignore_notifications_modal.filter_to_review_separately": "’S urrainn dhut sùil fa leth a thoirt air na brathran criathraichte",
+ "ignore_notifications_modal.ignore": "Leig seachad na brathan",
+ "ignore_notifications_modal.limited_accounts_title": "A bheil thu airson na brathan o chunntasan fo mhaorsainneachd a leigeil seachad?",
+ "ignore_notifications_modal.new_accounts_title": "A bheil thu airson na brathan o chunntasan ùra a leigeil seachad?",
+ "ignore_notifications_modal.not_followers_title": "A bheil thu airson na brathan o dhaoine nach eil ’gad leantainn a leigeil seachad?",
+ "ignore_notifications_modal.not_following_title": "A bheil thu airson na brathan o dhaoine nach eil thu a’ leantainn a leigeil seachad?",
+ "ignore_notifications_modal.private_mentions_title": "A bheil thu airson na brathan o iomraidhean phrìobhaideach gun iarraidh a leigeil seachad?",
"interaction_modal.description.favourite": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a chur ris na h-annsachdan airson innse dhan ùghdar gu bheil e a’ còrdadh dhut ’s a shàbhaladh do uaireigin eile.",
"interaction_modal.description.follow": "Le cunntas air Mastodon, ’s urrainn dhut {name} a leantainn ach am faigh thu na postaichean aca nad dhachaigh.",
"interaction_modal.description.reblog": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a bhrosnachadh gus a cho-roinneadh leis an luchd-leantainn agad fhèin.",
@@ -405,13 +432,15 @@
"keyboard_shortcuts.unfocus": "Thoir am fòcas far raon teacsa an sgrìobhaidh/an luirg",
"keyboard_shortcuts.up": "Gluais suas air an liosta",
"lightbox.close": "Dùin",
- "lightbox.compress": "Co-theannaich bogsa sealladh an deilbh",
- "lightbox.expand": "Leudaich bogsa sealladh an deilbh",
"lightbox.next": "Air adhart",
"lightbox.previous": "Air ais",
+ "lightbox.zoom_in": "Sùm dhan fhìor-mheud",
+ "lightbox.zoom_out": "Sùm fèin-obrachail",
"limited_account_hint.action": "Seall a’ phròifil co-dhiù",
"limited_account_hint.title": "Chaidh a’ phròifil seo fhalach le maoir {domain}.",
"link_preview.author": "Le {name}",
+ "link_preview.more_from_author": "Barrachd le {name}",
+ "link_preview.shares": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}",
"lists.account.add": "Cuir ris an liosta",
"lists.account.remove": "Thoir air falbh on liosta",
"lists.delete": "Sguab às an liosta",
@@ -428,7 +457,7 @@
"lists.subheading": "Na liostaichean agad",
"load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}",
"loading_indicator.label": "’Ga luchdadh…",
- "media_gallery.toggle_visible": "{number, plural, 1 {Falaich an dealbh} one {Falaich na dealbhan} two {Falaich na dealbhan} few {Falaich na dealbhan} other {Falaich na dealbhan}}",
+ "media_gallery.hide": "Falaich",
"moved_to_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas on a rinn thu imrich gu {movedToAccount}.",
"mute_modal.hide_from_notifications": "Falaich o na brathan",
"mute_modal.hide_options": "Roghainnean falaich",
@@ -440,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Chan fhaic thu na postaichean a bheir iomradh orra.",
"mute_modal.you_wont_see_posts": "Chì iad na postaichean agad fhathast ach chan fhaic thu na postaichean aca-san.",
"navigation_bar.about": "Mu dhèidhinn",
+ "navigation_bar.administration": "Rianachd",
"navigation_bar.advanced_interface": "Fosgail san eadar-aghaidh-lìn adhartach",
"navigation_bar.blocks": "Cleachdaichean bacte",
"navigation_bar.bookmarks": "Comharran-lìn",
@@ -456,6 +486,7 @@
"navigation_bar.follows_and_followers": "Dàimhean leantainn",
"navigation_bar.lists": "Liostaichean",
"navigation_bar.logout": "Clàraich a-mach",
+ "navigation_bar.moderation": "Maorsainneachd",
"navigation_bar.mutes": "Cleachdaichean mùchte",
"navigation_bar.opened_in_classic_interface": "Thèid postaichean, cunntasan ’s duilleagan sònraichte eile fhosgladh san eadar-aghaidh-lìn chlasaigeach a ghnàth.",
"navigation_bar.personal": "Pearsanta",
@@ -466,15 +497,36 @@
"navigation_bar.security": "Tèarainteachd",
"not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.",
"notification.admin.report": "Rinn {name} gearan mu {target}",
+ "notification.admin.report_account": "Rinn {name} gearan mu {count, plural, one {# phost} two {# phost} few {# postaichean} other {# post}} le {target} air adhbhar {category}",
+ "notification.admin.report_account_other": "Rinn {name} gearan mu {count, plural, one {# phost} two {# phost} few {# postaichean} other {# post}} le {target}",
+ "notification.admin.report_statuses": "Rinn {name} gearan mu {target} air adhbhar {category}",
+ "notification.admin.report_statuses_other": "Rinn {name} gearan mu {target}",
"notification.admin.sign_up": "Chlàraich {name}",
+ "notification.admin.sign_up.name_and_others": "Chlàraich {name} ’s {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}",
"notification.favourite": "Is annsa le {name} am post agad",
+ "notification.favourite.name_and_others_with_link": "Is annsa le {name} ’s {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}} am post agad",
"notification.follow": "Tha {name} ’gad leantainn a-nis",
+ "notification.follow.name_and_others": "Lean {name} ’s {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}} thu",
"notification.follow_request": "Dh’iarr {name} ’gad leantainn",
- "notification.mention": "Thug {name} iomradh ort",
+ "notification.follow_request.name_and_others": "Dh’iarr {name} ’s {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}} ’gad leantainn",
+ "notification.label.mention": "Iomradh",
+ "notification.label.private_mention": "Iomradh prìobhaideach",
+ "notification.label.private_reply": "Freagairt phrìobhaideach",
+ "notification.label.reply": "Freagairt",
+ "notification.mention": "Iomradh",
"notification.moderation-warning.learn_more": "Barrachd fiosrachaidh",
+ "notification.moderation_warning": "Fhuair thu rabhadh on mhaorsainneachd",
+ "notification.moderation_warning.action_delete_statuses": "Chaidh cuid dhe na postaichean agad a thoirt air falbh.",
+ "notification.moderation_warning.action_disable": "Chaidh an cunntas agad a chur à comas.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Chaidh comharra a chur ri cuid dhe na postaichean agad gu bheil iad frionasach.",
+ "notification.moderation_warning.action_none": "Fhuair an cunntas agad rabhadh on mhaorsainneachd.",
+ "notification.moderation_warning.action_sensitive": "Thèid comharra na frionasachd a chur ris na postaichean agad o seo a-mach.",
+ "notification.moderation_warning.action_silence": "Chaidh an cunntas agad a chuingeachadh.",
+ "notification.moderation_warning.action_suspend": "Chaidh an cunntas agad a chur à rèim.",
"notification.own_poll": "Thàinig an cunntas-bheachd agad gu crìoch",
"notification.poll": "Thàinig cunntas-bheachd sa bhòt thu gu crìoch",
"notification.reblog": "Bhrosnaich {name} am post agad",
+ "notification.reblog.name_and_others_with_link": "Bhrosnaich {name} ’s {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}} am post agad",
"notification.relationships_severance_event": "Chaill thu dàimhean le {name}",
"notification.relationships_severance_event.account_suspension": "Chuir rianaire aig {from} {target} à rèim agus is ciall dha sin nach fhaigh thu naidheachdan uapa ’s nach urrainn dhut conaltradh leotha.",
"notification.relationships_severance_event.domain_block": "Bhac rianaire aig {from} {target}, a’ gabhail a-staigh {followersCount} dhen luchd-leantainn agad agus {followingCount, plural, one {# chunntas} two {# chunntas} few {# cunntasan} other {# cunntas}} a tha thu fhèin a’ leantainn.",
@@ -483,11 +535,27 @@
"notification.status": "Phostaich {name} rud",
"notification.update": "Dheasaich {name} post",
"notification_requests.accept": "Gabh ris",
+ "notification_requests.accept_multiple": "{count, plural, one {Gabh ri # iarrtas…} two {Gabh ri # iarrtas…} few {Gabh ri # iarrtasan…} other {Gabh ri # iarrtas…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Gabh ris an t-iarrtas} two {Gabh ris na h-iarrtasan} few {Gabh ris na h-iarrtasan} other {Gabh ris na h-iarrtasan}}",
+ "notification_requests.confirm_accept_multiple.message": "Tha thu gu bhith gabhail ri {count, plural, one {# iarrtas bratha} two {# iarrtas bratha} few {# iarrtasan bratha} other {# iarrtas bratha}} a leigeil seachad. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
+ "notification_requests.confirm_accept_multiple.title": "A bheil thu airson gabhail ri iarrtasan bratha?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Leig seachad an t-iarrtas} two {Leig seachad na h-iarrtasan} few {Leig seachad na h-iarrtasan} other {Leig seachad na h-iarrtasan}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Tha thu gu bhith {count, plural, one {# iarrtas bratha} two {# iarrtas bratha} few {# iarrtasan bratha} other {# iarrtas bratha}} a leigeil seachad. Chan fhaigh thu grèim {count, plural, one {air} two {orra} few {orra} other {orra}} a-rithist gun duilgheadas. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
+ "notification_requests.confirm_dismiss_multiple.title": "A bheil thu airson iarrtasan bratha a leigeil seachad?",
"notification_requests.dismiss": "Leig seachad",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Leig seachad # iarrtas…} two {Leig seachad # iarrtas…} few {Leig seachad # iarrtasan…} other {Leig seachad # iarrtas…}}",
+ "notification_requests.edit_selection": "Deasaich",
+ "notification_requests.exit_selection": "Deiseil",
+ "notification_requests.explainer_for_limited_account": "Chaidh na brathan on chunntas seo a chriathradh on a chaidh an cunntas a chuingeachadh le maor.",
+ "notification_requests.explainer_for_limited_remote_account": "Chaidh na brathan on chunntas seo a chriathradh on a chaidh an cunntas no am frithealaiche aige a chuingeachadh le maor.",
+ "notification_requests.maximize": "Làn-mheudaich",
+ "notification_requests.minimize_banner": "Fìor-lùghdaich bratach nam brathan criathraichte",
"notification_requests.notifications_from": "Brathan o {name}",
"notification_requests.title": "Brathan criathraichte",
+ "notification_requests.view": "Seall na brathan",
"notifications.clear": "Falamhaich na brathan",
"notifications.clear_confirmation": "A bheil thu cinnteach gu bheil thu airson na brathan uile agad fhalamhachadh gu buan?",
+ "notifications.clear_title": "A bheil thu airson na brathan fhalamhachadh?",
"notifications.column_settings.admin.report": "Gearanan ùra:",
"notifications.column_settings.admin.sign_up": "Clàraidhean ùra:",
"notifications.column_settings.alert": "Brathan deasga",
@@ -519,15 +587,23 @@
"notifications.permission_denied": "Chan eil brathan deasga ri fhaighinn on a chaidh iarrtas ceadan a’ bhrabhsair a dhiùltadh cheana",
"notifications.permission_denied_alert": "Cha ghabh brathan deasga a chur an comas on a chaidh iarrtas ceadan a’ bhrabhsair a dhiùltadh cheana",
"notifications.permission_required": "Chan eil brathan deasga ri fhaighinn on nach deach an cead riatanach a thoirt seachad.",
+ "notifications.policy.accept": "Gabh ris",
+ "notifications.policy.accept_hint": "Seall sna brathan",
+ "notifications.policy.drop": "Leig seachad",
+ "notifications.policy.drop_hint": "Cuir a-mach à sealladh gu buan",
+ "notifications.policy.filter": "Criathraich",
+ "notifications.policy.filter_hint": "Cuir gu bogsa a-steach nam brathan criathraichte",
+ "notifications.policy.filter_limited_accounts_hint": "Cuingichte le maoir an fhrithealaiche",
+ "notifications.policy.filter_limited_accounts_title": "Cunntasan fo mhaorsainneachd",
"notifications.policy.filter_new_accounts.hint": "A chaidh a chruthachadh o chionn {days, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}",
"notifications.policy.filter_new_accounts_title": "Cunntasan ùra",
- "notifications.policy.filter_not_followers_hint": "A’ gabhail a-staigh an fheadhainn a lean ort nas lugha na {days, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} seo chaidh",
+ "notifications.policy.filter_not_followers_hint": "A’ gabhail a-staigh an fheadhainn a lean thu nas lugha na {days, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} seo chaidh",
"notifications.policy.filter_not_followers_title": "Daoine nach eil gad leantainn",
"notifications.policy.filter_not_following_hint": "Gus an aontaich thu riutha a làimh",
"notifications.policy.filter_not_following_title": "Daoine nach eil thu a’ leantainn",
"notifications.policy.filter_private_mentions_hint": "Criathraichte ach ma tha e a’ freagairt do dh’iomradh agad fhèin no ma tha thu a’ leantainn an t-seòladair",
"notifications.policy.filter_private_mentions_title": "Iomraidhean prìobhaideach o choigrich",
- "notifications.policy.title": "Falamhaich na brathan o…",
+ "notifications.policy.title": "Stiùirich na brathan o…",
"notifications_permission_banner.enable": "Cuir brathan deasga an comas",
"notifications_permission_banner.how_to_control": "Airson brathan fhaighinn nuair nach eil Mastodon fosgailte, cuir na brathan deasga an comas. Tha an smachd agad fhèin air dè na seòrsaichean de chonaltradh a ghineas brathan deasga leis a’ phutan {icon} gu h-àrd nuair a bhios iad air an cur an comas.",
"notifications_permission_banner.title": "Na caill dad gu bràth tuilleadh",
@@ -654,9 +730,13 @@
"report.unfollow_explanation": "Tha thu a’ leantainn a’ chunntais seo. Sgur dhen leantainn ach nach fhaic thu na puist aca nad dhachaigh.",
"report_notification.attached_statuses": "Tha {count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}} ceangailte ris",
"report_notification.categories.legal": "Laghail",
+ "report_notification.categories.legal_sentence": "susbaint mhì-laghail",
"report_notification.categories.other": "Eile",
+ "report_notification.categories.other_sentence": "eile",
"report_notification.categories.spam": "Spama",
+ "report_notification.categories.spam_sentence": "spama",
"report_notification.categories.violation": "Briseadh riaghailte",
+ "report_notification.categories.violation_sentence": "briseadh riaghailte",
"report_notification.open": "Fosgail an gearan",
"search.no_recent_searches": "Cha do rinn thu lorg o chionn goirid",
"search.placeholder": "Lorg",
@@ -684,8 +764,11 @@
"server_banner.about_active_users": "Daoine a chleachd am frithealaiche seo rè an 30 latha mu dheireadh (Cleachdaichean gnìomhach gach mìos)",
"server_banner.active_users": "cleachdaichean gnìomhach",
"server_banner.administered_by": "Rianachd le:",
+ "server_banner.is_one_of_many": "Is {domain} fear de dh’iomadh frithealaiche Mastodon neo-eisimeileach as urrainn dhut cleachdadh airson pàirt a ghabhail sa cho-shaoghal.",
"server_banner.server_stats": "Stadastaireachd an fhrithealaiche:",
"sign_in_banner.create_account": "Cruthaich cunntas",
+ "sign_in_banner.follow_anyone": "Lean duine sam bith air a’ cho-shaoghal agus faic a h-uile càil a-rèir an ama. Chan eil sgeul air algairimean, sanasachd no clickbait.",
+ "sign_in_banner.mastodon_is": "Is Mastodon an dòigh as fheàrr airson sùil a chumail air na tha a’ dol.",
"sign_in_banner.sign_in": "Clàraich a-steach",
"sign_in_banner.sso_redirect": "Clàraich a-steach no clàraich leinn",
"status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}",
@@ -695,6 +778,7 @@
"status.bookmark": "Cuir ris na comharran-lìn",
"status.cancel_reblog_private": "Na brosnaich tuilleadh",
"status.cannot_reblog": "Cha ghabh am post seo brosnachadh",
+ "status.continued_thread": "Pàirt de shnàithlean",
"status.copy": "Dèan lethbhreac dhen cheangal dhan phost",
"status.delete": "Sguab às",
"status.detailed_status": "Mion-shealladh a’ chòmhraidh",
@@ -703,12 +787,10 @@
"status.edit": "Deasaich",
"status.edited": "An deasachadh mu dheireadh {date}",
"status.edited_x_times": "Chaidh a dheasachadh {count, plural, one {{count} turas} two {{count} thuras} few {{count} tursan} other {{count} turas}}",
- "status.embed": "Leabaich",
+ "status.embed": "Faigh còd leabachaidh",
"status.favourite": "Cuir ris na h-annsachdan",
"status.favourites": "{count, plural, one {annsachd} two {annsachd} few {annsachdan} other {annsachd}}",
"status.filter": "Criathraich am post seo",
- "status.filtered": "Criathraichte",
- "status.hide": "Falaich am post",
"status.history.created": "Chruthaich {name} {date} e",
"status.history.edited": "Dheasaich {name} {date} e",
"status.load_more": "Luchdaich barrachd dheth",
@@ -730,16 +812,14 @@
"status.reblogs.empty": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.",
"status.redraft": "Sguab às ⁊ dèan dreachd ùr",
"status.remove_bookmark": "Thoir an comharra-lìn air falbh",
+ "status.replied_in_thread": "Freagairt do shnàithlean",
"status.replied_to": "Air {name} fhreagairt",
"status.reply": "Freagair",
"status.replyAll": "Freagair dhan t-snàithlean",
"status.report": "Dèan gearan mu @{name}",
"status.sensitive_warning": "Susbaint fhrionasach",
"status.share": "Co-roinn",
- "status.show_filter_reason": "Seall e co-dhiù",
- "status.show_less": "Seall nas lugha dheth",
"status.show_less_all": "Seall nas lugha dhen a h-uile",
- "status.show_more": "Seall barrachd dheth",
"status.show_more_all": "Seall barrachd dhen a h-uile",
"status.show_original": "Seall an tionndadh tùsail",
"status.title.with_attachments": "Phostaich {user} {attachmentCount, plural, one {{attachmentCount} cheanglachan} two {{attachmentCount} cheanglachan} few {{attachmentCount} ceanglachain} other {{attachmentCount} ceanglachan}}",
@@ -758,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}} air fhàgail",
"time_remaining.moments": "Cha doir e ach greiseag",
"time_remaining.seconds": "{number, plural, one {# diog} two {# dhiog} few {# diogan} other {# diog}} air fhàgail",
- "timeline_hint.remote_resource_not_displayed": "Cha dèid {resource} o fhrithealaichean eile a shealltainn.",
- "timeline_hint.resources.followers": "luchd-leantainn",
- "timeline_hint.resources.follows": "an fheadhainn gan leantainn",
- "timeline_hint.resources.statuses": "postaichean nas sine",
"trends.counter_by_accounts": "{count, plural, one {{counter} neach} two {{counter} neach} few {{counter} daoine} other {{counter} duine}} {days, plural, one {san {days} latha} two {san {days} latha} few {sna {days} làithean} other {sna {days} latha}} seo chaidh",
"trends.trending_now": "A’ treandadh an-dràsta",
"ui.beforeunload": "Caillidh tu an dreachd agad ma dh’fhàgas tu Mastodon an-dràsta.",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 7b77f980349..f2ea6ee9001 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -11,7 +11,7 @@
"about.not_available": "Esta información non está dispoñible neste servidor.",
"about.powered_by": "Comunicación social descentralizada grazas a {mastodon}",
"about.rules": "Regras do servidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota persoal",
"account.add_or_remove_from_list": "Engadir ou eliminar das listaxes",
"account.badges.bot": "Automatizada",
"account.badges.group": "Grupo",
@@ -19,7 +19,6 @@
"account.block_domain": "Agochar todo de {domain}",
"account.block_short": "Bloquear",
"account.blocked": "Bloqueada",
- "account.browse_more_on_origin_server": "Busca máis no perfil orixinal",
"account.cancel_follow_request": "Desbotar a solicitude de seguimento",
"account.copy": "Copiar ligazón ao perfil",
"account.direct": "Mencionar de xeito privado a @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Seguir tamén",
"account.followers": "Seguidoras",
"account.followers.empty": "Aínda ninguén segue esta usuaria.",
- "account.followers_counter": "{count, plural, one {{counter} Seguidora} other {{counter} Seguidoras}}",
+ "account.followers_counter": "{count, plural, one {{counter} seguidora} other {{counter} seguidoras}}",
"account.following": "Seguindo",
- "account.following_counter": "{count, plural, one {{counter} Seguindo} other {{counter} Seguindo}}",
+ "account.following_counter": "{count, plural, one {{counter} seguimento} other {{counter} seguimentos}}",
"account.follows.empty": "Esta usuaria aínda non segue a ninguén.",
"account.go_to_profile": "Ir ao perfil",
"account.hide_reblogs": "Agochar promocións de @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} solicitou seguirte",
"account.share": "Compartir o perfil de @{name}",
"account.show_reblogs": "Amosar compartidos de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicacións}}",
+ "account.statuses_counter": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}",
"account.unblock": "Desbloquear @{name}",
"account.unblock_domain": "Amosar {domain}",
"account.unblock_short": "Desbloquear",
@@ -92,12 +91,14 @@
"block_modal.remote_users_caveat": "Ímoslle pedir ao servidor {domain} que respecte a túa decisión. Emporiso, non hai garantía de que atenda a petición xa que os servidores xestionan os bloqueos de formas diferentes. As publicacións públicas poderían aínda ser visibles para usuarias que non iniciaron sesión.",
"block_modal.show_less": "Mostrar menos",
"block_modal.show_more": "Mostrar máis",
- "block_modal.they_cant_mention": "Non te poden seguir nin mencionar.",
+ "block_modal.they_cant_mention": "Non te pode seguir nin mencionar.",
"block_modal.they_cant_see_posts": "Non pode ver as túas publicacións nin ti as de ela.",
"block_modal.they_will_know": "Pode ver que a bloqueaches.",
"block_modal.title": "Bloquear usuaria?",
"block_modal.you_wont_see_mentions": "Non verás publicacións que a mencionen.",
"boost_modal.combo": "Preme {combo} para ignorar isto na seguinte vez",
+ "boost_modal.reblog": "Promover publicación?",
+ "boost_modal.undo_reblog": "Retirar promoción?",
"bundle_column_error.copy_stacktrace": "Copiar informe do erro",
"bundle_column_error.error.body": "Non se puido mostrar a páxina solicitada. Podería deberse a un problema no código, ou incompatiblidade co navegador.",
"bundle_column_error.error.title": "Vaites!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Aviso sobre o contido (optativo)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.confirm": "Bloquear",
- "confirmations.cancel_follow_request.confirm": "Retirar solicitude",
- "confirmations.cancel_follow_request.message": "Tes a certeza de querer retirar a solicitude para seguir a {name}?",
"confirmations.delete.confirm": "Eliminar",
"confirmations.delete.message": "Tes a certeza de querer eliminar esta publicación?",
+ "confirmations.delete.title": "Eliminar a publicación?",
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "Tes a certeza de querer eliminar de xeito permanente esta listaxe?",
+ "confirmations.delete_list.title": "Eliminar a lista?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tes cambios sen gardar para a vista previa ou descrición do multimedia, descartamos os cambios?",
- "confirmations.domain_block.confirm": "Bloquear servidor",
- "confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. As túas seguidoras deste dominio serán eliminadas.",
"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.logout.confirm": "Pechar sesión",
"confirmations.logout.message": "Desexas pechar a sesión?",
+ "confirmations.logout.title": "Pechar sesión?",
"confirmations.mute.confirm": "Acalar",
"confirmations.redraft.confirm": "Eliminar e reescribir",
"confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicación e reescribila? Perderás as promocións e favorecementos, e as respostas á publicación orixinal ficarán orfas.",
+ "confirmations.redraft.title": "Eliminar e reescribir a publicación?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Ao responder sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?",
+ "confirmations.reply.title": "Editar a publicación?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Desexas deixar de seguir a {name}?",
+ "confirmations.unfollow.title": "Deixar de seguir á usuaria?",
+ "content_warning.hide": "Agochar publicación",
+ "content_warning.show": "Mostrar igualmente",
"conversation.delete": "Eliminar conversa",
"conversation.mark_as_read": "Marcar como lido",
"conversation.open": "Ver conversa",
@@ -216,22 +222,22 @@
"domain_block_modal.they_wont_know": "Non saberá que a bloqueaches.",
"domain_block_modal.title": "Bloquear dominio?",
"domain_block_modal.you_will_lose_followers": "Vanse eliminar todas as túas seguidoras deste servidor.",
- "domain_block_modal.you_wont_see_posts": "Non verás publicacións ou notificación das usuarias neste servidor.",
- "domain_pill.activitypub_lets_connect": "Permíteche conectar e interactuar con persoas non só de Mastodon, se non tamén con outras apps sociais.",
+ "domain_block_modal.you_wont_see_posts": "Non verás publicacións ou notificacións das usuarias deste servidor.",
+ "domain_pill.activitypub_lets_connect": "Permíteche conectar e interactuar con persoas non só de Mastodon, se non tamén con outras sociais.",
"domain_pill.activitypub_like_language": "ActivityPub é algo así como o idioma que Mastodon fala con outras redes sociais.",
"domain_pill.server": "Servidor",
"domain_pill.their_handle": "O seu alcume:",
"domain_pill.their_server": "O seu fogar dixital, onde están as súas publicacións.",
"domain_pill.their_username": "O seu identificador único no seu servidor. É posible atopar usuarias co mesmo nome de usuaria en diferentes servidores.",
"domain_pill.username": "Nome de usuaria",
- "domain_pill.whats_in_a_handle": "Que é o alcume?",
- "domain_pill.who_they_are": "O alcume dinos quen é esa persoa e onde está, para que poidas interactuar con ela en toda a web social de plataformas ActivityPub.",
- "domain_pill.who_you_are": "Como o teu alcume informa de quen es e onde estás, as persoas poden interactuar contigo desde toda a web social de plataformas ActivityPub.",
+ "domain_pill.whats_in_a_handle": "As partes do alcume?",
+ "domain_pill.who_they_are": "O alcume dinos quen é esa persoa e onde está, para que poidas interactuar con ela en toda a web social das plataformas ActivityPub.",
+ "domain_pill.who_you_are": "Como o teu alcume informa de quen es e onde estás, as persoas poden interactuar contigo desde toda a web social das plataformas ActivityPub.",
"domain_pill.your_handle": "O teu alcume:",
"domain_pill.your_server": "O teu fogar dixital, onde están as túas publicacións. Non é do teu agrado? Podes cambiar de servidor cando queiras levando as túas seguidoras contigo.",
"domain_pill.your_username": "O teu identificador único neste servidor. É posible que atopes usuarias co mesmo nome de usuaria en outros servidores.",
- "embed.instructions": "Engade esta publicación ó teu sitio web copiando o seguinte código.",
- "embed.preview": "Así será mostrado:",
+ "embed.instructions": "Inclúe esta publicación no teu sitio web copiando o seguinte código.",
+ "embed.preview": "Vaise ver así:",
"emoji_button.activity": "Actividade",
"emoji_button.clear": "Limpar",
"emoji_button.custom": "Personalizado",
@@ -266,7 +272,7 @@
"empty_column.list": "Aínda non hai nada nesta listaxe. Cando as usuarias incluídas na listaxe publiquen mensaxes, amosaranse aquí.",
"empty_column.lists": "Aínda non tes listaxes. Cando crees unha, amosarase aquí.",
"empty_column.mutes": "Aínda non silenciaches a ningúnha usuaria.",
- "empty_column.notification_requests": "Todo ben! Nada por aquí. Cando recibas novas notificación aparecerán aquí seguindo o criterio dos teus axustes.",
+ "empty_column.notification_requests": "Todo ben! Nada por aquí. Cando recibas novas notificacións aparecerán aquí seguindo o criterio dos teus axustes.",
"empty_column.notifications": "Aínda non tes notificacións. Aparecerán cando outras persoas interactúen contigo.",
"empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo",
"error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Usar unha categoría existente ou crear unha nova",
"filter_modal.select_filter.title": "Filtrar esta publicación",
"filter_modal.title.status": "Filtrar unha publicación",
- "filtered_notifications_banner.mentions": "{count, plural, one {mención} other {mencións}}",
- "filtered_notifications_banner.pending_requests": "Notificacións de {count, plural, =0 {ninguén} one {unha persoa} other {# persoas}} que poderías coñecer",
+ "filter_warning.matches_filter": "Debido ao filtro “{title}”",
+ "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {ninguén} one {unha persoa} other {# persoas}} que igual coñeces",
"filtered_notifications_banner.title": "Notificacións filtradas",
"firehose.all": "Todo",
"firehose.local": "Este servidor",
@@ -309,7 +315,7 @@
"follow_suggestions.curated_suggestion": "Suxestións do Servidor",
"follow_suggestions.dismiss": "Non mostrar máis",
"follow_suggestions.featured_longer": "Elección persoal do equipo de {domain}",
- "follow_suggestions.friends_of_friends_longer": "Popular entre as persoas que sigues",
+ "follow_suggestions.friends_of_friends_longer": "Popular entre as persoas que segues",
"follow_suggestions.hints.featured": "Este perfil foi escollido pola administración de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil é popular entre as persoas que segues.",
"follow_suggestions.hints.most_followed": "Este perfil é un dos máis seguidos en {domain}.",
@@ -347,6 +353,14 @@
"hashtag.follow": "Seguir cancelo",
"hashtag.unfollow": "Deixar de seguir cancelo",
"hashtags.and_other": "…e {count, plural, one {}other {# máis}}",
+ "hints.profiles.followers_may_be_missing": "Poderían faltar seguidoras deste perfil.",
+ "hints.profiles.follows_may_be_missing": "Poderían faltar seguimentos deste perfil.",
+ "hints.profiles.posts_may_be_missing": "Poderían faltar algunhas publicacións deste perfil.",
+ "hints.profiles.see_more_followers": "Mira máis seguidoras en {domain}",
+ "hints.profiles.see_more_follows": "Mira máis seguimentos en {domain}",
+ "hints.profiles.see_more_posts": "Mira máis publicacións en {domain}",
+ "hints.threads.replies_may_be_missing": "Poderían faltar respostas desde outros servidores.",
+ "hints.threads.see_more": "Mira máis respostas en {domain}",
"home.column_settings.show_reblogs": "Amosar compartidos",
"home.column_settings.show_replies": "Amosar respostas",
"home.hide_announcements": "Agochar anuncios",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Mira as actualizacións",
"home.pending_critical_update.title": "Hai una actualización crítica de seguridade!",
"home.show_announcements": "Amosar anuncios",
+ "ignore_notifications_modal.disclaimer": "Mastodon non pode informar ás usuarias de que ignoraches as súas notificacións. Ao ignorar as notificacións non evitarás que as mensaxes sexan enviadas igualmente.",
+ "ignore_notifications_modal.filter_instead": "Filtrar igualmente",
+ "ignore_notifications_modal.filter_to_act_users": "Poderás seguir aceptando, rexeitando e denunciando usuarias",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Ao filtrar axudas a evitar posibles confusións",
+ "ignore_notifications_modal.filter_to_review_separately": "Podes revisar por separado as notificacións filtradas",
+ "ignore_notifications_modal.ignore": "Ignorar notificacións",
+ "ignore_notifications_modal.limited_accounts_title": "Ignorar notificacións desde contas limitadas?",
+ "ignore_notifications_modal.new_accounts_title": "Ignorar notificacións desde novas contas?",
+ "ignore_notifications_modal.not_followers_title": "Ignorar notificacións de persoas que non te seguen?",
+ "ignore_notifications_modal.not_following_title": "Ignorar notificacións de persoas que non segues?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorar notificacións de Mencións Privadas non solicitadas?",
"interaction_modal.description.favourite": "Cunha conta Mastodon podes favorecer esta publicación e facerlle saber á autora que che gustou e que a gardas para máis tarde.",
"interaction_modal.description.follow": "Cunha conta en Mastodon, poderás seguir a {name} e recibir as súas publicacións na túa cronoloxía de inicio.",
"interaction_modal.description.reblog": "Cunha conta en Mastodon, poderás promover esta publicación para compartila con quen te siga.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Para deixar de destacar a área de escritura/procura",
"keyboard_shortcuts.up": "Para mover cara arriba na listaxe",
"lightbox.close": "Fechar",
- "lightbox.compress": "Comprimir a caixa de vista da imaxe",
- "lightbox.expand": "Estender a caixa de vista da imaxe",
"lightbox.next": "Seguinte",
"lightbox.previous": "Anterior",
+ "lightbox.zoom_in": "Ver tamaño real",
+ "lightbox.zoom_out": "Ver tamaño axustado",
"limited_account_hint.action": "Mostrar perfil igualmente",
"limited_account_hint.title": "Este perfil foi agochado pola moderación de {domain}.",
"link_preview.author": "Por {name}",
@@ -432,18 +457,19 @@
"lists.subheading": "As túas listaxes",
"load_pending": "{count, plural, one {# novo elemento} other {# novos elementos}}",
"loading_indicator.label": "Estase a cargar…",
- "media_gallery.toggle_visible": "Agochar {number, plural, one {imaxe} other {imaxes}}",
+ "media_gallery.hide": "Agochar",
"moved_to_account_banner.text": "A túa conta {disabledAccount} está actualmente desactivada porque movéchela a {movedToAccount}.",
- "mute_modal.hide_from_notifications": "Ocultar nas notificacións",
+ "mute_modal.hide_from_notifications": "Agochar nas notificacións",
"mute_modal.hide_options": "Opcións ao ocultar",
"mute_modal.indefinite": "Ata que as reactive",
"mute_modal.show_options": "Mostrar opcións",
- "mute_modal.they_can_mention_and_follow": "Pódete mencionar e seguirte, pero non o verás.",
+ "mute_modal.they_can_mention_and_follow": "Pódete mencionar e seguirte, pero non a verás.",
"mute_modal.they_wont_know": "Non saberá que a acalaches.",
"mute_modal.title": "Acalar usuaria?",
"mute_modal.you_wont_see_mentions": "Non verás as publicacións que a mencionen.",
"mute_modal.you_wont_see_posts": "Seguirá podendo ler as túas publicacións, pero non verás as súas.",
"navigation_bar.about": "Sobre",
+ "navigation_bar.administration": "Administración",
"navigation_bar.advanced_interface": "Abrir coa interface web avanzada",
"navigation_bar.blocks": "Usuarias bloqueadas",
"navigation_bar.bookmarks": "Marcadores",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Seguindo e seguidoras",
"navigation_bar.lists": "Listaxes",
"navigation_bar.logout": "Pechar sesión",
+ "navigation_bar.moderation": "Moderación",
"navigation_bar.mutes": "Usuarias silenciadas",
"navigation_bar.opened_in_classic_interface": "Publicacións, contas e outras páxinas dedicadas ábrense por defecto na interface web clásica.",
"navigation_bar.personal": "Persoal",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Seguranza",
"not_signed_in_indicator.not_signed_in": "Debes acceder para ver este recurso.",
"notification.admin.report": "{name} denunciou a {target}",
+ "notification.admin.report_account": "{name} denunciou {count, plural, one {unha publicación} other {# publicacións}} de {target} por {category}",
+ "notification.admin.report_account_other": "{name} denunciou {count, plural, one {unha publicación} other {# publicacións}} de {target}",
+ "notification.admin.report_statuses": "{name} deununciou a {target} por {category}",
+ "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.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",
+ "notification.follow.name_and_others": "{name} e {count, plural, one {# máis} other {# máis}} seguíronte",
"notification.follow_request": "{name} solicitou seguirte",
- "notification.mention": "{name} mencionoute",
+ "notification.follow_request.name_and_others": "{name} e {count, plural, one {# máis} other {# máis}} solicitaron seguirte",
+ "notification.label.mention": "Mención",
+ "notification.label.private_mention": "Mención privada",
+ "notification.label.private_reply": "Resposta privada",
+ "notification.label.reply": "Resposta",
+ "notification.mention": "Mención",
"notification.moderation-warning.learn_more": "Saber máis",
"notification.moderation_warning": "Recibiches unha advertencia da moderación",
"notification.moderation_warning.action_delete_statuses": "Algunha das túas publicacións foron eliminadas.",
@@ -487,6 +526,7 @@
"notification.own_poll": "A túa enquisa rematou",
"notification.poll": "Rematou a enquisa na que votaches",
"notification.reblog": "{name} compartiu a túa publicación",
+ "notification.reblog.name_and_others_with_link": "{name} e {count, plural, one {# máis} other {# máis}} promoveron a túa publicación",
"notification.relationships_severance_event": "Perdeuse a conexión con {name}",
"notification.relationships_severance_event.account_suspension": "A administración de {from} suspendeu a {target}, o que significa que xa non vas recibir actualizacións de esa conta ou interactuar con ela.",
"notification.relationships_severance_event.domain_block": "A administración de {from} bloqueou a {target}, que inclúe a {followersCount} das túas seguidoras e a {followingCount, plural, one {# conta} other {# contas}} que sigues.",
@@ -495,11 +535,27 @@
"notification.status": "{name} publicou",
"notification.update": "{name} editou unha publicación",
"notification_requests.accept": "Aceptar",
+ "notification_requests.accept_multiple": "{count, plural, one {Aceptar # solicitude…} other {Aceptar # solicitudes…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceptar solicitude} other {Aceptar solicitudes}}",
+ "notification_requests.confirm_accept_multiple.message": "Vas aceptar {count, plural, one {unha solicitude de notificación} other {# solicitudes de notificación}}. Tes certeza de querer aceptar?",
+ "notification_requests.confirm_accept_multiple.title": "Aceptar solicitudes de notificación?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Rexeitar solicitude} other {Rexeitar solicitudes}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Vas rexeitar {count, plural, one {unha solicitude de notificación} other {# solicitudes de notificación}}. Non poderás volver acceder fácilmente a {count, plural, one {ela} other {elas}}. Tes certeza de querer rexeitar?",
+ "notification_requests.confirm_dismiss_multiple.title": "Rexeitar solicitudes de notificación?",
"notification_requests.dismiss": "Desbotar",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Rexeitar # solicitude…} other {Rexeitar # solicitudes…}}",
+ "notification_requests.edit_selection": "Editar",
+ "notification_requests.exit_selection": "Feito",
+ "notification_requests.explainer_for_limited_account": "Filtráronse as notificacións desta conta porque a conta ten limitacións impostas pola moderación.",
+ "notification_requests.explainer_for_limited_remote_account": "Filtráronse as notificacións desta conta porque a conta ou o seu servidor teñen limitacións impostas pola moderación.",
+ "notification_requests.maximize": "Maximizar",
+ "notification_requests.minimize_banner": "Minimizar o anuncio de notificacións filtradas",
"notification_requests.notifications_from": "Notificacións de {name}",
"notification_requests.title": "Notificacións filtradas",
+ "notification_requests.view": "Ver notificacións",
"notifications.clear": "Limpar notificacións",
"notifications.clear_confirmation": "Tes a certeza de querer limpar de xeito permanente todas as túas notificacións?",
+ "notifications.clear_title": "Limpar as notificacións?",
"notifications.column_settings.admin.report": "Novas denuncias:",
"notifications.column_settings.admin.sign_up": "Novas usuarias:",
"notifications.column_settings.alert": "Notificacións de escritorio",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Non se activaron as notificacións de escritorio porque se denegou o permiso",
"notifications.permission_denied_alert": "Non se poden activar as notificacións de escritorio, xa que o permiso para o navegador foi denegado previamente",
"notifications.permission_required": "As notificacións de escritorio non están dispoñibles porque non se concedeu o permiso necesario.",
+ "notifications.policy.accept": "Aceptar",
+ "notifications.policy.accept_hint": "Ver nas notificacións",
+ "notifications.policy.drop": "Ignorar",
+ "notifications.policy.drop_hint": "Esquecer isto, non volver a velo",
+ "notifications.policy.filter": "Filtrar",
+ "notifications.policy.filter_hint": "Enviar á caixa de notificacións filtradas",
+ "notifications.policy.filter_limited_accounts_hint": "Limitada pola moderación do servidor",
+ "notifications.policy.filter_limited_accounts_title": "Contas moderadas",
"notifications.policy.filter_new_accounts.hint": "Creadas desde {days, plural, one {onte} other {fai # días}}",
"notifications.policy.filter_new_accounts_title": "Novas contas",
"notifications.policy.filter_not_followers_hint": "Inclúe a persoas que te seguen desde fai menos de {days, plural, one {1 día} other {# días}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Persoas que ti non segues",
"notifications.policy.filter_private_mentions_hint": "Filtradas a non ser que sexa unha resposta á túa propia mención ou se ti segues á remitente",
"notifications.policy.filter_private_mentions_title": "Mencións privadas non solicitadas",
- "notifications.policy.title": "Desbotar notificacións de…",
+ "notifications.policy.title": "Xestionar as notificacións de…",
"notifications_permission_banner.enable": "Activar notificacións de escritorio",
"notifications_permission_banner.how_to_control": "Activa as notificacións de escritorio para recibir notificacións mentras Mastodon non está aberto. Podes controlar de xeito preciso o tipo de interaccións que crean as notificacións de escritorio a través da {icon} superior unha vez están activadas.",
"notifications_permission_banner.title": "Non perder nada",
@@ -575,7 +639,7 @@
"onboarding.steps.publish_status.title": "Escribe a túa primeira publicación",
"onboarding.steps.setup_profile.body": "Ao engadir información ao teu perfil é máis probable que teñas máis interaccións.",
"onboarding.steps.setup_profile.title": "Personaliza o perfil",
- "onboarding.steps.share_profile.body": "Dille ás amizades como poden atoparte en Mastodon!",
+ "onboarding.steps.share_profile.body": "Dille ás amizades como poden atoparte en Mastodon.",
"onboarding.steps.share_profile.title": "Comparte o teu perfil en Mastodon",
"onboarding.tips.2fa": "Sabes que? Podes protexer a túa conta configurando un segundo factor de autenticación nos axustes. Funciona con calquera app TOTP, non precisas un número de teléfono!",
"onboarding.tips.accounts_from_other_servers": "Sabes que? Como Mastodon é descentralizado, algúns perfís que atopes estarán en servidores diferentes ao teu. Pero podes interactuar igualmente con eles! O seu servidor é o que ven despois da @ no seu identificador!",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Estás a seguir esta conta. Deixar de ver as súas publicacións na túa cronoloxía, non seguila.",
"report_notification.attached_statuses": "Achegou {count, plural, one {{count} publicación} other {{count} publicacións}}",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "contido ilegal",
"report_notification.categories.other": "Outro",
+ "report_notification.categories.other_sentence": "outra",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Faltou ás regras",
+ "report_notification.categories.violation_sentence": "violación das regras",
"report_notification.open": "Abrir a denuncia",
"search.no_recent_searches": "Non hai buscas recentes",
"search.placeholder": "Procurar",
@@ -710,6 +778,7 @@
"status.bookmark": "Marcar",
"status.cancel_reblog_private": "Desfacer compartido",
"status.cannot_reblog": "Esta publicación non pode ser promovida",
+ "status.continued_thread": "Continua co fío",
"status.copy": "Copiar ligazón á publicación",
"status.delete": "Eliminar",
"status.detailed_status": "Vista detallada da conversa",
@@ -718,12 +787,10 @@
"status.edit": "Editar",
"status.edited": "Última edición {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",
- "status.embed": "Incrustar",
+ "status.embed": "O código a incluír",
"status.favourite": "Favorecer",
"status.favourites": "{count, plural, one {favorecemento} other {favorecementos}}",
"status.filter": "Filtrar esta publicación",
- "status.filtered": "Filtrado",
- "status.hide": "Agochar publicación",
"status.history.created": "{name} creouno o {date}",
"status.history.edited": "{name} editouno o {date}",
"status.load_more": "Cargar máis",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.",
"status.redraft": "Eliminar e reescribir",
"status.remove_bookmark": "Eliminar marcador",
+ "status.replied_in_thread": "Respondeu nun fío",
"status.replied_to": "Respondeu a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder ao tema",
"status.report": "Denunciar @{name}",
"status.sensitive_warning": "Contido sensíbel",
"status.share": "Compartir",
- "status.show_filter_reason": "Mostrar igualmente",
- "status.show_less": "Amosar menos",
"status.show_less_all": "Amosar menos para todos",
- "status.show_more": "Amosar máis",
"status.show_more_all": "Amosar máis para todos",
"status.show_original": "Mostrar o orixinal",
"status.title.with_attachments": "{user} publicou {attachmentCount, plural, one {un anexo} other {{attachmentCount} anexos}}",
@@ -773,12 +838,8 @@
"time_remaining.minutes": "Remata en {number, plural, one {# minuto} other {# minutos}}",
"time_remaining.moments": "A piques de rematar",
"time_remaining.seconds": "Remata en {number, plural, one {# segundo} other {# segundos}}",
- "timeline_hint.remote_resource_not_displayed": "Non se mostran {resource} desde outros servidores.",
- "timeline_hint.resources.followers": "Seguidoras",
- "timeline_hint.resources.follows": "Seguindo",
- "timeline_hint.resources.statuses": "Publicacións antigas",
"trends.counter_by_accounts": "{count, plural, one {{counter} persoa} other {{counter} persoas}} {days, plural, one {no último día} other {nos {days} últimos días}}",
- "trends.trending_now": "Tendencias actuais",
+ "trends.trending_now": "Temas populares",
"ui.beforeunload": "O borrador perderase se saes de Mastodon.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 1c50ba8e1f3..6503d870e51 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -1,5 +1,5 @@
{
- "about.blocks": "שרתים מוגבלים",
+ "about.blocks": "שרתים שנחסמו על ידי המנהלים",
"about.contact": "יצירת קשר:",
"about.disclaimer": "מסטודון היא תוכנת קוד פתוח חינמית וסימן מסחרי של Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "הסיבה אינה זמינה",
@@ -11,7 +11,7 @@
"about.not_available": "המידע אינו זמין על שרת זה.",
"about.powered_by": "רשת חברתית מבוזרת המופעלת על ידי {mastodon}",
"about.rules": "כללי השרת",
- "account.account_note_header": "הערה",
+ "account.account_note_header": "הערה אישית",
"account.add_or_remove_from_list": "הוספה או הסרה מרשימות",
"account.badges.bot": "בוט",
"account.badges.group": "קבוצה",
@@ -19,7 +19,6 @@
"account.block_domain": "חסמו את קהילת {domain}",
"account.block_short": "לחסום",
"account.blocked": "לחסום",
- "account.browse_more_on_origin_server": "ראה יותר בפרופיל המקורי",
"account.cancel_follow_request": "משיכת בקשת מעקב",
"account.copy": "להעתיק קישור לפרופיל",
"account.direct": "הודעה פרטית אל @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "לעקוב בחזרה",
"account.followers": "עוקבים",
"account.followers.empty": "אף אחד לא עוקב אחר המשתמש הזה עדיין.",
- "account.followers_counter": "{count, plural,one {עוקב אחד} other {{counter} עוקבים}}",
+ "account.followers_counter": "{count, plural,one {עוקב אחד} other {{count} עוקבים}}",
"account.following": "נעקבים",
- "account.following_counter": "{count, plural,one {עוקב אחרי {counter}}other {עוקב אחרי {counter}}}",
+ "account.following_counter": "{count, plural,one {עוקב אחרי {count}}other {עוקב אחרי {count}}}",
"account.follows.empty": "משתמש זה עדיין לא עוקב אחרי אף אחד.",
"account.go_to_profile": "מעבר לפרופיל",
"account.hide_reblogs": "להסתיר הידהודים מאת @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} ביקשו לעקוב אחריך",
"account.share": "שתף את הפרופיל של @{name}",
"account.show_reblogs": "הצג הדהודים מאת @{name}",
- "account.statuses_counter": "{count, plural, one {הודעה} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}}",
+ "account.statuses_counter": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}}",
"account.unblock": "להסיר חסימה ל- @{name}",
"account.unblock_domain": "הסירי את החסימה של קהילת {domain}",
"account.unblock_short": "הסר חסימה",
@@ -98,6 +97,8 @@
"block_modal.title": "לחסום משתמש?",
"block_modal.you_wont_see_mentions": "לא תראה הודעות שמאזכרות אותם.",
"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": "הו, לא!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "אזהרת תוכן (לא חובה)",
"confirmation_modal.cancel": "ביטול",
"confirmations.block.confirm": "לחסום",
- "confirmations.cancel_follow_request.confirm": "ויתור על בקשה",
- "confirmations.cancel_follow_request.message": "לבטל את בקשת המעקב אחרי {name}?",
"confirmations.delete.confirm": "למחוק",
"confirmations.delete.message": "בטוח/ה שאת/ה רוצה למחוק את ההודעה?",
+ "confirmations.delete.title": "למחוק הודעה?",
"confirmations.delete_list.confirm": "למחוק",
"confirmations.delete_list.message": "האם אתם בטוחים שאתם רוצים למחוק את הרשימה לצמיתות?",
+ "confirmations.delete_list.title": "למחוק רשימה?",
"confirmations.discard_edit_media.confirm": "השלך",
"confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?",
- "confirmations.domain_block.confirm": "חסימת שרת",
- "confirmations.domain_block.message": "בטוחה שברצונך באמת לחסום את קהילת {domain}? ברב המקרים השתקה וחסימה של מספר משתמשים עשוייה להספיק. לא תראי תוכל מכלל שם המתחם בפידים הציבוריים או בהתראות שלך. העוקבים שלך מהקהילה הזאת יוסרו",
"confirmations.edit.confirm": "עריכה",
"confirmations.edit.message": "עריכה תדרוס את ההודעה שכבר התחלת לכתוב. האם להמשיך?",
+ "confirmations.edit.title": "לבצע החלפת תוכן?",
"confirmations.logout.confirm": "התנתקות",
"confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?",
+ "confirmations.logout.title": "להתנתק?",
"confirmations.mute.confirm": "להשתיק",
"confirmations.redraft.confirm": "מחיקה ועריכה מחדש",
"confirmations.redraft.message": "למחוק ולהתחיל טיוטה חדשה? חיבובים והדהודים יאבדו, ותגובות להודעה המקורית ישארו יתומות.",
+ "confirmations.redraft.title": "מחיקה ועריכה מחדש?",
"confirmations.reply.confirm": "תגובה",
"confirmations.reply.message": "תגובה עכשיו תמחק את ההודעה שכבר התחלת לכתוב. להמשיך?",
+ "confirmations.reply.title": "לבצע החלפת תוכן?",
"confirmations.unfollow.confirm": "הפסקת מעקב",
"confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?",
+ "confirmations.unfollow.title": "לבטל מעקב אחר המשתמש.ת?",
+ "content_warning.hide": "הסתרת חיצרוץ",
+ "content_warning.show": "להציג בכל זאת",
"conversation.delete": "מחיקת שיחה",
"conversation.mark_as_read": "סמן כנקרא",
"conversation.open": "צפו בשיחה",
@@ -281,15 +287,15 @@
"explore.trending_links": "חדשות",
"explore.trending_statuses": "הודעות",
"explore.trending_tags": "תגיות",
- "filter_modal.added.context_mismatch_explanation": "קטגוריית הסנן הזאת לא חלה על ההקשר שממנו הגעת אל ההודעה הזו. אם תרצה/י שההודעה תסונן גם בהקשר זה, תצטרך/י לערוך את הסנן.",
+ "filter_modal.added.context_mismatch_explanation": "קטגוריית המסנן הזאת לא חלה על ההקשר שממנו הגעת אל ההודעה הזו. אם תרצה/י שההודעה תסונן גם בהקשר זה, תצטרך/י לערוך את הסנן.",
"filter_modal.added.context_mismatch_title": "אין התאמה להקשר!",
"filter_modal.added.expired_explanation": "פג תוקפה של קטגוריית הסינון הזו, יש צורך לשנות את תאריך התפוגה כדי שהסינון יוחל.",
- "filter_modal.added.expired_title": "פג תוקף הפילטר!",
+ "filter_modal.added.expired_title": "פג תוקף המסנן!",
"filter_modal.added.review_and_configure": "לסקירה והתאמה מתקדמת של קטגוריית הסינון הזו, לכו ל{settings_link}.",
"filter_modal.added.review_and_configure_title": "אפשרויות סינון",
"filter_modal.added.settings_link": "דף הגדרות",
"filter_modal.added.short_explanation": "ההודעה הזו הוספה לקטגוריית הסינון הזו: {title}.",
- "filter_modal.added.title": "הפילטר הוסף!",
+ "filter_modal.added.title": "המסנן הוסף!",
"filter_modal.select_filter.context_mismatch": "לא חל בהקשר זה",
"filter_modal.select_filter.expired": "פג התוקף",
"filter_modal.select_filter.prompt_new": "קטגוריה חדשה {name}",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "שימוש בקטגורייה קיימת או יצירת אחת חדשה",
"filter_modal.select_filter.title": "סינון ההודעה הזו",
"filter_modal.title.status": "סנן הודעה",
- "filtered_notifications_banner.mentions": "{count, plural, one {איזכור} other {איזכורים} two {איזכוריים}}",
- "filtered_notifications_banner.pending_requests": "{count, plural,=0 {אין התראות ממשתמשים ה}one {התראה אחת ממישהו/מישהי ה}two {יש התראותיים ממשתמשים }other {יש # התראות ממשתמשים }}מוכרים לך",
+ "filter_warning.matches_filter": "תואם לסנן “{title}”",
+ "filtered_notifications_banner.pending_requests": "{count, plural,=0 {אין בקשות ממשתמשים }one {בקשה אחת ממישהו/מישהי }two {יש בקשותיים ממשתמשים }other {יש # בקשות ממשתמשים }}שאולי מוכרים לך",
"filtered_notifications_banner.title": "התראות מסוננות",
"firehose.all": "הכל",
"firehose.local": "שרת זה",
@@ -347,6 +353,14 @@
"hashtag.follow": "לעקוב אחרי תגית",
"hashtag.unfollow": "להפסיק לעקוב אחרי תגית",
"hashtags.and_other": "…{count, plural,other {ועוד #}}",
+ "hints.profiles.followers_may_be_missing": "יתכן כי עוקבים של פרופיל זה חסרים.",
+ "hints.profiles.follows_may_be_missing": "יתכן כי נעקבים של פרופיל זה חסרים.",
+ "hints.profiles.posts_may_be_missing": "יתכן כי פרסומים של פרופיל זה חסרים.",
+ "hints.profiles.see_more_followers": "צפיה בעוד עוקבים משרת {domain}",
+ "hints.profiles.see_more_follows": "צפיה בעוד נעקבים בשרת {domain}",
+ "hints.profiles.see_more_posts": "צפיה בעוד פרסומים בשרת {domain}",
+ "hints.threads.replies_may_be_missing": "תגובות משרתים אחרים עלולות להיות חסרות.",
+ "hints.threads.see_more": "צפיה בעוד תגובות משרת {domain}",
"home.column_settings.show_reblogs": "הצגת הדהודים",
"home.column_settings.show_replies": "הצגת תגובות",
"home.hide_announcements": "הסתר הכרזות",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "צפיה בעדכונים",
"home.pending_critical_update.title": "יצא עדכון אבטחה חשוב!",
"home.show_announcements": "הצג הכרזות",
+ "ignore_notifications_modal.disclaimer": "מסטודון אינו יכול ליידע משתמשים שהתעלמתם מהתראותיהם. התעלמות מהתראות לא תחסום את ההודעות עצמן מלהשלח.",
+ "ignore_notifications_modal.filter_instead": "לסנן במקום",
+ "ignore_notifications_modal.filter_to_act_users": "עדיין ביכולתך לקבל, לדחות ולדווח על משתמשים אחרים",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "סינון מסייע למניעת בלבולים אפשריים",
+ "ignore_notifications_modal.filter_to_review_separately": "ניתן לסקור התראות מפולטרות בנפרד",
+ "ignore_notifications_modal.ignore": "להתעלם מהתראות",
+ "ignore_notifications_modal.limited_accounts_title": "להתעלם מהתראות מחשבונות תחת פיקוח?",
+ "ignore_notifications_modal.new_accounts_title": "להתעלם מהתראות מחשבונות חדשים?",
+ "ignore_notifications_modal.not_followers_title": "להתעלם מהתראות מא.נשים שאינם עוקביך?",
+ "ignore_notifications_modal.not_following_title": "להתעלם מהתראות מא.נשים שאינם נעקביך?",
+ "ignore_notifications_modal.private_mentions_title": "להתעלם מהתראות מאיזכורים פרטיים?",
"interaction_modal.description.favourite": "עם חשבון מסטודון, ניתן לחבב את ההודעה כדי לומר למחבר/ת שהערכת את תוכנו או כדי לשמור אותו לקריאה בעתיד.",
"interaction_modal.description.follow": "עם חשבון מסטודון, ניתן לעקוב אחרי {name} כדי לקבל את הפוסטים שלו/ה בפיד הבית.",
"interaction_modal.description.reblog": "עם חשבון מסטודון, ניתן להדהד את החצרוץ ולשתף עם עוקבים.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "לצאת מתיבת חיבור/חיפוש",
"keyboard_shortcuts.up": "לנוע במעלה הרשימה",
"lightbox.close": "סגירה",
- "lightbox.compress": "דחיסת קופסת צפייה בתמונה",
- "lightbox.expand": "הרחבת קופסת צפייה בתמונה",
"lightbox.next": "הבא",
"lightbox.previous": "הקודם",
+ "lightbox.zoom_in": "הגדלה לגודל מלא",
+ "lightbox.zoom_out": "התאמה לגודל המסך",
"limited_account_hint.action": "הצג חשבון בכל זאת",
"limited_account_hint.title": "פרופיל המשתמש הזה הוסתר על ידי המנחים של {domain}.",
"link_preview.author": "מאת {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "הרשימות שלך",
"load_pending": "{count, plural, one {# פריט חדש} other {# פריטים חדשים}}",
"loading_indicator.label": "בטעינה…",
- "media_gallery.toggle_visible": "{number, plural, one {להסתיר תמונה} two {להסתיר תמונותיים} many {להסתיר תמונות} other {להסתיר תמונות}}",
+ "media_gallery.hide": "להסתיר",
"moved_to_account_banner.text": "חשבונך {disabledAccount} אינו פעיל כרגע עקב מעבר ל{movedToAccount}.",
"mute_modal.hide_from_notifications": "להסתיר מהתראות",
"mute_modal.hide_options": "הסתרת אפשרויות",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "לא תראה הודעות שמאזכרות אותם.",
"mute_modal.you_wont_see_posts": "הם יכולים לראות את הודעותכם, אבל אתם לא תוכלו לראות את שלהם.",
"navigation_bar.about": "אודות",
+ "navigation_bar.administration": "ניהול",
"navigation_bar.advanced_interface": "פתח במנשק ווב מתקדם",
"navigation_bar.blocks": "משתמשים חסומים",
"navigation_bar.bookmarks": "סימניות",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "נעקבים ועוקבים",
"navigation_bar.lists": "רשימות",
"navigation_bar.logout": "התנתקות",
+ "navigation_bar.moderation": "פיקוח",
"navigation_bar.mutes": "משתמשים בהשתקה",
"navigation_bar.opened_in_classic_interface": "הודעות, חשבונות ושאר עמודי רשת יפתחו כברירת מחדל בדפדפן רשת קלאסי.",
"navigation_bar.personal": "אישי",
@@ -470,11 +497,23 @@
"navigation_bar.security": "אבטחה",
"not_signed_in_indicator.not_signed_in": "יש להיות מאומת כדי לגשת למשאב זה.",
"notification.admin.report": "{name} דיווח.ה על {target}",
+ "notification.admin.report_account": "{name} דווחו על {count, plural, one {הודעה אחת} two {הודעותיים} many {# הודעות} other {# הודעות}} מאת {target} בגין {category}",
+ "notification.admin.report_account_other": "{name} דווחו על {count, plural, one {הודעה אחת} two {הודעותיים} many {# הודעות} other {# הודעות}} מאת {target}",
+ "notification.admin.report_statuses": "{name} דווחו על {target} בגין {category}",
+ "notification.admin.report_statuses_other": "{name} דיווח.ה על {target}",
"notification.admin.sign_up": "{name} נרשמו",
+ "notification.admin.sign_up.name_and_others": "{name} ועוד {count, plural,one {אחד אחר}other {# אחרים}} נרשמו",
"notification.favourite": "הודעתך חובבה על ידי {name}",
+ "notification.favourite.name_and_others_with_link": "{name} ועוד {count, plural,one {אחד נוסף}other {# נוספים}} חיבבו את הודעתך",
"notification.follow": "{name} במעקב אחרייך",
+ "notification.follow.name_and_others": "{name} ועוד {count, plural,one {אחד אחר}other {# אחרים}} עקבו אחריך",
"notification.follow_request": "{name} ביקשו לעקוב אחריך",
- "notification.mention": "אוזכרת על ידי {name}",
+ "notification.follow_request.name_and_others": "{name} ועוד {count, plural,one {אחד אחר}other {# אחרים}} ביקשו לעקוב אחריך",
+ "notification.label.mention": "אזכור",
+ "notification.label.private_mention": "אזכור פרטי",
+ "notification.label.private_reply": "תשובה בפרטי",
+ "notification.label.reply": "תשובה",
+ "notification.mention": "אזכור",
"notification.moderation-warning.learn_more": "למידע נוסף",
"notification.moderation_warning": "קיבלת אזהרה מצוות ניהול התוכן",
"notification.moderation_warning.action_delete_statuses": "חלק מהודעותיך הוסרו.",
@@ -487,6 +526,7 @@
"notification.own_poll": "הסקר שלך הסתיים",
"notification.poll": "סקר שהצבעת בו הסתיים",
"notification.reblog": "הודעתך הודהדה על ידי {name}",
+ "notification.reblog.name_and_others_with_link": "{name} ועוד {count, plural,one {אחד נוסף}other {# נוספים}} הדהדו את הודעתך",
"notification.relationships_severance_event": "אבד הקשר עם {name}",
"notification.relationships_severance_event.account_suspension": "מנהל.ת משרת {from} השע(ת)ה את {target}, ולפיכך לא תעודכנו יותר על ידם ולא תוכלו להיות איתם בקשר.",
"notification.relationships_severance_event.domain_block": "מנהל.ת מאתר {from} חסמו את {target} ובכלל זה {followersCount} מעוקביך וגם {followingCount, plural, one {חשבון אחד} two {שני חשבונות} many {# חשבונות} other {# חשבונות}} מבין נעקביך.",
@@ -495,11 +535,27 @@
"notification.status": "{name} הרגע פרסמו",
"notification.update": "{name} ערכו הודעה",
"notification_requests.accept": "לקבל",
+ "notification_requests.accept_multiple": "{count, plural,one {לאשר קבלת בקשה…}other {לאשר קבלת # בקשות…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural,one {לאשר קבלת בקשה}other {לאשר קבלת בקשות}}",
+ "notification_requests.confirm_accept_multiple.message": "אתם עומדים לאשר {count, plural,one {בקשת התראה אחת} other {# בקשות התראה}}. להמשיך?",
+ "notification_requests.confirm_accept_multiple.title": "לקבל בקשות התראה?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural,one {לדחות בקשה}other {לדחות בקשות}} לקבלת התראה",
+ "notification_requests.confirm_dismiss_multiple.message": "אתם עומדים לדחות {count, plural,one {בקשת התראה}other {# בקשות התראה}}. לא תוכלו למצוא {count, plural,one {אותה}other {אותן}} בקלות אחר כך. להמשיך?",
+ "notification_requests.confirm_dismiss_multiple.title": "לדחות בקשות התראה?",
"notification_requests.dismiss": "לבטל",
+ "notification_requests.dismiss_multiple": "{count, plural,one {לדחות בקשה…}other {לדחות # בקשות…}}",
+ "notification_requests.edit_selection": "עריכה",
+ "notification_requests.exit_selection": "בוצע",
+ "notification_requests.explainer_for_limited_account": "התראות על פעולות חשבון זה סוננו כי חשבון זה הוגבל על ידי מנהלי הדיונים.",
+ "notification_requests.explainer_for_limited_remote_account": "התראות על פעולות חשבון זה סוננו כי חשבון זה או השרת שלו הוגבלו על ידי מנהלי הדיונים.",
+ "notification_requests.maximize": "הגדלה למקסימום",
+ "notification_requests.minimize_banner": "להקטין את כותרת ההודעות המסוננות",
"notification_requests.notifications_from": "התראות מ־ {name}",
"notification_requests.title": "התראות מסוננות",
+ "notification_requests.view": "הצגת ההתראות",
"notifications.clear": "הסרת התראות",
"notifications.clear_confirmation": "להסיר את כל ההתראות לצמיתות ? ",
+ "notifications.clear_title": "לנקות התראות?",
"notifications.column_settings.admin.report": "דו\"חות חדשים",
"notifications.column_settings.admin.sign_up": "הרשמות חדשות:",
"notifications.column_settings.alert": "התראות לשולחן העבודה",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "לא ניתן להציג התראות מסך כיוון כיוון שהרשאות דפדפן נשללו בעבר",
"notifications.permission_denied_alert": "לא ניתן לאפשר נוטיפיקציות מסך שכן הדפדפן סורב הרשאה בעבר",
"notifications.permission_required": "לא ניתן לאפשר נוטיפיקציות מסך כיוון שהרשאה דרושה לא ניתנה.",
+ "notifications.policy.accept": "אישור",
+ "notifications.policy.accept_hint": "הצגה בהתראות",
+ "notifications.policy.drop": "להתעלם",
+ "notifications.policy.drop_hint": "שליחה אל מצולות הנשיה, ולא יוודעו אודותיה לעולם",
+ "notifications.policy.filter": "מסנן",
+ "notifications.policy.filter_hint": "שליחה לתיבה נכנסת מסוננת",
+ "notifications.policy.filter_limited_accounts_hint": "הוגבל על ידי מנהלי הדיונים",
+ "notifications.policy.filter_limited_accounts_title": "חשבון מוגבל",
"notifications.policy.filter_new_accounts.hint": "נוצר {days, plural,one {ביום האחרון} two {ביומיים האחרונים} other {ב־# הימים האחרונים}}",
"notifications.policy.filter_new_accounts_title": "חשבונות חדשים",
"notifications.policy.filter_not_followers_hint": "כולל משתמשים שעקבו אחריך פחות מ{days, plural,one {יום} two {יומיים} other {־# ימים}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "משתמשים שאינך עוקב(ת) אחריהםן",
"notifications.policy.filter_private_mentions_hint": "מסונן אלא אם זו תשובה למינשון שלך או אם אתם עוקבים אחרי העונה",
"notifications.policy.filter_private_mentions_title": "מינשונים בפרטי שלא הוזמנו",
- "notifications.policy.title": "להסתיר התראות מ…",
+ "notifications.policy.title": "ניהול התראות מ…",
"notifications_permission_banner.enable": "לאפשר נוטיפיקציות מסך",
"notifications_permission_banner.how_to_control": "כדי לקבל התראות גם כאשר מסטודון סגור יש לאפשר התראות מסך. ניתן לשלוט בדיוק איזה סוג של אינטראקציות יביא להתראות מסך דרך כפתור ה- {icon} מרגע שהן מאופשרות.",
"notifications_permission_banner.title": "לעולם אל תחמיץ דבר",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "אתם עוקבים אחרי החשבון הזה. כדי להפסיק לראות את הפרסומים שלו בפיד הבית שלכם, הפסיקו לעקוב אחריו.",
"report_notification.attached_statuses": "{count, plural, one {הודעה מצורפת} two {הודעותיים מצורפות} many {{count} הודעות מצורפות} other {{count} הודעות מצורפות}}",
"report_notification.categories.legal": "חוקי",
+ "report_notification.categories.legal_sentence": "תוכן בלתי חוקי",
"report_notification.categories.other": "שונות",
+ "report_notification.categories.other_sentence": "אחר",
"report_notification.categories.spam": "ספאם (דואר זבל)",
+ "report_notification.categories.spam_sentence": "ספאם (דואר זבל)",
"report_notification.categories.violation": "הפרת כלל",
+ "report_notification.categories.violation_sentence": "הפרת כלל",
"report_notification.open": "פתח דו\"ח",
"search.no_recent_searches": "לא נמצאו חיפושים אחרונים",
"search.placeholder": "חיפוש",
@@ -696,8 +764,11 @@
"server_banner.about_active_users": "משתמשים פעילים בשרת ב־30 הימים האחרונים (משתמשים פעילים חודשיים)",
"server_banner.active_users": "משתמשים פעילים",
"server_banner.administered_by": "מנוהל ע\"י:",
+ "server_banner.is_one_of_many": "{domain} הוא שרת אחד משרתי מסטודון עצמאיים רבים שדרגם תוכלו להשתתף בפדיוורס (רשת חברתית מבוזרת).",
"server_banner.server_stats": "סטטיסטיקות שרת:",
"sign_in_banner.create_account": "יצירת חשבון",
+ "sign_in_banner.follow_anyone": "תוכלו לעקוב אחרי כל משמתמש בפדיוורס ולקרוא הכל לפי סדר הפרסום בציר הזמן. אין אלגוריתמים, פרסומות, או קליקבייט מטעם בעלי הרשת.",
+ "sign_in_banner.mastodon_is": "מסטודון הוא הדרך הטובה ביותר לעקוב אחרי מה שקורה.",
"sign_in_banner.sign_in": "התחברות",
"sign_in_banner.sso_redirect": "התחברות/הרשמה",
"status.admin_account": "פתח/י ממשק ניהול עבור @{name}",
@@ -707,6 +778,7 @@
"status.bookmark": "סימניה",
"status.cancel_reblog_private": "הסרת הדהוד",
"status.cannot_reblog": "לא ניתן להדהד חצרוץ זה",
+ "status.continued_thread": "שרשור מתמשך",
"status.copy": "העתק/י קישור להודעה זו",
"status.delete": "מחיקה",
"status.detailed_status": "תצוגת שיחה מפורטת",
@@ -715,12 +787,10 @@
"status.edit": "עריכה",
"status.edited": "נערך לאחרונה {date}",
"status.edited_x_times": "נערך {count, plural, one {פעם {count}} other {{count} פעמים}}",
- "status.embed": "הטמעה",
+ "status.embed": "העתקת קוד להטמעה",
"status.favourite": "חיבוב",
"status.favourites": "{count, plural, one {חיבוב אחד} two {זוג חיבובים} other {# חיבובים}}",
"status.filter": "סנן הודעה זו",
- "status.filtered": "סונן",
- "status.hide": "הסתרת חיצרוץ",
"status.history.created": "{name} יצר/ה {date}",
"status.history.edited": "{name} ערך/ה {date}",
"status.load_more": "עוד",
@@ -742,16 +812,14 @@
"status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.",
"status.redraft": "מחיקה ועריכה מחדש",
"status.remove_bookmark": "הסרת סימניה",
+ "status.replied_in_thread": "תגובה לשרשור",
"status.replied_to": "בתגובה לחשבון {name}",
"status.reply": "תגובה",
"status.replyAll": "תגובה לשרשור",
"status.report": "דיווח על @{name}",
"status.sensitive_warning": "תוכן רגיש",
"status.share": "שיתוף",
- "status.show_filter_reason": "הראה בכל זאת",
- "status.show_less": "הראה פחות",
"status.show_less_all": "להציג פחות מהכל",
- "status.show_more": "הראה יותר",
"status.show_more_all": "להציג יותר מהכל",
"status.show_original": "הצגת מקור",
"status.title.with_attachments": "{user} פרסם.ה {attachmentCount, plural, one {צרופה} other {{attachmentCount} צרופות}}",
@@ -770,11 +838,7 @@
"time_remaining.minutes": "נותרו {number, plural, one {# דקה} other {# דקות}}",
"time_remaining.moments": "רגעים נותרו",
"time_remaining.seconds": "נותרו {number, plural, one {# שניה} other {# שניות}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} משרתים אחרים לא מוצגים.",
- "timeline_hint.resources.followers": "עוקבים",
- "timeline_hint.resources.follows": "נעקבים",
- "timeline_hint.resources.statuses": "הודעות ישנות יותר",
- "trends.counter_by_accounts": "{count, plural, one {אדם {count}} other {{count} א.נשים}} {days, plural, one {מאז אתמול} two {ביומיים האחרונים} other {במשך {days} הימים האחרונים}}",
+ "trends.counter_by_accounts": "{count, plural, one {אדם אחד} other {{count} א.נשים}} {days, plural, one {מאז אתמול} two {ביומיים האחרונים} other {במשך {days} הימים האחרונים}}",
"trends.trending_now": "נושאים חמים",
"ui.beforeunload": "הטיוטא תאבד אם תעזבו את מסטודון.",
"units.short.billion": "{count} מליארד",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index a2da55da85a..4a513c1c073 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -11,7 +11,6 @@
"about.not_available": "यह जानकारी इस सर्वर पर उपलब्ध नहीं कराई गई है।",
"about.powered_by": "{mastodon} द्वारा संचालित डेसेंट्रलीसेड सोशल मीडिया प्लैटफ़ॉर्म!",
"about.rules": "सर्वर के नियम",
- "account.account_note_header": "टिप्पणियाँ",
"account.add_or_remove_from_list": "सूची में जोड़ें या हटाए",
"account.badges.bot": "बॉट",
"account.badges.group": "समूह",
@@ -19,7 +18,6 @@
"account.block_domain": "{domain} के सारी चीज़े छुपाएं",
"account.block_short": "ब्लॉक किया गया",
"account.blocked": "ब्लॉक",
- "account.browse_more_on_origin_server": "मूल प्रोफ़ाइल पर अधिक ब्राउज़ करें",
"account.cancel_follow_request": "फॉलो रिक्वेस्ट वापस लें",
"account.copy": "प्रोफाइल पर लिंक कॉपी करें",
"account.direct": "निजि तरीके से उल्लेख करे @{name}",
@@ -35,9 +33,7 @@
"account.follow_back": "फॉलो करें",
"account.followers": "फॉलोवर",
"account.followers.empty": "कोई भी इस यूज़र् को फ़ॉलो नहीं करता है",
- "account.followers_counter": "{count, plural, one {{counter} अनुगामी} other {{counter} समर्थक}}",
"account.following": "फॉलोइंग",
- "account.following_counter": "{count, plural, one {{counter} निम्नलिखित} other {{counter} निम्नलिखित}}",
"account.follows.empty": "यह यूज़र् अभी तक किसी को फॉलो नहीं करता है।",
"account.go_to_profile": "प्रोफाइल में जाएँ",
"account.hide_reblogs": "@{name} के बूस्ट छुपाएं",
@@ -63,7 +59,6 @@
"account.requested_follow": "{name} ने आपको फॉलो करने के लिए अनुरोध किया है",
"account.share": "@{name} की प्रोफाइल शेयर करे",
"account.show_reblogs": "@{name} के बूस्ट दिखाए",
- "account.statuses_counter": "{count, plural, one {{counter} भोंपू} other {{counter} भोंपू}}",
"account.unblock": "@{name} को अनब्लॉक करें",
"account.unblock_domain": "{domain} दिखाए",
"account.unblock_short": "अनब्लॉक",
@@ -169,16 +164,12 @@
"compose_form.spoiler_placeholder": "सामग्री चेतावनी (वैकल्पिक)",
"confirmation_modal.cancel": "रद्द करें",
"confirmations.block.confirm": "ब्लॉक",
- "confirmations.cancel_follow_request.confirm": "रिक्वेस्ट वापस लें",
- "confirmations.cancel_follow_request.message": "क्या आप सुनिश्चित है की आप {name} का फॉलो रिक्वेस्ट वापिस लेना चाहते हैं?",
"confirmations.delete.confirm": "मिटाए",
"confirmations.delete.message": "क्या आप वाकई इस स्टेटस को हटाना चाहते हैं?",
"confirmations.delete_list.confirm": "मिटाए",
"confirmations.delete_list.message": "क्या आप वाकई इस लिस्ट को हमेशा के लिये मिटाना चाहते हैं?",
"confirmations.discard_edit_media.confirm": "डिस्कार्ड",
"confirmations.discard_edit_media.message": "लिस्ट में जोड़ें",
- "confirmations.domain_block.confirm": "सर्वर ब्लॉक करें",
- "confirmations.domain_block.message": "क्या आप वास्तव में, वास्तव में आप पूरे {domain} को ब्लॉक करना चाहते हैं? ज्यादातर मामलों में कुछ लक्षित ब्लॉक या म्यूट पर्याप्त और बेहतर हैं। आप किसी भी सार्वजनिक समय-सीमा या अपनी सूचनाओं में उस डोमेन की सामग्री नहीं देखेंगे। उस डोमेन से आपके फॉलोवर्स को हटा दिया जाएगा।",
"confirmations.edit.confirm": "संशोधित करें",
"confirmations.edit.message": "अभी संपादन किया तो वो संदेश मिट जायेगा जिसे आप लिख रहे थे। क्या आप जारी रखना चाहते हैं?",
"confirmations.logout.confirm": "लॉग आउट करें",
@@ -358,8 +349,6 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "बंद करें",
- "lightbox.compress": "कंप्रेस इमेज व्यू बॉक्स",
- "lightbox.expand": "एक्सपैंड इमेज व्यू बॉक्स",
"lightbox.next": "अगला",
"lightbox.previous": "पिछला",
"limited_account_hint.action": "फिर भी प्रोफाइल दिखाओ",
@@ -376,6 +365,7 @@
"lists.replies_policy.none": "कोई नहीं",
"lists.replies_policy.title": "इसके जवाब दिखाएं:",
"lists.subheading": "आपकी सूचियाँ",
+ "media_gallery.hide": "छिपाएं",
"navigation_bar.about": "विवरण",
"navigation_bar.blocks": "ब्लॉक्ड यूज़र्स",
"navigation_bar.bookmarks": "पुस्तकचिह्न:",
@@ -526,13 +516,10 @@
"status.reply": "जवाब",
"status.sensitive_warning": "संवेदनशील विषय वस्तु",
"status.share": "शेयर करें",
- "status.show_less": "कम दिखाएँ",
- "status.show_more": "और दिखाएँ",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.translated_from_with": "{provider} का उपयोग करते हुये {lang} से अनुवादित किया गया",
"tabs_bar.home": "होम",
"tabs_bar.notifications": "सूचनाएँ",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index d952945c464..26c527f2fed 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -11,7 +11,6 @@
"about.not_available": "Te informacije nisu dostupne na ovom poslužitelju.",
"about.powered_by": "Decentralizirani društveni mediji koje pokreće {mastodon}",
"about.rules": "Pravila servera",
- "account.account_note_header": "Bilješka",
"account.add_or_remove_from_list": "Dodaj ili ukloni s liste",
"account.badges.bot": "Bot",
"account.badges.group": "Grupa",
@@ -19,7 +18,6 @@
"account.block_domain": "Blokiraj domenu {domain}",
"account.block_short": "Blokiraj",
"account.blocked": "Blokirano",
- "account.browse_more_on_origin_server": "Pogledajte više na izvornom profilu",
"account.cancel_follow_request": "Withdraw follow request",
"account.copy": "Kopiraj vezu u profil",
"account.direct": "Privatno spomeni @{name}",
@@ -35,9 +33,7 @@
"account.follow_back": "Slijedi natrag",
"account.followers": "Pratitelji",
"account.followers.empty": "Nitko još ne prati korisnika/cu.",
- "account.followers_counter": "{count, plural, one {{counter} pratitelj} other {{counter} pratitelja}}",
"account.following": "Pratim",
- "account.following_counter": "{count, plural, one {{counter} praćeni} few{{counter} praćena} other {{counter} praćenih}}",
"account.follows.empty": "Korisnik/ca još ne prati nikoga.",
"account.go_to_profile": "Idi na profil",
"account.hide_reblogs": "Sakrij boostove od @{name}",
@@ -62,7 +58,6 @@
"account.requested_follow": "{name} zatražio/la je praćenje",
"account.share": "Podijeli profil @{name}",
"account.show_reblogs": "Prikaži boostove od @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} toot} other {{counter} toota}}",
"account.unblock": "Deblokiraj @{name}",
"account.unblock_domain": "Deblokiraj domenu {domain}",
"account.unblock_short": "Deblokiraj",
@@ -147,14 +142,12 @@
"compose_form.spoiler.unmarked": "Tekst nije skriven",
"confirmation_modal.cancel": "Otkaži",
"confirmations.block.confirm": "Blokiraj",
- "confirmations.cancel_follow_request.confirm": "Povuci zahtjev",
"confirmations.delete.confirm": "Obriši",
"confirmations.delete.message": "Stvarno želite obrisati ovaj toot?",
"confirmations.delete_list.confirm": "Obriši",
"confirmations.delete_list.message": "Jeste li sigurni da želite trajno obrisati ovu listu?",
"confirmations.discard_edit_media.confirm": "Odbaciti",
"confirmations.discard_edit_media.message": "Postoje nespremljene promjene u opisu medija ili u pretpregledu, svejedno ih odbaciti?",
- "confirmations.domain_block.message": "Jeste li zaista, zaista sigurni da želite blokirati cijelu domenu {domain}? U većini slučajeva dovoljno je i preferirano nekoliko ciljanih blokiranja ili utišavanja. Nećete vidjeti sadržaj s te domene ni u kojim javnim vremenskim crtama ili Vašim obavijestima. Vaši pratitelji s te domene bit će uklonjeni.",
"confirmations.edit.confirm": "Uredi",
"confirmations.logout.confirm": "Odjavi se",
"confirmations.logout.message": "Jeste li sigurni da se želite odjaviti?",
@@ -317,7 +310,6 @@
"lists.replies_policy.none": "Nitko",
"lists.search": "Traži među praćenim ljudima",
"lists.subheading": "Vaše liste",
- "media_gallery.toggle_visible": "Sakrij {number, plural, one {sliku} other {slike}}",
"navigation_bar.about": "O aplikaciji",
"navigation_bar.advanced_interface": "Otvori u naprednom web sučelju",
"navigation_bar.blocks": "Blokirani korisnici",
@@ -343,9 +335,7 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} Vas je počeo/la pratiti",
"notification.follow_request": "{name} zatražio/la je da Vas prati",
- "notification.mention": "{name} Vas je spomenuo",
"notification.own_poll": "Vaša anketa je završila",
- "notification.poll": "Anketa u kojoj ste glasali je završila",
"notification.reblog": "{name} je boostao/la Vaš status",
"notifications.clear": "Očisti obavijesti",
"notifications.clear_confirmation": "Želite li zaista trajno očistiti sve Vaše obavijesti?",
@@ -467,10 +457,7 @@
"status.delete": "Obriši",
"status.edit": "Uredi",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "Umetni",
"status.filter": "Filtriraj ovu objavu",
- "status.filtered": "Filtrirano",
- "status.hide": "Sakrij objavu",
"status.history.created": "Kreirao/la {name} prije {date}",
"status.history.edited": "Uredio/la {name} prije {date}",
"status.load_more": "Učitaj više",
@@ -496,9 +483,6 @@
"status.report": "Prijavi @{name}",
"status.sensitive_warning": "Osjetljiv sadržaj",
"status.share": "Podijeli",
- "status.show_filter_reason": "Svejedno prikaži",
- "status.show_less": "Pokaži manje",
- "status.show_more": "Pokaži više",
"status.show_original": "Prikaži original",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.translate": "Prevedi",
@@ -513,10 +497,6 @@
"time_remaining.hours": "{number, plural, one {preostao # sat} few {preostalo # sata} other {preostalo # sati}}",
"time_remaining.minutes": "{number, plural, one {preostala # minuta} few {preostale # minute} other {preostalo # minuta}}",
"time_remaining.seconds": "{number, plural, one {preostala # sekunda} few {preostale # sekunde} other {preostalo # sekundi}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} s drugih poslužitelja nisu prikazani.",
- "timeline_hint.resources.followers": "Pratitelji",
- "timeline_hint.resources.follows": "Praćenja",
- "timeline_hint.resources.statuses": "Stariji tootovi",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Popularno",
"ui.beforeunload": "Vaša skica bit će izgubljena ako napustite Mastodon.",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 6164335da82..cb3517e3a38 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -11,7 +11,7 @@
"about.not_available": "Ez az információ nem lett közzétéve ezen a kiszolgálón.",
"about.powered_by": "Decentralizált közösségi média a {mastodon} segítségével",
"about.rules": "Kiszolgáló szabályai",
- "account.account_note_header": "Feljegyzés",
+ "account.account_note_header": "Személyes megjegyzés",
"account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listákról",
"account.badges.bot": "Automatizált",
"account.badges.group": "Csoport",
@@ -19,7 +19,6 @@
"account.block_domain": "Domain letiltása: {domain}",
"account.block_short": "Letiltás",
"account.blocked": "Letiltva",
- "account.browse_more_on_origin_server": "További böngészés az eredeti profilon",
"account.cancel_follow_request": "Követési kérés visszavonása",
"account.copy": "Hivatkozás másolása a profilba",
"account.direct": "@{name} személyes említése",
@@ -35,9 +34,9 @@
"account.follow_back": "Viszontkövetés",
"account.followers": "Követő",
"account.followers.empty": "Ezt a felhasználót még senki sem követi.",
- "account.followers_counter": "{count, plural, one {{counter} Követő} other {{counter} Követő}}",
+ "account.followers_counter": "{count, plural, one {{counter} követő} other {{counter} követő}}",
"account.following": "Követve",
- "account.following_counter": "{count, plural, one {{counter} Követett} other {{counter} Követett}}",
+ "account.following_counter": "{count, plural, one {{counter} követett} other {{counter} követett}}",
"account.follows.empty": "Ez a felhasználó még senkit sem követ.",
"account.go_to_profile": "Ugrás a profilhoz",
"account.hide_reblogs": "@{name} megtolásainak elrejtése",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} kérte, hogy követhessen",
"account.share": "@{name} profiljának megosztása",
"account.show_reblogs": "@{name} megtolásainak mutatása",
- "account.statuses_counter": "{count, plural, one {{counter} Bejegyzés} other {{counter} Bejegyzés}}",
+ "account.statuses_counter": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}",
"account.unblock": "@{name} letiltásának feloldása",
"account.unblock_domain": "{domain} domain tiltásának feloldása",
"account.unblock_short": "Tiltás feloldása",
@@ -98,6 +97,8 @@
"block_modal.title": "Letiltsuk a felhasználót?",
"block_modal.you_wont_see_mentions": "Nem látsz majd őt említő bejegyzéseket.",
"boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}",
+ "boost_modal.reblog": "Bejegyzés megtolása?",
+ "boost_modal.undo_reblog": "Megtolás visszavonása?",
"bundle_column_error.copy_stacktrace": "Hibajelentés másolása",
"bundle_column_error.error.body": "A kért lap nem jeleníthető meg. Ez lehet, hogy kódhiba, vagy böngészőkompatibitási hiba.",
"bundle_column_error.error.title": "Jaj ne!",
@@ -160,7 +161,7 @@
"compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra",
"compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra",
"compose_form.poll.type": "Stílus",
- "compose_form.publish": "Bejegyzés",
+ "compose_form.publish": "Közzététel",
"compose_form.publish_form": "Új bejegyzés",
"compose_form.reply": "Válasz",
"compose_form.save_changes": "Frissítés",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Tartalmi figyelmeztetés (opcionális)",
"confirmation_modal.cancel": "Mégsem",
"confirmations.block.confirm": "Letiltás",
- "confirmations.cancel_follow_request.confirm": "Kérés visszavonása",
- "confirmations.cancel_follow_request.message": "Biztos, hogy visszavonod a(z) {name} felhasználóra vonatkozó követési kérésedet?",
"confirmations.delete.confirm": "Törlés",
"confirmations.delete.message": "Biztos, hogy törölni szeretnéd ezt a bejegyzést?",
+ "confirmations.delete.title": "Törlöd a bejegyzést?",
"confirmations.delete_list.confirm": "Törlés",
"confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?",
+ "confirmations.delete_list.title": "Törlöd a listát?",
"confirmations.discard_edit_media.confirm": "Elvetés",
"confirmations.discard_edit_media.message": "Mentetlen változtatásaid vannak a média leírásában vagy előnézetében, mindenképp elveted?",
- "confirmations.domain_block.confirm": "Kiszolgáló letiltása",
- "confirmations.domain_block.message": "Biztos, hogy le szeretnéd tiltani a teljes {domain} domaint? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő, és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se az idővonalakon, se az értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.",
"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.logout.confirm": "Kijelentkezés",
"confirmations.logout.message": "Biztos, hogy kijelentkezel?",
+ "confirmations.logout.title": "Kijelentkezel?",
"confirmations.mute.confirm": "Némítás",
"confirmations.redraft.confirm": "Törlés és újraírás",
"confirmations.redraft.message": "Biztos, hogy ezt a bejegyzést szeretnéd törölni és újraírni? Minden megtolást és kedvencnek jelölést elvesztesz, az eredetire adott válaszok pedig elárvulnak.",
+ "confirmations.redraft.title": "Törlöd és újraírod a bejegyzést?",
"confirmations.reply.confirm": "Válasz",
"confirmations.reply.message": "Ha most válaszolsz, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?",
+ "confirmations.reply.title": "Felülírod a bejegyzést?",
"confirmations.unfollow.confirm": "Követés visszavonása",
"confirmations.unfollow.message": "Biztos, hogy vissza szeretnéd vonni {name} követését?",
+ "confirmations.unfollow.title": "Megszünteted a felhasználó követését?",
+ "content_warning.hide": "Bejegyzés elrejtése",
+ "content_warning.show": "Megjelenítés mindenképp",
"conversation.delete": "Beszélgetés törlése",
"conversation.mark_as_read": "Megjelölés olvasottként",
"conversation.open": "Beszélgetés megtekintése",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Válassz egy meglévő kategóriát, vagy hozz létre egy újat",
"filter_modal.select_filter.title": "E bejegyzés szűrése",
"filter_modal.title.status": "Egy bejegyzés szűrése",
- "filtered_notifications_banner.mentions": "{count, plural, one {említés} other {említés}}",
- "filtered_notifications_banner.pending_requests": "Értesítések {count, plural, =0 {nincsenek} one {egy valósztínűleg ismerős személytől} other {# valószínűleg ismerős személytől}}",
+ "filter_warning.matches_filter": "Megfelel a szűrőnek: „{title}”",
+ "filtered_notifications_banner.pending_requests": "{count, plural, =0 {senkitől} one {egy valószínűleg ismerős személytől} other {# valószínűleg ismerős személytől}}",
"filtered_notifications_banner.title": "Szűrt értesítések",
"firehose.all": "Összes",
"firehose.local": "Ez a kiszolgáló",
@@ -347,6 +353,14 @@
"hashtag.follow": "Hashtag követése",
"hashtag.unfollow": "Hashtag követésének megszüntetése",
"hashtags.and_other": "…és {count, plural, other {# további}}",
+ "hints.profiles.followers_may_be_missing": "A profil követői lehet, hogy hiányoznak.",
+ "hints.profiles.follows_may_be_missing": "A profil követései lehet, hogy hiányoznak.",
+ "hints.profiles.posts_may_be_missing": "A profil egyes bejegyzései lehet, hogy hiányoznak.",
+ "hints.profiles.see_more_followers": "További követők megtekintése itt: {domain}",
+ "hints.profiles.see_more_follows": "További követések megtekintése itt: {domain}",
+ "hints.profiles.see_more_posts": "További bejegyzések megtekintése itt: {domain}",
+ "hints.threads.replies_may_be_missing": "A más kiszolgálókról érkező válaszok lehet, hogy hiányoznak.",
+ "hints.threads.see_more": "További válaszok megtekintése itt: {domain}",
"home.column_settings.show_reblogs": "Megtolások megjelenítése",
"home.column_settings.show_replies": "Válaszok megjelenítése",
"home.hide_announcements": "Közlemények elrejtése",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Frissítések megtekintése",
"home.pending_critical_update.title": "Kritikus biztonsági frissítés érhető el!",
"home.show_announcements": "Közlemények megjelenítése",
+ "ignore_notifications_modal.disclaimer": "A Mastodon nem tudja értesíteni azokat a felhasználókat, akiknek figyelmen kívül hagytad az értesítéseit. Az értesítések figyelmen kívül hagyása nem állítja meg az üzenetek elküldését.",
+ "ignore_notifications_modal.filter_instead": "Inkább szűrés",
+ "ignore_notifications_modal.filter_to_act_users": "Továbbra is el tudod fogadni, el tudod utasítani vagy tudod jelenteni a felhasználókat",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "A szűrés segít elkerülni a lehetséges félreértéseket",
+ "ignore_notifications_modal.filter_to_review_separately": "A szűrt értesítések külön tekinthetők át",
+ "ignore_notifications_modal.ignore": "Értesítések figyelmen kívül hagyása",
+ "ignore_notifications_modal.limited_accounts_title": "Moderált fiókok értesítéseinek figyelmen kívül hagyása?",
+ "ignore_notifications_modal.new_accounts_title": "Új fiókok értesítéseinek figyelmen kívül hagyása?",
+ "ignore_notifications_modal.not_followers_title": "Nem követőktől érkező értesítések figyelmen kívül hagyása?",
+ "ignore_notifications_modal.not_following_title": "Nem követettektől érkező értesítések figyelmen kívül hagyása?",
+ "ignore_notifications_modal.private_mentions_title": "Figyelmen kívül hagyod a kéretlen privát említéseket?",
"interaction_modal.description.favourite": "Egy Mastodon fiókkal kedvencnek jelölheted ezt a bejegyzést, tudatva a szerzővel, hogy értékeled és elteszed későbbre.",
"interaction_modal.description.follow": "Egy Mastodon-fiókkal követheted {name} fiókját, hogy lásd a bejegyzéseit a kezdőlapodon.",
"interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolhatod ezt a bejegyzést, hogy megoszd a saját követőiddel.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Szerkesztés/keresés fókuszból való kivétele",
"keyboard_shortcuts.up": "Mozgás felfelé a listában",
"lightbox.close": "Bezárás",
- "lightbox.compress": "Képnéző doboz összezárása",
- "lightbox.expand": "Képnéző doboz kinyitása",
"lightbox.next": "Következő",
"lightbox.previous": "Előző",
+ "lightbox.zoom_in": "Nagyítás a tényleges méretre",
+ "lightbox.zoom_out": "Méretre igazítás",
"limited_account_hint.action": "Profil megjelenítése mindenképpen",
"limited_account_hint.title": "Ezt a profilt {domain} moderátorai elrejtették.",
"link_preview.author": "{name} szerint",
@@ -432,7 +457,7 @@
"lists.subheading": "Saját listák",
"load_pending": "{count, plural, one {# új elem} other {# új elem}}",
"loading_indicator.label": "Betöltés…",
- "media_gallery.toggle_visible": "{number, plural, one {Kép elrejtése} other {Képek elrejtése}}",
+ "media_gallery.hide": "Elrejtés",
"moved_to_account_banner.text": "A(z) {disabledAccount} fiókod jelenleg le van tiltva, mert átköltöztél ide: {movedToAccount}.",
"mute_modal.hide_from_notifications": "Elrejtés az értesítések közül",
"mute_modal.hide_options": "Beállítások elrejtése",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Nem látsz majd őt említő bejegyzéseket.",
"mute_modal.you_wont_see_posts": "Továbbra is látni fogja a bejegyzéseidet, de te nem fogod látni az övéit.",
"navigation_bar.about": "Névjegy",
+ "navigation_bar.administration": "Adminisztráció",
"navigation_bar.advanced_interface": "Megnyitás a speciális webes felületben",
"navigation_bar.blocks": "Letiltott felhasználók",
"navigation_bar.bookmarks": "Könyvjelzők",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Követések és követők",
"navigation_bar.lists": "Listák",
"navigation_bar.logout": "Kijelentkezés",
+ "navigation_bar.moderation": "Moderáció",
"navigation_bar.mutes": "Némított felhasználók",
"navigation_bar.opened_in_classic_interface": "A bejegyzések, fiókok és más speciális oldalak alapértelmezés szerint a klasszikus webes felületen nyílnak meg.",
"navigation_bar.personal": "Személyes",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Biztonság",
"not_signed_in_indicator.not_signed_in": "Az erőforrás eléréséhez be kell jelentkezned.",
"notification.admin.report": "{name} jelentette: {target}",
+ "notification.admin.report_account": "{name} jelentett {count, plural, one {egy bejegyzést} other {# bejegyzést}} itt: {target}, ezért: {category}",
+ "notification.admin.report_account_other": "{name} jelentett {count, plural, one {egy bejegyzést} other {# bejegyzést}} itt: {target}",
+ "notification.admin.report_statuses": "{name} jelentette: {target}, ezért: {category}",
+ "notification.admin.report_statuses_other": "{name} jelentette: {target}",
"notification.admin.sign_up": "{name} regisztrált",
+ "notification.admin.sign_up.name_and_others": "{name} és {count, plural, one {# másik} other {# másik}} regisztrált",
"notification.favourite": "{name} kedvencnek jelölte a bejegyzésedet",
+ "notification.favourite.name_and_others_with_link": "{name} és {count, plural, one {# másik} other {# másik}} kedvencnek jelölte a bejegyzésedet",
"notification.follow": "{name} követ téged",
+ "notification.follow.name_and_others": "{name} és {count, plural, one {# másik} other {# másik}} követni kezdett",
"notification.follow_request": "{name} követni szeretne téged",
- "notification.mention": "{name} megemlített",
+ "notification.follow_request.name_and_others": "{name} és {count, plural, one {# másik} other {# másik}} kérte, hogy követhessen",
+ "notification.label.mention": "Említés",
+ "notification.label.private_mention": "Privát említés",
+ "notification.label.private_reply": "Privát válasz",
+ "notification.label.reply": "Válasz",
+ "notification.mention": "Említés",
"notification.moderation-warning.learn_more": "További információ",
"notification.moderation_warning": "Moderációs figyelmeztetést kaptál",
"notification.moderation_warning.action_delete_statuses": "Néhány bejegyzésedet eltávolították.",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "A fiókod korlátozásra került.",
"notification.moderation_warning.action_suspend": "A fiókod felfüggesztésre került.",
"notification.own_poll": "A szavazásod véget ért",
- "notification.poll": "Egy szavazás, melyben részt vettél, véget ért",
+ "notification.poll": "Véget ért egy szavazás, melyben részt vettél",
"notification.reblog": "{name} megtolta a bejegyzésedet",
+ "notification.reblog.name_and_others_with_link": "{name} és {count, plural, one {# másik} other {# másik}} megtolta a bejegyzésedet",
"notification.relationships_severance_event": "Elvesztek a kapcsolatok vele: {name}",
"notification.relationships_severance_event.account_suspension": "Egy admin a(z) {from} kiszolgálóról felfüggesztette {target} fiókját, ami azt jelenti, hogy mostantól nem fogsz róla értesítést kapni, és nem fogsz tudni vele kapcsolatba lépni.",
"notification.relationships_severance_event.domain_block": "Egy admin a(z) {from} kiszolgálón letiltotta {target} domaint, beleértve {followersCount} követőt és {followingCount, plural, one {#} other {#}} követett fiókot.",
@@ -495,11 +535,27 @@
"notification.status": "{name} bejegyzést tett közzé",
"notification.update": "{name} szerkesztett egy bejegyzést",
"notification_requests.accept": "Elfogadás",
+ "notification_requests.accept_multiple": "{count, plural, one {# kérés elfogadása…} other {# kérés elfogadása…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Kérés elfogadása} other {Kérések elfogadása}}",
+ "notification_requests.confirm_accept_multiple.message": "Elfogadni készülsz {count, plural, one {egy értesítési kérést} other {# értesítési kérést}}. Biztosan folytatod?",
+ "notification_requests.confirm_accept_multiple.title": "Értesítési kérések elfogadása?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Kérés elvetése} other {Kérések elvetése}}",
+ "notification_requests.confirm_dismiss_multiple.message": "{count, plural, one {Egy értesítési kérés} other {# értesítési kérés}} elvetésére készülsz. Többé nem fogsz {count, plural, one {hozzáférni} other {hozzájuk férni}}. Biztosan folytatod?",
+ "notification_requests.confirm_dismiss_multiple.title": "Értesítési kérések elvetése?",
"notification_requests.dismiss": "Elvetés",
+ "notification_requests.dismiss_multiple": "{count, plural, one {# kérés elvetése…} other {# kérés elvetése…}}",
+ "notification_requests.edit_selection": "Szerkesztés",
+ "notification_requests.exit_selection": "Kész",
+ "notification_requests.explainer_for_limited_account": "Az ettől a fióktól származó értesítéseket kiszűrték, mert a fiókot egy moderátor korlátozta.",
+ "notification_requests.explainer_for_limited_remote_account": "Az ettől a fióktól származó értesítéseket kiszűrték, mert a fiókot vagy annak kiszolgálóját egy moderátor korlátozta.",
+ "notification_requests.maximize": "Maximalizálás",
+ "notification_requests.minimize_banner": "Szűrt értesítések sávjának minimalizálása",
"notification_requests.notifications_from": "{name} értesítései",
"notification_requests.title": "Szűrt értesítések",
+ "notification_requests.view": "Értesítések megtekintése",
"notifications.clear": "Értesítések törlése",
"notifications.clear_confirmation": "Biztos, hogy véglegesen törölni akarod az összes értesítésed?",
+ "notifications.clear_title": "Törlöd az értesítéseket?",
"notifications.column_settings.admin.report": "Új jelentések:",
"notifications.column_settings.admin.sign_up": "Új regisztrálók:",
"notifications.column_settings.alert": "Asztali értesítések",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Az asztali értesítések nem érhetők el a korábban elutasított böngészőengedély-kérelem miatt",
"notifications.permission_denied_alert": "Az asztali értesítések nem engedélyezhetők a korábban elutasított böngésző engedély miatt",
"notifications.permission_required": "Az asztali értesítések nem érhetőek el, mivel a szükséges engedély nem lett megadva.",
+ "notifications.policy.accept": "Elfogadás",
+ "notifications.policy.accept_hint": "Megjelenítés az értesítések között",
+ "notifications.policy.drop": "Figyelmen kívül hagyás",
+ "notifications.policy.drop_hint": "Küldés a semmibe, többé ne jelenjen meg",
+ "notifications.policy.filter": "Szűrő",
+ "notifications.policy.filter_hint": "Küldés a szűrt értesítések közé",
+ "notifications.policy.filter_limited_accounts_hint": "A szerver moderátorai által korlátozott",
+ "notifications.policy.filter_limited_accounts_title": "Moderált fiókok",
"notifications.policy.filter_new_accounts.hint": "Az elmúlt {days, plural, one {napban} other {# napban}} létrehozva",
"notifications.policy.filter_new_accounts_title": "Új fiókok",
"notifications.policy.filter_not_followers_hint": "Beleértve azokat, akik kevesebb mint {days, plural, one {egy napja} other {# napja}} követnek",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Nem követett emberek",
"notifications.policy.filter_private_mentions_hint": "Kiszűrve, hacsak nem a saját említésedre válaszol, vagy ha nem követed a feladót",
"notifications.policy.filter_private_mentions_title": "Kéretlen személyes említések",
- "notifications.policy.title": "Feladó értesítéseinek kiszűrése…",
+ "notifications.policy.title": "Értesítések kezelése…",
"notifications_permission_banner.enable": "Asztali értesítések engedélyezése",
"notifications_permission_banner.how_to_control": "Ahhoz, hogy értesítéseket kapj akkor, amikor a Mastodon nincs megnyitva, engedélyezd az asztali értesítéseket. Pontosan be tudod állítani, hogy milyen interakciókról értesülj a fenti {icon} gombon keresztül, ha egyszer már engedélyezted őket.",
"notifications_permission_banner.title": "Soha ne mulassz el semmit",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Követed ezt a fiókot. Hogy ne lásd a bejegyzéseit a saját idővonaladon, szüntesd meg a követését.",
"report_notification.attached_statuses": "{count} bejegyzés mellékelve",
"report_notification.categories.legal": "Jogi",
+ "report_notification.categories.legal_sentence": "illegális tartalom",
"report_notification.categories.other": "Egyéb",
+ "report_notification.categories.other_sentence": "egyéb",
"report_notification.categories.spam": "Kéretlen üzenet",
+ "report_notification.categories.spam_sentence": "kéretlen üzenet",
"report_notification.categories.violation": "Szabálysértés",
+ "report_notification.categories.violation_sentence": "szabálysértés",
"report_notification.open": "Bejelentés megnyitása",
"search.no_recent_searches": "Nincsenek keresési előzmények",
"search.placeholder": "Keresés",
@@ -710,6 +778,7 @@
"status.bookmark": "Könyvjelzőzés",
"status.cancel_reblog_private": "Megtolás visszavonása",
"status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni",
+ "status.continued_thread": "Folytatott szál",
"status.copy": "Link másolása bejegyzésbe",
"status.delete": "Törlés",
"status.detailed_status": "Részletes beszélgetési nézet",
@@ -718,12 +787,10 @@
"status.edit": "Szerkesztés",
"status.edited": "Utoljára szerkesztve {date}",
"status.edited_x_times": "{count, plural, one {{count} alkalommal} other {{count} alkalommal}} szerkesztve",
- "status.embed": "Beágyazás",
+ "status.embed": "Beágyazási kód lekérése",
"status.favourite": "Kedvenc",
"status.favourites": "{count, plural, one {kedvenc} other {kedvenc}}",
"status.filter": "E bejegyzés szűrése",
- "status.filtered": "Megszűrt",
- "status.hide": "Bejegyzés elrejtése",
"status.history.created": "{name} létrehozta: {date}",
"status.history.edited": "{name} szerkesztette: {date}",
"status.load_more": "Többet",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.",
"status.redraft": "Törlés és újraírás",
"status.remove_bookmark": "Könyvjelző eltávolítása",
+ "status.replied_in_thread": "Válaszolva a szálban",
"status.replied_to": "Megválaszolva {name} számára",
"status.reply": "Válasz",
"status.replyAll": "Válasz a beszélgetésre",
"status.report": "@{name} bejelentése",
"status.sensitive_warning": "Kényes tartalom",
"status.share": "Megosztás",
- "status.show_filter_reason": "Megjelenítés mindenképp",
- "status.show_less": "Kevesebb megjelenítése",
"status.show_less_all": "Kevesebbet mindenhol",
- "status.show_more": "Többet",
"status.show_more_all": "Többet mindenhol",
"status.show_original": "Eredeti megjelenítése",
"status.title.with_attachments": "{user} {attachmentCount, plural, one {mellékletet} other {{attachmentCount} mellékletet}} küldött be.",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# perc} other {# perc}} van hátra",
"time_remaining.moments": "Pillanatok vannak hátra",
"time_remaining.seconds": "{number, plural, one {# másodperc} other {# másodperc}} van hátra",
- "timeline_hint.remote_resource_not_displayed": "a más kiszolgálókról származó {resource} tartalmak nem jelennek meg.",
- "timeline_hint.resources.followers": "Követő",
- "timeline_hint.resources.follows": "Követett",
- "timeline_hint.resources.statuses": "Régi bejegyzések",
"trends.counter_by_accounts": "{count, plural, one {{counter} ember} other {{counter} ember}} az elmúlt {days, plural,one {napban} other {{days} napban}}",
"trends.trending_now": "Most felkapott",
"ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Mastodont.",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index cd29f441df7..9e5ae790453 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -7,7 +7,6 @@
"about.not_available": "Այս տեղեկութիւնը տեսանելի չի այս սերուերում։",
"about.powered_by": "Ապակենտրոն սոց. ցանց սեղծուած {mastodon}-ով։",
"about.rules": "Սերուերի կանոնները",
- "account.account_note_header": "Նշում",
"account.add_or_remove_from_list": "Աւելացնել կամ հեռացնել ցանկերից",
"account.badges.bot": "Բոտ",
"account.badges.group": "Խումբ",
@@ -15,7 +14,6 @@
"account.block_domain": "Թաքցնել ամէնը հետեւեալ տիրոյթից՝ {domain}",
"account.block_short": "Արգելափակել",
"account.blocked": "Արգելափակուած է",
- "account.browse_more_on_origin_server": "Դիտել աւելին իրական պրոֆիլում",
"account.cancel_follow_request": "Withdraw follow request",
"account.direct": "Մասնաւոր յիշատակում @{name}",
"account.disable_notifications": "Ծանուցումները անջատել @{name} գրառումների համար",
@@ -28,9 +26,7 @@
"account.follow": "Հետեւել",
"account.followers": "Հետեւողներ",
"account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։",
- "account.followers_counter": "{count, plural, one {{counter} Հետեւորդ} other {{counter} Հետեւորդ}}",
"account.following": "Հետեւած",
- "account.following_counter": "{count, plural, one {{counter} Հետեւած} other {{counter} Հետեւած}}",
"account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։",
"account.go_to_profile": "Գնալ անձնական հաշիւ",
"account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները",
@@ -52,7 +48,6 @@
"account.requested_follow": "{name}-ը ցանկանում է հետեւել քեզ",
"account.share": "Կիսուել @{name}֊ի էջով",
"account.show_reblogs": "Ցուցադրել @{name}֊ի տարածածները",
- "account.statuses_counter": "{count, plural, one {{counter} Գրառում} other {{counter} Գրառումներ}}",
"account.unblock": "Ապաարգելափակել @{name}֊ին",
"account.unblock_domain": "Ցուցադրել {domain} թաքցուած տիրոյթի գրառումները",
"account.unblock_short": "Արգելաբացել",
@@ -124,13 +119,11 @@
"compose_form.spoiler.unmarked": "Տեքստը թաքցուած չէ",
"confirmation_modal.cancel": "Չեղարկել",
"confirmations.block.confirm": "Արգելափակել",
- "confirmations.cancel_follow_request.confirm": "Կասեցնել հայցը",
"confirmations.delete.confirm": "Ջնջել",
"confirmations.delete.message": "Վստա՞հ ես, որ ուզում ես ջնջել այս գրառումը։",
"confirmations.delete_list.confirm": "Ջնջել",
"confirmations.delete_list.message": "Վստա՞հ ես, որ ուզում ես մշտապէս ջնջել այս ցանկը։",
"confirmations.discard_edit_media.confirm": "Չեղարկել",
- "confirmations.domain_block.message": "Հաստատ֊հաստա՞տ վստահ ես, որ ուզում ես արգելափակել ամբողջ {domain} տիրոյթը։ Սովորաբար մի երկու թիրախաւորուած արգելափակում կամ լռեցում բաւական է ու նախընտրելի։",
"confirmations.edit.confirm": "Խմբագրել",
"confirmations.logout.confirm": "Ելք",
"confirmations.logout.message": "Համոզո՞ւած ես, որ ուզում ես դուրս գալ",
@@ -278,8 +271,6 @@
"keyboard_shortcuts.unfocus": "տեքստի/որոնման տիրոյթից ապասեւեռուելու համար",
"keyboard_shortcuts.up": "ցանկով վերեւ շարժուելու համար",
"lightbox.close": "Փակել",
- "lightbox.compress": "Փակել պատկերի դիտման պատուհանը",
- "lightbox.expand": "Բացել պատկերի դիտման պատուհանը",
"lightbox.next": "Յաջորդ",
"lightbox.previous": "Նախորդ",
"lists.account.add": "Աւելացնել ցանկին",
@@ -296,7 +287,6 @@
"lists.search": "Փնտրել քո հետեւած մարդկանց մէջ",
"lists.subheading": "Քո ցանկերը",
"load_pending": "{count, plural, one {# նոր նիւթ} other {# նոր նիւթ}}",
- "media_gallery.toggle_visible": "Ցուցադրել/թաքցնել",
"navigation_bar.about": "Մասին",
"navigation_bar.blocks": "Արգելափակուած օգտատէրեր",
"navigation_bar.bookmarks": "Էջանիշեր",
@@ -325,9 +315,7 @@
"notification.favourite": "{name}-ը հաւանել է քո գրառումը",
"notification.follow": "{name} սկսեց հետեւել քեզ",
"notification.follow_request": "{name} քեզ հետեւելու հայց է ուղարկել",
- "notification.mention": "{name} նշեց քեզ",
"notification.own_poll": "Հարցումդ աւարտուեց",
- "notification.poll": "Հարցումը, ուր դու քուէարկել ես, աւարտուեց։",
"notification.reblog": "{name} տարածեց գրառումդ",
"notification.status": "{name} հենց նոր գրառում արեց",
"notification.update": "{name}-ը փոխել է գրառումը",
@@ -458,11 +446,8 @@
"status.direct_indicator": "Մասնաւոր յիշատակում",
"status.edit": "Խմբագրել",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "Ներդնել",
"status.favourite": "Հավանել",
"status.filter": "Զտել այս գրառումը",
- "status.filtered": "Զտուած",
- "status.hide": "Թաքցնել գրառումը",
"status.history.created": "{name}-ը ստեղծել է՝ {date}",
"status.history.edited": "{name}-ը խմբագրել է՝ {date}",
"status.load_more": "Բեռնել աւելին",
@@ -487,10 +472,7 @@
"status.report": "Բողոքել @{name}֊ից",
"status.sensitive_warning": "Կասկածելի բովանդակութիւն",
"status.share": "Կիսուել",
- "status.show_filter_reason": "Ցոյց տալ բոլոր դէպքերում",
- "status.show_less": "Պակաս",
"status.show_less_all": "Թաքցնել բոլոր նախազգուշացնումները",
- "status.show_more": "Աւելին",
"status.show_more_all": "Ցուցադրել բոլոր նախազգուշացնումները",
"status.show_original": "Ցոյց տալ բնօրինակը",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -505,10 +487,6 @@
"time_remaining.minutes": "{number, plural, one {# րոպէ} other {# րոպէ}} անց",
"time_remaining.moments": "Մնացել է մի քանի վարկեան",
"time_remaining.seconds": "{number, plural, one {# վարկեան} other {# վարկեան}} անց",
- "timeline_hint.remote_resource_not_displayed": "{resource} այլ սպասարկիչներից չեն ցուցադրվել:",
- "timeline_hint.resources.followers": "Հետեւորդ",
- "timeline_hint.resources.follows": "Հետեւել",
- "timeline_hint.resources.statuses": "Հին գրառումներ",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Այժմ արդիական",
"ui.beforeunload": "Քո սեւագիրը կը կորի, եթէ լքես Մաստոդոնը։",
diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json
index 53cc9385924..93bee9ec798 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -11,7 +11,7 @@
"about.not_available": "Iste information non ha essite rendite disponibile sur iste servitor.",
"about.powered_by": "Rete social decentralisate, actionate per {mastodon}",
"about.rules": "Regulas del servitor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota personal",
"account.add_or_remove_from_list": "Adder a, o remover de listas",
"account.badges.bot": "Automatisate",
"account.badges.group": "Gruppo",
@@ -19,7 +19,6 @@
"account.block_domain": "Blocar dominio {domain}",
"account.block_short": "Blocar",
"account.blocked": "Blocate",
- "account.browse_more_on_origin_server": "Explorar plus sur le profilo original",
"account.cancel_follow_request": "Cancellar sequimento",
"account.copy": "Copiar ligamine a profilo",
"account.direct": "Mentionar privatemente @{name}",
@@ -98,6 +97,8 @@
"block_modal.title": "Blocar usator?",
"block_modal.you_wont_see_mentions": "Tu non videra le messages que mentiona iste persona.",
"boost_modal.combo": "Tu pote premer {combo} pro saltar isto le proxime vice",
+ "boost_modal.reblog": "Impulsar le message?",
+ "boost_modal.undo_reblog": "Cessar de impulsar le message?",
"bundle_column_error.copy_stacktrace": "Copiar reporto de error",
"bundle_column_error.error.body": "Le pagina requestate non pote esser visualisate. Pote esser a causa de un defecto in nostre codice o de un problema de compatibilitate del navigator.",
"bundle_column_error.error.title": "Oh, no!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Advertimento de contento (optional)",
"confirmation_modal.cancel": "Cancellar",
"confirmations.block.confirm": "Blocar",
- "confirmations.cancel_follow_request.confirm": "Retirar requesta",
- "confirmations.cancel_follow_request.message": "Es tu secur que tu vole retirar tu requesta de sequer {name}?",
"confirmations.delete.confirm": "Deler",
"confirmations.delete.message": "Es tu secur que tu vole deler iste message?",
+ "confirmations.delete.title": "Deler message?",
"confirmations.delete_list.confirm": "Deler",
"confirmations.delete_list.message": "Es tu secur que tu vole deler permanentemente iste lista?",
+ "confirmations.delete_list.title": "Deler lista?",
"confirmations.discard_edit_media.confirm": "Abandonar",
"confirmations.discard_edit_media.message": "Tu ha cambiamentos non salvate in le description o previsualisation del objecto multimedial. Abandonar los?",
- "confirmations.domain_block.confirm": "Blocar le servitor",
- "confirmations.domain_block.message": "Es tu realmente, absolutemente secur de voler blocar tote le dominio {domain}? In le major parte del casos es preferibile blocar o silentiar alcun personas specific. Si tu bloca tote le dominio, tu non videra alcun contento de ille dominio in alcun chronologia public o in tu notificationes, e tu sequitores de ille dominio essera removite.",
"confirmations.edit.confirm": "Modificar",
"confirmations.edit.message": "Si tu modifica isto ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?",
+ "confirmations.edit.title": "Superscriber le message?",
"confirmations.logout.confirm": "Clauder session",
"confirmations.logout.message": "Es tu secur que tu vole clauder le session?",
+ "confirmations.logout.title": "Clauder session?",
"confirmations.mute.confirm": "Silentiar",
"confirmations.redraft.confirm": "Deler e rescriber",
"confirmations.redraft.message": "Es tu secur de voler deler iste message e rescriber lo? Le favorites e le impulsos essera perdite, e le responsas al message original essera orphanate.",
+ "confirmations.redraft.title": "Deler e rescriber le message?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Si tu responde ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?",
+ "confirmations.reply.title": "Superscriber le message?",
"confirmations.unfollow.confirm": "Non plus sequer",
"confirmations.unfollow.message": "Es tu secur que tu vole cessar de sequer {name}?",
+ "confirmations.unfollow.title": "Cessar de sequer le usator?",
+ "content_warning.hide": "Celar le message",
+ "content_warning.show": "Monstrar in omne caso",
"conversation.delete": "Deler conversation",
"conversation.mark_as_read": "Marcar como legite",
"conversation.open": "Vider conversation",
@@ -297,8 +303,7 @@
"filter_modal.select_filter.subtitle": "Usa un categoria existente o crea un nove",
"filter_modal.select_filter.title": "Filtrar iste message",
"filter_modal.title.status": "Filtrar un message",
- "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentiones}}",
- "filtered_notifications_banner.pending_requests": "Notificationes ab {count, plural, =0 {nemo} one {un persona} other {# personas}} tu poterea cognoscer",
+ "filter_warning.matches_filter": "Corresponde al filtro “{title}”",
"filtered_notifications_banner.title": "Notificationes filtrate",
"firehose.all": "Toto",
"firehose.local": "Iste servitor",
@@ -347,6 +352,11 @@
"hashtag.follow": "Sequer hashtag",
"hashtag.unfollow": "Non sequer plus le hashtag",
"hashtags.and_other": "…e {count, plural, one {}other {# plus}}",
+ "hints.profiles.see_more_followers": "Vider plus de sequitores sur {domain}",
+ "hints.profiles.see_more_follows": "Vider plus de sequites sur {domain}",
+ "hints.profiles.see_more_posts": "Vider plus de messages sur {domain}",
+ "hints.threads.replies_may_be_missing": "Responsas de altere servitores pote esser perdite.",
+ "hints.threads.see_more": "Vider plus de responsas sur {domain}",
"home.column_settings.show_reblogs": "Monstrar impulsos",
"home.column_settings.show_replies": "Monstrar responsas",
"home.hide_announcements": "Celar annuncios",
@@ -354,7 +364,13 @@
"home.pending_critical_update.link": "Vider actualisationes",
"home.pending_critical_update.title": "Actualisation de securitate critic disponibile!",
"home.show_announcements": "Monstrar annuncios",
- "interaction_modal.description.favourite": "Con un conto sur Mastodon, tu pote marcar iste message como favorite pro informar le autor que tu lo apprecia e salveguarda pro plus tarde.",
+ "ignore_notifications_modal.ignore": "Ignorar le notificationes",
+ "ignore_notifications_modal.limited_accounts_title": "Ignorar le notificationes de contos moderate?",
+ "ignore_notifications_modal.new_accounts_title": "Ignorar le notificationes de nove contos?",
+ "ignore_notifications_modal.not_followers_title": "Ignorar notificationes de personas qui non te seque?",
+ "ignore_notifications_modal.not_following_title": "Ignorar notificationes de personas que tu non seque?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorar notificationes de mentiones private non requestate?",
+ "interaction_modal.description.favourite": "Con un conto sur Mastodon, tu pote marcar iste message como favorite pro informar le autor que tu lo apprecia e lo salva pro plus tarde.",
"interaction_modal.description.follow": "Con un conto sur Mastodon, tu pote sequer {name} e reciper su messages in tu fluxo de initio.",
"interaction_modal.description.reblog": "Con un conto sur Mastodon, tu pote impulsar iste message pro condivider lo con tu proprie sequitores.",
"interaction_modal.description.reply": "Con un conto sur Mastodon, tu pote responder a iste message.",
@@ -407,8 +423,6 @@
"keyboard_shortcuts.unfocus": "Disfocalisar le area de composition de texto/de recerca",
"keyboard_shortcuts.up": "Displaciar in alto in le lista",
"lightbox.close": "Clauder",
- "lightbox.compress": "Comprimer le quadro de visualisation de imagine",
- "lightbox.expand": "Expander le quadro de visualisation de imagine",
"lightbox.next": "Sequente",
"lightbox.previous": "Precedente",
"limited_account_hint.action": "Monstrar profilo in omne caso",
@@ -432,7 +446,7 @@
"lists.subheading": "Tu listas",
"load_pending": "{count, plural, one {# nove entrata} other {# nove entratas}}",
"loading_indicator.label": "Cargante…",
- "media_gallery.toggle_visible": "{number, plural, one {Celar imagine} other {Celar imagines}}",
+ "media_gallery.hide": "Celar",
"moved_to_account_banner.text": "Tu conto {disabledAccount} es actualmente disactivate perque tu ha cambiate de conto a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Celar in notificationes",
"mute_modal.hide_options": "Celar optiones",
@@ -444,6 +458,7 @@
"mute_modal.you_wont_see_mentions": "Tu non videra le messages que mentiona iste persona.",
"mute_modal.you_wont_see_posts": "Iste persona pote totevia vider tu messages, ma tu non videra le sues.",
"navigation_bar.about": "A proposito",
+ "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Aperir in le interfacie web avantiate",
"navigation_bar.blocks": "Usatores blocate",
"navigation_bar.bookmarks": "Marcapaginas",
@@ -460,6 +475,7 @@
"navigation_bar.follows_and_followers": "Sequites e sequitores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Clauder session",
+ "navigation_bar.moderation": "Moderation",
"navigation_bar.mutes": "Usatores silentiate",
"navigation_bar.opened_in_classic_interface": "Messages, contos e altere paginas specific es aperite per predefinition in le interfacie web classic.",
"navigation_bar.personal": "Personal",
@@ -470,11 +486,19 @@
"navigation_bar.security": "Securitate",
"not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.",
"notification.admin.report": "{name} ha reportate {target}",
+ "notification.admin.report_account": "{name} ha reportate {count, plural, one {un message} other {# messages}} de {target} per {category}",
+ "notification.admin.report_account_other": "{name} ha reportate {count, plural, one {un message} other {# messages}} de {target}",
+ "notification.admin.report_statuses": "{name} ha reportate {target} pro {category}",
+ "notification.admin.report_statuses_other": "{name} ha reportate {target}",
"notification.admin.sign_up": "{name} se ha inscribite",
"notification.favourite": "{name} ha marcate tu message como favorite",
"notification.follow": "{name} te ha sequite",
"notification.follow_request": "{name} ha requestate de sequer te",
- "notification.mention": "{name} te ha mentionate",
+ "notification.label.mention": "Mention",
+ "notification.label.private_mention": "Mention private",
+ "notification.label.private_reply": "Responsa private",
+ "notification.label.reply": "Responder",
+ "notification.mention": "Mention",
"notification.moderation-warning.learn_more": "Apprender plus",
"notification.moderation_warning": "Tu ha recipite un advertimento de moderation",
"notification.moderation_warning.action_delete_statuses": "Alcunes de tu messages ha essite removite.",
@@ -495,11 +519,17 @@
"notification.status": "{name} ha justo ora publicate",
"notification.update": "{name} ha modificate un message",
"notification_requests.accept": "Acceptar",
+ "notification_requests.confirm_accept_multiple.title": "Acceptar petitiones de notification?",
+ "notification_requests.confirm_dismiss_multiple.title": "Dimitter petitiones de notification?",
"notification_requests.dismiss": "Clauder",
+ "notification_requests.edit_selection": "Modificar",
+ "notification_requests.exit_selection": "Facite",
"notification_requests.notifications_from": "Notificationes de {name}",
"notification_requests.title": "Notificationes filtrate",
+ "notification_requests.view": "Vider notificationes",
"notifications.clear": "Rader notificationes",
"notifications.clear_confirmation": "Es tu secur que tu vole rader permanentemente tote tu notificationes?",
+ "notifications.clear_title": "Rader le notificationes?",
"notifications.column_settings.admin.report": "Nove reportos:",
"notifications.column_settings.admin.sign_up": "Nove inscriptiones:",
"notifications.column_settings.alert": "Notificationes de scriptorio",
@@ -531,6 +561,11 @@
"notifications.permission_denied": "Le notificationes de scriptorio es indisponibile a causa de un requesta anteriormente refusate de permissiones del navigator",
"notifications.permission_denied_alert": "Le notificationes de scriptorio non pote esser activate perque le permission del navigator ha essite refusate anteriormente",
"notifications.permission_required": "Le notificationes de scriptorio es indisponibile perque le permission necessari non ha essite concedite.",
+ "notifications.policy.accept": "Acceptar",
+ "notifications.policy.accept_hint": "Monstrar in le notificationes",
+ "notifications.policy.filter": "Filtrar",
+ "notifications.policy.filter_hint": "Inviar al cassa de notificationes filtrate",
+ "notifications.policy.filter_limited_accounts_title": "Contos moderate",
"notifications.policy.filter_new_accounts.hint": "Create in le ultime {days, plural, one {die} other {# dies}}",
"notifications.policy.filter_new_accounts_title": "Nove contos",
"notifications.policy.filter_not_followers_hint": "Includente le personas que te ha sequite durante minus de {days, plural, one {un die} other {# dies}}",
@@ -539,7 +574,7 @@
"notifications.policy.filter_not_following_title": "Personas que tu non seque",
"notifications.policy.filter_private_mentions_hint": "Filtrate, excepte si es in responsa a tu proprie mention o si tu seque le expeditor",
"notifications.policy.filter_private_mentions_title": "Mentiones private indesirate",
- "notifications.policy.title": "Filtrar notificationes de…",
+ "notifications.policy.title": "Gerer notificationes de…",
"notifications_permission_banner.enable": "Activar notificationes de scriptorio",
"notifications_permission_banner.how_to_control": "Pro reciper notificationes quando Mastodon non es aperte, activa le notificationes de scriptorio. Post lor activation, es possibile controlar precisemente qual typos de interaction genera notificationes de scriptorio per medio del button {icon} hic supra.",
"notifications_permission_banner.title": "Non mancar jammais a un cosa",
@@ -592,8 +627,8 @@
"poll.vote": "Votar",
"poll.voted": "Tu ha votate pro iste responsa",
"poll.votes": "{votes, plural, one {# voto} other {# votos}}",
- "poll_button.add_poll": "Adder un inquesta",
- "poll_button.remove_poll": "Remover un inquesta",
+ "poll_button.add_poll": "Adder un sondage",
+ "poll_button.remove_poll": "Remover un sondage",
"privacy.change": "Cambiar le confidentialitate del message",
"privacy.direct.long": "Tote le personas mentionate in le message",
"privacy.direct.short": "Personas specific",
@@ -667,8 +702,11 @@
"report_notification.attached_statuses": "{count, plural, one {{count} message} other {{count} messages}} annexate",
"report_notification.categories.legal": "Juridic",
"report_notification.categories.other": "Alteres",
+ "report_notification.categories.other_sentence": "alteres",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Violation del regulas",
+ "report_notification.categories.violation_sentence": "violation del regulas",
"report_notification.open": "Aperir reporto",
"search.no_recent_searches": "Nulle recercas recente",
"search.placeholder": "Cercar",
@@ -699,6 +737,7 @@
"server_banner.is_one_of_many": "{domain} es un de multe servitores independente de Mastodon que tu pote usar pro participar in le fediverso.",
"server_banner.server_stats": "Statos del servitor:",
"sign_in_banner.create_account": "Crear un conto",
+ "sign_in_banner.follow_anyone": "Seque quicunque in le fediverso, e tu videra toto in ordine chronologic. Sin algorithmo, sin publicitate, sin titulos de esca.",
"sign_in_banner.mastodon_is": "Mastodon es le melior maniera de sequer lo que passa.",
"sign_in_banner.sign_in": "Aperir session",
"sign_in_banner.sso_redirect": "Aperir session o crear conto",
@@ -717,12 +756,9 @@
"status.edit": "Modificar",
"status.edited": "Ultime modification le {date}",
"status.edited_x_times": "Modificate {count, plural, one {{count} vice} other {{count} vices}}",
- "status.embed": "Incastrar",
"status.favourite": "Adder al favorites",
"status.favourites": "{count, plural, one {favorite} other {favorites}}",
"status.filter": "Filtrar iste message",
- "status.filtered": "Filtrate",
- "status.hide": "Celar le message",
"status.history.created": "create per {name} le {date}",
"status.history.edited": "modificate per {name} le {date}",
"status.load_more": "Cargar plus",
@@ -744,16 +780,14 @@
"status.reblogs.empty": "Necuno ha ancora impulsate iste message. Quando alcuno lo face, le impulsos apparera hic.",
"status.redraft": "Deler e reconciper",
"status.remove_bookmark": "Remover marcapagina",
+ "status.replied_in_thread": "Respondite in le discussion",
"status.replied_to": "Respondite a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder al discussion",
"status.report": "Reportar @{name}",
"status.sensitive_warning": "Contento sensibile",
"status.share": "Compartir",
- "status.show_filter_reason": "Monstrar in omne caso",
- "status.show_less": "Monstrar minus",
"status.show_less_all": "Monstrar minus pro totes",
- "status.show_more": "Monstrar plus",
"status.show_more_all": "Monstrar plus pro totes",
"status.show_original": "Monstrar original",
"status.title.with_attachments": "{user} ha publicate {attachmentCount, plural, one {un annexo} other {{attachmentCount} annexos}}",
@@ -763,7 +797,7 @@
"status.unmute_conversation": "Non plus silentiar conversation",
"status.unpin": "Disfixar del profilo",
"subscribed_languages.lead": "Solmente le messages in le linguas seligite apparera in tu chronologias de initio e de listas post le cambiamento. Selige necun pro reciper messages in tote le linguas.",
- "subscribed_languages.save": "Salveguardar le cambiamentos",
+ "subscribed_languages.save": "Salvar le cambiamentos",
"subscribed_languages.target": "Cambiar le linguas subscribite pro {target}",
"tabs_bar.home": "Initio",
"tabs_bar.notifications": "Notificationes",
@@ -772,10 +806,6 @@
"time_remaining.minutes": "{number, plural, one {# minuta} other {# minutas}} restante",
"time_remaining.moments": "Qualque momentos restante",
"time_remaining.seconds": "{number, plural, one {# secunda} other {# secundas}} restante",
- "timeline_hint.remote_resource_not_displayed": "Le {resource} de altere servitores non appare hic.",
- "timeline_hint.resources.followers": "Sequitores",
- "timeline_hint.resources.follows": "Sequites",
- "timeline_hint.resources.statuses": "Messages ancian",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} in le passate {days, plural, one {die} other {{days} dies}}",
"trends.trending_now": "Ora in tendentias",
"ui.beforeunload": "Tu esbosso essera predite si tu exi de Mastodon.",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index d86b5854f4d..b6d01ec9963 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -1,7 +1,7 @@
{
"about.blocks": "Server yang dimoderasi",
- "about.contact": "Hubungi:",
- "about.disclaimer": "Mastodon adalah perangkat lunak bebas dan sumber terbuka, dan adalah merek dagang dari Mastodon gGmbH.",
+ "about.contact": "Kontak:",
+ "about.disclaimer": "perangkat lunak sumber terbuperangkat lunak sumber terbukaka184124.",
"about.domain_blocks.no_reason_available": "Alasan tidak tersedia",
"about.domain_blocks.preamble": "Mastodon umumnya mengizinkan Anda untuk melihat konten dan berinteraksi dengan pengguna dari server lain di fediverse. Ini adalah pengecualian yang dibuat untuk beberapa server.",
"about.domain_blocks.silenced.explanation": "Anda secara umum tidak melihat profil dan konten dari server ini, kecuali jika Anda mencarinya atau memilihnya dengan mengikuti secara eksplisit.",
@@ -11,7 +11,7 @@
"about.not_available": "Informasi ini belum tersedia di server ini.",
"about.powered_by": "Media sosial terdesentralisasi diberdayakan oleh {mastodon}",
"about.rules": "Aturan server",
- "account.account_note_header": "Catatan",
+ "account.account_note_header": "Personal note",
"account.add_or_remove_from_list": "Tambah atau Hapus dari daftar",
"account.badges.bot": "Bot",
"account.badges.group": "Grup",
@@ -19,7 +19,6 @@
"account.block_domain": "Blokir domain {domain}",
"account.block_short": "Blokir",
"account.blocked": "Terblokir",
- "account.browse_more_on_origin_server": "Lihat lebih lanjut di profil asli",
"account.cancel_follow_request": "Batalkan permintaan ikut",
"account.copy": "Salin tautan ke profil",
"account.direct": "Sebut secara pribadi @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Ikuti balik",
"account.followers": "Pengikut",
"account.followers.empty": "Pengguna ini belum ada pengikut.",
- "account.followers_counter": "{count, plural, other {{counter} Pengikut}}",
+ "account.followers_counter": "{count, plural, other {{counter} followers}}",
"account.following": "Mengikuti",
- "account.following_counter": "{count, plural, other {{counter} Mengikuti}}",
+ "account.following_counter": "{count, plural, other {{counter} following}}",
"account.follows.empty": "Pengguna ini belum mengikuti siapa pun.",
"account.go_to_profile": "Buka profil",
"account.hide_reblogs": "Sembunyikan boosts dari @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} ingin mengikuti Anda",
"account.share": "Bagikan profil @{name}",
"account.show_reblogs": "Tampilkan boost dari @{name}",
- "account.statuses_counter": "{count, plural, other {{counter} Kiriman}}",
+ "account.statuses_counter": "{count, plural, other {{counter} posts}}",
"account.unblock": "Buka blokir @{name}",
"account.unblock_domain": "Buka blokir domain {domain}",
"account.unblock_short": "Buka blokir",
@@ -169,27 +168,32 @@
"compose_form.spoiler_placeholder": "Peringatan konten (opsional)",
"confirmation_modal.cancel": "Batal",
"confirmations.block.confirm": "Blokir",
- "confirmations.cancel_follow_request.confirm": "Batalkan permintaan",
- "confirmations.cancel_follow_request.message": "Apakah Anda yakin ingin membatalkan permintaan Anda untuk mengikuti {name}?",
"confirmations.delete.confirm": "Hapus",
"confirmations.delete.message": "Apakah Anda yakin untuk menghapus kiriman ini?",
+ "confirmations.delete.title": "Delete post?",
"confirmations.delete_list.confirm": "Hapus",
"confirmations.delete_list.message": "Apakah Anda yakin untuk menghapus daftar ini secara permanen?",
+ "confirmations.delete_list.title": "Delete list?",
"confirmations.discard_edit_media.confirm": "Buang",
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan deskripsi atau pratinjau media, buang saja?",
- "confirmations.domain_block.confirm": "Blokir server",
- "confirmations.domain_block.message": "Apakah Anda benar-benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.",
"confirmations.edit.confirm": "Ubah",
"confirmations.edit.message": "Mengubah akan menimpa pesan yang sedang anda tulis. Apakah anda yakin ingin melanjutkan?",
+ "confirmations.edit.title": "Overwrite post?",
"confirmations.logout.confirm": "Keluar",
"confirmations.logout.message": "Apakah Anda yakin ingin keluar?",
+ "confirmations.logout.title": "Log out?",
"confirmations.mute.confirm": "Bisukan",
"confirmations.redraft.confirm": "Hapus dan susun ulang",
"confirmations.redraft.message": "Apakah anda yakin ingin menghapus postingan ini dan menyusun ulang postingan ini? Favorit dan peningkatan akan hilang, dan balasan ke postingan asli tidak akan terhubung ke postingan manapun.",
+ "confirmations.redraft.title": "Delete & redraft post?",
"confirmations.reply.confirm": "Balas",
"confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?",
+ "confirmations.reply.title": "Delete & redraft post?",
"confirmations.unfollow.confirm": "Berhenti mengikuti",
"confirmations.unfollow.message": "Apakah Anda ingin berhenti mengikuti {name}?",
+ "confirmations.unfollow.title": "Unfollow user?",
+ "content_warning.hide": "Hide post",
+ "content_warning.show": "Show anyway",
"conversation.delete": "Hapus percakapan",
"conversation.mark_as_read": "Tandai sudah dibaca",
"conversation.open": "Lihat percakapan",
@@ -226,7 +230,9 @@
"domain_pill.username": "Nama pengguna",
"domain_pill.whats_in_a_handle": "Apa itu nama pengguna?",
"domain_pill.who_they_are": "Karena nama pengguna menunjukkan siapa seseorang dan di mana server mereka berada, anda dapat berinteraksi dengan orang-orang di seluruh web sosial ActivityPub-powered platforms.",
+ "domain_pill.who_you_are": "ActivityPub-powered platforms.",
"domain_pill.your_handle": "Nama pengguna anda:",
+ "domain_pill.your_server": "Your digital home, where all of your posts live. Don’t like this one? Transfer servers at any time and bring your followers, too.",
"embed.instructions": "Sematkan kiriman ini di situs web Anda dengan menyalin kode di bawah ini.",
"embed.preview": "Tampilan akan seperti ini nantinya:",
"emoji_button.activity": "Aktivitas",
@@ -375,8 +381,6 @@
"keyboard_shortcuts.unfocus": "untuk tidak fokus pada area teks/pencarian",
"keyboard_shortcuts.up": "untuk memindah ke atas pada daftar",
"lightbox.close": "Tutup",
- "lightbox.compress": "Kompres kotak tampilan gambar",
- "lightbox.expand": "Besarkan kotak tampilan gambar",
"lightbox.next": "Selanjutnya",
"lightbox.previous": "Sebelumnya",
"limited_account_hint.action": "Tetap tampilkan profil",
@@ -397,7 +401,6 @@
"lists.subheading": "Daftar Anda",
"load_pending": "{count, plural, other {# item baru}}",
"loading_indicator.label": "Memuat…",
- "media_gallery.toggle_visible": "Tampil/Sembunyikan",
"moved_to_account_banner.text": "Akun {disabledAccount} Anda kini dinonaktifkan karena Anda pindah ke {movedToAccount}.",
"mute_modal.hide_options": "Sembunyikan opsi",
"mute_modal.title": "Bisukan pengguna?",
@@ -427,9 +430,7 @@
"notification.admin.sign_up": "{name} mendaftar",
"notification.follow": "{name} mengikuti Anda",
"notification.follow_request": "{name} ingin mengikuti Anda",
- "notification.mention": "{name} menyebut Anda",
"notification.own_poll": "Japat Anda telah berakhir",
- "notification.poll": "Japat yang Anda ikuti telah berakhir",
"notification.reblog": "{name} mem-boost kiriman Anda",
"notification.status": "{name} baru saja mengirim",
"notification.update": "{name} mengedit kiriman",
@@ -580,10 +581,7 @@
"status.detailed_status": "Tampilan detail percakapan",
"status.edit": "Edit",
"status.edited_x_times": "Diedit {count, plural, other {{count} kali}}",
- "status.embed": "Tanam",
"status.filter": "Saring kiriman ini",
- "status.filtered": "Disaring",
- "status.hide": "Sembunyikan pos",
"status.history.created": "{name} membuat {date}",
"status.history.edited": "{name} mengedit {date}",
"status.load_more": "Tampilkan semua",
@@ -608,10 +606,7 @@
"status.report": "Laporkan @{name}",
"status.sensitive_warning": "Konten sensitif",
"status.share": "Bagikan",
- "status.show_filter_reason": "Tampilkan saja",
- "status.show_less": "Tampilkan lebih sedikit",
"status.show_less_all": "Tampilkan lebih sedikit untuk semua",
- "status.show_more": "Tampilkan semua",
"status.show_more_all": "Tampilkan lebih banyak untuk semua",
"status.show_original": "Tampilkan yang asli",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -629,10 +624,6 @@
"time_remaining.minutes": "{number, plural, other {# menit}} tersisa",
"time_remaining.moments": "Momen tersisa",
"time_remaining.seconds": "{number, plural, other {# detik}} tersisa",
- "timeline_hint.remote_resource_not_displayed": "{resource} dari server lain tidak ditampilkan.",
- "timeline_hint.resources.followers": "Pengikut",
- "timeline_hint.resources.follows": "Ikuti",
- "timeline_hint.resources.statuses": "Kiriman lama",
"trends.counter_by_accounts": "{count, plural, other {{counter} orang}} dalam {days, plural, other {{days} hari}} terakhir",
"trends.trending_now": "Sedang tren sekarang",
"ui.beforeunload": "Draf Anda akan hilang jika Anda keluar dari Mastodon.",
diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json
index f15b9828892..1439b851d31 100644
--- a/app/javascript/mastodon/locales/ie.json
+++ b/app/javascript/mastodon/locales/ie.json
@@ -11,7 +11,6 @@
"about.not_available": "On ne ha disponibilisat ti-ci information sur ti-ci servitor.",
"about.powered_by": "Decentralisat social medie disponibilisat de {mastodon}",
"about.rules": "Regules del servitor",
- "account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Adjunter o remover de listes",
"account.badges.bot": "Automatisat",
"account.badges.group": "Gruppe",
@@ -19,7 +18,6 @@
"account.block_domain": "Bloccar dominia {domain}",
"account.block_short": "Bloccar",
"account.blocked": "Bloccat",
- "account.browse_more_on_origin_server": "Navigar plu sur li profil original",
"account.cancel_follow_request": "Anullar sequer",
"account.copy": "Copiar ligament al profil",
"account.direct": "Privatmen mentionar @{name}",
@@ -35,9 +33,7 @@
"account.follow_back": "Sequer reciprocmen",
"account.followers": "Sequitores",
"account.followers.empty": "Ancor nequi seque ti-ci usator.",
- "account.followers_counter": "{count, plural, one {{counter} Sequitor} other {{counter} Sequitor}}",
"account.following": "Sequent",
- "account.following_counter": "{count, plural, one {{counter} Sequent} other {{counter} Sequent}}",
"account.follows.empty": "Ti-ci usator ancor ne seque quemcunc.",
"account.go_to_profile": "Ear a profil",
"account.hide_reblogs": "Celar boosts de @{name}",
@@ -63,7 +59,6 @@
"account.requested_follow": "{name} ha petit sequer te",
"account.share": "Distribuer li profil de @{name}",
"account.show_reblogs": "Monstrar boosts de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Posta} other {{counter} Postas}}",
"account.unblock": "Desbloccar @{name}",
"account.unblock_domain": "Desbloccar dominia {domain}",
"account.unblock_short": "Desbloccar",
@@ -169,16 +164,12 @@
"compose_form.spoiler_placeholder": "Advertiment de contenete (optional)",
"confirmation_modal.cancel": "Anullar",
"confirmations.block.confirm": "Bloccar",
- "confirmations.cancel_follow_request.confirm": "Retraer petition",
- "confirmations.cancel_follow_request.message": "Esque tu vermen vole retraer tui petition sequer {name}?",
"confirmations.delete.confirm": "Deleter",
"confirmations.delete.message": "Esque tu vermen vole deleter ti-ci posta?",
"confirmations.delete_list.confirm": "Deleter",
"confirmations.delete_list.message": "Esque tu vermen vole permanentmen deleter ti-ci liste?",
"confirmations.discard_edit_media.confirm": "Forjettar",
"confirmations.discard_edit_media.message": "Tu have ínconservat changes al descrition de medie o al previse, forjettar les sin egarda?",
- "confirmations.domain_block.confirm": "Bloccar servitor",
- "confirmations.domain_block.message": "Esque tu es certissim que tu vole bloccar li tot {domain}? In mult casus, bloccar o silentiar quelc specific contos es suficent e preferibil. Tu ne va vider contenete de ti dominia in quelcunc public témpor-linea o in tui notificationes. Tui sequitores de ti dominia va esser removet.",
"confirmations.edit.confirm": "Redacter",
"confirmations.edit.message": "Redacter nu va remplazzar li missage quel tu actualmen composi. Esque tu vermen vole proceder?",
"confirmations.logout.confirm": "Exear",
@@ -297,8 +288,6 @@
"filter_modal.select_filter.subtitle": "Usar un existent categorie o crear nov",
"filter_modal.select_filter.title": "Filtrar ti-ci posta",
"filter_modal.title.status": "Filtrar un posta",
- "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentiones}}",
- "filtered_notifications_banner.pending_requests": "Notificationes de {count, plural, =0 {nequi} one {un person} other {# persones}} quel tu possibilmen conosse",
"filtered_notifications_banner.title": "Filtrat notificationes",
"firehose.all": "Omno",
"firehose.local": "Ti-ci servitor",
@@ -407,8 +396,6 @@
"keyboard_shortcuts.unfocus": "Desinfocar text-area de composition/serchar",
"keyboard_shortcuts.up": "Mover ad-supra in li liste",
"lightbox.close": "Cluder",
- "lightbox.compress": "Compresser vise-buxe de image",
- "lightbox.expand": "Expander vise-buxe de image",
"lightbox.next": "Sequent",
"lightbox.previous": "Precedent",
"limited_account_hint.action": "Monstrar profil totvez",
@@ -430,7 +417,6 @@
"lists.subheading": "Tui listes",
"load_pending": "{count, plural, one {# nov element} other {# nov elementes}}",
"loading_indicator.label": "Cargant…",
- "media_gallery.toggle_visible": "{number, plural, one {Celar image} other {Celar images}}",
"moved_to_account_banner.text": "Tui conto {disabledAccount} es actualmen desactivisat pro que tu movet te a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Celar de notificationes",
"mute_modal.hide_options": "Celar optiones",
@@ -472,7 +458,6 @@
"notification.favourite": "{name} favoritisat tui posta",
"notification.follow": "{name} sequet te",
"notification.follow_request": "{name} ha petit sequer te",
- "notification.mention": "{name} mentionat te",
"notification.moderation-warning.learn_more": "Aprender plu",
"notification.moderation_warning": "Tu ha recivet un moderatori advertiment",
"notification.moderation_warning.action_delete_statuses": "Alcun de tui postas ha esset efaciat.",
@@ -483,7 +468,6 @@
"notification.moderation_warning.action_silence": "Tui conto ha esset limitat.",
"notification.moderation_warning.action_suspend": "Tui conto ha esset suspendet.",
"notification.own_poll": "Tui balotation ha finit",
- "notification.poll": "Un balotation in quel tu votat ha finit",
"notification.reblog": "{name} boostat tui posta",
"notification.relationships_severance_event": "Perdit conexiones con {name}",
"notification.relationships_severance_event.account_suspension": "Un admin de {from} ha suspendet {target}, dunc con ti person tu ne plu posse reciver actualisationes ni far interactiones.",
@@ -537,7 +521,6 @@
"notifications.policy.filter_not_following_title": "Persones queles tu ne seque",
"notifications.policy.filter_private_mentions_hint": "Filtrat except si it es un response a tui propri mention o si tu seque li missor",
"notifications.policy.filter_private_mentions_title": "Ínsolicitat privat mentiones",
- "notifications.policy.title": "Filtrar notificationes de…",
"notifications_permission_banner.enable": "Activisar notificationes sur li computator",
"notifications_permission_banner.how_to_control": "Por reciver notificationes quande Mastodon ne es apert, activisa notificationes sur li computator. Tu posse decider precisimen quel species de interactiones genera notificationes per li buton {icon} in-supra quande ili es activisat.",
"notifications_permission_banner.title": "Nequande preterlassa quocunc",
@@ -713,12 +696,9 @@
"status.edit": "Modificar",
"status.edited": "Ultimmen actualisat ye {date}",
"status.edited_x_times": "Modificat {count, plural, one {{count} vez} other {{count} vezes}}",
- "status.embed": "Inbedar",
"status.favourite": "Favoritisar",
"status.favourites": "{count, plural, one {favorit} other {favorites}}",
"status.filter": "Filtrar ti-ci posta",
- "status.filtered": "Filtrat",
- "status.hide": "Celar posta",
"status.history.created": "creat de {name} ye {date}",
"status.history.edited": "modificat de {name} ye {date}",
"status.load_more": "Cargar plu",
@@ -746,10 +726,7 @@
"status.report": "Raportar @{name}",
"status.sensitive_warning": "Sensitiv contenete",
"status.share": "Partir",
- "status.show_filter_reason": "Monstrar totvez",
- "status.show_less": "Monstrar minu",
"status.show_less_all": "Monstrar minu por omno",
- "status.show_more": "Monstrar plu",
"status.show_more_all": "Monstrar plu por omno",
"status.show_original": "Monstrar li original",
"status.title.with_attachments": "{user} postat {attachmentCount, plural, one {un atachament} other {{attachmentCount} atachamentes}}",
@@ -768,10 +745,6 @@
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} resta",
"time_remaining.moments": "Momentes resta",
"time_remaining.seconds": "{number, plural, one {# second} other {# secondes}} resta",
- "timeline_hint.remote_resource_not_displayed": "{resource} de altri servitores ne es monstrat.",
- "timeline_hint.resources.followers": "Sequitores",
- "timeline_hint.resources.follows": "Sequetes",
- "timeline_hint.resources.statuses": "Plu old postas",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} persones}} durant li ultim {days, plural, one {die} other {{days} dies}}",
"trends.trending_now": "Actualmen populari",
"ui.beforeunload": "Tui íncomplet posta va esser perdit si tu lassa Mastodon.",
diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json
index 4e3e3997da1..8a8d043a6b0 100644
--- a/app/javascript/mastodon/locales/ig.json
+++ b/app/javascript/mastodon/locales/ig.json
@@ -23,15 +23,19 @@
"column.notifications": "Nziọkwà",
"column.pins": "Pinned post",
"column_header.pin": "Gbado na profaịlụ gị",
+ "column_header.show_settings": "Gosi mwube",
"column_subheading.settings": "Mwube",
"community.column_settings.media_only": "Media only",
"compose.language.change": "Gbanwee asụsụ",
"compose.language.search": "Chọọ asụsụ...",
"compose.published.open": "Mepe",
+ "compose_form.direct_message_warning_learn_more": "Mụtakwuo",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.placeholder": "What is on your mind?",
+ "compose_form.poll.single": "Họrọ otu",
"compose_form.publish_form": "Publish",
+ "compose_form.reply": "Zaa",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
"confirmation_modal.cancel": "Kagbuo",
@@ -49,7 +53,9 @@
"domain_pill.username": "Ahaojiaru",
"embed.instructions": "Embed this status on your website by copying the code below.",
"emoji_button.activity": "Mmemme",
+ "emoji_button.food": "Oriri & Ọṅụṅụ",
"emoji_button.label": "Tibanye emoji",
+ "emoji_button.people": "Mmadụ",
"emoji_button.search": "Chọọ...",
"emoji_button.symbols": "Ọdịmara",
"empty_column.account_timeline": "No posts found",
@@ -95,12 +101,15 @@
"keyboard_shortcuts.toot": "to start a brand new post",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
+ "lightbox.close": "Mechie",
"lists.delete": "Hichapụ ndepụta",
"lists.edit": "Dezie ndepụta",
"lists.subheading": "Ndepụta gị",
"navigation_bar.about": "Maka",
"navigation_bar.bookmarks": "Ebenrụtụakā",
+ "navigation_bar.discover": "Chọpụta",
"navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.favourites": "Mmasị",
"navigation_bar.lists": "Ndepụta",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.reblog": "{name} boosted your status",
@@ -145,7 +154,6 @@
"status.translate": "Tụgharịa",
"tabs_bar.home": "Be",
"tabs_bar.notifications": "Nziọkwà",
- "timeline_hint.resources.followers": "Ndị na-eso",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Na-ewu ewu kịta",
"upload_form.audio_description": "Describe for people with hearing loss",
diff --git a/app/javascript/mastodon/locales/intl_provider.tsx b/app/javascript/mastodon/locales/intl_provider.tsx
index 68d4fcbd965..94372f95b0f 100644
--- a/app/javascript/mastodon/locales/intl_provider.tsx
+++ b/app/javascript/mastodon/locales/intl_provider.tsx
@@ -17,7 +17,7 @@ function onProviderError(error: unknown) {
error &&
typeof error === 'object' &&
error instanceof Error &&
- error.message.match('MISSING_DATA')
+ /MISSING_DATA/.exec(error.message)
) {
console.warn(error.message);
}
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 016a111c46c..aa284685e72 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -10,7 +10,6 @@
"about.not_available": "Ca informo ne igesis che ca servilo.",
"about.powered_by": "Necentraligita sociala ret quo povigesas da {mastodon}",
"about.rules": "Servilreguli",
- "account.account_note_header": "Noto",
"account.add_or_remove_from_list": "Insertez o removez de listi",
"account.badges.bot": "Boto",
"account.badges.group": "Grupo",
@@ -18,7 +17,6 @@
"account.block_domain": "Blokusar {domain}",
"account.block_short": "Blokusar",
"account.blocked": "Blokusita",
- "account.browse_more_on_origin_server": "Videz pluse che la originala profilo",
"account.cancel_follow_request": "Desendez sequodemando",
"account.copy": "Kopiez ligilo al profilo",
"account.direct": "Private mencionez @{name}",
@@ -33,9 +31,7 @@
"account.follow": "Sequar",
"account.followers": "Sequanti",
"account.followers.empty": "Nulu sequas ca uzanto til nun.",
- "account.followers_counter": "{count, plural, one {{counter} Sequanto} other {{counter} Sequanti}}",
"account.following": "Sequata",
- "account.following_counter": "{count, plural, one {{counter} Sequas} other {{counter} Sequanti}}",
"account.follows.empty": "Ca uzanto ne sequa irgu til nun.",
"account.go_to_profile": "Irez al profilo",
"account.hide_reblogs": "Celez repeti de @{name}",
@@ -60,7 +56,6 @@
"account.requested_follow": "{name} demandis sequar tu",
"account.share": "Partigez profilo di @{name}",
"account.show_reblogs": "Montrez repeti de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Posto} other {{counter} Posti}}",
"account.unblock": "Desblokusar @{name}",
"account.unblock_domain": "Desblokusar {domain}",
"account.unblock_short": "Desblokusar",
@@ -150,15 +145,12 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"confirmation_modal.cancel": "Anulez",
"confirmations.block.confirm": "Restriktez",
- "confirmations.cancel_follow_request.confirm": "Desendez demando",
- "confirmations.cancel_follow_request.message": "Ka vu certe volas desendar vua demando di sequar {name}?",
"confirmations.delete.confirm": "Efacez",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Efacez",
"confirmations.delete_list.message": "Ka vu certe volas netempale efacar ca listo?",
"confirmations.discard_edit_media.confirm": "Efacez",
"confirmations.discard_edit_media.message": "Vu havas nesparita chanji di mediodeskript o prevido, vu volas jus efacar?",
- "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
"confirmations.edit.confirm": "Modifikez",
"confirmations.edit.message": "Modifikar nun remplasos la mesajo quon vu nune skribas. Ka vu certe volas procedar?",
"confirmations.logout.confirm": "Ekirez",
@@ -347,8 +339,6 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Klozar",
- "lightbox.compress": "Kompresez imajvidbuxo",
- "lightbox.expand": "Expansez imajvidbuxo",
"lightbox.next": "Nexta",
"lightbox.previous": "Antea",
"limited_account_hint.action": "Jus montrez profilo",
@@ -370,7 +360,6 @@
"lists.subheading": "Vua listi",
"load_pending": "{count, plural, one {# nova kozo} other {# nova kozi}}",
"loading_indicator.label": "Kargante…",
- "media_gallery.toggle_visible": "Chanjar videbleso",
"moved_to_account_banner.text": "Vua konto {disabledAccount} es nune desaktiva pro ke vu movis a {movedToAccount}.",
"navigation_bar.about": "Pri co",
"navigation_bar.advanced_interface": "Apertez per retintervizajo",
@@ -403,9 +392,7 @@
"notification.favourite": "{name} favorizis tua mesajo",
"notification.follow": "{name} sequeskis tu",
"notification.follow_request": "{name} demandas sequar vu",
- "notification.mention": "{name} mencionis tu",
"notification.own_poll": "Vua votposto finigis",
- "notification.poll": "Votposto quo havas vua voto finigis",
"notification.reblog": "{name} repetis tua mesajo",
"notification.status": "{name} nove postigis",
"notification.update": "{name} modifikis posto",
@@ -600,11 +587,8 @@
"status.direct_indicator": "Privata menciono",
"status.edit": "Modifikez",
"status.edited_x_times": "Modifikesis {count, plural, one {{count} foyo} other {{count} foyi}}",
- "status.embed": "Eninsertez",
"status.favourite": "Favorizar",
"status.filter": "Filtragez ca posto",
- "status.filtered": "Filtrita",
- "status.hide": "Celez posto",
"status.history.created": "{name} kreis ye {date}",
"status.history.edited": "{name} modifikis ye {date}",
"status.load_more": "Kargar pluse",
@@ -631,10 +615,7 @@
"status.report": "Denuncar @{name}",
"status.sensitive_warning": "Trubliva kontenajo",
"status.share": "Partigez",
- "status.show_filter_reason": "Jus montrez",
- "status.show_less": "Montrar mine",
"status.show_less_all": "Montrez min por omno",
- "status.show_more": "Montrar plue",
"status.show_more_all": "Montrez pluse por omno",
"status.show_original": "Montrez originalo",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -653,10 +634,6 @@
"time_remaining.minutes": "{number, plural, one {# minuto} other {# minuti}} restas",
"time_remaining.moments": "Poka sekundi restas",
"time_remaining.seconds": "{number, plural, one {# sekundo} other {# sekundi}} restas",
- "timeline_hint.remote_resource_not_displayed": "{resource} de altra servili ne montresas.",
- "timeline_hint.resources.followers": "Sequanti",
- "timeline_hint.resources.follows": "Sequati",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural,one {{counter} persono} other {{counter} personi}} en antea {days, plural,one {dio} other {{days} dii}}",
"trends.trending_now": "Tendencigas nun",
"ui.beforeunload": "Vua skisato perdesos se vu ekiras Mastodon.",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 08605f5238d..5f32b438dd7 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -11,7 +11,7 @@
"about.not_available": "Þessar upplýsingar hafa ekki verið gerðar aðgengilegar á þessum netþjóni.",
"about.powered_by": "Dreifhýstur samskiptamiðill keyrður með {mastodon}",
"about.rules": "Reglur netþjónsins",
- "account.account_note_header": "Minnispunktur",
+ "account.account_note_header": "Einkaminnispunktur",
"account.add_or_remove_from_list": "Bæta við eða fjarlægja af listum",
"account.badges.bot": "Yrki",
"account.badges.group": "Hópur",
@@ -19,7 +19,6 @@
"account.block_domain": "Útiloka lénið {domain}",
"account.block_short": "Útiloka",
"account.blocked": "Útilokaður",
- "account.browse_more_on_origin_server": "Skoða nánari upplýsingar á notandasniðinu",
"account.cancel_follow_request": "Taka fylgjendabeiðni til baka",
"account.copy": "Afrita tengil í notandasnið",
"account.direct": "Einkaspjall við @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} hefur beðið um að fylgjast með þér",
"account.share": "Deila notandasniði fyrir @{name}",
"account.show_reblogs": "Sýna endurbirtingar frá @{name}",
- "account.statuses_counter": "{count, plural, one {Færsla: {counter}} other {Færslur: {counter}}}",
+ "account.statuses_counter": "{count, plural, one {{counter} færsla} other {{counter} færslur}}",
"account.unblock": "Aflétta útilokun af @{name}",
"account.unblock_domain": "Aflétta útilokun lénsins {domain}",
"account.unblock_short": "Hætta að loka á",
@@ -98,6 +97,8 @@
"block_modal.title": "Útiloka notanda?",
"block_modal.you_wont_see_mentions": "Þú munt ekki sjá færslur sem minnast á viðkomandi aðila.",
"boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst",
+ "boost_modal.reblog": "Endurbirta færslu?",
+ "boost_modal.undo_reblog": "Taka færslu úr endurbirtingu?",
"bundle_column_error.copy_stacktrace": "Afrita villuskýrslu",
"bundle_column_error.error.body": "Umbeðna síðau var ekki hægt að myndgera. Það gæti verið vegna villu í kóðanum okkar eða vandamáls með samhæfni vafra.",
"bundle_column_error.error.title": "Ó-nei!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Aðvörun vegna efnis (valkvætt)",
"confirmation_modal.cancel": "Hætta við",
"confirmations.block.confirm": "Útiloka",
- "confirmations.cancel_follow_request.confirm": "Taka beiðni til baka",
- "confirmations.cancel_follow_request.message": "Ertu viss um að þú viljir taka til baka beiðnina um að fylgjast með {name}?",
"confirmations.delete.confirm": "Eyða",
"confirmations.delete.message": "Ertu viss um að þú viljir eyða þessari færslu?",
+ "confirmations.delete.title": "Eyða færslu?",
"confirmations.delete_list.confirm": "Eyða",
"confirmations.delete_list.message": "Ertu viss um að þú viljir eyða þessum lista endanlega?",
+ "confirmations.delete_list.title": "Eyða lista?",
"confirmations.discard_edit_media.confirm": "Henda",
"confirmations.discard_edit_media.message": "Þú ert með óvistaðar breytingar á lýsingu myndefnis eða forskoðunar, henda þeim samt?",
- "confirmations.domain_block.confirm": "Útiloka netþjón",
- "confirmations.domain_block.message": "Ertu alveg algjörlega viss um að þú viljir loka á allt {domain}? Í flestum tilfellum er vænlegra að nota færri en markvissari útilokanir eða að þagga niður tiltekna aðila. Þú munt ekki sjá efni frá þessu léni í neinum opinberum tímalínum eða í tilkynningunum þínum. Fylgjendur þínir frá þessu léni verða fjarlægðir.",
"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.logout.confirm": "Skrá út",
"confirmations.logout.message": "Ertu viss um að þú viljir skrá þig út?",
+ "confirmations.logout.title": "Skrá út?",
"confirmations.mute.confirm": "Þagga",
"confirmations.redraft.confirm": "Eyða og endurvinna drög",
"confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari færslu og enduvinna drögin? Eftirlæti og endurbirtingar munu glatast og svör við upprunalegu færslunni munu verða munaðarlaus.",
+ "confirmations.redraft.title": "Eyða og byrja ný drög að færslu?",
"confirmations.reply.confirm": "Svara",
"confirmations.reply.message": "Ef þú svarar núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?",
+ "confirmations.reply.title": "Skrifa yfir færslu?",
"confirmations.unfollow.confirm": "Hætta að fylgja",
"confirmations.unfollow.message": "Ertu viss um að þú viljir hætta að fylgjast með {name}?",
+ "confirmations.unfollow.title": "Hætta að fylgjast með viðkomandi?",
+ "content_warning.hide": "Fela færslu",
+ "content_warning.show": "Birta samt",
"conversation.delete": "Eyða samtali",
"conversation.mark_as_read": "Merkja sem lesið",
"conversation.open": "Skoða samtal",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Notaðu fyrirliggjandi flokk eða útbúðu nýjan",
"filter_modal.select_filter.title": "Sía þessa færslu",
"filter_modal.title.status": "Sía færslu",
- "filtered_notifications_banner.mentions": "{count, plural, one {tilvísun} other {tilvísanir}}",
- "filtered_notifications_banner.pending_requests": "Tilkynningar frá {count, plural, =0 {engum} one {einum aðila} other {# aðilum}} sem þú gætir þekkt",
+ "filter_warning.matches_filter": "Samsvarar síunni“{title}”",
+ "filtered_notifications_banner.pending_requests": "Frá {count, plural, =0 {engum} one {einum aðila} other {# manns}} sem þú gætir þekkt",
"filtered_notifications_banner.title": "Síaðar tilkynningar",
"firehose.all": "Allt",
"firehose.local": "þessum netþjóni",
@@ -347,6 +353,14 @@
"hashtag.follow": "Fylgjast með myllumerki",
"hashtag.unfollow": "Hætta að fylgjast með myllumerki",
"hashtags.and_other": "…og {count, plural, other {# til viðbótar}}",
+ "hints.profiles.followers_may_be_missing": "Fylgjendur frá þessum notanda gæti vantað.",
+ "hints.profiles.follows_may_be_missing": "Aðila sem þessi notandi fylgist með gæti vantað.",
+ "hints.profiles.posts_may_be_missing": "Sumar færslur frá þessum notanda gæti vantað.",
+ "hints.profiles.see_more_followers": "Sjá fleiri fylgjendur á {domain}",
+ "hints.profiles.see_more_follows": "Sjá fleiri sem þú fylgist með á {domain}",
+ "hints.profiles.see_more_posts": "Sjá fleiri færslur á {domain}",
+ "hints.threads.replies_may_be_missing": "Svör af öðrum netþjónum gæti vantað.",
+ "hints.threads.see_more": "Sjá fleiri svör á {domain}",
"home.column_settings.show_reblogs": "Sýna endurbirtingar",
"home.column_settings.show_replies": "Birta svör",
"home.hide_announcements": "Fela auglýsingar",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Skoða uppfærslur",
"home.pending_critical_update.title": "Áríðandi öryggisuppfærsla er tiltæk!",
"home.show_announcements": "Birta auglýsingar",
+ "ignore_notifications_modal.disclaimer": "Mastodon getur ekki upplýst notendur um að þú hunsir tilkynningar frá þeim. Hunsun tilkynninga kemur ekki í veg fyrir að sjálf skilaboðin verði send.",
+ "ignore_notifications_modal.filter_instead": "Sía frekar",
+ "ignore_notifications_modal.filter_to_act_users": "Þú munt áfram geta samþykkt, hafnað eða kært notendur",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Síun hjálpar við að komast hjá mögulegum ruglingi",
+ "ignore_notifications_modal.filter_to_review_separately": "Þú getur skoðað síaðar tilkynningar sérstaklega",
+ "ignore_notifications_modal.ignore": "Hunsa tilkynningar",
+ "ignore_notifications_modal.limited_accounts_title": "Hunsa tilkynningar frá aðgöngum sem umsjón er höfð með?",
+ "ignore_notifications_modal.new_accounts_title": "Hunsa tilkynningar frá nýjum aðgöngum?",
+ "ignore_notifications_modal.not_followers_title": "Hunsa tilkynningar frá fólki sem fylgist ekki með þér?",
+ "ignore_notifications_modal.not_following_title": "Hunsa tilkynningar frá fólki sem þú fylgist ekki með?",
+ "ignore_notifications_modal.private_mentions_title": "Hunsa tilkynningar frá óumbeðnum tilvísunum í einkaspjalli?",
"interaction_modal.description.favourite": "Með notandaaðgangi á Mastodon geturðu sett þessa færslu í eftirlæti og þannig látið höfundinn vita að þú kunnir að meta hana og vistað hana til síðari tíma.",
"interaction_modal.description.follow": "Með notandaaðgangi á Mastodon geturðu fylgst með {name} og fengið færslur frá viðkomandi í heimastreymið þitt.",
"interaction_modal.description.reblog": "Með notandaaðgangi á Mastodon geturðu endurbirt þessa færslu til að deila henni með þeim sem fylgjast með þér.",
@@ -407,13 +432,11 @@
"keyboard_shortcuts.unfocus": "Taka virkni úr textainnsetningarreit eða leit",
"keyboard_shortcuts.up": "Fara ofar í listanum",
"lightbox.close": "Loka",
- "lightbox.compress": "Þjappa myndskoðunarreit",
- "lightbox.expand": "Fletta út myndskoðunarreit",
"lightbox.next": "Næsta",
"lightbox.previous": "Fyrra",
"limited_account_hint.action": "Birta notandasniðið samt",
"limited_account_hint.title": "Þetta notandasnið hefur verið falið af umsjónarmönnum {domain}.",
- "link_preview.author": "Eftir {name}",
+ "link_preview.author": "Frá {name}",
"link_preview.more_from_author": "Meira frá {name}",
"link_preview.shares": "{count, plural, one {{counter} færsla} other {{counter} færslur}}",
"lists.account.add": "Bæta á lista",
@@ -432,7 +455,7 @@
"lists.subheading": "Listarnir þínir",
"load_pending": "{count, plural, one {# nýtt atriði} other {# ný atriði}}",
"loading_indicator.label": "Hleð inn…",
- "media_gallery.toggle_visible": "Víxla sýnileika",
+ "media_gallery.hide": "Fela",
"moved_to_account_banner.text": "Aðgangurinn þinn {disabledAccount} er óvirkur í augnablikinu vegna þess að þú fluttir þig yfir á {movedToAccount}.",
"mute_modal.hide_from_notifications": "Fela úr tilkynningum",
"mute_modal.hide_options": "Fela valkosti",
@@ -444,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "Þú munt ekki sjá færslur sem minnast á viðkomandi aðila.",
"mute_modal.you_wont_see_posts": "Viðkomandi geta áfram séð færslurnar þínar en þú munt ekki sjá færslurnar þeirra.",
"navigation_bar.about": "Um hugbúnaðinn",
+ "navigation_bar.administration": "Stjórnun",
"navigation_bar.advanced_interface": "Opna í ítarlegu vefviðmóti",
"navigation_bar.blocks": "Útilokaðir notendur",
"navigation_bar.bookmarks": "Bókamerki",
@@ -460,6 +484,7 @@
"navigation_bar.follows_and_followers": "Fylgist með og fylgjendur",
"navigation_bar.lists": "Listar",
"navigation_bar.logout": "Útskráning",
+ "navigation_bar.moderation": "Umsjón",
"navigation_bar.mutes": "Þaggaðir notendur",
"navigation_bar.opened_in_classic_interface": "Færslur, notendaaðgangar og aðrar sérhæfðar síður eru sjálfgefið opnaðar í klassíska vefviðmótinu.",
"navigation_bar.personal": "Einka",
@@ -470,11 +495,23 @@
"navigation_bar.security": "Öryggi",
"not_signed_in_indicator.not_signed_in": "Þú þarft að skrá þig inn til að nota þetta tilfang.",
"notification.admin.report": "{name} kærði {target}",
+ "notification.admin.report_account": "{name} kærði {count, plural, one {eina færslu} other {# færslur}} frá {target} fyrir {category}",
+ "notification.admin.report_account_other": "{name} kærði {count, plural, one {eina færslu} other {# færslur}} frá {target}",
+ "notification.admin.report_statuses": "{name} kærði {target} fyrir {category}",
+ "notification.admin.report_statuses_other": "{name} kærði {target}",
"notification.admin.sign_up": "{name} skráði sig",
+ "notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# í viðbót hefur} other {# í viðbót hafa}} skráð sig",
"notification.favourite": "{name} setti færsluna þína í eftirlæti",
+ "notification.favourite.name_and_others_with_link": "{name} og {count, plural, one {# í viðbót hefur} other {# í viðbót hafa}} sett færsluna þína í eftirlæti",
"notification.follow": "{name} fylgist með þér",
+ "notification.follow.name_and_others": "{name} og {count, plural, one {# í viðbót fylgdist} other {# í viðbót fylgdust}} með þér",
"notification.follow_request": "{name} hefur beðið um að fylgjast með þér",
- "notification.mention": "{name} minntist á þig",
+ "notification.follow_request.name_and_others": "{name} og {count, plural, one {# í viðbót hefur} other {# í viðbót hafa}} beðið um að fylgjast með þér",
+ "notification.label.mention": "Minnst á",
+ "notification.label.private_mention": "Einkaspjall",
+ "notification.label.private_reply": "Einkasvar",
+ "notification.label.reply": "Svara",
+ "notification.mention": "Minnst á",
"notification.moderation-warning.learn_more": "Kanna nánar",
"notification.moderation_warning": "Þú hefur fengið aðvörun frá umsjónarmanni",
"notification.moderation_warning.action_delete_statuses": "Sumar færslurnar þínar hafa verið fjarlægðar.",
@@ -485,8 +522,9 @@
"notification.moderation_warning.action_silence": "Notandaaðgangurinn þinn hefur verið takmarkaður.",
"notification.moderation_warning.action_suspend": "Notandaaðgangurinn þinn hefur verið settur í frysti.",
"notification.own_poll": "Könnuninni þinni er lokið",
- "notification.poll": "Könnun sem þú tókst þátt í er lokið",
+ "notification.poll": "Könnun sem þú greiddir atkvæði í er lokið",
"notification.reblog": "{name} endurbirti færsluna þína",
+ "notification.reblog.name_and_others_with_link": "{name} og {count, plural, one {# í viðbót hefur} other {# í viðbót hafa}} endurbirt færsluna þína",
"notification.relationships_severance_event": "Missti tengingar við {name}",
"notification.relationships_severance_event.account_suspension": "Stjórnandi á {from} hefur fryst {target}, sem þýðir að þú færð ekki lengur skilaboð frá viðkomandi né átt í samskiptum við viðkomandi.",
"notification.relationships_severance_event.domain_block": "Stjórnandi á {from} hefur lokað á {target} og þar með {followersCount} fylgjendur þína auk {followingCount, plural, one {# aðgangs} other {# aðganga}} sem þú fylgist með.",
@@ -495,11 +533,27 @@
"notification.status": "{name} sendi inn rétt í þessu",
"notification.update": "{name} breytti færslu",
"notification_requests.accept": "Samþykkja",
+ "notification_requests.accept_multiple": "{count, plural, one {Samþykkja # beiðni…} other {Samþykkja # beiðnir…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Samþykkja beiðni} other {Samþykkja beiðnir}}",
+ "notification_requests.confirm_accept_multiple.message": "Þú ert að fara að samþykkja {count, plural, one {eina beiðni um tilkynningar} other {# beiðnir um tilkynningar}}. Ertu viss um að þú viljir halda áfram?",
+ "notification_requests.confirm_accept_multiple.title": "Samþykkja beiðnir um tilkynningar?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Afgreiða beiðni} other {Afgreiða beiðnir}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Þú ert að fara að hunsa {count, plural, one {eina beiðni um tilkynningar} other {# beiðnir um tilkynningar}}. Þú munt ekki eiga auðvelt með að skoða {count, plural, one {hana} other {þær}} aftur síðar. Ertu viss um að þú viljir halda áfram?",
+ "notification_requests.confirm_dismiss_multiple.title": "Hunsa beiðnir um tilkynningar?",
"notification_requests.dismiss": "Afgreiða",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Afgreiða # beiðni…} other {Afgreiða # beiðnir…}}",
+ "notification_requests.edit_selection": "Breyta",
+ "notification_requests.exit_selection": "Lokið",
+ "notification_requests.explainer_for_limited_account": "Tilkynningar frá þessum notanda hafa verið síaðar þar sem aðgangur hans hefur verið takmarkaður af umsjónarmanni.",
+ "notification_requests.explainer_for_limited_remote_account": "Tilkynningar frá þessum notanda hafa verið síaðar þar sem aðgangurinn eða netþjónn hans hefur verið takmarkaður af umsjónarmanni.",
+ "notification_requests.maximize": "Hámarka",
+ "notification_requests.minimize_banner": "Minnka borða með síuðum tilkynningum",
"notification_requests.notifications_from": "Tilkynningar frá {name}",
"notification_requests.title": "Síaðar tilkynningar",
+ "notification_requests.view": "Skoða tilkynningar",
"notifications.clear": "Hreinsa tilkynningar",
"notifications.clear_confirmation": "Ertu viss um að þú viljir endanlega eyða öllum tilkynningunum þínum?",
+ "notifications.clear_title": "Hreinsa tilkynningar?",
"notifications.column_settings.admin.report": "Nýjar kærur:",
"notifications.column_settings.admin.sign_up": "Nýjar skráningar:",
"notifications.column_settings.alert": "Tilkynningar á skjáborði",
@@ -531,6 +585,14 @@
"notifications.permission_denied": "Tilkynningar á skjáborði eru ekki aðgengilegar megna áður hafnaðra beiðna fyrir vafra",
"notifications.permission_denied_alert": "Ekki var hægt að virkja tilkynningar á skjáborði, þar sem heimildum fyrir vafra var áður hafnað",
"notifications.permission_required": "Tilkynningar á skjáborði eru ekki aðgengilegar þar sem nauðsynlegar heimildir hafa ekki verið veittar.",
+ "notifications.policy.accept": "Samþykkja",
+ "notifications.policy.accept_hint": "Birta í tilkynningum",
+ "notifications.policy.drop": "Hunsa",
+ "notifications.policy.drop_hint": "Senda út í tómið, svo það sjáist aldrei framar",
+ "notifications.policy.filter": "Sía",
+ "notifications.policy.filter_hint": "Senda í pósthólf fyrir síaðar tilkynningar",
+ "notifications.policy.filter_limited_accounts_hint": "Takmarkað af umsjónarmönnum netþjóns",
+ "notifications.policy.filter_limited_accounts_title": "Aðgangar í umsjón",
"notifications.policy.filter_new_accounts.hint": "Útbúið {days, plural, one {síðasta daginn} other {síðustu # daga}}",
"notifications.policy.filter_new_accounts_title": "Nýir notendur",
"notifications.policy.filter_not_followers_hint": "Þar með talið fólk sem hefur fylgst með þér í minna en {days, plural, one {einn dag} other {# daga}}",
@@ -539,7 +601,7 @@
"notifications.policy.filter_not_following_title": "Fólk sem þú fylgist ekki með",
"notifications.policy.filter_private_mentions_hint": "Síað nema það sé í svari við einhverju þar sem þú minntist á viðkomandi eða ef þú fylgist með sendandanum",
"notifications.policy.filter_private_mentions_title": "Óumbeðið einkaspjall",
- "notifications.policy.title": "Sía út tilkynningar frá…",
+ "notifications.policy.title": "Sýsla með tilkynningar frá…",
"notifications_permission_banner.enable": "Virkja tilkynningar á skjáborði",
"notifications_permission_banner.how_to_control": "Til að taka á móti tilkynningum þegar Mastodon er ekki opið, skaltu virkja tilkynningar á skjáborði. Þegar þær eru orðnar virkar geturðu stýrt nákvæmlega hverskonar atvik framleiða tilkynningar með því að nota {icon}-hnappinn hér fyrir ofan.",
"notifications_permission_banner.title": "Aldrei missa af neinu",
@@ -666,9 +728,13 @@
"report.unfollow_explanation": "Þú ert að fylgjast með þessum aðgangi. Til að hætta að sjá viðkomandi færslur á streyminu þínu, skaltu hætta að fylgjast með viðkomandi.",
"report_notification.attached_statuses": "{count, plural, one {{count} færsla} other {{count} færslur}} viðhengdar",
"report_notification.categories.legal": "Löglegt",
+ "report_notification.categories.legal_sentence": "ólöglegt efni",
"report_notification.categories.other": "Annað",
+ "report_notification.categories.other_sentence": "annað",
"report_notification.categories.spam": "Ruslpóstur",
+ "report_notification.categories.spam_sentence": "ruslpóstur",
"report_notification.categories.violation": "Brot á reglum",
+ "report_notification.categories.violation_sentence": "brot á reglum",
"report_notification.open": "Opin kæra",
"search.no_recent_searches": "Engar nýlegar leitir",
"search.placeholder": "Leita",
@@ -710,6 +776,7 @@
"status.bookmark": "Bókamerki",
"status.cancel_reblog_private": "Taka úr endurbirtingu",
"status.cannot_reblog": "Þessa færslu er ekki hægt að endurbirta",
+ "status.continued_thread": "Hélt samtali áfram",
"status.copy": "Afrita tengil í færslu",
"status.delete": "Eyða",
"status.detailed_status": "Nákvæm spjallþráðasýn",
@@ -718,12 +785,10 @@
"status.edit": "Breyta",
"status.edited": "Síðast breytt {date}",
"status.edited_x_times": "Breytt {count, plural, one {{count} sinni} other {{count} sinnum}}",
- "status.embed": "Ívefja",
+ "status.embed": "Ná í innfellanlegan kóða",
"status.favourite": "Eftirlæti",
"status.favourites": "{count, plural, one {eftirlæti} other {eftirlæti}}",
"status.filter": "Sía þessa færslu",
- "status.filtered": "Síað",
- "status.hide": "Fela færslu",
"status.history.created": "{name} útbjó {date}",
"status.history.edited": "{name} breytti {date}",
"status.load_more": "Hlaða inn meiru",
@@ -745,16 +810,14 @@
"status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.",
"status.redraft": "Eyða og endurvinna drög",
"status.remove_bookmark": "Fjarlægja bókamerki",
+ "status.replied_in_thread": "Svaraði í samtali",
"status.replied_to": "Svaraði til {name}",
"status.reply": "Svara",
"status.replyAll": "Svara þræði",
"status.report": "Kæra @{name}",
"status.sensitive_warning": "Viðkvæmt efni",
"status.share": "Deila",
- "status.show_filter_reason": "Birta samt",
- "status.show_less": "Sýna minna",
"status.show_less_all": "Sýna minna fyrir allt",
- "status.show_more": "Sýna meira",
"status.show_more_all": "Sýna meira fyrir allt",
"status.show_original": "Sýna upprunalega",
"status.title.with_attachments": "{user} birti {attachmentCount, plural, one {viðhengi} other {{attachmentCount} viðhengi}}",
@@ -773,10 +836,6 @@
"time_remaining.minutes": "{number, plural, one {# mínúta} other {# mínútur}} eftir",
"time_remaining.moments": "Tími eftir",
"time_remaining.seconds": "{number, plural, one {# sekúnda} other {# sekúndur}} eftir",
- "timeline_hint.remote_resource_not_displayed": "{resource} frá öðrum netþjónum er ekki birt.",
- "timeline_hint.resources.followers": "Fylgjendur",
- "timeline_hint.resources.follows": "Fylgist með",
- "timeline_hint.resources.statuses": "Eldri færslur",
"trends.counter_by_accounts": "{count, plural, one {{counter} aðili} other {{counter} manns}} {days, plural, one {síðasta sólarhringinn} other {síðustu {days} daga}}",
"trends.trending_now": "Vinsælt núna",
"ui.beforeunload": "Drögin tapast ef þú ferð út úr Mastodon.",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 3672b5fd7a1..ec26d80be63 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -11,7 +11,7 @@
"about.not_available": "Queste informazioni non sono state rese disponibili su questo server.",
"about.powered_by": "Social media decentralizzato alimentato da {mastodon}",
"about.rules": "Regole del server",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Note personali",
"account.add_or_remove_from_list": "Aggiungi o Rimuovi dalle liste",
"account.badges.bot": "Bot",
"account.badges.group": "Gruppo",
@@ -19,7 +19,6 @@
"account.block_domain": "Blocca dominio {domain}",
"account.block_short": "Blocca",
"account.blocked": "Bloccato",
- "account.browse_more_on_origin_server": "Sfoglia di più sul profilo originale",
"account.cancel_follow_request": "Annulla la richiesta di seguire",
"account.copy": "Copia link del profilo",
"account.direct": "Menziona privatamente @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Segui a tua volta",
"account.followers": "Follower",
"account.followers.empty": "Ancora nessuno segue questo utente.",
- "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}",
+ "account.followers_counter": "{count, plural, one {{counter} seguace} other {{counter} seguaci}}",
"account.following": "Seguiti",
- "account.following_counter": "{count, plural, one {{counter} Seguiti} other {{counter} Seguiti}}",
+ "account.following_counter": "{count, plural, one {{counter} segui} other {{counter} segui}}",
"account.follows.empty": "Questo utente non segue ancora nessuno.",
"account.go_to_profile": "Vai al profilo",
"account.hide_reblogs": "Nascondi potenziamenti da @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} ha richiesto di seguirti",
"account.share": "Condividi il profilo di @{name}",
"account.show_reblogs": "Mostra potenziamenti da @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Post}}",
+ "account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} post}}",
"account.unblock": "Sblocca @{name}",
"account.unblock_domain": "Sblocca il dominio {domain}",
"account.unblock_short": "Sblocca",
@@ -98,6 +97,8 @@
"block_modal.title": "Bloccare l'utente?",
"block_modal.you_wont_see_mentions": "Non vedrai i post che li menzionano.",
"boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio, la prossima volta",
+ "boost_modal.reblog": "Condividere il post?",
+ "boost_modal.undo_reblog": "Annullare la condivisione del post?",
"bundle_column_error.copy_stacktrace": "Copia rapporto sull'errore",
"bundle_column_error.error.body": "Impossibile rendedrizzare la pagina richiesta. Potrebbe dipendere da un bug nel nostro codice o da un problema di compatibilità di un browser.",
"bundle_column_error.error.title": "Oh, no!",
@@ -126,7 +127,7 @@
"column.firehose": "Feed dal vivo",
"column.follow_requests": "Richieste di seguirti",
"column.home": "Home",
- "column.lists": "Elenchi",
+ "column.lists": "Liste",
"column.mutes": "Utenti silenziati",
"column.notifications": "Notifiche",
"column.pins": "Post fissati",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Contenuto sensibile (facoltativo)",
"confirmation_modal.cancel": "Annulla",
"confirmations.block.confirm": "Blocca",
- "confirmations.cancel_follow_request.confirm": "Annulla la richiesta",
- "confirmations.cancel_follow_request.message": "Sei sicuro di voler annullare la tua richiesta per seguire {name}?",
"confirmations.delete.confirm": "Elimina",
"confirmations.delete.message": "Sei sicuro di voler eliminare questo post?",
+ "confirmations.delete.title": "Eliminare il post?",
"confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Sei sicuro/a di voler eliminare permanentemente questo elenco?",
+ "confirmations.delete_list.title": "Eliminare la lista?",
"confirmations.discard_edit_media.confirm": "Scarta",
"confirmations.discard_edit_media.message": "Hai delle modifiche non salvate alla descrizione o anteprima del media, scartarle comunque?",
- "confirmations.domain_block.confirm": "Blocca il server",
- "confirmations.domain_block.message": "Sei davvero sicuro di voler bloccare l'intero {domain}? In gran parte dei casi, è sufficiente e preferibile bloccare o silenziare alcuni profili. Non visualizzerai i contenuti da quel dominio in alcuna cronologia pubblica o tra le tue notifiche. I tuoi seguaci da quel dominio saranno rimossi.",
"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.logout.confirm": "Disconnettiti",
"confirmations.logout.message": "Sei sicuro di volerti disconnettere?",
+ "confirmations.logout.title": "Uscire?",
"confirmations.mute.confirm": "Silenzia",
"confirmations.redraft.confirm": "Elimina e riscrivi",
"confirmations.redraft.message": "Sei sicuro di voler eliminare questo post e riscriverlo? I preferiti e i boost andranno persi e le risposte al post originale non saranno più collegate.",
+ "confirmations.redraft.title": "Eliminare e riformulare il post?",
"confirmations.reply.confirm": "Rispondi",
"confirmations.reply.message": "Rispondere ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?",
+ "confirmations.reply.title": "Sovrascrivere il post?",
"confirmations.unfollow.confirm": "Smetti di seguire",
"confirmations.unfollow.message": "Sei sicuro di voler smettere di seguire {name}?",
+ "confirmations.unfollow.title": "Smettere di seguire l'utente?",
+ "content_warning.hide": "Nascondi post",
+ "content_warning.show": "Mostra comunque",
"conversation.delete": "Elimina conversazione",
"conversation.mark_as_read": "Segna come letto",
"conversation.open": "Visualizza conversazione",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Usa una categoria esistente o creane una nuova",
"filter_modal.select_filter.title": "Filtra questo post",
"filter_modal.title.status": "Filtra un post",
- "filtered_notifications_banner.mentions": "{count, plural, one {menzione} other {menzioni}}",
- "filtered_notifications_banner.pending_requests": "Notifiche da {count, plural, =0 {nessuno} one {una persona} other {# persone}} che potresti conoscere",
+ "filter_warning.matches_filter": "Corrisponde al filtro \"{title}\"",
+ "filtered_notifications_banner.pending_requests": "Da {count, plural, =0 {nessuno} one {una persona} other {# persone}} che potresti conoscere",
"filtered_notifications_banner.title": "Notifiche filtrate",
"firehose.all": "Tutto",
"firehose.local": "Questo server",
@@ -347,6 +353,14 @@
"hashtag.follow": "Segui l'hashtag",
"hashtag.unfollow": "Smetti di seguire l'hashtag",
"hashtags.and_other": "…e {count, plural, other {# in più}}",
+ "hints.profiles.followers_may_be_missing": "I seguaci per questo profilo potrebbero essere mancanti.",
+ "hints.profiles.follows_may_be_missing": "I profili seguiti per questo profilo potrebbero essere mancanti.",
+ "hints.profiles.posts_may_be_missing": "Alcuni post da questo profilo potrebbero essere mancanti.",
+ "hints.profiles.see_more_followers": "Vedi altri seguaci su {domain}",
+ "hints.profiles.see_more_follows": "Vedi altri profili seguiti su {domain}",
+ "hints.profiles.see_more_posts": "Vedi altri post su {domain}",
+ "hints.threads.replies_may_be_missing": "Le risposte da altri server potrebbero essere mancanti.",
+ "hints.threads.see_more": "Vedi altre risposte su {domain}",
"home.column_settings.show_reblogs": "Mostra reblog",
"home.column_settings.show_replies": "Mostra risposte",
"home.hide_announcements": "Nascondi annunci",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Visualizza aggiornamenti",
"home.pending_critical_update.title": "Aggiornamento critico di sicurezza disponibile!",
"home.show_announcements": "Mostra annunci",
+ "ignore_notifications_modal.disclaimer": "Mastodon non può informare gli utenti che hai ignorato le loro notifiche. Ignorare le notifiche non impedirà l'invio dei messaggi stessi.",
+ "ignore_notifications_modal.filter_instead": "Filtra invece",
+ "ignore_notifications_modal.filter_to_act_users": "Potrai comunque accettare, rifiutare o segnalare gli utenti",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Il filtraggio aiuta a evitare potenziali confusioni",
+ "ignore_notifications_modal.filter_to_review_separately": "Puoi rivedere le notifiche filtrate separatamente",
+ "ignore_notifications_modal.ignore": "Ignora le notifiche",
+ "ignore_notifications_modal.limited_accounts_title": "Ignorare le notifiche dagli account moderati?",
+ "ignore_notifications_modal.new_accounts_title": "Ignorare le notifiche dai nuovi account?",
+ "ignore_notifications_modal.not_followers_title": "Ignorare le notifiche delle persone che non ti seguono?",
+ "ignore_notifications_modal.not_following_title": "Ignorare le notifiche delle persone che non segui?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorare le notifiche provenienti da menzioni private indesiderate?",
"interaction_modal.description.favourite": "Con un account su Mastodon, puoi aggiungere questo post ai preferiti per far sapere all'autore che lo apprezzi e salvarlo per dopo.",
"interaction_modal.description.follow": "Con un profilo di Mastodon, puoi seguire {name} per ricevere i suoi post nel feed della tua home.",
"interaction_modal.description.reblog": "Con un profilo di Mastodon, puoi rebloggare questo post per condividerlo con i tuoi seguaci.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Rimuove il focus sull'area di composizione testuale/ricerca",
"keyboard_shortcuts.up": "Scorre in su nell'elenco",
"lightbox.close": "Chiudi",
- "lightbox.compress": "Comprimi casella di visualizzazione immagine",
- "lightbox.expand": "Espandi casella di visualizzazione immagine",
"lightbox.next": "Successivo",
"lightbox.previous": "Precedente",
+ "lightbox.zoom_in": "Ingrandisci alla dimensione attuale",
+ "lightbox.zoom_out": "Ingrandisci per adattarsi",
"limited_account_hint.action": "Mostra comunque il profilo",
"limited_account_hint.title": "Questo profilo è stato nascosto dai moderatori di {domain}.",
"link_preview.author": "Di {name}",
@@ -429,10 +454,10 @@
"lists.replies_policy.none": "Nessuno",
"lists.replies_policy.title": "Mostra risposte a:",
"lists.search": "Cerca tra le persone che segui",
- "lists.subheading": "I tuoi elenchi",
+ "lists.subheading": "Le tue liste",
"load_pending": "{count, plural, one {# nuovo oggetto} other {# nuovi oggetti}}",
"loading_indicator.label": "Caricamento…",
- "media_gallery.toggle_visible": "{number, plural, one {Nascondi immagine} other {Nascondi immagini}}",
+ "media_gallery.hide": "Nascondi",
"moved_to_account_banner.text": "Il tuo profilo {disabledAccount} è correntemente disabilitato perché ti sei spostato a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Nascondi dalle notifiche",
"mute_modal.hide_options": "Nascondi le opzioni",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Non vedrai i post che li menzionano.",
"mute_modal.you_wont_see_posts": "Possono ancora vedere i tuoi post, ma tu non vedrai i loro.",
"navigation_bar.about": "Info",
+ "navigation_bar.administration": "Amministrazione",
"navigation_bar.advanced_interface": "Apri nell'interfaccia web avanzata",
"navigation_bar.blocks": "Utenti bloccati",
"navigation_bar.bookmarks": "Segnalibri",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Seguiti e seguaci",
"navigation_bar.lists": "Liste",
"navigation_bar.logout": "Disconnettiti",
+ "navigation_bar.moderation": "Moderazione",
"navigation_bar.mutes": "Utenti silenziati",
"navigation_bar.opened_in_classic_interface": "Post, account e altre pagine specifiche sono aperti per impostazione predefinita nella classica interfaccia web.",
"navigation_bar.personal": "Personale",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Sicurezza",
"not_signed_in_indicator.not_signed_in": "Devi accedere per consultare questa risorsa.",
"notification.admin.report": "{name} ha segnalato {target}",
+ "notification.admin.report_account": "{name} ha segnalato {count, plural, one {un post} other {# post}} da {target} per {category}",
+ "notification.admin.report_account_other": "{name} ha segnalato {count, plural, one {un post} other {# post}} da {target}",
+ "notification.admin.report_statuses": "{name} ha segnalato {target} per {category}",
+ "notification.admin.report_statuses_other": "{name} ha segnalato {target}",
"notification.admin.sign_up": "{name} si è iscritto",
+ "notification.admin.sign_up.name_and_others": "Si sono iscritti: {name} e {count, plural, one {# altro utente} other {altri # utenti}}",
"notification.favourite": "{name} ha aggiunto il tuo post ai preferiti",
+ "notification.favourite.name_and_others_with_link": "{name} e {count, plural, one {# altro} other {altri #}} hanno aggiunto il tuo post ai preferiti",
"notification.follow": "{name} ha iniziato a seguirti",
+ "notification.follow.name_and_others": "{name} e {count, plural, one {# altro} other {altri #}} hanno iniziato a seguirti",
"notification.follow_request": "{name} ha richiesto di seguirti",
- "notification.mention": "{name} ti ha menzionato",
+ "notification.follow_request.name_and_others": "{name} e {count, plural, one {# altro} other {altri #}} hanno richiesto di seguirti",
+ "notification.label.mention": "Menziona",
+ "notification.label.private_mention": "Menzione privata",
+ "notification.label.private_reply": "Rispondi in privato",
+ "notification.label.reply": "Rispondi",
+ "notification.mention": "Menziona",
"notification.moderation-warning.learn_more": "Scopri di più",
"notification.moderation_warning": "Hai ricevuto un avviso di moderazione",
"notification.moderation_warning.action_delete_statuses": "Alcuni dei tuoi post sono stati rimossi.",
@@ -487,6 +526,7 @@
"notification.own_poll": "Il tuo sondaggio è terminato",
"notification.poll": "Un sondaggio in cui hai votato è terminato",
"notification.reblog": "{name} ha rebloggato il tuo post",
+ "notification.reblog.name_and_others_with_link": "{name} e {count, plural, one {# altro} other {altri #}} hanno condiviso il tuo post",
"notification.relationships_severance_event": "Connessioni perse con {name}",
"notification.relationships_severance_event.account_suspension": "Un amministratore da {from} ha sospeso {target}, il che significa che non puoi più ricevere aggiornamenti da loro o interagire con loro.",
"notification.relationships_severance_event.domain_block": "Un amministratore da {from} ha bloccato {target}, inclusi {followersCount} dei tuoi seguaci e {followingCount, plural, one {# account} other {# account}} che segui.",
@@ -495,11 +535,27 @@
"notification.status": "{name} ha appena pubblicato un post",
"notification.update": "{name} ha modificato un post",
"notification_requests.accept": "Accetta",
+ "notification_requests.accept_multiple": "{count, plural, one {Accetta # richiesta…} other {Accetta # richieste…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accetta la richiesta} other {Accetta le richieste}}",
+ "notification_requests.confirm_accept_multiple.message": "Stai per accettare {count, plural, one {una richiesta di notifica} other {# richieste di notifica}}. Si è sicuri di voler procedere?",
+ "notification_requests.confirm_accept_multiple.title": "Accettare le richieste di notifica?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Ignora la richiesta} other {Ignora le richieste}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Stai per ignorare {count, plural, one {una richiesta di notifica} other {# richieste di notifiche}}. Non potrai più accedere facilmente ad {count, plural, one {essa} other {esse}}. Si è sicuri di voler procedere?",
+ "notification_requests.confirm_dismiss_multiple.title": "Ignorare le richieste di notifica?",
"notification_requests.dismiss": "Ignora",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Ignora # richiesta…} other {Ignora # richieste…}}",
+ "notification_requests.edit_selection": "Modifica",
+ "notification_requests.exit_selection": "Fatto",
+ "notification_requests.explainer_for_limited_account": "Le notifiche provenienti da questo account sono state filtrate perché l'account è stato limitato da un moderatore.",
+ "notification_requests.explainer_for_limited_remote_account": "Le notifiche provenienti da questo account sono state filtrate perché l'account o il suo server sono stati limitati da un moderatore.",
+ "notification_requests.maximize": "Ingrandisci",
+ "notification_requests.minimize_banner": "Minimizza il banner delle notifiche filtrate",
"notification_requests.notifications_from": "Notifiche da {name}",
"notification_requests.title": "Notifiche filtrate",
+ "notification_requests.view": "Visualizza le notifiche",
"notifications.clear": "Cancella le notifiche",
"notifications.clear_confirmation": "Sei sicuro di voler cancellare permanentemente tutte le tue notifiche?",
+ "notifications.clear_title": "Cancellare le notifiche?",
"notifications.column_settings.admin.report": "Nuove segnalazioni:",
"notifications.column_settings.admin.sign_up": "Nuove iscrizioni:",
"notifications.column_settings.alert": "Notifiche desktop",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Notifiche desktop non disponibili a causa della precedentemente negata richiesta di autorizzazioni del browser",
"notifications.permission_denied_alert": "Impossibile abilitare le notifiche desktop, poiché l'autorizzazione del browser è stata precedentemente negata",
"notifications.permission_required": "Notifiche destkop non disponibili poiché l'autorizzazione richiesta non è stata concessa.",
+ "notifications.policy.accept": "Accetta",
+ "notifications.policy.accept_hint": "Mostra nelle notifiche",
+ "notifications.policy.drop": "Ignora",
+ "notifications.policy.drop_hint": "Scarta definitivamente, per non essere mai più visto",
+ "notifications.policy.filter": "Filtrare",
+ "notifications.policy.filter_hint": "Invia alla casella in arrivo delle notifiche filtrate",
+ "notifications.policy.filter_limited_accounts_hint": "Limitato dai moderatori del server",
+ "notifications.policy.filter_limited_accounts_title": "Account moderati",
"notifications.policy.filter_new_accounts.hint": "Creato {days, plural, one {un giorno} other {# giorni}} fa",
"notifications.policy.filter_new_accounts_title": "Nuovi account",
"notifications.policy.filter_not_followers_hint": "Incluse le persone che ti seguono da meno di {days, plural, one {un giorno} other {# giorni}}",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Persone che non segui",
"notifications.policy.filter_private_mentions_hint": "Filtrate, a meno che non sia in risposta alla tua menzione o se segui il mittente",
"notifications.policy.filter_private_mentions_title": "Menzioni private indesiderate",
- "notifications.policy.title": "Filtra le notifiche da…",
+ "notifications.policy.title": "Gestisci le notifiche da…",
"notifications_permission_banner.enable": "Abilita le notifiche desktop",
"notifications_permission_banner.how_to_control": "Per ricevere le notifiche quando Mastodon non è aperto, abilita le notifiche desktop. Puoi controllare precisamente quali tipi di interazioni generano le notifiche destkop, tramite il pulsante {icon} sopra, una volta abilitate.",
"notifications_permission_banner.title": "Non perderti mai nulla",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Segui questo profilo. Per non visualizzare più i suoi post nel feed della tua home, smetti di seguirlo.",
"report_notification.attached_statuses": "{count, plural, one {{count} post allegato} other {{count} post allegati}}",
"report_notification.categories.legal": "Legale",
+ "report_notification.categories.legal_sentence": "contenuti illegali",
"report_notification.categories.other": "Altro",
+ "report_notification.categories.other_sentence": "altri",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Violazione delle regole",
+ "report_notification.categories.violation_sentence": "violazione delle regole",
"report_notification.open": "Apri segnalazione",
"search.no_recent_searches": "Nessuna ricerca recente",
"search.placeholder": "Cerca",
@@ -710,6 +778,7 @@
"status.bookmark": "Aggiungi segnalibro",
"status.cancel_reblog_private": "Annulla reblog",
"status.cannot_reblog": "Questo post non può essere condiviso",
+ "status.continued_thread": "Discussione continua",
"status.copy": "Copia link al post",
"status.delete": "Elimina",
"status.detailed_status": "Vista conversazione dettagliata",
@@ -718,12 +787,10 @@
"status.edit": "Modifica",
"status.edited": "Ultima modifica {date}",
"status.edited_x_times": "Modificato {count, plural, one {{count} volta} other {{count} volte}}",
- "status.embed": "Incorpora",
+ "status.embed": "Ottieni codice incorporato",
"status.favourite": "Preferito",
"status.favourites": "{count, plural, one {preferito} other {preferiti}}",
"status.filter": "Filtra questo post",
- "status.filtered": "Filtrato",
- "status.hide": "Nascondi il post",
"status.history.created": "Creato da {name} il {date}",
"status.history.edited": "Modificato da {name} il {date}",
"status.load_more": "Carica altro",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Ancora nessuno ha rebloggato questo post. Quando qualcuno lo farà, apparirà qui.",
"status.redraft": "Elimina e riscrivi",
"status.remove_bookmark": "Rimuovi segnalibro",
+ "status.replied_in_thread": "Ha risposto nella discussione",
"status.replied_to": "Risposta a {name}",
"status.reply": "Rispondi",
"status.replyAll": "Rispondi alla conversazione",
"status.report": "Segnala @{name}",
"status.sensitive_warning": "Contenuto sensibile",
"status.share": "Condividi",
- "status.show_filter_reason": "Mostra comunque",
- "status.show_less": "Mostra meno",
"status.show_less_all": "Mostra meno per tutti",
- "status.show_more": "Mostra di più",
"status.show_more_all": "Mostra di più per tutti",
"status.show_original": "Mostra originale",
"status.title.with_attachments": "{user} ha pubblicato {attachmentCount, plural, one {un allegato} other {{attachmentCount} allegati}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minuto} other {# minuti}} left",
"time_remaining.moments": "Restano pochi istanti",
"time_remaining.seconds": "{number, plural, one {# secondo} other {# secondi}} left",
- "timeline_hint.remote_resource_not_displayed": "{resource} da altri server non sono mostrati.",
- "timeline_hint.resources.followers": "Seguaci",
- "timeline_hint.resources.follows": "Segue",
- "timeline_hint.resources.statuses": "Post meno recenti",
"trends.counter_by_accounts": "{count, plural, one {{count} persona} other {{count} persone}} {days, plural, one {nell'ultimo giorno} other {negli ultimi {days} giorni}}",
"trends.trending_now": "Ora in tendenza",
"ui.beforeunload": "La tua bozza andrà persa, se abbandoni Mastodon.",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 90a46edd5b9..c3ddeed880e 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -11,7 +11,7 @@
"about.not_available": "この情報はこのサーバーでは利用できません。",
"about.powered_by": "{mastodon}による分散型ソーシャルメディア",
"about.rules": "サーバーのルール",
- "account.account_note_header": "メモ",
+ "account.account_note_header": "自分用メモ",
"account.add_or_remove_from_list": "リストから追加または外す",
"account.badges.bot": "Bot",
"account.badges.group": "Group",
@@ -19,7 +19,6 @@
"account.block_domain": "{domain}全体をブロック",
"account.block_short": "ブロック",
"account.blocked": "ブロック済み",
- "account.browse_more_on_origin_server": "リモートで表示",
"account.cancel_follow_request": "フォローリクエストの取り消し",
"account.copy": "プロフィールへのリンクをコピー",
"account.direct": "@{name}さんに非公開でメンション",
@@ -35,9 +34,9 @@
"account.follow_back": "フォローバック",
"account.followers": "フォロワー",
"account.followers.empty": "まだ誰もフォローしていません。",
- "account.followers_counter": "{counter} フォロワー",
+ "account.followers_counter": "{count, plural, other {{counter} フォロワー}}",
"account.following": "フォロー中",
- "account.following_counter": "{counter} フォロー",
+ "account.following_counter": "{count, plural, other {{counter} フォロー}}",
"account.follows.empty": "まだ誰もフォローしていません。",
"account.go_to_profile": "プロフィールページへ",
"account.hide_reblogs": "@{name}さんからのブーストを非表示",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name}さんがあなたにフォローリクエストしました",
"account.share": "@{name}さんのプロフィールを共有する",
"account.show_reblogs": "@{name}さんからのブーストを表示",
- "account.statuses_counter": "{counter} 投稿",
+ "account.statuses_counter": "{count, plural, other {{counter} 投稿}}",
"account.unblock": "@{name}さんのブロックを解除",
"account.unblock_domain": "{domain}のブロックを解除",
"account.unblock_short": "ブロック解除",
@@ -98,6 +97,8 @@
"block_modal.title": "ユーザーをブロックしますか?",
"block_modal.you_wont_see_mentions": "宛先に相手が入っている投稿も閲覧できなくなります。",
"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": "おっと!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "閲覧注意 (オプション)",
"confirmation_modal.cancel": "キャンセル",
"confirmations.block.confirm": "ブロック",
- "confirmations.cancel_follow_request.confirm": "フォローリクエストを取り消す",
- "confirmations.cancel_follow_request.message": "{name}に対するフォローリクエストを取り消しますか?",
"confirmations.delete.confirm": "削除",
"confirmations.delete.message": "本当に削除しますか?",
+ "confirmations.delete.title": "投稿を削除しようとしています",
"confirmations.delete_list.confirm": "削除",
"confirmations.delete_list.message": "本当にこのリストを完全に削除しますか?",
+ "confirmations.delete_list.title": "リストを削除しようとしています",
"confirmations.discard_edit_media.confirm": "破棄",
"confirmations.discard_edit_media.message": "メディアの説明またはプレビューに保存されていない変更があります。それでも破棄しますか?",
- "confirmations.domain_block.confirm": "サーバーをブロック",
- "confirmations.domain_block.message": "本当に{domain}全体を非表示にしますか? 多くの場合は個別にブロックやミュートするだけで充分であり、また好ましいです。公開タイムラインにそのドメインのコンテンツが表示されなくなり、通知も届かなくなります。そのドメインのフォロワーはアンフォローされます。",
"confirmations.edit.confirm": "編集",
"confirmations.edit.message": "今編集すると現在作成中のメッセージが上書きされます。本当に実行しますか?",
+ "confirmations.edit.title": "作成中の内容を上書きしようとしています",
"confirmations.logout.confirm": "ログアウト",
"confirmations.logout.message": "本当にログアウトしますか?",
+ "confirmations.logout.title": "ログアウトしようとしています",
"confirmations.mute.confirm": "ミュート",
"confirmations.redraft.confirm": "削除して下書きに戻す",
"confirmations.redraft.message": "投稿を削除して下書きに戻します。この投稿へのお気に入り登録やブーストは失われ、返信は孤立することになります。よろしいですか?",
+ "confirmations.redraft.title": "投稿の削除と下書きの再作成",
"confirmations.reply.confirm": "返信",
"confirmations.reply.message": "今返信すると現在作成中のメッセージが上書きされます。本当に実行しますか?",
+ "confirmations.reply.title": "作成中の内容を上書きしようとしています",
"confirmations.unfollow.confirm": "フォロー解除",
"confirmations.unfollow.message": "本当に{name}さんのフォローを解除しますか?",
+ "confirmations.unfollow.title": "フォローを解除しようとしています",
+ "content_warning.hide": "内容を隠す",
+ "content_warning.show": "承知の上で表示",
"conversation.delete": "会話を削除",
"conversation.mark_as_read": "既読にする",
"conversation.open": "会話を表示",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します",
"filter_modal.select_filter.title": "この投稿をフィルターする",
"filter_modal.title.status": "投稿をフィルターする",
- "filtered_notifications_banner.mentions": "{count, plural, one {メンション} other {メンション}}",
- "filtered_notifications_banner.pending_requests": "{count, plural, =0 {通知がブロックされているアカウントはありません} other {#アカウントからの通知がブロックされています}}",
+ "filter_warning.matches_filter": "フィルター「{title}」に一致する投稿です",
+ "filtered_notifications_banner.pending_requests": "{count, plural, =0 {すべて完了しました} other {#人の通知がブロックされています}}",
"filtered_notifications_banner.title": "保留中の通知",
"firehose.all": "すべて",
"firehose.local": "このサーバー",
@@ -347,6 +353,14 @@
"hashtag.follow": "ハッシュタグをフォローする",
"hashtag.unfollow": "ハッシュタグのフォローを解除",
"hashtags.and_other": "ほか{count, plural, other {#個}}",
+ "hints.profiles.followers_may_be_missing": "フォロワーの一覧は不正確な場合があります。",
+ "hints.profiles.follows_may_be_missing": "フォローの一覧は不正確な場合があります。",
+ "hints.profiles.posts_may_be_missing": "すべての投稿を表示できていない場合があります。",
+ "hints.profiles.see_more_followers": "{domain} で正確な情報を見る",
+ "hints.profiles.see_more_follows": "{domain} で正確な情報を見る",
+ "hints.profiles.see_more_posts": "{domain} でその他の投稿を見る",
+ "hints.threads.replies_may_be_missing": "リモートの返信は表示されない場合があります。",
+ "hints.threads.see_more": "{domain} でその他の返信を見る",
"home.column_settings.show_reblogs": "ブースト表示",
"home.column_settings.show_replies": "返信表示",
"home.hide_announcements": "お知らせを隠す",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "詳細",
"home.pending_critical_update.title": "緊急のセキュリティアップデートがあります",
"home.show_announcements": "お知らせを表示",
+ "ignore_notifications_modal.disclaimer": "通知が無視されていることは通知の送信元の相手には伝わりません。通知が破棄されるのみで、投稿や返信の送信を止めさせる効果はありません。",
+ "ignore_notifications_modal.filter_instead": "「保留」に設定",
+ "ignore_notifications_modal.filter_to_act_users": "保留された通知は「受け入れ」「無視」を選択できます。当該ユーザーの通報も可能です",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "通知の破棄による意図しない混乱を避けるためにも、「保留」設定の使用を検討してください",
+ "ignore_notifications_modal.filter_to_review_separately": "「保留」設定を使用することで、保留された通知を個別に確認できます",
+ "ignore_notifications_modal.ignore": "「無視」に設定",
+ "ignore_notifications_modal.limited_accounts_title": "本当に「モデレーションされたアカウントからの通知」を無視するようにしますか?",
+ "ignore_notifications_modal.new_accounts_title": "本当に「新しいアカウントからの通知」を無視するようにしますか?",
+ "ignore_notifications_modal.not_followers_title": "本当に「フォローされていないアカウントからの通知」を無視するようにしますか?",
+ "ignore_notifications_modal.not_following_title": "本当に「フォローしていないアカウントからの通知」を無視するようにしますか?",
+ "ignore_notifications_modal.private_mentions_title": "本当に「外部からの非公開の返信」を無視するようにしますか?",
"interaction_modal.description.favourite": "Mastodonのアカウントがあれば投稿をお気に入り登録して投稿者に気持ちを伝えたり、あとで見返すことができます。",
"interaction_modal.description.follow": "Mastodonのアカウントで{name}さんをフォローしてホームフィードで投稿を受け取れます。",
"interaction_modal.description.reblog": "Mastodonのアカウントでこの投稿をブーストして自分のフォロワーに共有できます。",
@@ -407,13 +432,15 @@
"keyboard_shortcuts.unfocus": "投稿の入力欄・検索欄から離れる",
"keyboard_shortcuts.up": "カラム内一つ上に移動",
"lightbox.close": "閉じる",
- "lightbox.compress": "画像ビューボックスを閉じる",
- "lightbox.expand": "画像ビューボックスを開く",
"lightbox.next": "次",
"lightbox.previous": "前",
+ "lightbox.zoom_in": "実際のサイズにする",
+ "lightbox.zoom_out": "表示範囲に合わせる",
"limited_account_hint.action": "構わず表示する",
"limited_account_hint.title": "このプロフィールは{domain}のモデレーターによって非表示にされています。",
"link_preview.author": "{name}",
+ "link_preview.more_from_author": "{name}さんの投稿をもっと読む",
+ "link_preview.shares": "{count, plural, other {{counter}件の投稿}}",
"lists.account.add": "リストに追加",
"lists.account.remove": "リストから外す",
"lists.delete": "リストを削除",
@@ -430,7 +457,7 @@
"lists.subheading": "あなたのリスト",
"load_pending": "{count}件の新着",
"loading_indicator.label": "読み込み中…",
- "media_gallery.toggle_visible": "{number, plural, one {画像を閉じる} other {画像を閉じる}}",
+ "media_gallery.hide": "隠す",
"moved_to_account_banner.text": "あなたのアカウント『{disabledAccount}』は『{movedToAccount}』に移動したため現在無効になっています。",
"mute_modal.hide_from_notifications": "通知をオフにする",
"mute_modal.hide_options": "オプションを閉じる",
@@ -442,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "宛先に相手が入っている投稿も閲覧できなくなります。",
"mute_modal.you_wont_see_posts": "相手はあなたの投稿を今までどおり閲覧できますが、あなたは相手の投稿を閲覧できなくなります。",
"navigation_bar.about": "概要",
+ "navigation_bar.administration": "管理",
"navigation_bar.advanced_interface": "上級者向けUIに戻る",
"navigation_bar.blocks": "ブロックしたユーザー",
"navigation_bar.bookmarks": "ブックマーク",
@@ -458,6 +486,7 @@
"navigation_bar.follows_and_followers": "フォロー・フォロワー",
"navigation_bar.lists": "リスト",
"navigation_bar.logout": "ログアウト",
+ "navigation_bar.moderation": "モデレーション",
"navigation_bar.mutes": "ミュートしたユーザー",
"navigation_bar.opened_in_classic_interface": "投稿やプロフィールを直接開いた場合は一時的に標準UIで表示されます。",
"navigation_bar.personal": "個人用",
@@ -468,11 +497,23 @@
"navigation_bar.security": "セキュリティ",
"not_signed_in_indicator.not_signed_in": "この機能を使うにはログインする必要があります。",
"notification.admin.report": "{name}さんが{target}さんを通報しました",
+ "notification.admin.report_account": "{name}さんが{target}さんの投稿{count, plural, other {#件}}を「{category}」として通報しました",
+ "notification.admin.report_account_other": "{name}さんが{target}さんの投稿{count, plural, other {#件}}を通報しました",
+ "notification.admin.report_statuses": "{name}さんが{target}さんを「{category}」として通報しました",
+ "notification.admin.report_statuses_other": "{name}さんが{target}さんを通報しました",
"notification.admin.sign_up": "{name}さんがサインアップしました",
+ "notification.admin.sign_up.name_and_others": "{name}さんほか{count, plural, other {#人}}がサインアップしました",
"notification.favourite": "{name}さんがお気に入りしました",
+ "notification.favourite.name_and_others_with_link": "{name}さんほか{count, plural, other {#人}}がお気に入りしました",
"notification.follow": "{name}さんにフォローされました",
+ "notification.follow.name_and_others": "{name}さんほか{count, plural, other {#人}}にフォローされました",
"notification.follow_request": "{name}さんがあなたにフォローリクエストしました",
- "notification.mention": "{name}さんがあなたに返信しました",
+ "notification.follow_request.name_and_others": "{name}さんほか{count, plural, other {#人}}があなたにフォローリクエストしました",
+ "notification.label.mention": "メンション",
+ "notification.label.private_mention": "非公開の返信 (メンション)",
+ "notification.label.private_reply": "非公開の返信",
+ "notification.label.reply": "返信",
+ "notification.mention": "メンション",
"notification.moderation-warning.learn_more": "さらに詳しく",
"notification.moderation_warning": "管理者から警告が来ています",
"notification.moderation_warning.action_delete_statuses": "あなたによるいくつかの投稿が削除されました。",
@@ -483,8 +524,9 @@
"notification.moderation_warning.action_silence": "あなたのアカウントは制限されています。",
"notification.moderation_warning.action_suspend": "あなたのアカウントは停止されました。",
"notification.own_poll": "アンケートが終了しました",
- "notification.poll": "アンケートが終了しました",
+ "notification.poll": "投票したアンケートが終了しました",
"notification.reblog": "{name}さんがあなたの投稿をブーストしました",
+ "notification.reblog.name_and_others_with_link": "{name}さんほか{count, plural, other {#人}}にブーストされました",
"notification.relationships_severance_event": "{name} との関係が失われました",
"notification.relationships_severance_event.account_suspension": "{from} の管理者が {target} さんを停止したため、今後このユーザーとの交流や新しい投稿の受け取りができなくなりました。",
"notification.relationships_severance_event.domain_block": "{from} の管理者が {target} をブロックしました。これにより{followersCount}フォロワーと{followingCount, plural, other {#フォロー}}が失われました。",
@@ -493,11 +535,27 @@
"notification.status": "{name}さんが投稿しました",
"notification.update": "{name}さんが投稿を編集しました",
"notification_requests.accept": "受け入れる",
+ "notification_requests.accept_multiple": "{count, plural, other {選択中の#件を受け入れる}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, other {#件のアカウントを受け入れる}}",
+ "notification_requests.confirm_accept_multiple.message": "{count, plural, other {#件のアカウント}}に対して今後通知を受け入れるようにします。よろしいですか?",
+ "notification_requests.confirm_accept_multiple.title": "保留中のアカウントの受け入れ",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, other {#件のアカウントを無視する}}",
+ "notification_requests.confirm_dismiss_multiple.message": "{count, plural, other {#件のアカウント}}からの通知を今後無視するようにします。一度この操作を行った{count, plural, other {アカウント}}とふたたび出会うことは容易ではありません。よろしいですか?",
+ "notification_requests.confirm_dismiss_multiple.title": "保留中のアカウントを無視しようとしています",
"notification_requests.dismiss": "無視",
+ "notification_requests.dismiss_multiple": "{count, plural, other {選択中の#件を無視する}}",
+ "notification_requests.edit_selection": "選択",
+ "notification_requests.exit_selection": "選択の終了",
+ "notification_requests.explainer_for_limited_account": "このアカウントはモデレーターにより制限が課されているため、このアカウントによる通知は保留されています",
+ "notification_requests.explainer_for_limited_remote_account": "このアカウントが所属するサーバーはモデレーターにより制限が課されているため、このアカウントによる通知は保留されています",
+ "notification_requests.maximize": "最大化",
+ "notification_requests.minimize_banner": "「保留中の通知」のバナーを最小化する",
"notification_requests.notifications_from": "{name}からの通知",
"notification_requests.title": "保留中の通知",
+ "notification_requests.view": "通知を見る",
"notifications.clear": "通知を消去",
"notifications.clear_confirmation": "本当に通知を消去しますか?",
+ "notifications.clear_title": "通知を消去しようとしています",
"notifications.column_settings.admin.report": "新しい通報:",
"notifications.column_settings.admin.sign_up": "新規登録:",
"notifications.column_settings.alert": "デスクトップ通知",
@@ -529,14 +587,22 @@
"notifications.permission_denied": "ブラウザの通知が拒否されているためデスクトップ通知は利用できません",
"notifications.permission_denied_alert": "ブラウザの通知が拒否されているためデスクトップ通知を有効にできません",
"notifications.permission_required": "必要な権限が付与されていないため、デスクトップ通知は利用できません。",
- "notifications.policy.filter_new_accounts.hint": "作成から{days, plural, other {#日}}以内のアカウントからの通知がブロックされます",
- "notifications.policy.filter_new_accounts_title": "新しいアカウントからの通知をブロックする",
- "notifications.policy.filter_not_followers_hint": "フォローされていても、フォローから{days, plural, other {#日}}経っていない場合はブロックされます",
- "notifications.policy.filter_not_followers_title": "フォローされていないアカウントからの通知をブロックする",
- "notifications.policy.filter_not_following_hint": "手動で通知を受け入れたアカウントはブロックされません",
- "notifications.policy.filter_not_following_title": "フォローしていないアカウントからの通知をブロックする",
- "notifications.policy.filter_private_mentions_hint": "あなたがメンションした相手からの返信、およびフォローしているアカウントからの返信以外がブロックされます",
- "notifications.policy.filter_private_mentions_title": "外部からの非公開の返信をブロックする",
+ "notifications.policy.accept": "受入れ",
+ "notifications.policy.accept_hint": "通知を表示します",
+ "notifications.policy.drop": "無視",
+ "notifications.policy.drop_hint": "通知を破棄します。再表示はできません。",
+ "notifications.policy.filter": "保留",
+ "notifications.policy.filter_hint": "「保留中の通知」に止め置きます",
+ "notifications.policy.filter_limited_accounts_hint": "モデレーターにより制限されたアカウントから送られる通知が対象です",
+ "notifications.policy.filter_limited_accounts_title": "モデレーションされたアカウントからの通知",
+ "notifications.policy.filter_new_accounts.hint": "作成から{days, plural, other {#日}}以内のアカウントが対象です",
+ "notifications.policy.filter_new_accounts_title": "新しいアカウントからの通知",
+ "notifications.policy.filter_not_followers_hint": "フォローされていても、フォローから{days, plural, other {#日}}経っていない場合は対象になります",
+ "notifications.policy.filter_not_followers_title": "フォローされていないアカウントからの通知",
+ "notifications.policy.filter_not_following_hint": "手動で通知を受け入れたアカウントは対象外です",
+ "notifications.policy.filter_not_following_title": "フォローしていないアカウントからの通知",
+ "notifications.policy.filter_private_mentions_hint": "メンションした相手からの返信、およびフォローしているアカウントからの返信は対象外です",
+ "notifications.policy.filter_private_mentions_title": "外部からの非公開の返信",
"notifications.policy.title": "通知のフィルタリング",
"notifications_permission_banner.enable": "デスクトップ通知を有効にする",
"notifications_permission_banner.how_to_control": "Mastodonを閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。",
@@ -664,9 +730,13 @@
"report.unfollow_explanation": "このアカウントをフォローしています。ホームフィードに彼らの投稿を表示しないようにするには、彼らのフォローを外してください。",
"report_notification.attached_statuses": "{count, plural, one {{count}件の投稿} other {{count}件の投稿}}が添付されました。",
"report_notification.categories.legal": "法令違反",
+ "report_notification.categories.legal_sentence": "法令違反",
"report_notification.categories.other": "その他",
+ "report_notification.categories.other_sentence": "その他",
"report_notification.categories.spam": "スパム",
+ "report_notification.categories.spam_sentence": "スパム",
"report_notification.categories.violation": "ルール違反",
+ "report_notification.categories.violation_sentence": "ルール違反",
"report_notification.open": "通報を開く",
"search.no_recent_searches": "検索履歴はありません",
"search.placeholder": "検索",
@@ -694,8 +764,11 @@
"server_banner.about_active_users": "過去30日間にこのサーバーを使用している人 (月間アクティブユーザー)",
"server_banner.active_users": "人のアクティブユーザー",
"server_banner.administered_by": "管理者",
+ "server_banner.is_one_of_many": "{domain} は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。",
"server_banner.server_stats": "サーバーの情報",
"sign_in_banner.create_account": "アカウント作成",
+ "sign_in_banner.follow_anyone": "連合内の誰でもフォローして投稿を時系列で見ることができます。アルゴリズム、広告、クリックベイトはありません。",
+ "sign_in_banner.mastodon_is": "Mastodonに参加して、世界で起きていることを見つけよう。",
"sign_in_banner.sign_in": "ログイン",
"sign_in_banner.sso_redirect": "ログインまたは登録",
"status.admin_account": "@{name}さんのモデレーション画面を開く",
@@ -713,12 +786,10 @@
"status.edit": "編集",
"status.edited": "最終更新日 {date}",
"status.edited_x_times": "{count}回編集",
- "status.embed": "埋め込み",
+ "status.embed": "埋め込みコードを取得",
"status.favourite": "お気に入り",
"status.favourites": "{count, plural, one {お気に入り} other {お気に入り}}",
"status.filter": "この投稿をフィルターする",
- "status.filtered": "フィルターされました",
- "status.hide": "投稿を非表示",
"status.history.created": "{name}さんが{date}に作成",
"status.history.edited": "{name}さんが{date}に編集",
"status.load_more": "もっと見る",
@@ -746,10 +817,7 @@
"status.report": "@{name}さんを通報",
"status.sensitive_warning": "閲覧注意",
"status.share": "共有",
- "status.show_filter_reason": "表示する",
- "status.show_less": "隠す",
"status.show_less_all": "全て隠す",
- "status.show_more": "もっと見る",
"status.show_more_all": "全て見る",
"status.show_original": "原文を表示",
"status.title.with_attachments": "{user}さんの投稿 {attachmentCount, plural, other {({attachmentCount}件のメディア)}}",
@@ -768,10 +836,6 @@
"time_remaining.minutes": "残り{number}分",
"time_remaining.moments": "まもなく終了",
"time_remaining.seconds": "残り{number}秒",
- "timeline_hint.remote_resource_not_displayed": "他のサーバーの{resource}は表示されません。",
- "timeline_hint.resources.followers": "フォロワー",
- "timeline_hint.resources.follows": "フォロー",
- "timeline_hint.resources.statuses": "以前の投稿",
"trends.counter_by_accounts": "過去{days, plural, one {{days}日} other {{days}日}}に{count, plural, one {{counter}人} other {{counter} 人}}",
"trends.trending_now": "トレンドタグ",
"ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 7af4dccd86b..fc0ed0730d7 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -1,7 +1,6 @@
{
"about.contact": "კონტაქტი:",
"about.domain_blocks.no_reason_available": "მიზეზი მიუწვდომელია",
- "account.account_note_header": "ჩანაწერი",
"account.add_or_remove_from_list": "სიებში დამატება ან წაშლა",
"account.badges.bot": "ბოტი",
"account.badges.group": "ჯგუფი",
@@ -26,7 +25,6 @@
"account.requested": "დამტკიცების მოლოდინში. დააწკაპუნეთ რომ უარყოთ დადევნების მოთხონვა",
"account.share": "გააზიარე @{name}-ის პროფილი",
"account.show_reblogs": "აჩვენე ბუსტები @{name}-სგან",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "განბლოკე @{name}",
"account.unblock_domain": "გამოაჩინე {domain}",
"account.unendorse": "არ გამოირჩეს პროფილზე",
@@ -75,7 +73,6 @@
"confirmations.delete.message": "დარწმუნებული ხართ, გსურთ გააუქმოთ ეს სტატუსი?",
"confirmations.delete_list.confirm": "გაუქმება",
"confirmations.delete_list.message": "დარწმუნებული ხართ, გსურთ სამუდამოდ გააუქმოთ ეს სია?",
- "confirmations.domain_block.message": "ნაღდად, ნაღდად, დარწმუნებული ხართ, გსურთ დაბლოკოთ მთელი {domain}? უმეტეს შემთხვევაში რამდენიმე გამიზნული ბლოკი ან გაჩუმება საკმარისი და უკეთესია. კონტენტს ამ დომენიდან ვერ იხილავთ ვერც ერთ ღია თაიმლაინზე ან თქვენს შეტყობინებებში. ამ დომენიდან არსებული მიმდევრები ამოიშლება.",
"confirmations.mute.confirm": "გაჩუმება",
"confirmations.redraft.confirm": "გაუქმება და გადანაწილება",
"confirmations.unfollow.confirm": "ნუღარ მიჰყვები",
@@ -156,7 +153,6 @@
"lists.new.title_placeholder": "ახალი სიის სათაური",
"lists.search": "ძებნა ადამიანებს შორის რომელთაც მიჰყვებით",
"lists.subheading": "თქვენი სიები",
- "media_gallery.toggle_visible": "ხილვადობის ჩართვა",
"navigation_bar.blocks": "დაბლოკილი მომხმარებლები",
"navigation_bar.community_timeline": "ლოკალური თაიმლაინი",
"navigation_bar.compose": "Compose new toot",
@@ -174,7 +170,6 @@
"navigation_bar.security": "უსაფრთხოება",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} გამოგყვათ",
- "notification.mention": "{name}-მა გასახელათ",
"notification.reblog": "{name}-მა დაბუსტა თქვენი სტატუსი",
"notifications.clear": "შეტყობინებების გასუფთავება",
"notifications.clear_confirmation": "დარწმუნებული ხართ, გსურთ სამუდამოდ წაშალოთ ყველა თქვენი შეტყობინება?",
@@ -227,8 +222,6 @@
"status.copy": "Copy link to status",
"status.delete": "წაშლა",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "ჩართვა",
- "status.filtered": "ფილტრირებული",
"status.load_more": "მეტის ჩატვირთვა",
"status.media_hidden": "მედია დამალულია",
"status.mention": "ასახელე @{name}",
@@ -248,16 +241,13 @@
"status.report": "დაარეპორტე @{name}",
"status.sensitive_warning": "მგრძნობიარე კონტენტი",
"status.share": "გაზიარება",
- "status.show_less": "აჩვენე ნაკლები",
"status.show_less_all": "აჩვენე ნაკლები ყველაზე",
- "status.show_more": "აჩვენე მეტი",
"status.show_more_all": "აჩვენე მეტი ყველაზე",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.unmute_conversation": "საუბარზე გაჩუმების მოშორება",
"status.unpin": "პროფილიდან პინის მოშორება",
"tabs_bar.home": "სახლი",
"tabs_bar.notifications": "შეტყობინებები",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"ui.beforeunload": "თქვენი დრაფტი გაუქმდება თუ დატოვებთ მასტოდონს.",
"upload_area.title": "გადმოწიეთ და ჩააგდეთ ასატვირთათ",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index 5aa46bafde4..89f68ab95fa 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -1,10 +1,15 @@
{
+ "about.blocks": "Ulac agbur",
"about.contact": "Anermis:",
"about.disclaimer": "Mastodon d aseɣẓan ilelli, d aseɣẓan n uɣbalu yeldin, d tnezzut n Mastodon gGmbH.",
+ "about.domain_blocks.no_reason_available": "Ulac taɣẓint",
+ "about.domain_blocks.preamble": "Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi.",
+ "about.domain_blocks.silenced.title": "Ɣur-s talast",
+ "about.domain_blocks.suspended.title": "Yeḥbes",
"about.not_available": "Talɣut-a ur tettwabder ara deg uqeddac-a.",
"about.powered_by": "Azeṭṭa inmetti yettwasɣelsen sɣur {mastodon}",
"about.rules": "Ilugan n uqeddac",
- "account.account_note_header": "Tazmilt",
+ "account.account_note_header": "Tamawt tudmawant",
"account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin",
"account.badges.bot": "Aṛubut",
"account.badges.group": "Agraw",
@@ -12,36 +17,38 @@
"account.block_domain": "Ffer kra i d-yekkan seg {domain}",
"account.block_short": "Sewḥel",
"account.blocked": "Yettusewḥel",
- "account.browse_more_on_origin_server": "Snirem ugar deg umeɣnu aneẓli",
"account.cancel_follow_request": "Sefsex taḍfart",
"account.copy": "Nɣel assaɣ ɣer umaɣnu",
"account.direct": "Bder-d @{name} weḥd-s",
- "account.disable_notifications": "Ḥbes ur iyi-d-ttazen ara ilɣa mi ara d-isuffeɣ @{name}",
+ "account.disable_notifications": "Ḥbes ur iyi-d-ttazen ara alɣuten mi ara d-isuffeɣ @{name}",
"account.domain_blocked": "Taɣult yeffren",
"account.edit_profile": "Ẓreg amaɣnu",
- "account.enable_notifications": "Azen-iyi-d ilɣa mi ara d-isuffeɣ @{name}",
+ "account.enable_notifications": "Azen-iyi-d alɣuten mi ara d-isuffeɣ @{name}",
"account.endorse": "Welleh fell-as deg umaɣnu-inek",
"account.featured_tags.last_status_at": "Tasuffeɣt taneggarut ass n {date}",
"account.featured_tags.last_status_never": "Ulac tisuffaɣ",
"account.follow": "Ḍfer",
+ "account.follow_back": "Ḍfer-it ula d kečč·mm",
"account.followers": "Imeḍfaren",
"account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
- "account.followers_counter": "{count, plural, one {{count} n umeḍfar} other {{count} n imeḍfaren}}",
+ "account.followers_counter": "{count, plural, one {{counter} n umḍfar} other {{counter} n yimeḍfaren}}",
"account.following": "Yeṭṭafaṛ",
"account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}",
"account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
"account.go_to_profile": "Ddu ɣer umaɣnu",
"account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
"account.joined_short": "Izeddi da seg ass n",
+ "account.languages": "Beddel tutlayin yettwajerden",
"account.link_verified_on": "Taɣara n useɣwen-a tettwasenqed ass n {date}",
"account.locked_info": "Amiḍan-agi uslig isekweṛ. D bab-is kan i izemren ad yeǧǧ, s ufus-is, win ara t-iḍefṛen.",
"account.media": "Timidyatin",
"account.mention": "Bder-d @{name}",
"account.moved_to": "{name} yenna-d dakken amiḍan-is amaynut yuɣal :",
"account.mute": "Sgugem @{name}",
- "account.mute_notifications_short": "Susem ilɣa",
+ "account.mute_notifications_short": "Susem alɣuten",
"account.mute_short": "Sgugem",
"account.muted": "Yettwasgugem",
+ "account.mutual": "Temṭafarem",
"account.no_bio": "Ulac aglam i d-yettunefken.",
"account.open_original_page": "Ldi asebter anasli",
"account.posts": "Tisuffaɣ",
@@ -58,6 +65,7 @@
"account.unendorse": "Ur ttwellih ara fell-as deg umaɣnu-inek",
"account.unfollow": "Ur ṭṭafaṛ ara",
"account.unmute": "Kkes asgugem ɣef @{name}",
+ "account.unmute_notifications_short": "Serreḥ i yilɣa",
"account.unmute_short": "Kkes asgugem",
"account_note.placeholder": "Ulac iwenniten",
"admin.dashboard.retention.cohort_size": "Iseqdacen imaynuten",
@@ -70,14 +78,17 @@
"block_modal.show_less": "Ssken-d drus",
"block_modal.show_more": "Ssken-d ugar",
"block_modal.they_cant_mention": "Ur zmiren ad k·m-id-bedren, ur zmiren ad k·m-ḍefren.",
- "block_modal.they_cant_see_posts": "Ur zmiren ad walin tisufaɣ-nwen, ur tettwalim tid-nsen.",
+ "block_modal.they_cant_see_posts": "Ur yezmir ad wali tisuffaɣ-ik·im, ur tettwaliḍ tidak-is.",
"block_modal.title": "Sewḥel aseqdac ?",
+ "block_modal.you_wont_see_mentions": "Ur tezmireḍ ara ad twaliḍ tisuffaɣ anda d-yettwabdar.",
"boost_modal.combo": "Tzemreḍ ad tsiteḍ ɣef {combo} akken ad tzegleḍ aya tikelt i d-iteddun",
+ "boost_modal.reblog": "Zuzer tasuffeɣt?",
"bundle_column_error.copy_stacktrace": "Nɣel tuccḍa n uneqqis",
"bundle_column_error.error.title": "Uh, ala !",
"bundle_column_error.network.title": "Tuccḍa deg uẓeṭṭa",
"bundle_column_error.retry": "Ɛreḍ tikelt-nniḍen",
"bundle_column_error.return": "Uɣal ɣer ugejdan",
+ "bundle_column_error.routing.body": "Asebter i d-yettwasutren ur yettwaf ara. Tetḥeqqeḍ belli tansa URL deg ufeggag n tansa tṣeḥḥa?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Mdel",
"bundle_modal_error.message": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.",
@@ -97,7 +108,7 @@
"column.home": "Agejdan",
"column.lists": "Tibdarin",
"column.mutes": "Imiḍanen yettwasgugmen",
- "column.notifications": "Tilɣa",
+ "column.notifications": "Alɣuten",
"column.pins": "Tisuffaɣ yettwasenṭḍen",
"column.public": "Tasuddemt tamatut",
"column_back_button.label": "Tuɣalin",
@@ -137,21 +148,25 @@
"confirmations.block.confirm": "Sewḥel",
"confirmations.delete.confirm": "Kkes",
"confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?",
+ "confirmations.delete.title": "Tukksa n tasuffeɣt?",
"confirmations.delete_list.confirm": "Kkes",
"confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ umuɣ-agi i lebda?",
+ "confirmations.delete_list.title": "Tukksa n tebdart?",
"confirmations.discard_edit_media.confirm": "Sefsex",
- "confirmations.domain_block.confirm": "Sewḥel aqeddac",
"confirmations.edit.confirm": "Ẓreg",
"confirmations.edit.message": "Abeddel tura ad d-yaru izen-nni i d-tegreḍ akka tura. Tetḥeqqeḍ tebɣiḍ ad tkemmleḍ?",
"confirmations.logout.confirm": "Ffeɣ",
"confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?",
+ "confirmations.logout.title": "Tebɣiḍ ad teffɣeḍ ssya?",
"confirmations.mute.confirm": "Sgugem",
- "confirmations.redraft.confirm": "Sfeḍ & Ɛiwed tira",
+ "confirmations.redraft.confirm": "Kkes sakin ɛiwed tira",
"confirmations.reply.confirm": "Err",
"confirmations.reply.message": "Tiririt akka tura ad k-degger izen-agi i tettaruḍ. Tebɣiḍ ad tkemmleḍ?",
"confirmations.unfollow.confirm": "Ur ḍḍafaṛ ara",
"confirmations.unfollow.message": "Tetḥeqqeḍ belli tebɣiḍ ur teṭafaṛeḍ ara {name}?",
- "conversation.delete": "Sfeḍ adiwenni",
+ "content_warning.hide": "Ffer tasuffeɣt",
+ "content_warning.show": "Ssken-d akken tebɣu tili",
+ "conversation.delete": "Kkes adiwenni",
"conversation.mark_as_read": "Creḍ yettwaɣṛa",
"conversation.open": "Ssken adiwenni",
"conversation.with": "Akked {names}",
@@ -169,11 +184,14 @@
"dismissable_banner.explore_tags": "D wiyi i d ihacṭagen i d-yettawin tamyigawt deg web anmetti ass-a. Ihacṭagen i sseqdacen ugar n medden, εlayit d imezwura.",
"domain_block_modal.block": "Sewḥel aqeddac",
"domain_block_modal.they_cant_follow": "Yiwen ur yezmir ad k·m-id-yeḍfer seg uqeddac-a.",
+ "domain_block_modal.they_wont_know": "Ur-d yettawi ara s lexbaṛ belli yettuseḥbes.",
+ "domain_block_modal.title": "Sewḥel taɣult?",
+ "domain_block_modal.you_wont_see_posts": "Ur tettuɣaleḍ ara ttwaliḍ tisuffaɣ neɣ ulɣuten n iseqdacen n uqeddac-a.",
"domain_pill.activitypub_like_language": "ActivityPub am tutlayt yettmeslay Mastodon d izeḍwan inmettiyen nniḍen.",
"domain_pill.server": "Aqeddac",
"domain_pill.username": "Isem n useqdac",
"domain_pill.your_server": "D axxam-inek·inem umḍin, anda i zedɣent akk tsuffaɣ-ik·im. Ur k·m-yeεǧib ara wa? Ssenfel-d iqeddacen melmi i ak·m-yehwa, awi-d daɣen ineḍfaren-ik·im yid-k·m.",
- "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.",
+ "embed.instructions": "Ẓẓu addad-agi deg usmel-inek·inem s wenɣal n tangalt yellan sdaw-agi.",
"embed.preview": "Akka ara d-iban:",
"emoji_button.activity": "Aqeddic",
"emoji_button.clear": "Sfeḍ",
@@ -203,7 +221,7 @@
"empty_column.list": "Ar tura ur yelli kra deg umuɣ-a. Ad d-yettwasken da ticki iɛeggalen n wumuɣ-a suffɣen-d kra.",
"empty_column.lists": "Ulac ɣur-k·m kra n wumuɣ yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.",
"empty_column.mutes": "Ulac ɣur-k·m imseqdacen i yettwasgugmen.",
- "empty_column.notifications": "Ulac ɣur-k·m tilɣa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.",
+ "empty_column.notifications": "Ulac ɣur-k·m alɣuten. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.",
"empty_column.public": "Ulac kra da! Aru kra, neɣ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt",
"error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Maṣṭudun deg yiminig-nniḍen neɣ deg usnas anaṣli.",
"errors.unexpected_crash.copy_stacktrace": "Nɣel stacktrace ɣef wafus",
@@ -217,6 +235,7 @@
"filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig",
"filter_modal.added.settings_link": "asebter n yiɣewwaṛen",
"filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.",
+ "filter_modal.added.title": "Yettwarna umsizdeg!",
"filter_modal.select_filter.expired": "yemmut",
"filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}",
"filter_modal.select_filter.search": "Nadi neɣ snulfu-d",
@@ -227,9 +246,12 @@
"firehose.remote": "Iqeddacen nniḍen",
"follow_request.authorize": "Ssireg",
"follow_request.reject": "Agi",
- "follow_suggestions.dismiss": "Ur ttɛawad ara ad t-id-sekneṭ",
+ "follow_suggestions.dismiss": "Dayen ur t-id-skan ara",
+ "follow_suggestions.featured_longer": "Yettwafraned s ufus sɣur agraw n {domain}",
+ "follow_suggestions.hints.featured": "Amaɣnu-a ifren-it-id wegraw n {domain} s ufus.",
+ "follow_suggestions.popular_suggestion_longer": "Yettwassen deg {domain}",
"follow_suggestions.view_all": "Wali-ten akk",
- "follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ",
+ "follow_suggestions.who_to_follow": "Ad tḍefreḍ?",
"followed_tags": "Ihacṭagen yettwaḍfaren",
"footer.about": "Ɣef",
"footer.directory": "Akaram n imeɣna",
@@ -238,6 +260,7 @@
"footer.keyboard_shortcuts": "Inegzumen n unasiw",
"footer.privacy_policy": "Tasertit tabaḍnit",
"footer.source_code": "Wali tangalt taɣbalut",
+ "footer.status": "Addad",
"generic.saved": "Yettwasekles",
"getting_started.heading": "Bdu",
"hashtag.column_header.tag_mode.all": "d {additional}",
@@ -273,8 +296,8 @@
"interaction_modal.sign_in_hint": "Ihi : Wa d asmel ideg tjerdeḍ. Ma ur tecfiḍ ara, nadi imayl n ummager deg tenkult-ik·im. Tzemreḍ daɣen ad d-tefkeḍ isem-ik·im n useqdac ummid ! (amedya @Mastodon@mastodon.social)",
"interaction_modal.title.follow": "Ḍfer {name}",
"interaction_modal.title.reply": "Tiririt i tsuffeɣt n {name}",
- "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}",
- "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}",
+ "intervals.full.days": "{number, plural, one {# wass} other {# wussan}}",
+ "intervals.full.hours": "{number, plural, one {# usarag} other {# yisragen}}",
"intervals.full.minutes": "{number, plural, one {# n tesdat} other {# n tesdatin}}",
"keyboard_shortcuts.back": "i tuɣalin ɣer deffir",
"keyboard_shortcuts.blocked": "akken ad teldiḍ umuɣ n yimseqdacen yettwasḥebsen",
@@ -295,7 +318,7 @@
"keyboard_shortcuts.mention": "akken ad d-bedreḍ ameskar",
"keyboard_shortcuts.muted": "akken ad teldiḍ tabdart n yimseqdacen yettwasgugmen",
"keyboard_shortcuts.my_profile": "akken ad d-teldiḍ amaɣnu-ik",
- "keyboard_shortcuts.notifications": "akken ad d-teldiḍ ajgu n tilɣa",
+ "keyboard_shortcuts.notifications": "akken ad d-teldiḍ ajgu n walɣuten",
"keyboard_shortcuts.open_media": "i tiɣwalin yeldin",
"keyboard_shortcuts.pinned": "akken ad teldiḍ tabdart n tjewwiqin yettwasentḍen",
"keyboard_shortcuts.profile": "akken ad d-teldiḍ amaɣnu n umeskar",
@@ -310,17 +333,18 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "i tulin ɣer d asawen n tebdart",
"lightbox.close": "Mdel",
- "lightbox.compress": "Ḥemmeẓ tamnaḍt n uskan n tugna",
- "lightbox.expand": "Simeɣer tamnaḍt n uskan n tugna",
"lightbox.next": "Ɣer zdat",
"lightbox.previous": "Ɣer deffir",
"limited_account_hint.action": "Wali amaɣnu akken yebɣu yili",
"link_preview.author": "S-ɣur {name}",
+ "link_preview.more_from_author": "Ugar sɣur {name}",
+ "link_preview.shares": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}",
"lists.account.add": "Rnu ɣer tebdart",
"lists.account.remove": "Kkes seg tebdart",
"lists.delete": "Kkes tabdart",
"lists.edit": "Ẓreg tabdart",
"lists.edit.submit": "Beddel azwel",
+ "lists.exclusive": "Ffer tisuffaɣ-a seg ugejdan",
"lists.new.create": "Rnu tabdart",
"lists.new.title_placeholder": "Azwel amaynut n tebdart",
"lists.replies_policy.followed": "Kra n useqdac i yettwaḍefren",
@@ -331,16 +355,24 @@
"lists.subheading": "Tibdarin-ik·im",
"load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}",
"loading_indicator.label": "Yessalay-d …",
- "media_gallery.toggle_visible": "{number, plural, one {Ffer tugna} other {Ffer tugniwin}}",
+ "media_gallery.hide": "Seggelmes",
+ "mute_modal.hide_from_notifications": "Ffer-it deg ulɣuten",
"mute_modal.hide_options": "Ffer tinefrunin",
+ "mute_modal.indefinite": "Alamma ssnesreɣ asgugem fell-as",
"mute_modal.show_options": "Sken-d tinefrunin",
- "mute_modal.title": "Sgugem aseqdac?",
+ "mute_modal.they_can_mention_and_follow": "Yezmer ad k·m-id-yebder, ad k·m-yeḍfer, maca ur t-tettwaliḍt ara.",
+ "mute_modal.they_wont_know": "Ur yezmir ara ad iẓer dakken tesgugmeṭ.",
+ "mute_modal.title": "Asgugem n useqdac?",
+ "mute_modal.you_wont_see_mentions": "Ur tezmireḍ ara ad twaliḍ tisuffaɣ anda d-yettwabdar.",
+ "mute_modal.you_wont_see_posts": "Yezmer ad yettwali tisuffaɣ-ik·im, maca ur tettwaliḍ ara tidak-is.",
"navigation_bar.about": "Ɣef",
+ "navigation_bar.administration": "Tadbelt",
"navigation_bar.advanced_interface": "Ldi deg ugrudem n web leqqayen",
"navigation_bar.blocks": "Iseqdacen yettusḥebsen",
"navigation_bar.bookmarks": "Ticraḍ",
"navigation_bar.community_timeline": "Tasuddemt tadigant",
"navigation_bar.compose": "Aru tajewwiqt tamaynut",
+ "navigation_bar.direct": "Tibdarin tusligin",
"navigation_bar.discover": "Ẓer",
"navigation_bar.domain_blocks": "Tiɣula yeffren",
"navigation_bar.explore": "Snirem",
@@ -360,20 +392,31 @@
"navigation_bar.search": "Nadi",
"navigation_bar.security": "Taɣellist",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
+ "notification.admin.report": "Yemla-t-id {name} {target}",
+ "notification.admin.sign_up": "Ijerred {name}",
+ "notification.favourite": "{name} yesmenyaf addad-ik·im",
"notification.follow": "iṭṭafar-ik·em-id {name}",
"notification.follow_request": "{name} yessuter-d ad k·m-yeḍfeṛ",
- "notification.mention": "{name} yebder-ik-id",
+ "notification.label.mention": "Abdar",
+ "notification.label.private_mention": "Abdar uslig",
+ "notification.label.private_reply": "Tiririt tusligt",
+ "notification.label.reply": "Tiririt",
+ "notification.mention": "Abdar",
+ "notification.moderation-warning.learn_more": "Issin ugar",
+ "notification.moderation_warning.action_suspend": "Yettwaseḥbes umiḍan-ik.",
"notification.own_poll": "Tafrant-ik·im tfuk",
- "notification.poll": "Tfukk tefrant ideg tettekkaḍ",
"notification.reblog": "{name} yebḍa tajewwiqt-ik i tikelt-nniḍen",
"notification.relationships_severance_event.learn_more": "Issin ugar",
"notification.status": "{name} akken i d-yessufeɣ",
"notification_requests.accept": "Qbel",
"notification_requests.dismiss": "Agi",
- "notification_requests.notifications_from": "Ilɣa sɣur {name}",
- "notifications.clear": "Sfeḍ tilɣa",
- "notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk tilɣa-inek·em i lebda?",
- "notifications.column_settings.alert": "Tilɣa n tnarit",
+ "notification_requests.edit_selection": "Ẓreg",
+ "notification_requests.exit_selection": "Immed",
+ "notification_requests.notifications_from": "Alɣuten sɣur {name}",
+ "notifications.clear": "Sfeḍ alɣuten",
+ "notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk alɣuten-inek·em i lebda?",
+ "notifications.column_settings.admin.report": "Ineqqisen imaynuten:",
+ "notifications.column_settings.alert": "Alɣuten n tnarit",
"notifications.column_settings.favourite": "Imenyafen:",
"notifications.column_settings.filter_bar.advanced": "Sken-d akk taggayin",
"notifications.column_settings.filter_bar.category": "Iri n usizdeg uzrib",
@@ -381,12 +424,13 @@
"notifications.column_settings.follow_request": "Isuturen imaynuten n teḍfeṛt:",
"notifications.column_settings.mention": "Abdar:",
"notifications.column_settings.poll": "Igemmaḍ n usenqed:",
- "notifications.column_settings.push": "Tilɣa yettudemmren",
+ "notifications.column_settings.push": "Alɣuten yettudemmren",
"notifications.column_settings.reblog": "Seǧhed:",
"notifications.column_settings.show": "Ssken-d tilɣa deg ujgu",
"notifications.column_settings.sound": "Rmed imesli",
"notifications.column_settings.status": "Tisuffaɣ timaynutin :",
- "notifications.column_settings.unread_notifications.category": "Ilɣa ur nettwaɣra",
+ "notifications.column_settings.unread_notifications.category": "Alɣuten ur nettwaɣra",
+ "notifications.column_settings.update": "Iẓreg:",
"notifications.filter.all": "Akk",
"notifications.filter.boosts": "Seǧhed",
"notifications.filter.favourites": "Imenyafen",
@@ -395,18 +439,18 @@
"notifications.filter.polls": "Igemmaḍ n usenqed",
"notifications.filter.statuses": "Ileqman n yimdanen i teṭṭafareḍ",
"notifications.grant_permission": "Mudd tasiregt.",
- "notifications.group": "{count} n tilɣa",
- "notifications.mark_as_read": "Creḍ meṛṛa iilɣa am wakken ttwaɣran",
- "notifications.permission_denied": "D awezɣi ad yili wermad n yilɣa n tnarit axateṛ turagt tettwagdel.",
+ "notifications.group": "{count} n walɣuten",
+ "notifications.mark_as_read": "Creḍ meṛṛa alɣuten am wakken ttwaɣran",
+ "notifications.permission_denied": "D awezɣi ad yili wermad n walɣuten n tnarit axateṛ turagt tettwagdel",
+ "notifications.policy.drop": "Anef-as",
"notifications.policy.filter_new_accounts.hint": "Imiḍanen imaynuten i d-yennulfan deg {days, plural, one {yiwen n wass} other {# n wussan}} yezrin",
"notifications.policy.filter_new_accounts_title": "Imiḍan imaynuten",
- "notifications.policy.filter_not_followers_hint": "Ula d wid akked tid i k·m-id-iḍefren, ur wwiḍen ara {days, plural, one {yiwen n wass} other {# n wussan}}",
+ "notifications.policy.filter_not_followers_hint": "Ula d wid akked tid i k·m-id-iḍefren, ur wwiḍen ara {days, plural, one {yiwen wass} other {# wussan}}",
"notifications.policy.filter_not_followers_title": "Wid akked tid ur k·m-id-yeṭṭafaren ara",
"notifications.policy.filter_not_following_hint": "Alamma tqebleḍ-ten s ufus",
"notifications.policy.filter_not_following_title": "Wid akked tid ur tettḍafareḍ ara",
"notifications.policy.filter_private_mentions_title": "Abdar uslig ur yettwasferken ara",
- "notifications.policy.title": "Sizdeg ilɣa sɣur …",
- "notifications_permission_banner.enable": "Rmed talɣutin n tnarit",
+ "notifications_permission_banner.enable": "Rmed alɣuten n tnarit",
"notifications_permission_banner.title": "Ur zeggel acemma",
"onboarding.action.back": "Tuɣalin ɣer deffir",
"onboarding.actions.back": "Tuɣalin ɣer deffir",
@@ -416,6 +460,7 @@
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Ttwassnen deg Mastodon",
"onboarding.profile.display_name": "Isem ara d-yettwaskanen",
+ "onboarding.profile.display_name_hint": "Isem-ik·im ummid neɣ isem-ik·im n uqeṣṣer…",
"onboarding.profile.note": "Tameddurt",
"onboarding.profile.note_hint": "Tzemreḍ ad d-@tbedreḍ imdanen niḍen neɣ #ihacṭagen …",
"onboarding.profile.save_and_continue": "Sekles, tkemmleḍ",
@@ -444,6 +489,7 @@
"poll.total_votes": "{count, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}",
"poll.vote": "Dɣeṛ",
"poll.voted": "Tdeɣṛeḍ ɣef tririt-ayi",
+ "poll.votes": "{votes, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}",
"poll_button.add_poll": "Rnu asenqed",
"poll_button.remove_poll": "Kkes asenqed",
"privacy.change": "Seggem tabaḍnit n yizen",
@@ -453,7 +499,7 @@
"privacy.private.short": "Imeḍfaren",
"privacy.public.long": "Kra n win yellan deg Masṭudun neɣ berra-s",
"privacy.public.short": "Azayez",
- "privacy.unlisted.long": "Kra kan n ilguritmen",
+ "privacy.unlisted.long": "Kra kan yiwarzimen",
"privacy_policy.last_updated": "Aleqqem aneggaru {date}",
"privacy_policy.title": "Tasertit tabaḍnit",
"recommended": "Yettuwelleh",
@@ -468,9 +514,13 @@
"relative_time.seconds": "{number}tas",
"relative_time.today": "assa",
"reply_indicator.cancel": "Sefsex",
+ "reply_indicator.poll": "Afmiḍi",
"report.block": "Sewḥel",
+ "report.categories.legal": "Azerfan",
"report.categories.other": "Tiyyaḍ",
"report.categories.spam": "Aspam",
+ "report.category.subtitle": "Fren amṣada akk ufrin",
+ "report.category.title": "Ini-aɣ-d d acu i yuɣen {type}-a",
"report.category.title_account": "ameɣnu",
"report.category.title_status": "tasuffeɣt",
"report.close": "Immed",
@@ -479,15 +529,28 @@
"report.next": "Uḍfiṛ",
"report.placeholder": "Iwenniten-nniḍen",
"report.reasons.dislike": "Ur t-ḥemmleɣ ara",
+ "report.reasons.dislike_description": "D ayen akk ur bɣiɣ ara ad waliɣ",
"report.reasons.other": "D ayen nniḍen",
+ "report.reasons.other_description": "Ugur ur yemṣada ara akk d taggayin-nniḍen",
"report.reasons.spam": "D aspam",
+ "report.reasons.spam_description": "Yir iseɣwan, yir agman d tririyin i d-yettuɣalen",
+ "report.reasons.violation": "Truẓi n yilugan n uqeddac",
+ "report.reasons.violation_description": "Teẓriḍ y·tettruẓu kra n yilugan",
+ "report.rules.subtitle": "Fren ayen akk yemṣadan",
+ "report.rules.title": "Acu n yilugan i yettwarẓan?",
+ "report.statuses.subtitle": "Fren ayen akk yemṣadan",
+ "report.statuses.title": "Llant tsuffaɣ ara isdemren aneqqis-a?",
"report.submit": "Azen",
"report.target": "Mmel {target}",
+ "report.thanks.take_action_actionable": "Ideg nekkni nessenqad tuttra-inek•inem, tzemreḍ ad tḥadreḍ mgal @{name}:",
"report.thanks.title": "Ur tebɣiḍ ara ad twaliḍ aya?",
+ "report.thanks.title_actionable": "Tanemmirt ɣef uneqqis, ad nwali deg waya.",
"report.unfollow": "Seḥbes aḍfar n @{name}",
- "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
+ "report_notification.attached_statuses": "{count, plural, one {{count} n tsuffeɣt} other {{count} n tsuffiɣin}} ttwaqnent",
+ "report_notification.categories.legal": "Azerfan",
"report_notification.categories.other": "Ayen nniḍen",
"report_notification.categories.spam": "Aspam",
+ "report_notification.categories.spam_sentence": "aspam",
"report_notification.open": "Ldi aneqqis",
"search.no_recent_searches": "Ulac inadiyen ineggura",
"search.placeholder": "Nadi",
@@ -500,6 +563,7 @@
"search_popout.full_text_search_disabled_message": "Ur yelli ara deg {domain}.",
"search_popout.language_code": "Tangalt ISO n tutlayt",
"search_popout.options": "Iwellihen n unadi",
+ "search_popout.quick_actions": "Tigawin tiruradin",
"search_popout.recent": "Inadiyen ineggura",
"search_popout.user": "amseqdac",
"search_results.accounts": "Imeɣna",
@@ -508,7 +572,9 @@
"search_results.see_all": "Wali-ten akk",
"search_results.statuses": "Tisuffaɣ",
"search_results.title": "Anadi ɣef {q}",
+ "server_banner.active_users": "iseqdacen urmiden",
"server_banner.administered_by": "Yettwadbel sɣur :",
+ "server_banner.server_stats": "Tidaddanin n uqeddac:",
"sign_in_banner.create_account": "Snulfu-d amiḍan",
"sign_in_banner.sign_in": "Qqen",
"sign_in_banner.sso_redirect": "Qqen neɣ jerred",
@@ -519,13 +585,19 @@
"status.cannot_reblog": "Tasuffeɣt-a ur tezmir ara ad tettwabḍu tikelt-nniḍen",
"status.copy": "Nɣel assaɣ ɣer tasuffeɣt",
"status.delete": "Kkes",
+ "status.direct": "Bder-d @{name} weḥd-s",
+ "status.direct_indicator": "Abdar uslig",
"status.edit": "Ẓreg",
"status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}",
- "status.embed": "Seddu",
+ "status.embed": "Awi-d tangalt n weslaɣ",
+ "status.favourite": "Amenyaf",
+ "status.favourites": "{count, plural, one {n usmenyaf} other {n ismenyafen}}",
"status.filter": "Sizdeg tassufeɣt-a",
- "status.filtered": "Yettwasizdeg",
- "status.hide": "Ffer tasuffeɣt",
+ "status.history.created": "Yerna-t {name} {date}",
+ "status.history.edited": "Ibeddel-it {name} {date}",
"status.load_more": "Sali ugar",
+ "status.media.open": "Sit i ulday",
+ "status.media.show": "Sit i uskan",
"status.media_hidden": "Amidya yettwaffer",
"status.mention": "Bder-d @{name}",
"status.more": "Ugar",
@@ -533,10 +605,11 @@
"status.mute_conversation": "Sgugem adiwenni",
"status.open": "Semɣeṛ tasuffeɣt-ayi",
"status.pin": "Senteḍ-itt deg umaɣnu",
- "status.pinned": "Tijewwiqin yettwasentḍen",
+ "status.pinned": "Tisuffaɣ yettwasentḍen",
"status.read_more": "Issin ugar",
"status.reblog": "Bḍu",
"status.reblogged_by": "Yebḍa-tt {name}",
+ "status.reblogs": "{count, plural, one {n usnerni} other {n yisnernuyen}}",
"status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
"status.redraft": "Kkes tɛiwdeḍ tira",
"status.remove_bookmark": "Kkes tacreḍt",
@@ -546,11 +619,9 @@
"status.report": "Cetki ɣef @{name}",
"status.sensitive_warning": "Agbur amḥulfu",
"status.share": "Bḍu",
- "status.show_filter_reason": "Ssken-d akken yebɣu yili",
- "status.show_less": "Ssken-d drus",
"status.show_less_all": "Semẓi akk tisuffɣin",
- "status.show_more": "Ssken-d ugar",
"status.show_more_all": "Ẓerr ugar lebda",
+ "status.show_original": "Sken aɣbalu",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.translate": "Suqel",
"status.translated_from_with": "Yettwasuqel seg {lang} s {provider}",
@@ -558,17 +629,13 @@
"status.unpin": "Kkes asenteḍ seg umaɣnu",
"subscribed_languages.save": "Sekles ibeddilen",
"tabs_bar.home": "Agejdan",
- "tabs_bar.notifications": "Tilɣa",
- "time_remaining.days": "Mazal {number, plural, one {# n wass} other {# n wussan}}",
- "time_remaining.hours": "Mazal {number, plural, one {# n usrag} other {# n yesragen}}",
+ "tabs_bar.notifications": "Alɣuten",
+ "time_remaining.days": "Mazal {number, plural, one {# wass} other {# wussan}}",
+ "time_remaining.hours": "Mazal {number, plural, one {# usarag} other {# yisragen}}",
"time_remaining.minutes": "Mazal {number, plural, one {# n tesdat} other {# n tesdatin}}",
"time_remaining.moments": "Akuden i d-yeqqimen",
"time_remaining.seconds": "Mazal {number, plural, one {# n tasint} other {# n tsinin}} id yugran",
- "timeline_hint.remote_resource_not_displayed": "{resource} seg yiqeddacen-nniḍen ur d-ttwaskanent ara.",
- "timeline_hint.resources.followers": "Imeḍfaṛen",
- "timeline_hint.resources.follows": "T·Yeṭafaṛ",
- "timeline_hint.resources.statuses": "Tisuffaɣ tiqdimin",
- "trends.counter_by_accounts": "{count, plural, one {{counter} n wemdan} other {{counter} n medden}} deg {days, plural, one {ass} other {{days} n wussan}} iɛeddan",
+ "trends.counter_by_accounts": "{count, plural, one {{counter} wemdan} other {{counter} medden}} deg {days, plural, one {ass} other {{days} wussan}} iɛeddan",
"trends.trending_now": "Ayen mucaɛen tura",
"ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.",
"units.short.billion": "{count}B",
@@ -585,6 +652,7 @@
"upload_form.video_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt neɣ deg yiẓri",
"upload_modal.analyzing_picture": "Tasleḍt n tugna tetteddu…",
"upload_modal.apply": "Snes",
+ "upload_modal.applying": "Asnas…",
"upload_modal.choose_image": "Fren tugna",
"upload_modal.description_placeholder": "Aberraɣ arurad ineggez nnig n uqjun amuṭṭis",
"upload_modal.detect_text": "Sefru-d aḍris seg tugna",
@@ -592,6 +660,7 @@
"upload_modal.preparing_ocr": "Aheyyi n OCR…",
"upload_modal.preview_label": "Taskant ({ratio})",
"upload_progress.label": "Asali iteddu...",
+ "upload_progress.processing": "Asesfer…",
"username.taken": "Yettwaṭṭef yisem-a n useqdac. Ɛreḍ wayeḍ",
"video.close": "Mdel tabidyutt",
"video.download": "Sidered afaylu",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index bd0a806cdb9..f146fc652d5 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -11,7 +11,6 @@
"about.not_available": "Бұл ақпарат бұл серверде қолжетімді емес.",
"about.powered_by": "{mastodon} негізіндегі орталықсыз әлеуметтік желі",
"about.rules": "Сервер ережелері",
- "account.account_note_header": "Жазба",
"account.add_or_remove_from_list": "Тізімге қосу немесе жою",
"account.badges.bot": "Бот",
"account.badges.group": "Топ",
@@ -19,7 +18,6 @@
"account.block_domain": "{domain} доменін бұғаттау",
"account.block_short": "Бұғаттау",
"account.blocked": "Бұғатталған",
- "account.browse_more_on_origin_server": "Бастапқы профильден шолу",
"account.cancel_follow_request": "Withdraw follow request",
"account.disable_notifications": "@{name} постары туралы ескертпеу",
"account.domain_blocked": "Домен бұғатталған",
@@ -31,9 +29,7 @@
"account.follow": "Жазылу",
"account.followers": "Жазылушы",
"account.followers.empty": "Бұл қолданушыға әлі ешкім жазылмаған.",
- "account.followers_counter": "{count, plural, one {{counter} жазылушы} other {{counter} жазылушы}}",
"account.following": "Жазылым",
- "account.following_counter": "{count, plural, one {{counter} жазылым} other {{counter} жазылым}}",
"account.follows.empty": "Бұл қолданушы әлі ешкімге жазылмаған.",
"account.go_to_profile": "Профиліне өту",
"account.hide_reblogs": "@{name} бустарын жасыру",
@@ -52,7 +48,6 @@
"account.requested": "Растауын күтіңіз. Жазылудан бас тарту үшін басыңыз",
"account.share": "@{name} профилін бөлісу\"",
"account.show_reblogs": "@{name} бөліскендерін көрсету",
- "account.statuses_counter": "{count, plural, one {{counter} Пост} other {{counter} Пост}}",
"account.unblock": "Бұғаттан шығару @{name}",
"account.unblock_domain": "Бұғаттан шығару {domain}",
"account.unendorse": "Профильде рекомендемеу",
@@ -110,7 +105,6 @@
"confirmations.delete.message": "Бұл жазбаны өшіресіз бе?",
"confirmations.delete_list.confirm": "Өшіру",
"confirmations.delete_list.message": "Бұл тізімді жоясыз ба шынымен?",
- "confirmations.domain_block.message": "Бұл домендегі {domain} жазбаларды шынымен бұғаттайсыз ба? Кейде үнсіз қылып тастау да жеткілікті.",
"confirmations.logout.confirm": "Шығу",
"confirmations.logout.message": "Шығатыныңызға сенімдісіз бе?",
"confirmations.mute.confirm": "Үнсіз қылу",
@@ -228,7 +222,6 @@
"lists.search": "Сіз іздеген адамдар арасында іздеу",
"lists.subheading": "Тізімдеріңіз",
"load_pending": "{count, plural, one {# жаңа нәрсе} other {# жаңа нәрсе}}",
- "media_gallery.toggle_visible": "Көрінуді қосу",
"navigation_bar.blocks": "Бұғатталғандар",
"navigation_bar.bookmarks": "Бетбелгілер",
"navigation_bar.community_timeline": "Жергілікті желі",
@@ -249,9 +242,7 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} сізге жазылды",
"notification.follow_request": "{name} сізге жазылғысы келеді",
- "notification.mention": "{name} сізді атап өтті",
"notification.own_poll": "Сауалнама аяқталды",
- "notification.poll": "Бұл сауалнаманың мерзімі аяқталыпты",
"notification.reblog": "{name} жазбаңызды бөлісті",
"notifications.clear": "Ескертпелерді тазарт",
"notifications.clear_confirmation": "Шынымен барлық ескертпелерді өшіресіз бе?",
@@ -324,8 +315,6 @@
"status.delete": "Өшіру",
"status.detailed_status": "Толық пікірталас көрінісі",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "Embеd",
- "status.filtered": "Фильтрленген",
"status.load_more": "Тағы әкел",
"status.media_hidden": "Жабық медиа",
"status.mention": "Аталым @{name}",
@@ -347,9 +336,7 @@
"status.report": "Шағым @{name}",
"status.sensitive_warning": "Нәзік контент",
"status.share": "Бөлісу",
- "status.show_less": "Аздап көрсет",
"status.show_less_all": "Бәрін аздап көрсет",
- "status.show_more": "Толығырақ",
"status.show_more_all": "Бәрін толығымен",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.unmute_conversation": "Пікірталасты үнсіз қылмау",
@@ -361,10 +348,6 @@
"time_remaining.minutes": "{number, plural, one {# минут} other {# минут}}",
"time_remaining.moments": "Қалған уақыт",
"time_remaining.seconds": "{number, plural, one {# секунд} other {# секунд}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} басқа серверлерде көрсетілмейді.",
- "timeline_hint.resources.followers": "Оқырман",
- "timeline_hint.resources.follows": "Жазылым",
- "timeline_hint.resources.statuses": "Ескі посттары",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Тренд тақырыптар",
"ui.beforeunload": "Mastodon желісінен шықсаңыз, нобайыңыз сақталмайды.",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index ceb0f8b9b61..941857e25f8 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -4,7 +4,6 @@
"about.disclaimer": "ಮಾಸ್ಟೋಡಾನ್ ಇದು ಉಚಿತ, ಮುಕ್ತ ತಂತ್ರಾಂಶ ಮತ್ತು Mastodon gGmbH ಇದರ ನೊಂದಾಯಿತ ಗುರುತು.",
"about.domain_blocks.no_reason_available": "ಕಾರಣ ಲಭ್ಯವಿಲ್ಲ",
"about.domain_blocks.preamble": "ಸಾಮಾನ್ಯವಾಗಿ ಮಾಸ್ಟೊಡಾನ್ ನಿಮಗೆ ಇತರೆ ಬಳಕೆದಾರರಿಂದ ಹಂಚಲ್ಪಟ್ಟ ವಿಷಯಗಳನ್ನು ನೋಡಲು ಮತ್ತು ಅವರೊಂದಿಗೆ ಸಂಭಾಷಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.\nಆದರೆ ಈ ಸರ್ವ್ರರ್ನಲ್ಲಿ ಅಳವಡಿಸಲಾದ ಕೆಲವು ವಿನಾಯಿತಿಗಳು ಇಂತಿವೆ.",
- "account.account_note_header": "ಟಿಪ್ಪಣಿ",
"account.add_or_remove_from_list": "ಪಟ್ಟಿಗೆ ಸೇರಿಸು ಅಥವ ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕು",
"account.badges.bot": "Bot",
"account.badges.group": "ಗುಂಪು",
@@ -16,7 +15,6 @@
"account.posts": "ಟೂಟ್ಗಳು",
"account.posts_with_replies": "Toots and replies",
"account.requested": "Awaiting approval",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock_domain": "Unhide {domain}",
"account_note.placeholder": "Click to add a note",
"alert.unexpected.title": "ಅಯ್ಯೋ!",
@@ -103,7 +101,6 @@
"status.pinned": "Pinned toot",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index c4c084d98ee..af1599572bf 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -11,7 +11,7 @@
"about.not_available": "이 정보는 이 서버에서 사용할 수 없습니다.",
"about.powered_by": "{mastodon}으로 구동되는 분산 소셜 미디어",
"about.rules": "서버 규칙",
- "account.account_note_header": "노트",
+ "account.account_note_header": "개인 메모",
"account.add_or_remove_from_list": "리스트에 추가 혹은 삭제",
"account.badges.bot": "자동화됨",
"account.badges.group": "그룹",
@@ -19,7 +19,6 @@
"account.block_domain": "{domain} 도메인 차단",
"account.block_short": "차단",
"account.blocked": "차단함",
- "account.browse_more_on_origin_server": "원본 프로필에서 더 탐색하기",
"account.cancel_follow_request": "팔로우 취소",
"account.copy": "프로필 링크 복사",
"account.direct": "@{name} 님에게 개인적으로 멘션",
@@ -35,9 +34,9 @@
"account.follow_back": "맞팔로우 하기",
"account.followers": "팔로워",
"account.followers.empty": "아직 아무도 이 사용자를 팔로우하고 있지 않습니다.",
- "account.followers_counter": "{counter} 팔로워",
+ "account.followers_counter": "{count, plural, other {팔로워 {counter}명}}",
"account.following": "팔로잉",
- "account.following_counter": "{counter} 팔로잉",
+ "account.following_counter": "{count, plural, other {팔로잉 {counter}명}}",
"account.follows.empty": "이 사용자는 아직 아무도 팔로우하고 있지 않습니다.",
"account.go_to_profile": "프로필로 이동",
"account.hide_reblogs": "@{name}의 부스트를 숨기기",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} 님이 팔로우 요청을 보냈습니다",
"account.share": "@{name}의 프로필 공유",
"account.show_reblogs": "@{name}의 부스트 보기",
- "account.statuses_counter": "{counter} 게시물",
+ "account.statuses_counter": "{count, plural, other {게시물 {counter}개}}",
"account.unblock": "차단 해제",
"account.unblock_domain": "도메인 {domain} 차단 해제",
"account.unblock_short": "차단 해제",
@@ -98,6 +97,8 @@
"block_modal.title": "사용자를 차단할까요?",
"block_modal.you_wont_see_mentions": "그를 멘션하는 게시물을 더는 보지 않습니다.",
"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": "으악, 안돼!",
@@ -155,7 +156,7 @@
"compose_form.placeholder": "지금 무슨 생각을 하고 있나요?",
"compose_form.poll.duration": "투표 기간",
"compose_form.poll.multiple": "다중 선택",
- "compose_form.poll.option_placeholder": "{option}번째 항목",
+ "compose_form.poll.option_placeholder": "{number}번째 옵션",
"compose_form.poll.single": "단일 선택",
"compose_form.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경",
"compose_form.poll.switch_to_single": "단일 선택 투표로 변경",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "내용 경고 (선택사항)",
"confirmation_modal.cancel": "취소",
"confirmations.block.confirm": "차단",
- "confirmations.cancel_follow_request.confirm": "요청 삭제",
- "confirmations.cancel_follow_request.message": "정말 {name}님에 대한 팔로우 요청을 취소하시겠습니까?",
"confirmations.delete.confirm": "삭제",
"confirmations.delete.message": "정말로 이 게시물을 삭제하시겠습니까?",
+ "confirmations.delete.title": "게시물을 삭제할까요?",
"confirmations.delete_list.confirm": "삭제",
"confirmations.delete_list.message": "정말로 이 리스트를 영구적으로 삭제하시겠습니까?",
+ "confirmations.delete_list.title": "리스트를 삭제할까요?",
"confirmations.discard_edit_media.confirm": "저장 안함",
"confirmations.discard_edit_media.message": "미디어 설명이나 미리보기에 대한 저장하지 않은 변경사항이 있습니다. 버리시겠습니까?",
- "confirmations.domain_block.confirm": "서버 차단",
- "confirmations.domain_block.message": "정말로 {domain} 전체를 차단하시겠습니까? 대부분의 경우 개별 차단이나 뮤트로 충분합니다. 모든 공개 타임라인과 알림에서 해당 도메인에서 작성된 콘텐츠를 보지 못합니다. 해당 도메인에 속한 팔로워와의 관계가 사라집니다.",
"confirmations.edit.confirm": "수정",
"confirmations.edit.message": "지금 편집하면 작성 중인 메시지를 덮어씁니다. 진행이 확실한가요?",
+ "confirmations.edit.title": "게시물을 덮어쓸까요?",
"confirmations.logout.confirm": "로그아웃",
"confirmations.logout.message": "정말로 로그아웃 하시겠습니까?",
+ "confirmations.logout.title": "로그아웃 할까요?",
"confirmations.mute.confirm": "뮤트",
"confirmations.redraft.confirm": "삭제하고 다시 쓰기",
"confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.",
+ "confirmations.redraft.title": "삭제하고 다시 작성할까요?",
"confirmations.reply.confirm": "답글",
"confirmations.reply.message": "지금 답장하면 작성 중인 메시지를 덮어쓰게 됩니다. 정말 진행합니까?",
+ "confirmations.reply.title": "게시물을 덮어쓸까요?",
"confirmations.unfollow.confirm": "팔로우 해제",
"confirmations.unfollow.message": "정말로 {name} 님을 팔로우 해제하시겠습니까?",
+ "confirmations.unfollow.title": "사용자를 언팔로우 할까요?",
+ "content_warning.hide": "게시물 숨기기",
+ "content_warning.show": "무시하고 보기",
"conversation.delete": "대화 삭제",
"conversation.mark_as_read": "읽은 상태로 표시",
"conversation.open": "대화 보기",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "기존의 카테고리를 사용하거나 새로 하나를 만듧니다",
"filter_modal.select_filter.title": "이 게시물을 필터",
"filter_modal.title.status": "게시물 필터",
- "filtered_notifications_banner.mentions": "{count, plural, other {멘션}}",
- "filtered_notifications_banner.pending_requests": "알 수도 있는 {count, plural, =0 {0 명} one {한 명} other {# 명}}의 사람들로부터의 알림",
+ "filter_warning.matches_filter": "\"{title}\" 필터에 걸림",
+ "filtered_notifications_banner.pending_requests": "알 수도 있는 {count, plural, =0 {0 명} one {한 명} other {# 명}}의 사람들로부터",
"filtered_notifications_banner.title": "걸러진 알림",
"firehose.all": "모두",
"firehose.local": "이 서버",
@@ -341,12 +347,20 @@
"hashtag.column_settings.tag_mode.any": "어느것이든",
"hashtag.column_settings.tag_mode.none": "이것들을 제외하고",
"hashtag.column_settings.tag_toggle": "추가 해시태그를 이 컬럼에 추가합니다",
- "hashtag.counter_by_accounts": "{count, plural, other {{counter} 명의 참여자}}",
- "hashtag.counter_by_uses": "{count, plural, other {{counter} 개의 게시물}}",
- "hashtag.counter_by_uses_today": "오늘 {count, plural, other {{counter} 개의 게시물}}",
- "hashtag.follow": "팔로우",
- "hashtag.unfollow": "팔로우 해제",
- "hashtags.and_other": "…그리고 {count, plural,other {#개 더}}",
+ "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": "해시태그 팔로우 해제",
+ "hashtags.and_other": "…및 {count, plural,other {#개}}",
+ "hints.profiles.followers_may_be_missing": "이 프로필의 팔로워 목록은 일부 누락되었을 수 있습니다.",
+ "hints.profiles.follows_may_be_missing": "이 프로필의 팔로우 목록은 일부 누락되었을 수 있습니다.",
+ "hints.profiles.posts_may_be_missing": "이 프로필의 게시물은 일부 누락되었을 수 있습니다.",
+ "hints.profiles.see_more_followers": "{domain}에서 더 많은 팔로워 보기",
+ "hints.profiles.see_more_follows": "{domain}에서 더 많은 팔로우 보기",
+ "hints.profiles.see_more_posts": "{domain}에서 더 많은 게시물 보기",
+ "hints.threads.replies_may_be_missing": "다른 서버의 답글은 일부 누락되었을 수 있습니다.",
+ "hints.threads.see_more": "{domain}에서 더 많은 답글 보기",
"home.column_settings.show_reblogs": "부스트 표시",
"home.column_settings.show_replies": "답글 표시",
"home.hide_announcements": "공지사항 숨기기",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "업데이트 보기",
"home.pending_critical_update.title": "긴급 보안 업데이트가 있습니다!",
"home.show_announcements": "공지사항 보기",
+ "ignore_notifications_modal.disclaimer": "마스토돈은 당신이 그들의 알림을 무시했다는 걸 알려줄 수 없습니다. 알림을 무시한다고 해서 메시지가 오지 않는 것은 아닙니다.",
+ "ignore_notifications_modal.filter_instead": "대신 필터로 거르기",
+ "ignore_notifications_modal.filter_to_act_users": "여전히 사용자를 수락, 거절, 신고할 수 있습니다",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "필터링은 혼란을 예방하는데 도움이 될 수 있습니다",
+ "ignore_notifications_modal.filter_to_review_separately": "걸러진 알림들을 개별적으로 검토할 수 있습니다",
+ "ignore_notifications_modal.ignore": "알림 무시",
+ "ignore_notifications_modal.limited_accounts_title": "중재된 계정의 알림을 무시할까요?",
+ "ignore_notifications_modal.new_accounts_title": "새 계정의 알림을 무시할까요?",
+ "ignore_notifications_modal.not_followers_title": "나를 팔로우하지 않는 사람들의 알림을 무시할까요?",
+ "ignore_notifications_modal.not_following_title": "내가 팔로우하지 않는 사람들의 알림을 무시할까요?",
+ "ignore_notifications_modal.private_mentions_title": "요청하지 않은 개인 멘션 알림을 무시할까요?",
"interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 좋아하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.",
"interaction_modal.description.follow": "마스토돈 계정을 통해, {name} 님을 팔로우 하고 그의 게시물을 홈 피드에서 받아 볼 수 있습니다.",
"interaction_modal.description.reblog": "마스토돈 계정을 통해, 이 게시물을 부스트 하고 자신의 팔로워들에게 공유할 수 있습니다.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "작성창에서 포커스 해제",
"keyboard_shortcuts.up": "리스트에서 위로 이동",
"lightbox.close": "닫기",
- "lightbox.compress": "이미지 박스 압축",
- "lightbox.expand": "이미지 박스 확장",
"lightbox.next": "다음",
"lightbox.previous": "이전",
+ "lightbox.zoom_in": "실제 크기에 맞춰 보기",
+ "lightbox.zoom_out": "화면 크기에 맞춰 보기",
"limited_account_hint.action": "그래도 프로필 보기",
"limited_account_hint.title": "이 프로필은 {domain}의 중재자에 의해 숨겨진 상태입니다.",
"link_preview.author": "{name}",
@@ -430,20 +455,21 @@
"lists.replies_policy.title": "답글 표시:",
"lists.search": "팔로우 중인 사람들 중에서 찾기",
"lists.subheading": "리스트",
- "load_pending": "{count}개의 새 항목",
+ "load_pending": "{count, plural, other {#}} 개의 새 항목",
"loading_indicator.label": "불러오는 중...",
- "media_gallery.toggle_visible": "이미지 숨기기",
+ "media_gallery.hide": "숨기기",
"moved_to_account_banner.text": "당신의 계정 {disabledAccount}는 {movedToAccount}로 이동하였기 때문에 현재 비활성화 상태입니다.",
"mute_modal.hide_from_notifications": "알림에서 숨기기",
"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.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": "고급 웹 인터페이스에서 열기",
"navigation_bar.blocks": "차단한 사용자",
"navigation_bar.bookmarks": "북마크",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "팔로우와 팔로워",
"navigation_bar.lists": "리스트",
"navigation_bar.logout": "로그아웃",
+ "navigation_bar.moderation": "중재",
"navigation_bar.mutes": "뮤트한 사용자",
"navigation_bar.opened_in_classic_interface": "게시물, 계정, 기타 특정 페이지들은 기본적으로 기존 웹 인터페이스로 열리게 됩니다.",
"navigation_bar.personal": "개인용",
@@ -470,11 +497,23 @@
"navigation_bar.security": "보안",
"not_signed_in_indicator.not_signed_in": "이 정보에 접근하려면 로그인을 해야 합니다.",
"notification.admin.report": "{name} 님이 {target}를 신고했습니다",
+ "notification.admin.report_account": "{name} 님이 {target}의 게시물 {count, plural, other {# 개}}를 {category}로 신고했습니다",
+ "notification.admin.report_account_other": "{name} 님이 {target}의 게시물 {count, plural, other {# 개}}를 신고했습니다",
+ "notification.admin.report_statuses": "{name} 님이 {target}을 {category}로 신고했습니다",
+ "notification.admin.report_statuses_other": "{name} 님이 {target}을 신고했습니다",
"notification.admin.sign_up": "{name} 님이 가입했습니다",
+ "notification.admin.sign_up.name_and_others": "{name} 외 {count, plural, other {# 명}}이 가입했습니다",
"notification.favourite": "{name} 님이 내 게시물을 좋아합니다",
+ "notification.favourite.name_and_others_with_link": "{name} 외 {count, plural, other {# 명}}이 내 게시물을 좋아합니다",
"notification.follow": "{name} 님이 나를 팔로우했습니다",
+ "notification.follow.name_and_others": "{name} 외 {count, plural, other {# 명}}이 날 팔로우 했습니다",
"notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다",
- "notification.mention": "{name} 님의 멘션",
+ "notification.follow_request.name_and_others": "{name} 외 {count, plural, other {# 명}}이 나에게 팔로우 요청을 보냈습니다",
+ "notification.label.mention": "멘션",
+ "notification.label.private_mention": "개인 멘션",
+ "notification.label.private_reply": "개인 답글",
+ "notification.label.reply": "답글",
+ "notification.mention": "멘션",
"notification.moderation-warning.learn_more": "더 알아보기",
"notification.moderation_warning": "중재 경고를 받았습니다",
"notification.moderation_warning.action_delete_statuses": "게시물 몇 개가 삭제되었습니다.",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "계정이 제한되었습니다.",
"notification.moderation_warning.action_suspend": "계정이 정지되었습니다.",
"notification.own_poll": "설문을 마침",
- "notification.poll": "참여한 설문이 종료됨",
+ "notification.poll": "참여한 투표가 끝났습니다",
"notification.reblog": "{name} 님이 부스트했습니다",
+ "notification.reblog.name_and_others_with_link": "{name} 외 {count, plural, other {# 명}}이 내 게시물을 부스트했습니다",
"notification.relationships_severance_event": "{name} 님과의 연결이 끊어졌습니다",
"notification.relationships_severance_event.account_suspension": "{from}의 관리자가 {target}를 정지시켰기 때문에 그들과 더이상 상호작용 할 수 없고 정보를 받아볼 수 없습니다.",
"notification.relationships_severance_event.domain_block": "{from}의 관리자가 {target}를 차단하였고 여기에는 나의 {followersCount} 명의 팔로워와 {followingCount, plural, other {#}} 명의 팔로우가 포함되었습니다.",
@@ -495,11 +535,27 @@
"notification.status": "{name} 님이 방금 게시물을 올렸습니다",
"notification.update": "{name} 님이 게시물을 수정했습니다",
"notification_requests.accept": "수락",
+ "notification_requests.accept_multiple": "{count, plural, other {#}} 개의 요청 수락하기",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, other {}}요청 수락하기",
+ "notification_requests.confirm_accept_multiple.message": "{count, plural, other {#}} 개의 요청을 수락하려고 합니다. 계속 진행할까요?",
+ "notification_requests.confirm_accept_multiple.title": "알림 요청을 수락할까요?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, other {요청 지우기}}",
+ "notification_requests.confirm_dismiss_multiple.message": "{count, plural, other {# 개의 요청}}을 지우려고 합니다. {count, plural, other {}}다시 접근하기 어렵습니다. 계속할까요?",
+ "notification_requests.confirm_dismiss_multiple.title": "알림 요청을 지울까요?",
"notification_requests.dismiss": "지우기",
+ "notification_requests.dismiss_multiple": "{count, plural, other {# 개의 요청 지우기}}",
+ "notification_requests.edit_selection": "편집",
+ "notification_requests.exit_selection": "완료",
+ "notification_requests.explainer_for_limited_account": "이 계정은 중재자에 의해 제한되었기 때문에 이 계정의 알림은 걸러졌습니다.",
+ "notification_requests.explainer_for_limited_remote_account": "이 계정 혹은 그가 속한 서버는 중재자에 의해 제한되었기 때문에 이 계정의 알림은 걸러졌습니다.",
+ "notification_requests.maximize": "최대화",
+ "notification_requests.minimize_banner": "걸러진 알림 배너 최소화",
"notification_requests.notifications_from": "{name} 님으로부터의 알림",
"notification_requests.title": "걸러진 알림",
+ "notification_requests.view": "알림 보기",
"notifications.clear": "알림 비우기",
"notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?",
+ "notifications.clear_title": "알림을 모두 지울까요?",
"notifications.column_settings.admin.report": "새 신고:",
"notifications.column_settings.admin.sign_up": "새로운 가입:",
"notifications.column_settings.alert": "데스크탑 알림",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "권한이 거부되었기 때문에 데스크탑 알림을 활성화할 수 없음",
"notifications.permission_denied_alert": "이전에 브라우저 권한이 거부되었기 때문에, 데스크탑 알림이 활성화 될 수 없습니다.",
"notifications.permission_required": "필요한 권한이 승인되지 않아 데스크탑 알림을 사용할 수 없습니다.",
+ "notifications.policy.accept": "허용",
+ "notifications.policy.accept_hint": "알림 목록에 표시",
+ "notifications.policy.drop": "무시",
+ "notifications.policy.drop_hint": "공허로 보내고, 다시는 보지 않습니다",
+ "notifications.policy.filter": "필터",
+ "notifications.policy.filter_hint": "걸러진 알림 목록으로 보내기",
+ "notifications.policy.filter_limited_accounts_hint": "서버 중재자에 의해 제한됨",
+ "notifications.policy.filter_limited_accounts_title": "중재된 계정",
"notifications.policy.filter_new_accounts.hint": "{days, plural, one {하루} other {#일}} 안에 만들어진",
"notifications.policy.filter_new_accounts_title": "새 계정",
"notifications.policy.filter_not_followers_hint": "나를 팔로우 한 지 {days, plural, other {# 일}}이 되지 않은 사람들을 포함",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "내가 팔로우하지 않는 사람들",
"notifications.policy.filter_private_mentions_hint": "내가 한 멘션에 단 답글이거나 내가 발신자를 팔로우 한 것이 아닌 이상 걸러집니다",
"notifications.policy.filter_private_mentions_title": "청하지 않은 개인적인 멘션",
- "notifications.policy.title": "알림을 제외할 조건들…",
+ "notifications.policy.title": "알림 조건 설정",
"notifications_permission_banner.enable": "데스크탑 알림 활성화",
"notifications_permission_banner.how_to_control": "마스토돈이 열려 있지 않을 때에도 알림을 받으려면, 데스크탑 알림을 활성화 하세요. 당신은 어떤 종류의 반응이 데스크탑 알림을 발생할 지를 {icon} 버튼을 통해 세세하게 설정할 수 있습니다.",
"notifications_permission_banner.title": "아무것도 놓치지 마세요",
@@ -587,8 +651,8 @@
"poll.closed": "마감",
"poll.refresh": "새로고침",
"poll.reveal": "결과 보기",
- "poll.total_people": "{count}명",
- "poll.total_votes": "{count} 표",
+ "poll.total_people": "{count, plural, other {#}} 명",
+ "poll.total_votes": "{count, plural, other {#}} 표",
"poll.vote": "투표",
"poll.voted": "이 답변에 투표함",
"poll.votes": "{votes} 표",
@@ -621,7 +685,7 @@
"relative_time.minutes": "{number}분 전",
"relative_time.seconds": "{number}초 전",
"relative_time.today": "오늘",
- "reply_indicator.attachments": "{count, plural, one {#} other {#}}개의 첨부파일",
+ "reply_indicator.attachments": "{count, plural, other {#}} 개의 첨부파일",
"reply_indicator.cancel": "취소",
"reply_indicator.poll": "투표",
"report.block": "차단",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "이 계정을 팔로우하고 있습니다. 홈 피드에서 더 이상 게시물을 받아 보지 않으려면 팔로우를 해제하십시오.",
"report_notification.attached_statuses": "{count}개의 게시물 첨부됨",
"report_notification.categories.legal": "법령",
+ "report_notification.categories.legal_sentence": "불법적인 내용",
"report_notification.categories.other": "기타",
+ "report_notification.categories.other_sentence": "기타",
"report_notification.categories.spam": "스팸",
+ "report_notification.categories.spam_sentence": "스팸",
"report_notification.categories.violation": "규칙 위반",
+ "report_notification.categories.violation_sentence": "규칙 위반",
"report_notification.open": "신고 열기",
"search.no_recent_searches": "최근 검색 기록이 없습니다",
"search.placeholder": "검색",
@@ -710,6 +778,7 @@
"status.bookmark": "북마크",
"status.cancel_reblog_private": "부스트 취소",
"status.cannot_reblog": "이 게시물은 부스트 할 수 없습니다",
+ "status.continued_thread": "이어지는 글타래",
"status.copy": "게시물 링크 복사",
"status.delete": "삭제",
"status.detailed_status": "대화 자세히 보기",
@@ -717,13 +786,11 @@
"status.direct_indicator": "개인적인 멘션",
"status.edit": "수정",
"status.edited": "{date}에 마지막으로 편집됨",
- "status.edited_x_times": "{count}번 수정됨",
- "status.embed": "임베드",
+ "status.edited_x_times": "{count, plural, other {{count}}} 번 수정됨",
+ "status.embed": "임베드 코드 받기",
"status.favourite": "좋아요",
"status.favourites": "{count, plural, other {좋아요}}",
"status.filter": "이 게시물을 필터",
- "status.filtered": "필터로 걸러짐",
- "status.hide": "게시물 숨기기",
"status.history.created": "{name} 님이 {date}에 처음 게시함",
"status.history.edited": "{name} 님이 {date}에 수정함",
"status.load_more": "더 보기",
@@ -745,22 +812,20 @@
"status.reblogs.empty": "아직 아무도 이 게시물을 부스트하지 않았습니다. 부스트 한 사람들이 여기에 표시 됩니다.",
"status.redraft": "지우고 다시 쓰기",
"status.remove_bookmark": "북마크 삭제",
+ "status.replied_in_thread": "글타래에 답장",
"status.replied_to": "{name} 님에게",
"status.reply": "답장",
"status.replyAll": "글타래에 답장",
"status.report": "@{name} 신고하기",
"status.sensitive_warning": "민감한 내용",
"status.share": "공유",
- "status.show_filter_reason": "그냥 표시하기",
- "status.show_less": "접기",
"status.show_less_all": "모두 접기",
- "status.show_more": "펼치기",
"status.show_more_all": "모두 펼치기",
"status.show_original": "원본 보기",
"status.title.with_attachments": "{user} 님이 {attachmentCount, plural, one {첨부파일} other {{attachmentCount}개의 첨부파일}}과 함께 게시함",
"status.translate": "번역",
"status.translated_from_with": "{provider}에 의해 {lang}에서 번역됨",
- "status.uncached_media_warning": "마리보기 허용되지 않음",
+ "status.uncached_media_warning": "미리보기를 사용할 수 없습니다",
"status.unmute_conversation": "이 대화의 뮤트 해제하기",
"status.unpin": "고정 해제",
"subscribed_languages.lead": "변경 후에는 선택한 언어들로 작성된 게시물들만 홈 타임라인과 리스트 타임라인에 나타나게 됩니다. 아무 것도 선택하지 않으면 모든 언어로 작성된 게시물을 받아봅니다.",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number} 분 남음",
"time_remaining.moments": "남은 시간",
"time_remaining.seconds": "{number} 초 남음",
- "timeline_hint.remote_resource_not_displayed": "다른 서버의 {resource} 표시는 할 수 없습니다.",
- "timeline_hint.resources.followers": "팔로워",
- "timeline_hint.resources.follows": "팔로우",
- "timeline_hint.resources.statuses": "이전 게시물",
"trends.counter_by_accounts": "이전 {days}일 동안 {counter} 명의 사용자",
"trends.trending_now": "지금 유행 중",
"ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.",
@@ -787,11 +848,11 @@
"upload_button.label": "이미지, 영상, 오디오 파일 추가",
"upload_error.limit": "파일 업로드 제한에 도달했습니다.",
"upload_error.poll": "파일 업로드는 설문과 함께 쓸 수 없습니다.",
- "upload_form.audio_description": "청각 장애인을 위한 설명",
- "upload_form.description": "시각장애인을 위한 설명",
+ "upload_form.audio_description": "청각장애인이나 저청각자를 위한 설명",
+ "upload_form.description": "시각장애인이나 저시력자를 위한 설명",
"upload_form.edit": "수정",
"upload_form.thumbnail": "썸네일 변경",
- "upload_form.video_description": "청각, 시각 장애인을 위한 설명",
+ "upload_form.video_description": "청각장애인, 저청각자, 시각장애인, 저시력자를 위한 설명",
"upload_modal.analyzing_picture": "사진 분석 중…",
"upload_modal.apply": "적용",
"upload_modal.applying": "적용 중...",
@@ -799,7 +860,7 @@
"upload_modal.description_placeholder": "다람쥐 헌 쳇바퀴 타고파",
"upload_modal.detect_text": "사진에서 문자 탐색",
"upload_modal.edit_media": "미디어 수정",
- "upload_modal.hint": "미리보기를 클릭하거나 드래그 해서 포컬 포인트를 맞추세요. 이 점은 썸네일에 항상 보여질 부분을 나타냅니다.",
+ "upload_modal.hint": "미리보기를 클릭하거나 드래그 해서 초점을 맞추세요. 이 점은 썸네일에서 항상 보여질 부분을 나타냅니다.",
"upload_modal.preparing_ocr": "OCR 준비 중…",
"upload_modal.preview_label": "미리보기 ({ratio})",
"upload_progress.label": "업로드 중...",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index 83fcef26fb2..86ecf984464 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -11,14 +11,12 @@
"about.not_available": "Ev zanyarî li ser vê rajekarê nehatine peydakirin.",
"about.powered_by": "Medyaya civakî ya nenavendî bi hêzdariya {mastodon}",
"about.rules": "Rêbazên rajekar",
- "account.account_note_header": "Nîşe",
"account.add_or_remove_from_list": "Li lîsteyan zêde bike yan jî rake",
"account.badges.bot": "Bot",
"account.badges.group": "Kom",
"account.block": "@{name} asteng bike",
"account.block_domain": "Navpera {domain} asteng bike",
"account.blocked": "Astengkirî",
- "account.browse_more_on_origin_server": "Li pelên resen bêtir bigere",
"account.cancel_follow_request": "Daxwaza şopandinê vekişîne",
"account.direct": "Bi taybetî qale @{name} bike",
"account.disable_notifications": "Êdî min agahdar neke gava @{name} diweşîne",
@@ -32,9 +30,7 @@
"account.follow": "Bişopîne",
"account.followers": "Şopîner",
"account.followers.empty": "Kesekî hin ev bikarhêner neşopandiye.",
- "account.followers_counter": "{count, plural, one {{counter} Şopîner} other {{counter} Şopîner}}",
"account.following": "Dişopîne",
- "account.following_counter": "{count, plural, one {{counter} Dişopîne} other {{counter} Dişopîne}}",
"account.follows.empty": "Ev bikarhêner hin kesekî heya niha neşopandiye.",
"account.go_to_profile": "Biçe bo profîlê",
"account.hide_reblogs": "Bilindkirinên ji @{name} veşêre",
@@ -56,7 +52,6 @@
"account.requested_follow": "{name} dixwaze te bişopîne",
"account.share": "Profîla @{name} parve bike",
"account.show_reblogs": "Bilindkirinên ji @{name} nîşan bike",
- "account.statuses_counter": "{count, plural,one {{counter} Şandî}other {{counter} Şandî}}",
"account.unblock": "Astengê li ser @{name} rake",
"account.unblock_domain": "Astengê li ser navperê {domain} rake",
"account.unblock_short": "Astengiyê rake",
@@ -136,15 +131,12 @@
"compose_form.spoiler.unmarked": "Hişyariya naverokê tevlî bike",
"confirmation_modal.cancel": "Dev jê berde",
"confirmations.block.confirm": "Asteng bike",
- "confirmations.cancel_follow_request.confirm": "Daxwazê vekişîne",
- "confirmations.cancel_follow_request.message": "Tu dixwazî daxwaza xwe ya şopandina {name} vekşînî?",
"confirmations.delete.confirm": "Jê bibe",
"confirmations.delete.message": "Ma tu dixwazî vê şandiyê jê bibî?",
"confirmations.delete_list.confirm": "Jê bibe",
"confirmations.delete_list.message": "Tu ji dil dixwazî vê lîsteyê bi awayekî mayînde jê bibî?",
"confirmations.discard_edit_media.confirm": "Biavêje",
"confirmations.discard_edit_media.message": "Guhertinên neqedandî di danasîna an pêşdîtina medyayê de hene, wan bi her awayî bavêje?",
- "confirmations.domain_block.message": "Tu pê bawerî ku tu dixwazî tevahiya {domain} asteng bikî? Di gelek rewşan de astengkirin an jî bêdengkirin têrê dike û tê hilbijartin. Tu nikarî naveroka vê navperê di demnameyê an jî agahdariyên xwe de bibînî. Şopînerên te yê di vê navperê wê werin jêbirin.",
"confirmations.edit.confirm": "Serrast bike",
"confirmations.logout.confirm": "Derkeve",
"confirmations.logout.message": "Ma tu dixwazî ku derkevî?",
@@ -301,8 +293,6 @@
"keyboard_shortcuts.unfocus": "Bal nede cîhê nivîsê /lêgerînê",
"keyboard_shortcuts.up": "Di lîsteyê de rake jor",
"lightbox.close": "Bigire",
- "lightbox.compress": "Qutîya wêneya nîşan dike bitepisîne",
- "lightbox.expand": "Qutîya wêneya nîşan dike fireh bike",
"lightbox.next": "Pêş",
"lightbox.previous": "Paş",
"limited_account_hint.action": "Bi heman awayî profîlê nîşan bide",
@@ -321,7 +311,6 @@
"lists.search": "Di navbera kesên ku te dişopînin bigere",
"lists.subheading": "Lîsteyên te",
"load_pending": "{count, plural, one {# hêmaneke nû} other {#hêmaneke nû}}",
- "media_gallery.toggle_visible": "{number, plural, one {Wêneyê veşêre} other {Wêneyan veşêre}}",
"moved_to_account_banner.text": "Ajimêrê te {disabledAccount} niha neçalak e ji ber ku te bar kir bo {movedToAccount}.",
"navigation_bar.about": "Derbar",
"navigation_bar.blocks": "Bikarhênerên astengkirî",
@@ -350,9 +339,7 @@
"notification.admin.sign_up": "{name} tomar bû",
"notification.follow": "{name} te şopand",
"notification.follow_request": "{name} dixwazê te bişopîne",
- "notification.mention": "{name} qale te kir",
"notification.own_poll": "Rapirsîya te qediya",
- "notification.poll": "Rapirsiyeke ku te deng daye qediya",
"notification.reblog": "{name} şandiya te bilind kir",
"notification.status": "{name} niha şand",
"notification.update": "{name} şandiyek serrast kir",
@@ -509,10 +496,7 @@
"status.direct_indicator": "Qalkirinê taybet",
"status.edit": "Serrast bike",
"status.edited_x_times": "{count, plural, one {{count} car} other {{count} car}} hate serrastkirin",
- "status.embed": "Bi cih bike",
"status.filter": "Vê şandiyê parzûn bike",
- "status.filtered": "Parzûnkirî",
- "status.hide": "Şandiyê veşêre",
"status.history.created": "{name} {date} afirand",
"status.history.edited": "{name} {date} serrast kir",
"status.load_more": "Bêtir bar bike",
@@ -537,10 +521,7 @@
"status.report": "@{name} ragihîne",
"status.sensitive_warning": "Naveroka hestiyarî",
"status.share": "Parve bike",
- "status.show_filter_reason": "Bi her awayî nîşan bide",
- "status.show_less": "Kêmtir nîşan bide",
"status.show_less_all": "Ji bo hemîyan kêmtir nîşan bide",
- "status.show_more": "Bêtir nîşan bide",
"status.show_more_all": "Bêtir nîşan bide bo hemûyan",
"status.show_original": "A resen nîşan bide",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -558,10 +539,6 @@
"time_remaining.minutes": "{number, plural, one {# xulek} other {# xulek}} maye",
"time_remaining.moments": "Demên mayî",
"time_remaining.seconds": "{number, plural, one {# çirke} other {# çirke}} maye",
- "timeline_hint.remote_resource_not_displayed": "{resource} Ji rajekerên din nayê dîtin.",
- "timeline_hint.resources.followers": "Şopîner",
- "timeline_hint.resources.follows": "Dişopîne",
- "timeline_hint.resources.statuses": "Şandiyên kevn",
"trends.counter_by_accounts": "{count, plural, one {{counter} kes} other {{counter} kes}} berî {days, plural, one {roj} other {{days} roj}}",
"trends.trending_now": "Rojev",
"ui.beforeunload": "Ger ji Mastodonê veketi wê reşnivîsa te jî winda bibe.",
diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json
index 794cbd9ede3..cef24aa3b78 100644
--- a/app/javascript/mastodon/locales/kw.json
+++ b/app/javascript/mastodon/locales/kw.json
@@ -1,13 +1,11 @@
{
"about.blocks": "Leurennow koswys",
- "account.account_note_header": "Noten",
"account.add_or_remove_from_list": "Keworra po Dilea a rolyow",
"account.badges.bot": "Bot",
"account.badges.group": "Bagas",
"account.block": "Lettya @{name}",
"account.block_domain": "Lettya gorfarth {domain}",
"account.blocked": "Lettys",
- "account.browse_more_on_origin_server": "Peuri moy y'n profil derowel",
"account.cancel_follow_request": "Withdraw follow request",
"account.disable_notifications": "Hedhi ow gwarnya pan wra @{name} postya",
"account.domain_blocked": "Gorfarth lettys",
@@ -17,8 +15,6 @@
"account.follow": "Holya",
"account.followers": "Holyoryon",
"account.followers.empty": "Ny wra nagonan holya'n devnydhyer ma hwath.",
- "account.followers_counter": "{count, plural, one {{counter} Holyer} other {{counter} Holyer}}",
- "account.following_counter": "{count, plural, one {Ow holya {counter}} other {Ow holya {counter}}}",
"account.follows.empty": "Ny wra'n devnydhyer ma holya nagonan hwath.",
"account.hide_reblogs": "Kudha kenerthow a @{name}",
"account.link_verified_on": "Perghenogeth an kolm ma a veu checkys dhe {date}",
@@ -33,7 +29,6 @@
"account.requested": "Ow kortos komendyans. Klyckyewgh dhe hedhi govyn holya",
"account.share": "Kevrenna profil @{name}",
"account.show_reblogs": "Diskwedhes kenerthow a @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Tout} other {{counter} Tout}}",
"account.unblock": "Anlettya @{name}",
"account.unblock_domain": "Anlettya gorfarth {domain}",
"account.unendorse": "Na wra diskwedhes yn profil",
@@ -91,7 +86,6 @@
"confirmations.delete.message": "Owgh hwi sur a vynnes dilea'n post ma?",
"confirmations.delete_list.confirm": "Dilea",
"confirmations.delete_list.message": "Owgh hwi sur a vynnes dilea'n rol ma yn fast?",
- "confirmations.domain_block.message": "Owgh hwi wir, wir sur a vynnes lettya'n {domain} dhien? Y'n brassa rann a gasow, boghes lettyansow medrys po tawheansow yw lowr ha gwell. Ny wrewgh hwi gweles dalgh a'n worfarth na yn py amserlin boblek pynag po yn agas gwarnyansow. Agas holyoryon an worfarth na a vydh diles.",
"confirmations.logout.confirm": "Digelmi",
"confirmations.logout.message": "Owgh hwi sur a vynnes digelmi?",
"confirmations.mute.confirm": "Tawhe",
@@ -201,8 +195,6 @@
"keyboard_shortcuts.unfocus": "Anfogella tekstva gomposya/hwilas",
"keyboard_shortcuts.up": "Movya war-vann y'n rol",
"lightbox.close": "Degea",
- "lightbox.compress": "Kula kist a weles aven",
- "lightbox.expand": "Efani kist a weles aven",
"lightbox.next": "Nessa",
"lightbox.previous": "Kynsa",
"lists.account.add": "Keworra dhe rol",
@@ -219,7 +211,6 @@
"lists.search": "Hwilas yn-mysk tus a holyewgh",
"lists.subheading": "Agas rolyow",
"load_pending": "{count, plural, one {# daklennowydh} other {# a daklennow nowydh}}",
- "media_gallery.toggle_visible": "Hide {number, plural, one {aven} other {aven}}",
"navigation_bar.blocks": "Devnydhyoryon lettys",
"navigation_bar.bookmarks": "Folennosow",
"navigation_bar.community_timeline": "Amserlin leel",
@@ -240,9 +231,7 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} a wrug agas holya",
"notification.follow_request": "{name} a bysis agas holya",
- "notification.mention": "{name} a wrug agas meneges",
"notification.own_poll": "Agas sondyans a worfennas",
- "notification.poll": "An sondyans may hwrussowgh ragleva a worfennas",
"notification.reblog": "{name} a generthas agas post",
"notification.status": "{name} a wrug nowydh postya",
"notifications.clear": "Dilea gwarnyansow",
@@ -326,8 +315,6 @@
"status.delete": "Dilea",
"status.detailed_status": "Gwel kesklapp a-vanyl",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "Staga",
- "status.filtered": "Sidhlys",
"status.load_more": "Karga moy",
"status.media_hidden": "Myski kudhys",
"status.mention": "Meneges @{name}",
@@ -349,9 +336,7 @@
"status.report": "Reportya @{name}",
"status.sensitive_warning": "Dalgh tender",
"status.share": "Kevrenna",
- "status.show_less": "Diskwedhes le",
"status.show_less_all": "Diskwedhes le rag puptra",
- "status.show_more": "Diskwedhes moy",
"status.show_more_all": "Diskwedhes moy rag puptra",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.unmute_conversation": "Antawhe kesklapp",
@@ -363,10 +348,6 @@
"time_remaining.minutes": "{number, plural, one {# vynysen} other {# a vynysennow}} gesys",
"time_remaining.moments": "Polsyow gesys",
"time_remaining.seconds": "{number, plural, one {# eylen} other {# eylen}} gesys",
- "timeline_hint.remote_resource_not_displayed": "Nyns yw {resource} a'n leurennow erel displetys.",
- "timeline_hint.resources.followers": "Holyoryon",
- "timeline_hint.resources.follows": "Holyansow",
- "timeline_hint.resources.statuses": "Kottha postow",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Tuedhegus lemmyn",
"ui.beforeunload": "Agas kysnkrif a vydh kellys mar kwrewgh diberth a Mastodon.",
diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json
index d867034f01f..d894cc01c68 100644
--- a/app/javascript/mastodon/locales/la.json
+++ b/app/javascript/mastodon/locales/la.json
@@ -2,7 +2,6 @@
"about.contact": "Ratio:",
"about.domain_blocks.no_reason_available": "Ratio abdere est",
"about.domain_blocks.silenced.explanation": "Tua profilia atque tuum contentum ab hac serve praecipue non videbis, nisi explōrēs expresse aut subsequeris et optēs.",
- "account.account_note_header": "Annotatio",
"account.add_or_remove_from_list": "Adde aut ēripe ex tabellīs",
"account.badges.bot": "Robotum",
"account.badges.group": "Congregatio",
@@ -14,12 +13,9 @@
"account.edit_profile": "Recolere notionem",
"account.featured_tags.last_status_never": "Nulla contributa",
"account.featured_tags.title": "Hashtag notātī {name}",
- "account.followers_counter": "{count, plural, one {{counter} Sectator} other {{counter} Sectatores}}",
- "account.following_counter": "{count, plural, one {{counter} Sequens} other {{counter} Sequentes}}",
"account.moved_to": "{name} significavit eum suam rationem novam nunc esse:",
"account.muted": "Confutatus",
"account.requested_follow": "{name} postulavit ut te sequeretur",
- "account.statuses_counter": "{count, plural, one {{counter} Nuntius} other {{counter} Nuntii}}",
"account.unblock_short": "Solvere impedimentum",
"account_note.placeholder": "Click to add a note",
"admin.dashboard.retention.average": "Mediocritas",
@@ -28,6 +24,7 @@
"announcement.announcement": "Proclamatio",
"attachments_list.unprocessed": "(immūtātus)",
"block_modal.you_wont_see_mentions": "Nuntios quibus eos commemorant non videbis.",
+ "boost_modal.combo": "Potes premēre {combo} ut hoc iterum transilīre",
"bundle_column_error.error.title": "Eheu!",
"bundle_column_error.retry": "Retemptare",
"bundle_column_error.routing.title": "CCCCIIII",
@@ -44,7 +41,7 @@
"compose_form.direct_message_warning_learn_more": "Discere plura",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
- "compose_form.lock_disclaimer": "Tua ratio non est {clausa}. Quisquis te sequi potest ut visum accipiat nuntios tuos tantum pro sectatoribus.",
+ "compose_form.lock_disclaimer": "Tua ratio non est {locked}. Quisquis te sequi potest ut visum accipiat nuntios tuos tantum pro sectatoribus.",
"compose_form.lock_disclaimer.lock": "clausum",
"compose_form.placeholder": "What is on your mind?",
"compose_form.publish_form": "Barrire",
@@ -76,7 +73,10 @@
"empty_column.account_timeline": "Hic nulla contributa!",
"empty_column.account_unavailable": "Notio non impetrabilis",
"empty_column.blocks": "Nondum quemquam usorem obsēcāvisti.",
+ "empty_column.bookmarked_statuses": "Nūllae adhuc postēs notātī habēs. Ubi unum notāverīs, hic apparebit.",
"empty_column.direct": "Nōn habēs adhūc ullo mentionēs prīvātās. Cum ūnam mīseris aut accipis, hīc apparēbit.",
+ "empty_column.favourited_statuses": "Nūllae adhuc postēs praeferendī habēs. Ubi unum praeferās, hic apparebit.",
+ "empty_column.follow_requests": "Nūllae adhuc petitionēs sequendi habēs. Ubi unum accipīs, hic apparebit.",
"empty_column.followed_tags": "Nōn adhūc aliquem hastāginem secūtus es. Cum id fēceris, hic ostendētur.",
"empty_column.home": "Tua linea temporum domesticus vacua est! Sequere plures personas ut eam compleas.",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
@@ -85,16 +85,22 @@
"empty_column.notification_requests": "Omnia clara sunt! Nihil hic est. Cum novās notificātiōnēs accipīs, hic secundum tua praecepta apparebunt.",
"empty_column.notifications": "Nōn adhūc habēs ullo notificātiōnēs. Cum aliī tē interagunt, hīc videbis.",
"explore.trending_statuses": "Contributa",
- "filtered_notifications_banner.mentions": "{count, plural, one {mentiō} other {mentiōnēs}}",
"firehose.all": "Omnis",
"footer.about": "De",
"generic.saved": "Servavit",
+ "hashtag.column_header.tag_mode.none": "sine {additional}",
"hashtag.column_settings.tag_mode.all": "Haec omnia",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.counter_by_accounts": "{count, plural, one {{counter} particeps} other {{counter} participēs}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} nuntius} other {{counter} nuntii}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} nuntius} other {{counter} nuntii}} hodie",
"hashtags.and_other": "…et {count, plural, other {# plus}}",
+ "ignore_notifications_modal.filter_to_act_users": "Adhuc poteris accipere, reicere, vel referre usores",
+ "ignore_notifications_modal.filter_to_review_separately": "Percolantur notificatiōnes separātim recensere potes",
+ "interaction_modal.description.favourite": "Cum accūntū in Mastodon, hanc postem praeferre potes ut auctōrī indicēs tē eam aestimāre et ad posterius servēs.",
+ "interaction_modal.description.follow": "Cum accūntū in Mastodon, {name} sequī potes ut eōrum postēs in tēlā domī tuā recipiās.",
+ "interaction_modal.description.reply": "Mastodon de Ratione, huic nuntio respondere potes.",
+ "interaction_modal.sign_in": "Ad hōc servientem nōn dēlūxī. Ubi accūntum tuum hospitātum est?",
"intervals.full.days": "{number, plural, one {# die} other {# dies}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# horae}}",
"intervals.full.minutes": "{number, plural, one {# minutum} other {# minuta}}",
@@ -133,8 +139,8 @@
"lightbox.next": "Secundum",
"lists.account.add": "Adde ad tabellās",
"lists.new.create": "Addere tabella",
+ "lists.subheading": "Tuae tabulae",
"load_pending": "{count, plural, one {# novum item} other {# nova itema}}",
- "media_gallery.toggle_visible": "{number, plural, one {Cēla imaginem} other {Cēla imagines}}",
"moved_to_account_banner.text": "Tua ratione {disabledAccount} interdum reposita est, quod ad {movedToAccount} migrāvisti.",
"mute_modal.you_wont_see_mentions": "Non videbis nuntios quī eōs commemorant.",
"navigation_bar.about": "De",
@@ -145,15 +151,13 @@
"notification.favourite": "{name} nuntium tuum favit",
"notification.follow": "{name} te secutus est",
"notification.follow_request": "{name} postulavit ut te sequeretur",
- "notification.mention": "{name} memoravi",
"notification.moderation_warning": "Accepistī monitionem moderationis.",
"notification.moderation_warning.action_disable": "Ratio tua debilitata est.",
"notification.moderation_warning.action_none": "Tua ratiō monitum moderātiōnis accēpit.",
"notification.moderation_warning.action_sensitive": "Tua nuntia hinc sensibiliter notabuntur.",
"notification.moderation_warning.action_silence": "Ratio tua est limitata.",
"notification.moderation_warning.action_suspend": "Ratio tua suspensus est.",
- "notification.own_poll": "Suffragium tuum terminatum est.",
- "notification.poll": "Electione in quam suffragium dedisti finita est.",
+ "notification.own_poll": "Suffragium tuum terminatum est",
"notification.reblog": "{name} tuum nuntium amplificavit.",
"notification.relationships_severance_event.account_suspension": "Admin ab {from} {target} suspendit, quod significat nōn iam posse tē novitātēs ab eīs accipere aut cum eīs interagere.",
"notification.relationships_severance_event.domain_block": "Admin ab {from} {target} obsēcāvit, includēns {followersCount} ex tuīs sectātōribus et {followingCount, plural, one {# ratione} other {# rationibus}} quās sequeris.",
@@ -161,6 +165,8 @@
"notification.status": "{name} nuper publicavit",
"notification.update": "{name} nuntium correxit",
"notification_requests.accept": "Accipe",
+ "notification_requests.confirm_accept_multiple.message": "Tu es accepturus {count, plural, one {una notitia petitionem} other {# notitia petitiones}}. Certus esne procedere vis?",
+ "notification_requests.confirm_dismiss_multiple.message": "Tu {count, plural, one {unam petitionem notificationis} other {# petitiones notificationum}} abrogāre prōximum es. {count, plural, one {Illa} other {Eae}} facile accessū nōn erit. Certus es tē procedere velle?",
"notifications.filter.all": "Omnia",
"notifications.filter.polls": "Eventus electionis",
"notifications.group": "Notificātiōnēs",
@@ -168,7 +174,9 @@
"onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.follows.lead": "Tua domus feed est principalis via Mastodon experīrī. Quō plūrēs persōnas sequeris, eō actīvior et interessantior erit. Ad tē incipiendum, ecce quaedam suāsiones:",
"onboarding.follows.title": "Popular on Mastodon",
- "onboarding.profile.display_name_hint": "Tuum nomen completum aut tuum nomen ludens...",
+ "onboarding.profile.display_name_hint": "Tuum nomen completum aut tuum nomen ludens…",
+ "onboarding.profile.lead": "Hoc semper postea in ratiōnibus complērī potest, ubi etiam plūrēs optiōnēs personalizātiōnis praesto sunt.",
+ "onboarding.profile.note_hint": "Alios hominēs vel #hashtags @nōmināre potes…",
"onboarding.start.lead": "Nunc pars es Mastodonis, singularis, socialis medii platformae decentralis ubi—non algorismus—tuam ipsius experientiam curas. Incipiāmus in nova hac socialis regione:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "Perfecisti eam!",
@@ -212,8 +220,11 @@
"report.mute_explanation": "Non videbis eōrum nuntiōs. Possunt adhuc tē sequī et tuōs nuntiōs vidēre, nec sciēbunt sē tacitōs esse.",
"report.next": "Secundum",
"report.placeholder": "Commentāriī adiūnctī",
+ "report.reasons.legal_description": "Putās id legem tuae aut servientis patriae violāre.",
+ "report.reasons.violation_description": "Scis quod certa praecepta frangit",
"report.submit": "Mittere",
"report.target": "Report {target}",
+ "report.unfollow_explanation": "Tu hanc rationem secutus es. Non videre stationes suas in domo tua amplius pascere, eas sequere.",
"report_notification.attached_statuses": "{count, plural, one {{count} nuntius} other {{count} nuntii}} attachiatus",
"report_notification.categories.other": "Altera",
"search.placeholder": "Quaerere",
@@ -240,8 +251,6 @@
"time_remaining.hours": "{number, plural, one {# hora} other {# horae}} restant",
"time_remaining.minutes": "{number, plural, one {# minutum} other {# minuta}} restant",
"time_remaining.seconds": "{number, plural, one {# secundum} other {# secunda}} restant",
- "timeline_hint.remote_resource_not_displayed": "{resource} ab aliīs servīs nōn ostenduntur.",
- "timeline_hint.resources.statuses": "Contributa pristina",
"trends.counter_by_accounts": "{count, plural, one {{counter} persōna} other {{counter} persōnae}} in {days, plural, one {diē prīdiē} other {diēbus praeteritīs {days}}}",
"ui.beforeunload": "Si Mastodon discesseris, tua epitome peribit.",
"units.short.billion": "{count} millia milionum",
diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json
index bf676a6020f..43da2ea16fd 100644
--- a/app/javascript/mastodon/locales/lad.json
+++ b/app/javascript/mastodon/locales/lad.json
@@ -11,7 +11,7 @@
"about.not_available": "Esta enformasyon no esta desponivle en este sirvidor.",
"about.powered_by": "Redes sosyalas desentralizadas kon uzo de {mastodon}",
"about.rules": "Reglas del sirvidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota personala",
"account.add_or_remove_from_list": "Adjusta a o kita de listas",
"account.badges.bot": "Otomatizado",
"account.badges.group": "Grupo",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloka el domeno {domain}",
"account.block_short": "Bloka",
"account.blocked": "Blokado",
- "account.browse_more_on_origin_server": "Ve mas en el profil orijinal",
"account.cancel_follow_request": "Anula solisitud de segir",
"account.copy": "Kopia atadijo de profil",
"account.direct": "Enmenta a @{name} en privado",
@@ -96,6 +95,7 @@
"block_modal.title": "Bloka utilizador?",
"block_modal.you_wont_see_mentions": "No veras publikasyones ke lo enmentan.",
"boost_modal.combo": "Puedes klikar {combo} para ometer esto la proksima vez",
+ "boost_modal.reblog": "Repartajar puvlikasyon?",
"bundle_column_error.copy_stacktrace": "Kopia el raporto de yerro",
"bundle_column_error.error.body": "La pajina solisitada no pudo ser renderada. Podria ser por un yerro en muestro kodiche o un problem de kompatibilita kon el navigador.",
"bundle_column_error.error.title": "Atyo, no!",
@@ -167,27 +167,30 @@
"compose_form.spoiler_placeholder": "Avertensya de kontenido (opsyonal)",
"confirmation_modal.cancel": "Anula",
"confirmations.block.confirm": "Bloka",
- "confirmations.cancel_follow_request.confirm": "Anula solisitud",
- "confirmations.cancel_follow_request.message": "Estas siguro ke keres anular tu solisitud de segir a {name}?",
"confirmations.delete.confirm": "Efasa",
"confirmations.delete.message": "Estas siguro ke keres efasar esta publikasyon?",
+ "confirmations.delete.title": "Efasar publikasyon?",
"confirmations.delete_list.confirm": "Efasa",
"confirmations.delete_list.message": "Estas siguro ke keres permanentemente efasar esta lista?",
+ "confirmations.delete_list.title": "Efasa lista?",
"confirmations.discard_edit_media.confirm": "Anula",
"confirmations.discard_edit_media.message": "Tienes trokamientos no guadrados en la deskripsion o vista previa. Keres efasarlos entanto?",
- "confirmations.domain_block.confirm": "Bloka sirvidor",
- "confirmations.domain_block.message": "Estas totalmente siguro ke keres blokar todo el domeno {domain}? En djeneral unos kuantos blokos o silensiamientos son sufisientes i preferavles. No veras kontenido de akel domeno en dinguna linya de tiempo publika ni ent tus avizos. Tus suivantes de akel domeno seran kitados.",
"confirmations.edit.confirm": "Edita",
"confirmations.edit.message": "Si edites agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
"confirmations.logout.confirm": "Sal",
"confirmations.logout.message": "Estas siguro ke keres salir de tu kuento?",
+ "confirmations.logout.title": "Salir?",
"confirmations.mute.confirm": "Silensia",
"confirmations.redraft.confirm": "Efasa i reeskrive",
"confirmations.redraft.message": "Estas siguro ke keres efasar esta publikasyon i reeskrivirla? Pedreras todos los favoritos i repartajasyones asosiados kon esta publikasyon i repuestas a eya seran guerfanadas.",
+ "confirmations.redraft.title": "Efasar i reeskrivir?",
"confirmations.reply.confirm": "Arisponde",
"confirmations.reply.message": "Si arispondas agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
"confirmations.unfollow.confirm": "Desige",
"confirmations.unfollow.message": "Estas siguro ke keres deshar de segir a {name}?",
+ "confirmations.unfollow.title": "Desige utilizador?",
+ "content_warning.hide": "Eskonde puvlikasyon",
+ "content_warning.show": "Amostra entanto",
"conversation.delete": "Efasa konversasyon",
"conversation.mark_as_read": "Marka komo meldado",
"conversation.open": "Ve konversasyon",
@@ -285,7 +288,7 @@
"filter_modal.select_filter.subtitle": "Kulanea una kategoria egzistente o kriya mueva",
"filter_modal.select_filter.title": "Filtra esta publikasyon",
"filter_modal.title.status": "Filtra una publikasyon",
- "filtered_notifications_banner.pending_requests": "Avizos de {count, plural, =0 {dingun} one {una persona} other {# personas}} ke puedes koneser",
+ "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {dingun} one {una persona} other {# personas}} ke puedes koneser",
"filtered_notifications_banner.title": "Avizos filtrados",
"firehose.all": "Todo",
"firehose.local": "Este sirvidor",
@@ -303,6 +306,7 @@
"follow_suggestions.hints.similar_to_recently_followed": "Este profil es similar a otros ke tienes segido resientemente.",
"follow_suggestions.personalized_suggestion": "Sujestion personalizada",
"follow_suggestions.popular_suggestion": "Sujestion populara",
+ "follow_suggestions.popular_suggestion_longer": "Popular en {domain}",
"follow_suggestions.view_all": "Ve todos",
"follow_suggestions.who_to_follow": "A ken segir",
"followed_tags": "Etiketas segidas",
@@ -338,6 +342,7 @@
"home.pending_critical_update.link": "Ve aktualizasyones",
"home.pending_critical_update.title": "Aktualizasyon de seguridad kritika esta desponivle!",
"home.show_announcements": "Amostra pregones",
+ "ignore_notifications_modal.ignore": "Inyora avizos",
"interaction_modal.description.favourite": "Kon un kuento en Mastodon, puedes markar esta publikasyon komo favorita para ke el autor sepa ke te plaze i para guadrarla para dempues.",
"interaction_modal.description.follow": "Kon un kuento en Mastodon, puedes segir a {name} para risivir sus publikasyones en tu linya temporal prinsipala.",
"interaction_modal.description.reblog": "Kon un kuento en Mastodon, puedes repartajar esta publikasyon para amostrarla a tus suivantes.",
@@ -391,14 +396,13 @@
"keyboard_shortcuts.unfocus": "No enfoka en el area de eskrivir/bushkeda",
"keyboard_shortcuts.up": "Move verso arriva en la lista",
"lightbox.close": "Serra",
- "lightbox.compress": "Kompresa kuadro de imaje",
- "lightbox.expand": "Espande kuadro de imaje",
"lightbox.next": "Sigiente",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Amostra el profil entanto",
"limited_account_hint.title": "Este profil fue eskondido por los moderadores de {domain}.",
"link_preview.author": "Publikasyon de {name}",
"link_preview.more_from_author": "Mas de {name}",
+ "link_preview.shares": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}",
"lists.account.add": "Adjusta a lista",
"lists.account.remove": "Kita de lista",
"lists.delete": "Efasa lista",
@@ -407,7 +411,7 @@
"lists.exclusive": "Eskonder estas publikasyones de linya prinsipala",
"lists.new.create": "Adjusta lista",
"lists.new.title_placeholder": "Titolo de mueva lista",
- "lists.replies_policy.followed": "Kualseker utilizardo segido",
+ "lists.replies_policy.followed": "Kualseker utilizador segido",
"lists.replies_policy.list": "Miembros de la lista",
"lists.replies_policy.none": "Dinguno",
"lists.replies_policy.title": "Amostra repuestas a:",
@@ -415,7 +419,7 @@
"lists.subheading": "Tus listas",
"load_pending": "{count, plural, one {# muevo elemento} other {# muevos elementos}}",
"loading_indicator.label": "Eskargando…",
- "media_gallery.toggle_visible": "{number, plural, one {Eskonde imaje} other {Eskonde imajes}}",
+ "media_gallery.hide": "Eskonde",
"moved_to_account_banner.text": "Tu kuento {disabledAccount} esta aktualmente inkapasitado porke transferates a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Eskonde de avizos",
"mute_modal.hide_options": "Eskonde opsyones",
@@ -425,6 +429,7 @@
"mute_modal.title": "Silensiar utilizador?",
"mute_modal.you_wont_see_mentions": "No veras publikasyones ke lo enmentan.",
"navigation_bar.about": "Sovre mozotros",
+ "navigation_bar.administration": "Administrasyon",
"navigation_bar.advanced_interface": "Avre en la enterfaz avanzada",
"navigation_bar.blocks": "Utilizadores blokados",
"navigation_bar.bookmarks": "Markadores",
@@ -441,6 +446,7 @@
"navigation_bar.follows_and_followers": "Segidos i suivantes",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Salir",
+ "navigation_bar.moderation": "Moderasyon",
"navigation_bar.mutes": "Utilizadores silensiados",
"navigation_bar.opened_in_classic_interface": "Publikasyones, kuentos i otras pajinas espesifikas se avren kon preferensyas predeterminadas en la enterfaz web klasika.",
"navigation_bar.personal": "Personal",
@@ -451,12 +457,19 @@
"navigation_bar.security": "Segurita",
"not_signed_in_indicator.not_signed_in": "Nesesitas konektarse kon tu kuento para akseder este rekurso.",
"notification.admin.report": "{name} raporto {target}",
+ "notification.admin.report_statuses_other": "{name} raporto {target}",
"notification.admin.sign_up": "{name} kriyo un konto",
"notification.favourite": "A {name} le plaze tu publikasyon",
"notification.follow": "{name} te ampeso a segir",
"notification.follow_request": "{name} tiene solisitado segirte",
- "notification.mention": "{name} te enmento",
+ "notification.label.mention": "Enmenta",
+ "notification.label.private_mention": "Enmentadura privada",
+ "notification.label.reply": "Arisponde",
+ "notification.mention": "Enmenta",
"notification.moderation-warning.learn_more": "Ambezate mas",
+ "notification.moderation_warning.action_disable": "Tu kuento tiene sido inkapasitado.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Algunas de tus publikasyones tienen sido markadas komo sensivles.",
+ "notification.moderation_warning.action_sensitive": "Tus publikasyones seran markadas komo sensivles dizde agora.",
"notification.moderation_warning.action_silence": "Tu kuento tiene sido limitado.",
"notification.moderation_warning.action_suspend": "Tu kuento tiene sido suspendido.",
"notification.own_poll": "Tu anketa eskapo",
@@ -468,10 +481,14 @@
"notification.update": "{name} edito una publikasyon",
"notification_requests.accept": "Acheta",
"notification_requests.dismiss": "Kita",
+ "notification_requests.edit_selection": "Edita",
+ "notification_requests.exit_selection": "Fecho",
"notification_requests.notifications_from": "Avizos de {name}",
"notification_requests.title": "Avizos filtrados",
+ "notification_requests.view": "Amostra avizos",
"notifications.clear": "Efasa avizos",
"notifications.clear_confirmation": "Estas siguro ke keres permanentemente efasar todos tus avizos?",
+ "notifications.clear_title": "Efasar avizos?",
"notifications.column_settings.admin.report": "Muveos raportos:",
"notifications.column_settings.admin.sign_up": "Muevas enrejistrasyones:",
"notifications.column_settings.alert": "Avizos de ensimameza",
@@ -503,13 +520,16 @@
"notifications.permission_denied": "Avizos de ensimameza no estan desponivles porke ya se tiene refuzado el permiso",
"notifications.permission_denied_alert": "\"No se pueden kapasitar los avizos de ensimameza, porke ya se tiene refuzado el permiso de navigador",
"notifications.permission_required": "Avizos de ensimameza no estan desponivles porke los nesesarios permisos no tienen sido risividos.",
+ "notifications.policy.accept": "Acheta",
+ "notifications.policy.accept_hint": "Amostra en avizos",
+ "notifications.policy.drop": "Inyora",
+ "notifications.policy.filter": "Filtra",
"notifications.policy.filter_new_accounts.hint": "Kriyadas durante {days, plural, one {el ultimo diya} other {los ultimos # diyas}}",
"notifications.policy.filter_new_accounts_title": "Muevos kuentos",
"notifications.policy.filter_not_followers_title": "Personas ke te no sigen",
"notifications.policy.filter_not_following_hint": "Asta ke las aproves manualmente",
"notifications.policy.filter_not_following_title": "Personas ke no siges",
"notifications.policy.filter_private_mentions_title": "Enmentaduras privadas no solisitadas",
- "notifications.policy.title": "Filtra avizos de…",
"notifications_permission_banner.enable": "Kapasita avizos de ensimameza",
"notifications_permission_banner.how_to_control": "Para risivir avizos kuando Mastodon no esta avierto, kapasita avizos de ensimameza. Puedes kontrolar presizamente kualos tipos de enteraksiones djeneren avizos de ensimameza kon el boton {icon} arriva kuando esten kapasitadas.",
"notifications_permission_banner.title": "Nunkua te piedres niente",
@@ -637,8 +657,11 @@
"report_notification.attached_statuses": "{count, plural, one {{count} publikasyon} other {{count} publikasyones}} atadas",
"report_notification.categories.legal": "Legal",
"report_notification.categories.other": "Otros",
+ "report_notification.categories.other_sentence": "otros",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Violasyon de reglas",
+ "report_notification.categories.violation_sentence": "violasyon de reglas",
"report_notification.open": "Avre raporto",
"search.no_recent_searches": "No ay bushkedas resientes",
"search.placeholder": "Bushka",
@@ -685,11 +708,8 @@
"status.edit": "Edita",
"status.edited": "Ultima edisyon: {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} vezes}}",
- "status.embed": "Inkrusta",
"status.favourite": "Te plaze",
"status.filter": "Filtra esta publikasyon",
- "status.filtered": "Filtrado",
- "status.hide": "Eskonde publikasyon",
"status.history.created": "{name} kriyo {date}",
"status.history.edited": "{name} edito {date}",
"status.load_more": "Eskarga mas",
@@ -716,10 +736,7 @@
"status.report": "Raporta @{name}",
"status.sensitive_warning": "Kontenido sensivle",
"status.share": "Partaja",
- "status.show_filter_reason": "Amostra entanto",
- "status.show_less": "Amostra manko",
"status.show_less_all": "Amostra manko para todo",
- "status.show_more": "Amostra mas",
"status.show_more_all": "Amostra mas para todo",
"status.show_original": "Amostra orijinal",
"status.title.with_attachments": "{user} publiko {attachmentCount, plural, one {un anekso} other {{attachmentCount} aneksos}}",
@@ -738,10 +755,6 @@
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
"time_remaining.moments": "Momentos restantes",
"time_remaining.seconds": "{number, plural, one {# sigundo restante} other {# sigundos restantes}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} de otros sirvidores no se amostran.",
- "timeline_hint.resources.followers": "Suivantes",
- "timeline_hint.resources.follows": "Segidos",
- "timeline_hint.resources.statuses": "Publikasyones mas viejas",
"trends.counter_by_accounts": "{count, plural, one {{counter} kuento} other {{counter} kuentos}} en los ultimos {days, plural, one {diyas} other {{days} diyas}}",
"trends.trending_now": "Trendes",
"ui.beforeunload": "La publikasyon ke estas eskriviendo se pedrera si sales de Mastodon.",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index b365d645896..632c33129a1 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -1,30 +1,29 @@
{
"about.blocks": "Prižiūrimi serveriai",
"about.contact": "Kontaktai:",
- "about.disclaimer": "Mastodon – tai nemokama atvirojo kodo programinė įranga ir Mastodon gGmbH prekės ženklas.",
+ "about.disclaimer": "„Mastodon“ – tai nemokama atvirojo kodo programinė įranga ir „Mastodon“ gGmbH prekės ženklas.",
"about.domain_blocks.no_reason_available": "Priežastis nepateikta",
- "about.domain_blocks.preamble": "Mastodon paprastai leidžia peržiūrėti turinį ir bendrauti su naudotojais iš bet kurio kito fediverse esančio serverio. Šios yra išimtys, kurios buvo padarytos šiame konkrečiame serveryje.",
- "about.domain_blocks.silenced.explanation": "Paprastai nematysi profilių ir turinio iš šio serverio, nebent jį aiškiai ieškosi arba pasirinksi jį sekdamas (-a).",
- "about.domain_blocks.silenced.title": "Ribota",
+ "about.domain_blocks.preamble": "„Mastodon“ paprastai leidžia peržiūrėti turinį ir bendrauti su naudotojais iš bet kurio kito fediverse esančio serverio. Šios yra išimtys, kurios buvo padarytos šiame konkrečiame serveryje.",
+ "about.domain_blocks.silenced.explanation": "Paprastai nematysi profilių ir turinio iš šio serverio, nebent jį aiškiai ieškosi arba pasirinksi jį sekant.",
+ "about.domain_blocks.silenced.title": "Apribota",
"about.domain_blocks.suspended.explanation": "Jokie duomenys iš šio serverio nebus apdorojami, saugomi ar keičiami, todėl bet kokia sąveika ar bendravimas su šio serverio naudotojais bus neįmanomas.",
- "about.domain_blocks.suspended.title": "Uždrausta",
+ "about.domain_blocks.suspended.title": "Pristabdyta",
"about.not_available": "Ši informacija nebuvo pateikta šiame serveryje.",
- "about.powered_by": "Decentralizuota socialinė medija, kurią valdo {mastodon}",
+ "about.powered_by": "Decentralizuota socialinė medija, veikianti pagal „{mastodon}“",
"about.rules": "Serverio taisyklės",
- "account.account_note_header": "Pastaba",
- "account.add_or_remove_from_list": "Pridėti arba ištrinti iš sąrašų",
+ "account.account_note_header": "Asmeninė pastaba",
+ "account.add_or_remove_from_list": "Pridėti arba pašalinti iš sąrašų",
"account.badges.bot": "Automatizuotas",
"account.badges.group": "Grupė",
"account.block": "Blokuoti @{name}",
- "account.block_domain": "Blokuoti domeną {domain}",
+ "account.block_domain": "Blokuoti serverį {domain}",
"account.block_short": "Blokuoti",
"account.blocked": "Užblokuota",
- "account.browse_more_on_origin_server": "Naršyti daugiau originaliame profilyje",
"account.cancel_follow_request": "Atšaukti sekimą",
"account.copy": "Kopijuoti nuorodą į profilį",
"account.direct": "Privačiai paminėti @{name}",
"account.disable_notifications": "Nustoti man pranešti, kai @{name} paskelbia",
- "account.domain_blocked": "Užblokuotas domenas",
+ "account.domain_blocked": "Užblokuotas serveris",
"account.edit_profile": "Redaguoti profilį",
"account.enable_notifications": "Pranešti man, kai @{name} paskelbia",
"account.endorse": "Rodyti profilyje",
@@ -40,7 +39,7 @@
"account.following_counter": "{count, plural, one {{counter} sekimas} few {{counter} sekimai} many {{counter} sekimo} other {{counter} sekimų}}",
"account.follows.empty": "Šis naudotojas dar nieko neseka.",
"account.go_to_profile": "Eiti į profilį",
- "account.hide_reblogs": "Slėpti pakėlimus iš @{name}",
+ "account.hide_reblogs": "Slėpti pasidalinimus iš @{name}",
"account.in_memoriam": "Atminimui.",
"account.joined_short": "Prisijungė",
"account.languages": "Keisti prenumeruojamas kalbas",
@@ -55,24 +54,24 @@
"account.muted": "Nutildytas",
"account.mutual": "Bendri",
"account.no_bio": "Nėra pateikto aprašymo.",
- "account.open_original_page": "Atidaryti originalinį puslapį",
+ "account.open_original_page": "Atidaryti originalų puslapį",
"account.posts": "Įrašai",
"account.posts_with_replies": "Įrašai ir atsakymai",
"account.report": "Pranešti apie @{name}",
- "account.requested": "Laukiama patvirtinimo. Spustelėk, jei nori atšaukti sekimo prašymą",
+ "account.requested": "Laukiama patvirtinimo. Spustelėk, kad atšauktum sekimo prašymą",
"account.requested_follow": "{name} paprašė tave sekti",
"account.share": "Bendrinti @{name} profilį",
- "account.show_reblogs": "Rodyti pakėlimus iš @{name}",
+ "account.show_reblogs": "Rodyti pasidalinimus iš @{name}",
"account.statuses_counter": "{count, plural, one {{counter} įrašas} few {{counter} įrašai} many {{counter} įrašo} other {{counter} įrašų}}",
"account.unblock": "Atblokuoti @{name}",
- "account.unblock_domain": "Atblokuoti domeną {domain}",
+ "account.unblock_domain": "Atblokuoti serverį {domain}",
"account.unblock_short": "Atblokuoti",
"account.unendorse": "Nerodyti profilyje",
"account.unfollow": "Nebesekti",
"account.unmute": "Atšaukti nutildymą @{name}",
"account.unmute_notifications_short": "Atšaukti nutildymą pranešimams",
"account.unmute_short": "Atšaukti nutildymą",
- "account_note.placeholder": "Spustelėk norint pridėti pastabą.",
+ "account_note.placeholder": "Spustelėk, kad pridėtum pastabą.",
"admin.dashboard.daily_retention": "Naudotojų pasilikimo rodiklis pagal dieną po registracijos",
"admin.dashboard.monthly_retention": "Naudotojų pasilikimo rodiklis pagal mėnesį po registracijos",
"admin.dashboard.retention.average": "Vidurkis",
@@ -82,8 +81,8 @@
"admin.impact_report.instance_followers": "Sekėjai, kuriuos prarastų mūsų naudotojai",
"admin.impact_report.instance_follows": "Sekėjai, kuriuos prarastų jų naudotojai",
"admin.impact_report.title": "Poveikio apibendrinimas",
- "alert.rate_limited.message": "Bandyk vėliau po {retry_time, time, medium}.",
- "alert.rate_limited.title": "Sparta ribota.",
+ "alert.rate_limited.message": "Bandyk vėl po {retry_time, time, medium}.",
+ "alert.rate_limited.title": "Sparta apribota.",
"alert.unexpected.message": "Įvyko netikėta klaida.",
"alert.unexpected.title": "Ups!",
"announcement.announcement": "Skelbimas",
@@ -94,34 +93,36 @@
"block_modal.show_more": "Rodyti daugiau",
"block_modal.they_cant_mention": "Jie negali tave paminėti ar sekti.",
"block_modal.they_cant_see_posts": "Jie negali matyti tavo įrašus, o tu nematysi jų.",
- "block_modal.they_will_know": "Jie mato, kad yra užblokuoti.",
+ "block_modal.they_will_know": "Jie gali matyti, kad yra užblokuoti.",
"block_modal.title": "Blokuoti naudotoją?",
"block_modal.you_wont_see_mentions": "Nematysi įrašus, kuriuose jie paminimi.",
"boost_modal.combo": "Galima paspausti {combo}, kad praleisti tai kitą kartą",
+ "boost_modal.reblog": "Pasidalinti įrašą?",
+ "boost_modal.undo_reblog": "Panaikinti pasidalintą įrašą?",
"bundle_column_error.copy_stacktrace": "Kopijuoti klaidos ataskaitą",
"bundle_column_error.error.body": "Paprašytos puslapio nepavyko atvaizduoti. Tai gali būti dėl mūsų kodo klaidos arba naršyklės suderinamumo problemos.",
"bundle_column_error.error.title": "O, ne!",
"bundle_column_error.network.body": "Bandant užkrauti šį puslapį įvyko klaida. Tai galėjo atsitikti dėl laikinos tavo interneto ryšio arba šio serverio problemos.",
"bundle_column_error.network.title": "Tinklo klaida",
"bundle_column_error.retry": "Bandyti dar kartą",
- "bundle_column_error.return": "Grįžti į pagrindinį",
- "bundle_column_error.routing.body": "Prašyto puslapio nepavyko rasti. Ar esi tikras (-a), kad adreso juostoje nurodytas URL adresas yra teisingas?",
+ "bundle_column_error.return": "Atgal į pagrindinį",
+ "bundle_column_error.routing.body": "Paprašyto puslapio nepavyko rasti. Ar esi tikras (-a), kad adreso juostoje nurodytas URL adresas yra teisingas?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Uždaryti",
- "bundle_modal_error.message": "Kraunant šį komponentą kažkas nepavyko.",
+ "bundle_modal_error.message": "Įkeliant šį komponentą kažkas nutiko ne taip.",
"bundle_modal_error.retry": "Bandyti dar kartą",
- "closed_registrations.other_server_instructions": "Kadangi Mastodon yra decentralizuotas, gali susikurti paskyrą kitame serveryje ir vis tiek bendrauti su šiuo serveriu.",
- "closed_registrations_modal.description": "Sukurti paskyrą {domain} šiuo metu neįmanoma, bet nepamiršk, kad norint naudotis Mastodon nebūtina turėti paskyrą domene {domain}.",
+ "closed_registrations.other_server_instructions": "Kadangi „Mastodon“ yra decentralizuotas, gali susikurti paskyrą kitame serveryje ir vis tiek bendrauti su šiuo serveriu.",
+ "closed_registrations_modal.description": "Sukurti paskyrą serveryje {domain} šiuo metu neįmanoma, bet nepamiršk, kad norint naudotis „Mastodon“ nebūtina turėti paskyrą serveryje {domain}.",
"closed_registrations_modal.find_another_server": "Rasti kitą serverį",
- "closed_registrations_modal.preamble": "Mastodon yra decentralizuotas, todėl nesvarbu, kur susikursi paskyrą, galėsi sekti ir bendrauti su bet kuriuo šiame serveryje esančiu asmeniu. Jį gali net savarankiškai talpinti!",
- "closed_registrations_modal.title": "Užsiregistruoti Mastodon",
+ "closed_registrations_modal.preamble": "„Mastodon“ yra decentralizuotas, todėl nesvarbu, kur susikursi paskyrą, galėsi sekti ir bendrauti su bet kuriuo šiame serveryje esančiu asmeniu. Jį gali net savarankiškai talpinti!",
+ "closed_registrations_modal.title": "Užsiregistruoti platformoje „Mastodon“",
"column.about": "Apie",
"column.blocks": "Užblokuoti naudotojai",
"column.bookmarks": "Žymės",
"column.community": "Vietinė laiko skalė",
"column.direct": "Privatūs paminėjimai",
"column.directory": "Naršyti profilius",
- "column.domain_blocks": "Užblokuoti domenai",
+ "column.domain_blocks": "Užblokuoti serveriai",
"column.favourites": "Mėgstami",
"column.firehose": "Tiesioginiai srautai",
"column.follow_requests": "Sekimo prašymai",
@@ -131,15 +132,15 @@
"column.notifications": "Pranešimai",
"column.pins": "Prisegti įrašai",
"column.public": "Federacinė laiko skalė",
- "column_back_button.label": "Grįžti",
+ "column_back_button.label": "Atgal",
"column_header.hide_settings": "Slėpti nustatymus",
- "column_header.moveLeft_settings": "Judinti stulpelį į kairę",
- "column_header.moveRight_settings": "Judinti stulpelį į dešinę",
+ "column_header.moveLeft_settings": "Perkelti stulpelį į kairę",
+ "column_header.moveRight_settings": "Perkelti stulpelį į dešinę",
"column_header.pin": "Prisegti",
"column_header.show_settings": "Rodyti nustatymus",
"column_header.unpin": "Atsegti",
"column_subheading.settings": "Nustatymai",
- "community.column_settings.local_only": "Tik vietinė",
+ "community.column_settings.local_only": "Tik vietinis",
"community.column_settings.media_only": "Tik medija",
"community.column_settings.remote_only": "Tik nuotolinis",
"compose.language.change": "Keisti kalbą",
@@ -148,7 +149,7 @@
"compose.published.open": "Atidaryti",
"compose.saved.body": "Įrašas išsaugotas.",
"compose_form.direct_message_warning_learn_more": "Sužinoti daugiau",
- "compose_form.encryption_warning": "Mastodon įrašai nėra visapusiškai šifruojami. Per Mastodon nesidalyk jokia slapta informacija.",
+ "compose_form.encryption_warning": "„Mastodon“ įrašai nėra visapusiškai šifruojami. Per „Mastodon“ nesidalyk jokia slapta informacija.",
"compose_form.hashtag_warning": "Šis įrašas nebus įtrauktas į jokį saitažodį, nes ji nėra vieša. Tik viešų įrašų galima ieškoti pagal saitažodį.",
"compose_form.lock_disclaimer": "Tavo paskyra nėra {locked}. Bet kas gali sekti tave ir peržiūrėti tik sekėjams skirtus įrašus.",
"compose_form.lock_disclaimer.lock": "užrakinta",
@@ -157,8 +158,8 @@
"compose_form.poll.multiple": "Keli pasirinkimai",
"compose_form.poll.option_placeholder": "{number} parinktis",
"compose_form.poll.single": "Pasirinkti vieną",
- "compose_form.poll.switch_to_multiple": "Keisti apklausą, kad būtų galima pasirinkti kelis pasirinkimus",
- "compose_form.poll.switch_to_single": "Keisti apklausą, kad būtų galima pasirinkti vieną pasirinkimą",
+ "compose_form.poll.switch_to_multiple": "Keisti apklausą, kad būtų leidžiama pasirinkti kelis pasirinkimus",
+ "compose_form.poll.switch_to_single": "Keisti apklausą, kad būtų leidžiama pasirinkti vieną pasirinkimą",
"compose_form.poll.type": "Stilius",
"compose_form.publish": "Skelbti",
"compose_form.publish_form": "Naujas įrašas",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Turinio įspėjimas (pasirinktinis)",
"confirmation_modal.cancel": "Atšaukti",
"confirmations.block.confirm": "Blokuoti",
- "confirmations.cancel_follow_request.confirm": "Atšaukti prašymą",
- "confirmations.cancel_follow_request.message": "Ar tikrai nori atšaukti savo prašymą sekti {name}?",
"confirmations.delete.confirm": "Ištrinti",
"confirmations.delete.message": "Ar tikrai nori ištrinti šį įrašą?",
+ "confirmations.delete.title": "Ištrinti įrašą?",
"confirmations.delete_list.confirm": "Ištrinti",
- "confirmations.delete_list.message": "Ar tikrai nori visam laikui ištrinti šį sąrašą?",
+ "confirmations.delete_list.message": "Ar tikrai nori negrįžtamai ištrinti šį sąrašą?",
+ "confirmations.delete_list.title": "Ištrinti sąrašą?",
"confirmations.discard_edit_media.confirm": "Atmesti",
- "confirmations.discard_edit_media.message": "Turi neišsaugotų medijos aprašymo ar peržiūros pakeitimų, vis tiek juos atmesti?",
- "confirmations.domain_block.confirm": "Blokuoti serverį",
- "confirmations.domain_block.message": "Ar tikrai, tikrai nori užblokuoti visą {domain}? Daugeliu atvejų užtenka kelių tikslinių blokavimų arba nutildymų. Šio domeno turinio nematysi jokiose viešose laiko skalėse ar pranešimuose. Tavo sekėjai iš to domeno bus pašalinti.",
+ "confirmations.discard_edit_media.message": "Turi neišsaugotų medijos aprašymo ar peržiūros pakeitimų. Vis tiek juos atmesti?",
"confirmations.edit.confirm": "Redaguoti",
"confirmations.edit.message": "Redaguojant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?",
+ "confirmations.edit.title": "Perrašyti įrašą?",
"confirmations.logout.confirm": "Atsijungti",
"confirmations.logout.message": "Ar tikrai nori atsijungti?",
+ "confirmations.logout.title": "Atsijungti?",
"confirmations.mute.confirm": "Nutildyti",
- "confirmations.redraft.confirm": "Ištrinti ir perrašyti",
- "confirmations.redraft.message": "Ar tikrai nori ištrinti šį įrašą ir parašyti jį iš naujo? Bus prarastos mėgstamai ir pakėlimai, o atsakymai į originalinį įrašą taps liekamojais.",
+ "confirmations.redraft.confirm": "Ištrinti ir iš naujo parengti",
+ "confirmations.redraft.message": "Ar tikrai nori ištrinti šį įrašą ir parengti jį iš naujo? Bus prarasti mėgstami ir pasidalinimai, o atsakymai į originalų įrašą bus panaikinti.",
+ "confirmations.redraft.title": "Ištrinti ir iš naujo parengti įrašą?",
"confirmations.reply.confirm": "Atsakyti",
"confirmations.reply.message": "Atsakant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?",
+ "confirmations.reply.title": "Perrašyti įrašą?",
"confirmations.unfollow.confirm": "Nebesekti",
"confirmations.unfollow.message": "Ar tikrai nori nebesekti {name}?",
+ "confirmations.unfollow.title": "Nebesekti naudotoją?",
+ "content_warning.hide": "Slėpti įrašą",
+ "content_warning.show": "Rodyti vis tiek",
"conversation.delete": "Ištrinti pokalbį",
"conversation.mark_as_read": "Žymėti kaip skaitytą",
"conversation.open": "Peržiūrėti pokalbį",
@@ -200,37 +206,37 @@
"directory.federated": "Iš žinomų fediversų",
"directory.local": "Tik iš {domain}",
"directory.new_arrivals": "Nauji atvykėliai",
- "directory.recently_active": "Neseniai aktyvus (-i)",
+ "directory.recently_active": "Neseniai aktyvus",
"disabled_account_banner.account_settings": "Paskyros nustatymai",
- "disabled_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu yra išjungta.",
+ "disabled_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu išjungta.",
"dismissable_banner.community_timeline": "Tai – naujausi vieši įrašai iš žmonių, kurių paskyros talpinamos {domain}.",
"dismissable_banner.dismiss": "Atmesti",
"dismissable_banner.explore_links": "Tai – naujienos, kuriomis šiandien daugiausiai bendrinamasi socialiniame žiniatinklyje. Naujesnės naujienų istorijos, kurias paskelbė daugiau skirtingų žmonių, vertinamos aukščiau.",
- "dismissable_banner.explore_statuses": "Tai – įrašai iš viso socialinio žiniatinklio, kurie šiandien sulaukia daug dėmesio. Naujesni įrašai, turintys daugiau pakėlimų ir mėgstamų, vertinami aukščiau.",
+ "dismissable_banner.explore_statuses": "Tai – įrašai iš viso socialinio žiniatinklio, kurie šiandien sulaukia daug dėmesio. Naujesni įrašai, turintys daugiau pasidalinimų ir mėgstamų, vertinami aukščiau.",
"dismissable_banner.explore_tags": "Tai – saitažodžiai, kurie šiandien sulaukia daug dėmesio socialiniame žiniatinklyje. Saitažodžiai, kuriuos naudoja daugiau skirtingų žmonių, vertinami aukščiau.",
"dismissable_banner.public_timeline": "Tai – naujausi vieši įrašai iš žmonių socialiniame žiniatinklyje, kuriuos seka {domain} žmonės.",
"domain_block_modal.block": "Blokuoti serverį",
- "domain_block_modal.block_account_instead": "Blokuoti {name} vietoj to",
- "domain_block_modal.they_can_interact_with_old_posts": "Žmonės iš šio serverio gali sąveikauti su tavo senomis įrašomis.",
+ "domain_block_modal.block_account_instead": "Blokuoti @{name} vietoj to",
+ "domain_block_modal.they_can_interact_with_old_posts": "Žmonės iš šio serverio gali bendrauti su tavo senomis įrašomis.",
"domain_block_modal.they_cant_follow": "Niekas iš šio serverio negali tavęs sekti.",
"domain_block_modal.they_wont_know": "Jie nežinos, kad buvo užblokuoti.",
- "domain_block_modal.title": "Blokuoti domeną?",
+ "domain_block_modal.title": "Blokuoti serverį?",
"domain_block_modal.you_will_lose_followers": "Visi tavo sekėjai iš šio serverio bus pašalinti.",
"domain_block_modal.you_wont_see_posts": "Nematysi naudotojų įrašų ar pranešimų šiame serveryje.",
- "domain_pill.activitypub_lets_connect": "Tai leidžia tau prisijungti ir bendrauti su žmonėmis ne tik Mastodon, bet ir įvairiose socialinėse programėlėse.",
- "domain_pill.activitypub_like_language": "ActivityPub – tai tarsi kalba, kuria Mastodon kalba su kitais socialiniais tinklais.",
+ "domain_pill.activitypub_lets_connect": "Tai leidžia tau prisijungti ir bendrauti su žmonėmis ne tik „Mastodon“ platformoje, bet ir įvairiose socialinėse programėlėse.",
+ "domain_pill.activitypub_like_language": "„ActivityPub“ – tai tarsi kalba, kuria „Mastodon“ kalba su kitais socialiniais tinklais.",
"domain_pill.server": "Serveris",
"domain_pill.their_handle": "Jų socialinis medijos vardas:",
"domain_pill.their_server": "Jų skaitmeniniai namai, kuriuose saugomi visi jų įrašai.",
- "domain_pill.their_username": "Jų unikalus identifikatorius jų serveryje. Skirtinguose serveriuose galima rasti naudotojų, turinčių tą patį naudotojo vardą.",
+ "domain_pill.their_username": "Jų unikalus identifikatorius jų serveryje. Skirtinguose serveriuose galima rasti naudotojų su tuo pačiu naudotojo vardu.",
"domain_pill.username": "Naudotojo vardas",
"domain_pill.whats_in_a_handle": "Kas yra socialiniame medijos varde?",
- "domain_pill.who_they_are": "Kadangi socialines medijos vardai nurodo, kas žmogus yra ir kur jie yra, gali sąveikauti su žmonėmis visame socialiniame žiniatinklyje, kurį sudaro ActivityPub veikiančios platformos.",
- "domain_pill.who_you_are": "Kadangi tavo socialinis medijos vardas nurodo, kas esi ir kur esi, žmonės gali sąveikauti su tavimi visame socialiniame tinkle, kurį sudaro ActivityPub veikiančios platformos.",
+ "domain_pill.who_they_are": "Kadangi socialines medijos vardai pasako, kas ir kur jie yra, galima bendrauti su žmonėmis visame socialiniame žiniatinklyje, kurį sudaro „ActivityPub“ veikiančios platformos.",
+ "domain_pill.who_you_are": "Kadangi tavo socialinis medijos vardas pasako, kas ir kur esi, žmonės gali bendrauti su tavimi visame socialiniame žiniatinklyje, kurį sudaro „ActivityPub“ veikiančios platformos.",
"domain_pill.your_handle": "Tavo socialinis medijos vardas:",
"domain_pill.your_server": "Tavo skaitmeniniai namai, kuriuose saugomi visi tavo įrašai. Nepatinka šis? Bet kada perkelk serverius ir atsivesk ir savo sekėjus.",
"domain_pill.your_username": "Tavo unikalus identifikatorius šiame serveryje. Skirtinguose serveriuose galima rasti naudotojų su tuo pačiu naudotojo vardu.",
- "embed.instructions": "Įterpk šį įrašą į savo svetainę nukopijavus (-usi) toliau pateiktą kodą.",
+ "embed.instructions": "Įterpk šį įrašą į savo svetainę nukopijuojant toliau pateiktą kodą.",
"embed.preview": "Štai kaip tai atrodys:",
"emoji_button.activity": "Veikla",
"emoji_button.clear": "Išvalyti",
@@ -255,7 +261,7 @@
"empty_column.bookmarked_statuses": "Dar neturi nė vienos įrašo pridėtos žymės. Kai vieną iš jų pridėsi į žymes, jis bus rodomas čia.",
"empty_column.community": "Vietinė laiko skalė yra tuščia. Parašyk ką nors viešai, kad pradėtum sąveikauti.",
"empty_column.direct": "Dar neturi jokių privačių paminėjimų. Kai išsiųsi arba gausi vieną iš jų, jis bus rodomas čia.",
- "empty_column.domain_blocks": "Dar nėra užblokuotų domenų.",
+ "empty_column.domain_blocks": "Kol kas nėra užblokuotų serverių.",
"empty_column.explore_statuses": "Šiuo metu niekas nėra tendencinga. Patikrink vėliau!",
"empty_column.favourited_statuses": "Dar neturi mėgstamų įrašų. Kai vieną iš jų pamėgsi, jis bus rodomas čia.",
"empty_column.favourites": "Šio įrašo dar niekas nepamėgo. Kai kas nors tai padarys, jie bus rodomi čia.",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Naudok esamą kategoriją arba sukurk naują.",
"filter_modal.select_filter.title": "Filtruoti šį įrašą",
"filter_modal.title.status": "Filtruoti įrašą",
- "filtered_notifications_banner.mentions": "{count, plural, one {paminėjimas} few {paminėjimai} many {paminėjimo} other {paminėjimų}}",
- "filtered_notifications_banner.pending_requests": "Pranešimai iš {count, plural, =0 {nė vieno} one {vienos žmogaus} few {# žmonių} many {# žmonių} other {# žmonių}}, kuriuos galbūt pažįsti",
+ "filter_warning.matches_filter": "Atitinka filtrą „{title}“",
+ "filtered_notifications_banner.pending_requests": "Iš {count, plural, =0 {nė vieno} one {žmogaus} few {# žmonių} many {# žmonių} other {# žmonių}}, kuriuos galbūt pažįsti",
"filtered_notifications_banner.title": "Filtruojami pranešimai",
"firehose.all": "Visi",
"firehose.local": "Šis serveris",
@@ -347,6 +353,14 @@
"hashtag.follow": "Sekti saitažodį",
"hashtag.unfollow": "Nebesekti saitažodį",
"hashtags.and_other": "…ir {count, plural, one {# daugiau} few {# daugiau} many {# daugiau}other {# daugiau}}",
+ "hints.profiles.followers_may_be_missing": "Sekėjai šiai profiliui gali būti nepateikti.",
+ "hints.profiles.follows_may_be_missing": "Sekimai šiai profiliui gali būti nepateikti.",
+ "hints.profiles.posts_may_be_missing": "Kai kurie įrašai iš šio profilio gali būti nepateikti.",
+ "hints.profiles.see_more_followers": "Žiūrėti daugiau sekėjų serveryje {domain}",
+ "hints.profiles.see_more_follows": "Žiūrėti daugiau sekimų serveryje {domain}",
+ "hints.profiles.see_more_posts": "Žiūrėti daugiau įrašų serveryje {domain}",
+ "hints.threads.replies_may_be_missing": "Atsakymai iš kitų serverių gali būti nepateikti.",
+ "hints.threads.see_more": "Žiūrėti daugiau atsakymų serveryje {domain}",
"home.column_settings.show_reblogs": "Rodyti pakėlimus",
"home.column_settings.show_replies": "Rodyti atsakymus",
"home.hide_announcements": "Slėpti skelbimus",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Žiūrėti naujinimus",
"home.pending_critical_update.title": "Galimas kritinis saugumo naujinimas.",
"home.show_announcements": "Rodyti skelbimus",
+ "ignore_notifications_modal.disclaimer": "„Mastodon“ negali informuoti naudotojų, kad ignoravai jų pranešimus. Ignoravus pranešimus, pačių pranešimų siuntimas nebus sustabdytas.",
+ "ignore_notifications_modal.filter_instead": "Filtruoti vietoj to",
+ "ignore_notifications_modal.filter_to_act_users": "Vis dar galėsi priimti, atmesti arba pranešti naudotojus.",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtravimas padeda išvengti galimos painiavos.",
+ "ignore_notifications_modal.filter_to_review_separately": "Filtruotus pranešimus gali peržiūrėti atskirai.",
+ "ignore_notifications_modal.ignore": "Ignoruoti pranešimus",
+ "ignore_notifications_modal.limited_accounts_title": "Ignoruoti pranešimus iš prižiūrėmų paskyrų?",
+ "ignore_notifications_modal.new_accounts_title": "Ignoruoti pranešimus iš naujų paskyrų?",
+ "ignore_notifications_modal.not_followers_title": "Ignoruoti pranešimus iš žmonių, kurie tave neseka?",
+ "ignore_notifications_modal.not_following_title": "Ignoruoti pranešimus iš žmonių, kuriuos neseki?",
+ "ignore_notifications_modal.private_mentions_title": "Ignoruoti pranešimus iš neprašytų privačių paminėjimų?",
"interaction_modal.description.favourite": "Su Mastodon paskyra gali pamėgti šį įrašą, kad autorius (-ė) žinotų, jog vertinti tai ir išsaugoti jį vėliau.",
"interaction_modal.description.follow": "Su Mastodon paskyra gali sekti {name}, kad gautum jų įrašus į pagrindinį srautą.",
"interaction_modal.description.reblog": "Su Mastodon paskyra gali pakelti šią įrašą ir pasidalyti juo su savo sekėjais.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Nebefokusuoti rengykles teksto sritį / paiešką",
"keyboard_shortcuts.up": "Perkelti į viršų sąraše",
"lightbox.close": "Uždaryti",
- "lightbox.compress": "Suspausti vaizdo peržiūros langelį",
- "lightbox.expand": "Išplėsti vaizdo peržiūros langelį",
"lightbox.next": "Kitas",
"lightbox.previous": "Ankstesnis",
+ "lightbox.zoom_in": "Padidink iki tikrojo dydžio",
+ "lightbox.zoom_out": "Padidink, kad tilptų",
"limited_account_hint.action": "Vis tiek rodyti profilį",
"limited_account_hint.title": "Šį profilį paslėpė {domain} prižiūrėtojai.",
"link_preview.author": "Sukūrė {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Tavo sąrašai",
"load_pending": "{count, plural, one {# naujas elementas} few {# nauji elementai} many {# naujo elemento} other {# naujų elementų}}",
"loading_indicator.label": "Kraunama…",
- "media_gallery.toggle_visible": "{number, plural, one {Slėpti vaizdą} few {Slėpti vaizdus} many {Slėpti vaizdo} other {Slėpti vaizdų}}",
+ "media_gallery.hide": "Slėpti",
"moved_to_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu išjungta, nes persikėlei į {movedToAccount}.",
"mute_modal.hide_from_notifications": "Slėpti nuo pranešimų",
"mute_modal.hide_options": "Slėpti parinktis",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Nematysi įrašus, kuriuose jie paminimi.",
"mute_modal.you_wont_see_posts": "Jie vis tiek gali matyti tavo įrašus, bet tu nematysi jų.",
"navigation_bar.about": "Apie",
+ "navigation_bar.administration": "Administravimas",
"navigation_bar.advanced_interface": "Atidaryti išplėstinę žiniatinklio sąsają",
"navigation_bar.blocks": "Užblokuoti naudotojai",
"navigation_bar.bookmarks": "Žymės",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Sekimai ir sekėjai",
"navigation_bar.lists": "Sąrašai",
"navigation_bar.logout": "Atsijungti",
+ "navigation_bar.moderation": "Prižiūrėjimas",
"navigation_bar.mutes": "Nutildyti naudotojai",
"navigation_bar.opened_in_classic_interface": "Įrašai, paskyros ir kiti konkretūs puslapiai pagal numatytuosius nustatymus atidaromi klasikinėje žiniatinklio sąsajoje.",
"navigation_bar.personal": "Asmeninis",
@@ -470,11 +497,19 @@
"navigation_bar.security": "Apsauga",
"not_signed_in_indicator.not_signed_in": "Norint pasiekti šį išteklį, reikia prisijungti.",
"notification.admin.report": "{name} pranešė {target}",
+ "notification.admin.report_account": "{name} pranešė {count, plural, one {# įrašą} few {# įrašus} many {# įrašo} other {# įrašų}} iš {target} kategorijai {category}",
+ "notification.admin.report_account_other": "{name} pranešė {count, plural, one {# įrašą} few {# įrašus} many {# įrašo} other {# įrašų}} iš {target}",
+ "notification.admin.report_statuses": "{name} pranešė {target} kategorijai {category}",
+ "notification.admin.report_statuses_other": "{name} pranešė {target}",
"notification.admin.sign_up": "{name} užsiregistravo",
"notification.favourite": "{name} pamėgo tavo įrašą",
"notification.follow": "{name} seka tave",
"notification.follow_request": "{name} paprašė tave sekti",
- "notification.mention": "{name} paminėjo tave",
+ "notification.label.mention": "Paminėjimas",
+ "notification.label.private_mention": "Privatus paminėjimas",
+ "notification.label.private_reply": "Privatus atsakymas",
+ "notification.label.reply": "Atsakymas",
+ "notification.mention": "Paminėjimas",
"notification.moderation-warning.learn_more": "Sužinoti daugiau",
"notification.moderation_warning": "Gavai prižiūrėjimo įspėjimą",
"notification.moderation_warning.action_delete_statuses": "Kai kurie tavo įrašai buvo pašalintos.",
@@ -485,7 +520,7 @@
"notification.moderation_warning.action_silence": "Tavo paskyra buvo apribota.",
"notification.moderation_warning.action_suspend": "Tavo paskyra buvo sustabdyta.",
"notification.own_poll": "Tavo apklausa baigėsi",
- "notification.poll": "Apklausa, kurioje balsavai, pasibaigė",
+ "notification.poll": "Baigėsi apklausa, kurioje balsavai",
"notification.reblog": "{name} pakėlė tavo įrašą",
"notification.relationships_severance_event": "Prarasti sąryšiai su {name}",
"notification.relationships_severance_event.learn_more": "Sužinoti daugiau",
@@ -493,11 +528,27 @@
"notification.status": "{name} ką tik paskelbė",
"notification.update": "{name} redagavo įrašą",
"notification_requests.accept": "Priimti",
+ "notification_requests.accept_multiple": "{count, plural, one {Priimti # prašymą…} few {Priimti # prašymus…} many {Priimti # prašymo…} other {Priimti # prašymų…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Priimti prašymą} few {Priimti prašymus} many {Priimti prašymo} other {Priimti prašymų}}",
+ "notification_requests.confirm_accept_multiple.message": "Ketini priimti {count, plural, one {# pranešimo prašymą} few {# pranešimų prašymus} many {# pranešimo prašymo} other {# pranešimų prašymų}}. Ar tikrai nori tęsti?",
+ "notification_requests.confirm_accept_multiple.title": "Priimti pranešimų prašymus?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Atmesti prašymą} few {Atmesti prašymus} many {Atmesti prašymo} other {Atmesti prašymų}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Ketini atmesti {count, plural, one {# pranešimo prašymą} few {# pranešimų prašymus} many {# pranešimo prašymo} other {# pranešimų prašymų}}. Daugiau negalėsi lengvai pasiekti {count, plural, one {jo} few {jų} many {juos} other {jų}}. Ar tikrai nori tęsti?",
+ "notification_requests.confirm_dismiss_multiple.title": "Atmesti pranešimų prašymus?",
"notification_requests.dismiss": "Atmesti",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Atmesti prašymą…} few {Atmesti prašymus…} many {Atmesti prašymo…} other {Atmesti prašymų…}}",
+ "notification_requests.edit_selection": "Redaguoti",
+ "notification_requests.exit_selection": "Atlikta",
+ "notification_requests.explainer_for_limited_account": "Pranešimai iš šios paskyros buvo filtruojami, nes prižiūrėtojas (-a) apribojo paskyrą.",
+ "notification_requests.explainer_for_limited_remote_account": "Pranešimai iš šios paskyros buvo filtruojami, nes prižiūrėtojas (-a) apribojo paskyrą arba serverį.",
+ "notification_requests.maximize": "Padidinti",
+ "notification_requests.minimize_banner": "Mažinti filtruotų pranešimų reklamjuostę",
"notification_requests.notifications_from": "Pranešimai iš {name}",
"notification_requests.title": "Filtruojami pranešimai",
+ "notification_requests.view": "Peržiūrėti pranešimus",
"notifications.clear": "Išvalyti pranešimus",
"notifications.clear_confirmation": "Ar tikrai nori visam laikui išvalyti visus pranešimus?",
+ "notifications.clear_title": "Valyti pranešimus?",
"notifications.column_settings.admin.report": "Naujos ataskaitos:",
"notifications.column_settings.admin.sign_up": "Naujos registracijos:",
"notifications.column_settings.alert": "Darbalaukio pranešimai",
@@ -529,12 +580,20 @@
"notifications.permission_denied": "Darbalaukio pranešimai nepasiekiami dėl anksčiau atmestos naršyklės leidimų užklausos.",
"notifications.permission_denied_alert": "Negalima įjungti darbalaukio pranešimų, nes prieš tai naršyklės leidimas buvo atmestas.",
"notifications.permission_required": "Darbalaukio pranešimai nepasiekiami, nes nebuvo suteiktas reikiamas leidimas.",
+ "notifications.policy.accept": "Priimti",
+ "notifications.policy.accept_hint": "Rodyti pranešimuose",
+ "notifications.policy.drop": "Ignoruoti",
+ "notifications.policy.drop_hint": "Siųsti į tuštumą, kad daugiau niekada nebepasirodytų",
+ "notifications.policy.filter": "Filtruoti",
+ "notifications.policy.filter_hint": "Siųsti į filtruotų pranešimų gautiejus",
+ "notifications.policy.filter_limited_accounts_hint": "Apribota serverio prižiūrėtojų",
+ "notifications.policy.filter_limited_accounts_title": "Prižiūrėmi paskyrai",
"notifications.policy.filter_new_accounts.hint": "Sukurta per {days, plural, one {vieną dieną} few {# dienas} many {# dienos} other {# dienų}}",
"notifications.policy.filter_new_accounts_title": "Naujos paskyros",
"notifications.policy.filter_not_following_hint": "Kol jų nepatvirtinsi rankiniu būdu",
"notifications.policy.filter_not_following_title": "Žmonių, kuriuos neseki",
"notifications.policy.filter_private_mentions_title": "Nepageidaujami privatūs paminėjimai",
- "notifications.policy.title": "Filtruoti pranešimus iš…",
+ "notifications.policy.title": "Tvarkyti pranešimus iš…",
"notifications_permission_banner.enable": "Įjungti darbalaukio pranešimus",
"notifications_permission_banner.how_to_control": "Jei nori gauti pranešimus, kai Mastodon nėra atidarytas, įjunk darbalaukio pranešimus. Įjungęs (-usi) darbalaukio pranešimus, gali tiksliai valdyti, kokių tipų sąveikos generuoja darbalaukio pranešimus, naudojant pirmiau esančiu mygtuku {icon}.",
"notifications_permission_banner.title": "Niekada nieko nepraleisk",
@@ -574,7 +633,7 @@
"onboarding.steps.share_profile.title": "Bendrink savo Mastodon profilį",
"onboarding.tips.2fa": "Ar žinojai? Savo paskyrą gali apsaugoti nustatant dviejų veiksnių tapatybės nustatymą paskyros nustatymuose. Jis veikia su bet kuria pasirinkta TOTP programėle, telefono numeris nebūtinas.",
"onboarding.tips.accounts_from_other_servers": "Ar žinojai? Kadangi Mastodon decentralizuotas, kai kurie profiliai, su kuriais susidursi, bus talpinami ne tavo, o kituose serveriuose. Ir vis tiek galėsi su jais sklandžiai bendrauti! Jų serveris yra antroje naudotojo vardo pusėje.",
- "onboarding.tips.migration": "Ar žinojai? Jei manai, kad {domain} serveris ateityje tau netiks, gali persikelti į kitą Mastodon serverį neprarandant savo sekėjų. Gali net talpinti savo paties serverį.",
+ "onboarding.tips.migration": "Ar žinojai? Jei manai, kad {domain} serveris ateityje tau netiks, gali persikelti į kitą „Mastodon“ serverį neprarandant savo sekėjų. Gali net talpinti savo paties serverį!",
"onboarding.tips.verification": "Ar žinojai? Savo paskyrą gali patvirtinti pateikęs (-usi) nuorodą į Mastodon profilį savo interneto svetainėje ir pridėjęs (-usi) svetainę prie savo profilio. Nereikia jokių mokesčių ar dokumentų.",
"password_confirmation.exceeds_maxlength": "Slaptažodžio patvirtinimas viršija maksimalų slaptažodžio ilgį.",
"password_confirmation.mismatching": "Slaptažodžio patvirtinimas nesutampa.",
@@ -661,9 +720,13 @@
"report.unfollow_explanation": "Tu seki šią paskyrą. Jei nori nebematyti jų įrašų savo pagrindiniame sraute, nebesek jų.",
"report_notification.attached_statuses": "Pridėti {count, plural, one {{count} įrašas} few {{count} įrašai} many {{count} įrašo} other {{count} įrašų}}",
"report_notification.categories.legal": "Teisinės",
+ "report_notification.categories.legal_sentence": "nelegalus turinys",
"report_notification.categories.other": "Kita",
+ "report_notification.categories.other_sentence": "kita",
"report_notification.categories.spam": "Šlamštas",
+ "report_notification.categories.spam_sentence": "šlamštas",
"report_notification.categories.violation": "Taisyklės pažeidimas",
+ "report_notification.categories.violation_sentence": "taisyklės pažeidimas",
"report_notification.open": "Atidaryti ataskaitą",
"search.no_recent_searches": "Nėra naujausių paieškų.",
"search.placeholder": "Paieška",
@@ -696,7 +759,7 @@
"sign_in_banner.create_account": "Sukurti paskyrą",
"sign_in_banner.follow_anyone": "Sek bet kurį asmenį visoje fediverse ir žiūrėk viską chronologine tvarka. Jokių algoritmų, reklamų ar paspaudimų.",
"sign_in_banner.mastodon_is": "„Mastodon“ – tai geriausias būdas sekti, kas vyksta.",
- "sign_in_banner.sign_in": "Prisijungimas",
+ "sign_in_banner.sign_in": "Prisijungti",
"sign_in_banner.sso_redirect": "Prisijungti arba užsiregistruoti",
"status.admin_account": "Atidaryti prižiūrėjimo sąsają @{name}",
"status.admin_domain": "Atidaryti prižiūrėjimo sąsają {domain}",
@@ -705,6 +768,7 @@
"status.bookmark": "Pridėti į žymės",
"status.cancel_reblog_private": "Nebepakelti",
"status.cannot_reblog": "Šis įrašas negali būti pakeltas.",
+ "status.continued_thread": "Tęsiama gijoje",
"status.copy": "Kopijuoti nuorodą į įrašą",
"status.delete": "Ištrinti",
"status.detailed_status": "Išsami pokalbio peržiūra",
@@ -713,12 +777,9 @@
"status.edit": "Redaguoti",
"status.edited": "Paskutinį kartą redaguota {date}",
"status.edited_x_times": "Redaguota {count, plural, one {{count} kartą} few {{count} kartus} many {{count} karto} other {{count} kartų}}",
- "status.embed": "Įterpti",
"status.favourite": "Pamėgti",
"status.favourites": "{count, plural, one {mėgstamas} few {mėgstamai} many {mėgstamų} other {mėgstamų}}",
"status.filter": "Filtruoti šį įrašą",
- "status.filtered": "Filtruota",
- "status.hide": "Slėpti įrašą",
"status.history.created": "{name} sukurta {date}",
"status.history.edited": "{name} redaguota {date}",
"status.load_more": "Krauti daugiau",
@@ -739,16 +800,14 @@
"status.reblogs.empty": "Šio įrašo dar niekas nepakėlė. Kai kas nors tai padarys, jie bus rodomi čia.",
"status.redraft": "Ištrinti ir parengti iš naujo",
"status.remove_bookmark": "Pašalinti žymę",
+ "status.replied_in_thread": "Atsakyta gijoje",
"status.replied_to": "Atsakyta į {name}",
"status.reply": "Atsakyti",
"status.replyAll": "Atsakyti į giją",
"status.report": "Pranešti apie @{name}",
"status.sensitive_warning": "Jautrus turinys",
"status.share": "Bendrinti",
- "status.show_filter_reason": "Rodyti vis tiek",
- "status.show_less": "Rodyti mažiau",
"status.show_less_all": "Rodyti mažiau visiems",
- "status.show_more": "Rodyti daugiau",
"status.show_more_all": "Rodyti daugiau visiems",
"status.show_original": "Rodyti originalą",
"status.title.with_attachments": "{user} paskelbė {attachmentCount, plural, one {priedą} few {{attachmentCount} priedus} many {{attachmentCount} priedo} other {{attachmentCount} priedų}}",
@@ -767,10 +826,6 @@
"time_remaining.minutes": "liko {number, plural, one {# minutė} few {# minutės} many {# minutės} other {# minučių}}",
"time_remaining.moments": "liko akimirkos",
"time_remaining.seconds": "liko {number, plural, one {# sekundė} few {# sekundės} many {# sekundės} other {# sekundžių}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} iš kitų serverių nerodomi.",
- "timeline_hint.resources.followers": "Sekėjai",
- "timeline_hint.resources.follows": "Seka",
- "timeline_hint.resources.statuses": "Senesni įrašai",
"trends.counter_by_accounts": "{count, plural, one {{counter} žmogus} few {{counter} žmonės} many {{counter} žmogus} other {{counter} žmonių}} per {days, plural, one {dieną} few {{days} dienas} many {{days} dienas} other {{days} dienų}}",
"trends.trending_now": "Tendencinga dabar",
"ui.beforeunload": "Jei paliksi Mastodon, tavo juodraštis bus prarastas.",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 13ceec21c82..43fa8369f42 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -11,7 +11,7 @@
"about.not_available": "Šī informācija nav padarīta pieejama šajā serverī.",
"about.powered_by": "Decentralizētu sociālo tīklu nodrošina {mastodon}",
"about.rules": "Servera noteikumi",
- "account.account_note_header": "Piezīme",
+ "account.account_note_header": "Personīga piezīme",
"account.add_or_remove_from_list": "Pievienot vai Noņemt no sarakstiem",
"account.badges.bot": "Automatizēts",
"account.badges.group": "Grupa",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloķēt domēnu {domain}",
"account.block_short": "Bloķēt",
"account.blocked": "Bloķēts",
- "account.browse_more_on_origin_server": "Pārlūkot vairāk sākotnējā profilā",
"account.cancel_follow_request": "Atsaukt sekošanas pieprasījumu",
"account.copy": "Ievietot saiti uz profilu starpliktuvē",
"account.direct": "Pieminēt @{name} privāti",
@@ -35,9 +34,8 @@
"account.follow_back": "Sekot atpakaļ",
"account.followers": "Sekotāji",
"account.followers.empty": "Šim lietotājam vēl nav sekotāju.",
- "account.followers_counter": "{count, plural, zero {{counter} sekotāju} one {{counter} sekotājs} other {{counter} sekotāji}}",
+ "account.followers_counter": "{count, plural, zero {{count} sekotāju} one {{count} sekotājs} other {{count} sekotāji}}",
"account.following": "Seko",
- "account.following_counter": "{count, plural, zero{{counter} sekojamo} one {{counter} sekojamais} other {{counter} sekojamie}}",
"account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.",
"account.go_to_profile": "Doties uz profilu",
"account.hide_reblogs": "Paslēpt @{name} pastiprinātos ierakstus",
@@ -63,7 +61,6 @@
"account.requested_follow": "{name} nosūtīja Tev sekošanas pieprasījumu",
"account.share": "Dalīties ar @{name} profilu",
"account.show_reblogs": "Parādīt @{name} pastiprinātos ierakstus",
- "account.statuses_counter": "{count, plural, zero {{counter} ierakstu} one {{counter} ieraksts} other {{counter} ieraksti}}",
"account.unblock": "Atbloķēt @{name}",
"account.unblock_domain": "Atbloķēt domēnu {domain}",
"account.unblock_short": "Atbloķēt",
@@ -94,7 +91,10 @@
"block_modal.show_more": "Parādīt mazāk",
"block_modal.they_cant_mention": "Nevar Tevi pieminēt vai sekot Tev.",
"block_modal.they_cant_see_posts": "Nevar redzēt Tavus ierakstus, un Tu neredzēsi lietotāja.",
+ "block_modal.title": "Bloķēt lietotāju?",
"boost_modal.combo": "Nospied {combo}, lai nākamreiz šo izlaistu",
+ "boost_modal.reblog": "Pastiprināt ierakstu?",
+ "boost_modal.undo_reblog": "Atcelt ieraksta pastiprināšanu?",
"bundle_column_error.copy_stacktrace": "Kopēt kļūdu ziņojumu",
"bundle_column_error.error.body": "Pieprasīto lapu nevarēja atveidot. Tas varētu būt saistīts ar kļūdu mūsu kodā, vai tā ir pārlūkprogrammas saderības problēma.",
"bundle_column_error.error.title": "Ak vai!",
@@ -156,6 +156,7 @@
"compose_form.poll.single": "Jāizvēlas viens",
"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_form": "Jauns ieraksts",
"compose_form.reply": "Atbildēt",
@@ -165,26 +166,32 @@
"compose_form.spoiler_placeholder": "Satura brīdinājums (pēc izvēles)",
"confirmation_modal.cancel": "Atcelt",
"confirmations.block.confirm": "Bloķēt",
- "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu",
- "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?",
"confirmations.delete.confirm": "Dzēst",
"confirmations.delete.message": "Vai tiešām vēlies dzēst šo ierakstu?",
+ "confirmations.delete.title": "Izdzēst ierakstu?",
"confirmations.delete_list.confirm": "Dzēst",
"confirmations.delete_list.message": "Vai tiešām neatgriezeniski izdzēst šo sarakstu?",
+ "confirmations.delete_list.title": "Izdzēst sarakstu?",
"confirmations.discard_edit_media.confirm": "Atmest",
"confirmations.discard_edit_media.message": "Ir nesaglabātas izmaiņas informācijas nesēja aprakstā vai priekšskatījumā. Vēlies tās atmest tik un tā?",
- "confirmations.domain_block.message": "Vai tu tiešām vēlies bloķēt visu domēnu {domain}? Parasti pietiek, ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.",
"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.logout.confirm": "Iziet",
"confirmations.logout.message": "Vai tiešām vēlies izrakstīties?",
+ "confirmations.logout.title": "Atteikties?",
"confirmations.mute.confirm": "Apklusināt",
"confirmations.redraft.confirm": "Dzēst un pārrakstīt",
"confirmations.redraft.message": "Vai tiešām vēlies dzēst šo ziņu un no jauna noformēt to? Izlase un pastiprinājumi tiks zaudēti, un atbildes uz sākotnējo ziņu tiks atstātas bez autoratlīdzības.",
+ "confirmations.redraft.title": "Dzēst un rakstīt vēlreiz?",
"confirmations.reply.confirm": "Atbildēt",
"confirmations.reply.message": "Tūlītēja atbildēšana pārrakstīs pašlaik sastādīto ziņu. Vai tiešām turpināt?",
+ "confirmations.reply.title": "Pārrakstīt ierakstu?",
"confirmations.unfollow.confirm": "Pārstāt sekot",
"confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?",
+ "confirmations.unfollow.title": "Pārtraukt sekošanu lietotājam?",
+ "content_warning.hide": "Paslēpt ierakstu",
+ "content_warning.show": "Tomēr rādīt",
"conversation.delete": "Dzēst sarunu",
"conversation.mark_as_read": "Atzīmēt kā izlasītu",
"conversation.open": "Skatīt sarunu",
@@ -204,7 +211,11 @@
"dismissable_banner.explore_statuses": "Šie ir ieraksti, kas šodien gūst arvien lielāku ievērību visā sociālajā tīklā. Augstāk tiek kārtoti jaunāki ieraksti, kuri tiek vairāk pastiprināti un ievietoti izlasēs.",
"dismissable_banner.explore_tags": "Šie tēmturi šobrīd kļūst arvien populārāki cilvēku vidū šajā un citos decentralizētā tīkla serveros.",
"dismissable_banner.public_timeline": "Šie ir jaunākie publiskie ieraksti no lietotājiem sociālajā tīmeklī, kuriem {domain} seko cilvēki.",
+ "domain_block_modal.block": "Bloķēt serveri",
"domain_block_modal.they_cant_follow": "Neviens šajā serverī nevar Tev sekot.",
+ "domain_block_modal.they_wont_know": "Viņi nezinās, ka tikuši bloķēti.",
+ "domain_block_modal.title": "Bloķēt domēnu?",
+ "domain_block_modal.you_will_lose_followers": "Tiks noņemti visi tavi sekotāji no šī servera.",
"domain_pill.server": "Serveris",
"domain_pill.username": "Lietotājvārds",
"embed.instructions": "Iestrādā šo ziņu savā mājaslapā, kopējot zemāk redzamo kodu.",
@@ -273,7 +284,7 @@
"filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu",
"filter_modal.select_filter.title": "Filtrēt šo ziņu",
"filter_modal.title.status": "Filtrēt ziņu",
- "filtered_notifications_banner.pending_requests": "Paziņojumi no {count, plural, =0 {neviena} one {viena cilvēka} other {# cilvēkiem}}, ko Tu varētu zināt",
+ "filter_warning.matches_filter": "Atbilst filtram “{title}”",
"firehose.all": "Visi",
"firehose.local": "Šis serveris",
"firehose.remote": "Citi serveri",
@@ -282,6 +293,7 @@
"follow_requests.unlocked_explanation": "Lai gan Tavs konts nav slēgts, {domain} darbinieki iedomājās, ka Tu varētu vēlēties pašrocīgi pārskatīt sekošanas pieprasījumus no šiem kontiem.",
"follow_suggestions.curated_suggestion": "Darbinieku izvēle",
"follow_suggestions.dismiss": "Vairs nerādīt",
+ "follow_suggestions.friends_of_friends_longer": "Populārs to cilvēku vidū, kuriem tu seko",
"follow_suggestions.personalized_suggestion": "Pielāgots ieteikums",
"follow_suggestions.similar_to_recently_followed_longer": "Līdzīgi profieliem, kuriem nesen sāki sekot",
"follow_suggestions.view_all": "Skatīt visu",
@@ -312,12 +324,13 @@
"hashtag.follow": "Sekot tēmturim",
"hashtag.unfollow": "Pārstāt sekot tēmturim",
"hashtags.and_other": "… un {count, plural, other {vēl #}}",
+ "hints.threads.replies_may_be_missing": "Var trūkt atbildes no citiem serveriem.",
"home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus",
"home.column_settings.show_replies": "Rādīt atbildes",
"home.hide_announcements": "Slēpt paziņojumus",
- "home.pending_critical_update.body": "Lūdzu, pēc iespējas ātrāk atjaunini savu Mastodon serveri!",
+ "home.pending_critical_update.body": "Lūgums pēc iespējas drīzāk atjaunināt savu Mastodon serveri.",
"home.pending_critical_update.link": "Skatīt jauninājumus",
- "home.pending_critical_update.title": "Pieejams kritisks drošības jauninājums!",
+ "home.pending_critical_update.title": "Ir pieejams būtisks drošības atjauninājums.",
"home.show_announcements": "Rādīt paziņojumus",
"interaction_modal.description.favourite": "Ar Mastodon kontu tu vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē, un saglabātu to vēlākai lasīšanai.",
"interaction_modal.description.follow": "Ar Mastodon kontu Tu vari sekot {name}, lai saņemtu lietotāja ierakstus savā mājas plūsmā.",
@@ -372,8 +385,6 @@
"keyboard_shortcuts.unfocus": "Atfokusēt veidojamā teksta/meklēšanas lauku",
"keyboard_shortcuts.up": "Pārvietoties augšup sarakstā",
"lightbox.close": "Aizvērt",
- "lightbox.compress": "Saspiest attēla skata lodziņu",
- "lightbox.expand": "Izvērst attēla skata lodziņu",
"lightbox.next": "Tālāk",
"lightbox.previous": "Iepriekšējais",
"limited_account_hint.action": "Tik un tā rādīt profilu",
@@ -396,7 +407,7 @@
"lists.subheading": "Tavi saraksti",
"load_pending": "{count, plural, one {# jauna lieta} other {# jaunas lietas}}",
"loading_indicator.label": "Ielādē…",
- "media_gallery.toggle_visible": "{number, plural, one {Slēpt attēlu} other {Slēpt attēlus}}",
+ "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}.",
"mute_modal.hide_from_notifications": "Paslēpt paziņojumos",
"mute_modal.hide_options": "Paslēpt iespējas",
@@ -433,7 +444,6 @@
"notification.favourite": "{name} pievienoja tavu ziņu izlasei",
"notification.follow": "{name} uzsāka Tev sekot",
"notification.follow_request": "{name} nosūtīja Tev sekošanas pieprasījumu",
- "notification.mention": "{name} pieminēja Tevi",
"notification.moderation-warning.learn_more": "Uzzināt vairāk",
"notification.moderation_warning.action_delete_statuses": "Daži no Taviem ierakstiem tika noņemti.",
"notification.moderation_warning.action_disable": "Tavs konts tika atspējots.",
@@ -442,7 +452,6 @@
"notification.moderation_warning.action_silence": "Tavs konts tika ierobežots.",
"notification.moderation_warning.action_suspend": "Tava konta darbība tika apturēta.",
"notification.own_poll": "Tava aptauja ir noslēgusies",
- "notification.poll": "Aptauja, kurā tu piedalījies, ir noslēgusies",
"notification.reblog": "{name} pastiprināja Tavu ierakstu",
"notification.relationships_severance_event": "Zaudēti savienojumi ar {name}",
"notification.relationships_severance_event.learn_more": "Uzzināt vairāk",
@@ -489,7 +498,6 @@
"notifications.policy.filter_not_followers_title": "Cilvēki, kuri Tev neseko",
"notifications.policy.filter_not_following_hint": "Līdz tos pašrocīgi apstiprināsi",
"notifications.policy.filter_not_following_title": "Cilvēki, kuriem Tu neseko",
- "notifications.policy.title": "Atlasīt paziņojumus no…",
"notifications_permission_banner.enable": "Iespējot darbvirsmas paziņojumus",
"notifications_permission_banner.how_to_control": "Lai saņemtu paziņojumus, kad Mastodon nav atvērts, iespējo darbvirsmas paziņojumus. Vari precīzi kontrolēt, kāda veida mijiedarbības rada darbvirsmas paziņojumus, izmantojot augstāk redzamo pogu {icon}, kad tie būs iespējoti.",
"notifications_permission_banner.title": "Nekad nepalaid neko garām",
@@ -661,12 +669,9 @@
"status.edit": "Labot",
"status.edited": "Pēdējoreiz labots {date}",
"status.edited_x_times": "Labots {count, plural, zero {{count} reižu} one {{count} reizi} other {{count} reizes}}",
- "status.embed": "Iegult",
"status.favourite": "Izlasē",
"status.favourites": "{count, plural, zero {izlasēs} one {izlasē} other {izlasēs}}",
"status.filter": "Filtrē šo ziņu",
- "status.filtered": "Filtrēts",
- "status.hide": "Slēpt ierakstu",
"status.history.created": "{name} izveidoja {date}",
"status.history.edited": "{name} laboja {date}",
"status.load_more": "Ielādēt vairāk",
@@ -694,10 +699,7 @@
"status.report": "Ziņot par @{name}",
"status.sensitive_warning": "Sensitīvs saturs",
"status.share": "Kopīgot",
- "status.show_filter_reason": "Tomēr rādīt",
- "status.show_less": "Rādīt mazāk",
"status.show_less_all": "Rādīt mazāk visiem",
- "status.show_more": "Rādīt vairāk",
"status.show_more_all": "Rādīt vairāk visiem",
"status.show_original": "Rādīt oriģinālu",
"status.title.with_attachments": "{user} publicējis {attachmentCount, plural, one {pielikumu} other {{attachmentCount} pielikumus}}",
@@ -716,10 +718,6 @@
"time_remaining.minutes": "{number, plural, one {Atlikusi # minūte} other {Atlikušas # minūtes}}",
"time_remaining.moments": "Atlikuši daži mirkļi",
"time_remaining.seconds": "Atlikušas {number, plural, one {# sekunde} other {# sekundes}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} no citiem serveriem nav parādīti.",
- "timeline_hint.resources.followers": "Sekotāji",
- "timeline_hint.resources.follows": "Seko",
- "timeline_hint.resources.statuses": "Vecāki ieraksti",
"trends.counter_by_accounts": "{count, plural, zero {{counter} cilvēku} one {{counter} cilvēks} other {{counter} cilvēki}} {days, plural, one {{day} dienā} other {{days} dienās}}",
"trends.trending_now": "Pašlaik populāri",
"ui.beforeunload": "Ja pametīsit Mastodonu, jūsu melnraksts tiks zaudēts.",
diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json
index d8a470ed47e..084a94cc14a 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -10,7 +10,6 @@
"about.not_available": "Оваа информација не е достапна на овој сервер.",
"about.powered_by": "Децентрализиран друштвен медиум овозможен од {mastodon}",
"about.rules": "Правила на серверот",
- "account.account_note_header": "Белешка",
"account.add_or_remove_from_list": "Додади или одстрани од листа",
"account.badges.bot": "Бот",
"account.badges.group": "Група",
@@ -38,7 +37,6 @@
"account.requested": "Се чека одобрување. Кликни за да одкажиш барање за следење",
"account.share": "Сподели @{name} профил",
"account.show_reblogs": "Прикажи бустови од @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "Одблокирај @{name}",
"account.unblock_domain": "Прикажи {domain}",
"account.unendorse": "Не прикажувај на профил",
@@ -85,7 +83,6 @@
"confirmations.delete.message": "Сигурни сте дека го бришите статусот?",
"confirmations.delete_list.confirm": "Избриши",
"confirmations.delete_list.message": "Дали сте сигурни дека сакате да го избришете списоков?",
- "confirmations.domain_block.message": "Дали скроз сте сигурни дека ќе блокирате сѐ од {domain}? Во повеќето случаеви неколку таргетирани блокирања или заќутувања се доволни и предложени. Нема да ја видите содржината од тој домеин во никој јавен времеплов или вашите нотификации. Вашите следбеници од тој домеин ќе бидат остранети.",
"confirmations.logout.confirm": "Одјави се",
"confirmations.logout.message": "Дали сте сигурни дека сакате да се одјавите?",
"confirmations.mute.confirm": "Заќути",
@@ -248,7 +245,6 @@
"time_remaining.minutes": "{number, plural, one {# минута} other {# минути}} {number, plural, one {остана} other {останаа}}",
"time_remaining.moments": "Уште некои мига",
"time_remaining.seconds": "{number, plural, one {# секунда} other {# секунди}} {number, plural, one {остана} other {останаа}}",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index 8fb4e818db2..5ed6f219db5 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -5,14 +5,12 @@
"about.domain_blocks.silenced.title": "പരിമിതമായത്",
"about.domain_blocks.suspended.title": "താൽക്കാലികമായി നിർത്തിവെച്ചിരിക്കുന്നു",
"about.rules": "സെർവ്വർ നിയമങ്ങൾ",
- "account.account_note_header": "കുറിപ്പ്",
"account.add_or_remove_from_list": "പട്ടികയിൽ ചേർക്കുകയോ/മാറ്റുകയോ ചെയ്യുക",
"account.badges.bot": "റോബോട്ട്",
"account.badges.group": "ഗ്രൂപ്പ്",
"account.block": "@{name} -നെ തടയുക",
"account.block_domain": "{domain} എന്ന മേഖല തടയുക",
"account.blocked": "തടഞ്ഞു",
- "account.browse_more_on_origin_server": "യഥാർത്ഥ പ്രൊഫൈലിലേക്ക് പോവുക",
"account.cancel_follow_request": "Withdraw follow request",
"account.disable_notifications": "@{name} പോസ്റ്റുചെയ്യുന്നത് എന്നെ അറിയിക്കുന്നത് നിർത്തുക",
"account.domain_blocked": "മേഖല തടഞ്ഞു",
@@ -22,9 +20,7 @@
"account.follow": "പിന്തുടരുക",
"account.followers": "പിന്തുടരുന്നവർ",
"account.followers.empty": "ഈ ഉപയോക്താവിനെ ആരും ഇതുവരെ പിന്തുടരുന്നില്ല.",
- "account.followers_counter": "{count, plural, one {{counter} പിന്തുടരുന്നവർ} other {{counter} പിന്തുടരുന്നവർ}}",
"account.following": "പിന്തുടരുന്നു",
- "account.following_counter": "{count, plural, one {{counter} പിന്തുടരുന്നു} other {{counter} പിന്തുടരുന്നു}}",
"account.follows.empty": "ഈ ഉപയോക്താവ് ആരേയും ഇതുവരെ പിന്തുടരുന്നില്ല.",
"account.go_to_profile": "പ്രൊഫൈലിലേക്ക് പോകാം",
"account.hide_reblogs": "@{name} ബൂസ്റ്റ് ചെയ്തവ മറയ്കുക",
@@ -42,7 +38,6 @@
"account.requested": "അനുവാദത്തിനായി കാത്തിരിക്കുന്നു. പിന്തുടരാനുള്ള അപേക്ഷ റദ്ദാക്കുവാൻ ഞെക്കുക",
"account.share": "@{name} ന്റെ പ്രൊഫൈൽ പങ്കിടുക",
"account.show_reblogs": "@{name} ൽ നിന്നുള്ള ബൂസ്റ്റുകൾ കാണിക്കുക",
- "account.statuses_counter": "{count, plural, one {{counter} ടൂട്ട്} other {{counter} ടൂട്ടുകൾ}}",
"account.unblock": "@{name} തടഞ്ഞത് മാറ്റുക",
"account.unblock_domain": "{domain} എന്ന മേഖല വെളിപ്പെടുത്തുക",
"account.unblock_short": "അൺബ്ലോക്കു ചെയ്യുക",
@@ -242,7 +237,6 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} നിങ്ങളെ പിന്തുടർന്നു",
"notification.follow_request": "{name} നിങ്ങളെ പിന്തുടരാൻ അഭ്യർത്ഥിച്ചു",
- "notification.mention": "{name} നിങ്ങളെ സൂചിപ്പിച്ചു",
"notification.own_poll": "നിങ്ങളുടെ പോൾ അവസാനിച്ചു",
"notification.reblog": "{name} നിങ്ങളുടെ പോസ്റ്റ് ബൂസ്റ്റ് ചെയ്തു",
"notification.status": "{name} ഇപ്പോൾ പോസ്റ്റുചെയ്തു",
@@ -314,8 +308,6 @@
"status.delete": "മായ്ക്കുക",
"status.detailed_status": "വിശദമായ സംഭാഷണ കാഴ്ച",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "ഉൾച്ചേർക്കുക",
- "status.filtered": "ഫിൽട്ടർ ചെയ്തു",
"status.load_more": "കൂടുതൽ ലോഡു ചെയ്യുക",
"status.media_hidden": "മീഡിയ മറച്ചു",
"status.mention": "@{name} സൂചിപ്പിക്കുക",
@@ -333,17 +325,12 @@
"status.reply": "മറുപടി",
"status.report": "@{name}--നെ റിപ്പോർട്ട് ചെയ്യുക",
"status.share": "പങ്കിടുക",
- "status.show_less": "കുറച്ച് കാണിക്കുക",
- "status.show_more": "കൂടുതകൽ കാണിക്കുക",
"status.show_more_all": "എല്ലാവർക്കുമായി കൂടുതൽ കാണിക്കുക",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"tabs_bar.home": "ഹോം",
"tabs_bar.notifications": "അറിയിപ്പുകൾ",
"time_remaining.days": "{number, plural, one {# ദിവസം} other {# ദിവസങ്ങൾ}} ബാക്കി",
"time_remaining.hours": "{number, plural, one {# മണിക്കൂർ} other {# മണിക്കൂർ}} ശേഷിക്കുന്നു",
- "timeline_hint.resources.followers": "പിന്തുടരുന്നവർ",
- "timeline_hint.resources.follows": "പിന്തുടരുന്നു",
- "timeline_hint.resources.statuses": "പഴയ ടൂട്ടുകൾ",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "ഇപ്പോൾ ട്രെൻഡിംഗ്",
"units.short.million": "{count}ദശലക്ഷം",
diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json
index c07294d90a7..aa8169616e7 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -11,7 +11,6 @@
"about.not_available": "ही माहिती या सर्व्हरवर उपलब्ध करून देण्यात आलेली नाही.",
"about.powered_by": "{mastodon} द्वारा समर्थित विकेंद्रित सोशल मीडिया",
"about.rules": "सर्व्हर नियम",
- "account.account_note_header": "नोंद",
"account.add_or_remove_from_list": "यादीत घाला किंवा यादीतून काढून टाका",
"account.badges.bot": "स्वयंचलित खाते",
"account.badges.group": "गट",
@@ -19,7 +18,6 @@
"account.block_domain": "{domain} पासून सर्व लपवा",
"account.block_short": "अवरोध",
"account.blocked": "ब्लॉक केले आहे",
- "account.browse_more_on_origin_server": "मूळ प्रोफाइलवर अधिक ब्राउझ करा",
"account.cancel_follow_request": "फॉलो विनंती मागे घ्या",
"account.copy": "दुवा कॉपी करा",
"account.direct": "खाजगीरित्या उल्लेखीत @{name}",
@@ -35,9 +33,7 @@
"account.follow_back": "आपणही अनुसरण करा",
"account.followers": "अनुयायी",
"account.followers.empty": "ह्या वापरकर्त्याचा आतापर्यंत कोणी अनुयायी नाही.",
- "account.followers_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.following": "अनुसरण",
- "account.following_counter": "{count, plural, one {{counter} following} other {{counter} following}}",
"account.follows.empty": "हा वापरकर्ता अजूनपर्यंत कोणाचा अनुयायी नाही.",
"account.go_to_profile": "प्रोफाइल वर जा",
"account.hide_reblogs": "@{name} पासून सर्व बूस्ट लपवा",
@@ -59,7 +55,6 @@
"account.requested_follow": "{name} ने आपल्याला फॉलो करण्याची रिक्वेस्ट केली आहे",
"account.share": "@{name} चे प्रोफाइल शेअर करा",
"account.show_reblogs": "{name}चे सर्व बुस्ट्स दाखवा",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "@{name} ला ब्लॉक करा",
"account.unblock_domain": "उघड करा {domain}",
"account.unblock_short": "अनब्लॉक करा",
@@ -174,8 +169,6 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "बंद करा",
- "lightbox.compress": "प्रतिमा दृश्य बॉक्स कॉम्प्रेस करा",
- "lightbox.expand": "प्रतिमा दृश्य बॉक्स विस्तृत करा",
"lightbox.next": "पुढे",
"lightbox.previous": "मागील",
"limited_account_hint.action": "तरीही प्रोफाइल दाखवा",
@@ -240,7 +233,6 @@
"status.pinned": "Pinned toot",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 3d7992faf7d..cbd57ab3569 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -11,7 +11,7 @@
"about.not_available": "Maklumat ini belum tersedia pada pelayan ini.",
"about.powered_by": "Media sosial terpencar yang dikuasakan oleh {mastodon}",
"about.rules": "Peraturan pelayan",
- "account.account_note_header": "Catatan",
+ "account.account_note_header": "Personal note",
"account.add_or_remove_from_list": "Tambah atau Buang dari senarai",
"account.badges.bot": "Bot",
"account.badges.group": "Kumpulan",
@@ -19,7 +19,6 @@
"account.block_domain": "Sekat domain {domain}",
"account.block_short": "Malay",
"account.blocked": "Disekat",
- "account.browse_more_on_origin_server": "Layari selebihnya di profil asal",
"account.cancel_follow_request": "Menarik balik permintaan mengikut",
"account.copy": "Salin pautan ke profil",
"account.direct": "Sebut secara persendirian @{name}",
@@ -35,9 +34,8 @@
"account.follow_back": "Ikut balik",
"account.followers": "Pengikut",
"account.followers.empty": "Belum ada yang mengikuti pengguna ini.",
- "account.followers_counter": "{count, plural, one {{counter} Pengikut} other {{counter} Pengikut}}",
+ "account.followers_counter": "{count, plural, one {{counter} Diikuti} other {{counter} Diikuti}}",
"account.following": "Mengikuti",
- "account.following_counter": "{count, plural, one {{counter} Diikuti} other {{counter} Diikuti}}",
"account.follows.empty": "Pengguna ini belum mengikuti sesiapa.",
"account.go_to_profile": "Pergi ke profil",
"account.hide_reblogs": "Sembunyikan galakan daripada @{name}",
@@ -63,7 +61,6 @@
"account.requested_follow": "{name} has requested to follow you",
"account.share": "Kongsi profil @{name}",
"account.show_reblogs": "Tunjukkan galakan daripada @{name}",
- "account.statuses_counter": "{count, plural, other {{counter} kiriman}}",
"account.unblock": "Nyahsekat @{name}",
"account.unblock_domain": "Nyahsekat domain {domain}",
"account.unblock_short": "Nyahsekat",
@@ -161,15 +158,12 @@
"compose_form.spoiler_placeholder": "Amaran kandungan (pilihan)",
"confirmation_modal.cancel": "Batal",
"confirmations.block.confirm": "Sekat",
- "confirmations.cancel_follow_request.confirm": "Tarik balik permintaan",
- "confirmations.cancel_follow_request.message": "Adakah anda pasti ingin menarik balik permintaan anda untuk mengikut {name}?",
"confirmations.delete.confirm": "Padam",
"confirmations.delete.message": "Adakah anda pasti anda ingin memadam hantaran ini?",
"confirmations.delete_list.confirm": "Padam",
"confirmations.delete_list.message": "Adakah anda pasti anda ingin memadam senarai ini secara kekal?",
"confirmations.discard_edit_media.confirm": "Singkir",
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?",
- "confirmations.domain_block.message": "Adakah anda betul-betul, sungguh-sungguh pasti anda ingin menyekat keseluruhan {domain}? Selalunya, beberapa sekatan atau pembisuan tersasar sudah memadai dan lebih diutamakan. Anda tidak akan nampak kandungan daripada domain tersebut di mana-mana garis masa awam mahupun pemberitahuan anda. Pengikut anda daripada domain tersebut juga akan dibuang.",
"confirmations.edit.confirm": "Sunting",
"confirmations.edit.message": "Mengedit sekarang akan menimpa mesej yang sedang anda karang. Adakah anda pasti mahu meneruskan?",
"confirmations.logout.confirm": "Log keluar",
@@ -366,8 +360,6 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "Pindah ke atas dalam senarai",
"lightbox.close": "Tutup",
- "lightbox.compress": "Kecilkan kotak paparan imej",
- "lightbox.expand": "Besarkan kotak paparan imej",
"lightbox.next": "Seterusnya",
"lightbox.previous": "Sebelumnya",
"limited_account_hint.action": "Paparkan profil",
@@ -389,7 +381,6 @@
"lists.subheading": "Senarai anda",
"load_pending": "{count, plural, one {# item baharu} other {# item baharu}}",
"loading_indicator.label": "Memuatkan…",
- "media_gallery.toggle_visible": "{number, plural, other {Sembunyikan imej}}",
"moved_to_account_banner.text": "Akaun anda {disabledAccount} kini dinyahdayakan kerana anda berpindah ke {movedToAccount}.",
"navigation_bar.about": "Perihal",
"navigation_bar.advanced_interface": "Buka dalam antara muka web lanjutan",
@@ -422,9 +413,7 @@
"notification.favourite": "{name} menggemari pos anda",
"notification.follow": "{name} mengikuti anda",
"notification.follow_request": "{name} meminta untuk mengikuti anda",
- "notification.mention": "{name} menyebut anda",
"notification.own_poll": "Undian anda telah tamat",
- "notification.poll": "Sebuah undian yang anda undi telah tamat",
"notification.reblog": "{name} menggalak hantaran anda",
"notification.status": "{name} baru sahaja mengirim hantaran",
"notification.update": "{name} menyunting hantaran",
@@ -622,11 +611,8 @@
"status.direct_indicator": "Sebutan peribadi",
"status.edit": "Sunting",
"status.edited_x_times": "Disunting {count, plural, other {{count} kali}}",
- "status.embed": "Benaman",
"status.favourite": "Kegemaran",
"status.filter": "Tapiskan hantaran ini",
- "status.filtered": "Ditapis",
- "status.hide": "Sembunyikan pos",
"status.history.created": "{name} mencipta pada {date}",
"status.history.edited": "{name} menyunting pada {date}",
"status.load_more": "Muatkan lagi",
@@ -653,10 +639,7 @@
"status.report": "Laporkan @{name}",
"status.sensitive_warning": "Kandungan sensitif",
"status.share": "Kongsi",
- "status.show_filter_reason": "Paparkan juga",
- "status.show_less": "Tunjukkan kurang",
"status.show_less_all": "Tunjukkan kurang untuk semua",
- "status.show_more": "Tunjukkan lebih",
"status.show_more_all": "Tunjukkan lebih untuk semua",
"status.show_original": "Paparkan yang asal",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -675,10 +658,6 @@
"time_remaining.minutes": "Tinggal {number, plural, other {# minit}}",
"time_remaining.moments": "Tinggal beberapa saat",
"time_remaining.seconds": "Tinggal {number, plural, other {# saat}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} dari pelayan lain tidak dipaparkan.",
- "timeline_hint.resources.followers": "Pengikut",
- "timeline_hint.resources.follows": "Ikutan",
- "timeline_hint.resources.statuses": "Hantaran lebih lama",
"trends.counter_by_accounts": "{count, plural, other {{counter} orang}} dalam {days, plural, other {{days} hari}} yang lalu",
"trends.trending_now": "Sohor kini",
"ui.beforeunload": "Rangka anda akan terhapus jika anda meninggalkan Mastodon.",
diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json
index e3287f3f327..c97de733354 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -11,7 +11,6 @@
"about.not_available": "ဤအချက်အလက်ကို ဤဆာဗာတွင် မရရှိနိုင်ပါ။",
"about.powered_by": "{mastodon} မှ ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ဆိုရှယ်မီဒီယာ",
"about.rules": "ဆာဗာစည်းမျဉ်းများ",
- "account.account_note_header": "မှတ်ချက်",
"account.add_or_remove_from_list": "စာရင်းများမှ ထည့်ပါ သို့မဟုတ် ဖယ်ရှားပါ။",
"account.badges.bot": "စက်ရုပ်",
"account.badges.group": "အဖွဲ့",
@@ -19,7 +18,6 @@
"account.block_domain": " {domain} ဒိုမိန်းကိုပိတ်မည်",
"account.block_short": "ပိတ်ဆို့",
"account.blocked": "ဘလော့ထားသည်",
- "account.browse_more_on_origin_server": "မူရင်းပရိုဖိုင်တွင် ပိုမိုကြည့်ရှုပါ။",
"account.cancel_follow_request": "စောင့်ကြည့်မှု ပယ်ဖျက်ခြင်း",
"account.copy": "လင့်ခ်ကို ပရိုဖိုင်သို့ ကူးယူပါ",
"account.direct": "@{name} သီးသန့် သိရှိနိုင်အောင် မန်းရှင်းခေါ်မည်",
@@ -34,9 +32,7 @@
"account.follow": "စောင့်ကြည့်",
"account.followers": "စောင့်ကြည့်သူများ",
"account.followers.empty": "ဤသူကို စောင့်ကြည့်သူ မရှိသေးပါ။",
- "account.followers_counter": "{count, plural, one {စောင့်ကြည့်သူ {counter}} other {စောင့်ကြည့်သူများ {counter}}}",
"account.following": "စောင့်ကြည့်နေသည်",
- "account.following_counter": "{count, plural, one {စောင့်ကြည့်ထားသူ {counter}} other {စောင့်ကြည့်ထားသူများ {counter}}}",
"account.follows.empty": "ဤသူသည် မည်သူ့ကိုမျှ စောင့်ကြည့်ခြင်း မရှိသေးပါ။",
"account.go_to_profile": "ပရိုဖိုင်းသို့ သွားရန်",
"account.hide_reblogs": "@{name} ၏ မျှဝေမှုကို ဝှက်ထားရန်",
@@ -61,7 +57,6 @@
"account.requested_follow": "{name} က သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုထားသည်",
"account.share": "{name}၏ပရိုဖိုင်ကိုမျှဝေပါ",
"account.show_reblogs": "@{name} မှ မျှ၀ေမှုများကို ပြပါ\n",
- "account.statuses_counter": "{count, plural, one {{counter} ပိုစ့်များ} other {{counter} ပိုစ့်များ}}",
"account.unblock": "{name} ကို ဘလော့ဖြုတ်မည်",
"account.unblock_domain": " {domain} ဒိုမိန်းကိုပြန်ဖွင့်မည်",
"account.unblock_short": "ဘလော့ဖြုတ်ရန်",
@@ -151,15 +146,12 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"confirmation_modal.cancel": "ပယ်ဖျက်မည်",
"confirmations.block.confirm": "ဘလော့မည်",
- "confirmations.cancel_follow_request.confirm": "ပန်ကြားချက်ကို ပယ်ဖျက်မည်",
- "confirmations.cancel_follow_request.message": "{name} ကို စောင့်ကြည့်ခြင်းအားပယ်ဖျက်ရန် သေချာပါသလား။",
"confirmations.delete.confirm": "ဖျက်မည်",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "ဖျက်မည်",
"confirmations.delete_list.message": "ဖျက်ရန် သေချာပါသလား?",
"confirmations.discard_edit_media.confirm": "ဖယ်ထုတ်ပါ",
"confirmations.discard_edit_media.message": "သင်သည် မီဒီယာဖော်ပြချက် သို့မဟုတ် အစမ်းကြည့်ရှုခြင်းတွင် မသိမ်းဆည်းရသေးသော အပြောင်းအလဲများရှိသည်။ မည်သို့ပင်ဖြစ်စေ ဖျက်ပစ်မည်လား။",
- "confirmations.domain_block.message": "{domain} တစ်ခုလုံးကို ဘလော့လုပ်ရန် တကယ် သေချာပါသလား? များသောအားဖြင့် အနည်းစုကို ပစ်မှတ်ထား ဘလော့လုပ်ခြင်းသည် လုံလောက်ပါသည်။ ထို ဒိုမိန်းမှ အကြောင်းအရာ တစ်ခုမှ မြင်ရမည်မဟုတ်သည့်အပြင် ထို ဒိုမိန်းတွင်ရှိသော သင်၏ စောင့်ကြည့်သူများပါ ဖယ်ရှားပစ်မည်ဖြစ်သည်။",
"confirmations.edit.confirm": "ပြင်ရန်",
"confirmations.edit.message": "ယခုပြင်ဆင်ခြင်းတွင် သင်လက်ရှိမက်ဆေ့ချ်ကို ဖျက်ပစ်ပြီး အသစ်ရေးပါမည်။ ရှေ့ဆက်လိုသည်မှာ သေချာပါသလား။",
"confirmations.logout.confirm": "အကောင့်မှထွက်မည်",
@@ -347,8 +339,6 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "ပိတ်ပါ",
- "lightbox.compress": "ရုပ်ပုံမြင်ကွင်းအကွက်ကို ချုံ့ပါ",
- "lightbox.expand": "ပုံကိုဖွင့်ပါ",
"lightbox.next": "ရှေ့သို့",
"lightbox.previous": "ရှေ့သို့",
"limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ",
@@ -370,7 +360,6 @@
"lists.subheading": "သင့်၏စာရင်းများ",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "လုပ်ဆောင်နေသည်…",
- "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
"moved_to_account_banner.text": "{movedToAccount} အကောင့်သို့ပြောင်းလဲထားသဖြင့် {disabledAccount} အကောင့်မှာပိတ်ထားသည်",
"navigation_bar.about": "အကြောင်း",
"navigation_bar.advanced_interface": "အဆင့်မြင့်ဝဘ်ပုံစံ ဖွင့်ပါ",
@@ -403,9 +392,7 @@
"notification.favourite": "{name} က သင့်ပို့စ်ကို နှစ်သက်ခဲ့သည်",
"notification.follow": "{name} က သင့်ကို စောင့်ကြည့်ခဲ့သည်",
"notification.follow_request": "{name} က သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုထားသည်",
- "notification.mention": "{name} က သင့်ကို ဖော်ပြခဲ့သည်",
"notification.own_poll": "စစ်တမ်းကောက်မှု ပြီးဆုံးပါပြီ",
- "notification.poll": "သင်ပါဝင်ခဲ့သော စစ်တမ်းပြီးပါပြီ",
"notification.reblog": "{name} boosted your status",
"notification.status": "{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ",
"notification.update": "{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်",
@@ -600,11 +587,8 @@
"status.direct_indicator": "သီးသန့်ဖော်ပြခြင်း။",
"status.edit": "ပြင်ဆင်ရန်",
"status.edited_x_times": "{count, plural, one {{count} time} other {{count} times}} ပြင်ဆင်ခဲ့သည်",
- "status.embed": "Embed",
"status.favourite": "Favorite",
"status.filter": "ဤပို့စ်ကို စစ်ထုတ်ပါ",
- "status.filtered": "စစ်ထုတ်ထားသည်",
- "status.hide": "ပို့စ်ကိုပိတ်ထားမည်",
"status.history.created": "{name} က {date} က ဖန်တီးခဲ့သည်",
"status.history.edited": "{name} က {date} က ပြင်ဆင်ခဲ့သည်",
"status.load_more": "ပို၍ဆောင်ရွက်ပါ",
@@ -631,10 +615,7 @@
"status.report": "@{name} ကို တိုင်ကြားရန်",
"status.sensitive_warning": "သတိထားရသော အကြောင်းအရာ",
"status.share": "မျှဝေ",
- "status.show_filter_reason": "မည်သို့ပင်ဖြစ်စေ ပြပါ",
- "status.show_less": "အနည်းငယ်သာ ပြပါ",
"status.show_less_all": "အားလုံးအတွက် အနည်းငယ်သာ ပြပါ",
- "status.show_more": "ပိုမိုပြရန်",
"status.show_more_all": "အားလုံးအတွက် ပိုပြပါ",
"status.show_original": "မူရင်းပြပါ",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}",
@@ -653,10 +634,6 @@
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "အခိုက်အတန့်များ ကျန်ရှိနေသေးသည်",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
- "timeline_hint.remote_resource_not_displayed": "အခြားဆာဗာများမှ {resource} ကို ပြသမည်မဟုတ်ပါ။",
- "timeline_hint.resources.followers": "စောင့်ကြည့်သူများ",
- "timeline_hint.resources.follows": "စောင့်ကြည့်မယ်",
- "timeline_hint.resources.statuses": "ပို့စ်အဟောင်းများ",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "လက်ရှိခေတ်စားနေသော ပို့စ်များ",
"ui.beforeunload": "Mastodon မှ ထွက်ခွာပါက သင့်မူကြမ်း ဆုံးရှုံးသွားပါမည်။",
diff --git a/app/javascript/mastodon/locales/ne.json b/app/javascript/mastodon/locales/ne.json
index 500261a34be..1cb10a93b48 100644
--- a/app/javascript/mastodon/locales/ne.json
+++ b/app/javascript/mastodon/locales/ne.json
@@ -15,7 +15,6 @@
"account.block_domain": "{domain} डोमेनलाई ब्लक गर्नुहोस्",
"account.block_short": "ब्लक",
"account.blocked": "ब्लक गरिएको",
- "account.browse_more_on_origin_server": "मूल प्रोफाइलमा थप ब्राउज गर्नुहोस्",
"account.cancel_follow_request": "फलो अनुरोध रद्द गर्नुहोस",
"account.copy": "प्रोफाइलको लिङ्क प्रतिलिपि गर्नुहोस्",
"account.direct": "@{name} लाई निजी रूपमा उल्लेख गर्नुहोस्",
@@ -39,7 +38,6 @@
"account.requested_follow": "{name} ले तपाईंलाई फलो गर्न अनुरोध गर्नुभएको छ",
"account.share": "@{name} को प्रोफाइल सेयर गर्नुहोस्",
"account.show_reblogs": "@{name} को बूस्टहरू देखाउनुहोस्",
- "account.statuses_counter": "{count, plural, one {{counter} पोस्ट} other {{counter} पोस्टहरू}}",
"account.unblock": "@{name} लाई अनब्लक गर्नुहोस्",
"account.unblock_domain": "{domain} डोमेनलाई अनब्लक गर्नुहोस्",
"account.unblock_short": "अनब्लक गर्नुहोस्",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 8246d8dfd2d..f5f4a0a1378 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -1,5 +1,5 @@
{
- "about.blocks": "Gelimiteerde en opgeschorte servers",
+ "about.blocks": "Beperkte en opgeschorte servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is vrije, opensourcesoftware en een handelsmerk van Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Reden niet beschikbaar",
@@ -11,7 +11,7 @@
"about.not_available": "Deze informatie is niet beschikbaar gemaakt op deze server.",
"about.powered_by": "Gedecentraliseerde sociale media mogelijk gemaakt door {mastodon}",
"about.rules": "Serverregels",
- "account.account_note_header": "Opmerking",
+ "account.account_note_header": "Persoonlijke opmerking",
"account.add_or_remove_from_list": "Toevoegen aan of verwijderen uit lijsten",
"account.badges.bot": "Geautomatiseerd",
"account.badges.group": "Groep",
@@ -19,7 +19,6 @@
"account.block_domain": "Alles van {domain} blokkeren",
"account.block_short": "Blokkeren",
"account.blocked": "Geblokkeerd",
- "account.browse_more_on_origin_server": "Zie meer op het originele profiel",
"account.cancel_follow_request": "Ontvolgen",
"account.copy": "Link naar profiel kopiëren",
"account.direct": "@{name} een privébericht sturen",
@@ -98,6 +97,8 @@
"block_modal.title": "Gebruiker blokkeren?",
"block_modal.you_wont_see_mentions": "Je ziet geen berichten meer die dit account vermelden.",
"boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan",
+ "boost_modal.reblog": "Bericht boosten?",
+ "boost_modal.undo_reblog": "Bericht niet langer boosten?",
"bundle_column_error.copy_stacktrace": "Foutrapportage kopiëren",
"bundle_column_error.error.body": "De opgevraagde pagina kon niet worden weergegeven. Dit kan het gevolg zijn van een fout in onze broncode, of van een compatibiliteitsprobleem met je webbrowser.",
"bundle_column_error.error.title": "O nee!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Inhoudswaarschuwing (optioneel)",
"confirmation_modal.cancel": "Annuleren",
"confirmations.block.confirm": "Blokkeren",
- "confirmations.cancel_follow_request.confirm": "Verzoek annuleren",
- "confirmations.cancel_follow_request.message": "Weet je zeker dat je jouw verzoek om {name} te volgen wilt annuleren?",
"confirmations.delete.confirm": "Verwijderen",
"confirmations.delete.message": "Weet je het zeker dat je dit bericht wilt verwijderen?",
+ "confirmations.delete.title": "Bericht verwijderen?",
"confirmations.delete_list.confirm": "Verwijderen",
"confirmations.delete_list.message": "Weet je zeker dat je deze lijst definitief wilt verwijderen?",
+ "confirmations.delete_list.title": "Lijst verwijderen?",
"confirmations.discard_edit_media.confirm": "Weggooien",
"confirmations.discard_edit_media.message": "Je hebt niet-opgeslagen wijzigingen in de mediabeschrijving of voorvertonning, wil je deze toch weggooien?",
- "confirmations.domain_block.confirm": "Server blokkeren",
- "confirmations.domain_block.message": "Weet je het echt heel erg zeker dat je alles van {domain} wilt blokkeren? In de meeste gevallen is het blokkeren of negeren van een paar specifieke personen voldoende en beter. Je ziet geen berichten van deze server meer op openbare tijdlijnen of in jouw meldingen. Jouw volgers van deze server worden verwijderd.",
"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.logout.confirm": "Uitloggen",
"confirmations.logout.message": "Weet je zeker dat je wilt uitloggen?",
+ "confirmations.logout.title": "Uitloggen?",
"confirmations.mute.confirm": "Negeren",
"confirmations.redraft.confirm": "Verwijderen en herschrijven",
"confirmations.redraft.message": "Weet je zeker dat je dit bericht wilt verwijderen en herschrijven? Je verliest wel de boosts en favorieten, en de reacties op het originele bericht raak je kwijt.",
+ "confirmations.redraft.title": "Bericht verwijderen en herschrijven?",
"confirmations.reply.confirm": "Reageren",
"confirmations.reply.message": "Door nu te reageren overschrijf je het bericht dat je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?",
+ "confirmations.reply.title": "Bericht overschrijven?",
"confirmations.unfollow.confirm": "Ontvolgen",
"confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?",
+ "confirmations.unfollow.title": "Gebruiker ontvolgen?",
+ "content_warning.hide": "Bericht verbergen",
+ "content_warning.show": "Alsnog tonen",
"conversation.delete": "Gesprek verwijderen",
"conversation.mark_as_read": "Als gelezen markeren",
"conversation.open": "Gesprek tonen",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Een bestaande categorie gebruiken of een nieuwe aanmaken",
"filter_modal.select_filter.title": "Dit bericht filteren",
"filter_modal.title.status": "Een bericht filteren",
- "filtered_notifications_banner.mentions": "{count, plural, one {vermelding} other {vermeldingen}}",
- "filtered_notifications_banner.pending_requests": "Meldingen van {count, plural, =0 {niemand} one {één persoon} other {# mensen}} die je misschien kent",
+ "filter_warning.matches_filter": "Komt overeen met filter “{title}”",
+ "filtered_notifications_banner.pending_requests": "Van {count, plural, =0 {niemand} one {een persoon} other {# personen}} die je mogelijk kent",
"filtered_notifications_banner.title": "Gefilterde meldingen",
"firehose.all": "Alles",
"firehose.local": "Deze server",
@@ -347,6 +353,14 @@
"hashtag.follow": "Hashtag volgen",
"hashtag.unfollow": "Hashtag ontvolgen",
"hashtags.and_other": "…en {count, plural, one {}other {# meer}}",
+ "hints.profiles.followers_may_be_missing": "Volgers voor dit profiel kunnen ontbreken.",
+ "hints.profiles.follows_may_be_missing": "De volgers voor dit profiel kunnen ontbreken.",
+ "hints.profiles.posts_may_be_missing": "Er ontbreken mogelijk berichten van dit profiel.",
+ "hints.profiles.see_more_followers": "Bekijk meer volgers op {domain}",
+ "hints.profiles.see_more_follows": "Bekijk meer gevolgde accounts op {domain}",
+ "hints.profiles.see_more_posts": "Bekijk meer berichten op {domain}",
+ "hints.threads.replies_may_be_missing": "Antwoorden van andere servers kunnen ontbreken.",
+ "hints.threads.see_more": "Bekijk meer reacties op {domain}",
"home.column_settings.show_reblogs": "Boosts tonen",
"home.column_settings.show_replies": "Reacties tonen",
"home.hide_announcements": "Mededelingen verbergen",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Bekijk updates",
"home.pending_critical_update.title": "Kritieke beveiligingsupdate beschikbaar!",
"home.show_announcements": "Mededelingen tonen",
+ "ignore_notifications_modal.disclaimer": "Mastodon kan gebruikers niet informeren dat je hun meldingen hebt genegeerd. Meldingen negeren zal niet voorkomen dat de berichten zelf worden verzonden.",
+ "ignore_notifications_modal.filter_instead": "In plaats daarvan filteren",
+ "ignore_notifications_modal.filter_to_act_users": "Je bent nog steeds in staat om volgverzoeken goed- of af te keuren, en om gebruikers te rapporteren",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filteren voorkomt potentiële verwarring",
+ "ignore_notifications_modal.filter_to_review_separately": "Je kunt gefilterde meldingen afzonderlijk beoordelen",
+ "ignore_notifications_modal.ignore": "Meldingen negeren",
+ "ignore_notifications_modal.limited_accounts_title": "Meldingen van beperkte accounts negeren?",
+ "ignore_notifications_modal.new_accounts_title": "Meldingen van nieuwe accounts negeren?",
+ "ignore_notifications_modal.not_followers_title": "Meldingen negeren van mensen die jou niet volgen?",
+ "ignore_notifications_modal.not_following_title": "Meldingen negeren van mensen die je niet volgt?",
+ "ignore_notifications_modal.private_mentions_title": "Meldingen negeren van ongevraagde privéberichten?",
"interaction_modal.description.favourite": "Je kunt met een Mastodon-account dit bericht als favoriet markeren, om die gebruiker te laten weten dat je het bericht waardeert en om het op te slaan.",
"interaction_modal.description.follow": "Je kunt met een Mastodon-account {name} volgen, om zo diens berichten op jouw starttijdlijn te ontvangen.",
"interaction_modal.description.reblog": "Je kunt met een Mastodon-account dit bericht boosten, om het zo met jouw volgers te delen.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Tekst- en zoekveld ontfocussen",
"keyboard_shortcuts.up": "Naar boven in de lijst bewegen",
"lightbox.close": "Sluiten",
- "lightbox.compress": "Afbeelding passend weergeven",
- "lightbox.expand": "Afbeelding groot weergeven",
"lightbox.next": "Volgende",
"lightbox.previous": "Vorige",
+ "lightbox.zoom_in": "Oorspronkelijke grootte weergeven",
+ "lightbox.zoom_out": "Passend weergeven",
"limited_account_hint.action": "Alsnog het profiel tonen",
"limited_account_hint.title": "Dit profiel is door de moderatoren van {domain} verborgen.",
"link_preview.author": "Door {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Jouw lijsten",
"load_pending": "{count, plural, one {# nieuw item} other {# nieuwe items}}",
"loading_indicator.label": "Laden…",
- "media_gallery.toggle_visible": "{number, plural, one {afbeelding verbergen} other {afbeeldingen verbergen}}",
+ "media_gallery.hide": "Verbergen",
"moved_to_account_banner.text": "Omdat je naar {movedToAccount} bent verhuisd is jouw account {disabledAccount} momenteel uitgeschakeld.",
"mute_modal.hide_from_notifications": "Onder meldingen verbergen",
"mute_modal.hide_options": "Opties verbergen",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Je ziet geen berichten meer die dit account vermelden.",
"mute_modal.you_wont_see_posts": "De persoon kan nog steeds jouw berichten zien, maar diens berichten zie je niet meer.",
"navigation_bar.about": "Over",
+ "navigation_bar.administration": "Beheer",
"navigation_bar.advanced_interface": "In geavanceerde webinterface openen",
"navigation_bar.blocks": "Geblokkeerde gebruikers",
"navigation_bar.bookmarks": "Bladwijzers",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Volgers en gevolgde accounts",
"navigation_bar.lists": "Lijsten",
"navigation_bar.logout": "Uitloggen",
+ "navigation_bar.moderation": "Moderatie",
"navigation_bar.mutes": "Genegeerde gebruikers",
"navigation_bar.opened_in_classic_interface": "Berichten, accounts en andere specifieke pagina’s, worden standaard geopend in de klassieke webinterface.",
"navigation_bar.personal": "Persoonlijk",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Beveiliging",
"not_signed_in_indicator.not_signed_in": "Je moet inloggen om toegang tot deze informatie te krijgen.",
"notification.admin.report": "{name} heeft {target} geapporteerd",
+ "notification.admin.report_account": "{name} rapporteerde {count, plural, one {een bericht} other {# berichten}} van {target} voor {category}",
+ "notification.admin.report_account_other": "{name} rapporteerde {count, plural, one {een bericht} other {# berichten}} van {target}",
+ "notification.admin.report_statuses": "{name} rapporteerde {target} voor {category}",
+ "notification.admin.report_statuses_other": "{name} rapporteerde {target}",
"notification.admin.sign_up": "{name} heeft zich geregistreerd",
+ "notification.admin.sign_up.name_and_others": "{name} en {count, plural, one {# ander} other {# anderen}} hebben zich geregistreerd",
"notification.favourite": "{name} markeerde jouw bericht als favoriet",
+ "notification.favourite.name_and_others_with_link": "{name} en {count, plural, one {# ander} other {# anderen}} hebben jouw bericht als favoriet gemarkeerd",
"notification.follow": "{name} volgt jou nu",
+ "notification.follow.name_and_others": "{name} en {count, plural, one {# ander} other {# anderen}} hebben je gevolgd",
"notification.follow_request": "{name} wil jou graag volgen",
- "notification.mention": "{name} vermeldde jou",
+ "notification.follow_request.name_and_others": "{name} en {count, plural, one {# ander} other {# anderen}} hebben gevraagd om je te volgen",
+ "notification.label.mention": "Vermelding",
+ "notification.label.private_mention": "Privébericht",
+ "notification.label.private_reply": "Privéreactie",
+ "notification.label.reply": "Reactie",
+ "notification.mention": "Vermelding",
"notification.moderation-warning.learn_more": "Meer informatie",
"notification.moderation_warning": "Je hebt een moderatie-waarschuwing ontvangen",
"notification.moderation_warning.action_delete_statuses": "Sommige van je berichten zijn verwijderd.",
@@ -487,6 +526,7 @@
"notification.own_poll": "Jouw peiling is beëindigd",
"notification.poll": "Een peiling waaraan jij hebt meegedaan is beëindigd",
"notification.reblog": "{name} boostte jouw bericht",
+ "notification.reblog.name_and_others_with_link": "{name} en {count, plural, one {# ander} other {# anderen}} hebben jouw bericht geboost",
"notification.relationships_severance_event": "Verloren verbindingen met {name}",
"notification.relationships_severance_event.account_suspension": "Een beheerder van {from} heeft {target} geschorst, wat betekent dat je geen updates meer van hen kunt ontvangen of met hen kunt communiceren.",
"notification.relationships_severance_event.domain_block": "Een beheerder van {from} heeft {target} geblokkeerd, inclusief {followersCount} van jouw volgers en {followingCount, plural, one {# account} other {# accounts}} die jij volgt.",
@@ -495,11 +535,27 @@
"notification.status": "{name} heeft zojuist een bericht geplaatst",
"notification.update": "{name} heeft een bericht bewerkt",
"notification_requests.accept": "Accepteren",
+ "notification_requests.accept_multiple": "{count, plural, one {# verzoek accepteren…} other {# verzoeken accepteren…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Verzoek accepteren} other {Verzoeken accepteren}}",
+ "notification_requests.confirm_accept_multiple.message": "Je staat op het punt om {count, plural, one {een meldingsverzoek} other {# meldingsverzoeken}} te accepteren. Weet je zeker dat je door wilt gaan?",
+ "notification_requests.confirm_accept_multiple.title": "Meldingsverzoeken accepteren?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Verzoek afwijzen} other {Verzoeken afwijzen}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Je staat op het punt om {count, plural, one {een meldingsverzoek} other {# meldingsverzoeken}} af te wijzen. Je zult niet in staat zijn om {count, plural, one {hier} other {hier}} weer gemakkelijk toegang toe te krijgen. Wil je doorgaan?",
+ "notification_requests.confirm_dismiss_multiple.title": "Meldingsverzoeken afwijzen?",
"notification_requests.dismiss": "Afwijzen",
+ "notification_requests.dismiss_multiple": "{count, plural, one {# verzoek afwijzen…} other {# verzoeken afwijzen…}}",
+ "notification_requests.edit_selection": "Bewerken",
+ "notification_requests.exit_selection": "Klaar",
+ "notification_requests.explainer_for_limited_account": "Meldingen van dit account zijn gefilterd omdat dit account door een moderator is beperkt.",
+ "notification_requests.explainer_for_limited_remote_account": "Meldingen van dit account zijn gefilterd omdat dit account of diens server door een moderator is beperkt.",
+ "notification_requests.maximize": "Maximaliseren",
+ "notification_requests.minimize_banner": "Banner met gefilterde meldingen minimaliseren",
"notification_requests.notifications_from": "Meldingen van {name}",
"notification_requests.title": "Gefilterde meldingen",
+ "notification_requests.view": "Meldingen bekijken",
"notifications.clear": "Meldingen verwijderen",
"notifications.clear_confirmation": "Weet je het zeker dat je al jouw meldingen wilt verwijderen?",
+ "notifications.clear_title": "Meldingen verwijderen?",
"notifications.column_settings.admin.report": "Nieuwe rapportages:",
"notifications.column_settings.admin.sign_up": "Nieuwe registraties:",
"notifications.column_settings.alert": "Desktopmeldingen",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Desktopmeldingen zijn niet beschikbaar omdat een eerdere browsertoestemming werd geweigerd",
"notifications.permission_denied_alert": "Desktopmeldingen kunnen niet worden ingeschakeld, omdat een eerdere browsertoestemming werd geweigerd",
"notifications.permission_required": "Desktopmeldingen zijn niet beschikbaar omdat de benodigde toestemming niet is verleend.",
+ "notifications.policy.accept": "Accepteren",
+ "notifications.policy.accept_hint": "In meldingen weergeven",
+ "notifications.policy.drop": "Negeren",
+ "notifications.policy.drop_hint": "Permanent verwijderen",
+ "notifications.policy.filter": "Filter",
+ "notifications.policy.filter_hint": "Naar gefilterde inbox voor meldingen verzenden",
+ "notifications.policy.filter_limited_accounts_hint": "Beperkt door servermoderatoren",
+ "notifications.policy.filter_limited_accounts_title": "Gemodereerde accounts",
"notifications.policy.filter_new_accounts.hint": "In de afgelopen {days, plural, one {24 uur} other {# dagen}} geregistreerd",
"notifications.policy.filter_new_accounts_title": "Nieuwe accounts",
"notifications.policy.filter_not_followers_hint": "Inclusief mensen die jou korter dan {days, plural, one {24 uur} other {# dagen}} volgen",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Mensen die jij niet volgt",
"notifications.policy.filter_private_mentions_hint": "Onzichtbaar tenzij het een antwoord is op een privébericht van jou of wanneer je de afzender volgt",
"notifications.policy.filter_private_mentions_title": "Ongevraagde privéberichten",
- "notifications.policy.title": "Meldingen verbergen van…",
+ "notifications.policy.title": "Meldingen beheren van…",
"notifications_permission_banner.enable": "Desktopmeldingen inschakelen",
"notifications_permission_banner.how_to_control": "Om meldingen te ontvangen wanneer Mastodon niet open staat. Je kunt precies bepalen welke soort interacties wel of geen desktopmeldingen geven via de bovenstaande {icon} knop.",
"notifications_permission_banner.title": "Mis nooit meer iets",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Je volgt dit account. Om diens berichten niet meer op jouw starttijdlijn te zien, kun je diegene ontvolgen.",
"report_notification.attached_statuses": "{count, plural, one {{count} bericht} other {{count} berichten}} toegevoegd",
"report_notification.categories.legal": "Juridisch",
+ "report_notification.categories.legal_sentence": "illegale inhoud",
"report_notification.categories.other": "Overig",
+ "report_notification.categories.other_sentence": "overig",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Overtreden regel(s)",
+ "report_notification.categories.violation_sentence": "serverregel overtreden",
"report_notification.open": "Rapportage openen",
"search.no_recent_searches": "Geen recente zoekopdrachten",
"search.placeholder": "Zoeken",
@@ -710,6 +778,7 @@
"status.bookmark": "Bladwijzer toevoegen",
"status.cancel_reblog_private": "Niet langer boosten",
"status.cannot_reblog": "Dit bericht kan niet geboost worden",
+ "status.continued_thread": "Vervolgt het gesprek",
"status.copy": "Link naar bericht kopiëren",
"status.delete": "Verwijderen",
"status.detailed_status": "Uitgebreide gespreksweergave",
@@ -718,12 +787,10 @@
"status.edit": "Bewerken",
"status.edited": "Laatste bewerking op {date}",
"status.edited_x_times": "{count, plural, one {{count} keer} other {{count} keer}} bewerkt",
- "status.embed": "Embedden",
+ "status.embed": "Embed-code verkrijgen",
"status.favourite": "Favoriet",
"status.favourites": "{count, plural, one {favoriet} other {favorieten}}",
"status.filter": "Dit bericht filteren",
- "status.filtered": "Gefilterd",
- "status.hide": "Bericht verbergen",
"status.history.created": "{name} plaatste dit {date}",
"status.history.edited": "{name} bewerkte dit {date}",
"status.load_more": "Meer laden",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.",
"status.redraft": "Verwijderen en herschrijven",
"status.remove_bookmark": "Bladwijzer verwijderen",
+ "status.replied_in_thread": "Reageerde in gesprek",
"status.replied_to": "Reageerde op {name}",
"status.reply": "Reageren",
"status.replyAll": "Op iedereen reageren",
"status.report": "@{name} rapporteren",
"status.sensitive_warning": "Gevoelige inhoud",
"status.share": "Delen",
- "status.show_filter_reason": "Alsnog tonen",
- "status.show_less": "Minder tonen",
"status.show_less_all": "Alles minder tonen",
- "status.show_more": "Meer tonen",
"status.show_more_all": "Alles meer tonen",
"status.show_original": "Origineel bekijken",
"status.title.with_attachments": "{user} heeft {attachmentCount, plural, one {een bijlage} other {{attachmentCount} bijlagen}} toegevoegd",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minuut} other {# minuten}} te gaan",
"time_remaining.moments": "Nog enkele ogenblikken resterend",
"time_remaining.seconds": "{number, plural, one {# seconde} other {# seconden}} te gaan",
- "timeline_hint.remote_resource_not_displayed": "{resource} van andere servers worden niet getoond.",
- "timeline_hint.resources.followers": "Volgers",
- "timeline_hint.resources.follows": "Volgend",
- "timeline_hint.resources.statuses": "Oudere berichten",
"trends.counter_by_accounts": "{count, plural, one {{counter} persoon} other {{counter} mensen}} {days, plural, one {in het afgelopen etmaal} other {in de afgelopen {days} dagen}}",
"trends.trending_now": "Huidige trends",
"ui.beforeunload": "Je concept gaat verloren wanneer je Mastodon verlaat.",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 93b44f29a13..702154927d9 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -11,7 +11,7 @@
"about.not_available": "Denne informasjonen er ikkje gjort tilgjengeleg på denne tenaren.",
"about.powered_by": "Desentraliserte sosiale medium drive av {mastodon}",
"about.rules": "Tenarreglar",
- "account.account_note_header": "Merknad",
+ "account.account_note_header": "Personleg notat",
"account.add_or_remove_from_list": "Legg til eller fjern frå lister",
"account.badges.bot": "Robot",
"account.badges.group": "Gruppe",
@@ -19,7 +19,6 @@
"account.block_domain": "Skjul alt frå {domain}",
"account.block_short": "Blokker",
"account.blocked": "Blokkert",
- "account.browse_more_on_origin_server": "Sjå gjennom meir på den opphavlege profilen",
"account.cancel_follow_request": "Trekk attende fylgeførespurnad",
"account.copy": "Kopier lenka til profilen",
"account.direct": "Nevn @{name} privat",
@@ -35,9 +34,9 @@
"account.follow_back": "Fylg tilbake",
"account.followers": "Fylgjarar",
"account.followers.empty": "Ingen fylgjer denne brukaren enno.",
- "account.followers_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjarar}}",
+ "account.followers_counter": "{count, plural, one {{counter} følgjar} other {{counter} følgjarar}}",
"account.following": "Fylgjer",
- "account.following_counter": "{count, plural, one {Fylgjer {counter}} other {Fylgjer {counter}}}",
+ "account.following_counter": "{count, plural, one {{counter} følgjer} other {{counter} følgjer}}",
"account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.",
"account.go_to_profile": "Gå til profil",
"account.hide_reblogs": "Gøym framhevingar frå @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} har bedt om å få fylgja deg",
"account.share": "Del @{name} sin profil",
"account.show_reblogs": "Vis framhevingar frå @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tut}}",
+ "account.statuses_counter": "{count, plural, one {{counter} innlegg} other {{counter} innlegg}}",
"account.unblock": "Stopp blokkering av @{name}",
"account.unblock_domain": "Stopp blokkering av domenet {domain}",
"account.unblock_short": "Stopp blokkering",
@@ -98,6 +97,8 @@
"block_modal.title": "Blokker brukaren?",
"block_modal.you_wont_see_mentions": "Du ser ikkje innlegg som nemner dei.",
"boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong",
+ "boost_modal.reblog": "Framhev innlegget?",
+ "boost_modal.undo_reblog": "Fjern framhevinga?",
"bundle_column_error.copy_stacktrace": "Kopier feilrapport",
"bundle_column_error.error.body": "Den etterspurde sida kan ikke hentast fram. Det kan skuldast ein feil i koden vår eller eit kompatibilitetsproblem.",
"bundle_column_error.error.title": "Ånei!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Innhaldsåtvaring (valfritt)",
"confirmation_modal.cancel": "Avbryt",
"confirmations.block.confirm": "Blokker",
- "confirmations.cancel_follow_request.confirm": "Trekk attende førespurnad",
- "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekkje attende førespurnaden din om å fylgje {name}?",
"confirmations.delete.confirm": "Slett",
"confirmations.delete.message": "Er du sikker på at du vil sletta denne statusen?",
+ "confirmations.delete.title": "Slett innlegget?",
"confirmations.delete_list.confirm": "Slett",
"confirmations.delete_list.message": "Er du sikker på at du vil sletta denne lista for alltid?",
+ "confirmations.delete_list.title": "Slett lista?",
"confirmations.discard_edit_media.confirm": "Forkast",
"confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkasta dei likevel?",
- "confirmations.domain_block.confirm": "Blokker tenaren",
- "confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil skjula heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller dempingar. Du kjem ikkje til å sjå innhald frå domenet i fødererte tidsliner eller i varsla dine. Fylgjarane dine frå domenet vert fjerna.",
"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.logout.confirm": "Logg ut",
"confirmations.logout.message": "Er du sikker på at du vil logga ut?",
+ "confirmations.logout.title": "Logg ut?",
"confirmations.mute.confirm": "Demp",
"confirmations.redraft.confirm": "Slett & skriv på nytt",
"confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og svar til det opprinnelege innlegget vert foreldrelause.",
+ "confirmations.redraft.title": "Slett og skriv på nytt?",
"confirmations.reply.confirm": "Svar",
"confirmations.reply.message": "Å svara no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?",
+ "confirmations.reply.title": "Overskriv innlegget?",
"confirmations.unfollow.confirm": "Slutt å fylgja",
"confirmations.unfollow.message": "Er du sikker på at du vil slutta å fylgja {name}?",
+ "confirmations.unfollow.title": "Slutt å fylgja brukaren?",
+ "content_warning.hide": "Gøym innlegg",
+ "content_warning.show": "Vis likevel",
"conversation.delete": "Slett samtale",
"conversation.mark_as_read": "Marker som lesen",
"conversation.open": "Sjå samtale",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Bruk ein eksisterande kategori eller opprett ein ny",
"filter_modal.select_filter.title": "Filtrer dette innlegget",
"filter_modal.title.status": "Filtrer eit innlegg",
- "filtered_notifications_banner.mentions": "{count, plural, one {omtale} other {omtaler}}",
- "filtered_notifications_banner.pending_requests": "Varsel frå {count, plural, =0 {ingen} one {ein person} other {# folk}} du kanskje kjenner",
+ "filter_warning.matches_filter": "Passar med filteret «{title}»",
+ "filtered_notifications_banner.pending_requests": "Frå {count, plural, =0 {ingen} one {éin person} other {# personar}} du kanskje kjenner",
"filtered_notifications_banner.title": "Filtrerte varslingar",
"firehose.all": "Alle",
"firehose.local": "Denne tenaren",
@@ -347,6 +353,14 @@
"hashtag.follow": "Fylg emneknagg",
"hashtag.unfollow": "Slutt å fylgje emneknaggen",
"hashtags.and_other": "…og {count, plural, one {}other {# fleire}}",
+ "hints.profiles.followers_may_be_missing": "Kven som fylgjer denne profilen manglar kanskje.",
+ "hints.profiles.follows_may_be_missing": "Kven denne profilen fylgjer manglar kanskje.",
+ "hints.profiles.posts_may_be_missing": "Nokre innlegg frå denne profilen manglar kanskje.",
+ "hints.profiles.see_more_followers": "Sjå fleire fylgjarar på {domain}",
+ "hints.profiles.see_more_follows": "Sjå fleire fylgjer på {domain}",
+ "hints.profiles.see_more_posts": "Sjå fleire innlegg på {domain}",
+ "hints.threads.replies_may_be_missing": "Svar frå andre tenarar manglar kanskje.",
+ "hints.threads.see_more": "Sjå fleire svar på {domain}",
"home.column_settings.show_reblogs": "Vis framhevingar",
"home.column_settings.show_replies": "Vis svar",
"home.hide_announcements": "Skjul kunngjeringar",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Sjå oppdateringar",
"home.pending_critical_update.title": "Kritisk sikkerheitsoppdatering er tilgjengeleg!",
"home.show_announcements": "Vis kunngjeringar",
+ "ignore_notifications_modal.disclaimer": "Mastodon kan ikkje informera brukarane at du overser varsla deira. Å oversjå varsel vil ikkje hindra at meldingane blir sende.",
+ "ignore_notifications_modal.filter_instead": "Filtrer i staden",
+ "ignore_notifications_modal.filter_to_act_users": "Du kan framleis godta, avvisa eller rapportera brukarar",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Å filtrera hjelper til å unngå mogleg forvirring",
+ "ignore_notifications_modal.filter_to_review_separately": "Du kan gå gjennom filtrerte varslingar for seg",
+ "ignore_notifications_modal.ignore": "Oversjå varsel",
+ "ignore_notifications_modal.limited_accounts_title": "Oversjå varsel frå modererte kontoar?",
+ "ignore_notifications_modal.new_accounts_title": "Oversjå varsel frå nye kontoar?",
+ "ignore_notifications_modal.not_followers_title": "Oversjå varsel frå folk som ikkje fylgjer deg?",
+ "ignore_notifications_modal.not_following_title": "Oversjå varsel frå folk du ikkje fylgjer?",
+ "ignore_notifications_modal.private_mentions_title": "Oversjå varsel frå masseutsende private omtaler?",
"interaction_modal.description.favourite": "Med ein konto på Mastodon kan du favorittmerka dette innlegget for å visa forfattaren at du set pris på det, og for å lagra det til seinare.",
"interaction_modal.description.follow": "Med ein konto på Mastodon kan du fylgja {name} for å sjå innlegga deira i din heimestraum.",
"interaction_modal.description.reblog": "Med ein konto på Mastodon kan du framheva dette innlegget for å dela det med dine eigne fylgjarar.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "for å fokusere vekk skrive-/søkefeltet",
"keyboard_shortcuts.up": "Flytt opp på lista",
"lightbox.close": "Lukk",
- "lightbox.compress": "Komprimer biletvisningsboksen",
- "lightbox.expand": "Utvid biletvisningsboksen",
"lightbox.next": "Neste",
"lightbox.previous": "Førre",
+ "lightbox.zoom_in": "Zoom til faktisk storleik",
+ "lightbox.zoom_out": "Vis heile",
"limited_account_hint.action": "Vis profilen likevel",
"limited_account_hint.title": "Denne profilen er skjult av moderatorane på {domain}.",
"link_preview.author": "Av {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Listene dine",
"load_pending": "{count, plural, one {# nytt element} other {# nye element}}",
"loading_indicator.label": "Lastar…",
- "media_gallery.toggle_visible": "{number, plural, one {Skjul bilete} other {Skjul bilete}}",
+ "media_gallery.hide": "Gøym",
"moved_to_account_banner.text": "Kontoen din, {disabledAccount} er for tida deaktivert fordi du har flytta til {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ikkje vis varslingar",
"mute_modal.hide_options": "Gøym val",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Du vil ikkje sjå innlegg som nemner dei.",
"mute_modal.you_wont_see_posts": "Dei kan framleis sjå innlegga dine, men du vil ikkje sjå deira.",
"navigation_bar.about": "Om",
+ "navigation_bar.administration": "Administrasjon",
"navigation_bar.advanced_interface": "Opne i avansert nettgrensesnitt",
"navigation_bar.blocks": "Blokkerte brukarar",
"navigation_bar.bookmarks": "Bokmerke",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Fylgje og fylgjarar",
"navigation_bar.lists": "Lister",
"navigation_bar.logout": "Logg ut",
+ "navigation_bar.moderation": "Moderering",
"navigation_bar.mutes": "Målbundne brukarar",
"navigation_bar.opened_in_classic_interface": "Innlegg, kontoar, og enkelte andre sider blir opna som standard i det klassiske webgrensesnittet.",
"navigation_bar.personal": "Personleg",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Tryggleik",
"not_signed_in_indicator.not_signed_in": "Du må logga inn for å få tilgang til denne ressursen.",
"notification.admin.report": "{name} rapporterte {target}",
+ "notification.admin.report_account": "{name} rapporterte {count, plural, one {eitt innlegg} other {# innlegg}} frå {target} for {category}",
+ "notification.admin.report_account_other": "{name} rapporterte {count, plural, one {eitt innlegg} other {# innlegg}} frå {target}",
+ "notification.admin.report_statuses": "{name} rapporterte {target} for {category}",
+ "notification.admin.report_statuses_other": "{name} rapporterte {target}",
"notification.admin.sign_up": "{name} er registrert",
+ "notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# annan} other {# andre}} vart med",
"notification.favourite": "{name} markerte innlegget ditt som favoritt",
+ "notification.favourite.name_and_others_with_link": "{name} og {count, plural, one {# annan} other {# andre}} favorittmerka innlegget ditt",
"notification.follow": "{name} fylgde deg",
+ "notification.follow.name_and_others": "{name} og {count, plural, one {# annan} other {# andre}} fylgde deg",
"notification.follow_request": "{name} har bedt om å fylgja deg",
- "notification.mention": "{name} nemnde deg",
+ "notification.follow_request.name_and_others": "{name} og {count, plural, one {# annan} other {# andre}} har spurt om å fylgja deg",
+ "notification.label.mention": "Omtale",
+ "notification.label.private_mention": "Privat omtale",
+ "notification.label.private_reply": "Privat svar",
+ "notification.label.reply": "Svar",
+ "notification.mention": "Omtale",
"notification.moderation-warning.learn_more": "Lær meir",
"notification.moderation_warning": "Du har mottatt ei moderasjonsåtvaring",
"notification.moderation_warning.action_delete_statuses": "Nokre av innlegga dine har blitt fjerna.",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "Kontoen din har blitt avgrensa.",
"notification.moderation_warning.action_suspend": "Kontoen din har blitt suspendert.",
"notification.own_poll": "Rundspørjinga di er ferdig",
- "notification.poll": "Ei rundspørjing du har røysta i er ferdig",
+ "notification.poll": "Ei rundspørjing du røysta i er ferdig",
"notification.reblog": "{name} framheva innlegget ditt",
+ "notification.reblog.name_and_others_with_link": "{name} og {count, plural, one {# annan} other {# andre}} framheva innlegget ditt",
"notification.relationships_severance_event": "Tapte samband med {name}",
"notification.relationships_severance_event.account_suspension": "Ein administrator på {from} har utvist {target}, som tyder at du ikkje lenger får oppdateringar frå dei eller kan samhandla med dei.",
"notification.relationships_severance_event.domain_block": "Ein administrator på {from} har blokkert {target}, inkludert {followersCount} av fylgjarane dine og {followingCount, plural, one {# konto} other {# kontoar}} du fylgjer.",
@@ -495,11 +535,27 @@
"notification.status": "{name} la nettopp ut",
"notification.update": "{name} redigerte eit innlegg",
"notification_requests.accept": "Godkjenn",
+ "notification_requests.accept_multiple": "{count, plural, one {Godta # førespurnad…} other {Godta # førespurnader…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Godta førespurnad} other {Godta førespurnader}}",
+ "notification_requests.confirm_accept_multiple.message": "Du er i ferd med å godta {count, plural, one {ein førespurnad om varsling} other {# førespurnader om varsling}}. Er du sikker på at du vil halda fram?",
+ "notification_requests.confirm_accept_multiple.title": "Godta førespurnader om varsling?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Avvis førespurnad} other {Avvis førespurnader}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Du er i ferd med å avvisa {count, plural, one {ein førespurnad om varsel} other {# førespurnader om varsel}}. Det blir ikkje lett å få tilgang til {count, plural, one {han} other {dei}} att. Er du sikker på at du vil halda fram?",
+ "notification_requests.confirm_dismiss_multiple.title": "Avvis førespurnader om varsel?",
"notification_requests.dismiss": "Avvis",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Avvis # førespurnad…} other {Avvis # førespurnader…}}",
+ "notification_requests.edit_selection": "Rediger",
+ "notification_requests.exit_selection": "Ferdig",
+ "notification_requests.explainer_for_limited_account": "Varsla frå denne kontoen er filtrerte ut fordi ein moderator har avgrensa kontoen.",
+ "notification_requests.explainer_for_limited_remote_account": "Varla frå denne kontoen er filtrerte ut fordi ein moderator har avgrensa kontoen eller tenaren.",
+ "notification_requests.maximize": "Maksimer",
+ "notification_requests.minimize_banner": "Minimer banneret for filtrerte varsel",
"notification_requests.notifications_from": "Varslingar frå {name}",
"notification_requests.title": "Filtrerte varslingar",
+ "notification_requests.view": "Sjå varsel",
"notifications.clear": "Tøm varsel",
"notifications.clear_confirmation": "Er du sikker på at du vil fjerna alle varsla dine for alltid?",
+ "notifications.clear_title": "Tøm varsel?",
"notifications.column_settings.admin.report": "Nye rapportar:",
"notifications.column_settings.admin.sign_up": "Nyleg registrerte:",
"notifications.column_settings.alert": "Skrivebordsvarsel",
@@ -508,7 +564,7 @@
"notifications.column_settings.filter_bar.category": "Snøggfilterline",
"notifications.column_settings.follow": "Nye fylgjarar:",
"notifications.column_settings.follow_request": "Ny fylgjarførespurnader:",
- "notifications.column_settings.mention": "Omtalar:",
+ "notifications.column_settings.mention": "Omtaler:",
"notifications.column_settings.poll": "Røysteresultat:",
"notifications.column_settings.push": "Pushvarsel",
"notifications.column_settings.reblog": "Framhevingar:",
@@ -531,15 +587,23 @@
"notifications.permission_denied": "Skrivebordsvarsel er ikkje tilgjengelege på grunn av at nettlesaren tidlegare ikkje har fått naudsynte rettar til å vise dei",
"notifications.permission_denied_alert": "Sidan nettlesaren tidlegare har blitt nekta naudsynte rettar, kan ikkje skrivebordsvarsel aktiverast",
"notifications.permission_required": "Skrivebordsvarsel er utilgjengelege fordi naudsynte rettar ikkje er gitt.",
+ "notifications.policy.accept": "Godta",
+ "notifications.policy.accept_hint": "Vis i varsla",
+ "notifications.policy.drop": "Oversjå",
+ "notifications.policy.drop_hint": "Send ut i endeløysa så det aldri kjem att",
+ "notifications.policy.filter": "Filtrer",
+ "notifications.policy.filter_hint": "Send til innboksen for filtrerte varsel",
+ "notifications.policy.filter_limited_accounts_hint": "Avgrensa av moderatorar på tenaren",
+ "notifications.policy.filter_limited_accounts_title": "Modererte kontoar",
"notifications.policy.filter_new_accounts.hint": "Skrive siste {days, plural, one {dag} other {# dagar}}",
"notifications.policy.filter_new_accounts_title": "Nye brukarkontoar",
"notifications.policy.filter_not_followers_hint": "Inkludert folk som har fylgt deg mindre enn {days, plural, one {ein dag} other {# dagar}}",
"notifications.policy.filter_not_followers_title": "Folk som ikkje fylgjer deg",
"notifications.policy.filter_not_following_hint": "Til du godkjenner dei manuelt",
"notifications.policy.filter_not_following_title": "Folk du ikkje fylgjer",
- "notifications.policy.filter_private_mentions_hint": "Filtrert viss det ikkje er eit svar på dine eigne nemningar eller viss du fylgjer avsendaren",
- "notifications.policy.filter_private_mentions_title": "Masseutsende private nemningar",
- "notifications.policy.title": "Filtrer ut varslingar frå…",
+ "notifications.policy.filter_private_mentions_hint": "Filtrert viss det ikkje er eit svar på dine eigne omtaler eller viss du fylgjer avsendaren",
+ "notifications.policy.filter_private_mentions_title": "Masseutsende private omtaler",
+ "notifications.policy.title": "Handter varsel frå…",
"notifications_permission_banner.enable": "Skru på skrivebordsvarsel",
"notifications_permission_banner.how_to_control": "Aktiver skrivebordsvarsel for å få varsel når Mastodon ikkje er open. Du kan nøye bestemme kva samhandlingar som skal føre til skrivebordsvarsel gjennom {icon}-knappen ovanfor etter at varsel er aktivert.",
"notifications_permission_banner.title": "Gå aldri glipp av noko",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Du fylgjer denne kontoen. Slutt å fylgje dei for ikkje lenger å sjå innlegga deira i heimestraumen din.",
"report_notification.attached_statuses": "{count, plural, one {{count} innlegg} other {{count} innlegg}} lagt ved",
"report_notification.categories.legal": "Juridisk",
+ "report_notification.categories.legal_sentence": "ulovleg innhald",
"report_notification.categories.other": "Anna",
+ "report_notification.categories.other_sentence": "anna",
"report_notification.categories.spam": "Søppelpost",
+ "report_notification.categories.spam_sentence": "søppel",
"report_notification.categories.violation": "Regelbrot",
+ "report_notification.categories.violation_sentence": "regelbrot",
"report_notification.open": "Opne rapport",
"search.no_recent_searches": "Ingen søk nylig",
"search.placeholder": "Søk",
@@ -696,8 +764,11 @@
"server_banner.about_active_users": "Personar som har brukt denne tenaren dei siste 30 dagane (Månadlege Aktive Brukarar)",
"server_banner.active_users": "aktive brukarar",
"server_banner.administered_by": "Administrert av:",
+ "server_banner.is_one_of_many": "{domain} er ein av dei mange uavhengige Mastodon-serverane du kan bruke til å delta i Fødiverset.",
"server_banner.server_stats": "Tenarstatistikk:",
"sign_in_banner.create_account": "Opprett konto",
+ "sign_in_banner.follow_anyone": "Følg kven som helst på tvers av Fødiverset og sjå alt i kronologisk rekkjefølgje. Ingen algoritmar, reklamar eller clickbait i sikte.",
+ "sign_in_banner.mastodon_is": "Mastodon er den beste måten å følgje med på det som skjer.",
"sign_in_banner.sign_in": "Logg inn",
"sign_in_banner.sso_redirect": "Logg inn eller registrer deg",
"status.admin_account": "Opne moderasjonsgrensesnitt for @{name}",
@@ -707,6 +778,7 @@
"status.bookmark": "Set bokmerke",
"status.cancel_reblog_private": "Opphev framheving",
"status.cannot_reblog": "Du kan ikkje framheva dette innlegget",
+ "status.continued_thread": "Framhald til tråden",
"status.copy": "Kopier lenke til status",
"status.delete": "Slett",
"status.detailed_status": "Detaljert samtalevisning",
@@ -715,12 +787,10 @@
"status.edit": "Rediger",
"status.edited": "Sist endra {date}",
"status.edited_x_times": "Redigert {count, plural, one {{count} gong} other {{count} gonger}}",
- "status.embed": "Bygg inn",
+ "status.embed": "Få innbyggingskode",
"status.favourite": "Favoritt",
"status.favourites": "{count, plural, one {favoritt} other {favorittar}}",
"status.filter": "Filtrer dette innlegget",
- "status.filtered": "Filtrert",
- "status.hide": "Skjul innlegget",
"status.history.created": "{name} oppretta {date}",
"status.history.edited": "{name} redigerte {date}",
"status.load_more": "Last inn meir",
@@ -742,16 +812,14 @@
"status.reblogs.empty": "Ingen har framheva dette tutet enno. Om nokon gjer, så dukkar det opp her.",
"status.redraft": "Slett & skriv på nytt",
"status.remove_bookmark": "Fjern bokmerke",
+ "status.replied_in_thread": "Svara i tråden",
"status.replied_to": "Svarte {name}",
"status.reply": "Svar",
"status.replyAll": "Svar til tråd",
"status.report": "Rapporter @{name}",
"status.sensitive_warning": "Ømtolig innhald",
"status.share": "Del",
- "status.show_filter_reason": "Vis likevel",
- "status.show_less": "Vis mindre",
"status.show_less_all": "Vis mindre for alle",
- "status.show_more": "Vis meir",
"status.show_more_all": "Vis meir for alle",
"status.show_original": "Vis original",
"status.title.with_attachments": "{user} la ut {attachmentCount, plural, one {eitt vedlegg} other {{attachmentCount} vedlegg}}",
@@ -770,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# minutt} other {# minutt}} igjen",
"time_remaining.moments": "Kort tid igjen",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekund}} igjen",
- "timeline_hint.remote_resource_not_displayed": "{resource} frå andre tenarar blir ikkje vist.",
- "timeline_hint.resources.followers": "Fylgjarar",
- "timeline_hint.resources.follows": "Fylgjer",
- "timeline_hint.resources.statuses": "Eldre tut",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} folk}} siste {days, plural, one {døgnet} other {{days} dagane}}",
"trends.trending_now": "Populært no",
"ui.beforeunload": "Kladden din forsvinn om du forlèt Mastodon no.",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 213ba8af12b..1d0294cd7c0 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -11,7 +11,7 @@
"about.not_available": "Denne informasjonen er ikke gjort tilgjengelig på denne tjeneren.",
"about.powered_by": "Desentraliserte sosiale medier drevet av {mastodon}",
"about.rules": "Regler for serveren",
- "account.account_note_header": "Notat",
+ "account.account_note_header": "Personlig notat",
"account.add_or_remove_from_list": "Legg til eller fjern fra lister",
"account.badges.bot": "Automatisert",
"account.badges.group": "Gruppe",
@@ -19,7 +19,6 @@
"account.block_domain": "Blokker domenet {domain}",
"account.block_short": "Blokker",
"account.blocked": "Blokkert",
- "account.browse_more_on_origin_server": "Bla mer på den opprinnelige profilen",
"account.cancel_follow_request": "Avbryt følgeforespørselen",
"account.copy": "Kopier lenke til profil",
"account.direct": "Nevn @{name} privat",
@@ -89,7 +88,17 @@
"announcement.announcement": "Kunngjøring",
"attachments_list.unprocessed": "(ubehandlet)",
"audio.hide": "Skjul lyd",
+ "block_modal.remote_users_caveat": "Vi vil be serveren {domain} om å respektere din beslutning. Det er imidlertid ingen garanti at det blir overholdt, siden noen servere kan håndtere blokkeringer på forskjellig vis. Offentlige innlegg kan fortsatt være synlige for ikke-innloggede brukere.",
+ "block_modal.show_less": "Vis mindre",
+ "block_modal.show_more": "Vis mer",
+ "block_modal.they_cant_mention": "De kan ikke nevne eller følge deg.",
+ "block_modal.they_cant_see_posts": "De kan ikke se dine innlegg og du kommer ikke til å se deres.",
+ "block_modal.they_will_know": "De kan se at de er blitt blokkert.",
+ "block_modal.title": "Blokker bruker?",
+ "block_modal.you_wont_see_mentions": "Du kommer ikke til å se innlegg som nevner dem.",
"boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang",
+ "boost_modal.reblog": "Fremhev innlegg?",
+ "boost_modal.undo_reblog": "Fjern fremheving?",
"bundle_column_error.copy_stacktrace": "Kopier feilrapport",
"bundle_column_error.error.body": "Den forespurte siden kan ikke gjengis. Den kan skyldes en feil i vår kode eller et kompatibilitetsproblem med nettleseren.",
"bundle_column_error.error.title": "Å nei!",
@@ -161,26 +170,32 @@
"compose_form.spoiler_placeholder": "Innholdsadvarsel (valgfritt)",
"confirmation_modal.cancel": "Avbryt",
"confirmations.block.confirm": "Blokkèr",
- "confirmations.cancel_follow_request.confirm": "Trekk tilbake forespørsel",
- "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekke tilbake forespørselen din for å følge {name}?",
"confirmations.delete.confirm": "Slett",
"confirmations.delete.message": "Er du sikker på at du vil slette dette innlegget?",
+ "confirmations.delete.title": "Slett innlegg?",
"confirmations.delete_list.confirm": "Slett",
"confirmations.delete_list.message": "Er du sikker på at du vil slette denne listen permanent?",
+ "confirmations.delete_list.title": "Slett liste?",
"confirmations.discard_edit_media.confirm": "Forkast",
"confirmations.discard_edit_media.message": "Du har ulagrede endringer i mediebeskrivelsen eller i forhåndsvisning, forkast dem likevel?",
- "confirmations.domain_block.message": "Er du sikker på at du vil skjule hele domenet {domain}? I de fleste tilfeller er det bedre med målrettet blokkering eller demping.",
"confirmations.edit.confirm": "Redigér",
"confirmations.edit.message": "Å redigere nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?",
+ "confirmations.edit.title": "Overskriv innlegg?",
"confirmations.logout.confirm": "Logg ut",
"confirmations.logout.message": "Er du sikker på at du vil logge ut?",
+ "confirmations.logout.title": "Logg ut?",
"confirmations.mute.confirm": "Demp",
"confirmations.redraft.confirm": "Slett og skriv på nytt",
"confirmations.redraft.message": "Er du sikker på at du vil slette dette innlegget og lagre det på nytt? Favoritter og fremhevinger vil gå tapt, og svar til det originale innlegget vil bli foreldreløse.",
+ "confirmations.redraft.title": "Slett og skriv på nytt?",
"confirmations.reply.confirm": "Svar",
"confirmations.reply.message": "Å svare nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?",
+ "confirmations.reply.title": "Overskriv innlegg?",
"confirmations.unfollow.confirm": "Slutt å følge",
"confirmations.unfollow.message": "Er du sikker på at du vil slutte å følge {name}?",
+ "confirmations.unfollow.title": "Slutt å følge bruker?",
+ "content_warning.hide": "Skjul innlegg",
+ "content_warning.show": "Vis likevel",
"conversation.delete": "Slett samtalen",
"conversation.mark_as_read": "Marker som lest",
"conversation.open": "Vis samtale",
@@ -200,6 +215,27 @@
"dismissable_banner.explore_statuses": "Disse innleggene fra denne og andre servere i det desentraliserte nettverket får økt oppmerksomhet på denne serveren akkurat nå. Nyere innlegg med flere fremhevinger og favoritter er rangert høyere.",
"dismissable_banner.explore_tags": "Disse emneknaggene snakker folk om akkurat nå, på denne og andre servere i det desentraliserte nettverket.",
"dismissable_banner.public_timeline": "Dette er de siste offentlige innleggene fra mennesker på det sosiale nettet som folk på {domain} følger.",
+ "domain_block_modal.block": "Blokker server",
+ "domain_block_modal.block_account_instead": "Blokker @{name} i stedet",
+ "domain_block_modal.they_can_interact_with_old_posts": "Personer fra denne serveren kan samhandle med dine gamle innlegg.",
+ "domain_block_modal.they_cant_follow": "Ingen fra denne serveren kan følge deg.",
+ "domain_block_modal.they_wont_know": "De kommer ikke til å få vite at du har valgt å blokkere dem.",
+ "domain_block_modal.title": "Blokker domenet?",
+ "domain_block_modal.you_will_lose_followers": "Alle dine følgere fra denne serveren vil bli fjernet.",
+ "domain_block_modal.you_wont_see_posts": "Du vil ikke se innlegg eller få varsler fra brukere på denne serveren.",
+ "domain_pill.activitypub_lets_connect": "Den lar deg koble til og samhandle med folk ikke bare på Mastodon, men også på tvers av forskjellige sosiale apper.",
+ "domain_pill.activitypub_like_language": "ActivityPub er liksom språket Mastodon snakker med andre sosiale nettverk.",
+ "domain_pill.server": "Server",
+ "domain_pill.their_handle": "Deres håndtak:",
+ "domain_pill.their_server": "Deres digitale hjem, hvor alle innleggene deres bor.",
+ "domain_pill.their_username": "Deres unike identifikator på serveren sin. Det er mulig å finne brukere med samme brukernavn på forskjellige servere.",
+ "domain_pill.username": "Brukernavn",
+ "domain_pill.whats_in_a_handle": "Hva er et håndtak?",
+ "domain_pill.who_they_are": "Siden håndtakene sier hvem noen er og hvor de er, kan du samhandle med folk på tvers av det sosiale nettverket bestående av plattformer som støtter ActivityPub.",
+ "domain_pill.who_you_are": "Fordi ditt håndtak sier hvem du er og hvor du er, kan folk kommunisere med deg på tvers av plattformer som støtter ActivityPub.",
+ "domain_pill.your_handle": "Din håndtak:",
+ "domain_pill.your_server": "Ditt digitale hjem, hvor alle dine innlegg bor. Liker du ikke denne? Flytt till en annen server når som helst og ta med følgerne dine.",
+ "domain_pill.your_username": "Din unike identifikator på denne serveren. Det er mulig å finne brukere med samme brukernavn på forskjellige servere.",
"embed.instructions": "Kopier koden under for å bygge inn denne statusen på hjemmesiden din.",
"embed.preview": "Slik kommer det til å se ut:",
"emoji_button.activity": "Aktivitet",
@@ -236,6 +272,7 @@
"empty_column.list": "Det er ingenting i denne listen ennå. Når medlemmene av denne listen legger ut nye statuser vil de dukke opp her.",
"empty_column.lists": "Du har ingen lister enda. Når du lager en, vil den dukke opp her.",
"empty_column.mutes": "Du har ikke dempet noen brukere enda.",
+ "empty_column.notification_requests": "Alt klart! Det er ingenting her. Når du mottar nye varsler, vises de her i henhold til dine innstillinger.",
"empty_column.notifications": "Du har ingen varsler ennå. Kommuniser med andre for å begynne samtalen.",
"empty_column.public": "Det er ingenting her! Skriv noe offentlig, eller følg brukere manuelt fra andre instanser for å fylle den opp",
"error.unexpected_crash.explanation": "På grunn av en bug i koden vår eller et nettleserkompatibilitetsproblem, kunne denne siden ikke vises riktig.",
@@ -266,13 +303,30 @@
"filter_modal.select_filter.subtitle": "Bruk en eksisterende kategori eller opprett en ny",
"filter_modal.select_filter.title": "Filtrer dette innlegget",
"filter_modal.title.status": "Filtrer et innlegg",
+ "filter_warning.matches_filter": "Passer med filteret «{title}»",
+ "filtered_notifications_banner.pending_requests": "Fra {count, plural, =0 {ingen} one {en person} other {# folk}} du kanskje kjenner",
+ "filtered_notifications_banner.title": "Filtrerte varsler",
"firehose.all": "Alt",
"firehose.local": "Denne serveren",
"firehose.remote": "Andre servere",
"follow_request.authorize": "Autoriser",
"follow_request.reject": "Avvis",
"follow_requests.unlocked_explanation": "Selv om kontoen din ikke er låst, tror {domain} ansatte at du kanskje vil gjennomgå forespørsler fra disse kontoene manuelt.",
+ "follow_suggestions.curated_suggestion": "Utvalgt av staben",
+ "follow_suggestions.dismiss": "Ikke vis igjen",
+ "follow_suggestions.featured_longer": "Håndplukket av {domain}-teamet",
+ "follow_suggestions.friends_of_friends_longer": "Populært blant personer du følger",
+ "follow_suggestions.hints.featured": "Denne profilen er håndplukket av {domain}-teamet.",
+ "follow_suggestions.hints.friends_of_friends": "Denne profilen er populær blant de du følger.",
+ "follow_suggestions.hints.most_followed": "Denne profilen er en av de på {domain} som har flest følgere.",
+ "follow_suggestions.hints.most_interactions": "Denne profilen fått mye oppmerksomhet i det siste på {domain}.",
+ "follow_suggestions.hints.similar_to_recently_followed": "Denne profilen ligner på profilene du nylig har fulgt.",
+ "follow_suggestions.personalized_suggestion": "Personlig forslag",
+ "follow_suggestions.popular_suggestion": "Populært forslag",
+ "follow_suggestions.popular_suggestion_longer": "Populært på {domain}",
+ "follow_suggestions.similar_to_recently_followed_longer": "Likner på profiler du nylig har fulgt",
"follow_suggestions.view_all": "Vis alle",
+ "follow_suggestions.who_to_follow": "Hvem du kan følge",
"followed_tags": "Fulgte emneknagger",
"footer.about": "Om",
"footer.directory": "Profilkatalog",
@@ -299,6 +353,14 @@
"hashtag.follow": "Følg emneknagg",
"hashtag.unfollow": "Slutt å følge emneknagg",
"hashtags.and_other": "…og {count, plural, one{en til} other {# til}}",
+ "hints.profiles.followers_may_be_missing": "Følgere for denne profilen mangler kanskje.",
+ "hints.profiles.follows_may_be_missing": "Hvem denne profilen følger mangler kanskje.",
+ "hints.profiles.posts_may_be_missing": "Det kan hende at noen av innleggene til denne profilen mangler.",
+ "hints.profiles.see_more_followers": "Se flere følgere på {domain}",
+ "hints.profiles.see_more_follows": "Se flere som følger på {domain}",
+ "hints.profiles.see_more_posts": "Se flere innlegg på {domain}",
+ "hints.threads.replies_may_be_missing": "Svar fra andre servere mangler kanskje.",
+ "hints.threads.see_more": "Se flere svar på {domain}",
"home.column_settings.show_reblogs": "Vis fremhevinger",
"home.column_settings.show_replies": "Vis svar",
"home.hide_announcements": "Skjul kunngjøring",
@@ -306,6 +368,17 @@
"home.pending_critical_update.link": "Se oppdateringer",
"home.pending_critical_update.title": "Kritisk sikkerhetsoppdatering er tilgjengelig!",
"home.show_announcements": "Vis kunngjøring",
+ "ignore_notifications_modal.disclaimer": "Mastodon kan ikke informere brukere at du har ignorert deres varsler. Å ignorere varsler vil ikke stoppe meldinger selv fra å bli sendt.",
+ "ignore_notifications_modal.filter_instead": "Filtrer i stedet",
+ "ignore_notifications_modal.filter_to_act_users": "Du kan fremdeles akseptere, avvise eller rapportere brukere",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering bidrar til å unngå potensiell forvirring",
+ "ignore_notifications_modal.filter_to_review_separately": "Du kan gjennomgå filtrerte varsler for seg",
+ "ignore_notifications_modal.ignore": "Overse varsler",
+ "ignore_notifications_modal.limited_accounts_title": "Overse varsler fra modererte kontoer?",
+ "ignore_notifications_modal.new_accounts_title": "Overse varsler fra nye kontoer?",
+ "ignore_notifications_modal.not_followers_title": "Overse varsler fra folk som ikke følger deg?",
+ "ignore_notifications_modal.not_following_title": "Overse varsler fra folk du ikke følger?",
+ "ignore_notifications_modal.private_mentions_title": "Overse varsler fra uoppfordrede private omtaler?",
"interaction_modal.description.favourite": "Med en konto på Mastodon, kan du favorittmarkere dette innlegget for å la forfatteren vite at du satte pris på det, og lagre innlegget til senere.",
"interaction_modal.description.follow": "Med en konto på Mastodon, kan du følge {name} for å få innleggene deres i tidslinjen din.",
"interaction_modal.description.reblog": "Med en konto på Mastodon, kan du fremheve dette innlegget for å dele det med dine egne følgere.",
@@ -359,13 +432,13 @@
"keyboard_shortcuts.unfocus": "Fjern fokus fra komponerings-/søkefeltet",
"keyboard_shortcuts.up": "Flytt oppover i listen",
"lightbox.close": "Lukk",
- "lightbox.compress": "Komprimer bildevisningsboks",
- "lightbox.expand": "Ekspander bildevisning boks",
"lightbox.next": "Neste",
"lightbox.previous": "Forrige",
"limited_account_hint.action": "Vis profil likevel",
"limited_account_hint.title": "Denne profilen har blitt skjult av moderatorene til {domain}.",
"link_preview.author": "Av {name}",
+ "link_preview.more_from_author": "Mer fra {name}",
+ "link_preview.shares": "{count, plural, one {{counter} innlegg} other {{counter} innlegg}}",
"lists.account.add": "Legg til i listen",
"lists.account.remove": "Fjern fra listen",
"lists.delete": "Slett listen",
@@ -382,9 +455,18 @@
"lists.subheading": "Dine lister",
"load_pending": "{count, plural,one {# ny gjenstand} other {# nye gjenstander}}",
"loading_indicator.label": "Laster…",
- "media_gallery.toggle_visible": "Veksle synlighet",
"moved_to_account_banner.text": "Din konto {disabledAccount} er for øyeblikket deaktivert fordi du flyttet til {movedToAccount}.",
+ "mute_modal.hide_from_notifications": "Ikke varsle",
+ "mute_modal.hide_options": "Skjul alternativer",
+ "mute_modal.indefinite": "Til jeg opphever dempingen",
+ "mute_modal.show_options": "Vis alternativer",
+ "mute_modal.they_can_mention_and_follow": "De kan nevne og følge deg, men du kommer ikke til å se dem.",
+ "mute_modal.they_wont_know": "De kommer ikke til å få vite at du har valgt å skjule dem.",
+ "mute_modal.title": "Demp bruker?",
+ "mute_modal.you_wont_see_mentions": "Du kommer ikke til å se innlegg som nevner dem.",
+ "mute_modal.you_wont_see_posts": "De kan fremdeles se dine innlegg, men du kommer ikke til å se deres.",
"navigation_bar.about": "Om",
+ "navigation_bar.administration": "Administrasjon",
"navigation_bar.advanced_interface": "Åpne i det avanserte nettgrensesnittet",
"navigation_bar.blocks": "Blokkerte brukere",
"navigation_bar.bookmarks": "Bokmerker",
@@ -401,6 +483,7 @@
"navigation_bar.follows_and_followers": "Følginger og følgere",
"navigation_bar.lists": "Lister",
"navigation_bar.logout": "Logg ut",
+ "navigation_bar.moderation": "Moderering",
"navigation_bar.mutes": "Dempede brukere",
"navigation_bar.opened_in_classic_interface": "Innlegg, kontoer og andre spesifikke sider åpnes som standard i det klassiske webgrensesnittet.",
"navigation_bar.personal": "Personlig",
@@ -411,13 +494,12 @@
"navigation_bar.security": "Sikkerhet",
"not_signed_in_indicator.not_signed_in": "Du må logge inn for å få tilgang til denne ressursen.",
"notification.admin.report": "{name} rapporterte {target}",
+ "notification.admin.report_account": "{name} rapporterte {count, plural, one {et innlegg} other {# innlegg}} fra {target} for {category}",
"notification.admin.sign_up": "{name} registrerte seg",
"notification.favourite": "{name} favorittmarkerte innlegget ditt",
"notification.follow": "{name} fulgte deg",
"notification.follow_request": "{name} har bedt om å få følge deg",
- "notification.mention": "{name} nevnte deg",
"notification.own_poll": "Avstemningen din er ferdig",
- "notification.poll": "En avstemning du stemte på har avsluttet",
"notification.reblog": "{name} fremhevet ditt innlegg",
"notification.status": "{name} la nettopp ut",
"notification.update": "{name} redigerte et innlegg",
@@ -427,6 +509,8 @@
"notifications.column_settings.admin.sign_up": "Nye registreringer:",
"notifications.column_settings.alert": "Skrivebordsvarslinger",
"notifications.column_settings.favourite": "Favoritter:",
+ "notifications.column_settings.filter_bar.advanced": "Vis alle kategorier",
+ "notifications.column_settings.filter_bar.category": "Hurtigfiltreringslinje",
"notifications.column_settings.follow": "Nye følgere:",
"notifications.column_settings.follow_request": "Nye følgerforespørsler:",
"notifications.column_settings.mention": "Nevnt:",
@@ -452,6 +536,23 @@
"notifications.permission_denied": "Skrivebordsvarsler er ikke tilgjengelige på grunn av tidligere nektet nettlesertillatelser",
"notifications.permission_denied_alert": "Skrivebordsvarsler kan ikke aktiveres, ettersom lesertillatelse har blitt nektet før",
"notifications.permission_required": "Skrivebordsvarsler er utilgjengelige fordi nødvendige rettigheter ikke er gitt.",
+ "notifications.policy.accept": "Godta",
+ "notifications.policy.accept_hint": "Vis i varsler",
+ "notifications.policy.drop": "Overse",
+ "notifications.policy.drop_hint": "Send til avgrunnen, for aldri å bli sett igjen",
+ "notifications.policy.filter": "Filter",
+ "notifications.policy.filter_hint": "Send til filtrert varslingsinnboks",
+ "notifications.policy.filter_limited_accounts_hint": "Begrenset av serverens moderatorer",
+ "notifications.policy.filter_limited_accounts_title": "Modererte kontoer",
+ "notifications.policy.filter_new_accounts.hint": "Opprettet {days, plural, one {den siste dagen} other {i de siste # dagene}}",
+ "notifications.policy.filter_new_accounts_title": "Nye kontoer",
+ "notifications.policy.filter_not_followers_hint": "Inkludert personer som har fulgt deg mindre enn {days, plural, one {en dag} other {# dager}}",
+ "notifications.policy.filter_not_followers_title": "Personer som ikke følger deg",
+ "notifications.policy.filter_not_following_hint": "Inntil du manuelt godkjenner dem",
+ "notifications.policy.filter_not_following_title": "Personer du ikke følger",
+ "notifications.policy.filter_private_mentions_hint": "Filtrert med mindre det er et svar som omtaler deg, eller hvis du følger avsenderen",
+ "notifications.policy.filter_private_mentions_title": "Uoppfordrede private omtaler",
+ "notifications.policy.title": "Behandle varsler fra…",
"notifications_permission_banner.enable": "Skru på skrivebordsvarsler",
"notifications_permission_banner.how_to_control": "For å motta varsler når Mastodon ikke er åpne, aktiver desktop varsler. Du kan kontrollere nøyaktig hvilke typer interaksjoner genererer skrivebordsvarsler gjennom {icon} -knappen ovenfor når de er aktivert.",
"notifications_permission_banner.title": "Aldri gå glipp av noe",
@@ -612,7 +713,7 @@
"sign_in_banner.sso_redirect": "Logg inn eller registrer deg",
"status.admin_account": "Åpne moderatorgrensesnittet for @{name}",
"status.admin_domain": "Åpne moderatorgrensesnittet for {domain}",
- "status.admin_status": "Åpne denne statusen i moderatorgrensesnittet",
+ "status.admin_status": "Åpne dette innlegget i moderatorgrensesnittet",
"status.block": "Blokker @{name}",
"status.bookmark": "Bokmerke",
"status.cancel_reblog_private": "Fjern fremheving",
@@ -624,11 +725,8 @@
"status.direct_indicator": "Privat omtale",
"status.edit": "Rediger",
"status.edited_x_times": "Redigert {count, plural,one {{count} gang} other {{count} ganger}}",
- "status.embed": "Bygge inn",
"status.favourite": "Favoritt",
"status.filter": "Filtrer dette innlegget",
- "status.filtered": "Filtrert",
- "status.hide": "Skjul innlegg",
"status.history.created": "{name} opprettet {date}",
"status.history.edited": "{name} redigerte {date}",
"status.load_more": "Last mer",
@@ -655,10 +753,7 @@
"status.report": "Rapporter @{name}",
"status.sensitive_warning": "Følsomt innhold",
"status.share": "Del",
- "status.show_filter_reason": "Vis likevel",
- "status.show_less": "Vis mindre",
"status.show_less_all": "Vis mindre for alle",
- "status.show_more": "Vis mer",
"status.show_more_all": "Vis mer for alle",
"status.show_original": "Vis original",
"status.title.with_attachments": "{user} postet {attachmentCount, plural, one {et vedlegg} other {{attachmentCount} vedlegg}}",
@@ -677,10 +772,6 @@
"time_remaining.minutes": "{number, plural, one {# minutt} other {# minutter}} igjen",
"time_remaining.moments": "Gjenværende øyeblikk",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} igjen",
- "timeline_hint.remote_resource_not_displayed": "{resource} fra andre servere vises ikke.",
- "timeline_hint.resources.followers": "Følgere",
- "timeline_hint.resources.follows": "Følger",
- "timeline_hint.resources.statuses": "Eldre innlegg",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} folk}} {days, plural, one {den siste dagen} other {de siste {days} dagene}}",
"trends.trending_now": "Trender nå",
"ui.beforeunload": "Din kladd vil bli forkastet om du forlater Mastodon.",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index d8e11415880..9dbd123c9be 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -8,7 +8,6 @@
"about.not_available": "Aquesta informacion foguèt pas renduda disponibla sus aqueste servidor.",
"about.powered_by": "Malhum social descentralizat propulsat per {mastodon}",
"about.rules": "Règlas del servidor",
- "account.account_note_header": "Nòta",
"account.add_or_remove_from_list": "Ajustar o tirar de las listas",
"account.badges.bot": "Robòt",
"account.badges.group": "Grop",
@@ -16,7 +15,6 @@
"account.block_domain": "Tot amagar del domeni {domain}",
"account.block_short": "Blocar",
"account.blocked": "Blocat",
- "account.browse_more_on_origin_server": "Navigar sul perfil original",
"account.cancel_follow_request": "Retirar la demanda d’abonament",
"account.copy": "Copiar lo ligam del perfil",
"account.direct": "Mencionar @{name} en privat",
@@ -32,9 +30,7 @@
"account.follow_back": "Sègre en retorn",
"account.followers": "Seguidors",
"account.followers.empty": "Degun sèc pas aqueste utilizaire pel moment.",
- "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}",
"account.following": "Abonat",
- "account.following_counter": "{count, plural, one {{counter} Abonaments} other {{counter} Abonaments}}",
"account.follows.empty": "Aqueste utilizaire sèc pas degun pel moment.",
"account.go_to_profile": "Anar al perfil",
"account.hide_reblogs": "Rescondre los partatges de @{name}",
@@ -60,7 +56,6 @@
"account.requested_follow": "{name} a demandat a vos sègre",
"account.share": "Partejar lo perfil a @{name}",
"account.show_reblogs": "Mostrar los partatges de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}",
"account.unblock": "Desblocar @{name}",
"account.unblock_domain": "Desblocar {domain}",
"account.unblock_short": "Desblocat",
@@ -138,14 +133,11 @@
"compose_form.spoiler.unmarked": "Lo tèxte es pas rescondut",
"confirmation_modal.cancel": "Anullar",
"confirmations.block.confirm": "Blocar",
- "confirmations.cancel_follow_request.confirm": "Retirar la demandar",
- "confirmations.cancel_follow_request.message": "Volètz vertadièrament retirar la demanda de seguiment de {name} ?",
"confirmations.delete.confirm": "Escafar",
"confirmations.delete.message": "Volètz vertadièrament escafar l’estatut ?",
"confirmations.delete_list.confirm": "Suprimir",
"confirmations.delete_list.message": "Volètz vertadièrament suprimir aquesta lista per totjorn ?",
"confirmations.discard_edit_media.confirm": "Ignorar",
- "confirmations.domain_block.message": "Volètz vertadièrament blocar complètament {domain} ? De còps cal pas que blocar o rescondre unas personas solament.\nVeiretz pas cap de contengut d’aquel domeni dins cap de flux public o dins vòstras notificacions. Vòstres seguidors d’aquel domeni seràn levats.",
"confirmations.edit.confirm": "Modificar",
"confirmations.logout.confirm": "Desconnexion",
"confirmations.logout.message": "Volètz vertadièrament vos desconnectar ?",
@@ -305,8 +297,6 @@
"keyboard_shortcuts.unfocus": "quitar lo camp tèxte/de recèrca",
"keyboard_shortcuts.up": "far montar dins la lista",
"lightbox.close": "Tampar",
- "lightbox.compress": "Fenèstra de visualizacion dels imatges compressats",
- "lightbox.expand": "Espandir la fenèstra de visualizacion d’imatge",
"lightbox.next": "Seguent",
"lightbox.previous": "Precedent",
"limited_account_hint.action": "Afichar lo perfil de tota manièra",
@@ -327,7 +317,6 @@
"lists.subheading": "Vòstras listas",
"load_pending": "{count, plural, one {# nòu element} other {# nòu elements}}",
"loading_indicator.label": "Cargament…",
- "media_gallery.toggle_visible": "Modificar la visibilitat",
"navigation_bar.about": "A prepaus",
"navigation_bar.advanced_interface": "Dobrir l’interfàcia web avançada",
"navigation_bar.blocks": "Personas blocadas",
@@ -358,9 +347,7 @@
"notification.favourite": "{name} a mes vòstre estatut en favorit",
"notification.follow": "{name} vos sèc",
"notification.follow_request": "{name} a demandat a vos sègre",
- "notification.mention": "{name} vos a mencionat",
"notification.own_poll": "Vòstre sondatge es acabat",
- "notification.poll": "Avètz participat a un sondatge que ven de s’acabar",
"notification.reblog": "{name} a partejat vòstre estatut",
"notification.status": "{name} ven de publicar",
"notification.update": "{name} modiquè sa publicacion",
@@ -516,11 +503,8 @@
"status.direct_indicator": "Mencion privada",
"status.edit": "Modificar",
"status.edited_x_times": "Modificat {count, plural, un {{count} còp} other {{count} còps}}",
- "status.embed": "Embarcar",
"status.favourite": "Apondre als favorits",
"status.filter": "Filtrar aquesta publicacion",
- "status.filtered": "Filtrat",
- "status.hide": "Amagar la publicacion",
"status.history.created": "{name} o creèt lo {date}",
"status.history.edited": "{name} o modifiquèt lo {date}",
"status.load_more": "Cargar mai",
@@ -547,10 +531,7 @@
"status.report": "Senhalar @{name}",
"status.sensitive_warning": "Contengut sensible",
"status.share": "Partejar",
- "status.show_filter_reason": "Afichar de tot biais",
- "status.show_less": "Tornar plegar",
"status.show_less_all": "Los tornar plegar totes",
- "status.show_more": "Desplegar",
"status.show_more_all": "Los desplegar totes",
"status.show_original": "Veire l’original",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -569,10 +550,6 @@
"time_remaining.minutes": "demòra{number, plural, one { # minuta} other {n # minutas}}",
"time_remaining.moments": "Moments restants",
"time_remaining.seconds": "demòra{number, plural, one { # segonda} other {n # segondas}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} suls autres servidors son pas afichats.",
- "timeline_hint.resources.followers": "Seguidors",
- "timeline_hint.resources.follows": "Abonaments",
- "timeline_hint.resources.statuses": "Tuts mai ancians",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} dins los darrièrs {days, plural, one {jorn} other {{days} jorns}}",
"trends.trending_now": "Tendéncia del moment",
"ui.beforeunload": "Vòstre brolhon serà perdut se quitatz Mastodon.",
diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json
index 46924d737de..5da88ff08f7 100644
--- a/app/javascript/mastodon/locales/pa.json
+++ b/app/javascript/mastodon/locales/pa.json
@@ -4,7 +4,6 @@
"about.domain_blocks.silenced.title": "ਸੀਮਿਤ",
"about.domain_blocks.suspended.title": "ਮੁਅੱਤਲ ਕੀਤੀ",
"about.rules": "ਸਰਵਰ ਨਿਯਮ",
- "account.account_note_header": "ਨੋਟ",
"account.add_or_remove_from_list": "ਸੂਚੀ ਵਿੱਚ ਜੋੜੋ ਜਾਂ ਹਟਾਓ",
"account.badges.bot": "ਆਟੋਮੇਟ ਕੀਤਾ",
"account.badges.group": "ਗਰੁੱਪ",
@@ -25,12 +24,13 @@
"account.follow_back": "ਵਾਪਸ ਫਾਲ਼ੋ ਕਰੋ",
"account.followers": "ਫ਼ਾਲੋਅਰ",
"account.followers.empty": "ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਾਲੇ ਕੋਈ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।",
- "account.followers_counter": "{count, plural, one {{counter} ਫ਼ਾਲੋਅਰ} other {{counter} ਫ਼ਾਲੋਅਰ}}",
"account.following": "ਫ਼ਾਲੋ ਕੀਤਾ",
- "account.following_counter": "{count, plural, one {{counter} ਨੂੰ ਫ਼ਾਲੋ} other {{counter} ਨੂੰ ਫ਼ਾਲੋ}}",
"account.follows.empty": "ਇਹ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਕਿਸੇ ਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।",
"account.go_to_profile": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਜਾਓ",
"account.media": "ਮੀਡੀਆ",
+ "account.mute": "{name} ਨੂੰ ਮੌਨ ਕਰੋ",
+ "account.mute_notifications_short": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਮੌਨ ਕਰੋ",
+ "account.mute_short": "ਮੌਨ ਕਰੋ",
"account.muted": "ਮੌਨ ਕੀਤੀਆਂ",
"account.mutual": "ਸਾਂਝੇ",
"account.no_bio": "ਕੋਈ ਵਰਣਨ ਨਹੀਂ ਦਿੱਤਾ।",
@@ -41,7 +41,6 @@
"account.requested": "ਮਨਜ਼ੂਰੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। ਫ਼ਾਲੋ ਬੇਨਤੀਆਂ ਨੂੰ ਰੱਦ ਕਰਨ ਲਈ ਕਲਿੱਕ ਕਰੋ",
"account.requested_follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ",
"account.share": "{name} ਦਾ ਪਰੋਫ਼ਾਇਲ ਸਾਂਝਾ ਕਰੋ",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "@{name} ਤੋਂ ਪਾਬੰਦੀ ਹਟਾਓ",
"account.unblock_domain": "{domain} ਡੋਮੇਨ ਤੋਂ ਪਾਬੰਦੀ ਹਟਾਓ",
"account.unblock_short": "ਪਾਬੰਦੀ ਹਟਾਓ",
@@ -321,7 +320,6 @@
"status.delete": "ਹਟਾਓ",
"status.edit": "ਸੋਧ",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "ਮੜ੍ਹੋ",
"status.favourite": "ਪਸੰਦ",
"status.history.created": "{name} ਨੇ {date} ਨੂੰ ਬਣਾਇਆ",
"status.history.edited": "{name} ਨੇ {date} ਨੂੰ ਸੋਧਿਆ",
@@ -342,17 +340,11 @@
"status.report": "@{name} ਦੀ ਰਿਪੋਰਟ ਕਰੋ",
"status.sensitive_warning": "ਸੰਵੇਦਨਸ਼ੀਲ ਸਮੱਗਰੀ",
"status.share": "ਸਾਂਝਾ ਕਰੋ",
- "status.show_filter_reason": "ਕਿਵੇਂ ਵੀ ਵੇਖਾਓ",
- "status.show_less": "ਘੱਟ ਦਿਖਾਓ",
- "status.show_more": "ਹੋਰ ਦਿਖਾਓ",
"status.title.with_attachments": "{user} ਨੇ {attachmentCount, plural,one {ਅਟੈਚਮੈਂਟ} other {{attachmentCount}ਅਟੈਚਮੈਂਟਾਂ}} ਪੋਸਟ ਕੀਤੀਆਂ",
"status.translate": "ਉਲੱਥਾ ਕਰੋ",
"subscribed_languages.save": "ਤਬਦੀਲੀਆਂ ਸੰਭਾਲੋ",
"tabs_bar.home": "ਘਰ",
"tabs_bar.notifications": "ਸੂਚਨਾਵਾਂ",
- "timeline_hint.resources.followers": "ਫ਼ਾਲੋਅਰ",
- "timeline_hint.resources.follows": "ਫ਼ਾਲੋ",
- "timeline_hint.resources.statuses": "ਪੂਰਾਣੀਆਂ ਪੋਸਟਾਂ",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"units.short.billion": "{count}ਿਬ",
"units.short.million": "{count}ਮਿ",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index ddfe1d4fbcd..a4ee25250a9 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -11,7 +11,7 @@
"about.not_available": "Ta informacja nie została udostępniona na tym serwerze.",
"about.powered_by": "Zdecentralizowane media społecznościowe napędzane przez {mastodon}",
"about.rules": "Regulamin serwera",
- "account.account_note_header": "Notatka",
+ "account.account_note_header": "Twoja notatka",
"account.add_or_remove_from_list": "Dodaj lub usuń z list",
"account.badges.bot": "Bot",
"account.badges.group": "Grupa",
@@ -19,7 +19,6 @@
"account.block_domain": "Blokuj wszystko z {domain}",
"account.block_short": "Zablokuj",
"account.blocked": "Zablokowany(-a)",
- "account.browse_more_on_origin_server": "Zobacz więcej na oryginalnym profilu",
"account.cancel_follow_request": "Wycofaj żądanie obserwowania",
"account.copy": "Skopiuj odnośnik do profilu",
"account.direct": "Prywatna wzmianka @{name}",
@@ -98,6 +97,8 @@
"block_modal.title": "Zablokować użytkownika?",
"block_modal.you_wont_see_mentions": "Nie zobaczysz wpisów, które wspominają tego użytkownika.",
"boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem",
+ "boost_modal.reblog": "Podbić wpis?",
+ "boost_modal.undo_reblog": "Cofnąć podbicie?",
"bundle_column_error.copy_stacktrace": "Skopiuj raport o błędzie",
"bundle_column_error.error.body": "Nie można zrenderować żądanej strony. Może to być spowodowane błędem w naszym kodzie lub problemami z kompatybilnością przeglądarki.",
"bundle_column_error.error.title": "O nie!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Ostrzeżenie o treści (opcjonalne)",
"confirmation_modal.cancel": "Anuluj",
"confirmations.block.confirm": "Zablokuj",
- "confirmations.cancel_follow_request.confirm": "Wycofaj prośbę",
- "confirmations.cancel_follow_request.message": "Czy na pewno chcesz wycofać prośbę o możliwość obserwowania {name}?",
"confirmations.delete.confirm": "Usuń",
"confirmations.delete.message": "Czy na pewno chcesz usunąć ten wpis?",
+ "confirmations.delete.title": "Usunąć wpis?",
"confirmations.delete_list.confirm": "Usuń",
"confirmations.delete_list.message": "Czy na pewno chcesz bezpowrotnie usunąć tą listę?",
+ "confirmations.delete_list.title": "Usunąć listę?",
"confirmations.discard_edit_media.confirm": "Odrzuć",
"confirmations.discard_edit_media.message": "Masz niezapisane zmiany w opisie lub podglądzie, odrzucić je mimo to?",
- "confirmations.domain_block.confirm": "Blokuj serwer",
- "confirmations.domain_block.message": "Czy na pewno chcesz zablokować całą domenę {domain}? Zwykle lepszym rozwiązaniem jest blokada lub wyciszenie kilku użytkowników.",
"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.logout.confirm": "Wyloguj",
"confirmations.logout.message": "Czy na pewno chcesz się wylogować?",
+ "confirmations.logout.title": "Wylogować?",
"confirmations.mute.confirm": "Wycisz",
"confirmations.redraft.confirm": "Usuń i przeredaguj",
"confirmations.redraft.message": "Czy na pewno chcesz usunąć i przeredagować ten wpis? Polubienia i podbicia zostaną utracone, a odpowiedzi do oryginalnego wpisu zostaną osierocone.",
+ "confirmations.redraft.title": "Usunąć i przeredagować wpis?",
"confirmations.reply.confirm": "Odpowiedz",
"confirmations.reply.message": "W ten sposób utracisz wpis który obecnie tworzysz. Czy na pewno chcesz to zrobić?",
+ "confirmations.reply.title": "Nadpisać wpis?",
"confirmations.unfollow.confirm": "Przestań obserwować",
"confirmations.unfollow.message": "Czy na pewno zamierzasz przestać obserwować {name}?",
+ "confirmations.unfollow.title": "Przestać obserwować?",
+ "content_warning.hide": "Ukryj wpis",
+ "content_warning.show": "Pokaż mimo to",
"conversation.delete": "Usuń konwersację",
"conversation.mark_as_read": "Oznacz jako przeczytane",
"conversation.open": "Zobacz konwersację",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Użyj istniejącej kategorii lub utwórz nową",
"filter_modal.select_filter.title": "Filtruj ten wpis",
"filter_modal.title.status": "Filtruj wpis",
- "filtered_notifications_banner.mentions": "{count, plural, one {wzmianka} few {wzmianki} other {wzmianek}}",
- "filtered_notifications_banner.pending_requests": "Powiadomienia od {count, plural, =0 {żadnej osoby którą możesz znać} one {# osoby którą możesz znać} other {# osób które możesz znać}}",
+ "filter_warning.matches_filter": "Pasuje do filtra \"{title}\"",
+ "filtered_notifications_banner.pending_requests": "Od {count, plural, =0 {żadnej osoby którą możesz znać} one {# osoby którą możesz znać} other {# osób które możesz znać}}",
"filtered_notifications_banner.title": "Powiadomienia filtrowane",
"firehose.all": "Wszystko",
"firehose.local": "Ten serwer",
@@ -347,6 +353,14 @@
"hashtag.follow": "Obserwuj hasztag",
"hashtag.unfollow": "Przestań obserwować hashtag",
"hashtags.and_other": "…i {count, plural, other {jeszcze #}}",
+ "hints.profiles.followers_may_be_missing": "Może brakować niektórych obserwujących tego profilu.",
+ "hints.profiles.follows_may_be_missing": "Może brakować niektórych obserwowanych przez tego użytkownika.",
+ "hints.profiles.posts_may_be_missing": "Może brakować niektórych wpisów tego profilu.",
+ "hints.profiles.see_more_followers": "Zobacz wszystkich obserwujących na {domain}",
+ "hints.profiles.see_more_follows": "Zobacz wszystkich obserwowanych na {domain}",
+ "hints.profiles.see_more_posts": "Zobacz wszystkie wpisy na {domain}",
+ "hints.threads.replies_may_be_missing": "Może brakować odpowiedzi z innych serwerów.",
+ "hints.threads.see_more": "Zobacz wszystkie odpowiedzi na {domain}",
"home.column_settings.show_reblogs": "Pokazuj podbicia",
"home.column_settings.show_replies": "Pokazuj odpowiedzi",
"home.hide_announcements": "Ukryj ogłoszenia",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Pokaż aktualizacje",
"home.pending_critical_update.title": "Dostępna krytyczna aktualizacja bezpieczeństwa!",
"home.show_announcements": "Pokaż ogłoszenia",
+ "ignore_notifications_modal.disclaimer": "Mastodon nie może poinformować innych użytkowników że ignorujesz ich powiadomienia. Ignorowanie powiadomień nie zapobieże wysyłaniu wpisów per se. ",
+ "ignore_notifications_modal.filter_instead": "Filtruj zamiast tego",
+ "ignore_notifications_modal.filter_to_act_users": "Dalej będziesz mieć możliwość przyjmować, odrzucać, i raportować użytkowników",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrowanie może ograniczyć pomyłki",
+ "ignore_notifications_modal.filter_to_review_separately": "Możesz osobno przejrzeć powiadomienia odfiltrowane",
+ "ignore_notifications_modal.ignore": "Ignoruj powiadomienia",
+ "ignore_notifications_modal.limited_accounts_title": "Ignoruj powiadomienia od kont moderowanych?",
+ "ignore_notifications_modal.new_accounts_title": "Ignoruj powiadomienia od nowych kont?",
+ "ignore_notifications_modal.not_followers_title": "Ignoruj powiadomienia od użytkowników którzy cię nie obserwują?",
+ "ignore_notifications_modal.not_following_title": "Ignoruj powiadomienia od użytkowników których nie obserwujesz?",
+ "ignore_notifications_modal.private_mentions_title": "Ignoruj powiadomienia o nieproszonych wzmiankach prywatnych?",
"interaction_modal.description.favourite": "Mając konto na Mastodonie, możesz dodawać wpisy do ulubionych by dać znać jego autorowi, że podoba Ci się ten wpis i zachować go na później.",
"interaction_modal.description.follow": "Mając konto na Mastodonie, możesz śledzić {name} by widzieć jego wpisy na swojej głównej osi czasu.",
"interaction_modal.description.reblog": "Mając konto na Mastodonie, możesz podbić ten wpis i udostępnić go Twoim obserwującym.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "aby opuścić pole wyszukiwania/pisania",
"keyboard_shortcuts.up": "aby przejść na górę listy",
"lightbox.close": "Zamknij",
- "lightbox.compress": "Zmniejsz pole widoku obrazu",
- "lightbox.expand": "Rozwiń pole widoku obrazu",
"lightbox.next": "Następne",
"lightbox.previous": "Poprzednie",
+ "lightbox.zoom_in": "Rozmiar rzeczywisty",
+ "lightbox.zoom_out": "Dopasuj",
"limited_account_hint.action": "Pokaż profil mimo to",
"limited_account_hint.title": "Ten profil został ukryty przez moderatorów {domain}.",
"link_preview.author": "{name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Twoje listy",
"load_pending": "{count, plural, one {# nowa pozycja} other {nowe pozycje}}",
"loading_indicator.label": "Ładowanie…",
- "media_gallery.toggle_visible": "Przełącz widoczność",
+ "media_gallery.hide": "Ukryj",
"moved_to_account_banner.text": "Twoje konto {disabledAccount} jest obecnie wyłączone, ponieważ zostało przeniesione na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ukryj z powiadomień",
"mute_modal.hide_options": "Ukryj opcje",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Nie zobaczysz wpisów, które wspominają tego użytkownika.",
"mute_modal.you_wont_see_posts": "Użytkownik dalej będzie widzieć Twoje posty, ale Ty nie będziesz widzieć jego.",
"navigation_bar.about": "O serwerze",
+ "navigation_bar.administration": "Administracja",
"navigation_bar.advanced_interface": "Otwórz w zaawansowanym interfejsie użytkownika",
"navigation_bar.blocks": "Zablokowani użytkownicy",
"navigation_bar.bookmarks": "Zakładki",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Obserwowani i obserwujący",
"navigation_bar.lists": "Listy",
"navigation_bar.logout": "Wyloguj",
+ "navigation_bar.moderation": "Moderacja",
"navigation_bar.mutes": "Wyciszeni użytkownicy",
"navigation_bar.opened_in_classic_interface": "Posty, konta i inne konkretne strony są otwierane domyślnie w klasycznym interfejsie sieciowym.",
"navigation_bar.personal": "Osobiste",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Bezpieczeństwo",
"not_signed_in_indicator.not_signed_in": "Musisz się zalogować, aby uzyskać dostęp do tego zasobu.",
"notification.admin.report": "{name} zgłosił {target}",
+ "notification.admin.report_account": "{name} zgłosił(a) {count, plural, one {1 wpis} few {# wpisy} other {# wpisów}} z {target} w kategorii {category}",
+ "notification.admin.report_account_other": "{name} zgłosił(a) {count, plural, one {1 wpis} few {# wpisy} other {# wpisów}} z {target}",
+ "notification.admin.report_statuses": "{name} zgłosił(a) {target} w kategorii {category}",
+ "notification.admin.report_statuses_other": "{name} zgłosił(a) {target}",
"notification.admin.sign_up": "Użytkownik {name} zarejestrował się",
+ "notification.admin.sign_up.name_and_others": "zarejestrował(-a) się {name} i {count, plural, one {# inna osoba} few {# inne osoby} other {# innych osób}}",
"notification.favourite": "{name} dodaje Twój wpis do ulubionych",
+ "notification.favourite.name_and_others_with_link": "{name} i {count, plural, one {# inna osoba polubiła twój wpis} few {# inne osoby polubiły twój wpis} other {# innych osób polubiło twój wpis}}",
"notification.follow": "{name} obserwuje Cię",
+ "notification.follow.name_and_others": "{name} i {count, plural, one {# inna osoba cię zaobserwowała} few {# inne osoby cię zaobserwowały} other {# innych osób cię zaobserwowało}}",
"notification.follow_request": "{name} chce cię zaobserwować",
- "notification.mention": "Wspomniało o Tobie przez {name}",
+ "notification.follow_request.name_and_others": "{name} i {count, plural, one {# inna osoba chce} few {# inne osoby chcą} other {# innych osób chce}} zaobserwować twój profil",
+ "notification.label.mention": "Wzmianka",
+ "notification.label.private_mention": "Prywatna wzmianka",
+ "notification.label.private_reply": "Odpowiedź prywatna",
+ "notification.label.reply": "Odpowiedź",
+ "notification.mention": "Wzmianka",
"notification.moderation-warning.learn_more": "Dowiedz się więcej",
"notification.moderation_warning": "Otrzymałeś/-łaś ostrzeżenie moderacyjne",
"notification.moderation_warning.action_delete_statuses": "Niektóre twoje wpisy zostały usunięte.",
@@ -485,20 +524,38 @@
"notification.moderation_warning.action_silence": "Twoje konto zostało ograniczone.",
"notification.moderation_warning.action_suspend": "Twoje konto zostało zawieszone.",
"notification.own_poll": "Twoje głosowanie zakończyło się",
- "notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyło się",
+ "notification.poll": "Głosowanie, w którym brałeś(-aś) udział, zostało zakończone",
"notification.reblog": "Twój post został podbity przez {name}",
+ "notification.reblog.name_and_others_with_link": "{name} i {count, plural, one {# inna osoba podbiła twój wpis} few {# inne osoby podbiły twój wpis} other {# innych osób podbiło twój wpis}}",
"notification.relationships_severance_event": "Utracone związki z {name}",
"notification.relationships_severance_event.account_suspension": "Administrator z {from} zawiesił {target}, więc nie dostaniesz wieści ani nie wejdziesz w interakcje z użytkownikami z tego serwera.",
"notification.relationships_severance_event.domain_block": "Administrator z {from} zablokował {target}, w tym {followersCount} z Twoich obserwujących i {followingCount, plural, one {# konto} other {# konta}} które obserwujesz.",
"notification.relationships_severance_event.learn_more": "Dowiedz się więcej",
+ "notification.relationships_severance_event.user_domain_block": "Zablokowałeś {target}, w tym {followersCount} z Twoich obserwujących i {followingCount, plural, one {# konto} other {# konta}} które obserwujesz.",
"notification.status": "{name} opublikował(a) nowy wpis",
"notification.update": "{name} edytował(a) post",
"notification_requests.accept": "Akceptuj",
+ "notification_requests.accept_multiple": "Przyjmij {count, plural, one {# wniosek} few {# wnioski} other {# wniosków}} o powiadomienia…",
+ "notification_requests.confirm_accept_multiple.button": "Przyjmij {count, plural, one {wniosek} other {wnioski}} o powiadomienia",
+ "notification_requests.confirm_accept_multiple.message": "Na pewno przyjąć {count, plural, one {# wniosek o powiadomienie} few {# wnioski o powiadomienia} other {# wniosków o powiadomienia}}?",
+ "notification_requests.confirm_accept_multiple.title": "Przyjąć wnioski o powiadomienia?",
+ "notification_requests.confirm_dismiss_multiple.button": "Odrzuć {count, plural, one {wniosek} other {wnioski}} o powiadomienia",
+ "notification_requests.confirm_dismiss_multiple.message": "Na pewno odrzucić {count, plural, one {# wniosek o powiadomienie} few {# wnioski o powiadomienia} other {# wniosków o powiadomienia}}? Stracisz do {count, plural, one {niego} other {nich}} łatwy dostęp.",
+ "notification_requests.confirm_dismiss_multiple.title": "Odrzuć żądania powiadomień?",
"notification_requests.dismiss": "Odrzuć",
+ "notification_requests.dismiss_multiple": "Odrzuć {count, plural, one {# wniosek} few {# wnioski} other {# wniosków}} o powiadomienia…",
+ "notification_requests.edit_selection": "Edytuj",
+ "notification_requests.exit_selection": "Gotowe",
+ "notification_requests.explainer_for_limited_account": "Powiadomienia od tego konta zostały odfiltrowane bo to konto zostało ograniczone przez moderatora.",
+ "notification_requests.explainer_for_limited_remote_account": "Powiadomienia od tego konta zostały odfiltrowane bo to konto, albo serwer na którym się znajduje, zostało ograniczone przez moderatora.",
+ "notification_requests.maximize": "Zmaksymalizuj",
+ "notification_requests.minimize_banner": "Zminimalizuj baner powiadomień filtrowanych",
"notification_requests.notifications_from": "Powiadomienia od {name}",
"notification_requests.title": "Powiadomienia filtrowane",
+ "notification_requests.view": "Wyświetl powiadomienia",
"notifications.clear": "Wyczyść powiadomienia",
"notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?",
+ "notifications.clear_title": "Wyczyścić powiadomienia?",
"notifications.column_settings.admin.report": "Nowe zgłoszenia:",
"notifications.column_settings.admin.sign_up": "Nowe rejestracje:",
"notifications.column_settings.alert": "Powiadomienia na pulpicie",
@@ -530,6 +587,14 @@
"notifications.permission_denied": "Powiadomienia na pulpicie nie są dostępne, ponieważ wcześniej nie udzielono uprawnień w przeglądarce",
"notifications.permission_denied_alert": "Powiadomienia na pulpicie nie mogą zostać włączone, ponieważ wcześniej odmówiono uprawnień",
"notifications.permission_required": "Powiadomienia na pulpicie nie są dostępne, ponieważ nie przyznano wymaganego uprawnienia.",
+ "notifications.policy.accept": "Zaakceptuj",
+ "notifications.policy.accept_hint": "Wyświetlaj w powiadomieniach",
+ "notifications.policy.drop": "Zignoruj",
+ "notifications.policy.drop_hint": "Usuń nieodzyskiwalnie.",
+ "notifications.policy.filter": "Odfiltruj",
+ "notifications.policy.filter_hint": "Wyślij do skrzynki powiadomień odfiltrowanych",
+ "notifications.policy.filter_limited_accounts_hint": "Ograniczonych przez moderatorów serwera",
+ "notifications.policy.filter_limited_accounts_title": "Kont zmoderowanych",
"notifications.policy.filter_new_accounts.hint": "Utworzone w ciągu {days, plural, one {ostatniego dnia} other {ostatnich # dni}}",
"notifications.policy.filter_new_accounts_title": "Nowe konta",
"notifications.policy.filter_not_followers_hint": "Zawierające osoby które obserwują cię krócej niż {days, plural, one {dzień} other {# dni}}",
@@ -538,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Ludzie, których nie obserwujesz",
"notifications.policy.filter_private_mentions_hint": "Odfiltrowane, chyba że są odpowiedzią na twoją własną wzmiankę, lub obserwujesz wysyłającego",
"notifications.policy.filter_private_mentions_title": "Nieproszone prywatne wzmianki",
- "notifications.policy.title": "Odfiltruj powiadomienia od…",
+ "notifications.policy.title": "Zarządzaj powiadomieniami od…",
"notifications_permission_banner.enable": "Włącz powiadomienia na pulpicie",
"notifications_permission_banner.how_to_control": "Aby otrzymywać powiadomienia, gdy Mastodon nie jest otwarty, włącz powiadomienia pulpitu. Możesz dokładnie kontrolować, októrych działaniach będziesz powiadomienia na pulpicie za pomocą przycisku {icon} powyżej, jeżeli tylko zostaną włączone.",
"notifications_permission_banner.title": "Nie przegap niczego",
@@ -665,9 +730,13 @@
"report.unfollow_explanation": "Obserwujesz to konto. Jeśli nie chcesz już widzieć postów z tego konta w swojej głównej osi czasu, przestań je obserwować.",
"report_notification.attached_statuses": "{count, plural, one {{count} wpis} few {{count} wpisy} many {{counter} wpisów} other {{counter} wpisów}}",
"report_notification.categories.legal": "Prawne",
+ "report_notification.categories.legal_sentence": "treść nielegalna",
"report_notification.categories.other": "Inne",
+ "report_notification.categories.other_sentence": "inne",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Naruszenie zasad",
+ "report_notification.categories.violation_sentence": "naruszenie zasad",
"report_notification.open": "Otwórz zgłoszenie",
"search.no_recent_searches": "Brak ostatnich wyszukiwań",
"search.placeholder": "Szukaj",
@@ -709,6 +778,7 @@
"status.bookmark": "Dodaj zakładkę",
"status.cancel_reblog_private": "Cofnij podbicie",
"status.cannot_reblog": "Ten wpis nie może zostać podbity",
+ "status.continued_thread": "Ciąg dalszy wątku",
"status.copy": "Skopiuj odnośnik do wpisu",
"status.delete": "Usuń",
"status.detailed_status": "Szczegółowy widok konwersacji",
@@ -717,12 +787,10 @@
"status.edit": "Edytuj",
"status.edited": "Ostatnio edytowane {date}",
"status.edited_x_times": "Edytowano {count, plural, one {{count} raz} other {{count} razy}}",
- "status.embed": "Osadź",
+ "status.embed": "Kod osadzenia",
"status.favourite": "Dodaj do ulubionych",
"status.favourites": "{count, plural, one {polubienie} few {polubienia} other {polubień}}",
"status.filter": "Filtruj ten wpis",
- "status.filtered": "Filtrowany(-a)",
- "status.hide": "Ukryj post",
"status.history.created": "{name} utworzone {date}",
"status.history.edited": "{name} edytowane {date}",
"status.load_more": "Załaduj więcej",
@@ -744,16 +812,14 @@
"status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.",
"status.redraft": "Usuń i przeredaguj",
"status.remove_bookmark": "Usuń zakładkę",
+ "status.replied_in_thread": "Odpowiedź w wątku",
"status.replied_to": "Odpowiedź do wpisu użytkownika {name}",
"status.reply": "Odpowiedz",
"status.replyAll": "Odpowiedz na wątek",
"status.report": "Zgłoś @{name}",
"status.sensitive_warning": "Wrażliwa zawartość",
"status.share": "Udostępnij",
- "status.show_filter_reason": "Pokaż mimo wszystko",
- "status.show_less": "Zwiń",
"status.show_less_all": "Zwiń wszystkie",
- "status.show_more": "Rozwiń",
"status.show_more_all": "Rozwiń wszystkie",
"status.show_original": "Pokaż oryginał",
"status.title.with_attachments": "{user} opublikował(a) {attachmentCount, plural, one {załącznik} few {{attachmentCount} załączniki} other {{attachmentCount} załączników}}",
@@ -772,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {Pozostała # minuta} few {Pozostały # minuty} many {Pozostało # minut} other {Pozostało # minut}}",
"time_remaining.moments": "Pozostała chwila",
"time_remaining.seconds": "{number, plural, one {Pozostała # sekunda} few {Pozostały # sekundy} many {Pozostało # sekund} other {Pozostało # sekund}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} z innych serwerów nie są wyświetlane.",
- "timeline_hint.resources.followers": "Obserwujący",
- "timeline_hint.resources.follows": "Obserwowani",
- "timeline_hint.resources.statuses": "Starsze wpisy",
"trends.counter_by_accounts": "{count, plural, one {jedna osoba} few {{count} osoby} many {{count} osób} other {{counter} ludzie}} w ciągu {days, plural, one {ostatniego dnia} other {ostatnich {days} dni}}",
"trends.trending_now": "Popularne teraz",
"ui.beforeunload": "Utracisz tworzony wpis, jeżeli opuścisz Mastodona.",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index afe54905476..1eca63ac15c 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -11,7 +11,7 @@
"about.not_available": "Esta informação não foi disponibilizada neste servidor.",
"about.powered_by": "Redes sociais descentralizadas alimentadas por {mastodon}",
"about.rules": "Regras do servidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota pessoal",
"account.add_or_remove_from_list": "Adicionar ou remover de listas",
"account.badges.bot": "Robô",
"account.badges.group": "Grupo",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloquear domínio {domain}",
"account.block_short": "Bloquear",
"account.blocked": "Bloqueado",
- "account.browse_more_on_origin_server": "Veja mais no perfil original",
"account.cancel_follow_request": "Cancelar solicitação para seguir",
"account.copy": "Copiar link do perfil",
"account.direct": "Mencione em privado @{name}",
@@ -37,7 +36,7 @@
"account.followers.empty": "Nada aqui.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Seguindo",
- "account.following_counter": "{count, plural, one {segue {counter}} other {segue {counter}}}",
+ "account.following_counter": "{count, plural, one {{counter} seguindo} other {{counter} seguindo}}",
"account.follows.empty": "Nada aqui.",
"account.go_to_profile": "Ir ao perfil",
"account.hide_reblogs": "Ocultar boosts de @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} quer te seguir",
"account.share": "Compartilhar perfil de @{name}",
"account.show_reblogs": "Mostrar boosts de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+ "account.statuses_counter": "{count, plural, one {{counter} publicação} other {{counter} publicações}}",
"account.unblock": "Desbloquear @{name}",
"account.unblock_domain": "Desbloquear domínio {domain}",
"account.unblock_short": "Desbloquear",
@@ -98,6 +97,8 @@
"block_modal.title": "Bloquear usuário?",
"block_modal.you_wont_see_mentions": "Você não verá publicações que os mencionem.",
"boost_modal.combo": "Pressione {combo} para pular isso na próxima vez",
+ "boost_modal.reblog": "Impulsionar a publicação?",
+ "boost_modal.undo_reblog": "Retirar o impulsionamento do post?",
"bundle_column_error.copy_stacktrace": "Copiar relatório do erro",
"bundle_column_error.error.body": "A página solicitada não pôde ser renderizada. Pode ser devido a um erro no nosso código, ou um problema de compatibilidade do seu navegador.",
"bundle_column_error.error.title": "Ah, não!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Aviso de conteúdo (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.confirm": "Bloquear",
- "confirmations.cancel_follow_request.confirm": "Cancelar a solicitação",
- "confirmations.cancel_follow_request.message": "Tem certeza de que deseja cancelar seu pedido para seguir {name}?",
"confirmations.delete.confirm": "Excluir",
"confirmations.delete.message": "Você tem certeza de que deseja excluir este toot?",
+ "confirmations.delete.title": "Excluir publicação?",
"confirmations.delete_list.confirm": "Excluir",
"confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?",
+ "confirmations.delete_list.title": "Excluir lista?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?",
- "confirmations.domain_block.confirm": "Servidor de blocos",
- "confirmations.domain_block.message": "Você tem certeza de que deseja bloquear tudo de {domain}? Você não verá mais o conteúdo desta instância em nenhuma linha do tempo pública ou nas suas notificações. Seus seguidores desta instância serão removidos.",
"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.logout.confirm": "Sair",
"confirmations.logout.message": "Você tem certeza de que deseja sair?",
+ "confirmations.logout.title": "Sair da sessão?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.redraft.confirm": "Excluir e rascunhar",
"confirmations.redraft.message": "Você tem certeza de que quer apagar essa postagem e rascunhá-la? Favoritos e impulsos serão perdidos, e respostas à postagem original ficarão órfãs.",
+ "confirmations.redraft.title": "Excluir e rascunhar publicação?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder agora sobrescreverá o toot que você está compondo. Deseja continuar?",
+ "confirmations.reply.title": "Sobrescrever o post?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Você tem certeza de que deseja deixar de seguir {name}?",
+ "confirmations.unfollow.title": "Deixar de seguir o usuário?",
+ "content_warning.hide": "Ocultar post",
+ "content_warning.show": "Mostrar mesmo assim",
"conversation.delete": "Excluir conversa",
"conversation.mark_as_read": "Marcar como lida",
"conversation.open": "Ver conversa",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Use uma categoria existente ou crie uma nova",
"filter_modal.select_filter.title": "Filtrar esta publicação",
"filter_modal.title.status": "Filtrar uma publicação",
- "filtered_notifications_banner.mentions": "{count, plural, one {menção} other {menções}}",
- "filtered_notifications_banner.pending_requests": "Notificações de {count, plural, =0 {no one} one {one person} other {# people}} que você talvez conheça",
+ "filter_warning.matches_filter": "Correspondente ao filtro “{title}”",
+ "filtered_notifications_banner.pending_requests": "Por {count, plural, =0 {no one} one {one person} other {# people}} que você talvez conheça",
"filtered_notifications_banner.title": "Notificações filtradas",
"firehose.all": "Tudo",
"firehose.local": "Este servidor",
@@ -347,6 +353,14 @@
"hashtag.follow": "Seguir hashtag",
"hashtag.unfollow": "Parar de seguir hashtag",
"hashtags.and_other": "…e {count, plural, one {}other {outros #}}",
+ "hints.profiles.followers_may_be_missing": "Os seguidores deste perfil podem estar faltando.",
+ "hints.profiles.follows_may_be_missing": "Os seguidores deste perfil podem estar faltando.",
+ "hints.profiles.posts_may_be_missing": "É possível que algumas publicações deste perfil estejam faltando.",
+ "hints.profiles.see_more_followers": "Ver mais seguidores no {domain}",
+ "hints.profiles.see_more_follows": "Ver mais seguidores no {domain}",
+ "hints.profiles.see_more_posts": "Ver mais publicações em {domain}",
+ "hints.threads.replies_may_be_missing": "Respostas de outros servidores podem estar faltando.",
+ "hints.threads.see_more": "Ver mais respostas no {domain}",
"home.column_settings.show_reblogs": "Mostrar boosts",
"home.column_settings.show_replies": "Mostrar respostas",
"home.hide_announcements": "Ocultar comunicados",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Ver atualizações",
"home.pending_critical_update.title": "Atualização de segurança crítica disponível!",
"home.show_announcements": "Mostrar comunicados",
+ "ignore_notifications_modal.disclaimer": "O Mastodon não pode informar aos usuários que você ignorou suas notificações. Ignorar notificações não impedirá que as próprias mensagens sejam enviadas.",
+ "ignore_notifications_modal.filter_instead": "Filtrar em vez disso",
+ "ignore_notifications_modal.filter_to_act_users": "Você ainda conseguirá aceitar, rejeitar ou denunciar usuários",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "A filtragem ajuda a evitar confusão potencial",
+ "ignore_notifications_modal.filter_to_review_separately": "Você pode rever notificações filtradas separadamente",
+ "ignore_notifications_modal.ignore": "Ignorar notificações",
+ "ignore_notifications_modal.limited_accounts_title": "Ignorar notificações de contas moderadas?",
+ "ignore_notifications_modal.new_accounts_title": "Ignorar notificações de novas contas?",
+ "ignore_notifications_modal.not_followers_title": "Ignorar notificações de pessoas que não seguem você?",
+ "ignore_notifications_modal.not_following_title": "Ignorar notificações de pessoas que você não segue?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorar notificações de menções privadas não solicitadas?",
"interaction_modal.description.favourite": "Com uma conta no Mastodon, você pode marcar esta publicação como favorita para que o autor saiba que você gostou e salvá-la para mais tarde.",
"interaction_modal.description.follow": "Com uma conta no Mastodon, você pode seguir {name} para receber publicações na sua página inicial.",
"interaction_modal.description.reblog": "Com uma conta no Mastodon, você pode impulsionar esta publicação para compartilhá-lo com seus próprios seguidores.",
@@ -407,14 +432,14 @@
"keyboard_shortcuts.unfocus": "desfocar de tudo",
"keyboard_shortcuts.up": "mover para cima",
"lightbox.close": "Fechar",
- "lightbox.compress": "Fechar imagem",
- "lightbox.expand": "Abrir imagem",
"lightbox.next": "Próximo",
"lightbox.previous": "Anterior",
+ "lightbox.zoom_in": "Voltar para o tamanho real",
"limited_account_hint.action": "Exibir perfil mesmo assim",
"limited_account_hint.title": "Este perfil foi ocultado pelos moderadores do {domain}.",
"link_preview.author": "Por {name}",
"link_preview.more_from_author": "Mais de {name}",
+ "link_preview.shares": "{count, plural, one {{counter} publicação} other {{counter} publicações}}",
"lists.account.add": "Adicionar à lista",
"lists.account.remove": "Remover da lista",
"lists.delete": "Excluir lista",
@@ -431,7 +456,7 @@
"lists.subheading": "Suas listas",
"load_pending": "{count, plural, one {# novo item} other {# novos items}}",
"loading_indicator.label": "Carregando…",
- "media_gallery.toggle_visible": "{number, plural, one {Ocultar mídia} other {Ocultar mídias}}",
+ "media_gallery.hide": "Ocultar",
"moved_to_account_banner.text": "Sua conta {disabledAccount} está desativada porque você a moveu para {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ocultar das notificações",
"mute_modal.hide_options": "Ocultar opções",
@@ -443,6 +468,7 @@
"mute_modal.you_wont_see_mentions": "Você não verá publicações que os mencionem.",
"mute_modal.you_wont_see_posts": "Eles ainda poderão ver suas publicações, mas você não verá as deles.",
"navigation_bar.about": "Sobre",
+ "navigation_bar.administration": "Administração",
"navigation_bar.advanced_interface": "Ativar na interface web avançada",
"navigation_bar.blocks": "Usuários bloqueados",
"navigation_bar.bookmarks": "Salvos",
@@ -459,6 +485,7 @@
"navigation_bar.follows_and_followers": "Segue e seguidores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Sair",
+ "navigation_bar.moderation": "Moderação",
"navigation_bar.mutes": "Usuários silenciados",
"navigation_bar.opened_in_classic_interface": "Publicações, contas e outras páginas específicas são abertas por padrão na interface 'web' clássica.",
"navigation_bar.personal": "Pessoal",
@@ -469,11 +496,23 @@
"navigation_bar.security": "Segurança",
"not_signed_in_indicator.not_signed_in": "Você precisa se autenticar para acessar este recurso.",
"notification.admin.report": "{name} denunciou {target}",
+ "notification.admin.report_account": "{name} reportou {count, plural, one {Um post} other {# posts}} de {target} para {category}",
+ "notification.admin.report_account_other": "{name} reportou {count, plural, one {Um post} other {# posts}} de {target}",
+ "notification.admin.report_statuses": "{name} Reportou {target} para {category}",
+ "notification.admin.report_statuses_other": "{name} denunciou {target}",
"notification.admin.sign_up": "{name} se inscreveu",
+ "notification.admin.sign_up.name_and_others": "{name} e {count, plural, one {# other} other {# outros}}",
"notification.favourite": "{name} favoritou sua publicação",
+ "notification.favourite.name_and_others_with_link": "{name} e {count, plural, one {# outro} other {# others}} favoritaram a publicação",
"notification.follow": "{name} te seguiu",
+ "notification.follow.name_and_others": "{name} e {count, plural, one {# other} other {# outros}} seguiu você",
"notification.follow_request": "{name} quer te seguir",
- "notification.mention": "{name} te mencionou",
+ "notification.follow_request.name_and_others": "{name} e {count, plural, one {# other} other {# outros}} pediu para seguir você",
+ "notification.label.mention": "Menção",
+ "notification.label.private_mention": "Menção privada",
+ "notification.label.private_reply": "Resposta privada",
+ "notification.label.reply": "Resposta",
+ "notification.mention": "Menção",
"notification.moderation-warning.learn_more": "Aprender mais",
"notification.moderation_warning": "Você recebeu um aviso de moderação",
"notification.moderation_warning.action_delete_statuses": "Algumas das suas publicações foram removidas.",
@@ -486,6 +525,7 @@
"notification.own_poll": "Sua enquete terminou",
"notification.poll": "Uma enquete que você votou terminou",
"notification.reblog": "{name} deu boost no teu toot",
+ "notification.reblog.name_and_others_with_link": "{name} e {count, plural, one {# outra} other {# outras}} impulsionaram a publicação",
"notification.relationships_severance_event": "Conexões perdidas com {name}",
"notification.relationships_severance_event.account_suspension": "Um administrador de {from} suspendeu {target}, o que significa que você não pode mais receber atualizações deles ou interagir com eles.",
"notification.relationships_severance_event.domain_block": "An admin from {from} has blocked {target}, including {followersCount} of your followers and {followingCount, plural, one {# account} other {# accounts}} you follow.",
@@ -494,11 +534,27 @@
"notification.status": "{name} acabou de tootar",
"notification.update": "{name} editou uma publicação",
"notification_requests.accept": "Aceitar",
+ "notification_requests.accept_multiple": "{count, plural, one {Aceite # pedido…} other {Aceite # pedidos…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceite # pedido} other {Aceite # pedidos}}",
+ "notification_requests.confirm_accept_multiple.message": "Você está prestes a aceitar {count, plural, one {um pedido de notificação} other {# pedidos de notificação}}. Tem certeza de que deseja continuar?",
+ "notification_requests.confirm_accept_multiple.title": "Aceitar solicitações de notificação?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Dispensar pedido} other {Dispensar pedidos}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Você está prestes a descartar {count, plural, one {um pedido de notificação} other {# pedidos de notificação}}. Você não será capaz de acessar facilmente{count, plural, one {} other {}} novamente. Tem certeza de que deseja continuar?",
+ "notification_requests.confirm_dismiss_multiple.title": "Descartar solicitações de notificação?",
"notification_requests.dismiss": "Rejeitar",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Dispensar # pedido…} other {Dispensar # pedidos…}}",
+ "notification_requests.edit_selection": "Editar",
+ "notification_requests.exit_selection": "Concluído",
+ "notification_requests.explainer_for_limited_account": "As notificações desta conta foram filtradas porque a conta foi limitada por um moderador.",
+ "notification_requests.explainer_for_limited_remote_account": "As notificações desta conta foram filtradas porque a conta ou o seu servidor foi limitado por um moderador.",
+ "notification_requests.maximize": "Maximizar",
+ "notification_requests.minimize_banner": "Minimizar banner de notificações filtradas",
"notification_requests.notifications_from": "Notificações de {name}",
"notification_requests.title": "Notificações filtradas",
+ "notification_requests.view": "Ver notificações",
"notifications.clear": "Limpar notificações",
"notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?",
+ "notifications.clear_title": "Limpar notificações?",
"notifications.column_settings.admin.report": "Novas denúncias:",
"notifications.column_settings.admin.sign_up": "Novas inscrições:",
"notifications.column_settings.alert": "Notificações no computador",
@@ -530,6 +586,14 @@
"notifications.permission_denied": "Navegador não tem permissão para ativar notificações no computador.",
"notifications.permission_denied_alert": "Verifique a permissão do navegador para ativar notificações no computador.",
"notifications.permission_required": "Ativar notificações no computador exige permissão do navegador.",
+ "notifications.policy.accept": "Aceitar",
+ "notifications.policy.accept_hint": "Mostrar nas notificações",
+ "notifications.policy.drop": "Ignorar",
+ "notifications.policy.drop_hint": "Envie para o void, para nunca mais ser visto novamente",
+ "notifications.policy.filter": "Filtrar",
+ "notifications.policy.filter_hint": "Enviar para caixa de notificações filtradas",
+ "notifications.policy.filter_limited_accounts_hint": "Limitado pelos moderadores do servidor",
+ "notifications.policy.filter_limited_accounts_title": "Contas moderadas",
"notifications.policy.filter_new_accounts.hint": "Created within the past {days, plural, one {one day} other {# days}}",
"notifications.policy.filter_new_accounts_title": "Novas contas",
"notifications.policy.filter_not_followers_hint": "Including people who have been following you fewer than {days, plural, one {one day} other {# days}}",
@@ -538,7 +602,7 @@
"notifications.policy.filter_not_following_title": "Pessoas que você não segue",
"notifications.policy.filter_private_mentions_hint": "Filtrado, a menos que respondido em sua própria menção ou se você segue o remetente",
"notifications.policy.filter_private_mentions_title": "Menções privadas não solicitadas",
- "notifications.policy.title": "Filtrar notificações de…",
+ "notifications.policy.title": "Gerenciar notificações de…",
"notifications_permission_banner.enable": "Ativar notificações no computador",
"notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no computador. Você pode controlar precisamente quais tipos de interações geram notificações no computador através do botão {icon}.",
"notifications_permission_banner.title": "Nunca perca nada",
@@ -665,9 +729,13 @@
"report.unfollow_explanation": "Você está seguindo esta conta. Para não ver as publicações dela em sua página inicial, deixe de segui-la.",
"report_notification.attached_statuses": "{count, plural, one {{count} publicação anexada} other {{count} publicações anexadas}}",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "conteúdo ilegal",
"report_notification.categories.other": "Outro",
+ "report_notification.categories.other_sentence": "outro",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Violação de regra",
+ "report_notification.categories.violation_sentence": "violação de regra",
"report_notification.open": "Abrir denúncia",
"search.no_recent_searches": "Nenhuma busca recente",
"search.placeholder": "Pesquisar",
@@ -695,8 +763,11 @@
"server_banner.about_active_users": "Pessoas usando este servidor durante os últimos 30 dias (Usuários ativos mensalmente)",
"server_banner.active_users": "usuários ativos",
"server_banner.administered_by": "Administrado por:",
+ "server_banner.is_one_of_many": "{domain} é um dos muitos servidores Mastodon independentes que você pode usar para participar do fediverso.",
"server_banner.server_stats": "Estatísticas do servidor:",
"sign_in_banner.create_account": "Criar conta",
+ "sign_in_banner.follow_anyone": "Siga alguém pelo fediverso e veja tudo em ordem cronológica. Sem algoritmos, anúncios ou clickbait à vista.",
+ "sign_in_banner.mastodon_is": "O Mastodon é a melhor maneira de acompanhar o que está acontecendo.",
"sign_in_banner.sign_in": "Entrar",
"sign_in_banner.sso_redirect": "Entrar ou Registrar-se",
"status.admin_account": "Abrir interface de moderação para @{name}",
@@ -706,6 +777,7 @@
"status.bookmark": "Salvar",
"status.cancel_reblog_private": "Desfazer boost",
"status.cannot_reblog": "Este toot não pode receber boost",
+ "status.continued_thread": "Continuação da conversa",
"status.copy": "Copiar link",
"status.delete": "Excluir",
"status.detailed_status": "Visão detalhada da conversa",
@@ -714,12 +786,10 @@
"status.edit": "Editar",
"status.edited": "Última edição em {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} hora} other {{count} vezes}}",
- "status.embed": "Incorporar",
+ "status.embed": "Obter código de incorporação",
"status.favourite": "Favorita",
"status.favourites": "{count, plural, one {favorite} other {favorites}}",
"status.filter": "Filtrar esta publicação",
- "status.filtered": "Filtrado",
- "status.hide": "Ocultar publicação",
"status.history.created": "{name} criou {date}",
"status.history.edited": "{name} editou {date}",
"status.load_more": "Ver mais",
@@ -741,16 +811,14 @@
"status.reblogs.empty": "Nada aqui. Quando alguém der boost, o usuário aparecerá aqui.",
"status.redraft": "Excluir e rascunhar",
"status.remove_bookmark": "Remover do Salvos",
+ "status.replied_in_thread": "Respondido na discussão",
"status.replied_to": "Em resposta a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder a conversa",
"status.report": "Denunciar @{name}",
"status.sensitive_warning": "Mídia sensível",
"status.share": "Compartilhar",
- "status.show_filter_reason": "Mostrar mesmo assim",
- "status.show_less": "Mostrar menos",
"status.show_less_all": "Mostrar menos em tudo",
- "status.show_more": "Mostrar mais",
"status.show_more_all": "Mostrar mais em tudo",
"status.show_original": "Mostrar original",
"status.title.with_attachments": "{user} postou {attachmentCount, plural, one {um anexo} other {{attachmentCount} attachments}}",
@@ -769,10 +837,6 @@
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
"time_remaining.moments": "Momentos restantes",
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} de outros servidores não são mostrados.",
- "timeline_hint.resources.followers": "Seguidores",
- "timeline_hint.resources.follows": "Segue",
- "timeline_hint.resources.statuses": "Toots anteriores",
"trends.counter_by_accounts": "{count, plural, one {{counter} pessoa} other {{counter} pessoas}} no(s) último(s) {days, plural, one {dia} other {{days} dias}}",
"trends.trending_now": "Em alta agora",
"ui.beforeunload": "Seu rascunho será perdido se sair do Mastodon.",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index 9446d5ee251..80f5f9f1389 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -11,7 +11,7 @@
"about.not_available": "Esta informação não foi disponibilizada neste servidor.",
"about.powered_by": "Rede social descentralizada baseada no {mastodon}",
"about.rules": "Regras do servidor",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota pessoal",
"account.add_or_remove_from_list": "Adicionar ou remover das listas",
"account.badges.bot": "Robô",
"account.badges.group": "Grupo",
@@ -19,7 +19,6 @@
"account.block_domain": "Bloquear domínio {domain}",
"account.block_short": "Bloquear",
"account.blocked": "Bloqueado(a)",
- "account.browse_more_on_origin_server": "Encontrar mais no perfil original",
"account.cancel_follow_request": "Retirar pedido para seguir",
"account.copy": "Copiar hiperligação para o perfil",
"account.direct": "Mencionar @{name} em privado",
@@ -37,14 +36,14 @@
"account.followers.empty": "Ainda ninguém segue este utilizador.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "A seguir",
- "account.following_counter": "{count, plural, other {A seguir {counter}}}",
+ "account.following_counter": "{count, plural, one {A seguir {counter}} other {A seguir {counter}}}",
"account.follows.empty": "Este utilizador ainda não segue ninguém.",
"account.go_to_profile": "Ir para o perfil",
"account.hide_reblogs": "Esconder partilhas de @{name}",
"account.in_memoriam": "Em Memória.",
"account.joined_short": "Juntou-se a",
"account.languages": "Alterar línguas subscritas",
- "account.link_verified_on": "A posse desta ligação foi verificada em {date}",
+ "account.link_verified_on": "O proprietário desta hiperligação foi verificado em {date}",
"account.locked_info": "Esta conta é privada. O proprietário revê manualmente quem o pode seguir.",
"account.media": "Média",
"account.mention": "Mencionar @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} pediu para segui-lo",
"account.share": "Partilhar o perfil @{name}",
"account.show_reblogs": "Mostrar partilhas de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+ "account.statuses_counter": "{count, plural, one {{counter} publicação} other {{counter} publicações}}",
"account.unblock": "Desbloquear @{name}",
"account.unblock_domain": "Desbloquear o domínio {domain}",
"account.unblock_short": "Desbloquear",
@@ -98,6 +97,8 @@
"block_modal.title": "Bloquear utilizador?",
"block_modal.you_wont_see_mentions": "Não verá publicações que os mencionem.",
"boost_modal.combo": "Pode clicar {combo} para não voltar a ver",
+ "boost_modal.reblog": "Impulsionar a publicação?",
+ "boost_modal.undo_reblog": "Retirar post?",
"bundle_column_error.copy_stacktrace": "Copiar relatório de erros",
"bundle_column_error.error.body": "A página solicitada não pôde ser sintetizada. Isto pode ser devido a uma falha no nosso código ou a um problema de compatibilidade com o navegador.",
"bundle_column_error.error.title": "Ó, não!",
@@ -153,15 +154,15 @@
"compose_form.lock_disclaimer": "A sua conta não é {locked}. Qualquer pessoa pode segui-lo e ver as publicações direcionadas apenas a seguidores.",
"compose_form.lock_disclaimer.lock": "fechada",
"compose_form.placeholder": "Em que está a pensar?",
- "compose_form.poll.duration": "Duração do inquérito",
+ "compose_form.poll.duration": "Duração da sondagem",
"compose_form.poll.multiple": "Escolha múltipla",
"compose_form.poll.option_placeholder": "Opção {number}",
"compose_form.poll.single": "Escolha uma",
- "compose_form.poll.switch_to_multiple": "Alterar o inquérito para permitir várias respostas",
- "compose_form.poll.switch_to_single": "Alterar o inquérito para permitir uma única resposta",
+ "compose_form.poll.switch_to_multiple": "Alterar a sondagem para permitir várias respostas",
+ "compose_form.poll.switch_to_single": "Alterar a sondagem para permitir uma única resposta",
"compose_form.poll.type": "Estilo",
"compose_form.publish": "Publicar",
- "compose_form.publish_form": "Publicar",
+ "compose_form.publish_form": "Nova publicação",
"compose_form.reply": "Responder",
"compose_form.save_changes": "Atualizar",
"compose_form.spoiler.marked": "Texto escondido atrás de aviso",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Aviso de conteúdo (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.confirm": "Bloquear",
- "confirmations.cancel_follow_request.confirm": "Retirar pedido",
- "confirmations.cancel_follow_request.message": "Tem a certeza que pretende retirar o pedido para seguir {name}?",
"confirmations.delete.confirm": "Eliminar",
"confirmations.delete.message": "De certeza que quer eliminar esta publicação?",
+ "confirmations.delete.title": "Eliminar publicação?",
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "Tens a certeza de que deseja eliminar permanentemente esta lista?",
+ "confirmations.delete_list.title": "Eliminar lista?",
"confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tem alterações por guardar na descrição ou pré-visualização do conteúdo. Descartar mesmo assim?",
- "confirmations.domain_block.confirm": "Bloquear servidor",
- "confirmations.domain_block.message": "De certeza que queres bloquear completamente o domínio {domain}? Na maioria dos casos, silenciar ou bloquear alguns utilizadores é suficiente e é o recomendado. Não irás ver conteúdo daquele domínio em cronologia alguma nem nas tuas notificações. Os teus seguidores daquele domínio serão removidos.",
"confirmations.edit.confirm": "Editar",
"confirmations.edit.message": "Editar agora irá sobrescrever a mensagem que está a compor. Tem a certeza de que deseja continuar?",
+ "confirmations.edit.title": "Sobrescrever publicação?",
"confirmations.logout.confirm": "Terminar sessão",
"confirmations.logout.message": "Tem a certeza de que quer terminar a sessão?",
+ "confirmations.logout.title": "Terminar sessão?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.redraft.confirm": "Eliminar & reescrever",
"confirmations.redraft.message": "Tem a certeza de que quer eliminar e reescrever esta publicação? Os favoritos e partilhas perder-se-ão e as respostas à publicação original ficarão órfãs.",
+ "confirmations.redraft.title": "Eliminar e reescrever publicação?",
"confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder agora irá reescrever a mensagem que está a compor actualmente. Tem a certeza que quer continuar?",
+ "confirmations.reply.message": "Se responder agora, a mensagem que está a escrever será substituída. Tem a certeza que pretende continuar?",
+ "confirmations.reply.title": "Sobrescrever publicação?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "De certeza que queres deixar de seguir {name}?",
+ "confirmations.unfollow.title": "Deixar de seguir utilizador?",
+ "content_warning.hide": "Ocultar publicação",
+ "content_warning.show": "Mostrar mesmo assim",
"conversation.delete": "Eliminar conversa",
"conversation.mark_as_read": "Marcar como lida",
"conversation.open": "Ver conversa",
@@ -200,14 +206,14 @@
"directory.federated": "Do fediverso conhecido",
"directory.local": "Apenas de {domain}",
"directory.new_arrivals": "Recém chegados",
- "directory.recently_active": "Com actividade recente",
+ "directory.recently_active": "Recentemente ativo",
"disabled_account_banner.account_settings": "Definições da conta",
"disabled_account_banner.text": "A sua conta {disabledAccount} está presentemente desativada.",
"dismissable_banner.community_timeline": "Estas são as publicações públicas mais recentes de pessoas cujas contas são hospedadas por {domain}.",
"dismissable_banner.dismiss": "Descartar",
"dismissable_banner.explore_links": "Essas histórias de notícias estão, no momento, a ser faladas por pessoas neste e noutros servidores da rede descentralizada.",
"dismissable_banner.explore_statuses": "Estas são publicações de toda a rede social que estão a ganhar popularidade atualmente. As mensagens mais recentes com mais partilhas e favoritos obtêm uma classificação mais elevada.",
- "dismissable_banner.explore_tags": "Estas #etiquetas estão presentemente a ganhar atenção entre as pessoas neste e noutros servidores da rede descentralizada.",
+ "dismissable_banner.explore_tags": "Estas são hashtags que estão a ganhar força na rede social atualmente. As hashtags que são utilizadas por mais pessoas diferentes têm uma classificação mais elevada.",
"dismissable_banner.public_timeline": "Estas são as publicações públicas mais recentes de pessoas na rede social que as pessoas em {domain} seguem.",
"domain_block_modal.block": "Bloquear servidor",
"domain_block_modal.block_account_instead": "Bloquear @{name} em alternativa",
@@ -232,7 +238,7 @@
"domain_pill.your_username": "O seu identificador único neste servidor. É possível encontrar utilizadores com o mesmo nome de utilizador em diferentes servidores.",
"embed.instructions": "Incorpore esta publicação no seu site copiando o código abaixo.",
"embed.preview": "Podes ver aqui como irá ficar:",
- "emoji_button.activity": "Actividade",
+ "emoji_button.activity": "Atividade",
"emoji_button.clear": "Limpar",
"emoji_button.custom": "Personalizar",
"emoji_button.flags": "Bandeiras",
@@ -240,7 +246,7 @@
"emoji_button.label": "Inserir Emoji",
"emoji_button.nature": "Natureza",
"emoji_button.not_found": "Nenhum emoji correspondente encontrado",
- "emoji_button.objects": "Objectos",
+ "emoji_button.objects": "Objetos",
"emoji_button.people": "Pessoas",
"emoji_button.recent": "Utilizados regularmente",
"emoji_button.search": "Pesquisar...",
@@ -252,27 +258,27 @@
"empty_column.account_timeline": "Sem publicações por aqui!",
"empty_column.account_unavailable": "Perfil indisponível",
"empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.",
- "empty_column.bookmarked_statuses": "Ainda não adicionou nenhuma publicação aos itens salvos. Quando adicionar, eles serão exibidos aqui.",
+ "empty_column.bookmarked_statuses": "Ainda não tem nenhuma publicação marcada. Quando marcar uma, ela aparecerá aqui.",
"empty_column.community": "A cronologia local está vazia. Escreve algo público para começar!",
"empty_column.direct": "Ainda não tem qualquer menção privada. Quando enviar ou receber uma, ela irá aparecer aqui.",
"empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.",
- "empty_column.explore_statuses": "Nada está em alta no momento. Volte mais tarde!",
+ "empty_column.explore_statuses": "Nada é tendência neste momento. Volte mais tarde!",
"empty_column.favourited_statuses": "Ainda não assinalou qualquer publicação como favorita. Quando o fizer, aparecerá aqui.",
"empty_column.favourites": "Ainda ninguém assinalou esta publicação como favorita. Quando alguém o fizer, aparecerá aqui.",
"empty_column.follow_requests": "Ainda não tens nenhum pedido de seguidor. Quando receberes algum, ele irá aparecer aqui.",
"empty_column.followed_tags": "Ainda não segue nenhuma hashtag. Quando o fizer, ela aparecerá aqui.",
"empty_column.hashtag": "Não foram encontradas publicações com essa #etiqueta.",
- "empty_column.home": "Ainda não segues qualquer utilizador. Visita {public} ou utiliza a pesquisa para procurar outros utilizadores.",
+ "empty_column.home": "A sua linha cronológica inicial está vazia! Siga mais pessoas para a preencher.",
"empty_column.list": "Ainda não existem publicações nesta lista. Quando membros desta lista fizerem novas publicações, elas aparecerão aqui.",
"empty_column.lists": "Ainda não tem qualquer lista. Quando criar uma, ela irá aparecer aqui.",
"empty_column.mutes": "Ainda não silenciaste qualquer utilizador.",
"empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui conforme as suas configurações.",
"empty_column.notifications": "Não tens notificações. Interage com outros utilizadores para iniciar uma conversa.",
"empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para veres aqui os conteúdos públicos",
- "error.unexpected_crash.explanation": "Devido a um erro no nosso código ou a uma compatilidade com o seu navegador, esta página não pôde ser apresentada correctamente.",
+ "error.unexpected_crash.explanation": "Devido a um erro no nosso código ou a um problema de compatibilidade do navegador, esta página não pôde ser apresentada corretamente.",
"error.unexpected_crash.explanation_addons": "Esta página não pôde ser exibida corretamente. Este erro provavelmente é causado por um complemento do navegador ou ferramentas de tradução automática.",
"error.unexpected_crash.next_steps": "Tente atualizar a página. Se isso não ajudar, pode usar o Mastodon através de um navegador diferente ou uma aplicação nativa.",
- "error.unexpected_crash.next_steps_addons": "Tente desabilitá-los e atualizar a página. Se isso não ajudar, você ainda poderá usar o Mastodon por meio de um navegador diferente ou de um aplicativo nativo.",
+ "error.unexpected_crash.next_steps_addons": "Tente desativá-los e atualizar a página. Se isso não ajudar, poderá ainda ser possível utilizar o Mastodon através de um navegador diferente ou de uma aplicação nativa.",
"errors.unexpected_crash.copy_stacktrace": "Copiar a stacktrace para o clipboard",
"errors.unexpected_crash.report_issue": "Reportar problema",
"explore.search_results": "Resultados da pesquisa",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Utilize uma categoria existente ou crie uma nova",
"filter_modal.select_filter.title": "Filtrar esta publicação",
"filter_modal.title.status": "Filtrar uma publicação",
- "filtered_notifications_banner.mentions": "{count, plural, one {menção} other {menções}}",
- "filtered_notifications_banner.pending_requests": "Notificações de {count, plural, =0 {ninguém} one {uma pessoa} other {# pessoas}} que talvez conheça",
+ "filter_warning.matches_filter": "Corresponde ao filtro “{title}”",
+ "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {ninguém} one {uma pessoa} other {# pessoas}} que pode conhecer",
"filtered_notifications_banner.title": "Notificações filtradas",
"firehose.all": "Todas",
"firehose.local": "Este servidor",
@@ -347,6 +353,14 @@
"hashtag.follow": "Seguir #etiqueta",
"hashtag.unfollow": "Deixar de seguir #etiqueta",
"hashtags.and_other": "…e {count, plural, other {mais #}}",
+ "hints.profiles.followers_may_be_missing": "Podem faltar seguidores neste perfil.",
+ "hints.profiles.follows_may_be_missing": "O número de perfis seguidos por este perfil pode faltar.",
+ "hints.profiles.posts_may_be_missing": "Podem faltar algumas publicações deste perfil.",
+ "hints.profiles.see_more_followers": "Ver mais seguidores no {domain}",
+ "hints.profiles.see_more_follows": "Veja mais perfis seguidos em {domain}",
+ "hints.profiles.see_more_posts": "Ver mais publicações em {domain}",
+ "hints.threads.replies_may_be_missing": "As respostas de outros servidores podem estar a faltar.",
+ "hints.threads.see_more": "Veja mais respostas em {domain}",
"home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respostas",
"home.hide_announcements": "Ocultar comunicações",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Ver atualizações",
"home.pending_critical_update.title": "Atualização de segurança crítica disponível!",
"home.show_announcements": "Exibir comunicações",
+ "ignore_notifications_modal.disclaimer": "O Mastodon não pode informar utilizadores que ignoraste as notificações deles. Ignorar notificações não irá parar as mensagens serem enviadas.",
+ "ignore_notifications_modal.filter_instead": "Filtrar em vez disso",
+ "ignore_notifications_modal.filter_to_act_users": "Ainda poderá aceitar, rejeitar, ou reportar utilizadores",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "A filtragem ajuda a evitar potenciais equívocos",
+ "ignore_notifications_modal.filter_to_review_separately": "Pode rever as notificações filtradas separadamente",
+ "ignore_notifications_modal.ignore": "Ignorar notificações",
+ "ignore_notifications_modal.limited_accounts_title": "Ignorar notificações de contas moderadas?",
+ "ignore_notifications_modal.new_accounts_title": "Ignorar notificações de contas novas?",
+ "ignore_notifications_modal.not_followers_title": "Ignorar notificações de pessoas que não o seguem?",
+ "ignore_notifications_modal.not_following_title": "Ignorar notificações de pessoas que não segue?",
+ "ignore_notifications_modal.private_mentions_title": "Ignorar notificações de Menções Privadas não solicitadas?",
"interaction_modal.description.favourite": "Com uma conta no Mastodon, pode adicionar assinalar esta publicação como favorita para que o autor saiba que gostou e guardá-la para mais tarde.",
"interaction_modal.description.follow": "Com uma conta no Mastodon, pode seguir {name} para receber as suas publicações na sua página inicial.",
"interaction_modal.description.reblog": "Com uma conta no Mastodon, pode impulsionar esta publicação para compartilhá-lo com os seus seguidores.",
@@ -394,7 +419,7 @@
"keyboard_shortcuts.my_profile": "para abrir o teu perfil",
"keyboard_shortcuts.notifications": "para abrir a coluna das notificações",
"keyboard_shortcuts.open_media": "para abrir media",
- "keyboard_shortcuts.pinned": "para abrir a lista dos toots fixados",
+ "keyboard_shortcuts.pinned": "Abrir lista de publicações fixadas",
"keyboard_shortcuts.profile": "para abrir o perfil do autor",
"keyboard_shortcuts.reply": "para responder",
"keyboard_shortcuts.requests": "para abrir a lista dos pedidos de seguidor",
@@ -407,8 +432,6 @@
"keyboard_shortcuts.unfocus": "para remover o foco da área de texto/pesquisa",
"keyboard_shortcuts.up": "para mover para cima na lista",
"lightbox.close": "Fechar",
- "lightbox.compress": "Compactar caixa de visualização de imagem",
- "lightbox.expand": "Expandir caixa de visualização de imagem",
"lightbox.next": "Próximo",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Exibir perfil mesmo assim",
@@ -432,7 +455,7 @@
"lists.subheading": "As tuas listas",
"load_pending": "{count, plural, one {# novo item} other {# novos itens}}",
"loading_indicator.label": "A carregar…",
- "media_gallery.toggle_visible": "Alternar visibilidade",
+ "media_gallery.hide": "Esconder",
"moved_to_account_banner.text": "A sua conta {disabledAccount} está, no momento, desativada, porque você migrou para {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ocultar das notificações",
"mute_modal.hide_options": "Ocultar opções",
@@ -444,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "Não verá publicações que os mencionem.",
"mute_modal.you_wont_see_posts": "Eles podem continuar a ver as suas publicações, mas você não verá as deles.",
"navigation_bar.about": "Sobre",
+ "navigation_bar.administration": "Administração",
"navigation_bar.advanced_interface": "Abrir na interface web avançada",
"navigation_bar.blocks": "Utilizadores bloqueados",
"navigation_bar.bookmarks": "Marcadores",
@@ -460,21 +484,34 @@
"navigation_bar.follows_and_followers": "Seguindo e seguidores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Sair",
+ "navigation_bar.moderation": "Moderação",
"navigation_bar.mutes": "Utilizadores silenciados",
"navigation_bar.opened_in_classic_interface": "Por norma, publicações, contas, e outras páginas específicas são abertas na interface web clássica.",
"navigation_bar.personal": "Pessoal",
- "navigation_bar.pins": "Toots afixados",
+ "navigation_bar.pins": "Publicações fixadas",
"navigation_bar.preferences": "Preferências",
"navigation_bar.public_timeline": "Cronologia federada",
"navigation_bar.search": "Pesquisar",
"navigation_bar.security": "Segurança",
"not_signed_in_indicator.not_signed_in": "Necessita de iniciar sessão para utilizar esta funcionalidade.",
"notification.admin.report": "{name} denunciou {target}",
+ "notification.admin.report_account": "{name} denunciou {count, plural, one {uma publicação} other {# publicações}} de {target} por {category}",
+ "notification.admin.report_account_other": "{name} denunciou {count, plural, one {uma publicação} other {# publicações}} de {target}",
+ "notification.admin.report_statuses": "{name} denunicou {target} por {category}",
+ "notification.admin.report_statuses_other": "{name} denunciou {target}",
"notification.admin.sign_up": "{name} inscreveu-se",
+ "notification.admin.sign_up.name_and_others": "{name} e {count, plural, one {# outro} other {# outros}} inscreveram-se",
"notification.favourite": "{name} assinalou a sua publicação como favorita",
+ "notification.favourite.name_and_others_with_link": "{name} e {count, plural, one {# outro} other {# outros}} assinalou a sua publicação como favorita",
"notification.follow": "{name} começou a seguir-te",
+ "notification.follow.name_and_others": "{name} e {count, plural, one {# outro} other {# outros}} começaram a segui-lo",
"notification.follow_request": "{name} pediu para segui-lo",
- "notification.mention": "{name} mencionou-te",
+ "notification.follow_request.name_and_others": "{name} e {count, plural, one {# outro} other {# outros}} pediram para segui-lo",
+ "notification.label.mention": "Menção",
+ "notification.label.private_mention": "Menção privada",
+ "notification.label.private_reply": "Resposta privada",
+ "notification.label.reply": "Resposta",
+ "notification.mention": "Menção",
"notification.moderation-warning.learn_more": "Saber mais",
"notification.moderation_warning": "Recebeu um aviso de moderação",
"notification.moderation_warning.action_delete_statuses": "Algumas das suas publicações foram removidas.",
@@ -484,9 +521,10 @@
"notification.moderation_warning.action_sensitive": "As suas publicações serão, a partir de agora, assinaladas como sensíveis.",
"notification.moderation_warning.action_silence": "A sua conta foi limitada.",
"notification.moderation_warning.action_suspend": "A sua conta foi suspensa.",
- "notification.own_poll": "A sua votação terminou",
- "notification.poll": "Uma votação em que participaste chegou ao fim",
+ "notification.own_poll": "A sua sondagem terminou",
+ "notification.poll": "Terminou uma sondagem em que votou",
"notification.reblog": "{name} reforçou a tua publicação",
+ "notification.reblog.name_and_others_with_link": "{name} e {count, plural, one {# outro} other {# outros}} reforçaram a sua publicação",
"notification.relationships_severance_event": "Perdeu as ligações com {name}",
"notification.relationships_severance_event.account_suspension": "Um administrador de {from} suspendeu {target}, o que significa que já não pode receber atualizações dele ou interagir com ele.",
"notification.relationships_severance_event.domain_block": "Um administrador de {from} bloqueou {target}, incluindo {followersCount} dos seus seguidores e {followingCount, plural, one {# conta} other {# contas}} que segue.",
@@ -495,11 +533,27 @@
"notification.status": "{name} acabou de publicar",
"notification.update": "{name} editou uma publicação",
"notification_requests.accept": "Aceitar",
+ "notification_requests.accept_multiple": "{count, plural, one {Aceitar # pedidos…} other {Aceitar # pedidos…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceitar pedido} other {Aceitar pedidos}}",
+ "notification_requests.confirm_accept_multiple.message": "Está prestes a aceitar {count, plural, one {um pedido de notificação} other {# pedidos de notificação}}. Tem a certeza de que pretende continuar?",
+ "notification_requests.confirm_accept_multiple.title": "Aceitar pedidos de notificação?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Rejeitar pedido} other {Rejeitar pedidos}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Está prestes a rejeitar {count, plural, one {um pedido de notificação} other {# pedidos de notificação}}. Não será fácil voltar a {count, plural, one {aceder-lhe} other {aceder-lhes}}. Tem a certeza de que pretende continuar?",
+ "notification_requests.confirm_dismiss_multiple.title": "Rejeitar pedidos de notificação?",
"notification_requests.dismiss": "Descartar",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Rejeitar # pedido…} other {Rejeitar # pedidos…}}",
+ "notification_requests.edit_selection": "Editar",
+ "notification_requests.exit_selection": "Concluído",
+ "notification_requests.explainer_for_limited_account": "As notificações desta conta foram filtradas porque a conta foi limitada por um moderador.",
+ "notification_requests.explainer_for_limited_remote_account": "As notificações desta conta foram filtradas porque a conta ou o seu servidor foram limitados por um moderador.",
+ "notification_requests.maximize": "Maximizar",
+ "notification_requests.minimize_banner": "Minimizar o cabeçalho das notificações filtradas",
"notification_requests.notifications_from": "Notificações de {name}",
"notification_requests.title": "Notificações filtradas",
+ "notification_requests.view": "Ver notificações",
"notifications.clear": "Limpar notificações",
"notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?",
+ "notifications.clear_title": "Limpar notificações?",
"notifications.column_settings.admin.report": "Novas denúncias:",
"notifications.column_settings.admin.sign_up": "Novas inscrições:",
"notifications.column_settings.alert": "Notificações no ambiente de trabalho",
@@ -509,7 +563,7 @@
"notifications.column_settings.follow": "Novos seguidores:",
"notifications.column_settings.follow_request": "Novos pedidos de seguidor:",
"notifications.column_settings.mention": "Menções:",
- "notifications.column_settings.poll": "Resultados do inquérito:",
+ "notifications.column_settings.poll": "Resultados da sondagem:",
"notifications.column_settings.push": "Notificações Push",
"notifications.column_settings.reblog": "Reforços:",
"notifications.column_settings.show": "Mostrar na coluna",
@@ -523,7 +577,7 @@
"notifications.filter.favourites": "Favoritos",
"notifications.filter.follows": "Seguidores",
"notifications.filter.mentions": "Menções",
- "notifications.filter.polls": "Resultados do inquérito",
+ "notifications.filter.polls": "Resultados da sondagem",
"notifications.filter.statuses": "Atualizações de pessoas que você segue",
"notifications.grant_permission": "Conceder permissão.",
"notifications.group": "{count} notificações",
@@ -531,6 +585,14 @@
"notifications.permission_denied": "Notificações no ambiente de trabalho não estão disponíveis porque a permissão, solicitada pelo navegador, foi recusada anteriormente",
"notifications.permission_denied_alert": "Notificações no ambiente de trabalho não podem ser ativadas, pois a permissão do navegador foi recusada anteriormente",
"notifications.permission_required": "Notificações no ambiente de trabalho não estão disponíveis porque a permissão necessária não foi concedida.",
+ "notifications.policy.accept": "Aceitar",
+ "notifications.policy.accept_hint": "Mostrar nas notificações",
+ "notifications.policy.drop": "Ignorar",
+ "notifications.policy.drop_hint": "Enviar para o vazio, para nunca mais ser visto",
+ "notifications.policy.filter": "Filtrar",
+ "notifications.policy.filter_hint": "Enviar para a caixa de notificações filtradas",
+ "notifications.policy.filter_limited_accounts_hint": "Limitado pelos moderadores do servidor",
+ "notifications.policy.filter_limited_accounts_title": "Contas moderadas",
"notifications.policy.filter_new_accounts.hint": "Criada nos últimos {days, plural, one {um dia} other {# dias}}",
"notifications.policy.filter_new_accounts_title": "Novas contas",
"notifications.policy.filter_not_followers_hint": "Incluindo pessoas que o seguem há menos de {days, plural, one {um dia} other {# dias}}",
@@ -539,13 +601,13 @@
"notifications.policy.filter_not_following_title": "Pessoas que você não segue",
"notifications.policy.filter_private_mentions_hint": "Filtrado, a menos que seja em resposta à sua própria menção ou se você seguir o remetente",
"notifications.policy.filter_private_mentions_title": "Menções privadas não solicitadas",
- "notifications.policy.title": "Filtrar notificações de…",
+ "notifications.policy.title": "Gerir notificações de…",
"notifications_permission_banner.enable": "Ativar notificações no ambiente de trabalho",
"notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no ambiente de trabalho. Depois da sua ativação, pode controlar precisamente quais tipos de interações geram notificações, através do botão {icon} acima.",
"notifications_permission_banner.title": "Nunca perca nada",
"onboarding.action.back": "Voltar atrás",
"onboarding.actions.back": "Voltar atrás",
- "onboarding.actions.go_to_explore": "Veja as tendências atuais",
+ "onboarding.actions.go_to_explore": "Ver tendências atuais",
"onboarding.actions.go_to_home": "Ir para a sua página inicial",
"onboarding.compose.template": "Olá #Mastodon!",
"onboarding.follows.empty": "Infelizmente, não é possível mostrar resultados neste momento. Pode tentar utilizar a pesquisa ou navegar na página \"Explorar\" para encontrar pessoas para seguir ou tentar novamente mais tarde.",
@@ -571,7 +633,7 @@
"onboarding.start.title": "Conseguiu!",
"onboarding.steps.follow_people.body": "Seguir pessoas interessantes é o propósito do Mastodon. ",
"onboarding.steps.follow_people.title": "Personalize o seu feed",
- "onboarding.steps.publish_status.body": "Diga olá ao mundo com texto, fotos, vídeos ou votos {emoji}",
+ "onboarding.steps.publish_status.body": "Diga olá ao mundo com texto, fotos, vídeos ou sondagens {emoji}",
"onboarding.steps.publish_status.title": "Faça a sua primeira publicação",
"onboarding.steps.setup_profile.body": "Promova as suas interações para ter um perfil preenchido. ",
"onboarding.steps.setup_profile.title": "Personalize o seu perfil",
@@ -580,19 +642,19 @@
"onboarding.tips.2fa": "Sabia? Pode proteger a sua conta ativando a autenticação em duas etapas nas configurações de conta. Funciona com qualquer aplicativo TOTP à sua escolha, sem necessitar de um número de telefone!",
"onboarding.tips.accounts_from_other_servers": "Sabia? Como o Mastodon é descentralizado, alguns perfis que encontra estarão hospedados noutros servidores que não os seus. E ainda assim pode interagir com eles perfeitamente! O servidor deles está na segunda metade do nome de utilizador!",
"onboarding.tips.migration": "Sabia? Se sentir que o {domain} não é um bom servidor para si, no futuro pode mudar para outro servidor Mastodon sem perder os seus seguidores. Pode até mesmo hospedar o seu próprio servidor!",
- "onboarding.tips.verification": "Sabia que? Pode fazer a verificação do seu site, adicionando o link do seu perfil à primeira página do seu site, como também pode adicionar o seu site ao seu perfil? Sem taxas ou documentos!",
+ "onboarding.tips.verification": "Sabia que? Pode verificar a sua conta colocando uma hiperligação para o seu perfil Mastodon no seu próprio site e adicionando o site ao seu perfil. Sem taxas ou documentos!",
"password_confirmation.exceeds_maxlength": "A confirmação da palavra-passe excedeu o tamanho máximo ",
"password_confirmation.mismatching": "A confirmação da palavra-passe não corresponde",
"picture_in_picture.restore": "Colocá-lo de volta",
"poll.closed": "Fechado",
- "poll.refresh": "Recarregar",
+ "poll.refresh": "Atualizar",
"poll.reveal": "Ver resultados",
"poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}",
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
"poll.vote": "Votar",
- "poll.voted": "Votaste nesta resposta",
+ "poll.voted": "Votou nesta resposta",
"poll.votes": "{votes, plural, one {# voto } other {# votos}}",
- "poll_button.add_poll": "Adicionar votação",
+ "poll_button.add_poll": "Adicionar uma sondagem",
"poll_button.remove_poll": "Remover sondagem",
"privacy.change": "Ajustar a privacidade da publicação",
"privacy.direct.long": "Todos os mencionados na publicação",
@@ -607,7 +669,7 @@
"privacy_policy.last_updated": "Última atualização em {date}",
"privacy_policy.title": "Política de privacidade",
"recommended": "Recomendado",
- "refresh": "Actualizar",
+ "refresh": "Atualizar",
"regeneration_indicator.label": "A carregar…",
"regeneration_indicator.sublabel": "A tua página inicial está a ser preparada!",
"relative_time.days": "{number}d",
@@ -649,7 +711,7 @@
"report.reasons.other": "É outra coisa",
"report.reasons.other_description": "O problema não se encaixa nas outras categorias",
"report.reasons.spam": "É spam",
- "report.reasons.spam_description": "Hiperligações maliciosas, contactos falsos, ou respostas repetitivas",
+ "report.reasons.spam_description": "Hiperligações maliciosas, contactos falsos ou respostas repetitivas",
"report.reasons.violation": "Viola as regras do servidor",
"report.reasons.violation_description": "Está ciente de que infringe regras específicas",
"report.rules.subtitle": "Selecione tudo o que se aplicar",
@@ -666,9 +728,13 @@
"report.unfollow_explanation": "Está a seguir esta conta. Para não voltar a ver as publicações desta conta na sua página inicial, deixe de a seguir.",
"report_notification.attached_statuses": "{count, plural,one {{count} publicação} other {{count} publicações}} em anexo",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "conteúdo ilegal",
"report_notification.categories.other": "Outro",
+ "report_notification.categories.other_sentence": "outro",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Violação de regra",
+ "report_notification.categories.violation_sentence": "violação de regra",
"report_notification.open": "Abrir denúncia",
"search.no_recent_searches": "Nenhuma pesquisa recente",
"search.placeholder": "Pesquisar",
@@ -701,8 +767,8 @@
"sign_in_banner.create_account": "Criar conta",
"sign_in_banner.follow_anyone": "Siga alguém no fediverso e veja tudo em ordem cronológica. Sem algoritmos, anúncios ou clickbait à vista.",
"sign_in_banner.mastodon_is": "O Mastodon é a melhor maneira de acompanhar o que está a acontecer.",
- "sign_in_banner.sign_in": "Iniciar Sessão",
- "sign_in_banner.sso_redirect": "Inicie Sessão ou Registe-se",
+ "sign_in_banner.sign_in": "Iniciar sessão",
+ "sign_in_banner.sso_redirect": "Inicie sessão ou registe-se",
"status.admin_account": "Abrir a interface de moderação para @{name}",
"status.admin_domain": "Abrir interface de moderação para {domain}",
"status.admin_status": "Abrir esta publicação na interface de moderação",
@@ -710,7 +776,8 @@
"status.bookmark": "Guardar nos marcadores",
"status.cancel_reblog_private": "Deixar de reforçar",
"status.cannot_reblog": "Não é possível partilhar esta publicação",
- "status.copy": "Copiar ligação para a publicação",
+ "status.continued_thread": "Continuação da conserva",
+ "status.copy": "Copiar hiperligação para a publicação",
"status.delete": "Eliminar",
"status.detailed_status": "Vista pormenorizada da conversa",
"status.direct": "Mencionar @{name} em privado",
@@ -718,12 +785,10 @@
"status.edit": "Editar",
"status.edited": "Última edição em {date}",
"status.edited_x_times": "Editado {count, plural,one {{count} vez} other {{count} vezes}}",
- "status.embed": "Embutir",
+ "status.embed": "Obter código de incorporação",
"status.favourite": "Assinalar como favorito",
"status.favourites": "{count, plural, one {favorito} other {favoritos}}",
"status.filter": "Filtrar esta publicação",
- "status.filtered": "Filtrada",
- "status.hide": "Ocultar publicação",
"status.history.created": "{name} criado em {date}",
"status.history.edited": "{name} editado em {date}",
"status.load_more": "Carregar mais",
@@ -745,16 +810,14 @@
"status.reblogs.empty": "Ainda ninguém reforçou esta publicação. Quando alguém o fizer, ele irá aparecer aqui.",
"status.redraft": "Apagar & reescrever",
"status.remove_bookmark": "Retirar dos marcadores",
+ "status.replied_in_thread": "Responder na conversa",
"status.replied_to": "Respondeu a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder à conversa",
"status.report": "Denunciar @{name}",
"status.sensitive_warning": "Conteúdo problemático",
"status.share": "Partilhar",
- "status.show_filter_reason": "Mostrar mesmo assim",
- "status.show_less": "Mostrar menos",
"status.show_less_all": "Mostrar menos para todas",
- "status.show_more": "Mostrar mais",
"status.show_more_all": "Mostrar mais para todas",
"status.show_original": "Mostrar original",
"status.title.with_attachments": "{user} publicou {attachmentCount, plural,one {um anexo} other {{attachmentCount} anexos}}",
@@ -773,20 +836,16 @@
"time_remaining.minutes": "{número, plural, um {# minute} outro {# minutes}} faltam",
"time_remaining.moments": "Momentos restantes",
"time_remaining.seconds": "{número, plural, um {# second} outro {# seconds}} faltam",
- "timeline_hint.remote_resource_not_displayed": "{resource} de outros servidores não são exibidos.",
- "timeline_hint.resources.followers": "Seguidores",
- "timeline_hint.resources.follows": "Seguindo",
- "timeline_hint.resources.statuses": "Publicações mais antigas",
"trends.counter_by_accounts": "{count, plural, one {{counter} pessoa} other {{counter} pessoas}} {days, plural, one {no último dia} other {nos últimos {days} dias}}",
- "trends.trending_now": "Em alta neste momento",
+ "trends.trending_now": "Tendências atuais",
"ui.beforeunload": "O teu rascunho será perdido se abandonares o Mastodon.",
"units.short.billion": "{count}MM",
"units.short.million": "{count}M",
"units.short.thousand": "{count}m",
- "upload_area.title": "Arraste e solte para enviar",
- "upload_button.label": "Juntar imagens, um vídeo, ou um ficheiro de som",
- "upload_error.limit": "Limite máximo do ficheiro a carregar excedido.",
- "upload_error.poll": "O carregamento de ficheiros não é permitido em sondagens.",
+ "upload_area.title": "Arrastar e largar para enviar",
+ "upload_button.label": "Adicionar imagens, um vídeo ou um ficheiro de som",
+ "upload_error.limit": "Limite de envio de ficheiros excedido.",
+ "upload_error.poll": "Não é permitido o envio de ficheiros em sondagens.",
"upload_form.audio_description": "Descreva para pessoas com diminuição da acuidade auditiva",
"upload_form.description": "Descreva para pessoas com diminuição da acuidade visual",
"upload_form.edit": "Editar",
@@ -797,7 +856,7 @@
"upload_modal.applying": "A aplicar…",
"upload_modal.choose_image": "Escolher imagem",
"upload_modal.description_placeholder": "Grave e cabisbaixo, o filho justo zelava pela querida mãe doente",
- "upload_modal.detect_text": "Detectar texto na imagem",
+ "upload_modal.detect_text": "Detetar texto na imagem",
"upload_modal.edit_media": "Editar media",
"upload_modal.hint": "Clique ou arraste o círculo na pré-visualização para escolher o ponto focal que será sempre visível em todas as miniaturas.",
"upload_modal.preparing_ocr": "A preparar o reconhecimento de caracteres (OCR)…",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 3a2fab90564..a61f4b0d4fd 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -11,7 +11,6 @@
"about.not_available": "Această informație nu a fost pusă la dispoziție pe acest server.",
"about.powered_by": "Media socială descentralizată furnizată de {mastodon}",
"about.rules": "Reguli server",
- "account.account_note_header": "Notă",
"account.add_or_remove_from_list": "Adaugă sau elimină din liste",
"account.badges.bot": "Robot",
"account.badges.group": "Grup",
@@ -19,7 +18,6 @@
"account.block_domain": "Blochează domeniul {domain}",
"account.block_short": "Blochează",
"account.blocked": "Blocat",
- "account.browse_more_on_origin_server": "Vezi mai multe pe profilul original",
"account.cancel_follow_request": "Retrage cererea de urmărire",
"account.copy": "Copiază link-ul profilului",
"account.direct": "Menționează pe @{name} în privat",
@@ -35,9 +33,7 @@
"account.follow_back": "Urmăreşte înapoi",
"account.followers": "Urmăritori",
"account.followers.empty": "Acest utilizator nu are încă urmăritori.",
- "account.followers_counter": "{count, plural, one {Un abonat} few {{counter} abonați} other {{counter} de abonați}}",
"account.following": "Urmăriți",
- "account.following_counter": "{count, plural, one {Un abonament} few {{counter} abonamente} other {{counter} de abonamente}}",
"account.follows.empty": "Momentan acest utilizator nu are niciun abonament.",
"account.go_to_profile": "Mergi la profil",
"account.hide_reblogs": "Ascunde distribuirile de la @{name}",
@@ -62,7 +58,6 @@
"account.requested_follow": "{name} A cerut să vă urmărească",
"account.share": "Distribuie profilul lui @{name}",
"account.show_reblogs": "Afișează distribuirile de la @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "Deblochează pe @{name}",
"account.unblock_domain": "Deblochează domeniul {domain}",
"account.unblock_short": "Deblochează",
@@ -156,15 +151,12 @@
"compose_form.spoiler_placeholder": "Atenționare de conținut (opțional)",
"confirmation_modal.cancel": "Anulează",
"confirmations.block.confirm": "Blochează",
- "confirmations.cancel_follow_request.confirm": "Retrage cererea",
- "confirmations.cancel_follow_request.message": "Sunteți sigur că doriți să retrageți cererea dvs. de urmărire pentru {name}?",
"confirmations.delete.confirm": "Elimină",
"confirmations.delete.message": "Ești sigur că vrei să elimini această postare?",
"confirmations.delete_list.confirm": "Elimină",
"confirmations.delete_list.message": "Ești sigur că vrei să elimini definitiv această listă?",
"confirmations.discard_edit_media.confirm": "Renunță",
"confirmations.discard_edit_media.message": "Ai modificări nesalvate în descrierea sau previzualizarea media, renunți oricum?",
- "confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi tot domeniul {domain}? În cele mai multe cazuri, raportarea sau blocarea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea niciun conținut din acest domeniu în vreun flux public sau în vreo notificare. Abonații tăi din acest domeniu vor fi eliminați.",
"confirmations.edit.confirm": "Modifică",
"confirmations.edit.message": "Editarea acum va suprascrie mesajul pe care îl compuneți în prezent. Sunteți sigur că vreți să continuați?",
"confirmations.logout.confirm": "Deconectare",
@@ -342,8 +334,6 @@
"keyboard_shortcuts.unfocus": "Părăsește zona de text/bara de căutare",
"keyboard_shortcuts.up": "Urcă în listă",
"lightbox.close": "Închide",
- "lightbox.compress": "Închide panoul de vizualizare a imaginilor",
- "lightbox.expand": "Deschide panoul de vizualizare a imaginilor",
"lightbox.next": "Înainte",
"lightbox.previous": "Înapoi",
"limited_account_hint.action": "Afișează profilul oricum",
@@ -363,7 +353,6 @@
"lists.search": "Caută printre persoanele la care ești abonat",
"lists.subheading": "Listele tale",
"load_pending": "{count, plural, one {# element nou} other {# elemente noi}}",
- "media_gallery.toggle_visible": "{number, plural, one {Ascunde imaginea} other {Ascunde imaginile}}",
"moved_to_account_banner.text": "Contul tău {disabledAccount} este în acest moment dezactivat deoarece te-ai mutat la {movedToAccount}.",
"navigation_bar.about": "Despre",
"navigation_bar.advanced_interface": "Deschide în interfața web avansată",
@@ -394,9 +383,7 @@
"notification.favourite": "{name} a adăugat postarea ta la favorite",
"notification.follow": "{name} s-a abonat la tine",
"notification.follow_request": "{name} a trimis o cerere de abonare",
- "notification.mention": "{name} te-a menționat",
"notification.own_poll": "Sondajul tău s-a încheiat",
- "notification.poll": "Un sondaj pentru care ai votat s-a încheiat",
"notification.reblog": "{name} ți-a distribuit postarea",
"notification.status": "{name} tocmai a postat",
"notification.update": "{name} și-a modificat o postare",
@@ -567,10 +554,7 @@
"status.direct_indicator": "Mențiune privată",
"status.edit": "Modifică",
"status.edited_x_times": "Modificată {count, plural, one {o dată} few {de {count} ori} other {de {count} de ori}}",
- "status.embed": "Înglobează",
"status.filter": "Filtrează această postare",
- "status.filtered": "Sortate",
- "status.hide": "Ascunde postarea",
"status.history.created": "creată de {name} pe {date}",
"status.history.edited": "modificată de {name} pe {date}",
"status.load_more": "Încarcă mai multe",
@@ -597,10 +581,7 @@
"status.report": "Raportează pe @{name}",
"status.sensitive_warning": "Conținut sensibil",
"status.share": "Distribuie",
- "status.show_filter_reason": "Afișează oricum",
- "status.show_less": "Arată mai puțin",
"status.show_less_all": "Arată mai puțin pentru toți",
- "status.show_more": "Arată mai mult",
"status.show_more_all": "Arată mai mult pentru toți",
"status.show_original": "Afișează originalul",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -619,10 +600,6 @@
"time_remaining.minutes": "{number, plural, one {un minut rămas} few {# minute rămase} other {# de minute rămase}}",
"time_remaining.moments": "Momente rămase",
"time_remaining.seconds": "{number, plural, one {o secundă rămasă} few {# secunde rămase} other {# de secunde rămase}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} de la alte servere nu sunt afișate.",
- "timeline_hint.resources.followers": "Urmăritori",
- "timeline_hint.resources.follows": "Urmăriri",
- "timeline_hint.resources.statuses": "Postări mai vechi",
"trends.counter_by_accounts": "{count, plural, one {o persoană} few {{counter} persoane} other {{counter} de persoane}} în {days, plural, one {ultima zi} few {ultimele {days} zile} other {ultimele {days} de zile}}",
"trends.trending_now": "În tendință acum",
"ui.beforeunload": "Postarea se va pierde dacă părăsești pagina.",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 40ca8481476..13661149299 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -11,7 +11,7 @@
"about.not_available": "Эта информация не указана на данном сервере.",
"about.powered_by": "Децентрализованная социальная сеть на базе {mastodon}",
"about.rules": "Правила сервера",
- "account.account_note_header": "Заметка",
+ "account.account_note_header": "Личная заметка",
"account.add_or_remove_from_list": "Управление списками",
"account.badges.bot": "Бот",
"account.badges.group": "Группа",
@@ -19,7 +19,6 @@
"account.block_domain": "Заблокировать {domain}",
"account.block_short": "Блокировать",
"account.blocked": "Заблокировано",
- "account.browse_more_on_origin_server": "Посмотреть в оригинальном профиле",
"account.cancel_follow_request": "Отозвать запрос на подписку",
"account.copy": "Скопировать ссылку на профиль",
"account.direct": "Лично упоминать @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Подписаться в ответ",
"account.followers": "Подписчики",
"account.followers.empty": "На этого пользователя пока никто не подписан.",
- "account.followers_counter": "{count, plural, one {{counter} подписчик} many {{counter} подписчиков} other {{counter} подписчика}}",
+ "account.followers_counter": "{count, plural, one {{counter} последователя} other {{counter} последователей}}",
"account.following": "Подписки",
- "account.following_counter": "{count, plural, one {{counter} подписка} many {{counter} подписок} other {{counter} подписки}}",
+ "account.following_counter": "{count, plural, one {{counter} последующий} other {{counter} последующие}}",
"account.follows.empty": "Этот пользователь пока ни на кого не подписался.",
"account.go_to_profile": "Перейти к профилю",
"account.hide_reblogs": "Скрыть продвижения от @{name}",
@@ -51,7 +50,7 @@
"account.moved_to": "У {name} теперь новый аккаунт:",
"account.mute": "Игнорировать @{name}",
"account.mute_notifications_short": "Отключить уведомления",
- "account.mute_short": "Немой",
+ "account.mute_short": "Приглушить",
"account.muted": "Игнорируется",
"account.mutual": "Взаимно",
"account.no_bio": "Описание не предоставлено.",
@@ -63,7 +62,6 @@
"account.requested_follow": "{name} отправил(а) вам запрос на подписку",
"account.share": "Поделиться профилем @{name}",
"account.show_reblogs": "Показывать продвижения от @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} пост} many {{counter} постов} other {{counter} поста}}",
"account.unblock": "Разблокировать @{name}",
"account.unblock_domain": "Разблокировать {domain}",
"account.unblock_short": "Разблокировать",
@@ -98,6 +96,8 @@
"block_modal.title": "Заблокировать пользователя?",
"block_modal.you_wont_see_mentions": "Вы не увидите записи, которые упоминают его.",
"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": "О нет!",
@@ -169,27 +169,32 @@
"compose_form.spoiler_placeholder": "Предупреждение о контенте (опционально)",
"confirmation_modal.cancel": "Отмена",
"confirmations.block.confirm": "Заблокировать",
- "confirmations.cancel_follow_request.confirm": "Отменить запрос",
- "confirmations.cancel_follow_request.message": "Вы уверены, что хотите отозвать свой запрос на подписку {name}?",
"confirmations.delete.confirm": "Удалить",
"confirmations.delete.message": "Вы уверены, что хотите удалить этот пост?",
+ "confirmations.delete.title": "Удалить пост?",
"confirmations.delete_list.confirm": "Удалить",
"confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?",
+ "confirmations.delete_list.title": "Удалить список?",
"confirmations.discard_edit_media.confirm": "Отменить",
"confirmations.discard_edit_media.message": "У вас есть несохранённые изменения описания мультимедиа или предпросмотра, отменить их?",
- "confirmations.domain_block.confirm": "Заблокировать сервер",
- "confirmations.domain_block.message": "Вы точно уверены, что хотите заблокировать {domain} полностью? В большинстве случаев нескольких блокировок и игнорирований вполне достаточно. Вы перестанете видеть публичную ленту и уведомления оттуда. Ваши подписчики из этого домена будут удалены.",
"confirmations.edit.confirm": "Редактировать",
"confirmations.edit.message": "В данный момент, редактирование перезапишет составляемое вами сообщение. Вы уверены, что хотите продолжить?",
+ "confirmations.edit.title": "Переписать сообщение?",
"confirmations.logout.confirm": "Выйти",
"confirmations.logout.message": "Вы уверены, что хотите выйти?",
+ "confirmations.logout.title": "Выйти?",
"confirmations.mute.confirm": "Игнорировать",
"confirmations.redraft.confirm": "Удалить и исправить",
"confirmations.redraft.message": "Вы уверены, что хотите удалить и переписать этот пост? Отметки «избранного», продвижения и ответы к оригинальному посту будут удалены.",
+ "confirmations.redraft.title": "Удалим и исправим пост?",
"confirmations.reply.confirm": "Ответить",
"confirmations.reply.message": "При ответе, текст набираемого поста будет очищен. Продолжить?",
+ "confirmations.reply.title": "Перепишем пост?",
"confirmations.unfollow.confirm": "Отписаться",
"confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?",
+ "confirmations.unfollow.title": "Отписаться?",
+ "content_warning.hide": "Скрыть пост",
+ "content_warning.show": "Всё равно показать",
"conversation.delete": "Удалить беседу",
"conversation.mark_as_read": "Отметить как прочитанное",
"conversation.open": "Просмотр беседы",
@@ -297,8 +302,8 @@
"filter_modal.select_filter.subtitle": "Используйте существующую категорию или создайте новую",
"filter_modal.select_filter.title": "Фильтровать этот пост",
"filter_modal.title.status": "Фильтровать пост",
- "filtered_notifications_banner.mentions": "{count, plural, one {упоминание} other {упоминания}}",
- "filtered_notifications_banner.pending_requests": "Уведомления от {count, plural, =0 {никого} one {# человека} other {# других людей, с кем вы можете быть знакомы}}",
+ "filter_warning.matches_filter": "Соответствует фильтру \"{title}\"",
+ "filtered_notifications_banner.pending_requests": "Вы можете знать {count, plural, =0 {ни один} one {один человек} other {# люди}}",
"filtered_notifications_banner.title": "Отфильтрованные уведомления",
"firehose.all": "Все",
"firehose.local": "Текущий сервер",
@@ -347,6 +352,14 @@
"hashtag.follow": "Подписаться на новые посты",
"hashtag.unfollow": "Отписаться",
"hashtags.and_other": "...и {count, plural, other {# ещё}}",
+ "hints.profiles.followers_may_be_missing": "Последователи для этого профиля могут отсутствовать.",
+ "hints.profiles.follows_may_be_missing": "Фолловеры для этого профиля могут отсутствовать.",
+ "hints.profiles.posts_may_be_missing": "Некоторые сообщения из этого профиля могут отсутствовать.",
+ "hints.profiles.see_more_followers": "Посмотреть больше подписчиков на {domain}",
+ "hints.profiles.see_more_follows": "Смотрите другие материалы по теме {domain}",
+ "hints.profiles.see_more_posts": "Посмотреть другие сообщения на {domain}",
+ "hints.threads.replies_may_be_missing": "Ответы с других серверов могут отсутствовать.",
+ "hints.threads.see_more": "Посмотреть другие ответы на {domain}",
"home.column_settings.show_reblogs": "Показывать продвижения",
"home.column_settings.show_replies": "Показывать ответы",
"home.hide_announcements": "Скрыть объявления",
@@ -354,6 +367,17 @@
"home.pending_critical_update.link": "Посмотреть обновления",
"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": "Вы можете просматривать отфильтрованные уведомления отдельно",
+ "ignore_notifications_modal.ignore": "Игнорировать уведомления",
+ "ignore_notifications_modal.limited_accounts_title": "Игнорировать уведомления от модерируемых аккаунтов?",
+ "ignore_notifications_modal.new_accounts_title": "Игнорировать уведомления от новых аккаунтов?",
+ "ignore_notifications_modal.not_followers_title": "Игнорировать уведомления от людей, которые не следят за вами?",
+ "ignore_notifications_modal.not_following_title": "Игнорировать уведомления от людей, за которыми вы не следите?",
+ "ignore_notifications_modal.private_mentions_title": "Игнорировать уведомления о нежелательных личных сообщениях?",
"interaction_modal.description.favourite": "С учётной записью Mastodon, вы можете добавить этот пост в избранное, чтобы сохранить его на будущее и дать автору знать, что пост вам понравился.",
"interaction_modal.description.follow": "С учётной записью Mastodon вы можете подписаться на {name}, чтобы получать их посты в своей домашней ленте.",
"interaction_modal.description.reblog": "С учётной записью Mastodon, вы можете продвинуть этот пост, чтобы поделиться им со своими подписчиками.",
@@ -407,8 +431,6 @@
"keyboard_shortcuts.unfocus": "убрать фокус с поля ввода/поиска",
"keyboard_shortcuts.up": "вверх по списку",
"lightbox.close": "Закрыть",
- "lightbox.compress": "Сжать окно просмотра изображений",
- "lightbox.expand": "Развернуть окно просмотра изображений",
"lightbox.next": "Далее",
"lightbox.previous": "Назад",
"limited_account_hint.action": "Все равно показать профиль",
@@ -432,7 +454,7 @@
"lists.subheading": "Ваши списки",
"load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}",
"loading_indicator.label": "Загрузка…",
- "media_gallery.toggle_visible": "Показать/скрыть {number, plural, =1 {изображение} other {изображения}}",
+ "media_gallery.hide": "Скрыть",
"moved_to_account_banner.text": "Ваша учетная запись {disabledAccount} в настоящее время заморожена, потому что вы переехали на {movedToAccount}.",
"mute_modal.hide_from_notifications": "Скрыть из уведомлений",
"mute_modal.hide_options": "Скрыть параметры",
@@ -444,6 +466,7 @@
"mute_modal.you_wont_see_mentions": "Вы не увидите постов, которые их упоминают.",
"mute_modal.you_wont_see_posts": "Они по-прежнему смогут видеть ваши посты, но вы не сможете видеть их посты.",
"navigation_bar.about": "О проекте",
+ "navigation_bar.administration": "Администрация",
"navigation_bar.advanced_interface": "Включить многоколоночный интерфейс",
"navigation_bar.blocks": "Заблокированные пользователи",
"navigation_bar.bookmarks": "Закладки",
@@ -460,6 +483,7 @@
"navigation_bar.follows_and_followers": "Подписки и подписчики",
"navigation_bar.lists": "Списки",
"navigation_bar.logout": "Выйти",
+ "navigation_bar.moderation": "Модерация",
"navigation_bar.mutes": "Игнорируемые пользователи",
"navigation_bar.opened_in_classic_interface": "Сообщения, учётные записи и другие специфические страницы по умолчанию открываются в классическом веб-интерфейсе.",
"navigation_bar.personal": "Личное",
@@ -470,11 +494,22 @@
"navigation_bar.security": "Безопасность",
"not_signed_in_indicator.not_signed_in": "Вам нужно войти, чтобы иметь доступ к этому ресурсу.",
"notification.admin.report": "{name} сообщил о {target}",
+ "notification.admin.report_account": "{name} сообщил {count, plural, one {один пост} other {# постов}} от {target} для {category}",
+ "notification.admin.report_account_other": "{name} сообщил {count, plural, one {одно сообщение} other {# сообщений}} от {target}",
+ "notification.admin.report_statuses": "{name} сообщил {target} для {category}",
+ "notification.admin.report_statuses_other": "{name} сообщает {target}",
"notification.admin.sign_up": "{name} зарегистрирован",
+ "notification.admin.sign_up.name_and_others": "{name} и {count, plural, one {# другой} other {# другие}} подписались",
"notification.favourite": "{name} добавил(а) ваш пост в избранное",
+ "notification.favourite.name_and_others_with_link": "{name} и {count, plural, one {# другие} other {# другие}} отдали предпочтение вашему посту",
"notification.follow": "{name} подписался (-лась) на вас",
"notification.follow_request": "{name} отправил запрос на подписку",
- "notification.mention": "{name} упомянул(а) вас",
+ "notification.follow_request.name_and_others": "{name} и {count, plural, one {# другие} other {# другие}} последовали за тобой",
+ "notification.label.mention": "Упоминание",
+ "notification.label.private_mention": "Частное упоминание",
+ "notification.label.private_reply": "Частный ответ",
+ "notification.label.reply": "Ответить",
+ "notification.mention": "Упоминание",
"notification.moderation-warning.learn_more": "Узнать больше",
"notification.moderation_warning": "Вы получили предупреждение от модерации",
"notification.moderation_warning.action_delete_statuses": "Некоторые из ваших публикаций были удалены.",
@@ -485,8 +520,9 @@
"notification.moderation_warning.action_silence": "Ваша учётная запись была ограничена.",
"notification.moderation_warning.action_suspend": "Действие вашей учётной записи приостановлено.",
"notification.own_poll": "Ваш опрос закончился",
- "notification.poll": "Опрос, в котором вы приняли участие, завершился",
+ "notification.poll": "Голосование, в котором вы приняли участие, завершилось",
"notification.reblog": "{name} продвинул(а) ваш пост",
+ "notification.reblog.name_and_others_with_link": "{name} и {count, plural, one {# other} other {# others}} увеличили ваш пост",
"notification.relationships_severance_event": "Потеряно соединение с {name}",
"notification.relationships_severance_event.account_suspension": "Администратор {from} заблокировал {target}, что означает, что вы больше не сможете получать обновления от них или взаймодествовать с ними.",
"notification.relationships_severance_event.domain_block": "Администратор {from} заблокировал {target} включая {followersCount} ваших подписчиков и {followingCount, plural, one {# аккаунт} few {# аккаунта} other {# аккаунтов}}, на которые вы подписаны.",
@@ -495,11 +531,22 @@
"notification.status": "{name} только что запостил",
"notification.update": "{name} изменил(а) пост",
"notification_requests.accept": "Принять",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Принять запрос} other {Принять запросы}}",
+ "notification_requests.confirm_accept_multiple.title": "Принимать запросы на уведомления?",
+ "notification_requests.confirm_dismiss_multiple.title": "Отклонять запросы на уведомления?",
"notification_requests.dismiss": "Отклонить",
+ "notification_requests.edit_selection": "Редактировать",
+ "notification_requests.exit_selection": "Готово",
+ "notification_requests.explainer_for_limited_account": "Уведомления от этой учетной записи были отфильтрованы, поскольку учетная запись была ограничена модератором.",
+ "notification_requests.explainer_for_limited_remote_account": "Уведомления от этой учетной записи были отфильтрованы, поскольку учетная запись или ее сервер были ограничены модератором.",
+ "notification_requests.maximize": "Развернуть",
+ "notification_requests.minimize_banner": "Минимизация баннера отфильтрованных уведомлений",
"notification_requests.notifications_from": "Уведомления от {name}",
"notification_requests.title": "Отфильтрованные уведомления",
+ "notification_requests.view": "Просмотр уведомлений",
"notifications.clear": "Очистить уведомления",
"notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?",
+ "notifications.clear_title": "Сбросить уведомления?",
"notifications.column_settings.admin.report": "Новые жалобы:",
"notifications.column_settings.admin.sign_up": "Новые регистрации:",
"notifications.column_settings.alert": "Уведомления на рабочем столе",
@@ -531,6 +578,14 @@
"notifications.permission_denied": "Уведомления на рабочем столе недоступны, так как вы запретили их отправку в браузере. Проверьте настройки для сайта, чтобы включить их обратно.",
"notifications.permission_denied_alert": "Уведомления на рабочем столе недоступны, так как вы ранее отклонили запрос на их отправку.",
"notifications.permission_required": "Чтобы включить уведомления на рабочем столе, необходимо разрешить их в браузере.",
+ "notifications.policy.accept": "Принять",
+ "notifications.policy.accept_hint": "Показать в уведомлениях",
+ "notifications.policy.drop": "Игнорируем",
+ "notifications.policy.drop_hint": "Отправить в пустоту, чтобы никогда больше не увидеть",
+ "notifications.policy.filter": "Фильтр",
+ "notifications.policy.filter_hint": "Отправка в папку фильтрованных уведомлений",
+ "notifications.policy.filter_limited_accounts_hint": "Ограничено модераторами сервера",
+ "notifications.policy.filter_limited_accounts_title": "Модерируемые аккаунты",
"notifications.policy.filter_new_accounts.hint": "Создано в течение последних {days, plural, one {один день} few {# дней} many {# дней} other {# дня}}",
"notifications.policy.filter_new_accounts_title": "Новые учётные записи",
"notifications.policy.filter_not_followers_title": "Люди, не подписанные на вас",
@@ -538,7 +593,7 @@
"notifications.policy.filter_not_following_title": "Люди, на которых вы не подписаны",
"notifications.policy.filter_private_mentions_hint": "Фильтруется, если только это не ответ на ваше собственное упоминание или если вы подписаны на отправителя",
"notifications.policy.filter_private_mentions_title": "Нежелательные личные упоминания",
- "notifications.policy.title": "Фильтровать уведомления от…",
+ "notifications.policy.title": "………Управлять уведомлениями от…",
"notifications_permission_banner.enable": "Включить уведомления",
"notifications_permission_banner.how_to_control": "Получайте уведомления даже когда Mastodon закрыт, включив уведомления на рабочем столе. А чтобы лишний шум не отвлекал, вы можете настроить какие уведомления вы хотите получать, нажав на кнопку {icon} выше.",
"notifications_permission_banner.title": "Будьте в курсе происходящего",
@@ -665,8 +720,11 @@
"report.unfollow_explanation": "Вы подписаны на этого пользователя. Чтобы не видеть его/её посты в своей домашней ленте, отпишитесь от него/неё.",
"report_notification.attached_statuses": "{count, plural, one {{count} сообщение} few {{count} сообщения} many {{count} сообщений} other {{count} сообщений}} вложено",
"report_notification.categories.legal": "Правовая информация",
+ "report_notification.categories.legal_sentence": "срамной контент",
"report_notification.categories.other": "Прочее",
+ "report_notification.categories.other_sentence": "другое",
"report_notification.categories.spam": "Спам",
+ "report_notification.categories.spam_sentence": "спам",
"report_notification.categories.violation": "Нарушение правил",
"report_notification.open": "Открыть жалобу",
"search.no_recent_searches": "Недавние запросы отсутствуют",
@@ -695,8 +753,11 @@
"server_banner.about_active_users": "Люди, заходившие на этот сервер за последние 30 дней (ежемесячные активные пользователи)",
"server_banner.active_users": "активные пользователи",
"server_banner.administered_by": "Управляется:",
+ "server_banner.is_one_of_many": "{domain} - это один из многих независимых серверов Mastodon, которые вы можете использовать для участия в fediverse.",
"server_banner.server_stats": "Статистика сервера:",
"sign_in_banner.create_account": "Создать учётную запись",
+ "sign_in_banner.follow_anyone": "Следите за любым человеком в федеральной вселенной и смотрите все в хронологическом порядке. Никаких алгоритмов, рекламы или клик бейта.",
+ "sign_in_banner.mastodon_is": "Mastodon - лучший способ быть в курсе всего происходящего.",
"sign_in_banner.sign_in": "Войти",
"sign_in_banner.sso_redirect": "Войдите или Зарегистрируйтесь",
"status.admin_account": "Открыть интерфейс модератора для @{name}",
@@ -706,6 +767,7 @@
"status.bookmark": "Сохранить в закладки",
"status.cancel_reblog_private": "Не продвигать",
"status.cannot_reblog": "Этот пост не может быть продвинут",
+ "status.continued_thread": "Продолжение темы",
"status.copy": "Скопировать ссылку на пост",
"status.delete": "Удалить",
"status.detailed_status": "Подробный просмотр обсуждения",
@@ -714,11 +776,9 @@
"status.edit": "Изменить",
"status.edited": "Дата последнего изменения: {date}",
"status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}",
- "status.embed": "Встроить на свой сайт",
+ "status.embed": "Получить код для встраивания",
"status.favourite": "Избранное",
"status.filter": "Фильтровать этот пост",
- "status.filtered": "Отфильтровано",
- "status.hide": "Скрыть пост",
"status.history.created": "{name} создал {date}",
"status.history.edited": "{name} отредактировал(а) {date}",
"status.load_more": "Загрузить остальное",
@@ -739,16 +799,14 @@
"status.reblogs.empty": "Никто ещё не продвинул этот пост. Как только кто-то это сделает, они появятся здесь.",
"status.redraft": "Создать заново",
"status.remove_bookmark": "Убрать из закладок",
+ "status.replied_in_thread": "Ответил в теме",
"status.replied_to": "Ответил(а) {name}",
"status.reply": "Ответить",
"status.replyAll": "Ответить всем",
"status.report": "Пожаловаться",
"status.sensitive_warning": "Содержимое «деликатного характера»",
"status.share": "Поделиться",
- "status.show_filter_reason": "Все равно показать",
- "status.show_less": "Свернуть",
"status.show_less_all": "Свернуть все спойлеры в ветке",
- "status.show_more": "Развернуть",
"status.show_more_all": "Развернуть все спойлеры в ветке",
"status.show_original": "Показать оригинал",
"status.title.with_attachments": "{user} размещено {attachmentCount, plural, one {вложение} other {{attachmentCount} вложений}}",
@@ -767,10 +825,6 @@
"time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}",
"time_remaining.moments": "остались считанные мгновения",
"time_remaining.seconds": "{number, plural, one {# секунда} many {# секунд} other {# секунды}}",
- "timeline_hint.remote_resource_not_displayed": "Мы не отображаем {resource} с других серверов.",
- "timeline_hint.resources.followers": "подписчиков",
- "timeline_hint.resources.follows": "подписки",
- "timeline_hint.resources.statuses": "прошлые посты",
"trends.counter_by_accounts": "{count, plural, few {{counter} человека} other {{counter} человек}} за {days, plural, one {последний день} few {последние {days} дня} other {последние {days} дней}}",
"trends.trending_now": "Самое актуальное",
"ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
diff --git a/app/javascript/mastodon/locales/ry.json b/app/javascript/mastodon/locales/ry.json
index 67aad910054..02d1c005cfb 100644
--- a/app/javascript/mastodon/locales/ry.json
+++ b/app/javascript/mastodon/locales/ry.json
@@ -3,13 +3,14 @@
"about.contact": "Контакт:",
"about.disclaimer": "Mastodon є задарьнов проґрамов из удпертым кодом тай торговов значков Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Причины не ясні",
+ "about.domain_blocks.preamble": "Майбульш Mastodon поволят вам позирати контент тай комуніковати из хосновачами из другых федерованых серверув. Туй лиш уняткы учинені про сись конкретный сервер.",
+ "about.domain_blocks.silenced.explanation": "Вы майбульш не будете видіти профілі тай контент из сього сервера, кидь не будете го самі глядати авадь пудпишете ся на нього.",
"about.domain_blocks.silenced.title": "Обмежено",
"about.domain_blocks.suspended.explanation": "Ниякі податкы из сього сервера не будут уброблені, усокочені ци поміняні, што чинит невозможнов хоть-яку інтеракцію ци зязок из хосновачами из сього сервера.",
"about.domain_blocks.suspended.title": "Заблоковано",
"about.not_available": "Ися інформація не была доступна на сюм сервері.",
"about.powered_by": "Децентралізована медіа основана на {mastodon}",
"about.rules": "Правила сервера",
- "account.account_note_header": "Примітка",
"account.add_or_remove_from_list": "Дати авадь забрати из исписа",
"account.badges.bot": "Автоматічно",
"account.badges.group": "Ґрупа",
@@ -17,9 +18,9 @@
"account.block_domain": "Заблоковати домен {domain}",
"account.block_short": "Заблоковати",
"account.blocked": "Заблоковано",
- "account.browse_more_on_origin_server": "Позирайте бульше на ориґіналнум профілю",
"account.cancel_follow_request": "Удмінити пудписку",
"account.copy": "Зкопіровати удкликованя на профіл",
+ "account.direct": "Пошептати @{name}",
"account.disable_notifications": "Бульше не сповіщати ми коли {name} пише",
"account.domain_blocked": "Домен заблокованый",
"account.edit_profile": "Управити профіл",
@@ -39,8 +40,10 @@
"account.joined_short": "Датум прикапчованя",
"account.languages": "Поміняти убрані языкы",
"account.link_verified_on": "Властность сього удкликованя было звірено {date}",
+ "account.locked_info": "Сись профіл є замкнутый. Ґазда акаунта буде ручно провіряти тко го може зафоловити.",
"account.media": "Медіа",
- "account.moved_to": "Хосновач {name} указав, ож новый профіл йим є:",
+ "account.mention": "Спомянути @{name}",
+ "account.moved_to": "Хосновач {name} указав, ож новый профіл му є:",
"account.mute": "Стишити {name}",
"account.mute_notifications_short": "Стишити голошіня",
"account.mute_short": "Стишити",
@@ -60,9 +63,12 @@
"account.unblock_short": "Розблоковати",
"account.unendorse": "Не указовати на профілови",
"account.unfollow": "Удписати ся",
+ "account.unmute": "Указовати {name}",
"account.unmute_notifications_short": "Указовати голошіня",
"account.unmute_short": "Указовати",
"account_note.placeholder": "Клопкніт обы додати примітку",
+ "admin.dashboard.retention.average": "Середньоє",
+ "admin.dashboard.retention.cohort": "Місяць прикапчованя",
"admin.dashboard.retention.cohort_size": "Нові хосновачі",
"admin.impact_report.instance_accounts": "Профілі из акаунтув, котрі ся удалят",
"admin.impact_report.instance_followers": "Пудписникы, котрых стратят наші хосновачі",
@@ -70,11 +76,86 @@
"admin.impact_report.title": "Вплыв цілком",
"alert.rate_limited.message": "Попробуйте зась по {retry_time, time, medium}.",
"alert.rate_limited.title": "Частота обмежена",
+ "alert.unexpected.message": "Стала ся нечекана хыба.",
+ "alert.unexpected.title": "Ийой!",
+ "announcement.announcement": "Голошіня",
+ "audio.hide": "Зпрятати звук",
+ "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.title": "Заблоковати хосновача?",
+ "block_modal.you_wont_see_mentions": "Не будете видіти публикації тай споминкы сього хосновача.",
+ "boost_modal.combo": "Можете клынцнути {combo} другый раз обы сесе пропустити",
+ "bundle_column_error.copy_stacktrace": "Укопіровати звіт за хыбу",
+ "bundle_column_error.error.body": "Не годни сьме указати зажадану сторунку. Годно быти спозад хыбы у нашум сістемі, авадь проблемы зумісности бравзера.",
+ "bundle_column_error.error.title": "Ийой!",
+ "bundle_column_error.network.body": "Стала ся хыба як сьме пробовали напаровати сторунку. Годно ся йсе было стати спозад слабого споєня вашого інтернета, авадь сервера.",
+ "bundle_column_error.network.title": "Хыба споєня",
+ "bundle_column_error.retry": "Попробуйте зась",
"bundle_column_error.return": "Вернути ся на головну",
"bundle_column_error.routing.body": "Не можеме найти сяку сторунку. Бизувні сьте, ож 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.other_server_instructions": "Mastodon є децентралізованов платформов, можете си учинити профіл и на другому серверови тай комуніковати из сим.",
+ "closed_registrations_modal.description": "Раз не мож учинити профіл на {domain}, айбо не мусите мати профіл ипен на серверови {domain} обы хосновати Mastodon.",
+ "closed_registrations_modal.find_another_server": "Найти другый сервер",
+ "column.about": "За сайт",
+ "column.blocks": "Заблоковані хосновачі",
+ "column.bookmarks": "Усокоченоє",
+ "column.direct": "Шептаня",
+ "column.directory": "Никати профілі",
+ "column.domain_blocks": "Заблоковані домены",
+ "column.favourites": "Убраноє",
+ "column.follow_requests": "Запросы на пудписку",
+ "column.lists": "Исписы",
+ "column.mutes": "Стишені хосновачі",
+ "column.notifications": "Убвіщеня",
+ "column.pins": "Закріплені публикації",
+ "column_back_button.label": "Назад",
+ "column_header.hide_settings": "Спрятати штімованя",
+ "column_header.moveLeft_settings": "Посунути колонку до ліва",
+ "column_header.moveRight_settings": "Посунути колонку до права",
+ "column_header.pin": "Закріпити",
+ "column_header.show_settings": "Указати штімованя",
+ "column_header.unpin": "Удкріпити",
+ "column_subheading.settings": "Штімованя",
+ "community.column_settings.local_only": "Лем локалноє",
+ "community.column_settings.media_only": "Лем медіа",
+ "compose.language.change": "Поміняти язык",
+ "compose.language.search": "Глядати языкы...",
+ "compose.published.body": "Пост опубликованый.",
+ "compose.published.open": "Удкрыти",
+ "compose.saved.body": "Пост усокоченый.",
+ "compose_form.direct_message_warning_learn_more": "Читайте бульше",
+ "compose_form.encryption_warning": "Публикації на Mastodon не шіфрувут ся. Не шырьте чутливу інформацію через Mastodon.",
+ "compose_form.hashtag_warning": "Сись пост не буде ся появляти у исписови по гештеґови, бо вун не є публичный. Лишек публичні посты буде видко за гештеґом.",
+ "compose_form.lock_disclaimer": "Ваш профіл є {locked}. Хоть-тко може ся на вас пудписати, обы видїти ваші ексклузівні посты.",
+ "compose_form.lock_disclaimer.lock": "замкнено",
+ "compose_form.placeholder": "Што нового?",
+ "compose_form.poll.duration": "Трывалость убзвідованя",
+ "compose_form.poll.multiple": "Дакулько варіантув",
+ "compose_form.poll.option_placeholder": "Варіант {number}",
+ "compose_form.poll.single": "Уберіт єден",
+ "compose_form.poll.switch_to_multiple": "Змінити убзвідованя обы поволити дакулько варіантув",
+ "compose_form.poll.switch_to_single": "Змінити убзвідованя обы поволити лишек єден варіант",
+ "compose_form.poll.type": "Стіл",
+ "compose_form.publish": "Публикація",
+ "compose_form.publish_form": "Нова публикація",
+ "compose_form.reply": "Удповідь",
+ "compose_form.save_changes": "Усокотити",
+ "confirmations.logout.confirm": "Уйти гет",
+ "confirmations.logout.message": "Бизувні сьте ож хочете уйти?",
+ "confirmations.logout.title": "Уйти гет?",
+ "confirmations.mute.confirm": "Стишити",
+ "confirmations.reply.confirm": "Удповісти",
+ "copypaste.copy_to_clipboard": "Копіровати у памнять",
+ "directory.recently_active": "Недавно актівні",
+ "disabled_account_banner.account_settings": "Штімованя акаунта",
+ "disabled_account_banner.text": "Ваш акаунт {disabledAccount} раз є неактівный.",
+ "dismissable_banner.community_timeline": "Туй сут недавні публикації уд профілув на серверови {domain}."
}
diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json
index 58654deb039..2d48f688d58 100644
--- a/app/javascript/mastodon/locales/sa.json
+++ b/app/javascript/mastodon/locales/sa.json
@@ -11,14 +11,12 @@
"about.not_available": "अस्मिन्सर्वरि अस्यास्सूचनायाः उपलभ्यो न कृतः।",
"about.powered_by": "अकेन्द्रीयितसामाजिकजालकर्म {mastodon} द्वारा आधारितम्",
"about.rules": "सर्वरो नियमाः",
- "account.account_note_header": "टीका",
"account.add_or_remove_from_list": "युज्यतां / नश्यतां सूच्याः",
"account.badges.bot": "यन्त्रम्",
"account.badges.group": "समूहः",
"account.block": "अवरुध्यताम् @{name}",
"account.block_domain": "अवरुध्यतां प्रदेशः {domain}",
"account.blocked": "अवरुद्धम्",
- "account.browse_more_on_origin_server": "अधिकं मूलव्यक्तिगतविवरणे दृश्यताम्",
"account.cancel_follow_request": "अनुसरणयाचनामपनय",
"account.direct": "गोपनीयरूपेण उल्लेखित-@{name}",
"account.disable_notifications": "यदा @{name} स्थापयति तदा माम्मा ज्ञापय",
@@ -32,9 +30,7 @@
"account.follow": "अनुस्रियताम्",
"account.followers": "अनुसर्तारः",
"account.followers.empty": "नाऽनुसर्तारो वर्तन्ते",
- "account.followers_counter": "{count, plural, one {{counter} अनुसर्ता} two {{counter} अनुसर्तारौ} other {{counter} अनुसर्तारः}}",
"account.following": "अनुसरति",
- "account.following_counter": "{count, plural, one {{counter} अनुसृतः} two {{counter} अनुसृतौ} other {{counter} अनुसृताः}}",
"account.follows.empty": "न कोऽप्यनुसृतो वर्तते",
"account.go_to_profile": "प्रोफायिलं गच्छ",
"account.hide_reblogs": "@{name} मित्रस्य प्रकाशनानि छिद्यन्ताम्",
@@ -56,7 +52,6 @@
"account.requested_follow": "{name} त्वामनुसर्तुमयाचीत्",
"account.share": "@{name} मित्रस्य विवरणं विभाज्यताम्",
"account.show_reblogs": "@{name} मित्रस्य प्रकाशनानि दृश्यन्ताम्",
- "account.statuses_counter": "{count, plural, one {{counter} पत्रम्} two{{counter} पत्रे} other {{counter} पत्राणि}}",
"account.unblock": "निषेधता नश्यताम् @{name}",
"account.unblock_domain": "प्रदेशनिषेधता नश्यताम् {domain}",
"account.unblock_short": "अनवरुन्धि",
@@ -136,15 +131,12 @@
"compose_form.spoiler.unmarked": "अप्रच्छन्नाक्षरं विद्यते",
"confirmation_modal.cancel": "नश्यताम्",
"confirmations.block.confirm": "निषेधः",
- "confirmations.cancel_follow_request.confirm": "अनुरोधनमपनय",
- "confirmations.cancel_follow_request.message": "{name} अनुसरणस्यानुरोधमपनेतुं दृढीकृतं वा?",
"confirmations.delete.confirm": "मार्जय",
"confirmations.delete.message": "निश्चयेन पत्रमिदं मार्जितुमिच्छसि?",
"confirmations.delete_list.confirm": "मार्जय",
"confirmations.delete_list.message": "सूचिरियं निश्चयेन स्थायित्वेन च मार्जितुमिच्छसि वा?",
"confirmations.discard_edit_media.confirm": "अपास्य",
"confirmations.discard_edit_media.message": "माध्यमवर्णनां प्रदर्शनञ्च अरक्षितानि परिवर्तनानि सन्ति, तानि अपासितुमिच्छसि वा?",
- "confirmations.domain_block.message": "नूनं निश्चयेनैव विनष्टुमिच्छति पूर्णप्रदेशमेव {domain} ? अधिकांशसन्दर्भेऽस्थायित्वेन निषेधता निःशब्दत्वञ्च पर्याप्तं चयनीयञ्च । न तस्मात् प्रदेशात्सर्वे विषया द्रष्टुमशक्याः किस्यांश्चिदपि सर्वजनिकसमयतालिकायां वा स्वीयसूचनापटले । सर्वेऽनुसर्तारस्ते प्रदेशात् ये सन्ति ते नश्यन्ते ।",
"confirmations.edit.confirm": "सम्पादय",
"confirmations.edit.message": "सम्पादनमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते। निश्चयेनैवं कर्तव्यम्?",
"confirmations.logout.confirm": "बहिर्गम्यताम्",
@@ -307,8 +299,6 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "पिधीयताम्",
- "lightbox.compress": "सङ्कुच चित्रप्रदर्शनपेटकम्",
- "lightbox.expand": "चित्रप्रदर्शनपेटकं विस्तारय",
"lightbox.next": "परः",
"lightbox.previous": "पूर्वः",
"limited_account_hint.action": "प्रोफैलं दर्शय कथञ्चित्",
@@ -327,7 +317,6 @@
"lists.search": "त्वया अनुसारितजनेषु अन्विष्य",
"lists.subheading": "तव सूचयः",
"load_pending": "{count, plural, one {# नूतनवस्तु} other {# नूतनवस्तूनि}}",
- "media_gallery.toggle_visible": "{number, plural, one {चित्रं प्रच्छादय} other {चित्राणि प्रच्छादय}}",
"moved_to_account_banner.text": "तव एकौण्ट् {disabledAccount} अधुना निष्कृतो यतोहि {movedToAccount} अस्मिन्त्वमसार्षीः।",
"navigation_bar.about": "विषये",
"navigation_bar.blocks": "निषिद्धभोक्तारः",
@@ -356,9 +345,7 @@
"notification.admin.sign_up": "{name} संविवेश",
"notification.follow": "{name} त्वामनुससार",
"notification.follow_request": "{name} त्वामनुसर्तुमयाचीत्",
- "notification.mention": "{name} त्वामुल्लिलेख",
"notification.own_poll": "तव निर्वाचनं समाप्तम्",
- "notification.poll": "यस्मिन्निर्वाचने मतमदास्तन्निर्वाचनं समाप्तम्",
"notification.reblog": "{name} तव पत्रं बुस्तिमिति अकार्षीत्",
"notification.status": "{name} अधुना अस्थापयिष्ट",
"notification.update": "{name} पत्रमेकं समपादयिष्ट",
@@ -514,10 +501,7 @@
"status.detailed_status": "विस्तृतसंभाषणदृश्यम्",
"status.edit": "सम्पादय",
"status.edited_x_times": "Edited {count, plural, one {{count} वारम्} other {{count} वारम्}}",
- "status.embed": "निहितम्",
"status.filter": "पत्रमिदं फिल्तरं कुरु",
- "status.filtered": "फिल्तर्कृतम्",
- "status.hide": "प्रेषरणं प्रच्छादय",
"status.history.created": "{name} असृजत् {date}",
"status.history.edited": "{name} समपादयत् {date}",
"status.load_more": "अधिकं स्थापय",
@@ -534,7 +518,6 @@
"status.reblogs.empty": "न केनापि पत्रमिदं बुस्त्कृतम्। यदा कोऽपि करोति, तानि इह दृश्यन्ते।",
"status.redraft": "मार्जय पुनश्च लिख्यताम्",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
- "timeline_hint.resources.statuses": "पूरातनपत्राणि",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
index a0b5b327117..bb7d062b95e 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -1,45 +1,60 @@
{
"about.blocks": "Serbidores moderados",
- "about.contact": "Contatu:",
- "about.disclaimer": "Mastodon est software de còdigu lìberu e unu màrchiu de Mastodon gGmbH.",
- "about.domain_blocks.no_reason_available": "Rasone no a disponimentu",
+ "about.contact": "Cuntatu:",
+ "about.disclaimer": "Mastodon est software de còdighe lìberu e unu màrchiu de Mastodon gGmbH.",
+ "about.domain_blocks.no_reason_available": "Peruna resone a disponimentu",
"about.domain_blocks.preamble": "Mastodon ti permitit de bìdere su cuntenutu de utentes de cale si siat àteru serbidore de su fediversu. Custas sunt etzetziones fatas in custu serbidore ispetzìficu.",
- "about.domain_blocks.silenced.explanation": "As a bìere perfilos e contenutos dae custu serbidore sceti chi ddos chircas o detzidas de ddu sighere.",
+ "about.domain_blocks.silenced.explanation": "As a bìdere profilos e cuntenutos dae custu serbidore isceti chi ddos chircas o detzides de ddu sighire.",
"about.domain_blocks.silenced.title": "Limitadu",
+ "about.domain_blocks.suspended.explanation": "Perunu datu de custu serbidore at a èssere protzessadu, immagasinadu o cuncambiadu; est impossìbile duncas cale si siat interatzione o comunicatzione cun is utentes de custu serbidore.",
"about.domain_blocks.suspended.title": "Suspèndidu",
+ "about.not_available": "Custa informatzione no est istada posta a disponimentu in custu serbidore.",
+ "about.powered_by": "Rete sotziale detzentralizada impulsada dae {mastodon}",
"about.rules": "Règulas de su serbidore",
- "account.account_note_header": "Nota",
+ "account.account_note_header": "Nota personale",
"account.add_or_remove_from_list": "Agiunghe o boga dae is listas",
- "account.badges.bot": "Robot",
+ "account.badges.bot": "Automatizadu",
"account.badges.group": "Grupu",
"account.block": "Bloca @{name}",
"account.block_domain": "Bloca su domìniu {domain}",
"account.block_short": "Bloca",
"account.blocked": "Blocadu",
- "account.browse_more_on_origin_server": "Esplora de prus in su profilu originale",
- "account.cancel_follow_request": "Withdraw follow request",
+ "account.cancel_follow_request": "Annulla sa sighidura",
+ "account.copy": "Còpia su ligòngiu a su profilu",
+ "account.direct": "Mèntova a @{name} in privadu",
"account.disable_notifications": "Non mi notìfiches prus cando @{name} pùblichet messàgios",
"account.domain_blocked": "Domìniu blocadu",
"account.edit_profile": "Modìfica profilu",
"account.enable_notifications": "Notìfica·mi cando @{name} pùblicat messàgios",
"account.endorse": "Cussìgia in su profilu tuo",
+ "account.featured_tags.last_status_at": "Ùrtima publicatzione in su {date}",
+ "account.featured_tags.last_status_never": "Peruna publicatzione",
+ "account.featured_tags.title": "Etichetas de {name} in evidèntzia",
"account.follow": "Sighi",
+ "account.follow_back": "Sighi tue puru",
"account.followers": "Sighiduras",
"account.followers.empty": "Nemos sighit ancora custa persone.",
"account.followers_counter": "{count, plural, one {{counter} sighidura} other {{counter} sighiduras}}",
"account.following": "Sighende",
- "account.following_counter": "{count, plural, one {Sighende a {counter}} other {Sighende a {counter}}}",
+ "account.following_counter": "{count, plural, one {sighende a {counter}} other {sighende a {counter}}}",
"account.follows.empty": "Custa persone non sighit ancora a nemos.",
+ "account.go_to_profile": "Bae a su profilu",
"account.hide_reblogs": "Cua is cumpartziduras de @{name}",
"account.in_memoriam": "In memoriam.",
"account.joined_short": "At aderidu",
+ "account.languages": "Muda is idiomas sutiscritos",
"account.link_verified_on": "Sa propiedade de custu ligòngiu est istada controllada su {date}",
"account.locked_info": "S'istadu de riservadesa de custu contu est istadu cunfiguradu comente blocadu. Sa persone chi tenet sa propiedade revisionat a manu chie dda podet sighire.",
"account.media": "Cuntenutu multimediale",
"account.mention": "Mèntova a @{name}",
+ "account.moved_to": "{name} at indicadu chi su contu nou issoro immoe est:",
"account.mute": "Pone a @{name} a sa muda",
+ "account.mute_notifications_short": "Pone is notìficas a sa muda",
"account.mute_short": "A sa muda",
"account.muted": "A sa muda",
+ "account.mutual": "Pari-pari",
+ "account.no_bio": "Peruna descritzione frunida.",
+ "account.open_original_page": "Aberi sa pàgina originale",
"account.posts": "Publicatziones",
"account.posts_with_replies": "Publicatziones e rispostas",
"account.report": "Signala @{name}",
@@ -50,30 +65,59 @@
"account.statuses_counter": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}",
"account.unblock": "Isbloca a @{name}",
"account.unblock_domain": "Isbloca su domìniu {domain}",
+ "account.unblock_short": "Isbloca",
"account.unendorse": "Non cussiges in su profilu",
"account.unfollow": "Non sigas prus",
"account.unmute": "Torra a ativare a @{name}",
+ "account.unmute_notifications_short": "Ativa is notìficas",
+ "account.unmute_short": "Ativa su sonu",
"account_note.placeholder": "Incarca pro agiùnghere una nota",
+ "admin.dashboard.daily_retention": "Tassu de ritentzione de is utentes a pustis de sa registratzione",
+ "admin.dashboard.monthly_retention": "Tassu de ritentzione de utentes pro mese a pustis de sa registratzione",
+ "admin.dashboard.retention.average": "Mèdiu",
+ "admin.dashboard.retention.cohort": "Mese de registratzione",
+ "admin.dashboard.retention.cohort_size": "Utentes noos",
+ "admin.impact_report.instance_accounts": "Contos de profilu chi custu diat cantzellare",
+ "admin.impact_report.instance_followers": "Sighiduras chi is utentes nostros diant pèrdere",
+ "admin.impact_report.instance_follows": "Sighiduras chi is utentes issoro diant pèrdere",
+ "admin.impact_report.title": "Resumu de s'impatu",
"alert.rate_limited.message": "Torra·bi a proare a pustis de {retry_time, time, medium}.",
"alert.rate_limited.title": "Màssimu de rechestas barigadu",
"alert.unexpected.message": "Ddoe est istada una faddina.",
"alert.unexpected.title": "Oh!",
"announcement.announcement": "Annùntziu",
+ "attachments_list.unprocessed": "(non protzessadu)",
"audio.hide": "Cua s'àudio",
+ "block_modal.remote_users_caveat": "Amus a pedire a su serbidore {domain} de rispetare sa detzisione tua. Nointames custu, su rispetu no est garantidu ca unos cantos serbidores diant pòdere gestire is blocos de manera diferente. Is publicatzione pùblicas diant pòdere ancora èssere visìbiles a is utentes chi no ant fatu s'atzessu.",
+ "block_modal.show_less": "Ammustra·nde prus pagu",
+ "block_modal.show_more": "Ammustra·nde prus",
+ "block_modal.they_cant_mention": "Non ti podent mentovare nen sighire.",
+ "block_modal.they_cant_see_posts": "Non podent bìdere is publicatziones tuas e tue non podes bìdere cussas issoro.",
+ "block_modal.they_will_know": "Non podent bìdere chi ddos as blocadu.",
+ "block_modal.title": "Boles blocare s'utente?",
+ "block_modal.you_wont_see_mentions": "No as a bìdere is publicatziones chi mèntovent custa persone.",
"boost_modal.combo": "Podes incarcare {combo} pro brincare custu sa borta chi benit",
+ "bundle_column_error.copy_stacktrace": "Còpia s'informe de faddina",
+ "bundle_column_error.error.body": "Sa pàgina pedida non faghiat a dda renderizare. Diat pòdere èssere pro neghe de una faddina in su còdighe nostru, o de unu problema de cumpatibilidade de su navigadore.",
"bundle_column_error.error.title": "Oh, no!",
+ "bundle_column_error.network.body": "Ddoe est àpidu un'errore proende a carrigare custa pàgina. Custu diat pòdere derivare dae unu problema temporàneu cun sa connessione ìnternet tua a su serbidore.",
"bundle_column_error.network.title": "Faddina de connessione",
"bundle_column_error.retry": "Torra·bi a proare",
+ "bundle_column_error.return": "Torra a sa pàgina printzipale",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Serra",
"bundle_modal_error.message": "Faddina in su carrigamentu de custu cumponente.",
"bundle_modal_error.retry": "Torra·bi a proare",
+ "closed_registrations_modal.find_another_server": "Agata un'àteru serbidore",
"column.about": "Informatziones",
"column.blocks": "Persones blocadas",
"column.bookmarks": "Sinnalibros",
"column.community": "Lìnia de tempus locale",
+ "column.direct": "Mentziones privadas",
"column.directory": "Nàviga in is profilos",
"column.domain_blocks": "Domìnios blocados",
+ "column.favourites": "Preferidos",
+ "column.firehose": "Publicatziones in direta",
"column.follow_requests": "Rechestas de sighidura",
"column.home": "Printzipale",
"column.lists": "Listas",
@@ -92,31 +136,46 @@
"community.column_settings.local_only": "Isceti locale",
"community.column_settings.media_only": "Isceti multimediale",
"community.column_settings.remote_only": "Isceti remotu",
- "compose.language.change": "Càmbia sa limba",
+ "compose.language.change": "Càmbia s'idioma",
+ "compose.language.search": "Chirca idiomas...",
+ "compose.published.body": "Publicadu.",
+ "compose.published.open": "Aberi",
+ "compose.saved.body": "Publicatzione sarvada.",
"compose_form.direct_message_warning_learn_more": "Àteras informatziones",
- "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
- "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
+ "compose_form.hashtag_warning": "Custa publicatzione no at a èssere ammustrada in peruna eticheta, dae chi no est pùblica. Isceti is publicatziones pùblicas podent èssere chircadas cun etichetas.",
"compose_form.lock_disclaimer": "Su contu tuo no est {locked}. Cale si siat persone ti podet sighire pro bìdere is messàgios tuos chi imbies a sa gente chi ti sighit.",
"compose_form.lock_disclaimer.lock": "blocadu",
"compose_form.placeholder": "A ite ses pensende?",
"compose_form.poll.duration": "Longària de su sondàgiu",
+ "compose_form.poll.multiple": "Sèberu mùltiplu",
+ "compose_form.poll.option_placeholder": "Optzione {number}",
+ "compose_form.poll.single": "Sèbera·nde una",
"compose_form.poll.switch_to_multiple": "Muda su sondàgiu pro permìtere multi-optziones",
"compose_form.poll.switch_to_single": "Muda su sondàgiu pro permìtere un'optzione isceti",
- "compose_form.publish_form": "Publish",
+ "compose_form.poll.type": "Istile",
+ "compose_form.publish": "Pùblica",
+ "compose_form.publish_form": "Publicatzione noa",
+ "compose_form.reply": "Risponde",
+ "compose_form.save_changes": "Atualiza",
"compose_form.spoiler.marked": "Boga avisu de cuntenutu",
"compose_form.spoiler.unmarked": "Agiunghe avisu de cuntenutu",
+ "compose_form.spoiler_placeholder": "Avisu de cuntenutu (optzionale)",
"confirmation_modal.cancel": "Annulla",
"confirmations.block.confirm": "Bloca",
"confirmations.delete.confirm": "Cantzella",
"confirmations.delete.message": "Seguru chi boles cantzellare custa publicatzione?",
+ "confirmations.delete.title": "Cantzellare sa publicatzione?",
"confirmations.delete_list.confirm": "Cantzella",
"confirmations.delete_list.message": "Seguru chi boles cantzellare custa lista in manera permanente?",
- "confirmations.domain_block.message": "Boles de seguru, ma a beru a beru, blocare {domain}? In sa parte manna de is casos, pagos blocos o silentziamentos de persones sunt sufitzientes e preferìbiles. No as a bìdere cuntenutos dae custu domìniu in peruna lìnia de tempus pùblica o in is notìficas tuas. Sa gente chi ti sighit dae cussu domìniu at a èssere bogada.",
+ "confirmations.delete_list.title": "Cantzellare sa lista?",
+ "confirmations.discard_edit_media.confirm": "Iscarta",
+ "confirmations.discard_edit_media.message": "Tenes modìficas non sarvadas a is descritziones o a is anteprimas de is cuntenutos, ddas boles iscartare su matessi?",
"confirmations.edit.confirm": "Modìfica",
"confirmations.logout.confirm": "Essi·nche",
"confirmations.logout.message": "Seguru chi boles essire?",
"confirmations.mute.confirm": "A sa muda",
"confirmations.redraft.confirm": "Cantzella e torra a fàghere",
+ "confirmations.redraft.message": "Seguru chi boles cantzellare e torrare a fàghere custa publicatzione? As a pèrdere is preferidos e is cumpartziduras, e is rispostas a su messàgiu originale ant a abarrare òrfanas.",
"confirmations.reply.confirm": "Risponde",
"confirmations.reply.message": "Rispondende immoe as a subrascrìere su messàgiu chi ses iscriende. Seguru chi boles sighire?",
"confirmations.unfollow.confirm": "Non sigas prus",
@@ -125,22 +184,42 @@
"conversation.mark_as_read": "Signala comente lèghidu",
"conversation.open": "Ammustra arresonada",
"conversation.with": "Cun {names}",
+ "copy_icon_button.copied": "Copiadu in punta de billete",
+ "copypaste.copied": "Copiadu",
+ "copypaste.copy_to_clipboard": "Còpia in punta de billete",
"directory.federated": "Dae unu fediversu connotu",
"directory.local": "Isceti dae {domain}",
"directory.new_arrivals": "Arribos noos",
"directory.recently_active": "Cun atividade dae pagu",
"disabled_account_banner.account_settings": "Cunfiguratziones de su contu",
- "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
- "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
+ "disabled_account_banner.text": "Su contu tuo {disabledAccount} no est ativu.",
+ "dismissable_banner.dismiss": "Iscarta",
+ "domain_block_modal.block": "Bloca su serbidore",
+ "domain_block_modal.block_account_instead": "Bloca imbetzes a @{name}",
+ "domain_block_modal.they_can_interact_with_old_posts": "Is persones de custu serbidore podent ancora interagire cun is publicatziones betzas tuas.",
+ "domain_block_modal.they_cant_follow": "Perunu dae custu serbidore ti podet sighire.",
+ "domain_block_modal.they_wont_know": "No ant a ischire chi t'ant blocadu.",
+ "domain_block_modal.title": "Boles blocare su domìniu?",
+ "domain_block_modal.you_wont_see_posts": "No as a bìdere publicatziones o notìficas dae utentes in custu serbidore.",
+ "domain_pill.activitypub_lets_connect": "Ti permitit de ti collegare e de interagire cun persones no isceti in Mastodon, ma in aplicatziones sotziales diferentes puru.",
+ "domain_pill.activitypub_like_language": "ActivityPub est a tipu sa limba chi Mastodon chistionat cun àteras retes sotziales.",
+ "domain_pill.server": "Serbidore",
+ "domain_pill.their_handle": "S'identificadore suo:",
+ "domain_pill.their_server": "Sa domo digitale sua, in ue istant totu is publicatziones suas.",
+ "domain_pill.username": "Nòmine de utente",
+ "domain_pill.your_handle": "S'identificadore tuo:",
+ "domain_pill.your_server": "Sa domo digitale tua, in ue istant totu is publicatziones tuas. Custa non t'agradat? Tràmuda serbidore in cale si siat momentu e bati·ti fintzas in fatu is sighidores tuos.",
+ "domain_pill.your_username": "S'identificadore ùnicu tuo in custu serbidore. Si podent agatare utentes cun su matessi nòmine de utente in àteros serbidores.",
"embed.instructions": "Inserta custa publicatzione in su situ web tuo copiende su còdighe de suta.",
"embed.preview": "At a aparèssere aici:",
"emoji_button.activity": "Atividade",
+ "emoji_button.clear": "Isbòida",
"emoji_button.custom": "Personalizadu",
"emoji_button.flags": "Banderas",
"emoji_button.food": "Mandigòngiu e bufòngiu",
"emoji_button.label": "Inserta un'emoji",
"emoji_button.nature": "Natura",
- "emoji_button.not_found": "Emojis no!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.not_found": "Perunu emoji agatadu",
"emoji_button.objects": "Ogetos",
"emoji_button.people": "Gente",
"emoji_button.recent": "Impreadu a fitianu",
@@ -171,17 +250,41 @@
"errors.unexpected_crash.report_issue": "Sinnala unu problema",
"explore.search_results": "Resurtados de sa chirca",
"explore.suggested_follows": "Gente",
+ "explore.title": "Esplora",
+ "explore.trending_links": "Noas",
"explore.trending_statuses": "Publicatziones",
"explore.trending_tags": "Etichetas",
+ "filter_modal.added.expired_title": "Filtru iscadidu.",
+ "filter_modal.added.review_and_configure_title": "Cunfiguratziones de filtru",
+ "filter_modal.added.settings_link": "pàgina de cunfiguratzione",
+ "filter_modal.added.short_explanation": "Custa publicatzione est istada agiunta a sa categoria de filtros imbeniente: {title}.",
+ "filter_modal.added.title": "Filtru agiuntu!",
"filter_modal.select_filter.expired": "iscadidu",
+ "filter_modal.select_filter.prompt_new": "Categoria noa: {name}",
+ "filter_modal.select_filter.search": "Chirca o crea",
+ "filter_modal.select_filter.subtitle": "Imprea una categoria chi esistit giai o crea·nde una",
+ "filter_modal.select_filter.title": "Filtra custa publicatzione",
+ "filter_modal.title.status": "Filtra una publicatzione",
+ "filtered_notifications_banner.title": "Notìficas filtradas",
"firehose.all": "Totus",
+ "firehose.local": "Custu serbidore",
+ "firehose.remote": "Àteros serbidores",
"follow_request.authorize": "Autoriza",
"follow_request.reject": "Refuda",
"follow_requests.unlocked_explanation": "Fintzas si su contu tuo no est blocadu, su personale de {domain} at pensadu chi forsis bolias revisionare a manu is rechestas de custos contos.",
+ "follow_suggestions.curated_suggestion": "Sa seletzione de s'iscuadra de traballu",
+ "follow_suggestions.dismiss": "No ammustres prus",
+ "follow_suggestions.featured_longer": "Seberadu a manu dae s'iscuadra de {domain}",
+ "follow_suggestions.friends_of_friends_longer": "Populare intre persones chi sighis",
+ "follow_suggestions.hints.featured": "Custu profilu est istadu seberadu a manu dae s'iscuadra {domain}.",
+ "follow_suggestions.view_all": "Ammustra totu",
"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",
"footer.status": "Istadu",
"generic.saved": "Sarvadu",
"getting_started.heading": "Comente cumintzare",
@@ -194,56 +297,62 @@
"hashtag.column_settings.tag_mode.any": "Cale si siat de custos",
"hashtag.column_settings.tag_mode.none": "Perunu de custos",
"hashtag.column_settings.tag_toggle": "Include etichetas additzionales pro custa colunna",
+ "hashtag.counter_by_accounts": "{count, plural, one {{counter} partetzipante} other {{counter} partetzipantes}}",
+ "hashtag.counter_by_uses": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}",
+ "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}} oe",
"hashtag.follow": "Sighi su hashtag",
+ "hashtag.unfollow": "Non sigas prus s'eticheta",
"home.column_settings.show_reblogs": "Ammustra is cumpartziduras",
"home.column_settings.show_replies": "Ammustra rispostas",
"home.hide_announcements": "Cua annùntzios",
+ "home.pending_critical_update.body": "Atualiza su serbidore Mastodon tuo su prima possìbile.",
+ "home.pending_critical_update.link": "Ammustra is atualizatziones",
+ "home.pending_critical_update.title": "Atualizatzione de seguresa crìtica a disponimentu.",
"home.show_announcements": "Ammustra annùntzios",
- "interaction_modal.description.reply": "Podes arrespondere a custu post con una conta in Mastodon.",
+ "interaction_modal.description.reply": "Podes rispòndere a custa publicatzione cun unu contu de Mastodon.",
"interaction_modal.on_this_server": "In custu serbidore",
"interaction_modal.title.follow": "Sighi a {name}",
- "interaction_modal.title.reply": "Arresponde a su post de {name}",
+ "interaction_modal.title.reply": "Risponde a sa publicatzione de {name}",
"intervals.full.days": "{number, plural, one {# die} other {# dies}}",
"intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
"intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}",
- "keyboard_shortcuts.back": "pro navigare a coa",
- "keyboard_shortcuts.blocked": "pro abèrrere sa lista de persones blocadas",
- "keyboard_shortcuts.boost": "pro cumpartzire",
- "keyboard_shortcuts.column": "pro atzentrare una publicatzione in una de is colunnas",
- "keyboard_shortcuts.compose": "pro atzentrare in s'àrea de cumpositzione de testu",
+ "keyboard_shortcuts.back": "Nàviga a coa",
+ "keyboard_shortcuts.blocked": "Aberi sa lista de persones blocadas",
+ "keyboard_shortcuts.boost": "Potèntzia sa publicatzione",
+ "keyboard_shortcuts.column": "Atzentra sa colunna",
+ "keyboard_shortcuts.compose": "Atzentra s'àrea de cumpositzione de testu",
"keyboard_shortcuts.description": "Descritzione",
- "keyboard_shortcuts.direct": "to open direct messages column",
- "keyboard_shortcuts.down": "pro mòere in bàsciu in sa lista",
- "keyboard_shortcuts.enter": "pro abèrrere una publicatzione",
- "keyboard_shortcuts.federated": "pro abèrrere sa lìnia de tempus federada",
+ "keyboard_shortcuts.direct": "pro abèrrere sa colunna de mèntovos privados",
+ "keyboard_shortcuts.down": "Move in bàsciu in sa lista",
+ "keyboard_shortcuts.enter": "Aberi una publicatzione",
+ "keyboard_shortcuts.favourites": "Aberi sa lista de preferidos",
+ "keyboard_shortcuts.federated": "Aberi sa lìnia de tempus federada",
"keyboard_shortcuts.heading": "Incurtzaduras de tecladu",
- "keyboard_shortcuts.home": "pro abèrrere sa lìnia de tempus printzipale",
+ "keyboard_shortcuts.home": "Aberi sa lìnia de tempus printzipale",
"keyboard_shortcuts.hotkey": "Tecla de atzessu diretu",
- "keyboard_shortcuts.legend": "pro ammustrare custa didascalia",
- "keyboard_shortcuts.local": "pro abèrrere sa lìnia de tempus locale",
- "keyboard_shortcuts.mention": "pro mentovare s'atributzione",
- "keyboard_shortcuts.muted": "pro abèrrere sa lista de persones a sa muda",
- "keyboard_shortcuts.my_profile": "pro abèrrere su profilu tuo",
- "keyboard_shortcuts.notifications": "pro abèrrere sa colunna de notificatziones",
- "keyboard_shortcuts.open_media": "pro abèrrere elementos multimediales",
- "keyboard_shortcuts.pinned": "pro abèrrere sa lista de publicatziones apicadas",
- "keyboard_shortcuts.profile": "pro abèrrere su profilu de s'autore",
- "keyboard_shortcuts.reply": "pro rispòndere",
- "keyboard_shortcuts.requests": "pro abèrrere sa lista de rechestas de sighidura",
- "keyboard_shortcuts.search": "pro atzentrare sa chirca",
- "keyboard_shortcuts.spoilers": "pro ammustrare/cuare su campu AC",
- "keyboard_shortcuts.start": "pro abèrrere sa colunna \"Cumintza\"",
- "keyboard_shortcuts.toggle_hidden": "pro ammustrare o cuare testu de is AC",
- "keyboard_shortcuts.toggle_sensitivity": "pro ammustrare o cuare elementos multimediales",
- "keyboard_shortcuts.toot": "pro cumintzare a iscrìere una publicatzione noa",
- "keyboard_shortcuts.unfocus": "pro essire de s'àrea de cumpositzione de testu o de chirca",
- "keyboard_shortcuts.up": "pro mòere in susu in sa lista",
+ "keyboard_shortcuts.legend": "Ammustra custa didascalia",
+ "keyboard_shortcuts.local": "Aberi sa lìnia de tempus locale",
+ "keyboard_shortcuts.mention": "Mèntova a s'atributzione",
+ "keyboard_shortcuts.muted": "Aberi sa lista de persones a sa muda",
+ "keyboard_shortcuts.my_profile": "Aberi su profilu tuo",
+ "keyboard_shortcuts.notifications": "Aberi sa colunna de notificatziones",
+ "keyboard_shortcuts.open_media": "Aberi is elementos multimediales",
+ "keyboard_shortcuts.pinned": "Aberi sa lista de publicatziones apicadas",
+ "keyboard_shortcuts.profile": "Aberi su profilu de s'autore",
+ "keyboard_shortcuts.reply": "Risponde a sa publicatzioe",
+ "keyboard_shortcuts.requests": "Aberi sa lista de rechestas de sighiduras",
+ "keyboard_shortcuts.search": "Atzentra sa barra de chirca",
+ "keyboard_shortcuts.spoilers": "Ammustra/cua su campu AC",
+ "keyboard_shortcuts.start": "Aberi sa colunna \"Cumintza\"",
+ "keyboard_shortcuts.toggle_hidden": "Ammustra o cua su testu de is AC",
+ "keyboard_shortcuts.toggle_sensitivity": "Ammustra/cua elementos multimediales",
+ "keyboard_shortcuts.toot": "Cumintza a iscrìere una publicatzione noa",
+ "keyboard_shortcuts.unfocus": "Essi de s'àrea de cumpositzione de testu o de chirca",
+ "keyboard_shortcuts.up": "Move in susu in sa lista",
"lightbox.close": "Serra",
- "lightbox.compress": "Cumprime sa casella de visualizatzione de is immàgines",
- "lightbox.expand": "Ismànnia sa casella de visualizatzione de is immàgines",
"lightbox.next": "Imbeniente",
"lightbox.previous": "Pretzedente",
- "limited_account_hint.title": "Custu perfilu dd'ant cuadu is moderadores de {domain}.",
+ "limited_account_hint.title": "Custu profilu est istadu cuadu dae sa moderatzione de {domain}.",
"lists.account.add": "Agiunghe a sa lista",
"lists.account.remove": "Boga dae sa lista",
"lists.delete": "Cantzella sa lista",
@@ -259,14 +368,16 @@
"lists.subheading": "Is listas tuas",
"load_pending": "{count, plural, one {# elementu nou} other {# elementos noos}}",
"loading_indicator.label": "Carrighende…",
- "media_gallery.toggle_visible": "Cua {number, plural, one {immàgine} other {immàgines}}",
"navigation_bar.about": "Informatziones",
"navigation_bar.blocks": "Persones blocadas",
"navigation_bar.bookmarks": "Sinnalibros",
"navigation_bar.community_timeline": "Lìnia de tempus locale",
"navigation_bar.compose": "Cumpone una publicatzione noa",
+ "navigation_bar.direct": "Mentziones privadas",
"navigation_bar.discover": "Iscoberi",
"navigation_bar.domain_blocks": "Domìnios blocados",
+ "navigation_bar.explore": "Esplora",
+ "navigation_bar.favourites": "Preferidos",
"navigation_bar.filters": "Faeddos a sa muda",
"navigation_bar.follow_requests": "Rechestas de sighidura",
"navigation_bar.follows_and_followers": "Gente chi sighis e sighiduras",
@@ -279,18 +390,38 @@
"navigation_bar.public_timeline": "Lìnia de tempus federada",
"navigation_bar.search": "Chirca",
"navigation_bar.security": "Seguresa",
- "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
+ "not_signed_in_indicator.not_signed_in": "Ti depes identificare pro atzèdere a custa resursa.",
+ "notification.admin.sign_up": "{name} at aderidu",
"notification.favourite": "{name} at marcadu comente a preferidu s'istadu tuo",
"notification.follow": "{name} ti sighit",
"notification.follow_request": "{name} at dimandadu de ti sighire",
- "notification.mention": "{name} t'at mentovadu",
+ "notification.moderation-warning.learn_more": "Àteras informatziones",
+ "notification.moderation_warning": "T'ant imbiadu un'avisu de moderatzione",
+ "notification.moderation_warning.action_delete_statuses": "Unas cantas de is publicatziones tuas sunt istadas cantzelladas.",
+ "notification.moderation_warning.action_disable": "Su contu tuo est istadu disativadu.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Unas cantas de is publicatziones tuas sunt istadas marcadas comente sensìbiles.",
+ "notification.moderation_warning.action_none": "Su contu tuo at retzidu un'avisu de moderatzione.",
+ "notification.moderation_warning.action_sensitive": "Is publicatziones tuas ant a èssere marcadas comente sensìbiles dae immoe.",
+ "notification.moderation_warning.action_silence": "Su contu tuo est istadu limitadu.",
+ "notification.moderation_warning.action_suspend": "Su contu tuo est istadu suspèndidu.",
"notification.own_poll": "Sondàgiu acabbadu",
"notification.poll": "Unu sondàgiu in su chi as votadu est acabbadu",
"notification.reblog": "{name} at cumpartzidu sa publicatzione tua",
+ "notification.relationships_severance_event": "Connessiones pèrdidas cun {name}",
+ "notification.relationships_severance_event.learn_more": "Àteras informatziones",
"notification.status": "{name} at publicadu cosa",
+ "notification.update": "{name} at modificadu una publicatzione",
+ "notification_requests.accept": "Atzeta",
+ "notification_requests.dismiss": "Iscarta",
+ "notification_requests.notifications_from": "Notìficas dae {name}",
+ "notification_requests.title": "Notìficas filtradas",
"notifications.clear": "Lìmpia notìficas",
"notifications.clear_confirmation": "Seguru chi boles isboidare in manera permanente totu is notìficas tuas?",
+ "notifications.column_settings.admin.report": "Informes noos:",
"notifications.column_settings.alert": "Notìficas de iscrivania",
+ "notifications.column_settings.favourite": "Preferidos:",
+ "notifications.column_settings.filter_bar.advanced": "Ammustra totu is categorias",
+ "notifications.column_settings.filter_bar.category": "Barra de filtru lestru",
"notifications.column_settings.follow": "Sighiduras noas:",
"notifications.column_settings.follow_request": "Rechestas noas de sighidura:",
"notifications.column_settings.mention": "Mèntovos:",
@@ -300,8 +431,12 @@
"notifications.column_settings.show": "Ammustra in sa colunna",
"notifications.column_settings.sound": "Reprodue unu sonu",
"notifications.column_settings.status": "Publicatziones noas:",
+ "notifications.column_settings.unread_notifications.category": "Notìficas de lèghere",
+ "notifications.column_settings.unread_notifications.highlight": "Evidèntzia is notìficas de lèghere",
+ "notifications.column_settings.update": "Modìficas:",
"notifications.filter.all": "Totus",
"notifications.filter.boosts": "Cumpartziduras",
+ "notifications.filter.favourites": "Preferidos",
"notifications.filter.follows": "Sighende",
"notifications.filter.mentions": "Mèntovos",
"notifications.filter.polls": "Resurtados de su sondàgiu",
@@ -312,27 +447,23 @@
"notifications.permission_denied": "Is notìficas de iscrivania non sunt a disponimentu pro neghe de rechestas de permissu chi sunt istadas dennegadas in antis",
"notifications.permission_denied_alert": "Is notìficas de iscrivania non podent èssere abilitadas, ca su permissu de su navigadore est istadu dennegadu in antis",
"notifications.permission_required": "Is notìficas de iscrivania no sunt a disponimentu ca ammancat su permissu rechèdidu.",
+ "notifications.policy.filter_new_accounts.hint": "Creadu {days, plural, one {erisero} other {in is ùrtimas # dies}}",
+ "notifications.policy.filter_new_accounts_title": "Contos noos",
+ "notifications.policy.filter_not_followers_title": "Gente chi non ti sighit",
+ "notifications.policy.filter_not_following_hint": "Fintzas a cando no donas s'aprovatzione tua",
+ "notifications.policy.filter_not_following_title": "Gente chi non sighis",
"notifications_permission_banner.enable": "Abilita is notìficas de iscrivania",
"notifications_permission_banner.how_to_control": "Pro retzire notìficas cando Mastodon no est abertu, abilita is notìficas de iscrivania. Podes controllare cun pretzisione is castas de interatziones chi ingendrant notìficas de iscrivania pro mèdiu de su butone {icon} in subra, cando sunt abilitadas.",
"notifications_permission_banner.title": "Non ti perdas mai nudda",
- "onboarding.actions.go_to_explore": "See what's trending",
- "onboarding.actions.go_to_home": "Go to your home feed",
- "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
- "onboarding.follows.title": "Popular on Mastodon",
+ "onboarding.compose.template": "Salude #Mastodon!",
"onboarding.profile.display_name": "Nòmine visìbile",
"onboarding.profile.note": "Biografia",
- "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
- "onboarding.start.skip": "Want to skip right ahead?",
- "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
- "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
- "onboarding.steps.publish_status.body": "Say hello to the world.",
- "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
- "onboarding.steps.setup_profile.title": "Customize your profile",
- "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
- "onboarding.steps.share_profile.title": "Share your profile",
+ "onboarding.steps.setup_profile.title": "Personaliza su profilu tuo",
+ "onboarding.steps.share_profile.title": "Cumpartzi su profilu tuo",
"picture_in_picture.restore": "Torra·ddu a ue fiat",
"poll.closed": "Serradu",
"poll.refresh": "Atualiza",
+ "poll.reveal": "Ammustra is resurtados",
"poll.total_people": "{count, plural, one {# persone} other {# persones}}",
"poll.total_votes": "{count, plural, one {# votu} other {# votos}}",
"poll.vote": "Vota",
@@ -342,20 +473,30 @@
"poll_button.remove_poll": "Cantzella su sondàgiu",
"privacy.change": "Modìfica s'istadu de riservadesa",
"privacy.public.short": "Pùblicu",
+ "privacy_policy.last_updated": "Ùrtima atualizatzione: {date}",
+ "privacy_policy.title": "Polìtica de riservadesa",
"recommended": "Cussigiadu",
"refresh": "Atualiza",
"regeneration_indicator.label": "Carrighende…",
"regeneration_indicator.sublabel": "Preparende sa lìnia de tempus printzipale tua.",
"relative_time.days": "{number} dies a oe",
- "relative_time.full.just_now": "immoe etotu",
+ "relative_time.full.days": "{number, plural, one {# die} other {# dies}} a oe",
+ "relative_time.full.hours": "{number, plural, one {# ora} other {# oras}} a immoe",
+ "relative_time.full.just_now": "immoe immoe",
+ "relative_time.full.minutes": "{number, plural, one {# minutu} other {# minutos}} a immoe",
+ "relative_time.full.seconds": "{number, plural, one {# segundu} other {# segundos}} a immoe",
"relative_time.hours": "{number} oras a immoe",
"relative_time.just_now": "immoe",
"relative_time.minutes": "{number} minutos a immoe",
"relative_time.seconds": "{number} segundos a immoe",
"relative_time.today": "oe",
+ "reply_indicator.attachments": "{count, plural, one {# alligongiadu} other {# alligongiados}}",
"reply_indicator.cancel": "Annulla",
+ "reply_indicator.poll": "Sondàgiu",
"report.block": "Bloca",
+ "report.categories.legal": "Giurìdicu",
"report.categories.other": "Àteru",
+ "report.categories.spam": "Àliga",
"report.category.title_account": "profilu",
"report.category.title_status": "publicatzione",
"report.close": "Fatu",
@@ -364,19 +505,31 @@
"report.mute": "A sa muda",
"report.next": "Imbeniente",
"report.placeholder": "Cummentos additzionales",
+ "report.reasons.dislike": "Non mi praghet",
+ "report.reasons.dislike_description": "Est una cosa chi non boles bìdere",
+ "report.reasons.legal": "Illegale",
+ "report.reasons.other": "Un'àtera cosa",
+ "report.reasons.spam": "Est àliga",
"report.submit": "Imbia",
"report.target": "Informende de {target}",
+ "report.unfollow": "Non sigas prus a @{name}",
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
+ "report_notification.categories.legal": "Giurìdicu",
+ "report_notification.categories.legal_sentence": "cuntenutu illegale",
"report_notification.categories.other": "Àteru",
+ "report_notification.categories.other_sentence": "àteru",
+ "report_notification.categories.spam": "Àliga",
"search.placeholder": "Chirca",
"search_popout.user": "utente",
"search_results.accounts": "Profilos",
"search_results.all": "Totus",
"search_results.hashtags": "Etichetas",
"search_results.statuses": "Publicatziones",
+ "server_banner.active_users": "utentes ativos",
"server_banner.administered_by": "Amministradu dae:",
"server_banner.server_stats": "Istatìsticas de su serbidore:",
- "sign_in_banner.sign_in": "Sign in",
+ "sign_in_banner.create_account": "Crea contu",
+ "sign_in_banner.sign_in": "Identificatzione",
"status.admin_account": "Aberi s'interfache de moderatzione pro @{name}",
"status.admin_status": "Aberi custa publicatzione in s'interfache de moderatzione",
"status.block": "Bloca a @{name}",
@@ -387,9 +540,8 @@
"status.delete": "Cantzella",
"status.detailed_status": "Visualizatzione de detàlliu de arresonada",
"status.edit": "Modìfica",
- "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "Afissa",
- "status.filtered": "Filtradu",
+ "status.edited_x_times": "Modificadu {count, plural, one {{count} # borta} other {{count} bortas}}",
+ "status.favourites": "{count, plural, one {preferidu} other {preferidos}}",
"status.load_more": "Càrriga·nde àteros",
"status.media_hidden": "Elementos multimediales cuados",
"status.mention": "Mèntova a @{name}",
@@ -411,11 +563,9 @@
"status.report": "Sinnala @{name}",
"status.sensitive_warning": "Cuntenutu sensìbile",
"status.share": "Cumpartzi",
- "status.show_less": "Ammustra·nde prus pagu",
"status.show_less_all": "Ammustra·nde prus pagu pro totus",
- "status.show_more": "Ammustra·nde prus",
"status.show_more_all": "Ammustra·nde prus pro totus",
- "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
+ "status.title.with_attachments": "{user} at publicadu {attachmentCount, plural, one {un'alligongiadu} other {{attachmentCount} alligongiados}}",
"status.unmute_conversation": "Torra a ativare s'arresonada",
"status.unpin": "Boga dae pitzu de su profilu",
"subscribed_languages.save": "Sarva is modìficas",
@@ -426,11 +576,7 @@
"time_remaining.minutes": "{number, plural, one {abarrat # minutu} other {abarrant # minutos}}",
"time_remaining.moments": "Abarrant pagu momentos",
"time_remaining.seconds": "{number, plural, one {abarrat # segundu} other {abarrant # segundos}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} dae àteros serbidores non benint ammustrados.",
- "timeline_hint.resources.followers": "Sighiduras",
- "timeline_hint.resources.follows": "Sighende",
- "timeline_hint.resources.statuses": "Publicatziones prus betzas",
- "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
+ "trends.counter_by_accounts": "{count, plural, one {{counter} persone} other {{counter} persones}} in {days, plural, one {s'ùrtima die} other {{days} is ùrtimas dies}}",
"trends.trending_now": "Est tendèntzia immoe",
"ui.beforeunload": "S'abbotzu tuo at a èssere pèrdidu si essis dae Mastodon.",
"units.short.billion": "{count}Mrd",
@@ -441,10 +587,10 @@
"upload_error.limit": "Lìmite de càrriga de archìvios barigadu.",
"upload_error.poll": "Non si permitit s'imbiu de archìvios in is sondàgios.",
"upload_form.audio_description": "Descritzione pro persones cun pèrdida auditiva",
- "upload_form.description": "Descritzione pro persones cun problemas visuales",
+ "upload_form.description": "Descritzione pro persones cun pèrdida visuale",
"upload_form.edit": "Modìfica",
"upload_form.thumbnail": "Càmbia sa miniadura",
- "upload_form.video_description": "Descritzione pro persones cun pèrdida auditiva o problemas visuales",
+ "upload_form.video_description": "Descritzione pro persones cun pèrdida auditiva o visuale",
"upload_modal.analyzing_picture": "Analizende immàgine…",
"upload_modal.apply": "Àplica",
"upload_modal.choose_image": "Sèbera un'immàgine",
diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json
index 53501a59370..c14f1cc51ac 100644
--- a/app/javascript/mastodon/locales/sco.json
+++ b/app/javascript/mastodon/locales/sco.json
@@ -11,14 +11,12 @@
"about.not_available": "This information haesnae been made available on this server.",
"about.powered_by": "Decentralised social media pooert bi {mastodon}",
"about.rules": "Server rules",
- "account.account_note_header": "Note",
"account.add_or_remove_from_list": "Add or Remuive frae lists",
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.block": "Dingie @{name}",
"account.block_domain": "Dingie domain {domain}",
"account.blocked": "Dingied",
- "account.browse_more_on_origin_server": "Luik mair oan the oreeginal profile",
"account.cancel_follow_request": "Resile follae requeest",
"account.disable_notifications": "Stap notifyin me whan @{name} posts",
"account.domain_blocked": "Domain dingied",
@@ -31,9 +29,7 @@
"account.follow": "Follae",
"account.followers": "Follaers",
"account.followers.empty": "Naebody follaes this uiser yit.",
- "account.followers_counter": "{count, plural, one {{counter} Follaer} other {{counter} Follaers}}",
"account.following": "Follaein",
- "account.following_counter": "{count, plural, one {{counter} Follaein} other {{counter} Follaein}}",
"account.follows.empty": "This uiser disnae follae oniebody yit.",
"account.go_to_profile": "Gang tae profile",
"account.hide_reblogs": "Dinnae shaw heezes fae @{name}",
@@ -53,7 +49,6 @@
"account.requested": "Haudin fir approval. Chap tae cancel follae request",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Shaw heezes frae @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
"account.unblock": "Undingie @{name}",
"account.unblock_domain": "Undingie domain {domain}",
"account.unblock_short": "Undingie",
@@ -132,15 +127,12 @@
"compose_form.spoiler.unmarked": "Pit on a content warnin",
"confirmation_modal.cancel": "Stap",
"confirmations.block.confirm": "Dingie",
- "confirmations.cancel_follow_request.confirm": "Tak back yer request",
- "confirmations.cancel_follow_request.message": "Ye shair thit ye'r wantin tae tak back yer request fir tae follae {name}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "Ye shair thit ye'r wantin tae delete this post?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Ye shair thit ye'r wantin fir tae delete this post fir ever?",
"confirmations.discard_edit_media.confirm": "Fling awa",
"confirmations.discard_edit_media.message": "Ye'v chynges tae the media description or preview thit ye'v no saved, fling them awa onie weys?",
- "confirmations.domain_block.message": "Ye a hunner percent shair thit ye'r wantin tae dingie the hail {domain}? In maist cases a haunfae tairgtit dingies an wheeshts are eneuch an preferit. Ye wullnae see content fae that domain in onie public timelines or in yer notes. Yer follaers fae that domain wull be taen awa.",
"confirmations.logout.confirm": "Log oot",
"confirmations.logout.message": "Ye shair thit ye'r wantin tae log oot?",
"confirmations.mute.confirm": "Wheesht",
@@ -292,8 +284,6 @@
"keyboard_shortcuts.unfocus": "Unfocus scrieve textarea/seirch",
"keyboard_shortcuts.up": "Muive up in the list",
"lightbox.close": "Shut",
- "lightbox.compress": "Compress image view box",
- "lightbox.expand": "Expand image view box",
"lightbox.next": "Neist",
"lightbox.previous": "Last ane",
"limited_account_hint.action": "Shaw profile onieweys",
@@ -312,7 +302,6 @@
"lists.search": "Seirch amang the fowk ye ken",
"lists.subheading": "Yer lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
- "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
"moved_to_account_banner.text": "Yer accoont {disabledAccount} is disabilt the noo acause ye flittit tae {movedToAccount}.",
"navigation_bar.about": "Aboot",
"navigation_bar.blocks": "Dingied uisers",
@@ -339,9 +328,7 @@
"notification.admin.sign_up": "{name} signed up",
"notification.follow": "{name} follaed ye",
"notification.follow_request": "{name} is wantin tae follae ye",
- "notification.mention": "{name} menshied ye",
"notification.own_poll": "Yer poll is duin",
- "notification.poll": "A poll thit ye votit in is duin",
"notification.reblog": "{name} heezed yer post",
"notification.status": "{name} juist postit",
"notification.update": "{name} editit a post",
@@ -485,9 +472,7 @@
"status.detailed_status": "Detailt conversation view",
"status.edit": "Edit",
"status.edited_x_times": "Editit {count, plural, one {{count} time} other {{count} times}}",
- "status.embed": "Embed",
"status.filter": "Filter this post",
- "status.filtered": "Filtert",
"status.history.created": "{name} creatit {date}",
"status.history.edited": "{name} editit {date}",
"status.load_more": "Load mair",
@@ -512,10 +497,7 @@
"status.report": "Clype @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Shaire",
- "status.show_filter_reason": "Shaw onieweys",
- "status.show_less": "Shaw less",
"status.show_less_all": "Shaw less fir aw",
- "status.show_more": "Shaw mair",
"status.show_more_all": "Shaw mair fir aw",
"status.show_original": "Shaw original",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -533,10 +515,6 @@
"time_remaining.minutes": "{number, plural, one {# minute} other {# minties}} left",
"time_remaining.moments": "Moments remainin",
"time_remaining.seconds": "{number, plural, one {# saicont} other {# saiconts}} left",
- "timeline_hint.remote_resource_not_displayed": "{resource} fae ither servers urnae displayed.",
- "timeline_hint.resources.followers": "Follaers",
- "timeline_hint.resources.follows": "Follaes",
- "timeline_hint.resources.statuses": "Aulder posts",
"trends.counter_by_accounts": "{count, plural, one {{counter} body} other {{counter} fowk}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "Trendin noo",
"ui.beforeunload": "Yer draft wull be lost if ye lea Mastodon.",
diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json
index 22320daefc1..93ce9dd7e27 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -4,7 +4,6 @@
"about.disclaimer": "මාස්ටඩන් යනු නිදහස් විවෘත මූලාශ්ර මෘදුකාංගයකි. එය මාස්ටඩන් gGmbH හි වෙළඳ නාමයකි.",
"about.domain_blocks.suspended.title": "අත්හිටුවා ඇත",
"about.rules": "සේවාදායකයේ නීති",
- "account.account_note_header": "සටහන",
"account.add_or_remove_from_list": "ලැයිස්තු වලින් එකතු හෝ ඉවත් කරන්න",
"account.badges.bot": "ස්වයංක්රියයි",
"account.badges.group": "සමූහය",
@@ -12,7 +11,6 @@
"account.block_domain": "{domain} වසම අවහිර කරන්න",
"account.block_short": "අවහිර",
"account.blocked": "අවහිර කර ඇත",
- "account.browse_more_on_origin_server": "මුල් පැතිකඩෙහි තවත් පිරික්සන්න",
"account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් නොදෙන්න",
"account.domain_blocked": "වසම අවහිර කර ඇත",
"account.edit_profile": "පැතිකඩ සංස්කරණය",
@@ -23,9 +21,7 @@
"account.follow": "අනුගමනය",
"account.followers": "අනුගාමිකයින්",
"account.followers.empty": "කිසිවෙක් අනුගමනය කර නැත.",
- "account.followers_counter": "{count, plural, one {අනුගාමිකයින් {counter}} other {අනුගාමිකයින් {counter}}}",
"account.following": "අනුගමන",
- "account.following_counter": "{count, plural, one {අනුගමන {counter}} other {අනුගමන {counter}}}",
"account.follows.empty": "තවමත් කිසිවෙක් අනුගමනය නොකරයි.",
"account.go_to_profile": "පැතිකඩට යන්න",
"account.joined_short": "එක් වූ දිනය",
@@ -35,11 +31,11 @@
"account.mute": "@{name} නිහඬ කරන්න",
"account.mute_short": "නිහඬ",
"account.muted": "නිහඬ කළා",
+ "account.open_original_page": "මුල් පිටුව අරින්න",
"account.posts": "ලිපි",
"account.posts_with_replies": "ලිපි සහ පිළිතුරු",
"account.report": "@{name} වාර්තා කරන්න",
"account.share": "@{name} ගේ පැතිකඩ බෙදාගන්න",
- "account.statuses_counter": "{count, plural, one {ලිපි {counter}} other {ලිපි {counter}}}",
"account.unblock": "@{name} අනවහිර කරන්න",
"account.unblock_domain": "{domain} වසම අනවහිර කරන්න",
"account.unblock_short": "අනවහිර",
@@ -54,6 +50,10 @@
"alert.unexpected.title": "අපොයි!",
"announcement.announcement": "නිවේදනය",
"audio.hide": "හඬපටය සඟවන්න",
+ "block_modal.show_less": "අඩුවෙන් පෙන්වන්න",
+ "block_modal.show_more": "තව පෙන්වන්න",
+ "block_modal.they_will_know": "අවහිර කළ බව දකිනු ඇත.",
+ "block_modal.title": "අවහිර කරන්නද?",
"boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට {combo} එබීමට හැකිය",
"bundle_column_error.copy_stacktrace": "දෝෂ වාර්තාවේ පිටපතක්",
"bundle_column_error.error.title": "අපොයි!",
@@ -103,10 +103,13 @@
"compose_form.lock_disclaimer.lock": "අගුළු දමා ඇත",
"compose_form.placeholder": "ඔබගේ සිතුවිලි මොනවාද?",
"compose_form.poll.duration": "මත විමසීමේ කාලය",
+ "compose_form.poll.option_placeholder": "විකල්පය {number}",
"compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයකට මත විමසුම වෙනස් කරන්න",
"compose_form.poll.switch_to_single": "තනි තේරීමකට මත විමසුම වෙනස් කරන්න",
+ "compose_form.poll.type": "ශෛලිය",
"compose_form.publish": "ප්රකාශනය",
"compose_form.publish_form": "නව ලිපිය",
+ "compose_form.reply": "පිළිතුරු",
"compose_form.spoiler.marked": "අන්තර්ගත අවවාදය ඉවත් කරන්න",
"compose_form.spoiler.unmarked": "අන්තර්ගත අවවාදයක් එක් කරන්න",
"confirmation_modal.cancel": "අවලංගු",
@@ -126,6 +129,7 @@
"conversation.mark_as_read": "කියවූ බව යොදන්න",
"conversation.open": "සංවාදය බලන්න",
"conversation.with": "{names} සමඟ",
+ "copy_icon_button.copied": "පසුරුපුවරුවට පිටපත් විය",
"copypaste.copied": "පිටපත් විය",
"copypaste.copy_to_clipboard": "පසුරුපුවරුවට පිටපතක්",
"directory.federated": "දන්නා ෆෙඩිවර්ස් වෙතින්",
@@ -133,6 +137,9 @@
"directory.new_arrivals": "නව පැමිණීම්",
"directory.recently_active": "මෑත දී සක්රියයි",
"disabled_account_banner.account_settings": "ගිණුමේ සැකසුම්",
+ "dismissable_banner.dismiss": "ඉවතලන්න",
+ "domain_pill.server": "සේවාදායකය",
+ "domain_pill.username": "පරිශ්රීලක නාමය",
"embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම ලිපිය ඔබගේ අඩවියට කාවද්දන්න.",
"embed.preview": "මෙන්න එය පෙනෙන අන්දම:",
"emoji_button.activity": "ක්රියාකාරකම",
@@ -181,9 +188,13 @@
"filter_modal.select_filter.search": "සොයන්න හෝ සාදන්න",
"filter_modal.select_filter.title": "මෙම ලිපිය පෙරන්න",
"filter_modal.title.status": "ලිපියක් පෙරන්න",
+ "filtered_notifications_banner.title": "පෙරූ දැනුම්දීම්",
+ "firehose.all": "සියල්ල",
"firehose.local": "මෙම සේවාදායකය",
"firehose.remote": "වෙනත් සේවාදායක",
"follow_request.reject": "ප්රතික්ෂේප",
+ "follow_suggestions.dismiss": "නැවත පෙන්වන්න එපා",
+ "follow_suggestions.view_all": "සියල්ල බලන්න",
"footer.about": "පිළිබඳව",
"footer.directory": "පැතිකඩ නාමාවලිය",
"footer.get_app": "යෙදුම ගන්න",
@@ -205,6 +216,7 @@
"home.pending_critical_update.link": "යාවත්කාල බලන්න",
"home.show_announcements": "නිවේදන පෙන්වන්න",
"interaction_modal.login.action": "මුලට ගෙනයන්න",
+ "interaction_modal.on_another_server": "වෙනත් සේවාදායකයක",
"interaction_modal.on_this_server": "මෙම සේවාදායකයෙහි",
"interaction_modal.title.favourite": "{name}ගේ ලිපිය ප්රිය කරන්න",
"interaction_modal.title.follow": "{name} අනුගමනය",
@@ -273,9 +285,7 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.favourite": "{name} ඔබගේ ලිපියට ප්රිය කළා",
"notification.follow": "{name} ඔබව අනුගමනය කළා",
- "notification.mention": "{name} ඔබව සඳහන් කර ඇත",
"notification.own_poll": "ඔබගේ මත විමසුම නිමයි",
- "notification.poll": "ඔබ ඡන්දය දුන් මත විමසුමක් නිමයි",
"notification.status": "{name} දැන් පළ කළා",
"notification.update": "{name} ලිපියක් සංස්කරණය කළා",
"notifications.clear": "දැනුම්දීම් මකන්න",
@@ -405,10 +415,7 @@
"status.detailed_status": "විස්තරාත්මක සංවාද දැක්ම",
"status.edit": "සංස්කරණය",
"status.edited_x_times": "සංශෝධිතයි {count, plural, one {වාර {count}} other {වාර {count}}}",
- "status.embed": "කාවැද්දූ",
"status.filter": "මෙම ලිපිය පෙරන්න",
- "status.filtered": "පෙරන ලද",
- "status.hide": "ලිපිය සඟවන්න",
"status.history.created": "{name} නිර්මාණය {date}",
"status.history.edited": "{name} සංස්කරණය {date}",
"status.load_more": "තව පූරණය",
@@ -427,10 +434,7 @@
"status.report": "@{name} වාර්තා කරන්න",
"status.sensitive_warning": "සංවේදී අන්තර්ගතයකි",
"status.share": "බෙදාගන්න",
- "status.show_filter_reason": "කෙසේ වුවද පෙන්වන්න",
- "status.show_less": "අඩුවෙන් පෙන්වන්න",
"status.show_less_all": "සියල්ල අඩුවෙන් පෙන්වන්න",
- "status.show_more": "තවත් පෙන්වන්න",
"status.show_more_all": "සියල්ල වැඩියෙන් පෙන්වන්න",
"status.translate": "පරිවර්තනය",
"status.translated_from_with": "{provider} මගින් {lang} භාෂාවෙන් පරිවර්තනය කර ඇත",
@@ -444,10 +448,6 @@
"time_remaining.hours": "{number, plural, one {පැය #} other {පැය #}} ක් ඉතිරිය",
"time_remaining.minutes": "{number, plural, one {විනාඩි #} other {විනාඩි #}} ක් ඉතිරිය",
"time_remaining.seconds": "{number, plural, one {තත්පර #} other {තත්පර #}} ක් ඉතිරිය",
- "timeline_hint.remote_resource_not_displayed": "වෙනත් සේවාදායකයන්ගෙන් {resource} දර්ශනය නොවේ.",
- "timeline_hint.resources.followers": "අනුගාමිකයින්",
- "timeline_hint.resources.follows": "අනුගමන",
- "timeline_hint.resources.statuses": "පරණ ලිපි",
"trends.trending_now": "දැන් නැගී එන",
"ui.beforeunload": "ඔබ මාස්ටඩන් හැර ගියහොත් කටුපිටපත අහිමි වේ.",
"units.short.billion": "{count}බී",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 4c152a21434..c989a7314c4 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -11,7 +11,7 @@
"about.not_available": "Tieto informácie neboli sprístupnené na tomto serveri.",
"about.powered_by": "Decentralizovaná sociálna sieť na základe technológie {mastodon}",
"about.rules": "Pravidlá servera",
- "account.account_note_header": "Poznámka",
+ "account.account_note_header": "Osobná poznámka",
"account.add_or_remove_from_list": "Pridať alebo odobrať zo zoznamov",
"account.badges.bot": "Bot",
"account.badges.group": "Skupina",
@@ -19,7 +19,6 @@
"account.block_domain": "Blokovať doménu {domain}",
"account.block_short": "Blokovať",
"account.blocked": "Účet blokovaný",
- "account.browse_more_on_origin_server": "Zobraziť viac na pôvodnom profile",
"account.cancel_follow_request": "Zrušiť žiadosť o sledovanie",
"account.copy": "Skopírovať odkaz na profil",
"account.direct": "Súkromne označiť @{name}",
@@ -35,9 +34,7 @@
"account.follow_back": "Sledovať späť",
"account.followers": "Sledovatelia",
"account.followers.empty": "Tento účet ešte nikto nesleduje.",
- "account.followers_counter": "{count, plural, one {{counter} sledujúci účet} few {{counter} sledujúce účty} many {{counter} sledujúcich účtov} other {{counter} sledujúcich účtov}}",
"account.following": "Sledovaný účet",
- "account.following_counter": "{count, plural, one {{counter} sledovaný účet} few {{counter} sledované účty} many {{counter} sledovaných účtov} other {{counter} sledovaných účtov}}",
"account.follows.empty": "Tento účet ešte nikoho nesleduje.",
"account.go_to_profile": "Prejsť na profil",
"account.hide_reblogs": "Skryť zdieľania od @{name}",
@@ -63,7 +60,6 @@
"account.requested_follow": "{name} vás chce sledovať",
"account.share": "Zdieľaj profil @{name}",
"account.show_reblogs": "Zobrazovať zdieľania od @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}}",
"account.unblock": "Odblokovať @{name}",
"account.unblock_domain": "Odblokovať doménu {domain}",
"account.unblock_short": "Odblokovať",
@@ -91,8 +87,12 @@
"audio.hide": "Skryť zvuk",
"block_modal.show_less": "Zobraziť menej",
"block_modal.show_more": "Zobraziť viac",
+ "block_modal.they_cant_mention": "Nemôžu ťa spomenúť, alebo nasledovať.",
+ "block_modal.they_will_know": "Môžu vidieť, že sú zablokovaní/ý.",
"block_modal.title": "Blokovať užívateľa?",
+ "block_modal.you_wont_see_mentions": "Neuvidíš príspevky, ktoré ich spomínajú.",
"boost_modal.combo": "Nabudúce môžete preskočiť stlačením {combo}",
+ "boost_modal.reblog": "Vyzdvihnúť príspevok?",
"bundle_column_error.copy_stacktrace": "Kopírovať chybovú hlášku",
"bundle_column_error.error.body": "Požadovanú stránku nebolo možné vykresliť. Môže to byť spôsobené chybou v našom kóde alebo problémom s kompatibilitou prehliadača.",
"bundle_column_error.error.title": "Ale nie!",
@@ -164,27 +164,32 @@
"compose_form.spoiler_placeholder": "Varovanie o obsahu (voliteľné)",
"confirmation_modal.cancel": "Zruš",
"confirmations.block.confirm": "Zablokovať",
- "confirmations.cancel_follow_request.confirm": "Stiahnuť žiadosť",
- "confirmations.cancel_follow_request.message": "Určite chcete stiahnuť svoju žiadosť o sledovanie {name}?",
"confirmations.delete.confirm": "Vymazať",
"confirmations.delete.message": "Určite chcete tento príspevok vymazať?",
+ "confirmations.delete.title": "Vymazať príspevok?",
"confirmations.delete_list.confirm": "Vymazať",
"confirmations.delete_list.message": "Určite chcete tento zoznam trvalo vymazať?",
+ "confirmations.delete_list.title": "Vymazať zoznam?",
"confirmations.discard_edit_media.confirm": "Zahodiť",
"confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?",
- "confirmations.domain_block.confirm": "Blokovať server",
- "confirmations.domain_block.message": "Určite chcete blokovať celú doménu {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych účtov, čo aj odporúčame. Obsah z tejto domény neuvidíte v žiadnej verejnej časovej osi ani v upozorneniach. Vaši sledujúci pochádzajúci z tejto domény budú odstránení.",
"confirmations.edit.confirm": "Upraviť",
"confirmations.edit.message": "Úpravou prepíšete príspevok, ktorý máte rozpísaný. Určite chcete pokračovať?",
+ "confirmations.edit.title": "Prepísať príspevok?",
"confirmations.logout.confirm": "Odhlásiť sa",
"confirmations.logout.message": "Určite sa chcete odhlásiť?",
+ "confirmations.logout.title": "Odhlásiť sa?",
"confirmations.mute.confirm": "Stíšiť",
"confirmations.redraft.confirm": "Vymazať a prepísať",
"confirmations.redraft.message": "Určite chcete tento príspevok vymazať a prepísať? Prídete o jeho zdieľania a ohviezdičkovania a odpovede na pôvodný príspevok budú odlúčené.",
+ "confirmations.redraft.title": "Vymazať a prepísať príspevok?",
"confirmations.reply.confirm": "Odpovedať",
"confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?",
+ "confirmations.reply.title": "Prepísať príspevok?",
"confirmations.unfollow.confirm": "Prestať sledovať",
"confirmations.unfollow.message": "Určite chcete prestať sledovať {name}?",
+ "confirmations.unfollow.title": "Prestať sledovať užívateľa?",
+ "content_warning.hide": "Skryť príspevok",
+ "content_warning.show": "Aj tak zobraziť",
"conversation.delete": "Vymazať konverzáciu",
"conversation.mark_as_read": "Označiť ako prečítanú",
"conversation.open": "Zobraziť konverzáciu",
@@ -206,7 +211,13 @@
"dismissable_banner.public_timeline": "Toto sú najnovšie verejné príspevky od účtov na sociálnej sieti, ktoré sú sledované účtami z {domain}.",
"domain_block_modal.block": "Blokovať server",
"domain_block_modal.block_account_instead": "Namiesto toho zablokuj @{name}",
+ "domain_block_modal.they_can_interact_with_old_posts": "Ľudia z tohto servera môžu interaktovať s tvojimi starými príspevkami.",
+ "domain_block_modal.they_cant_follow": "Nikto z tohoto servera ťa nemôže nasledovať.",
+ "domain_block_modal.they_wont_know": "Nebude vedieť, že bol/a zablokovaný/á.",
"domain_block_modal.title": "Blokovať doménu?",
+ "domain_block_modal.you_will_lose_followers": "Všetci tvoji nasledovatelia z tohto servera budú odstránení.",
+ "domain_block_modal.you_wont_see_posts": "Neuvidíš príspevky, ani oboznámenia od užívateľov na tomto serveri.",
+ "domain_pill.activitypub_like_language": "ActivityPub je ako jazyk, ktorým Mastodon hovorí s ostatnými sociálnymi sieťami.",
"domain_pill.server": "Server",
"domain_pill.their_server": "Ich digitálny domov, kde žijú všetky ich príspevky.",
"domain_pill.username": "Používateľské meno",
@@ -277,7 +288,7 @@
"filter_modal.select_filter.subtitle": "Použite existujúcu kategóriu alebo vytvorte novú",
"filter_modal.select_filter.title": "Filtrovanie tohto príspevku",
"filter_modal.title.status": "Filtrovanie príspevku",
- "filtered_notifications_banner.pending_requests": "Oboznámenia od {count, plural, =0 {nikoho} one {jedného človeka} other {# ľudí}} čo môžeš poznať",
+ "filter_warning.matches_filter": "Zhody triedenia “{title}”",
"filtered_notifications_banner.title": "Filtrované oznámenia",
"firehose.all": "Všetko",
"firehose.local": "Tento server",
@@ -331,6 +342,7 @@
"home.pending_critical_update.link": "Zobraziť aktualizácie",
"home.pending_critical_update.title": "Je dostupná kritická bezpečnostná aktualizácia.",
"home.show_announcements": "Zobraziť oznámenia",
+ "ignore_notifications_modal.ignore": "Ignoruj upozornenia",
"interaction_modal.description.favourite": "S účtom na Mastodone môžete tento príspevok ohviezdičkovať, tak dať autorovi vedieť, že sa vám páči, a uložiť si ho na neskôr.",
"interaction_modal.description.follow": "S účtom na Mastodone môžete {name} sledovať a vidieť ich príspevky vo svojom domovskom kanáli.",
"interaction_modal.description.reblog": "S účtom na Mastodone môžete tento príspevok zdeľať so svojimi sledovateľmi.",
@@ -384,8 +396,6 @@
"keyboard_shortcuts.unfocus": "Odísť z textového poľa",
"keyboard_shortcuts.up": "Posunúť sa vyššie v zozname",
"lightbox.close": "Zatvoriť",
- "lightbox.compress": "Zmenšiť náhľad obrázku",
- "lightbox.expand": "Rozšíriť náhľad obrázku",
"lightbox.next": "Ďalej",
"lightbox.previous": "Späť",
"limited_account_hint.action": "Aj tak zobraziť profil",
@@ -408,7 +418,6 @@
"lists.subheading": "Vaše zoznamy",
"load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položiek} other {# nových položiek}}",
"loading_indicator.label": "Načítavanie…",
- "media_gallery.toggle_visible": "{number, plural, one {Skryť obrázok} other {Skryť obrázky}}",
"moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálne deaktivovaný, pretože ste sa presunuli na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ukryť z upozornení",
"mute_modal.hide_options": "Skryť možnosti",
@@ -416,6 +425,7 @@
"mute_modal.show_options": "Zobraziť možnosti",
"mute_modal.title": "Stíšiť užívateľa?",
"navigation_bar.about": "O tomto serveri",
+ "navigation_bar.administration": "Spravovanie",
"navigation_bar.advanced_interface": "Otvoriť v pokročilom webovom rozhraní",
"navigation_bar.blocks": "Blokované účty",
"navigation_bar.bookmarks": "Záložky",
@@ -432,6 +442,7 @@
"navigation_bar.follows_and_followers": "Sledovania a sledovatelia",
"navigation_bar.lists": "Zoznamy",
"navigation_bar.logout": "Odhlásiť sa",
+ "navigation_bar.moderation": "Moderovanie",
"navigation_bar.mutes": "Stíšené účty",
"navigation_bar.opened_in_classic_interface": "Príspevky, účty a iné špeciálne stránky sú predvolene otvárané v klasickom webovom rozhraní.",
"navigation_bar.personal": "Osobné",
@@ -442,17 +453,22 @@
"navigation_bar.security": "Zabezpečenie",
"not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, prihláste sa.",
"notification.admin.report": "Účet {name} nahlásil {target}",
+ "notification.admin.report_statuses_other": "{name} nahlásil/a {target}",
"notification.admin.sign_up": "Nová registráciu účtu {name}",
"notification.favourite": "{name} hviezdičkuje váš príspevok",
"notification.follow": "{name} vás sleduje",
"notification.follow_request": "{name} vás žiada sledovať",
- "notification.mention": "{name} vás spomína",
+ "notification.label.mention": "Zmienka",
+ "notification.label.private_mention": "Súkromná zmienka",
+ "notification.label.private_reply": "Súkromná odpoveď",
+ "notification.label.reply": "Odpoveď",
+ "notification.mention": "Zmienka",
"notification.moderation-warning.learn_more": "Zisti viac",
+ "notification.moderation_warning.action_delete_statuses": "Niektoré z tvojich príspevkov boli odstránené.",
"notification.moderation_warning.action_disable": "Tvoj účet bol vypnutý.",
"notification.moderation_warning.action_silence": "Tvoj účet bol obmedzený.",
"notification.moderation_warning.action_suspend": "Tvoj účet bol pozastavený.",
"notification.own_poll": "Vaša anketa sa skončila",
- "notification.poll": "Anketa, v ktorej ste hlasovali, sa skončila",
"notification.reblog": "{name} zdieľa váš príspevok",
"notification.relationships_severance_event": "Stratené prepojenia s {name}",
"notification.relationships_severance_event.account_suspension": "Správca z {from} pozastavil/a {target}, čo znamená, že od nich viac nemôžeš dostávať aktualizácie, alebo s nimi interaktovať.",
@@ -461,10 +477,14 @@
"notification.update": "{name} upravuje príspevok",
"notification_requests.accept": "Prijať",
"notification_requests.dismiss": "Zamietnuť",
+ "notification_requests.edit_selection": "Uprav",
+ "notification_requests.exit_selection": "Hotovo",
"notification_requests.notifications_from": "Oboznámenia od {name}",
"notification_requests.title": "Filtrované oboznámenia",
+ "notification_requests.view": "Zobraz upozornenia",
"notifications.clear": "Vyčistiť upozornenia",
"notifications.clear_confirmation": "Určite chcete nenávratne odstrániť všetky svoje upozornenia?",
+ "notifications.clear_title": "Vyčistiť upozornenia?",
"notifications.column_settings.admin.report": "Nové hlásenia:",
"notifications.column_settings.admin.sign_up": "Nové registrácie:",
"notifications.column_settings.alert": "Upozornenia na ploche",
@@ -495,11 +515,13 @@
"notifications.permission_denied": "Upozornenia na ploche sú nedostupné pre už skôr zamietnutú požiadavku prehliadača",
"notifications.permission_denied_alert": "Upozornenia na ploche nemôžu byť zapnuté, pretože požiadavka prehliadača bola už skôr zamietnutá",
"notifications.permission_required": "Upozornenia na ploche sú nedostupné, pretože neboli udelené potrebné povolenia.",
+ "notifications.policy.drop": "Ignoruj",
+ "notifications.policy.filter": "Triediť",
+ "notifications.policy.filter_limited_accounts_title": "Moderované účty",
"notifications.policy.filter_new_accounts_title": "Nové účty",
"notifications.policy.filter_not_followers_title": "Ľudia, ktorí ťa nenasledujú",
"notifications.policy.filter_not_following_title": "Ľudia, ktorých nenasleduješ",
"notifications.policy.filter_private_mentions_title": "Nevyžiadané priame spomenutia",
- "notifications.policy.title": "Filtrovať oznámenia od…",
"notifications_permission_banner.enable": "Povoliť upozornenia na ploche",
"notifications_permission_banner.how_to_control": "Ak chcete dostávať upozornenia, keď Mastodon nie je otvorený, povoľte upozornenia na ploche. Po ich zapnutí môžete presne kontrolovať, ktoré typy interakcií generujú upozornenia na ploche, a to prostredníctvom tlačidla {icon} vyššie.",
"notifications_permission_banner.title": "Nenechajte si nič ujsť",
@@ -626,9 +648,12 @@
"report.unfollow_explanation": "Tento účet sledujete. Ak už nechcete vidieť jeho príspevky vo svojom domovskom kanáli, prestaňte ho sledovať.",
"report_notification.attached_statuses": "{count, plural, one {{count} príspevok} few {{count} príspevky} other {{count} príspevkov}} ako príloha",
"report_notification.categories.legal": "Právne",
+ "report_notification.categories.legal_sentence": "nelegálny obsah",
"report_notification.categories.other": "Ostatné",
+ "report_notification.categories.other_sentence": "ostatné",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Porušenie pravidla",
+ "report_notification.categories.violation_sentence": "porušenie pravidla",
"report_notification.open": "Otvoriť hlásenie",
"search.no_recent_searches": "Žiadne nedávne vyhľadávania",
"search.placeholder": "Hľadať",
@@ -675,11 +700,8 @@
"status.edit": "Upraviť",
"status.edited": "Naposledy upravený {date}",
"status.edited_x_times": "Upravený {count, plural, other {{count}×}}",
- "status.embed": "Vložiť",
"status.favourite": "Ohviezdičkované",
"status.filter": "Filtrovanie tohto príspevku",
- "status.filtered": "Filtrované",
- "status.hide": "Skryť príspevok",
"status.history.created": "Vytvorené účtom {name} {date}",
"status.history.edited": "Upravené účtom {name} {date}",
"status.load_more": "Načitať viac",
@@ -706,10 +728,7 @@
"status.report": "Nahlásiť @{name}",
"status.sensitive_warning": "Citlivý obsah",
"status.share": "Zdieľať",
- "status.show_filter_reason": "Aj tak zobraziť",
- "status.show_less": "Zobraziť menej",
"status.show_less_all": "Všetkým zobraziť menej",
- "status.show_more": "Zobraziť viac",
"status.show_more_all": "Všetkým zobraziť viac",
"status.show_original": "Zobraziť originál",
"status.title.with_attachments": "Účet {user} nahral {attachmentCount, plural, one {prílohu} few {{attachmentCount} prílohy} many {{attachmentCount} príloh} other {{attachmentCount} príloh}}",
@@ -728,10 +747,6 @@
"time_remaining.minutes": "Ostáva{number, plural, one { # minúta} few {jú # minúty} many { # minút} other { # minút}}",
"time_remaining.moments": "Ostáva už iba chviľka",
"time_remaining.seconds": "Ostáva{number, plural, one { # sekunda} few {jú # sekundy} many { # sekúnd} other { # sekúnd}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} z iných serverov sa nezobrazia.",
- "timeline_hint.resources.followers": "Sledujúci",
- "timeline_hint.resources.follows": "Sledovaní",
- "timeline_hint.resources.statuses": "Staršie príspevky",
"trends.counter_by_accounts": "{count, plural, one {{counter} osoba} few {{counter} ľudia} many {{counter} ľudí} other {{counter} ľudí}} za posledn{days, plural, one {ý deň} few {é {days} dni} many {ých {days} dní} other {ých {days} dní}}",
"trends.trending_now": "Teraz populárne",
"ui.beforeunload": "Po opustení Mastodonu prídete o to, čo máte rozpísané.",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index 195797143b2..43042ca998d 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -11,7 +11,7 @@
"about.not_available": "Ti podatki še niso na voljo na tem strežniku.",
"about.powered_by": "Decentraliziran družabni medij, ki ga poganja {mastodon}",
"about.rules": "Pravila strežnika",
- "account.account_note_header": "Opombe",
+ "account.account_note_header": "Zasebna opomba",
"account.add_or_remove_from_list": "Dodaj ali odstrani s seznamov",
"account.badges.bot": "Robot",
"account.badges.group": "Skupina",
@@ -19,7 +19,6 @@
"account.block_domain": "Blokiraj domeno {domain}",
"account.block_short": "Blokiraj",
"account.blocked": "Blokirano",
- "account.browse_more_on_origin_server": "Brskaj več po izvirnem profilu",
"account.cancel_follow_request": "Umakni zahtevo za sledenje",
"account.copy": "Kopiraj povezavo do profila",
"account.direct": "Zasebno omeni @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Sledi nazaj",
"account.followers": "Sledilci",
"account.followers.empty": "Nihče ne sledi temu uporabniku.",
- "account.followers_counter": "{count, plural, one {ima {counter} sledilca} two {ima {counter} sledilca} few {ima {counter} sledilce} other {ima {counter} sledilcev}}",
+ "account.followers_counter": "{count, plural, one {{counter} sledilec} two {{counter} sledilca} few {{counter} sledilci} other {{counter} sledilcev}}",
"account.following": "Sledim",
- "account.following_counter": "{count, plural, one {sledi {count} osebi} two {sledi {count} osebama} few {sledi {count} osebam} other {sledi {count} osebam}}",
+ "account.following_counter": "{count, plural, one {{counter} sleden} two {{counter} sledena} few {{counter} sledeni} other {{counter} sledenih}}",
"account.follows.empty": "Ta uporabnik še ne sledi nikomur.",
"account.go_to_profile": "Pojdi na profil",
"account.hide_reblogs": "Skrij izpostavitve od @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} vam želi slediti",
"account.share": "Deli profil osebe @{name}",
"account.show_reblogs": "Pokaži izpostavitve osebe @{name}",
- "account.statuses_counter": "{count, plural, one {{count} objava} two {{count} objavi} few {{count} objave} other {{count} objav}}",
+ "account.statuses_counter": "{count, plural, one {{counter} objava} two {{counter} objavi} few {{counter} objave} other {{counter} objav}}",
"account.unblock": "Odblokiraj @{name}",
"account.unblock_domain": "Odblokiraj domeno {domain}",
"account.unblock_short": "Odblokiraj",
@@ -169,27 +168,30 @@
"compose_form.spoiler_placeholder": "Opozorilo o vsebini (ni obvezno)",
"confirmation_modal.cancel": "Prekliči",
"confirmations.block.confirm": "Blokiraj",
- "confirmations.cancel_follow_request.confirm": "Umakni zahtevo",
- "confirmations.cancel_follow_request.message": "Ali ste prepričani, da želite umakniti svojo zahtevo, da bi sledili {name}?",
"confirmations.delete.confirm": "Izbriši",
"confirmations.delete.message": "Ali ste prepričani, da želite izbrisati to objavo?",
+ "confirmations.delete.title": "Želite izbrisati objavo?",
"confirmations.delete_list.confirm": "Izbriši",
"confirmations.delete_list.message": "Ali ste prepričani, da želite trajno izbrisati ta seznam?",
+ "confirmations.delete_list.title": "Želite izbrisati seznam?",
"confirmations.discard_edit_media.confirm": "Opusti",
"confirmations.discard_edit_media.message": "Imate ne shranjene spremembe za medijski opis ali predogled; jih želite kljub temu opustiti?",
- "confirmations.domain_block.confirm": "Blokiraj strežnik",
- "confirmations.domain_block.message": "Ali ste res, res prepričani, da želite blokirati celotno {domain}? V večini primerov je nekaj ciljnih blokiranj ali utišanj dovolj in boljše. Vsebino iz te domene ne boste videli v javnih časovnicah ali obvestilih. Vaši sledilci iz te domene bodo odstranjeni.",
"confirmations.edit.confirm": "Uredi",
"confirmations.edit.message": "Urejanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?",
+ "confirmations.edit.title": "Želite prepisati objavo?",
"confirmations.logout.confirm": "Odjava",
"confirmations.logout.message": "Ali ste prepričani, da se želite odjaviti?",
+ "confirmations.logout.title": "Se želite odjaviti?",
"confirmations.mute.confirm": "Utišanje",
"confirmations.redraft.confirm": "Izbriši in preoblikuj",
"confirmations.redraft.message": "Ali ste prepričani, da želite izbrisati ta status in ga preoblikovati? Vzljubi in izpostavitve bodo izgubljeni, odgovori na izvirno objavo pa bodo osiroteli.",
+ "confirmations.redraft.title": "Želite izbrisati in predelati objavo?",
"confirmations.reply.confirm": "Odgovori",
"confirmations.reply.message": "Odgovarjanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?",
+ "confirmations.reply.title": "Želite prepisati objavo?",
"confirmations.unfollow.confirm": "Ne sledi več",
"confirmations.unfollow.message": "Ali ste prepričani, da ne želite več slediti {name}?",
+ "confirmations.unfollow.title": "Želite nehati spremljati uporabnika?",
"conversation.delete": "Izbriši pogovor",
"conversation.mark_as_read": "Označi kot prebrano",
"conversation.open": "Pokaži pogovor",
@@ -297,8 +299,6 @@
"filter_modal.select_filter.subtitle": "Uporabite obstoječo kategorijo ali ustvarite novo",
"filter_modal.select_filter.title": "Filtriraj to objavo",
"filter_modal.title.status": "Filtrirajte objavo",
- "filtered_notifications_banner.mentions": "{count, plural, one {omemba} two {omembi} few {omembe} other {omemb}}",
- "filtered_notifications_banner.pending_requests": "Obvestila od {count, plural, =0 {nikogar, ki bi ga} one {# človeka, ki bi ga} two {# ljudi, ki bi ju} few {# ljudi, ki bi jih} other {# ljudi, ki bi jih}} lahko poznali",
"filtered_notifications_banner.title": "Filtrirana obvestila",
"firehose.all": "Vse",
"firehose.local": "Ta strežnik",
@@ -347,6 +347,8 @@
"hashtag.follow": "Sledi ključniku",
"hashtag.unfollow": "Nehaj slediti ključniku",
"hashtags.and_other": "…in še {count, plural, other {#}}",
+ "hints.profiles.posts_may_be_missing": "Nekatere objave s tega profila morda manjkajo.",
+ "hints.threads.replies_may_be_missing": "Odgovori z drugih strežnikov morda manjkajo.",
"home.column_settings.show_reblogs": "Pokaži izpostavitve",
"home.column_settings.show_replies": "Pokaži odgovore",
"home.hide_announcements": "Skrij obvestila",
@@ -354,6 +356,9 @@
"home.pending_critical_update.link": "Glejte posodobitve",
"home.pending_critical_update.title": "Na voljo je kritična varnostna posodobbitev!",
"home.show_announcements": "Pokaži obvestila",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtriranje pomaga pri izogibanju morebitni zmedi",
+ "ignore_notifications_modal.filter_to_review_separately": "Filtrirana obvestila lahko pregledate ločeno",
+ "ignore_notifications_modal.ignore": "Prezri obvestila",
"interaction_modal.description.favourite": "Z računom na Mastodonu lahko to objavo postavite med priljubljene in tako avtorju nakažete, da jo cenite, in jo shranite za kasneje.",
"interaction_modal.description.follow": "Z računom na Mastodonu lahko sledite {name}, da prejemate njihove objave v svoj domači vir.",
"interaction_modal.description.reblog": "Z računom na Mastodonu lahko izpostavite to objavo, tako da jo delite s svojimi sledilci.",
@@ -407,8 +412,6 @@
"keyboard_shortcuts.unfocus": "Odstrani pozornost z območja za sestavljanje besedila/iskanje",
"keyboard_shortcuts.up": "Premakni navzgor po seznamu",
"lightbox.close": "Zapri",
- "lightbox.compress": "Strni ogledno polje slike",
- "lightbox.expand": "Razširi ogledno polje slike",
"lightbox.next": "Naslednji",
"lightbox.previous": "Prejšnji",
"limited_account_hint.action": "Vseeno pokaži profil",
@@ -432,7 +435,6 @@
"lists.subheading": "Vaši seznami",
"load_pending": "{count, plural, one {# nov element} two {# nova elementa} few {# novi elementi} other {# novih elementov}}",
"loading_indicator.label": "Nalaganje …",
- "media_gallery.toggle_visible": "{number, plural,one {Skrij sliko} two {Skrij sliki} other {Skrij slike}}",
"moved_to_account_banner.text": "Vaš račun {disabledAccount} je trenutno onemogočen, ker ste se prestavili na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Skrijte se pred obvestili",
"mute_modal.hide_options": "Skrij možnosti",
@@ -470,11 +472,18 @@
"navigation_bar.security": "Varnost",
"not_signed_in_indicator.not_signed_in": "Za dostop do tega vira se morate prijaviti.",
"notification.admin.report": "{name} je prijavil/a {target}",
+ "notification.admin.report_account": "{name} je prijavil/a {count, plural, one {# objavo} two {# objavi} few {# objave} other {# objav}} od {target} zaradi {category}",
+ "notification.admin.report_account_other": "{name} je prijavil/a {count, plural, one {# objavo} two {# objavi} few {# objave} other {# objav}} od {target}",
+ "notification.admin.report_statuses": "{name} je prijavil/a {target} zaradi {category}",
+ "notification.admin.report_statuses_other": "{name} je prijavil/a {target}",
"notification.admin.sign_up": "{name} se je vpisal/a",
"notification.favourite": "{name} je vzljubil/a vašo objavo",
"notification.follow": "{name} vam sledi",
"notification.follow_request": "{name} vam želi slediti",
- "notification.mention": "{name} vas je omenil/a",
+ "notification.label.private_mention": "Zasebna omemba",
+ "notification.label.private_reply": "Zasebni odgovor",
+ "notification.label.reply": "Odgovori",
+ "notification.mention": "Omemba",
"notification.moderation-warning.learn_more": "Več o tem",
"notification.moderation_warning": "Prejeli ste opozorilo moderatorjev",
"notification.moderation_warning.action_delete_statuses": "Nekatere vaše objave so odstranjene.",
@@ -495,11 +504,17 @@
"notification.status": "{name} je pravkar objavil/a",
"notification.update": "{name} je uredil(a) objavo",
"notification_requests.accept": "Sprejmi",
+ "notification_requests.confirm_dismiss_multiple.title": "Želite opustiti zahteve za obvestila?",
"notification_requests.dismiss": "Zavrni",
+ "notification_requests.edit_selection": "Uredi",
+ "notification_requests.exit_selection": "Opravljeno",
+ "notification_requests.maximize": "Maksimiraj",
"notification_requests.notifications_from": "Obvestila od {name}",
"notification_requests.title": "Filtrirana obvestila",
+ "notification_requests.view": "Pokaži obvestila",
"notifications.clear": "Počisti obvestila",
"notifications.clear_confirmation": "Ali ste prepričani, da želite trajno izbrisati vsa svoja obvestila?",
+ "notifications.clear_title": "Želite počistiti obvestila?",
"notifications.column_settings.admin.report": "Nove prijave:",
"notifications.column_settings.admin.sign_up": "Novi vpisi:",
"notifications.column_settings.alert": "Namizna obvestila",
@@ -531,6 +546,11 @@
"notifications.permission_denied": "Namizna obvestila niso na voljo zaradi poprej zavrnjene zahteve dovoljenja brskalnika.",
"notifications.permission_denied_alert": "Namiznih obvestil ni mogoče omogočiti, ker je bilo dovoljenje brskalnika že prej zavrnjeno",
"notifications.permission_required": "Namizna obvestila niso na voljo, ker zahtevano dovoljenje ni bilo podeljeno.",
+ "notifications.policy.accept": "Sprejmi",
+ "notifications.policy.accept_hint": "Pokaži med obvestili",
+ "notifications.policy.drop": "Prezri",
+ "notifications.policy.filter_limited_accounts_hint": "Omejeno s strani moderatorjev strežnika",
+ "notifications.policy.filter_limited_accounts_title": "Moderirani računi",
"notifications.policy.filter_new_accounts.hint": "Ustvarjen v {days, plural, one {zadnjem # dnevu} two {zadnjih # dnevih} few {zadnjih # dnevih} other {zadnjih # dnevih}}",
"notifications.policy.filter_new_accounts_title": "Novi računi",
"notifications.policy.filter_not_followers_hint": "Vključujoč ljudi, ki vam sledijo manj kot {days, plural, one {# dan} two {# dneva} few {# dni} other {# dni}}",
@@ -539,7 +559,7 @@
"notifications.policy.filter_not_following_title": "Ljudje, ki jim ne sledite",
"notifications.policy.filter_private_mentions_hint": "Filtrirano, razen če je odgovor na vašo lastno omembo ali če sledite pošiljatelju",
"notifications.policy.filter_private_mentions_title": "Neželene zasebne omembe",
- "notifications.policy.title": "Filtriraj obvestila od …",
+ "notifications.policy.title": "Upravljaj obvestila od ...",
"notifications_permission_banner.enable": "Omogoči obvestila na namizju",
"notifications_permission_banner.how_to_control": "Če želite prejemati obvestila, ko Mastodon ni odprt, omogočite namizna obvestila. Natančno lahko nadzirate, katere vrste interakcij naj tvorijo namizna obvestila; ko so omogočena, za to uporabite gumb {icon} zgoraj.",
"notifications_permission_banner.title": "Nikoli ne zamudite ničesar",
@@ -666,9 +686,13 @@
"report.unfollow_explanation": "Temu računu sledite. Da ne boste več videli njegovih objav v svojem domačem viru, mu prenehajte slediti.",
"report_notification.attached_statuses": "{count, plural, one {{count} objava pripeta} two {{count} objavi pripeti} few {{count} objave pripete} other {{count} objav pripetih}}",
"report_notification.categories.legal": "Legalno",
+ "report_notification.categories.legal_sentence": "nedovoljena vsebina",
"report_notification.categories.other": "Drugo",
+ "report_notification.categories.other_sentence": "drugo",
"report_notification.categories.spam": "Neželeno",
+ "report_notification.categories.spam_sentence": "neželeno",
"report_notification.categories.violation": "Kršitev pravila",
+ "report_notification.categories.violation_sentence": "kršitev pravila",
"report_notification.open": "Odpri prijavo",
"search.no_recent_searches": "Ni nedavnih iskanj",
"search.placeholder": "Iskanje",
@@ -718,12 +742,9 @@
"status.edit": "Uredi",
"status.edited": "Zadnje urejanje {date}",
"status.edited_x_times": "Urejeno {count, plural, one {#-krat} two {#-krat} few {#-krat} other {#-krat}}",
- "status.embed": "Vdelaj",
"status.favourite": "Priljubljen_a",
"status.favourites": "{count, plural, one {priljubitev} two {priljubitvi} few {priljubitve} other {priljubitev}}",
"status.filter": "Filtriraj to objavo",
- "status.filtered": "Filtrirano",
- "status.hide": "Skrij objavo",
"status.history.created": "{name}: ustvarjeno {date}",
"status.history.edited": "{name}: urejeno {date}",
"status.load_more": "Naloži več",
@@ -751,10 +772,7 @@
"status.report": "Prijavi @{name}",
"status.sensitive_warning": "Občutljiva vsebina",
"status.share": "Deli",
- "status.show_filter_reason": "Vseeno pokaži",
- "status.show_less": "Pokaži manj",
"status.show_less_all": "Prikaži manj za vse",
- "status.show_more": "Pokaži več",
"status.show_more_all": "Pokaži več za vse",
"status.show_original": "Pokaži izvirnik",
"status.title.with_attachments": "{user} je objavil_a {attachmentCount, plural, one {{attachmentCount} priponko} two {{attachmentCount} priponki} few {{attachmentCount} priponke} other {{attachmentCount} priponk}}",
@@ -773,10 +791,6 @@
"time_remaining.minutes": "{number, plural, one {# minuta} other {# minut}} je ostalo",
"time_remaining.moments": "Preostali trenutki",
"time_remaining.seconds": "{number, plural, one {# sekunda je preostala} two {# sekundi sta preostali} few {# sekunde so preostale} other {# sekund je preostalo}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} z drugih strežnikov ni prikazano.",
- "timeline_hint.resources.followers": "sledilcev",
- "timeline_hint.resources.follows": "Sledi",
- "timeline_hint.resources.statuses": "Starejše objave",
"trends.counter_by_accounts": "{count, plural, one {{count} oseba} two {{count} osebi} few {{count} osebe} other {{count} oseb}} v {days, plural, one {zadnjem {day} dnevu} two {zadnjih {days} dneh} few {zadnjih {days} dneh} other {zadnjih {days} dneh}}",
"trends.trending_now": "Zdaj v trendu",
"ui.beforeunload": "Vaš osnutek bo izgubljen, če zapustite Mastodona.",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 6903bceff6e..c5e42aae779 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -11,7 +11,7 @@
"about.not_available": "Ky informacion, në këtë shërbyes, nuk jepet.",
"about.powered_by": "Media shoqërore e decentralizuar, bazuar në {mastodon}",
"about.rules": "Rregulla shërbyesi",
- "account.account_note_header": "Shënim",
+ "account.account_note_header": "Shënim personal",
"account.add_or_remove_from_list": "Shtoni ose Hiqni prej listash",
"account.badges.bot": "Robot",
"account.badges.group": "Grup",
@@ -19,7 +19,6 @@
"account.block_domain": "Blloko përkatësinë {domain}",
"account.block_short": "Bllokoje",
"account.blocked": "E bllokuar",
- "account.browse_more_on_origin_server": "Shfletoni më tepër rreth profilit origjinal",
"account.cancel_follow_request": "Tërhiq mbrapsht kërkesë për ndjekje",
"account.copy": "Kopjoje lidhjen te profili",
"account.direct": "Përmendje private për @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Ndiqe gjithashtu",
"account.followers": "Ndjekës",
"account.followers.empty": "Këtë përdorues ende s’e ndjek kush.",
- "account.followers_counter": "{count, plural, one {{counter} Ndjekës} other {{counter} Ndjekës}}",
+ "account.followers_counter": "{count, plural, one {{counter} ndjekës} other {{counter} ndjekës}}",
"account.following": "Ndjekje",
- "account.following_counter": "{count, plural, one {{counter} i Ndjekur} other {{counter} të Ndjekur}}",
+ "account.following_counter": "{count, plural, one {{counter} i ndjekur} other {{counter} të ndjekur}}",
"account.follows.empty": "Ky përdorues ende s’ndjek kënd.",
"account.go_to_profile": "Kalo te profili",
"account.hide_reblogs": "Fshih përforcime nga @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} ka kërkuar t’ju ndjekë",
"account.share": "Ndajeni profilin e @{name} me të tjerët",
"account.show_reblogs": "Shfaq përforcime nga @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Mesazh} other {{counter} Mesazhe}}",
+ "account.statuses_counter": "{count, plural, one {{counter} postim} other {{counter} postime}}",
"account.unblock": "Zhbllokoje @{name}",
"account.unblock_domain": "Zhblloko përkatësinë {domain}",
"account.unblock_short": "Zhbllokoje",
@@ -98,6 +97,8 @@
"block_modal.title": "Të bllokohet përdoruesi?",
"block_modal.you_wont_see_mentions": "S’do të shihni postimet ku përmenden.",
"boost_modal.combo": "Që kjo të anashkalohet herës tjetër, mund të shtypni {combo}",
+ "boost_modal.reblog": "Përforcim postimi?",
+ "boost_modal.undo_reblog": "Të hiqet përforcim për postimin?",
"bundle_column_error.copy_stacktrace": "Kopjo raportim gabimi",
"bundle_column_error.error.body": "Faqja e kërkuar s’u vizatua dot. Kjo mund të vijë nga një e metë në kodin tonë, ose nga një problem përputhshmërie i shfletuesit.",
"bundle_column_error.error.title": "Oh, mos!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Sinjalizim lënde (opsional)",
"confirmation_modal.cancel": "Anuloje",
"confirmations.block.confirm": "Bllokoje",
- "confirmations.cancel_follow_request.confirm": "Tërhiqeni mbrapsht kërkesën",
- "confirmations.cancel_follow_request.message": "Jeni i sigurt se doni të tërhiqni mbrapsht kërkesën tuaj për ndjekje të {name}?",
"confirmations.delete.confirm": "Fshije",
"confirmations.delete.message": "Jeni i sigurt se doni të fshihet kjo gjendje?",
+ "confirmations.delete.title": "Të fshihet postimi?",
"confirmations.delete_list.confirm": "Fshije",
"confirmations.delete_list.message": "Jeni i sigurt se doni të fshihet përgjithmonë kjo listë?",
+ "confirmations.delete_list.title": "Të fshihet lista?",
"confirmations.discard_edit_media.confirm": "Hidhe tej",
"confirmations.discard_edit_media.message": "Keni ndryshime të paruajtura te përshkrimi ose paraparja e medias, të hidhen tej, sido qoftë?",
- "confirmations.domain_block.confirm": "Bllokoje shërbyesin",
- "confirmations.domain_block.message": "Jeni i sigurt, shumë i sigurt se doni të bllokohet krejt {domain}? Në shumicën e rasteve, ndoca bllokime ose heshtime me synim të caktuar janë të mjaftueshme dhe të parapëlqyera. S’keni për të parë lëndë nga kjo përkatësi në ndonjë rrjedhë kohore publike, apo te njoftimet tuaja. Ndjekësit tuaj prej asaj përkatësie do të hiqen.",
"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.logout.confirm": "Dilni",
"confirmations.logout.message": "Jeni i sigurt se doni të dilet?",
+ "confirmations.logout.title": "Të dilet?",
"confirmations.mute.confirm": "Heshtoje",
"confirmations.redraft.confirm": "Fshijeni & rihartojeni",
"confirmations.redraft.message": "Jeni i sigurt se doni të fshihet kjo gjendje dhe të rihartohet? Të parapëlqyerit dhe përforcimet do të humbin, ndërsa përgjigjet te postimi origjinal do të bëhen jetime.",
+ "confirmations.redraft.title": "Të fshihet & riharothet postimi?",
"confirmations.reply.confirm": "Përgjigjuni",
"confirmations.reply.message": "Po të përgjigjeni tani, mesazhi që po hartoni, do të mbishkruhet. Jeni i sigurt se doni të vazhdohet më tej?",
+ "confirmations.reply.title": "Të mbishkruhet postimi?",
"confirmations.unfollow.confirm": "Resht së ndjekuri",
"confirmations.unfollow.message": "Jeni i sigurt se doni të mos ndiqet më {name}?",
+ "confirmations.unfollow.title": "Të ndalet ndjekja e përdoruesit?",
+ "content_warning.hide": "Fshihe postimin",
+ "content_warning.show": "Shfaqe, sido qoftë",
"conversation.delete": "Fshije bisedën",
"conversation.mark_as_read": "Vëri shenjë si të lexuar",
"conversation.open": "Shfaq bisedën",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Përdorni një kategori ekzistuese, ose krijoni një të re",
"filter_modal.select_filter.title": "Filtroje këtë postim",
"filter_modal.title.status": "Filtroni një postim",
- "filtered_notifications_banner.mentions": "{count, plural, one {përmendje} other {përmendje}}",
- "filtered_notifications_banner.pending_requests": "Njoftime prej {count, plural, =0 {askujt} one {një personi} other {# vetësh}} që mund të njihni",
+ "filter_warning.matches_filter": "Ka përkim me filtrin “{title}”",
+ "filtered_notifications_banner.pending_requests": "Nga {count, plural, =0 {askush} one {një person} other {# vetë}} që mund të njihni",
"filtered_notifications_banner.title": "Njoftime të filtruar",
"firehose.all": "Krejt",
"firehose.local": "Këtë shërbyes",
@@ -347,6 +353,14 @@
"hashtag.follow": "Ndiqe hashtag-un",
"hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut",
"hashtags.and_other": "…dhe {count, plural, one {}other {# më tepër}}",
+ "hints.profiles.followers_may_be_missing": "Mund të mungojnë ndjekës për këtë profil.",
+ "hints.profiles.follows_may_be_missing": "Mund të mungojnë ndjekje për këtë profil.",
+ "hints.profiles.posts_may_be_missing": "Mund të mungojnë disa postime prej këtij profili.",
+ "hints.profiles.see_more_followers": "Shihni më tepër ndjekës në {domain}",
+ "hints.profiles.see_more_follows": "Shihni më tepër ndjekje në {domain}",
+ "hints.profiles.see_more_posts": "Shihni më tepër postime në {domain}",
+ "hints.threads.replies_may_be_missing": "Mund të mungojnë përgjigje nga shërbyes të tjerë.",
+ "hints.threads.see_more": "Shihni më tepër përgjigje në {domain}",
"home.column_settings.show_reblogs": "Shfaq përforcime",
"home.column_settings.show_replies": "Shfaq përgjigje",
"home.hide_announcements": "Fshihi lajmërimet",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Shihni përditësime",
"home.pending_critical_update.title": "Ka përditësim kritik të lidhur me sigurinë!",
"home.show_announcements": "Shfaqi lajmërimet",
+ "ignore_notifications_modal.disclaimer": "Mastodon-i s’mund të njoftojë përdoruesit se po shpërfillni njoftimet e tyre. Shpërfillja e njoftimeve s’do të ndalë dërgimin e vetë mesazheve.",
+ "ignore_notifications_modal.filter_instead": "Në vend të kësaj, filtroji",
+ "ignore_notifications_modal.filter_to_act_users": "Do të jeni prapë në gjendje të pranoni, hidhni poshtë, ose raportoni përdorues",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrimi ndihmon të shmanget konfuzion potencial",
+ "ignore_notifications_modal.filter_to_review_separately": "Njoftimet e filtruara mund t’i shqyrtoni ndarazi",
+ "ignore_notifications_modal.ignore": "Shpërfilli njoftimet",
+ "ignore_notifications_modal.limited_accounts_title": "Të shpërfillen njoftime nga llogari të moderuara?",
+ "ignore_notifications_modal.new_accounts_title": "Të shpërfillen njoftime nga llogari të reja?",
+ "ignore_notifications_modal.not_followers_title": "Të shpërfillen njoftime nga persona që s’ju ndjekin?",
+ "ignore_notifications_modal.not_following_title": "Të shpërfillen njoftime nga persona që s’i ndiqni?",
+ "ignore_notifications_modal.private_mentions_title": "Të shpërfillen njoftime nga Përmendje Private të pakërkuara?",
"interaction_modal.description.favourite": "Me një llogari në Mastodon, mund ta tregoni këtë postim si të parapëlqyer, për t’i bërë të ditur autorit se e çmoni dhe e ruani për më vonë.",
"interaction_modal.description.follow": "Me një llogari në Mastodon, mund ta ndiqni {name} për të marrë postimet e tyre në prurjen tuaj të kreut.",
"interaction_modal.description.reblog": "Me një llogari në Mastodon, mund ta përforconi këtë postim për ta ndarë me ndjekësit tuaj.",
@@ -407,8 +432,6 @@
"keyboard_shortcuts.unfocus": "Për heqjen e fokusit nga fusha e hartimit të mesazheve apo kërkimeve",
"keyboard_shortcuts.up": "Për ngjitje sipër nëpër listë",
"lightbox.close": "Mbylle",
- "lightbox.compress": "Ngjeshe kuadratin e parjes së figurave",
- "lightbox.expand": "Zgjeroje kuadratin e parjes së figurave",
"lightbox.next": "Pasuesja",
"lightbox.previous": "E mëparshmja",
"limited_account_hint.action": "Shfaqe profilin sido qoftë",
@@ -432,7 +455,7 @@
"lists.subheading": "Listat tuaja",
"load_pending": "{count, plural,one {# objekt i ri }other {# objekte të rinj }}",
"loading_indicator.label": "Po ngarkohet…",
- "media_gallery.toggle_visible": "Fshihni {number, plural, one {figurë} other {figura}}",
+ "media_gallery.hide": "Fshihe",
"moved_to_account_banner.text": "Llogaria juaj {disabledAccount} aktualisht është e çaktivizuar, ngaqë kaluat te {movedToAccount}.",
"mute_modal.hide_from_notifications": "Fshihe prej njoftimeve",
"mute_modal.hide_options": "Fshihi mundësitë",
@@ -444,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "S’do të shihni postime ku përmenden.",
"mute_modal.you_wont_see_posts": "Ata munden ende të shohin postimet tuaja, por ju s’do të shihni të tyret.",
"navigation_bar.about": "Mbi",
+ "navigation_bar.administration": "Administrim",
"navigation_bar.advanced_interface": "Hape në ndërfaqe web të thelluar",
"navigation_bar.blocks": "Përdorues të bllokuar",
"navigation_bar.bookmarks": "Faqerojtës",
@@ -460,6 +484,7 @@
"navigation_bar.follows_and_followers": "Ndjekje dhe ndjekës",
"navigation_bar.lists": "Lista",
"navigation_bar.logout": "Dalje",
+ "navigation_bar.moderation": "Moderim",
"navigation_bar.mutes": "Përdorues të heshtuar",
"navigation_bar.opened_in_classic_interface": "Postime, llogari dhe të tjera faqe specifike, si parazgjedhje, hapen në ndërfaqe klasike web.",
"navigation_bar.personal": "Personale",
@@ -470,11 +495,23 @@
"navigation_bar.security": "Siguri",
"not_signed_in_indicator.not_signed_in": "Që të përdorni këtë burim, lypset të bëni hyrjen.",
"notification.admin.report": "{name} raportoi {target}",
+ "notification.admin.report_account": "{name} raportoi për {count, plural, one {një postim} other {# postime}} nga {target} për {category}",
+ "notification.admin.report_account_other": "{name} raportoi për {count, plural, one {një postim} other {# postime}} nga {target}",
+ "notification.admin.report_statuses": "{name} raportoi {target} për {category}",
+ "notification.admin.report_statuses_other": "{name} raportoi {target}",
"notification.admin.sign_up": "{name} u regjistrua",
+ "notification.admin.sign_up.name_and_others": "U regjistrua {name} dhe {count, plural, one {# tjetër} other {# të tjerë}}",
"notification.favourite": "{name} i vuri shenjë postimit tuaj si të parapëlqyer",
+ "notification.favourite.name_and_others_with_link": "{name} dhe {count, plural, one {# tjetër} other {# të tjerë}} i vunë shenjë postimit tuaj si të parapëlqyer",
"notification.follow": "{name} zuri t’ju ndjekë",
+ "notification.follow.name_and_others": "Ju ndoqi {name} dhe {count, plural, one {# tjetër} other {# të tjerë}}",
"notification.follow_request": "{name} ka kërkuar t’ju ndjekë",
- "notification.mention": "{name} ju ka përmendur",
+ "notification.follow_request.name_and_others": "Ka kërkuar t’ju ndjekë {name} dhe {count, plural, one {# tjetër} other {# të tjerë}}",
+ "notification.label.mention": "Përmendje",
+ "notification.label.private_mention": "Përmendje private",
+ "notification.label.private_reply": "Përgjigje private",
+ "notification.label.reply": "Përgjigje",
+ "notification.mention": "Përmendje",
"notification.moderation-warning.learn_more": "Mësoni më tepër",
"notification.moderation_warning": "Ju është dhënë një sinjalizim moderimi",
"notification.moderation_warning.action_delete_statuses": "Disa nga postimet tuaja janë hequr.",
@@ -485,8 +522,9 @@
"notification.moderation_warning.action_silence": "Llogaria juaj është kufizuar.",
"notification.moderation_warning.action_suspend": "Llogaria juaj është pezulluar.",
"notification.own_poll": "Pyetësori juaj ka përfunduar",
- "notification.poll": "Ka përfunduar një pyetësor ku keni votuar",
+ "notification.poll": "Ka përfunduar një pyetësor në të cilin keni marrë pjesë",
"notification.reblog": "{name} përforcoi mesazhin tuaj",
+ "notification.reblog.name_and_others_with_link": "Ju ka përforcuar {name} dhe {count, plural, one {# tjetër} other {# të tjerë}}",
"notification.relationships_severance_event": "Lidhje të humbura me {name}",
"notification.relationships_severance_event.account_suspension": "Një përgjegjës nga {from} ka pezulluar {target}, që do të thotë se s’mund të merrni më përditësime prej tij, apo të ndërveproni me të.",
"notification.relationships_severance_event.domain_block": "Një përgjegjës nga {from} ka bllokuar {target}, përfshi {followersCount} të ndjekësve tuaj dhe {followingCount, plural, one {# llogari} other {# llogari}} që ndiqni.",
@@ -495,11 +533,27 @@
"notification.status": "{name} sapo postoi",
"notification.update": "{name} përpunoi një postim",
"notification_requests.accept": "Pranoje",
+ "notification_requests.accept_multiple": "{count, plural, one {Pranoni # kërkesë…} other {Pranoni # kërkesa…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Pranojeni kërkesën} other {Pranoje kërkesën}}",
+ "notification_requests.confirm_accept_multiple.message": "Ju ndan një hap nga pranimi i {count, plural, one {një kërkese njoftimi} other {# kërkesash njoftimi}}. Jeni i sigurt se doni të vazhdohet?",
+ "notification_requests.confirm_accept_multiple.title": "Të pranohen kërkesa njoftimesh?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Hidheni tej kërkesën} other {Hidhini tej kërkesat}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Ju ndan një hap nga hedhja tej e {count, plural, one {një kërkese njoftimesh} other {# kërkesash njoftimesh}}. S’do të jeni në gjendje të shihni sërish {count, plural, one {atë} other {ato}}. Jeni i sigurt se doni të bëhet kjo?",
+ "notification_requests.confirm_dismiss_multiple.title": "Të hidhen tej kërkesa njoftimesh?",
"notification_requests.dismiss": "Hidhe tej",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Hidhni tej # kërkesë…} other {Hidhni tej # kërkesa…}}",
+ "notification_requests.edit_selection": "Përpunoni",
+ "notification_requests.exit_selection": "U bë",
+ "notification_requests.explainer_for_limited_account": "Njoftimet prej kësaj llogarie janë filtruar, ngaqë llogaria është kufizuar nga një moderator.",
+ "notification_requests.explainer_for_limited_remote_account": "Njoftimet prej kësaj llogarie janë filtruar, ngaqë llogaria, ose shërbyesi është kufizuar nga një moderator.",
+ "notification_requests.maximize": "Maksimizoje",
+ "notification_requests.minimize_banner": "Minimizo banderolë njoftimesh të filtruara",
"notification_requests.notifications_from": "Njoftime prej {name}",
"notification_requests.title": "Njoftime të filtruar",
+ "notification_requests.view": "Shihni njoftime",
"notifications.clear": "Spastroji njoftimet",
"notifications.clear_confirmation": "Jeni i sigurt se doni të spastrohen përgjithmonë krejt njoftimet tuaja?",
+ "notifications.clear_title": "Të spastrohen njoftimet?",
"notifications.column_settings.admin.report": "Raportime të reja:",
"notifications.column_settings.admin.sign_up": "Regjistrime të reja:",
"notifications.column_settings.alert": "Njoftime desktopi",
@@ -531,6 +585,14 @@
"notifications.permission_denied": "S’merren dot njoftime në desktop, ngaqë më herët shfletuesit i janë mohuar lejet për këtë",
"notifications.permission_denied_alert": "S’mund të aktivizohen njoftimet në desktop, ngaqë lejet e shfletuesit për këtë janë mohuar më herët",
"notifications.permission_required": "S’merren dot njoftime desktop, ngaqë s’është akorduar leja përkatëse.",
+ "notifications.policy.accept": "Pranoji",
+ "notifications.policy.accept_hint": "Shfaq njoftime",
+ "notifications.policy.drop": "Shpërfille",
+ "notifications.policy.drop_hint": "Dërgoje në hiç, mos e pafshim më kurrë",
+ "notifications.policy.filter": "Filtrim",
+ "notifications.policy.filter_hint": "Dërgoje te kutia e njoftimeve të filtruara",
+ "notifications.policy.filter_limited_accounts_hint": "Kufizuar nga moderatorë shërbyesi",
+ "notifications.policy.filter_limited_accounts_title": "Llogari të moderuara",
"notifications.policy.filter_new_accounts.hint": "Krijuar brenda {days, plural, one {një dite} other {# ditësh}} të shkuara",
"notifications.policy.filter_new_accounts_title": "Llogari të reja",
"notifications.policy.filter_not_followers_hint": "Përfshi persona që ju kanë ndjekur brenda më pak se {days, plural, one {një dite} other {# ditësh}}",
@@ -539,7 +601,7 @@
"notifications.policy.filter_not_following_title": "Persona që s’i ndiqni",
"notifications.policy.filter_private_mentions_hint": "Filtruar, hiq rastin nëse gjendet te përgjigje ndaj përmendjes tuaj, ose nëse dërguesin e ndiqni",
"notifications.policy.filter_private_mentions_title": "Përmendje private të pakërkuara",
- "notifications.policy.title": "Filtroni njoftime nga…",
+ "notifications.policy.title": "Administroni njoftime nga…",
"notifications_permission_banner.enable": "Aktivizo njoftime në desktop",
"notifications_permission_banner.how_to_control": "Për të marrë njoftime, kur Mastodon-i s’është i hapur, aktivizoni njoftime në desktop. Përmes butoni {icon} më sipër, mund të kontrolloni me përpikëri cilat lloje ndërveprimesh prodhojnë njoftime në desktop, pasi të jenë aktivizuar.",
"notifications_permission_banner.title": "Mos t’ju shpëtojë gjë",
@@ -666,9 +728,13 @@
"report.unfollow_explanation": "Po e ndiqni këtë llogari. Për të mos parë më postimet e tyre te prurja juaj e kreut, ndalni ndjekjen e tyre.",
"report_notification.attached_statuses": "{count, plural, one {{count} postim} other {{count} postime}} bashkëngjitur",
"report_notification.categories.legal": "Ligjore",
+ "report_notification.categories.legal_sentence": "lëndë e paligjshme",
"report_notification.categories.other": "Tjetër",
+ "report_notification.categories.other_sentence": "tjetër",
"report_notification.categories.spam": "I padëshiruar",
+ "report_notification.categories.spam_sentence": "mesazh i padëshiruar",
"report_notification.categories.violation": "Cenim rregullash",
+ "report_notification.categories.violation_sentence": "cenim rregullash",
"report_notification.open": "Hape raportimin",
"search.no_recent_searches": "Pa kërkime së fundi",
"search.placeholder": "Kërkoni",
@@ -710,6 +776,7 @@
"status.bookmark": "Faqeruaje",
"status.cancel_reblog_private": "Shpërforcojeni",
"status.cannot_reblog": "Ky postim s’mund të përforcohet",
+ "status.continued_thread": "Vazhdoi rrjedhën",
"status.copy": "Kopjoje lidhjen për te mesazhi",
"status.delete": "Fshije",
"status.detailed_status": "Pamje e hollësishme bisede",
@@ -718,12 +785,10 @@
"status.edit": "Përpunojeni",
"status.edited": "Përpunuar së fundi më {date}",
"status.edited_x_times": "Përpunuar {count, plural, one {{count} herë} other {{count} herë}}",
- "status.embed": "Trupëzim",
+ "status.embed": "Merrni kod trupëzimi",
"status.favourite": "I vini shenjë si të parapëlqyer",
"status.favourites": "{count, plural, one {i parapëlqyer} other {të parapëlqyer}}",
"status.filter": "Filtroje këtë postim",
- "status.filtered": "I filtruar",
- "status.hide": "Fshihe postimin",
"status.history.created": "{name} u krijua më {date}",
"status.history.edited": "{name} u përpunua më {date}",
"status.load_more": "Ngarko më tepër",
@@ -745,16 +810,14 @@
"status.reblogs.empty": "Këtë mesazh s’e ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.",
"status.redraft": "Fshijeni & rihartojeni",
"status.remove_bookmark": "Hiqe faqerojtësin",
+ "status.replied_in_thread": "U përgjigj te rrjedha",
"status.replied_to": "Iu përgjigj {name}",
"status.reply": "Përgjigjuni",
"status.replyAll": "Përgjigjuni rrjedhës",
"status.report": "Raportojeni @{name}",
"status.sensitive_warning": "Lëndë rezervat",
"status.share": "Ndajeni me të tjerë",
- "status.show_filter_reason": "Shfaqe, sido qoftë",
- "status.show_less": "Shfaq më pak",
"status.show_less_all": "Shfaq më pak për të tërë",
- "status.show_more": "Shfaq më tepër",
"status.show_more_all": "Shfaq më tepër për të tërë",
"status.show_original": "Shfaq origjinalin",
"status.title.with_attachments": "{user} postoi {attachmentCount, plural, one {një bashkëngjitje} other {{attachmentCount} bashkëngjitje}}",
@@ -773,10 +836,6 @@
"time_remaining.minutes": "Edhe {number, plural, one {# minutë} other {# minuta}}",
"time_remaining.moments": "Çaste të mbetur",
"time_remaining.seconds": "Edhe {number, plural, one {# sekondë} other {# sekonda}}",
- "timeline_hint.remote_resource_not_displayed": "S’janë shfaqur {resource} nga shërbyes të tjerë.",
- "timeline_hint.resources.followers": "Ndjekës",
- "timeline_hint.resources.follows": "Ndjekje",
- "timeline_hint.resources.statuses": "Mesazhe të vjetër",
"trends.counter_by_accounts": "{count, plural, një {{counter} person} other {{counter} vetë}} në {days, plural, një {day} other {{days} ditë}} të kaluar",
"trends.trending_now": "Prirjet e tashme",
"ui.beforeunload": "Skica juaj do të humbë, nëse dilni nga Mastodon-i.",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 63b2e03c96c..e701da60789 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -11,7 +11,6 @@
"about.not_available": "Ove informacije nisu dostupne na ovom serveru.",
"about.powered_by": "Decentralizovana društvena mreža koju pokreće {mastodon}",
"about.rules": "Pravila servera",
- "account.account_note_header": "Napomena",
"account.add_or_remove_from_list": "Dodaj ili ukloni sa lista",
"account.badges.bot": "Automatizovano",
"account.badges.group": "Grupa",
@@ -19,7 +18,6 @@
"account.block_domain": "Blokiraj domen {domain}",
"account.block_short": "Blokiraj",
"account.blocked": "Blokiran",
- "account.browse_more_on_origin_server": "Pregledajte još na originalnom profilu",
"account.cancel_follow_request": "Otkaži praćenje",
"account.copy": "Kopiraj vezu u profil",
"account.direct": "Privatno pomeni @{name}",
@@ -63,7 +61,7 @@
"account.requested_follow": "{name} je zatražio da vas prati",
"account.share": "Podeli profil korisnika @{name}",
"account.show_reblogs": "Prikaži podržavanja od korisnika @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} objavio} few {{counter} objavio} other {{counter} objavio}}",
+ "account.statuses_counter": "{count, plural, one {{counter} objava} few {{counter} objave} other {{counter} objava}}",
"account.unblock": "Odblokiraj korisnika @{name}",
"account.unblock_domain": "Odblokiraj domen {domain}",
"account.unblock_short": "Odblokiraj",
@@ -169,16 +167,12 @@
"compose_form.spoiler_placeholder": "Upozorenje o sadržaju (opciono)",
"confirmation_modal.cancel": "Otkaži",
"confirmations.block.confirm": "Blokiraj",
- "confirmations.cancel_follow_request.confirm": "Povuci zahtev",
- "confirmations.cancel_follow_request.message": "Da li ste sigurni da želite da povučete zahtev da pratite {name}?",
"confirmations.delete.confirm": "Izbriši",
"confirmations.delete.message": "Da li ste sigurni da želite da izbrišete ovu objavu?",
"confirmations.delete_list.confirm": "Izbriši",
"confirmations.delete_list.message": "Da li ste sigurni da želite da trajno izbrišete ovu listu?",
"confirmations.discard_edit_media.confirm": "Odbaci",
"confirmations.discard_edit_media.message": "Imate nesačuvane promene u opisu ili pregledu medija, da li ipak hoćete da ih odbacite?",
- "confirmations.domain_block.confirm": "Blokiraj server",
- "confirmations.domain_block.message": "Da li ste zaista sigurni da želite da blokirate ceo domen {domain}? U većini slučajeva, dovoljno je i poželjno nekoliko ciljanih blokiranja ili ignorisanja. Nećete videti sadržaj sa tog domena ni u jednoj javnoj vremenskoj liniji ili u vašim obaveštenjima. Vaši pratioci sa tog domena će biti uklonjeni.",
"confirmations.edit.confirm": "Uredi",
"confirmations.edit.message": "Uređivanjem će se obrisati poruka koju trenutno sastavljate. Da li ste sigurni da želite da nastavite?",
"confirmations.logout.confirm": "Odjava",
@@ -297,8 +291,6 @@
"filter_modal.select_filter.subtitle": "Koristite postojeću kategoriju ili kreirajte novu",
"filter_modal.select_filter.title": "Filtriraj ovu objavu",
"filter_modal.title.status": "Filtriraj objavu",
- "filtered_notifications_banner.mentions": "{count, plural, one {pominjanje} few {pominjanja} other {pominjanja}}",
- "filtered_notifications_banner.pending_requests": "Obaveštenja od {count, plural, =0 {nikoga koga možda poznajete} one {# osobe koju možda poznajete} few {# osobe koje možda poznajete} other {# osoba koje možda poznajete}}",
"filtered_notifications_banner.title": "Filtrirana obaveštenja",
"firehose.all": "Sve",
"firehose.local": "Ovaj server",
@@ -407,8 +399,6 @@
"keyboard_shortcuts.unfocus": "Ukloni fokus sa polja za unos teksta/pretrage",
"keyboard_shortcuts.up": "Premesti nagore u listi",
"lightbox.close": "Zatvori",
- "lightbox.compress": "Komprimuj okvir za prikaz slike",
- "lightbox.expand": "Proširi okvir za prikaz slike",
"lightbox.next": "Sledeće",
"lightbox.previous": "Prethodno",
"limited_account_hint.action": "Ipak prikaži profil",
@@ -432,7 +422,6 @@
"lists.subheading": "Vaše liste",
"load_pending": "{count, plural, one {# nova stavka} few {# nove stavke} other {# novih stavki}}",
"loading_indicator.label": "Učitavanje…",
- "media_gallery.toggle_visible": "{number, plural, one {Sakrij sliku} few {Sakrij slike} other {Sakrij slike}}",
"moved_to_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen jer ste prešli na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Sakrij iz obaveštenja",
"mute_modal.hide_options": "Sakrij opcije",
@@ -474,7 +463,6 @@
"notification.favourite": "{name} je označio vašu objavu kao omiljenu",
"notification.follow": "{name} vas je zapratio",
"notification.follow_request": "{name} je zatražio da vas prati",
- "notification.mention": "{name} vas je pomenuo",
"notification.moderation-warning.learn_more": "Saznajte više",
"notification.moderation_warning": "Dobili ste moderatorsko upozorenje",
"notification.moderation_warning.action_delete_statuses": "Neke od vaših objava su uklonjene.",
@@ -485,7 +473,6 @@
"notification.moderation_warning.action_silence": "Vaš nalog je ograničen.",
"notification.moderation_warning.action_suspend": "Vaš nalog je suspendovan.",
"notification.own_poll": "Vaša anketa je završena",
- "notification.poll": "Završena je anketa u kojoj ste glasali",
"notification.reblog": "{name} je podržao vašu objavu",
"notification.relationships_severance_event": "Izgubljena veza sa {name}",
"notification.relationships_severance_event.account_suspension": "Administrator sa {from} je suspendovao {target}, što znači da više ne možete da primate ažuriranja od njih niti da komunicirate sa njima.",
@@ -539,7 +526,6 @@
"notifications.policy.filter_not_following_title": "Ljudi koje ne pratite",
"notifications.policy.filter_private_mentions_hint": "Filtrirano osim ako je odgovor na vaše pominjanje ili ako pratite pošiljaoca",
"notifications.policy.filter_private_mentions_title": "Neželjena privatna pominjanja",
- "notifications.policy.title": "Filtriraj obaveštenja od…",
"notifications_permission_banner.enable": "Omogućiti obaveštenja na radnoj površini",
"notifications_permission_banner.how_to_control": "Da biste primali obaveštenja kada Mastodon nije otvoren, omogućite obaveštenja na radnoj površini. Kada su obaveštenja na radnoj površini omogućena vrste interakcija koje ona generišu mogu se podešavati pomoću dugmeta {icon}.",
"notifications_permission_banner.title": "Nikada ništa ne propustite",
@@ -696,8 +682,11 @@
"server_banner.about_active_users": "Ljudi koji su koristili ovaj server u prethodnih 30 dana (mesečno aktivnih korisnika)",
"server_banner.active_users": "aktivnih korisnika",
"server_banner.administered_by": "Administrira:",
+ "server_banner.is_one_of_many": "{domain} je jedan od mnogih nezavisnih Mastodon servera koje možete koristiti za učešće u fediverzumu.",
"server_banner.server_stats": "Statistike servera:",
"sign_in_banner.create_account": "Napravite nalog",
+ "sign_in_banner.follow_anyone": "Pratite bilo koga širom fediverzuma i pogledajte sve hronološkim redom. Nema algoritama, reklama ili mamaca za klikove na vidiku.",
+ "sign_in_banner.mastodon_is": "Mastodon je najbolji način da budete u toku sa onim što se dešava.",
"sign_in_banner.sign_in": "Prijavite se",
"sign_in_banner.sso_redirect": "Prijavite se ili se registrujte",
"status.admin_account": "Otvori moderatorsko okruženje za @{name}",
@@ -715,12 +704,9 @@
"status.edit": "Uredi",
"status.edited": "Poslednje uređivanje {date}",
"status.edited_x_times": "Uređeno {count, plural, one {{count} put} other {{count} puta}}",
- "status.embed": "Ugradi",
"status.favourite": "Omiljeno",
"status.favourites": "{count, plural, one {# omiljeno} few {# omiljena} other {# omiljenih}}",
"status.filter": "Filtriraj ovu objavu",
- "status.filtered": "Filtrirano",
- "status.hide": "Sakrij objavu",
"status.history.created": "{name} napisao/la {date}",
"status.history.edited": "{name} uredio/la {date}",
"status.load_more": "Učitaj još",
@@ -748,10 +734,7 @@
"status.report": "Prijavi @{name}",
"status.sensitive_warning": "Osetljiv sadržaj",
"status.share": "Podeli",
- "status.show_filter_reason": "Ipak prikaži",
- "status.show_less": "Prikaži manje",
"status.show_less_all": "Prikaži manje za sve",
- "status.show_more": "Prikaži više",
"status.show_more_all": "Prikaži više za sve",
"status.show_original": "Prikaži orginal",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -770,10 +753,6 @@
"time_remaining.minutes": "Ostalo {number, plural, one {# minut} few {# minuta} other {# minuta}}",
"time_remaining.moments": "Još nekoliko trenutaka",
"time_remaining.seconds": "Ostalo {number, plural, one {# sekund} few {# sekunde} other {# sekundi}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} sa drugih servera se ne prikazuju.",
- "timeline_hint.resources.followers": "Pratioci",
- "timeline_hint.resources.follows": "Praćenja",
- "timeline_hint.resources.statuses": "Starije objave",
"trends.counter_by_accounts": "{count, plural, one {{counter} osoba} few {{counter} osobe} other {{counter} osoba}} u proteklih {days, plural, one {dan} other {{days} dana}}",
"trends.trending_now": "U trendu sada",
"ui.beforeunload": "Vaš nacrt će biti izgubljen ako napustite Mastodon.",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index c6b969e982f..fd13c4ee5c1 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -11,7 +11,6 @@
"about.not_available": "Ове информације нису доступне на овом серверу.",
"about.powered_by": "Децентрализована друштвена мрежа коју покреће {mastodon}",
"about.rules": "Правила сервера",
- "account.account_note_header": "Напомена",
"account.add_or_remove_from_list": "Додај или уклони са листа",
"account.badges.bot": "Аутоматизовано",
"account.badges.group": "Група",
@@ -19,7 +18,6 @@
"account.block_domain": "Блокирај домен {domain}",
"account.block_short": "Блокирај",
"account.blocked": "Блокиран",
- "account.browse_more_on_origin_server": "Прегледајте још на оригиналном профилу",
"account.cancel_follow_request": "Откажи праћење",
"account.copy": "Копирај везу у профил",
"account.direct": "Приватно помени @{name}",
@@ -63,7 +61,7 @@
"account.requested_follow": "{name} је затражио да вас прати",
"account.share": "Подели профил корисника @{name}",
"account.show_reblogs": "Прикажи подржавања од корисника @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} објавио} few {{counter} објавио} other {{counter} објавио}}",
+ "account.statuses_counter": "{count, plural, one {{counter} објава} few {{counter} објаве} other {{counter} објава}}",
"account.unblock": "Одблокирај корисника @{name}",
"account.unblock_domain": "Одблокирај домен {domain}",
"account.unblock_short": "Одблокирај",
@@ -169,16 +167,12 @@
"compose_form.spoiler_placeholder": "Упозорење о садржају (опционо)",
"confirmation_modal.cancel": "Откажи",
"confirmations.block.confirm": "Блокирај",
- "confirmations.cancel_follow_request.confirm": "Повуци захтев",
- "confirmations.cancel_follow_request.message": "Да ли сте сигурни да желите да повучете захтев да пратите {name}?",
"confirmations.delete.confirm": "Избриши",
"confirmations.delete.message": "Да ли сте сигурни да желите да избришете ову објаву?",
"confirmations.delete_list.confirm": "Избриши",
"confirmations.delete_list.message": "Да ли сте сигурни да желите да трајно избришете ову листу?",
"confirmations.discard_edit_media.confirm": "Одбаци",
"confirmations.discard_edit_media.message": "Имате несачуване промене у опису или прегледу медија, да ли ипак хоћете да их одбаците?",
- "confirmations.domain_block.confirm": "Блокирај сервер",
- "confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, довољно је и пожељно неколико циљаних блокирања или игнорисања. Нећете видети садржај са тог домена ни у једној јавној временској линији или у вашим обавештењима. Ваши пратиоци са тог домена ће бити уклоњени.",
"confirmations.edit.confirm": "Уреди",
"confirmations.edit.message": "Уређивањем ће се обрисати порука коју тренутно састављате. Да ли сте сигурни да желите да наставите?",
"confirmations.logout.confirm": "Одјава",
@@ -297,8 +291,6 @@
"filter_modal.select_filter.subtitle": "Користите постојећу категорију или креирајте нову",
"filter_modal.select_filter.title": "Филтрирај ову објаву",
"filter_modal.title.status": "Филтрирај објаву",
- "filtered_notifications_banner.mentions": "{count, plural, one {помињање} few {помињања} other {помињања}}",
- "filtered_notifications_banner.pending_requests": "Обавештења од {count, plural, =0 {никога кога можда познајете} one {# особе коју можда познајете} few {# особе које можда познајете} other {# особа које можда познајете}}",
"filtered_notifications_banner.title": "Филтрирана обавештења",
"firehose.all": "Све",
"firehose.local": "Овај сервер",
@@ -407,8 +399,6 @@
"keyboard_shortcuts.unfocus": "Уклони фокус са поља за унос текста/претраге",
"keyboard_shortcuts.up": "Премести нагоре у листи",
"lightbox.close": "Затвори",
- "lightbox.compress": "Компримуј оквир за приказ слике",
- "lightbox.expand": "Прошири оквир за приказ слике",
"lightbox.next": "Следеће",
"lightbox.previous": "Претходно",
"limited_account_hint.action": "Ипак прикажи профил",
@@ -432,7 +422,6 @@
"lists.subheading": "Ваше листе",
"load_pending": "{count, plural, one {# нова ставка} few {# нове ставке} other {# нових ставки}}",
"loading_indicator.label": "Учитавање…",
- "media_gallery.toggle_visible": "{number, plural, one {Сакриј слику} few {Сакриј слике} other {Сакриј слике}}",
"moved_to_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен јер сте прешли на {movedToAccount}.",
"mute_modal.hide_from_notifications": "Сакриј из обавештења",
"mute_modal.hide_options": "Сакриј опције",
@@ -474,7 +463,6 @@
"notification.favourite": "{name} је означио вашу објаву као омиљену",
"notification.follow": "{name} вас је запратио",
"notification.follow_request": "{name} је затражио да вас прати",
- "notification.mention": "{name} вас је поменуо",
"notification.moderation-warning.learn_more": "Сазнајте више",
"notification.moderation_warning": "Добили сте модераторско упозорење",
"notification.moderation_warning.action_delete_statuses": "Неке од ваших објава су уклоњене.",
@@ -485,7 +473,6 @@
"notification.moderation_warning.action_silence": "Ваш налог је ограничен.",
"notification.moderation_warning.action_suspend": "Ваш налог је суспендован.",
"notification.own_poll": "Ваша анкета је завршена",
- "notification.poll": "Завршена је анкета у којој сте гласали",
"notification.reblog": "{name} је подржао вашу објаву",
"notification.relationships_severance_event": "Изгубљена веза са {name}",
"notification.relationships_severance_event.account_suspension": "Администратор са {from} је суспендовао {target}, што значи да више не можете да примате ажурирања од њих нити да комуницирате са њима.",
@@ -539,7 +526,6 @@
"notifications.policy.filter_not_following_title": "Људи које не пратите",
"notifications.policy.filter_private_mentions_hint": "Филтрирано осим ако је одговор на ваше помињање или ако пратите пошиљаоца",
"notifications.policy.filter_private_mentions_title": "Нежељена приватна помињања",
- "notifications.policy.title": "Филтрирај обавештења од…",
"notifications_permission_banner.enable": "Омогућити обавештења на радној површини",
"notifications_permission_banner.how_to_control": "Да бисте примали обавештења када Mastodon није отворен, омогућите обавештења на радној површини. Kада су обавештења на радној површини омогућена врсте интеракција које она генеришу могу се подешавати помоћу дугмета {icon}.",
"notifications_permission_banner.title": "Никада ништа не пропустите",
@@ -696,8 +682,11 @@
"server_banner.about_active_users": "Људи који су користили овај сервер у претходних 30 дана (месечно активних корисника)",
"server_banner.active_users": "активних корисника",
"server_banner.administered_by": "Администрира:",
+ "server_banner.is_one_of_many": "{domain} је један од многих независних Mastodon сервера које можете користити за учешће у федиверзуму.",
"server_banner.server_stats": "Статистике сервера:",
"sign_in_banner.create_account": "Направите налог",
+ "sign_in_banner.follow_anyone": "Пратите било кога широм федиверзума и погледајте све хронолошким редом. Нема алгоритама, реклама или мамаца за кликове на видику.",
+ "sign_in_banner.mastodon_is": "Mastodon је најбољи начин да будете у току са оним што се дешава.",
"sign_in_banner.sign_in": "Пријавите се",
"sign_in_banner.sso_redirect": "Пријавите се или се региструјте",
"status.admin_account": "Отвори модераторско окружење за @{name}",
@@ -715,12 +704,9 @@
"status.edit": "Уреди",
"status.edited": "Последње уређивање {date}",
"status.edited_x_times": "Уређено {count, plural, one {{count} пут} other {{count} пута}}",
- "status.embed": "Угради",
"status.favourite": "Омиљено",
"status.favourites": "{count, plural, one {# омиљено} few {# омиљена} other {# омиљених}}",
"status.filter": "Филтрирај ову објаву",
- "status.filtered": "Филтрирано",
- "status.hide": "Сакриј објаву",
"status.history.created": "{name} написао/ла {date}",
"status.history.edited": "{name} уредио/ла {date}",
"status.load_more": "Учитај још",
@@ -748,10 +734,7 @@
"status.report": "Пријави @{name}",
"status.sensitive_warning": "Осетљив садржај",
"status.share": "Подели",
- "status.show_filter_reason": "Ипак прикажи",
- "status.show_less": "Прикажи мање",
"status.show_less_all": "Прикажи мање за све",
- "status.show_more": "Прикажи више",
"status.show_more_all": "Прикажи више за све",
"status.show_original": "Прикажи оргинал",
"status.title.with_attachments": "{user} је објавио {attachmentCount, plural, one {прилог} few {{attachmentCount} прилога} other {{attachmentCount} прилога}}",
@@ -770,10 +753,6 @@
"time_remaining.minutes": "Остало {number, plural, one {# минут} few {# минута} other {# минута}}",
"time_remaining.moments": "Још неколико тренутака",
"time_remaining.seconds": "Остало {number, plural, one {# секунд} few {# секунде} other {# секунди}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} са других сервера се не приказују.",
- "timeline_hint.resources.followers": "Пратиоци",
- "timeline_hint.resources.follows": "Праћења",
- "timeline_hint.resources.statuses": "Старије објаве",
"trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особе} other {{counter} особа}} у протеклих {days, plural, one {дан} other {{days} дана}}",
"trends.trending_now": "У тренду сада",
"ui.beforeunload": "Ваш нацрт ће бити изгубљен ако напустите Mastodon.",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index ced6c36054f..6bb0b1424ab 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -11,7 +11,7 @@
"about.not_available": "Denna information har inte gjorts tillgänglig på denna server.",
"about.powered_by": "En decentraliserad plattform for sociala medier, drivet av {mastodon}",
"about.rules": "Serverregler",
- "account.account_note_header": "Anteckning",
+ "account.account_note_header": "Personlig anteckning",
"account.add_or_remove_from_list": "Lägg till i eller ta bort från listor",
"account.badges.bot": "Bot",
"account.badges.group": "Grupp",
@@ -19,7 +19,6 @@
"account.block_domain": "Blockera domänen {domain}",
"account.block_short": "Blockera",
"account.blocked": "Blockerad",
- "account.browse_more_on_origin_server": "Läs mer på den ursprungliga profilen",
"account.cancel_follow_request": "Återkalla din begäran om att få följa",
"account.copy": "Kopiera länk till profil",
"account.direct": "Nämn @{name} privat",
@@ -37,7 +36,7 @@
"account.followers.empty": "Ingen följer denna användare än.",
"account.followers_counter": "{count, plural, one {{counter} följare} other {{counter} följare}}",
"account.following": "Följer",
- "account.following_counter": "{count, plural, one {{counter} följd} other {{counter} följda}}",
+ "account.following_counter": "{count, plural, one {{counter} följer} other {{counter} följer}}",
"account.follows.empty": "Denna användare följer inte någon än.",
"account.go_to_profile": "Gå till profilen",
"account.hide_reblogs": "Dölj boostar från @{name}",
@@ -169,27 +168,32 @@
"compose_form.spoiler_placeholder": "Innehållsvarning (valfritt)",
"confirmation_modal.cancel": "Avbryt",
"confirmations.block.confirm": "Blockera",
- "confirmations.cancel_follow_request.confirm": "Återkalla förfrågan",
- "confirmations.cancel_follow_request.message": "Är du säker på att du vill återkalla din begäran om att följa {name}?",
"confirmations.delete.confirm": "Radera",
"confirmations.delete.message": "Är du säker på att du vill radera detta inlägg?",
+ "confirmations.delete.title": "Ta bort inlägg?",
"confirmations.delete_list.confirm": "Radera",
"confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?",
+ "confirmations.delete_list.title": "Ta bort listan?",
"confirmations.discard_edit_media.confirm": "Kasta",
"confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?",
- "confirmations.domain_block.confirm": "Blockera server",
- "confirmations.domain_block.message": "Är du verkligen, verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer inte se innehåll från den domänen i den allmänna tidslinjen eller i dina aviseringar. Dina följare från den domänen komer att tas bort.",
"confirmations.edit.confirm": "Redigera",
"confirmations.edit.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?",
+ "confirmations.edit.title": "Skriva över inlägg?",
"confirmations.logout.confirm": "Logga ut",
"confirmations.logout.message": "Är du säker på att du vill logga ut?",
+ "confirmations.logout.title": "Logga ut?",
"confirmations.mute.confirm": "Tysta",
"confirmations.redraft.confirm": "Radera & gör om",
"confirmations.redraft.message": "Är du säker på att du vill radera detta inlägg och göra om det? Favoritmarkeringar, boostar och svar till det ursprungliga inlägget kommer förlora sitt sammanhang.",
+ "confirmations.redraft.title": "Ta bort & gör om inlägget?",
"confirmations.reply.confirm": "Svara",
"confirmations.reply.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?",
+ "confirmations.reply.title": "Skriva över inlägget?",
"confirmations.unfollow.confirm": "Avfölj",
"confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?",
+ "confirmations.unfollow.title": "Avfölj %s?",
+ "content_warning.hide": "Dölj inlägg",
+ "content_warning.show": "Visa ändå",
"conversation.delete": "Radera konversation",
"conversation.mark_as_read": "Markera som läst",
"conversation.open": "Visa konversation",
@@ -297,8 +301,7 @@
"filter_modal.select_filter.subtitle": "Använd en befintlig kategori eller skapa en ny",
"filter_modal.select_filter.title": "Filtrera detta inlägg",
"filter_modal.title.status": "Filtrera ett inlägg",
- "filtered_notifications_banner.mentions": "{count, plural, one {omnämning} other {omnämnanden}}",
- "filtered_notifications_banner.pending_requests": "Aviseringar från {count, plural, =0 {ingen} one {en person} other {# personer}} du kanske känner",
+ "filtered_notifications_banner.pending_requests": "Från {count, plural, =0 {ingen} one {en person} other {# personer}} du kanske känner",
"filtered_notifications_banner.title": "Filtrerade aviseringar",
"firehose.all": "Allt",
"firehose.local": "Denna server",
@@ -347,6 +350,14 @@
"hashtag.follow": "Följ hashtagg",
"hashtag.unfollow": "Avfölj hashtagg",
"hashtags.and_other": "…och {count, plural, one {}other {# mer}}",
+ "hints.profiles.followers_may_be_missing": "Det kan saknas vissa följare av denna profil.",
+ "hints.profiles.follows_may_be_missing": "Det kan saknas vissa följare av denna profil.",
+ "hints.profiles.posts_may_be_missing": "Det kan saknas vissa följare för denna profil.",
+ "hints.profiles.see_more_followers": "Se fler följare på {domain}",
+ "hints.profiles.see_more_follows": "Se fler följare på {domain}",
+ "hints.profiles.see_more_posts": "Se fler inlägg på {domain}",
+ "hints.threads.replies_may_be_missing": "Det kan saknas svar från andra servrar.",
+ "hints.threads.see_more": "Se fler svar på {domain}",
"home.column_settings.show_reblogs": "Visa boostar",
"home.column_settings.show_replies": "Visa svar",
"home.hide_announcements": "Dölj notiser",
@@ -354,6 +365,17 @@
"home.pending_critical_update.link": "Se uppdateringar",
"home.pending_critical_update.title": "En kritisk säkerhetsuppdatering är tillgänglig!",
"home.show_announcements": "Visa notiser",
+ "ignore_notifications_modal.disclaimer": "Mastodon kan inte informera användarna om att du har ignorerat deras meddelanden. Ignorering av aviseringar kommer inte att stoppa själva meddelandena från att skickas.",
+ "ignore_notifications_modal.filter_instead": "Filtrera istället",
+ "ignore_notifications_modal.filter_to_act_users": "Du kommer fortfarande att kunna acceptera, avvisa eller rapportera användare",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering hjälper till att undvika eventuell förvirring",
+ "ignore_notifications_modal.filter_to_review_separately": "Du kan granska filtrerade aviseringar separat",
+ "ignore_notifications_modal.ignore": "Ignorera notifikationer",
+ "ignore_notifications_modal.limited_accounts_title": "Vill du ignorera aviseringar från modererade konton?",
+ "ignore_notifications_modal.new_accounts_title": "Vill du ignorera aviseringar från nya konton?",
+ "ignore_notifications_modal.not_followers_title": "Vill du ignorera aviseringar från personer som inte följer dig?",
+ "ignore_notifications_modal.not_following_title": "Vill du blockera aviseringar från personer som du inte följer dig?",
+ "ignore_notifications_modal.private_mentions_title": "Vill du ignorera aviseringar från oönskade privata omnämningar?",
"interaction_modal.description.favourite": "Med ett Mastodon-konto kan du favoritmarkera detta inlägg för att visa författaren att du gillar det och för att spara det till senare.",
"interaction_modal.description.follow": "Med ett Mastodon-konto kan du följa {name} för att se hens inlägg i ditt hemflöde.",
"interaction_modal.description.reblog": "Med ett Mastodon-konto kan du boosta detta inlägg för att dela den med dina egna följare.",
@@ -407,8 +429,6 @@
"keyboard_shortcuts.unfocus": "för att avfokusera skrivfält/sökfält",
"keyboard_shortcuts.up": "för att flytta uppåt i listan",
"lightbox.close": "Stäng",
- "lightbox.compress": "Komprimera bildvyrutan",
- "lightbox.expand": "Utöka bildvyrutan",
"lightbox.next": "Nästa",
"lightbox.previous": "Tidigare",
"limited_account_hint.action": "Visa profil ändå",
@@ -432,7 +452,7 @@
"lists.subheading": "Dina listor",
"load_pending": "{count, plural, one {# nytt objekt} other {# nya objekt}}",
"loading_indicator.label": "Laddar…",
- "media_gallery.toggle_visible": "Växla synlighet",
+ "media_gallery.hide": "Dölj",
"moved_to_account_banner.text": "Ditt konto {disabledAccount} är för närvarande inaktiverat eftersom du flyttat till {movedToAccount}.",
"mute_modal.hide_from_notifications": "Dölj från aviseringslistan",
"mute_modal.hide_options": "Dölj alternativ",
@@ -470,11 +490,23 @@
"navigation_bar.security": "Säkerhet",
"not_signed_in_indicator.not_signed_in": "Du behöver logga in för att få åtkomst till denna resurs.",
"notification.admin.report": "{name} rapporterade {target}",
+ "notification.admin.report_account": "{name} rapporterade {count, plural, one {ett inlägg} other {# inlägg}} från {target} för {category}",
+ "notification.admin.report_account_other": "{name} rapporterade {count, plural, one {ett inlägg} other {# inlägg}} från {target}",
+ "notification.admin.report_statuses": "{name} rapporterade {target} för {category}",
+ "notification.admin.report_statuses_other": "{name} rapporterade {target}",
"notification.admin.sign_up": "{name} registrerade sig",
+ "notification.admin.sign_up.name_and_others": "{name} och {count, plural, one {# en annan} other {# andra}} har registrerat sig",
"notification.favourite": "{name} favoritmarkerade ditt inlägg",
+ "notification.favourite.name_and_others_with_link": "{name} och {count, plural, one {# annan} other {# andra}} har favoritmarkerat ditt inlägg",
"notification.follow": "{name} följer dig",
+ "notification.follow.name_and_others": "{name} och {count, plural, one {# en annan} other {# andra}} följer dig",
"notification.follow_request": "{name} har begärt att följa dig",
- "notification.mention": "{name} nämnde dig",
+ "notification.follow_request.name_and_others": "{name} och {count, plural, one {# en annan} other {# andra}} har bett att följa dig",
+ "notification.label.mention": "Nämn",
+ "notification.label.private_mention": "Privat nämning",
+ "notification.label.private_reply": "Privata svar",
+ "notification.label.reply": "Svar",
+ "notification.mention": "Nämn",
"notification.moderation-warning.learn_more": "Läs mer",
"notification.moderation_warning": "Du har fått en moderationsvarning",
"notification.moderation_warning.action_delete_statuses": "Några av dina inlägg har tagits bort.",
@@ -485,8 +517,9 @@
"notification.moderation_warning.action_silence": "Ditt konto har begränsats.",
"notification.moderation_warning.action_suspend": "Ditt konto har stängts av.",
"notification.own_poll": "Din röstning har avslutats",
- "notification.poll": "En omröstning du röstat i har avslutats",
+ "notification.poll": "En enkät som du röstat i har avslutats",
"notification.reblog": "{name} boostade ditt inlägg",
+ "notification.reblog.name_and_others_with_link": "{name} och {count, plural, one {# annan} other {# andra}} har förhöjt ditt inlägg",
"notification.relationships_severance_event": "Förlorade kontakter med {name}",
"notification.relationships_severance_event.account_suspension": "En administratör från {from} har stängt av {target}, vilket innebär att du inte längre kan ta emot uppdateringar från dem eller interagera med dem.",
"notification.relationships_severance_event.domain_block": "En administratör från {from} har blockerat {target}, inklusive {followersCount} av dina följare och {followingCount, plural, one {# konto} other {# konton}} du följer.",
@@ -495,11 +528,27 @@
"notification.status": "{name} publicerade just ett inlägg",
"notification.update": "{name} redigerade ett inlägg",
"notification_requests.accept": "Godkänn",
+ "notification_requests.accept_multiple": "{count, plural, one {Acceptera # förfrågan…} other {Acceptera # förfrågningar…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Acceptera förfrågan} other {Acceptera förfrågningar}}",
+ "notification_requests.confirm_accept_multiple.message": "Du håller på att acceptera {count, plural, one {en förfrågan} other {# förfrågningar}} om avisering. Är du säker på att du vill fortsätta?",
+ "notification_requests.confirm_accept_multiple.title": "Vill du acceptera aviseringsförfrågningar?",
+ "notification_requests.confirm_dismiss_multiple.button": "Avvisa {count, plural, one {# förfrågan} other {# förfrågningar}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Du håller på att avfärda {count, plural, one {en begäran} other {# begäran}} om aviseringar. Du kommer inte enkelt att kunna komma åt {count, plural, one {det} other {dem}} igen. Är du säker på att du vill fortsätta?",
+ "notification_requests.confirm_dismiss_multiple.title": "Vill du acceptera aviseringsförfrågningar?",
"notification_requests.dismiss": "Avfärda",
+ "notification_requests.dismiss_multiple": "Avvisa {count, plural, one {# förfrågan} other {# förfrågningar}}...",
+ "notification_requests.edit_selection": "Redigera",
+ "notification_requests.exit_selection": "Klar",
+ "notification_requests.explainer_for_limited_account": "Aviseringar från detta konto har filtrerats eftersom kontot har begränsats av en moderator.",
+ "notification_requests.explainer_for_limited_remote_account": "Aviseringar från detta konto eller denna server har filtrerats eftersom kontot har begränsats av en moderator.",
+ "notification_requests.maximize": "Maximera",
+ "notification_requests.minimize_banner": "Minimera ruta för filtrerade aviseringar",
"notification_requests.notifications_from": "Aviseringar från {name}",
"notification_requests.title": "Filtrerade meddelanden",
+ "notification_requests.view": "Visa aviseringar",
"notifications.clear": "Rensa aviseringar",
"notifications.clear_confirmation": "Är du säker på att du vill rensa alla dina aviseringar permanent?",
+ "notifications.clear_title": "Rensa aviseringar?",
"notifications.column_settings.admin.report": "Nya rapporter:",
"notifications.column_settings.admin.sign_up": "Nya registreringar:",
"notifications.column_settings.alert": "Skrivbordsaviseringar",
@@ -531,6 +580,14 @@
"notifications.permission_denied": "Skrivbordsaviseringar är otillgängliga på grund av tidigare nekade förfrågningar om behörighet i webbläsaren",
"notifications.permission_denied_alert": "Skrivbordsaviseringar kan inte aktiveras, eftersom att webbläsarens behörighet har nekats innan",
"notifications.permission_required": "Skrivbordsaviseringar är otillgängliga eftersom att rättigheten som krävs inte har godkänts.",
+ "notifications.policy.accept": "Acceptera",
+ "notifications.policy.accept_hint": "Visa bland aviseringar",
+ "notifications.policy.drop": "Ignorera",
+ "notifications.policy.drop_hint": "Skicka ut i tomrummet för aldrig synas till igen",
+ "notifications.policy.filter": "Filtrera",
+ "notifications.policy.filter_hint": "Skicka till inkorgen för filtrerade aviserings",
+ "notifications.policy.filter_limited_accounts_hint": "Begränsade av servermoderatorer",
+ "notifications.policy.filter_limited_accounts_title": "Modererade konton",
"notifications.policy.filter_new_accounts.hint": "Skapad inom de senaste {days, plural, one {dagen} other {# dagarna}}",
"notifications.policy.filter_new_accounts_title": "Nya konton",
"notifications.policy.filter_not_followers_hint": "Inklusive personer som har följt dig kortare än {days, plural, one {en dag} other {# dagar}}",
@@ -539,7 +596,7 @@
"notifications.policy.filter_not_following_title": "Personer du inte följer",
"notifications.policy.filter_private_mentions_hint": "Filtrerat om det inte är som svar på ditt eget omnämnande eller om du följer avsändaren",
"notifications.policy.filter_private_mentions_title": "Oombedda privata omnämnanden",
- "notifications.policy.title": "Filtrera ut aviseringar från…",
+ "notifications.policy.title": "Hantera aviseringar från…",
"notifications_permission_banner.enable": "Aktivera skrivbordsaviseringar",
"notifications_permission_banner.how_to_control": "För att ta emot aviseringar när Mastodon inte är öppet, aktivera skrivbordsaviseringar. När de är aktiverade kan du styra exakt vilka typer av interaktioner som aviseras via {icon} -knappen ovan.",
"notifications_permission_banner.title": "Missa aldrig något",
@@ -666,9 +723,13 @@
"report.unfollow_explanation": "Du följer detta konto. Avfölj hen för att inte se hens inlägg i ditt hemflöde.",
"report_notification.attached_statuses": "bifogade {count, plural, one {{count} inlägg} other {{count} inlägg}}",
"report_notification.categories.legal": "Rättsligt",
+ "report_notification.categories.legal_sentence": "olagligt innehåll",
"report_notification.categories.other": "Övrigt",
+ "report_notification.categories.other_sentence": "övrigt",
"report_notification.categories.spam": "Skräppost",
+ "report_notification.categories.spam_sentence": "skräppost",
"report_notification.categories.violation": "Regelöverträdelse",
+ "report_notification.categories.violation_sentence": "regelöverträdelse",
"report_notification.open": "Öppna rapport",
"search.no_recent_searches": "Inga sökningar nyligen",
"search.placeholder": "Sök",
@@ -696,8 +757,11 @@
"server_banner.about_active_users": "Personer som använt denna server de senaste 30 dagarna (månatligt aktiva användare)",
"server_banner.active_users": "aktiva användare",
"server_banner.administered_by": "Administrerad av:",
+ "server_banner.is_one_of_many": "{domain} är en av de många oberoende Mastodon-servrar som du kan använda för att delta i Fediversen.",
"server_banner.server_stats": "Serverstatistik:",
"sign_in_banner.create_account": "Skapa konto",
+ "sign_in_banner.follow_anyone": "Följ vem som helst över Fediverse och se allt i kronologisk ordning. Inga algoritmer, inga annonser och inga klickbeten i sikte.",
+ "sign_in_banner.mastodon_is": "Mastodon är det bästa sättet att hänga med i vad som händer.",
"sign_in_banner.sign_in": "Logga in",
"sign_in_banner.sso_redirect": "Logga in eller registrera dig",
"status.admin_account": "Öppet modereringsgränssnitt för @{name}",
@@ -715,12 +779,10 @@
"status.edit": "Redigera",
"status.edited": "Senast ändrad {date}",
"status.edited_x_times": "Redigerad {count, plural, one {{count} gång} other {{count} gånger}}",
- "status.embed": "Bädda in",
+ "status.embed": "Hämta kod för inbäddning",
"status.favourite": "Favoritmarkera",
"status.favourites": "{count, plural, one {favorit} other {favoriter}}",
"status.filter": "Filtrera detta inlägg",
- "status.filtered": "Filtrerat",
- "status.hide": "Dölj inlägg",
"status.history.created": "{name} skapade {date}",
"status.history.edited": "{name} redigerade {date}",
"status.load_more": "Ladda fler",
@@ -748,10 +810,7 @@
"status.report": "Rapportera @{name}",
"status.sensitive_warning": "Känsligt innehåll",
"status.share": "Dela",
- "status.show_filter_reason": "Visa ändå",
- "status.show_less": "Visa mindre",
"status.show_less_all": "Visa mindre för alla",
- "status.show_more": "Visa mer",
"status.show_more_all": "Visa mer för alla",
"status.show_original": "Visa original",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -770,10 +829,6 @@
"time_remaining.minutes": "{number, plural, one {# minut} other {# minuter}} kvar",
"time_remaining.moments": "Återstående tillfällen",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} kvar",
- "timeline_hint.remote_resource_not_displayed": "{resource} från andra servrar visas inte.",
- "timeline_hint.resources.followers": "Följare",
- "timeline_hint.resources.follows": "Följer",
- "timeline_hint.resources.statuses": "Äldre inlägg",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} senaste {days, plural, one {dygnet} other {{days} dagarna}}",
"trends.trending_now": "Trendar nu",
"ui.beforeunload": "Ditt utkast kommer att förloras om du lämnar Mastodon.",
diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json
index 43cfc78d5bb..404f7e2fd4c 100644
--- a/app/javascript/mastodon/locales/szl.json
+++ b/app/javascript/mastodon/locales/szl.json
@@ -10,12 +10,10 @@
"about.domain_blocks.suspended.title": "Zawiyszōne",
"about.not_available": "Ta informacyjŏ niy bōła udostympniōna na tym serwerze.",
"about.rules": "Zasady serwera",
- "account.account_note_header": "Notatka",
"account.badges.bot": "Bot",
"account.badges.group": "Grupa",
"account.block": "Zablokuj @{name}",
"account.block_domain": "Zablokuj domena {domain}",
- "account.browse_more_on_origin_server": "Ôbocz wiyncyj we ôryginalnym profilu",
"account.cancel_follow_request": "Withdraw follow request",
"account.domain_blocked": "Domena zablokowanŏ",
"account.media": "Mydia",
@@ -23,7 +21,6 @@
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.requested": "Awaiting approval",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account_note.placeholder": "Click to add a note",
"column.pins": "Pinned toot",
"community.column_settings.media_only": "Media only",
@@ -105,7 +102,6 @@
"status.pinned": "Pinned toot",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index ac0984293af..87d6660f053 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -4,7 +4,6 @@
"about.disclaimer": "மாஸ்டோடன் இலவச, திறந்த மூல மென்பொருள் மற்றும் மாஸ்டோடன் gGmbH இன் வர்த்தக முத்திரை.",
"about.domain_blocks.no_reason_available": "காரணம் கிடைக்கவில்லை",
"about.domain_blocks.preamble": "மாஸ்டோடன் பொதுவாக நீங்கள் ஃபெடிவர்ஸில் உள்ள வேறு எந்தச் சர்வரிலிருந்தும் உள்ளடக்கத்தைப் பார்க்கவும், பயனர்களுடன் தொடர்பு கொள்ளவும் அனுமதிக்கிறது. இந்தக் குறிப்பிட்ட சர்வரில் செய்யப்பட்ட விதிவிலக்குகள் இவை.",
- "account.account_note_header": "குறிப்பு",
"account.add_or_remove_from_list": "பட்டியல்களில் சேர்/நீக்கு",
"account.badges.bot": "பாட்",
"account.badges.group": "குழு",
@@ -12,7 +11,6 @@
"account.block_domain": "{domain} யில் இருந்து வரும் எல்லாவற்றையும் மறை",
"account.block_short": "தடு",
"account.blocked": "முடக்கப்பட்டது",
- "account.browse_more_on_origin_server": "மேலும் உலாவ சுயவிவரத்திற்குச் செல்க",
"account.cancel_follow_request": "Withdraw follow request",
"account.disable_notifications": "@{name} பதிவிட்டல் எனக்கு தெரியபடுத்த வேண்டாம்",
"account.domain_blocked": "மறைக்கப்பட்டத் தளங்கள்",
@@ -24,9 +22,7 @@
"account.follow_back": "பின்தொடரு",
"account.followers": "பின்தொடர்பவர்கள்",
"account.followers.empty": "இதுவரை யாரும் இந்த பயனரைப் பின்தொடரவில்லை.",
- "account.followers_counter": "{count, plural, one {{counter} வாசகர்} other {{counter} வாசகர்கள்}}",
"account.following": "பின்தொடரும்",
- "account.following_counter": "{count, plural,one {{counter} சந்தா} other {{counter} சந்தாக்கள்}}",
"account.follows.empty": "இந்த பயனர் இதுவரை யாரையும் பின்தொடரவில்லை.",
"account.go_to_profile": "சுயவிவரத்திற்குச் செல்லவும்",
"account.hide_reblogs": "இருந்து ஊக்கியாக மறை @{name}",
@@ -45,7 +41,6 @@
"account.requested": "ஒப்புதலுக்காகக் காத்திருக்கிறது. பின்தொடரும் கோரிக்கையை நீக்க அழுத்தவும்",
"account.share": "@{name} உடைய விவரத்தை பகிர்",
"account.show_reblogs": "காட்டு boosts இருந்து @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} டூட்} other {{counter} டூட்டுகள்}}",
"account.unblock": "@{name} மீது தடை நீக்குக",
"account.unblock_domain": "{domain} ஐ காண்பி",
"account.unblock_short": "தடையை நீக்கு",
@@ -133,7 +128,6 @@
"confirmations.delete_list.message": "இப்பட்டியலை நிரந்தரமாக நீக்க நிச்சயம் விரும்புகிறீர்களா?",
"confirmations.discard_edit_media.confirm": "நிராகரி",
"confirmations.discard_edit_media.message": "சேமிக்கப்படாத மாற்றங்கள் ஊடக விளக்கம் அல்லது முன்னோட்டத்தில் உள்ளது. அவற்றை நிராகரிக்கவா?",
- "confirmations.domain_block.message": "நீங்கள் முழு {domain} களத்தையும் நிச்சயமாக, நிச்சயமாகத் தடுக்க விரும்புகிறீர்களா? பெரும்பாலும் சில குறிப்பிட்ட பயனர்களைத் தடுப்பதே போதுமானது. முழு களத்தையும் தடுத்தால், அதிலிருந்து வரும் எந்தப் பதிவையும் உங்களால் காண முடியாது, மேலும் அப்பதிவுகள் குறித்த அறிவிப்புகளும் உங்களுக்கு வராது. அந்தக் களத்தில் இருக்கும் பின்தொடர்பவர்கள் உங்கள் பக்கத்திலிருந்து நீக்கப்படுவார்கள்.",
"confirmations.logout.confirm": "வெளியேறு",
"confirmations.logout.message": "நிச்சயமாக நீங்கள் வெளியேற விரும்புகிறீர்களா?",
"confirmations.mute.confirm": "அமைதியாக்கு",
@@ -258,7 +252,6 @@
"lists.search": "நீங்கள் பின்தொடரும் நபர்கள் மத்தியில் தேடுதல்",
"lists.subheading": "உங்கள் பட்டியல்கள்",
"load_pending": "{count, plural,one {# புதியது}other {# புதியவை}}",
- "media_gallery.toggle_visible": "நிலைமாற்று தெரியும்",
"navigation_bar.blocks": "தடுக்கப்பட்ட பயனர்கள்",
"navigation_bar.bookmarks": "அடையாளக்குறிகள்",
"navigation_bar.community_timeline": "உள்ளூர் காலக்கெடு",
@@ -279,9 +272,7 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} உங்களைப் பின்தொடர்கிறார்",
"notification.follow_request": "{name} உங்களைப் பின்தொடரக் கோருகிறார்",
- "notification.mention": "{name} நீங்கள் குறிப்பிட்டுள்ளீர்கள்",
"notification.own_poll": "கருத்துக்கணிப்பு நிறைவடைந்தது",
- "notification.poll": "நீங்கள் வாக்களித்த வாக்கெடுப்பு முடிவடைந்தது",
"notification.reblog": "{name} உங்கள் நிலை அதிகரித்தது",
"notifications.clear": "அறிவிப்புகளை அழிக்கவும்",
"notifications.clear_confirmation": "உங்கள் எல்லா அறிவிப்புகளையும் நிரந்தரமாக அழிக்க விரும்புகிறீர்களா?",
@@ -354,8 +345,6 @@
"status.delete": "நீக்கு",
"status.detailed_status": "விரிவான உரையாடல் காட்சி",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "கிடத்து",
- "status.filtered": "வடிகட்டு",
"status.load_more": "அதிகமாய் ஏற்று",
"status.media_hidden": "மீடியா மறைக்கப்பட்டது",
"status.mention": "குறிப்பிடு @{name}",
@@ -377,9 +366,7 @@
"status.report": "@{name} மீது புகாரளி",
"status.sensitive_warning": "உணர்திறன் உள்ளடக்கம்",
"status.share": "பங்கிடு",
- "status.show_less": "குறைவாகக் காண்பி",
"status.show_less_all": "அனைத்தையும் குறைவாக காட்டு",
- "status.show_more": "மேலும் காட்ட",
"status.show_more_all": "அனைவருக்கும் மேலும் காட்டு",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.unmute_conversation": "ஊமையாக உரையாடல் இல்லை",
@@ -391,10 +378,6 @@
"time_remaining.minutes": "{number, plural, one {# minute} மற்ற {# minutes}} left",
"time_remaining.moments": "தருணங்கள் மீதமுள்ளன",
"time_remaining.seconds": "{number, plural, one {# second} மற்ற {# seconds}} left",
- "timeline_hint.remote_resource_not_displayed": "பிற சர்வர்களிலிருந்து வரும் {resource} காட்டப்படவில்லை.",
- "timeline_hint.resources.followers": "வாசகர்கள்",
- "timeline_hint.resources.follows": "வாசிக்கிறார்",
- "timeline_hint.resources.statuses": "பழைய டூட்டுகள்",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "இப்போது செல்திசையில் இருப்பவை",
"ui.beforeunload": "நீங்கள் வெளியே சென்றால் உங்கள் வரைவு இழக்கப்படும் மஸ்தோடோன்.",
diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json
index 825cfb93bdf..6a86088fa88 100644
--- a/app/javascript/mastodon/locales/tai.json
+++ b/app/javascript/mastodon/locales/tai.json
@@ -9,7 +9,6 @@
"account.posts": "Huah-siann",
"account.posts_with_replies": "Huah-siann kah huê-ìng",
"account.requested": "Tán-thāi phue-tsún",
- "account.statuses_counter": "{count, plural, one {{counter} Huah-siann} other {{counter} Huah-siann}}",
"account_note.placeholder": "Tiám tsi̍t-ē ka-thiam pī-tsù",
"column.pins": "Tah thâu-tsîng ê huah-siann",
"community.column_settings.media_only": "Kan-na muî-thé",
@@ -91,7 +90,6 @@
"status.pinned": "Pinned toot",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index 284102c381b..40fbd7f7bde 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -25,7 +25,6 @@
"account.requested": "ఆమోదం కోసం వేచి ఉంది. అభ్యర్థనను రద్దు చేయడానికి క్లిక్ చేయండి",
"account.share": "@{name} యొక్క ప్రొఫైల్ను పంచుకోండి",
"account.show_reblogs": "@{name}నుంచి బూస్ట్ లను చూపించు",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "@{name}పై బ్లాక్ ను తొలగించు",
"account.unblock_domain": "{domain}ను దాచవద్దు",
"account.unendorse": "ప్రొఫైల్లో చూపించవద్దు",
@@ -74,7 +73,6 @@
"confirmations.delete.message": "మీరు ఖచ్చితంగా ఈ స్టేటస్ ని తొలగించాలనుకుంటున్నారా?",
"confirmations.delete_list.confirm": "తొలగించు",
"confirmations.delete_list.message": "మీరు ఖచ్చితంగా ఈ జాబితాను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?",
- "confirmations.domain_block.message": "మీరు నిజంగా నిజంగా మొత్తం {domain} ని బ్లాక్ చేయాలనుకుంటున్నారా? చాలా సందర్భాలలో కొన్ని లక్ష్యంగా ఉన్న బ్లాక్స్ లేదా మ్యూట్స్ సరిపోతాయి మరియు ఉత్తమమైనవి. మీరు ఆ డొమైన్ నుండి కంటెంట్ను ఏ ప్రజా కాలక్రమాలలో లేదా మీ నోటిఫికేషన్లలో చూడలేరు. ఆ డొమైన్ నుండి మీ అనుచరులు తీసివేయబడతారు.",
"confirmations.mute.confirm": "మ్యూట్ చేయి",
"confirmations.redraft.confirm": "తొలగించు & తిరగరాయు",
"confirmations.reply.confirm": "ప్రత్యుత్తరమివ్వు",
@@ -169,7 +167,6 @@
"lists.new.title_placeholder": "కొత్త జాబితా శీర్షిక",
"lists.search": "మీరు అనుసరించే వ్యక్తులలో శోధించండి",
"lists.subheading": "మీ జాబితాలు",
- "media_gallery.toggle_visible": "దృశ్యమానతను టోగుల్ చేయండి",
"navigation_bar.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు",
"navigation_bar.community_timeline": "స్థానిక కాలక్రమం",
"navigation_bar.compose": "కొత్త టూట్ను రాయండి",
@@ -187,8 +184,6 @@
"navigation_bar.security": "భద్రత",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} మిమ్మల్ని అనుసరిస్తున్నారు",
- "notification.mention": "{name} మిమ్మల్ని ప్రస్తావించారు",
- "notification.poll": "మీరు పాల్గొనిన ఎన్సిక ముగిసినది",
"notification.reblog": "{name} మీ స్టేటస్ ను బూస్ట్ చేసారు",
"notifications.clear": "ప్రకటనలను తుడిచివేయు",
"notifications.clear_confirmation": "మీరు మీ అన్ని నోటిఫికేషన్లను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?",
@@ -250,8 +245,6 @@
"status.delete": "తొలగించు",
"status.detailed_status": "వివరణాత్మక సంభాషణ వీక్షణ",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "ఎంబెడ్",
- "status.filtered": "వడకట్టబడిన",
"status.load_more": "మరిన్ని లోడ్ చేయి",
"status.media_hidden": "మీడియా దాచబడింది",
"status.mention": "@{name}ను ప్రస్తావించు",
@@ -272,9 +265,7 @@
"status.report": "@{name}పై ఫిర్యాదుచేయు",
"status.sensitive_warning": "సున్నితమైన కంటెంట్",
"status.share": "పంచుకోండి",
- "status.show_less": "తక్కువ చూపించు",
"status.show_less_all": "అన్నిటికీ తక్కువ చూపించు",
- "status.show_more": "ఇంకా చూపించు",
"status.show_more_all": "అన్నిటికీ ఇంకా చూపించు",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.unmute_conversation": "సంభాషణను అన్మ్యూట్ చేయి",
@@ -282,7 +273,6 @@
"tabs_bar.home": "హోమ్",
"tabs_bar.notifications": "ప్రకటనలు",
"time_remaining.moments": "కొన్ని క్షణాలు మాత్రమే మిగిలి ఉన్నాయి",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"ui.beforeunload": "మీరు మాస్టొడొన్ను వదిలివేస్తే మీ డ్రాఫ్ట్లు పోతాయి.",
"upload_area.title": "అప్లోడ్ చేయడానికి డ్రాగ్ & డ్రాప్ చేయండి",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 64abb394bfc..d446cacb92d 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -1,5 +1,5 @@
{
- "about.blocks": "เซิร์ฟเวอร์ที่มีการกลั่นกรอง",
+ "about.blocks": "เซิร์ฟเวอร์ที่ได้รับการกลั่นกรอง",
"about.contact": "ติดต่อ:",
"about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH",
"about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน",
@@ -11,7 +11,7 @@
"about.not_available": "ไม่ได้ทำให้ข้อมูลนี้พร้อมใช้งานในเซิร์ฟเวอร์นี้",
"about.powered_by": "สื่อสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}",
"about.rules": "กฎของเซิร์ฟเวอร์",
- "account.account_note_header": "หมายเหตุ",
+ "account.account_note_header": "หมายเหตุส่วนบุคคล",
"account.add_or_remove_from_list": "เพิ่มหรือเอาออกจากรายการ",
"account.badges.bot": "อัตโนมัติ",
"account.badges.group": "กลุ่ม",
@@ -19,7 +19,6 @@
"account.block_domain": "ปิดกั้นโดเมน {domain}",
"account.block_short": "ปิดกั้น",
"account.blocked": "ปิดกั้นอยู่",
- "account.browse_more_on_origin_server": "เรียกดูเพิ่มเติมในโปรไฟล์ดั้งเดิม",
"account.cancel_follow_request": "ยกเลิกการติดตาม",
"account.copy": "คัดลอกลิงก์ไปยังโปรไฟล์",
"account.direct": "กล่าวถึง @{name} แบบส่วนตัว",
@@ -98,6 +97,8 @@
"block_modal.title": "ปิดกั้นผู้ใช้?",
"block_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา",
"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": "โอ้ ไม่!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "คำเตือนเนื้อหา (ไม่จำเป็น)",
"confirmation_modal.cancel": "ยกเลิก",
"confirmations.block.confirm": "ปิดกั้น",
- "confirmations.cancel_follow_request.confirm": "ถอนคำขอ",
- "confirmations.cancel_follow_request.message": "คุณแน่ใจหรือไม่ว่าต้องการถอนคำขอเพื่อติดตาม {name} ของคุณ?",
"confirmations.delete.confirm": "ลบ",
"confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้?",
+ "confirmations.delete.title": "ลบโพสต์?",
"confirmations.delete_list.confirm": "ลบ",
"confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?",
+ "confirmations.delete_list.title": "ลบรายการ?",
"confirmations.discard_edit_media.confirm": "ละทิ้ง",
"confirmations.discard_edit_media.message": "คุณมีการเปลี่ยนแปลงคำอธิบายหรือตัวอย่างสื่อที่ยังไม่ได้บันทึก ละทิ้งการเปลี่ยนแปลงเหล่านั้นต่อไป?",
- "confirmations.domain_block.confirm": "ปิดกั้นเซิร์ฟเวอร์",
- "confirmations.domain_block.message": "คุณแน่ใจจริง ๆ หรือไม่ว่าต้องการปิดกั้นทั้ง {domain}? ในกรณีส่วนใหญ่ การปิดกั้นหรือการซ่อนแบบกำหนดเป้าหมายไม่กี่รายการนั้นเพียงพอและเป็นที่นิยม คุณจะไม่เห็นเนื้อหาจากโดเมนนั้นในเส้นเวลาสาธารณะใด ๆ หรือการแจ้งเตือนของคุณ จะเอาผู้ติดตามของคุณจากโดเมนนั้นออก",
"confirmations.edit.confirm": "แก้ไข",
"confirmations.edit.message": "การแก้ไขในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
+ "confirmations.edit.title": "เขียนทับโพสต์?",
"confirmations.logout.confirm": "ออกจากระบบ",
"confirmations.logout.message": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ?",
+ "confirmations.logout.title": "ออกจากระบบ?",
"confirmations.mute.confirm": "ซ่อน",
"confirmations.redraft.confirm": "ลบแล้วร่างใหม่",
"confirmations.redraft.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้แล้วร่างโพสต์ใหม่? รายการโปรดและการดันจะสูญหาย และการตอบกลับโพสต์ดั้งเดิมจะไม่มีความเกี่ยวพัน",
+ "confirmations.redraft.title": "ลบแล้วร่างโพสต์ใหม่?",
"confirmations.reply.confirm": "ตอบกลับ",
"confirmations.reply.message": "การตอบกลับในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
+ "confirmations.reply.title": "เขียนทับโพสต์?",
"confirmations.unfollow.confirm": "เลิกติดตาม",
"confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?",
+ "confirmations.unfollow.title": "เลิกติดตามผู้ใช้?",
+ "content_warning.hide": "ซ่อนโพสต์",
+ "content_warning.show": "แสดงต่อไป",
"conversation.delete": "ลบการสนทนา",
"conversation.mark_as_read": "ทำเครื่องหมายว่าอ่านแล้ว",
"conversation.open": "ดูการสนทนา",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "ใช้หมวดหมู่ที่มีอยู่หรือสร้างหมวดหมู่ใหม่",
"filter_modal.select_filter.title": "กรองโพสต์นี้",
"filter_modal.title.status": "กรองโพสต์",
- "filtered_notifications_banner.mentions": "{count, plural, other {การกล่าวถึง}}",
- "filtered_notifications_banner.pending_requests": "การแจ้งเตือนจาก {count, plural, =0 {ไม่มีใคร} other {# คน}} ที่คุณอาจรู้จัก",
+ "filter_warning.matches_filter": "ตรงกับตัวกรอง “{title}”",
+ "filtered_notifications_banner.pending_requests": "จาก {count, plural, =0 {ไม่มีใคร} other {# คน}} ที่คุณอาจรู้จัก",
"filtered_notifications_banner.title": "การแจ้งเตือนที่กรองอยู่",
"firehose.all": "ทั้งหมด",
"firehose.local": "เซิร์ฟเวอร์นี้",
@@ -347,6 +353,14 @@
"hashtag.follow": "ติดตามแฮชแท็ก",
"hashtag.unfollow": "เลิกติดตามแฮชแท็ก",
"hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}",
+ "hints.profiles.followers_may_be_missing": "ผู้ติดตามสำหรับโปรไฟล์นี้อาจขาดหายไป",
+ "hints.profiles.follows_may_be_missing": "การติดตามสำหรับโปรไฟล์นี้อาจขาดหายไป",
+ "hints.profiles.posts_may_be_missing": "โพสต์บางส่วนจากโปรไฟล์นี้อาจขาดหายไป",
+ "hints.profiles.see_more_followers": "ดูผู้ติดตามเพิ่มเติมใน {domain}",
+ "hints.profiles.see_more_follows": "ดูการติดตามเพิ่มเติมใน {domain}",
+ "hints.profiles.see_more_posts": "ดูโพสต์เพิ่มเติมใน {domain}",
+ "hints.threads.replies_may_be_missing": "การตอบกลับจากเซิร์ฟเวอร์อื่น ๆ อาจขาดหายไป",
+ "hints.threads.see_more": "ดูการตอบกลับเพิ่มเติมใน {domain}",
"home.column_settings.show_reblogs": "แสดงการดัน",
"home.column_settings.show_replies": "แสดงการตอบกลับ",
"home.hide_announcements": "ซ่อนประกาศ",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "ดูการอัปเดต",
"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": "คุณสามารถตรวจทานการแจ้งเตือนที่กรองอยู่แยกต่างหาก",
+ "ignore_notifications_modal.ignore": "เพิกเฉยการแจ้งเตือน",
+ "ignore_notifications_modal.limited_accounts_title": "เพิกเฉยการแจ้งเตือนจากบัญชีที่ได้รับการกลั่นกรอง?",
+ "ignore_notifications_modal.new_accounts_title": "เพิกเฉยการแจ้งเตือนจากบัญชีใหม่?",
+ "ignore_notifications_modal.not_followers_title": "เพิกเฉยการแจ้งเตือนจากผู้คนที่ไม่ได้ติดตามคุณ?",
+ "ignore_notifications_modal.not_following_title": "เพิกเฉยการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม?",
+ "ignore_notifications_modal.private_mentions_title": "เพิกเฉยการแจ้งเตือนจากการกล่าวถึงแบบส่วนตัวที่ไม่พึงประสงค์?",
"interaction_modal.description.favourite": "ด้วยบัญชีใน Mastodon คุณสามารถชื่นชอบโพสต์นี้เพื่อแจ้งให้ผู้สร้างทราบว่าคุณชื่นชมโพสต์และบันทึกโพสต์ไว้สำหรับภายหลัง",
"interaction_modal.description.follow": "ด้วยบัญชีใน Mastodon คุณสามารถติดตาม {name} เพื่อรับโพสต์ของเขาในฟีดหน้าแรกของคุณ",
"interaction_modal.description.reblog": "ด้วยบัญชีใน Mastodon คุณสามารถดันโพสต์นี้เพื่อแชร์โพสต์กับผู้ติดตามของคุณเอง",
@@ -407,8 +432,6 @@
"keyboard_shortcuts.unfocus": "เลิกโฟกัสพื้นที่เขียนข้อความ/การค้นหา",
"keyboard_shortcuts.up": "ย้ายขึ้นในรายการ",
"lightbox.close": "ปิด",
- "lightbox.compress": "บีบอัดกล่องดูภาพ",
- "lightbox.expand": "ขยายกล่องดูภาพ",
"lightbox.next": "ถัดไป",
"lightbox.previous": "ก่อนหน้า",
"limited_account_hint.action": "แสดงโปรไฟล์ต่อไป",
@@ -432,7 +455,7 @@
"lists.subheading": "รายการของคุณ",
"load_pending": "{count, plural, other {# รายการใหม่}}",
"loading_indicator.label": "กำลังโหลด…",
- "media_gallery.toggle_visible": "{number, plural, other {ซ่อนภาพ}}",
+ "media_gallery.hide": "ซ่อน",
"moved_to_account_banner.text": "มีการปิดใช้งานบัญชีของคุณ {disabledAccount} ในปัจจุบันเนื่องจากคุณได้ย้ายไปยัง {movedToAccount}",
"mute_modal.hide_from_notifications": "ซ่อนจากการแจ้งเตือน",
"mute_modal.hide_options": "ซ่อนตัวเลือก",
@@ -444,6 +467,7 @@
"mute_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา",
"mute_modal.you_wont_see_posts": "เขายังคงสามารถเห็นโพสต์ของคุณ แต่คุณจะไม่เห็นโพสต์ของเขา",
"navigation_bar.about": "เกี่ยวกับ",
+ "navigation_bar.administration": "การดูแล",
"navigation_bar.advanced_interface": "เปิดในส่วนติดต่อเว็บขั้นสูง",
"navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
"navigation_bar.bookmarks": "ที่คั่นหน้า",
@@ -460,6 +484,7 @@
"navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม",
"navigation_bar.lists": "รายการ",
"navigation_bar.logout": "ออกจากระบบ",
+ "navigation_bar.moderation": "การกลั่นกรอง",
"navigation_bar.mutes": "ผู้ใช้ที่ซ่อนอยู่",
"navigation_bar.opened_in_classic_interface": "จะเปิดโพสต์, บัญชี และหน้าที่เฉพาะเจาะจงอื่น ๆ เป็นค่าเริ่มต้นในส่วนติดต่อเว็บแบบคลาสสิก",
"navigation_bar.personal": "ส่วนบุคคล",
@@ -470,11 +495,23 @@
"navigation_bar.security": "ความปลอดภัย",
"not_signed_in_indicator.not_signed_in": "คุณจำเป็นต้องเข้าสู่ระบบเพื่อเข้าถึงทรัพยากรนี้",
"notification.admin.report": "{name} ได้รายงาน {target}",
+ "notification.admin.report_account": "{name} ได้รายงาน {count, plural, other {# โพสต์}}จาก {target} สำหรับ {category}",
+ "notification.admin.report_account_other": "{name} ได้รายงาน {count, plural, other {# โพสต์}}จาก {target}",
+ "notification.admin.report_statuses": "{name} ได้รายงาน {target} สำหรับ {category}",
+ "notification.admin.report_statuses_other": "{name} ได้รายงาน {target}",
"notification.admin.sign_up": "{name} ได้ลงทะเบียน",
+ "notification.admin.sign_up.name_and_others": "{name} และ {count, plural, other {# อื่น ๆ}} ได้ลงทะเบียน",
"notification.favourite": "{name} ได้ชื่นชอบโพสต์ของคุณ",
+ "notification.favourite.name_and_others_with_link": "{name} และ {count, plural, other {# อื่น ๆ}} ได้ชื่นชอบโพสต์ของคุณ",
"notification.follow": "{name} ได้ติดตามคุณ",
+ "notification.follow.name_and_others": "{name} และ {count, plural, other {# อื่น ๆ}} ได้ติดตามคุณ",
"notification.follow_request": "{name} ได้ขอติดตามคุณ",
- "notification.mention": "{name} ได้กล่าวถึงคุณ",
+ "notification.follow_request.name_and_others": "{name} และ {count, plural, other {# อื่น ๆ}} ได้ขอติดตามคุณ",
+ "notification.label.mention": "การกล่าวถึง",
+ "notification.label.private_mention": "การกล่าวถึงแบบส่วนตัว",
+ "notification.label.private_reply": "การตอบกลับแบบส่วนตัว",
+ "notification.label.reply": "การตอบกลับ",
+ "notification.mention": "การกล่าวถึง",
"notification.moderation-warning.learn_more": "เรียนรู้เพิ่มเติม",
"notification.moderation_warning": "คุณได้รับคำเตือนการกลั่นกรอง",
"notification.moderation_warning.action_delete_statuses": "เอาโพสต์บางส่วนของคุณออกแล้ว",
@@ -487,6 +524,7 @@
"notification.own_poll": "การสำรวจความคิดเห็นของคุณได้สิ้นสุดแล้ว",
"notification.poll": "การสำรวจความคิดเห็นที่คุณได้ลงคะแนนได้สิ้นสุดแล้ว",
"notification.reblog": "{name} ได้ดันโพสต์ของคุณ",
+ "notification.reblog.name_and_others_with_link": "{name} และ {count, plural, other {# อื่น ๆ}} ได้ดันโพสต์ของคุณ",
"notification.relationships_severance_event": "สูญเสียการเชื่อมต่อกับ {name}",
"notification.relationships_severance_event.account_suspension": "ผู้ดูแลจาก {from} ได้ระงับ {target} ซึ่งหมายความว่าคุณจะไม่สามารถรับการอัปเดตจากเขาหรือโต้ตอบกับเขาได้อีกต่อไป",
"notification.relationships_severance_event.domain_block": "ผู้ดูแลจาก {from} ได้ปิดกั้น {target} รวมถึง {followersCount} ผู้ติดตามของคุณและ {followingCount, plural, other {# บัญชี}}ที่คุณติดตาม",
@@ -495,11 +533,27 @@
"notification.status": "{name} เพิ่งโพสต์",
"notification.update": "{name} ได้แก้ไขโพสต์",
"notification_requests.accept": "ยอมรับ",
+ "notification_requests.accept_multiple": "{count, plural, other {ยอมรับ # คำขอ…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, other {ยอมรับคำขอ}}",
+ "notification_requests.confirm_accept_multiple.message": "คุณกำลังจะยอมรับ {count, plural, other {# คำขอการแจ้งเตือน}} คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
+ "notification_requests.confirm_accept_multiple.title": "ยอมรับคำขอการแจ้งเตือน?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, other {ปิดคำขอ}}",
+ "notification_requests.confirm_dismiss_multiple.message": "คุณกำลังจะปิด {count, plural, other {# คำขอการแจ้งเตือน}} คุณจะไม่สามารถเข้าถึง{count, plural, other {การแจ้งเตือน}}ได้อย่างง่ายดายอีกครั้ง คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
+ "notification_requests.confirm_dismiss_multiple.title": "ปิดคำขอการแจ้งเตือน?",
"notification_requests.dismiss": "ปิด",
+ "notification_requests.dismiss_multiple": "{count, plural, other {ปิด # คำขอ…}}",
+ "notification_requests.edit_selection": "แก้ไข",
+ "notification_requests.exit_selection": "เสร็จสิ้น",
+ "notification_requests.explainer_for_limited_account": "มีการกรองการแจ้งเตือนจากบัญชีนี้เนื่องจากมีการจำกัดบัญชีโดยผู้กลั่นกรอง",
+ "notification_requests.explainer_for_limited_remote_account": "มีการกรองการแจ้งเตือนจากบัญชีนี้เนื่องจากมีการจำกัดบัญชีหรือเซิร์ฟเวอร์ของบัญชีโดยผู้กลั่นกรอง",
+ "notification_requests.maximize": "ขยายใหญ่สุด",
+ "notification_requests.minimize_banner": "ย่อแบนเนอร์การแจ้งเตือนที่กรองอยู่ให้เล็กสุด",
"notification_requests.notifications_from": "การแจ้งเตือนจาก {name}",
"notification_requests.title": "การแจ้งเตือนที่กรองอยู่",
+ "notification_requests.view": "ดูการแจ้งเตือน",
"notifications.clear": "ล้างการแจ้งเตือน",
"notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?",
+ "notifications.clear_title": "ล้างการแจ้งเตือน?",
"notifications.column_settings.admin.report": "รายงานใหม่:",
"notifications.column_settings.admin.sign_up": "การลงทะเบียนใหม่:",
"notifications.column_settings.alert": "การแจ้งเตือนบนเดสก์ท็อป",
@@ -531,6 +585,14 @@
"notifications.permission_denied": "การแจ้งเตือนบนเดสก์ท็อปไม่พร้อมใช้งานเนื่องจากมีการปฏิเสธคำขอสิทธิอนุญาตเบราว์เซอร์ก่อนหน้านี้",
"notifications.permission_denied_alert": "ไม่สามารถเปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป เนื่องจากมีการปฏิเสธสิทธิอนุญาตเบราว์เซอร์ก่อนหน้านี้",
"notifications.permission_required": "การแจ้งเตือนบนเดสก์ท็อปไม่พร้อมใช้งานเนื่องจากไม่ได้ให้สิทธิอนุญาตที่จำเป็น",
+ "notifications.policy.accept": "ยอมรับ",
+ "notifications.policy.accept_hint": "แสดงในการแจ้งเตือน",
+ "notifications.policy.drop": "เพิกเฉย",
+ "notifications.policy.drop_hint": "ละทิ้งอย่างถาวร ไม่ให้เห็นอีกเลย",
+ "notifications.policy.filter": "กรอง",
+ "notifications.policy.filter_hint": "ส่งไปยังกล่องขาเข้าการแจ้งเตือนที่กรองอยู่",
+ "notifications.policy.filter_limited_accounts_hint": "จำกัดโดยผู้กลั่นกรองเซิร์ฟเวอร์",
+ "notifications.policy.filter_limited_accounts_title": "บัญชีที่ได้รับการกลั่นกรอง",
"notifications.policy.filter_new_accounts.hint": "สร้างขึ้นภายใน {days, plural, other {# วัน}}ที่ผ่านมา",
"notifications.policy.filter_new_accounts_title": "บัญชีใหม่",
"notifications.policy.filter_not_followers_hint": "รวมถึงผู้คนที่ได้ติดตามคุณน้อยกว่า {days, plural, other {# วัน}}",
@@ -539,7 +601,7 @@
"notifications.policy.filter_not_following_title": "ผู้คนที่คุณไม่ได้ติดตาม",
"notifications.policy.filter_private_mentions_hint": "กรองไว้เว้นแต่การกล่าวถึงแบบส่วนตัวอยู่ในการตอบกลับการกล่าวถึงของคุณเองหรือหากคุณติดตามผู้ส่ง",
"notifications.policy.filter_private_mentions_title": "การกล่าวถึงแบบส่วนตัวที่ไม่พึงประสงค์",
- "notifications.policy.title": "กรองการแจ้งเตือนจาก…",
+ "notifications.policy.title": "จัดการการแจ้งเตือนจาก…",
"notifications_permission_banner.enable": "เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป",
"notifications_permission_banner.how_to_control": "เพื่อรับการแจ้งเตือนเมื่อ Mastodon ไม่ได้เปิด เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป คุณสามารถควบคุมชนิดของการโต้ตอบที่สร้างการแจ้งเตือนบนเดสก์ท็อปได้อย่างแม่นยำผ่านปุ่ม {icon} ด้านบนเมื่อเปิดใช้งานการแจ้งเตือน",
"notifications_permission_banner.title": "ไม่พลาดสิ่งใด",
@@ -579,7 +641,7 @@
"onboarding.steps.share_profile.title": "แชร์โปรไฟล์ Mastodon ของคุณ",
"onboarding.tips.2fa": "คุณทราบหรือไม่? คุณสามารถรักษาความปลอดภัยบัญชีของคุณได้โดยตั้งค่าการรับรองความถูกต้องด้วยสองปัจจัยในการตั้งค่าบัญชีของคุณ การรับรองความถูกต้องด้วยสองปัจจัยทำงานร่วมกับแอป TOTP ใด ๆ ที่คุณเลือก ไม่จำเป็นต้องมีหมายเลขโทรศัพท์!",
"onboarding.tips.accounts_from_other_servers": "คุณทราบหรือไม่? เนื่องจาก Mastodon เป็นแบบกระจายศูนย์ โปรไฟล์บางส่วนที่คุณเจอจะได้รับการโฮสต์ในเซิร์ฟเวอร์อื่น ๆ ที่ไม่ใช่ของคุณ และคุณยังสามารถโต้ตอบกับเขาได้อย่างไร้รอยต่อ! เซิร์ฟเวอร์ของเขาอยู่ในครึ่งหลังของชื่อผู้ใช้ของเขา!",
- "onboarding.tips.migration": "คุณทราบหรือไม่? หากคุณรู้สึกว่า {domain} ไม่ใช่ตัวเลือกเซิร์ฟเวอร์ที่ยอดเยี่ยมสำหรับคุณในอนาคต คุณสามารถย้ายไปยังเซิร์ฟเวอร์ Mastodon อื่นได้โดยไม่สูญเสียผู้ติดตามของคุณ คุณยังสามารถโฮสต์เซิร์ฟเวอร์ของคุณเอง!",
+ "onboarding.tips.migration": "คุณทราบหรือไม่? หากคุณรู้สึกว่า {domain} ไม่ใช่ตัวเลือกเซิร์ฟเวอร์ที่ยอดเยี่ยมสำหรับคุณในอนาคต คุณสามารถย้ายไปยังเซิร์ฟเวอร์ Mastodon อื่นได้โดยไม่สูญเสียผู้ติดตามของคุณ คุณยังสามารถโฮสต์เซิร์ฟเวอร์ของคุณเองได้อีกด้วย!",
"onboarding.tips.verification": "คุณทราบหรือไม่? คุณสามารถยืนยันบัญชีของคุณได้โดยใส่ลิงก์ไปยังโปรไฟล์ Mastodon ของคุณในเว็บไซต์ของคุณเองและเพิ่มเว็บไซต์ไปยังโปรไฟล์ของคุณ ไม่จำเป็นต้องมีค่าธรรมเนียมหรือเอกสาร!",
"password_confirmation.exceeds_maxlength": "การยืนยันรหัสผ่านเกินความยาวรหัสผ่านสูงสุดแล้ว",
"password_confirmation.mismatching": "การยืนยันรหัสผ่านไม่ตรงกัน",
@@ -666,9 +728,13 @@
"report.unfollow_explanation": "คุณกำลังติดตามบัญชีนี้ เพื่อไม่ให้เห็นโพสต์ของเขาในฟีดหน้าแรกของคุณอีกต่อไป ให้เลิกติดตามเขา",
"report_notification.attached_statuses": "{count, plural, other {{count} โพสต์}}ที่แนบมา",
"report_notification.categories.legal": "กฎหมาย",
+ "report_notification.categories.legal_sentence": "เนื้อหาที่ผิดกฎหมาย",
"report_notification.categories.other": "อื่น ๆ",
+ "report_notification.categories.other_sentence": "อื่น ๆ",
"report_notification.categories.spam": "สแปม",
+ "report_notification.categories.spam_sentence": "สแปม",
"report_notification.categories.violation": "การละเมิดกฎ",
+ "report_notification.categories.violation_sentence": "การละเมิดกฎ",
"report_notification.open": "รายงานที่เปิด",
"search.no_recent_searches": "ไม่มีการค้นหาล่าสุด",
"search.placeholder": "ค้นหา",
@@ -710,6 +776,7 @@
"status.bookmark": "เพิ่มที่คั่นหน้า",
"status.cancel_reblog_private": "เลิกดัน",
"status.cannot_reblog": "ไม่สามารถดันโพสต์นี้",
+ "status.continued_thread": "กระทู้ต่อเนื่อง",
"status.copy": "คัดลอกลิงก์ไปยังโพสต์",
"status.delete": "ลบ",
"status.detailed_status": "มุมมองการสนทนาโดยละเอียด",
@@ -718,12 +785,10 @@
"status.edit": "แก้ไข",
"status.edited": "แก้ไขล่าสุดเมื่อ {date}",
"status.edited_x_times": "แก้ไข {count, plural, other {{count} ครั้ง}}",
- "status.embed": "ฝัง",
+ "status.embed": "รับโค้ดฝังตัว",
"status.favourite": "ชื่นชอบ",
"status.favourites": "{count, plural, other {รายการโปรด}}",
"status.filter": "กรองโพสต์นี้",
- "status.filtered": "กรองอยู่",
- "status.hide": "ซ่อนโพสต์",
"status.history.created": "{name} ได้สร้างเมื่อ {date}",
"status.history.edited": "{name} ได้แก้ไขเมื่อ {date}",
"status.load_more": "โหลดเพิ่มเติม",
@@ -745,16 +810,14 @@
"status.reblogs.empty": "ยังไม่มีใครดันโพสต์นี้ เมื่อใครสักคนดัน เขาจะปรากฏที่นี่",
"status.redraft": "ลบแล้วร่างใหม่",
"status.remove_bookmark": "เอาที่คั่นหน้าออก",
+ "status.replied_in_thread": "ตอบกลับในกระทู้",
"status.replied_to": "ตอบกลับ {name}",
"status.reply": "ตอบกลับ",
"status.replyAll": "ตอบกลับกระทู้",
"status.report": "รายงาน @{name}",
"status.sensitive_warning": "เนื้อหาที่ละเอียดอ่อน",
"status.share": "แชร์",
- "status.show_filter_reason": "แสดงต่อไป",
- "status.show_less": "แสดงน้อยลง",
"status.show_less_all": "แสดงน้อยลงทั้งหมด",
- "status.show_more": "แสดงเพิ่มเติม",
"status.show_more_all": "แสดงเพิ่มเติมทั้งหมด",
"status.show_original": "แสดงดั้งเดิม",
"status.title.with_attachments": "{user} ได้โพสต์ {attachmentCount, plural, other {{attachmentCount} ไฟล์แนบ}}",
@@ -773,10 +836,6 @@
"time_remaining.minutes": "เหลืออีก {number, plural, other {# นาที}}",
"time_remaining.moments": "ช่วงเวลาที่เหลือ",
"time_remaining.seconds": "เหลืออีก {number, plural, other {# วินาที}}",
- "timeline_hint.remote_resource_not_displayed": "ไม่ได้แสดง {resource} จากเซิร์ฟเวอร์อื่น ๆ",
- "timeline_hint.resources.followers": "ผู้ติดตาม",
- "timeline_hint.resources.follows": "การติดตาม",
- "timeline_hint.resources.statuses": "โพสต์ที่เก่ากว่า",
"trends.counter_by_accounts": "{count, plural, other {{counter} คน}}ใน {days, plural, other {{days} วัน}}ที่ผ่านมา",
"trends.trending_now": "กำลังนิยม",
"ui.beforeunload": "แบบร่างของคุณจะสูญหายหากคุณออกจาก Mastodon",
diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json
index 80d412a20bc..9f203881823 100644
--- a/app/javascript/mastodon/locales/tok.json
+++ b/app/javascript/mastodon/locales/tok.json
@@ -8,7 +8,6 @@
"about.domain_blocks.suspended.title": "weka",
"about.not_available": "lon kulupu ni la sina ken alasa ala e sona ni.",
"about.rules": "lawa kulupu",
- "account.account_note_header": "sona awen",
"account.add_or_remove_from_list": "o ante e lipu jan",
"account.badges.bot": "ilo nanpa li lawa e ni",
"account.badges.group": "kulupu",
@@ -16,7 +15,6 @@
"account.block_domain": "o weka e ma {domain}",
"account.block_short": "o weka e jan tawa mi",
"account.blocked": "jan li weka tawa mi",
- "account.browse_more_on_origin_server": "sina tawa ma tan pi jan ni la sina ken lukin e mute",
"account.cancel_follow_request": "o pini kute",
"account.copy": "o pali same e linja pi lipu jan",
"account.direct": "len la o mu e @{name}",
@@ -130,15 +128,12 @@
"compose_form.spoiler.marked": "o weka e toki pi ijo ike ken",
"confirmation_modal.cancel": "o pini",
"confirmations.block.confirm": "o weka",
- "confirmations.cancel_follow_request.confirm": "o weka e wile sina",
- "confirmations.cancel_follow_request.message": "sina awen ala awen wile weka e wile kute sina lon {name}?",
"confirmations.delete.confirm": "o weka",
"confirmations.delete.message": "sina wile ala wile weka e toki ni?",
"confirmations.delete_list.confirm": "o weka",
"confirmations.delete_list.message": "sina wile ala wile weka e lipu ni?",
"confirmations.discard_edit_media.confirm": "o weka",
"confirmations.discard_edit_media.message": "toki sitelen anu lukin lili sitelen la ante pi awen ala li lon. sina wile weka e ante ni?",
- "confirmations.domain_block.message": "sina wile ala a wile a len e ma {domain} ꞏ ken suli la len jan taso li pona ꞏ len pi ma ni la sina ken ala lukin e ijo pi ma ni lon lipu toki ale anu lukin toki ꞏ len ni la jan kute sina pi ma ni li weka",
"confirmations.edit.confirm": "o ante",
"confirmations.edit.message": "sina ante e toki sina la toki pali sina li weka. sina wile ala wile e ni?",
"confirmations.logout.confirm": "o weka",
@@ -170,6 +165,8 @@
"domain_block_modal.block": "o weka e ma",
"domain_block_modal.you_will_lose_followers": "ma ni la jan alasa ale sina li weka",
"domain_block_modal.you_wont_see_posts": "sina ken ala lukin e toki tan jan pi ma ni",
+ "domain_pill.server": "ma",
+ "domain_pill.username": "nimi jan",
"embed.preview": "ni li jo e sitelen ni:",
"emoji_button.activity": "musi",
"emoji_button.flags": "len ma",
@@ -255,8 +252,6 @@
"keyboard_shortcuts.toot": "o toki",
"keyboard_shortcuts.up": "o tawa sewi lon lipu",
"lightbox.close": "o pini",
- "lightbox.compress": "o lili e sitelen",
- "lightbox.expand": "o suli e sitelen",
"lightbox.next": "sinpin",
"lightbox.previous": "monsi",
"link_preview.author": "tan {name}",
@@ -273,7 +268,7 @@
"lists.subheading": "kulupu lipu sina",
"load_pending": "{count, plural, other {ijo sin #}}",
"loading_indicator.label": "ni li kama…",
- "media_gallery.toggle_visible": "{number, plural, other {o len e sitelen}}",
+ "mute_modal.title": "sina wile ala wile kute e jan ni?",
"navigation_bar.about": "sona",
"navigation_bar.blocks": "jan weka",
"navigation_bar.compose": "o pali e toki sin",
@@ -289,25 +284,32 @@
"notification.favourite": "toki sina li pona tawa {name}",
"notification.follow": " {name} li kute e sina",
"notification.follow_request": "{name} li wile kute e sina",
- "notification.mention": "jan {name} li toki e sina",
- "notification.poll": "sina pana lon pana la pana ni li pini",
+ "notification.moderation-warning.learn_more": "o kama sona e ijo ante",
"notification.reblog": "{name} li wawa e toki sina",
"notification.status": "{name} li toki",
"notification.update": "{name} li ante e toki",
+ "notification_requests.dismiss": "o weka",
"notifications.column_settings.favourite": "ijo pona:",
"notifications.column_settings.follow": "jan kute sin",
"notifications.column_settings.poll": "pana lon pana ni:",
"notifications.column_settings.reblog": "wawa:",
+ "notifications.column_settings.status": "toki sin:",
"notifications.column_settings.update": "ante toki:",
"notifications.filter.all": "ale",
+ "notifications.filter.boosts": "wawa",
"notifications.filter.favourites": "ijo pona",
+ "notifications.filter.mentions": "toki pi toki sina",
"notifications.filter.polls": "pana lon pana ni",
+ "onboarding.action.back": "o tawa monsi",
+ "onboarding.actions.back": "o tawa monsi",
"onboarding.compose.template": "toki a, #Mastodon o!",
"onboarding.profile.display_name": "nimi tawa jan ante",
+ "onboarding.profile.note": "sona sina",
"onboarding.share.lead": "o toki lon nasin Masoton pi alasa sina tawa jan",
"onboarding.share.message": "ilo #Mastodon la mi jan {username} a! o kute e mi lon ni: {url}",
"onboarding.start.title": "sina o kama pona a!",
"onboarding.tips.migration": "sina sona ala sona e ni? tenpo kama la sina pilin ike tawa ma {domain} la, sina ken tawa ma ante lon ilo Masoton. jan li kute e sina la jan ni li awen kute e sina. kin la sina ken lawa e ma pi sina taso a!",
+ "poll.closed": "ona li pini",
"poll.total_people": "{count, plural, other {jan #}}",
"poll.total_votes": "{count, plural, other {pana #}}",
"poll.vote": "o pana",
@@ -315,9 +317,15 @@
"poll.votes": "{votes, plural, other {pana #}}",
"privacy.direct.long": "jan ale lon toki",
"privacy.public.short": "tawa ale",
+ "regeneration_indicator.label": "ni li kama…",
+ "relative_time.days": "{number}d",
"relative_time.full.just_now": "tenpo ni",
+ "relative_time.hours": "{number}h",
"relative_time.just_now": "tenpo ni",
+ "relative_time.minutes": "{number}m",
+ "relative_time.seconds": "{number}s",
"relative_time.today": "tenpo suno ni",
+ "reply_indicator.cancel": "o ala",
"report.block": "o weka e jan",
"report.block_explanation": "sina kama lukin ala e toki ona. ona li kama ala ken lukin e toki sina li kama ala ken kute e sina. ona li ken sona e kama ni.",
"report.categories.other": "ante",
@@ -336,6 +344,7 @@
"report.thanks.title": "sina wile ala lukin e ni anu seme?",
"report.unfollow": "o pini kute e {name}",
"report_notification.categories.legal": "ike tawa nasin lawa",
+ "report_notification.categories.other": "ante",
"search.placeholder": "o alasa",
"search.quick_action.go_to_account": "o tawa lipu jan {x}",
"search_popout.language_code": "nimi toki kepeken nasin ISO",
@@ -343,28 +352,26 @@
"search_results.see_all": "ale",
"search_results.statuses": "toki",
"search_results.title": "o alasa e {q}",
+ "server_banner.administered_by": "jan lawa:",
"status.block": "o weka e @{name}",
"status.cancel_reblog_private": "o pini e pana",
"status.delete": "o weka",
"status.edit": "o ante",
- "status.embed": "ni o lon insa pi lipu ante",
"status.favourite": "o sitelen pona",
- "status.hide": "o len",
"status.history.created": "{name} li pali e ni lon {date}",
"status.history.edited": "{name} li ante lon {date}",
"status.load_more": "o kama e ijo ante",
"status.media.open": "o open",
"status.media.show": "o lukin",
"status.media_hidden": "sitelen li len",
+ "status.more": "kin",
"status.mute": "o len e @{name}",
"status.mute_conversation": "o kute ala e ijo pi toki ni",
"status.pin": "o sewi lon lipu sina",
"status.pinned": "toki sewi",
"status.reblog": "o wawa",
"status.share": "o pana tawa ante",
- "status.show_less": "o lili e ni",
"status.show_less_all": "o lili e ale",
- "status.show_more": "o suli e ni",
"status.show_more_all": "o suli e ale",
"status.show_original": "o lukin e mama",
"status.translate": "o ante pi nasin toki",
@@ -374,11 +381,10 @@
"status.unpin": "o sewi ala lon lipu sina",
"subscribed_languages.save": "o awen e ante",
"tabs_bar.home": "lipu open",
- "timeline_hint.resources.followers": "jan kute",
- "timeline_hint.resources.follows": "jan lukin",
- "timeline_hint.resources.statuses": "ijo pi tenpo suli",
"trends.trending_now": "jan mute li toki",
+ "units.short.billion": "{count}B",
"units.short.million": "{count}AAA",
+ "units.short.thousand": "{count}K",
"upload_button.label": "o pana e sitelen anu kalama",
"upload_error.limit": "ilo li ken ala e suli pi ijo ni.",
"upload_form.audio_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili",
@@ -386,6 +392,7 @@
"upload_form.edit": "o ante",
"upload_form.thumbnail": "o ante e sitelen lili",
"upload_form.video_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili, e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
+ "upload_modal.analyzing_picture": "ilo li lukin e sitelen...",
"upload_modal.choose_image": "o wile e sitelen",
"upload_modal.description_placeholder": "mi pu jaki tan soweli",
"upload_modal.detect_text": "ilo o alasa e nimi tan sitelen",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 0bb2a0e4a60..bdb2de0ef11 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -11,7 +11,7 @@
"about.not_available": "Bu sunucuda bu bilgi kullanıma sunulmadı.",
"about.powered_by": "{mastodon} destekli merkeziyetsiz sosyal ağ",
"about.rules": "Sunucu kuralları",
- "account.account_note_header": "Not",
+ "account.account_note_header": "Kişisel not",
"account.add_or_remove_from_list": "Listelere ekle veya kaldır",
"account.badges.bot": "Bot",
"account.badges.group": "Grup",
@@ -19,7 +19,6 @@
"account.block_domain": "{domain} alan adını engelle",
"account.block_short": "Engelle",
"account.blocked": "Engellendi",
- "account.browse_more_on_origin_server": "Orijinal profilde daha fazlasına göz atın",
"account.cancel_follow_request": "Takip isteğini geri çek",
"account.copy": "Gönderi bağlantısını kopyala",
"account.direct": "@{name} kullanıcısına özelden değin",
@@ -35,9 +34,9 @@
"account.follow_back": "Geri takip et",
"account.followers": "Takipçi",
"account.followers.empty": "Henüz kimse bu kullanıcıyı takip etmiyor.",
- "account.followers_counter": "{count, plural, one {{counter} Takipçi} other {{counter} Takipçi}}",
+ "account.followers_counter": "{count, plural, one {{counter} takipçi} other {{counter} takipçi}}",
"account.following": "Takip Ediliyor",
- "account.following_counter": "{count, plural, one {{counter} Takip Edilen} other {{counter} Takip Edilen}}",
+ "account.following_counter": "{count, plural, one {{counter} takip edilen} other {{counter} takip edilen}}",
"account.follows.empty": "Bu kullanıcı henüz kimseyi takip etmiyor.",
"account.go_to_profile": "Profile git",
"account.hide_reblogs": "@{name} kişisinin boostlarını gizle",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} size takip isteği gönderdi",
"account.share": "@{name} adlı kişinin profilini paylaş",
"account.show_reblogs": "@{name} kişisinin yeniden paylaşımlarını göster",
- "account.statuses_counter": "{count, plural, one {{counter} Gönderi} other {{counter} Gönderi}}",
+ "account.statuses_counter": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}",
"account.unblock": "@{name} adlı kişinin engelini kaldır",
"account.unblock_domain": "{domain} alan adının engelini kaldır",
"account.unblock_short": "Engeli kaldır",
@@ -98,6 +97,8 @@
"block_modal.title": "Kullanıcıyı engelle?",
"block_modal.you_wont_see_mentions": "Onlardan bahseden gönderiler göremezsiniz.",
"boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsin",
+ "boost_modal.reblog": "Gönderiyi yeniden paylaş?",
+ "boost_modal.undo_reblog": "Gönderinin yeniden paylaşımını geri al?",
"bundle_column_error.copy_stacktrace": "Hata raporunu kopyala",
"bundle_column_error.error.body": "İstenen sayfa gösterilemiyor. Bu durum kodumuzdaki bir hatadan veya tarayıcı uyum sorunundan kaynaklanıyor olabilir.",
"bundle_column_error.error.title": "Ah, hayır!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "İçerik uyarısı (isteğe bağlı)",
"confirmation_modal.cancel": "İptal",
"confirmations.block.confirm": "Engelle",
- "confirmations.cancel_follow_request.confirm": "İsteği geri çek",
- "confirmations.cancel_follow_request.message": "{name} kişisini takip etme isteğini geri çekmek istediğinden emin misin?",
"confirmations.delete.confirm": "Sil",
"confirmations.delete.message": "Bu tootu silmek istediğinden emin misin?",
+ "confirmations.delete.title": "Gönderiyi sil?",
"confirmations.delete_list.confirm": "Sil",
"confirmations.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinden emin misin?",
+ "confirmations.delete_list.title": "Listeyi sil?",
"confirmations.discard_edit_media.confirm": "Vazgeç",
"confirmations.discard_edit_media.message": "Medya açıklaması veya ön izlemede kaydedilmemiş değişiklikleriniz var, yine de vazgeçmek istiyor musunuz?",
- "confirmations.domain_block.confirm": "Sunucuyu engelle",
- "confirmations.domain_block.message": "{domain} alanının tamamını engellemek istediğinden gerçekten emin misin? Genellikle hedeflenen birkaç engelleme veya sessize alma yeterlidir ve tercih edilir. Bu alan adından gelen içeriği herhangi bir genel zaman çizelgesinde veya bildirimlerinde görmezsin. Bu alan adındaki takipçilerin kaldırılır.",
"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.logout.confirm": "Oturumu kapat",
"confirmations.logout.message": "Oturumu kapatmak istediğinden emin misin?",
+ "confirmations.logout.title": "Oturumu kapat?",
"confirmations.mute.confirm": "Sessize al",
"confirmations.redraft.confirm": "Sil Düzenle ve yeniden paylaş",
"confirmations.redraft.message": "Bu gönderiyi silip taslak haline getirmek istediğinize emin misiniz? Mevcut favoriler ve boostlar silinecek ve gönderiye verilen yanıtlar başıboş kalacak.",
+ "confirmations.redraft.title": "Gönderiyi sil veya taslağa dönüştür?",
"confirmations.reply.confirm": "Yanıtla",
"confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğun mesajın üzerine yazılır. Devam etmek istediğine emin misin?",
+ "confirmations.reply.title": "Gönderinin üzerine yaz?",
"confirmations.unfollow.confirm": "Takibi bırak",
"confirmations.unfollow.message": "{name} adlı kullanıcıyı takibi bırakmak istediğinden emin misin?",
+ "confirmations.unfollow.title": "Kullanıcıyı takipten çık?",
+ "content_warning.hide": "Gönderiyi gizle",
+ "content_warning.show": "Yine de göster",
"conversation.delete": "Sohbeti sil",
"conversation.mark_as_read": "Okundu olarak işaretle",
"conversation.open": "Sohbeti görüntüle",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Mevcut bir kategoriyi kullan veya yeni bir tane oluştur",
"filter_modal.select_filter.title": "Bu gönderiyi süzgeçle",
"filter_modal.title.status": "Bir gönderi süzgeçle",
- "filtered_notifications_banner.mentions": "{count, plural, one {bahsetme} other {bahsetme}}",
- "filtered_notifications_banner.pending_requests": "Bildiğiniz {count, plural, =0 {hiç kimseden} one {bir kişiden} other {# kişiden}} bildirim",
+ "filter_warning.matches_filter": "“{title}” filtresiyle eşleşiyor",
+ "filtered_notifications_banner.pending_requests": "Bildiğiniz {count, plural, =0 {hiç kimseden} one {bir kişiden} other {# kişiden}}",
"filtered_notifications_banner.title": "Filtrelenmiş bildirimler",
"firehose.all": "Tümü",
"firehose.local": "Bu sunucu",
@@ -347,6 +353,14 @@
"hashtag.follow": "Etiketi takip et",
"hashtag.unfollow": "Etiketi takibi bırak",
"hashtags.and_other": "…ve {count, plural, one {}other {# fazlası}}",
+ "hints.profiles.followers_may_be_missing": "Bu profilin takipçileri eksik olabilir.",
+ "hints.profiles.follows_may_be_missing": "Bu profilin takip edilenleri eksik olabilir.",
+ "hints.profiles.posts_may_be_missing": "Bu profilin bazı gönderileri eksik olabilir.",
+ "hints.profiles.see_more_followers": "{domain} adresinde daha fazla takipçi gör",
+ "hints.profiles.see_more_follows": "{domain} adresinde daha fazla takip edilen gör",
+ "hints.profiles.see_more_posts": "{domain} adresinde daha fazla gönderi gör",
+ "hints.threads.replies_may_be_missing": "Diğer sunuculardan yanıtlar eksik olabilir.",
+ "hints.threads.see_more": "{domain} adresinde daha fazla yanıt gör",
"home.column_settings.show_reblogs": "Yeniden paylaşımları göster",
"home.column_settings.show_replies": "Yanıtları göster",
"home.hide_announcements": "Duyuruları gizle",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Güncellemelerini görün",
"home.pending_critical_update.title": "Kritik güvenlik güncellemesi mevcut!",
"home.show_announcements": "Duyuruları göster",
+ "ignore_notifications_modal.disclaimer": "Mastodon bildirimlerini yok saydığınız kullanıcıları bilgilendiremez. Bildirimleri yok saymak iletilerin gönderilmesini durdurmayacaktır.",
+ "ignore_notifications_modal.filter_instead": "Onun yerine filtrele",
+ "ignore_notifications_modal.filter_to_act_users": "Kullanıcıları kabul etmeye, red etmeye veya bildirmeye devam edebileceksiniz",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Filtreleme olası kafa karışıklığını önlemeye yardımcı olur",
+ "ignore_notifications_modal.filter_to_review_separately": "Filtrelenmiş bildirimleri ayrıca inceleyebilirsiniz",
+ "ignore_notifications_modal.ignore": "Bildirimleri yoksay",
+ "ignore_notifications_modal.limited_accounts_title": "Modere edilen hesapların bildirimlerini yoksay?",
+ "ignore_notifications_modal.new_accounts_title": "Yeni hesapların bildirimlerini yoksay?",
+ "ignore_notifications_modal.not_followers_title": "Takip etmeyen kişilerin bildirimlerini yoksay?",
+ "ignore_notifications_modal.not_following_title": "Takip etmediğin kişilerin bildirimlerini yoksay?",
+ "ignore_notifications_modal.private_mentions_title": "İstenmeyen özel bahsetmelerden gelen bildirimleri yoksay?",
"interaction_modal.description.favourite": "Bir Mastodon hesabıyla bu gönderiyi favorilerinize ekleyerek yazara gönderiyi beğendiğinizi bildirebilir ve daha sonrası için kaydedebilirsiniz.",
"interaction_modal.description.follow": "Mastodon'daki bir hesapla, {name} kişisini, ana akışınızdaki gönderilerini görmek üzere takip edebilirsiniz.",
"interaction_modal.description.reblog": "Mastodon'daki bir hesapla, bu gönderiyi takipçilerinizle paylaşmak için tuşlayabilirsiniz.",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "Aramada bir gönderiye odaklanmamak için",
"keyboard_shortcuts.up": "Listede yukarıya çıkmak için",
"lightbox.close": "Kapat",
- "lightbox.compress": "Resim görüntüleme kutusunu sıkıştır",
- "lightbox.expand": "Resim görüntüleme kutusunu genişlet",
"lightbox.next": "Sonraki",
"lightbox.previous": "Önceki",
+ "lightbox.zoom_in": "Özgün boyuta dön",
+ "lightbox.zoom_out": "Sığacak şekilde boyutla",
"limited_account_hint.action": "Yine de profili göster",
"limited_account_hint.title": "Bu profil {domain} moderatörleri tarafından gizlendi.",
"link_preview.author": "Yazar: {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "Listeleriniz",
"load_pending": "{count, plural, one {# yeni öğe} other {# yeni öğe}}",
"loading_indicator.label": "Yükleniyor…",
- "media_gallery.toggle_visible": "{number, plural, one {Resmi} other {Resimleri}} gizle",
+ "media_gallery.hide": "Gizle",
"moved_to_account_banner.text": "{disabledAccount} hesabınız, {movedToAccount} hesabına taşıdığınız için şu an devre dışı.",
"mute_modal.hide_from_notifications": "Bildirimlerde gizle",
"mute_modal.hide_options": "Seçenekleri gizle",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Onlardan bahseden gönderiler göremezsiniz.",
"mute_modal.you_wont_see_posts": "Onlar sizin gönderilerinizi görmeye devam edebilir, ancak siz onlarınkini göremezsiniz.",
"navigation_bar.about": "Hakkında",
+ "navigation_bar.administration": "Yönetim",
"navigation_bar.advanced_interface": "Gelişmiş web arayüzünde aç",
"navigation_bar.blocks": "Engellenen kullanıcılar",
"navigation_bar.bookmarks": "Yer İşaretleri",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "Takip edilenler ve takipçiler",
"navigation_bar.lists": "Listeler",
"navigation_bar.logout": "Oturumu kapat",
+ "navigation_bar.moderation": "Moderasyon",
"navigation_bar.mutes": "Sessize alınmış kullanıcılar",
"navigation_bar.opened_in_classic_interface": "Gönderiler, hesaplar ve diğer belirli sayfalar klasik web arayüzünde varsayılan olarak açılıyorlar.",
"navigation_bar.personal": "Kişisel",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Güvenlik",
"not_signed_in_indicator.not_signed_in": "Bu kaynağa erişmek için oturum açmanız gerekir.",
"notification.admin.report": "{name}, {target} kişisini bildirdi",
+ "notification.admin.report_account": "{name}, {category} kategorisi için {target} kişisini {count, plural, one {bir gönderi} other {# gönderi}} bildirdi",
+ "notification.admin.report_account_other": "{name}, {target} kişisinden {count, plural, one {bir gönderi} other {# gönderi}} bildirdi",
+ "notification.admin.report_statuses": "{name}, {category} kategorisi için {target} kişisini bildirdi",
+ "notification.admin.report_statuses_other": "{name}, {target} kişisini bildirdi",
"notification.admin.sign_up": "{name} kaydoldu",
+ "notification.admin.sign_up.name_and_others": "{name} ve {count, plural, one {# diğer kişi} other {# diğer kişi}} kaydoldu",
"notification.favourite": "{name} gönderinizi beğendi",
+ "notification.favourite.name_and_others_with_link": "{name} ve {count, plural, one {# diğer kişi} other {# diğer kişi}} gönderinizi beğendi",
"notification.follow": "{name} seni takip etti",
+ "notification.follow.name_and_others": "{name} ve {count, plural, one {# diğer kişi} other {# diğer kişi}} sizi takip etti",
"notification.follow_request": "{name} size takip isteği gönderdi",
- "notification.mention": "{name} senden bahsetti",
+ "notification.follow_request.name_and_others": "{name} ve {count, plural, one {# diğer kişi} other {# diğer kişi}} size takip etme isteği gönderdi",
+ "notification.label.mention": "Bahsetme",
+ "notification.label.private_mention": "Özel bahsetme",
+ "notification.label.private_reply": "Özel yanıt",
+ "notification.label.reply": "Yanıt",
+ "notification.mention": "Bahsetme",
"notification.moderation-warning.learn_more": "Daha fazlası",
"notification.moderation_warning": "Hesabınız bir denetim uyarısı aldı",
"notification.moderation_warning.action_delete_statuses": "Bazı gönderileriniz kaldırıldı.",
@@ -487,6 +526,7 @@
"notification.own_poll": "Anketiniz sona erdi",
"notification.poll": "Oy verdiğiniz bir anket sona erdi",
"notification.reblog": "{name} gönderini yeniden paylaştı",
+ "notification.reblog.name_and_others_with_link": "{name} ve {count, plural, one {# diğer kişi} other {# diğer kişi}} gönderinizi yeniden paylaştı",
"notification.relationships_severance_event": "{name} ile bağlantılar koptu",
"notification.relationships_severance_event.account_suspension": "{from} yöneticisi, {target} askıya aldı, bunun anlamı onlardan artık güncelleme alamayacak veya etkileşemeyeceksiniz demektir.",
"notification.relationships_severance_event.domain_block": "{from} yöneticisi {target} engelledi, {followersCount} takipçiniz ve takip ettiğiniz {followingCount, plural, one {# hesap} other {# hesap}} buna dahil.",
@@ -495,11 +535,27 @@
"notification.status": "{name} az önce gönderdi",
"notification.update": "{name} bir gönderiyi düzenledi",
"notification_requests.accept": "Onayla",
+ "notification_requests.accept_multiple": "{count, plural, one {# isteği kabul et…} other {# isteği kabul et…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {İsteği kabul et} other {İstekleri kabul et}}",
+ "notification_requests.confirm_accept_multiple.message": "{count, plural, one {Bir bildirim isteğini} other {# bildirim isteğini}} kabul etmek üzeresiniz. Devam etmek istediğinizden emin misiniz?",
+ "notification_requests.confirm_accept_multiple.title": "Bildirim isteklerini kabul et?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {İsteği reddet} other {İstekleri reddet}}",
+ "notification_requests.confirm_dismiss_multiple.message": "{count, plural, one {Bir bildirim isteğini} other {# bildirim isteğini}} reddetmek üzeresiniz. {count, plural, one {Ona} other {Onlara}} tekrar kolayca ulaşamayacaksınz. Devam etmek istediğinizden emin misiniz?",
+ "notification_requests.confirm_dismiss_multiple.title": "Bildirim isteklerini reddet?",
"notification_requests.dismiss": "Yoksay",
+ "notification_requests.dismiss_multiple": "{count, plural, one {# isteği reddet…} other {# isteği reddet…}}",
+ "notification_requests.edit_selection": "Düzenle",
+ "notification_requests.exit_selection": "Tamamlandı",
+ "notification_requests.explainer_for_limited_account": "Hesap bir moderatör tarafından sınırlandığı için, bu hesaptan gönderilen bildirimler filtrelendi.",
+ "notification_requests.explainer_for_limited_remote_account": "Hesap veya sunucusu bir moderatör tarafından sınırlandığı için, bu hesaptan gönderilen bildirimler filtrelendi.",
+ "notification_requests.maximize": "Büyüt",
+ "notification_requests.minimize_banner": "Filtrelenmiş bildirimler başlığını küçült",
"notification_requests.notifications_from": "{name} bildirimleri",
"notification_requests.title": "Filtrelenmiş bildirimler",
+ "notification_requests.view": "Bildirimleri görüntüle",
"notifications.clear": "Bildirimleri temizle",
"notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?",
+ "notifications.clear_title": "Bildirimleri temizle?",
"notifications.column_settings.admin.report": "Yeni bildirimler:",
"notifications.column_settings.admin.sign_up": "Yeni kayıtlar:",
"notifications.column_settings.alert": "Masaüstü bildirimleri",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "Daha önce reddedilen tarayıcı izinleri isteği nedeniyle masaüstü bildirimleri kullanılamıyor",
"notifications.permission_denied_alert": "Tarayıcı izni daha önce reddedildiğinden, masaüstü bildirimleri etkinleştirilemez",
"notifications.permission_required": "Masaüstü bildirimleri, gereksinim duyulan izin verilmediği için mevcut değil.",
+ "notifications.policy.accept": "Kabul Et",
+ "notifications.policy.accept_hint": "Bildirimlerde göster",
+ "notifications.policy.drop": "Yoksay",
+ "notifications.policy.drop_hint": "Boşluğa gönder, tekrar hiç görünmesin",
+ "notifications.policy.filter": "Filtrele",
+ "notifications.policy.filter_hint": "Filtreli bildirimleri kutusuna gönder",
+ "notifications.policy.filter_limited_accounts_hint": "Sunucu moderatörleri tarafından kısıtlanmış",
+ "notifications.policy.filter_limited_accounts_title": "Denetlenen hesaplar",
"notifications.policy.filter_new_accounts.hint": "Son {days, plural, one {bir gün} other {# gün}}de oluşturuldu",
"notifications.policy.filter_new_accounts_title": "Yeni hesaplar",
"notifications.policy.filter_not_followers_hint": "Sizi {days, plural, one {bir gün} other {# gün}}den azdır takip eden kişileri de içeriyor",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Takip etmediğin kullanıcılar",
"notifications.policy.filter_private_mentions_hint": "Kendi değinmenize yanıt veya takip ettiğiniz kullanıcıdan değilse filtrelenir",
"notifications.policy.filter_private_mentions_title": "İstenmeyen özel değinmeler",
- "notifications.policy.title": "Şundan bildirimleri filtrele…",
+ "notifications.policy.title": "Şundan bildirimleri yönet…",
"notifications_permission_banner.enable": "Masaüstü bildirimlerini etkinleştir",
"notifications_permission_banner.how_to_control": "Mastodon açık olmadığında bildirim almak için masaüstü bildirimlerini etkinleştirin. Etkinleştirildikten sonra yukarıdaki {icon} düğmesini kullanarak hangi etkileşim türlerinin masaüstü bildirimleri oluşturduğunu tam olarak kontrol edebilirsiniz.",
"notifications_permission_banner.title": "Hiçbir şeyi kaçırmayın",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "Bu hesabı takip ediyorsunuz. Ana akışınızda gönderilerini görmek istemiyorsanız, onu takip etmeyi bırakın.",
"report_notification.attached_statuses": "{count, plural, one {{count} gönderi} other {{count} gönderi}} eklendi",
"report_notification.categories.legal": "Yasal",
+ "report_notification.categories.legal_sentence": "yasadışı içerik",
"report_notification.categories.other": "Diğer",
+ "report_notification.categories.other_sentence": "diğer",
"report_notification.categories.spam": "İstenmeyen",
+ "report_notification.categories.spam_sentence": "i̇stenmeyen",
"report_notification.categories.violation": "Kural ihlali",
+ "report_notification.categories.violation_sentence": "kural ihlali",
"report_notification.open": "Bildirim aç",
"search.no_recent_searches": "Son arama yok",
"search.placeholder": "Ara",
@@ -710,6 +778,7 @@
"status.bookmark": "Yer işareti ekle",
"status.cancel_reblog_private": "Yeniden paylaşımı geri al",
"status.cannot_reblog": "Bu gönderi yeniden paylaşılamaz",
+ "status.continued_thread": "Devam eden akış",
"status.copy": "Gönderi bağlantısını kopyala",
"status.delete": "Sil",
"status.detailed_status": "Ayrıntılı sohbet görünümü",
@@ -718,12 +787,10 @@
"status.edit": "Düzenle",
"status.edited": "Son düzenleme {date}",
"status.edited_x_times": "{count, plural, one {{count} kez} other {{count} kez}} düzenlendi",
- "status.embed": "Gömülü",
+ "status.embed": "Gömme kodunu al",
"status.favourite": "Favori",
"status.favourites": "{count, plural, one {beğeni} other {beğeni}}",
"status.filter": "Bu gönderiyi süzgeçle",
- "status.filtered": "Süzgeçlenmiş",
- "status.hide": "Gönderiyi gizle",
"status.history.created": "{name} oluşturdu {date}",
"status.history.edited": "{name} düzenledi {date}",
"status.load_more": "Daha fazlası",
@@ -742,19 +809,17 @@
"status.reblog_private": "Özgün görünürlük ile yeniden paylaş",
"status.reblogged_by": "{name} yeniden paylaştı",
"status.reblogs": "{count, plural, one {yeniden paylaşım} other {yeniden paylaşım}}",
- "status.reblogs.empty": "Henüz hiç kimse bu Gönderiyi Yeniden Paylaşmadı. Herhangi bir kullanıcı yeniden paylaştığında burada görüntülenecek.",
+ "status.reblogs.empty": "Henüz hiç kimse bu gönderiyi yeniden paylaşmadı. Herhangi bir kullanıcı yeniden paylaştığında burada görüntülenecek.",
"status.redraft": "Sil,Düzenle ve Yeniden paylaş",
"status.remove_bookmark": "Yer işaretini kaldır",
+ "status.replied_in_thread": "Akışta yanıtlandı",
"status.replied_to": "{name} kullanıcısına yanıt verdi",
"status.reply": "Yanıtla",
"status.replyAll": "Konuyu yanıtla",
"status.report": "@{name} adlı kişiyi bildir",
"status.sensitive_warning": "Hassas içerik",
"status.share": "Paylaş",
- "status.show_filter_reason": "Yine de göster",
- "status.show_less": "Daha az göster",
"status.show_less_all": "Hepsi için daha az göster",
- "status.show_more": "Daha fazlasını göster",
"status.show_more_all": "Hepsi için daha fazla göster",
"status.show_original": "Özgün içeriği göster",
"status.title.with_attachments": "{user}, {attachmentCount, plural, one {1 ek} other {{attachmentCount} ek}} gönderdi",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# dakika} other {# dakika}} kaldı",
"time_remaining.moments": "Sadece birkaç dakika kaldı",
"time_remaining.seconds": "{number, plural, one {# saniye} other {# saniye}} kaldı",
- "timeline_hint.remote_resource_not_displayed": "diğer sunucudaki {resource} gösterilemiyor.",
- "timeline_hint.resources.followers": "Takipçiler",
- "timeline_hint.resources.follows": "Takip Edilenler",
- "timeline_hint.resources.statuses": "Eski gönderiler",
"trends.counter_by_accounts": "Son {days, plural, one {gündeki} other {{days} gündeki}} {count, plural, one {{counter} kişi} other {{counter} kişi}}",
"trends.trending_now": "Şu an gündemde",
"ui.beforeunload": "Mastodon'u terk ederseniz taslağınız kaybolacak.",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index 273c1a6de70..08bb7979a10 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -11,14 +11,12 @@
"about.not_available": "Бу серверда бу мәгълүмат юк иде.",
"about.powered_by": "{mastodon} нигезендә үзәкчелеге бетерелгән социаль челтәр нигезендә",
"about.rules": "Сервер кагыйдәләре",
- "account.account_note_header": "Язма",
"account.add_or_remove_from_list": "Исемлеккә кушу яки бетерү",
"account.badges.bot": "Бот",
"account.badges.group": "Төркем",
"account.block": "@{name} кулланучыны блоклау",
"account.block_domain": "{domain} доменын блоклау",
"account.blocked": "Блокланган",
- "account.browse_more_on_origin_server": "Оригиналь профилендә күбрәк карау",
"account.cancel_follow_request": "Киләсе сорау",
"account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү",
"account.domain_blocked": "Домен блокланган",
@@ -31,9 +29,7 @@
"account.follow": "Язылу",
"account.followers": "Язылучы",
"account.followers.empty": "Әле беркем дә язылмаган.",
- "account.followers_counter": "{count, plural,one {{counter} язылучы} other {{counter} язылучы}}",
"account.following": "Язылулар",
- "account.following_counter": "{count, plural, one {{counter} язылу} other {{counter} язылу}}",
"account.follows.empty": "Беркемгә дә язылмаган әле.",
"account.go_to_profile": "Профильгә күчү",
"account.hide_reblogs": "Скрывать көчен нче @{name}",
@@ -55,7 +51,6 @@
"account.requested_follow": "{name} Сезгә язылу соравын җиберде",
"account.share": "@{name} профиле белән уртаклашу",
"account.show_reblogs": "Күрсәтергә көчәйтү нче @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} язма} other {{counter} язма}}",
"account.unblock": "@{name} бикләвен чыгу",
"account.unblock_domain": "{domain} бикләвен чыгу",
"account.unblock_short": "Бикләүне чыгу",
@@ -135,15 +130,12 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"confirmation_modal.cancel": "Баш тарту",
"confirmations.block.confirm": "Блоклау",
- "confirmations.cancel_follow_request.confirm": "Сорауны баш тарту",
- "confirmations.cancel_follow_request.message": "Сез абонемент соравыгызны кире кайтарырга телисез {name}?",
"confirmations.delete.confirm": "Бетерү",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Бетерү",
"confirmations.delete_list.message": "Сез бу исемлекне мәңгегә бетерергә телисезме?",
"confirmations.discard_edit_media.confirm": "Баш тарту",
"confirmations.discard_edit_media.message": "Сезнең медиа тасвирламасында яки алдан карау өчен сакланмаган үзгәрешләр бармы? ",
- "confirmations.domain_block.message": "Сез чыннан да барысын да блокларга телисез {domain}? Күпчелек очракта берничә максатлы блоклар яки тавышсызлар җитәрлек һәм өстенлекле. Сез бу доменнан эчтәлекне җәмәгать срокларында яки хәбәрләрегездә күрмәячәксез. Бу доменнан сезнең шәкертләр бетереләчәк.",
"confirmations.edit.confirm": "Үзгәртү",
"confirmations.logout.confirm": "Чыгу",
"confirmations.logout.message": "Сез чыгарга телисезме?",
@@ -279,8 +271,6 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Ябу",
- "lightbox.compress": "Кысылган рәсемне карау тәрәзәсе",
- "lightbox.expand": "Рәсемне карау тәрәзәсен ачыгыз",
"lightbox.next": "Киләсе",
"lightbox.previous": "Алдагы",
"limited_account_hint.action": "Барыбер профильне күрсәтергә",
@@ -418,9 +408,6 @@
"status.direct_indicator": "Хосусый искә алу",
"status.edit": "Үзгәртү",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
- "status.embed": "Веб-биткә кертү",
- "status.filtered": "Сөзелгән",
- "status.hide": "Язманы яшерү",
"status.history.created": "{name} ясалды {date}",
"status.history.edited": "{name} төзәтте {date}",
"status.load_more": "Күбрәк йөкләү",
@@ -434,9 +421,6 @@
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.reply": "Җавап бирү",
"status.share": "Уртаклашу",
- "status.show_filter_reason": "Барыбер карау",
- "status.show_less": "Әзрәк күрсәтү",
- "status.show_more": "Күбрәк күрсәтү",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.translate": "Тәрҗемә итү",
"subscribed_languages.save": "Үзгәрешләрне саклау",
@@ -446,7 +430,6 @@
"time_remaining.hours": "{number, plural, one {# сәгать} other {# сәгать}} калды",
"time_remaining.minutes": "{number, plural, one {# минут} other {# минут}} калды",
"time_remaining.seconds": "{number, plural, one {# секунд} other {# секунд}} калды",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"units.short.billion": "{count} млрд",
"units.short.million": "{count} млн",
diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json
index 4120d4483b2..7e7d6836da8 100644
--- a/app/javascript/mastodon/locales/ug.json
+++ b/app/javascript/mastodon/locales/ug.json
@@ -6,7 +6,6 @@
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.requested": "Awaiting approval",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account_note.placeholder": "Click to add a note",
"column.pins": "Pinned toot",
"community.column_settings.media_only": "Media only",
@@ -88,7 +87,6 @@
"status.pinned": "Pinned toot",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 22cd15bd231..3bf8d00248b 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -11,7 +11,7 @@
"about.not_available": "Ця інформація не доступна на цьому сервері.",
"about.powered_by": "Децентралізовані соціальні мережі від {mastodon}",
"about.rules": "Правила сервера",
- "account.account_note_header": "Примітка",
+ "account.account_note_header": "Особиста нотатка",
"account.add_or_remove_from_list": "Додати або видалити зі списків",
"account.badges.bot": "Бот",
"account.badges.group": "Група",
@@ -19,7 +19,6 @@
"account.block_domain": "Заблокувати домен {domain}",
"account.block_short": "Заблокувати",
"account.blocked": "Заблоковані",
- "account.browse_more_on_origin_server": "Переглянути більше в оригінальному профілі",
"account.cancel_follow_request": "Відкликати запит на стеження",
"account.copy": "Копіювати посилання на профіль",
"account.direct": "Особиста згадка @{name}",
@@ -32,12 +31,12 @@
"account.featured_tags.last_status_never": "Немає дописів",
"account.featured_tags.title": "{name} виділяє хештеґи",
"account.follow": "Підписатися",
- "account.follow_back": "Підписатися взаємно",
+ "account.follow_back": "Стежити також",
"account.followers": "Підписники",
"account.followers.empty": "Ніхто ще не підписаний на цього користувача.",
- "account.followers_counter": "{count, plural, one {{counter} підписник} few {{counter} підписники} many {{counter} підписників} other {{counter} підписники}}",
+ "account.followers_counter": "{count, plural, one {{counter} підписник} few {{counter} підписники} many {{counter} підписників} other {{counter} підписник}}",
"account.following": "Ви стежите",
- "account.following_counter": "{count, plural, one {{counter} підписка} few {{counter} підписки} many {{counter} підписок} other {{counter} підписки}}",
+ "account.following_counter": "{count, plural, one {{counter} підписка} few {{counter} підписки} many {{counter} підписок} other {{counter} підписка}}",
"account.follows.empty": "Цей користувач ще ні на кого не підписався.",
"account.go_to_profile": "Перейти до профілю",
"account.hide_reblogs": "Сховати поширення від @{name}",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} надсилає запит на стеження",
"account.share": "Поділитися профілем @{name}",
"account.show_reblogs": "Показати поширення від @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} дописи}}",
+ "account.statuses_counter": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}",
"account.unblock": "Розблокувати @{name}",
"account.unblock_domain": "Розблокувати {domain}",
"account.unblock_short": "Розблокувати",
@@ -98,6 +97,8 @@
"block_modal.title": "Заблокувати користувача?",
"block_modal.you_wont_see_mentions": "Ви не бачитимете дописів, де їх згадано.",
"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": "О, ні!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Попередження про вміст (необов'язково)",
"confirmation_modal.cancel": "Скасувати",
"confirmations.block.confirm": "Заблокувати",
- "confirmations.cancel_follow_request.confirm": "Відкликати запит",
- "confirmations.cancel_follow_request.message": "Ви дійсно бажаєте відкликати запит на стеження за {name}?",
"confirmations.delete.confirm": "Видалити",
"confirmations.delete.message": "Ви впевнені, що хочете видалити цей допис?",
+ "confirmations.delete.title": "Видалити допис?",
"confirmations.delete_list.confirm": "Видалити",
"confirmations.delete_list.message": "Ви впевнені, що хочете видалити цей список назавжди?",
+ "confirmations.delete_list.title": "Видалити список?",
"confirmations.discard_edit_media.confirm": "Відкинути",
"confirmations.discard_edit_media.message": "У вас є незбережені зміни в описі медіа або попереднього перегляду, все одно відкинути їх?",
- "confirmations.domain_block.confirm": "Блокувати сервер",
- "confirmations.domain_block.message": "Ви точно, точно впевнені, що хочете заблокувати весь домен {domain}? У більшості випадків для нормальної роботи краще заблокувати або приховати лише деяких користувачів. Ви не зможете бачити контент з цього домену у будь-яких стрічках або ваших сповіщеннях. Ваші підписники з цього домену будуть відписані від вас.",
"confirmations.edit.confirm": "Змінити",
"confirmations.edit.message": "Редагування перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?",
+ "confirmations.edit.title": "Перезаписати допис?",
"confirmations.logout.confirm": "Вийти",
"confirmations.logout.message": "Ви впевнені, що хочете вийти?",
+ "confirmations.logout.title": "Вийти?",
"confirmations.mute.confirm": "Приховати",
"confirmations.redraft.confirm": "Видалити та виправити",
"confirmations.redraft.message": "Ви впевнені, що хочете видалити цей допис та переписати його? Додавання у вибране та поширення буде втрачено, а відповіді на оригінальний допис залишаться без першоджерела.",
+ "confirmations.redraft.title": "Видалити та переробити допис?",
"confirmations.reply.confirm": "Відповісти",
"confirmations.reply.message": "Нова відповідь перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?",
+ "confirmations.reply.title": "Перезаписати допис?",
"confirmations.unfollow.confirm": "Відписатися",
"confirmations.unfollow.message": "Ви впевнені, що хочете відписатися від {name}?",
+ "confirmations.unfollow.title": "Відписатися від користувача?",
+ "content_warning.hide": "Сховати допис",
+ "content_warning.show": "Усе одно показати",
"conversation.delete": "Видалити бесіду",
"conversation.mark_as_read": "Позначити як прочитане",
"conversation.open": "Переглянути бесіду",
@@ -217,18 +223,18 @@
"domain_block_modal.title": "Заблокувати домен?",
"domain_block_modal.you_will_lose_followers": "Усіх ваших підписників з цього сервера буде вилучено.",
"domain_block_modal.you_wont_see_posts": "Ви не бачитимете дописів і сповіщень від користувачів на цьому сервері.",
- "domain_pill.activitypub_lets_connect": "Це дозволяє вам спілкуватися та взаємодіяти з людьми не лише на Mastodon, але й у різних соціальних додатках.",
- "domain_pill.activitypub_like_language": "ActivityPub - це як мова, якою Мастодонт розмовляє з іншими соціальними мережами.",
+ "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_server": "Їхній цифровий дім, де живуть усі їхні дописи.",
"domain_pill.their_username": "Їхній унікальний ідентифікатор на їхньому сервері. Ви можете знайти користувачів з однаковими іменами на різних серверах.",
"domain_pill.username": "Ім'я користувача",
"domain_pill.whats_in_a_handle": "Що є в адресі?",
"domain_pill.who_they_are": "Оскільки дескриптори вказують, хто це і де він знаходиться, ви можете взаємодіяти з людьми через соціальну мережу платформ на основі ActivityPub.",
"domain_pill.who_you_are": "Оскільки ваш нікнейм вказує, хто ви та де ви, люди можуть взаємодіяти з вами через соціальну мережу платформ на основі ActivityPub.",
"domain_pill.your_handle": "Ваша адреса:",
- "domain_pill.your_server": "Ваш цифровий дім, де живуть усі ваші публікації. Не подобається цей? Перенесіть сервери в будь-який час і залучайте своїх підписників.",
+ "domain_pill.your_server": "Ваш цифровий дім, де живуть усі ваші дописи. Не подобається цей? Перенесіть сервери в будь-який час і залучайте своїх підписників.",
"domain_pill.your_username": "Ваш унікальний ідентифікатор на цьому сервері. Ви можете знайти користувачів з однаковими іменами на різних серверах.",
"embed.instructions": "Вбудуйте цей допис до вашого вебсайту, скопіювавши код нижче.",
"embed.preview": "Ось який вигляд це матиме:",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Використати наявну категорію або створити нову",
"filter_modal.select_filter.title": "Фільтрувати цей допис",
"filter_modal.title.status": "Фільтрувати допис",
- "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentions}}",
- "filtered_notifications_banner.pending_requests": "Сповіщення від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати",
+ "filter_warning.matches_filter": "Збігається з фільтром “{title}”",
+ "filtered_notifications_banner.pending_requests": "Від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати",
"filtered_notifications_banner.title": "Відфільтровані сповіщення",
"firehose.all": "Всі",
"firehose.local": "Цей сервер",
@@ -347,6 +353,14 @@
"hashtag.follow": "Стежити за хештегом",
"hashtag.unfollow": "Не стежити за хештегом",
"hashtags.and_other": "…і {count, plural, other {ще #}}",
+ "hints.profiles.followers_may_be_missing": "Підписники цього профілю можуть бути не показані.",
+ "hints.profiles.follows_may_be_missing": "Підписки цього профілю можуть бути не показані.",
+ "hints.profiles.posts_may_be_missing": "Деякі дописи від цього профілю можуть бути не показані.",
+ "hints.profiles.see_more_followers": "Переглянути більше підписників на {domain}",
+ "hints.profiles.see_more_follows": "Переглянути більше підписок на {domain}",
+ "hints.profiles.see_more_posts": "Переглянути більше дописів на {domain}",
+ "hints.threads.replies_may_be_missing": "Відповіді з інших серверів можуть бути не показані.",
+ "hints.threads.see_more": "Переглянути більше відповідей на {domain}",
"home.column_settings.show_reblogs": "Показувати поширення",
"home.column_settings.show_replies": "Показувати відповіді",
"home.hide_announcements": "Приховати оголошення",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Переглянути оновлення",
"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": "Ви можете переглянути відфільтровані сповіщення окремо",
+ "ignore_notifications_modal.ignore": "Ігнорувати сповіщення",
+ "ignore_notifications_modal.limited_accounts_title": "Ігнорувати сповіщення від модерованих облікових записів?",
+ "ignore_notifications_modal.new_accounts_title": "Ігнорувати сповіщення від нових облікових записів?",
+ "ignore_notifications_modal.not_followers_title": "Ігнорувати сповіщення від людей, які не підписані на вас?",
+ "ignore_notifications_modal.not_following_title": "Ігнорувати сповіщення від людей, на яких ви не підписалися?",
+ "ignore_notifications_modal.private_mentions_title": "Ігнорувати сповіщення від небажаних приватних згадок?",
"interaction_modal.description.favourite": "Маючи обліковий запис на Mastodon, ви можете вподобати цей допис, щоб дати автору знати, що ви його цінуєте, і зберегти його на потім.",
"interaction_modal.description.follow": "Маючи обліковий запис на Mastodon, ви можете підписатися на {name}, щоб отримувати дописи цього користувача у свою стрічку.",
"interaction_modal.description.reblog": "Маючи обліковий запис на Mastodon, ви можете поширити цей допис, щоб поділитися ним зі своїми підписниками.",
@@ -407,14 +432,15 @@
"keyboard_shortcuts.unfocus": "Розфокусуватися з нового допису чи пошуку",
"keyboard_shortcuts.up": "Рухатися вгору списком",
"lightbox.close": "Закрити",
- "lightbox.compress": "Стиснути поле перегляду зображень",
- "lightbox.expand": "Розгорнути поле перегляду зображень",
"lightbox.next": "Далі",
"lightbox.previous": "Назад",
+ "lightbox.zoom_in": "Масштаб за реальним розміром",
+ "lightbox.zoom_out": "Збільшити відповідно до розміру",
"limited_account_hint.action": "Усе одно показати профіль",
"limited_account_hint.title": "Цей профіль сховали модератори {domain}.",
"link_preview.author": "Від {name}",
"link_preview.more_from_author": "Більше від {name}",
+ "link_preview.shares": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}",
"lists.account.add": "Додати до списку",
"lists.account.remove": "Вилучити зі списку",
"lists.delete": "Видалити список",
@@ -431,7 +457,7 @@
"lists.subheading": "Ваші списки",
"load_pending": "{count, plural, one {# новий елемент} other {# нових елементів}}",
"loading_indicator.label": "Завантаження…",
- "media_gallery.toggle_visible": "{number, plural, one {Приховати зображення} other {Приховати зображення}}",
+ "media_gallery.hide": "Сховати",
"moved_to_account_banner.text": "Ваш обліковий запис {disabledAccount} наразі вимкнений, оскільки вас перенесено до {movedToAccount}.",
"mute_modal.hide_from_notifications": "Сховати зі сповіщень",
"mute_modal.hide_options": "Сховати опції",
@@ -443,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Ви не бачитимете дописів, де їх згадано.",
"mute_modal.you_wont_see_posts": "Вони все ще можуть бачити ваші дописи, але ви не бачитимете їхніх.",
"navigation_bar.about": "Про застосунок",
+ "navigation_bar.administration": "Адміністрування",
"navigation_bar.advanced_interface": "Відкрити в розширеному вебінтерфейсі",
"navigation_bar.blocks": "Заблоковані користувачі",
"navigation_bar.bookmarks": "Закладки",
@@ -459,6 +486,7 @@
"navigation_bar.follows_and_followers": "Підписки та підписники",
"navigation_bar.lists": "Списки",
"navigation_bar.logout": "Вийти",
+ "navigation_bar.moderation": "Модерування",
"navigation_bar.mutes": "Приховані користувачі",
"navigation_bar.opened_in_classic_interface": "Дописи, облікові записи та інші специфічні сторінки усталено відкриваються в класичному вебінтерфейсі.",
"navigation_bar.personal": "Особисте",
@@ -469,36 +497,65 @@
"navigation_bar.security": "Безпека",
"not_signed_in_indicator.not_signed_in": "Ви повинні увійти, щоб отримати доступ до цього ресурсу.",
"notification.admin.report": "Скарга від {name} на {target}",
+ "notification.admin.report_account": "{name} повідомляє про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target} в категорії {category}",
+ "notification.admin.report_account_other": "{name} повідомляє про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target}",
+ "notification.admin.report_statuses": "{name} повідомляє про {target} в категорії {category}",
+ "notification.admin.report_statuses_other": "{name} повідомляє про {target}",
"notification.admin.sign_up": "{name} приєдналися",
+ "notification.admin.sign_up.name_and_others": "{name} та {count, plural, one {# інший} few {# інших} many {# інших} other {# інший}} зареєструвалися",
"notification.favourite": "Ваш допис сподобався {name}",
+ "notification.favourite.name_and_others_with_link": "{name} та {count, plural, one {# інший} few {# інших} many {# інших} other {# інший}} вподобали ваш допис",
"notification.follow": "{name} підписалися на вас",
+ "notification.follow.name_and_others": "{name} та {count, plural, one {# інший} few {# інших} many {# інших} other {# інший}} стежать за вами",
"notification.follow_request": "{name} відправили запит на підписку",
- "notification.mention": "{name} згадали вас",
- "notification.moderation-warning.learn_more": "Дізнатися більше",
+ "notification.follow_request.name_and_others": "{name} та {count, plural, one {# інший} few {# інших} many {# інших} other {# інший}} надсилають вам запит на стеження",
+ "notification.label.mention": "Згадка",
+ "notification.label.private_mention": "Особиста згадка",
+ "notification.label.private_reply": "Приватна відповідь",
+ "notification.label.reply": "Відповідь",
+ "notification.mention": "Згадка",
+ "notification.moderation-warning.learn_more": "Докладніше",
"notification.moderation_warning": "Ви отримали попередження модерації",
- "notification.moderation_warning.action_delete_statuses": "Деякі з ваших дописів було видалено.",
+ "notification.moderation_warning.action_delete_statuses": "Деякі з ваших дописів було вилучено.",
"notification.moderation_warning.action_disable": "Ваш обліковий запис було вимкнено.",
- "notification.moderation_warning.action_mark_statuses_as_sensitive": "Деякі з ваших дописів були позначені як чутливі.",
+ "notification.moderation_warning.action_mark_statuses_as_sensitive": "Деякі з ваших дописів були позначені делікатними.",
"notification.moderation_warning.action_none": "Ваш обліковий запис отримав попередження модерації.",
- "notification.moderation_warning.action_sensitive": "Відтепер ваші дописи будуть позначені як чутливі.",
+ "notification.moderation_warning.action_sensitive": "Відтепер ваші дописи будуть позначені делікатними.",
"notification.moderation_warning.action_silence": "Ваш обліковий запис було обмежено.",
"notification.moderation_warning.action_suspend": "Ваш обліковий запис було заблоковано.",
"notification.own_poll": "Ваше опитування завершилося",
- "notification.poll": "Опитування, у якому ви голосували, скінчилося",
+ "notification.poll": "Опитування, в якому ви проголосували, завершено",
"notification.reblog": "{name} поширює ваш допис",
+ "notification.reblog.name_and_others_with_link": "{name} та {count, plural, one {# інший} few {# інших} many {# інших} other {# інший}} поширили ваш допис",
"notification.relationships_severance_event": "Втрачено з'єднання з {name}",
"notification.relationships_severance_event.account_suspension": "Адміністратор з {from} призупинив {target}, що означає, що ви більше не можете отримувати оновлення від них або взаємодіяти з ними.",
- "notification.relationships_severance_event.domain_block": "Адміністратор з {from} заблокував {target}, включаючи {followersCount} ваших підписників і {{followingCount, plural, one {# account} other {# accounts}}, на які ви підписані.",
- "notification.relationships_severance_event.learn_more": "Дізнатися більше",
- "notification.relationships_severance_event.user_domain_block": "Ви заблокували {target}, видаливши {followersCount} ваших підписників і {followingCount, plural, one {# account} other {# accounts}}, за якими ви стежите.",
+ "notification.relationships_severance_event.domain_block": "Адміністратор з {from} заблокував {target}, включаючи {followersCount} ваших підписників і {followingCount , plural, one {# обліковий запис} few {# облікові записи} many {# облікових записів} other {# обліковий запис}}, на які ви підписані.",
+ "notification.relationships_severance_event.learn_more": "Докладніше",
+ "notification.relationships_severance_event.user_domain_block": "Ви заблокували {target}, видаливши {followersCount} ваших підписників і {followingCount, plural, one {# обліковий запис} few {# облікові записи} many {# облікових записів} other {# обліковий запис}}, за якими ви стежите.",
"notification.status": "{name} щойно дописує",
"notification.update": "{name} змінює допис",
"notification_requests.accept": "Прийняти",
+ "notification_requests.accept_multiple": "{count, plural, one {Прийняти # запит…} few {Прийняти # запити…} many {Прийняти # запитів…} other {Прийняти # запит…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Прийняти запит} other {Прийняти запити}}",
+ "notification_requests.confirm_accept_multiple.message": "Ви збираєтеся прийняти {count, plural, one {запит на сповіщення} few {# запити на сповіщення} many {# запитів на сповіщення} other {# запит на сповіщення}}. Ви впевнені, що хочете продовжити?",
+ "notification_requests.confirm_accept_multiple.title": "Прийняти запит на сповіщення?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Відхилити запит} other {Відхилити запити}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Ви збираєтеся відхилити {count, plural, one {один запит на сповіщення} few {# запити на сповіщення} many {# запитів на сповіщення} other {# запит на сповіщення}}. Ви не зможете легко отримати доступ до {count, plural, one {нього} other {них}} пізніше. Ви впевнені, що хочете продовжити?",
+ "notification_requests.confirm_dismiss_multiple.title": "Відхилити запити на сповіщення?",
"notification_requests.dismiss": "Відхилити",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Відхилити # запит…} few {Відхилити # запити…} many {Відхилити # запитів…} other {Відхилити # запит…}}",
+ "notification_requests.edit_selection": "Змінити",
+ "notification_requests.exit_selection": "Готово",
+ "notification_requests.explainer_for_limited_account": "Сповіщення від цього облікового запису фільтровані, оскільки обліковий запис обмежений модератором.",
+ "notification_requests.explainer_for_limited_remote_account": "Сповіщення від цього облікового запису фільтровані, оскільки обліковий запис або його сервер обмежений модератором.",
+ "notification_requests.maximize": "Розгорнути",
+ "notification_requests.minimize_banner": "Мінімізувати відфільтрований банер сповіщень",
"notification_requests.notifications_from": "Сповіщення від {name}",
"notification_requests.title": "Відфільтровані сповіщення",
+ "notification_requests.view": "Переглянути сповіщення",
"notifications.clear": "Очистити сповіщення",
"notifications.clear_confirmation": "Ви впевнені, що хочете назавжди видалити всі сповіщення?",
+ "notifications.clear_title": "Очистити сповіщення?",
"notifications.column_settings.admin.report": "Нові скарги:",
"notifications.column_settings.admin.sign_up": "Нові реєстрації:",
"notifications.column_settings.alert": "Сповіщення стільниці",
@@ -530,6 +587,14 @@
"notifications.permission_denied": "Сповіщення стільниці недоступні через раніше відхилений запит дозволів для браузера",
"notifications.permission_denied_alert": "Сповіщення не можна ввімкнути оскільки у дозволі вже було відмовлено раніше",
"notifications.permission_required": "Сповіщення на стільниці не доступні, оскільки необхідний дозвіл не надано.",
+ "notifications.policy.accept": "Прийняти",
+ "notifications.policy.accept_hint": "Показувати в сповіщеннях",
+ "notifications.policy.drop": "Ігнорувати",
+ "notifications.policy.drop_hint": "Відправити в нікуди, щоб більше не бачити",
+ "notifications.policy.filter": "Фільтрувати",
+ "notifications.policy.filter_hint": "Надіслати до відфільтрованих вхідних",
+ "notifications.policy.filter_limited_accounts_hint": "Обмежено модераторами сервера",
+ "notifications.policy.filter_limited_accounts_title": "Модеровані облікові записи",
"notifications.policy.filter_new_accounts.hint": "Створено впродовж {days, plural, one {одного} few {# днів} many {# днів} other {# дня}}",
"notifications.policy.filter_new_accounts_title": "Нові облікові записи",
"notifications.policy.filter_not_followers_hint": "Включаючи людей, які стежать за вами менше {days, plural, one {one day} other {# days}}",
@@ -538,7 +603,7 @@
"notifications.policy.filter_not_following_title": "Люди, на яких ви не підписані",
"notifications.policy.filter_private_mentions_hint": "Відфільтровується, якщо це не відповідь на вашу власну згадку або якщо ви відстежуєте відправника",
"notifications.policy.filter_private_mentions_title": "Небажані приватні згадки",
- "notifications.policy.title": "Відфільтрувати сповіщення від…",
+ "notifications.policy.title": "Керувати сповіщеннями від…",
"notifications_permission_banner.enable": "Увімкнути сповіщення стільниці",
"notifications_permission_banner.how_to_control": "Щоб отримувати сповіщення, коли Mastodon не відкрито, увімкніть сповіщення стільниці. Ви можете контролювати, які типи взаємодій створюють сповіщення через кнопку {icon} вгорі після їхнього увімкнення.",
"notifications_permission_banner.title": "Не проґавте нічого",
@@ -665,9 +730,13 @@
"report.unfollow_explanation": "Ви підписані на цього користувача. Щоб більше не бачити їхні дописи у вашій стрічці, відпишіться від них.",
"report_notification.attached_statuses": "{count, plural, one {{count} допис} few {{count} дописи} many {{count} дописів} other {{count} дописи}} прикріплено",
"report_notification.categories.legal": "Правові",
+ "report_notification.categories.legal_sentence": "незаконний контент",
"report_notification.categories.other": "Інше",
+ "report_notification.categories.other_sentence": "інше",
"report_notification.categories.spam": "Спам",
+ "report_notification.categories.spam_sentence": "спам",
"report_notification.categories.violation": "Порушення правил",
+ "report_notification.categories.violation_sentence": "порушення правил",
"report_notification.open": "Відкрити скаргу",
"search.no_recent_searches": "Немає останніх пошуків",
"search.placeholder": "Пошук",
@@ -695,10 +764,11 @@
"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.mastodon_is": "Мастодон - найкращий спосіб продовжувати свою справу.",
+ "sign_in_banner.follow_anyone": "Слідкуйте за ким завгодно у всьому fediverse і дивіться все це в хронологічному порядку. Немає алгоритмів, реклами чи клікбейту.",
+ "sign_in_banner.mastodon_is": "Mastodon — найкращий спосіб бути в курсі подій.",
"sign_in_banner.sign_in": "Увійти",
"sign_in_banner.sso_redirect": "Увійдіть або зареєструйтесь",
"status.admin_account": "Відкрити інтерфейс модерації для @{name}",
@@ -708,6 +778,7 @@
"status.bookmark": "Додати до закладок",
"status.cancel_reblog_private": "Скасувати поширення",
"status.cannot_reblog": "Цей допис не може бути поширений",
+ "status.continued_thread": "Продовження у потоці",
"status.copy": "Копіювати посилання на допис",
"status.delete": "Видалити",
"status.detailed_status": "Детальний вигляд бесіди",
@@ -716,12 +787,10 @@
"status.edit": "Редагувати",
"status.edited": "Востаннє змінено {date}",
"status.edited_x_times": "Відредаговано {count, plural, one {{count} раз} few {{count} рази} many {{counter} разів} other {{counter} разів}}",
- "status.embed": "Вбудувати",
+ "status.embed": "Отримати код вставки",
"status.favourite": "Уподобане",
"status.favourites": "{count, plural, one {вподобання} few {вподобання} many {вподобань} other {вподобання}}",
"status.filter": "Фільтрувати цей допис",
- "status.filtered": "Відфільтровано",
- "status.hide": "Сховати допис",
"status.history.created": "{name} створює {date}",
"status.history.edited": "{name} змінює {date}",
"status.load_more": "Завантажити більше",
@@ -743,16 +812,14 @@
"status.reblogs.empty": "Ніхто ще не поширив цей допис. Коли хтось це зроблять, вони будуть зображені тут.",
"status.redraft": "Видалити та виправити",
"status.remove_bookmark": "Видалити закладку",
+ "status.replied_in_thread": "Відповідь у потоці",
"status.replied_to": "Відповідь для {name}",
"status.reply": "Відповісти",
"status.replyAll": "Відповісти на ланцюжок",
"status.report": "Поскаржитися на @{name}",
"status.sensitive_warning": "Делікатний вміст",
"status.share": "Поділитися",
- "status.show_filter_reason": "Усе одно показати",
- "status.show_less": "Згорнути",
"status.show_less_all": "Згорнути для всіх",
- "status.show_more": "Розгорнути",
"status.show_more_all": "Розгорнути для всіх",
"status.show_original": "Показати оригінал",
"status.title.with_attachments": "{user} розміщує {{attachmentCount, plural, one {вкладення} few {{attachmentCount} вкладення} many {{attachmentCount} вкладень} other {{attachmentCount} вкладень}}",
@@ -771,10 +838,6 @@
"time_remaining.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}",
"time_remaining.moments": "Залишилось секунд",
"time_remaining.seconds": "{number, plural, one {# секунда} few {# секунди} other {# секунд}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} з інших серверів не зображується.",
- "timeline_hint.resources.followers": "Підписники",
- "timeline_hint.resources.follows": "Підписки",
- "timeline_hint.resources.statuses": "Попередні дописи",
"trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особи} other {{counter} осіб}} {days, plural, one {за останній {days} день} few {за останні {days} дні} other {за останні {days} днів}}",
"trends.trending_now": "Популярне зараз",
"ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Mastodon.",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index 1b9f8d9691d..cb5dfa63cd0 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -6,7 +6,6 @@
"about.domain_blocks.silenced.title": "محدود",
"about.domain_blocks.suspended.title": "معطل شدہ",
"about.rules": "سرور کے اصول",
- "account.account_note_header": "نوٹ",
"account.add_or_remove_from_list": "فہرست میں شامل یا برطرف کریں",
"account.badges.bot": "روبوٹ",
"account.badges.group": "گروپ",
@@ -14,7 +13,6 @@
"account.block_domain": "{domain} سے سب چھپائیں",
"account.block_short": "بلاک",
"account.blocked": "مسدود کردہ",
- "account.browse_more_on_origin_server": "اصل پروفائل پر مزید براؤز کریں",
"account.cancel_follow_request": "Withdraw follow request",
"account.direct": "نجی طور پر @{name} کا ذکر کریں",
"account.disable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع نہ کریں",
@@ -29,9 +27,7 @@
"account.follow_back": "اکاؤنٹ کو فالو بیک ",
"account.followers": "پیروکار",
"account.followers.empty": "ہنوز اس صارف کی کوئی پیروی نہیں کرتا.",
- "account.followers_counter": "{count, plural,one {{counter} پیروکار} other {{counter} پیروکار}}",
"account.following": "فالو کر رہے ہیں",
- "account.following_counter": "{count, plural, one {{counter} پیروی کر رہے ہیں} other {{counter} پیروی کر رہے ہیں}}",
"account.follows.empty": "\"یہ صارف ہنوز کسی کی پیروی نہیں کرتا ہے\".",
"account.go_to_profile": "پروفائل پر جائیں",
"account.hide_reblogs": "@{name} سے فروغ چھپائیں",
@@ -57,7 +53,6 @@
"account.requested_follow": "{name} آپ کو فالو کرنا چھاتا ہے۔",
"account.share": "@{name} کے مشخص کو بانٹیں",
"account.show_reblogs": "@{name} کی افزائشات کو دکھائیں",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "@{name} کو بحال کریں",
"account.unblock_domain": "{domain} کو نہ چھپائیں",
"account.unblock_short": "بلاک ختم کریں",
@@ -129,7 +124,6 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "ڈیلیٹ",
"confirmations.delete_list.message": "کیا آپ واقعی اس فہرست کو مستقل طور پر ڈیلیٹ کرنا چاہتے ہیں؟",
- "confirmations.domain_block.message": "کیا آپ واقعی، واقعی یقین رکھتے ہیں کہ آپ پورے {domain} کو بلاک کرنا چاہتے ہیں؟ زیادہ تر معاملات میں چند ٹارگٹیڈ بلاکس یا خاموش کرنا کافی اور افضل ہیں۔ آپ اس ڈومین کا مواد کسی بھی عوامی ٹائم لائنز یا اپنی اطلاعات میں نہیں دیکھیں گے۔ اس ڈومین سے آپ کے پیروکاروں کو ہٹا دیا جائے گا۔",
"confirmations.logout.confirm": "لاگ آؤٹ",
"confirmations.logout.message": "کیا واقعی آپ لاگ آؤٹ ہونا چاہتے ہیں؟",
"confirmations.mute.confirm": "خاموش",
@@ -241,9 +235,7 @@
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} آپ کی پیروی کی",
"notification.follow_request": "{name} نے آپ کی پیروی کی درخواست کی",
- "notification.mention": "{name} نے آپ کا تذکرہ کیا",
"notification.own_poll": "آپ کا پول ختم ہو گیا ہے",
- "notification.poll": "آپ کا ووٹ دیا گیا ایک پول ختم ہو گیا ہے",
"notification.reblog": "{name} boosted your status",
"notification.status": "{name} نے ابھی ابھی پوسٹ کیا",
"notifications.clear": "اطلاعات ہٹائیں",
@@ -277,7 +269,6 @@
"status.pinned": "Pinned toot",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json
index 77892914a42..6dae368ffcf 100644
--- a/app/javascript/mastodon/locales/uz.json
+++ b/app/javascript/mastodon/locales/uz.json
@@ -11,14 +11,12 @@
"about.not_available": "Ushbu ma'lumot ushbu serverda mavjud emas.",
"about.powered_by": "{mastodon} tomonidan boshqariladigan markazlashtirilmagan ijtimoiy media",
"about.rules": "Server qoidalari",
- "account.account_note_header": "Eslatma",
"account.add_or_remove_from_list": "Roʻyxatlarga qoʻshish yoki oʻchirish",
"account.badges.bot": "Bo't",
"account.badges.group": "Guruhlar",
"account.block": "Blok @{name}",
"account.block_domain": "{domain} domenini bloklash",
"account.blocked": "Bloklangan",
- "account.browse_more_on_origin_server": "Asl profilda ko'proq ko'rish",
"account.cancel_follow_request": "Kuzatuv so‘rovini bekor qilish",
"account.disable_notifications": "@{name} post qo‘yganida menga xabar berishni to‘xtating",
"account.domain_blocked": "Domen bloklangan",
@@ -31,9 +29,7 @@
"account.follow": "Obuna bo‘lish",
"account.followers": "Obunachilar",
"account.followers.empty": "Bu foydalanuvchini hali hech kim kuzatmaydi.",
- "account.followers_counter": "{count, plural, one {{counter} Muxlis} other {{counter} Muxlislar}}",
"account.following": "Kuzatish",
- "account.following_counter": "{count, plural, one {{counter} ga Muxlis} other {{counter} larga muxlis}}",
"account.follows.empty": "Bu foydalanuvchi hali hech kimni kuzatmagan.",
"account.go_to_profile": "Profilga o'tish",
"account.hide_reblogs": "@{name} dan boostlarni yashirish",
@@ -54,7 +50,6 @@
"account.requested_follow": "{name} sizni kuzatishni soʻradi",
"account.share": "@{name} profilini ulashing",
"account.show_reblogs": "@{name} dan bootlarni ko'rsatish",
- "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Postlar}}",
"account.unblock": "@{name} ni blokdan chiqarish",
"account.unblock_domain": "{domain} domenini blokdan chiqarish",
"account.unblock_short": "Blokdan chiqarish",
@@ -133,15 +128,12 @@
"compose_form.spoiler.unmarked": "Kontent haqida ogohlantirish qo'shing",
"confirmation_modal.cancel": "Bekor qilish",
"confirmations.block.confirm": "Bloklash",
- "confirmations.cancel_follow_request.confirm": "Bekor qilish",
- "confirmations.cancel_follow_request.message": "Haqiqatan ham {name}ga obuna boʻlish soʻrovingizni qaytarib olmoqchimisiz?",
"confirmations.delete.confirm": "Oʻchirish",
"confirmations.delete.message": "Haqiqatan ham bu postni oʻchirib tashlamoqchimisiz?",
"confirmations.delete_list.confirm": "Oʻchirish",
"confirmations.delete_list.message": "Haqiqatan ham bu roʻyxatni butunlay oʻchirib tashlamoqchimisiz?",
"confirmations.discard_edit_media.confirm": "Bekor qilish",
"confirmations.discard_edit_media.message": "Sizda media tavsifi yoki oldindan ko‘rishda saqlanmagan o‘zgarishlar bor, ular baribir bekor qilinsinmi?",
- "confirmations.domain_block.message": "Haqiqatan ham, {domain} ni butunlay bloklamoqchimisiz? Ko'pgina hollarda bir nechta maqsadli bloklar yoki ovozni o'chirish etarli va afzaldir. Siz oʻsha domendagi kontentni hech qanday umumiy vaqt jadvallarida yoki bildirishnomalaringizda koʻrmaysiz. Bu domendagi obunachilaringiz olib tashlanadi.",
"confirmations.logout.confirm": "Chiqish",
"confirmations.logout.message": "Chiqishingizga aminmisiz?",
"confirmations.mute.confirm": "Ovozsiz",
@@ -307,7 +299,6 @@
"lists.search": "Siz kuzatadigan odamlar orasidan qidiring",
"lists.subheading": "Sizning ro'yxatlaringiz",
"load_pending": "{count, plural, one {# yangi element} other {# yangi elementlar}}",
- "media_gallery.toggle_visible": "{number, plural, one {Rasmni yashirish} other {Rasmlarni yashirish}}",
"moved_to_account_banner.text": "{movedToAccount} hisobiga koʻchganingiz uchun {disabledAccount} hisobingiz hozirda oʻchirib qoʻyilgan.",
"navigation_bar.about": "Haqida",
"navigation_bar.blocks": "Bloklangan foydalanuvchilar",
@@ -331,7 +322,6 @@
"navigation_bar.security": "Xavfsizlik",
"not_signed_in_indicator.not_signed_in": "Ushbu manbaga kirish uchun tizimga kirishingiz kerak.",
"notification.own_poll": "So‘rovingiz tugadi",
- "notification.poll": "Siz ovoz bergan soʻrovnoma yakunlandi",
"notification.reblog": "{name} boosted your status",
"onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 18f0fec3c57..04b73e78fa4 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -3,7 +3,7 @@
"about.contact": "Liên lạc:",
"about.disclaimer": "Mastodon là phần mềm tự do nguồn mở của Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Lý do không được cung cấp",
- "about.domain_blocks.preamble": "Mastodon cho phép bạn tương tác nội dung và giao tiếp với mọi người từ bất kỳ máy chủ nào khác trong mạng liên hợp. Còn máy chủ này có những ngoại lệ riêng.",
+ "about.domain_blocks.preamble": "Mastodon cho phép bạn đọc nội dung và giao tiếp với mọi người từ bất kỳ máy chủ nào. Còn đây là những ngoại lệ trên máy chủ này.",
"about.domain_blocks.silenced.explanation": "Nói chung, bạn sẽ không thấy người và nội dung từ máy chủ này, trừ khi bạn tự tìm kiếm hoặc tự theo dõi.",
"about.domain_blocks.silenced.title": "Hạn chế",
"about.domain_blocks.suspended.explanation": "Dữ liệu từ máy chủ này sẽ không được xử lý, lưu trữ hoặc trao đổi. Mọi tương tác hoặc giao tiếp với người từ máy chủ này đều bị cấm.",
@@ -11,7 +11,7 @@
"about.not_available": "Máy chủ này chưa cung cấp thông tin.",
"about.powered_by": "Mạng xã hội liên hợp {mastodon}",
"about.rules": "Nội quy máy chủ",
- "account.account_note_header": "Ghi chú",
+ "account.account_note_header": "Ghi chú cá nhân",
"account.add_or_remove_from_list": "Sửa danh sách",
"account.badges.bot": "Bot",
"account.badges.group": "Nhóm",
@@ -19,7 +19,6 @@
"account.block_domain": "Chặn mọi thứ từ {domain}",
"account.block_short": "Chặn",
"account.blocked": "Đã chặn",
- "account.browse_more_on_origin_server": "Truy cập trang của người này",
"account.cancel_follow_request": "Thu hồi yêu cầu theo dõi",
"account.copy": "Sao chép địa chỉ",
"account.direct": "Nhắn riêng @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "Theo dõi lại",
"account.followers": "Người theo dõi",
"account.followers.empty": "Chưa có người theo dõi nào.",
- "account.followers_counter": "{count, plural, one {{counter} Người theo dõi} other {{counter} Người theo dõi}}",
+ "account.followers_counter": "{count, plural, other {{counter} Người theo dõi}}",
"account.following": "Đang theo dõi",
- "account.following_counter": "{count, plural, one {{counter} Theo dõi} other {{counter} Theo dõi}}",
+ "account.following_counter": "{count, plural, other {{counter} Đang theo dõi}}",
"account.follows.empty": "Người này chưa theo dõi ai.",
"account.go_to_profile": "Xem hồ sơ",
"account.hide_reblogs": "Ẩn tút @{name} đăng lại",
@@ -57,13 +56,13 @@
"account.no_bio": "Chưa có miêu tả.",
"account.open_original_page": "Mở trang gốc",
"account.posts": "Tút",
- "account.posts_with_replies": "Lượt trả lời",
+ "account.posts_with_replies": "Trả lời",
"account.report": "Báo cáo @{name}",
"account.requested": "Đang chờ chấp thuận. Nhấp vào đây để hủy yêu cầu theo dõi",
"account.requested_follow": "{name} yêu cầu theo dõi bạn",
"account.share": "Chia sẻ @{name}",
"account.show_reblogs": "Hiện tút do @{name} đăng lại",
- "account.statuses_counter": "{count, plural, one {{counter} Tút} other {{counter} Tút}}",
+ "account.statuses_counter": "{count, plural, other {{counter} Tút}}",
"account.unblock": "Bỏ chặn @{name}",
"account.unblock_domain": "Bỏ ẩn {domain}",
"account.unblock_short": "Bỏ chặn",
@@ -77,7 +76,7 @@
"admin.dashboard.monthly_retention": "Tỉ lệ người dùng ở lại sau khi đăng ký",
"admin.dashboard.retention.average": "Trung bình",
"admin.dashboard.retention.cohort": "Tháng đăng ký",
- "admin.dashboard.retention.cohort_size": "Người mới",
+ "admin.dashboard.retention.cohort_size": "Số người",
"admin.impact_report.instance_accounts": "Hồ sơ tài khoản này sẽ xóa",
"admin.impact_report.instance_followers": "Người theo dõi của thành viên máy chủ sẽ mất",
"admin.impact_report.instance_follows": "Người theo dõi người dùng của họ sẽ mất",
@@ -98,6 +97,8 @@
"block_modal.title": "Chặn người này?",
"block_modal.you_wont_see_mentions": "Bạn sẽ không nhìn thấy tút có nhắc đến họ.",
"boost_modal.combo": "Nhấn {combo} để bỏ qua bước này",
+ "boost_modal.reblog": "Đăng lại?",
+ "boost_modal.undo_reblog": "Hủy đăng lại?",
"bundle_column_error.copy_stacktrace": "Sao chép báo lỗi",
"bundle_column_error.error.body": "Không thể hiện trang này. Đây có thể là một lỗi trong mã lập trình của chúng tôi, hoặc là vấn đề tương thích của trình duyệt.",
"bundle_column_error.error.title": "Ôi không!",
@@ -117,15 +118,15 @@
"closed_registrations_modal.title": "Đăng ký Mastodon",
"column.about": "Giới thiệu",
"column.blocks": "Người đã chặn",
- "column.bookmarks": "Đã lưu",
+ "column.bookmarks": "Những tút đã lưu",
"column.community": "Máy chủ này",
"column.direct": "Nhắn riêng",
"column.directory": "Tìm người cùng sở thích",
"column.domain_blocks": "Máy chủ đã chặn",
- "column.favourites": "Lượt thích",
+ "column.favourites": "Những tút đã thích",
"column.firehose": "Bảng tin",
"column.follow_requests": "Yêu cầu theo dõi",
- "column.home": "Trang chính",
+ "column.home": "Trang chủ",
"column.lists": "Danh sách",
"column.mutes": "Người đã ẩn",
"column.notifications": "Thông báo",
@@ -144,7 +145,7 @@
"community.column_settings.remote_only": "Chỉ người ở máy chủ khác",
"compose.language.change": "Chọn ngôn ngữ tút",
"compose.language.search": "Tìm ngôn ngữ...",
- "compose.published.body": "Đã đăng.",
+ "compose.published.body": "Tút đã được đăng.",
"compose.published.open": "Xem lại",
"compose.saved.body": "Đã lưu tút.",
"compose_form.direct_message_warning_learn_more": "Tìm hiểu thêm",
@@ -153,8 +154,8 @@
"compose_form.lock_disclaimer": "Tài khoản của bạn không {locked}. Bất cứ ai cũng có thể theo dõi và xem tút riêng tư của bạn.",
"compose_form.lock_disclaimer.lock": "khóa",
"compose_form.placeholder": "Bạn đang nghĩ gì?",
- "compose_form.poll.duration": "Hết hạn vào",
- "compose_form.poll.multiple": "Nhiều lựa chọn",
+ "compose_form.poll.duration": "Hết hạn sau",
+ "compose_form.poll.multiple": "Chọn nhiều",
"compose_form.poll.option_placeholder": "Lựa chọn {number}",
"compose_form.poll.single": "Chọn một",
"compose_form.poll.switch_to_multiple": "Có thể chọn nhiều lựa chọn",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "Nội dung ẩn (tùy chọn)",
"confirmation_modal.cancel": "Hủy bỏ",
"confirmations.block.confirm": "Chặn",
- "confirmations.cancel_follow_request.confirm": "Thu hồi yêu cầu",
- "confirmations.cancel_follow_request.message": "Bạn có chắc muốn thu hồi yêu cầu theo dõi của bạn với {name}?",
- "confirmations.delete.confirm": "Xóa bỏ",
- "confirmations.delete.message": "Bạn thật sự muốn xóa tút này?",
- "confirmations.delete_list.confirm": "Xóa bỏ",
- "confirmations.delete_list.message": "Bạn thật sự muốn xóa vĩnh viễn danh sách này?",
+ "confirmations.delete.confirm": "Vẫn xóa",
+ "confirmations.delete.message": "Bạn có chắc muốn xóa tút này?",
+ "confirmations.delete.title": "Xóa tút",
+ "confirmations.delete_list.confirm": "Vẫn xóa",
+ "confirmations.delete_list.message": "Bạn có chắc muốn xóa vĩnh viễn danh sách này?",
+ "confirmations.delete_list.title": "Xóa danh sách",
"confirmations.discard_edit_media.confirm": "Bỏ qua",
"confirmations.discard_edit_media.message": "Bạn chưa lưu thay đổi đối với phần mô tả hoặc bản xem trước của media, vẫn bỏ luôn?",
- "confirmations.domain_block.confirm": "Chặn máy chủ",
- "confirmations.domain_block.message": "Bạn thật sự muốn ẩn toàn bộ nội dung từ {domain}? Sẽ hợp lý hơn nếu bạn chỉ chặn hoặc ẩn một vài tài khoản cụ thể. Ẩn toàn bộ nội dung từ máy chủ sẽ khiến bạn không còn thấy nội dung từ máy chủ đó ở bất kỳ nơi nào, kể cả thông báo. Người quan tâm bạn từ máy chủ đó cũng sẽ bị xóa luôn.",
"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.logout.confirm": "Đăng xuất",
- "confirmations.logout.message": "Bạn có thật sự muốn thoát?",
+ "confirmations.logout.message": "Bạn có chắc muốn thoát?",
+ "confirmations.logout.title": "Đăng xuất",
"confirmations.mute.confirm": "Ẩn",
"confirmations.redraft.confirm": "Xóa & viết lại",
- "confirmations.redraft.message": "Bạn thật sự muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và đăng lại của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
+ "confirmations.redraft.message": "Điều này sẽ khiến những lượt thích và đăng lại của tút bị mất, cũng như những trả lời sẽ không còn nội dung gốc.",
+ "confirmations.redraft.title": "Xóa & viết lại",
"confirmations.reply.confirm": "Trả lời",
"confirmations.reply.message": "Nội dung bạn đang soạn thảo sẽ bị ghi đè, bạn có tiếp tục?",
+ "confirmations.reply.title": "Ghi đè lên tút cũ",
"confirmations.unfollow.confirm": "Bỏ theo dõi",
- "confirmations.unfollow.message": "Bạn thật sự muốn bỏ theo dõi {name}?",
+ "confirmations.unfollow.message": "Bạn có chắc muốn bỏ theo dõi {name}?",
+ "confirmations.unfollow.title": "Bỏ theo dõi",
+ "content_warning.hide": "Ẩn lại",
+ "content_warning.show": "Nhấn để xem",
"conversation.delete": "Xóa tin nhắn này",
"conversation.mark_as_read": "Đánh dấu là đã đọc",
"conversation.open": "Xem toàn bộ tin nhắn",
@@ -221,15 +227,15 @@
"domain_pill.activitypub_like_language": "ActivityPub giống như ngôn ngữ Mastodon giao tiếp với các mạng xã hội khác.",
"domain_pill.server": "Máy chủ",
"domain_pill.their_handle": "Địa chỉ Mastodon:",
- "domain_pill.their_server": "Ngôi nhà kỹ thuật số, nơi lưu giữ tút của ai đó.",
- "domain_pill.their_username": "Danh tính duy nhất của họ trên máy chủ này. Có thể có tên người dùng giống nhau trên các máy chủ khác.",
+ "domain_pill.their_server": "Nơi lưu trữ tút của người này.",
+ "domain_pill.their_username": "Độc nhất trên máy chủ này. Những máy chủ khác có thể cũng có tên người dùng giống vậy.",
"domain_pill.username": "Tên người dùng",
"domain_pill.whats_in_a_handle": "Địa chỉ Mastodon là gì?",
"domain_pill.who_they_are": "Vì địa chỉ Mastodon cho biết một người là ai và họ ở đâu, nên bạn có thể tương tác với mọi người trên các nền tảng có hỗ trợ ActivityPub.",
"domain_pill.who_you_are": "Vì địa chỉ Mastodon cho biết bạn là ai và bạn ở đâu, nên bạn có thể tương tác với mọi người trên các nền tảng có hỗ trợ ActivityPub.",
"domain_pill.your_handle": "Địa chỉ Mastodon của bạn:",
- "domain_pill.your_server": "Ngôi nhà kỹ thuật số, nơi lưu giữ tút của bạn. Không thích ở đây? Chuyển sang máy chủ khác và mang theo người theo dõi của bạn.",
- "domain_pill.your_username": "Danh tính duy nhất của bạn trên máy chủ này. Có thể có tên người dùng giống bạn trên các máy chủ khác.",
+ "domain_pill.your_server": "Nơi lưu trữ tút của bạn. Không thích ở đây? Chuyển sang máy chủ khác và giữ nguyên người theo dõi của bạn.",
+ "domain_pill.your_username": "Chỉ riêng bạn trên máy chủ này. Những máy chủ khác có thể cũng có tên người dùng giống vậy.",
"embed.instructions": "Sao chép đoạn mã dưới đây và chèn vào trang web của bạn.",
"embed.preview": "Nó sẽ hiển thị như vầy:",
"emoji_button.activity": "Hoạt động",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "Sử dụng một danh mục hiện có hoặc tạo một danh mục mới",
"filter_modal.select_filter.title": "Lọc tút này",
"filter_modal.title.status": "Lọc một tút",
- "filtered_notifications_banner.mentions": "{count, plural, other {lượt nhắc}}",
- "filtered_notifications_banner.pending_requests": "Thông báo từ {count, plural, =0 {không ai} other {# người}} bạn có thể biết",
+ "filter_warning.matches_filter": "Khớp bộ lọc “{title}”",
+ "filtered_notifications_banner.pending_requests": "Từ {count, plural, =0 {không ai} other {# người}} bạn có thể biết",
"filtered_notifications_banner.title": "Thông báo đã lọc",
"firehose.all": "Toàn bộ",
"firehose.local": "Máy chủ này",
@@ -316,7 +322,7 @@
"follow_suggestions.hints.most_interactions": "Người này đang thu hút sự chú ý trên {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Người này có nét giống những người mà bạn theo dõi gần đây.",
"follow_suggestions.personalized_suggestion": "Gợi ý cá nhân hóa",
- "follow_suggestions.popular_suggestion": "Những người nổi tiếng",
+ "follow_suggestions.popular_suggestion": "Người nổi tiếng",
"follow_suggestions.popular_suggestion_longer": "Nổi tiếng trên {domain}",
"follow_suggestions.similar_to_recently_followed_longer": "Tương tự những người mà bạn theo dõi gần đây",
"follow_suggestions.view_all": "Xem tất cả",
@@ -347,6 +353,14 @@
"hashtag.follow": "Theo dõi hashtag",
"hashtag.unfollow": "Bỏ theo dõi hashtag",
"hashtags.and_other": "…và {count, plural, other {# nữa}}",
+ "hints.profiles.followers_may_be_missing": "Số người theo dõi có thể không đầy đủ.",
+ "hints.profiles.follows_may_be_missing": "Số người mà người này theo dõi có thể không đầy đủ.",
+ "hints.profiles.posts_may_be_missing": "Số tút của người này có thể không đầy đủ.",
+ "hints.profiles.see_more_followers": "Xem thêm người theo dõi ở {domain}",
+ "hints.profiles.see_more_follows": "Xem thêm người mà người này theo dõi ở {domain}",
+ "hints.profiles.see_more_posts": "Xem thêm tút ở {domain}",
+ "hints.threads.replies_may_be_missing": "Lượt trả lời từ máy chủ khác có thể không đầy đủ.",
+ "hints.threads.see_more": "Xem thêm ở {domain}",
"home.column_settings.show_reblogs": "Hiện những lượt đăng lại",
"home.column_settings.show_replies": "Hiện những tút dạng trả lời",
"home.hide_announcements": "Ẩn thông báo máy chủ",
@@ -354,6 +368,17 @@
"home.pending_critical_update.link": "Xem bản cập nhật",
"home.pending_critical_update.title": "Có bản cập nhật bảo mật quan trọng!",
"home.show_announcements": "Xem thông báo máy chủ",
+ "ignore_notifications_modal.disclaimer": "Mastodon sẽ không thông báo cho người dùng rằng bạn đã bỏ qua thông báo của họ. Họ sẽ vẫn có thể tương tác với bạn.",
+ "ignore_notifications_modal.filter_instead": "Lọc thay thế",
+ "ignore_notifications_modal.filter_to_act_users": "Bạn vẫn có thể chấp nhận, từ chối hoặc báo cáo người khác",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "Lọc giúp tránh nhầm lẫn tiềm ẩn",
+ "ignore_notifications_modal.filter_to_review_separately": "Bạn có thể xem lại riêng các thông báo đã lọc",
+ "ignore_notifications_modal.ignore": "Bỏ qua thông báo",
+ "ignore_notifications_modal.limited_accounts_title": "Bỏ qua thông báo từ các tài khoản bị kiểm duyệt?",
+ "ignore_notifications_modal.new_accounts_title": "Bỏ qua thông báo từ các tài khoản mới đăng ký?",
+ "ignore_notifications_modal.not_followers_title": "Bỏ qua thông báo từ những người chưa theo dõi bạn?",
+ "ignore_notifications_modal.not_following_title": "Bỏ qua thông báo từ những người bạn không theo dõi?",
+ "ignore_notifications_modal.private_mentions_title": "Bỏ qua thông báo từ những lượt Nhắn Riêng không mong muốn?",
"interaction_modal.description.favourite": "Với tài khoản Mastodon, bạn có thể cho người đăng biết bạn thích tút này và lưu lại tút.",
"interaction_modal.description.follow": "Với tài khoản Mastodon, bạn có thể theo dõi {name} để tút của họ hiện trên bảng tin của mình.",
"interaction_modal.description.reblog": "Với tài khoản Mastodon, bạn có thể đăng lại tút này để chia sẻ nó với những người đang theo dõi bạn.",
@@ -407,12 +432,12 @@
"keyboard_shortcuts.unfocus": "đưa con trỏ ra khỏi ô soạn thảo hoặc ô tìm kiếm",
"keyboard_shortcuts.up": "di chuyển lên trên danh sách",
"lightbox.close": "Đóng",
- "lightbox.compress": "Thu nhỏ hình",
- "lightbox.expand": "Phóng to hình",
"lightbox.next": "Tiếp",
"lightbox.previous": "Trước",
+ "lightbox.zoom_in": "Kích cỡ gốc",
+ "lightbox.zoom_out": "Vừa màn hình",
"limited_account_hint.action": "Vẫn cứ xem",
- "limited_account_hint.title": "Người này đã bị ẩn bởi quản trị viên của {domain}.",
+ "limited_account_hint.title": "Người này đã bị ẩn bởi quản trị viên {domain}.",
"link_preview.author": "Bởi {name}",
"link_preview.more_from_author": "Thêm từ {name}",
"link_preview.shares": "{count, plural, other {{counter} lượt chia sẻ}}",
@@ -432,7 +457,7 @@
"lists.subheading": "Danh sách của bạn",
"load_pending": "{count, plural, one {# tút mới} other {# tút mới}}",
"loading_indicator.label": "Đang tải…",
- "media_gallery.toggle_visible": "{number, plural, other {Ẩn hình ảnh}}",
+ "media_gallery.hide": "Ẩn",
"moved_to_account_banner.text": "Tài khoản {disabledAccount} của bạn hiện không khả dụng vì bạn đã chuyển sang {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ẩn thông báo",
"mute_modal.hide_options": "Tùy chọn ẩn",
@@ -444,22 +469,24 @@
"mute_modal.you_wont_see_mentions": "Bạn sẽ không nhìn thấy tút có nhắc đến họ.",
"mute_modal.you_wont_see_posts": "Bạn sẽ không nhìn thấy tút của họ.",
"navigation_bar.about": "Giới thiệu",
+ "navigation_bar.administration": "Quản trị",
"navigation_bar.advanced_interface": "Dùng bố cục nhiều cột",
"navigation_bar.blocks": "Người đã chặn",
- "navigation_bar.bookmarks": "Đã lưu",
+ "navigation_bar.bookmarks": "Tút lưu",
"navigation_bar.community_timeline": "Cộng đồng",
"navigation_bar.compose": "Soạn tút mới",
"navigation_bar.direct": "Nhắn riêng",
"navigation_bar.discover": "Khám phá",
"navigation_bar.domain_blocks": "Máy chủ đã ẩn",
"navigation_bar.explore": "Xu hướng",
- "navigation_bar.favourites": "Lượt thích",
- "navigation_bar.filters": "Bộ lọc từ ngữ",
+ "navigation_bar.favourites": "Tút thích",
+ "navigation_bar.filters": "Từ khóa đã lọc",
"navigation_bar.follow_requests": "Yêu cầu theo dõi",
"navigation_bar.followed_tags": "Hashtag theo dõi",
"navigation_bar.follows_and_followers": "Quan hệ",
"navigation_bar.lists": "Danh sách",
"navigation_bar.logout": "Đăng xuất",
+ "navigation_bar.moderation": "Kiểm duyệt",
"navigation_bar.mutes": "Người đã ẩn",
"navigation_bar.opened_in_classic_interface": "Tút, tài khoản và các trang cụ thể khác được mở theo mặc định trong giao diện web cổ điển.",
"navigation_bar.personal": "Cá nhân",
@@ -470,11 +497,23 @@
"navigation_bar.security": "Bảo mật",
"not_signed_in_indicator.not_signed_in": "Bạn cần đăng nhập để truy cập mục này.",
"notification.admin.report": "{name} báo cáo {target}",
+ "notification.admin.report_account": "{name} báo cáo {count, plural, other {# tút}} của {target} vì {category}",
+ "notification.admin.report_account_other": "{name} báo cáo {count, plural, other {# tút}} của {target}",
+ "notification.admin.report_statuses": "{name} báo cáo {target} vì {category}",
+ "notification.admin.report_statuses_other": "{name} báo cáo {target}",
"notification.admin.sign_up": "{name} tham gia máy chủ của bạn",
+ "notification.admin.sign_up.name_and_others": "{name} và {count, plural, other {# người}} đã đăng ký",
"notification.favourite": "{name} thích tút của bạn",
+ "notification.favourite.name_and_others_with_link": "{name} và {count, plural, other {# người khác}} đã thích tút của bạn",
"notification.follow": "{name} theo dõi bạn",
+ "notification.follow.name_and_others": "{name} và {count, plural, other {# người khác}} đã theo dõi bạn",
"notification.follow_request": "{name} yêu cầu theo dõi bạn",
- "notification.mention": "{name} nhắc đến bạn",
+ "notification.follow_request.name_and_others": "{name} và {count, plural, other {# người khác}} đã yêu cầu theo dõi bạn",
+ "notification.label.mention": "Lượt nhắc",
+ "notification.label.private_mention": "Nhắn riêng",
+ "notification.label.private_reply": "Trả lời riêng",
+ "notification.label.reply": "Trả lời",
+ "notification.mention": "Lượt nhắc",
"notification.moderation-warning.learn_more": "Tìm hiểu",
"notification.moderation_warning": "Bạn vừa nhận một cảnh báo kiểm duyệt",
"notification.moderation_warning.action_delete_statuses": "Một vài tút của bạn bị gỡ.",
@@ -485,21 +524,38 @@
"notification.moderation_warning.action_silence": "Tài khoản của bạn đã bị hạn chế.",
"notification.moderation_warning.action_suspend": "Tài khoản của bạn đã bị vô hiệu hóa.",
"notification.own_poll": "Cuộc bình chọn của bạn đã kết thúc",
- "notification.poll": "Cuộc bình chọn đã kết thúc",
+ "notification.poll": "Cuộc bình chọn có bạn tham gia đã kết thúc",
"notification.reblog": "{name} đăng lại tút của bạn",
+ "notification.reblog.name_and_others_with_link": "{name} và {count, plural, other {# người khác}} đã đăng lại tút của bạn",
"notification.relationships_severance_event": "Mất kết nối với {name}",
"notification.relationships_severance_event.account_suspension": "Quản trị viên {from} đã vô hiệu hóa {target}, điều này có nghĩa là bạn không còn có thể nhận được cập nhật từ họ hoặc tương tác với họ nữa.",
"notification.relationships_severance_event.domain_block": "Quản trị viên {from} đã chặn {target}, bao gồm {followersCount} người theo dõi bạn và {followingCount, plural, other {# người}} mà bạn theo dõi.",
"notification.relationships_severance_event.learn_more": "Tìm hiểu thêm",
"notification.relationships_severance_event.user_domain_block": "Bạn đã chặn {target}, xóa {followersCount} người theo dõi bạn và {followingCount, plural, other {# người}} theo dõi bạn.",
"notification.status": "{name} đăng tút mới",
- "notification.update": "{name} đã sửa tút",
+ "notification.update": "{name} cập nhật tút",
"notification_requests.accept": "Chấp nhận",
+ "notification_requests.accept_multiple": "{count, plural, other {Duyệt # yêu cầu…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, other {Yêu cầu cần duyệt}}",
+ "notification_requests.confirm_accept_multiple.message": "Bạn sẽ duyệt {count, plural, other {# yêu cầu thông báo}}. Vẫn tiếp tục?",
+ "notification_requests.confirm_accept_multiple.title": "Duyệt yêu cầu thông báo?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, other {Bỏ qua yêu cầu}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Bạn sẽ bỏ qua {count, plural, other {# yêu cầu thông báo}}. Bạn sẽ không thể truy cập dễ dàng {count, plural, other {chúng}} nữa. Vẫn tiếp tục?",
+ "notification_requests.confirm_dismiss_multiple.title": "Bỏ qua yêu cầu thông báo?",
"notification_requests.dismiss": "Bỏ qua",
+ "notification_requests.dismiss_multiple": "{count, plural, other {Bỏ qua # yêu cầu…}}",
+ "notification_requests.edit_selection": "Sửa",
+ "notification_requests.exit_selection": "Xong",
+ "notification_requests.explainer_for_limited_account": "Thông báo từ tài khoản này đã được lọc vì tài khoản đã bị giới hạn bởi kiểm duyệt viên.",
+ "notification_requests.explainer_for_limited_remote_account": "Thông báo từ tài khoản này đã được lọc vì tài khoản hoặc máy chủ của tài khoản đã bị giới hạn bởi kiểm duyệt viên.",
+ "notification_requests.maximize": "Tối đa",
+ "notification_requests.minimize_banner": "Tinh giản banner lọc thông báo",
"notification_requests.notifications_from": "Thông báo từ {name}",
"notification_requests.title": "Thông báo đã lọc",
+ "notification_requests.view": "Hiện thông báo",
"notifications.clear": "Xóa hết thông báo",
- "notifications.clear_confirmation": "Bạn thật sự muốn xóa vĩnh viễn tất cả thông báo của mình?",
+ "notifications.clear_confirmation": "Bạn có chắc muốn xóa vĩnh viễn tất cả thông báo của mình?",
+ "notifications.clear_title": "Xóa toàn bộ thông báo",
"notifications.column_settings.admin.report": "Báo cáo mới:",
"notifications.column_settings.admin.sign_up": "Người mới tham gia:",
"notifications.column_settings.alert": "Báo trên máy tính",
@@ -531,15 +587,23 @@
"notifications.permission_denied": "Trình duyệt không cho phép hiển thị thông báo trên màn hình.",
"notifications.permission_denied_alert": "Không thể bật thông báo trên màn hình bởi vì trình duyệt đã cấm trước đó",
"notifications.permission_required": "Không hiện thông báo trên màn hình bởi vì chưa cho phép.",
+ "notifications.policy.accept": "Có",
+ "notifications.policy.accept_hint": "Hiện trong thông báo",
+ "notifications.policy.drop": "Không",
+ "notifications.policy.drop_hint": "Loại bỏ vĩnh viễn",
+ "notifications.policy.filter": "Lọc",
+ "notifications.policy.filter_hint": "Cho vào mục thông báo bị lọc",
+ "notifications.policy.filter_limited_accounts_hint": "Chỉ dành cho kiểm duyệt viên",
+ "notifications.policy.filter_limited_accounts_title": "Kiểm duyệt tài khoản",
"notifications.policy.filter_new_accounts.hint": "Đã tạo trong vòng {days, plural, other {# ngày}}",
"notifications.policy.filter_new_accounts_title": "Tài khoản mới",
"notifications.policy.filter_not_followers_hint": "Bao gồm những người đã theo dõi bạn ít hơn {days, plural, other {# ngày}}",
"notifications.policy.filter_not_followers_title": "Những người không theo dõi bạn",
"notifications.policy.filter_not_following_hint": "Cho tới khi bạn duyệt họ",
"notifications.policy.filter_not_following_title": "Những người bạn không theo dõi",
- "notifications.policy.filter_private_mentions_hint": "Được lọc trừ khi nó trả lời lượt nhắc từ bạn hoặc nếu bạn theo dõi người gửi",
- "notifications.policy.filter_private_mentions_title": "Lượt nhắc riêng tư không được yêu cầu",
- "notifications.policy.title": "Lọc ra thông báo từ…",
+ "notifications.policy.filter_private_mentions_hint": "Trừ khi nó trả lời lượt nhắc từ bạn hoặc nếu bạn có theo dõi người gửi",
+ "notifications.policy.filter_private_mentions_title": "Lượt nhắn riêng không mong muốn",
+ "notifications.policy.title": "Quản lý thông báo từ…",
"notifications_permission_banner.enable": "Cho phép thông báo trên màn hình",
"notifications_permission_banner.how_to_control": "Hãy bật thông báo trên màn hình để không bỏ lỡ những thông báo từ Mastodon. Một khi đã bật, bạn có thể lựa chọn từng loại thông báo khác nhau thông qua {icon} nút bên dưới.",
"notifications_permission_banner.title": "Không bỏ lỡ điều thú vị nào",
@@ -557,7 +621,7 @@
"onboarding.profile.display_name_hint": "Tên đầy đủ hoặc biệt danh đều được…",
"onboarding.profile.lead": "Bạn có thể cài đặt lại trong phần cài đặt, nơi thậm chí còn có nhiều tùy chọn hơn.",
"onboarding.profile.note": "Giới thiệu",
- "onboarding.profile.note_hint": "Bạn có thể @nhắnriêng ai đó hoặc #hashtags…",
+ "onboarding.profile.note_hint": "Bạn có thể @aiđó hoặc #hashtags…",
"onboarding.profile.save_and_continue": "Lưu và tiếp tục",
"onboarding.profile.title": "Thiết lập hồ sơ",
"onboarding.profile.upload_avatar": "Tải lên ảnh đại diện",
@@ -593,7 +657,7 @@
"poll.voted": "Bạn đã bình chọn rồi",
"poll.votes": "{votes, plural, other {# lượt bình chọn}}",
"poll_button.add_poll": "Tạo bình chọn",
- "poll_button.remove_poll": "Hủy cuộc bình chọn",
+ "poll_button.remove_poll": "Xóa bình chọn",
"privacy.change": "Chọn kiểu tút",
"privacy.direct.long": "Những người được nhắc trong tút",
"privacy.direct.short": "Người cụ thể",
@@ -649,7 +713,7 @@
"report.reasons.other": "Một lý do khác",
"report.reasons.other_description": "Vấn đề không nằm trong những mục trên",
"report.reasons.spam": "Đây là spam",
- "report.reasons.spam_description": "Liên kết độc hại, tạo tương tác giả hoặc trả lời lặp đi lặp lại",
+ "report.reasons.spam_description": "Liên kết độc hại, giả tương tác hoặc trả lời lặp đi lặp lại",
"report.reasons.violation": "Vi phạm nội quy máy chủ",
"report.reasons.violation_description": "Bạn nhận thấy nó vi phạm nội quy máy chủ",
"report.rules.subtitle": "Chọn tất cả những gì phù hợp",
@@ -666,11 +730,15 @@
"report.unfollow_explanation": "Bạn đang theo dõi người này. Để không thấy tút của họ trên trang chủ nữa, hãy bỏ theo dõi.",
"report_notification.attached_statuses": "{count, plural, other {{count} tút}} đính kèm",
"report_notification.categories.legal": "Pháp lý",
+ "report_notification.categories.legal_sentence": "nội dung bất hợp pháp",
"report_notification.categories.other": "Khác",
+ "report_notification.categories.other_sentence": "khác",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Vi phạm nội quy",
+ "report_notification.categories.violation_sentence": "vi phạm nội quy",
"report_notification.open": "Mở báo cáo",
- "search.no_recent_searches": "Không có tìm kiếm gần đây",
+ "search.no_recent_searches": "Gần đây chưa tìm gì",
"search.placeholder": "Tìm kiếm",
"search.quick_action.account_search": "Người có tên {x}",
"search.quick_action.go_to_account": "Xem trang {x}",
@@ -680,12 +748,12 @@
"search.search_or_paste": "Tìm kiếm hoặc nhập URL",
"search_popout.full_text_search_disabled_message": "Không khả dụng trên {domain}.",
"search_popout.full_text_search_logged_out_message": "Cần đăng nhập trước.",
- "search_popout.language_code": "Mã ngôn ngữ ISO",
- "search_popout.options": "Tùy chọn tìm kiếm",
+ "search_popout.language_code": "mã ngôn ngữ ISO",
+ "search_popout.options": "Tìm nâng cao",
"search_popout.quick_actions": "Thao tác nhanh",
- "search_popout.recent": "Tìm kiếm gần đây",
+ "search_popout.recent": "Bạn đã tìm",
"search_popout.specific_date": "ngày cụ thể",
- "search_popout.user": "mọi người",
+ "search_popout.user": "địa chỉ Mastodon",
"search_results.accounts": "Mọi người",
"search_results.all": "Toàn bộ",
"search_results.hashtags": "Hashtag",
@@ -710,6 +778,7 @@
"status.bookmark": "Lưu",
"status.cancel_reblog_private": "Hủy đăng lại",
"status.cannot_reblog": "Không thể đăng lại tút này",
+ "status.continued_thread": "Tiếp tục trong chủ đề",
"status.copy": "Sao chép URL",
"status.delete": "Xóa",
"status.detailed_status": "Xem chi tiết thêm",
@@ -720,10 +789,8 @@
"status.edited_x_times": "Đã sửa {count, plural, other {{count} lần}}",
"status.embed": "Nhúng",
"status.favourite": "Thích",
- "status.favourites": "{count, plural, other {lượt thích}}",
+ "status.favourites": "{count, plural, other {thích}}",
"status.filter": "Lọc tút này",
- "status.filtered": "Bộ lọc",
- "status.hide": "Ẩn tút",
"status.history.created": "{name} đăng {date}",
"status.history.edited": "{name} đã sửa {date}",
"status.load_more": "Tải thêm",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.",
"status.redraft": "Xóa và viết lại",
"status.remove_bookmark": "Bỏ lưu",
+ "status.replied_in_thread": "Trả lời trong chủ đề",
"status.replied_to": "Trả lời {name}",
"status.reply": "Trả lời",
"status.replyAll": "Trả lời",
"status.report": "Báo cáo @{name}",
"status.sensitive_warning": "Nhạy cảm",
"status.share": "Chia sẻ",
- "status.show_filter_reason": "Vẫn cứ xem",
- "status.show_less": "Thu gọn",
"status.show_less_all": "Thu gọn toàn bộ",
- "status.show_more": "Xem thêm",
"status.show_more_all": "Hiển thị tất cả",
"status.show_original": "Bản gốc",
"status.title.with_attachments": "{user} đã đăng {attachmentCount, plural, other {{attachmentCount} đính kèm}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "{number, plural, other {# phút}}",
"time_remaining.moments": "Còn lại",
"time_remaining.seconds": "{number, plural, other {# giây}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} từ máy chủ khác sẽ không hiển thị.",
- "timeline_hint.resources.followers": "Người theo dõi",
- "timeline_hint.resources.follows": "Đang theo dõi",
- "timeline_hint.resources.statuses": "Tút cũ hơn",
"trends.counter_by_accounts": "{count, plural, other {{count} lượt}} dùng trong {days, plural, other {{days} ngày}} qua",
"trends.trending_now": "Xu hướng",
"ui.beforeunload": "Bản nháp của bạn sẽ bị mất nếu bạn thoát khỏi Mastodon.",
diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json
index 1d3a22108cd..2fe63fe83cb 100644
--- a/app/javascript/mastodon/locales/zgh.json
+++ b/app/javascript/mastodon/locales/zgh.json
@@ -1,12 +1,10 @@
{
- "account.account_note_header": "ⵍⵎⴷ ⵓⴳⴳⴰⵔ",
"account.add_or_remove_from_list": "ⵔⵏⵓ ⵏⵖ ⵙⵉⵜⵜⵢ ⵙⴳ ⵜⵍⴳⴰⵎⵜ",
"account.badges.bot": "ⴰⴱⵓⵜ",
"account.badges.group": "ⵜⴰⵔⴰⴱⴱⵓⵜ",
"account.block": "ⴳⴷⵍ @{name}",
"account.block_domain": "ⴳⴷⵍ ⵉⴳⵔ {domain}",
"account.blocked": "ⵉⵜⵜⵓⴳⴷⵍ",
- "account.browse_more_on_origin_server": "ⵙⵜⴰⵔⴰ ⵓⴳⴳⴰⵔ ⴳ ⵉⴼⵔⵙ ⴰⵏⵚⵍⵉ",
"account.cancel_follow_request": "Withdraw follow request",
"account.domain_blocked": "ⵉⵜⵜⵓⴳⴷⵍ ⵉⴳⵔ",
"account.edit_profile": "ⵙⵏⴼⵍ ⵉⴼⵔⵙ",
@@ -19,7 +17,6 @@
"account.posts_with_replies": "Toots and replies",
"account.requested": "Awaiting approval",
"account.share": "ⴱⴹⵓ ⵉⴼⵔⵙ ⵏ @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unfollow": "ⴽⴽⵙ ⴰⴹⴼⴼⵓⵕ",
"account_note.placeholder": "Click to add a note",
"bundle_column_error.retry": "ⴰⵍⵙ ⴰⵔⵎ",
@@ -121,7 +118,6 @@
"lists.replies_policy.title": "ⵙⴽⵏ ⵜⵉⵔⴰⵔⵉⵏ ⵉ:",
"lists.subheading": "ⵜⵉⵍⴳⴰⵎⵉⵏ ⵏⵏⴽ",
"load_pending": "{count, plural, one {# ⵓⴼⵔⴷⵉⵙ ⴰⵎⴰⵢⵏⵓ} other {# ⵉⴼⵔⴷⴰⵙ ⵉⵎⴰⵢⵏⵓⵜⵏ}}",
- "media_gallery.toggle_visible": "ⴼⴼⵔ {number, plural, one {ⵜⴰⵡⵍⴰⴼⵜ} other {ⵜⵉⵡⵍⴰⴼⵉⵏ}}",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.follow_requests": "ⵜⵓⵜⵔⴰⵡⵉⵏ ⵏ ⵓⴹⴼⴰⵕ",
@@ -188,16 +184,12 @@
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.reply": "ⵔⴰⵔ",
"status.share": "ⴱⴹⵓ",
- "status.show_less": "ⵙⵎⴰⵍ ⴷⵔⵓⵙ",
"status.show_less_all": "ⵙⵎⴰⵍ ⴷⵔⵓⵙ ⵉ ⵎⴰⵕⵕⴰ",
- "status.show_more": "ⵙⵎⴰⵍ ⵓⴳⴳⴰⵔ",
"status.show_more_all": "ⵙⵎⴰⵍ ⵓⴳⴳⴰⵔ ⵉ ⵎⴰⵕⵕⴰ",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"tabs_bar.home": "ⴰⵙⵏⵓⴱⴳ",
"tabs_bar.notifications": "ⵜⵉⵏⵖⵎⵉⵙⵉⵏ",
"time_remaining.days": "{number, plural, one {# ⵡⴰⵙⵙ} other {# ⵡⵓⵙⵙⴰⵏ}} ⵉⵇⵇⵉⵎⵏ",
- "timeline_hint.resources.followers": "ⵉⵎⴹⴼⴰⵕⵏ",
- "timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_button.label": "ⵔⵏⵓ ⵜⴰⵡⵍⴰⴼⵜ, ⴰⴼⵉⴷⵢⵓ ⵏⵖ ⴰⴼⴰⵢⵍⵓ ⵙ ⵉⵎⵙⵍⵉ",
"upload_form.audio_description": "Describe for people with hearing loss",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 3456f99d25c..a7cd0899480 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -1,5 +1,5 @@
{
- "about.blocks": "服务器被限制",
+ "about.blocks": "被限制的服务器",
"about.contact": "联系方式:",
"about.disclaimer": "Mastodon 是自由的开源软件,商标由 Mastodon gGmbH 持有。",
"about.domain_blocks.no_reason_available": "原因不可用",
@@ -11,7 +11,7 @@
"about.not_available": "此信息在当前服务器尚不可用。",
"about.powered_by": "由 {mastodon} 驱动的去中心化社交媒体",
"about.rules": "站点规则",
- "account.account_note_header": "备注",
+ "account.account_note_header": "个人备注",
"account.add_or_remove_from_list": "从列表中添加或移除",
"account.badges.bot": "机器人",
"account.badges.group": "群组",
@@ -19,7 +19,6 @@
"account.block_domain": "屏蔽 {domain} 实例",
"account.block_short": "屏蔽",
"account.blocked": "已屏蔽",
- "account.browse_more_on_origin_server": "在原始个人资料页面上浏览详情",
"account.cancel_follow_request": "撤回关注请求",
"account.copy": "复制个人资料链接",
"account.direct": "私下提及 @{name}",
@@ -35,9 +34,9 @@
"account.follow_back": "回关",
"account.followers": "关注者",
"account.followers.empty": "目前无人关注此用户。",
- "account.followers_counter": "被 {counter} 人关注",
+ "account.followers_counter": "{count, plural, other {{counter} 关注者}}",
"account.following": "正在关注",
- "account.following_counter": "正在关注 {counter} 人",
+ "account.following_counter": "{count, plural, other {{counter} 关注}}",
"account.follows.empty": "此用户目前未关注任何人。",
"account.go_to_profile": "前往个人资料页",
"account.hide_reblogs": "隐藏来自 @{name} 的转嘟",
@@ -63,7 +62,7 @@
"account.requested_follow": "{name} 已经向你发送了关注请求",
"account.share": "分享 @{name} 的个人资料页",
"account.show_reblogs": "显示来自 @{name} 的转嘟",
- "account.statuses_counter": "{counter} 条嘟文",
+ "account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}",
"account.unblock": "取消屏蔽 @{name}",
"account.unblock_domain": "取消屏蔽 {domain} 域名",
"account.unblock_short": "取消屏蔽",
@@ -89,15 +88,17 @@
"announcement.announcement": "公告",
"attachments_list.unprocessed": "(未处理)",
"audio.hide": "隐藏音频",
- "block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重您的决定。然而,无法保证对方一定遵从,因为某些服务器可能会以不同的方式处理屏蔽操作。公开嘟文仍然可能对未登录用户可见。",
- "block_modal.show_less": "显示更少",
+ "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.title": "屏蔽用户?",
- "block_modal.you_wont_see_mentions": "你不会看到提及他们的嘟文。",
+ "block_modal.they_will_know": "他们将能看到他们被屏蔽。",
+ "block_modal.title": "是否屏蔽该用户?",
+ "block_modal.you_wont_see_mentions": "你将不会看到提及他们的嘟文。",
"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": "糟糕!",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "内容警告 (可选)",
"confirmation_modal.cancel": "取消",
"confirmations.block.confirm": "屏蔽",
- "confirmations.cancel_follow_request.confirm": "撤回请求",
- "confirmations.cancel_follow_request.message": "确定撤回关注 {name} 的请求吗?",
"confirmations.delete.confirm": "删除",
"confirmations.delete.message": "你确定要删除这条嘟文吗?",
+ "confirmations.delete.title": "确认删除嘟文?",
"confirmations.delete_list.confirm": "删除",
"confirmations.delete_list.message": "确定永久删除这个列表吗?",
+ "confirmations.delete_list.title": "确认删除列表?",
"confirmations.discard_edit_media.confirm": "丢弃",
"confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍要丢弃吗?",
- "confirmations.domain_block.confirm": "屏蔽服务器",
- "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,对几个特定的用户进行屏蔽或禁用对他们的消息提醒就足够了。屏蔽后,来自该域名的内容将不再出现在你任何的公共时间轴或通知列表里,你来自该域名下的关注者也将被移除。",
"confirmations.edit.confirm": "编辑",
"confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?",
+ "confirmations.edit.title": "确认覆盖嘟文?",
"confirmations.logout.confirm": "退出登录",
"confirmations.logout.message": "确定要退出登录吗?",
+ "confirmations.logout.title": "是否退出登录?",
"confirmations.mute.confirm": "隐藏",
"confirmations.redraft.confirm": "删除并重新编辑",
"confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。",
+ "confirmations.redraft.title": "是否删除并重新编辑嘟文?",
"confirmations.reply.confirm": "回复",
"confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?",
+ "confirmations.reply.title": "确认覆盖嘟文?",
"confirmations.unfollow.confirm": "取消关注",
"confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
+ "confirmations.unfollow.title": "是否取消关注用户?",
+ "content_warning.hide": "隐藏嘟文",
+ "content_warning.show": "仍然显示",
"conversation.delete": "删除对话",
"conversation.mark_as_read": "标记为已读",
"conversation.open": "查看对话",
@@ -256,7 +262,7 @@
"empty_column.community": "本站时间轴暂时没有内容,快写点什么让它动起来吧!",
"empty_column.direct": "你还未使用过私下提及。当你发出或者收到私下提及时,它将显示在此。",
"empty_column.domain_blocks": "暂且没有被屏蔽的站点。",
- "empty_column.explore_statuses": "目前没有热门话题,稍后再来看看吧!",
+ "empty_column.explore_statuses": "目前没有热门内容,稍后再来看看吧!",
"empty_column.favourited_statuses": "你没有喜欢过任何嘟文。喜欢过的嘟文会显示在这里。",
"empty_column.favourites": "没有人喜欢过这条嘟文。如果有人喜欢了,就会显示在这里。",
"empty_column.follow_requests": "你还没有收到任何关注请求。当你收到一个关注请求时,它会出现在这里。",
@@ -297,8 +303,8 @@
"filter_modal.select_filter.subtitle": "使用一个已存在类别,或创建一个新类别",
"filter_modal.select_filter.title": "过滤此嘟文",
"filter_modal.title.status": "过滤一条嘟文",
- "filtered_notifications_banner.mentions": "{count, plural, other {提及}}",
- "filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}的通知",
+ "filter_warning.matches_filter": "命中过滤规则 “{title}”",
+ "filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}",
"filtered_notifications_banner.title": "通知(已过滤)",
"firehose.all": "全部",
"firehose.local": "此服务器",
@@ -311,10 +317,10 @@
"follow_suggestions.featured_longer": "由 {domain} 管理团队精选",
"follow_suggestions.friends_of_friends_longer": "在你关注的人中很受欢迎",
"follow_suggestions.hints.featured": "该用户已被 {domain} 管理团队精选。",
- "follow_suggestions.hints.friends_of_friends": "该用户在您关注的人中很受欢迎。",
+ "follow_suggestions.hints.friends_of_friends": "该用户在你关注的人中很受欢迎。",
"follow_suggestions.hints.most_followed": "该用户是 {domain} 上关注度最高的用户之一。",
"follow_suggestions.hints.most_interactions": "该用户最近在 {domain} 上获得了很多关注。",
- "follow_suggestions.hints.similar_to_recently_followed": "该用户与您最近关注的用户类似。",
+ "follow_suggestions.hints.similar_to_recently_followed": "该用户与你最近关注的用户类似。",
"follow_suggestions.personalized_suggestion": "个性化建议",
"follow_suggestions.popular_suggestion": "热门建议",
"follow_suggestions.popular_suggestion_longer": "在 {domain} 上很受欢迎",
@@ -347,13 +353,32 @@
"hashtag.follow": "关注话题标签",
"hashtag.unfollow": "取消关注话题标签",
"hashtags.and_other": "… 和另外 {count, plural, other {# 个话题}}",
+ "hints.profiles.followers_may_be_missing": "该账户的关注者列表可能没有完全显示。",
+ "hints.profiles.follows_may_be_missing": "该账户的关注列表可能没有完全显示。",
+ "hints.profiles.posts_may_be_missing": "该账户的嘟文可能没有完全显示。",
+ "hints.profiles.see_more_followers": "在 {domain} 查看更多关注者",
+ "hints.profiles.see_more_follows": "在 {domain} 查看更多关注",
+ "hints.profiles.see_more_posts": "在 {domain} 查看更多嘟文",
+ "hints.threads.replies_may_be_missing": "来自其它实例的回复可能没有完全显示。",
+ "hints.threads.see_more": "在 {domain} 查看更多回复",
"home.column_settings.show_reblogs": "显示转嘟",
"home.column_settings.show_replies": "显示回复",
"home.hide_announcements": "隐藏公告",
- "home.pending_critical_update.body": "请尽快更新您的 Mastodon 服务器!",
+ "home.pending_critical_update.body": "请尽快更新你的 Mastodon 服务器!",
"home.pending_critical_update.link": "查看更新",
"home.pending_critical_update.title": "紧急安全更新可用!",
"home.show_announcements": "显示公告",
+ "ignore_notifications_modal.disclaimer": "Mastodon无法通知对方用户你忽略了他们的通知。忽略通知不会阻止消息本身的发送。",
+ "ignore_notifications_modal.filter_instead": "改为过滤",
+ "ignore_notifications_modal.filter_to_act_users": "你仍然可以接受、拒绝或举报用户",
+ "ignore_notifications_modal.filter_to_avoid_confusion": "选择过滤有助于避免潜在的混淆",
+ "ignore_notifications_modal.filter_to_review_separately": "你可以单独查看被过滤的通知",
+ "ignore_notifications_modal.ignore": "忽略通知",
+ "ignore_notifications_modal.limited_accounts_title": "是否忽略来自受限账号的通知?",
+ "ignore_notifications_modal.new_accounts_title": "是否忽略来自新账户的通知?",
+ "ignore_notifications_modal.not_followers_title": "是否忽略未关注你的人的通知?",
+ "ignore_notifications_modal.not_following_title": "是否忽略你未关注的人的通知?",
+ "ignore_notifications_modal.private_mentions_title": "是否忽略不请自来的私下提及?",
"interaction_modal.description.favourite": "只需一个 Mastodon 账号,即可喜欢这条嘟文,对嘟文的作者展示您欣赏的态度,并保存嘟文以供日后使用。",
"interaction_modal.description.follow": "拥有一个 Mastodon 账号,你可以关注 {name} 并在自己的主页上接收对方的新嘟文。",
"interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你可以向自己的关注者们转发此嘟文。",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "取消输入/搜索",
"keyboard_shortcuts.up": "在列表中让光标上移",
"lightbox.close": "关闭",
- "lightbox.compress": "返回图片全览",
- "lightbox.expand": "放大查看图片",
"lightbox.next": "下一个",
"lightbox.previous": "上一个",
+ "lightbox.zoom_in": "缩放为实际大小",
+ "lightbox.zoom_out": "缩放到适合窗口大小",
"limited_account_hint.action": "仍要显示个人资料",
"limited_account_hint.title": "此账号资料已被 {domain} 管理员隐藏。",
"link_preview.author": "由 {name}",
@@ -432,7 +457,7 @@
"lists.subheading": "你的列表",
"load_pending": "{count} 项",
"loading_indicator.label": "加载中…",
- "media_gallery.toggle_visible": "{number, plural, other {隐藏图像}}",
+ "media_gallery.hide": "隐藏",
"moved_to_account_banner.text": "您的账号 {disabledAccount} 已禁用,因为您已迁移到 {movedToAccount}。",
"mute_modal.hide_from_notifications": "从通知中隐藏",
"mute_modal.hide_options": "隐藏选项",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "你看不到提及他们的嘟文。",
"mute_modal.you_wont_see_posts": "他们可以看到你的嘟文,但是你看不到他们的。",
"navigation_bar.about": "关于",
+ "navigation_bar.administration": "管理",
"navigation_bar.advanced_interface": "在高级网页界面中打开",
"navigation_bar.blocks": "已屏蔽的用户",
"navigation_bar.bookmarks": "书签",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "关注和粉丝",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "退出登录",
+ "navigation_bar.moderation": "运营",
"navigation_bar.mutes": "已隐藏的用户",
"navigation_bar.opened_in_classic_interface": "嘟文、账户和其他特定页面默认在经典网页界面中打开。",
"navigation_bar.personal": "个人",
@@ -470,11 +497,23 @@
"navigation_bar.security": "安全",
"not_signed_in_indicator.not_signed_in": "您需要登录才能访问此资源。",
"notification.admin.report": "{name} 举报了 {target}",
+ "notification.admin.report_account": "{name} 举报了来自 {target} 的 {count, plural, other {# 条嘟文}},原因为 {category}",
+ "notification.admin.report_account_other": "{name} 举报了来自 {target} 的 {count, plural, other {# 条嘟文}}",
+ "notification.admin.report_statuses": "{name} 举报了 {target},原因为 {category}",
+ "notification.admin.report_statuses_other": "{name} 举报了 {target}",
"notification.admin.sign_up": "{name} 注册了",
+ "notification.admin.sign_up.name_and_others": "{name} 和 {count, plural, other {另外 # 人}}注册了",
"notification.favourite": "{name} 喜欢了你的嘟文",
+ "notification.favourite.name_and_others_with_link": "{name} 和 {count, plural, other {另外 # 人}} 喜欢了你的嘟文",
"notification.follow": "{name} 开始关注你",
+ "notification.follow.name_and_others": "{name} 和 {count, plural, other {另外 # 人}} 关注了你",
"notification.follow_request": "{name} 向你发送了关注请求",
- "notification.mention": "{name} 提及了你",
+ "notification.follow_request.name_and_others": "{name} 和 {count, plural, other {另外 # 人}} 向你发送了关注请求",
+ "notification.label.mention": "提及",
+ "notification.label.private_mention": "私下提及",
+ "notification.label.private_reply": "私人回复",
+ "notification.label.reply": "回复",
+ "notification.mention": "提及",
"notification.moderation-warning.learn_more": "了解更多",
"notification.moderation_warning": "你收到了一条管理警告",
"notification.moderation_warning.action_delete_statuses": "你的一些嘟文已被移除。",
@@ -485,8 +524,9 @@
"notification.moderation_warning.action_silence": "你的账号已被限制。",
"notification.moderation_warning.action_suspend": "你的账号已被封禁.",
"notification.own_poll": "你的投票已经结束",
- "notification.poll": "你参与的一个投票已经结束",
+ "notification.poll": "你参与的一项投票已结束",
"notification.reblog": "{name} 转发了你的嘟文",
+ "notification.reblog.name_and_others_with_link": "{name} 和 {count, plural, other {另外 # 人}} 转嘟了你的嘟文",
"notification.relationships_severance_event": "与 {name} 的联系已断开",
"notification.relationships_severance_event.account_suspension": "一名来自 {from} 的管理员已经封禁了{target},这意味着你将无法再收到他们的更新或与他们互动。",
"notification.relationships_severance_event.domain_block": "一名来自 {from} 的管理员已经屏蔽了 {target},其中包括你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。",
@@ -495,11 +535,27 @@
"notification.status": "{name} 刚刚发布嘟文",
"notification.update": "{name} 编辑了嘟文",
"notification_requests.accept": "接受",
+ "notification_requests.accept_multiple": "{count, plural, other {接受 # 个请求…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, other {接受请求}}",
+ "notification_requests.confirm_accept_multiple.message": "你即将接受 {count, plural, other {# 个通知请求}}。是否确定要继续?",
+ "notification_requests.confirm_accept_multiple.title": "是否接受通知请求?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, other {拒绝请求}}",
+ "notification_requests.confirm_dismiss_multiple.message": "你将要拒绝 {count, plural, other {# 个通知请求}}。你将无法再轻易访问{count, plural, other {它们}}。是否继续?",
+ "notification_requests.confirm_dismiss_multiple.title": "是否拒绝通知请求?",
"notification_requests.dismiss": "拒绝",
+ "notification_requests.dismiss_multiple": "{count, plural, other {拒绝 # 个请求…}}",
+ "notification_requests.edit_selection": "编辑",
+ "notification_requests.exit_selection": "完成",
+ "notification_requests.explainer_for_limited_account": "来自该账户的通知已被过滤,因为该账户已被管理员限制。",
+ "notification_requests.explainer_for_limited_remote_account": "来自该账户的通知已被过滤,因为该账户或其所在的实例已被管理员限制。",
+ "notification_requests.maximize": "最大化",
+ "notification_requests.minimize_banner": "最小化被过滤通知的横幅",
"notification_requests.notifications_from": "来自 {name} 的通知",
"notification_requests.title": "通知(已过滤)",
+ "notification_requests.view": "查看通知",
"notifications.clear": "清空通知列表",
"notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
+ "notifications.clear_title": "是否清空通知?",
"notifications.column_settings.admin.report": "新举报:",
"notifications.column_settings.admin.sign_up": "新注册:",
"notifications.column_settings.alert": "桌面通知",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "由于权限被拒绝,无法启用桌面通知。",
"notifications.permission_denied_alert": "由于在此之前浏览器权限请求就已被拒绝,所以启用桌面通知失败",
"notifications.permission_required": "所需权限未被授予,所以桌面通知不可用",
+ "notifications.policy.accept": "接受",
+ "notifications.policy.accept_hint": "在通知中显示",
+ "notifications.policy.drop": "忽略",
+ "notifications.policy.drop_hint": "送入虚空,再也不查看",
+ "notifications.policy.filter": "过滤",
+ "notifications.policy.filter_hint": "发送到被过滤通知收件箱",
+ "notifications.policy.filter_limited_accounts_hint": "被实例管理员限制",
+ "notifications.policy.filter_limited_accounts_title": "受限账号",
"notifications.policy.filter_new_accounts.hint": "在 {days, plural, other {# 天}}内创建的账户",
"notifications.policy.filter_new_accounts_title": "新账户",
"notifications.policy.filter_not_followers_hint": "包括关注你少于 {days, plural, other {# 天}}的人",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "你没有关注的人",
"notifications.policy.filter_private_mentions_hint": "过滤通知,除非通知是在回复提及你自己的内容,或发送者是你关注的人",
"notifications.policy.filter_private_mentions_title": "不请自来的提及",
- "notifications.policy.title": "通知过滤范围",
+ "notifications.policy.title": "管理来自 … 的通知",
"notifications_permission_banner.enable": "启用桌面通知",
"notifications_permission_banner.how_to_control": "启用桌面通知以在 Mastodon 未打开时接收通知。你可以通过交互通过上面的 {icon} 按钮来精细控制可以发送桌面通知的交互类型。",
"notifications_permission_banner.title": "精彩不容错过",
@@ -552,12 +616,12 @@
"onboarding.follows.lead": "你管理你自己的家庭饲料。你关注的人越多,它将越活跃和有趣。 这些配置文件可能是一个很好的起点——你可以随时取消关注它们!",
"onboarding.follows.title": "定制您的主页动态",
"onboarding.profile.discoverable": "让我的资料卡可被他人发现",
- "onboarding.profile.discoverable_hint": "当您选择在 Mastodon 上启用发现功能时,你的嘟文可能会出现在搜索结果和热门中,你的账户可能会被推荐给与你兴趣相似的人。",
+ "onboarding.profile.discoverable_hint": "当你选择在 Mastodon 上启用发现功能时,你的嘟文可能会出现在搜索结果和热门中,你的账户可能会被推荐给与你兴趣相似的人。",
"onboarding.profile.display_name": "昵称",
- "onboarding.profile.display_name_hint": "您的全名或昵称…",
- "onboarding.profile.lead": "您可以稍后在设置中完成此操作,设置中有更多的自定义选项。",
+ "onboarding.profile.display_name_hint": "你的全名或昵称…",
+ "onboarding.profile.lead": "你可以稍后在设置中完成此操作,设置中有更多的自定义选项。",
"onboarding.profile.note": "简介",
- "onboarding.profile.note_hint": "您可以提及 @其他人 或 #标签…",
+ "onboarding.profile.note_hint": "你可以提及 @其他人 或 #标签…",
"onboarding.profile.save_and_continue": "保存并继续",
"onboarding.profile.title": "设置个人资料",
"onboarding.profile.upload_avatar": "上传头像",
@@ -566,7 +630,7 @@
"onboarding.share.message": "我是来自 #Mastodon 的 {username}!请在 {url} 关注我。",
"onboarding.share.next_steps": "可能的下一步:",
"onboarding.share.title": "分享你的个人资料",
- "onboarding.start.lead": "您新的 Mastodon 帐户已准备好。下面是如何最大限度地利用它:",
+ "onboarding.start.lead": "你的新 Mastodon 帐户已准备好。下面是如何最大限度地利用它:",
"onboarding.start.skip": "想要在前面跳过吗?",
"onboarding.start.title": "你已经成功了!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
@@ -578,7 +642,7 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "分享你的个人资料",
"onboarding.tips.2fa": "你知道吗?你可以在账户设置中配置双因素认证来保护账户安全。可以使用你选择的任何 TOTP 应用,无需电话号码!",
- "onboarding.tips.accounts_from_other_servers": "您知道吗? 既然Mastodon是去中心化的,您所看到的一些账户将被托管在您以外的服务器上。 但你可以无缝地与他们交互!他们的服务器在他们的用户名的后半部分!",
+ "onboarding.tips.accounts_from_other_servers": "你知道吗? 既然Mastodon是去中心化的,你所看到的一些账户将被托管在你以外的服务器上。 但你可以无缝地与他们交互!他们的服务器在他们的用户名的后半部分!",
"onboarding.tips.migration": "您知道吗? 如果你觉得你喜欢 {domain} 不是您未来的一个伟大的服务器选择。 您可以移动到另一个 Mastodon 服务器而不失去您的关注者。 您甚至可以主持您自己的服务器!",
"onboarding.tips.verification": "您知道吗? 您可以通过在自己的网站上放置一个链接到您的 Mastodon 个人资料并将网站添加到您的个人资料来验证您的帐户。 无需收费或文书工作!",
"password_confirmation.exceeds_maxlength": "密码确认超过最大密码长度",
@@ -596,7 +660,7 @@
"poll_button.remove_poll": "移除投票",
"privacy.change": "设置嘟文的可见范围",
"privacy.direct.long": "帖子中提到的每个人",
- "privacy.direct.short": "具体的人",
+ "privacy.direct.short": "特定的人",
"privacy.private.long": "仅限您的关注者",
"privacy.private.short": "关注者",
"privacy.public.long": "所有 Mastodon 内外的人",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "你正在关注此账户。如果不想继续在主页看到他们的嘟文,取消对他们的关注即可。",
"report_notification.attached_statuses": "附上 {count} 条嘟文",
"report_notification.categories.legal": "法律义务",
+ "report_notification.categories.legal_sentence": "非法内容",
"report_notification.categories.other": "其他",
+ "report_notification.categories.other_sentence": "其它",
"report_notification.categories.spam": "骚扰",
+ "report_notification.categories.spam_sentence": "骚扰",
"report_notification.categories.violation": "违反规则",
+ "report_notification.categories.violation_sentence": "违反规则",
"report_notification.open": "打开举报",
"search.no_recent_searches": "无最近搜索",
"search.placeholder": "搜索",
@@ -699,6 +767,7 @@
"server_banner.is_one_of_many": "{domain} 是可用于参与联邦宇宙的众多独立 Mastodon 服务器之一。",
"server_banner.server_stats": "服务器统计数据:",
"sign_in_banner.create_account": "创建账户",
+ "sign_in_banner.follow_anyone": "关注联邦宇宙中的任何人,并按时间顺序查看所有内容。没有算法、广告或诱导链接。",
"sign_in_banner.mastodon_is": "Mastodon 是了解最新动态的最佳途径。",
"sign_in_banner.sign_in": "登录",
"sign_in_banner.sso_redirect": "登录或注册",
@@ -709,6 +778,7 @@
"status.bookmark": "添加到书签",
"status.cancel_reblog_private": "取消转贴",
"status.cannot_reblog": "这条嘟文不允许被转嘟",
+ "status.continued_thread": "继续线程",
"status.copy": "复制嘟文链接",
"status.delete": "删除",
"status.detailed_status": "详细的对话视图",
@@ -717,12 +787,10 @@
"status.edit": "编辑",
"status.edited": "最近编辑于 {date}",
"status.edited_x_times": "共编辑 {count, plural, one {{count} 次} other {{count} 次}}",
- "status.embed": "嵌入",
+ "status.embed": "获取嵌入代码",
"status.favourite": "喜欢",
"status.favourites": "{count, plural, other {次喜欢}}",
"status.filter": "过滤此嘟文",
- "status.filtered": "已过滤",
- "status.hide": "隐藏嘟文",
"status.history.created": "{name} 创建于 {date}",
"status.history.edited": "{name} 编辑于 {date}",
"status.load_more": "加载更多",
@@ -744,16 +812,14 @@
"status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。",
"status.redraft": "删除并重新编辑",
"status.remove_bookmark": "移除书签",
+ "status.replied_in_thread": "已在线程中回复",
"status.replied_to": "回复给 {name}",
"status.reply": "回复",
"status.replyAll": "回复所有人",
"status.report": "举报 @{name}",
"status.sensitive_warning": "敏感内容",
"status.share": "分享",
- "status.show_filter_reason": "仍要显示",
- "status.show_less": "隐藏内容",
"status.show_less_all": "隐藏全部内容",
- "status.show_more": "显示更多",
"status.show_more_all": "显示全部内容",
"status.show_original": "显示原文",
"status.title.with_attachments": "{user} 上传了 {attachmentCount, plural, one {一个附件} other {{attachmentCount} 个附件}}",
@@ -772,12 +838,8 @@
"time_remaining.minutes": "剩余 {number, plural, one {# 分钟} other {# 分钟}}",
"time_remaining.moments": "即将结束",
"time_remaining.seconds": "剩余 {number, plural, one {# 秒} other {# 秒}}",
- "timeline_hint.remote_resource_not_displayed": "不会显示来自其它服务器的{resource}",
- "timeline_hint.resources.followers": "粉丝",
- "timeline_hint.resources.follows": "关注",
- "timeline_hint.resources.statuses": "更早的嘟文",
"trends.counter_by_accounts": "过去 {days, plural, other {{days} 天}}有{count, plural, other { {counter} 人}}讨论",
- "trends.trending_now": "现在流行",
+ "trends.trending_now": "当前热门",
"ui.beforeunload": "如果你现在离开 Mastodon,你的草稿内容将会丢失。",
"units.short.billion": "{count} B",
"units.short.million": "{count} M",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 5dff466201e..22f51a84134 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -11,7 +11,6 @@
"about.not_available": "本伺服器尚未提供這資訊。",
"about.powered_by": "由 {mastodon} 提供之去中心化社交媒體",
"about.rules": "伺服器規則",
- "account.account_note_header": "備忘",
"account.add_or_remove_from_list": "從列表中新增或移除",
"account.badges.bot": "機械人",
"account.badges.group": "群組",
@@ -19,7 +18,6 @@
"account.block_domain": "封鎖網域 {domain}",
"account.block_short": "封鎖",
"account.blocked": "已封鎖",
- "account.browse_more_on_origin_server": "前往原始的個人檔案頁瀏覽更多",
"account.cancel_follow_request": "撤回追蹤請求",
"account.copy": "複製個人檔案連結",
"account.direct": "私下提及 @{name}",
@@ -35,9 +33,7 @@
"account.follow_back": "追蹤對方",
"account.followers": "追蹤者",
"account.followers.empty": "尚未有人追蹤這位使用者。",
- "account.followers_counter": "有 {count, plural,one {{counter} 個} other {{counter} 個}}追蹤者",
"account.following": "正在追蹤",
- "account.following_counter": "正在追蹤 {count, plural,one {{counter}}other {{counter} 人}}",
"account.follows.empty": "這位使用者尚未追蹤任何人。",
"account.go_to_profile": "前往個人檔案",
"account.hide_reblogs": "隱藏 @{name} 的轉推",
@@ -63,7 +59,6 @@
"account.requested_follow": "{name} 要求追蹤你",
"account.share": "分享 @{name} 的個人檔案",
"account.show_reblogs": "顯示 @{name} 的轉推",
- "account.statuses_counter": "{count, plural,one {{counter} 篇}other {{counter} 篇}}帖文",
"account.unblock": "解除封鎖 @{name}",
"account.unblock_domain": "解除封鎖網域 {domain}",
"account.unblock_short": "解除封鎖",
@@ -169,20 +164,18 @@
"compose_form.spoiler_placeholder": "內容警告 (選用)",
"confirmation_modal.cancel": "取消",
"confirmations.block.confirm": "封鎖",
- "confirmations.cancel_follow_request.confirm": "撤回請求",
- "confirmations.cancel_follow_request.message": "您確定要撤回追蹤 {name} 的請求嗎?",
"confirmations.delete.confirm": "刪除",
"confirmations.delete.message": "你確定要刪除這文章嗎?",
+ "confirmations.delete.title": "刪除帖文?",
"confirmations.delete_list.confirm": "刪除",
"confirmations.delete_list.message": "你確定要永久刪除這列表嗎?",
"confirmations.discard_edit_media.confirm": "捨棄",
"confirmations.discard_edit_media.message": "您在媒體描述或預覽有尚未儲存的變更。確定要捨棄它們嗎?",
- "confirmations.domain_block.confirm": "封鎖伺服器",
- "confirmations.domain_block.message": "你真的真的確定要封鎖整個 {domain} ?多數情況下,封鎖或靜音幾個特定目標就已經有效,也是比較建議的做法。若然封鎖全站,你將不會再在這裏看到該站的內容和通知。來自該站的關注者亦會被移除。",
"confirmations.edit.confirm": "編輯",
"confirmations.edit.message": "現在編輯將會覆蓋你目前正在撰寫的訊息。你確定要繼續嗎?",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "確定要登出嗎?",
+ "confirmations.logout.title": "登出?",
"confirmations.mute.confirm": "靜音",
"confirmations.redraft.confirm": "刪除並編輯",
"confirmations.redraft.message": "你確定要移除並重新起草這篇帖文嗎?你將會失去最愛和轉推,而回覆也會與原始帖文斷開連接。",
@@ -297,8 +290,6 @@
"filter_modal.select_filter.subtitle": "使用既有類別,或創建一個新類別",
"filter_modal.select_filter.title": "過濾此帖文",
"filter_modal.title.status": "過濾一則帖文",
- "filtered_notifications_banner.mentions": "{count, plural, one {則提及} other {則提及}}",
- "filtered_notifications_banner.pending_requests": "來自 {count, plural, =0 {0 位} other {# 位}}你可能認識的人的通知",
"filtered_notifications_banner.title": "已過濾之通知",
"firehose.all": "全部",
"firehose.local": "本伺服器",
@@ -407,8 +398,6 @@
"keyboard_shortcuts.unfocus": "把標示移離文字輸入和搜索",
"keyboard_shortcuts.up": "在列表往上移動",
"lightbox.close": "關閉",
- "lightbox.compress": "縮小檢視",
- "lightbox.expand": "擴大檢視",
"lightbox.next": "下一頁",
"lightbox.previous": "上一頁",
"limited_account_hint.action": "一律顯示個人檔案",
@@ -430,7 +419,6 @@
"lists.subheading": "列表",
"load_pending": "{count, plural, other {# 個新項目}}",
"loading_indicator.label": "載入中…",
- "media_gallery.toggle_visible": "隱藏圖片",
"moved_to_account_banner.text": "您的帳號 {disabledAccount} 目前已停用,因為您已搬家至 {movedToAccount}。",
"mute_modal.hide_from_notifications": "隱藏通知",
"mute_modal.hide_options": "隱藏選項",
@@ -472,7 +460,6 @@
"notification.favourite": "{name} 喜歡你的文章",
"notification.follow": "{name} 開始追蹤你",
"notification.follow_request": "{name} 要求追蹤你",
- "notification.mention": "{name} 提及你",
"notification.moderation-warning.learn_more": "了解更多",
"notification.moderation_warning.action_delete_statuses": "你的部份帖文已被刪除。",
"notification.moderation_warning.action_disable": "你的帳號已被停用。",
@@ -482,7 +469,6 @@
"notification.moderation_warning.action_silence": "你的帳號已受到限制。",
"notification.moderation_warning.action_suspend": "你的帳號已被停權。",
"notification.own_poll": "你的投票已結束",
- "notification.poll": "你參與過的一個投票已經結束",
"notification.reblog": "{name} 轉推你的文章",
"notification.relationships_severance_event": "失去與 {name} 的連結",
"notification.relationships_severance_event.account_suspension": "{from} 的管理員已將 {target} 停權,這表示你無法再收到他們的更新或與他們互動。",
@@ -536,7 +522,6 @@
"notifications.policy.filter_not_following_title": "你未追蹤的人",
"notifications.policy.filter_private_mentions_hint": "除非回覆你的提及或來自你追蹤的人,否則將被過濾",
"notifications.policy.filter_private_mentions_title": "未經請求的私人提及",
- "notifications.policy.title": "過濾來自以下的通知…",
"notifications_permission_banner.enable": "啟用桌面通知",
"notifications_permission_banner.how_to_control": "只要啟用桌面通知,便可在 Mastodon 網站沒有打開時收到通知。在已經啟用桌面通知的時候,你可以透過上面的 {icon} 按鈕準確控制哪些類型的互動會產生桌面通知。",
"notifications_permission_banner.title": "不放過任何事情",
@@ -712,12 +697,9 @@
"status.edit": "編輯",
"status.edited": "最後編輯於 {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} 次} other {{count} 次}}",
- "status.embed": "嵌入",
"status.favourite": "最愛",
"status.favourites": "{count, plural, one {則最愛} other {則最愛}}",
"status.filter": "篩選此帖文",
- "status.filtered": "已過濾",
- "status.hide": "隱藏帖文",
"status.history.created": "{name} 於 {date} 建立",
"status.history.edited": "{name} 於 {date} 編輯",
"status.load_more": "載入更多",
@@ -745,10 +727,7 @@
"status.report": "舉報 @{name}",
"status.sensitive_warning": "敏感內容",
"status.share": "分享",
- "status.show_filter_reason": "仍要顯示",
- "status.show_less": "收起",
"status.show_less_all": "全部收起",
- "status.show_more": "展開",
"status.show_more_all": "全部展開",
"status.show_original": "顯示原文",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -767,10 +746,6 @@
"time_remaining.minutes": "剩餘 {number, plural, one {# 分鐘} other {# 分鐘}}",
"time_remaining.moments": "剩餘時間",
"time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}",
- "timeline_hint.remote_resource_not_displayed": "不會顯示來自其他伺服器的 {resource}",
- "timeline_hint.resources.followers": "追蹤者",
- "timeline_hint.resources.follows": "追蹤中",
- "timeline_hint.resources.statuses": "更早的文章",
"trends.counter_by_accounts": "{count, plural, one {{counter} 人} other {{counter} 人}} 於過去 {days, plural, one {日} other {{days} days}} 之間",
"trends.trending_now": "現在流行",
"ui.beforeunload": "如果你現在離開 Mastodon,你的草稿內容將會被丟棄。",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index e6cd62162bc..7f2caeaf4b3 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -11,7 +11,7 @@
"about.not_available": "無法於本伺服器上使用此資訊。",
"about.powered_by": "由 {mastodon} 提供的去中心化社群媒體",
"about.rules": "伺服器規則",
- "account.account_note_header": "備註",
+ "account.account_note_header": "個人備註",
"account.add_or_remove_from_list": "自列表中新增或移除",
"account.badges.bot": "機器人",
"account.badges.group": "群組",
@@ -19,10 +19,9 @@
"account.block_domain": "封鎖來自 {domain} 網域的所有內容",
"account.block_short": "封鎖",
"account.blocked": "已封鎖",
- "account.browse_more_on_origin_server": "在該伺服器上的個人檔案頁面瀏覽更多",
"account.cancel_follow_request": "收回跟隨請求",
"account.copy": "複製個人檔案連結",
- "account.direct": "私訊 @{name}",
+ "account.direct": " @{name}",
"account.disable_notifications": "取消來自 @{name} 嘟文的通知",
"account.domain_blocked": "已封鎖網域",
"account.edit_profile": "編輯個人檔案",
@@ -35,9 +34,9 @@
"account.follow_back": "跟隨回去",
"account.followers": "跟隨者",
"account.followers.empty": "尚未有人跟隨這位使用者。",
- "account.followers_counter": "被 {count, plural, other {{counter} 人}}跟隨",
+ "account.followers_counter": "被 {count, plural, other {{count} 人}}跟隨",
"account.following": "跟隨中",
- "account.following_counter": "正在跟隨 {count,plural,other {{counter} 人}}",
+ "account.following_counter": "正在跟隨 {count,plural,other {{count} 人}}",
"account.follows.empty": "這位使用者尚未跟隨任何人。",
"account.go_to_profile": "前往個人檔案",
"account.hide_reblogs": "隱藏來自 @{name} 的轉嘟",
@@ -62,8 +61,8 @@
"account.requested": "正在等候審核。按一下以取消跟隨請求",
"account.requested_follow": "{name} 要求跟隨您",
"account.share": "分享 @{name} 的個人檔案",
- "account.show_reblogs": "顯示來自 @{name} 的嘟文",
- "account.statuses_counter": "{count, plural,one {{counter} 則}other {{counter} 則}}嘟文",
+ "account.show_reblogs": "顯示來自 @{name} 的轉嘟",
+ "account.statuses_counter": "{count, plural, other {{count} 則嘟文}}",
"account.unblock": "解除封鎖 @{name}",
"account.unblock_domain": "解除封鎖網域 {domain}",
"account.unblock_short": "解除封鎖",
@@ -98,6 +97,8 @@
"block_modal.title": "是否封鎖該使用者?",
"block_modal.you_wont_see_mentions": "您不會見到提及他們的嘟文。",
"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": "糟糕!",
@@ -113,7 +114,7 @@
"closed_registrations.other_server_instructions": "因為 Mastodon 是去中心化的,所以您也能於其他伺服器上建立帳號,並仍然與這個伺服器互動。",
"closed_registrations_modal.description": "目前無法於 {domain} 建立新帳號,但也請別忘了,您並不一定需要有 {domain} 伺服器的帳號,也能使用 Mastodon。",
"closed_registrations_modal.find_another_server": "尋找另一個伺服器",
- "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您於哪個伺服器新增帳號,都可以與此伺服器上的任何人跟隨及互動。您甚至能自行架設一個自己的伺服器!",
+ "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您於哪個伺服器新增帳號,都可以與此伺服器上的任何人跟隨及互動。您甚至能自行架設自己的伺服器!",
"closed_registrations_modal.title": "註冊 Mastodon",
"column.about": "關於",
"column.blocks": "已封鎖的使用者",
@@ -128,7 +129,7 @@
"column.home": "首頁",
"column.lists": "列表",
"column.mutes": "已靜音的使用者",
- "column.notifications": "通知",
+ "column.notifications": "推播通知",
"column.pins": "釘選的嘟文",
"column.public": "聯邦時間軸",
"column_back_button.label": "上一頁",
@@ -169,27 +170,32 @@
"compose_form.spoiler_placeholder": "內容警告 (可選的)",
"confirmation_modal.cancel": "取消",
"confirmations.block.confirm": "封鎖",
- "confirmations.cancel_follow_request.confirm": "收回跟隨請求",
- "confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?",
"confirmations.delete.confirm": "刪除",
"confirmations.delete.message": "您確定要刪除這則嘟文嗎?",
+ "confirmations.delete.title": "是否刪除該嘟文?",
"confirmations.delete_list.confirm": "刪除",
"confirmations.delete_list.message": "您確定要永久刪除此列表嗎?",
+ "confirmations.delete_list.title": "是否刪除該列表?",
"confirmations.discard_edit_media.confirm": "捨棄",
"confirmations.discard_edit_media.message": "您於媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?",
- "confirmations.domain_block.confirm": "封鎖伺服器",
- "confirmations.domain_block.message": "您真的非常確定要封鎖整個 {domain} 網域嗎?大部分情況下,封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
"confirmations.edit.confirm": "編輯",
"confirmations.edit.message": "編輯嘟文將覆蓋掉您目前正在撰寫之嘟文內容。您是否仍要繼續?",
+ "confirmations.edit.title": "是否覆寫該嘟文?",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "您確定要登出嗎?",
+ "confirmations.logout.title": "您確定要登出嗎?",
"confirmations.mute.confirm": "靜音",
"confirmations.redraft.confirm": "刪除並重新編輯",
"confirmations.redraft.message": "您確定要刪除這則嘟文並重新編輯嗎?您將失去這則嘟文之轉嘟及最愛,且對此嘟文之回覆會變成獨立的嘟文。",
+ "confirmations.redraft.title": "是否刪除並重新編輯該嘟文?",
"confirmations.reply.confirm": "回覆",
"confirmations.reply.message": "回覆嘟文將覆蓋掉您目前正在撰寫之嘟文內容。您是否仍要繼續?",
+ "confirmations.reply.title": "是否覆寫該嘟文?",
"confirmations.unfollow.confirm": "取消跟隨",
"confirmations.unfollow.message": "您確定要取消跟隨 {name} 嗎?",
+ "confirmations.unfollow.title": "是否取消跟隨該使用者?",
+ "content_warning.hide": "隱藏嘟文",
+ "content_warning.show": "仍要顯示",
"conversation.delete": "刪除對話",
"conversation.mark_as_read": "標記為已讀",
"conversation.open": "檢視對話",
@@ -216,7 +222,7 @@
"domain_block_modal.they_wont_know": "他們不會知道他們已被封鎖。",
"domain_block_modal.title": "是否封鎖該網域?",
"domain_block_modal.you_will_lose_followers": "所有您來自此伺服器之跟隨者將被移除。",
- "domain_block_modal.you_wont_see_posts": "您不會見到來自此伺服器使用者之任何嘟文或通知。",
+ "domain_block_modal.you_wont_see_posts": "您不會見到來自此伺服器使用者之任何嘟文或推播通知。",
"domain_pill.activitypub_lets_connect": "它使您能於 Mastodon 及其他不同的社群應用程式與人連結及互動。",
"domain_pill.activitypub_like_language": "ActivityPub 像是 Mastodon 與其他社群網路溝通時所用的語言。",
"domain_pill.server": "伺服器",
@@ -266,12 +272,12 @@
"empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出新的嘟文時,它們將顯示於此。",
"empty_column.lists": "您還沒有新增任何列表。當您新增列表時,它將於此顯示。",
"empty_column.mutes": "您尚未靜音任何使用者。",
- "empty_column.notification_requests": "清空啦!已經沒有任何通知。當您收到新通知時,它們將依照您的設定於此顯示。",
- "empty_column.notifications": "您還沒有收到任何通知,當您與別人開始互動時,它將於此顯示。",
+ "empty_column.notification_requests": "清空啦!已經沒有任何推播通知。當您收到新推播通知時,它們將依照您的設定於此顯示。",
+ "empty_column.notifications": "您還沒有收到任何推播通知,當您與別人開始互動時,它將於此顯示。",
"empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或者跟隨其他伺服器的使用者後,就會有嘟文出現了",
"error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。",
"error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。",
- "error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式來檢視來使用 Mastodon。",
+ "error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式以檢視來使用 Mastodon。",
"error.unexpected_crash.next_steps_addons": "請嘗試關閉它們然後重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式來檢視來使用 Mastodon。",
"errors.unexpected_crash.copy_stacktrace": "複製 stacktrace 到剪貼簿",
"errors.unexpected_crash.report_issue": "回報問題",
@@ -297,9 +303,9 @@
"filter_modal.select_filter.subtitle": "使用既有的類別或是新增",
"filter_modal.select_filter.title": "過濾此嘟文",
"filter_modal.title.status": "過濾一則嘟文",
- "filtered_notifications_banner.mentions": "{count, plural, other {# 則提及}}",
- "filtered_notifications_banner.pending_requests": "來自您可能認識的 {count, plural, =0 {0 人} other {# 人}} 之通知",
- "filtered_notifications_banner.title": "已過濾之通知",
+ "filter_warning.matches_filter": "匹配過濾器「{title}」",
+ "filtered_notifications_banner.pending_requests": "來自您可能認識的 {count, plural, =0 {0 人} other {# 人}}",
+ "filtered_notifications_banner.title": "已過濾之推播通知",
"firehose.all": "全部",
"firehose.local": "本站",
"firehose.remote": "聯邦宇宙",
@@ -347,6 +353,14 @@
"hashtag.follow": "跟隨主題標籤",
"hashtag.unfollow": "取消跟隨主題標籤",
"hashtags.and_other": "…及其他 {count, plural, other {# 個}}",
+ "hints.profiles.followers_may_be_missing": "此個人檔案之跟隨者或有缺失。",
+ "hints.profiles.follows_may_be_missing": "此個人檔案之正在跟隨或有缺失。",
+ "hints.profiles.posts_may_be_missing": "此個人檔案之某些嘟文或有缺失。",
+ "hints.profiles.see_more_followers": "於 {domain} 檢視更多跟隨者",
+ "hints.profiles.see_more_follows": "於 {domain} 檢視更多正在跟隨",
+ "hints.profiles.see_more_posts": "於 {domain} 檢視更多嘟文",
+ "hints.threads.replies_may_be_missing": "來自其他站點之回覆或有缺失。",
+ "hints.threads.see_more": "於 {domain} 檢視更多回覆",
"home.column_settings.show_reblogs": "顯示轉嘟",
"home.column_settings.show_replies": "顯示回覆",
"home.hide_announcements": "隱藏公告",
@@ -354,9 +368,20 @@
"home.pending_critical_update.link": "檢視更新內容",
"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": "您能單獨檢視已過濾推播通知",
+ "ignore_notifications_modal.ignore": "忽略推播通知",
+ "ignore_notifications_modal.limited_accounts_title": "忽略來自受管制帳號之推播通知?",
+ "ignore_notifications_modal.new_accounts_title": "忽略來自新帳號之推播通知?",
+ "ignore_notifications_modal.not_followers_title": "忽略來自未跟隨您帳號之推播通知?",
+ "ignore_notifications_modal.not_following_title": "忽略來自您未跟隨帳號之推播通知?",
+ "ignore_notifications_modal.private_mentions_title": "忽略來自不請自來私訊之推播通知?",
"interaction_modal.description.favourite": "若於 Mastodon 上有個帳號,您可以將此嘟文加入最愛使作者知道您欣賞它且將它儲存下來。",
"interaction_modal.description.follow": "若於 Mastodon 上有個帳號,您可以跟隨 {name} 以於首頁時間軸接收他們的嘟文。",
- "interaction_modal.description.reblog": "若於 Mastodon 上有個帳號,您可以轉嘟此嘟文以分享給您的跟隨者們。",
+ "interaction_modal.description.reblog": "若於 Mastodon 上有個帳號,您可以轉嘟此嘟文以向您的跟隨者們分享。",
"interaction_modal.description.reply": "若於 Mastodon 上有個帳號,您可以回覆此嘟文。",
"interaction_modal.login.action": "返回首頁",
"interaction_modal.login.prompt": "您帳號所屬伺服器之網域,例如:mastodon.social",
@@ -407,10 +432,10 @@
"keyboard_shortcuts.unfocus": "跳離文字撰寫區塊或搜尋框",
"keyboard_shortcuts.up": "向上移動",
"lightbox.close": "關閉",
- "lightbox.compress": "折疊圖片檢視框",
- "lightbox.expand": "展開圖片檢視框",
"lightbox.next": "下一步",
"lightbox.previous": "上一步",
+ "lightbox.zoom_in": "縮放至實際大小",
+ "lightbox.zoom_out": "縮放至合適大小",
"limited_account_hint.action": "一律顯示個人檔案",
"limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。",
"link_preview.author": "來自 {name}",
@@ -432,9 +457,9 @@
"lists.subheading": "您的列表",
"load_pending": "{count, plural, one {# 個新項目} other {# 個新項目}}",
"loading_indicator.label": "正在載入...",
- "media_gallery.toggle_visible": "切換可見性",
+ "media_gallery.hide": "隱藏",
"moved_to_account_banner.text": "您的帳號 {disabledAccount} 目前已停用,因為您已搬家至 {movedToAccount}。",
- "mute_modal.hide_from_notifications": "於通知中隱藏",
+ "mute_modal.hide_from_notifications": "於推播通知中隱藏",
"mute_modal.hide_options": "隱藏選項",
"mute_modal.indefinite": "直到我解除靜音他們",
"mute_modal.show_options": "顯示選項",
@@ -444,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "您不會見到提及他們的嘟文。",
"mute_modal.you_wont_see_posts": "他們仍可讀取您的嘟文,但您不會見到他們的。",
"navigation_bar.about": "關於",
+ "navigation_bar.administration": "管理介面",
"navigation_bar.advanced_interface": "以進階網頁介面開啟",
"navigation_bar.blocks": "已封鎖的使用者",
"navigation_bar.bookmarks": "書籤",
@@ -460,6 +486,7 @@
"navigation_bar.follows_and_followers": "跟隨中與跟隨者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
+ "navigation_bar.moderation": "站務",
"navigation_bar.mutes": "已靜音的使用者",
"navigation_bar.opened_in_classic_interface": "預設於經典網頁介面中開啟嘟文、帳號與其他特定頁面。",
"navigation_bar.personal": "個人",
@@ -470,11 +497,23 @@
"navigation_bar.security": "安全性",
"not_signed_in_indicator.not_signed_in": "您需要登入才能存取此資源。",
"notification.admin.report": "{name} 已檢舉 {target}",
+ "notification.admin.report_account": "{name} 已檢舉來自 {target} 關於 {category} 之 {count, plural, other {# 則嘟文}} ",
+ "notification.admin.report_account_other": "{name} 已檢舉來自 {target} 之 {count, plural, other {# 則嘟文}} ",
+ "notification.admin.report_statuses": "{name} 已檢舉 {target} 關於 {category}",
+ "notification.admin.report_statuses_other": "{name} 已檢舉 {target}",
"notification.admin.sign_up": "{name} 已經註冊",
+ "notification.admin.sign_up.name_and_others": "{name} 與{count, plural, other {其他 # 個人}}已註冊",
"notification.favourite": "{name} 已將您的嘟文加入最愛",
+ "notification.favourite.name_and_others_with_link": "{name} 與{count, plural, other {其他 # 個人}}已將您的嘟文加入最愛",
"notification.follow": "{name} 已跟隨您",
+ "notification.follow.name_and_others": "{name} 與{count, plural, other {其他 # 個人}}已跟隨您",
"notification.follow_request": "{name} 要求跟隨您",
- "notification.mention": "{name} 已提到您",
+ "notification.follow_request.name_and_others": "{name} 與{count, plural, other {其他 # 個人}}已請求跟隨您",
+ "notification.label.mention": "提及",
+ "notification.label.private_mention": "私訊",
+ "notification.label.private_reply": "私訊回嘟",
+ "notification.label.reply": "回嘟",
+ "notification.mention": "提及",
"notification.moderation-warning.learn_more": "了解更多",
"notification.moderation_warning": "您已收到管理員警告",
"notification.moderation_warning.action_delete_statuses": "某些您的嘟文已被刪除。",
@@ -487,6 +526,7 @@
"notification.own_poll": "您的投票已結束",
"notification.poll": "您曾投過的投票已經結束",
"notification.reblog": "{name} 已轉嘟您的嘟文",
+ "notification.reblog.name_and_others_with_link": "{name} 與{count, plural, other {其他 # 個人}}已轉嘟您的嘟文",
"notification.relationships_severance_event": "與 {name} 失去連結",
"notification.relationships_severance_event.account_suspension": "{from} 之管理員已將 {target} 停權,意味著您將不再收到來自他們的更新或與之互動。",
"notification.relationships_severance_event.domain_block": "{from} 之管理員已將 {target} 封鎖,包含 {followersCount} 名您的跟隨者及 {followingCount, plural, other {#}} 名您跟隨的帳號。",
@@ -495,11 +535,27 @@
"notification.status": "{name} 剛剛嘟文",
"notification.update": "{name} 已編輯嘟文",
"notification_requests.accept": "接受",
+ "notification_requests.accept_multiple": "{count, plural, other {接受 # 則請求...}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, other {接受請求}}",
+ "notification_requests.confirm_accept_multiple.message": "您將接受 {count, plural, other {# 則推播通知請求}}。您確定要繼續?",
+ "notification_requests.confirm_accept_multiple.title": "接受推播通知請求?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, other {忽略請求}}",
+ "notification_requests.confirm_dismiss_multiple.message": "您將忽略 {count, plural, other {# 則推播通知請求}}。您將不再能輕易存取{count, plural, other {這些}}推播通知。您確定要繼續?",
+ "notification_requests.confirm_dismiss_multiple.title": "忽略推播通知請求?",
"notification_requests.dismiss": "關閉",
+ "notification_requests.dismiss_multiple": "{count, plural, other {忽略 # 則請求...}}",
+ "notification_requests.edit_selection": "編輯",
+ "notification_requests.exit_selection": "完成",
+ "notification_requests.explainer_for_limited_account": "由於此帳號已被管理員限制,來自此帳號之通知已被過濾。",
+ "notification_requests.explainer_for_limited_remote_account": "由於此帳號或其伺服器已被管理員限制,來自此帳號之通知已被過濾。",
+ "notification_requests.maximize": "最大化",
+ "notification_requests.minimize_banner": "最小化已過濾通知橫幅",
"notification_requests.notifications_from": "來自 {name} 之通知",
- "notification_requests.title": "已過濾之通知",
+ "notification_requests.title": "已過濾之推播通知",
+ "notification_requests.view": "檢視推播通知",
"notifications.clear": "清除通知",
"notifications.clear_confirmation": "您確定要永久清除您的通知嗎?",
+ "notifications.clear_title": "是否清除推播通知?",
"notifications.column_settings.admin.report": "新檢舉報告:",
"notifications.column_settings.admin.sign_up": "新註冊帳號:",
"notifications.column_settings.alert": "桌面通知",
@@ -531,6 +587,14 @@
"notifications.permission_denied": "由於之前已拒絕瀏覽器請求,因此無法使用桌面通知",
"notifications.permission_denied_alert": "由於之前瀏覽器權限被拒絕,無法啟用桌面通知",
"notifications.permission_required": "由於尚未授予所需的權限,因此無法使用桌面通知。",
+ "notifications.policy.accept": "接受",
+ "notifications.policy.accept_hint": "顯示於推播通知",
+ "notifications.policy.drop": "忽略",
+ "notifications.policy.drop_hint": "送至黑洞,永不相見",
+ "notifications.policy.filter": "過濾器",
+ "notifications.policy.filter_hint": "送至已過濾推播通知收件夾",
+ "notifications.policy.filter_limited_accounts_hint": "已被伺服器管理員限制",
+ "notifications.policy.filter_limited_accounts_title": "受管制帳號",
"notifications.policy.filter_new_accounts.hint": "新增於過去 {days, plural, other {# 日}}",
"notifications.policy.filter_new_accounts_title": "新帳號",
"notifications.policy.filter_not_followers_hint": "包含最近 {days, plural, other {# 日}} 內跟隨您之使用者",
@@ -539,7 +603,7 @@
"notifications.policy.filter_not_following_title": "您未跟隨之使用者",
"notifications.policy.filter_private_mentions_hint": "過濾通知,除非嘟文包含於您的提及,或您跟隨該發嘟帳號",
"notifications.policy.filter_private_mentions_title": "不請自來的私訊",
- "notifications.policy.title": "過濾通知來自...",
+ "notifications.policy.title": "管理推播通知來自...",
"notifications_permission_banner.enable": "啟用桌面通知",
"notifications_permission_banner.how_to_control": "啟用桌面通知以於 Mastodon 沒有開啟的時候接收通知。啟用桌面通知後,您可以透過上面的 {icon} 按鈕準確的控制哪些類型的互動會產生桌面通知。",
"notifications_permission_banner.title": "不要錯過任何東西!",
@@ -552,7 +616,7 @@
"onboarding.follows.lead": "您的首頁時間軸是 Mastodon 的核心體驗。若您跟隨更多人,它將會變得更活躍有趣。這些個人檔案也許是個好起點,您可以隨時取消跟隨他們!",
"onboarding.follows.title": "客製化您的首頁時間軸",
"onboarding.profile.discoverable": "使我的個人檔案可以被找到",
- "onboarding.profile.discoverable_hint": "當您於 Mastodon 上選擇加入可發現性時,您的嘟文可能會顯示於搜尋結果與趨勢中。您的個人檔案可能會被推薦給與您志趣相投的人。",
+ "onboarding.profile.discoverable_hint": "當您於 Mastodon 上選擇加入可發現性時,您的嘟文可能會顯示於搜尋結果與趨勢中。您的個人檔案可能會被推薦至與您志趣相投的人。",
"onboarding.profile.display_name": "顯示名稱",
"onboarding.profile.display_name_hint": "完整名稱或暱稱...",
"onboarding.profile.lead": "您隨時可以稍候於設定中完成此操作,將有更多自訂選項可使用。",
@@ -581,8 +645,8 @@
"onboarding.tips.accounts_from_other_servers": "您知道嗎? 由於 Mastodon 是去中心化的,有些您巧遇過的個人檔案託管於這邊以外的其他伺服器。即便如此,您也能無縫地與他們互動!他們的伺服器位址是他們帳號的後半部分!",
"onboarding.tips.migration": "您知道嗎? 若您認為 {domain} 已不再對您的未來使用是好的伺服器選擇,您可以遷移至另一個 Mastodon 伺服器而不流失您現有的跟隨者。您甚至可以運行您自己的伺服器!",
"onboarding.tips.verification": "您知道嗎? 您可以藉由於您自己的網站上設定 Mastodon 個人檔案連結並於個人檔案中連結該網站的方式以驗證您的帳號。不需要任何費用或是文件!",
- "password_confirmation.exceeds_maxlength": "密碼確認欄超過最長密碼長度限制",
- "password_confirmation.mismatching": "密碼確認欄與密碼不一致",
+ "password_confirmation.exceeds_maxlength": "密碼驗證欄超過最長密碼長度限制",
+ "password_confirmation.mismatching": "密碼驗證欄與密碼不一致",
"picture_in_picture.restore": "還原",
"poll.closed": "已關閉",
"poll.refresh": "重新整理",
@@ -666,9 +730,13 @@
"report.unfollow_explanation": "您正在跟隨此帳號。如不欲於首頁時間軸再見到他們的嘟文,請取消跟隨。",
"report_notification.attached_statuses": "{count, plural, one {{count} 則} other {{count} 則}} 嘟文",
"report_notification.categories.legal": "合法性",
+ "report_notification.categories.legal_sentence": "違法內容",
"report_notification.categories.other": "其他",
+ "report_notification.categories.other_sentence": "其他",
"report_notification.categories.spam": "垃圾訊息",
+ "report_notification.categories.spam_sentence": "垃圾訊息",
"report_notification.categories.violation": "違反規則",
+ "report_notification.categories.violation_sentence": "違反規則",
"report_notification.open": "開啟檢舉報告",
"search.no_recent_searches": "尚無最近的搜尋紀錄",
"search.placeholder": "搜尋",
@@ -710,6 +778,7 @@
"status.bookmark": "書籤",
"status.cancel_reblog_private": "取消轉嘟",
"status.cannot_reblog": "這則嘟文無法被轉嘟",
+ "status.continued_thread": "接續討論串",
"status.copy": "複製嘟文連結",
"status.delete": "刪除",
"status.detailed_status": "詳細的對話內容",
@@ -718,12 +787,10 @@
"status.edit": "編輯",
"status.edited": "上次編輯於 {date}",
"status.edited_x_times": "已編輯 {count, plural, one {{count} 次} other {{count} 次}}",
- "status.embed": "內嵌嘟文",
+ "status.embed": "取得嵌入程式碼",
"status.favourite": "最愛",
"status.favourites": "{count, plural, other {# 則最愛}}",
"status.filter": "過濾此嘟文",
- "status.filtered": "已過濾",
- "status.hide": "隱藏嘟文",
"status.history.created": "{name} 於 {date} 建立",
"status.history.edited": "{name} 於 {date} 修改",
"status.load_more": "載入更多",
@@ -745,16 +812,14 @@
"status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。",
"status.redraft": "刪除並重新編輯",
"status.remove_bookmark": "移除書籤",
+ "status.replied_in_thread": "於討論串中回覆",
"status.replied_to": "回覆 {name}",
"status.reply": "回覆",
"status.replyAll": "回覆討論串",
"status.report": "檢舉 @{name}",
"status.sensitive_warning": "敏感內容",
"status.share": "分享",
- "status.show_filter_reason": "仍要顯示",
- "status.show_less": "減少顯示",
"status.show_less_all": "隱藏所有內容警告與額外標籤",
- "status.show_more": "顯示更多",
"status.show_more_all": "顯示所有內容警告與額外標籤",
"status.show_original": "顯示原文",
"status.title.with_attachments": "{user} 嘟了 {attachmentCount, plural, other {{attachmentCount} 個附加檔案}}",
@@ -773,10 +838,6 @@
"time_remaining.minutes": "剩餘 {number, plural, one {# 分鐘} other {# 分鐘}}",
"time_remaining.moments": "剩餘時間",
"time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}",
- "timeline_hint.remote_resource_not_displayed": "不會顯示來自其他伺服器的 {resource}",
- "timeline_hint.resources.followers": "跟隨者",
- "timeline_hint.resources.follows": "正在跟隨",
- "timeline_hint.resources.statuses": "更早的嘟文",
"trends.counter_by_accounts": "{count, plural, one {{counter} 人} other {{counter} 人}}於過去 {days, plural, one {日} other {{days} 日}} 之間",
"trends.trending_now": "現正熱門趨勢",
"ui.beforeunload": "如果離開 Mastodon,您的草稿將會不見。",
@@ -797,7 +858,7 @@
"upload_modal.applying": "正在套用...",
"upload_modal.choose_image": "選擇圖片",
"upload_modal.description_placeholder": "我能吞下玻璃而不傷身體",
- "upload_modal.detect_text": "從圖片中偵測文字",
+ "upload_modal.detect_text": "自圖片中偵測文字",
"upload_modal.edit_media": "編輯媒體",
"upload_modal.hint": "於預覽中點擊或拖曳圓圈以選擇將於所有縮圖中顯示的焦點。",
"upload_modal.preparing_ocr": "準備 OCR 中……",
diff --git a/app/javascript/mastodon/models/notification_group.ts b/app/javascript/mastodon/models/notification_group.ts
new file mode 100644
index 00000000000..09d407d4495
--- /dev/null
+++ b/app/javascript/mastodon/models/notification_group.ts
@@ -0,0 +1,206 @@
+import type {
+ ApiAccountRelationshipSeveranceEventJSON,
+ ApiAccountWarningJSON,
+ BaseNotificationGroupJSON,
+ ApiNotificationGroupJSON,
+ ApiNotificationJSON,
+ NotificationType,
+ NotificationWithStatusType,
+} from 'mastodon/api_types/notifications';
+import type { ApiReportJSON } from 'mastodon/api_types/reports';
+
+// Maximum number of avatars displayed in a notification group
+// This corresponds to the max lenght of `group.sampleAccountIds`
+export const NOTIFICATIONS_GROUP_MAX_AVATARS = 8;
+
+interface BaseNotificationGroup
+ extends Omit {
+ sampleAccountIds: string[];
+}
+
+interface BaseNotificationWithStatus
+ extends BaseNotificationGroup {
+ type: Type;
+ statusId: string | undefined;
+}
+
+interface BaseNotification
+ extends BaseNotificationGroup {
+ type: Type;
+}
+
+export type NotificationGroupFavourite =
+ BaseNotificationWithStatus<'favourite'>;
+export type NotificationGroupReblog = BaseNotificationWithStatus<'reblog'>;
+export type NotificationGroupStatus = BaseNotificationWithStatus<'status'>;
+export type NotificationGroupMention = BaseNotificationWithStatus<'mention'>;
+export type NotificationGroupPoll = BaseNotificationWithStatus<'poll'>;
+export type NotificationGroupUpdate = BaseNotificationWithStatus<'update'>;
+export type NotificationGroupFollow = BaseNotification<'follow'>;
+export type NotificationGroupFollowRequest = BaseNotification<'follow_request'>;
+export type NotificationGroupAdminSignUp = BaseNotification<'admin.sign_up'>;
+
+export type AccountWarningAction =
+ | 'none'
+ | 'disable'
+ | 'mark_statuses_as_sensitive'
+ | 'delete_statuses'
+ | 'sensitive'
+ | 'silence'
+ | 'suspend';
+export interface AccountWarning
+ extends Omit {
+ targetAccountId: string;
+}
+
+export interface NotificationGroupModerationWarning
+ extends BaseNotification<'moderation_warning'> {
+ moderationWarning: AccountWarning;
+}
+
+type AccountRelationshipSeveranceEvent =
+ ApiAccountRelationshipSeveranceEventJSON;
+export interface NotificationGroupSeveredRelationships
+ extends BaseNotification<'severed_relationships'> {
+ event: AccountRelationshipSeveranceEvent;
+}
+
+interface Report extends Omit {
+ targetAccountId: string;
+}
+
+export interface NotificationGroupAdminReport
+ extends BaseNotification<'admin.report'> {
+ report: Report;
+}
+
+export type NotificationGroup =
+ | NotificationGroupFavourite
+ | NotificationGroupReblog
+ | NotificationGroupStatus
+ | NotificationGroupMention
+ | NotificationGroupPoll
+ | NotificationGroupUpdate
+ | NotificationGroupFollow
+ | NotificationGroupFollowRequest
+ | NotificationGroupModerationWarning
+ | NotificationGroupSeveredRelationships
+ | NotificationGroupAdminSignUp
+ | NotificationGroupAdminReport;
+
+function createReportFromJSON(reportJSON: ApiReportJSON): Report {
+ const { target_account, ...report } = reportJSON;
+ return {
+ targetAccountId: target_account.id,
+ ...report,
+ };
+}
+
+function createAccountWarningFromJSON(
+ warningJSON: ApiAccountWarningJSON,
+): AccountWarning {
+ const { target_account, ...warning } = warningJSON;
+ return {
+ targetAccountId: target_account.id,
+ ...warning,
+ };
+}
+
+function createAccountRelationshipSeveranceEventFromJSON(
+ eventJson: ApiAccountRelationshipSeveranceEventJSON,
+): AccountRelationshipSeveranceEvent {
+ return eventJson;
+}
+
+export function createNotificationGroupFromJSON(
+ groupJson: ApiNotificationGroupJSON,
+): NotificationGroup {
+ const { sample_account_ids: sampleAccountIds, ...group } = groupJson;
+
+ switch (group.type) {
+ case 'favourite':
+ case 'reblog':
+ case 'status':
+ case 'mention':
+ case 'poll':
+ case 'update': {
+ const { status_id: statusId, ...groupWithoutStatus } = group;
+ return {
+ statusId: statusId ?? undefined,
+ sampleAccountIds,
+ ...groupWithoutStatus,
+ };
+ }
+ case 'admin.report': {
+ const { report, ...groupWithoutTargetAccount } = group;
+ return {
+ report: createReportFromJSON(report),
+ sampleAccountIds,
+ ...groupWithoutTargetAccount,
+ };
+ }
+ case 'severed_relationships':
+ return {
+ ...group,
+ event: createAccountRelationshipSeveranceEventFromJSON(group.event),
+ sampleAccountIds,
+ };
+
+ case 'moderation_warning': {
+ const { moderation_warning, ...groupWithoutModerationWarning } = group;
+ return {
+ ...groupWithoutModerationWarning,
+ moderationWarning: createAccountWarningFromJSON(moderation_warning),
+ sampleAccountIds,
+ };
+ }
+ default:
+ return {
+ sampleAccountIds,
+ ...group,
+ };
+ }
+}
+
+export function createNotificationGroupFromNotificationJSON(
+ notification: ApiNotificationJSON,
+) {
+ const group = {
+ sampleAccountIds: [notification.account.id],
+ group_key: notification.group_key,
+ notifications_count: 1,
+ type: notification.type,
+ most_recent_notification_id: notification.id,
+ page_min_id: notification.id,
+ page_max_id: notification.id,
+ latest_page_notification_at: notification.created_at,
+ } as NotificationGroup;
+
+ switch (notification.type) {
+ case 'favourite':
+ case 'reblog':
+ case 'status':
+ case 'mention':
+ case 'poll':
+ case 'update':
+ return { ...group, statusId: notification.status?.id };
+ case 'admin.report':
+ return { ...group, report: createReportFromJSON(notification.report) };
+ case 'severed_relationships':
+ return {
+ ...group,
+ event: createAccountRelationshipSeveranceEventFromJSON(
+ notification.event,
+ ),
+ };
+ case 'moderation_warning':
+ return {
+ ...group,
+ moderationWarning: createAccountWarningFromJSON(
+ notification.moderation_warning,
+ ),
+ };
+ default:
+ return group;
+ }
+}
diff --git a/app/javascript/mastodon/models/notification_request.ts b/app/javascript/mastodon/models/notification_request.ts
new file mode 100644
index 00000000000..bd98d213d40
--- /dev/null
+++ b/app/javascript/mastodon/models/notification_request.ts
@@ -0,0 +1,19 @@
+import type { ApiNotificationRequestJSON } from 'mastodon/api_types/notifications';
+
+export interface NotificationRequest
+ extends Omit {
+ account_id: string;
+ notifications_count: number;
+}
+
+export function createNotificationRequestFromJSON(
+ requestJSON: ApiNotificationRequestJSON,
+): NotificationRequest {
+ const { account, notifications_count, ...request } = requestJSON;
+
+ return {
+ account_id: account.id,
+ notifications_count: +notifications_count,
+ ...request,
+ };
+}
diff --git a/app/javascript/mastodon/models/status.ts b/app/javascript/mastodon/models/status.ts
index 7907fc34f8e..3900df4e38e 100644
--- a/app/javascript/mastodon/models/status.ts
+++ b/app/javascript/mastodon/models/status.ts
@@ -1,4 +1,12 @@
+import type { RecordOf } from 'immutable';
+
+import type { ApiPreviewCardJSON } from 'mastodon/api_types/statuses';
+
export type { StatusVisibility } from 'mastodon/api_types/statuses';
// Temporary until we type it correctly
export type Status = Immutable.Map;
+
+type CardShape = Required;
+
+export type Card = RecordOf;
diff --git a/app/javascript/mastodon/permissions.ts b/app/javascript/mastodon/permissions.ts
index b583535c00e..8f015610ea0 100644
--- a/app/javascript/mastodon/permissions.ts
+++ b/app/javascript/mastodon/permissions.ts
@@ -1,4 +1,23 @@
export const PERMISSION_INVITE_USERS = 0x0000000000010000;
export const PERMISSION_MANAGE_USERS = 0x0000000000000400;
export const PERMISSION_MANAGE_FEDERATION = 0x0000000000000020;
+
export const PERMISSION_MANAGE_REPORTS = 0x0000000000000010;
+export const PERMISSION_VIEW_DASHBOARD = 0x0000000000000008;
+
+// These helpers don't quite align with the names/categories in UserRole,
+// but are likely "good enough" for the use cases at present.
+//
+// See: https://docs.joinmastodon.org/entities/Role/#permission-flags
+
+export function canViewAdminDashboard(permissions: number) {
+ return (
+ (permissions & PERMISSION_VIEW_DASHBOARD) === PERMISSION_VIEW_DASHBOARD
+ );
+}
+
+export function canManageReports(permissions: number) {
+ return (
+ (permissions & PERMISSION_MANAGE_REPORTS) === PERMISSION_MANAGE_REPORTS
+ );
+}
diff --git a/app/javascript/mastodon/reducers/accounts_map.js b/app/javascript/mastodon/reducers/accounts_map.js
index 9053dcc9c05..d1229169cc3 100644
--- a/app/javascript/mastodon/reducers/accounts_map.js
+++ b/app/javascript/mastodon/reducers/accounts_map.js
@@ -4,11 +4,10 @@ import { ACCOUNT_LOOKUP_FAIL } from '../actions/accounts';
import { importAccounts } from '../actions/accounts_typed';
import { domain } from '../initial_state';
-export const normalizeForLookup = str => {
- str = str.toLowerCase();
- const trailingIndex = str.indexOf(`@${domain.toLowerCase()}`);
- return (trailingIndex > 0) ? str.slice(0, trailingIndex) : str;
-};
+const pattern = new RegExp(`@${domain}$`, 'gi');
+
+export const normalizeForLookup = str =>
+ str.toLowerCase().replace(pattern, '');
const initialState = ImmutableMap();
diff --git a/app/javascript/mastodon/reducers/index.ts b/app/javascript/mastodon/reducers/index.ts
index 6296ef20269..b92de0dbcda 100644
--- a/app/javascript/mastodon/reducers/index.ts
+++ b/app/javascript/mastodon/reducers/index.ts
@@ -24,6 +24,7 @@ import { markersReducer } from './markers';
import media_attachments from './media_attachments';
import meta from './meta';
import { modalReducer } from './modal';
+import { notificationGroupsReducer } from './notification_groups';
import { notificationPolicyReducer } from './notification_policy';
import { notificationRequestsReducer } from './notification_requests';
import notifications from './notifications';
@@ -65,6 +66,7 @@ const reducers = {
search,
media_attachments,
notifications,
+ notificationGroups: notificationGroupsReducer,
height_cache,
custom_emojis,
lists,
diff --git a/app/javascript/mastodon/reducers/markers.ts b/app/javascript/mastodon/reducers/markers.ts
index ec85d0f1732..b1f10b5fa23 100644
--- a/app/javascript/mastodon/reducers/markers.ts
+++ b/app/javascript/mastodon/reducers/markers.ts
@@ -1,6 +1,7 @@
import { createReducer } from '@reduxjs/toolkit';
-import { submitMarkersAction } from 'mastodon/actions/markers';
+import { submitMarkersAction, fetchMarkers } from 'mastodon/actions/markers';
+import { compareId } from 'mastodon/compare_id';
const initialState = {
home: '0',
@@ -15,4 +16,23 @@ export const markersReducer = createReducer(initialState, (builder) => {
if (notifications) state.notifications = notifications;
},
);
+ builder.addCase(
+ fetchMarkers.fulfilled,
+ (
+ state,
+ {
+ payload: {
+ markers: { home, notifications },
+ },
+ },
+ ) => {
+ if (home && compareId(home.last_read_id, state.home) > 0)
+ state.home = home.last_read_id;
+ if (
+ notifications &&
+ compareId(notifications.last_read_id, state.notifications) > 0
+ )
+ state.notifications = notifications.last_read_id;
+ },
+ );
});
diff --git a/app/javascript/mastodon/reducers/notification_groups.ts b/app/javascript/mastodon/reducers/notification_groups.ts
new file mode 100644
index 00000000000..f3c83ccd8d6
--- /dev/null
+++ b/app/javascript/mastodon/reducers/notification_groups.ts
@@ -0,0 +1,620 @@
+import { createReducer, isAnyOf } from '@reduxjs/toolkit';
+
+import {
+ authorizeFollowRequestSuccess,
+ blockAccountSuccess,
+ muteAccountSuccess,
+ rejectFollowRequestSuccess,
+} from 'mastodon/actions/accounts_typed';
+import { focusApp, unfocusApp } from 'mastodon/actions/app';
+import { blockDomainSuccess } from 'mastodon/actions/domain_blocks_typed';
+import { fetchMarkers } from 'mastodon/actions/markers';
+import {
+ clearNotifications,
+ fetchNotifications,
+ fetchNotificationsGap,
+ processNewNotificationForGroups,
+ loadPending,
+ updateScrollPosition,
+ markNotificationsAsRead,
+ mountNotifications,
+ unmountNotifications,
+ refreshStaleNotificationGroups,
+ pollRecentNotifications,
+} from 'mastodon/actions/notification_groups';
+import {
+ disconnectTimeline,
+ timelineDelete,
+} from 'mastodon/actions/timelines_typed';
+import type {
+ ApiNotificationJSON,
+ ApiNotificationGroupJSON,
+} from 'mastodon/api_types/notifications';
+import { compareId } from 'mastodon/compare_id';
+import { usePendingItems } from 'mastodon/initial_state';
+import {
+ NOTIFICATIONS_GROUP_MAX_AVATARS,
+ createNotificationGroupFromJSON,
+ createNotificationGroupFromNotificationJSON,
+} from 'mastodon/models/notification_group';
+import type { NotificationGroup } from 'mastodon/models/notification_group';
+
+const NOTIFICATIONS_TRIM_LIMIT = 50;
+
+export interface NotificationGap {
+ type: 'gap';
+ maxId?: string;
+ sinceId?: string;
+}
+
+interface NotificationGroupsState {
+ groups: (NotificationGroup | NotificationGap)[];
+ pendingGroups: (NotificationGroup | NotificationGap)[];
+ scrolledToTop: boolean;
+ isLoading: boolean;
+ lastReadId: string;
+ readMarkerId: string;
+ mounted: number;
+ isTabVisible: boolean;
+ mergedNotifications: 'ok' | 'pending' | 'needs-reload';
+}
+
+const initialState: NotificationGroupsState = {
+ groups: [],
+ pendingGroups: [], // holds pending groups in slow mode
+ scrolledToTop: false,
+ isLoading: false,
+ // this is used to track whether we need to refresh notifications after accepting requests
+ mergedNotifications: 'ok',
+ // The following properties are used to track unread notifications
+ lastReadId: '0', // used internally for unread notifications
+ readMarkerId: '0', // user-facing and updated when focus changes
+ mounted: 0, // number of mounted notification list components, usually 0 or 1
+ isTabVisible: true,
+};
+
+function filterNotificationsForAccounts(
+ groups: NotificationGroupsState['groups'],
+ accountIds: string[],
+ onlyForType?: string,
+) {
+ groups = groups
+ .map((group) => {
+ if (
+ group.type !== 'gap' &&
+ (!onlyForType || group.type === onlyForType)
+ ) {
+ const previousLength = group.sampleAccountIds.length;
+
+ group.sampleAccountIds = group.sampleAccountIds.filter(
+ (id) => !accountIds.includes(id),
+ );
+
+ const newLength = group.sampleAccountIds.length;
+ const removed = previousLength - newLength;
+
+ group.notifications_count -= removed;
+ }
+
+ return group;
+ })
+ .filter(
+ (group) => group.type === 'gap' || group.sampleAccountIds.length > 0,
+ );
+ mergeGaps(groups);
+ return groups;
+}
+
+function filterNotificationsForStatus(
+ groups: NotificationGroupsState['groups'],
+ statusId: string,
+) {
+ groups = groups.filter(
+ (group) =>
+ group.type === 'gap' ||
+ !('statusId' in group) ||
+ group.statusId !== statusId,
+ );
+ mergeGaps(groups);
+ return groups;
+}
+
+function removeNotificationsForAccounts(
+ state: NotificationGroupsState,
+ accountIds: string[],
+ onlyForType?: string,
+) {
+ state.groups = filterNotificationsForAccounts(
+ state.groups,
+ accountIds,
+ onlyForType,
+ );
+ state.pendingGroups = filterNotificationsForAccounts(
+ state.pendingGroups,
+ accountIds,
+ onlyForType,
+ );
+}
+
+function removeNotificationsForStatus(
+ state: NotificationGroupsState,
+ statusId: string,
+) {
+ state.groups = filterNotificationsForStatus(state.groups, statusId);
+ state.pendingGroups = filterNotificationsForStatus(
+ state.pendingGroups,
+ statusId,
+ );
+}
+
+function isNotificationGroup(
+ groupOrGap: NotificationGroup | NotificationGap,
+): groupOrGap is NotificationGroup {
+ return groupOrGap.type !== 'gap';
+}
+
+// Merge adjacent gaps in `groups` in-place
+function mergeGaps(groups: NotificationGroupsState['groups']) {
+ for (let i = 0; i < groups.length; i++) {
+ const firstGroupOrGap = groups[i];
+
+ if (firstGroupOrGap?.type === 'gap') {
+ let lastGap = firstGroupOrGap;
+ let j = i + 1;
+
+ for (; j < groups.length; j++) {
+ const groupOrGap = groups[j];
+ if (groupOrGap?.type === 'gap') lastGap = groupOrGap;
+ else break;
+ }
+
+ if (j - i > 1) {
+ groups.splice(i, j - i, {
+ type: 'gap',
+ maxId: firstGroupOrGap.maxId,
+ sinceId: lastGap.sinceId,
+ });
+ }
+ }
+ }
+}
+
+// Checks if `groups[index-1]` and `groups[index]` are gaps, and merge them in-place if they are
+function mergeGapsAround(
+ groups: NotificationGroupsState['groups'],
+ index: number,
+) {
+ if (index > 0) {
+ const potentialFirstGap = groups[index - 1];
+ const potentialSecondGap = groups[index];
+
+ if (
+ potentialFirstGap?.type === 'gap' &&
+ potentialSecondGap?.type === 'gap'
+ ) {
+ groups.splice(index - 1, 2, {
+ type: 'gap',
+ maxId: potentialFirstGap.maxId,
+ sinceId: potentialSecondGap.sinceId,
+ });
+ }
+ }
+}
+
+function processNewNotification(
+ groups: NotificationGroupsState['groups'],
+ notification: ApiNotificationJSON,
+) {
+ const existingGroupIndex = groups.findIndex(
+ (group) =>
+ group.type !== 'gap' && group.group_key === notification.group_key,
+ );
+
+ // In any case, we are going to add a group at the top
+ // If there is currently a gap at the top, now is the time to update it
+ if (groups.length > 0 && groups[0]?.type === 'gap') {
+ groups[0].maxId = notification.id;
+ }
+
+ if (existingGroupIndex > -1) {
+ const existingGroup = groups[existingGroupIndex];
+
+ if (
+ existingGroup &&
+ existingGroup.type !== 'gap' &&
+ !existingGroup.sampleAccountIds.includes(notification.account.id) // This can happen for example if you like, then unlike, then like again the same post
+ ) {
+ // Update the existing group
+ if (
+ existingGroup.sampleAccountIds.unshift(notification.account.id) >
+ NOTIFICATIONS_GROUP_MAX_AVATARS
+ )
+ existingGroup.sampleAccountIds.pop();
+
+ existingGroup.most_recent_notification_id = notification.id;
+ existingGroup.page_max_id = notification.id;
+ existingGroup.latest_page_notification_at = notification.created_at;
+ existingGroup.notifications_count += 1;
+
+ groups.splice(existingGroupIndex, 1);
+ mergeGapsAround(groups, existingGroupIndex);
+
+ groups.unshift(existingGroup);
+ }
+ } else {
+ // Create a new group
+ groups.unshift(createNotificationGroupFromNotificationJSON(notification));
+ }
+}
+
+function trimNotifications(state: NotificationGroupsState) {
+ if (state.scrolledToTop && state.groups.length > NOTIFICATIONS_TRIM_LIMIT) {
+ state.groups.splice(NOTIFICATIONS_TRIM_LIMIT);
+ ensureTrailingGap(state.groups);
+ }
+}
+
+function shouldMarkNewNotificationsAsRead(
+ {
+ isTabVisible,
+ scrolledToTop,
+ mounted,
+ lastReadId,
+ groups,
+ }: NotificationGroupsState,
+ ignoreScroll = false,
+) {
+ const isMounted = mounted > 0;
+ const oldestGroup = groups.findLast(isNotificationGroup);
+ const hasMore = groups.at(-1)?.type === 'gap';
+ const oldestGroupReached =
+ !hasMore ||
+ lastReadId === '0' ||
+ (oldestGroup?.page_min_id &&
+ compareId(oldestGroup.page_min_id, lastReadId) <= 0);
+
+ return (
+ isTabVisible &&
+ (ignoreScroll || scrolledToTop) &&
+ isMounted &&
+ oldestGroupReached
+ );
+}
+
+function updateLastReadId(
+ state: NotificationGroupsState,
+ group: NotificationGroup | undefined = undefined,
+) {
+ if (shouldMarkNewNotificationsAsRead(state)) {
+ group = group ?? state.groups.find(isNotificationGroup);
+ if (
+ group?.page_max_id &&
+ compareId(state.lastReadId, group.page_max_id) < 0
+ )
+ state.lastReadId = group.page_max_id;
+ }
+}
+
+function commitLastReadId(state: NotificationGroupsState) {
+ if (shouldMarkNewNotificationsAsRead(state)) {
+ state.readMarkerId = state.lastReadId;
+ }
+}
+
+function fillNotificationsGap(
+ groups: NotificationGroupsState['groups'],
+ gap: NotificationGap,
+ notifications: ApiNotificationGroupJSON[],
+): NotificationGroupsState['groups'] {
+ // find the gap in the existing notifications
+ const gapIndex = groups.findIndex(
+ (groupOrGap) =>
+ groupOrGap.type === 'gap' &&
+ groupOrGap.sinceId === gap.sinceId &&
+ groupOrGap.maxId === gap.maxId,
+ );
+
+ if (gapIndex < 0)
+ // We do not know where to insert, let's return
+ return groups;
+
+ // Filling a disconnection gap means we're getting historical data
+ // about groups we may know or may not know about.
+
+ // The notifications timeline is split in two by the gap, with
+ // group information newer than the gap, and group information older
+ // than the gap.
+
+ // Filling a gap should not touch anything before the gap, so any
+ // information on groups already appearing before the gap should be
+ // discarded, while any information on groups appearing after the gap
+ // can be updated and re-ordered.
+
+ const oldestPageNotification = notifications.at(-1)?.page_min_id;
+
+ // replace the gap with the notifications + a new gap
+
+ const newerGroupKeys = groups
+ .slice(0, gapIndex)
+ .filter(isNotificationGroup)
+ .map((group) => group.group_key);
+
+ const toInsert: NotificationGroupsState['groups'] = notifications
+ .map((json) => createNotificationGroupFromJSON(json))
+ .filter((notification) => !newerGroupKeys.includes(notification.group_key));
+
+ const apiGroupKeys = (toInsert as NotificationGroup[]).map(
+ (group) => group.group_key,
+ );
+
+ const sinceId = gap.sinceId;
+ if (
+ notifications.length > 0 &&
+ !(
+ oldestPageNotification &&
+ sinceId &&
+ compareId(oldestPageNotification, sinceId) <= 0
+ )
+ ) {
+ // If we get an empty page, it means we reached the bottom, so we do not need to insert a new gap
+ // Similarly, if we've fetched more than the gap's, this means we have completely filled it
+ toInsert.push({
+ type: 'gap',
+ maxId: notifications.at(-1)?.page_max_id,
+ sinceId,
+ } as NotificationGap);
+ }
+
+ // Remove older groups covered by the API
+ groups = groups.filter(
+ (groupOrGap) =>
+ groupOrGap.type !== 'gap' && !apiGroupKeys.includes(groupOrGap.group_key),
+ );
+
+ // Replace the gap with API results (+ the new gap if needed)
+ groups.splice(gapIndex, 1, ...toInsert);
+
+ // Finally, merge any adjacent gaps that could have been created by filtering
+ // groups earlier
+ mergeGaps(groups);
+
+ return groups;
+}
+
+// Ensure the groups list starts with a gap, mutating it to prepend one if needed
+function ensureLeadingGap(
+ groups: NotificationGroupsState['groups'],
+): NotificationGap {
+ if (groups[0]?.type === 'gap') {
+ // We're expecting new notifications, so discard the maxId if there is one
+ groups[0].maxId = undefined;
+
+ return groups[0];
+ } else {
+ const gap: NotificationGap = {
+ type: 'gap',
+ sinceId: groups[0]?.page_min_id,
+ };
+
+ groups.unshift(gap);
+ return gap;
+ }
+}
+
+// Ensure the groups list ends with a gap suitable for loading more, mutating it to append one if needed
+function ensureTrailingGap(
+ groups: NotificationGroupsState['groups'],
+): NotificationGap {
+ const groupOrGap = groups.at(-1);
+
+ if (groupOrGap?.type === 'gap') {
+ // We're expecting older notifications, so discard sinceId if it's set
+ groupOrGap.sinceId = undefined;
+
+ return groupOrGap;
+ } else {
+ const gap: NotificationGap = {
+ type: 'gap',
+ maxId: groupOrGap?.page_min_id,
+ };
+
+ groups.push(gap);
+ return gap;
+ }
+}
+
+export const notificationGroupsReducer = createReducer(
+ initialState,
+ (builder) => {
+ builder
+ .addCase(fetchNotifications.fulfilled, (state, action) => {
+ state.groups = action.payload.map((json) =>
+ json.type === 'gap' ? json : createNotificationGroupFromJSON(json),
+ );
+ state.isLoading = false;
+ state.mergedNotifications = 'ok';
+ updateLastReadId(state);
+ })
+ .addCase(fetchNotificationsGap.fulfilled, (state, action) => {
+ state.groups = fillNotificationsGap(
+ state.groups,
+ action.meta.arg.gap,
+ action.payload.notifications,
+ );
+ state.isLoading = false;
+
+ updateLastReadId(state);
+ })
+ .addCase(pollRecentNotifications.fulfilled, (state, action) => {
+ if (usePendingItems) {
+ const gap = ensureLeadingGap(state.pendingGroups);
+ state.pendingGroups = fillNotificationsGap(
+ state.pendingGroups,
+ gap,
+ action.payload.notifications,
+ );
+ } else {
+ const gap = ensureLeadingGap(state.groups);
+ state.groups = fillNotificationsGap(
+ state.groups,
+ gap,
+ action.payload.notifications,
+ );
+ }
+
+ state.isLoading = false;
+
+ updateLastReadId(state);
+ trimNotifications(state);
+ })
+ .addCase(processNewNotificationForGroups.fulfilled, (state, action) => {
+ const notification = action.payload;
+ if (notification) {
+ processNewNotification(
+ usePendingItems ? state.pendingGroups : state.groups,
+ notification,
+ );
+ updateLastReadId(state);
+ trimNotifications(state);
+ }
+ })
+ .addCase(disconnectTimeline, (state, action) => {
+ if (action.payload.timeline === 'home') {
+ const groups = usePendingItems ? state.pendingGroups : state.groups;
+ if (groups.length > 0 && groups[0]?.type !== 'gap') {
+ groups.unshift({
+ type: 'gap',
+ sinceId: groups[0]?.page_min_id,
+ });
+ }
+ }
+ })
+ .addCase(timelineDelete, (state, action) => {
+ removeNotificationsForStatus(state, action.payload.statusId);
+ })
+ .addCase(clearNotifications.pending, (state) => {
+ state.groups = [];
+ state.pendingGroups = [];
+ })
+ .addCase(blockAccountSuccess, (state, action) => {
+ removeNotificationsForAccounts(state, [action.payload.relationship.id]);
+ })
+ .addCase(muteAccountSuccess, (state, action) => {
+ if (action.payload.relationship.muting_notifications)
+ removeNotificationsForAccounts(state, [
+ action.payload.relationship.id,
+ ]);
+ })
+ .addCase(blockDomainSuccess, (state, action) => {
+ removeNotificationsForAccounts(
+ state,
+ action.payload.accounts.map((account) => account.id),
+ );
+ })
+ .addCase(loadPending, (state) => {
+ // First, remove any existing group and merge data
+ state.pendingGroups.forEach((group) => {
+ if (group.type !== 'gap') {
+ const existingGroupIndex = state.groups.findIndex(
+ (groupOrGap) =>
+ isNotificationGroup(groupOrGap) &&
+ groupOrGap.group_key === group.group_key,
+ );
+ if (existingGroupIndex > -1) {
+ const existingGroup = state.groups[existingGroupIndex];
+ if (existingGroup && existingGroup.type !== 'gap') {
+ group.notifications_count += existingGroup.notifications_count;
+ group.sampleAccountIds = group.sampleAccountIds
+ .concat(existingGroup.sampleAccountIds)
+ .slice(0, NOTIFICATIONS_GROUP_MAX_AVATARS);
+ state.groups.splice(existingGroupIndex, 1);
+ }
+ }
+ }
+ });
+
+ // Then build the consolidated list and clear pending groups
+ state.groups = state.pendingGroups.concat(state.groups);
+ state.pendingGroups = [];
+ mergeGaps(state.groups);
+ trimNotifications(state);
+ })
+ .addCase(updateScrollPosition.fulfilled, (state, action) => {
+ state.scrolledToTop = action.payload.top;
+ updateLastReadId(state);
+ trimNotifications(state);
+ })
+ .addCase(markNotificationsAsRead, (state) => {
+ const mostRecentGroup = state.groups.find(isNotificationGroup);
+ if (
+ mostRecentGroup?.page_max_id &&
+ compareId(state.lastReadId, mostRecentGroup.page_max_id) < 0
+ )
+ state.lastReadId = mostRecentGroup.page_max_id;
+ commitLastReadId(state);
+ })
+ .addCase(fetchMarkers.fulfilled, (state, action) => {
+ if (
+ action.payload.markers.notifications &&
+ compareId(
+ state.lastReadId,
+ action.payload.markers.notifications.last_read_id,
+ ) < 0
+ ) {
+ state.lastReadId = action.payload.markers.notifications.last_read_id;
+ state.readMarkerId =
+ action.payload.markers.notifications.last_read_id;
+ }
+ })
+ .addCase(mountNotifications.fulfilled, (state) => {
+ state.mounted += 1;
+ commitLastReadId(state);
+ updateLastReadId(state);
+ })
+ .addCase(unmountNotifications, (state) => {
+ state.mounted -= 1;
+ })
+ .addCase(focusApp, (state) => {
+ state.isTabVisible = true;
+ commitLastReadId(state);
+ updateLastReadId(state);
+ })
+ .addCase(unfocusApp, (state) => {
+ state.isTabVisible = false;
+ })
+ .addCase(refreshStaleNotificationGroups.fulfilled, (state, action) => {
+ if (action.payload.deferredRefresh)
+ state.mergedNotifications = 'needs-reload';
+ })
+ .addMatcher(
+ isAnyOf(authorizeFollowRequestSuccess, rejectFollowRequestSuccess),
+ (state, action) => {
+ removeNotificationsForAccounts(
+ state,
+ [action.payload.id],
+ 'follow_request',
+ );
+ },
+ )
+ .addMatcher(
+ isAnyOf(
+ fetchNotifications.pending,
+ fetchNotificationsGap.pending,
+ pollRecentNotifications.pending,
+ ),
+ (state) => {
+ state.isLoading = true;
+ },
+ )
+ .addMatcher(
+ isAnyOf(
+ fetchNotifications.rejected,
+ fetchNotificationsGap.rejected,
+ pollRecentNotifications.rejected,
+ ),
+ (state) => {
+ state.isLoading = false;
+ },
+ );
+ },
+);
diff --git a/app/javascript/mastodon/reducers/notification_policy.ts b/app/javascript/mastodon/reducers/notification_policy.ts
index ab111066cc3..a883f9c1eed 100644
--- a/app/javascript/mastodon/reducers/notification_policy.ts
+++ b/app/javascript/mastodon/reducers/notification_policy.ts
@@ -2,17 +2,24 @@ import { createReducer, isAnyOf } from '@reduxjs/toolkit';
import {
fetchNotificationPolicy,
+ decreasePendingRequestsCount,
updateNotificationsPolicy,
} from 'mastodon/actions/notification_policies';
import type { NotificationPolicy } from 'mastodon/models/notification_policy';
export const notificationPolicyReducer =
createReducer(null, (builder) => {
- builder.addMatcher(
- isAnyOf(
- fetchNotificationPolicy.fulfilled,
- updateNotificationsPolicy.fulfilled,
- ),
- (_state, action) => action.payload,
- );
+ builder
+ .addCase(decreasePendingRequestsCount, (state, action) => {
+ if (state) {
+ state.summary.pending_requests_count -= action.payload;
+ }
+ })
+ .addMatcher(
+ isAnyOf(
+ fetchNotificationPolicy.fulfilled,
+ updateNotificationsPolicy.fulfilled,
+ ),
+ (_state, action) => action.payload,
+ );
});
diff --git a/app/javascript/mastodon/reducers/notification_requests.js b/app/javascript/mastodon/reducers/notification_requests.js
deleted file mode 100644
index 4247062a582..00000000000
--- a/app/javascript/mastodon/reducers/notification_requests.js
+++ /dev/null
@@ -1,96 +0,0 @@
-import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
-
-import {
- NOTIFICATION_REQUESTS_EXPAND_REQUEST,
- NOTIFICATION_REQUESTS_EXPAND_SUCCESS,
- NOTIFICATION_REQUESTS_EXPAND_FAIL,
- NOTIFICATION_REQUESTS_FETCH_REQUEST,
- NOTIFICATION_REQUESTS_FETCH_SUCCESS,
- NOTIFICATION_REQUESTS_FETCH_FAIL,
- NOTIFICATION_REQUEST_FETCH_REQUEST,
- NOTIFICATION_REQUEST_FETCH_SUCCESS,
- NOTIFICATION_REQUEST_FETCH_FAIL,
- NOTIFICATION_REQUEST_ACCEPT_REQUEST,
- NOTIFICATION_REQUEST_DISMISS_REQUEST,
- NOTIFICATIONS_FOR_REQUEST_FETCH_REQUEST,
- NOTIFICATIONS_FOR_REQUEST_FETCH_SUCCESS,
- NOTIFICATIONS_FOR_REQUEST_FETCH_FAIL,
- NOTIFICATIONS_FOR_REQUEST_EXPAND_REQUEST,
- NOTIFICATIONS_FOR_REQUEST_EXPAND_SUCCESS,
- NOTIFICATIONS_FOR_REQUEST_EXPAND_FAIL,
-} from 'mastodon/actions/notifications';
-
-import { notificationToMap } from './notifications';
-
-const initialState = ImmutableMap({
- items: ImmutableList(),
- isLoading: false,
- next: null,
- current: ImmutableMap({
- isLoading: false,
- item: null,
- removed: false,
- notifications: ImmutableMap({
- items: ImmutableList(),
- isLoading: false,
- next: null,
- }),
- }),
-});
-
-const normalizeRequest = request => fromJS({
- ...request,
- account: request.account.id,
-});
-
-const removeRequest = (state, id) => {
- if (state.getIn(['current', 'item', 'id']) === id) {
- state = state.setIn(['current', 'removed'], true);
- }
-
- return state.update('items', list => list.filterNot(item => item.get('id') === id));
-};
-
-export const notificationRequestsReducer = (state = initialState, action) => {
- switch(action.type) {
- case NOTIFICATION_REQUESTS_FETCH_SUCCESS:
- return state.withMutations(map => {
- map.update('items', list => ImmutableList(action.requests.map(normalizeRequest)).concat(list));
- map.set('isLoading', false);
- map.update('next', next => next ?? action.next);
- });
- case NOTIFICATION_REQUESTS_EXPAND_SUCCESS:
- return state.withMutations(map => {
- map.update('items', list => list.concat(ImmutableList(action.requests.map(normalizeRequest))));
- map.set('isLoading', false);
- map.set('next', action.next);
- });
- case NOTIFICATION_REQUESTS_EXPAND_REQUEST:
- case NOTIFICATION_REQUESTS_FETCH_REQUEST:
- return state.set('isLoading', true);
- case NOTIFICATION_REQUESTS_EXPAND_FAIL:
- case NOTIFICATION_REQUESTS_FETCH_FAIL:
- return state.set('isLoading', false);
- case NOTIFICATION_REQUEST_ACCEPT_REQUEST:
- case NOTIFICATION_REQUEST_DISMISS_REQUEST:
- return removeRequest(state, action.id);
- case NOTIFICATION_REQUEST_FETCH_REQUEST:
- return state.set('current', initialState.get('current').set('isLoading', true));
- case NOTIFICATION_REQUEST_FETCH_SUCCESS:
- return state.update('current', map => map.set('isLoading', false).set('item', normalizeRequest(action.request)));
- case NOTIFICATION_REQUEST_FETCH_FAIL:
- return state.update('current', map => map.set('isLoading', false));
- case NOTIFICATIONS_FOR_REQUEST_FETCH_REQUEST:
- case NOTIFICATIONS_FOR_REQUEST_EXPAND_REQUEST:
- return state.setIn(['current', 'notifications', 'isLoading'], true);
- case NOTIFICATIONS_FOR_REQUEST_FETCH_SUCCESS:
- return state.updateIn(['current', 'notifications'], map => map.set('isLoading', false).update('items', list => ImmutableList(action.notifications.map(notificationToMap)).concat(list)).update('next', next => next ?? action.next));
- case NOTIFICATIONS_FOR_REQUEST_EXPAND_SUCCESS:
- return state.updateIn(['current', 'notifications'], map => map.set('isLoading', false).update('items', list => list.concat(ImmutableList(action.notifications.map(notificationToMap)))).set('next', action.next));
- case NOTIFICATIONS_FOR_REQUEST_FETCH_FAIL:
- case NOTIFICATIONS_FOR_REQUEST_EXPAND_FAIL:
- return state.setIn(['current', 'notifications', 'isLoading'], false);
- default:
- return state;
- }
-};
diff --git a/app/javascript/mastodon/reducers/notification_requests.ts b/app/javascript/mastodon/reducers/notification_requests.ts
new file mode 100644
index 00000000000..1ca92d99900
--- /dev/null
+++ b/app/javascript/mastodon/reducers/notification_requests.ts
@@ -0,0 +1,182 @@
+import { createReducer, isAnyOf } from '@reduxjs/toolkit';
+
+import {
+ blockAccountSuccess,
+ muteAccountSuccess,
+} from 'mastodon/actions/accounts';
+import {
+ fetchNotificationRequests,
+ expandNotificationRequests,
+ fetchNotificationRequest,
+ fetchNotificationsForRequest,
+ expandNotificationsForRequest,
+ acceptNotificationRequest,
+ dismissNotificationRequest,
+ acceptNotificationRequests,
+ dismissNotificationRequests,
+} from 'mastodon/actions/notification_requests';
+import type { NotificationRequest } from 'mastodon/models/notification_request';
+import { createNotificationRequestFromJSON } from 'mastodon/models/notification_request';
+
+import { notificationToMap } from './notifications';
+
+interface NotificationsListState {
+ items: unknown[]; // TODO
+ isLoading: boolean;
+ next: string | null;
+}
+
+interface CurrentNotificationRequestState {
+ item: NotificationRequest | null;
+ isLoading: boolean;
+ removed: boolean;
+ notifications: NotificationsListState;
+}
+
+interface NotificationRequestsState {
+ items: NotificationRequest[];
+ isLoading: boolean;
+ next: string | null;
+ current: CurrentNotificationRequestState;
+}
+
+const initialState: NotificationRequestsState = {
+ items: [],
+ isLoading: false,
+ next: null,
+ current: {
+ item: null,
+ isLoading: false,
+ removed: false,
+ notifications: {
+ isLoading: false,
+ items: [],
+ next: null,
+ },
+ },
+};
+
+const removeRequest = (state: NotificationRequestsState, id: string) => {
+ if (state.current.item?.id === id) {
+ state.current.removed = true;
+ }
+
+ state.items = state.items.filter((item) => item.id !== id);
+};
+
+const removeRequestByAccount = (
+ state: NotificationRequestsState,
+ account_id: string,
+) => {
+ if (state.current.item?.account_id === account_id) {
+ state.current.removed = true;
+ }
+
+ state.items = state.items.filter((item) => item.account_id !== account_id);
+};
+
+export const notificationRequestsReducer =
+ createReducer(initialState, (builder) => {
+ builder
+ .addCase(fetchNotificationRequests.fulfilled, (state, action) => {
+ state.items = action.payload.requests
+ .map(createNotificationRequestFromJSON)
+ .concat(state.items);
+ state.isLoading = false;
+ state.next ??= action.payload.next ?? null;
+ })
+ .addCase(expandNotificationRequests.fulfilled, (state, action) => {
+ state.items = state.items.concat(
+ action.payload.requests.map(createNotificationRequestFromJSON),
+ );
+ state.isLoading = false;
+ state.next = action.payload.next ?? null;
+ })
+ .addCase(blockAccountSuccess, (state, action) => {
+ removeRequestByAccount(state, action.payload.relationship.id);
+ })
+ .addCase(muteAccountSuccess, (state, action) => {
+ if (action.payload.relationship.muting_notifications)
+ removeRequestByAccount(state, action.payload.relationship.id);
+ })
+ .addCase(fetchNotificationRequest.pending, (state) => {
+ state.current = { ...initialState.current, isLoading: true };
+ })
+ .addCase(fetchNotificationRequest.rejected, (state) => {
+ state.current.isLoading = false;
+ })
+ .addCase(fetchNotificationRequest.fulfilled, (state, action) => {
+ state.current.isLoading = false;
+ state.current.item = createNotificationRequestFromJSON(action.payload);
+ })
+ .addCase(fetchNotificationsForRequest.fulfilled, (state, action) => {
+ state.current.notifications.isLoading = false;
+ state.current.notifications.items.unshift(
+ ...action.payload.notifications.map(notificationToMap),
+ );
+ state.current.notifications.next ??= action.payload.next ?? null;
+ })
+ .addCase(expandNotificationsForRequest.fulfilled, (state, action) => {
+ state.current.notifications.isLoading = false;
+ state.current.notifications.items.push(
+ ...action.payload.notifications.map(notificationToMap),
+ );
+ state.current.notifications.next = action.payload.next ?? null;
+ })
+ .addMatcher(
+ isAnyOf(
+ fetchNotificationRequests.pending,
+ expandNotificationRequests.pending,
+ ),
+ (state) => {
+ state.isLoading = true;
+ },
+ )
+ .addMatcher(
+ isAnyOf(
+ fetchNotificationRequests.rejected,
+ expandNotificationRequests.rejected,
+ ),
+ (state) => {
+ state.isLoading = false;
+ },
+ )
+ .addMatcher(
+ isAnyOf(
+ acceptNotificationRequest.pending,
+ dismissNotificationRequest.pending,
+ ),
+ (state, action) => {
+ removeRequest(state, action.meta.arg.id);
+ },
+ )
+ .addMatcher(
+ isAnyOf(
+ acceptNotificationRequests.pending,
+ dismissNotificationRequests.pending,
+ ),
+ (state, action) => {
+ action.meta.arg.ids.forEach((id) => {
+ removeRequest(state, id);
+ });
+ },
+ )
+ .addMatcher(
+ isAnyOf(
+ fetchNotificationsForRequest.pending,
+ expandNotificationsForRequest.pending,
+ ),
+ (state) => {
+ state.current.notifications.isLoading = true;
+ },
+ )
+ .addMatcher(
+ isAnyOf(
+ fetchNotificationsForRequest.rejected,
+ expandNotificationsForRequest.rejected,
+ ),
+ (state) => {
+ state.current.notifications.isLoading = false;
+ },
+ );
+ });
diff --git a/app/javascript/mastodon/reducers/notifications.js b/app/javascript/mastodon/reducers/notifications.js
index 79aa5651ff1..622f5e8e884 100644
--- a/app/javascript/mastodon/reducers/notifications.js
+++ b/app/javascript/mastodon/reducers/notifications.js
@@ -16,13 +16,13 @@ import {
import {
fetchMarkers,
} from '../actions/markers';
+import { clearNotifications } from '../actions/notification_groups';
import {
notificationsUpdate,
NOTIFICATIONS_EXPAND_SUCCESS,
NOTIFICATIONS_EXPAND_REQUEST,
NOTIFICATIONS_EXPAND_FAIL,
NOTIFICATIONS_FILTER_SET,
- NOTIFICATIONS_CLEAR,
NOTIFICATIONS_SCROLL_TOP,
NOTIFICATIONS_LOAD_PENDING,
NOTIFICATIONS_MOUNT,
@@ -290,7 +290,7 @@ export default function notifications(state = initialState, action) {
case authorizeFollowRequestSuccess.type:
case rejectFollowRequestSuccess.type:
return filterNotifications(state, [action.payload.id], 'follow_request');
- case NOTIFICATIONS_CLEAR:
+ case clearNotifications.pending.type:
return state.set('items', ImmutableList()).set('pendingItems', ImmutableList()).set('hasMore', false);
case timelineDelete.type:
return deleteByStatus(state, action.payload.statusId);
diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js
index 0e353e0d1b7..e5ff2ff9104 100644
--- a/app/javascript/mastodon/reducers/settings.js
+++ b/app/javascript/mastodon/reducers/settings.js
@@ -1,8 +1,8 @@
import { Map as ImmutableMap, fromJS } from 'immutable';
import { COLUMN_ADD, COLUMN_REMOVE, COLUMN_MOVE, COLUMN_PARAMS_CHANGE } from '../actions/columns';
+import { COMPOSE_LANGUAGE_CHANGE } from '../actions/compose';
import { EMOJI_USE } from '../actions/emojis';
-import { LANGUAGE_USE } from '../actions/languages';
import { LIST_DELETE_SUCCESS, LIST_FETCH_FAIL } from '../actions/lists';
import { NOTIFICATIONS_FILTER_SET } from '../actions/notifications';
import { SETTING_CHANGE, SETTING_SAVE } from '../actions/settings';
@@ -51,6 +51,7 @@ const initialState = ImmutableMap({
dismissPermissionBanner: false,
showUnread: true,
+ minimizeFilteredBanner: false,
shows: ImmutableMap({
follow: true,
@@ -174,7 +175,7 @@ export default function settings(state = initialState, action) {
return changeColumnParams(state, action.uuid, action.path, action.value);
case EMOJI_USE:
return updateFrequentEmojis(state, action.emoji);
- case LANGUAGE_USE:
+ case COMPOSE_LANGUAGE_CHANGE:
return updateFrequentLanguages(state, action.language);
case SETTING_SAVE:
return state.set('saved', true);
diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js
index 2f17fed5fdb..7a4c04c5c7c 100644
--- a/app/javascript/mastodon/reducers/user_lists.js
+++ b/app/javascript/mastodon/reducers/user_lists.js
@@ -1,12 +1,8 @@
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
import {
- DIRECTORY_FETCH_REQUEST,
- DIRECTORY_FETCH_SUCCESS,
- DIRECTORY_FETCH_FAIL,
- DIRECTORY_EXPAND_REQUEST,
- DIRECTORY_EXPAND_SUCCESS,
- DIRECTORY_EXPAND_FAIL,
+ expandDirectory,
+ fetchDirectory
} from 'mastodon/actions/directory';
import {
FEATURED_TAGS_FETCH_REQUEST,
@@ -117,6 +113,7 @@ const normalizeFeaturedTags = (state, path, featuredTags, accountId) => {
}));
};
+/** @type {import('@reduxjs/toolkit').Reducer} */
export default function userLists(state = initialState, action) {
switch(action.type) {
case FOLLOWERS_FETCH_SUCCESS:
@@ -194,16 +191,6 @@ export default function userLists(state = initialState, action) {
case MUTES_FETCH_FAIL:
case MUTES_EXPAND_FAIL:
return state.setIn(['mutes', 'isLoading'], false);
- case DIRECTORY_FETCH_SUCCESS:
- return normalizeList(state, ['directory'], action.accounts, action.next);
- case DIRECTORY_EXPAND_SUCCESS:
- return appendToList(state, ['directory'], action.accounts, action.next);
- case DIRECTORY_FETCH_REQUEST:
- case DIRECTORY_EXPAND_REQUEST:
- return state.setIn(['directory', 'isLoading'], true);
- case DIRECTORY_FETCH_FAIL:
- case DIRECTORY_EXPAND_FAIL:
- return state.setIn(['directory', 'isLoading'], false);
case FEATURED_TAGS_FETCH_SUCCESS:
return normalizeFeaturedTags(state, ['featured_tags', action.id], action.tags, action.id);
case FEATURED_TAGS_FETCH_REQUEST:
@@ -211,6 +198,17 @@ export default function userLists(state = initialState, action) {
case FEATURED_TAGS_FETCH_FAIL:
return state.setIn(['featured_tags', action.id, 'isLoading'], false);
default:
- return state;
+ if(fetchDirectory.fulfilled.match(action))
+ return normalizeList(state, ['directory'], action.payload.accounts, undefined);
+ else if( expandDirectory.fulfilled.match(action))
+ return appendToList(state, ['directory'], action.payload.accounts, undefined);
+ else if(fetchDirectory.pending.match(action) ||
+ expandDirectory.pending.match(action))
+ return state.setIn(['directory', 'isLoading'], true);
+ else if(fetchDirectory.rejected.match(action) ||
+ expandDirectory.rejected.match(action))
+ return state.setIn(['directory', 'isLoading'], false);
+ else
+ return state;
}
}
diff --git a/app/javascript/mastodon/scroll.ts b/app/javascript/mastodon/scroll.ts
index 35e13a4527d..0756edb4cef 100644
--- a/app/javascript/mastodon/scroll.ts
+++ b/app/javascript/mastodon/scroll.ts
@@ -38,13 +38,20 @@ const scroll = (
const isScrollBehaviorSupported =
'scrollBehavior' in document.documentElement.style;
-export const scrollRight = (node: Element, position: number) => {
- if (isScrollBehaviorSupported)
- node.scrollTo({ left: position, behavior: 'smooth' });
- else scroll(node, 'scrollLeft', position);
-};
+export const scrollRight = (node: Element, position: number) =>
+ requestIdleCallback(() => {
+ if (isScrollBehaviorSupported) {
+ node.scrollTo({ left: position, behavior: 'smooth' });
+ } else {
+ scroll(node, 'scrollLeft', position);
+ }
+ });
-export const scrollTop = (node: Element) => {
- if (isScrollBehaviorSupported) node.scrollTo({ top: 0, behavior: 'smooth' });
- else scroll(node, 'scrollTop', 0);
-};
+export const scrollTop = (node: Element) =>
+ requestIdleCallback(() => {
+ if (isScrollBehaviorSupported) {
+ node.scrollTo({ top: 0, behavior: 'smooth' });
+ } else {
+ scroll(node, 'scrollTop', 0);
+ }
+ });
diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js
index bd9b53919c3..10e1b167cac 100644
--- a/app/javascript/mastodon/selectors/index.js
+++ b/app/javascript/mastodon/selectors/index.js
@@ -7,14 +7,16 @@ import { me } from '../initial_state';
export { makeGetAccount } from "./accounts";
-const getFilters = (state, { contextType }) => {
- if (!contextType) return null;
+const getFilters = createSelector([state => state.get('filters'), (_, { contextType }) => contextType], (filters, contextType) => {
+ if (!contextType) {
+ return null;
+ }
- const serverSideType = toServerSideType(contextType);
const now = new Date();
+ const serverSideType = toServerSideType(contextType);
- return state.get('filters').filter((filter) => filter.get('context').includes(serverSideType) && (filter.get('expires_at') === null || filter.get('expires_at') > now));
-};
+ return filters.filter(filter => filter.get('context').includes(serverSideType) && (filter.get('expires_at') === null || filter.get('expires_at') > now));
+});
export const makeGetStatus = () => {
return createSelector(
@@ -73,10 +75,21 @@ const ALERT_DEFAULTS = {
style: false,
};
-export const getAlerts = createSelector(state => state.get('alerts'), alerts =>
+const formatIfNeeded = (intl, message, values) => {
+ if (typeof message === 'object') {
+ return intl.formatMessage(message, values);
+ }
+
+ return message;
+};
+
+export const getAlerts = createSelector([state => state.get('alerts'), (_, { intl }) => intl], (alerts, intl) =>
alerts.map(item => ({
...ALERT_DEFAULTS,
...item,
+ action: formatIfNeeded(intl, item.action, item.values),
+ title: formatIfNeeded(intl, item.title, item.values),
+ message: formatIfNeeded(intl, item.message, item.values),
})).toArray());
export const makeGetNotification = () => createSelector([
diff --git a/app/javascript/mastodon/selectors/notifications.ts b/app/javascript/mastodon/selectors/notifications.ts
new file mode 100644
index 00000000000..ea640406ea1
--- /dev/null
+++ b/app/javascript/mastodon/selectors/notifications.ts
@@ -0,0 +1,97 @@
+import { createSelector } from '@reduxjs/toolkit';
+
+import { compareId } from 'mastodon/compare_id';
+import type { NotificationGroup } from 'mastodon/models/notification_group';
+import type { NotificationGap } from 'mastodon/reducers/notification_groups';
+import type { RootState } from 'mastodon/store';
+
+import {
+ selectSettingsNotificationsExcludedTypes,
+ selectSettingsNotificationsQuickFilterActive,
+ selectSettingsNotificationsQuickFilterShow,
+} from './settings';
+
+const filterNotificationsByAllowedTypes = (
+ showFilterBar: boolean,
+ allowedType: string,
+ excludedTypes: string[],
+ notifications: (NotificationGroup | NotificationGap)[],
+) => {
+ if (!showFilterBar || allowedType === 'all') {
+ // used if user changed the notification settings after loading the notifications from the server
+ // otherwise a list of notifications will come pre-filtered from the backend
+ // we need to turn it off for FilterBar in order not to block ourselves from seeing a specific category
+ return notifications.filter(
+ (item) => item.type === 'gap' || !excludedTypes.includes(item.type),
+ );
+ }
+ return notifications.filter(
+ (item) => item.type === 'gap' || allowedType === item.type,
+ );
+};
+
+export const selectNotificationGroups = createSelector(
+ [
+ selectSettingsNotificationsQuickFilterShow,
+ selectSettingsNotificationsQuickFilterActive,
+ selectSettingsNotificationsExcludedTypes,
+ (state: RootState) => state.notificationGroups.groups,
+ ],
+ filterNotificationsByAllowedTypes,
+);
+
+const selectPendingNotificationGroups = createSelector(
+ [
+ selectSettingsNotificationsQuickFilterShow,
+ selectSettingsNotificationsQuickFilterActive,
+ selectSettingsNotificationsExcludedTypes,
+ (state: RootState) => state.notificationGroups.pendingGroups,
+ ],
+ filterNotificationsByAllowedTypes,
+);
+
+export const selectUnreadNotificationGroupsCount = createSelector(
+ [
+ (s: RootState) => s.notificationGroups.lastReadId,
+ selectNotificationGroups,
+ selectPendingNotificationGroups,
+ ],
+ (notificationMarker, groups, pendingGroups) => {
+ return (
+ groups.filter(
+ (group) =>
+ group.type !== 'gap' &&
+ group.page_max_id &&
+ compareId(group.page_max_id, notificationMarker) > 0,
+ ).length +
+ pendingGroups.filter(
+ (group) =>
+ group.type !== 'gap' &&
+ group.page_max_id &&
+ compareId(group.page_max_id, notificationMarker) > 0,
+ ).length
+ );
+ },
+);
+
+// Whether there is any unread notification according to the user-facing state
+export const selectAnyPendingNotification = createSelector(
+ [
+ (s: RootState) => s.notificationGroups.readMarkerId,
+ selectNotificationGroups,
+ ],
+ (notificationMarker, groups) => {
+ return groups.some(
+ (group) =>
+ group.type !== 'gap' &&
+ group.page_max_id &&
+ compareId(group.page_max_id, notificationMarker) > 0,
+ );
+ },
+);
+
+export const selectPendingNotificationGroupsCount = createSelector(
+ [selectPendingNotificationGroups],
+ (pendingGroups) =>
+ pendingGroups.filter((group) => group.type !== 'gap').length,
+);
diff --git a/app/javascript/mastodon/selectors/settings.ts b/app/javascript/mastodon/selectors/settings.ts
new file mode 100644
index 00000000000..e722ad09112
--- /dev/null
+++ b/app/javascript/mastodon/selectors/settings.ts
@@ -0,0 +1,55 @@
+import { createSelector } from '@reduxjs/toolkit';
+
+import type { RootState } from 'mastodon/store';
+
+/* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access */
+// state.settings is not yet typed, so we disable some ESLint checks for those selectors
+export const selectSettingsNotificationsShows = createSelector(
+ [
+ (state) =>
+ state.settings.getIn(['notifications', 'shows']) as Immutable.Map<
+ string,
+ boolean
+ >,
+ ],
+ (shows) => shows.toJS() as Record,
+);
+
+export const selectSettingsNotificationsExcludedTypes = createSelector(
+ [selectSettingsNotificationsShows],
+ (shows) =>
+ Object.entries(shows)
+ .filter(([_type, enabled]) => !enabled)
+ .map(([type, _enabled]) => type),
+);
+
+export const selectSettingsNotificationsQuickFilterShow = (state: RootState) =>
+ state.settings.getIn(['notifications', 'quickFilter', 'show']) as boolean;
+
+export const selectSettingsNotificationsQuickFilterActive = (
+ state: RootState,
+) => state.settings.getIn(['notifications', 'quickFilter', 'active']) as string;
+
+export const selectSettingsNotificationsQuickFilterAdvanced = (
+ state: RootState,
+) =>
+ state.settings.getIn(['notifications', 'quickFilter', 'advanced']) as boolean;
+
+export const selectSettingsNotificationsShowUnread = (state: RootState) =>
+ state.settings.getIn(['notifications', 'showUnread']) as boolean;
+
+export const selectNeedsNotificationPermission = (state: RootState) =>
+ (state.settings.getIn(['notifications', 'alerts']).includes(true) &&
+ state.notifications.get('browserSupport') &&
+ state.notifications.get('browserPermission') === 'default' &&
+ !state.settings.getIn([
+ 'notifications',
+ 'dismissPermissionBanner',
+ ])) as boolean;
+
+export const selectSettingsNotificationsMinimizeFilteredBanner = (
+ state: RootState,
+) =>
+ state.settings.getIn(['notifications', 'minimizeFilteredBanner']) as boolean;
+
+/* eslint-enable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access */
diff --git a/app/javascript/mastodon/settings.js b/app/javascript/mastodon/settings.js
index f31aee0afc0..f4883dc406c 100644
--- a/app/javascript/mastodon/settings.js
+++ b/app/javascript/mastodon/settings.js
@@ -14,7 +14,7 @@ export default class Settings {
const encodedData = JSON.stringify(data);
localStorage.setItem(key, encodedData);
return data;
- } catch (e) {
+ } catch {
return null;
}
}
@@ -24,7 +24,7 @@ export default class Settings {
try {
const rawData = localStorage.getItem(key);
return JSON.parse(rawData);
- } catch (e) {
+ } catch {
return null;
}
}
@@ -35,7 +35,8 @@ export default class Settings {
const key = this.generateKey(id);
try {
localStorage.removeItem(key);
- } catch (e) {
+ } catch {
+ // ignore if the key is not found
}
}
return data;
diff --git a/app/javascript/mastodon/store/middlewares/errors.ts b/app/javascript/mastodon/store/middlewares/errors.ts
index e77cec34ed9..3ad3844d5b7 100644
--- a/app/javascript/mastodon/store/middlewares/errors.ts
+++ b/app/javascript/mastodon/store/middlewares/errors.ts
@@ -30,7 +30,7 @@ function isActionWithmaybeAlertParams(
return isAction(action);
}
-// eslint-disable-next-line @typescript-eslint/ban-types -- we need to use `{}` here to ensure the dispatch types can be merged
+// eslint-disable-next-line @typescript-eslint/no-empty-object-type -- we need to use `{}` here to ensure the dispatch types can be merged
export const errorsMiddleware: Middleware<{}, RootState> =
({ dispatch }) =>
(next) =>
diff --git a/app/javascript/mastodon/store/middlewares/loading_bar.ts b/app/javascript/mastodon/store/middlewares/loading_bar.ts
index d259be899b1..33d99f98526 100644
--- a/app/javascript/mastodon/store/middlewares/loading_bar.ts
+++ b/app/javascript/mastodon/store/middlewares/loading_bar.ts
@@ -48,8 +48,9 @@ export const loadingBarMiddleware = (
let isRejected = false;
if (
- isAsyncThunkAction(action)
- // TODO: once we get the first use-case for it, add a check for skipLoading
+ isAsyncThunkAction(action) &&
+ 'useLoadingBar' in action.meta &&
+ action.meta.useLoadingBar
) {
if (isThunkActionPending(action)) isPending = true;
else if (isThunkActionFulfilled(action)) isFulfilled = true;
diff --git a/app/javascript/mastodon/store/middlewares/sounds.ts b/app/javascript/mastodon/store/middlewares/sounds.ts
index 91407b1ec0a..bb3a4aa4740 100644
--- a/app/javascript/mastodon/store/middlewares/sounds.ts
+++ b/app/javascript/mastodon/store/middlewares/sounds.ts
@@ -51,7 +51,7 @@ const play = (audio: HTMLAudioElement) => {
};
export const soundsMiddleware = (): Middleware<
- // eslint-disable-next-line @typescript-eslint/ban-types -- we need to use `{}` here to ensure the dispatch types can be merged
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- we need to use `{}` here to ensure the dispatch types can be merged
{},
RootState
> => {
diff --git a/app/javascript/mastodon/store/typed_functions.ts b/app/javascript/mastodon/store/typed_functions.ts
index e5820149dbd..9fcc90c61b2 100644
--- a/app/javascript/mastodon/store/typed_functions.ts
+++ b/app/javascript/mastodon/store/typed_functions.ts
@@ -1,9 +1,8 @@
+import type { GetThunkAPI } from '@reduxjs/toolkit';
import { createAsyncThunk } from '@reduxjs/toolkit';
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
import { useDispatch, useSelector } from 'react-redux';
-import type { BaseThunkAPI } from '@reduxjs/toolkit/dist/createAsyncThunk';
-
import type { AppDispatch, RootState } from './store';
export const useAppDispatch = useDispatch.withTypes();
@@ -16,7 +15,7 @@ export interface AsyncThunkRejectValue {
}
interface AppMeta {
- skipLoading?: boolean;
+ useLoadingBar?: boolean;
}
export const createAppAsyncThunk = createAsyncThunk.withTypes<{
@@ -25,34 +24,29 @@ export const createAppAsyncThunk = createAsyncThunk.withTypes<{
rejectValue: AsyncThunkRejectValue;
}>();
-type AppThunkApi = Pick<
- BaseThunkAPI<
- RootState,
- unknown,
- AppDispatch,
- AsyncThunkRejectValue,
- AppMeta,
- AppMeta
- >,
- 'getState' | 'dispatch'
->;
-
-interface AppThunkOptions {
- skipLoading?: boolean;
-}
-
-const createBaseAsyncThunk = createAsyncThunk.withTypes<{
+interface AppThunkConfig {
state: RootState;
dispatch: AppDispatch;
rejectValue: AsyncThunkRejectValue;
fulfilledMeta: AppMeta;
rejectedMeta: AppMeta;
-}>();
+}
+type AppThunkApi = Pick, 'getState' | 'dispatch'>;
+
+interface AppThunkOptions {
+ useLoadingBar?: boolean;
+ condition?: (
+ arg: Arg,
+ { getState }: { getState: AppThunkApi['getState'] },
+ ) => boolean;
+}
+
+const createBaseAsyncThunk = createAsyncThunk.withTypes();
export function createThunk(
name: string,
creator: (arg: Arg, api: AppThunkApi) => Returned | Promise,
- options: AppThunkOptions = {},
+ options: AppThunkOptions = {},
) {
return createBaseAsyncThunk(
name,
@@ -64,17 +58,23 @@ export function createThunk(
const result = await creator(arg, { dispatch, getState });
return fulfillWithValue(result, {
- skipLoading: options.skipLoading,
+ useLoadingBar: options.useLoadingBar,
});
} catch (error) {
- return rejectWithValue({ error }, { skipLoading: true });
+ return rejectWithValue(
+ { error },
+ {
+ useLoadingBar: options.useLoadingBar,
+ },
+ );
}
},
{
getPendingMeta() {
- if (options.skipLoading) return { skipLoading: true };
+ if (options.useLoadingBar) return { useLoadingBar: true };
return {};
},
+ condition: options.condition,
},
);
}
@@ -101,7 +101,7 @@ type ArgsType = Record | undefined;
export function createDataLoadingThunk(
name: string,
loadData: (args: Args) => Promise,
- thunkOptions?: AppThunkOptions,
+ thunkOptions?: AppThunkOptions,
): ReturnType>;
// Overload when the `onData` method returns discardLoadDataInPayload, then the payload is empty
@@ -109,17 +109,19 @@ export function createDataLoadingThunk(
name: string,
loadData: LoadData,
onDataOrThunkOptions?:
- | AppThunkOptions
+ | AppThunkOptions
| OnData,
- thunkOptions?: AppThunkOptions,
+ thunkOptions?: AppThunkOptions,
): ReturnType>;
// Overload when the `onData` method returns nothing, then the mayload is the `onData` result
export function createDataLoadingThunk(
name: string,
loadData: LoadData,
- onDataOrThunkOptions?: AppThunkOptions | OnData,
- thunkOptions?: AppThunkOptions,
+ onDataOrThunkOptions?:
+ | AppThunkOptions
+ | OnData,
+ thunkOptions?: AppThunkOptions,
): ReturnType>;
// Overload when there is an `onData` method returning something
@@ -131,9 +133,9 @@ export function createDataLoadingThunk<
name: string,
loadData: LoadData,
onDataOrThunkOptions?:
- | AppThunkOptions
+ | AppThunkOptions
| OnData,
- thunkOptions?: AppThunkOptions,
+ thunkOptions?: AppThunkOptions,
): ReturnType>;
/**
@@ -158,7 +160,8 @@ export function createDataLoadingThunk<
* You can also omit this parameter and pass `thunkOptions` directly
* @param maybeThunkOptions
* Additional Mastodon specific options for the thunk. Currently supports:
- * - `skipLoading` to avoid showing the loading bar when the request is in progress
+ * - `useLoadingBar` to display a loading bar while this action is pending. Defaults to true.
+ * - `condition` is passed to `createAsyncThunk` (https://redux-toolkit.js.org/api/createAsyncThunk#canceling-before-execution)
* @returns The created thunk
*/
export function createDataLoadingThunk<
@@ -169,12 +172,12 @@ export function createDataLoadingThunk<
name: string,
loadData: LoadData,
onDataOrThunkOptions?:
- | AppThunkOptions
+ | AppThunkOptions
| OnData,
- maybeThunkOptions?: AppThunkOptions,
+ maybeThunkOptions?: AppThunkOptions,
) {
let onData: OnData | undefined;
- let thunkOptions: AppThunkOptions | undefined;
+ let thunkOptions: AppThunkOptions | undefined;
if (typeof onDataOrThunkOptions === 'function') onData = onDataOrThunkOptions;
else if (typeof onDataOrThunkOptions === 'object')
@@ -208,6 +211,9 @@ export function createDataLoadingThunk<
return undefined as Returned;
else return result;
},
- thunkOptions,
+ {
+ useLoadingBar: thunkOptions?.useLoadingBar ?? true,
+ condition: thunkOptions?.condition,
+ },
);
}
diff --git a/app/javascript/mastodon/stream.js b/app/javascript/mastodon/stream.js
index 40d69136a84..59b2fd75828 100644
--- a/app/javascript/mastodon/stream.js
+++ b/app/javascript/mastodon/stream.js
@@ -209,7 +209,6 @@ const KNOWN_EVENT_TYPES = [
'notification',
'conversation',
'filters_changed',
- 'encrypted_message',
'announcement',
'announcement.delete',
'announcement.reaction',
diff --git a/app/javascript/mastodon/test_helpers.tsx b/app/javascript/mastodon/test_helpers.tsx
index 93b5a8453ac..8a6f5a33776 100644
--- a/app/javascript/mastodon/test_helpers.tsx
+++ b/app/javascript/mastodon/test_helpers.tsx
@@ -2,14 +2,27 @@ import { IntlProvider } from 'react-intl';
import { MemoryRouter } from 'react-router';
+import type { RenderOptions } from '@testing-library/react';
// eslint-disable-next-line import/no-extraneous-dependencies
import { render as rtlRender } from '@testing-library/react';
import { IdentityContext } from './identity_context';
+beforeEach(() => {
+ global.requestIdleCallback = jest
+ .fn()
+ .mockImplementation((fn: () => void) => {
+ fn();
+ });
+});
+
function render(
ui: React.ReactElement,
- { locale = 'en', signedIn = true, ...renderOptions } = {},
+ {
+ locale = 'en',
+ signedIn = true,
+ ...renderOptions
+ }: RenderOptions & { locale?: string; signedIn?: boolean } = {},
) {
const fakeIdentity = {
signedIn: signedIn,
diff --git a/app/javascript/mastodon/utils/debounce.ts b/app/javascript/mastodon/utils/debounce.ts
new file mode 100644
index 00000000000..224a5389844
--- /dev/null
+++ b/app/javascript/mastodon/utils/debounce.ts
@@ -0,0 +1,23 @@
+import { debounce } from 'lodash';
+
+import type { AppDispatch } from 'mastodon/store';
+
+export const debounceWithDispatchAndArguments = (
+ fn: (dispatch: AppDispatch, ...args: T[]) => void,
+ { delay = 100 },
+) => {
+ let argumentBuffer: T[] = [];
+ let dispatchBuffer: AppDispatch;
+
+ const wrapped = debounce(() => {
+ const tmpBuffer = argumentBuffer;
+ argumentBuffer = [];
+ fn(dispatchBuffer, ...tmpBuffer);
+ }, delay);
+
+ return (dispatch: AppDispatch, ...args: T[]) => {
+ dispatchBuffer = dispatch;
+ argumentBuffer.push(...args);
+ wrapped();
+ };
+};
diff --git a/app/javascript/mastodon/utils/log_out.ts b/app/javascript/mastodon/utils/log_out.ts
index b08a61a6a28..f8e98f1be96 100644
--- a/app/javascript/mastodon/utils/log_out.ts
+++ b/app/javascript/mastodon/utils/log_out.ts
@@ -1,36 +1,20 @@
-export const logOut = () => {
- const form = document.createElement('form');
+import api from 'mastodon/api';
- const methodInput = document.createElement('input');
- methodInput.setAttribute('name', '_method');
- methodInput.setAttribute('value', 'delete');
- methodInput.setAttribute('type', 'hidden');
- form.appendChild(methodInput);
+export async function logOut() {
+ try {
+ const response = await api(false).delete<{ redirect_to?: string }>(
+ '/auth/sign_out',
+ { headers: { Accept: 'application/json' }, withCredentials: true },
+ );
- const csrfToken = document.querySelector(
- 'meta[name=csrf-token]',
- );
-
- const csrfParam = document.querySelector(
- 'meta[name=csrf-param]',
- );
-
- if (csrfParam && csrfToken) {
- const csrfInput = document.createElement('input');
- csrfInput.setAttribute('name', csrfParam.content);
- csrfInput.setAttribute('value', csrfToken.content);
- csrfInput.setAttribute('type', 'hidden');
- form.appendChild(csrfInput);
+ if (response.status === 200 && response.data.redirect_to)
+ window.location.href = response.data.redirect_to;
+ else
+ console.error(
+ 'Failed to log out, got an unexpected non-redirect response from the server',
+ response,
+ );
+ } catch (error) {
+ console.error('Failed to log out, response was an error', error);
}
-
- const submitButton = document.createElement('input');
- submitButton.setAttribute('type', 'submit');
- form.appendChild(submitButton);
-
- form.method = 'post';
- form.action = '/auth/sign_out';
- form.style.display = 'none';
-
- document.body.appendChild(form);
- submitButton.click();
-};
+}
diff --git a/app/javascript/material-icons/400-24px/arrow_left_alt.svg b/app/javascript/material-icons/400-24px/arrow_left_alt.svg
new file mode 100644
index 00000000000..a2b57a7f3c1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/arrow_left_alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/breaking_news.svg b/app/javascript/material-icons/400-24px/breaking_news.svg
new file mode 100644
index 00000000000..d7dd0c12f47
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/breaking_news.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/captive_portal.svg b/app/javascript/material-icons/400-24px/captive_portal.svg
new file mode 100644
index 00000000000..1f0f09c7734
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/captive_portal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/chat.svg b/app/javascript/material-icons/400-24px/chat.svg
new file mode 100644
index 00000000000..7369e6f847a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/chat.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/chat_bubble.svg b/app/javascript/material-icons/400-24px/chat_bubble.svg
new file mode 100644
index 00000000000..7d210b46086
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/chat_bubble.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/check_indeterminate_small-fill.svg b/app/javascript/material-icons/400-24px/check_indeterminate_small-fill.svg
new file mode 100644
index 00000000000..d78d33e6567
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/check_indeterminate_small-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/check_indeterminate_small.svg b/app/javascript/material-icons/400-24px/check_indeterminate_small.svg
new file mode 100644
index 00000000000..d78d33e6567
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/check_indeterminate_small.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/cloud.svg b/app/javascript/material-icons/400-24px/cloud.svg
new file mode 100644
index 00000000000..75b4e957fc4
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/cloud.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/cloud_download.svg b/app/javascript/material-icons/400-24px/cloud_download.svg
new file mode 100644
index 00000000000..2fc3717ff9e
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/cloud_download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/cloud_sync.svg b/app/javascript/material-icons/400-24px/cloud_sync.svg
new file mode 100644
index 00000000000..dbf6adc0001
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/cloud_sync.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/cloud_upload.svg b/app/javascript/material-icons/400-24px/cloud_upload.svg
new file mode 100644
index 00000000000..5e1a4b9aef6
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/cloud_upload.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/code.svg b/app/javascript/material-icons/400-24px/code.svg
new file mode 100644
index 00000000000..5bdc338f7f5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/code.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/comment.svg b/app/javascript/material-icons/400-24px/comment.svg
new file mode 100644
index 00000000000..da1ae0392e7
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/comment.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/computer.svg b/app/javascript/material-icons/400-24px/computer.svg
new file mode 100644
index 00000000000..8c5bd9110e1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/computer.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/contact_mail.svg b/app/javascript/material-icons/400-24px/contact_mail.svg
new file mode 100644
index 00000000000..1ae26cc4d15
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/contact_mail.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/database.svg b/app/javascript/material-icons/400-24px/database.svg
new file mode 100644
index 00000000000..54ca2f4e560
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/database.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/desktop_mac.svg b/app/javascript/material-icons/400-24px/desktop_mac.svg
new file mode 100644
index 00000000000..5d2a07a3698
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/desktop_mac.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/diamond.svg b/app/javascript/material-icons/400-24px/diamond.svg
new file mode 100644
index 00000000000..26f4814b443
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/diamond.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/feedback-fill.svg b/app/javascript/material-icons/400-24px/feedback-fill.svg
new file mode 100644
index 00000000000..7edf5667b0a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/feedback-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/feedback.svg b/app/javascript/material-icons/400-24px/feedback.svg
new file mode 100644
index 00000000000..b001b512c53
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/feedback.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/filter_alt.svg b/app/javascript/material-icons/400-24px/filter_alt.svg
new file mode 100644
index 00000000000..0294cf1da53
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/filter_alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/fit_screen-fill.svg b/app/javascript/material-icons/400-24px/fit_screen-fill.svg
new file mode 100644
index 00000000000..a2ed8ca581a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/fit_screen-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/fit_screen.svg b/app/javascript/material-icons/400-24px/fit_screen.svg
new file mode 100644
index 00000000000..d8d06f6e8b3
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/fit_screen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/format_paragraph.svg b/app/javascript/material-icons/400-24px/format_paragraph.svg
new file mode 100644
index 00000000000..657b483c00c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/format_paragraph.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/groups.svg b/app/javascript/material-icons/400-24px/groups.svg
new file mode 100644
index 00000000000..0e795eb301d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/groups.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/hide_source.svg b/app/javascript/material-icons/400-24px/hide_source.svg
new file mode 100644
index 00000000000..d103ed770a5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/hide_source.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/hourglass.svg b/app/javascript/material-icons/400-24px/hourglass.svg
new file mode 100644
index 00000000000..07667a06e49
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/hourglass.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/inbox.svg b/app/javascript/material-icons/400-24px/inbox.svg
new file mode 100644
index 00000000000..427817958c1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/inbox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/key.svg b/app/javascript/material-icons/400-24px/key.svg
new file mode 100644
index 00000000000..bba7f1de9d5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/key.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/keyboard_double_arrow_down.svg b/app/javascript/material-icons/400-24px/keyboard_double_arrow_down.svg
new file mode 100644
index 00000000000..45b6e420f46
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/keyboard_double_arrow_down.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/list.svg b/app/javascript/material-icons/400-24px/list.svg
new file mode 100644
index 00000000000..457a820ab17
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/list.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/mail.svg b/app/javascript/material-icons/400-24px/mail.svg
new file mode 100644
index 00000000000..a92ea7b198a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/mail.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/manufacturing.svg b/app/javascript/material-icons/400-24px/manufacturing.svg
new file mode 100644
index 00000000000..e0946f5ba52
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/manufacturing.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/mood.svg b/app/javascript/material-icons/400-24px/mood.svg
new file mode 100644
index 00000000000..27b35342448
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/mood.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/person_alert-fill.svg b/app/javascript/material-icons/400-24px/person_alert-fill.svg
new file mode 100644
index 00000000000..ddbecc60537
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/person_alert-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/person_alert.svg b/app/javascript/material-icons/400-24px/person_alert.svg
new file mode 100644
index 00000000000..292ea321547
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/person_alert.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/photo_camera.svg b/app/javascript/material-icons/400-24px/photo_camera.svg
new file mode 100644
index 00000000000..4621435ce09
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/photo_camera.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/power.svg b/app/javascript/material-icons/400-24px/power.svg
new file mode 100644
index 00000000000..023a3a31daf
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/power.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/power_off.svg b/app/javascript/material-icons/400-24px/power_off.svg
new file mode 100644
index 00000000000..25edd4de108
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/power_off.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/radio_button_checked.svg b/app/javascript/material-icons/400-24px/radio_button_checked.svg
new file mode 100644
index 00000000000..a8ab2c9b9c3
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/radio_button_checked.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/radio_button_unchecked.svg b/app/javascript/material-icons/400-24px/radio_button_unchecked.svg
new file mode 100644
index 00000000000..37665285d5e
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/radio_button_unchecked.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/report.svg b/app/javascript/material-icons/400-24px/report.svg
new file mode 100644
index 00000000000..f281f0e1fa8
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/report.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/safety_check.svg b/app/javascript/material-icons/400-24px/safety_check.svg
new file mode 100644
index 00000000000..f4eab46fb75
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/safety_check.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/save.svg b/app/javascript/material-icons/400-24px/save.svg
new file mode 100644
index 00000000000..a86028d9955
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/save.svg
@@ -0,0 +1 @@
+
diff --git a/app/javascript/material-icons/400-24px/shield_question-fill.svg b/app/javascript/material-icons/400-24px/shield_question-fill.svg
new file mode 100644
index 00000000000..c647567a00d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/shield_question-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/shield_question.svg b/app/javascript/material-icons/400-24px/shield_question.svg
new file mode 100644
index 00000000000..342ac0800e5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/shield_question.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/smartphone.svg b/app/javascript/material-icons/400-24px/smartphone.svg
new file mode 100644
index 00000000000..fa56825488f
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/smartphone.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/speed.svg b/app/javascript/material-icons/400-24px/speed.svg
new file mode 100644
index 00000000000..ceb855c684f
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/speed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/sync_alt.svg b/app/javascript/material-icons/400-24px/sync_alt.svg
new file mode 100644
index 00000000000..a3bbb26a7a3
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/sync_alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/tablet.svg b/app/javascript/material-icons/400-24px/tablet.svg
new file mode 100644
index 00000000000..09a5fe6bb1a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/tablet.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/toggle_off.svg b/app/javascript/material-icons/400-24px/toggle_off.svg
new file mode 100644
index 00000000000..dcef49f69c1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/toggle_off.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/toggle_on.svg b/app/javascript/material-icons/400-24px/toggle_on.svg
new file mode 100644
index 00000000000..943b6e6d332
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/toggle_on.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/trending_up.svg b/app/javascript/material-icons/400-24px/trending_up.svg
new file mode 100644
index 00000000000..06f9ba20639
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/trending_up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss
index 0dd573da9ba..465b748078f 100644
--- a/app/javascript/styles/application.scss
+++ b/app/javascript/styles/application.scss
@@ -11,7 +11,6 @@
@import 'mastodon/widgets';
@import 'mastodon/forms';
@import 'mastodon/accounts';
-@import 'mastodon/statuses';
@import 'mastodon/components';
@import 'mastodon/polls';
@import 'mastodon/modal';
diff --git a/app/javascript/styles/contrast/variables.scss b/app/javascript/styles/contrast/variables.scss
index e38d24b271c..766591ba408 100644
--- a/app/javascript/styles/contrast/variables.scss
+++ b/app/javascript/styles/contrast/variables.scss
@@ -1,10 +1,10 @@
// Dependent colors
$black: #000000;
-$classic-base-color: #282c37;
-$classic-primary-color: #9baec8;
-$classic-secondary-color: #d9e1e8;
-$classic-highlight-color: #6364ff;
+$classic-base-color: hsl(240deg, 16%, 19%);
+$classic-primary-color: hsl(240deg, 29%, 70%);
+$classic-secondary-color: hsl(255deg, 25%, 88%);
+$classic-highlight-color: hsl(240deg, 100%, 69%);
$ui-base-color: $classic-base-color !default;
$ui-primary-color: $classic-primary-color !default;
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 07e9d9868b4..45da56994c0 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -1,10 +1,6 @@
// Notes!
// Sass color functions, "darken" and "lighten" are automatically replaced.
-html {
- scrollbar-color: $ui-base-color rgba($ui-base-color, 0.25);
-}
-
.simple_form .button.button-tertiary {
color: $highlight-text-color;
}
@@ -23,7 +19,7 @@ html {
// Change default background colors of columns
.interaction-modal {
background: $white;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
}
.rules-list li::before {
@@ -48,8 +44,8 @@ html {
}
}
-.account__header__bar .avatar .account__avatar {
- border-color: $white;
+.icon-button:disabled {
+ color: darken($action-button-color, 25%);
}
.getting-started__footer a {
@@ -71,8 +67,8 @@ html {
}
.getting-started .navigation-bar {
- border-top: 1px solid lighten($ui-base-color, 8%);
- border-bottom: 1px solid lighten($ui-base-color, 8%);
+ border-top: 1px solid var(--background-border-color);
+ border-bottom: 1px solid var(--background-border-color);
@media screen and (max-width: $no-gap-breakpoint) {
border-top: 0;
@@ -84,7 +80,7 @@ html {
.setting-text,
.report-dialog-modal__textarea,
.audio-player {
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
}
.report-dialog-modal .dialog-option .poll__input {
@@ -136,7 +132,6 @@ html {
.actions-modal ul li:not(:empty) a:focus button,
.actions-modal ul li:not(:empty) a:hover,
.actions-modal ul li:not(:empty) a:hover button,
-.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,
.simple_form .block-button,
.simple_form .button,
.simple_form button {
@@ -152,28 +147,6 @@ html {
border-top-color: lighten($ui-base-color, 4%);
}
-// Change the background colors of modals
-.actions-modal,
-.boost-modal,
-.confirmation-modal,
-.mute-modal,
-.block-modal,
-.report-modal,
-.report-dialog-modal,
-.embed-modal,
-.error-modal,
-.onboarding-modal,
-.compare-history-modal,
-.report-modal__comment .setting-text__wrapper,
-.report-modal__comment .setting-text,
-.announcements,
-.picture-in-picture__header,
-.picture-in-picture__footer,
-.reactions-bar__item {
- background: $white;
- border: 1px solid lighten($ui-base-color, 8%);
-}
-
.reactions-bar__item:hover,
.reactions-bar__item:focus,
.reactions-bar__item:active {
@@ -203,20 +176,6 @@ html {
color: $white;
}
-.report-modal__comment {
- border-right-color: lighten($ui-base-color, 8%);
-}
-
-.report-modal__container {
- border-top-color: lighten($ui-base-color, 8%);
-}
-
-.column-header__collapsible-inner {
- background: darken($ui-base-color, 4%);
- border: 1px solid lighten($ui-base-color, 8%);
- border-bottom: 0;
-}
-
.column-settings__hashtags .column-select__option {
color: $white;
}
@@ -255,7 +214,7 @@ html {
.embed-modal .embed-modal__container .embed-modal__html {
background: $white;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
&:focus {
border-color: lighten($ui-base-color, 12%);
@@ -294,25 +253,7 @@ html {
.directory__tag > a,
.directory__tag > div {
background: $white;
- border: 1px solid lighten($ui-base-color, 8%);
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border-left: 0;
- border-right: 0;
- border-top: 0;
- }
-}
-
-.simple_form {
- input[type='text'],
- input[type='number'],
- input[type='email'],
- input[type='password'],
- textarea {
- &:hover {
- border-color: lighten($ui-base-color, 12%);
- }
- }
+ border: 1px solid var(--background-border-color);
}
.picture-in-picture-placeholder {
@@ -327,10 +268,6 @@ html {
&:focus {
background: $ui-base-color;
}
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border: 0;
- }
}
.batch-table {
@@ -342,7 +279,7 @@ html {
}
.activity-stream {
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
&--under-tabs {
border-top: 0;
@@ -407,6 +344,22 @@ html {
color: $ui-highlight-color;
background-color: rgba($ui-highlight-color, 0.1);
}
+
+ input[type='text'],
+ input[type='number'],
+ input[type='email'],
+ input[type='password'],
+ input[type='url'],
+ input[type='datetime-local'],
+ textarea {
+ background: darken($ui-base-color, 10%);
+ }
+
+ select {
+ background: darken($ui-base-color, 10%)
+ url("data:image/svg+xml;utf8,")
+ no-repeat right 8px center / auto 14px;
+ }
}
.compose-form .compose-form__warning {
@@ -431,9 +384,6 @@ html {
border-color: transparent transparent $white;
}
-.hero-widget,
-.moved-account-widget,
-.memoriam-widget,
.activity-stream,
.nothing-here,
.directory__tag > a,
@@ -445,8 +395,24 @@ html {
box-shadow: none;
}
+.card {
+ &__img {
+ background: darken($ui-base-color, 10%);
+ }
+
+ & > a {
+ &:hover,
+ &:active,
+ &:focus {
+ .card__bar {
+ background: darken($ui-base-color, 10%);
+ }
+ }
+ }
+}
+
.mute-modal select {
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
background: $simple-background-color
url("data:image/svg+xml;utf8,")
no-repeat right 8px center / auto 16px;
@@ -483,6 +449,7 @@ html {
.compose-form .autosuggest-textarea__textarea,
.compose-form__highlightable,
+.autosuggest-textarea__suggestions,
.search__input,
.search__popout,
.emoji-mart-search input,
@@ -503,3 +470,68 @@ html {
.inline-follow-suggestions__body__scroll-button__icon {
color: $white;
}
+
+a.sparkline {
+ &:hover,
+ &:focus,
+ &:active {
+ background: darken($ui-base-color, 10%);
+ }
+}
+
+.dashboard__counters {
+ & > div {
+ & > a {
+ &:hover,
+ &:focus,
+ &:active {
+ background: darken($ui-base-color, 10%);
+ }
+ }
+ }
+}
+
+.directory {
+ &__tag {
+ & > a {
+ &:hover,
+ &:focus,
+ &:active {
+ background: darken($ui-base-color, 10%);
+ }
+ }
+ }
+}
+
+.strike-entry {
+ &:hover,
+ &:focus,
+ &:active {
+ background: darken($ui-base-color, 10%);
+ }
+}
+
+.setting-text {
+ background: darken($ui-base-color, 10%);
+}
+
+.report-dialog-modal__textarea {
+ background: darken($ui-base-color, 10%);
+}
+
+.autosuggest-account {
+ .display-name__account {
+ color: $dark-text-color;
+ }
+}
+
+@supports not selector(::-webkit-scrollbar) {
+ html {
+ scrollbar-color: rgba($action-button-color, 0.25)
+ var(--background-border-color);
+ }
+}
+
+::-webkit-scrollbar-thumb {
+ opacity: 0.25;
+}
diff --git a/app/javascript/styles/mastodon-light/variables.scss b/app/javascript/styles/mastodon-light/variables.scss
index 09a75a834b1..76bdc4022e3 100644
--- a/app/javascript/styles/mastodon-light/variables.scss
+++ b/app/javascript/styles/mastodon-light/variables.scss
@@ -1,27 +1,29 @@
+@use 'sass:color';
+
// Dependent colors
$black: #000000;
$white: #ffffff;
-$classic-base-color: #282c37;
-$classic-primary-color: #9baec8;
-$classic-secondary-color: #d9e1e8;
-$classic-highlight-color: #6364ff;
+$classic-base-color: hsl(240deg, 16%, 19%);
+$classic-primary-color: hsl(240deg, 29%, 70%);
+$classic-secondary-color: hsl(255deg, 25%, 88%);
+$classic-highlight-color: hsl(240deg, 100%, 69%);
-$blurple-600: #563acc; // Iris
-$blurple-500: #6364ff; // Brand purple
-$blurple-300: #858afa; // Faded Blue
-$grey-600: #4e4c5a; // Trout
-$grey-100: #dadaf3; // Topaz
+$blurple-600: hsl(252deg, 59%, 51%); // Iris
+$blurple-500: hsl(240deg, 100%, 69%); // Brand purple
+$blurple-300: hsl(237deg, 92%, 75%); // Faded Blue
+$grey-600: hsl(240deg, 8%, 33%); // Trout
+$grey-100: hsl(240deg, 51%, 90%); // Topaz
// Differences
-$success-green: lighten(#3c754d, 8%);
+$success-green: lighten(hsl(138deg, 32%, 35%), 8%);
$base-overlay-background: $white !default;
$valid-value-color: $success-green !default;
$ui-base-color: $classic-secondary-color !default;
-$ui-base-lighter-color: #b0c0cf;
-$ui-primary-color: #9bcbed;
+$ui-base-lighter-color: hsl(250deg, 24%, 75%);
+$ui-primary-color: $classic-primary-color !default;
$ui-secondary-color: $classic-base-color !default;
$ui-highlight-color: $classic-highlight-color !default;
@@ -35,32 +37,43 @@ $ui-button-tertiary-border-color: $blurple-500 !default;
$primary-text-color: $black !default;
$darker-text-color: $classic-base-color !default;
$highlight-text-color: $ui-highlight-color !default;
-$dark-text-color: #444b5d;
-$action-button-color: #606984;
+$dark-text-color: hsl(240deg, 16%, 32%);
+$action-button-color: hsl(240deg, 16%, 45%);
$inverted-text-color: $black !default;
$lighter-text-color: $classic-base-color !default;
-$light-text-color: #444b5d;
+$light-text-color: hsl(240deg, 16%, 32%);
// Newly added colors
$account-background-color: $white !default;
// Invert darkened and lightened colors
@function darken($color, $amount) {
- @return hsl(hue($color), saturation($color), lightness($color) + $amount);
+ @return hsl(
+ hue($color),
+ color.channel($color, 'saturation', $space: hsl),
+ color.channel($color, 'lightness', $space: hsl) + $amount
+ );
}
@function lighten($color, $amount) {
- @return hsl(hue($color), saturation($color), lightness($color) - $amount);
+ @return hsl(
+ hue($color),
+ color.channel($color, 'saturation', $space: hsl),
+ color.channel($color, 'lightness', $space: hsl) - $amount
+ );
}
$emojis-requiring-inversion: 'chains';
-.theme-mastodon-light {
- --dropdown-border-color: #d9e1e8;
+body {
+ --dropdown-border-color: hsl(240deg, 25%, 88%);
--dropdown-background-color: #fff;
- --background-border-color: #d9e1e8;
+ --modal-border-color: hsl(240deg, 25%, 88%);
+ --modal-background-color: var(--background-color-tint);
+ --background-border-color: hsl(240deg, 25%, 88%);
--background-color: #fff;
- --background-color-tint: rgba(255, 255, 255, 90%);
+ --background-color-tint: rgba(255, 255, 255, 80%);
--background-filter: blur(10px);
+ --on-surface-color: #{transparentize($ui-base-color, 0.65)};
}
diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss
index d7f8586dd29..c2e4acba4d6 100644
--- a/app/javascript/styles/mastodon/_mixins.scss
+++ b/app/javascript/styles/mastodon/_mixins.scss
@@ -1,16 +1,3 @@
-@mixin avatar-radius {
- border-radius: 4px;
- background: transparent no-repeat;
- background-position: 50%;
- background-clip: padding-box;
-}
-
-@mixin avatar-size($size: 48px) {
- width: $size;
- height: $size;
- background-size: $size $size;
-}
-
@mixin search-input {
outline: 0;
box-sizing: border-box;
@@ -20,7 +7,7 @@
background: $ui-base-color;
color: $darker-text-color;
border-radius: 4px;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
font-size: 17px;
line-height: normal;
margin: 0;
diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index 80d6c13cef7..c769c88f75a 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -10,7 +10,7 @@
&:active,
&:focus {
.card__bar {
- background: lighten($ui-base-color, 8%);
+ background: $ui-base-color;
}
}
}
@@ -18,7 +18,9 @@
&__img {
height: 130px;
position: relative;
- background: darken($ui-base-color, 12%);
+ background: $ui-base-color;
+ border: 1px solid var(--background-border-color);
+ border-bottom: none;
img {
display: block;
@@ -39,7 +41,9 @@
display: flex;
justify-content: flex-start;
align-items: center;
- background: lighten($ui-base-color, 4%);
+ background: var(--background-color);
+ border: 1px solid var(--background-border-color);
+ border-top: none;
.avatar {
flex: 0 0 auto;
@@ -62,7 +66,7 @@
margin-inline-start: 15px;
text-align: start;
- i[data-hidden] {
+ svg[data-hidden] {
display: none;
}
@@ -126,21 +130,11 @@
.older {
float: left;
padding-inline-start: 0;
-
- .fa {
- display: inline-block;
- margin-inline-end: 5px;
- }
}
.newer {
float: right;
padding-inline-end: 0;
-
- .fa {
- display: inline-block;
- margin-inline-start: 5px;
- }
}
.disabled {
@@ -346,6 +340,10 @@
color: $primary-text-color;
font-weight: 700;
}
+
+ .warning-hint {
+ font-weight: normal !important;
+ }
}
&__body {
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index 06a3b520216..120bad27ed9 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -1,7 +1,7 @@
@use 'sass:math';
-$no-columns-breakpoint: 600px;
-$sidebar-width: 240px;
+$no-columns-breakpoint: 890px;
+$sidebar-width: 300px;
$content-width: 840px;
.admin-wrapper {
@@ -13,7 +13,7 @@ $content-width: 840px;
.icon {
width: 16px;
height: 16px;
- vertical-align: middle;
+ vertical-align: top;
margin: 0 2px;
}
@@ -26,7 +26,7 @@ $content-width: 840px;
&__inner {
display: flex;
justify-content: flex-end;
- background: $ui-base-color;
+ background: var(--background-color);
height: 100%;
}
}
@@ -38,7 +38,7 @@ $content-width: 840px;
&__toggle {
display: none;
- background: darken($ui-base-color, 4%);
+ background: var(--background-color);
border-bottom: 1px solid lighten($ui-base-color, 4%);
align-items: center;
@@ -65,16 +65,16 @@ $content-width: 840px;
background: $ui-base-color;
}
- .fa-times {
+ .material-close {
display: none;
}
&.active {
- .fa-times {
+ .material-close {
display: block;
}
- .fa-bars {
+ .material-menu {
display: none;
}
}
@@ -103,7 +103,6 @@ $content-width: 840px;
ul {
list-style: none;
- border-radius: 4px 0 0 4px;
overflow: hidden;
margin-bottom: 20px;
@@ -112,36 +111,26 @@ $content-width: 840px;
}
a {
+ font-size: 14px;
display: block;
padding: 15px;
color: $darker-text-color;
text-decoration: none;
transition: all 200ms linear;
transition-property: color, background-color;
- border-radius: 4px 0 0 4px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
- i.fa {
- margin-inline-end: 5px;
- }
-
&:hover {
color: $primary-text-color;
- background-color: darken($ui-base-color, 5%);
transition: all 100ms linear;
transition-property: color, background-color;
}
-
- &.selected {
- border-radius: 4px 0 0;
- }
}
ul {
- background: darken($ui-base-color, 4%);
- border-radius: 0 0 0 4px;
+ background: var(--background-color);
margin: 0;
a {
@@ -156,16 +145,10 @@ $content-width: 840px;
}
.simple-navigation-active-leaf a {
- color: $primary-text-color;
- background-color: $ui-highlight-color;
+ color: $highlight-text-color;
border-bottom: 0;
- border-radius: 0;
}
}
-
- & > ul > .simple-navigation-active-leaf a {
- border-radius: 4px 0 0 4px;
- }
}
.content-wrapper {
@@ -261,6 +244,11 @@ $content-width: 840px;
display: inline-flex;
flex-flow: wrap;
gap: 5px;
+ align-items: center;
+
+ .time-period {
+ padding: 0 10px;
+ }
}
h2 small {
@@ -299,7 +287,7 @@ $content-width: 840px;
color: $darker-text-color;
padding-bottom: 8px;
margin-bottom: 8px;
- border-bottom: 1px solid lighten($ui-base-color, 8%);
+ border-bottom: 1px solid var(--background-border-color);
}
h6 {
@@ -319,10 +307,6 @@ $content-width: 840px;
box-shadow: none;
}
- .directory__tag .table-action-link .fa {
- color: inherit;
- }
-
.directory__tag h4 {
font-size: 18px;
font-weight: 700;
@@ -372,7 +356,7 @@ $content-width: 840px;
width: 100%;
height: 0;
border: 0;
- border-bottom: 1px solid rgba($ui-base-lighter-color, 0.6);
+ border-bottom: 1px solid var(--background-border-color);
margin: 20px 0;
&.spacer {
@@ -410,14 +394,14 @@ $content-width: 840px;
inset-inline-start: 0;
bottom: 0;
overflow-y: auto;
- background: $ui-base-color;
+ background: var(--background-color);
}
}
ul a,
ul ul a {
+ font-size: 16px;
border-radius: 0;
- border-bottom: 1px solid lighten($ui-base-color, 4%);
transition: none;
&:hover {
@@ -683,8 +667,10 @@ body,
line-height: 20px;
padding: 15px;
padding-inline-start: 15px * 2 + 40px;
- background: $ui-base-color;
- border-bottom: 1px solid darken($ui-base-color, 8%);
+ background: var(--background-color);
+ border-right: 1px solid var(--background-border-color);
+ border-left: 1px solid var(--background-border-color);
+ border-bottom: 1px solid var(--background-border-color);
position: relative;
text-decoration: none;
color: $darker-text-color;
@@ -693,18 +679,13 @@ body,
&:first-child {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
+ border-top: 1px solid var(--background-border-color);
}
&:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
- border-bottom: 0;
- }
-
- &:hover,
- &:focus,
- &:active {
- background: lighten($ui-base-color, 4%);
+ border-bottom: 1px solid var(--background-border-color);
}
&__avatar {
@@ -713,7 +694,7 @@ body,
top: 15px;
.avatar {
- border-radius: 4px;
+ border-radius: var(--avatar-border-radius);
width: 40px;
height: 40px;
}
@@ -744,6 +725,47 @@ body,
}
}
+.strike-entry {
+ display: block;
+ line-height: 20px;
+ padding: 15px;
+ padding-inline-start: 15px * 2 + 40px;
+ background: var(--background-color);
+ border: 1px solid var(--background-border-color);
+ border-radius: 4px;
+ position: relative;
+ text-decoration: none;
+ color: $darker-text-color;
+ font-size: 14px;
+ margin-bottom: 15px;
+
+ &__avatar {
+ position: absolute;
+ inset-inline-start: 15px;
+ top: 15px;
+
+ .avatar {
+ border-radius: var(--avatar-border-radius);
+ width: 40px;
+ height: 40px;
+ }
+ }
+
+ &__title {
+ word-wrap: break-word;
+ }
+
+ &__timestamp {
+ color: $dark-text-color;
+ }
+
+ &:hover,
+ &:focus,
+ &:active {
+ background: $ui-base-color;
+ }
+}
+
a.name-tag,
.name-tag,
a.inline-name-tag,
@@ -751,6 +773,10 @@ a.inline-name-tag,
text-decoration: none;
color: $secondary-text-color;
+ &:hover {
+ color: $highlight-text-color;
+ }
+
.username {
font-weight: 500;
}
@@ -830,7 +856,8 @@ a.name-tag,
}
.report-card {
- background: $ui-base-color;
+ background: var(--background-color);
+ border: 1px solid var(--background-border-color);
border-radius: 4px;
margin-bottom: 20px;
@@ -842,7 +869,7 @@ a.name-tag,
.account {
padding: 0;
- border: 0;
+ border: none;
&__avatar-wrapper {
margin-inline-start: 0;
@@ -863,7 +890,7 @@ a.name-tag,
&:focus,
&:hover,
&:active {
- color: lighten($darker-text-color, 8%);
+ color: $highlight-text-color;
}
}
@@ -877,11 +904,7 @@ a.name-tag,
&__item {
display: flex;
justify-content: flex-start;
- border-top: 1px solid darken($ui-base-color, 4%);
-
- &:hover {
- background: lighten($ui-base-color, 2%);
- }
+ border-top: 1px solid var(--background-border-color);
&__reported-by,
&__assigned {
@@ -904,7 +927,6 @@ a.name-tag,
max-width: calc(100% - 300px);
&__icon {
- color: $dark-text-color;
margin-inline-end: 4px;
font-weight: 500;
}
@@ -917,6 +939,10 @@ a.name-tag,
padding: 15px;
text-decoration: none;
color: $darker-text-color;
+
+ &:hover {
+ color: $highlight-text-color;
+ }
}
}
}
@@ -952,14 +978,15 @@ a.name-tag,
.account__header__fields,
.account__header__content {
- background: lighten($ui-base-color, 8%);
+ background: var(--background-color);
+ border: 1px solid var(--background-border-color);
border-radius: 4px;
height: 100%;
}
.account__header__fields {
margin: 0;
- border: 0;
+ border: 1px solid var(--background-border-color);
a {
color: $highlight-text-color;
@@ -988,8 +1015,8 @@ a.name-tag,
.applications-list__item,
.filters-list__item {
padding: 15px 0;
- background: $ui-base-color;
- border: 1px solid lighten($ui-base-color, 4%);
+ background: var(--background-color);
+ border: 1px solid var(--background-border-color);
border-radius: 4px;
margin-top: 15px;
}
@@ -1000,13 +1027,13 @@ a.name-tag,
.announcements-list,
.filters-list {
- border: 1px solid lighten($ui-base-color, 4%);
+ border: 1px solid var(--background-border-color);
border-radius: 4px;
+ border-bottom: none;
&__item {
padding: 15px 0;
- background: $ui-base-color;
- border-bottom: 1px solid lighten($ui-base-color, 4%);
+ border-bottom: 1px solid var(--background-border-color);
&__title {
padding: 0 15px;
@@ -1018,6 +1045,10 @@ a.name-tag,
text-decoration: none;
margin-bottom: 10px;
+ &:hover {
+ color: $highlight-text-color;
+ }
+
.account-role {
vertical-align: middle;
}
@@ -1056,10 +1087,6 @@ a.name-tag,
&__permissions {
margin-top: 10px;
}
-
- &:last-child {
- border-bottom: 0;
- }
}
}
@@ -1109,7 +1136,7 @@ a.name-tag,
&__table {
&__number {
- color: $secondary-text-color;
+ color: var(--background-color);
padding: 10px;
}
@@ -1136,7 +1163,7 @@ a.name-tag,
&__box {
box-sizing: border-box;
- background: $ui-highlight-color;
+ background: var(--background-color);
padding: 10px;
font-weight: 500;
color: $primary-text-color;
@@ -1158,8 +1185,9 @@ a.name-tag,
.sparkline {
display: block;
text-decoration: none;
- background: lighten($ui-base-color, 4%);
+ background: var(--background-color);
border-radius: 4px;
+ border: 1px solid var(--background-border-color);
padding: 0;
position: relative;
padding-bottom: 55px + 20px;
@@ -1231,12 +1259,12 @@ a.sparkline {
&:hover,
&:focus,
&:active {
- background: lighten($ui-base-color, 6%);
+ background: $ui-base-color;
}
}
.skeleton {
- background-color: lighten($ui-base-color, 8%);
+ background-color: var(--background-color);
background-image: linear-gradient(
90deg,
lighten($ui-base-color, 8%),
@@ -1316,17 +1344,13 @@ a.sparkline {
.report-reason-selector {
border-radius: 4px;
- background: $ui-base-color;
+ background: var(--background-color);
margin-bottom: 20px;
&__category {
cursor: pointer;
border-bottom: 1px solid darken($ui-base-color, 8%);
- &:last-child {
- border-bottom: 0;
- }
-
&__label {
padding: 15px;
display: flex;
@@ -1355,7 +1379,7 @@ a.sparkline {
&__details {
&__item {
- border-bottom: 1px solid lighten($ui-base-color, 8%);
+ border-bottom: 1px solid var(--background-border-color);
padding: 15px 0;
&:last-child {
@@ -1386,7 +1410,7 @@ a.sparkline {
.account-card {
border-radius: 4px;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
position: relative;
&__warning-badge {
@@ -1474,7 +1498,6 @@ a.sparkline {
position: absolute;
bottom: 0;
inset-inline-end: 15px;
- background: linear-gradient(to left, $ui-base-color, transparent);
pointer-events: none;
}
@@ -1550,11 +1573,11 @@ a.sparkline {
margin-bottom: 20px;
&__item {
- background: $ui-base-color;
+ background: var(--background-color);
position: relative;
padding: 15px;
padding-inline-start: 15px * 2 + 40px;
- border-bottom: 1px solid darken($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
&:first-child {
border-top-left-radius: 4px;
@@ -1564,18 +1587,13 @@ a.sparkline {
&:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
- border-bottom: 0;
- }
-
- &:hover {
- background-color: lighten($ui-base-color, 4%);
}
&__avatar {
position: absolute;
inset-inline-start: 15px;
top: 15px;
- border-radius: 4px;
+ border-radius: var(--avatar-border-radius);
width: 40px;
height: 40px;
}
@@ -1646,13 +1664,10 @@ a.sparkline {
}
.report-actions {
- border: 1px solid darken($ui-base-color, 8%);
-
&__item {
display: flex;
align-items: center;
line-height: 18px;
- border-bottom: 1px solid darken($ui-base-color, 8%);
&:last-child {
border-bottom: 0;
@@ -1715,8 +1730,6 @@ a.sparkline {
.strike-card {
padding: 15px;
- border-radius: 4px;
- background: $ui-base-color;
font-size: 15px;
line-height: 20px;
word-wrap: break-word;
@@ -1724,6 +1737,8 @@ a.sparkline {
color: $primary-text-color;
box-sizing: border-box;
min-height: 100%;
+ border: 1px solid var(--background-border-color);
+ border-radius: 4px;
a {
color: $highlight-text-color;
@@ -1764,15 +1779,14 @@ a.sparkline {
&__statuses-list {
border-radius: 4px;
- border: 1px solid darken($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
font-size: 13px;
line-height: 18px;
overflow: hidden;
&__item {
padding: 16px;
- background: lighten($ui-base-color, 2%);
- border-bottom: 1px solid darken($ui-base-color, 8%);
+ border-bottom: 1px solid var(--background-border-color);
&:last-child {
border-bottom: 0;
diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss
index 2e7d5e5e9c5..1f961cb9e12 100644
--- a/app/javascript/styles/mastodon/basics.scss
+++ b/app/javascript/styles/mastodon/basics.scss
@@ -66,10 +66,6 @@ body {
}
}
- &.lighter {
- background: $ui-base-color;
- }
-
&.with-modals {
overflow-x: hidden;
overflow-y: scroll;
@@ -109,7 +105,6 @@ body {
}
&.embed {
- background: lighten($ui-base-color, 4%);
margin: 0;
padding-bottom: 0;
@@ -122,15 +117,12 @@ body {
}
&.admin {
- background: darken($ui-base-color, 4%);
padding: 0;
}
&.error {
position: absolute;
text-align: center;
- color: $darker-text-color;
- background: $ui-base-color;
width: 100%;
height: 100%;
padding: 0;
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 73d0e6220f4..1d710546ca2 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -81,6 +81,18 @@
outline: $ui-button-icon-focus-outline;
}
+ &--dangerous {
+ background-color: var(--error-background-color);
+ color: var(--on-error-color);
+
+ &:active,
+ &:focus,
+ &:hover {
+ background-color: var(--error-active-background-color);
+ transition: none;
+ }
+ }
+
&--destructive {
&:active,
&:focus,
@@ -93,7 +105,7 @@
&:disabled,
&.disabled {
background-color: $ui-primary-color;
- cursor: default;
+ cursor: not-allowed;
}
&.copyable {
@@ -120,8 +132,27 @@
text-decoration: none;
}
- &:disabled {
- opacity: 0.5;
+ &.button--destructive {
+ &:active,
+ &:focus,
+ &:hover {
+ border-color: $ui-button-destructive-focus-background-color;
+ color: $ui-button-destructive-focus-background-color;
+ }
+ }
+
+ &:disabled,
+ &.disabled {
+ opacity: 0.7;
+ border-color: $ui-primary-color;
+ color: $ui-primary-color;
+
+ &:active,
+ &:focus,
+ &:hover {
+ border-color: $ui-primary-color;
+ color: $ui-primary-color;
+ }
}
}
@@ -280,6 +311,10 @@
}
}
+ &--with-counter {
+ padding-inline-end: 4px;
+ }
+
&__counter {
display: block;
width: auto;
@@ -384,7 +419,7 @@ body > [data-popper-placement] {
&__suggestions {
box-shadow: var(--dropdown-shadow);
background: $ui-base-color;
- border: 1px solid lighten($ui-base-color, 14%);
+ border: 1px solid var(--background-border-color);
border-radius: 0 0 4px 4px;
color: $secondary-text-color;
font-size: 14px;
@@ -407,10 +442,17 @@ body > [data-popper-placement] {
&:hover,
&:focus,
- &:active,
+ &:active {
+ background: var(--dropdown-border-color);
+
+ .autosuggest-account .display-name__account {
+ color: inherit;
+ }
+ }
+
&.selected {
background: $ui-highlight-color;
- color: $primary-text-color;
+ color: $ui-button-color;
.autosuggest-account .display-name__account {
color: inherit;
@@ -446,7 +488,7 @@ body > [data-popper-placement] {
display: block;
line-height: 16px;
font-size: 12px;
- color: $dark-text-color;
+ color: $ui-primary-color;
}
}
@@ -502,7 +544,7 @@ body > [data-popper-placement] {
gap: 16px;
flex: 0 1 auto;
border-radius: 4px;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
transition: border-color 300ms linear;
min-height: 0;
position: relative;
@@ -568,7 +610,7 @@ body > [data-popper-placement] {
.autosuggest-input {
flex: 1 1 auto;
- border-bottom: 1px solid lighten($ui-base-color, 8%);
+ border-bottom: 1px solid var(--background-border-color);
}
}
@@ -594,7 +636,7 @@ body > [data-popper-placement] {
.spoiler-input__input {
padding: 12px 12px - 5px;
- background: mix($ui-base-color, $ui-highlight-color, 85%);
+ background: rgba($ui-highlight-color, 0.05);
color: $highlight-text-color;
}
@@ -736,16 +778,6 @@ body > [data-popper-placement] {
gap: 12px;
flex-wrap: wrap;
- .button {
- display: block; // Otherwise text-ellipsis doesn't work
- font-size: 14px;
- line-height: normal;
- font-weight: 700;
- flex: 1 1 auto;
- padding: 5px 12px;
- border-radius: 4px;
- }
-
.icon-button {
box-sizing: content-box;
color: $highlight-text-color;
@@ -858,6 +890,13 @@ body > [data-popper-placement] {
text-overflow: ellipsis;
white-space: nowrap;
+ &[disabled] {
+ cursor: default;
+ color: $highlight-text-color;
+ border-color: $highlight-text-color;
+ opacity: 0.5;
+ }
+
.icon {
width: 15px;
height: 15px;
@@ -1347,6 +1386,8 @@ body > [data-popper-placement] {
min-height: 54px;
border-bottom: 1px solid var(--background-border-color);
cursor: auto;
+ opacity: 1;
+ animation: fade 150ms linear;
@keyframes fade {
0% {
@@ -1358,8 +1399,13 @@ body > [data-popper-placement] {
}
}
- opacity: 1;
- animation: fade 150ms linear;
+ .content-warning {
+ margin-bottom: 10px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
.media-gallery,
.video-player,
@@ -1419,7 +1465,9 @@ body > [data-popper-placement] {
.picture-in-picture-placeholder,
.more-from-author,
.status-card,
- .hashtag-bar {
+ .hashtag-bar,
+ .content-warning,
+ .filter-warning {
margin-inline-start: $thread-margin;
width: calc(100% - $thread-margin);
}
@@ -1433,8 +1481,17 @@ body > [data-popper-placement] {
}
}
+ &__action-bar__button-wrapper {
+ flex-basis: 0;
+ flex-grow: 1;
+
+ &:last-child {
+ flex-grow: 0;
+ }
+ }
+
&--first-in-thread {
- border-top: 1px solid lighten($ui-base-color, 8%);
+ border-top: 1px solid var(--background-border-color);
}
&__line {
@@ -1575,15 +1632,29 @@ body > [data-popper-placement] {
.status__prepend {
padding: 16px;
padding-bottom: 0;
- display: inline-flex;
- gap: 10px;
+ display: flex;
+ align-items: center;
+ gap: 8px;
font-size: 15px;
line-height: 22px;
font-weight: 500;
color: $dark-text-color;
- .status__display-name strong {
- color: $dark-text-color;
+ &__icon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex: 0 0 auto;
+
+ .icon {
+ width: 16px;
+ height: 16px;
+ }
+ }
+
+ a {
+ color: inherit;
+ text-decoration: none;
}
> span {
@@ -1593,14 +1664,20 @@ body > [data-popper-placement] {
}
}
-.status__wrapper-direct {
+.status__wrapper-direct,
+.notification-ungrouped--direct,
+.notification-group--direct {
background: rgba($ui-highlight-color, 0.05);
&:focus {
- background: rgba($ui-highlight-color, 0.05);
+ background: rgba($ui-highlight-color, 0.1);
}
+}
- .status__prepend {
+.status__wrapper-direct,
+.notification-ungrouped--direct {
+ .status__prepend,
+ .notification-ungrouped__header {
color: $highlight-text-color;
}
}
@@ -1625,18 +1702,6 @@ body > [data-popper-placement] {
padding: 16px;
border-top: 1px solid var(--background-border-color);
- &--flex {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
- align-items: flex-start;
-
- .status__content,
- .detailed-status__meta {
- flex: 100%;
- }
- }
-
.status__content {
font-size: 19px;
line-height: 24px;
@@ -1663,6 +1728,37 @@ body > [data-popper-placement] {
padding: 0;
margin-bottom: 16px;
}
+
+ .content-warning {
+ margin-bottom: 16px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ .logo {
+ width: 40px;
+ height: 40px;
+ color: $dark-text-color;
+ }
+}
+
+.embed {
+ position: relative;
+
+ &__overlay {
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+
+ .detailed-status {
+ border-top: 0;
+ }
}
.scrollable > div:first-child .detailed-status {
@@ -1958,17 +2054,17 @@ body > [data-popper-placement] {
}
.account__avatar {
- @include avatar-radius;
-
display: block;
position: relative;
- overflow: hidden;
+ border-radius: var(--avatar-border-radius);
+ background-color: var(--surface-background-color);
img {
- display: block;
width: 100%;
height: 100%;
object-fit: cover;
+ border-radius: var(--avatar-border-radius);
+ display: inline-block; // to not show broken images
}
&-inline {
@@ -2005,6 +2101,29 @@ body > [data-popper-placement] {
font-size: 15px;
}
}
+
+ &__counter {
+ $height: 16px;
+ $h-padding: 5px;
+
+ position: absolute;
+ bottom: -3px;
+ inset-inline-end: -3px;
+ padding-left: $h-padding;
+ padding-right: $h-padding;
+ height: $height;
+ border-radius: $height;
+ min-width: $height - 2 * $h-padding; // to ensure that it is never narrower than a circle
+ line-height: $height + 1px; // to visually center the numbers
+ background-color: $ui-button-background-color;
+ color: $white;
+ border-width: 1px;
+ border-style: solid;
+ border-color: var(--background-color);
+ font-size: 11px;
+ font-weight: 500;
+ text-align: center;
+ }
}
a .account__avatar {
@@ -2191,41 +2310,28 @@ a.account__display-name {
}
}
-.notification__relationships-severance-event,
-.notification__moderation-warning {
- display: flex;
- gap: 16px;
+.notification-group--link {
color: $secondary-text-color;
text-decoration: none;
- align-items: flex-start;
- padding: 16px 32px;
- border-bottom: 1px solid var(--background-border-color);
- &:hover {
- color: $primary-text-color;
- }
-
- .icon {
- padding: 2px;
- color: $highlight-text-color;
- }
-
- &__content {
+ .notification-group__main {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
flex-grow: 1;
- font-size: 16px;
- line-height: 24px;
+ font-size: 15px;
+ line-height: 22px;
- strong {
+ strong,
+ bdi {
font-weight: 700;
}
.link-button {
font-size: inherit;
line-height: inherit;
+ font-weight: inherit;
}
}
}
@@ -2420,7 +2526,7 @@ a.account__display-name {
}
.dropdown-animation {
- animation: dropdown 150ms cubic-bezier(0.1, 0.7, 0.1, 1);
+ animation: dropdown 250ms cubic-bezier(0.1, 0.7, 0.1, 1);
@keyframes dropdown {
from {
@@ -2627,7 +2733,7 @@ a.account__display-name {
&__main {
box-sizing: border-box;
width: 100%;
- flex: 0 0 auto;
+ flex: 0 1 auto;
display: flex;
flex-direction: column;
@@ -2734,7 +2840,7 @@ $ui-header-logo-wordmark-width: 99px;
}
.column {
- width: 350px;
+ width: 400px;
position: relative;
box-sizing: border-box;
display: flex;
@@ -2749,6 +2855,11 @@ $ui-header-logo-wordmark-width: 99px;
&.privacy-policy {
border-top: 1px solid var(--background-border-color);
border-radius: 4px;
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ border-top: 0;
+ border-bottom: 0;
+ }
}
}
}
@@ -2762,7 +2873,7 @@ $ui-header-logo-wordmark-width: 99px;
}
.drawer {
- width: 300px;
+ width: 350px;
box-sizing: border-box;
display: flex;
flex-direction: column;
@@ -2787,7 +2898,7 @@ $ui-header-logo-wordmark-width: 99px;
overflow: hidden;
}
-@media screen and (width >= 631px) {
+@media screen and (width > $mobile-breakpoint) {
.columns-area {
padding: 0;
}
@@ -2850,10 +2961,6 @@ $ui-header-logo-wordmark-width: 99px;
padding-inline-end: 30px;
}
- .search__icon .fa {
- top: 15px;
- }
-
.scrollable {
overflow: visible;
@@ -3315,7 +3422,7 @@ $ui-header-logo-wordmark-width: 99px;
.copy-paste-text {
background: lighten($ui-base-color, 4%);
border-radius: 8px;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
padding: 16px;
color: $primary-text-color;
font-size: 15px;
@@ -3385,26 +3492,6 @@ $ui-header-logo-wordmark-width: 99px;
height: calc(100% - 10px);
overflow-y: hidden;
- .hero-widget {
- box-shadow: none;
-
- &__text,
- &__img,
- &__img img {
- border-radius: 0;
- }
-
- &__text {
- padding: 15px;
- color: $secondary-text-color;
-
- strong {
- font-weight: 700;
- color: $primary-text-color;
- }
- }
- }
-
.compose-form {
flex: 1 1 auto;
min-height: 0;
@@ -3415,12 +3502,14 @@ $ui-header-logo-wordmark-width: 99px;
margin-top: 10px;
margin-bottom: 10px;
height: calc(100% - 20px);
- overflow-y: auto;
+ overflow: hidden;
display: flex;
flex-direction: column;
- & > a {
- flex: 0 0 auto;
+ &__menu {
+ flex: 1 1 auto;
+ min-height: 0;
+ overflow-y: auto;
}
.logo {
@@ -3431,6 +3520,36 @@ $ui-header-logo-wordmark-width: 99px;
&__logo {
margin-bottom: 12px;
}
+
+ @media screen and (height <= 710px) {
+ &__portal {
+ display: none;
+ }
+ }
+
+ @media screen and (height <= 765px) {
+ &__portal .trends__item:nth-child(n + 3) {
+ display: none;
+ }
+ }
+
+ @media screen and (height <= 820px) {
+ &__portal .trends__item:nth-child(n + 4) {
+ display: none;
+ }
+ }
+
+ @media screen and (height <= 920px) {
+ .column-link.column-link--optional {
+ display: none;
+ }
+ }
+
+ @media screen and (height <= 1040px) {
+ .list-panel {
+ display: none;
+ }
+ }
}
.navigation-panel,
@@ -3794,22 +3913,6 @@ $ui-header-logo-wordmark-width: 99px;
}
}
- @media screen and (height <= 810px) {
- .trends__item:nth-of-type(3) {
- display: none;
- }
- }
-
- @media screen and (height <= 720px) {
- .trends__item:nth-of-type(2) {
- display: none;
- }
- }
-
- @media screen and (height <= 670px) {
- display: none;
- }
-
.trends__item {
border-bottom: 0;
padding: 10px;
@@ -3846,23 +3949,22 @@ $ui-header-logo-wordmark-width: 99px;
display: block;
box-sizing: border-box;
margin: 0;
- color: $inverted-text-color;
- background: $white;
+ color: $primary-text-color;
+ background: $ui-base-color;
padding: 7px 10px;
font-family: inherit;
font-size: 14px;
line-height: 22px;
border-radius: 4px;
- border: 1px solid $white;
+ border: 1px solid var(--background-border-color);
&:focus {
outline: 0;
- border-color: lighten($ui-highlight-color, 12%);
}
&__wrapper {
- background: $white;
- border: 1px solid $ui-secondary-color;
+ background: $ui-base-color;
+ border: 1px solid var(--background-border-color);
margin-bottom: 10px;
border-radius: 4px;
@@ -4167,7 +4269,7 @@ a.status-card {
text-decoration: none;
&:hover {
- background: lighten($ui-base-color, 2%);
+ background: var(--on-surface-color);
}
}
@@ -4177,11 +4279,12 @@ a.status-card {
.timeline-hint {
text-align: center;
- color: $darker-text-color;
- padding: 15px;
+ color: $dark-text-color;
+ padding: 16px;
box-sizing: border-box;
width: 100%;
- cursor: default;
+ font-size: 14px;
+ line-height: 21px;
strong {
font-weight: 500;
@@ -4198,6 +4301,10 @@ a.status-card {
color: lighten($highlight-text-color, 4%);
}
}
+
+ &--with-descendants {
+ border-top: 1px solid var(--background-border-color);
+ }
}
.regeneration-indicator {
@@ -4279,6 +4386,35 @@ a.status-card {
}
}
+.column-header__select-row {
+ border-width: 0 1px 1px;
+ border-style: solid;
+ border-color: var(--background-border-color);
+ padding: 15px;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+
+ &__checkbox .check-box {
+ display: flex;
+ }
+
+ &__select-menu:disabled {
+ visibility: hidden;
+ }
+
+ &__mode-button {
+ margin-left: auto;
+ color: $highlight-text-color;
+ font-weight: bold;
+ font-size: 14px;
+
+ &:hover {
+ color: lighten($highlight-text-color, 6%);
+ }
+ }
+}
+
.column-header {
display: flex;
font-size: 16px;
@@ -4420,10 +4556,19 @@ a.status-card {
opacity: 1;
z-index: 1;
position: relative;
+ border-left: 1px solid var(--background-border-color);
+ border-right: 1px solid var(--background-border-color);
+ border-bottom: 1px solid var(--background-border-color);
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ border-left: 0;
+ border-right: 0;
+ }
&.collapsed {
max-height: 0;
opacity: 0.5;
+ border-bottom: 0;
}
&.animating {
@@ -4440,7 +4585,6 @@ a.status-card {
}
.column-header__collapsible-inner {
- border: 1px solid var(--background-border-color);
border-top: 0;
}
@@ -4474,6 +4618,7 @@ a.status-card {
padding: 0;
font-family: inherit;
font-size: inherit;
+ font-weight: inherit;
color: inherit;
border: 0;
background: transparent;
@@ -4626,22 +4771,14 @@ a.status-card {
position: absolute;
z-index: 100;
- &--minified {
- display: block;
- inset-inline-start: 4px;
- top: 4px;
- width: auto;
- height: auto;
+ &--hidden {
+ display: none;
}
&--click-thru {
pointer-events: none;
}
- &--hidden {
- display: none;
- }
-
&__overlay {
display: flex;
align-items: center;
@@ -4653,19 +4790,20 @@ a.status-card {
margin: 0;
border: 0;
color: $white;
+ line-height: 20px;
+ font-size: 14px;
&__label {
background-color: rgba($black, 0.45);
backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
- border-radius: 6px;
- padding: 10px 15px;
+ border-radius: 8px;
+ padding: 12px 16px;
display: flex;
align-items: center;
justify-content: center;
- gap: 8px;
+ gap: 4px;
flex-direction: column;
- font-weight: 500;
- font-size: 14px;
+ font-weight: 600;
}
&__action {
@@ -4718,7 +4856,7 @@ a.status-card {
section {
padding: 16px;
- border-bottom: 1px solid lighten($ui-base-color, 8%);
+ border-bottom: 1px solid var(--background-border-color);
&:last-child {
border-bottom: 0;
@@ -4832,8 +4970,10 @@ a.status-card {
&__menu {
@include search-popout;
- padding: 0;
- background: $ui-secondary-color;
+ & {
+ padding: 0;
+ background: $ui-secondary-color;
+ }
}
&__menu-list {
@@ -5304,7 +5444,7 @@ a.status-card {
input {
padding: 8px 12px;
background: $ui-base-color;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
color: $darker-text-color;
@media screen and (width <= 600px) {
@@ -5390,7 +5530,7 @@ a.status-card {
margin-top: -2px;
width: 100%;
background: $ui-base-color;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
border-radius: 0 0 4px 4px;
box-shadow: var(--dropdown-shadow);
z-index: 99;
@@ -5646,7 +5786,7 @@ a.status-card {
user-select: text;
display: flex;
- @media screen and (width <= 630px) {
+ @media screen and (width <= $mobile-breakpoint) {
margin-top: auto;
}
}
@@ -5665,19 +5805,34 @@ a.status-card {
height: 100%;
position: relative;
- &__close,
- &__zoom-button {
- color: rgba($white, 0.7);
+ &__buttons {
+ position: absolute;
+ inset-inline-end: 8px;
+ top: 8px;
+ z-index: 100;
+ display: flex;
+ gap: 8px;
+ align-items: center;
- &:hover,
- &:focus,
- &:active {
- color: $white;
- background-color: rgba($white, 0.15);
- }
+ .icon-button {
+ color: rgba($white, 0.7);
+ padding: 8px;
- &:focus {
- background-color: rgba($white, 0.3);
+ .icon {
+ width: 24px;
+ height: 24px;
+ }
+
+ &:hover,
+ &:focus,
+ &:active {
+ color: $white;
+ background-color: rgba($white, 0.15);
+ }
+
+ &:focus {
+ background-color: rgba($white, 0.3);
+ }
}
}
}
@@ -5838,28 +5993,6 @@ a.status-card {
}
}
-.media-modal__close {
- position: absolute;
- inset-inline-end: 8px;
- top: 8px;
- z-index: 100;
-}
-
-.media-modal__zoom-button {
- position: absolute;
- inset-inline-end: 64px;
- top: 8px;
- z-index: 100;
- pointer-events: auto;
- transition: opacity 0.3s linear;
- will-change: opacity;
-}
-
-.media-modal__zoom-button--hidden {
- pointer-events: none;
- opacity: 0;
-}
-
.onboarding-modal,
.error-modal,
.embed-modal {
@@ -6005,7 +6138,7 @@ a.status-card {
border-radius: 0 0 16px 16px;
border-top: 0;
- @media screen and (max-width: $no-gap-breakpoint) {
+ @media screen and (max-width: $mobile-breakpoint) {
border-radius: 0;
border-bottom: 0;
padding-bottom: 32px;
@@ -6044,6 +6177,67 @@ a.status-card {
}
}
+ &__confirmation {
+ font-size: 14px;
+ line-height: 20px;
+ color: $darker-text-color;
+
+ h1 {
+ font-size: 16px;
+ line-height: 24px;
+ color: $primary-text-color;
+ font-weight: 500;
+ margin-bottom: 8px;
+ }
+
+ strong {
+ font-weight: 700;
+ color: $primary-text-color;
+ }
+ }
+
+ &__status {
+ border: 1px solid var(--modal-border-color);
+ border-radius: 8px;
+ padding: 8px;
+ cursor: pointer;
+
+ &__account {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ margin-bottom: 8px;
+ color: $dark-text-color;
+
+ bdi {
+ color: inherit;
+ }
+ }
+
+ &__content {
+ display: -webkit-box;
+ font-size: 15px;
+ line-height: 22px;
+ color: $dark-text-color;
+ -webkit-line-clamp: 4;
+ -webkit-box-orient: vertical;
+ max-height: 4 * 22px;
+ overflow: hidden;
+
+ p,
+ a {
+ color: inherit;
+ }
+ }
+
+ .reply-indicator__attachments {
+ margin-top: 0;
+ font-size: 15px;
+ line-height: 22px;
+ color: $dark-text-color;
+ }
+ }
+
&__bullet-points {
display: flex;
flex-direction: column;
@@ -6055,6 +6249,14 @@ a.status-card {
display: flex;
gap: 16px;
align-items: center;
+
+ strong {
+ font-weight: 700;
+ }
+ }
+
+ &--deemphasized {
+ color: $secondary-text-color;
}
&__icon {
@@ -6121,6 +6323,12 @@ a.status-card {
gap: 8px;
justify-content: flex-end;
+ &__hint {
+ font-size: 14px;
+ line-height: 20px;
+ color: $dark-text-color;
+ }
+
.link-button {
padding: 10px 12px;
font-weight: 600;
@@ -6128,25 +6336,84 @@ a.status-card {
}
}
+.dialog-modal {
+ width: 588px;
+ max-height: 80vh;
+ flex-direction: column;
+ background: var(--modal-background-color);
+ backdrop-filter: var(--background-filter);
+ border: 1px solid var(--modal-border-color);
+ border-radius: 16px;
+
+ &__header {
+ border-bottom: 1px solid var(--modal-border-color);
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex-direction: row-reverse;
+ padding: 12px 24px;
+
+ &__title {
+ font-size: 16px;
+ line-height: 24px;
+ font-weight: 500;
+ letter-spacing: 0.15px;
+ }
+ }
+
+ &__content {
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ overflow-y: auto;
+
+ &__form {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ padding: 24px;
+ }
+ }
+
+ .copy-paste-text {
+ margin-bottom: 0;
+ }
+}
+
+.hotkey-combination {
+ display: inline-flex;
+ align-items: center;
+ gap: 4px;
+
+ kbd {
+ padding: 3px 5px;
+ border: 1px solid var(--background-border-color);
+ border-radius: 4px;
+ }
+}
+
.boost-modal,
-.confirmation-modal,
.report-modal,
.actions-modal,
-.mute-modal,
-.block-modal,
.compare-history-modal {
- background: lighten($ui-secondary-color, 8%);
- color: $inverted-text-color;
- border-radius: 8px;
+ background: var(--background-color);
+ color: $primary-text-color;
+ border-radius: 4px;
+ border: 1px solid var(--background-border-color);
overflow: hidden;
max-width: 90vw;
width: 480px;
position: relative;
flex-direction: column;
+
+ @media screen and (max-width: $no-columns-breakpoint) {
+ border-bottom: 0;
+ border-radius: 4px 4px 0 0;
+ }
}
.boost-modal__container {
- overflow-x: scroll;
+ overflow-y: auto;
padding: 10px;
.status {
@@ -6155,10 +6422,7 @@ a.status-card {
}
}
-.boost-modal__action-bar,
-.confirmation-modal__action-bar,
-.mute-modal__action-bar,
-.block-modal__action-bar {
+.boost-modal__action-bar {
display: flex;
justify-content: space-between;
align-items: center;
@@ -6181,28 +6445,20 @@ a.status-card {
}
}
-.mute-modal,
-.block-modal {
- line-height: 24px;
-}
-
-.mute-modal .react-toggle,
-.block-modal .react-toggle {
- vertical-align: middle;
-}
-
.report-modal {
width: 90vw;
max-width: 700px;
+ border: 1px solid var(--background-border-color);
}
.report-dialog-modal {
max-width: 90vw;
width: 480px;
height: 80vh;
- background: lighten($ui-secondary-color, 8%);
- color: $inverted-text-color;
- border-radius: 8px;
+ background: var(--background-color);
+ color: $primary-text-color;
+ border-radius: 4px;
+ border: 1px solid var(--background-border-color);
overflow: hidden;
position: relative;
flex-direction: column;
@@ -6210,7 +6466,7 @@ a.status-card {
&__container {
box-sizing: border-box;
- border-top: 1px solid $ui-secondary-color;
+ border-top: 1px solid var(--background-border-color);
padding: 20px;
flex-grow: 1;
display: flex;
@@ -6240,7 +6496,7 @@ a.status-card {
&__lead {
font-size: 17px;
line-height: 22px;
- color: lighten($inverted-text-color, 16%);
+ color: $secondary-text-color;
margin-bottom: 30px;
a {
@@ -6275,7 +6531,7 @@ a.status-card {
.status__content,
.status__content p {
- color: $inverted-text-color;
+ color: $primary-text-color;
}
.status__content__spoiler-link {
@@ -6293,7 +6549,7 @@ a.status-card {
}
.dialog-option .poll__input {
- border-color: $inverted-text-color;
+ border-color: $darker-text-color;
color: $ui-secondary-color;
display: inline-flex;
align-items: center;
@@ -6307,20 +6563,20 @@ a.status-card {
&:active,
&:focus,
&:hover {
- border-color: lighten($inverted-text-color, 15%);
+ border-color: $valid-value-color;
border-width: 4px;
}
&.active {
- border-color: $inverted-text-color;
- background: $inverted-text-color;
+ border-color: $valid-value-color;
+ background: $valid-value-color;
}
}
.poll__option.dialog-option {
padding: 15px 0;
flex: 0 0 auto;
- border-bottom: 1px solid $ui-secondary-color;
+ border-bottom: 1px solid var(--background-border-color);
&:last-child {
border-bottom: 0;
@@ -6328,13 +6584,13 @@ a.status-card {
& > .poll__option__text {
font-size: 13px;
- color: lighten($inverted-text-color, 16%);
+ color: $secondary-text-color;
strong {
font-size: 17px;
font-weight: 500;
line-height: 22px;
- color: $inverted-text-color;
+ color: $primary-text-color;
display: block;
margin-bottom: 4px;
@@ -6353,22 +6609,19 @@ a.status-card {
display: block;
box-sizing: border-box;
width: 100%;
- color: $inverted-text-color;
- background: $simple-background-color;
+ color: $primary-text-color;
+ background: $ui-base-color;
padding: 10px;
font-family: inherit;
font-size: 17px;
line-height: 22px;
resize: vertical;
border: 0;
+ border: 1px solid var(--background-border-color);
outline: 0;
border-radius: 4px;
margin: 20px 0;
- &::placeholder {
- color: $dark-text-color;
- }
-
&:focus {
outline: 0;
}
@@ -6389,16 +6642,16 @@ a.status-card {
}
.button.button-secondary {
- border-color: $inverted-text-color;
- color: $inverted-text-color;
+ border-color: $ui-button-destructive-background-color;
+ color: $ui-button-destructive-background-color;
flex: 0 0 auto;
&:hover,
&:focus,
&:active {
- background: transparent;
- border-color: $ui-button-background-color;
- color: $ui-button-background-color;
+ background: $ui-button-destructive-background-color;
+ border-color: $ui-button-destructive-background-color;
+ color: $white;
}
}
@@ -6419,7 +6672,7 @@ a.status-card {
.report-modal__container {
display: flex;
- border-top: 1px solid $ui-secondary-color;
+ border-top: 1px solid var(--background-border-color);
@media screen and (width <= 480px) {
flex-wrap: wrap;
@@ -6477,7 +6730,7 @@ a.status-card {
.report-modal__comment {
padding: 20px;
- border-inline-end: 1px solid $ui-secondary-color;
+ border-inline-end: 1px solid var(--background-border-color);
max-width: 320px;
p {
@@ -6488,7 +6741,7 @@ a.status-card {
.setting-text-label {
display: block;
- color: $inverted-text-color;
+ color: $secondary-text-color;
font-size: 14px;
font-weight: 500;
margin-bottom: 10px;
@@ -6554,7 +6807,7 @@ a.status-card {
li:not(:empty) {
a {
- color: $inverted-text-color;
+ color: $primary-text-color;
display: flex;
padding: 12px 16px;
font-size: 15px;
@@ -6585,34 +6838,6 @@ a.status-card {
}
}
-.confirmation-modal__action-bar,
-.mute-modal__action-bar,
-.block-modal__action-bar {
- .confirmation-modal__secondary-button {
- flex-shrink: 1;
- }
-}
-
-.confirmation-modal__secondary-button,
-.confirmation-modal__cancel-button,
-.mute-modal__cancel-button,
-.block-modal__cancel-button {
- background-color: transparent;
- color: $lighter-text-color;
- font-size: 14px;
- font-weight: 500;
-
- &:hover,
- &:focus,
- &:active {
- color: darken($lighter-text-color, 4%);
- background-color: transparent;
- }
-}
-
-.confirmation-modal__container,
-.mute-modal__container,
-.block-modal__container,
.report-modal__target {
padding: 30px;
font-size: 16px;
@@ -6646,31 +6871,10 @@ a.status-card {
}
}
-.confirmation-modal__container,
.report-modal__target {
text-align: center;
}
-.block-modal,
-.mute-modal {
- &__explanation {
- margin-top: 20px;
- }
-
- .setting-toggle {
- margin-top: 20px;
- margin-bottom: 24px;
- display: flex;
- align-items: center;
-
- &__label {
- color: $inverted-text-color;
- margin: 0;
- margin-inline-start: 8px;
- }
- }
-}
-
.report-modal__target {
padding: 15px;
@@ -6683,7 +6887,7 @@ a.status-card {
.compare-history-modal {
.report-modal__target {
- border-bottom: 1px solid $ui-secondary-color;
+ border-bottom: 1px solid var(--background-border-color);
}
&__container {
@@ -6693,7 +6897,7 @@ a.status-card {
}
.status__content {
- color: $inverted-text-color;
+ color: $secondary-text-color;
font-size: 19px;
line-height: 24px;
@@ -6732,10 +6936,32 @@ a.status-card {
z-index: 9999;
}
+.media-gallery__actions {
+ position: absolute;
+ top: 6px;
+ inset-inline-end: 6px;
+ display: flex;
+ gap: 2px;
+ z-index: 2;
+
+ &__pill {
+ display: block;
+ color: $white;
+ border: 0;
+ background: rgba($black, 0.65);
+ backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
+ padding: 3px 12px;
+ border-radius: 99px;
+ font-size: 14px;
+ font-weight: 700;
+ line-height: 20px;
+ }
+}
+
.media-gallery__item__badges {
position: absolute;
- bottom: 6px;
- inset-inline-start: 6px;
+ bottom: 8px;
+ inset-inline-end: 8px;
display: flex;
gap: 2px;
}
@@ -6748,18 +6974,13 @@ a.status-card {
color: $white;
background: rgba($black, 0.65);
backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%);
- padding: 2px 6px;
+ padding: 3px 8px;
border-radius: 4px;
- font-size: 11px;
+ font-size: 12px;
font-weight: 700;
z-index: 1;
pointer-events: none;
- line-height: 18px;
-
- .icon {
- width: 15px;
- height: 15px;
- }
+ line-height: 20px;
}
.attachment-list {
@@ -6835,6 +7056,64 @@ a.status-card {
grid-template-columns: 50% 50%;
grid-template-rows: 50% 50%;
gap: 2px;
+
+ &--layout-2 {
+ .media-gallery__item:nth-child(1) {
+ border-end-end-radius: 0;
+ border-start-end-radius: 0;
+ }
+
+ .media-gallery__item:nth-child(2) {
+ border-start-start-radius: 0;
+ border-end-start-radius: 0;
+ }
+ }
+
+ &--layout-3 {
+ .media-gallery__item:nth-child(1) {
+ border-end-end-radius: 0;
+ border-start-end-radius: 0;
+ }
+
+ .media-gallery__item:nth-child(2) {
+ border-start-start-radius: 0;
+ border-end-start-radius: 0;
+ border-end-end-radius: 0;
+ }
+
+ .media-gallery__item:nth-child(3) {
+ border-start-start-radius: 0;
+ border-end-start-radius: 0;
+ border-start-end-radius: 0;
+ }
+ }
+
+ &--layout-4 {
+ .media-gallery__item:nth-child(1) {
+ border-end-end-radius: 0;
+ border-start-end-radius: 0;
+ border-end-start-radius: 0;
+ }
+
+ .media-gallery__item:nth-child(2) {
+ border-start-start-radius: 0;
+ border-end-start-radius: 0;
+ border-end-end-radius: 0;
+ }
+
+ .media-gallery__item:nth-child(3) {
+ border-start-start-radius: 0;
+ border-start-end-radius: 0;
+ border-end-start-radius: 0;
+ border-end-end-radius: 0;
+ }
+
+ .media-gallery__item:nth-child(4) {
+ border-start-start-radius: 0;
+ border-end-start-radius: 0;
+ border-start-end-radius: 0;
+ }
+ }
}
.media-gallery__item {
@@ -7326,9 +7605,18 @@ a.status-card {
}
.scrollable .account-card__title__avatar {
- img,
+ img {
+ border: 2px solid var(--background-color);
+ }
+
.account__avatar {
- border-color: lighten($ui-base-color, 8%);
+ border: none;
+ }
+}
+
+.scrollable .account-card__header {
+ img {
+ border-radius: 4px;
}
}
@@ -7368,6 +7656,11 @@ a.status-card {
display: flex;
flex-shrink: 0;
+ @media screen and (max-width: $no-gap-breakpoint - 1px) {
+ border-right: 0;
+ border-left: 0;
+ }
+
button {
background: transparent;
border: 0;
@@ -7462,20 +7755,9 @@ a.status-card {
flex: 0 0 auto;
border-radius: 50%;
- &.checked {
+ &.checked,
+ &.indeterminate {
border-color: $ui-highlight-color;
-
- &::before {
- position: absolute;
- left: 2px;
- top: 2px;
- content: '';
- display: block;
- border-radius: 50%;
- width: 12px;
- height: 12px;
- background: $ui-highlight-color;
- }
}
.icon {
@@ -7485,27 +7767,32 @@ a.status-card {
}
}
+.radio-button__input.checked::before {
+ position: absolute;
+ left: 2px;
+ top: 2px;
+ content: '';
+ display: block;
+ border-radius: 50%;
+ width: 12px;
+ height: 12px;
+ background: $ui-highlight-color;
+}
+
.check-box {
&__input {
width: 18px;
height: 18px;
border-radius: 2px;
- &.checked {
+ &.checked,
+ &.indeterminate {
background: $ui-highlight-color;
color: $white;
-
- &::before {
- display: none;
- }
}
}
}
-::-webkit-scrollbar-thumb {
- border-radius: 0;
-}
-
noscript {
text-align: center;
@@ -7546,69 +7833,6 @@ noscript {
}
}
-.embed-modal {
- width: auto;
- max-width: 80vw;
- max-height: 80vh;
-
- h4 {
- padding: 30px;
- font-weight: 500;
- font-size: 16px;
- text-align: center;
- }
-
- .embed-modal__container {
- padding: 10px;
-
- .hint {
- margin-bottom: 15px;
- }
-
- .embed-modal__html {
- outline: 0;
- box-sizing: border-box;
- display: block;
- width: 100%;
- border: 0;
- padding: 10px;
- font-family: $font-monospace, monospace;
- background: $ui-base-color;
- color: $primary-text-color;
- font-size: 14px;
- margin: 0;
- margin-bottom: 15px;
- border-radius: 4px;
-
- &::-moz-focus-inner {
- border: 0;
- }
-
- &::-moz-focus-inner,
- &:focus,
- &:active {
- outline: 0 !important;
- }
-
- &:focus {
- background: lighten($ui-base-color, 4%);
- }
-
- @media screen and (width <= 600px) {
- font-size: 16px;
- }
- }
-
- .embed-modal__iframe {
- width: 400px;
- max-width: 100%;
- overflow: hidden;
- border: 0;
- border-radius: 4px;
- }
- }
-}
-
.moved-account-banner,
.follow-request-banner,
.account-memorial-banner {
@@ -7666,6 +7890,11 @@ noscript {
width: 100%;
}
}
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ border-left: 0;
+ border-right: 0;
+ }
}
.drawer__backdrop {
@@ -7925,7 +8154,8 @@ noscript {
.account__avatar {
background: var(--background-color);
- border: 2px solid var(--background-border-color);
+ border: 1px solid var(--background-border-color);
+ border-radius: var(--avatar-border-radius);
}
}
}
@@ -8085,16 +8315,17 @@ noscript {
.verified {
border: 1px solid rgba($valid-value-color, 0.5);
margin-top: -1px;
+ margin-inline: -1px;
&:first-child {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
- margin-top: 0;
}
&:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
+ margin-bottom: -1px;
}
dt,
@@ -8415,22 +8646,6 @@ noscript {
word-break: break-word;
}
}
-
- &--unread {
- background: lighten($ui-base-color, 2%);
-
- &:focus {
- background: lighten($ui-base-color, 4%);
- }
-
- .conversation__content__info {
- font-weight: 700;
- }
-
- .conversation__content__relative-time {
- color: $primary-text-color;
- }
- }
}
.announcements {
@@ -8625,7 +8840,8 @@ noscript {
}
.notification,
-.status__wrapper {
+.status__wrapper,
+.conversation {
position: relative;
&.unread {
@@ -8772,13 +8988,13 @@ noscript {
}
.search__input {
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
padding: 10px;
padding-inline-end: 30px;
}
.search__popout {
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
}
.search .icon {
@@ -8792,10 +9008,13 @@ noscript {
flex: 1 1 auto;
display: flex;
flex-direction: column;
- border: 1px solid var(--background-border-color);
- border-top: 0;
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
+
+ @media screen and (min-width: $no-gap-breakpoint) {
+ border: 1px solid var(--background-border-color);
+ border-top: 0;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ }
}
.story {
@@ -9042,8 +9261,9 @@ noscript {
backdrop-filter: var(--background-filter);
border: 1px solid var(--modal-border-color);
padding: 24px;
+ box-sizing: border-box;
- @media screen and (max-width: $no-gap-breakpoint) {
+ @media screen and (max-width: $mobile-breakpoint) {
border-radius: 16px 16px 0 0;
border-bottom: 0;
padding-bottom: 32px;
@@ -9097,7 +9317,7 @@ noscript {
&__input {
@include search-input;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
padding: 4px 6px;
color: $primary-text-color;
font-size: 16px;
@@ -9132,7 +9352,7 @@ noscript {
margin-top: -1px;
padding-top: 5px;
padding-bottom: 5px;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
}
&.focused &__input {
@@ -10057,6 +10277,7 @@ noscript {
scroll-padding: 16px;
scroll-behavior: smooth;
overflow-x: scroll;
+ scrollbar-width: none;
&__card {
background: var(--background-color);
@@ -10172,10 +10393,9 @@ noscript {
.filtered-notifications-banner {
display: flex;
align-items: center;
- border: 1px solid var(--background-border-color);
- border-top: 0;
- padding: 24px 32px;
- gap: 16px;
+ border-bottom: 1px solid var(--background-border-color);
+ padding: 16px 24px;
+ gap: 8px;
color: $darker-text-color;
text-decoration: none;
@@ -10185,10 +10405,8 @@ noscript {
color: $secondary-text-color;
}
- .icon {
- width: 24px;
- height: 24px;
- padding: 2px;
+ .notification-group__icon {
+ color: inherit;
}
&__text {
@@ -10204,35 +10422,36 @@ noscript {
}
&__badge {
- display: flex;
- align-items: center;
- border-radius: 999px;
- background: var(--background-border-color);
- color: $darker-text-color;
- padding: 4px;
- padding-inline-end: 8px;
- gap: 6px;
- font-weight: 500;
- font-size: 11px;
- line-height: 16px;
- word-break: keep-all;
-
- &__badge {
- background: $ui-button-background-color;
- color: $white;
- border-radius: 100px;
- padding: 2px 8px;
- }
+ background: $ui-button-background-color;
+ color: $white;
+ border-radius: 100px;
+ padding: 2px 8px;
}
}
.notification-request {
+ $padding: 15px;
+
display: flex;
- align-items: center;
- gap: 16px;
- padding: 15px;
+ padding: $padding;
+ gap: 8px;
+ position: relative;
border-bottom: 1px solid var(--background-border-color);
+ &__checkbox {
+ position: absolute;
+ inset-inline-start: $padding;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 0;
+ overflow: hidden;
+ opacity: 0;
+
+ .check-box {
+ display: flex;
+ }
+ }
+
&__link {
display: flex;
align-items: center;
@@ -10263,6 +10482,12 @@ noscript {
letter-spacing: 0.5px;
line-height: 24px;
color: $secondary-text-color;
+
+ bdi {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
}
.filtered-notifications-banner__badge {
@@ -10284,6 +10509,31 @@ noscript {
padding: 5px;
}
}
+
+ .notification-request__link {
+ transition: padding-inline-start 0.1s ease-in-out;
+ }
+
+ &--forced-checkbox {
+ cursor: pointer;
+
+ &:hover {
+ background: var(--on-surface-color);
+ }
+
+ .notification-request__checkbox {
+ opacity: 1;
+ width: 30px;
+ }
+
+ .notification-request__link {
+ padding-inline-start: 30px;
+ }
+
+ .notification-request__actions {
+ display: none;
+ }
+ }
}
.more-from-author {
@@ -10325,3 +10575,518 @@ noscript {
}
}
}
+
+.notification-group {
+ display: flex;
+ align-items: flex-start;
+ gap: 8px;
+ padding: 16px 24px;
+ border-bottom: 1px solid var(--background-border-color);
+
+ &__icon {
+ width: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex: 0 0 auto;
+ color: $dark-text-color;
+
+ .icon {
+ width: 28px;
+ height: 28px;
+ }
+ }
+
+ &--follow &__icon,
+ &--follow-request &__icon {
+ color: $highlight-text-color;
+ }
+
+ &--favourite &__icon {
+ color: $gold-star;
+ }
+
+ &--reblog &__icon {
+ color: $valid-value-color;
+ }
+
+ &--relationships-severance-event &__icon,
+ &--admin-report &__icon,
+ &--admin-sign-up &__icon {
+ color: $dark-text-color;
+ }
+
+ &--moderation-warning &__icon {
+ color: $red-bookmark;
+ }
+
+ &--follow-request &__actions {
+ align-items: center;
+ display: flex;
+ gap: 8px;
+
+ .icon-button {
+ border: 1px solid var(--background-border-color);
+ border-radius: 50%;
+ padding: 1px;
+ }
+ }
+
+ &__main {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ flex: 1 1 auto;
+ overflow: hidden;
+ container-type: inline-size;
+
+ @container (width < 350px) {
+ &__header time {
+ display: none;
+ }
+ }
+
+ &__header {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+
+ &__wrapper {
+ display: flex;
+ justify-content: space-between;
+ }
+
+ &__label {
+ display: flex;
+ gap: 8px;
+ font-size: 15px;
+ line-height: 22px;
+ color: $darker-text-color;
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ }
+
+ bdi {
+ font-weight: 700;
+ color: $primary-text-color;
+ }
+
+ time {
+ color: $dark-text-color;
+ }
+ }
+ }
+
+ &__status {
+ border: 1px solid var(--background-border-color);
+ border-radius: 8px;
+ padding: 8px;
+ }
+
+ &__additional-content {
+ color: $dark-text-color;
+ margin-top: -8px; // to offset the parent's `gap` property
+ font-size: 15px;
+ line-height: 22px;
+ }
+ }
+
+ &__avatar-group {
+ display: flex;
+ gap: 8px;
+ height: 28px;
+ overflow-y: hidden;
+ flex-wrap: wrap;
+ }
+
+ .status {
+ padding: 0;
+ border: 0;
+ }
+
+ &__embedded-status {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ cursor: pointer;
+
+ &__account {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ color: $dark-text-color;
+ font-size: 15px;
+ line-height: 22px;
+
+ bdi {
+ color: $darker-text-color;
+ }
+ }
+
+ &__content {
+ display: -webkit-box;
+ font-size: 15px;
+ line-height: 22px;
+ color: $darker-text-color;
+ -webkit-line-clamp: 4;
+ -webkit-box-orient: vertical;
+ max-height: 4 * 22px;
+ overflow: hidden;
+
+ p {
+ display: none;
+
+ &:first-child {
+ display: initial;
+ }
+ }
+
+ p,
+ a {
+ color: inherit;
+ }
+ }
+
+ .reply-indicator__attachments {
+ margin-top: 0;
+ font-size: 15px;
+ line-height: 22px;
+ color: $dark-text-color;
+ }
+ }
+}
+
+.notification-group__actions,
+.compose-form__actions {
+ .button {
+ display: block; // Otherwise text-ellipsis doesn't work
+ font-size: 14px;
+ line-height: normal;
+ font-weight: 700;
+ flex: 1 1 auto;
+ padding: 5px 12px;
+ border-radius: 4px;
+ }
+}
+
+.notification-ungrouped {
+ padding: 16px 24px;
+ border-bottom: 1px solid var(--background-border-color);
+
+ &__header {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ color: $dark-text-color;
+ font-size: 15px;
+ line-height: 22px;
+ font-weight: 500;
+ padding-inline-start: 24px;
+ margin-bottom: 16px;
+
+ &__icon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex: 0 0 auto;
+
+ .icon {
+ width: 16px;
+ height: 16px;
+ }
+ }
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ }
+ }
+
+ .status {
+ border: 0;
+ padding: 0;
+
+ &__avatar {
+ width: 40px;
+ height: 40px;
+ }
+ }
+
+ .status__wrapper-direct {
+ background: transparent;
+ }
+
+ $icon-margin: 48px; // 40px avatar + 8px gap
+
+ .status__content,
+ .status__action-bar,
+ .media-gallery,
+ .video-player,
+ .audio-player,
+ .attachment-list,
+ .picture-in-picture-placeholder,
+ .more-from-author,
+ .status-card,
+ .hashtag-bar,
+ .content-warning,
+ .filter-warning {
+ margin-inline-start: $icon-margin;
+ width: calc(100% - $icon-margin);
+ }
+
+ .more-from-author {
+ width: calc(100% - $icon-margin + 2px);
+ }
+
+ .status__content__read-more-button {
+ margin-inline-start: $icon-margin;
+ }
+
+ .notification__report {
+ border: 0;
+ padding: 0;
+ }
+}
+
+.notification-group--unread,
+.notification-ungrouped--unread {
+ position: relative;
+
+ &::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ inset-inline-start: 0;
+ width: 100%;
+ height: 100%;
+ border-inline-start: 4px solid $highlight-text-color;
+ pointer-events: none;
+ }
+}
+
+.hover-card-controller[data-popper-reference-hidden='true'] {
+ opacity: 0;
+ pointer-events: none;
+}
+
+.hover-card {
+ box-shadow: var(--dropdown-shadow);
+ background: var(--modal-background-color);
+ backdrop-filter: var(--background-filter);
+ border: 1px solid var(--modal-border-color);
+ border-radius: 8px;
+ padding: 16px;
+ width: 270px;
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+
+ &--loading {
+ position: relative;
+ min-height: 100px;
+ }
+
+ &__name {
+ display: flex;
+ gap: 12px;
+ text-decoration: none;
+ color: inherit;
+ }
+
+ &__number {
+ font-size: 15px;
+ line-height: 22px;
+ color: $secondary-text-color;
+
+ strong {
+ font-weight: 700;
+ }
+ }
+
+ &__text-row {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ }
+
+ &__bio {
+ color: $secondary-text-color;
+ font-size: 14px;
+ line-height: 20px;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ max-height: 2 * 20px;
+ overflow: hidden;
+
+ p {
+ margin-bottom: 0;
+ }
+
+ a {
+ color: inherit;
+ text-decoration: underline;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+ }
+ }
+
+ &__note {
+ &-label {
+ color: $dark-text-color;
+ font-size: 12px;
+ font-weight: 500;
+ text-transform: uppercase;
+ }
+
+ dd {
+ white-space: pre-line;
+ color: $secondary-text-color;
+ overflow: hidden;
+ line-clamp: 3; // Not yet supported in browers
+ display: -webkit-box; // The next 3 properties are needed
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ }
+ }
+
+ .display-name {
+ font-size: 15px;
+ line-height: 22px;
+
+ bdi {
+ font-weight: 500;
+ color: $primary-text-color;
+ }
+
+ &__account {
+ display: block;
+ color: $dark-text-color;
+ }
+ }
+
+ .account-fields {
+ color: $secondary-text-color;
+ font-size: 14px;
+ line-height: 20px;
+
+ a {
+ color: inherit;
+ text-decoration: none;
+
+ &:focus,
+ &:hover,
+ &:active {
+ text-decoration: underline;
+ }
+ }
+
+ dl {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+
+ dt {
+ flex: 0 1 auto;
+ color: $dark-text-color;
+ min-width: 0;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ dd {
+ flex: 1 1 auto;
+ font-weight: 500;
+ min-width: 0;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ text-align: end;
+ }
+
+ &.verified {
+ dd {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 4px;
+ overflow: hidden;
+ white-space: nowrap;
+ color: $valid-value-color;
+
+ & > span {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ a {
+ font-weight: 500;
+ }
+
+ .icon {
+ width: 16px;
+ height: 16px;
+ }
+ }
+ }
+ }
+ }
+}
+
+.content-warning {
+ box-sizing: border-box;
+ background: rgba($ui-highlight-color, 0.05);
+ color: $secondary-text-color;
+ border-top: 1px solid;
+ border-bottom: 1px solid;
+ border-color: rgba($ui-highlight-color, 0.15);
+ padding: 8px (5px + 8px);
+ position: relative;
+ font-size: 15px;
+ line-height: 22px;
+
+ p {
+ margin-bottom: 8px;
+ }
+
+ .link-button {
+ font-size: inherit;
+ line-height: inherit;
+ font-weight: 500;
+ }
+
+ &::before,
+ &::after {
+ content: '';
+ display: block;
+ position: absolute;
+ height: 100%;
+ background: url('../images/warning-stripes.svg') repeat-y;
+ width: 5px;
+ top: 0;
+ }
+
+ &::before {
+ border-start-start-radius: 4px;
+ border-end-start-radius: 4px;
+ inset-inline-start: 0;
+ }
+
+ &::after {
+ border-start-end-radius: 4px;
+ border-end-end-radius: 4px;
+ inset-inline-end: 0;
+ }
+
+ &--filter::before,
+ &--filter::after {
+ background-image: url('../images/filter-stripes.svg');
+ }
+}
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index 8a472d75b13..ac1f862a099 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -63,7 +63,7 @@
padding: 20px 0;
margin-top: 40px;
margin-bottom: 10px;
- border-bottom: 1px solid lighten($ui-base-color, 8%);
+ border-bottom: 1px solid var(--background-border-color);
@media screen and (width <= 440px) {
width: 100%;
@@ -81,7 +81,7 @@
height: 100%;
display: block;
margin: 0;
- border-radius: 4px;
+ border-radius: var(--avatar-border-radius);
}
}
diff --git a/app/javascript/styles/mastodon/dashboard.scss b/app/javascript/styles/mastodon/dashboard.scss
index 36a7f44253f..d049b2456c1 100644
--- a/app/javascript/styles/mastodon/dashboard.scss
+++ b/app/javascript/styles/mastodon/dashboard.scss
@@ -13,8 +13,9 @@
& > div,
& > a {
padding: 20px;
- background: lighten($ui-base-color, 4%);
+ background: var(--background-color);
border-radius: 4px;
+ border: 1px solid var(--background-border-color);
box-sizing: border-box;
height: 100%;
}
@@ -27,7 +28,7 @@
&:hover,
&:focus,
&:active {
- background: lighten($ui-base-color, 8%);
+ background: $ui-base-color;
}
}
}
@@ -85,9 +86,7 @@
color: $primary-text-color;
transition: all 100ms ease-in;
font-size: 14px;
- padding: 0 16px;
- line-height: 36px;
- height: 36px;
+ padding: 8px 16px;
text-decoration: none;
margin-bottom: 4px;
@@ -112,10 +111,6 @@
flex: 1 1 auto;
}
- .fa {
- flex: 0 0 auto;
- }
-
strong {
font-weight: 700;
}
diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss
index b9fdaa58473..31890005881 100644
--- a/app/javascript/styles/mastodon/emoji_picker.scss
+++ b/app/javascript/styles/mastodon/emoji_picker.scss
@@ -83,11 +83,6 @@
max-height: 35vh;
padding: 0 6px 6px;
will-change: transform;
-
- &::-webkit-scrollbar-track:hover,
- &::-webkit-scrollbar-track:active {
- background-color: rgba($base-overlay-background, 0.3);
- }
}
.emoji-mart-search {
@@ -105,7 +100,7 @@
width: 100%;
background: $ui-base-color;
color: $darker-text-color;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
border-radius: 4px;
&::-moz-focus-inner {
@@ -116,7 +111,6 @@
&:focus {
outline: none !important;
border-width: 1px !important;
- border-color: $ui-button-background-color;
}
&::-webkit-search-cancel-button {
diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss
index 26bb2bee145..56f7b893f39 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -12,6 +12,41 @@ code {
margin: 50px auto;
}
+.form-section {
+ border-radius: 8px;
+ background: var(--surface-background-color);
+ padding: 24px;
+ margin-bottom: 24px;
+}
+
+.fade-out-top {
+ position: relative;
+ overflow: hidden;
+ height: 160px;
+
+ &::after {
+ content: '';
+ display: block;
+ background: linear-gradient(
+ to bottom,
+ var(--surface-background-color),
+ transparent
+ );
+ position: absolute;
+ top: 0;
+ inset-inline-start: 0;
+ width: 100%;
+ height: 100px;
+ pointer-events: none;
+ }
+
+ & > div {
+ position: absolute;
+ inset-inline-start: 0;
+ bottom: 0;
+ }
+}
+
.indicator-icon {
display: flex;
align-items: center;
@@ -290,6 +325,10 @@ code {
flex: 0;
}
+ .input.select.select--languages {
+ min-width: 32ch;
+ }
+
.required abbr {
text-decoration: none;
color: lighten($error-value-color, 12%);
@@ -308,7 +347,7 @@ code {
margin-bottom: 10px;
max-width: 100%;
height: auto;
- border-radius: 4px;
+ border-radius: var(--avatar-border-radius);
background: url('images/void.png');
&[src$='missing.png'] {
@@ -414,7 +453,7 @@ code {
}
.input.static .label_input__wrapper {
- font-size: 16px;
+ font-size: 14px;
padding: 10px;
border: 1px solid $dark-text-color;
border-radius: 4px;
@@ -436,15 +475,11 @@ code {
outline: 0;
font-family: inherit;
resize: vertical;
- background: darken($ui-base-color, 10%);
- border: 1px solid darken($ui-base-color, 10%);
- border-radius: 8px;
+ background: $ui-base-color;
+ border: 1px solid var(--background-border-color);
+ border-radius: 4px;
padding: 10px 16px;
- &::placeholder {
- color: lighten($darker-text-color, 4%);
- }
-
&:invalid {
box-shadow: none;
}
@@ -453,11 +488,6 @@ code {
border-color: $valid-value-color;
}
- &:active,
- &:focus {
- border-color: $highlight-text-color;
- }
-
@media screen and (width <= 600px) {
font-size: 16px;
}
@@ -576,21 +606,25 @@ code {
select {
appearance: none;
box-sizing: border-box;
- font-size: 16px;
+ font-size: 14px;
color: $primary-text-color;
display: block;
width: 100%;
outline: 0;
font-family: inherit;
resize: vertical;
- background: darken($ui-base-color, 10%)
+ background: $ui-base-color
url("data:image/svg+xml;utf8,")
- no-repeat right 8px center / auto 16px;
- border: 1px solid darken($ui-base-color, 14%);
+ no-repeat right 8px center / auto 14px;
+ border: 1px solid var(--background-border-color);
border-radius: 4px;
padding-inline-start: 10px;
padding-inline-end: 30px;
height: 41px;
+
+ @media screen and (width <= 600px) {
+ font-size: 16px;
+ }
}
h4 {
@@ -607,8 +641,7 @@ code {
inset-inline-end: 3px;
top: 1px;
padding: 10px;
- padding-bottom: 9px;
- font-size: 16px;
+ font-size: 14px;
color: $dark-text-color;
font-family: inherit;
pointer-events: none;
@@ -626,11 +659,6 @@ code {
inset-inline-end: 0;
bottom: 1px;
width: 5px;
- background-image: linear-gradient(
- to right,
- rgba(darken($ui-base-color, 10%), 0),
- darken($ui-base-color, 10%)
- );
}
}
}
@@ -644,8 +672,9 @@ code {
}
.flash-message {
- background: lighten($ui-base-color, 8%);
- color: $darker-text-color;
+ background: var(--background-color);
+ color: $highlight-text-color;
+ border: 1px solid $highlight-text-color;
border-radius: 4px;
padding: 15px 10px;
margin-bottom: 30px;
@@ -936,10 +965,6 @@ code {
font-weight: 700;
}
}
-
- .fa {
- font-weight: 400;
- }
}
}
}
@@ -1335,7 +1360,7 @@ code {
&__toggle > div {
display: flex;
- border-inline-start: 1px solid lighten($ui-base-color, 8%);
+ border-inline-start: 1px solid var(--background-border-color);
padding-inline-start: 16px;
}
}
diff --git a/app/javascript/styles/mastodon/reset.scss b/app/javascript/styles/mastodon/reset.scss
index f54ed5bc79b..5a4152826d9 100644
--- a/app/javascript/styles/mastodon/reset.scss
+++ b/app/javascript/styles/mastodon/reset.scss
@@ -53,41 +53,29 @@ table {
border-spacing: 0;
}
-html {
- scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);
+@supports not selector(::-webkit-scrollbar) {
+ html {
+ scrollbar-color: $action-button-color var(--background-border-color);
+ scrollbar-width: thin;
+ }
}
::-webkit-scrollbar {
- width: 12px;
- height: 12px;
+ width: 8px;
+ height: 8px;
}
::-webkit-scrollbar-thumb {
- background: lighten($ui-base-color, 4%);
- border: 0px none $base-border-color;
- border-radius: 50px;
-}
-
-::-webkit-scrollbar-thumb:hover {
- background: lighten($ui-base-color, 6%);
-}
-
-::-webkit-scrollbar-thumb:active {
- background: lighten($ui-base-color, 4%);
+ background-color: $action-button-color;
+ border: 2px var(--background-border-color);
+ border-radius: 12px;
+ width: 6px;
+ box-shadow: inset 0 0 0 2px var(--background-border-color);
}
::-webkit-scrollbar-track {
- border: 0px none $base-border-color;
- border-radius: 0;
- background: rgba($base-overlay-background, 0.1);
-}
-
-::-webkit-scrollbar-track:hover {
- background: $ui-base-color;
-}
-
-::-webkit-scrollbar-track:active {
- background: $ui-base-color;
+ background-color: var(--background-border-color);
+ border-radius: 0px;
}
::-webkit-scrollbar-corner {
diff --git a/app/javascript/styles/mastodon/rtl.scss b/app/javascript/styles/mastodon/rtl.scss
index b5c4836bcd7..e4e299ff82d 100644
--- a/app/javascript/styles/mastodon/rtl.scss
+++ b/app/javascript/styles/mastodon/rtl.scss
@@ -35,30 +35,12 @@ body.rtl {
direction: rtl;
}
- .simple_form .label_input__append {
- &::after {
- background-image: linear-gradient(
- to left,
- rgba(darken($ui-base-color, 10%), 0),
- darken($ui-base-color, 10%)
- );
- }
- }
-
.simple_form select {
- background: darken($ui-base-color, 10%)
+ background: $ui-base-color
url("data:image/svg+xml;utf8,")
no-repeat left 8px center / auto 16px;
}
- .fa-chevron-left::before {
- content: '\F054';
- }
-
- .fa-chevron-right::before {
- content: '\F053';
- }
-
.dismissable-banner,
.warning-banner {
&__action {
diff --git a/app/javascript/styles/mastodon/statuses.scss b/app/javascript/styles/mastodon/statuses.scss
deleted file mode 100644
index b6d4f98cce5..00000000000
--- a/app/javascript/styles/mastodon/statuses.scss
+++ /dev/null
@@ -1,152 +0,0 @@
-.activity-stream {
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
- border-radius: 4px;
- overflow: hidden;
- margin-bottom: 10px;
-
- &--under-tabs {
- border-radius: 0 0 4px 4px;
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- margin-bottom: 0;
- border-radius: 0;
- box-shadow: none;
- }
-
- &--headless {
- border-radius: 0;
- margin: 0;
- box-shadow: none;
-
- .detailed-status,
- .status {
- border-radius: 0 !important;
- }
- }
-
- div[data-component] {
- width: 100%;
- }
-
- .entry {
- background: $ui-base-color;
-
- .detailed-status,
- .status,
- .load-more {
- animation: none;
- }
-
- &:last-child {
- .detailed-status,
- .status,
- .load-more {
- border-bottom: 0;
- border-radius: 0 0 4px 4px;
- }
- }
-
- &:first-child {
- .detailed-status,
- .status,
- .load-more {
- border-radius: 4px 4px 0 0;
- }
-
- &:last-child {
- .detailed-status,
- .status,
- .load-more {
- border-radius: 4px;
- }
- }
- }
-
- @media screen and (width <= 740px) {
- .detailed-status,
- .status,
- .load-more {
- border-radius: 0 !important;
- }
- }
- }
-
- &--highlighted .entry {
- background: lighten($ui-base-color, 8%);
- }
-}
-
-.button.logo-button svg {
- width: 20px;
- height: auto;
- vertical-align: middle;
- margin-inline-end: 5px;
- fill: $primary-text-color;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- display: none;
- }
-}
-
-.embed {
- .status__content[data-spoiler='folded'] {
- .e-content {
- display: none;
- }
-
- p:first-child {
- margin-bottom: 0;
- }
- }
-
- .detailed-status {
- padding: 15px;
-
- .detailed-status__display-avatar .account__avatar {
- width: 48px;
- height: 48px;
- }
- }
-
- .status {
- padding: 15px 15px 15px (48px + 15px * 2);
- min-height: 48px + 2px;
-
- &__avatar {
- inset-inline-start: 15px;
- top: 17px;
-
- .account__avatar {
- width: 48px;
- height: 48px;
- }
- }
-
- &__content {
- padding-top: 5px;
- }
-
- &__prepend {
- margin-inline-start: 48px + 15px * 2;
- padding-top: 15px;
- }
-
- &__prepend-icon-wrapper {
- inset-inline-start: -32px;
- }
-
- .media-gallery,
- &__action-bar,
- .video-player {
- margin-top: 10px;
- }
-
- &__action-bar-button {
- font-size: 18px;
- width: 23.1429px;
- height: 23.1429px;
- line-height: 23.15px;
- }
- }
-}
diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss
index dd5b483ec48..2becd85bc66 100644
--- a/app/javascript/styles/mastodon/tables.scss
+++ b/app/javascript/styles/mastodon/tables.scss
@@ -9,9 +9,9 @@
padding: 8px;
line-height: 18px;
vertical-align: top;
- border-top: 1px solid $ui-base-color;
+ border-bottom: 1px solid var(--background-border-color);
text-align: start;
- background: darken($ui-base-color, 4%);
+ background: var(--background-color);
&.critical {
font-weight: 700;
@@ -21,8 +21,6 @@
& > thead > tr > th {
vertical-align: bottom;
- border-bottom: 2px solid $ui-base-color;
- border-top: 0;
font-weight: 500;
}
@@ -32,15 +30,20 @@
& > tbody > tr:nth-child(odd) > td,
& > tbody > tr:nth-child(odd) > th {
- background: $ui-base-color;
+ background: var(--background-color);
+ }
+
+ & > tbody > tr:last-child > td,
+ & > tbody > tr:last-child > th {
+ border-bottom: 0;
}
a {
- color: $highlight-text-color;
- text-decoration: underline;
+ color: $darker-text-color;
+ text-decoration: none;
&:hover {
- text-decoration: none;
+ color: $highlight-text-color;
}
}
@@ -78,7 +81,7 @@
& > tbody > tr > td {
padding: 11px 10px;
background: transparent;
- border: 1px solid lighten($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
color: $secondary-text-color;
}
@@ -90,18 +93,18 @@
&.batch-table {
& > thead > tr > th {
- background: $ui-base-color;
- border-top: 1px solid darken($ui-base-color, 8%);
- border-bottom: 1px solid darken($ui-base-color, 8%);
+ background: var(--background-color);
+ border-top: 1px solid var(--background-border-color);
+ border-bottom: 1px solid var(--background-border-color);
&:first-child {
border-radius: 4px 0 0;
- border-inline-start: 1px solid darken($ui-base-color, 8%);
+ border-inline-start: 1px solid var(--background-border-color);
}
&:last-child {
border-radius: 0 4px 0 0;
- border-inline-end: 1px solid darken($ui-base-color, 8%);
+ border-inline-end: 1px solid var(--background-border-color);
}
}
}
@@ -136,12 +139,7 @@ a.table-action-link {
font-weight: 500;
&:hover {
- color: $primary-text-color;
- }
-
- i.fa {
- font-weight: 400;
- margin-inline-end: 5px;
+ color: $highlight-text-color;
}
&:first-child {
@@ -186,9 +184,9 @@ a.table-action-link {
position: sticky;
top: 0;
z-index: 1;
- border: 1px solid darken($ui-base-color, 8%);
- background: $ui-base-color;
- border-radius: 4px 0 0;
+ border: 1px solid var(--background-border-color);
+ background: var(--background-color);
+ border-radius: 4px 4px 0 0;
height: 47px;
align-items: center;
@@ -199,11 +197,11 @@ a.table-action-link {
}
&__select-all {
- background: $ui-base-color;
+ background: var(--background-color);
height: 47px;
align-items: center;
justify-content: center;
- border: 1px solid darken($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
border-top: 0;
color: $secondary-text-color;
display: none;
@@ -249,9 +247,9 @@ a.table-action-link {
&__form {
padding: 16px;
- border: 1px solid darken($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
border-top: 0;
- background: $ui-base-color;
+ background: var(--background-color);
.fields-row {
padding-top: 0;
@@ -260,26 +258,18 @@ a.table-action-link {
}
&__row {
- border: 1px solid darken($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
border-top: 0;
- background: darken($ui-base-color, 4%);
+ background: var(--background-color);
@media screen and (max-width: $no-gap-breakpoint) {
.optional &:first-child {
- border-top: 1px solid darken($ui-base-color, 8%);
+ border-top: 1px solid var(--background-border-color);
}
}
- &:hover {
- background: darken($ui-base-color, 2%);
- }
-
- &:nth-child(even) {
- background: $ui-base-color;
-
- &:hover {
- background: lighten($ui-base-color, 2%);
- }
+ &:last-child {
+ border-radius: 0 0 4px 4px;
}
&__content {
@@ -291,6 +281,10 @@ a.table-action-link {
padding: 0;
}
+ &--padded {
+ padding: 12px 16px 16px;
+ }
+
&--with-image {
display: flex;
align-items: center;
@@ -357,12 +351,13 @@ a.table-action-link {
}
.nothing-here {
- border: 1px solid darken($ui-base-color, 8%);
+ border: 1px solid var(--background-border-color);
border-top: 0;
box-shadow: none;
+ background: var(--background-color);
@media screen and (max-width: $no-gap-breakpoint) {
- border-top: 1px solid darken($ui-base-color, 8%);
+ border-top: 1px solid var(--background-border-color);
}
}
diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss
index 2848a42b3fe..2601113d324 100644
--- a/app/javascript/styles/mastodon/variables.scss
+++ b/app/javascript/styles/mastodon/variables.scss
@@ -7,8 +7,8 @@ $blurple-600: #563acc; // Iris
$blurple-500: #6364ff; // Brand purple
$blurple-400: #7477fd; // Medium slate blue
$blurple-300: #858afa; // Faded Blue
-$grey-600: #4e4c5a; // Trout
-$grey-100: #dadaf3; // Topaz
+$grey-600: hsl(240deg, 8%, 33%); // Trout
+$grey-100: hsl(240deg, 51%, 90%); // Topaz
$success-green: #79bd9a !default; // Padua
$error-red: $red-500 !default; // Cerise
@@ -18,10 +18,10 @@ $gold-star: #ca8f04 !default; // Dark Goldenrod
$red-bookmark: $warning-red;
// Values from the classic Mastodon UI
-$classic-base-color: #282c37; // Midnight Express
-$classic-primary-color: #9baec8; // Echo Blue
-$classic-secondary-color: #d9e1e8; // Pattens Blue
-$classic-highlight-color: #6364ff; // Brand purple
+$classic-base-color: hsl(240deg, 16%, 19%);
+$classic-primary-color: hsl(240deg, 29%, 70%);
+$classic-secondary-color: hsl(255deg, 25%, 88%);
+$classic-highlight-color: $blurple-500;
// Variables for defaults in UI
$base-shadow-color: $black !default;
@@ -88,6 +88,7 @@ $media-modal-media-max-width: 100%;
$media-modal-media-max-height: 80%;
$no-gap-breakpoint: 1175px;
+$mobile-breakpoint: 630px;
$font-sans-serif: 'mastodon-font-sans-serif' !default;
$font-display: 'mastodon-font-display' !default;
@@ -108,4 +109,9 @@ $font-monospace: 'mastodon-font-monospace' !default;
--surface-background-color: #{darken($ui-base-color, 4%)};
--surface-variant-background-color: #{$ui-base-color};
--surface-variant-active-background-color: #{lighten($ui-base-color, 4%)};
+ --on-surface-color: #{transparentize($ui-base-color, 0.5)};
+ --avatar-border-radius: 8px;
+ --error-background-color: #{darken($error-red, 16%)};
+ --error-active-background-color: #{darken($error-red, 12%)};
+ --on-error-color: #fff;
}
diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss
index 1f69f0cf01c..d810ee4bfc7 100644
--- a/app/javascript/styles/mastodon/widgets.scss
+++ b/app/javascript/styles/mastodon/widgets.scss
@@ -1,213 +1,4 @@
-@use 'sass:math';
-
-.hero-widget {
- margin-bottom: 10px;
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
-
- &:last-child {
- margin-bottom: 0;
- }
-
- &__img {
- width: 100%;
- position: relative;
- overflow: hidden;
- border-radius: 4px 4px 0 0;
- background: $base-shadow-color;
-
- img {
- object-fit: cover;
- display: block;
- width: 100%;
- height: 100%;
- margin: 0;
- border-radius: 4px 4px 0 0;
- }
- }
-
- &__text {
- background: $ui-base-color;
- padding: 20px;
- border-radius: 0 0 4px 4px;
- font-size: 15px;
- color: $darker-text-color;
- line-height: 20px;
- word-wrap: break-word;
- font-weight: 400;
-
- .emojione {
- width: 20px;
- height: 20px;
- margin: -3px 0 0;
- margin-inline-start: 0.075em;
- margin-inline-end: 0.075em;
- }
-
- p {
- margin-bottom: 20px;
-
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- em {
- display: inline;
- margin: 0;
- padding: 0;
- font-weight: 700;
- background: transparent;
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
- color: lighten($darker-text-color, 10%);
- }
-
- a {
- color: $secondary-text-color;
- text-decoration: none;
-
- &:hover {
- text-decoration: underline;
- }
- }
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- display: none;
- }
-}
-
-.endorsements-widget {
- margin-bottom: 10px;
- padding-bottom: 10px;
-
- h4 {
- padding: 10px;
- text-transform: uppercase;
- font-weight: 700;
- font-size: 13px;
- color: $darker-text-color;
- }
-
- .account {
- padding: 10px 0;
-
- &:last-child {
- border-bottom: 0;
- }
-
- .account__display-name {
- display: flex;
- align-items: center;
- }
- }
-
- .trends__item {
- padding: 10px;
- }
-}
-
-.trends-widget {
- h4 {
- color: $darker-text-color;
- }
-}
-
-.placeholder-widget {
- padding: 16px;
- border-radius: 4px;
- border: 2px dashed $dark-text-color;
- text-align: center;
- color: $darker-text-color;
- margin-bottom: 10px;
-}
-
-.moved-account-widget {
- padding: 15px;
- padding-bottom: 20px;
- border-radius: 4px;
- background: $ui-base-color;
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
- color: $secondary-text-color;
- font-weight: 400;
- margin-bottom: 10px;
-
- strong,
- a {
- font-weight: 500;
-
- @each $lang in $cjk-langs {
- &:lang(#{$lang}) {
- font-weight: 700;
- }
- }
- }
-
- a {
- color: inherit;
- text-decoration: underline;
-
- &.mention {
- text-decoration: none;
-
- span {
- text-decoration: none;
- }
-
- &:focus,
- &:hover,
- &:active {
- text-decoration: none;
-
- span {
- text-decoration: underline;
- }
- }
- }
- }
-
- &__message {
- margin-bottom: 15px;
-
- .fa {
- margin-inline-end: 5px;
- color: $darker-text-color;
- }
- }
-
- &__card {
- .detailed-status__display-avatar {
- position: relative;
- cursor: pointer;
- }
-
- .detailed-status__display-name {
- margin-bottom: 0;
- text-decoration: none;
-
- span {
- font-weight: 400;
- }
- }
- }
-}
-
-.memoriam-widget {
- padding: 20px;
- border-radius: 4px;
- background: $base-shadow-color;
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
- font-size: 14px;
- color: $darker-text-color;
- margin-bottom: 10px;
-}
-
.directory {
- background: $ui-base-color;
- border-radius: 4px;
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
-
&__tag {
box-sizing: border-box;
margin-bottom: 10px;
@@ -217,7 +8,7 @@
display: flex;
align-items: center;
justify-content: space-between;
- background: $ui-base-color;
+ border: 1px solid var(--background-border-color);
border-radius: 4px;
padding: 15px;
text-decoration: none;
@@ -229,7 +20,7 @@
&:hover,
&:active,
&:focus {
- background: lighten($ui-base-color, 8%);
+ background: $ui-base-color;
}
}
@@ -351,7 +142,7 @@
&:focus,
&:hover,
&:active {
- text-decoration: underline;
+ color: $highlight-text-color;
}
}
}
@@ -366,9 +157,7 @@
padding-inline-end: 16px;
}
- .fa {
- font-size: 16px;
-
+ .icon {
&.active {
color: $highlight-text-color;
}
@@ -388,27 +177,3 @@
}
}
}
-
-.moved-account-widget,
-.memoriam-widget,
-.directory {
- @media screen and (max-width: $no-gap-breakpoint) {
- margin-bottom: 0;
- box-shadow: none;
- border-radius: 0;
- }
-}
-
-.placeholder-widget {
- a {
- text-decoration: none;
- font-weight: 500;
- color: $ui-highlight-color;
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: underline;
- }
- }
-}
diff --git a/app/javascript/svg-icons/actual_size.svg b/app/javascript/svg-icons/actual_size.svg
new file mode 100644
index 00000000000..75939cac875
--- /dev/null
+++ b/app/javascript/svg-icons/actual_size.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index 7ec7e84bd16..09a8caf1fcc 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -8,44 +8,11 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
dereference_object!
- case @object['type']
- when 'EncryptedMessage'
- create_encrypted_message
- else
- create_status
- end
+ create_status
end
private
- def create_encrypted_message
- return reject_payload! if non_matching_uri_hosts?(@account.uri, object_uri) || @options[:delivered_to_account_id].blank?
-
- target_account = Account.find(@options[:delivered_to_account_id])
- target_device = target_account.devices.find_by(device_id: @object.dig('to', 'deviceId'))
-
- return if target_device.nil?
-
- target_device.encrypted_messages.create!(
- from_account: @account,
- from_device_id: @object.dig('attributedTo', 'deviceId'),
- type: @object['messageType'],
- body: @object['cipherText'],
- digest: @object.dig('digest', 'digestValue'),
- message_franking: message_franking.to_token
- )
- end
-
- def message_franking
- MessageFranking.new(
- hmac: @object.dig('digest', 'digestValue'),
- original_franking: @object['messageFranking'],
- source_account_id: @account.id,
- target_account_id: @options[:delivered_to_account_id],
- timestamp: Time.now.utc
- )
- end
-
def create_status
return reject_payload! if unsupported_object_type? || non_matching_uri_hosts?(@account.uri, object_uri) || tombstone_exists? || !related_to_local_activity?
@@ -104,7 +71,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
def find_existing_status
status = status_from_uri(object_uri)
status ||= Status.find_by(uri: @object['atomUri']) if @object['atomUri'].present?
- status
+ status if status&.account_id == @account.id
end
def process_status_params
@@ -336,13 +303,15 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
def fetch_replies(status)
collection = @object['replies']
- return if collection.nil?
+ return if collection.blank?
replies = ActivityPub::FetchRepliesService.new.call(status, collection, allow_synchronous_requests: false, request_id: @options[:request_id])
return unless replies.nil?
uri = value_or_id(collection)
ActivityPub::FetchRepliesWorker.perform_async(status.id, uri, { 'request_id' => @options[:request_id] }) unless uri.nil?
+ rescue => e
+ Rails.logger.warn "Error fetching replies: #{e}"
end
def conversation_from_uri(uri)
@@ -373,7 +342,15 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def converted_text
- linkify([@status_parser.title.presence, @status_parser.spoiler_text.presence, @status_parser.url || @status_parser.uri].compact.join("\n\n"))
+ [formatted_title, @status_parser.spoiler_text.presence, formatted_url].compact.join("\n\n")
+ end
+
+ def formatted_title
+ "#{@status_parser.title}
" if @status_parser.title.present?
+ end
+
+ def formatted_url
+ linkify(@status_parser.url || @status_parser.uri)
end
def unsupported_media_type?(mime_type)
diff --git a/app/lib/activitypub/adapter.rb b/app/lib/activitypub/adapter.rb
index 098b6296fb0..5b9437eb8da 100644
--- a/app/lib/activitypub/adapter.rb
+++ b/app/lib/activitypub/adapter.rb
@@ -20,6 +20,6 @@ class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base
serialized_hash = serialized_hash.select { |k, _| options[:fields].include?(k) } if options[:fields]
serialized_hash = self.class.transform_key_casing!(serialized_hash, instance_options)
- { '@context' => serialized_context(named_contexts, context_extensions) }.merge(serialized_hash)
+ { '@context': serialized_context(named_contexts, context_extensions) }.merge(serialized_hash)
end
end
diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb
index 9459fdd8b76..c42313b05ee 100644
--- a/app/lib/activitypub/linked_data_signature.rb
+++ b/app/lib/activitypub/linked_data_signature.rb
@@ -4,6 +4,7 @@ class ActivityPub::LinkedDataSignature
include JsonLdHelper
CONTEXT = 'https://w3id.org/identity/v1'
+ SIGNATURE_CONTEXT = 'https://w3id.org/security/v1'
def initialize(json)
@json = json.with_indifferent_access
@@ -46,7 +47,13 @@ class ActivityPub::LinkedDataSignature
signature = Base64.strict_encode64(keypair.sign(OpenSSL::Digest.new('SHA256'), to_be_signed))
- @json.merge('signature' => options.merge('signatureValue' => signature))
+ # Mastodon's context is either an array or a single URL
+ context_with_security = Array(@json['@context'])
+ context_with_security << 'https://w3id.org/security/v1'
+ context_with_security.uniq!
+ context_with_security = context_with_security.first if context_with_security.size == 1
+
+ @json.merge('signature' => options.merge('signatureValue' => signature), '@context' => context_with_security)
end
private
diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb
index 86432863175..23b44be372f 100644
--- a/app/lib/activitypub/tag_manager.rb
+++ b/app/lib/activitypub/tag_manager.rb
@@ -74,6 +74,18 @@ class ActivityPub::TagManager
account_status_replies_url(target.account, target, page_params)
end
+ def likes_uri_for(target)
+ raise ArgumentError, 'target must be a local activity' unless %i(note comment activity).include?(target.object_type) && target.local?
+
+ account_status_likes_url(target.account, target)
+ end
+
+ def shares_uri_for(target)
+ raise ArgumentError, 'target must be a local activity' unless %i(note comment activity).include?(target.object_type) && target.local?
+
+ account_status_shares_url(target.account, target)
+ end
+
def followers_uri_for(target)
target.local? ? account_followers_url(target) : target.followers_url.presence
end
diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb
index a260a66e2af..84ffc41d742 100644
--- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb
+++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb
@@ -85,7 +85,14 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
def imagemagick_version
return if Rails.configuration.x.use_vips
- version = `convert -version`.match(/Version: ImageMagick ([\d\.]+)/)[1]
+ imagemagick_binary = Paperclip.options[:is_windows] ? 'magick convert' : 'convert'
+
+ version_output = Terrapin::CommandLine.new(imagemagick_binary, '-version').run
+ version_match = version_output.match(/Version: ImageMagick (\S+)/)[1].strip
+
+ return nil unless version_match
+
+ version = version_match
{
key: 'imagemagick',
@@ -93,12 +100,13 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
value: version,
human_value: version,
}
- rescue Errno::ENOENT
+ rescue Terrapin::CommandNotFoundError, Terrapin::ExitStatusError, Paperclip::Errors::CommandNotFoundError, Paperclip::Errors::CommandFailedError
nil
end
def ffmpeg_version
- version = `ffmpeg -version`.match(/ffmpeg version ([\d\.]+)/)[1]
+ version_output = Terrapin::CommandLine.new(Rails.configuration.x.ffprobe_binary, '-show_program_version -v 0 -of json').run
+ version = Oj.load(version_output, mode: :strict, symbol_keys: true).dig(:program_version, :version)
{
key: 'ffmpeg',
@@ -106,7 +114,7 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
value: version,
human_value: version,
}
- rescue Errno::ENOENT
+ rescue Terrapin::CommandNotFoundError, Terrapin::ExitStatusError, Oj::ParseError
nil
end
diff --git a/app/lib/annual_report/archetype.rb b/app/lib/annual_report/archetype.rb
index ea9ef366df7..c02b28dfda2 100644
--- a/app/lib/annual_report/archetype.rb
+++ b/app/lib/annual_report/archetype.rb
@@ -28,22 +28,18 @@ class AnnualReport::Archetype < AnnualReport::Source
end
def polls_count
- @polls_count ||= base_scope.where.not(poll_id: nil).count
+ @polls_count ||= report_statuses.where.not(poll_id: nil).count
end
def reblogs_count
- @reblogs_count ||= base_scope.where.not(reblog_of_id: nil).count
+ @reblogs_count ||= report_statuses.where.not(reblog_of_id: nil).count
end
def replies_count
- @replies_count ||= base_scope.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count
+ @replies_count ||= report_statuses.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count
end
def standalone_count
- @standalone_count ||= base_scope.without_replies.without_reblogs.count
- end
-
- def base_scope
- @account.statuses.where(id: year_as_snowflake_range)
+ @standalone_count ||= report_statuses.without_replies.without_reblogs.count
end
end
diff --git a/app/lib/annual_report/commonly_interacted_with_accounts.rb b/app/lib/annual_report/commonly_interacted_with_accounts.rb
index af5e854c222..e7482f0d52a 100644
--- a/app/lib/annual_report/commonly_interacted_with_accounts.rb
+++ b/app/lib/annual_report/commonly_interacted_with_accounts.rb
@@ -17,6 +17,6 @@ class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source
private
def commonly_interacted_with_accounts
- @account.statuses.reorder(nil).where(id: year_as_snowflake_range).where.not(in_reply_to_account_id: @account.id).group(:in_reply_to_account_id).having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('in_reply_to_account_id, count(*) AS total'))
+ report_statuses.where.not(in_reply_to_account_id: @account.id).group(:in_reply_to_account_id).having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('in_reply_to_account_id, count(*) AS total'))
end
end
diff --git a/app/lib/annual_report/most_reblogged_accounts.rb b/app/lib/annual_report/most_reblogged_accounts.rb
index e3e8a7c90b1..39ed3868ea0 100644
--- a/app/lib/annual_report/most_reblogged_accounts.rb
+++ b/app/lib/annual_report/most_reblogged_accounts.rb
@@ -17,6 +17,6 @@ class AnnualReport::MostRebloggedAccounts < AnnualReport::Source
private
def most_reblogged_accounts
- @account.statuses.reorder(nil).where(id: year_as_snowflake_range).where.not(reblog_of_id: nil).joins(reblog: :account).group('accounts.id').having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('accounts.id, count(*) as total'))
+ report_statuses.where.not(reblog_of_id: nil).joins(reblog: :account).group('accounts.id').having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('accounts.id, count(*) as total'))
end
end
diff --git a/app/lib/annual_report/most_used_apps.rb b/app/lib/annual_report/most_used_apps.rb
index 85ff1ff86e1..fb1ca1d1670 100644
--- a/app/lib/annual_report/most_used_apps.rb
+++ b/app/lib/annual_report/most_used_apps.rb
@@ -17,6 +17,6 @@ class AnnualReport::MostUsedApps < AnnualReport::Source
private
def most_used_apps
- @account.statuses.reorder(nil).where(id: year_as_snowflake_range).joins(:application).group('oauth_applications.name').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('oauth_applications.name, count(*) as total'))
+ report_statuses.joins(:application).group('oauth_applications.name').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('oauth_applications.name, count(*) as total'))
end
end
diff --git a/app/lib/annual_report/percentiles.rb b/app/lib/annual_report/percentiles.rb
index 9fe4698ee5d..0251cb66ad2 100644
--- a/app/lib/annual_report/percentiles.rb
+++ b/app/lib/annual_report/percentiles.rb
@@ -17,7 +17,7 @@ class AnnualReport::Percentiles < AnnualReport::Source
end
def statuses_created
- @statuses_created ||= @account.statuses.where(id: year_as_snowflake_range).count
+ @statuses_created ||= report_statuses.count
end
def total_with_fewer_followers
diff --git a/app/lib/annual_report/source.rb b/app/lib/annual_report/source.rb
index 1ccb622676f..cb9f7b16e32 100644
--- a/app/lib/annual_report/source.rb
+++ b/app/lib/annual_report/source.rb
@@ -10,7 +10,24 @@ class AnnualReport::Source
protected
+ def report_statuses
+ @account
+ .statuses
+ .where(id: year_as_snowflake_range)
+ .reorder(nil)
+ end
+
def year_as_snowflake_range
- (Mastodon::Snowflake.id_at(DateTime.new(year, 1, 1))..Mastodon::Snowflake.id_at(DateTime.new(year, 12, 31)))
+ (beginning_snowflake_id..ending_snowflake_id)
+ end
+
+ private
+
+ def beginning_snowflake_id
+ Mastodon::Snowflake.id_at DateTime.new(year).beginning_of_year
+ end
+
+ def ending_snowflake_id
+ Mastodon::Snowflake.id_at DateTime.new(year).end_of_year
end
end
diff --git a/app/lib/annual_report/time_series.rb b/app/lib/annual_report/time_series.rb
index a144bac0d15..65a188eda7b 100644
--- a/app/lib/annual_report/time_series.rb
+++ b/app/lib/annual_report/time_series.rb
@@ -17,7 +17,7 @@ class AnnualReport::TimeSeries < AnnualReport::Source
private
def statuses_per_month
- @statuses_per_month ||= @account.statuses.reorder(nil).where(id: year_as_snowflake_range).group(:period).pluck(Arel.sql("date_part('month', created_at)::int AS period, count(*)")).to_h
+ @statuses_per_month ||= report_statuses.group(:period).pluck(Arel.sql("date_part('month', created_at)::int AS period, count(*)")).to_h
end
def following_per_month
diff --git a/app/lib/annual_report/top_hashtags.rb b/app/lib/annual_report/top_hashtags.rb
index 488dacb1b45..32bd10d6989 100644
--- a/app/lib/annual_report/top_hashtags.rb
+++ b/app/lib/annual_report/top_hashtags.rb
@@ -17,6 +17,6 @@ class AnnualReport::TopHashtags < AnnualReport::Source
private
def top_hashtags
- Tag.joins(:statuses).where(statuses: { id: @account.statuses.where(id: year_as_snowflake_range).reorder(nil).select(:id) }).group(:id).having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('COALESCE(tags.display_name, tags.name), count(*) AS total'))
+ Tag.joins(:statuses).where(statuses: { id: report_statuses.select(:id) }).group(:id).having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('COALESCE(tags.display_name, tags.name), count(*) AS total'))
end
end
diff --git a/app/lib/annual_report/top_statuses.rb b/app/lib/annual_report/top_statuses.rb
index 1ab1709523b..c5abeaa58d8 100644
--- a/app/lib/annual_report/top_statuses.rb
+++ b/app/lib/annual_report/top_statuses.rb
@@ -16,6 +16,6 @@ class AnnualReport::TopStatuses < AnnualReport::Source
end
def base_scope
- @account.statuses.public_visibility.joins(:status_stat).where(id: year_as_snowflake_range).reorder(nil)
+ report_statuses.public_visibility.joins(:status_stat)
end
end
diff --git a/app/lib/annual_report/type_distribution.rb b/app/lib/annual_report/type_distribution.rb
index fc12a6f1f4b..fe38d8a8a2d 100644
--- a/app/lib/annual_report/type_distribution.rb
+++ b/app/lib/annual_report/type_distribution.rb
@@ -4,17 +4,11 @@ class AnnualReport::TypeDistribution < AnnualReport::Source
def generate
{
type_distribution: {
- total: base_scope.count,
- reblogs: base_scope.where.not(reblog_of_id: nil).count,
- replies: base_scope.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count,
- standalone: base_scope.without_replies.without_reblogs.count,
+ total: report_statuses.count,
+ reblogs: report_statuses.where.not(reblog_of_id: nil).count,
+ replies: report_statuses.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count,
+ standalone: report_statuses.without_replies.without_reblogs.count,
},
}
end
-
- private
-
- def base_scope
- @account.statuses.where(id: year_as_snowflake_range)
- end
end
diff --git a/app/lib/application_extension.rb b/app/lib/application_extension.rb
index 2fea1057cb6..d7aaeba5bde 100644
--- a/app/lib/application_extension.rb
+++ b/app/lib/application_extension.rb
@@ -16,7 +16,7 @@ module ApplicationExtension
# dependent: delete_all, which means the ActiveRecord callback in
# AccessTokenExtension is not run, so instead we manually announce to
# streaming that these tokens are being deleted.
- before_destroy :push_to_streaming_api, prepend: true
+ before_destroy :close_streaming_sessions, prepend: true
end
def confirmation_redirect_uri
@@ -29,10 +29,12 @@ module ApplicationExtension
redirect_uri.split
end
- def push_to_streaming_api
+ def close_streaming_sessions(resource_owner = nil)
# TODO: #28793 Combine into a single topic
payload = Oj.dump(event: :kill)
- access_tokens.in_batches do |tokens|
+ scope = access_tokens
+ scope = scope.where(resource_owner_id: resource_owner.id) unless resource_owner.nil?
+ scope.in_batches do |tokens|
redis.pipelined do |pipeline|
tokens.ids.each do |id|
pipeline.publish("timeline:access_token:#{id}", payload)
diff --git a/app/lib/content_security_policy.rb b/app/lib/content_security_policy.rb
index 210f37cea0d..0b60b0d98c9 100644
--- a/app/lib/content_security_policy.rb
+++ b/app/lib/content_security_policy.rb
@@ -13,6 +13,22 @@ class ContentSecurityPolicy
[assets_host, cdn_host_value, paperclip_root_url].compact
end
+ def sso_host
+ return unless ENV['ONE_CLICK_SSO_LOGIN'] == 'true' && ENV['OMNIAUTH_ONLY'] == 'true' && Devise.omniauth_providers.length == 1
+
+ provider = Devise.omniauth_configs[Devise.omniauth_providers[0]]
+ @sso_host ||= begin
+ case provider.provider
+ when :cas
+ provider.cas_url
+ when :saml
+ provider.options[:idp_sso_target_url]
+ when :openid_connect
+ provider.options.dig(:client_options, :authorization_endpoint) || OpenIDConnect::Discovery::Provider::Config.discover!(provider.options[:issuer]).authorization_endpoint
+ end
+ end
+ end
+
private
def url_from_configured_asset_host
diff --git a/app/lib/emoji_formatter.rb b/app/lib/emoji_formatter.rb
index 2a3683c499f..5f1a4651f73 100644
--- a/app/lib/emoji_formatter.rb
+++ b/app/lib/emoji_formatter.rb
@@ -24,7 +24,7 @@ class EmojiFormatter
def to_s
return html if custom_emojis.empty? || html.blank?
- tree = Nokogiri::HTML.fragment(html)
+ tree = Nokogiri::HTML5.fragment(html)
tree.xpath('./text()|.//text()[not(ancestor[@class="invisible"])]').to_a.each do |node|
i = -1
inside_shortname = false
@@ -43,8 +43,8 @@ class EmojiFormatter
next unless (char_after.nil? || !DISALLOWED_BOUNDING_REGEX.match?(char_after)) && (emoji = emoji_map[shortcode])
- result << Nokogiri::XML::Text.new(text[last_index..shortname_start_index - 1], tree.document) if shortname_start_index.positive?
- result << Nokogiri::HTML.fragment(tag_for_emoji(shortcode, emoji))
+ result << tree.document.create_text_node(text[last_index..shortname_start_index - 1]) if shortname_start_index.positive?
+ result << tree.document.fragment(tag_for_emoji(shortcode, emoji))
last_index = i + 1
elsif text[i] == ':' && (i.zero? || !DISALLOWED_BOUNDING_REGEX.match?(text[i - 1]))
@@ -53,7 +53,7 @@ class EmojiFormatter
end
end
- result << Nokogiri::XML::Text.new(text[last_index..], tree.document)
+ result << tree.document.create_text_node(text[last_index..])
node.replace(result)
end
diff --git a/app/lib/entity_cache.rb b/app/lib/entity_cache.rb
index 80b0046eeaf..e647dcab7f8 100644
--- a/app/lib/entity_cache.rb
+++ b/app/lib/entity_cache.rb
@@ -27,7 +27,7 @@ class EntityCache
end
unless uncached_ids.empty?
- uncached = CustomEmoji.where(shortcode: shortcodes, domain: domain, disabled: false).index_by(&:shortcode)
+ uncached = CustomEmoji.enabled.where(shortcode: shortcodes, domain: domain).index_by(&:shortcode)
uncached.each_value { |item| Rails.cache.write(to_key(:emoji, item.shortcode, domain), item, expires_in: MAX_EXPIRATION) }
end
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index 1fb224a1337..97cb25d58f5 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -558,7 +558,7 @@ class FeedManager
arr = crutches[:active_mentions][s.id] || []
arr.push(s.account_id)
- if s.reblog?
+ if s.reblog? && s.reblog.present?
arr.push(s.reblog.account_id)
arr.concat(crutches[:active_mentions][s.reblog_of_id] || [])
end
diff --git a/app/lib/inline_renderer.rb b/app/lib/inline_renderer.rb
index 0aebb13fce4..af967ac215d 100644
--- a/app/lib/inline_renderer.rb
+++ b/app/lib/inline_renderer.rb
@@ -20,8 +20,6 @@ class InlineRenderer
serializer = REST::AnnouncementSerializer
when :reaction
serializer = REST::ReactionSerializer
- when :encrypted_message
- serializer = REST::EncryptedMessageSerializer
else
return
end
diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb
index dbfdd33fcca..e4e815c38d0 100644
--- a/app/lib/link_details_extractor.rb
+++ b/app/lib/link_details_extractor.rb
@@ -62,7 +62,8 @@ class LinkDetailsExtractor
end
def author_name
- author['name']
+ name = author['name']
+ name.is_a?(Array) ? name.join(', ') : name
end
def author_url
@@ -100,7 +101,7 @@ class LinkDetailsExtractor
end
def json
- @json ||= root_array(Oj.load(@data)).find { |obj| SUPPORTED_TYPES.include?(obj['@type']) } || {}
+ @json ||= root_array(Oj.load(@data)).compact.find { |obj| SUPPORTED_TYPES.include?(obj['@type']) } || {}
end
end
@@ -156,7 +157,7 @@ class LinkDetailsExtractor
end
def title
- html_entities.decode(structured_data&.headline || opengraph_tag('og:title') || document.xpath('//title').map(&:content).first).strip
+ html_entities.decode(structured_data&.headline || opengraph_tag('og:title') || document.xpath('//title').map(&:content).first)&.strip
end
def description
@@ -224,7 +225,7 @@ class LinkDetailsExtractor
end
def valid_url_or_nil(str, same_origin_only: false)
- return if str.blank? || str == 'null'
+ return if str.blank? || str == 'null' || str == 'undefined'
url = @original_url + Addressable::URI.parse(str)
@@ -273,10 +274,20 @@ class LinkDetailsExtractor
end
def detect_encoding_and_parse_document
- [detect_encoding, nil, @html_charset, 'UTF-8'].uniq.each do |encoding|
- document = Nokogiri::HTML(@html, nil, encoding)
- return document if document.to_s.valid_encoding?
+ html = nil
+ encoding = nil
+
+ [detect_encoding, header_encoding].compact.each do |enc|
+ html = @html.dup.force_encoding(enc)
+ if html.valid_encoding?
+ encoding = enc
+ break
+ end
end
+
+ html = @html unless encoding
+
+ Nokogiri::HTML5(html, nil, encoding)
end
def detect_encoding
@@ -284,6 +295,13 @@ class LinkDetailsExtractor
guess&.fetch(:confidence, 0).to_i > 60 ? guess&.fetch(:encoding, nil) : nil
end
+ def header_encoding
+ Encoding.find(@html_charset).name if @html_charset
+ rescue ArgumentError
+ # Encoding from HTTP header is not recognized by ruby
+ nil
+ end
+
def detector
@detector ||= CharlockHolmes::EncodingDetector.new.tap do |detector|
detector.strip_tags = true
diff --git a/app/lib/oauth_pre_authorization_extension.rb b/app/lib/oauth_pre_authorization_extension.rb
new file mode 100644
index 00000000000..1885e0823d8
--- /dev/null
+++ b/app/lib/oauth_pre_authorization_extension.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+module OauthPreAuthorizationExtension
+ extend ActiveSupport::Concern
+
+ included do
+ validate :code_challenge_method_s256, error: Doorkeeper::Errors::InvalidCodeChallengeMethod
+ end
+
+ def validate_code_challenge_method_s256
+ code_challenge.blank? || code_challenge_method == 'S256'
+ end
+end
diff --git a/app/lib/permalink_redirector.rb b/app/lib/permalink_redirector.rb
index f551f69db85..142a05d10d3 100644
--- a/app/lib/permalink_redirector.rb
+++ b/app/lib/permalink_redirector.rb
@@ -83,6 +83,6 @@ class PermalinkRedirector
end
def path_segments
- @path_segments ||= @path.delete_prefix('/deck').delete_prefix('/').split('/')
+ @path_segments ||= @path.split('?')[0].delete_prefix('/deck').delete_prefix('/').split('/')
end
end
diff --git a/app/lib/plain_text_formatter.rb b/app/lib/plain_text_formatter.rb
index d1ff6808b2a..f960ba7acc4 100644
--- a/app/lib/plain_text_formatter.rb
+++ b/app/lib/plain_text_formatter.rb
@@ -16,7 +16,7 @@ class PlainTextFormatter
if local?
text
else
- node = Nokogiri::HTML.fragment(insert_newlines)
+ node = Nokogiri::HTML5.fragment(insert_newlines)
# Elements that are entirely removed with our Sanitize config
node.xpath('.//iframe|.//math|.//noembed|.//noframes|.//noscript|.//plaintext|.//script|.//style|.//svg|.//xmp').remove
node.text.chomp
diff --git a/app/lib/private_address_check.rb b/app/lib/private_address_check.rb
new file mode 100644
index 00000000000..d00b16e66b5
--- /dev/null
+++ b/app/lib/private_address_check.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+module PrivateAddressCheck
+ module_function
+
+ CIDR_LIST = [
+ IPAddr.new('0.0.0.0/8'), # Current network (only valid as source address)
+ IPAddr.new('100.64.0.0/10'), # Shared Address Space
+ IPAddr.new('172.16.0.0/12'), # Private network
+ IPAddr.new('192.0.0.0/24'), # IETF Protocol Assignments
+ IPAddr.new('192.0.2.0/24'), # TEST-NET-1, documentation and examples
+ IPAddr.new('192.88.99.0/24'), # IPv6 to IPv4 relay (includes 2002::/16)
+ IPAddr.new('198.18.0.0/15'), # Network benchmark tests
+ IPAddr.new('198.51.100.0/24'), # TEST-NET-2, documentation and examples
+ IPAddr.new('203.0.113.0/24'), # TEST-NET-3, documentation and examples
+ IPAddr.new('224.0.0.0/4'), # IP multicast (former Class D network)
+ IPAddr.new('240.0.0.0/4'), # Reserved (former Class E network)
+ IPAddr.new('255.255.255.255'), # Broadcast
+ IPAddr.new('64:ff9b::/96'), # IPv4/IPv6 translation (RFC 6052)
+ IPAddr.new('100::/64'), # Discard prefix (RFC 6666)
+ IPAddr.new('2001::/32'), # Teredo tunneling
+ IPAddr.new('2001:10::/28'), # Deprecated (previously ORCHID)
+ IPAddr.new('2001:20::/28'), # ORCHIDv2
+ IPAddr.new('2001:db8::/32'), # Addresses used in documentation and example source code
+ IPAddr.new('2002::/16'), # 6to4
+ IPAddr.new('fc00::/7'), # Unique local address
+ IPAddr.new('ff00::/8'), # Multicast
+ ].freeze
+
+ def private_address?(address)
+ address.private? || address.loopback? || address.link_local? || CIDR_LIST.any? { |cidr| cidr.include?(address) }
+ end
+end
diff --git a/app/lib/redis_configuration.rb b/app/lib/redis_connection.rb
similarity index 65%
rename from app/lib/redis_configuration.rb
rename to app/lib/redis_connection.rb
index fb1249640fd..24e376e6a5c 100644
--- a/app/lib/redis_configuration.rb
+++ b/app/lib/redis_connection.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class RedisConfiguration
+class RedisConnection
class << self
def establish_pool(new_pool_size)
@pool&.shutdown(&:close)
@@ -22,33 +22,24 @@ class RedisConfiguration
end
end
+ attr_reader :config
+
+ def initialize
+ @config = REDIS_CONFIGURATION.base
+ end
+
def connection
- if namespace?
+ namespace = config[:namespace]
+ if namespace.present?
Redis::Namespace.new(namespace, redis: raw_connection)
else
raw_connection
end
end
- def namespace?
- namespace.present?
- end
-
- def namespace
- ENV.fetch('REDIS_NAMESPACE', nil)
- end
-
- def url
- ENV['REDIS_URL']
- end
-
- def redis_driver
- ENV.fetch('REDIS_DRIVER', 'hiredis') == 'ruby' ? :ruby : :hiredis
- end
-
private
def raw_connection
- Redis.new(url: url, driver: redis_driver)
+ Redis.new(**config)
end
end
diff --git a/app/lib/request.rb b/app/lib/request.rb
index 8d4120868d4..d7da9fe63c1 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -77,7 +77,7 @@ class Request
@url = Addressable::URI.parse(url).normalize
@http_client = options.delete(:http_client)
@allow_local = options.delete(:allow_local)
- @full_path = options.delete(:with_query_string)
+ @full_path = !options.delete(:omit_query_string)
@options = options.merge(socket_class: use_proxy? || @allow_local ? ProxySocket : Socket)
@options = @options.merge(timeout_class: PerOperationWithDeadline, timeout_options: TIMEOUT)
@options = @options.merge(proxy_url) if use_proxy?
@@ -234,13 +234,17 @@ class Request
end
def body_with_limit(limit = 1.megabyte)
- raise Mastodon::LengthValidationError if content_length.present? && content_length > limit
+ require_limit_not_exceeded!(limit)
contents = truncated_body(limit)
- raise Mastodon::LengthValidationError if contents.bytesize > limit
+ raise Mastodon::LengthValidationError, "Body size exceeds limit of #{limit}" if contents.bytesize > limit
contents
end
+
+ def require_limit_not_exceeded!(limit)
+ raise Mastodon::LengthValidationError, "Content-Length #{content_length} exceeds limit of #{limit}" if content_length.present? && content_length > limit
+ end
end
if ::HTTP::Response.methods.include?(:body_with_limit) && !Rails.env.production?
diff --git a/app/lib/search_query_transformer.rb b/app/lib/search_query_transformer.rb
index 927495eace9..1306ed12eda 100644
--- a/app/lib/search_query_transformer.rb
+++ b/app/lib/search_query_transformer.rb
@@ -168,15 +168,15 @@ class SearchQueryTransformer < Parslet::Transform
when 'before'
@filter = :created_at
@type = :range
- @term = { lt: term, time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
+ @term = { lt: TermValidator.validate_date!(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
when 'after'
@filter = :created_at
@type = :range
- @term = { gt: term, time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
+ @term = { gt: TermValidator.validate_date!(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
when 'during'
@filter = :created_at
@type = :range
- @term = { gte: term, lte: term, time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
+ @term = { gte: TermValidator.validate_date!(term), lte: TermValidator.validate_date!(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
when 'in'
@operator = :flag
@term = term
@@ -224,8 +224,19 @@ class SearchQueryTransformer < Parslet::Transform
end
end
+ class TermValidator
+ STRICT_DATE_REGEX = /\A\d{4}-\d{2}-\d{2}\z/ # yyyy-MM-dd
+ EPOCH_MILLIS_REGEX = /\A\d{1,19}\z/
+
+ def self.validate_date!(value)
+ return value if value.match?(STRICT_DATE_REGEX) || value.match?(EPOCH_MILLIS_REGEX)
+
+ raise Mastodon::FilterValidationError, "Invalid date #{value}"
+ end
+ end
+
rule(clause: subtree(:clause)) do
- prefix = clause[:prefix][:term].to_s if clause[:prefix]
+ prefix = clause[:prefix][:term].to_s.downcase if clause[:prefix]
operator = clause[:operator]&.to_s
term = clause[:phrase] ? clause[:phrase].map { |term| term[:term].to_s }.join(' ') : clause[:term].to_s
diff --git a/app/lib/themes.rb b/app/lib/themes.rb
index b6da980733f..8b68c92e450 100644
--- a/app/lib/themes.rb
+++ b/app/lib/themes.rb
@@ -7,8 +7,8 @@ class Themes
include Singleton
THEME_COLORS = {
- dark: '#191b22',
- light: '#f3f5f7',
+ dark: '#181820',
+ light: '#ffffff',
}.freeze
def initialize
diff --git a/app/lib/vacuum/system_keys_vacuum.rb b/app/lib/vacuum/system_keys_vacuum.rb
deleted file mode 100644
index ceee2fd164b..00000000000
--- a/app/lib/vacuum/system_keys_vacuum.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# frozen_string_literal: true
-
-class Vacuum::SystemKeysVacuum
- def perform
- vacuum_expired_system_keys!
- end
-
- private
-
- def vacuum_expired_system_keys!
- SystemKey.expired.delete_all
- end
-end
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb
index ae8a3b1eae0..01a5dbc21d9 100644
--- a/app/lib/webfinger.rb
+++ b/app/lib/webfinger.rb
@@ -6,6 +6,8 @@ class Webfinger
class RedirectError < Error; end
class Response
+ ACTIVITYPUB_READY_TYPE = ['application/activity+json', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'].freeze
+
attr_reader :uri
def initialize(uri, body)
@@ -20,17 +22,28 @@ class Webfinger
end
def link(rel, attribute)
- links.dig(rel, attribute)
+ links.dig(rel, 0, attribute)
+ end
+
+ def self_link_href
+ self_link.fetch('href')
end
private
def links
- @links ||= @json['links'].index_by { |link| link['rel'] }
+ @links ||= @json.fetch('links', []).group_by { |link| link['rel'] }
+ end
+
+ def self_link
+ links.fetch('self', []).find do |link|
+ ACTIVITYPUB_READY_TYPE.include?(link['type'])
+ end
end
def validate_response!
raise Webfinger::Error, "Missing subject in response for #{@uri}" if subject.blank?
+ raise Webfinger::Error, "Missing self link in response for #{@uri}" if self_link.blank?
end
end
diff --git a/app/mailers/admin_mailer.rb b/app/mailers/admin_mailer.rb
index 8dd7b6e59fb..fffbbb3c6db 100644
--- a/app/mailers/admin_mailer.rb
+++ b/app/mailers/admin_mailer.rb
@@ -9,6 +9,8 @@ class AdminMailer < ApplicationMailer
before_action :process_params
before_action :set_instance
+ after_action :set_important_headers!, only: :new_critical_software_updates
+
default to: -> { @me.user_email }
def new_report(report)
@@ -56,10 +58,6 @@ class AdminMailer < ApplicationMailer
def new_critical_software_updates
@software_updates = SoftwareUpdate.where(urgent: true).to_a.sort_by(&:gem_version)
- headers['Priority'] = 'urgent'
- headers['X-Priority'] = '1'
- headers['Importance'] = 'high'
-
locale_for_account(@me) do
mail subject: default_i18n_subject(instance: @instance)
end
@@ -80,4 +78,12 @@ class AdminMailer < ApplicationMailer
def set_instance
@instance = Rails.configuration.x.local_domain
end
+
+ def set_important_headers!
+ headers(
+ 'Importance' => 'high',
+ 'Priority' => 'urgent',
+ 'X-Priority' => '1'
+ )
+ end
end
diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb
index 3312183d47d..9a209aa77b8 100644
--- a/app/mailers/application_mailer.rb
+++ b/app/mailers/application_mailer.rb
@@ -12,12 +12,14 @@ class ApplicationMailer < ActionMailer::Base
protected
def locale_for_account(account, &block)
- I18n.with_locale(account.user_locale || I18n.locale || I18n.default_locale, &block)
+ I18n.with_locale(account.user_locale || I18n.default_locale, &block)
end
def set_autoreply_headers!
- headers['Precedence'] = 'list'
- headers['X-Auto-Response-Suppress'] = 'All'
- headers['Auto-Submitted'] = 'auto-generated'
+ headers(
+ 'Auto-Submitted' => 'auto-generated',
+ 'Precedence' => 'list',
+ 'X-Auto-Response-Suppress' => 'All'
+ )
end
end
diff --git a/app/mailers/notification_mailer.rb b/app/mailers/notification_mailer.rb
index 4eb38ec3406..4c374f5d57f 100644
--- a/app/mailers/notification_mailer.rb
+++ b/app/mailers/notification_mailer.rb
@@ -6,52 +6,50 @@ class NotificationMailer < ApplicationMailer
:routing
before_action :process_params
- before_action :set_status, only: [:mention, :favourite, :reblog]
+ with_options only: %i(mention favourite reblog) do
+ before_action :set_status
+ after_action :thread_by_conversation!
+ end
before_action :set_account, only: [:follow, :favourite, :reblog, :follow_request]
after_action :set_list_headers!
+ before_deliver :verify_functional_user
+
default to: -> { email_address_with_name(@user.email, @me.username) }
layout 'mailer'
def mention
- return unless @user.functional? && @status.present?
+ return if @status.blank?
locale_for_account(@me) do
- thread_by_conversation(@status.conversation)
mail subject: default_i18n_subject(name: @status.account.acct)
end
end
def follow
- return unless @user.functional?
-
locale_for_account(@me) do
mail subject: default_i18n_subject(name: @account.acct)
end
end
def favourite
- return unless @user.functional? && @status.present?
+ return if @status.blank?
locale_for_account(@me) do
- thread_by_conversation(@status.conversation)
mail subject: default_i18n_subject(name: @account.acct)
end
end
def reblog
- return unless @user.functional? && @status.present?
+ return if @status.blank?
locale_for_account(@me) do
- thread_by_conversation(@status.conversation)
mail subject: default_i18n_subject(name: @account.acct)
end
end
def follow_request
- return unless @user.functional?
-
locale_for_account(@me) do
mail subject: default_i18n_subject(name: @account.acct)
end
@@ -75,18 +73,26 @@ class NotificationMailer < ApplicationMailer
@account = @notification.from_account
end
- def set_list_headers!
- headers['List-ID'] = "<#{@type}.#{@me.username}.#{Rails.configuration.x.local_domain}>"
- headers['List-Unsubscribe'] = "<#{@unsubscribe_url}>"
- headers['List-Unsubscribe-Post'] = 'List-Unsubscribe=One-Click'
+ def verify_functional_user
+ throw(:abort) unless @user.functional?
end
- def thread_by_conversation(conversation)
- return if conversation.nil?
+ def set_list_headers!
+ headers(
+ 'List-ID' => "<#{@type}.#{@me.username}.#{Rails.configuration.x.local_domain}>",
+ 'List-Unsubscribe-Post' => 'List-Unsubscribe=One-Click',
+ 'List-Unsubscribe' => "<#{@unsubscribe_url}>"
+ )
+ end
- msg_id = ""
+ def thread_by_conversation!
+ return if @status.conversation.nil?
- headers['In-Reply-To'] = msg_id
- headers['References'] = msg_id
+ conversation_message_id = ""
+
+ headers(
+ 'In-Reply-To' => conversation_message_id,
+ 'References' => conversation_message_id
+ )
end
end
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
index 81a2c0c6d04..5c9e5c96d91 100644
--- a/app/mailers/user_mailer.rb
+++ b/app/mailers/user_mailer.rb
@@ -33,7 +33,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: default_devise_subject
end
end
@@ -43,7 +43,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: default_devise_subject
end
end
@@ -53,7 +53,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: default_devise_subject
end
end
@@ -63,7 +63,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: default_devise_subject
end
end
@@ -73,7 +73,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: default_devise_subject
end
end
@@ -83,7 +83,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: default_devise_subject
end
end
@@ -93,7 +93,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: default_devise_subject
end
end
@@ -103,7 +103,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: default_devise_subject
end
end
@@ -114,7 +114,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: I18n.t('devise.mailer.webauthn_credential.added.subject')
end
end
@@ -125,7 +125,7 @@ class UserMailer < Devise::Mailer
return unless @resource.active_for_authentication?
- I18n.with_locale(locale) do
+ I18n.with_locale(locale(use_current_locale: true)) do
mail subject: I18n.t('devise.mailer.webauthn_credential.deleted.subject')
end
end
@@ -219,7 +219,7 @@ class UserMailer < Devise::Mailer
@instance = Rails.configuration.x.local_domain
end
- def locale
- @resource.locale.presence || I18n.locale || I18n.default_locale
+ def locale(use_current_locale: false)
+ @resource.locale.presence || (use_current_locale && I18n.locale) || I18n.default_locale
end
end
diff --git a/app/models/account.rb b/app/models/account.rb
index 8a990bb831d..078d7aaa056 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -44,22 +44,23 @@
# hide_collections :boolean
# avatar_storage_schema_version :integer
# header_storage_schema_version :integer
-# devices_url :string
# suspension_origin :integer
# sensitized_at :datetime
# trendable :boolean
# reviewed_at :datetime
# requested_review_at :datetime
# indexable :boolean default(FALSE), not null
+# attribution_domains :string default([]), is an Array
#
class Account < ApplicationRecord
self.ignored_columns += %w(
- subscription_expires_at
- secret
+ devices_url
+ hub_url
remote_url
salmon_url
- hub_url
+ secret
+ subscription_expires_at
trust_level
)
@@ -68,13 +69,15 @@ class Account < ApplicationRecord
INSTANCE_ACTOR_ID = -99
USERNAME_RE = /[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?/i
- MENTION_RE = %r{(? { local? && will_save_change_to_display_name? }
validates :note, note_length: { maximum: NOTE_LENGTH_LIMIT }, if: -> { local? && will_save_change_to_note? }
validates :fields, length: { maximum: DEFAULT_FIELDS_SIZE }, if: -> { local? && will_save_change_to_fields? }
- validates :uri, absence: true, if: :local?, on: :create
- validates :inbox_url, absence: true, if: :local?, on: :create
- validates :shared_inbox_url, absence: true, if: :local?, on: :create
- validates :followers_url, absence: true, if: :local?, on: :create
+ with_options on: :create do
+ validates :uri, absence: true, if: :local?
+ validates :inbox_url, absence: true, if: :local?
+ validates :shared_inbox_url, absence: true, if: :local?
+ validates :followers_url, absence: true, if: :local?
+ end
normalizes :username, with: ->(username) { username.squish }
@@ -126,7 +133,8 @@ class Account < ApplicationRecord
scope :without_silenced, -> { where(silenced_at: nil) }
scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) }
scope :recent, -> { reorder(id: :desc) }
- scope :bots, -> { where(actor_type: %w(Application Service)) }
+ scope :bots, -> { where(actor_type: AUTOMATED_ACTOR_TYPES) }
+ scope :non_automated, -> { where.not(actor_type: AUTOMATED_ACTOR_TYPES) }
scope :groups, -> { where(actor_type: 'Group') }
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
scope :matches_uri_prefix, ->(value) { where(arel_table[:uri].matches("#{sanitize_sql_like(value)}/%", false, true)).or(where(uri: value)) }
@@ -144,6 +152,8 @@ class Account < ApplicationRecord
scope :dormant, -> { joins(:account_stat).merge(AccountStat.without_recent_activity) }
scope :with_username, ->(value) { where arel_table[:username].lower.eq(value.to_s.downcase) }
scope :with_domain, ->(value) { where arel_table[:domain].lower.eq(value&.to_s&.downcase) }
+ scope :without_memorial, -> { where(memorial: false) }
+ scope :duplicate_uris, -> { select(:uri, Arel.star.count).group(:uri).having(Arel.star.count.gt(1)) }
after_update_commit :trigger_update_webhooks
@@ -180,7 +190,7 @@ class Account < ApplicationRecord
end
def bot?
- %w(Application Service).include? actor_type
+ AUTOMATED_ACTOR_TYPES.include?(actor_type)
end
def instance_actor?
@@ -249,6 +259,10 @@ class Account < ApplicationRecord
suspended_at.present? && !instance_actor?
end
+ def suspended_locally?
+ suspended? && suspension_origin_local?
+ end
+
def suspended_permanently?
suspended? && deletion_request.nil?
end
@@ -424,22 +438,6 @@ class Account < ApplicationRecord
@synchronization_uri_prefix ||= "#{uri[URL_PREFIX_RE]}/"
end
- def requires_review?
- reviewed_at.nil?
- end
-
- def reviewed?
- reviewed_at.present?
- end
-
- def requested_review?
- requested_review_at.present?
- end
-
- def requires_review_notification?
- requires_review? && !requested_review?
- end
-
class << self
def readonly_attributes
super - %w(statuses_count following_count followers_count)
diff --git a/app/models/account/field.rb b/app/models/account/field.rb
index 2bada6954b4..bcd89015de0 100644
--- a/app/models/account/field.rb
+++ b/app/models/account/field.rb
@@ -73,10 +73,10 @@ class Account::Field < ActiveModelSerializers::Model
end
def extract_url_from_html
- doc = Nokogiri::HTML(value).at_xpath('//body')
+ doc = Nokogiri::HTML5.fragment(value)
return if doc.nil?
- return if doc.children.size > 1
+ return if doc.children.size != 1
element = doc.children.first
diff --git a/app/models/account_migration.rb b/app/models/account_migration.rb
index dc22e329421..7a01e250e2c 100644
--- a/app/models/account_migration.rb
+++ b/app/models/account_migration.rb
@@ -31,10 +31,14 @@ class AccountMigration < ApplicationRecord
validate :validate_migration_cooldown
validate :validate_target_account
- scope :within_cooldown, ->(now = Time.now.utc) { where(arel_table[:created_at].gteq(now - COOLDOWN_PERIOD)) }
+ scope :within_cooldown, -> { where(created_at: cooldown_duration_ago..) }
attr_accessor :current_password, :current_username
+ def self.cooldown_duration_ago
+ Time.current - COOLDOWN_PERIOD
+ end
+
def save_with_challenge(current_user)
if current_user.encrypted_password.present?
errors.add(:current_password, :invalid) unless current_user.valid_password?(current_password)
diff --git a/app/models/account_moderation_note.rb b/app/models/account_moderation_note.rb
index 79b8b4d25ee..ca7f8e3d5fe 100644
--- a/app/models/account_moderation_note.rb
+++ b/app/models/account_moderation_note.rb
@@ -18,7 +18,7 @@ class AccountModerationNote < ApplicationRecord
belongs_to :account
belongs_to :target_account, class_name: 'Account'
- scope :latest, -> { reorder('created_at DESC') }
+ scope :chronological, -> { reorder(id: :asc) }
validates :content, presence: true, length: { maximum: CONTENT_SIZE_LIMIT }
end
diff --git a/app/models/account_statuses_cleanup_policy.rb b/app/models/account_statuses_cleanup_policy.rb
index a102795446d..6e998e2dcaf 100644
--- a/app/models/account_statuses_cleanup_policy.rb
+++ b/app/models/account_statuses_cleanup_policy.rb
@@ -145,19 +145,19 @@ class AccountStatusesCleanupPolicy < ApplicationRecord
end
def without_self_fav_scope
- Status.where('NOT EXISTS (SELECT 1 FROM favourites fav WHERE fav.account_id = statuses.account_id AND fav.status_id = statuses.id)')
+ Status.where.not(self_status_reference_exists(Favourite))
end
def without_self_bookmark_scope
- Status.where('NOT EXISTS (SELECT 1 FROM bookmarks bookmark WHERE bookmark.account_id = statuses.account_id AND bookmark.status_id = statuses.id)')
+ Status.where.not(self_status_reference_exists(Bookmark))
end
def without_pinned_scope
- Status.where('NOT EXISTS (SELECT 1 FROM status_pins pin WHERE pin.account_id = statuses.account_id AND pin.status_id = statuses.id)')
+ Status.where.not(self_status_reference_exists(StatusPin))
end
def without_media_scope
- Status.where('NOT EXISTS (SELECT 1 FROM media_attachments media WHERE media.status_id = statuses.id)')
+ Status.where.not(status_media_reference_exists)
end
def without_poll_scope
@@ -174,4 +174,21 @@ class AccountStatusesCleanupPolicy < ApplicationRecord
def account_statuses
Status.where(account_id: account_id)
end
+
+ def status_media_reference_exists
+ MediaAttachment
+ .where(MediaAttachment.arel_table[:status_id].eq Status.arel_table[:id])
+ .select(1)
+ .arel
+ .exists
+ end
+
+ def self_status_reference_exists(model)
+ model
+ .where(model.arel_table[:account_id].eq Status.arel_table[:account_id])
+ .where(model.arel_table[:status_id].eq Status.arel_table[:id])
+ .select(1)
+ .arel
+ .exists
+ end
end
diff --git a/app/models/account_suggestions/friends_of_friends_source.rb b/app/models/account_suggestions/friends_of_friends_source.rb
index 825b24f4198..707c6ccaec2 100644
--- a/app/models/account_suggestions/friends_of_friends_source.rb
+++ b/app/models/account_suggestions/friends_of_friends_source.rb
@@ -31,6 +31,7 @@ class AccountSuggestions::FriendsOfFriendsSource < AccountSuggestions::Source
AND accounts.suspended_at IS NULL
AND accounts.silenced_at IS NULL
AND accounts.moved_to_account_id IS NULL
+ AND accounts.memorial = FALSE
AND follow_recommendation_mutes.target_account_id IS NULL
GROUP BY accounts.id, account_stats.id
ORDER BY frequency DESC, account_stats.followers_count ASC
diff --git a/app/models/account_suggestions/source.rb b/app/models/account_suggestions/source.rb
index 7afc4c80edd..9ae6bbbcc95 100644
--- a/app/models/account_suggestions/source.rb
+++ b/app/models/account_suggestions/source.rb
@@ -14,6 +14,7 @@ class AccountSuggestions::Source
.searchable
.where(discoverable: true)
.without_silenced
+ .without_memorial
.where.not(follows_sql, id: account.id)
.where.not(follow_requests_sql, id: account.id)
.not_excluded_by_account(account)
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
index 3700ce4cd6c..7c66b6e6462 100644
--- a/app/models/admin/account_action.rb
+++ b/app/models/admin/account_action.rb
@@ -73,6 +73,14 @@ class Admin::AccountAction
end
end
+ def disabled_types_for_account(account)
+ if account.suspended_locally?
+ %w(silence suspend)
+ elsif account.silenced?
+ %w(silence)
+ end
+ end
+
def i18n_scope
:activerecord
end
diff --git a/app/models/admin/action_log_filter.rb b/app/models/admin/action_log_filter.rb
index fc984b2445b..1f48e0a4977 100644
--- a/app/models/admin/action_log_filter.rb
+++ b/app/models/admin/action_log_filter.rb
@@ -5,6 +5,14 @@ class Admin::ActionLogFilter
action_type
account_id
target_account_id
+ target_domain
+ ).freeze
+
+ INSTANCE_TARGET_TYPES = %w(
+ DomainBlock
+ DomainAllow
+ Instance
+ UnavailableDomain
).freeze
ACTION_TYPE_MAP = {
@@ -95,6 +103,9 @@ class Admin::ActionLogFilter
when 'target_account_id'
account = Account.find_or_initialize_by(id: value)
latest_action_logs.where(target: [account, account.user].compact)
+ when 'target_domain'
+ normalized_domain = TagManager.instance.normalize_domain(value)
+ latest_action_logs.where(human_identifier: normalized_domain, target_type: INSTANCE_TARGET_TYPES)
else
raise Mastodon::InvalidParameterError, "Unknown filter: #{key}"
end
diff --git a/app/models/admin/tag_filter.rb b/app/models/admin/tag_filter.rb
new file mode 100644
index 00000000000..6149c521758
--- /dev/null
+++ b/app/models/admin/tag_filter.rb
@@ -0,0 +1,74 @@
+# frozen_string_literal: true
+
+class Admin::TagFilter
+ KEYS = %i(
+ status
+ name
+ order
+ ).freeze
+
+ attr_reader :params
+
+ def initialize(params)
+ @params = params.to_h.symbolize_keys
+ end
+
+ def results
+ scope = Tag.reorder(nil)
+
+ params.each do |key, value|
+ next if key == :page
+
+ scope.merge!(scope_for(key, value)) if value.present?
+ end
+
+ scope
+ end
+
+ private
+
+ def scope_for(key, value)
+ case key
+ when :status
+ status_scope(value)
+ when :name
+ Tag.search_for(value.to_s.strip, params[:limit], params[:offset], exclude_unlistable: false)
+ when :order
+ order_scope(value)
+ else
+ raise Mastodon::InvalidParameterError, "Unknown filter: #{key}"
+ end
+ end
+
+ def status_scope(value)
+ case value.to_s
+ when 'reviewed'
+ Tag.reviewed
+ when 'review_requested'
+ Tag.pending_review
+ when 'unreviewed'
+ Tag.unreviewed
+ when 'trendable'
+ Tag.trendable
+ when 'not_trendable'
+ Tag.not_trendable
+ when 'usable'
+ Tag.usable
+ when 'not_usable'
+ Tag.not_usable
+ else
+ raise Mastodon::InvalidParameterError, "Unknown status: #{value}"
+ end
+ end
+
+ def order_scope(value)
+ case value.to_s
+ when 'newest'
+ Tag.order(created_at: :desc)
+ when 'oldest'
+ Tag.order(created_at: :asc)
+ else
+ raise Mastodon::InvalidParameterError, "Unknown order: #{value}"
+ end
+ end
+end
diff --git a/app/models/announcement_reaction.rb b/app/models/announcement_reaction.rb
index 9881892c4bb..f953402b7ed 100644
--- a/app/models/announcement_reaction.rb
+++ b/app/models/announcement_reaction.rb
@@ -27,7 +27,7 @@ class AnnouncementReaction < ApplicationRecord
private
def set_custom_emoji
- self.custom_emoji = CustomEmoji.local.find_by(disabled: false, shortcode: name) if name.present?
+ self.custom_emoji = CustomEmoji.local.enabled.find_by(shortcode: name) if name.present?
end
def queue_publish
diff --git a/app/models/concerns/account/associations.rb b/app/models/concerns/account/associations.rb
index 1c67b07e511..637e785953d 100644
--- a/app/models/concerns/account/associations.rb
+++ b/app/models/concerns/account/associations.rb
@@ -7,9 +7,6 @@ module Account::Associations
# Local users
has_one :user, inverse_of: :account, dependent: :destroy
- # E2EE
- has_many :devices, dependent: :destroy, inverse_of: :account
-
# Timelines
has_many :statuses, inverse_of: :account, dependent: :destroy
has_many :favourites, inverse_of: :account, dependent: :destroy
diff --git a/app/models/concerns/account/attribution_domains.rb b/app/models/concerns/account/attribution_domains.rb
new file mode 100644
index 00000000000..163c2291fea
--- /dev/null
+++ b/app/models/concerns/account/attribution_domains.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+module Account::AttributionDomains
+ extend ActiveSupport::Concern
+
+ included do
+ validates :attribution_domains_as_text, domain: { multiline: true }, lines: { maximum: 100 }, if: -> { local? && will_save_change_to_attribution_domains? }
+ end
+
+ def attribution_domains_as_text
+ self[:attribution_domains].join("\n")
+ end
+
+ def attribution_domains_as_text=(str)
+ self[:attribution_domains] = str.split.filter_map do |line|
+ line
+ .strip
+ .delete_prefix('http://')
+ .delete_prefix('https://')
+ .delete_prefix('*.')
+ end
+ end
+
+ def can_be_attributed_from?(domain)
+ segments = domain.split('.')
+ variants = segments.map.with_index { |_, i| segments[i..].join('.') }.to_set
+ self[:attribution_domains].to_set.intersect?(variants)
+ end
+end
diff --git a/app/models/concerns/redisable.rb b/app/models/concerns/redisable.rb
index 0dad3abb2b3..01763fa2978 100644
--- a/app/models/concerns/redisable.rb
+++ b/app/models/concerns/redisable.rb
@@ -2,10 +2,10 @@
module Redisable
def redis
- Thread.current[:redis] ||= RedisConfiguration.pool.checkout
+ Thread.current[:redis] ||= RedisConnection.pool.checkout
end
def with_redis(&block)
- RedisConfiguration.with(&block)
+ RedisConnection.with(&block)
end
end
diff --git a/app/models/concerns/reviewable.rb b/app/models/concerns/reviewable.rb
new file mode 100644
index 00000000000..d08b4733427
--- /dev/null
+++ b/app/models/concerns/reviewable.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+module Reviewable
+ extend ActiveSupport::Concern
+
+ included do
+ scope :reviewed, -> { where.not(reviewed_at: nil) }
+ scope :unreviewed, -> { where(reviewed_at: nil) }
+ end
+
+ def requires_review?
+ reviewed_at.nil?
+ end
+
+ def reviewed?
+ reviewed_at.present?
+ end
+
+ def requested_review?
+ requested_review_at.present?
+ end
+
+ def requires_review_notification?
+ requires_review? && !requested_review?
+ end
+end
diff --git a/app/models/concerns/user/has_settings.rb b/app/models/concerns/user/has_settings.rb
index 65373325f0b..1202f2033f1 100644
--- a/app/models/concerns/user/has_settings.rb
+++ b/app/models/concerns/user/has_settings.rb
@@ -91,6 +91,10 @@ module User::HasSettings
settings['web.disable_swiping']
end
+ def setting_disable_hover_cards
+ settings['web.disable_hover_cards']
+ end
+
def setting_always_send_emails
settings['always_send_emails']
end
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index 31ba91ad028..f1423bc2fac 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -25,6 +25,7 @@ class CustomEmoji < ApplicationRecord
include Attachmentable
LIMIT = 256.kilobytes
+ MINIMUM_SHORTCODE_SIZE = 2
SHORTCODE_RE_FRAGMENT = '[a-zA-Z0-9_]{2,}'
@@ -44,13 +45,14 @@ class CustomEmoji < ApplicationRecord
normalizes :domain, with: ->(domain) { domain.downcase }
validates_attachment :image, content_type: { content_type: IMAGE_MIME_TYPES }, presence: true, size: { less_than: LIMIT }
- validates :shortcode, uniqueness: { scope: :domain }, format: { with: SHORTCODE_ONLY_RE }, length: { minimum: 2 }
+ validates :shortcode, uniqueness: { scope: :domain }, format: { with: SHORTCODE_ONLY_RE }, length: { minimum: MINIMUM_SHORTCODE_SIZE }
scope :local, -> { where(domain: nil) }
scope :remote, -> { where.not(domain: nil) }
+ scope :enabled, -> { where(disabled: false) }
scope :alphabetic, -> { order(domain: :asc, shortcode: :asc) }
scope :by_domain_and_subdomains, ->(domain) { where(domain: domain).or(where(arel_table[:domain].matches("%.#{domain}"))) }
- scope :listed, -> { local.where(disabled: false).where(visible_in_picker: true) }
+ scope :listed, -> { local.enabled.where(visible_in_picker: true) }
remotable_attachment :image, LIMIT
diff --git a/app/models/device.rb b/app/models/device.rb
deleted file mode 100644
index 5dc6cf1e66f..00000000000
--- a/app/models/device.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# frozen_string_literal: true
-
-# == Schema Information
-#
-# Table name: devices
-#
-# id :bigint(8) not null, primary key
-# access_token_id :bigint(8)
-# account_id :bigint(8)
-# device_id :string default(""), not null
-# name :string default(""), not null
-# fingerprint_key :text default(""), not null
-# identity_key :text default(""), not null
-# created_at :datetime not null
-# updated_at :datetime not null
-#
-
-class Device < ApplicationRecord
- belongs_to :access_token, class_name: 'Doorkeeper::AccessToken'
- belongs_to :account
-
- has_many :one_time_keys, dependent: :destroy, inverse_of: :device
- has_many :encrypted_messages, dependent: :destroy, inverse_of: :device
-
- validates :name, :fingerprint_key, :identity_key, presence: true
- validates :fingerprint_key, :identity_key, ed25519_key: true
-
- before_save :invalidate_associations, if: -> { device_id_changed? || fingerprint_key_changed? || identity_key_changed? }
-
- private
-
- def invalidate_associations
- one_time_keys.destroy_all
- encrypted_messages.destroy_all
- end
-end
diff --git a/app/models/encrypted_message.rb b/app/models/encrypted_message.rb
deleted file mode 100644
index 3e7e95594ce..00000000000
--- a/app/models/encrypted_message.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-# frozen_string_literal: true
-
-# == Schema Information
-#
-# Table name: encrypted_messages
-#
-# id :bigint(8) not null, primary key
-# device_id :bigint(8)
-# from_account_id :bigint(8)
-# from_device_id :string default(""), not null
-# type :integer default(0), not null
-# body :text default(""), not null
-# digest :text default(""), not null
-# message_franking :text default(""), not null
-# created_at :datetime not null
-# updated_at :datetime not null
-#
-
-class EncryptedMessage < ApplicationRecord
- self.inheritance_column = nil
-
- include Paginable
- include Redisable
-
- scope :up_to, ->(id) { where(arel_table[:id].lteq(id)) }
-
- belongs_to :device
- belongs_to :from_account, class_name: 'Account'
-
- around_create Mastodon::Snowflake::Callbacks
-
- after_commit :push_to_streaming_api
-
- private
-
- def push_to_streaming_api
- return if destroyed? || !subscribed_to_timeline?
-
- PushEncryptedMessageWorker.perform_async(id)
- end
-
- def subscribed_to_timeline?
- redis.exists?("subscribed:#{streaming_channel}")
- end
-
- def streaming_channel
- "timeline:#{device.account_id}:#{device.device_id}"
- end
-end
diff --git a/app/models/featured_tag.rb b/app/models/featured_tag.rb
index cdd97205eb7..a4e7b7cf6f0 100644
--- a/app/models/featured_tag.rb
+++ b/app/models/featured_tag.rb
@@ -45,7 +45,7 @@ class FeaturedTag < ApplicationRecord
end
def decrement(deleted_status_id)
- update(statuses_count: [0, statuses_count - 1].max, last_status_at: visible_tagged_account_statuses.where.not(id: deleted_status_id).select(:created_at).first&.created_at)
+ update(statuses_count: [0, statuses_count - 1].max, last_status_at: visible_tagged_account_statuses.where.not(id: deleted_status_id).pick(:created_at))
end
private
@@ -56,7 +56,7 @@ class FeaturedTag < ApplicationRecord
def reset_data
self.statuses_count = visible_tagged_account_statuses.count
- self.last_status_at = visible_tagged_account_statuses.select(:created_at).first&.created_at
+ self.last_status_at = visible_tagged_account_statuses.pick(:created_at)
end
def validate_featured_tags_limit
diff --git a/app/models/list.rb b/app/models/list.rb
index b45bd057bc7..d4915f56fae 100644
--- a/app/models/list.rb
+++ b/app/models/list.rb
@@ -20,21 +20,23 @@ class List < ApplicationRecord
enum :replies_policy, { list: 0, followed: 1, none: 2 }, prefix: :show
- belongs_to :account, optional: true
+ belongs_to :account
has_many :list_accounts, inverse_of: :list, dependent: :destroy
has_many :accounts, through: :list_accounts
validates :title, presence: true
- validates_each :account_id, on: :create do |record, _attr, value|
- record.errors.add(:base, I18n.t('lists.errors.limit')) if List.where(account_id: value).count >= PER_ACCOUNT_LIMIT
- end
+ validate :validate_account_lists_limit, on: :create
before_destroy :clean_feed_manager
private
+ def validate_account_lists_limit
+ errors.add(:base, I18n.t('lists.errors.limit')) if account.lists.count >= PER_ACCOUNT_LIMIT
+ end
+
def clean_feed_manager
FeedManager.instance.clean_feeds!(:list, [id])
end
diff --git a/app/models/list_account.rb b/app/models/list_account.rb
index e7016f2714a..2ff86057171 100644
--- a/app/models/list_account.rb
+++ b/app/models/list_account.rb
@@ -20,13 +20,11 @@ class ListAccount < ApplicationRecord
validates :account_id, uniqueness: { scope: :list_id }
validate :validate_relationship
- before_validation :set_follow
+ before_validation :set_follow, unless: :list_owner_account_is_account?
private
def set_follow
- return if list.account_id == account.id
-
self.follow = Follow.find_by!(account_id: list.account_id, target_account_id: account.id)
rescue ActiveRecord::RecordNotFound
self.follow_request = FollowRequest.find_by!(account_id: list.account_id, target_account_id: account.id)
@@ -39,4 +37,8 @@ class ListAccount < ApplicationRecord
errors.add(:follow, 'mismatched accounts') if follow_id.present? && follow.target_account_id != account_id
errors.add(:follow_request, 'mismatched accounts') if follow_request_id.present? && follow_request.target_account_id != account_id
end
+
+ def list_owner_account_is_account?
+ list.account_id == account_id
+ end
end
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index f53da04a975..6708cd7793d 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -276,6 +276,9 @@ class MediaAttachment < ApplicationRecord
before_create :set_unknown_type
before_create :set_processing
+ before_destroy :prepare_cache_bust!, prepend: true
+ after_destroy :bust_cache!
+
after_commit :enqueue_processing, on: :create
after_commit :reset_parent_cache, on: :update
@@ -410,4 +413,29 @@ class MediaAttachment < ApplicationRecord
def reset_parent_cache
Rails.cache.delete("v3:statuses/#{status_id}") if status_id.present?
end
+
+ # Record the cache keys to burst before the file get actually deleted
+ def prepare_cache_bust!
+ return unless Rails.configuration.x.cache_buster_enabled
+
+ @paths_to_cache_bust = MediaAttachment.attachment_definitions.keys.flat_map do |attachment_name|
+ attachment = public_send(attachment_name)
+ styles = DEFAULT_STYLES | attachment.styles.keys
+ styles.map { |style| attachment.path(style) }
+ end.compact
+ rescue => e
+ # We really don't want any error here preventing media deletion
+ Rails.logger.warn "Error #{e.class} busting cache: #{e.message}"
+ end
+
+ # Once Paperclip has deleted the files, we can't recover the cache keys,
+ # so use the previously-saved ones
+ def bust_cache!
+ return unless Rails.configuration.x.cache_buster_enabled
+
+ CacheBusterWorker.push_bulk(@paths_to_cache_bust) { |path| [path] }
+ rescue => e
+ # We really don't want any error here preventing media deletion
+ Rails.logger.warn "Error #{e.class} busting cache: #{e.message}"
+ end
end
diff --git a/app/models/mention.rb b/app/models/mention.rb
index af9bb7378bc..a508ed630e2 100644
--- a/app/models/mention.rb
+++ b/app/models/mention.rb
@@ -29,8 +29,4 @@ class Mention < ApplicationRecord
to: :account,
prefix: true
)
-
- def active?
- !silent?
- end
end
diff --git a/app/models/message_franking.rb b/app/models/message_franking.rb
deleted file mode 100644
index c72bd1ccaca..00000000000
--- a/app/models/message_franking.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# frozen_string_literal: true
-
-class MessageFranking
- attr_reader :hmac, :source_account_id, :target_account_id,
- :timestamp, :original_franking
-
- def initialize(attributes = {})
- @hmac = attributes[:hmac]
- @source_account_id = attributes[:source_account_id]
- @target_account_id = attributes[:target_account_id]
- @timestamp = attributes[:timestamp]
- @original_franking = attributes[:original_franking]
- end
-
- def to_token
- crypt = ActiveSupport::MessageEncryptor.new(SystemKey.current_key, serializer: Oj)
- crypt.encrypt_and_sign(self)
- end
-end
diff --git a/app/models/notification.rb b/app/models/notification.rb
index 01abe74f5e7..695f39a316f 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -20,6 +20,7 @@ class Notification < ApplicationRecord
self.inheritance_column = nil
include Paginable
+ include Redisable
LEGACY_TYPE_CLASS_MAP = {
'Mention' => :mention,
@@ -30,6 +31,11 @@ class Notification < ApplicationRecord
'Poll' => :poll,
}.freeze
+ # `set_group_key!` needs to be updated if this list changes
+ GROUPABLE_NOTIFICATION_TYPES = %i(favourite reblog follow).freeze
+ MAXIMUM_GROUP_SPAN_HOURS = 12
+
+ # Please update app/javascript/api_types/notification.ts if you change this
PROPERTIES = {
mention: {
filterable: true,
@@ -120,6 +126,30 @@ class Notification < ApplicationRecord
end
end
+ def set_group_key!
+ return if filtered? || Notification::GROUPABLE_NOTIFICATION_TYPES.exclude?(type)
+
+ type_prefix = case type
+ when :favourite, :reblog
+ [type, target_status&.id].join('-')
+ when :follow
+ type
+ else
+ raise NotImplementedError
+ end
+ redis_key = "notif-group/#{account.id}/#{type_prefix}"
+ hour_bucket = activity.created_at.utc.to_i / 1.hour.to_i
+
+ # Reuse previous group if it does not span too large an amount of time
+ previous_bucket = redis.get(redis_key).to_i
+ hour_bucket = previous_bucket if hour_bucket < previous_bucket + MAXIMUM_GROUP_SPAN_HOURS
+
+ # We do not concern ourselves with race conditions since we use hour buckets
+ redis.set(redis_key, hour_bucket, ex: MAXIMUM_GROUP_SPAN_HOURS.hours.to_i)
+
+ self.group_key = "#{type_prefix}-#{hour_bucket}"
+ end
+
class << self
def browserable(types: [], exclude_types: [], from_account_id: nil, include_filtered: false)
requested_types = if types.empty?
@@ -137,66 +167,91 @@ class Notification < ApplicationRecord
end
end
- # This returns notifications from the request page, but with at most one notification per group.
- # Notifications that have no `group_key` each count as a separate group.
- def paginate_groups_by_max_id(limit, max_id: nil, since_id: nil)
- query = reorder(id: :desc)
- query = query.where(id: ...max_id) if max_id.present?
- query = query.where(id: (since_id + 1)...) if since_id.present?
+ def paginate_groups(limit, pagination_order, grouped_types: nil)
+ raise ArgumentError unless %i(asc desc).include?(pagination_order)
+
+ query = reorder(id: pagination_order)
+
+ # Ideally `:types` would be a bind rather than part of the SQL itself, but that does not
+ # seem to be possible to do with Rails, considering that the expression would occur in
+ # multiple places, including in a `select`
+ group_key_sql = begin
+ if grouped_types.present?
+ # Normalize `grouped_types` so the number of different SQL query shapes remains small, and
+ # the queries can be analyzed in monitoring/telemetry tools
+ grouped_types = (grouped_types.map(&:to_sym) & GROUPABLE_NOTIFICATION_TYPES).sort
+
+ sanitize_sql_array([<<~SQL.squish, { types: grouped_types }])
+ COALESCE(
+ CASE
+ WHEN notifications.type IN (:types) THEN notifications.group_key
+ ELSE NULL
+ END,
+ 'ungrouped-' || notifications.id
+ )
+ SQL
+ else
+ "COALESCE(notifications.group_key, 'ungrouped-' || notifications.id)"
+ end
+ end
unscoped
.with_recursive(
grouped_notifications: [
+ # Base case: fetching one notification and annotating it with visited groups
query
- .select('notifications.*', "ARRAY[COALESCE(notifications.group_key, 'ungrouped-' || notifications.id)] groups")
- .limit(1),
- query
- .joins('CROSS JOIN grouped_notifications')
- .where('array_length(grouped_notifications.groups, 1) < :limit', limit: limit)
- .where('notifications.id < grouped_notifications.id')
- .where.not("COALESCE(notifications.group_key, 'ungrouped-' || notifications.id) = ANY(grouped_notifications.groups)")
- .select('notifications.*', "array_append(grouped_notifications.groups, COALESCE(notifications.group_key, 'ungrouped-' || notifications.id))")
+ .select('notifications.*', "ARRAY[#{group_key_sql}] AS groups")
.limit(1),
+ # Recursive case, always yielding at most one annotated notification
+ unscoped
+ .from(
+ [
+ # Expose the working table as `wt`, but quit early if we've reached the limit
+ unscoped
+ .select('id', 'groups')
+ .from('grouped_notifications')
+ .where('array_length(grouped_notifications.groups, 1) < :limit', limit: limit)
+ .arel.as('wt'),
+ # Recursive query, using `LATERAL` so we can refer to `wt`
+ query
+ .where(pagination_order == :desc ? 'notifications.id < wt.id' : 'notifications.id > wt.id')
+ .where.not("#{group_key_sql} = ANY(wt.groups)")
+ .limit(1)
+ .arel.lateral('notifications'),
+ ]
+ )
+ .select('notifications.*', "array_append(wt.groups, #{group_key_sql}) AS groups"),
]
)
.from('grouped_notifications AS notifications')
- .order(id: :desc)
+ .order(id: pagination_order)
.limit(limit)
end
+ # This returns notifications from the request page, but with at most one notification per group.
+ # Notifications that have no `group_key` each count as a separate group.
+ def paginate_groups_by_max_id(limit, max_id: nil, since_id: nil, grouped_types: nil)
+ query = reorder(id: :desc)
+ query = query.where(id: ...(max_id.to_i)) if max_id.present?
+ query = query.where(id: (since_id.to_i + 1)...) if since_id.present?
+ query.paginate_groups(limit, :desc, grouped_types: grouped_types)
+ end
+
# Differs from :paginate_groups_by_max_id in that it gives the results immediately following min_id,
# whereas since_id gives the items with largest id, but with since_id as a cutoff.
# Results will be in ascending order by id.
- def paginate_groups_by_min_id(limit, max_id: nil, min_id: nil)
+ def paginate_groups_by_min_id(limit, max_id: nil, min_id: nil, grouped_types: nil)
query = reorder(id: :asc)
- query = query.where(id: (min_id + 1)...) if min_id.present?
- query = query.where(id: ...max_id) if max_id.present?
-
- unscoped
- .with_recursive(
- grouped_notifications: [
- query
- .select('notifications.*', "ARRAY[COALESCE(notifications.group_key, 'ungrouped-' || notifications.id)] groups")
- .limit(1),
- query
- .joins('CROSS JOIN grouped_notifications')
- .where('array_length(grouped_notifications.groups, 1) < :limit', limit: limit)
- .where('notifications.id > grouped_notifications.id')
- .where.not("COALESCE(notifications.group_key, 'ungrouped-' || notifications.id) = ANY(grouped_notifications.groups)")
- .select('notifications.*', "array_append(grouped_notifications.groups, COALESCE(notifications.group_key, 'ungrouped-' || notifications.id))")
- .limit(1),
- ]
- )
- .from('grouped_notifications AS notifications')
- .order(id: :asc)
- .limit(limit)
+ query = query.where(id: (min_id.to_i + 1)...) if min_id.present?
+ query = query.where(id: ...(max_id.to_i)) if max_id.present?
+ query.paginate_groups(limit, :asc, grouped_types: grouped_types)
end
def to_a_grouped_paginated_by_id(limit, options = {})
if options[:min_id].present?
- paginate_groups_by_min_id(limit, min_id: options[:min_id], max_id: options[:max_id]).reverse
+ paginate_groups_by_min_id(limit, min_id: options[:min_id], max_id: options[:max_id], grouped_types: options[:grouped_types]).reverse
else
- paginate_groups_by_max_id(limit, max_id: options[:max_id], since_id: options[:since_id]).to_a
+ paginate_groups_by_max_id(limit, max_id: options[:max_id], since_id: options[:since_id], grouped_types: options[:grouped_types]).to_a
end
end
diff --git a/app/models/notification_group.rb b/app/models/notification_group.rb
index b1cbd7c19ab..b6aa4d309ca 100644
--- a/app/models/notification_group.rb
+++ b/app/models/notification_group.rb
@@ -1,31 +1,49 @@
# frozen_string_literal: true
class NotificationGroup < ActiveModelSerializers::Model
- attributes :group_key, :sample_accounts, :notifications_count, :notification, :most_recent_notification_id
+ attributes :group_key, :sample_accounts, :notifications_count, :notification, :most_recent_notification_id, :pagination_data
- def self.from_notification(notification, max_id: nil)
- if notification.group_key.present?
- # TODO: caching and preloading
- scope = notification.account.notifications.where(group_key: notification.group_key)
- scope = scope.where(id: ..max_id) if max_id.present?
+ # Try to keep this consistent with `app/javascript/mastodon/models/notification_group.ts`
+ SAMPLE_ACCOUNTS_SIZE = 8
- most_recent_notifications = scope.order(id: :desc).take(3)
- most_recent_id = most_recent_notifications.first.id
- sample_accounts = most_recent_notifications.map(&:from_account)
- notifications_count = scope.count
- else
- most_recent_id = notification.id
- sample_accounts = [notification.from_account]
- notifications_count = 1
+ def self.from_notifications(notifications, pagination_range: nil, grouped_types: nil)
+ return [] if notifications.empty?
+
+ grouped_types = grouped_types.presence&.map(&:to_sym) || Notification::GROUPABLE_NOTIFICATION_TYPES
+
+ grouped_notifications = notifications.filter { |notification| notification.group_key.present? && grouped_types.include?(notification.type) }
+ group_keys = grouped_notifications.pluck(:group_key)
+
+ groups_data = load_groups_data(notifications.first.account_id, group_keys, pagination_range: pagination_range)
+ accounts_map = Account.where(id: groups_data.values.pluck(1).flatten).index_by(&:id)
+
+ notifications.map do |notification|
+ if notification.group_key.present? && grouped_types.include?(notification.type)
+ most_recent_notification_id, sample_account_ids, count, *raw_pagination_data = groups_data[notification.group_key]
+
+ pagination_data = raw_pagination_data.empty? ? nil : { min_id: raw_pagination_data[0], latest_notification_at: raw_pagination_data[1] }
+
+ NotificationGroup.new(
+ notification: notification,
+ group_key: notification.group_key,
+ sample_accounts: sample_account_ids.map { |id| accounts_map[id] },
+ notifications_count: count,
+ most_recent_notification_id: most_recent_notification_id,
+ pagination_data: pagination_data
+ )
+ else
+ pagination_data = pagination_range.blank? ? nil : { min_id: notification.id, latest_notification_at: notification.created_at }
+
+ NotificationGroup.new(
+ notification: notification,
+ group_key: "ungrouped-#{notification.id}",
+ sample_accounts: [notification.from_account],
+ notifications_count: 1,
+ most_recent_notification_id: notification.id,
+ pagination_data: pagination_data
+ )
+ end
end
-
- NotificationGroup.new(
- notification: notification,
- group_key: notification.group_key || "ungrouped-#{notification.id}",
- sample_accounts: sample_accounts,
- notifications_count: notifications_count,
- most_recent_notification_id: most_recent_id
- )
end
delegate :type,
@@ -34,4 +52,50 @@ class NotificationGroup < ActiveModelSerializers::Model
:account_relationship_severance_event,
:account_warning,
to: :notification, prefix: false
+
+ class << self
+ private
+
+ def load_groups_data(account_id, group_keys, pagination_range: nil)
+ return {} if group_keys.empty?
+
+ if pagination_range.present?
+ binds = [
+ account_id,
+ SAMPLE_ACCOUNTS_SIZE,
+ pagination_range.begin,
+ pagination_range.end,
+ ActiveRecord::Relation::QueryAttribute.new('group_keys', group_keys, ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array.new(ActiveModel::Type::String.new)),
+ ]
+
+ ActiveRecord::Base.connection.select_all(<<~SQL.squish, 'grouped_notifications', binds).cast_values.to_h { |k, *values| [k, values] }
+ SELECT
+ groups.group_key,
+ (SELECT id FROM notifications WHERE notifications.account_id = $1 AND notifications.group_key = groups.group_key AND id <= $4 ORDER BY id DESC LIMIT 1),
+ array(SELECT from_account_id FROM notifications WHERE notifications.account_id = $1 AND notifications.group_key = groups.group_key AND id <= $4 ORDER BY id DESC LIMIT $2),
+ (SELECT count(*) FROM notifications WHERE notifications.account_id = $1 AND notifications.group_key = groups.group_key AND id <= $4) AS notifications_count,
+ (SELECT id FROM notifications WHERE notifications.account_id = $1 AND notifications.group_key = groups.group_key AND id >= $3 ORDER BY id ASC LIMIT 1) AS min_id,
+ (SELECT created_at FROM notifications WHERE notifications.account_id = $1 AND notifications.group_key = groups.group_key AND id <= $4 ORDER BY id DESC LIMIT 1)
+ FROM
+ unnest($5::text[]) AS groups(group_key);
+ SQL
+ else
+ binds = [
+ account_id,
+ SAMPLE_ACCOUNTS_SIZE,
+ ActiveRecord::Relation::QueryAttribute.new('group_keys', group_keys, ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array.new(ActiveModel::Type::String.new)),
+ ]
+
+ ActiveRecord::Base.connection.select_all(<<~SQL.squish, 'grouped_notifications', binds).cast_values.to_h { |k, *values| [k, values] }
+ SELECT
+ groups.group_key,
+ (SELECT id FROM notifications WHERE notifications.account_id = $1 AND notifications.group_key = groups.group_key ORDER BY id DESC LIMIT 1),
+ array(SELECT from_account_id FROM notifications WHERE notifications.account_id = $1 AND notifications.group_key = groups.group_key ORDER BY id DESC LIMIT $2),
+ (SELECT count(*) FROM notifications WHERE notifications.account_id = $1 AND notifications.group_key = groups.group_key) AS notifications_count
+ FROM
+ unnest($3::text[]) AS groups(group_key);
+ SQL
+ end
+ end
+ end
end
diff --git a/app/models/notification_policy.rb b/app/models/notification_policy.rb
index f10b0c2a816..3b16f33d881 100644
--- a/app/models/notification_policy.rb
+++ b/app/models/notification_policy.rb
@@ -4,17 +4,25 @@
#
# Table name: notification_policies
#
-# id :bigint(8) not null, primary key
-# account_id :bigint(8) not null
-# filter_not_following :boolean default(FALSE), not null
-# filter_not_followers :boolean default(FALSE), not null
-# filter_new_accounts :boolean default(FALSE), not null
-# filter_private_mentions :boolean default(TRUE), not null
-# created_at :datetime not null
-# updated_at :datetime not null
+# id :bigint(8) not null, primary key
+# account_id :bigint(8) not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# for_not_following :integer default("accept"), not null
+# for_not_followers :integer default("accept"), not null
+# for_new_accounts :integer default("accept"), not null
+# for_private_mentions :integer default("filter"), not null
+# for_limited_accounts :integer default("filter"), not null
#
class NotificationPolicy < ApplicationRecord
+ self.ignored_columns += %w(
+ filter_not_following
+ filter_not_followers
+ filter_new_accounts
+ filter_private_mentions
+ )
+
belongs_to :account
has_many :notification_requests, primary_key: :account_id, foreign_key: :account_id, dependent: nil, inverse_of: false
@@ -23,14 +31,37 @@ class NotificationPolicy < ApplicationRecord
MAX_MEANINGFUL_COUNT = 100
+ enum :for_not_following, { accept: 0, filter: 1, drop: 2 }, suffix: :not_following
+ enum :for_not_followers, { accept: 0, filter: 1, drop: 2 }, suffix: :not_followers
+ enum :for_new_accounts, { accept: 0, filter: 1, drop: 2 }, suffix: :new_accounts
+ enum :for_private_mentions, { accept: 0, filter: 1, drop: 2 }, suffix: :private_mentions
+ enum :for_limited_accounts, { accept: 0, filter: 1, drop: 2 }, suffix: :limited_accounts
+
def summarize!
@pending_requests_count = pending_notification_requests.first
@pending_notifications_count = pending_notification_requests.last
end
+ # Compat helpers with V1
+ def filter_not_following=(value)
+ self.for_not_following = value ? :filter : :accept
+ end
+
+ def filter_not_followers=(value)
+ self.for_not_followers = value ? :filter : :accept
+ end
+
+ def filter_new_accounts=(value)
+ self.for_new_accounts = value ? :filter : :accept
+ end
+
+ def filter_private_mentions=(value)
+ self.for_private_mentions = value ? :filter : :accept
+ end
+
private
def pending_notification_requests
- @pending_notification_requests ||= notification_requests.where(dismissed: false).limit(MAX_MEANINGFUL_COUNT).pick(Arel.sql('count(*), coalesce(sum(notifications_count), 0)::bigint'))
+ @pending_notification_requests ||= notification_requests.limit(MAX_MEANINGFUL_COUNT).pick(Arel.sql('count(*), coalesce(sum(notifications_count), 0)::bigint'))
end
end
diff --git a/app/models/notification_request.rb b/app/models/notification_request.rb
index 6e9cae66255..f0778b3af32 100644
--- a/app/models/notification_request.rb
+++ b/app/models/notification_request.rb
@@ -9,12 +9,13 @@
# from_account_id :bigint(8) not null
# last_status_id :bigint(8)
# notifications_count :bigint(8) default(0), not null
-# dismissed :boolean default(FALSE), not null
# created_at :datetime not null
# updated_at :datetime not null
#
class NotificationRequest < ApplicationRecord
+ self.ignored_columns += %w(dismissed)
+
include Paginable
MAX_MEANINGFUL_COUNT = 100
@@ -34,8 +35,6 @@ class NotificationRequest < ApplicationRecord
end
def reconsider_existence!
- return if dismissed?
-
prepare_notifications_count
if notifications_count.positive?
@@ -48,6 +47,6 @@ class NotificationRequest < ApplicationRecord
private
def prepare_notifications_count
- self.notifications_count = Notification.where(account: account, from_account: from_account, filtered: true).limit(MAX_MEANINGFUL_COUNT).count
+ self.notifications_count = Notification.where(account: account, from_account: from_account, type: :mention, filtered: true).limit(MAX_MEANINGFUL_COUNT).count
end
end
diff --git a/app/models/one_time_key.rb b/app/models/one_time_key.rb
deleted file mode 100644
index 23604e2f7d3..00000000000
--- a/app/models/one_time_key.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-# frozen_string_literal: true
-
-# == Schema Information
-#
-# Table name: one_time_keys
-#
-# id :bigint(8) not null, primary key
-# device_id :bigint(8)
-# key_id :string default(""), not null
-# key :text default(""), not null
-# signature :text default(""), not null
-# created_at :datetime not null
-# updated_at :datetime not null
-#
-
-class OneTimeKey < ApplicationRecord
- belongs_to :device
-
- validates :key_id, :key, :signature, presence: true
- validates :key, ed25519_key: true
- validates :signature, ed25519_signature: { message: :key, verify_key: ->(one_time_key) { one_time_key.device.fingerprint_key } }
-end
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index cbfc3937865..7579178f83e 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -39,13 +39,18 @@ class PreviewCard < ApplicationRecord
include Attachmentable
IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze
- LIMIT = 2.megabytes
+ LIMIT = Rails.configuration.x.use_vips ? 8.megabytes : 2.megabytes
BLURHASH_OPTIONS = {
x_comp: 4,
y_comp: 4,
}.freeze
+ # URL size limit to safely store in PosgreSQL's unique indexes
+ # Technically this is a byte-size limit but we use it as a
+ # character limit to work with length validation
+ URL_CHARACTER_LIMIT = 2692
+
self.inheritance_column = false
enum :type, { link: 0, photo: 1, video: 2, rich: 3 }
@@ -63,7 +68,7 @@ class PreviewCard < ApplicationRecord
convert_options: { all: '-quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' },
validate_media_type: false
- validates :url, presence: true, uniqueness: true, url: true
+ validates :url, presence: true, uniqueness: true, url: true, length: { maximum: URL_CHARACTER_LIMIT }
validates_attachment_content_type :image, content_type: IMAGE_MIME_TYPES
validates_attachment_size :image, less_than: LIMIT
remotable_attachment :image, LIMIT
@@ -128,6 +133,22 @@ class PreviewCard < ApplicationRecord
@history ||= Trends::History.new('links', id)
end
+ def authors
+ @authors ||= [PreviewCard::Author.new(self)]
+ end
+
+ class Author < ActiveModelSerializers::Model
+ attributes :name, :url, :account
+
+ def initialize(preview_card)
+ super(
+ name: preview_card.author_name,
+ url: preview_card.author_url,
+ account: preview_card.author_account,
+ )
+ end
+ end
+
class << self
private
diff --git a/app/models/preview_card_provider.rb b/app/models/preview_card_provider.rb
index 756707e3f1a..889176036c7 100644
--- a/app/models/preview_card_provider.rb
+++ b/app/models/preview_card_provider.rb
@@ -21,6 +21,7 @@ class PreviewCardProvider < ApplicationRecord
include Paginable
include DomainNormalizable
include Attachmentable
+ include Reviewable
ICON_MIME_TYPES = %w(image/x-icon image/vnd.microsoft.icon image/png).freeze
LIMIT = 1.megabyte
@@ -33,24 +34,6 @@ class PreviewCardProvider < ApplicationRecord
scope :trendable, -> { where(trendable: true) }
scope :not_trendable, -> { where(trendable: false) }
- scope :reviewed, -> { where.not(reviewed_at: nil) }
- scope :pending_review, -> { where(reviewed_at: nil) }
-
- def requires_review?
- reviewed_at.nil?
- end
-
- def reviewed?
- reviewed_at.present?
- end
-
- def requested_review?
- requested_review_at.present?
- end
-
- def requires_review_notification?
- requires_review? && !requested_review?
- end
def self.matching_domain(domain)
segments = domain.split('.')
diff --git a/app/models/report.rb b/app/models/report.rb
index 3df5a20e181..17c1503436f 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -18,6 +18,7 @@
# category :integer default("other"), not null
# action_taken_at :datetime
# rule_ids :bigint(8) is an Array
+# application_id :bigint(8)
#
class Report < ApplicationRecord
@@ -31,6 +32,7 @@ class Report < ApplicationRecord
rate_limit by: :account, family: :reports
belongs_to :account
+ belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
with_options class_name: 'Account' do
belongs_to :target_account
diff --git a/app/models/report_note.rb b/app/models/report_note.rb
index 7361c97e670..9d3be52594f 100644
--- a/app/models/report_note.rb
+++ b/app/models/report_note.rb
@@ -18,7 +18,7 @@ class ReportNote < ApplicationRecord
belongs_to :account
belongs_to :report, inverse_of: :notes, touch: true
- scope :latest, -> { reorder(created_at: :desc) }
+ scope :chronological, -> { reorder(id: :asc) }
validates :content, presence: true, length: { maximum: CONTENT_SIZE_LIMIT }
end
diff --git a/app/models/site_upload.rb b/app/models/site_upload.rb
index 6431d1007d1..273dd6de9fd 100644
--- a/app/models/site_upload.rb
+++ b/app/models/site_upload.rb
@@ -31,17 +31,10 @@ class SiteUpload < ApplicationRecord
[:"#{size}", { format: 'png', geometry: "#{size}x#{size}#", file_geometry_parser: FastGeometryParser }]
end.freeze,
- favicon: {
- ico: {
- format: 'ico',
- geometry: '48x48#',
- file_geometry_parser: FastGeometryParser,
- }.freeze,
- }.merge(
+ favicon:
FAVICON_SIZES.to_h do |size|
[:"#{size}", { format: 'png', geometry: "#{size}x#{size}#", file_geometry_parser: FastGeometryParser }]
- end
- ).freeze,
+ end.freeze,
thumbnail: {
'@1x': {
diff --git a/app/models/status.rb b/app/models/status.rb
index baa65780055..e0630733d89 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -52,7 +52,7 @@ class Status < ApplicationRecord
update_index('statuses', :proper)
update_index('public_statuses', :proper)
- enum :visibility, { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, suffix: :visibility
+ enum :visibility, { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, suffix: :visibility, validate: true
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
@@ -288,7 +288,7 @@ class Status < ApplicationRecord
else
map = media_attachments.index_by(&:id)
ordered_media_attachment_ids.filter_map { |media_attachment_id| map[media_attachment_id] }
- end
+ end.take(MEDIA_ATTACHMENTS_LIMIT)
end
def replies_count
diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb
index 50dabb91f5b..6e25a6f3bbd 100644
--- a/app/models/status_edit.rb
+++ b/app/models/status_edit.rb
@@ -42,7 +42,7 @@ class StatusEdit < ApplicationRecord
scope :ordered, -> { order(id: :asc) }
delegate :local?, :application, :edited?, :edited_at,
- :discarded?, :visibility, to: :status
+ :discarded?, :visibility, :language, to: :status
def emojis
return @emojis if defined?(@emojis)
@@ -53,12 +53,14 @@ class StatusEdit < ApplicationRecord
def ordered_media_attachments
return @ordered_media_attachments if defined?(@ordered_media_attachments)
- @ordered_media_attachments = if ordered_media_attachment_ids.nil?
- []
- else
- map = status.media_attachments.index_by(&:id)
- ordered_media_attachment_ids.map.with_index { |media_attachment_id, index| PreservedMediaAttachment.new(media_attachment: map[media_attachment_id], description: media_descriptions[index]) }
- end
+ @ordered_media_attachments = begin
+ if ordered_media_attachment_ids.nil?
+ []
+ else
+ map = status.media_attachments.index_by(&:id)
+ ordered_media_attachment_ids.map.with_index { |media_attachment_id, index| PreservedMediaAttachment.new(media_attachment: map[media_attachment_id], description: media_descriptions[index]) }
+ end
+ end.take(Status::MEDIA_ATTACHMENTS_LIMIT)
end
def proper
diff --git a/app/models/system_key.rb b/app/models/system_key.rb
deleted file mode 100644
index 1be399dd689..00000000000
--- a/app/models/system_key.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# frozen_string_literal: true
-
-# == Schema Information
-#
-# Table name: system_keys
-#
-# id :bigint(8) not null, primary key
-# key :binary
-# created_at :datetime not null
-# updated_at :datetime not null
-#
-class SystemKey < ApplicationRecord
- ROTATION_PERIOD = 1.week.freeze
-
- before_validation :set_key
-
- scope :expired, ->(now = Time.now.utc) { where(arel_table[:created_at].lt(now - (ROTATION_PERIOD * 3))) }
-
- class << self
- def current_key
- previous_key = order(id: :asc).last
-
- if previous_key && previous_key.created_at >= ROTATION_PERIOD.ago
- previous_key.key
- else
- create.key
- end
- end
- end
-
- private
-
- def set_key
- return if key.present?
-
- cipher = OpenSSL::Cipher.new('AES-256-GCM')
- cipher.encrypt
-
- self.key = cipher.random_key
- end
-end
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 3f88cb06807..93210eb307e 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -21,6 +21,8 @@
class Tag < ApplicationRecord
include Paginable
+ include Reviewable
+
# rubocop:disable Rails/HasAndBelongsToMany
has_and_belongs_to_many :statuses
has_and_belongs_to_many :accounts
@@ -37,7 +39,7 @@ class Tag < ApplicationRecord
HASHTAG_LAST_SEQUENCE = '([[:word:]_]*[[:alpha:]][[:word:]_]*)'
HASHTAG_NAME_PAT = "#{HASHTAG_FIRST_SEQUENCE}|#{HASHTAG_LAST_SEQUENCE}"
- HASHTAG_RE = %r{(? { !new_record? && name_changed? }
validate :validate_display_name_change, if: -> { !new_record? && display_name_changed? }
- scope :reviewed, -> { where.not(reviewed_at: nil) }
- scope :unreviewed, -> { where(reviewed_at: nil) }
scope :pending_review, -> { unreviewed.where.not(requested_review_at: nil) }
scope :usable, -> { where(usable: [true, nil]) }
+ scope :not_usable, -> { where(usable: false) }
scope :listable, -> { where(listable: [true, nil]) }
scope :trendable, -> { Setting.trendable_by_default ? where(trendable: [true, nil]) : where(trendable: true) }
scope :not_trendable, -> { where(trendable: false) }
@@ -74,6 +75,10 @@ class Tag < ApplicationRecord
attributes['display_name'] || name
end
+ def formatted_name
+ "##{display_name}"
+ end
+
def usable
boolean_with_default('usable', true)
end
@@ -92,22 +97,6 @@ class Tag < ApplicationRecord
alias trendable? trendable
- def requires_review?
- reviewed_at.nil?
- end
-
- def reviewed?
- reviewed_at.present?
- end
-
- def requested_review?
- requested_review_at.present?
- end
-
- def requires_review_notification?
- requires_review? && !requested_review?
- end
-
def decaying?
max_score_at && max_score_at >= Trends.tags.options[:max_score_cooldown].ago && max_score_at < 1.day.ago
end
@@ -132,9 +121,11 @@ class Tag < ApplicationRecord
def search_for(term, limit = 5, offset = 0, options = {})
stripped_term = term.strip
+ options.reverse_merge!({ exclude_unlistable: true, exclude_unreviewed: false })
- query = Tag.listable.matches_name(stripped_term)
- query = query.merge(matching_name(stripped_term).or(where.not(reviewed_at: nil))) if options[:exclude_unreviewed]
+ query = Tag.matches_name(stripped_term)
+ query = query.merge(Tag.listable) if options[:exclude_unlistable]
+ query = query.merge(matching_name(stripped_term).or(reviewed)) if options[:exclude_unreviewed]
query.order(Arel.sql('length(name) ASC, name ASC'))
.limit(limit)
diff --git a/app/models/trends/preview_card_provider_filter.rb b/app/models/trends/preview_card_provider_filter.rb
index 219793f01e9..33f4e97912a 100644
--- a/app/models/trends/preview_card_provider_filter.rb
+++ b/app/models/trends/preview_card_provider_filter.rb
@@ -41,7 +41,7 @@ class Trends::PreviewCardProviderFilter
when 'rejected'
PreviewCardProvider.not_trendable
when 'pending_review'
- PreviewCardProvider.pending_review
+ PreviewCardProvider.unreviewed
else
raise Mastodon::InvalidParameterError, "Unknown status: #{value}"
end
diff --git a/app/models/trends/tag_filter.rb b/app/models/trends/tag_filter.rb
index 46b747819e1..d6f88a9486e 100644
--- a/app/models/trends/tag_filter.rb
+++ b/app/models/trends/tag_filter.rb
@@ -14,7 +14,7 @@ class Trends::TagFilter
def results
scope = if params[:status] == 'pending_review'
- Tag.unscoped
+ Tag.unscoped.order(id: :desc)
else
trending_scope
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 8bc0b23ce84..fcb0eced72e 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -100,7 +100,7 @@ class User < ApplicationRecord
validates :email, presence: true, email_address: true
- validates_with BlacklistedEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? }
+ validates_with UserEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? }
validates_with EmailMxValidator, if: :validate_email_dns?
validates :agreement, acceptance: { allow_nil: false, accept: [true, 'true', '1'] }, on: :create
@@ -117,6 +117,7 @@ class User < ApplicationRecord
scope :pending, -> { where(approved: false) }
scope :approved, -> { where(approved: true) }
scope :confirmed, -> { where.not(confirmed_at: nil) }
+ scope :unconfirmed, -> { where(confirmed_at: nil) }
scope :enabled, -> { where(disabled: false) }
scope :disabled, -> { where(disabled: true) }
scope :active, -> { confirmed.signed_in_recently.account_not_suspended }
@@ -245,10 +246,6 @@ class User < ApplicationRecord
unconfirmed? || pending?
end
- def inactive_message
- approved? ? super : :pending
- end
-
def approve!
return if approved?
diff --git a/app/models/user_settings.rb b/app/models/user_settings.rb
index 6571632fcd7..0ae8ab8ec79 100644
--- a/app/models/user_settings.rb
+++ b/app/models/user_settings.rb
@@ -25,6 +25,7 @@ class UserSettings
setting :use_pending_items, default: false
setting :use_system_font, default: false
setting :disable_swiping, default: false
+ setting :disable_hover_cards, default: false
setting :delete_modal, default: true
setting :reblog_modal, default: false
setting :reduce_motion, default: false
diff --git a/app/presenters/activitypub/activity_presenter.rb b/app/presenters/activitypub/activity_presenter.rb
index 38e8527e8e5..994cbeaf48f 100644
--- a/app/presenters/activitypub/activity_presenter.rb
+++ b/app/presenters/activitypub/activity_presenter.rb
@@ -26,16 +26,5 @@ class ActivityPub::ActivityPresenter < ActiveModelSerializers::Model
end
end
end
-
- def from_encrypted_message(encrypted_message)
- new.tap do |presenter|
- presenter.id = ActivityPub::TagManager.instance.generate_uri_for(nil)
- presenter.type = 'Create'
- presenter.actor = ActivityPub::TagManager.instance.uri_for(encrypted_message.source_account)
- presenter.published = Time.now.utc
- presenter.to = ActivityPub::TagManager.instance.uri_for(encrypted_message.target_account)
- presenter.virtual_object = encrypted_message
- end
- end
end
end
diff --git a/app/presenters/domain_block_preview_presenter.rb b/app/presenters/domain_block_preview_presenter.rb
new file mode 100644
index 00000000000..601f76273dd
--- /dev/null
+++ b/app/presenters/domain_block_preview_presenter.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+class DomainBlockPreviewPresenter < ActiveModelSerializers::Model
+ attributes :followers_count, :following_count
+end
diff --git a/app/presenters/grouped_notifications_presenter.rb b/app/presenters/grouped_notifications_presenter.rb
new file mode 100644
index 00000000000..9ced1d0c7b2
--- /dev/null
+++ b/app/presenters/grouped_notifications_presenter.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+class GroupedNotificationsPresenter < ActiveModelSerializers::Model
+ def initialize(grouped_notifications, options = {})
+ super()
+
+ @grouped_notifications = grouped_notifications
+ @options = options
+ end
+
+ def notification_groups
+ @grouped_notifications
+ end
+
+ def statuses
+ @grouped_notifications.filter_map(&:target_status).uniq(&:id)
+ end
+
+ def accounts
+ @accounts ||= begin
+ if partial_avatars?
+ @grouped_notifications.map { |group| group.sample_accounts.first }.uniq(&:id)
+ else
+ @grouped_notifications.flat_map(&:sample_accounts).uniq(&:id)
+ end
+ end
+ end
+
+ def partial_accounts
+ @partial_accounts ||= begin
+ if partial_avatars?
+ @grouped_notifications.flat_map { |group| group.sample_accounts[1...] }.uniq(&:id).filter { |account| accounts.exclude?(account) }
+ else
+ []
+ end
+ end
+ end
+
+ private
+
+ def partial_avatars?
+ @options[:expand_accounts] == 'partial_avatars'
+ end
+end
diff --git a/app/presenters/oauth_metadata_presenter.rb b/app/presenters/oauth_metadata_presenter.rb
index 546503bfcca..1e4d25165c7 100644
--- a/app/presenters/oauth_metadata_presenter.rb
+++ b/app/presenters/oauth_metadata_presenter.rb
@@ -7,6 +7,7 @@ class OauthMetadataPresenter < ActiveModelSerializers::Model
:revocation_endpoint, :scopes_supported,
:response_types_supported, :response_modes_supported,
:grant_types_supported, :token_endpoint_auth_methods_supported,
+ :code_challenge_methods_supported,
:service_documentation, :app_registration_endpoint
def issuer
@@ -59,6 +60,10 @@ class OauthMetadataPresenter < ActiveModelSerializers::Model
%w(client_secret_basic client_secret_post)
end
+ def code_challenge_methods_supported
+ %w(S256)
+ end
+
private
def doorkeeper
diff --git a/app/serializers/activitypub/activity_serializer.rb b/app/serializers/activitypub/activity_serializer.rb
index 5bdf53f032d..23a5b42bc79 100644
--- a/app/serializers/activitypub/activity_serializer.rb
+++ b/app/serializers/activitypub/activity_serializer.rb
@@ -5,8 +5,6 @@ class ActivityPub::ActivitySerializer < ActivityPub::Serializer
case model.class.name
when 'Status'
ActivityPub::NoteSerializer
- when 'DeliverToDeviceService::EncryptedMessage'
- ActivityPub::EncryptedMessageSerializer
else
super
end
diff --git a/app/serializers/activitypub/actor_serializer.rb b/app/serializers/activitypub/actor_serializer.rb
index 4ab48ff204b..f698e758e8d 100644
--- a/app/serializers/activitypub/actor_serializer.rb
+++ b/app/serializers/activitypub/actor_serializer.rb
@@ -7,8 +7,8 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
context :security
context_extensions :manually_approves_followers, :featured, :also_known_as,
- :moved_to, :property_value, :discoverable, :olm, :suspended,
- :memorial, :indexable
+ :moved_to, :property_value, :discoverable, :suspended,
+ :memorial, :indexable, :attribution_domains
attributes :id, :type, :following, :followers,
:inbox, :outbox, :featured, :featured_tags,
@@ -21,10 +21,10 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
has_many :virtual_tags, key: :tag
has_many :virtual_attachments, key: :attachment
- attribute :devices, unless: :instance_actor?
attribute :moved_to, if: :moved?
attribute :also_known_as, if: :also_known_as?
attribute :suspended, if: :suspended?
+ attribute :attribution_domains, if: -> { object.attribution_domains.any? }
class EndpointsSerializer < ActivityPub::Serializer
include RoutingHelper
@@ -71,10 +71,6 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
object.instance_actor? ? instance_actor_inbox_url : account_inbox_url(object)
end
- def devices
- account_collection_url(object, :devices)
- end
-
def outbox
object.instance_actor? ? instance_actor_outbox_url : account_outbox_url(object)
end
diff --git a/app/serializers/activitypub/collection_serializer.rb b/app/serializers/activitypub/collection_serializer.rb
index 34026a6b5be..1b410cecaef 100644
--- a/app/serializers/activitypub/collection_serializer.rb
+++ b/app/serializers/activitypub/collection_serializer.rb
@@ -14,8 +14,6 @@ class ActivityPub::CollectionSerializer < ActivityPub::Serializer
case model.class.name
when 'Status'
ActivityPub::NoteSerializer
- when 'Device'
- ActivityPub::DeviceSerializer
when 'FeaturedTag'
ActivityPub::HashtagSerializer
when 'ActivityPub::CollectionPresenter'
diff --git a/app/serializers/activitypub/device_serializer.rb b/app/serializers/activitypub/device_serializer.rb
deleted file mode 100644
index 5f0fdc8af93..00000000000
--- a/app/serializers/activitypub/device_serializer.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-# frozen_string_literal: true
-
-class ActivityPub::DeviceSerializer < ActivityPub::Serializer
- context_extensions :olm
-
- include RoutingHelper
-
- class FingerprintKeySerializer < ActivityPub::Serializer
- attributes :type, :public_key_base64
-
- def type
- 'Ed25519Key'
- end
-
- def public_key_base64
- object.fingerprint_key
- end
- end
-
- class IdentityKeySerializer < ActivityPub::Serializer
- attributes :type, :public_key_base64
-
- def type
- 'Curve25519Key'
- end
-
- def public_key_base64
- object.identity_key
- end
- end
-
- attributes :device_id, :type, :name, :claim
-
- has_one :fingerprint_key, serializer: FingerprintKeySerializer
- has_one :identity_key, serializer: IdentityKeySerializer
-
- def type
- 'Device'
- end
-
- def claim
- account_claim_url(object.account, id: object.device_id)
- end
-
- def fingerprint_key
- object
- end
-
- def identity_key
- object
- end
-end
diff --git a/app/serializers/activitypub/encrypted_message_serializer.rb b/app/serializers/activitypub/encrypted_message_serializer.rb
deleted file mode 100644
index 3c525d23e5c..00000000000
--- a/app/serializers/activitypub/encrypted_message_serializer.rb
+++ /dev/null
@@ -1,61 +0,0 @@
-# frozen_string_literal: true
-
-class ActivityPub::EncryptedMessageSerializer < ActivityPub::Serializer
- context :security
-
- context_extensions :olm
-
- class DeviceSerializer < ActivityPub::Serializer
- attributes :type, :device_id
-
- def type
- 'Device'
- end
-
- def device_id
- object
- end
- end
-
- class DigestSerializer < ActivityPub::Serializer
- attributes :type, :digest_algorithm, :digest_value
-
- def type
- 'Digest'
- end
-
- def digest_algorithm
- 'http://www.w3.org/2000/09/xmldsig#hmac-sha256'
- end
-
- def digest_value
- object
- end
- end
-
- attributes :type, :message_type, :cipher_text, :message_franking
-
- has_one :attributed_to, serializer: DeviceSerializer
- has_one :to, serializer: DeviceSerializer
- has_one :digest, serializer: DigestSerializer
-
- def type
- 'EncryptedMessage'
- end
-
- def attributed_to
- object.source_device.device_id
- end
-
- def to
- object.target_device_id
- end
-
- def message_type
- object.type
- end
-
- def cipher_text
- object.body
- end
-end
diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb
index 27e058199d6..7b29e6d69be 100644
--- a/app/serializers/activitypub/note_serializer.rb
+++ b/app/serializers/activitypub/note_serializer.rb
@@ -19,6 +19,8 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer
has_many :virtual_tags, key: :tag
has_one :replies, serializer: ActivityPub::CollectionSerializer, if: :local?
+ has_one :likes, serializer: ActivityPub::CollectionSerializer, if: :local?
+ has_one :shares, serializer: ActivityPub::CollectionSerializer, if: :local?
has_many :poll_options, key: :one_of, if: :poll_and_not_multiple?
has_many :poll_options, key: :any_of, if: :poll_and_multiple?
@@ -64,6 +66,22 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer
)
end
+ def likes
+ ActivityPub::CollectionPresenter.new(
+ id: ActivityPub::TagManager.instance.likes_uri_for(object),
+ type: :unordered,
+ size: object.favourites_count
+ )
+ end
+
+ def shares
+ ActivityPub::CollectionPresenter.new(
+ id: ActivityPub::TagManager.instance.shares_uri_for(object),
+ type: :unordered,
+ size: object.reblogs_count
+ )
+ end
+
def language?
object.language.present?
end
diff --git a/app/serializers/activitypub/one_time_key_serializer.rb b/app/serializers/activitypub/one_time_key_serializer.rb
deleted file mode 100644
index 5932eb5b55a..00000000000
--- a/app/serializers/activitypub/one_time_key_serializer.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# frozen_string_literal: true
-
-class ActivityPub::OneTimeKeySerializer < ActivityPub::Serializer
- context :security
-
- context_extensions :olm
-
- class SignatureSerializer < ActivityPub::Serializer
- attributes :type, :signature_value
-
- def type
- 'Ed25519Signature'
- end
-
- def signature_value
- object.signature
- end
- end
-
- attributes :key_id, :type, :public_key_base64
-
- has_one :signature, serializer: SignatureSerializer
-
- def type
- 'Curve25519Key'
- end
-
- def public_key_base64
- object.key
- end
-
- def signature
- object
- end
-end
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 72aaabcfcb1..13f332c95c4 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -24,6 +24,7 @@ class InitialStateSerializer < ActiveModel::Serializer
store[:expand_spoilers] = object_account_user.setting_expand_spoilers
store[:reduce_motion] = object_account_user.setting_reduce_motion
store[:disable_swiping] = object_account_user.setting_disable_swiping
+ store[:disable_hover_cards] = object_account_user.setting_disable_hover_cards
store[:advanced_layout] = object_account_user.setting_advanced_layout
store[:use_blurhash] = object_account_user.setting_use_blurhash
store[:use_pending_items] = object_account_user.setting_use_pending_items
diff --git a/app/serializers/manifest_serializer.rb b/app/serializers/manifest_serializer.rb
index a39fb5ef540..cf0164c24a3 100644
--- a/app/serializers/manifest_serializer.rb
+++ b/app/serializers/manifest_serializer.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class ManifestSerializer < ActiveModel::Serializer
- include ApplicationHelper
+ include InstanceHelper
include RoutingHelper
include ActionView::Helpers::TextHelper
diff --git a/app/serializers/oauth_metadata_serializer.rb b/app/serializers/oauth_metadata_serializer.rb
index 5f3dc7b87e2..2afb4208fbc 100644
--- a/app/serializers/oauth_metadata_serializer.rb
+++ b/app/serializers/oauth_metadata_serializer.rb
@@ -5,5 +5,6 @@ class OauthMetadataSerializer < ActiveModel::Serializer
:revocation_endpoint, :scopes_supported,
:response_types_supported, :response_modes_supported,
:grant_types_supported, :token_endpoint_auth_methods_supported,
+ :code_challenge_methods_supported,
:service_documentation, :app_registration_endpoint
end
diff --git a/app/serializers/oembed_serializer.rb b/app/serializers/oembed_serializer.rb
index d6261d72422..c87f14f26b7 100644
--- a/app/serializers/oembed_serializer.rb
+++ b/app/serializers/oembed_serializer.rb
@@ -1,6 +1,41 @@
# frozen_string_literal: true
class OEmbedSerializer < ActiveModel::Serializer
+ INLINE_STYLES = {
+ blockquote: <<~CSS.squish,
+ background: #FCF8FF;
+ border-radius: 8px;
+ border: 1px solid #C9C4DA;
+ margin: 0;
+ max-width: 540px;
+ min-width: 270px;
+ overflow: hidden;
+ padding: 0;
+ CSS
+ status_link: <<~CSS.squish,
+ align-items: center;
+ color: #1C1A25;
+ display: flex;
+ flex-direction: column;
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Roboto, sans-serif;
+ font-size: 14px;
+ justify-content: center;
+ letter-spacing: 0.25px;
+ line-height: 20px;
+ padding: 24px;
+ text-decoration: none;
+ CSS
+ div_account: <<~CSS.squish,
+ color: #787588;
+ margin-top: 16px;
+ CSS
+ div_view: <<~CSS.squish,
+ font-weight: 500;
+ CSS
+ }.freeze
+
+ DEFAULT_WIDTH = 400
+
include RoutingHelper
include ActionView::Helpers::TagHelper
@@ -37,23 +72,23 @@ class OEmbedSerializer < ActiveModel::Serializer
end
def html
- attributes = {
- src: embed_short_account_status_url(object.account, object),
- class: 'mastodon-embed',
- style: 'max-width: 100%; border: 0',
- width: width,
- height: height,
- allowfullscreen: true,
- }
-
- content_tag(:iframe, nil, attributes) + content_tag(:script, nil, src: full_asset_url('embed.js', skip_pipeline: true), async: true)
+ <<~HTML.squish
+
+
+
+ Post by @#{object.account.pretty_acct}@#{provider_name}
+ View on Mastodon
+
+
+
+ HTML
end
def width
- instance_options[:width]
+ (instance_options[:width] || DEFAULT_WIDTH).to_i
end
def height
- instance_options[:height]
+ instance_options[:height].presence&.to_i
end
end
diff --git a/app/serializers/rest/dedup_notification_group_serializer.rb b/app/serializers/rest/dedup_notification_group_serializer.rb
new file mode 100644
index 00000000000..4f02505e25f
--- /dev/null
+++ b/app/serializers/rest/dedup_notification_group_serializer.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class REST::DedupNotificationGroupSerializer < ActiveModel::Serializer
+ class PartialAccountSerializer < REST::AccountSerializer
+ # This is a hack to reset ActiveModel::Serializer internals and only expose the attributes
+ # we care about.
+ self._attributes_data = {}
+ self._reflections = []
+ self._links = []
+
+ attributes :id, :acct, :locked, :bot, :url, :avatar, :avatar_static
+ end
+
+ has_many :accounts, serializer: REST::AccountSerializer
+ has_many :partial_accounts, serializer: PartialAccountSerializer, if: :return_partial_accounts?
+ has_many :statuses, serializer: REST::StatusSerializer
+ has_many :notification_groups, serializer: REST::NotificationGroupSerializer
+
+ def return_partial_accounts?
+ instance_options[:expand_accounts] == 'partial_avatars'
+ end
+end
diff --git a/app/serializers/rest/domain_block_preview_serializer.rb b/app/serializers/rest/domain_block_preview_serializer.rb
new file mode 100644
index 00000000000..fea8c2f1eea
--- /dev/null
+++ b/app/serializers/rest/domain_block_preview_serializer.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+class REST::DomainBlockPreviewSerializer < ActiveModel::Serializer
+ attributes :following_count, :followers_count
+end
diff --git a/app/serializers/rest/encrypted_message_serializer.rb b/app/serializers/rest/encrypted_message_serializer.rb
deleted file mode 100644
index 80c26d060ea..00000000000
--- a/app/serializers/rest/encrypted_message_serializer.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# frozen_string_literal: true
-
-class REST::EncryptedMessageSerializer < ActiveModel::Serializer
- attributes :id, :account_id, :device_id,
- :type, :body, :digest, :message_franking,
- :created_at
-
- def id
- object.id.to_s
- end
-
- def account_id
- object.from_account_id.to_s
- end
-
- def device_id
- object.from_device_id
- end
-end
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index 8df79db6c77..19361277ae4 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -7,11 +7,12 @@ class REST::InstanceSerializer < ActiveModel::Serializer
has_one :account, serializer: REST::AccountSerializer
end
+ include InstanceHelper
include RoutingHelper
attributes :domain, :title, :version, :source_url, :description,
- :usage, :thumbnail, :languages, :configuration,
- :registrations
+ :usage, :thumbnail, :icon, :languages, :configuration,
+ :registrations, :api_versions
has_one :contact, serializer: ContactSerializer
has_many :rules, serializer: REST::RuleSerializer
@@ -33,6 +34,18 @@ class REST::InstanceSerializer < ActiveModel::Serializer
end
end
+ def icon
+ SiteUpload::ANDROID_ICON_SIZES.map do |size|
+ src = app_icon_path(size.to_i)
+ src = URI.join(root_url, src).to_s if src.present?
+
+ {
+ src: src || frontend_asset_url("icons/android-chrome-#{size}x#{size}.png"),
+ size: "#{size}x#{size}",
+ }
+ end
+ end
+
def usage
{
users: {
@@ -64,7 +77,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
},
media_attachments: {
- supported_mime_types: MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES + MediaAttachment::AUDIO_MIME_TYPES,
+ supported_mime_types: MediaAttachment.supported_mime_types,
image_size_limit: MediaAttachment::IMAGE_LIMIT,
image_matrix_limit: Attachmentable::MAX_MATRIX_LIMIT,
video_size_limit: MediaAttachment::VIDEO_LIMIT,
@@ -94,6 +107,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer
}
end
+ def api_versions
+ Mastodon::Version.api_versions
+ end
+
private
def registrations_enabled?
diff --git a/app/serializers/rest/keys/claim_result_serializer.rb b/app/serializers/rest/keys/claim_result_serializer.rb
deleted file mode 100644
index 145044f5572..00000000000
--- a/app/serializers/rest/keys/claim_result_serializer.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class REST::Keys::ClaimResultSerializer < ActiveModel::Serializer
- attributes :account_id, :device_id, :key_id, :key, :signature
-
- def account_id
- object.account.id.to_s
- end
-end
diff --git a/app/serializers/rest/keys/device_serializer.rb b/app/serializers/rest/keys/device_serializer.rb
deleted file mode 100644
index f9b821b79ca..00000000000
--- a/app/serializers/rest/keys/device_serializer.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-# frozen_string_literal: true
-
-class REST::Keys::DeviceSerializer < ActiveModel::Serializer
- attributes :device_id, :name, :identity_key,
- :fingerprint_key
-end
diff --git a/app/serializers/rest/keys/query_result_serializer.rb b/app/serializers/rest/keys/query_result_serializer.rb
deleted file mode 100644
index 8f8bdde289f..00000000000
--- a/app/serializers/rest/keys/query_result_serializer.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# frozen_string_literal: true
-
-class REST::Keys::QueryResultSerializer < ActiveModel::Serializer
- attributes :account_id
-
- has_many :devices, serializer: REST::Keys::DeviceSerializer
-
- def account_id
- object.account.id.to_s
- end
-end
diff --git a/app/serializers/rest/notification_group_serializer.rb b/app/serializers/rest/notification_group_serializer.rb
index 9aa5663f4e0..7e8f00df3c7 100644
--- a/app/serializers/rest/notification_group_serializer.rb
+++ b/app/serializers/rest/notification_group_serializer.rb
@@ -1,18 +1,27 @@
# frozen_string_literal: true
class REST::NotificationGroupSerializer < ActiveModel::Serializer
+ # Please update app/javascript/api_types/notification.ts when making changes to the attributes
attributes :group_key, :notifications_count, :type, :most_recent_notification_id
attribute :page_min_id, if: :paginated?
attribute :page_max_id, if: :paginated?
attribute :latest_page_notification_at, if: :paginated?
- has_many :sample_accounts, serializer: REST::AccountSerializer
- belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
+ attribute :sample_account_ids
+ attribute :status_id, if: :status_type?
belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer
belongs_to :account_relationship_severance_event, key: :event, if: :relationship_severance_event?, serializer: REST::AccountRelationshipSeveranceEventSerializer
belongs_to :account_warning, key: :moderation_warning, if: :moderation_warning_event?, serializer: REST::AccountWarningSerializer
+ def sample_account_ids
+ object.sample_accounts.pluck(:id).map(&:to_s)
+ end
+
+ def status_id
+ object.target_status&.id&.to_s
+ end
+
def status_type?
[:favourite, :reblog, :status, :mention, :poll, :update].include?(object.type)
end
@@ -30,21 +39,18 @@ class REST::NotificationGroupSerializer < ActiveModel::Serializer
end
def page_min_id
- range = instance_options[:group_metadata][object.group_key]
- range.present? ? range[:min_id].to_s : object.notification.id.to_s
+ object.pagination_data[:min_id].to_s
end
def page_max_id
- range = instance_options[:group_metadata][object.group_key]
- range.present? ? range[:max_id].to_s : object.notification.id.to_s
+ object.most_recent_notification_id.to_s
end
def latest_page_notification_at
- range = instance_options[:group_metadata][object.group_key]
- range.present? ? range[:latest_notification_at] : object.notification.created_at
+ object.pagination_data[:latest_notification_at]
end
def paginated?
- !instance_options[:group_metadata].nil?
+ object.pagination_data.present?
end
end
diff --git a/app/serializers/rest/notification_policy_serializer.rb b/app/serializers/rest/notification_policy_serializer.rb
index 8bf85250fa5..3902c1a04a2 100644
--- a/app/serializers/rest/notification_policy_serializer.rb
+++ b/app/serializers/rest/notification_policy_serializer.rb
@@ -3,10 +3,11 @@
class REST::NotificationPolicySerializer < ActiveModel::Serializer
# Please update `app/javascript/mastodon/api_types/notification_policies.ts` when making changes to the attributes
- attributes :filter_not_following,
- :filter_not_followers,
- :filter_new_accounts,
- :filter_private_mentions,
+ attributes :for_not_following,
+ :for_not_followers,
+ :for_new_accounts,
+ :for_private_mentions,
+ :for_limited_accounts,
:summary
def summary
diff --git a/app/serializers/rest/notification_serializer.rb b/app/serializers/rest/notification_serializer.rb
index 966819585fc..320bc86961d 100644
--- a/app/serializers/rest/notification_serializer.rb
+++ b/app/serializers/rest/notification_serializer.rb
@@ -1,8 +1,11 @@
# frozen_string_literal: true
class REST::NotificationSerializer < ActiveModel::Serializer
+ # Please update app/javascript/api_types/notification.ts when making changes to the attributes
attributes :id, :type, :created_at, :group_key
+ attribute :filtered, if: :filtered?
+
belongs_to :from_account, key: :account, serializer: REST::AccountSerializer
belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer
@@ -32,4 +35,6 @@ class REST::NotificationSerializer < ActiveModel::Serializer
def moderation_warning_event?
object.type == :moderation_warning
end
+
+ delegate :filtered?, to: :object
end
diff --git a/app/serializers/rest/preview_card_serializer.rb b/app/serializers/rest/preview_card_serializer.rb
index 7d4c99c2d1f..f73a051ac0f 100644
--- a/app/serializers/rest/preview_card_serializer.rb
+++ b/app/serializers/rest/preview_card_serializer.rb
@@ -1,6 +1,11 @@
# frozen_string_literal: true
class REST::PreviewCardSerializer < ActiveModel::Serializer
+ class AuthorSerializer < ActiveModel::Serializer
+ attributes :name, :url
+ has_one :account, serializer: REST::AccountSerializer
+ end
+
include RoutingHelper
attributes :url, :title, :description, :language, :type,
@@ -8,7 +13,7 @@ class REST::PreviewCardSerializer < ActiveModel::Serializer
:provider_url, :html, :width, :height,
:image, :image_description, :embed_url, :blurhash, :published_at
- has_one :author_account, serializer: REST::AccountSerializer, if: -> { object.author_account.present? }
+ has_many :authors, serializer: AuthorSerializer
def url
object.original_url.presence || object.url
diff --git a/app/serializers/rest/v1/instance_serializer.rb b/app/serializers/rest/v1/instance_serializer.rb
index 636925b973f..7f9f21c5af1 100644
--- a/app/serializers/rest/v1/instance_serializer.rb
+++ b/app/serializers/rest/v1/instance_serializer.rb
@@ -69,7 +69,7 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer
},
media_attachments: {
- supported_mime_types: MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES + MediaAttachment::AUDIO_MIME_TYPES,
+ supported_mime_types: MediaAttachment.supported_mime_types,
image_size_limit: MediaAttachment::IMAGE_LIMIT,
image_matrix_limit: Attachmentable::MAX_MATRIX_LIMIT,
video_size_limit: MediaAttachment::VIDEO_LIMIT,
diff --git a/app/serializers/rest/v1/notification_policy_serializer.rb b/app/serializers/rest/v1/notification_policy_serializer.rb
new file mode 100644
index 00000000000..e1bbdc44ff1
--- /dev/null
+++ b/app/serializers/rest/v1/notification_policy_serializer.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+class REST::V1::NotificationPolicySerializer < ActiveModel::Serializer
+ attributes :filter_not_following,
+ :filter_not_followers,
+ :filter_new_accounts,
+ :filter_private_mentions,
+ :summary
+
+ def summary
+ {
+ pending_requests_count: object.pending_requests_count.to_i,
+ pending_notifications_count: object.pending_notifications_count.to_i,
+ }
+ end
+
+ def filter_not_following
+ !object.accept_not_following?
+ end
+
+ def filter_not_followers
+ !object.accept_not_followers?
+ end
+
+ def filter_new_accounts
+ !object.accept_new_accounts?
+ end
+
+ def filter_private_mentions
+ !object.accept_private_mentions?
+ end
+end
diff --git a/app/services/accept_notification_request_service.rb b/app/services/accept_notification_request_service.rb
index e49eae6fd30..60ec6bb3b63 100644
--- a/app/services/accept_notification_request_service.rb
+++ b/app/services/accept_notification_request_service.rb
@@ -1,8 +1,21 @@
# frozen_string_literal: true
class AcceptNotificationRequestService < BaseService
+ include Redisable
+
def call(request)
NotificationPermission.create!(account: request.account, from_account: request.from_account)
- UnfilterNotificationsWorker.perform_async(request.id)
+ increment_worker_count!(request)
+ UnfilterNotificationsWorker.perform_async(request.account_id, request.from_account_id)
+ request.destroy!
+ end
+
+ private
+
+ def increment_worker_count!(request)
+ with_redis do |redis|
+ redis.incr("notification_unfilter_jobs:#{request.account_id}")
+ redis.expire("notification_unfilter_jobs:#{request.account_id}", 30.minutes.to_i)
+ end
end
end
diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb
index b86c9b9e7ed..dab5f748bfd 100644
--- a/app/services/account_search_service.rb
+++ b/app/services/account_search_service.rb
@@ -28,9 +28,7 @@ class AccountSearchService < BaseService
},
functions: [
- reputation_score_function,
followers_score_function,
- time_distance_function,
],
},
},
@@ -81,36 +79,12 @@ class AccountSearchService < BaseService
}
end
- # This function deranks accounts that follow more people than follow them
- def reputation_score_function
- {
- script_score: {
- script: {
- source: "(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)",
- },
- },
- }
- end
-
# This function promotes accounts that have more followers
def followers_score_function
{
script_score: {
script: {
- source: "(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))",
- },
- },
- }
- end
-
- # This function deranks accounts that haven't posted in a long time
- def time_distance_function
- {
- gauss: {
- last_status_at: {
- scale: '30d',
- offset: '30d',
- decay: 0.3,
+ source: "Math.log10((Math.max(doc['followers_count'].value, 0) + 1))",
},
},
}
@@ -126,10 +100,24 @@ class AccountSearchService < BaseService
def core_query
{
- multi_match: {
- query: @query,
- type: 'bool_prefix',
- fields: %w(username^2 username.*^2 display_name display_name.*),
+ dis_max: {
+ queries: [
+ {
+ multi_match: {
+ query: @query,
+ type: 'most_fields',
+ fields: %w(username username.*),
+ },
+ },
+
+ {
+ multi_match: {
+ query: @query,
+ type: 'most_fields',
+ fields: %w(display_name display_name.*),
+ },
+ },
+ ],
},
}
end
@@ -142,7 +130,7 @@ class AccountSearchService < BaseService
{
multi_match: {
query: @query,
- type: 'most_fields',
+ type: 'best_fields',
fields: %w(username^2 display_name^2 text text.*),
operator: 'and',
},
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
index 86a134bb4ed..2c372c2ec3f 100644
--- a/app/services/activitypub/fetch_remote_actor_service.rb
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -49,7 +49,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
confirmed_username, confirmed_domain = split_acct(webfinger.subject)
if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero?
- raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.link('self', 'href') != @uri
+ raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.self_link_href != @uri
return
end
@@ -58,8 +58,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
@username, @domain = split_acct(webfinger.subject)
raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{@uri} (stopped at #{@username}@#{@domain})" unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?
-
- raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.link('self', 'href') != @uri
+ raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.self_link_href != @uri
rescue Webfinger::RedirectError => e
raise Error, e.message
rescue Webfinger::Error => e
diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb
index e2ecdef1659..46cab6caf93 100644
--- a/app/services/activitypub/fetch_replies_service.rb
+++ b/app/services/activitypub/fetch_replies_service.rb
@@ -49,7 +49,7 @@ class ActivityPub::FetchRepliesService < BaseService
rescue Mastodon::UnexpectedResponseError => e
raise unless e.response && e.response.code == 401 && Addressable::URI.parse(collection_or_uri).query.present?
- fetch_resource_without_id_validation(collection_or_uri, nil, true, request_options: { with_query_string: true })
+ fetch_resource_without_id_validation(collection_or_uri, nil, true, request_options: { omit_query_string: false })
end
end
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index b667e97f4d8..a7422b5d02a 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -108,7 +108,6 @@ class ActivityPub::ProcessAccountService < BaseService
def set_immediate_attributes!
@account.featured_collection_url = @json['featured'] || ''
- @account.devices_url = @json['devices'] || ''
@account.display_name = @json['name'] || ''
@account.note = @json['summary'] || ''
@account.locked = @json['manuallyApprovesFollowers'] || false
@@ -117,6 +116,7 @@ class ActivityPub::ProcessAccountService < BaseService
@account.discoverable = @json['discoverable'] || false
@account.indexable = @json['indexable'] || false
@account.memorial = @json['memorial'] || false
+ @account.attribution_domains = as_array(@json['attributionDomains'] || []).map { |item| value_or_id(item) }
end
def set_fetchable_key!
diff --git a/app/services/after_block_service.rb b/app/services/after_block_service.rb
index 899e84be44f..f0f836a545b 100644
--- a/app/services/after_block_service.rb
+++ b/app/services/after_block_service.rb
@@ -7,6 +7,7 @@ class AfterBlockService < BaseService
clear_home_feed!
clear_list_feeds!
+ clear_notification_requests!
clear_notifications!
clear_conversations!
end
@@ -28,4 +29,8 @@ class AfterBlockService < BaseService
def clear_notifications!
Notification.where(account: @account).where(from_account: @target_account).in_batches.delete_all
end
+
+ def clear_notification_requests!
+ NotificationRequest.where(account: @account, from_account: @target_account).destroy_all
+ end
end
diff --git a/app/services/approve_appeal_service.rb b/app/services/approve_appeal_service.rb
index b8a522b2a16..3f8d1e2a3b5 100644
--- a/app/services/approve_appeal_service.rb
+++ b/app/services/approve_appeal_service.rb
@@ -53,7 +53,7 @@ class ApproveAppealService < BaseService
def undo_mark_statuses_as_sensitive!
representative_account = Account.representative
- @strike.statuses.includes(:media_attachments).find_each do |status|
+ @strike.statuses.kept.includes(:media_attachments).reorder(nil).find_each do |status|
UpdateStatusService.new.call(status, representative_account.id, sensitive: false) if status.with_media?
end
end
diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb
index 1e901843768..133a7648735 100644
--- a/app/services/backup_service.rb
+++ b/app/services/backup_service.rb
@@ -19,8 +19,8 @@ class BackupService < BaseService
def build_outbox_json!(file)
skeleton = serialize(collection_presenter, ActivityPub::CollectionSerializer)
- skeleton['@context'] = full_context
- skeleton['orderedItems'] = ['!PLACEHOLDER!']
+ skeleton[:@context] = full_context
+ skeleton[:orderedItems] = ['!PLACEHOLDER!']
skeleton = Oj.dump(skeleton)
prepend, append = skeleton.split('"!PLACEHOLDER!"')
add_comma = false
@@ -33,7 +33,7 @@ class BackupService < BaseService
file.write(statuses.map do |status|
item = serialize_payload(ActivityPub::ActivityPresenter.from_status(status), ActivityPub::ActivitySerializer)
- item.delete('@context')
+ item.delete(:@context)
unless item[:type] == 'Announce' || item[:object][:attachment].blank?
item[:object][:attachment].each do |attachment|
diff --git a/app/services/delete_account_service.rb b/app/services/delete_account_service.rb
index 328d8ae8f83..0c03267d43d 100644
--- a/app/services/delete_account_service.rb
+++ b/app/services/delete_account_service.rb
@@ -13,7 +13,6 @@ class DeleteAccountService < BaseService
conversation_mutes
conversations
custom_filters
- devices
domain_blocks
featured_tags
follow_requests
@@ -40,7 +39,6 @@ class DeleteAccountService < BaseService
conversation_mutes
conversations
custom_filters
- devices
domain_blocks
featured_tags
follow_requests
diff --git a/app/services/deliver_to_device_service.rb b/app/services/deliver_to_device_service.rb
deleted file mode 100644
index 71711945c06..00000000000
--- a/app/services/deliver_to_device_service.rb
+++ /dev/null
@@ -1,78 +0,0 @@
-# frozen_string_literal: true
-
-class DeliverToDeviceService < BaseService
- include Payloadable
-
- class EncryptedMessage < ActiveModelSerializers::Model
- attributes :source_account, :target_account, :source_device,
- :target_device_id, :type, :body, :digest,
- :message_franking
- end
-
- def call(source_account, source_device, options = {})
- @source_account = source_account
- @source_device = source_device
- @target_account = Account.find(options[:account_id])
- @target_device_id = options[:device_id]
- @body = options[:body]
- @type = options[:type]
- @hmac = options[:hmac]
-
- set_message_franking!
-
- if @target_account.local?
- deliver_to_local!
- else
- deliver_to_remote!
- end
- end
-
- private
-
- def set_message_franking!
- @message_franking = message_franking.to_token
- end
-
- def deliver_to_local!
- target_device = @target_account.devices.find_by!(device_id: @target_device_id)
-
- target_device.encrypted_messages.create!(
- from_account: @source_account,
- from_device_id: @source_device.device_id,
- type: @type,
- body: @body,
- digest: @hmac,
- message_franking: @message_franking
- )
- end
-
- def deliver_to_remote!
- ActivityPub::DeliveryWorker.perform_async(
- Oj.dump(serialize_payload(ActivityPub::ActivityPresenter.from_encrypted_message(encrypted_message), ActivityPub::ActivitySerializer)),
- @source_account.id,
- @target_account.inbox_url
- )
- end
-
- def message_franking
- MessageFranking.new(
- source_account_id: @source_account.id,
- target_account_id: @target_account.id,
- hmac: @hmac,
- timestamp: Time.now.utc
- )
- end
-
- def encrypted_message
- EncryptedMessage.new(
- source_account: @source_account,
- target_account: @target_account,
- source_device: @source_device,
- target_device_id: @target_device_id,
- type: @type,
- body: @body,
- digest: @hmac,
- message_franking: @message_franking
- )
- end
-end
diff --git a/app/services/dismiss_notification_request_service.rb b/app/services/dismiss_notification_request_service.rb
new file mode 100644
index 00000000000..90b26d0bbf0
--- /dev/null
+++ b/app/services/dismiss_notification_request_service.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class DismissNotificationRequestService < BaseService
+ def call(request)
+ FilteredNotificationCleanupWorker.perform_async(request.account_id, request.from_account_id)
+ request.destroy!
+ end
+end
diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb
index 900cb9863dd..7662fc1f297 100644
--- a/app/services/fetch_link_card_service.rb
+++ b/app/services/fetch_link_card_service.rb
@@ -29,7 +29,7 @@ class FetchLinkCardService < BaseService
end
attach_card if @card&.persisted?
- rescue HTTP::Error, OpenSSL::SSL::SSLError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError => e
+ rescue HTTP::Error, OpenSSL::SSL::SSLError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError, Encoding::UndefinedConversionError, ActiveRecord::RecordInvalid => e
Rails.logger.debug { "Error fetching link #{@original_url}: #{e}" }
nil
end
@@ -45,7 +45,13 @@ class FetchLinkCardService < BaseService
def html
return @html if defined?(@html)
- @html = Request.new(:get, @url).add_headers('Accept' => 'text/html', 'User-Agent' => "#{Mastodon::Version.user_agent} Bot").perform do |res|
+ headers = {
+ 'Accept' => 'text/html',
+ 'Accept-Language' => "#{I18n.default_locale}, *;q=0.5",
+ 'User-Agent' => "#{Mastodon::Version.user_agent} Bot",
+ }
+
+ @html = Request.new(:get, @url).add_headers(headers).perform do |res|
next unless res.code == 200 && res.mime_type == 'text/html'
# We follow redirects, and ideally we want to save the preview card for
@@ -74,7 +80,7 @@ class FetchLinkCardService < BaseService
urls = if @status.local?
@status.text.scan(URL_PATTERN).map { |array| Addressable::URI.parse(array[1]).normalize }
else
- document = Nokogiri::HTML(@status.text)
+ document = Nokogiri::HTML5(@status.text)
links = document.css('a')
links.filter_map { |a| Addressable::URI.parse(a['href']) unless skip_link?(a) }.filter_map(&:normalize)
@@ -147,12 +153,13 @@ class FetchLinkCardService < BaseService
return if html.nil?
link_details_extractor = LinkDetailsExtractor.new(@url, @html, @html_charset)
- provider = PreviewCardProvider.matching_domain(Addressable::URI.parse(link_details_extractor.canonical_url).normalized_host)
- linked_account = ResolveAccountService.new.call(link_details_extractor.author_account, suppress_errors: true) if link_details_extractor.author_account.present? && provider&.trendable?
+ domain = Addressable::URI.parse(link_details_extractor.canonical_url).normalized_host
+ provider = PreviewCardProvider.matching_domain(domain)
+ linked_account = ResolveAccountService.new.call(link_details_extractor.author_account, suppress_errors: true) if link_details_extractor.author_account.present?
@card = PreviewCard.find_or_initialize_by(url: link_details_extractor.canonical_url) if link_details_extractor.canonical_url != @card.url
@card.assign_attributes(link_details_extractor.to_preview_card_attributes)
- @card.author_account = linked_account
+ @card.author_account = linked_account if linked_account&.can_be_attributed_from?(domain) || provider&.trendable?
@card.save_with_optional_image! unless @card.title.blank? && @card.html.blank?
end
end
diff --git a/app/services/fetch_oembed_service.rb b/app/services/fetch_oembed_service.rb
index dc84b16b684..c7d4f7e2927 100644
--- a/app/services/fetch_oembed_service.rb
+++ b/app/services/fetch_oembed_service.rb
@@ -25,7 +25,7 @@ class FetchOEmbedService
return if html.nil?
@format = @options[:format]
- page = Nokogiri::HTML(html)
+ page = Nokogiri::HTML5(html)
if @format.nil? || @format == :json
@endpoint_url ||= page.at_xpath('//link[@type="application/json+oembed"]|//link[@type="text/json+oembed"]')&.attribute('href')&.value
diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb
index 84c36f6a101..b69015a5e9a 100644
--- a/app/services/fetch_resource_service.rb
+++ b/app/services/fetch_resource_service.rb
@@ -73,7 +73,7 @@ class FetchResourceService < BaseService
end
def process_html(response)
- page = Nokogiri::HTML(response.body_with_limit)
+ page = Nokogiri::HTML5(response.body_with_limit)
json_link = page.xpath('//link[@rel="alternate"]').find { |link| ACTIVITY_STREAM_LINK_TYPES.include?(link['type']) }
process(json_link['href'], terminal: true) unless json_link.nil?
diff --git a/app/services/keys/claim_service.rb b/app/services/keys/claim_service.rb
deleted file mode 100644
index ebce9cce7d8..00000000000
--- a/app/services/keys/claim_service.rb
+++ /dev/null
@@ -1,79 +0,0 @@
-# frozen_string_literal: true
-
-class Keys::ClaimService < BaseService
- HEADERS = { 'Content-Type' => 'application/activity+json' }.freeze
-
- class Result < ActiveModelSerializers::Model
- attributes :account, :device_id, :key_id,
- :key, :signature
-
- def initialize(account, device_id, key_attributes = {})
- super(
- account: account,
- device_id: device_id,
- key_id: key_attributes[:key_id],
- key: key_attributes[:key],
- signature: key_attributes[:signature],
- )
- end
- end
-
- def call(source_account, target_account_id, device_id)
- @source_account = source_account
- @target_account = Account.find(target_account_id)
- @device_id = device_id
-
- if @target_account.local?
- claim_local_key!
- else
- claim_remote_key!
- end
- rescue ActiveRecord::RecordNotFound
- nil
- end
-
- private
-
- def claim_local_key!
- device = @target_account.devices.find_by(device_id: @device_id)
- key = nil
-
- ApplicationRecord.transaction do
- key = device.one_time_keys.order(Arel.sql('random()')).first!
- key.destroy!
- end
-
- @result = Result.new(@target_account, @device_id, key)
- end
-
- def claim_remote_key!
- query_result = QueryService.new.call(@target_account)
- device = query_result.find(@device_id)
-
- return unless device.present? && device.valid_claim_url?
-
- json = fetch_resource_with_post(device.claim_url)
-
- return unless json.present? && json['publicKeyBase64'].present?
-
- @result = Result.new(@target_account, @device_id, key_id: json['id'], key: json['publicKeyBase64'], signature: json.dig('signature', 'signatureValue'))
- rescue HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error => e
- Rails.logger.debug { "Claiming one-time key for #{@target_account.acct}:#{@device_id} failed: #{e}" }
- nil
- end
-
- def fetch_resource_with_post(uri)
- build_post_request(uri).perform do |response|
- raise Mastodon::UnexpectedResponseError, response unless response_successful?(response) || response_error_unsalvageable?(response)
-
- body_to_json(response.body_with_limit) if response.code == 200
- end
- end
-
- def build_post_request(uri)
- Request.new(:post, uri).tap do |request|
- request.on_behalf_of(@source_account)
- request.add_headers(HEADERS)
- end
- end
-end
diff --git a/app/services/keys/query_service.rb b/app/services/keys/query_service.rb
deleted file mode 100644
index 33e13293f31..00000000000
--- a/app/services/keys/query_service.rb
+++ /dev/null
@@ -1,79 +0,0 @@
-# frozen_string_literal: true
-
-class Keys::QueryService < BaseService
- include JsonLdHelper
-
- class Result < ActiveModelSerializers::Model
- attributes :account, :devices
-
- def initialize(account, devices)
- super(
- account: account,
- devices: devices || [],
- )
- end
-
- def find(device_id)
- @devices.find { |device| device.device_id == device_id }
- end
- end
-
- class Device < ActiveModelSerializers::Model
- attributes :device_id, :name, :identity_key, :fingerprint_key
-
- def initialize(attributes = {})
- super(
- device_id: attributes[:device_id],
- name: attributes[:name],
- identity_key: attributes[:identity_key],
- fingerprint_key: attributes[:fingerprint_key],
- )
- @claim_url = attributes[:claim_url]
- end
-
- def valid_claim_url?
- return false if @claim_url.blank?
-
- begin
- parsed_url = Addressable::URI.parse(@claim_url).normalize
- rescue Addressable::URI::InvalidURIError
- return false
- end
-
- %w(http https).include?(parsed_url.scheme) && parsed_url.host.present?
- end
- end
-
- def call(account)
- @account = account
-
- if @account.local?
- query_local_devices!
- else
- query_remote_devices!
- end
-
- Result.new(@account, @devices)
- end
-
- private
-
- def query_local_devices!
- @devices = @account.devices.map { |device| Device.new(device) }
- end
-
- def query_remote_devices!
- return if @account.devices_url.blank?
-
- json = fetch_resource(@account.devices_url)
-
- return if json['items'].blank?
-
- @devices = as_array(json['items']).map do |device|
- Device.new(device_id: device['id'], name: device['name'], identity_key: device.dig('identityKey', 'publicKeyBase64'), fingerprint_key: device.dig('fingerprintKey', 'publicKeyBase64'), claim_url: device['claim'])
- end
- rescue HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error => e
- Rails.logger.debug { "Querying devices for #{@account.acct} failed: #{e}" }
- nil
- end
-end
diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb
index d69b5af1412..9aebab787ee 100644
--- a/app/services/notify_service.rb
+++ b/app/services/notify_service.rb
@@ -3,9 +3,7 @@
class NotifyService < BaseService
include Redisable
- MAXIMUM_GROUP_SPAN_HOURS = 12
- MAXIMUM_GROUP_GAP_TIME = 4.hours.to_i
-
+ # TODO: the severed_relationships type probably warrants email notifications
NON_EMAIL_TYPES = %i(
admin.report
admin.sign_up
@@ -13,63 +11,10 @@ class NotifyService < BaseService
poll
status
moderation_warning
- # TODO: this probably warrants an email notification
severed_relationships
).freeze
- class DismissCondition
- def initialize(notification)
- @recipient = notification.account
- @sender = notification.from_account
- @notification = notification
- end
-
- def dismiss?
- blocked = @recipient.unavailable?
- blocked ||= from_self? && %i(poll severed_relationships moderation_warning).exclude?(@notification.type)
-
- return blocked if message? && from_staff?
-
- blocked ||= domain_blocking?
- blocked ||= @recipient.blocking?(@sender)
- blocked ||= @recipient.muting_notifications?(@sender)
- blocked ||= conversation_muted?
- blocked ||= blocked_mention? if message?
- blocked
- end
-
- private
-
- def blocked_mention?
- FeedManager.instance.filter?(:mentions, @notification.target_status, @recipient)
- end
-
- def message?
- @notification.type == :mention
- end
-
- def from_staff?
- @sender.local? && @sender.user.present? && @sender.user_role&.overrides?(@recipient.user_role)
- end
-
- def from_self?
- @recipient.id == @sender.id
- end
-
- def domain_blocking?
- @recipient.domain_blocking?(@sender.domain) && !following_sender?
- end
-
- def conversation_muted?
- @notification.target_status && @recipient.muting_conversation?(@notification.target_status.conversation)
- end
-
- def following_sender?
- @recipient.following?(@sender)
- end
- end
-
- class FilterCondition
+ class BaseCondition
NEW_ACCOUNT_THRESHOLD = 30.days.freeze
NEW_FOLLOWER_THRESHOLD = 3.days.freeze
@@ -83,39 +28,16 @@ class NotifyService < BaseService
).freeze
def initialize(notification)
- @notification = notification
@recipient = notification.account
@sender = notification.from_account
+ @notification = notification
@policy = NotificationPolicy.find_or_initialize_by(account: @recipient)
end
- def filter?
- return false unless Notification::PROPERTIES[@notification.type][:filterable]
- return false if override_for_sender?
-
- from_limited? ||
- filtered_by_not_following_policy? ||
- filtered_by_not_followers_policy? ||
- filtered_by_new_accounts_policy? ||
- filtered_by_private_mentions_policy?
- end
-
private
- def filtered_by_not_following_policy?
- @policy.filter_not_following? && not_following?
- end
-
- def filtered_by_not_followers_policy?
- @policy.filter_not_followers? && not_follower?
- end
-
- def filtered_by_new_accounts_policy?
- @policy.filter_new_accounts? && new_account?
- end
-
- def filtered_by_private_mentions_policy?
- @policy.filter_private_mentions? && not_following? && private_mention_not_in_response?
+ def filterable_type?
+ Notification::PROPERTIES[@notification.type][:filterable]
end
def not_following?
@@ -175,6 +97,112 @@ class NotifyService < BaseService
end
end
+ class DropCondition < BaseCondition
+ def drop?
+ blocked = @recipient.unavailable?
+ blocked ||= from_self? && %i(poll severed_relationships moderation_warning).exclude?(@notification.type)
+
+ return blocked if message? && from_staff?
+
+ blocked ||= domain_blocking?
+ blocked ||= @recipient.blocking?(@sender)
+ blocked ||= @recipient.muting_notifications?(@sender)
+ blocked ||= conversation_muted?
+ blocked ||= blocked_mention? if message?
+
+ return true if blocked
+ return false unless filterable_type?
+ return false if override_for_sender?
+
+ blocked_by_limited_accounts_policy? ||
+ blocked_by_not_following_policy? ||
+ blocked_by_not_followers_policy? ||
+ blocked_by_new_accounts_policy? ||
+ blocked_by_private_mentions_policy?
+ end
+
+ private
+
+ def blocked_mention?
+ FeedManager.instance.filter?(:mentions, @notification.target_status, @recipient)
+ end
+
+ def message?
+ @notification.type == :mention
+ end
+
+ def from_staff?
+ @sender.local? && @sender.user.present? && @sender.user_role&.overrides?(@recipient.user_role) && @sender.user_role&.highlighted? && @sender.user_role&.can?(*UserRole::Flags::CATEGORIES[:moderation])
+ end
+
+ def from_self?
+ @recipient.id == @sender.id
+ end
+
+ def domain_blocking?
+ @recipient.domain_blocking?(@sender.domain) && not_following?
+ end
+
+ def conversation_muted?
+ @notification.target_status && @recipient.muting_conversation?(@notification.target_status.conversation)
+ end
+
+ def blocked_by_not_following_policy?
+ @policy.drop_not_following? && not_following?
+ end
+
+ def blocked_by_not_followers_policy?
+ @policy.drop_not_followers? && not_follower?
+ end
+
+ def blocked_by_new_accounts_policy?
+ @policy.drop_new_accounts? && new_account? && not_following?
+ end
+
+ def blocked_by_private_mentions_policy?
+ @policy.drop_private_mentions? && not_following? && private_mention_not_in_response?
+ end
+
+ def blocked_by_limited_accounts_policy?
+ @policy.drop_limited_accounts? && @sender.silenced? && not_following?
+ end
+ end
+
+ class FilterCondition < BaseCondition
+ def filter?
+ return false unless filterable_type?
+ return false if override_for_sender?
+
+ filtered_by_limited_accounts_policy? ||
+ filtered_by_not_following_policy? ||
+ filtered_by_not_followers_policy? ||
+ filtered_by_new_accounts_policy? ||
+ filtered_by_private_mentions_policy?
+ end
+
+ private
+
+ def filtered_by_not_following_policy?
+ @policy.filter_not_following? && not_following?
+ end
+
+ def filtered_by_not_followers_policy?
+ @policy.filter_not_followers? && not_follower?
+ end
+
+ def filtered_by_new_accounts_policy?
+ @policy.filter_new_accounts? && new_account? && not_following?
+ end
+
+ def filtered_by_private_mentions_policy?
+ @policy.filter_private_mentions? && not_following? && private_mention_not_in_response?
+ end
+
+ def filtered_by_limited_accounts_policy?
+ @policy.filter_limited_accounts? && @sender.silenced? && not_following?
+ end
+ end
+
def call(recipient, type, activity)
return if recipient.user.nil?
@@ -183,10 +211,10 @@ class NotifyService < BaseService
@notification = Notification.new(account: @recipient, type: type, activity: @activity)
# For certain conditions we don't need to create a notification at all
- return if dismiss?
+ return if drop?
@notification.filtered = filter?
- @notification.group_key = notification_group_key
+ @notification.set_group_key!
@notification.save!
# It's possible the underlying activity has been deleted
@@ -206,26 +234,8 @@ class NotifyService < BaseService
private
- def notification_group_key
- return nil if @notification.filtered || %i(favourite reblog).exclude?(@notification.type)
-
- type_prefix = "#{@notification.type}-#{@notification.target_status.id}"
- redis_key = "notif-group/#{@recipient.id}/#{type_prefix}"
- hour_bucket = @notification.activity.created_at.utc.to_i / 1.hour.to_i
-
- # Reuse previous group if it does not span too large an amount of time
- previous_bucket = redis.get(redis_key).to_i
- hour_bucket = previous_bucket if hour_bucket < previous_bucket + MAXIMUM_GROUP_SPAN_HOURS
-
- # Do not track groups past a given inactivity time
- # We do not concern ourselves with race conditions since we use hour buckets
- redis.set(redis_key, hour_bucket, ex: MAXIMUM_GROUP_GAP_TIME)
-
- "#{type_prefix}-#{hour_bucket}"
- end
-
- def dismiss?
- DismissCondition.new(@notification).dismiss?
+ def drop?
+ DropCondition.new(@notification).drop?
end
def filter?
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
index 8b18ce038d8..98fd95f0258 100644
--- a/app/services/post_status_service.rb
+++ b/app/services/post_status_service.rb
@@ -134,6 +134,9 @@ class PostStatusService < BaseService
@media = @account.media_attachments.where(status_id: nil).where(id: @options[:media_ids].take(Status::MEDIA_ATTACHMENTS_LIMIT).map(&:to_i))
+ not_found_ids = @options[:media_ids].map(&:to_i) - @media.map(&:id)
+ raise Mastodon::ValidationError, I18n.t('media_attachments.validations.not_found', ids: not_found_ids.join(', ')) if not_found_ids.any?
+
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if @media.size > 1 && @media.find(&:audio_or_video?)
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.not_ready') if @media.any?(&:not_processed?)
end
diff --git a/app/services/report_service.rb b/app/services/report_service.rb
index dea6df7b0a1..c95e216c790 100644
--- a/app/services/report_service.rb
+++ b/app/services/report_service.rb
@@ -10,6 +10,7 @@ class ReportService < BaseService
@comment = options.delete(:comment).presence || ''
@category = options[:rule_ids].present? ? 'violation' : (options.delete(:category).presence || 'other')
@rule_ids = options.delete(:rule_ids).presence
+ @application = options.delete(:application).presence
@options = options
raise ActiveRecord::RecordNotFound if @target_account.unavailable?
@@ -35,7 +36,8 @@ class ReportService < BaseService
uri: @options[:uri],
forwarded: forward_to_origin?,
category: @category,
- rule_ids: @rule_ids
+ rule_ids: @rule_ids,
+ application: @application
)
end
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index 078a0423f28..8a5863baba6 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -106,8 +106,6 @@ class ResolveAccountService < BaseService
end
def fetch_account!
- return unless activitypub_ready?
-
with_redis_lock("resolve:#{@username}@#{@domain}") do
@account = ActivityPub::FetchRemoteAccountService.new.call(actor_url, suppress_errors: @options[:suppress_errors])
end
@@ -122,12 +120,8 @@ class ResolveAccountService < BaseService
@options[:skip_cache] || @account.nil? || @account.possibly_stale?
end
- def activitypub_ready?
- ['application/activity+json', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'].include?(@webfinger.link('self', 'type'))
- end
-
def actor_url
- @actor_url ||= @webfinger.link('self', 'href')
+ @actor_url ||= @webfinger.self_link_href
end
def gone_from_origin?
diff --git a/app/services/translate_status_service.rb b/app/services/translate_status_service.rb
index 9ad146ae7d3..e2e076e21b9 100644
--- a/app/services/translate_status_service.rb
+++ b/app/services/translate_status_service.rb
@@ -100,7 +100,7 @@ class TranslateStatusService < BaseService
end
def unwrap_emoji_shortcodes(html)
- fragment = Nokogiri::HTML.fragment(html)
+ fragment = Nokogiri::HTML5.fragment(html)
fragment.css('span[translate="no"]').each do |element|
element.remove_attribute('translate')
element.replace(element.children) if element.attributes.empty?
diff --git a/app/services/update_status_service.rb b/app/services/update_status_service.rb
index dc7d177e2d1..7837d37c959 100644
--- a/app/services/update_status_service.rb
+++ b/app/services/update_status_service.rb
@@ -73,6 +73,9 @@ class UpdateStatusService < BaseService
media_attachments = @status.account.media_attachments.where(status_id: [nil, @status.id]).where(scheduled_status_id: nil).where(id: @options[:media_ids].take(Status::MEDIA_ATTACHMENTS_LIMIT).map(&:to_i)).to_a
+ not_found_ids = @options[:media_ids].map(&:to_i) - media_attachments.map(&:id)
+ raise Mastodon::ValidationError, I18n.t('media_attachments.validations.not_found', ids: not_found_ids.join(', ')) if not_found_ids.any?
+
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if media_attachments.size > 1 && media_attachments.find(&:audio_or_video?)
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.not_ready') if media_attachments.any?(&:not_processed?)
diff --git a/app/services/verify_link_service.rb b/app/services/verify_link_service.rb
index b317fc31a85..c4f4191e1f3 100644
--- a/app/services/verify_link_service.rb
+++ b/app/services/verify_link_service.rb
@@ -26,7 +26,7 @@ class VerifyLinkService < BaseService
def link_back_present?
return false if @body.blank?
- links = Nokogiri::HTML5(@body).xpath('//a[contains(concat(" ", normalize-space(@rel), " "), " me ")]|//link[contains(concat(" ", normalize-space(@rel), " "), " me ")]')
+ links = Nokogiri::HTML5(@body).css("a[rel~='me'],link[rel~='me']")
if links.any? { |link| link['href']&.downcase == @link_back.downcase }
true
diff --git a/app/validators/domain_validator.rb b/app/validators/domain_validator.rb
index 3a951f9a7e5..718fd190f17 100644
--- a/app/validators/domain_validator.rb
+++ b/app/validators/domain_validator.rb
@@ -1,22 +1,29 @@
# frozen_string_literal: true
class DomainValidator < ActiveModel::EachValidator
+ MAX_DOMAIN_LENGTH = 256
+ MIN_LABEL_LENGTH = 1
+ MAX_LABEL_LENGTH = 63
+ ALLOWED_CHARACTERS_RE = /^[a-z0-9\-]+$/i
+
def validate_each(record, attribute, value)
return if value.blank?
- domain = if options[:acct]
- value.split('@').last
- else
- value
- end
+ (options[:multiline] ? value.split : [value]).each do |domain|
+ _, domain = domain.split('@') if options[:acct]
- record.errors.add(attribute, I18n.t('domain_validator.invalid_domain')) unless compliant?(domain)
+ next if domain.blank?
+
+ record.errors.add(attribute, options[:multiline] ? :invalid_domain_on_line : :invalid, value: domain) unless compliant?(domain)
+ end
end
private
def compliant?(value)
- Addressable::URI.new.tap { |uri| uri.host = value }
+ uri = Addressable::URI.new
+ uri.host = value
+ uri.normalized_host.size < MAX_DOMAIN_LENGTH && uri.normalized_host.split('.').all? { |label| label.size.between?(MIN_LABEL_LENGTH, MAX_LABEL_LENGTH) && label =~ ALLOWED_CHARACTERS_RE }
rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError
false
end
diff --git a/app/validators/ed25519_key_validator.rb b/app/validators/ed25519_key_validator.rb
deleted file mode 100644
index adf49296b2f..00000000000
--- a/app/validators/ed25519_key_validator.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# frozen_string_literal: true
-
-class Ed25519KeyValidator < ActiveModel::EachValidator
- def validate_each(record, attribute, value)
- return if value.blank?
-
- key = Base64.decode64(value)
-
- record.errors.add(attribute, I18n.t('crypto.errors.invalid_key')) unless verified?(key)
- end
-
- private
-
- def verified?(key)
- Ed25519.validate_key_bytes(key)
- rescue ArgumentError
- false
- end
-end
diff --git a/app/validators/ed25519_signature_validator.rb b/app/validators/ed25519_signature_validator.rb
deleted file mode 100644
index 0e74c231ece..00000000000
--- a/app/validators/ed25519_signature_validator.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-# frozen_string_literal: true
-
-class Ed25519SignatureValidator < ActiveModel::EachValidator
- def validate_each(record, attribute, value)
- return if value.blank?
-
- verify_key = Ed25519::VerifyKey.new(Base64.decode64(option_to_value(record, :verify_key)))
- signature = Base64.decode64(value)
- message = option_to_value(record, :message)
-
- record.errors.add(attribute, I18n.t('crypto.errors.invalid_signature')) unless verified?(verify_key, signature, message)
- end
-
- private
-
- def verified?(verify_key, signature, message)
- verify_key.verify(signature, message)
- rescue Ed25519::VerifyError, ArgumentError
- false
- end
-
- def option_to_value(record, key)
- if options[key].is_a?(Proc)
- options[key].call(record)
- else
- record.public_send(options[key])
- end
- end
-end
diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb
index 79437789435..f78b98d7dd7 100644
--- a/app/validators/email_mx_validator.rb
+++ b/app/validators/email_mx_validator.rb
@@ -15,7 +15,7 @@ class EmailMxValidator < ActiveModel::Validator
if resolved_ips.empty?
user.errors.add(:email, :unreachable)
- elsif on_blacklist?(resolved_domains, user.sign_up_ip)
+ elsif email_domain_blocked?(resolved_domains, user.sign_up_ip)
user.errors.add(:email, :blocked)
end
end
@@ -34,9 +34,9 @@ class EmailMxValidator < ActiveModel::Validator
end
def on_allowlist?(domain)
- return false if Rails.configuration.x.email_domains_whitelist.blank?
+ return false if Rails.configuration.x.email_domains_allowlist.blank?
- Rails.configuration.x.email_domains_whitelist.include?(domain)
+ Rails.configuration.x.email_domains_allowlist.include?(domain)
end
def resolve_mx(domain)
@@ -58,7 +58,7 @@ class EmailMxValidator < ActiveModel::Validator
[ips, records]
end
- def on_blacklist?(domains, attempt_ip)
+ def email_domain_blocked?(domains, attempt_ip)
EmailDomainBlock.block?(domains, attempt_ip: attempt_ip)
end
end
diff --git a/app/validators/lines_validator.rb b/app/validators/lines_validator.rb
new file mode 100644
index 00000000000..27a108bb2c7
--- /dev/null
+++ b/app/validators/lines_validator.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class LinesValidator < ActiveModel::EachValidator
+ def validate_each(record, attribute, value)
+ return if value.blank?
+
+ record.errors.add(attribute, :too_many_lines, limit: options[:maximum]) if options[:maximum].present? && value.split.size > options[:maximum]
+ end
+end
diff --git a/app/validators/blacklisted_email_validator.rb b/app/validators/user_email_validator.rb
similarity index 74%
rename from app/validators/blacklisted_email_validator.rb
rename to app/validators/user_email_validator.rb
index 9b3f2e33e55..21b22794ef6 100644
--- a/app/validators/blacklisted_email_validator.rb
+++ b/app/validators/user_email_validator.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class BlacklistedEmailValidator < ActiveModel::Validator
+class UserEmailValidator < ActiveModel::Validator
def validate(user)
return if user.valid_invitation? || user.email.blank?
@@ -23,18 +23,18 @@ class BlacklistedEmailValidator < ActiveModel::Validator
end
def not_allowed_through_configuration?(email)
- return false if Rails.configuration.x.email_domains_whitelist.blank?
+ return false if Rails.configuration.x.email_domains_allowlist.blank?
- domains = Rails.configuration.x.email_domains_whitelist.gsub('.', '\.')
+ domains = Rails.configuration.x.email_domains_allowlist.gsub('.', '\.')
regexp = Regexp.new("@(.+\\.)?(#{domains})$", true)
email !~ regexp
end
def disallowed_through_configuration?(email)
- return false if Rails.configuration.x.email_domains_blacklist.blank?
+ return false if Rails.configuration.x.email_domains_denylist.blank?
- domains = Rails.configuration.x.email_domains_blacklist.gsub('.', '\.')
+ domains = Rails.configuration.x.email_domains_denylist.gsub('.', '\.')
regexp = Regexp.new("@(.+\\.)?(#{domains})", true)
regexp.match?(email)
diff --git a/app/views/admin/account_actions/new.html.haml b/app/views/admin/account_actions/new.html.haml
index bce1c31760d..c4311eba963 100644
--- a/app/views/admin/account_actions/new.html.haml
+++ b/app/views/admin/account_actions/new.html.haml
@@ -1,6 +1,13 @@
- content_for :page_title do
= t('admin.account_actions.title', acct: @account.pretty_acct)
+- if @account.suspended_locally?
+ .flash-message.alert
+ = t('admin.account_actions.already_suspended')
+- elsif @account.silenced?
+ .flash-message.warn
+ = t('admin.account_actions.already_silenced')
+
= simple_form_for @account_action, url: admin_account_action_path(@account.id) do |f|
= f.input :report_id,
as: :hidden
@@ -9,6 +16,7 @@
= f.input :type,
as: :radio_buttons,
collection: Admin::AccountAction.types_for_account(@account),
+ disabled: Admin::AccountAction.disabled_types_for_account(@account),
hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct),
include_blank: false,
label_method: ->(type) { account_action_type_label(type) },
diff --git a/app/views/admin/accounts/_local_account.html.haml b/app/views/admin/accounts/_local_account.html.haml
index 3ed392cd1a5..5357ebcce9b 100644
--- a/app/views/admin/accounts/_local_account.html.haml
+++ b/app/views/admin/accounts/_local_account.html.haml
@@ -1,12 +1,12 @@
- if account.avatar?
%tr
%th= t('admin.accounts.avatar')
- %td= table_link_to 'trash', t('admin.accounts.remove_avatar'), remove_avatar_admin_account_path(account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_avatar, account)
+ %td= table_link_to 'delete', t('admin.accounts.remove_avatar'), remove_avatar_admin_account_path(account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_avatar, account)
%td
- if account.header?
%tr
%th= t('admin.accounts.header')
- %td= table_link_to 'trash', t('admin.accounts.remove_header'), remove_header_admin_account_path(account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_header, account)
+ %td= table_link_to 'delete', t('admin.accounts.remove_header'), remove_header_admin_account_path(account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_header, account)
%td
%tr
%th= t('admin.accounts.role')
@@ -16,7 +16,7 @@
- else
= account.user_role&.name
%td
- = table_link_to 'vcard', t('admin.accounts.change_role.label'), admin_user_role_path(account.user) if can?(:change_role, account.user)
+ = table_link_to 'contact_mail', t('admin.accounts.change_role.label'), admin_user_role_path(account.user) if can?(:change_role, account.user)
%tr
%th{ rowspan: can?(:create, :email_domain_block) ? 3 : 2 }= t('admin.accounts.email')
%td{ rowspan: can?(:create, :email_domain_block) ? 3 : 2 }= account.user_email
@@ -25,7 +25,7 @@
%td= table_link_to 'search', t('admin.accounts.search_same_email_domain'), admin_accounts_path(email: "%@#{account.user_email.split('@').last}")
- if can?(:create, :email_domain_block)
%tr
- %td= table_link_to 'ban', t('admin.accounts.add_email_domain_block'), new_admin_email_domain_block_path(_domain: account.user_email.split('@').last)
+ %td= table_link_to 'hide_source', t('admin.accounts.add_email_domain_block'), new_admin_email_domain_block_path(_domain: account.user_email.split('@').last)
- if account.user_unconfirmed_email.present?
%tr
%th= t('admin.accounts.unconfirmed_email')
@@ -48,11 +48,11 @@
= t 'admin.accounts.security_measures.only_password'
%td
- if account.user&.two_factor_enabled? && can?(:disable_2fa, account.user)
- = table_link_to 'unlock', t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(account.user.id), method: :delete
+ = table_link_to 'lock_open', t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(account.user.id), method: :delete
- if can?(:reset_password, account.user)
%tr
%td
- = table_link_to 'key', t('admin.accounts.reset_password'), admin_account_reset_path(account.id), method: :create, data: { confirm: t('admin.accounts.are_you_sure') }
+ = table_link_to 'key', t('admin.accounts.reset_password'), admin_account_reset_path(account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
%tr
%th= t('simple_form.labels.defaults.locale')
%td= standard_locale_name(account.user_locale)
diff --git a/app/views/admin/accounts/_remote_account.html.haml b/app/views/admin/accounts/_remote_account.html.haml
index 6755af2496c..a052e877f43 100644
--- a/app/views/admin/accounts/_remote_account.html.haml
+++ b/app/views/admin/accounts/_remote_account.html.haml
@@ -12,4 +12,4 @@
= material_symbol DeliveryFailureTracker.available?(account.shared_inbox_url) ? 'check' : 'close'
%td
- if domain_block.nil?
- = table_link_to 'ban', t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: account.domain)
+ = table_link_to 'hide_source', t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: account.domain)
diff --git a/app/views/admin/announcements/_announcement.html.haml b/app/views/admin/announcements/_announcement.html.haml
index 1c7f89ef21a..8190f87d2f6 100644
--- a/app/views/admin/announcements/_announcement.html.haml
+++ b/app/views/admin/announcements/_announcement.html.haml
@@ -1,4 +1,4 @@
-.announcements-list__item
+.announcements-list__item{ id: dom_id(announcement) }
= link_to edit_admin_announcement_path(announcement), class: 'announcements-list__item__title' do
= truncate(announcement.text)
@@ -12,8 +12,8 @@
%div
- if can?(:update, announcement)
- if announcement.published?
- = table_link_to 'toggle-off', t('admin.announcements.unpublish'), unpublish_admin_announcement_path(announcement), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
+ = table_link_to 'toggle_off', t('admin.announcements.unpublish'), unpublish_admin_announcement_path(announcement), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
- else
- = table_link_to 'toggle-on', t('admin.announcements.publish'), publish_admin_announcement_path(announcement), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
+ = table_link_to 'toggle_on', t('admin.announcements.publish'), publish_admin_announcement_path(announcement), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
- = table_link_to 'trash', t('generic.delete'), admin_announcement_path(announcement), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, announcement)
+ = table_link_to 'delete', t('generic.delete'), admin_announcement_path(announcement), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, announcement)
diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml
index 82fec554b03..6db97e2e8e9 100644
--- a/app/views/admin/custom_emojis/index.html.haml
+++ b/app/views/admin/custom_emojis/index.html.haml
@@ -49,15 +49,15 @@
= check_box_tag :batch_checkbox_all, nil, false
.batch-table__toolbar__actions
- if params[:local] == '1'
- = f.button safe_join([fa_icon('save'), t('generic.save_changes')]), name: :update, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+ = f.button safe_join([material_symbol('save'), t('generic.save_changes')]), name: :update, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
= f.button safe_join([material_symbol('visibility'), t('admin.custom_emojis.list')]), name: :list, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
= f.button safe_join([material_symbol('visibility_off'), t('admin.custom_emojis.unlist')]), name: :unlist, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
- = f.button safe_join([fa_icon('power-off'), t('admin.custom_emojis.enable')]), name: :enable, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+ = f.button safe_join([material_symbol('radio_button_checked'), t('admin.custom_emojis.enable')]), name: :enable, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
- = f.button safe_join([fa_icon('power-off'), t('admin.custom_emojis.disable')]), name: :disable, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+ = f.button safe_join([material_symbol('radio_button_unchecked'), t('admin.custom_emojis.disable')]), name: :disable, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
- if can?(:destroy, :custom_emoji)
= f.button safe_join([material_symbol('close'), t('admin.custom_emojis.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml
index 8430dd3c4f1..27d8f4790ba 100644
--- a/app/views/admin/dashboard/index.html.haml
+++ b/app/views/admin/dashboard/index.html.haml
@@ -56,19 +56,19 @@
.dashboard__item
= link_to admin_reports_path, class: 'dashboard__quick-access' do
- %span= t('admin.dashboard.pending_reports_html', count: @pending_reports_count)
+ %span= t('admin.dashboard.pending_reports_html', count: @pending_reports_count.value)
= material_symbol 'chevron_right'
= link_to admin_accounts_path(status: 'pending'), class: 'dashboard__quick-access' do
- %span= t('admin.dashboard.pending_users_html', count: @pending_users_count)
+ %span= t('admin.dashboard.pending_users_html', count: @pending_users_count.value)
= material_symbol 'chevron_right'
= link_to admin_trends_tags_path(status: 'pending_review'), class: 'dashboard__quick-access' do
- %span= t('admin.dashboard.pending_tags_html', count: @pending_tags_count)
+ %span= t('admin.dashboard.pending_tags_html', count: @pending_tags_count.value)
= material_symbol 'chevron_right'
= link_to admin_disputes_appeals_path(status: 'pending'), class: 'dashboard__quick-access' do
- %span= t('admin.dashboard.pending_appeals_html', count: @pending_appeals_count)
+ %span= t('admin.dashboard.pending_appeals_html', count: @pending_appeals_count.value)
= material_symbol 'chevron_right'
.dashboard__item
= react_admin_component :dimension,
diff --git a/app/views/admin/follow_recommendations/show.html.haml b/app/views/admin/follow_recommendations/show.html.haml
index 62cd3157252..6c2627743b4 100644
--- a/app/views/admin/follow_recommendations/show.html.haml
+++ b/app/views/admin/follow_recommendations/show.html.haml
@@ -12,7 +12,7 @@
.filters
.filter-subset.filter-subset--with-select
%strong= t('admin.follow_recommendations.language')
- .input.select.optional
+ .input.select.select--languages.optional
= form.select :language,
options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, @language)
.filter-subset
diff --git a/app/views/admin/instances/_instance.html.haml b/app/views/admin/instances/_instance.html.haml
index 522a2444bb9..4cae3caf525 100644
--- a/app/views/admin/instances/_instance.html.haml
+++ b/app/views/admin/instances/_instance.html.haml
@@ -1,7 +1,7 @@
.directory__tag
= link_to admin_instance_path(instance) do
%h4
- = fa_icon 'warning fw', title: t('admin.instances.availability.warning') if instance.failing?
+ = material_symbol 'warning', title: t('admin.instances.availability.warning') if instance.failing?
= instance.domain
%small
diff --git a/app/views/admin/instances/show.html.haml b/app/views/admin/instances/show.html.haml
index d916203d0c6..c55eb89dc94 100644
--- a/app/views/admin/instances/show.html.haml
+++ b/app/views/admin/instances/show.html.haml
@@ -114,6 +114,16 @@
- if @instance.persisted?
%hr.spacer/
+ %h3= t('admin.instances.audit_log.title')
+ - if @action_logs.empty?
+ %p= t('accounts.nothing_here')
+ - else
+ .report-notes
+ = render partial: 'admin/action_logs/action_log', collection: @action_logs
+ = link_to t('admin.instances.audit_log.view_all'), admin_action_logs_path(target_domain: @instance.domain), class: 'button'
+
+ %hr.spacer/
+
%h3= t('admin.instances.availability.title')
%p
diff --git a/app/views/admin/invites/_invite.html.haml b/app/views/admin/invites/_invite.html.haml
index f9cd6003f3d..8bd5f10feef 100644
--- a/app/views/admin/invites/_invite.html.haml
+++ b/app/views/admin/invites/_invite.html.haml
@@ -27,4 +27,4 @@
%td
- if invite.valid_for_use? && policy(invite).destroy?
- = table_link_to 'times', t('invites.delete'), admin_invite_path(invite), method: :delete
+ = table_link_to 'close', t('invites.delete'), admin_invite_path(invite), method: :delete
diff --git a/app/views/admin/relays/_relay.html.haml b/app/views/admin/relays/_relay.html.haml
index 0960124ccfa..9e9f629eee1 100644
--- a/app/views/admin/relays/_relay.html.haml
+++ b/app/views/admin/relays/_relay.html.haml
@@ -8,7 +8,7 @@
= t 'admin.relays.enabled'
- elsif relay.pending?
- = fa_icon('hourglass')
+ = material_symbol('hourglass')
= t 'admin.relays.pending'
- else
@@ -18,8 +18,8 @@
= t 'admin.relays.disabled'
%td
- if relay.accepted?
- = table_link_to 'power-off', t('admin.relays.disable'), disable_admin_relay_path(relay), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
+ = table_link_to 'power_off', t('admin.relays.disable'), disable_admin_relay_path(relay), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
- elsif !relay.pending?
- = table_link_to 'power-off', t('admin.relays.enable'), enable_admin_relay_path(relay), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
+ = table_link_to 'power_off', t('admin.relays.enable'), enable_admin_relay_path(relay), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
- = table_link_to 'times', t('admin.relays.delete'), admin_relay_path(relay), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
+ = table_link_to 'close', t('admin.relays.delete'), admin_relay_path(relay), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
diff --git a/app/views/admin/report_notes/_report_note.html.haml b/app/views/admin/report_notes/_report_note.html.haml
index 64628989a6a..dd60f7eabd0 100644
--- a/app/views/admin/report_notes/_report_note.html.haml
+++ b/app/views/admin/report_notes/_report_note.html.haml
@@ -13,6 +13,6 @@
- if can?(:destroy, report_note)
.report-notes__item__actions
- if report_note.is_a?(AccountModerationNote)
- = table_link_to 'trash', t('admin.reports.notes.delete'), admin_account_moderation_note_path(report_note), method: :delete
+ = table_link_to 'delete', t('admin.reports.notes.delete'), admin_account_moderation_note_path(report_note), method: :delete
- else
- = table_link_to 'trash', t('admin.reports.notes.delete'), admin_report_note_path(report_note), method: :delete
+ = table_link_to 'delete', t('admin.reports.notes.delete'), admin_report_note_path(report_note), method: :delete
diff --git a/app/views/admin/reports/_actions.html.haml b/app/views/admin/reports/_actions.html.haml
index 5fb540931b1..ef016e949bd 100644
--- a/app/views/admin/reports/_actions.html.haml
+++ b/app/views/admin/reports/_actions.html.haml
@@ -17,21 +17,27 @@
.report-actions__item__button
= form.button t('admin.reports.delete_and_resolve'),
name: :delete,
- class: 'button button--destructive'
+ class: 'button button--destructive',
+ disabled: statuses.empty?,
+ title: statuses.empty? ? t('admin.reports.actions_no_posts') : ''
.report-actions__item__description
= t('admin.reports.actions.delete_description_html')
.report-actions__item
.report-actions__item__button
= form.button t('admin.accounts.silence'),
name: :silence,
- class: 'button button--destructive'
+ class: 'button button--destructive',
+ disabled: report.target_account.silenced? || report.target_account.suspended_locally?,
+ title: report.target_account.silenced? ? t('admin.account_actions.already_silenced') : ''
.report-actions__item__description
= t('admin.reports.actions.silence_description_html')
.report-actions__item
.report-actions__item__button
= form.button t('admin.accounts.suspend'),
name: :suspend,
- class: 'button button--destructive'
+ class: 'button button--destructive',
+ disabled: report.target_account.suspended_locally?,
+ title: report.target_account.suspended_locally? ? t('admin.account_actions.already_suspended') : ''
.report-actions__item__description
= t('admin.reports.actions.suspend_description_html')
.report-actions__item
diff --git a/app/views/admin/reports/_header_details.html.haml b/app/views/admin/reports/_header_details.html.haml
index 45790b9cd50..cf81670845f 100644
--- a/app/views/admin/reports/_header_details.html.haml
+++ b/app/views/admin/reports/_header_details.html.haml
@@ -14,6 +14,12 @@
= admin_account_link_to report.account
- else
= report.account.domain
+ - if report.application.present?
+ .report-header__details__item
+ .report-header__details__item__header
+ %strong= t('admin.reports.reported_with_application')
+ .report-header__details__item__content
+ = report.application.name
.report-header__details__item
.report-header__details__item__header
%strong= t('admin.reports.status')
@@ -48,6 +54,6 @@
= admin_account_link_to report.assigned_account
—
- if report.assigned_account != current_user.account
- = table_link_to 'user', t('admin.reports.assign_to_self'), assign_to_self_admin_report_path(report), method: :post
+ = table_link_to 'person', t('admin.reports.assign_to_self'), assign_to_self_admin_report_path(report), method: :post
- elsif !report.assigned_account.nil?
- = table_link_to 'trash', t('admin.reports.unassign'), unassign_admin_report_path(report), method: :post
+ = table_link_to 'delete', t('admin.reports.unassign'), unassign_admin_report_path(report), method: :post
diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml
index 66820f0a6e7..f4630ed25ae 100644
--- a/app/views/admin/reports/_status.html.haml
+++ b/app/views/admin/reports/_status.html.haml
@@ -18,7 +18,7 @@
- if status.application
= status.application.name
·
- = link_to ActivityPub::TagManager.instance.url_for(status), class: 'detailed-status__datetime', target: stream_link_target, rel: 'noopener noreferrer' do
+ = link_to ActivityPub::TagManager.instance.url_for(status.proper), class: 'detailed-status__datetime', target: stream_link_target, rel: 'noopener noreferrer' do
%time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
- if status.edited?
·
@@ -30,10 +30,10 @@
%span.negative-hint= t('admin.statuses.deleted')
·
- if status.reblog?
- = fa_icon('retweet fw')
+ = material_symbol('repeat_active')
= t('statuses.boosted_from_html', acct_link: admin_account_inline_link_to(status.proper.account))
- else
- = fa_visibility_icon(status)
+ = material_symbol visibility_icon(status)
= t("statuses.visibilities.#{status.visibility}")
- if status.proper.sensitive?
·
diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml
index dae2c1aa5bb..b476c6ccfa0 100644
--- a/app/views/admin/reports/index.html.haml
+++ b/app/views/admin/reports/index.html.haml
@@ -61,11 +61,11 @@
.one-line= report.comment.presence || t('admin.reports.comment.none')
%span.report-card__summary__item__content__icon{ title: t('admin.accounts.statuses') }
- = fa_icon('comment')
+ = material_symbol('comment')
= report.status_ids.size
%span.report-card__summary__item__content__icon{ title: t('admin.accounts.media_attachments') }
- = fa_icon('camera')
+ = material_symbol('photo_camera')
= report.media_attachments_count
- if report.forwarded?
diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml
index ca1edea0fe3..69e9c02921e 100644
--- a/app/views/admin/reports/show.html.haml
+++ b/app/views/admin/reports/show.html.haml
@@ -35,7 +35,7 @@
= t 'admin.reports.statuses'
%small.section-skip-link
= link_to '#actions' do
- = fa_icon 'angle-double-down'
+ = material_symbol 'keyboard_double_arrow_down'
= t('admin.reports.skip_to_actions')
%p
diff --git a/app/views/admin/roles/_role.html.haml b/app/views/admin/roles/_role.html.haml
index fd37644c835..636127354b0 100644
--- a/app/views/admin/roles/_role.html.haml
+++ b/app/views/admin/roles/_role.html.haml
@@ -27,4 +27,4 @@
·
%abbr{ title: role.permissions_as_keys.map { |privilege| I18n.t("admin.roles.privileges.#{privilege}") }.join(', ') }= t('admin.roles.permissions_count', count: role.permissions_as_keys.size)
%div
- = table_link_to 'pencil', t('admin.accounts.edit'), edit_admin_role_path(role) if can?(:update, role)
+ = table_link_to 'edit', t('admin.accounts.edit'), edit_admin_role_path(role) if can?(:update, role)
diff --git a/app/views/admin/roles/index.html.haml b/app/views/admin/roles/index.html.haml
index 4f6c511b4fa..90a647cc8a8 100644
--- a/app/views/admin/roles/index.html.haml
+++ b/app/views/admin/roles/index.html.haml
@@ -8,10 +8,10 @@
%hr.spacer/
-.applications-list
+.announcements-list
= render partial: 'role', collection: @roles.select(&:everyone?)
%hr.spacer/
-.applications-list
+.announcements-list
= render partial: 'role', collection: @roles.reject(&:everyone?)
diff --git a/app/views/admin/rules/_rule.html.haml b/app/views/admin/rules/_rule.html.haml
index 5f37f693543..eb97eefb3c7 100644
--- a/app/views/admin/rules/_rule.html.haml
+++ b/app/views/admin/rules/_rule.html.haml
@@ -8,4 +8,4 @@
= rule.hint
%div
- = table_link_to 'trash', t('admin.rules.delete'), admin_rule_path(rule), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, rule)
+ = table_link_to 'delete', t('admin.rules.delete'), admin_rule_path(rule), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, rule)
diff --git a/app/views/admin/settings/appearance/show.html.haml b/app/views/admin/settings/appearance/show.html.haml
index 3ef4920cd50..c610f9f9417 100644
--- a/app/views/admin/settings/appearance/show.html.haml
+++ b/app/views/admin/settings/appearance/show.html.haml
@@ -33,7 +33,7 @@
- if @admin_settings.mascot.persisted?
= image_tag @admin_settings.mascot.file.url, class: 'fields-group__thumbnail'
= link_to admin_site_upload_path(@admin_settings.mascot), data: { method: :delete }, class: 'link-button link-button--destructive' do
- = fa_icon 'trash fw'
+ = material_symbol 'delete'
= t('admin.site_uploads.delete')
.actions
diff --git a/app/views/admin/settings/branding/show.html.haml b/app/views/admin/settings/branding/show.html.haml
index 71aac5ead1c..e03c16a25a8 100644
--- a/app/views/admin/settings/branding/show.html.haml
+++ b/app/views/admin/settings/branding/show.html.haml
@@ -37,7 +37,7 @@
- if @admin_settings.thumbnail.persisted?
= image_tag @admin_settings.thumbnail.file.url(:'@1x'), class: 'fields-group__thumbnail'
= link_to admin_site_upload_path(@admin_settings.thumbnail), data: { method: :delete }, class: 'link-button link-button--destructive' do
- = fa_icon 'trash fw'
+ = material_symbol 'delete'
= t('admin.site_uploads.delete')
.fields-row
@@ -51,7 +51,7 @@
- if @admin_settings.favicon.persisted?
= image_tag @admin_settings.favicon.file.url('48'), class: 'fields-group__thumbnail'
= link_to admin_site_upload_path(@admin_settings.favicon), data: { method: :delete }, class: 'link-button link-button--destructive' do
- = fa_icon 'trash fw'
+ = material_symbol 'delete'
= t('admin.site_uploads.delete')
.fields-row
@@ -65,7 +65,7 @@
- if @admin_settings.app_icon.persisted?
= image_tag @admin_settings.app_icon.file.url('48'), class: 'fields-group__thumbnail'
= link_to admin_site_upload_path(@admin_settings.app_icon), data: { method: :delete }, class: 'link-button link-button--destructive' do
- = fa_icon 'trash fw'
+ = material_symbol 'delete'
= t('admin.site_uploads.delete')
.actions
diff --git a/app/views/admin/settings/shared/_links.html.haml b/app/views/admin/settings/shared/_links.html.haml
index 8b0678d4c91..c03e5cfd9fa 100644
--- a/app/views/admin/settings/shared/_links.html.haml
+++ b/app/views/admin/settings/shared/_links.html.haml
@@ -1,9 +1,9 @@
.content__heading__tabs
= render_navigation renderer: :links do |primary|
:ruby
- primary.item :branding, safe_join([fa_icon('pencil fw'), t('admin.settings.branding.title')]), admin_settings_branding_path
- primary.item :about, safe_join([fa_icon('file-text fw'), t('admin.settings.about.title')]), admin_settings_about_path
+ primary.item :branding, safe_join([material_symbol('edit'), t('admin.settings.branding.title')]), admin_settings_branding_path
+ primary.item :about, safe_join([material_symbol('description'), t('admin.settings.about.title')]), admin_settings_about_path
primary.item :registrations, safe_join([material_symbol('group'), t('admin.settings.registrations.title')]), admin_settings_registrations_path
- primary.item :discovery, safe_join([fa_icon('search fw'), t('admin.settings.discovery.title')]), admin_settings_discovery_path
- primary.item :content_retention, safe_join([fa_icon('history fw'), t('admin.settings.content_retention.title')]), admin_settings_content_retention_path
- primary.item :appearance, safe_join([fa_icon('desktop fw'), t('admin.settings.appearance.title')]), admin_settings_appearance_path
+ primary.item :discovery, safe_join([material_symbol('search'), t('admin.settings.discovery.title')]), admin_settings_discovery_path
+ primary.item :content_retention, safe_join([material_symbol('history'), t('admin.settings.content_retention.title')]), admin_settings_content_retention_path
+ primary.item :appearance, safe_join([material_symbol('computer'), t('admin.settings.appearance.title')]), admin_settings_appearance_path
diff --git a/app/views/admin/statuses/index.html.haml b/app/views/admin/statuses/index.html.haml
index 770d972d934..4d5d0370608 100644
--- a/app/views/admin/statuses/index.html.haml
+++ b/app/views/admin/statuses/index.html.haml
@@ -8,7 +8,7 @@
%strong= t('admin.statuses.media.title')
%ul
%li= filter_link_to t('generic.all'), media: nil, id: nil
- %li= filter_link_to t('admin.statuses.with_media'), media: '1'
+ %li= filter_link_to t('admin.statuses.with_media'), media: true
.back-link
- if params[:report_id]
= link_to admin_report_path(params[:report_id].to_i) do
@@ -33,7 +33,7 @@
= check_box_tag :batch_checkbox_all, nil, false
.batch-table__toolbar__actions
- unless @statuses.empty?
- = f.button safe_join([fa_icon('flag'), t('admin.statuses.batch.report')]),
+ = f.button safe_join([material_symbol('flag'), t('admin.statuses.batch.report')]),
class: 'table-action-link',
data: { confirm: t('admin.reports.are_you_sure') },
name: :report,
diff --git a/app/views/admin/tags/_tag.html.haml b/app/views/admin/tags/_tag.html.haml
new file mode 100644
index 00000000000..322eee0407f
--- /dev/null
+++ b/app/views/admin/tags/_tag.html.haml
@@ -0,0 +1,27 @@
+.batch-table__row{ class: [!tag.requires_review? && !tag.usable? && 'batch-table__row--muted'] }
+ .batch-table__row__content.batch-table__row__content--padded.pending-account
+ .pending-account__header
+ %strong
+ = link_to tag.formatted_name, admin_tag_path(tag.id)
+
+ %br/
+
+ - if tag.usable?
+ = t('admin.tags.moderation.usable')
+ - else
+ = t('admin.tags.moderation.not_usable')
+
+ ·
+ - if tag.trendable?
+ = t('admin.tags.moderation.trendable')
+ - else
+ = t('admin.tags.moderation.not_trendable')
+
+ - if tag.requested_review? || tag.requires_review?
+ ·
+ - if tag.requested_review?
+ %span.negative-hint
+ = t('admin.tags.moderation.review_requested')
+ - else
+ %span.warning-hint
+ = t('admin.tags.moderation.pending_review')
diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml
new file mode 100644
index 00000000000..8d76d8ffa74
--- /dev/null
+++ b/app/views/admin/tags/index.html.haml
@@ -0,0 +1,39 @@
+- content_for :page_title do
+ = t('admin.tags.title')
+
+= form_with url: admin_tags_url, method: :get, class: :simple_form do |form|
+ .filters
+ .filter-subset.filter-subset--with-select
+ %strong= t('admin.tags.moderation.title')
+ .input.select.optional
+ = form.select :status,
+ options_for_select(admin_tags_moderation_options, params[:status]),
+ prompt: t('generic.all')
+
+ .filter-subset.filter-subset--with-select
+ %strong= t 'generic.order_by'
+ .input.select
+ = form.select :order,
+ options_for_select([[t('admin.tags.newest'), 'newest'], [t('admin.tags.oldest'), 'oldest']], params[:order])
+
+ .fields-group
+ .input.string.optional
+ = form.text_field :name,
+ value: params[:name],
+ class: 'string optional',
+ placeholder: t('admin.tags.name')
+
+ .actions
+ %button.button= t('admin.tags.search')
+ = link_to t('admin.tags.reset'), admin_tags_path, class: 'button negative'
+
+%hr.spacer/
+
+.batch-table
+ .batch-table__body
+ - if @tags.empty?
+ = nothing_here 'nothing-here--under-tabs'
+ - else
+ = render partial: 'tag', collection: @tags
+
+= paginate @tags
diff --git a/app/views/admin/tags/show.html.haml b/app/views/admin/tags/show.html.haml
index f2d87b54b04..93387843b2c 100644
--- a/app/views/admin/tags/show.html.haml
+++ b/app/views/admin/tags/show.html.haml
@@ -1,12 +1,16 @@
- content_for :page_title do
- = "##{@tag.display_name}"
+ = @tag.formatted_name
+
+- content_for :heading_actions do
+ - if current_user.can?(:view_dashboard)
+ .time-period
+ = l(@time_period.first)
+ = ' - '
+ = l(@time_period.last)
+
+ = link_to t('admin.tags.open'), tag_url(@tag), class: 'button', target: '_blank', rel: 'noopener noreferrer'
- if current_user.can?(:view_dashboard)
- - content_for :heading_actions do
- = l(@time_period.first)
- = ' - '
- = l(@time_period.last)
-
.dashboard
.dashboard__item
= react_admin_component :counter,
diff --git a/app/views/admin/trends/links/_preview_card.html.haml b/app/views/admin/trends/links/_preview_card.html.haml
index ee3774790c4..49e0dd3fca0 100644
--- a/app/views/admin/trends/links/_preview_card.html.haml
+++ b/app/views/admin/trends/links/_preview_card.html.haml
@@ -4,12 +4,12 @@
.batch-table__row__content.pending-account
.pending-account__header
- = link_to preview_card.title, url_for_preview_card(preview_card)
+ = link_to preview_card.title, url_for_preview_card(preview_card), lang: preview_card.language
%br/
- if preview_card.provider_name.present?
- = preview_card.provider_name
+ %span{ lang: preview_card.language }= preview_card.provider_name
·
- if preview_card.language.present?
diff --git a/app/views/admin/trends/links/index.html.haml b/app/views/admin/trends/links/index.html.haml
index 647c24b1e9e..e54acd656f4 100644
--- a/app/views/admin/trends/links/index.html.haml
+++ b/app/views/admin/trends/links/index.html.haml
@@ -39,22 +39,22 @@
.batch-table__toolbar__actions
= f.button safe_join([material_symbol('check'), t('admin.trends.links.allow')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.links.confirm_allow') },
name: :approve,
type: :submit
= f.button safe_join([material_symbol('check'), t('admin.trends.links.allow_provider')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.links.confirm_allow_provider') },
name: :approve_providers,
type: :submit
= f.button safe_join([material_symbol('close'), t('admin.trends.links.disallow')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.links.confirm_disallow') },
name: :reject,
type: :submit
= f.button safe_join([material_symbol('close'), t('admin.trends.links.disallow_provider')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.links.confirm_disallow_provider') },
name: :reject_providers,
type: :submit
.batch-table__body
diff --git a/app/views/admin/trends/links/preview_card_providers/index.html.haml b/app/views/admin/trends/links/preview_card_providers/index.html.haml
index b43b8dfff9f..93daf25f31a 100644
--- a/app/views/admin/trends/links/preview_card_providers/index.html.haml
+++ b/app/views/admin/trends/links/preview_card_providers/index.html.haml
@@ -12,7 +12,7 @@
%li= filter_link_to t('generic.all'), status: nil
%li= filter_link_to t('admin.trends.approved'), status: 'approved'
%li= filter_link_to t('admin.trends.rejected'), status: 'rejected'
- %li= filter_link_to safe_join([t('admin.accounts.moderation.pending'), "(#{PreviewCardProvider.pending_review.count})"], ' '), status: 'pending_review'
+ %li= filter_link_to safe_join([t('admin.accounts.moderation.pending'), "(#{PreviewCardProvider.unreviewed.count})"], ' '), status: 'pending_review'
.back-link
= link_to admin_trends_links_path do
= material_symbol 'chevron_left'
diff --git a/app/views/admin/trends/statuses/index.html.haml b/app/views/admin/trends/statuses/index.html.haml
index 4713f8c2ae8..93d4177a671 100644
--- a/app/views/admin/trends/statuses/index.html.haml
+++ b/app/views/admin/trends/statuses/index.html.haml
@@ -12,10 +12,11 @@
.filters
.filter-subset.filter-subset--with-select
%strong= t('admin.follow_recommendations.language')
- .input.select.optional
+ .input.select.select--languages.optional
= form.select :locale,
options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]),
- include_blank: true
+ { include_blank: true },
+ { disabled: @locales.empty? }
.filter-subset
%strong= t('admin.trends.trending')
%ul
@@ -35,22 +36,22 @@
.batch-table__toolbar__actions
= f.button safe_join([material_symbol('check'), t('admin.trends.statuses.allow')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.statuses.confirm_allow') },
name: :approve,
type: :submit
= f.button safe_join([material_symbol('check'), t('admin.trends.statuses.allow_account')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.statuses.confirm_allow_account') },
name: :approve_accounts,
type: :submit
= f.button safe_join([material_symbol('close'), t('admin.trends.statuses.disallow')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.statuses.confirm_disallow') },
name: :reject,
type: :submit
= f.button safe_join([material_symbol('close'), t('admin.trends.statuses.disallow_account')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.statuses.confirm_disallow_account') },
name: :reject_accounts,
type: :submit
.batch-table__body
diff --git a/app/views/admin/trends/tags/_tag.html.haml b/app/views/admin/trends/tags/_tag.html.haml
index 8cc0d713b9e..b1e714a9124 100644
--- a/app/views/admin/trends/tags/_tag.html.haml
+++ b/app/views/admin/trends/tags/_tag.html.haml
@@ -4,9 +4,7 @@
.batch-table__row__content.pending-account
.pending-account__header
- = link_to admin_tag_path(tag.id) do
- = material_symbol 'tag'
- = tag.display_name
+ = link_to tag.formatted_name, admin_tag_path(tag.id)
%br/
diff --git a/app/views/admin/trends/tags/index.html.haml b/app/views/admin/trends/tags/index.html.haml
index 3a44cf3a70e..480877456f5 100644
--- a/app/views/admin/trends/tags/index.html.haml
+++ b/app/views/admin/trends/tags/index.html.haml
@@ -27,12 +27,12 @@
.batch-table__toolbar__actions
= f.button safe_join([material_symbol('check'), t('admin.trends.allow')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.confirm_allow') },
name: :approve,
type: :submit
= f.button safe_join([material_symbol('close'), t('admin.trends.disallow')]),
class: 'table-action-link',
- data: { confirm: t('admin.reports.are_you_sure') },
+ data: { confirm: t('admin.trends.confirm_disallow') },
name: :reject,
type: :submit
diff --git a/app/views/admin/users/roles/show.html.haml b/app/views/admin/users/roles/show.html.haml
index f26640f2a1a..01b3830f4eb 100644
--- a/app/views/admin/users/roles/show.html.haml
+++ b/app/views/admin/users/roles/show.html.haml
@@ -7,7 +7,8 @@
collection: UserRole.assignable,
include_blank: I18n.t('admin.accounts.change_role.no_role'),
label_method: :name,
- wrapper: :with_block_label
+ wrapper: :with_block_label,
+ hint: safe_join([I18n.t('simple_form.hints.user.role'), ' ', link_to(I18n.t('admin.accounts.change_role.edit_roles'), admin_roles_path)])
.actions
= f.button :button,
diff --git a/app/views/admin/warning_presets/_warning_preset.html.haml b/app/views/admin/warning_presets/_warning_preset.html.haml
index a58199c8046..2cc056420f4 100644
--- a/app/views/admin/warning_presets/_warning_preset.html.haml
+++ b/app/views/admin/warning_presets/_warning_preset.html.haml
@@ -7,4 +7,4 @@
= truncate(warning_preset.text)
%div
- = table_link_to 'trash', t('admin.warning_presets.delete'), admin_warning_preset_path(warning_preset), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, warning_preset)
+ = table_link_to 'delete', t('admin.warning_presets.delete'), admin_warning_preset_path(warning_preset), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, warning_preset)
diff --git a/app/views/admin/webhooks/_webhook.html.haml b/app/views/admin/webhooks/_webhook.html.haml
index 6b3e49eba0a..dca5abeb777 100644
--- a/app/views/admin/webhooks/_webhook.html.haml
+++ b/app/views/admin/webhooks/_webhook.html.haml
@@ -1,6 +1,6 @@
.applications-list__item
= link_to admin_webhook_path(webhook), class: 'announcements-list__item__title' do
- = fa_icon 'inbox'
+ = material_symbol 'inbox'
= webhook.url
.announcements-list__item__action-bar
@@ -15,5 +15,5 @@
%abbr{ title: webhook.events.join(', ') }= t('admin.webhooks.enabled_events', count: webhook.events.size)
%div
- = table_link_to 'pencil', t('admin.webhooks.edit'), edit_admin_webhook_path(webhook) if can?(:update, webhook)
- = table_link_to 'trash', t('admin.webhooks.delete'), admin_webhook_path(webhook), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, webhook)
+ = table_link_to 'edit', t('admin.webhooks.edit'), edit_admin_webhook_path(webhook) if can?(:update, webhook)
+ = table_link_to 'delete', t('admin.webhooks.delete'), admin_webhook_path(webhook), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, webhook)
diff --git a/app/views/admin/webhooks/show.html.haml b/app/views/admin/webhooks/show.html.haml
index 5ac809efc55..a389e611029 100644
--- a/app/views/admin/webhooks/show.html.haml
+++ b/app/views/admin/webhooks/show.html.haml
@@ -5,7 +5,7 @@
.content__heading__row
%h2
%small
- = fa_icon 'inbox'
+ = material_symbol 'inbox'
= t('admin.webhooks.webhook')
= @webhook.url
.content__heading__actions
@@ -19,10 +19,10 @@
%td
- if @webhook.enabled?
%span.positive-hint= t('admin.webhooks.enabled')
- = table_link_to 'power-off', t('admin.webhooks.disable'), disable_admin_webhook_path(@webhook), method: :post if can?(:disable, @webhook)
+ = table_link_to 'power_off', t('admin.webhooks.disable'), disable_admin_webhook_path(@webhook), method: :post if can?(:disable, @webhook)
- else
%span.negative-hint= t('admin.webhooks.disabled')
- = table_link_to 'power-off', t('admin.webhooks.enable'), enable_admin_webhook_path(@webhook), method: :post if can?(:enable, @webhook)
+ = table_link_to 'power_off', t('admin.webhooks.enable'), enable_admin_webhook_path(@webhook), method: :post if can?(:enable, @webhook)
%tr
%th= t('admin.webhooks.events')
%td
diff --git a/app/views/application/_card.html.haml b/app/views/application/_card.html.haml
index 1b3dd889c19..ae74f1dc638 100644
--- a/app/views/application/_card.html.haml
+++ b/app/views/application/_card.html.haml
@@ -15,4 +15,4 @@
%strong.emojify.p-name= display_name(account, custom_emojify: true)
%span
= acct(account)
- = fa_icon('lock', { data: ({ hidden: true } unless account.locked?) })
+ = material_symbol('lock', { data: ({ hidden: true } unless account.locked?) })
diff --git a/app/views/auth/registrations/_account_warning.html.haml b/app/views/auth/registrations/_account_warning.html.haml
index 19e5746ff63..d558e1d9c96 100644
--- a/app/views/auth/registrations/_account_warning.html.haml
+++ b/app/views/auth/registrations/_account_warning.html.haml
@@ -1,14 +1,14 @@
-= link_to disputes_strike_path(account_warning), class: 'log-entry' do
- .log-entry__header
- .log-entry__avatar
+= link_to disputes_strike_path(account_warning), class: 'strike-entry' do
+ .strike-entry__header
+ .strike-entry__avatar
.indicator-icon{ class: account_warning.overruled? ? 'success' : 'failure' }
- = fa_icon 'warning'
- .log-entry__content
- .log-entry__title
+ = material_symbol 'warning'
+ .strike-entry__content
+ .strike-entry__title
= t 'disputes.strikes.title',
action: t(account_warning.action, scope: 'disputes.strikes.title_actions'),
date: l(account_warning.created_at.to_date)
- .log-entry__timestamp
+ .strike-entry__timestamp
%time.formatted{ datetime: account_warning.created_at.iso8601 }= l(account_warning.created_at)
- if account_warning.overruled?
diff --git a/app/views/auth/registrations/_session.html.haml b/app/views/auth/registrations/_session.html.haml
index 2fa7db70c7b..92e5147593f 100644
--- a/app/views/auth/registrations/_session.html.haml
+++ b/app/views/auth/registrations/_session.html.haml
@@ -1,7 +1,7 @@
%tr
%td
%span{ title: session.user_agent }<
- = fa_icon "#{session_device_icon(session)} fw", 'aria-label': session_device_icon(session)
+ = material_symbol session_device_icon(session), 'aria-label': session_device_icon(session)
= t 'sessions.description',
browser: t("sessions.browsers.#{session.browser}", default: session.browser.to_s),
@@ -15,4 +15,4 @@
%time.time-ago{ datetime: session.updated_at.iso8601, title: l(session.updated_at) }= l(session.updated_at)
%td
- if current_session.session_id != session.session_id && !current_account.suspended?
- = table_link_to 'times', t('sessions.revoke'), settings_session_path(session), method: :delete
+ = table_link_to 'close', t('sessions.revoke'), settings_session_path(session), method: :delete
diff --git a/app/views/disputes/strikes/_card.html.haml b/app/views/disputes/strikes/_card.html.haml
index 55551cc7d04..58965ad6006 100644
--- a/app/views/disputes/strikes/_card.html.haml
+++ b/app/views/disputes/strikes/_card.html.haml
@@ -24,7 +24,7 @@
.emojify= one_line_preview(status)
- status.ordered_media_attachments.each do |media_attachment|
%abbr{ title: media_attachment.description }
- = fa_icon 'link'
+ = material_symbol 'link'
= media_attachment.file_file_name
.strike-card__statuses-list__item__meta
= link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank', rel: 'noopener noreferrer' do
diff --git a/app/views/disputes/strikes/show.html.haml b/app/views/disputes/strikes/show.html.haml
index 5f721388217..2bfecebbff9 100644
--- a/app/views/disputes/strikes/show.html.haml
+++ b/app/views/disputes/strikes/show.html.haml
@@ -9,13 +9,13 @@
- if @strike.overruled?
%p.hint
%span.positive-hint
- = fa_icon 'check'
+ = material_symbol 'check'
= t 'disputes.strikes.appeal_approved'
- elsif @appeal.persisted? && @appeal.rejected?
%p.hint
%span.negative-hint
- = fa_icon 'times'
+ = material_symbol 'close'
= t 'disputes.strikes.appeal_rejected'
diff --git a/app/views/filters/_filter.html.haml b/app/views/filters/_filter.html.haml
index 9993ad2ee8e..a544ac3a758 100644
--- a/app/views/filters/_filter.html.haml
+++ b/app/views/filters/_filter.html.haml
@@ -14,7 +14,7 @@
- unless filter.keywords.empty?
%li.permissions-list__item
.permissions-list__item__icon
- = fa_icon('paragraph')
+ = material_symbol('format_paragraph')
.permissions-list__item__text
.permissions-list__item__text__title
= t('filters.index.keywords', count: filter.keywords.size)
@@ -25,7 +25,7 @@
- unless filter.statuses.empty?
%li.permissions-list__item
.permissions-list__item__icon
- = fa_icon('comment')
+ = material_symbol('chat')
.permissions-list__item__text
.permissions-list__item__text__title
= t('filters.index.statuses', count: filter.statuses.size)
@@ -37,5 +37,5 @@
= t('filters.index.contexts', contexts: filter.context.map { |context| I18n.t("filters.contexts.#{context}") }.join(', '))
%div
- = table_link_to 'pencil', t('filters.edit.title'), edit_filter_path(filter)
- = table_link_to 'times', t('filters.index.delete'), filter_path(filter), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
+ = table_link_to 'edit', t('filters.edit.title'), edit_filter_path(filter)
+ = table_link_to 'close', t('filters.index.delete'), filter_path(filter), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
diff --git a/app/views/filters/_filter_fields.html.haml b/app/views/filters/_filter_fields.html.haml
index 0f4049ffb61..797c969b24d 100644
--- a/app/views/filters/_filter_fields.html.haml
+++ b/app/views/filters/_filter_fields.html.haml
@@ -58,4 +58,4 @@
%tr
%td{ colspan: 3 }
= link_to_add_association f, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do
- = safe_join([fa_icon('plus'), t('filters.edit.add_keyword')])
+ = safe_join([material_symbol('add'), t('filters.edit.add_keyword')])
diff --git a/app/views/filters/_keyword_fields.html.haml b/app/views/filters/_keyword_fields.html.haml
index eedd514ef52..136ab1653db 100644
--- a/app/views/filters/_keyword_fields.html.haml
+++ b/app/views/filters/_keyword_fields.html.haml
@@ -5,4 +5,4 @@
%td
= f.hidden_field :id if f.object&.persisted? # Required so Rails doesn't put the field outside of the
= link_to_remove_association(f, class: 'table-action-link') do
- = safe_join([fa_icon('times'), t('filters.index.delete')])
+ = safe_join([material_symbol('close'), t('filters.index.delete')])
diff --git a/app/views/filters/statuses/_status_filter.html.haml b/app/views/filters/statuses/_status_filter.html.haml
index 9999dcda81f..d0d04638d2a 100644
--- a/app/views/filters/statuses/_status_filter.html.haml
+++ b/app/views/filters/statuses/_status_filter.html.haml
@@ -15,7 +15,7 @@
- status.ordered_media_attachments.each do |media_attachment|
%abbr{ title: media_attachment.description }
- = fa_icon 'link'
+ = material_symbol 'link'
= media_attachment.file_file_name
.detailed-status__meta
@@ -29,9 +29,9 @@
·
= t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted'))
·
- = fa_visibility_icon(status)
+ = material_symbol visibility_icon(status)
= t("statuses.visibilities.#{status.visibility}")
- if status.sensitive?
·
- = fa_icon('eye-slash fw')
+ = material_symbol 'visibility_off'
= t('stream_entries.sensitive_content')
diff --git a/app/views/filters/statuses/index.html.haml b/app/views/filters/statuses/index.html.haml
index 915ec59cafd..f9f94eee90d 100644
--- a/app/views/filters/statuses/index.html.haml
+++ b/app/views/filters/statuses/index.html.haml
@@ -6,7 +6,7 @@
.filters
.back-link
= link_to edit_filter_path(@filter) do
- = fa_icon 'chevron-left fw'
+ = material_symbol 'chevron_left'
= t('filters.statuses.back_to_filter')
%p.hint= t('filters.statuses.index.hint')
@@ -25,7 +25,7 @@
= check_box_tag :batch_checkbox_all, nil, false
.batch-table__toolbar__actions
- unless @status_filters.empty?
- = f.button safe_join([fa_icon('times'), t('filters.statuses.batch.remove')]), name: :remove, class: 'table-action-link', type: :submit
+ = f.button safe_join([material_symbol('close'), t('filters.statuses.batch.remove')]), name: :remove, class: 'table-action-link', type: :submit
.batch-table__body
- if @status_filters.empty?
= nothing_here 'nothing-here--under-tabs'
diff --git a/app/views/invites/_invite.html.haml b/app/views/invites/_invite.html.haml
index 62799ca5be2..892fdc5a0e3 100644
--- a/app/views/invites/_invite.html.haml
+++ b/app/views/invites/_invite.html.haml
@@ -1,4 +1,4 @@
-%tr
+%tr{ id: dom_id(invite) }
%td
.input-copy
.input-copy__wrapper
@@ -7,7 +7,7 @@
- if invite.valid_for_use?
%td
- = fa_icon 'user fw'
+ = material_symbol 'person'
= invite.uses
= " / #{invite.max_uses}" unless invite.max_uses.nil?
%td
@@ -22,4 +22,4 @@
%td
- if invite.valid_for_use? && policy(invite).destroy?
- = table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete
+ = table_link_to 'close', t('invites.delete'), invite_path(invite), method: :delete
diff --git a/app/views/kaminari/_next_page.html.haml b/app/views/kaminari/_next_page.html.haml
index c44aea1f11e..5f27f4c8eec 100644
--- a/app/views/kaminari/_next_page.html.haml
+++ b/app/views/kaminari/_next_page.html.haml
@@ -8,4 +8,4 @@
remote: data-remote
%span.next
- = link_to_unless current_page.last?, safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), url, rel: 'next', remote: remote
+ = link_to_unless current_page.last?, safe_join([t('pagination.next'), material_symbol('chevron_right')], ' '), url, rel: 'next', remote: remote
diff --git a/app/views/kaminari/_prev_page.html.haml b/app/views/kaminari/_prev_page.html.haml
index 284d6223b87..c5584f6a81a 100644
--- a/app/views/kaminari/_prev_page.html.haml
+++ b/app/views/kaminari/_prev_page.html.haml
@@ -7,4 +7,4 @@
per_page: number of items to fetch per page
remote: data-remote
%span.prev
- = link_to_unless current_page.first?, safe_join([fa_icon('chevron-left'), t('pagination.prev')], ' '), url, rel: 'prev', remote: remote
+ = link_to_unless current_page.first?, safe_join([material_symbol('chevron_left'), t('pagination.prev')], ' '), url, rel: 'prev', remote: remote
diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml
index d725e65aa9f..3f7727cdfb1 100644
--- a/app/views/layouts/admin.html.haml
+++ b/app/views/layouts/admin.html.haml
@@ -3,6 +3,8 @@
= javascript_pack_tag 'public', crossorigin: 'anonymous'
= javascript_pack_tag 'admin', async: true, crossorigin: 'anonymous'
+- content_for :body_classes, 'admin'
+
- content_for :content do
.admin-wrapper
.sidebar-wrapper
@@ -17,8 +19,8 @@
= logo_as_symbol(:wordmark)
= link_to '#', class: 'sidebar__toggle__icon', 'aria-label': t('navigation.toggle_menu'), 'aria-expanded': 'false' do
- = fa_icon 'bars'
- = fa_icon 'times'
+ = material_symbol 'menu'
+ = material_symbol 'close'
= render_navigation
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index e7f1a595e53..99e89d45ce6 100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -11,8 +11,6 @@
- if storage_host?
%link{ rel: 'dns-prefetch', href: storage_host }/
- %link{ rel: 'icon', href: favicon_path('ico') || '/favicon.ico', type: 'image/x-icon' }/
-
- SiteUpload::FAVICON_SIZES.each do |size|
%link{ rel: 'icon', sizes: "#{size}x#{size}", href: favicon_path(size.to_i) || frontend_asset_path("icons/favicon-#{size}x#{size}.png"), type: 'image/png' }/
@@ -23,11 +21,10 @@
%link{ rel: 'mask-icon', href: frontend_asset_path('images/logo-symbol-icon.svg'), color: '#6364FF' }/
%link{ rel: 'manifest', href: manifest_path(format: :json) }/
= theme_color_tags current_theme
- %meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/
+ %meta{ name: 'mobile-web-app-capable', content: 'yes' }/
%title= html_title
- = stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous'
= theme_style_tags current_theme
-# Needed for the wicg-inert polyfill. It needs to be on it's own