From a5fbe2f5c18ce15d24cfc7060837d7ea6a6ff557 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 8 Sep 2025 10:50:46 +0200 Subject: [PATCH 01/81] Fix missing icons and subtitle in mobile boost/quote menu (#36038) --- .../mastodon/components/dropdown_menu.tsx | 32 +- ...n.stories.tsx => boost_button.stories.tsx} | 6 +- .../components/status/boost_button.tsx | 253 +++++++++++ .../components/status/boost_button_utils.ts | 161 +++++++ .../components/status/reblog_button.tsx | 425 ------------------ .../components/status_action_bar/index.jsx | 4 +- .../features/status/components/action_bar.jsx | 4 +- .../features/ui/components/actions_modal.tsx | 14 +- .../mastodon/models/dropdown_menu.ts | 6 + app/javascript/mastodon/utils/types.ts | 16 + .../styles/mastodon/components.scss | 47 +- 11 files changed, 498 insertions(+), 470 deletions(-) rename app/javascript/mastodon/components/status/{reblog_button.stories.tsx => boost_button.stories.tsx} (92%) create mode 100644 app/javascript/mastodon/components/status/boost_button.tsx create mode 100644 app/javascript/mastodon/components/status/boost_button_utils.ts delete mode 100644 app/javascript/mastodon/components/status/reblog_button.tsx create mode 100644 app/javascript/mastodon/utils/types.ts diff --git a/app/javascript/mastodon/components/dropdown_menu.tsx b/app/javascript/mastodon/components/dropdown_menu.tsx index 27af0ba6c028ac..8e765d1a657757 100644 --- a/app/javascript/mastodon/components/dropdown_menu.tsx +++ b/app/javascript/mastodon/components/dropdown_menu.tsx @@ -36,6 +36,7 @@ import { import type { MenuItem } from 'mastodon/models/dropdown_menu'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; +import { Icon } from './icon'; import type { IconProp } from './icon'; import { IconButton } from './icon_button'; @@ -68,6 +69,27 @@ interface DropdownMenuProps { onItemClick?: ItemClickFn; } +export const DropdownMenuItemContent: React.FC<{ item: MenuItem }> = ({ + item, +}) => { + if (item === null) { + return null; + } + + const { text, description, icon } = item; + return ( + <> + {icon && } + + {text} + {Boolean(description) && ( + {description} + )} + + + ); +}; + export const DropdownMenu = ({ items, loading, @@ -200,7 +222,7 @@ export const DropdownMenu = ({ return
  • ; } - const { text, dangerous } = option; + const { text, highlighted, disabled, dangerous } = option; let element: React.ReactElement; @@ -211,8 +233,9 @@ export const DropdownMenu = ({ onClick={handleItemClick} onKeyUp={handleItemKeyUp} data-index={i} + disabled={disabled} > - {text} + ); } else if (isExternalLinkItem(option)) { @@ -227,7 +250,7 @@ export const DropdownMenu = ({ onKeyUp={handleItemKeyUp} data-index={i} > - {text} + ); } else { @@ -239,7 +262,7 @@ export const DropdownMenu = ({ onKeyUp={handleItemKeyUp} data-index={i} > - {text} + ); } @@ -247,6 +270,7 @@ export const DropdownMenu = ({ return (
  • ( - 0} /> diff --git a/app/javascript/mastodon/components/status/boost_button.tsx b/app/javascript/mastodon/components/status/boost_button.tsx new file mode 100644 index 00000000000000..b34988de47cf2d --- /dev/null +++ b/app/javascript/mastodon/components/status/boost_button.tsx @@ -0,0 +1,253 @@ +import { useCallback, useMemo } from 'react'; +import type { FC, KeyboardEvent, MouseEvent, MouseEventHandler } from 'react'; + +import { useIntl } from 'react-intl'; + +import classNames from 'classnames'; + +import { quoteComposeById } from '@/mastodon/actions/compose_typed'; +import { toggleReblog } from '@/mastodon/actions/interactions'; +import { openModal } from '@/mastodon/actions/modal'; +import type { ActionMenuItem } from '@/mastodon/models/dropdown_menu'; +import type { Status } from '@/mastodon/models/status'; +import { useAppDispatch, useAppSelector } from '@/mastodon/store'; +import { isFeatureEnabled } from '@/mastodon/utils/environment'; +import type { SomeRequired } from '@/mastodon/utils/types'; + +import type { RenderItemFn, RenderItemFnHandlers } from '../dropdown_menu'; +import { Dropdown, DropdownMenuItemContent } from '../dropdown_menu'; +import { IconButton } from '../icon_button'; + +import { + boostItemState, + messages, + quoteItemState, + selectStatusState, +} from './boost_button_utils'; + +const renderMenuItem: RenderItemFn = ( + item, + index, + handlers, + focusRefCallback, +) => ( + +); + +interface ReblogButtonProps { + status: Status; + counters?: boolean; +} + +type ActionMenuItemWithIcon = SomeRequired; + +export const StatusBoostButton: FC = ({ + status, + counters, +}) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + const statusState = useAppSelector((state) => + selectStatusState(state, status), + ); + const { + isLoggedIn, + isReblogged, + isReblogAllowed, + isQuoteAutomaticallyAccepted, + isQuoteManuallyAccepted, + } = statusState; + + const isMenuDisabled = + !isQuoteAutomaticallyAccepted && + !isQuoteManuallyAccepted && + !isReblogAllowed; + + const statusId = status.get('id') as string; + const wasBoosted = !!status.get('reblogged'); + + const items = useMemo(() => { + const boostItem = boostItemState(statusState); + const quoteItem = quoteItemState(statusState); + return [ + { + text: intl.formatMessage(boostItem.title), + description: boostItem.meta + ? intl.formatMessage(boostItem.meta) + : undefined, + icon: boostItem.iconComponent, + highlighted: wasBoosted, + disabled: boostItem.disabled, + action: (event) => { + if (isLoggedIn) { + dispatch(toggleReblog(statusId, event.shiftKey)); + } + }, + }, + { + text: intl.formatMessage(quoteItem.title), + description: quoteItem.meta + ? intl.formatMessage(quoteItem.meta) + : undefined, + icon: quoteItem.iconComponent, + disabled: quoteItem.disabled, + action: () => { + if (isLoggedIn) { + dispatch(quoteComposeById(statusId)); + } + }, + }, + ] satisfies [ActionMenuItemWithIcon, ActionMenuItemWithIcon]; + }, [dispatch, intl, isLoggedIn, statusId, statusState, wasBoosted]); + + const boostIcon = items[0].icon; + + const handleDropdownOpen = useCallback( + (event: MouseEvent | KeyboardEvent) => { + if (!isLoggedIn) { + dispatch( + openModal({ + modalType: 'INTERACTION', + modalProps: { + type: 'reblog', + accountId: status.getIn(['account', 'id']), + url: status.get('uri'), + }, + }), + ); + } else if (event.shiftKey) { + dispatch(toggleReblog(status.get('id'), true)); + return false; + } + return true; + }, + [dispatch, isLoggedIn, status], + ); + + return ( + + + + ); +}; + +interface ReblogMenuItemProps { + item: ActionMenuItem; + index: number; + handlers: RenderItemFnHandlers; + focusRefCallback?: (c: HTMLAnchorElement | HTMLButtonElement | null) => void; +} + +const ReblogMenuItem: FC = ({ + index, + item, + handlers, + focusRefCallback, +}) => { + const { text, highlighted, disabled } = item; + + return ( +
  • + +
  • + ); +}; + +// Legacy helpers + +// Switch between the legacy and new reblog button based on feature flag. +export const BoostButton: FC = (props) => { + if (isFeatureEnabled('outgoing_quotes')) { + return ; + } + return ; +}; + +export const LegacyReblogButton: FC = ({ + status, + counters, +}) => { + const intl = useIntl(); + const statusState = useAppSelector((state) => + selectStatusState(state, status), + ); + + const { title, meta, iconComponent, disabled } = useMemo( + () => boostItemState(statusState), + [statusState], + ); + + const dispatch = useAppDispatch(); + const handleClick: MouseEventHandler = useCallback( + (event) => { + if (statusState.isLoggedIn) { + dispatch(toggleReblog(status.get('id') as string, event.shiftKey)); + } else { + dispatch( + openModal({ + modalType: 'INTERACTION', + modalProps: { + type: 'reblog', + accountId: status.getIn(['account', 'id']), + url: status.get('uri'), + }, + }), + ); + } + }, + [dispatch, status, statusState.isLoggedIn], + ); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/components/status/boost_button_utils.ts b/app/javascript/mastodon/components/status/boost_button_utils.ts new file mode 100644 index 00000000000000..34fa26aceab77e --- /dev/null +++ b/app/javascript/mastodon/components/status/boost_button_utils.ts @@ -0,0 +1,161 @@ +import { defineMessages } from 'react-intl'; +import type { MessageDescriptor } from 'react-intl'; + +import type { Status, StatusVisibility } from '@/mastodon/models/status'; +import { createAppSelector } from '@/mastodon/store'; +import FormatQuote from '@/material-icons/400-24px/format_quote-fill.svg?react'; +import FormatQuoteOff from '@/material-icons/400-24px/format_quote_off-fill.svg?react'; +import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react'; +import RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react'; +import RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react'; +import RepeatPrivateIcon from '@/svg-icons/repeat_private.svg?react'; +import RepeatPrivateActiveIcon from '@/svg-icons/repeat_private_active.svg?react'; + +import type { IconProp } from '../icon'; + +export const messages = defineMessages({ + all_disabled: { + id: 'status.all_disabled', + defaultMessage: 'Boosts and quotes are disabled', + }, + quote: { id: 'status.quote', defaultMessage: 'Quote' }, + quote_cannot: { + id: 'status.cannot_quote', + defaultMessage: 'Quotes are disabled on this post', + }, + quote_followers_only: { + id: 'status.quote_followers_only', + defaultMessage: 'Only followers can quote this post', + }, + quote_manual_review: { + id: 'status.quote_manual_review', + defaultMessage: 'Author will manually review', + }, + quote_private: { + id: 'status.quote_private', + defaultMessage: 'Private posts cannot be quoted', + }, + reblog: { id: 'status.reblog', defaultMessage: 'Boost' }, + reblog_or_quote: { + id: 'status.reblog_or_quote', + defaultMessage: 'Boost or quote', + }, + reblog_cancel: { + id: 'status.cancel_reblog_private', + defaultMessage: 'Unboost', + }, + reblog_private: { + id: 'status.reblog_private', + defaultMessage: 'Share again with your followers', + }, + reblog_cannot: { + id: 'status.cannot_reblog', + defaultMessage: 'This post cannot be boosted', + }, + request_quote: { + id: 'status.request_quote', + defaultMessage: 'Request to quote', + }, +}); + +export const selectStatusState = createAppSelector( + [ + (state) => state.meta.get('me') as string | undefined, + (_, status: Status) => status, + ], + (userId, status) => { + const isPublic = ['public', 'unlisted'].includes( + status.get('visibility') as StatusVisibility, + ); + const isMineAndPrivate = + userId === status.getIn(['account', 'id']) && + status.get('visibility') === 'private'; + return { + isLoggedIn: !!userId, + isPublic, + isMine: userId === status.getIn(['account', 'id']), + isPrivateReblog: + userId === status.getIn(['account', 'id']) && + status.get('visibility') === 'private', + isReblogged: !!status.get('reblogged'), + isReblogAllowed: isPublic || isMineAndPrivate, + isQuoteAutomaticallyAccepted: + status.getIn(['quote_approval', 'current_user']) === 'automatic' && + (isPublic || isMineAndPrivate), + isQuoteManuallyAccepted: + status.getIn(['quote_approval', 'current_user']) === 'manual' && + (isPublic || isMineAndPrivate), + isQuoteFollowersOnly: + status.getIn(['quote_approval', 'automatic', 0]) === 'followers' || + status.getIn(['quote_approval', 'manual', 0]) === 'followers', + }; + }, +); + +export type StatusState = ReturnType; + +export interface MenuItemState { + title: MessageDescriptor; + meta?: MessageDescriptor; + iconComponent: IconProp; + disabled?: boolean; +} + +export function boostItemState({ + isPublic, + isPrivateReblog, + isReblogged, +}: StatusState): MenuItemState { + if (isReblogged) { + return { + title: messages.reblog_cancel, + iconComponent: isPublic ? RepeatActiveIcon : RepeatPrivateActiveIcon, + }; + } + const iconText: MenuItemState = { + title: messages.reblog, + iconComponent: RepeatIcon, + }; + + if (isPrivateReblog) { + iconText.meta = messages.reblog_private; + iconText.iconComponent = RepeatPrivateIcon; + } else if (!isPublic) { + iconText.meta = messages.reblog_cannot; + iconText.iconComponent = RepeatDisabledIcon; + iconText.disabled = true; + } + return iconText; +} + +export function quoteItemState({ + isMine, + isQuoteAutomaticallyAccepted, + isQuoteManuallyAccepted, + isQuoteFollowersOnly, + isPublic, +}: StatusState): MenuItemState { + const iconText: MenuItemState = { + title: messages.quote, + iconComponent: FormatQuote, + }; + + if (!isPublic && !isMine) { + iconText.disabled = true; + iconText.iconComponent = FormatQuoteOff; + iconText.meta = messages.quote_private; + } else if (isQuoteAutomaticallyAccepted) { + iconText.title = messages.quote; + } else if (isQuoteManuallyAccepted) { + iconText.title = messages.request_quote; + iconText.meta = messages.quote_manual_review; + } else { + iconText.disabled = true; + iconText.iconComponent = FormatQuoteOff; + iconText.meta = isQuoteFollowersOnly + ? messages.quote_followers_only + : messages.quote_cannot; + } + + return iconText; +} diff --git a/app/javascript/mastodon/components/status/reblog_button.tsx b/app/javascript/mastodon/components/status/reblog_button.tsx deleted file mode 100644 index 079ca5d7c8e7cc..00000000000000 --- a/app/javascript/mastodon/components/status/reblog_button.tsx +++ /dev/null @@ -1,425 +0,0 @@ -import { useCallback, useMemo } from 'react'; -import type { - FC, - KeyboardEvent, - MouseEvent, - MouseEventHandler, - SVGProps, -} from 'react'; - -import type { MessageDescriptor } from 'react-intl'; -import { defineMessages, useIntl } from 'react-intl'; - -import classNames from 'classnames'; - -import { quoteComposeById } from '@/mastodon/actions/compose_typed'; -import { toggleReblog } from '@/mastodon/actions/interactions'; -import { openModal } from '@/mastodon/actions/modal'; -import type { ActionMenuItem } from '@/mastodon/models/dropdown_menu'; -import type { Status, StatusVisibility } from '@/mastodon/models/status'; -import { - createAppSelector, - useAppDispatch, - useAppSelector, -} from '@/mastodon/store'; -import { isFeatureEnabled } from '@/mastodon/utils/environment'; -import FormatQuote from '@/material-icons/400-24px/format_quote-fill.svg?react'; -import FormatQuoteOff from '@/material-icons/400-24px/format_quote_off-fill.svg?react'; -import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react'; -import RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react'; -import RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react'; -import RepeatPrivateIcon from '@/svg-icons/repeat_private.svg?react'; -import RepeatPrivateActiveIcon from '@/svg-icons/repeat_private_active.svg?react'; - -import type { RenderItemFn, RenderItemFnHandlers } from '../dropdown_menu'; -import { Dropdown } from '../dropdown_menu'; -import { Icon } from '../icon'; -import { IconButton } from '../icon_button'; - -const messages = defineMessages({ - all_disabled: { - id: 'status.all_disabled', - defaultMessage: 'Boosts and quotes are disabled', - }, - quote: { id: 'status.quote', defaultMessage: 'Quote' }, - quote_cannot: { - id: 'status.cannot_quote', - defaultMessage: 'Quotes are disabled on this post', - }, - quote_followers_only: { - id: 'status.quote_followers_only', - defaultMessage: 'Only followers can quote this post', - }, - quote_manual_review: { - id: 'status.quote_manual_review', - defaultMessage: 'Author will manually review', - }, - quote_private: { - id: 'status.quote_private', - defaultMessage: 'Private posts cannot be quoted', - }, - reblog: { id: 'status.reblog', defaultMessage: 'Boost' }, - reblog_or_quote: { - id: 'status.reblog_or_quote', - defaultMessage: 'Boost or quote', - }, - reblog_cancel: { - id: 'status.cancel_reblog_private', - defaultMessage: 'Unboost', - }, - reblog_private: { - id: 'status.reblog_private', - defaultMessage: 'Share again with your followers', - }, - reblog_cannot: { - id: 'status.cannot_reblog', - defaultMessage: 'This post cannot be boosted', - }, - request_quote: { - id: 'status.request_quote', - defaultMessage: 'Request to quote', - }, -}); - -interface ReblogButtonProps { - status: Status; - counters?: boolean; -} - -export const StatusReblogButton: FC = ({ - status, - counters, -}) => { - const intl = useIntl(); - - const statusState = useAppSelector((state) => - selectStatusState(state, status), - ); - const { - isLoggedIn, - isReblogged, - isReblogAllowed, - isQuoteAutomaticallyAccepted, - isQuoteManuallyAccepted, - } = statusState; - const { iconComponent } = useMemo( - () => reblogIconText(statusState), - [statusState], - ); - const disabled = - !isQuoteAutomaticallyAccepted && - !isQuoteManuallyAccepted && - !isReblogAllowed; - - const dispatch = useAppDispatch(); - const statusId = status.get('id') as string; - const items: ActionMenuItem[] = useMemo( - () => [ - { - text: 'reblog', - action: (event) => { - if (isLoggedIn) { - dispatch(toggleReblog(statusId, event.shiftKey)); - } - }, - }, - { - text: 'quote', - action: () => { - if (isLoggedIn) { - dispatch(quoteComposeById(statusId)); - } - }, - }, - ], - [dispatch, isLoggedIn, statusId], - ); - - const handleDropdownOpen = useCallback( - (event: MouseEvent | KeyboardEvent) => { - if (!isLoggedIn) { - dispatch( - openModal({ - modalType: 'INTERACTION', - modalProps: { - type: 'reblog', - accountId: status.getIn(['account', 'id']), - url: status.get('uri'), - }, - }), - ); - } else if (event.shiftKey) { - dispatch(toggleReblog(status.get('id'), true)); - return false; - } - return true; - }, - [dispatch, isLoggedIn, status], - ); - - const renderMenuItem: RenderItemFn = useCallback( - (item, index, handlers, focusRefCallback) => ( - - ), - [status], - ); - - return ( - - - - ); -}; - -interface ReblogMenuItemProps { - status: Status; - item: ActionMenuItem; - index: number; - handlers: RenderItemFnHandlers; - focusRefCallback?: (c: HTMLAnchorElement | HTMLButtonElement | null) => void; -} - -const ReblogMenuItem: FC = ({ - status, - index, - item: { text }, - handlers, - focusRefCallback, -}) => { - const intl = useIntl(); - const statusState = useAppSelector((state) => - selectStatusState(state, status), - ); - const { title, meta, iconComponent, disabled } = useMemo( - () => - text === 'quote' - ? quoteIconText(statusState) - : reblogIconText(statusState), - [statusState, text], - ); - const active = useMemo( - () => text === 'reblog' && !!status.get('reblogged'), - [status, text], - ); - - return ( -
  • - -
  • - ); -}; - -// Legacy helpers - -// Switch between the legacy and new reblog button based on feature flag. -export const ReblogButton: FC = (props) => { - if (isFeatureEnabled('outgoing_quotes')) { - return ; - } - return ; -}; - -export const LegacyReblogButton: FC = ({ - status, - counters, -}) => { - const intl = useIntl(); - const statusState = useAppSelector((state) => - selectStatusState(state, status), - ); - - const { title, meta, iconComponent, disabled } = useMemo( - () => reblogIconText(statusState), - [statusState], - ); - - const dispatch = useAppDispatch(); - const handleClick: MouseEventHandler = useCallback( - (event) => { - if (statusState.isLoggedIn) { - dispatch(toggleReblog(status.get('id') as string, event.shiftKey)); - } else { - dispatch( - openModal({ - modalType: 'INTERACTION', - modalProps: { - type: 'reblog', - accountId: status.getIn(['account', 'id']), - url: status.get('uri'), - }, - }), - ); - } - }, - [dispatch, status, statusState.isLoggedIn], - ); - - return ( - - ); -}; - -// Helpers for copy and state for status. -const selectStatusState = createAppSelector( - [ - (state) => state.meta.get('me') as string | undefined, - (_, status: Status) => status, - ], - (userId, status) => { - const isPublic = ['public', 'unlisted'].includes( - status.get('visibility') as StatusVisibility, - ); - const isMineAndPrivate = - userId === status.getIn(['account', 'id']) && - status.get('visibility') === 'private'; - return { - isLoggedIn: !!userId, - isPublic, - isMine: userId === status.getIn(['account', 'id']), - isPrivateReblog: - userId === status.getIn(['account', 'id']) && - status.get('visibility') === 'private', - isReblogged: !!status.get('reblogged'), - isReblogAllowed: isPublic || isMineAndPrivate, - isQuoteAutomaticallyAccepted: - status.getIn(['quote_approval', 'current_user']) === 'automatic' && - (isPublic || isMineAndPrivate), - isQuoteManuallyAccepted: - status.getIn(['quote_approval', 'current_user']) === 'manual' && - (isPublic || isMineAndPrivate), - isQuoteFollowersOnly: - status.getIn(['quote_approval', 'automatic', 0]) === 'followers' || - status.getIn(['quote_approval', 'manual', 0]) === 'followers', - }; - }, -); -type StatusState = ReturnType; - -interface IconText { - title: MessageDescriptor; - meta?: MessageDescriptor; - iconComponent: FC>; - disabled?: boolean; -} - -function reblogIconText({ - isPublic, - isPrivateReblog, - isReblogged, -}: StatusState): IconText { - if (isReblogged) { - return { - title: messages.reblog_cancel, - iconComponent: isPublic ? RepeatActiveIcon : RepeatPrivateActiveIcon, - }; - } - const iconText: IconText = { - title: messages.reblog, - iconComponent: RepeatIcon, - }; - - if (isPrivateReblog) { - iconText.meta = messages.reblog_private; - iconText.iconComponent = RepeatPrivateIcon; - } else if (!isPublic) { - iconText.meta = messages.reblog_cannot; - iconText.iconComponent = RepeatDisabledIcon; - iconText.disabled = true; - } - return iconText; -} - -function quoteIconText({ - isMine, - isQuoteAutomaticallyAccepted, - isQuoteManuallyAccepted, - isQuoteFollowersOnly, - isPublic, -}: StatusState): IconText { - const iconText: IconText = { - title: messages.quote, - iconComponent: FormatQuote, - }; - - if (!isPublic && !isMine) { - iconText.disabled = true; - iconText.iconComponent = FormatQuoteOff; - iconText.meta = messages.quote_private; - } else if (isQuoteAutomaticallyAccepted) { - iconText.title = messages.quote; - } else if (isQuoteManuallyAccepted) { - iconText.title = messages.request_quote; - iconText.meta = messages.quote_manual_review; - } else { - iconText.disabled = true; - iconText.iconComponent = FormatQuoteOff; - iconText.meta = isQuoteFollowersOnly - ? messages.quote_followers_only - : messages.quote_cannot; - } - - return iconText; -} diff --git a/app/javascript/mastodon/components/status_action_bar/index.jsx b/app/javascript/mastodon/components/status_action_bar/index.jsx index 096924061084b5..3aff359c10e8cd 100644 --- a/app/javascript/mastodon/components/status_action_bar/index.jsx +++ b/app/javascript/mastodon/components/status_action_bar/index.jsx @@ -24,7 +24,7 @@ import { me } from '../../initial_state'; import { IconButton } from '../icon_button'; import { isFeatureEnabled } from '../../utils/environment'; -import { ReblogButton } from '../status/reblog_button'; +import { BoostButton } from '../status/boost_button'; import { RemoveQuoteHint } from './remove_quote_hint'; const messages = defineMessages({ @@ -372,7 +372,7 @@ class StatusActionBar extends ImmutablePureComponent {
    - +
    diff --git a/app/javascript/mastodon/features/status/components/action_bar.jsx b/app/javascript/mastodon/features/status/components/action_bar.jsx index f5dea36cc6b414..fa9d6497ae7fb1 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.jsx +++ b/app/javascript/mastodon/features/status/components/action_bar.jsx @@ -20,7 +20,7 @@ import { IconButton } from '../../../components/icon_button'; import { Dropdown } from 'mastodon/components/dropdown_menu'; import { me } from '../../../initial_state'; import { isFeatureEnabled } from '@/mastodon/utils/environment'; -import { ReblogButton } from '@/mastodon/components/status/reblog_button'; +import { BoostButton } from '@/mastodon/components/status/boost_button'; const messages = defineMessages({ delete: { id: 'status.delete', defaultMessage: 'Delete' }, @@ -310,7 +310,7 @@ class ActionBar extends PureComponent {
    - +
    diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.tsx b/app/javascript/mastodon/features/ui/components/actions_modal.tsx index da42b863927f41..2577b21a17cc85 100644 --- a/app/javascript/mastodon/features/ui/components/actions_modal.tsx +++ b/app/javascript/mastodon/features/ui/components/actions_modal.tsx @@ -1,6 +1,7 @@ import classNames from 'classnames'; import { Link } from 'react-router-dom'; +import { DropdownMenuItemContent } from 'mastodon/components/dropdown_menu'; import type { MenuItem } from 'mastodon/models/dropdown_menu'; import { isActionItem, @@ -18,14 +19,14 @@ export const ActionsModal: React.FC<{ return
  • ; } - const { text, dangerous } = option; + const { text, highlighted, disabled, dangerous } = option; let element: React.ReactElement; if (isActionItem(option)) { element = ( - ); } else if (isExternalLinkItem(option)) { @@ -38,21 +39,22 @@ export const ActionsModal: React.FC<{ onClick={onClick} data-index={i} > - {text} + ); } else { element = ( - {text} + ); } return (
  • diff --git a/app/javascript/mastodon/models/dropdown_menu.ts b/app/javascript/mastodon/models/dropdown_menu.ts index 963b5071c9566a..01da286936a2ef 100644 --- a/app/javascript/mastodon/models/dropdown_menu.ts +++ b/app/javascript/mastodon/models/dropdown_menu.ts @@ -1,7 +1,13 @@ import type { KeyboardEvent, MouseEvent, TouchEvent } from 'react'; +import type { IconProp } from '../components/icon'; + interface BaseMenuItem { text: string; + description?: string; + icon?: IconProp; + highlighted?: boolean; + disabled?: boolean; dangerous?: boolean; } diff --git a/app/javascript/mastodon/utils/types.ts b/app/javascript/mastodon/utils/types.ts new file mode 100644 index 00000000000000..24b9ee180f17fe --- /dev/null +++ b/app/javascript/mastodon/utils/types.ts @@ -0,0 +1,16 @@ +/** + * Extend an existing type and make some of its properties required or optional. + * @example + * interface Person { + * name: string; + * age?: number; + * likesIceCream?: boolean; + * } + * + * type PersonWithSomeRequired = SomeRequired; + * type PersonWithSomeOptional = SomeOptional; + */ + +export type SomeRequired = T & Required>; +export type SomeOptional = Pick> & + Partial>; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 1b5867e8b9823e..2c7a57f7df6add 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2874,10 +2874,26 @@ a.account__display-name { color: $error-value-color; } + &--highlighted { + color: $highlight-text-color; + } + + &-content { + display: flex; + flex-direction: column; + } + + &-subtitle { + font-weight: 400; + } + a, button { font: inherit; - display: block; + display: flex; + align-items: center; + gap: 8px; + white-space: inherit; width: 100%; padding: 10px 14px; border: 0; @@ -2886,9 +2902,6 @@ a.account__display-name { box-sizing: border-box; text-decoration: none; color: inherit; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; text-align: inherit; border-radius: 4px; @@ -2908,30 +2921,8 @@ a.account__display-name { } } -.reblog-button { - &__item { - max-width: 360px; - - button { - display: flex; - align-items: center; - gap: 8px; - white-space: inherit; - } - - div { - display: flex; - flex-direction: column; - } - - &.active:not(.disabled) { - color: $highlight-text-color; - } - } - - &__meta { - font-weight: 400; - } +.reblog-menu-item { + max-width: 360px; } .inline-account { From b99c94537bf92c070d19255325de813ba3c3193f Mon Sep 17 00:00:00 2001 From: Echo Date: Mon, 8 Sep 2025 14:08:07 +0200 Subject: [PATCH 02/81] Revert change to EmojiHTML (#36051) --- .../mastodon/features/emoji/emoji_html.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/emoji/emoji_html.tsx b/app/javascript/mastodon/features/emoji/emoji_html.tsx index 0bd10009226d4d..e143c9fc166f8b 100644 --- a/app/javascript/mastodon/features/emoji/emoji_html.tsx +++ b/app/javascript/mastodon/features/emoji/emoji_html.tsx @@ -1,5 +1,7 @@ import type { ComponentPropsWithoutRef, ElementType } from 'react'; +import { isModernEmojiEnabled } from '@/mastodon/utils/environment'; + import { useEmojify } from './hooks'; import type { CustomEmojiMapArg } from './types'; @@ -13,7 +15,7 @@ type EmojiHTMLProps = Omit< shallow?: boolean; }; -export const EmojiHTML = ({ +export const ModernEmojiHTML = ({ extraEmojis, htmlString, as: Wrapper = 'div', // Rename for syntax highlighting @@ -34,3 +36,14 @@ export const EmojiHTML = ({ ); }; + +export const EmojiHTML = ( + props: EmojiHTMLProps, +) => { + if (isModernEmojiEnabled()) { + return ; + } + const { as: asElement, htmlString, extraEmojis, ...rest } = props; + const Wrapper = asElement ?? 'div'; + return ; +}; From 24fb862a65da2545c439ae33625b5a049343dc80 Mon Sep 17 00:00:00 2001 From: Echo Date: Mon, 8 Sep 2025 14:35:59 +0200 Subject: [PATCH 03/81] Remove old search results with new search (#36053) --- app/javascript/mastodon/reducers/search.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/javascript/mastodon/reducers/search.ts b/app/javascript/mastodon/reducers/search.ts index 3f6b96fa072a50..c8229902442f50 100644 --- a/app/javascript/mastodon/reducers/search.ts +++ b/app/javascript/mastodon/reducers/search.ts @@ -62,6 +62,9 @@ export const searchReducer = createReducer(initialState, (builder) => { (state, action) => { state.type = action.meta.arg.type; state.loading = true; + if (action.type === submitSearch.pending.type) { + state.results = undefined; + } }, ); From 0153b49ef73b800b3a1b026c08aacb249d760244 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 8 Sep 2025 14:43:38 +0200 Subject: [PATCH 04/81] Visibility modal: Match dropdown width to button (#36054) --- .../mastodon/components/dropdown/index.tsx | 3 +++ .../mastodon/components/dropdown/utils.ts | 17 +++++++++++++++++ .../features/ui/components/visibility_modal.tsx | 1 - app/javascript/styles/mastodon/components.scss | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 app/javascript/mastodon/components/dropdown/utils.ts diff --git a/app/javascript/mastodon/components/dropdown/index.tsx b/app/javascript/mastodon/components/dropdown/index.tsx index 1e442f8159e512..c7fee4a396fefc 100644 --- a/app/javascript/mastodon/components/dropdown/index.tsx +++ b/app/javascript/mastodon/components/dropdown/index.tsx @@ -11,6 +11,8 @@ import Overlay from 'react-overlays/Overlay'; import type { SelectItem } from '../dropdown_selector'; import { DropdownSelector } from '../dropdown_selector'; +import { matchWidth } from './utils'; + interface DropdownProps { title: string; disabled?: boolean; @@ -86,6 +88,7 @@ export const Dropdown: FC< target={buttonRef.current} popperConfig={{ strategy: 'fixed', + modifiers: [matchWidth], }} > {({ props, placement }) => ( diff --git a/app/javascript/mastodon/components/dropdown/utils.ts b/app/javascript/mastodon/components/dropdown/utils.ts new file mode 100644 index 00000000000000..b45d2cc9d28b34 --- /dev/null +++ b/app/javascript/mastodon/components/dropdown/utils.ts @@ -0,0 +1,17 @@ +import type { Modifier, UsePopperState } from 'react-overlays/esm/usePopper'; + +export const matchWidth: Modifier<'sameWidth', UsePopperState> = { + name: 'sameWidth', + enabled: true, + phase: 'beforeWrite', + requires: ['computeStyles'], + fn: ({ state }) => { + if (state.styles.popper) { + state.styles.popper.width = `${state.rects.reference.width}px`; + } + }, + effect: ({ state }) => { + const reference = state.elements.reference as HTMLElement; + state.elements.popper.style.width = `${reference.offsetWidth}px`; + }, +}; diff --git a/app/javascript/mastodon/features/ui/components/visibility_modal.tsx b/app/javascript/mastodon/features/ui/components/visibility_modal.tsx index e8570dcb93f1a8..fa04052da005d5 100644 --- a/app/javascript/mastodon/features/ui/components/visibility_modal.tsx +++ b/app/javascript/mastodon/features/ui/components/visibility_modal.tsx @@ -163,7 +163,6 @@ export const VisibilityModal: FC = forwardRef( value: 'unlisted', text: intl.formatMessage(privacyMessages.unlisted_short), meta: intl.formatMessage(privacyMessages.unlisted_long), - extra: intl.formatMessage(privacyMessages.unlisted_extra), icon: 'unlock', iconComponent: QuietTimeIcon, }, diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 2c7a57f7df6add..7c05872d4c4a3b 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -5500,7 +5500,6 @@ a.status-card { border-radius: 4px; overflow: hidden; z-index: 2; - width: 300px; &.top { transform-origin: 50% 100%; @@ -5607,6 +5606,7 @@ a.status-card { .language-dropdown { &__dropdown { + width: 300px; padding: 0; .emoji-mart-search { From c0af4581aa1d7d702f97b9a3821dcea311d3dd0a Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 8 Sep 2025 14:53:23 +0200 Subject: [PATCH 05/81] Visibility dialog: Add visual dropdown indicator to Dropdown component (#36052) --- app/javascript/mastodon/components/dropdown/index.tsx | 10 +++++++++- app/javascript/styles/mastodon/components.scss | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/components/dropdown/index.tsx b/app/javascript/mastodon/components/dropdown/index.tsx index c7fee4a396fefc..487850fa7027e6 100644 --- a/app/javascript/mastodon/components/dropdown/index.tsx +++ b/app/javascript/mastodon/components/dropdown/index.tsx @@ -8,8 +8,11 @@ import classNames from 'classnames'; import Overlay from 'react-overlays/Overlay'; +import UnfoldMoreIcon from '@/material-icons/400-24px/unfold_more.svg?react'; + import type { SelectItem } from '../dropdown_selector'; import { DropdownSelector } from '../dropdown_selector'; +import { Icon } from '../icon'; import { matchWidth } from './utils'; @@ -77,11 +80,16 @@ export const Dropdown: FC< defaultMessage='Select an option' /> )} + Date: Mon, 8 Sep 2025 15:04:38 +0200 Subject: [PATCH 06/81] New Crowdin Translations (automated) (#36045) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/af.json | 1 - app/javascript/mastodon/locales/an.json | 1 - app/javascript/mastodon/locales/ar.json | 2 - app/javascript/mastodon/locales/az.json | 2 - app/javascript/mastodon/locales/be.json | 15 +- app/javascript/mastodon/locales/bg.json | 3 - app/javascript/mastodon/locales/bn.json | 1 - app/javascript/mastodon/locales/br.json | 98 ++++++++--- app/javascript/mastodon/locales/ca.json | 3 - app/javascript/mastodon/locales/ckb.json | 1 - app/javascript/mastodon/locales/co.json | 1 - app/javascript/mastodon/locales/cs.json | 6 +- app/javascript/mastodon/locales/cy.json | 3 - app/javascript/mastodon/locales/da.json | 5 +- app/javascript/mastodon/locales/de.json | 6 +- app/javascript/mastodon/locales/el.json | 3 - app/javascript/mastodon/locales/en-GB.json | 2 - app/javascript/mastodon/locales/eo.json | 3 - app/javascript/mastodon/locales/es-AR.json | 6 +- app/javascript/mastodon/locales/es-MX.json | 6 +- app/javascript/mastodon/locales/es.json | 6 +- app/javascript/mastodon/locales/et.json | 11 +- app/javascript/mastodon/locales/eu.json | 2 - app/javascript/mastodon/locales/fa.json | 6 +- app/javascript/mastodon/locales/fi.json | 6 +- app/javascript/mastodon/locales/fo.json | 7 +- app/javascript/mastodon/locales/fr-CA.json | 2 - app/javascript/mastodon/locales/fr.json | 2 - app/javascript/mastodon/locales/fy.json | 2 - app/javascript/mastodon/locales/ga.json | 12 +- app/javascript/mastodon/locales/gd.json | 2 - app/javascript/mastodon/locales/gl.json | 6 +- app/javascript/mastodon/locales/he.json | 8 +- app/javascript/mastodon/locales/hr.json | 1 - app/javascript/mastodon/locales/hu.json | 3 - app/javascript/mastodon/locales/hy.json | 1 - app/javascript/mastodon/locales/ia.json | 3 - app/javascript/mastodon/locales/id.json | 1 - app/javascript/mastodon/locales/ie.json | 2 - app/javascript/mastodon/locales/io.json | 2 - app/javascript/mastodon/locales/is.json | 6 +- app/javascript/mastodon/locales/it.json | 11 +- app/javascript/mastodon/locales/ja.json | 2 - app/javascript/mastodon/locales/ka.json | 1 - app/javascript/mastodon/locales/kab.json | 9 +- app/javascript/mastodon/locales/kk.json | 1 - app/javascript/mastodon/locales/ko.json | 11 +- app/javascript/mastodon/locales/ku.json | 1 - app/javascript/mastodon/locales/kw.json | 1 - app/javascript/mastodon/locales/lad.json | 2 - app/javascript/mastodon/locales/lt.json | 2 - app/javascript/mastodon/locales/lv.json | 2 - app/javascript/mastodon/locales/ms.json | 1 - app/javascript/mastodon/locales/my.json | 1 - app/javascript/mastodon/locales/nan.json | 20 ++- app/javascript/mastodon/locales/nl.json | 6 +- app/javascript/mastodon/locales/nn.json | 3 - app/javascript/mastodon/locales/no.json | 2 - app/javascript/mastodon/locales/oc.json | 1 - app/javascript/mastodon/locales/pl.json | 29 +++- app/javascript/mastodon/locales/pt-BR.json | 3 - app/javascript/mastodon/locales/pt-PT.json | 3 - app/javascript/mastodon/locales/ro.json | 1 - app/javascript/mastodon/locales/ru.json | 2 - app/javascript/mastodon/locales/sc.json | 1 - app/javascript/mastodon/locales/sco.json | 1 - app/javascript/mastodon/locales/si.json | 2 - app/javascript/mastodon/locales/sk.json | 2 - app/javascript/mastodon/locales/sl.json | 2 - app/javascript/mastodon/locales/sq.json | 2 - app/javascript/mastodon/locales/sr-Latn.json | 2 - app/javascript/mastodon/locales/sr.json | 2 - app/javascript/mastodon/locales/sv.json | 3 - app/javascript/mastodon/locales/ta.json | 1 - app/javascript/mastodon/locales/te.json | 1 - app/javascript/mastodon/locales/th.json | 2 - app/javascript/mastodon/locales/tr.json | 3 - app/javascript/mastodon/locales/uk.json | 3 +- app/javascript/mastodon/locales/vi.json | 6 +- app/javascript/mastodon/locales/zh-CN.json | 8 +- app/javascript/mastodon/locales/zh-HK.json | 2 - app/javascript/mastodon/locales/zh-TW.json | 6 +- config/locales/activerecord.br.yml | 4 +- config/locales/an.yml | 2 +- config/locales/ar.yml | 2 +- config/locales/be.yml | 4 +- config/locales/bg.yml | 2 +- config/locales/bn.yml | 1 + config/locales/br.yml | 173 +++++++++++++++++-- config/locales/ca.yml | 3 +- config/locales/ckb.yml | 2 +- config/locales/co.yml | 2 +- config/locales/cs.yml | 4 +- config/locales/cy.yml | 3 +- config/locales/da.yml | 4 +- config/locales/de.yml | 4 +- config/locales/devise.br.yml | 2 +- config/locales/doorkeeper.br.yml | 22 +-- config/locales/el.yml | 2 +- config/locales/en-GB.yml | 2 +- config/locales/eo.yml | 3 +- config/locales/es-AR.yml | 4 +- config/locales/es-MX.yml | 4 +- config/locales/es.yml | 4 +- config/locales/et.yml | 4 +- config/locales/eu.yml | 2 +- config/locales/fa.yml | 3 +- config/locales/fi.yml | 4 +- config/locales/fo.yml | 3 +- config/locales/fr-CA.yml | 2 +- config/locales/fr.yml | 2 +- config/locales/fy.yml | 2 +- config/locales/ga.yml | 7 +- config/locales/gd.yml | 2 +- config/locales/gl.yml | 4 +- config/locales/he.yml | 6 +- config/locales/hr.yml | 1 - config/locales/hu.yml | 3 +- config/locales/hy.yml | 2 +- config/locales/ia.yml | 3 +- config/locales/id.yml | 2 +- config/locales/ie.yml | 2 +- config/locales/io.yml | 2 +- config/locales/is.yml | 4 +- config/locales/it.yml | 4 +- config/locales/ja.yml | 2 +- config/locales/ka.yml | 2 +- config/locales/kab.yml | 2 +- config/locales/kk.yml | 2 +- config/locales/ko.yml | 5 +- config/locales/ku.yml | 2 +- config/locales/lad.yml | 2 +- config/locales/lt.yml | 2 +- config/locales/lv.yml | 2 +- config/locales/ms.yml | 2 +- config/locales/my.yml | 2 +- config/locales/nan.yml | 62 ++++++- config/locales/nl.yml | 2 +- config/locales/nn.yml | 3 +- config/locales/no.yml | 2 +- config/locales/oc.yml | 2 +- config/locales/pl.yml | 7 +- config/locales/pt-BR.yml | 3 +- config/locales/pt-PT.yml | 1 - config/locales/ro.yml | 2 +- config/locales/ru.yml | 2 +- config/locales/sc.yml | 2 +- config/locales/sco.yml | 2 +- config/locales/si.yml | 2 +- config/locales/simple_form.br.yml | 15 ++ config/locales/simple_form.he.yml | 4 +- config/locales/simple_form.zh-CN.yml | 2 +- config/locales/sk.yml | 2 +- config/locales/sl.yml | 2 +- config/locales/sq.yml | 2 +- config/locales/sr-Latn.yml | 2 +- config/locales/sr.yml | 2 +- config/locales/sv.yml | 2 +- config/locales/ta.yml | 1 + config/locales/th.yml | 2 +- config/locales/tr.yml | 3 +- config/locales/uk.yml | 2 +- config/locales/vi.yml | 2 +- config/locales/zh-CN.yml | 2 +- config/locales/zh-HK.yml | 2 +- config/locales/zh-TW.yml | 2 +- 166 files changed, 565 insertions(+), 341 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 3c882d90db36df..4efd1ddb560d7b 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -256,7 +256,6 @@ "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.open": "Brei hierdie plasing uit", "status.reblog": "Stuur aan", - "status.reblog_private": "Stuur aan met oorspronklike sigbaarheid", "status.reblogged_by": "Aangestuur deur {name}", "status.reblogs.empty": "Hierdie plasing is nog deur niemand aangestuur nie. As iemand dit aanstuur, sal jy dit hier sien.", "status.reply": "Reageer", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index 95d55ca2972a80..0cda60105d00c9 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -442,7 +442,6 @@ "status.pin": "Fixar", "status.read_more": "Leyer mas", "status.reblog": "Retutar", - "status.reblog_private": "Empentar con l'audiencia orichinal", "status.reblogged_by": "Retutau per {name}", "status.reblogs.empty": "Dengún no ha retutau encara este tut. Quan belún lo faiga, amaneixerá aquí.", "status.redraft": "Borrar y tornar ta borrador", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 80056d1f6c98d1..51ef8838d95c58 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -731,7 +731,6 @@ "privacy.public.long": "أي شخص على أو خارج ماستدون", "privacy.public.short": "للعامة", "privacy.unlisted.additional": "هذا يتصرف بالضبط مثل النشر للعامة، باستثناء أن المنشور لن يظهر في الموجزات الحية أو في الوسوم أو في الإستكشاف، أو في نتائج بحث ماستدون، حتى وإن قمت بتفعيله على مستوى الحساب.", - "privacy.unlisted.long": "خوارزميات أقل", "privacy.unlisted.short": "للعامة دون صخب", "privacy_policy.last_updated": "آخر تحديث {date}", "privacy_policy.title": "سياسة الخصوصية", @@ -874,7 +873,6 @@ "status.quote_error.filtered": "مُخفي بسبب إحدى إعدادات التصفية خاصتك", "status.read_more": "اقرأ المزيد", "status.reblog": "إعادة النشر", - "status.reblog_private": "إعادة النشر إلى الجمهور الأصلي", "status.reblogged_by": "شارَكَه {name}", "status.reblogs": "{count, plural, one {إعادة نشر واحدة} two {معاد نشرها مرتان} few {# إعادات نشر} many {# إعادات نشر} other {# إعادة نشر}}", "status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", diff --git a/app/javascript/mastodon/locales/az.json b/app/javascript/mastodon/locales/az.json index 2b4f28b84a0634..f49b6a3f517e43 100644 --- a/app/javascript/mastodon/locales/az.json +++ b/app/javascript/mastodon/locales/az.json @@ -872,7 +872,6 @@ "status.quote_post_author": "@{name} göndərişini sitat gətirdi", "status.read_more": "Daha çoxunu oxu", "status.reblog": "Təkrar paylaş", - "status.reblog_private": "Orijinal görünmə ilə təkrar paylaş", "status.reblogged_by": "{name} təkrar paylaşdı", "status.reblogs": "{count, plural, one {təkrar paylaşma} other {təkrar paylaşma}}", "status.reblogs.empty": "Hələ heç kim bu göndərişi təkrar paylaşmayıb. Kimsə paylaşdığı zaman, burada görünəcək.", @@ -946,7 +945,6 @@ "video.volume_up": "Həcmi artır", "visibility_modal.button_title": "Görünməni ayarla", "visibility_modal.header": "Görünmə və qarşılıqlı əlaqə", - "visibility_modal.helper.privacy_editing": "Dərc edilən göndərişlərin görünməsi dəyişdirilə bilməz.", "visibility_modal.helper.unlisted_quoting": "İnsanlar sizdən sitat gətirdiyi zaman, onların göndərişləri də trend zaman xəttindən gizlədiləcək.", "visibility_modal.quote_followers": "Yalnız izləyicilər", "visibility_modal.quote_public": "Hər kəs" diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 063692fd04f016..56ba92d9c9b3a6 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, цытаты адключаныя", "privacy.quote.limited": "{visibility}, абмежаваныя цытаты", "privacy.unlisted.additional": "Паводзіць сябе гэтак жа, як і публічны, за выключэннем таго, што допіс не будзе адлюстроўвацца ў жывой стужцы, хэштэгах, аглядзе або ў пошуку Mastodon, нават калі Вы ўключылі бачнасць у пошуку ў наладах.", - "privacy.unlisted.long": "Менш фанфар ад алгарытмаў", + "privacy.unlisted.long": "Схаваны ад вынікаў пошуку Mastodon, трэндавых і публічных стужак", "privacy.unlisted.short": "Ціхі публічны", "privacy_policy.last_updated": "Адноўлена {date}", "privacy_policy.title": "Палітыка канфідэнцыйнасці", @@ -768,6 +768,9 @@ "relative_time.minutes": "{number} хв", "relative_time.seconds": "{number} с", "relative_time.today": "сёння", + "remove_quote_hint.button_label": "Зразумела", + "remove_quote_hint.message": "Можаце зрабіце гэта ў {icon} меню налад.", + "remove_quote_hint.title": "Хочаце выдаліць Ваш допіс з цытатай?", "reply_indicator.attachments": "{count, plural, one {# далучэнне} few {# далучэнні} many {# далучэнняў} other {# далучэння}}", "reply_indicator.cancel": "Скасаваць", "reply_indicator.poll": "Апытанне", @@ -910,15 +913,15 @@ "status.read_more": "Чытаць болей", "status.reblog": "Пашырыць", "status.reblog_or_quote": "Пашырыць ці цытаваць", - "status.reblog_private": "Пашырыць з першапачатковай бачнасцю", - "status.reblogged_by": "Карыстальнік {name} пашырыў", + "status.reblog_private": "Зноў падзяліцца са сваімі падпісчыкамі", + "status.reblogged_by": "{name} пашырыў(-ла)", "status.reblogs": "{count, plural, one {пашырэнне} few {пашырэнні} many {пашырэнняў} other {пашырэння}}", "status.reblogs.empty": "Гэты допіс яшчэ ніхто не пашырыў. Калі гэта адбудзецца, гэтых людзей будзе бачна тут.", "status.redraft": "Выдаліць і перапісаць", "status.remove_bookmark": "Выдаліць закладку", "status.remove_favourite": "Выдаліць з упадабаных", - "status.replied_in_thread": "Адказаў у ланцужку", - "status.replied_to": "Адказаў {name}", + "status.replied_in_thread": "Адказаў(-ла) у ланцужку", + "status.replied_to": "Адказаў(-ла) {name}", "status.reply": "Адказаць", "status.replyAll": "Адказаць у ланцугу", "status.report": "Паскардзіцца на @{name}", @@ -988,7 +991,7 @@ "visibility_modal.button_title": "Вызначыць бачнасць", "visibility_modal.header": "Бачнасць і ўзаемадзеянне", "visibility_modal.helper.direct_quoting": "Прыватныя згадванні, створаныя на Mastodon, нельга цытаваць іншым людзям.", - "visibility_modal.helper.privacy_editing": "Апублікаваным допісам нельга змяняць бачнасць.", + "visibility_modal.helper.privacy_editing": "Бачнасць нельга змяніць у апублікаваным допісе.", "visibility_modal.helper.privacy_private_self_quote": "Самацытаванне прыватных допісаў не можа быць публічным.", "visibility_modal.helper.private_quoting": "Допісы для падпісчыкаў, створаныя на Mastodon, нельга цытаваць іншым людзям.", "visibility_modal.helper.unlisted_quoting": "Калі людзі працытуюць Вас, іх допіс таксама будзе схаваны ад стужкі трэндаў.", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index cbee84d2ef773a..4063ebc4b15c63 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -729,7 +729,6 @@ "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": "Политика за поверителност", @@ -877,7 +876,6 @@ "status.quote_post_author": "Цитирах публикация от @{name}", "status.read_more": "Още за четене", "status.reblog": "Подсилване", - "status.reblog_private": "Подсилване с оригиналната видимост", "status.reblogged_by": "{name} подсили", "status.reblogs": "{count, plural, one {подсилване} other {подсилвания}}", "status.reblogs.empty": "Още никого не е подсилвал публикацията. Подсилващият ще се покаже тук.", @@ -952,7 +950,6 @@ "video.volume_up": "Увеличаване на звука", "visibility_modal.button_title": "Задаване на видимост", "visibility_modal.header": "Видимост и взаимодействие", - "visibility_modal.helper.privacy_editing": "Публикуваните публикации не може да променят видимостта си.", "visibility_modal.quote_followers": "Само последователи", "visibility_modal.quote_public": "Някой" } diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 2339f607d66a22..4caa8bc3953a74 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -377,7 +377,6 @@ "status.pin": "নিজের পাতায় এটা পিন করতে", "status.read_more": "আরো পড়ুন", "status.reblog": "সমর্থন দিতে", - "status.reblog_private": "আপনার অনুসরণকারীদের কাছে এটার সমর্থন দেখাতে", "status.reblogged_by": "{name} সমর্থন দিয়েছে", "status.reblogs.empty": "এখনো কেও এটাতে সমর্থন দেয়নি। যখন কেও দেয়, সেটা তখন এখানে দেখা যাবে।", "status.redraft": "মুছে আবার নতুন করে লিখতে", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index c6fceba7b714fe..ba635e1d76afa2 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -7,12 +7,13 @@ "about.domain_blocks.preamble": "Gant Mastodon e c'hellit gwelet danvez hag eskemm gant implijerien·ezed eus forzh peseurt servijer er fedibed peurliesañ. Setu an nemedennoù a zo bet graet evit ar servijer-mañ e-unan.", "about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.", "about.domain_blocks.silenced.title": "Bevennet", - "about.domain_blocks.suspended.explanation": "Roadenn ebet eus ar servijer-mañ ne vo keweriet, kadavet pe eskemmet, ar pezh a lako an etreweriañ pe ar c'hehentiñ gant implijerien adalek ar servijer-mañ dibosupl.", + "about.domain_blocks.suspended.explanation": "Roadenn ebet eus ar servijer-mañ ne vo keweriet, kadavet pe eskemmet, ar pezh a lako an etreweriañ pe ar c'hehentiñ gant implijerien·ezed adalek ar servijer-mañ dibosupl.", "about.domain_blocks.suspended.title": "Astalet", "about.language_label": "Yezh", "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 bersonel", "account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù", "account.badges.bot": "Robot", "account.badges.group": "Strollad", @@ -20,15 +21,18 @@ "account.block_domain": "Stankañ an domani {domain}", "account.block_short": "Stankañ", "account.blocked": "Stanket", + "account.blocking": "Stanket", "account.cancel_follow_request": "Nullañ ar reked heuliañ", "account.copy": "Eilañ al liamm war-zu ho profil", "account.direct": "Menegiñ @{name} ent-prevez", "account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}", + "account.domain_blocking": "Domani stanket", "account.edit_profile": "Kemmañ ar profil", "account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}", - "account.endorse": "Lakaat war-wel war ar profil", + "account.endorse": "Lakaat en a-raok war ar profil", "account.familiar_followers_one": "Heuilhet gant {name1}", "account.familiar_followers_two": "Heuilhet gant {name1} ha {name2}", + "account.featured": "En a-raok", "account.featured.accounts": "Profiloù", "account.featured.hashtags": "Gerioù-klik", "account.featured_tags.last_status_at": "Toud diwezhañ : {date}", @@ -56,20 +60,25 @@ "account.mute_notifications_short": "Kuzhat ar c'hemennoù", "account.mute_short": "Kuzhat", "account.muted": "Kuzhet", + "account.muting": "O kuzhat", + "account.mutual": "Heuliañ a rit an eil egile", "account.no_bio": "Deskrivadur ebet da gaout.", "account.open_original_page": "Digeriñ ar bajenn orin", "account.posts": "Embannadurioù", "account.posts_with_replies": "Embannadurioù ha respontoù", + "account.remove_from_followers": "Dilemel {name} eus an heulierien·ezed", "account.report": "Disklêriañ @{name}", "account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ", "account.requested_follow": "Gant {name} eo bet goulennet ho heuliañ", + "account.requests_to_follow_you": "Rekedoù d'ho heuliañ", "account.share": "Skignañ profil @{name}", "account.show_reblogs": "Diskouez skignadennoù @{name}", "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": "Distankañ @{name}", + "account.unblock_domain": "Distankañ an domani {domain}", + "account.unblock_domain_short": "Distankañ", "account.unblock_short": "Distankañ", - "account.unendorse": "Paouez da lakaat war-wel war ar profil", + "account.unendorse": "Na lakaat ket en a-raok war ar profil", "account.unfollow": "Diheuliañ", "account.unmute": "Diguzhat @{name}", "account.unmute_notifications_short": "Diguzhat ar c'hemennoù", @@ -79,20 +88,25 @@ "admin.dashboard.monthly_retention": "Feur azdalc'h an implijerien·ezed dre viz goude bezañ lakaet o anv", "admin.dashboard.retention.average": "Keidenn", "admin.dashboard.retention.cohort": "Miz an enrolladur", - "admin.dashboard.retention.cohort_size": "Implijerien.erezed nevez", + "admin.dashboard.retention.cohort_size": "Implijerien·ezed nevez", "admin.impact_report.instance_accounts": "Profiloù kontoù a vefe dilamet", - "admin.impact_report.instance_followers": "Heulierien a gollfe hon implijerien", - "admin.impact_report.instance_follows": "Heulierien a gollfe o implijerien", + "admin.impact_report.instance_followers": "Heulierien a gollfe hon implijerien·ezed", + "admin.impact_report.instance_follows": "Heulierien a gollfe o implijerien·ezed", "alert.rate_limited.message": "Klaskit en-dro a-benn {retry_time, time, medium}.", "alert.rate_limited.title": "Feur bevennet", "alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.", "alert.unexpected.title": "Hopala !", + "alt_text_badge.title": "Eiltestenn", + "alt_text_modal.add_alt_text": "Ouzhpennañ un eiltestenn", "alt_text_modal.cancel": "Nullañ", "alt_text_modal.change_thumbnail": "Kemmañ ar velvenn", "alt_text_modal.done": "Graet", "announcement.announcement": "Kemennad", "annual_report.summary.followers.followers": "heulier", "annual_report.summary.followers.total": "{count} en holl", + "annual_report.summary.highlighted_post.by_favourites": "toud karet ar muiañ", + "annual_report.summary.highlighted_post.by_reblogs": "toud skignet ar muiañ", + "annual_report.summary.highlighted_post.by_replies": "toud gant ar muiañ a respontoù", "annual_report.summary.highlighted_post.possessive": "{name}", "annual_report.summary.most_used_app.most_used_app": "arload muiañ implijet", "annual_report.summary.most_used_hashtag.most_used_hashtag": "ar gerioù-klik implijet ar muiañ", @@ -102,7 +116,10 @@ "audio.hide": "Kuzhat ar c'hleved", "block_modal.show_less": "Diskouez nebeutoc'h", "block_modal.show_more": "Diskouez muioc'h", + "block_modal.title": "Stankañ an implijer·ez?", "boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou", + "boost_modal.reblog": "Skignañ an toud?", + "boost_modal.undo_reblog": "Paouez da skignañ an toud?", "bundle_column_error.copy_stacktrace": "Eilañ an danevell fazi", "bundle_column_error.error.body": "N'haller ket skrammañ ar bajenn goulennet. Gallout a ra bezañ abalamour d'ur beug er c'hod pe d'ur gudenn keverlec'hded gant ar merdeer.", "bundle_column_error.error.title": "Chaous !", @@ -120,20 +137,20 @@ "closed_registrations_modal.preamble": "Digreizennet eo Mastodon, forzh pelec'h e vefe krouet ho kont e viot gouest da heuliañ hag etreweriañ gant an holl war ar servijer-mañ. Gallout a rit herbec'hiañ anezhañ hoc'h-unan zoken!", "closed_registrations_modal.title": "Enskrivadurioù war Mastodon", "column.about": "Diwar-benn", - "column.blocks": "Implijer·ezed·ien berzet", + "column.blocks": "Implijerien·ezed stanket", "column.bookmarks": "Sinedoù", "column.community": "Red-amzer lec'hel", "column.create_list": "Krouiñ ul listenn", "column.direct": "Menegoù prevez", "column.directory": "Mont a-dreuz ar profiloù", - "column.domain_blocks": "Domani berzet", + "column.domain_blocks": "Domani stanket", "column.edit_list": "Kemmañ al listenn", "column.favourites": "Muiañ-karet", "column.firehose": "Redoù war-eeun", "column.follow_requests": "Rekedoù heuliañ", "column.home": "Degemer", "column.lists": "Listennoù", - "column.mutes": "Implijer·ion·ezed kuzhet", + "column.mutes": "Implijerien·ezed kuzhet", "column.notifications": "Kemennoù", "column.pins": "Embannadurioù spilhennet", "column.public": "Red-amzer kevredet", @@ -178,14 +195,25 @@ "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.delete_list.title": "Dilemel al listenn?", + "confirmations.discard_draft.edit.cancel": "Distreiñ d'an embann", + "confirmations.discard_draft.post.cancel": "Distreiñ d'ar brouilhed", + "confirmations.discard_draft.post.title": "Dilemel ho prouilhed?", "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.follow_to_list.confirm": "Heuliañ hag ouzhpennañ d'al listenn", "confirmations.follow_to_list.title": "Heuliañ an implijer·ez?", "confirmations.logout.confirm": "Digevreañ", "confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?", "confirmations.logout.title": "Digevreañ?", + "confirmations.missing_alt_text.confirm": "Ouzhpennañ un eiltestenn", + "confirmations.missing_alt_text.secondary": "Embann memes tra", + "confirmations.missing_alt_text.title": "Ouzhpennañ an eiltestenn?", "confirmations.mute.confirm": "Kuzhat", "confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro", + "confirmations.remove_from_followers.confirm": "Dilemel an heulier·ez", + "confirmations.remove_from_followers.title": "Dilemel an heulier·ez?", + "confirmations.revoke_quote.confirm": "Dilemel an toud", + "confirmations.revoke_quote.title": "Dilemel an toud?", "confirmations.unfollow.confirm": "Diheuliañ", "confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name} ?", "confirmations.unfollow.title": "Paouez da heuliañ an implijer·ez?", @@ -194,7 +222,7 @@ "content_warning.show_more": "Diskouez muioc'h", "conversation.delete": "Dilemel ar gaozeadenn", "conversation.mark_as_read": "Merkañ evel lennet", - "conversation.open": "Gwelout ar gaozeadenn", + "conversation.open": "Gwelet ar gaozeadenn", "conversation.with": "Gant {names}", "copy_icon_button.copied": "Eilet er golver", "copypaste.copied": "Eilet", @@ -207,8 +235,14 @@ "disabled_account_banner.text": "Ho kont {disabledAccount} zo divev evit bremañ.", "dismissable_banner.community_timeline": "Setu toudoù foran nevesañ an dud a zo herberc’hiet o c'hontoù gant {domain}.", "dismissable_banner.dismiss": "Diverkañ", + "domain_block_modal.block": "Stankañ ar servijer", + "domain_block_modal.block_account_instead": "Stankañ @{name} kentoc'h", + "domain_block_modal.title": "Stankañ an domani?", "domain_pill.server": "Dafariad", "domain_pill.username": "Anv-implijer", + "domain_pill.whats_in_a_handle": "Petra eo an anaouder?", + "domain_pill.your_handle": "Hoc'h anaouder:", + "dropdown.empty": "Diuzit un dibarzh", "embed.instructions": "Enframmit an toud-mañ en ho lec'hienn en ur eilañ ar c'hod amañ-dindan.", "embed.preview": "Setu penaos e teuio war wel :", "emoji_button.activity": "Obererezh", @@ -229,19 +263,19 @@ "empty_column.account_suspended": "Kont ehanet", "empty_column.account_timeline": "Toud ebet amañ !", "empty_column.account_unavailable": "Profil dihegerz", - "empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.", + "empty_column.blocks": "N'eus ket bet stanket implijer·ez ganeoc'h c'hoazh.", "empty_column.bookmarked_statuses": "N'ho peus embannadur ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", "empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !", - "empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.", + "empty_column.domain_blocks": "N'eus domani stanket ebet c'hoazh.", "empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !", "empty_column.follow_requests": "N'ho peus reked heuliañ ebet c'hoazh. Pa vo resevet unan e teuio war wel amañ.", "empty_column.followed_tags": "N'emaoc'h oc'h heuliañ ger-klik ebet evit poent. Pa vioc'h e vo d'o gwelet amañ.", "empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.", "empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.", "empty_column.list": "Goullo eo al listenn-mañ evit c'hoazh. Pa vo embannet toudoù nevez gant e izili e teuint war wel amañ.", - "empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.", + "empty_column.mutes": "N'ho peus kuzhet implijer·ez ebet c'hoazh.", "empty_column.notifications": "N'ho peus kemenn ebet c'hoazh. Grit gant implijer·ezed·ien all evit loc'hañ ar gomz.", - "empty_column.public": "N'eus netra amañ! Skrivit un dra bennak foran pe heuilhit implijer·ien·ezed eus dafariadoù all evit leuniañ", + "empty_column.public": "N'eus netra amañ! Skrivit un dra bennak foran pe heuilhit implijerien·ezed eus servijerioù all evit leuniañ", "error.unexpected_crash.explanation": "Abalamour d'ur beug en hor c'hod pe d'ur gudenn geverlec'hded n'hallomp ket skrammañ ar bajenn-mañ en un doare dereat.", "error.unexpected_crash.explanation_addons": "Ar bajenn-mañ ne c'hell ket bezañ skrammet mat. Ar fazi-se a zo kaoz d'un astenn pe d'un ostilh troidigezh emgefreek war ho merdeer.", "error.unexpected_crash.next_steps": "Klaskit azbevaat ar bajenn. Ma n'a ket en-dro e c'hallit klask ober gant Mastodon dre ur merdeer disheñvel pe dre an arload genidik.", @@ -277,6 +311,7 @@ "follow_request.authorize": "Aotren", "follow_request.reject": "Nac'hañ", "follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.", + "follow_suggestions.dismiss": "Na ziskouez ket ken", "follow_suggestions.friends_of_friends_longer": "Diouzh ar c'hiz e-touez an dud heuliet ganeoc'h", "follow_suggestions.popular_suggestion_longer": "Diouzh ar c'hiz war {domain}", "follow_suggestions.view_all": "Gwelet pep tra", @@ -306,11 +341,13 @@ "hashtag.column_settings.tag_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ", "hashtag.counter_by_uses": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}} hiziv", - "hashtag.feature": "Lakaat war-wel war ar profil", + "hashtag.feature": "Lakaat en a-raok war ar profil", "hashtag.follow": "Heuliañ ar ger-klik", "hashtag.mute": "Kuzhat #{hashtag}", + "hashtag.unfeature": "Na lakaat ket en a-raok war ar profil", "hashtag.unfollow": "Diheuliañ ar ger-klik", "hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}", + "hints.profiles.see_more_posts": "Gwelet toudoù ouzhpenn eus {domain}", "home.column_settings.show_quotes": "Diskouez an arroudennoù", "home.column_settings.show_reblogs": "Diskouez ar skignadennoù", "home.column_settings.show_replies": "Diskouez ar respontoù", @@ -330,7 +367,7 @@ "intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}", "intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}", "keyboard_shortcuts.back": "Distreiñ", - "keyboard_shortcuts.blocked": "Digeriñ roll an implijer.ezed.rien stanket", + "keyboard_shortcuts.blocked": "Digeriñ roll an implijerien·ezed stanket", "keyboard_shortcuts.boost": "Skignañ an toud", "keyboard_shortcuts.column": "Fokus ar bann", "keyboard_shortcuts.compose": "Fokus an takad testenn", @@ -347,7 +384,7 @@ "keyboard_shortcuts.legend": "Skrammañ ar skrid-se", "keyboard_shortcuts.local": "Digeriñ red-amzer lec'hel", "keyboard_shortcuts.mention": "Menegiñ an aozer.ez", - "keyboard_shortcuts.muted": "Digeriñ roll an implijer.ezed.ien kuzhet", + "keyboard_shortcuts.muted": "Digeriñ roll an implijerien·ezed kuzhet", "keyboard_shortcuts.my_profile": "Digeriñ ho profil", "keyboard_shortcuts.notifications": "Digeriñ bann ar c'hemennoù", "keyboard_shortcuts.open_media": "Digeriñ ar media", @@ -381,7 +418,8 @@ "lists.list_name": "Anv al listenn", "lists.new_list_name": "Anv nevez al listenn", "lists.no_lists_yet": "Listenn ebet c'hoazh.", - "lists.replies_policy.followed": "Pep implijer.ez heuliet", + "lists.remove_member": "Dilemel", + "lists.replies_policy.followed": "Pep implijer·ez heuliet", "lists.replies_policy.list": "Izili ar roll", "lists.replies_policy.none": "Den ebet", "lists.save": "Enrollañ", @@ -389,17 +427,20 @@ "load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}", "loading_indicator.label": "O kargañ…", "media_gallery.hide": "Kuzhat", + "mute_modal.hide_options": "Dibarzhioù ar c'huzhat", + "mute_modal.show_options": "Dibarzhioù an diskwel", + "mute_modal.title": "Kuzhat an implijer·ez?", "navigation_bar.about": "Diwar-benn", "navigation_bar.account_settings": "Ger-tremen ha surentez", "navigation_bar.administration": "Merañ", "navigation_bar.automated_deletion": "Dilemel an embannadenn ent-emgefreek", - "navigation_bar.blocks": "Implijer·ezed·ien berzet", + "navigation_bar.blocks": "Implijerien·ezed stanket", "navigation_bar.bookmarks": "Sinedoù", "navigation_bar.direct": "Menegoù prevez", - "navigation_bar.domain_blocks": "Domanioù kuzhet", + "navigation_bar.domain_blocks": "Domanioù stanket", "navigation_bar.favourites": "Muiañ-karet", "navigation_bar.filters": "Gerioù kuzhet", - "navigation_bar.follow_requests": "Pedadoù heuliañ", + "navigation_bar.follow_requests": "Rekedoù heuliañ", "navigation_bar.followed_tags": "Gerioù-klik o heuliañ", "navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien", "navigation_bar.import_export": "Enporzhiañ hag ezporzhiañ", @@ -407,7 +448,7 @@ "navigation_bar.logout": "Digennaskañ", "navigation_bar.moderation": "Habaskadur", "navigation_bar.more": "Muioc'h", - "navigation_bar.mutes": "Implijer·ion·ezed kuzhet", + "navigation_bar.mutes": "Implijerien·ezed kuzhet", "navigation_bar.preferences": "Gwellvezioù", "navigation_bar.search": "Klask", "navigation_bar.search_trends": "Klask / Diouzh ar c'hiz", @@ -437,7 +478,7 @@ "notifications.column_settings.alert": "Kemennoù war ar burev", "notifications.column_settings.favourite": "Muiañ-karet:", "notifications.column_settings.follow": "Heulierien nevez:", - "notifications.column_settings.follow_request": "Pedadoù heuliañ nevez :", + "notifications.column_settings.follow_request": "Rekedoù heuliañ nevez:", "notifications.column_settings.group": "Strollañ", "notifications.column_settings.mention": "Menegoù:", "notifications.column_settings.poll": "Disoc'hoù ar sontadeg:", @@ -467,6 +508,8 @@ "notifications.policy.drop": "Tremen e-bioù", "notifications.policy.filter": "Silañ", "notifications.policy.filter_new_accounts_title": "Kontoù nevez", + "notifications.policy.filter_not_followers_title": "Tud na heuliont ket ac'hanoc'h", + "notifications.policy.filter_not_following_title": "Tud n'int ket heuliet ganeoc'h", "notifications_permission_banner.enable": "Lezel kemennoù war ar burev", "notifications_permission_banner.how_to_control": "Evit reseviñ kemennoù pa ne vez ket digoret Mastodon, lezelit kemennoù war ar burev. Gallout a rit kontrollañ peseurt eskemmoù a c'henel kemennoù war ar burev gant ar {icon} nozelenn a-us kentre ma'z int lezelet.", "notifications_permission_banner.title": "Na vankit netra morse", @@ -492,6 +535,7 @@ "poll_button.add_poll": "Ouzhpennañ ur sontadeg", "poll_button.remove_poll": "Dilemel ar sontadeg", "privacy.change": "Cheñch prevezded an embannadur", + "privacy.private.long": "Hoc'h heulierien·ezed hepken", "privacy.private.short": "Heulierien", "privacy.public.short": "Publik", "privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}", @@ -584,7 +628,7 @@ "status.admin_account": "Digeriñ etrefas evezhiañ evit @{name}", "status.admin_domain": "Digeriñ an etrefas evezhiañ evit {domain}", "status.admin_status": "Digeriñ an embannadenn e-barzh an etrefas evezhiañ", - "status.block": "Berzañ @{name}", + "status.block": "Stankañ @{name}", "status.bookmark": "Ouzhpennañ d'ar sinedoù", "status.cancel_reblog_private": "Nac'hañ ar skignadenn", "status.cannot_reblog": "Ar c'hannad-se na c'hall ket bezañ skignet", @@ -614,7 +658,7 @@ "status.pin": "Spilhennañ d'ar profil", "status.read_more": "Lenn muioc'h", "status.reblog": "Skignañ", - "status.reblog_private": "Skignañ gant ar weledenn gentañ", + "status.reblog_private": "Skignañ d'hoc'h heulierien·ezed adarre", "status.reblogged_by": "Skignet gant {name}", "status.reblogs.empty": "Den ebet n'eus skignet ar c'hannad-mañ c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.", "status.redraft": "Diverkañ ha skrivañ en-dro", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 1c1f2ab6cd2bea..c6351eab5f2bbd 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -740,7 +740,6 @@ "privacy.public.long": "Tothom dins o fora Mastodon", "privacy.public.short": "Públic", "privacy.unlisted.additional": "Es comporta igual que públic, excepte que la publicació no apareixerà als canals en directe o etiquetes, l'explora o a la cerca de Mastodon, fins i tot si ho heu activat a nivell de compte.", - "privacy.unlisted.long": "Menys fanfàrries algorísmiques", "privacy.unlisted.short": "Públic silenciós", "privacy_policy.last_updated": "Darrera actualització {date}", "privacy_policy.title": "Política de Privacitat", @@ -900,7 +899,6 @@ "status.read_more": "Més informació", "status.reblog": "Impulsa", "status.reblog_or_quote": "Impuls or cita", - "status.reblog_private": "Impulsa amb la visibilitat original", "status.reblogged_by": "impulsat per {name}", "status.reblogs": "{count, plural, one {impuls} other {impulsos}}", "status.reblogs.empty": "Encara no ha impulsat ningú aquest tut. Quan algú ho faci, apareixerà aquí.", @@ -977,7 +975,6 @@ "visibility_modal.button_title": "Establiu la visibilitat", "visibility_modal.header": "Visibilitat i interacció", "visibility_modal.helper.direct_quoting": "No es poden citar mencions privades fetes a Mastondon.", - "visibility_modal.helper.privacy_editing": "No es pot canviar la visibilitat de les publicacions ja fetes.", "visibility_modal.helper.private_quoting": "No es poden citar publicacions fetes a Mastodon només per a seguidors.", "visibility_modal.helper.unlisted_quoting": "Quan la gent et citi les seves publicacions estaran amagades de les línies de temps de tendències.", "visibility_modal.quote_followers": "Només seguidors", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 7a7a1213d0cf29..7dac82f75d8b8b 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -496,7 +496,6 @@ "status.pin": "لکاندن لەسەر پرۆفایل", "status.read_more": "زیاتر بخوێنەوە", "status.reblog": "بەهێزکردن", - "status.reblog_private": "بەهێزکردن بۆ بینەرانی سەرەتایی", "status.reblogged_by": "{name} توتی کردەوە", "status.reblogs.empty": "کەس ئەم توتەی دووبارە نەتوتاندوە ،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.", "status.redraft": "سڕینەوەی و دووبارە ڕەشنووس", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 27620400e79526..7a0306bc31c64c 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -288,7 +288,6 @@ "status.pin": "Puntarulà à u prufile", "status.read_more": "Leghje di più", "status.reblog": "Sparte", - "status.reblog_private": "Sparte à l'audienza uriginale", "status.reblogged_by": "{name} hà spartutu", "status.reblogs.empty": "Per avà nisunu hà spartutu u statutu. Quandu qualch'unu u sparterà, u so contu sarà mustratu quì.", "status.redraft": "Sguassà è riscrive", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index f8bda8f7350d32..e7652d8ca565b9 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, citování je zakázáno", "privacy.quote.limited": "{visibility}, citování je omezené", "privacy.unlisted.additional": "Chová se stejně jako veřejný, až na to, že se příspěvek neobjeví v živých kanálech nebo hashtazích, v objevování nebo vyhledávání na Mastodonu, a to i když je účet nastaven tak, aby se zde všude tyto příspěvky zobrazovaly.", - "privacy.unlisted.long": "Méně algoritmických fanfár", + "privacy.unlisted.long": "Skryté z výsledků vyhledávání na Mastodonu, trendujících příspěvků a veřejné časové osy", "privacy.unlisted.short": "Ztišené veřejné", "privacy_policy.last_updated": "Naposledy aktualizováno {date}", "privacy_policy.title": "Zásady ochrany osobních údajů", @@ -913,7 +913,7 @@ "status.read_more": "Číst více", "status.reblog": "Boostnout", "status.reblog_or_quote": "Boostnout nebo citovat", - "status.reblog_private": "Boostnout s původní viditelností", + "status.reblog_private": "Sdílejte znovu se svými sledujícími", "status.reblogged_by": "Uživatel {name} boostnul", "status.reblogs": "{count, plural, one {boost} few {boosty} many {boostů} other {boostů}}", "status.reblogs.empty": "Tento příspěvek ještě nikdo neboostnul. Pokud to někdo udělá, zobrazí se zde.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Nastavit viditelnost", "visibility_modal.header": "Viditelnost a interakce", "visibility_modal.helper.direct_quoting": "Soukromé zmínky, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.", - "visibility_modal.helper.privacy_editing": "Publikované příspěvky nemohou změnit svou viditelnost.", + "visibility_modal.helper.privacy_editing": "Viditelnost nelze změnit po publikování příspěvku.", "visibility_modal.helper.privacy_private_self_quote": "Citace vlastních soukromých příspěvků nelze zveřejnit.", "visibility_modal.helper.private_quoting": "Příspěvky pouze pro sledující, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.", "visibility_modal.helper.unlisted_quoting": "Když vás lidé citují, jejich příspěvek bude v časové ose populárních příspěvků také skryt.", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index b90b08059c2358..91a15acee00c46 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -745,7 +745,6 @@ "privacy.quote.disabled": "{visibility}, dyfyniadau wedi'u hanalluogi", "privacy.quote.limited": "{visibility}, dyfyniadau wedi'u cyfyngu", "privacy.unlisted.additional": "Mae hwn yn ymddwyn yn union fel y cyhoeddus, ac eithrio na fydd y postiad yn ymddangos mewn ffrydiau byw neu hashnodau, archwilio, neu chwiliad Mastodon, hyd yn oed os ydych wedi eich cynnwys ar draws y cyfrif.", - "privacy.unlisted.long": "Llai o ddathliadau algorithmig", "privacy.unlisted.short": "Tewi'r cyhoeddus", "privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}", "privacy_policy.title": "Polisi Preifatrwydd", @@ -908,7 +907,6 @@ "status.read_more": "Darllen rhagor", "status.reblog": "Hybu", "status.reblog_or_quote": "Hybu neu ddyfynnu", - "status.reblog_private": "Hybu i'r gynulleidfa wreiddiol", "status.reblogged_by": "Hybodd {name}", "status.reblogs": "{count, plural, one {# hwb} other {# hwb}}", "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.", @@ -986,7 +984,6 @@ "visibility_modal.button_title": "Gosod gwelededd", "visibility_modal.header": "Gwelededd a rhyngweithio", "visibility_modal.helper.direct_quoting": "Does dim modd dyfynnu crybwylliadau preifat ysgrifennwyd ar Mastodon.", - "visibility_modal.helper.privacy_editing": "Does dim modd newid gwelededd postiadau wedi'u cyhoeddi.", "visibility_modal.helper.private_quoting": "Does dim modd dyfynnu crybwylliadau preifat ysgrifennwyd gan ddilynwyr.", "visibility_modal.helper.unlisted_quoting": "Pan fydd pobl yn eich dyfynnu, bydd eu postiad hefyd yn cael ei guddio rhag llinellau amser sy'n trendio.", "visibility_modal.quote_followers": "Dilynwyr yn unig", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index cf10facdbfd430..7e604c697957d0 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -745,7 +745,6 @@ "privacy.quote.disabled": "{visibility}, citering deaktiveret", "privacy.quote.limited": "{visibility}, citering begrænset", "privacy.unlisted.additional": "Dette svarer til offentlig, bortset fra at indlægget ikke vises i live-feeds eller hashtags, udforsk eller Mastodon-søgning, selvom du har tilvalgt dette for kontoen.", - "privacy.unlisted.long": "Færre algoritmiske fanfarer", "privacy.unlisted.short": "Offentlig (stille)", "privacy_policy.last_updated": "Senest opdateret {date}", "privacy_policy.title": "Privatlivspolitik", @@ -911,7 +910,7 @@ "status.read_more": "Læs mere", "status.reblog": "Fremhæv", "status.reblog_or_quote": "Fremhæv eller citér", - "status.reblog_private": "Fremhæv med oprindelig synlighed", + "status.reblog_private": "Del igen med dine følgere", "status.reblogged_by": "{name} fremhævede", "status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}", "status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.", @@ -989,7 +988,7 @@ "visibility_modal.button_title": "Indstil synlighed", "visibility_modal.header": "Synlighed og interaktion", "visibility_modal.helper.direct_quoting": "Private omtaler forfattet på Mastodon kan ikke citeres af andre.", - "visibility_modal.helper.privacy_editing": "Publicerede indlægs synlighed kan ikke ændres.", + "visibility_modal.helper.privacy_editing": "Synlighed kan ikke ændres, efter at et indlæg er offentliggjort.", "visibility_modal.helper.privacy_private_self_quote": "Selvcitater fra private indlæg kan ikke gøres offentlige.", "visibility_modal.helper.private_quoting": "Kun-følger indlæg forfattet på Mastodon kan ikke citeres af andre.", "visibility_modal.helper.unlisted_quoting": "Når folk citerer dig, vil deres indlæg også blive skjult fra trendtidslinjer.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index e869b49ac68e21..fbd9e0204dc2da 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility} – niemand darf zitieren", "privacy.quote.limited": "{visibility} – eingeschränktes Zitieren", "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.long": "Verborgen vor Suchergebnissen, Trends und öffentlichen Timelines in Mastodon", "privacy.unlisted.short": "Öffentlich (still)", "privacy_policy.last_updated": "Stand: {date}", "privacy_policy.title": "Datenschutzerklärung", @@ -913,7 +913,7 @@ "status.read_more": "Gesamten Beitrag anschauen", "status.reblog": "Teilen", "status.reblog_or_quote": "Teilen oder zitieren", - "status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen", + "status.reblog_private": "Erneut mit deinen Followern teilen", "status.reblogged_by": "{name} teilte", "status.reblogs": "{count, plural, one {Mal geteilt} other {Mal geteilt}}", "status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird das Profil hier erscheinen.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Sichtbarkeit festlegen", "visibility_modal.header": "Sichtbarkeit und Interaktion", "visibility_modal.helper.direct_quoting": "Private Erwähnungen, die auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.", - "visibility_modal.helper.privacy_editing": "Die Sichtbarkeit bereits veröffentlichter Beiträge kann nachträglich nicht mehr geändert werden.", + "visibility_modal.helper.privacy_editing": "Die Sichtbarkeit eines bereits veröffentlichten Beitrags kann nachträglich nicht mehr geändert werden.", "visibility_modal.helper.privacy_private_self_quote": "Beiträge mit privaten Erwähnungen können öffentlich nicht zitiert werden.", "visibility_modal.helper.private_quoting": "Beiträge, die nur für deine Follower bestimmt sind und auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.", "visibility_modal.helper.unlisted_quoting": "Sollten dich andere zitieren, werden ihre zitierten Beiträge ebenfalls nicht in den Trends und öffentlichen Timelines angezeigt.", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 4146a344e43af3..ce02a4070f6101 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -743,7 +743,6 @@ "privacy.quote.disabled": "{visibility}, παραθέσεις απενεργοποιημένες", "privacy.quote.limited": "{visibility}, παραθέσεις περιορισμένες", "privacy.unlisted.additional": "Αυτό συμπεριφέρεται ακριβώς όπως το δημόσιο, εκτός από το ότι η ανάρτηση δεν θα εμφανιστεί σε ζωντανές ροές ή ετικέτες, εξερεύνηση ή αναζήτηση στο Mastodon, ακόμη και αν το έχεις επιλέξει για τον λογαριασμό σου.", - "privacy.unlisted.long": "Λιγότερα αλγοριθμικά κόλπα", "privacy.unlisted.short": "Ήσυχα δημόσια", "privacy_policy.last_updated": "Τελευταία ενημέρωση {date}", "privacy_policy.title": "Πολιτική Απορρήτου", @@ -901,7 +900,6 @@ "status.quote_private": "Ιδιωτικές αναρτήσεις δεν μπορούν να παρατεθούν", "status.read_more": "Διάβασε περισότερα", "status.reblog": "Ενίσχυση", - "status.reblog_private": "Ενίσχυση με αρχική ορατότητα", "status.reblogged_by": "{name} προώθησε", "status.reblogs": "{count, plural, one {ενίσχυση} other {ενισχύσεις}}", "status.reblogs.empty": "Κανείς δεν ενίσχυσε αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.", @@ -977,7 +975,6 @@ "video.volume_up": "Αύξηση έντασης", "visibility_modal.button_title": "Ορισμός ορατότητας", "visibility_modal.header": "Ορατότητα και αλληλεπίδραση", - "visibility_modal.helper.privacy_editing": "Δημοσιευμένες αναρτήσεις δεν μπορούν να αλλάξουν την ορατότητά τους.", "visibility_modal.helper.unlisted_quoting": "Όταν οι άνθρωποι σας παραθέτουν, η ανάρτηση τους θα είναι επίσης κρυμμένη από τα δημοφιλή χρονοδιαγράμματα.", "visibility_modal.quote_followers": "Μόνο ακόλουθοι", "visibility_modal.quote_public": "Οποιοσδήποτε", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 1bb482d9888a46..51d4a1f7d6631d 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -731,7 +731,6 @@ "privacy.public.long": "Anyone on and off Mastodon", "privacy.public.short": "Public", "privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.", - "privacy.unlisted.long": "Fewer algorithmic fanfares", "privacy.unlisted.short": "Quiet public", "privacy_policy.last_updated": "Last updated {date}", "privacy_policy.title": "Privacy Policy", @@ -873,7 +872,6 @@ "status.quote_error.filtered": "Hidden due to one of your filters", "status.read_more": "Read more", "status.reblog": "Boost", - "status.reblog_private": "Boost with original visibility", "status.reblogged_by": "{name} boosted", "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index aedf92cfa33a29..a7c38ec974bf43 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -733,7 +733,6 @@ "privacy.public.short": "Publika", "privacy.quote.anyone": "{visibility}, iu ajn povas citi", "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}", "privacy_policy.title": "Politiko de privateco", @@ -900,7 +899,6 @@ "status.read_more": "Legi pli", "status.reblog": "Diskonigi", "status.reblog_or_quote": "Diskonigi aŭ citi", - "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.", @@ -976,7 +974,6 @@ "video.volume_up": "Laŭteco pliigi", "visibility_modal.button_title": "Agordu videblon", "visibility_modal.header": "Videblo kaj interago", - "visibility_modal.helper.privacy_editing": "Publikigitaj afiŝoj ne povas ŝanĝi sian videblon.", "visibility_modal.helper.private_quoting": "Afiŝoj nur por sekvantoj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj.", "visibility_modal.helper.unlisted_quoting": "Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj.", "visibility_modal.privacy_label": "Videbleco", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index a51d8092c238dd..d96c0d31470e45 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, citas deshabilitadas", "privacy.quote.limited": "{visibility}, citas limitadas", "privacy.unlisted.additional": "Esto se comporta exactamente igual que con la configuración de privacidad de mensaje «Público», excepto que el mensaje no aparecerá en las líneas temporales en vivo, ni en las etiquetas, ni en la línea temporal «Explorá», ni en la búsqueda de Mastodon; incluso si optaste por hacer tu cuenta visible.", - "privacy.unlisted.long": "Menos fanfarrias algorítmicas", + "privacy.unlisted.long": "Oculto de los resultados de búsqueda, tendencias y líneas temporales públicas de Mastodon", "privacy.unlisted.short": "Público silencioso", "privacy_policy.last_updated": "Última actualización: {date}", "privacy_policy.title": "Política de privacidad", @@ -913,7 +913,7 @@ "status.read_more": "Leé más", "status.reblog": "Adherir", "status.reblog_or_quote": "Adherir o citar", - "status.reblog_private": "Adherir a la audiencia original", + "status.reblog_private": "Compartir de nuevo con tus seguidores", "status.reblogged_by": "{name} adhirió", "status.reblogs": "{count, plural, one {adhesión} other {adhesiones}}", "status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Establecer visibilidad", "visibility_modal.header": "Visibilidad e interacción", "visibility_modal.helper.direct_quoting": "Las menciones privadas redactadas en Mastodon no pueden ser citadas por otras cuentas.", - "visibility_modal.helper.privacy_editing": "No se puede cambiar la visibilidad a los mensajes ya enviados.", + "visibility_modal.helper.privacy_editing": "La visibilidad no se puede cambiar después de que se haya enviado un mensaje.", "visibility_modal.helper.privacy_private_self_quote": "Las citas propias de mensajes privados no pueden hacerse públicas.", "visibility_modal.helper.private_quoting": "Los mensajes solo para seguidores redactados en Mastodon no pueden ser citados por otras cuentas.", "visibility_modal.helper.unlisted_quoting": "Cuando otras cuentas te citen, sus publicaciones también se ocultarán de las líneas temporales de tendencias.", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index e6e5ece97ea6ff..1b6f83ee426130 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, citas desactivadas", "privacy.quote.limited": "{visibility}, citas limitadas", "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.long": "Oculto de los resultados de búsquedas, tendencias y cronologías públicas de Mastodon", "privacy.unlisted.short": "Público silencioso", "privacy_policy.last_updated": "Actualizado por última vez {date}", "privacy_policy.title": "Política de Privacidad", @@ -913,7 +913,7 @@ "status.read_more": "Leer más", "status.reblog": "Impulsar", "status.reblog_or_quote": "Impulsar o citar", - "status.reblog_private": "Implusar a la audiencia original", + "status.reblog_private": "Compartir de nuevo con tus seguidores", "status.reblogged_by": "Impulsado por {name}", "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Nadie impulsó esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Establece la visibilidad", "visibility_modal.header": "Visibilidad e interacción", "visibility_modal.helper.direct_quoting": "Las menciones privadas creadas en Mastodon no pueden ser citadas por otros.", - "visibility_modal.helper.privacy_editing": "Las publicaciones ya enviadas no pueden cambiar su visibilidad.", + "visibility_modal.helper.privacy_editing": "La visibilidad no se puede cambiar después de que se haya hecho una publicación.", "visibility_modal.helper.privacy_private_self_quote": "Las citas propias de publicaciones privadas no pueden hacerse públicas.", "visibility_modal.helper.private_quoting": "Las publicaciones solo para seguidores creadas en Mastodon no pueden ser citadas por otros.", "visibility_modal.helper.unlisted_quoting": "Cuando las personas te citen, sus publicaciones también se ocultarán de las cronologías de tendencias.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index a46592221a3ee0..abf2ef8b67582c 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, citas deshabilitadas", "privacy.quote.limited": "{visibility}, citas limitadas", "privacy.unlisted.additional": "Se comporta exactamente igual que la visibilidad pública, excepto que la publicación no aparecerá en las cronologías públicas o en las etiquetas, la sección de Explorar o la búsqueda de Mastodon, incluso si has habilitado la opción de búsqueda en tu perfil.", - "privacy.unlisted.long": "Sin algoritmos de descubrimiento", + "privacy.unlisted.long": "Oculto de los resultados de búsquedas, tendencias y cronologías públicas de Mastodon", "privacy.unlisted.short": "Pública silenciosa", "privacy_policy.last_updated": "Actualizado por última vez {date}", "privacy_policy.title": "Política de Privacidad", @@ -913,7 +913,7 @@ "status.read_more": "Leer más", "status.reblog": "Impulsar", "status.reblog_or_quote": "Impulsar o citar", - "status.reblog_private": "Impulsar a la audiencia original", + "status.reblog_private": "Compartir de nuevo con tus seguidores", "status.reblogged_by": "Impulsado por {name}", "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Nadie ha impulsado esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Configura la visibilidad", "visibility_modal.header": "Visibilidad e interacciones", "visibility_modal.helper.direct_quoting": "Las menciones privadas publicadas en Mastodon no pueden ser citadas por otros usuarios.", - "visibility_modal.helper.privacy_editing": "Una vez publicada, no se puede cambiar su visibilidad.", + "visibility_modal.helper.privacy_editing": "La visibilidad no se puede cambiar después de que se haya hecho una publicación.", "visibility_modal.helper.privacy_private_self_quote": "Las citas propias de publicaciones privadas no pueden hacerse públicas.", "visibility_modal.helper.private_quoting": "Las publicaciones solo para seguidores hechas en Mastodon no pueden ser citadas por otros usuarios.", "visibility_modal.helper.unlisted_quoting": "Cuando la gente te cite, su publicación tampoco se mostrará en las cronologías públicas.", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 700f9c4bc85bdb..03b07542761a73 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -272,7 +272,7 @@ "dismissable_banner.public_timeline": "Need on värskeimad avalikud postitused inimestelt fediversiumis, mida domeeni {domain} inimesed jälgivad.", "domain_block_modal.block": "Blokeeri server", "domain_block_modal.block_account_instead": "Selle asemel blokeeri @{name}", - "domain_block_modal.they_can_interact_with_old_posts": "Inimesed sellest serverist saavad interakteeruda sinu vanade postitustega.", + "domain_block_modal.they_can_interact_with_old_posts": "Inimesed sellest serverist saavad suhestuda sinu vanade postitustega.", "domain_block_modal.they_cant_follow": "Sellest serverist ei saa keegi sind jälgida.", "domain_block_modal.they_wont_know": "Nad ei tea, et nad on blokeeritud.", "domain_block_modal.title": "Blokeerida domeen?", @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, tsiteerimine pole lubatud", "privacy.quote.limited": "{visibility}, tsiteerimine on piiratud", "privacy.unlisted.additional": "See on olemuselt küll avalik, aga postitus ei ilmu voogudes ega märksõnades, lehitsedes ega Mastodoni otsingus, isegi kui konto on seadistustes avalik.", - "privacy.unlisted.long": "Vähem algoritmilisi teavitusi", + "privacy.unlisted.long": "Peidetud Mastodoni otsingutulemustest, pupulaarsust koguva sisu voost ja avalikult ajajoonelt", "privacy.unlisted.short": "Vaikselt avalik", "privacy_policy.last_updated": "Viimati uuendatud {date}", "privacy_policy.title": "Isikuandmete kaitse", @@ -768,6 +768,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "täna", + "remove_quote_hint.button_label": "Sain aru", + "remove_quote_hint.message": "Sa saad teha seda {icon} eelistuste menüüst.", + "remove_quote_hint.title": "Kas sa soovid oma tsiteeritud postituse eemaldada?", "reply_indicator.attachments": "{count, plural, one {# lisa} other {# lisa}}", "reply_indicator.cancel": "Tühista", "reply_indicator.poll": "Küsitlus", @@ -910,7 +913,7 @@ "status.read_more": "Loe veel", "status.reblog": "Jaga", "status.reblog_or_quote": "Anna hoogu või tsiteeri", - "status.reblog_private": "Jaga algse nähtavusega", + "status.reblog_private": "Jaga uuesti oma jälgijatele", "status.reblogged_by": "{name} jagas", "status.reblogs": "{count, plural, one {jagamine} other {jagamist}}", "status.reblogs.empty": "Keegi pole seda postitust veel jaganud. Kui keegi seda teeb, siis on ta nähtav siin.", @@ -988,7 +991,7 @@ "visibility_modal.button_title": "Muuda nähtavust", "visibility_modal.header": "Nähtavus ja kasutus", "visibility_modal.helper.direct_quoting": "Ainult mainituile mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.", - "visibility_modal.helper.privacy_editing": "Avaldatud postitused ei saa muuta oma nähtavust.", + "visibility_modal.helper.privacy_editing": "Nähtavust ei saa peale postituse avaldamist muuta.", "visibility_modal.helper.privacy_private_self_quote": "Privaatsete postituste tsiteerimist oma enda poolt pole võimalik teha avalikuks.", "visibility_modal.helper.private_quoting": "Ainult jälgijatele mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.", "visibility_modal.helper.unlisted_quoting": "Kui teised kasutajad sind tsiteerivad, siis nende postitused peidetakse ajajoonelt, mis näitavad populaarsust koguvaid postitusi.", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 316dc43a4d2336..e5ac637a09bb90 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -707,7 +707,6 @@ "privacy.public.long": "Mastodonen dagoen edo ez dagoen edonor", "privacy.public.short": "Publikoa", "privacy.unlisted.additional": "Aukera honek publiko modua bezala funtzionatzen du, baina argitalpena ez da agertuko zuzeneko jarioetan edo traoletan, \"Arakatu\" atalean edo Mastodonen bilaketan, nahiz eta kontua zabaltzeko onartu duzun.", - "privacy.unlisted.long": "Tontakeria algoritmiko gutxiago", "privacy.unlisted.short": "Deiadar urrikoa", "privacy_policy.last_updated": "Azkenengo eguneraketa {date}", "privacy_policy.title": "Pribatutasun politika", @@ -846,7 +845,6 @@ "status.pin": "Finkatu profilean", "status.read_more": "Irakurri gehiago", "status.reblog": "Bultzada", - "status.reblog_private": "Bultzada jatorrizko hartzaileei", "status.reblogged_by": "{name}(r)en bultzada", "status.reblogs": "{count, plural, one {bultzada} other {bultzada}}", "status.reblogs.empty": "Inork ez dio bultzada eman bidalketa honi oraindik. Inork egiten badu, hemen agertuko da.", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 19a790cbfa2552..b62c5235bcbf37 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -739,7 +739,6 @@ "privacy.public.long": "هرکسی در و بیرون از ماستودون", "privacy.public.short": "عمومی", "privacy.unlisted.additional": "درست مثل عمومی رفتار می‌کند؛ جز این که فرسته در برچسب‌ها یا خوراک‌های زنده، کشف یا جست‌وجوی ماستودون ظاهر نخواهد شد. حتا اگر کلیّت نمایه‌تان اجازه داده باشد.", - "privacy.unlisted.long": "سروصدای الگوریتمی کم‌تر", "privacy.unlisted.short": "عمومی ساکت", "privacy_policy.last_updated": "آخرین به‌روز رسانی در {date}", "privacy_policy.title": "سیاست محرمانگی", @@ -892,7 +891,6 @@ "status.quote_post_author": "فرسته‌ای از @{name} نقل شد", "status.read_more": "بیشتر بخوانید", "status.reblog": "تقویت", - "status.reblog_private": "تقویت برای مخاطبان نخستین", "status.reblogged_by": "‫{name}‬ تقویت کرد", "status.reblogs": "{count, plural, one {تقویت} other {تقویت}}", "status.reblogs.empty": "هنوز هیچ کسی این فرسته را تقویت نکرده است. وقتی کسی چنین کاری کند، این‌جا نمایش داده خواهد شد.", @@ -967,8 +965,8 @@ "video.volume_up": "افزایش حجم صدا", "visibility_modal.button_title": "تنظیم نمایانی", "visibility_modal.header": "نمایانی و برهم‌کنش", - "visibility_modal.helper.privacy_editing": "نمی‌توان نمایانی فرسته‌های منتشر شده را تغییر داد.", "visibility_modal.helper.unlisted_quoting": "هنگامی که افراد نقلتان می‌کنند فرسته‌شان هم از خط‌زمانی‌های داغ پنهان خواهد بود.", "visibility_modal.quote_followers": "فقط پی‌گیرندگان", - "visibility_modal.quote_public": "هرکسی" + "visibility_modal.quote_public": "هرکسی", + "visibility_modal.save": "ذخیره" } diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index b48520ebd3a3db..61d1934deb8917 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, lainaukset poissa käytöstä", "privacy.quote.limited": "{visibility}, lainauksia rajoitettu", "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.long": "Piilotettu Mastodonin hakutuloksista, trendeistä ja julkisilta aikajanoilta", "privacy.unlisted.short": "Vaivihkaa julkinen", "privacy_policy.last_updated": "Päivitetty viimeksi {date}", "privacy_policy.title": "Tietosuojakäytäntö", @@ -913,7 +913,7 @@ "status.read_more": "Näytä enemmän", "status.reblog": "Tehosta", "status.reblog_or_quote": "Tehosta tai lainaa", - "status.reblog_private": "Tehosta alkuperäiselle yleisölle", + "status.reblog_private": "Jaa uudelleen seuraajiesi kanssa", "status.reblogged_by": "{name} tehosti", "status.reblogs": "{count, plural, one {tehostus} other {tehostusta}}", "status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä julkaisua. Kun joku tekee niin, tulee hän tähän näkyviin.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Aseta näkyvyys", "visibility_modal.header": "Näkyvyys ja vuorovaikutus", "visibility_modal.helper.direct_quoting": "Muut eivät voi lainata Mastodonissa kirjoitettuja yksityismainintoja.", - "visibility_modal.helper.privacy_editing": "Lähetettyjen julkaisujen näkyvyyttä ei voi vaihtaa.", + "visibility_modal.helper.privacy_editing": "Näkyvyyttä ei voi muuttaa julkaisun jälkeen.", "visibility_modal.helper.privacy_private_self_quote": "Yksityisten julkaisujen itselainauksista ei voi tehdä julkisia.", "visibility_modal.helper.private_quoting": "Muut eivät voi lainata Mastodonissa kirjoitettuja, vain seuraajille tarkoitettuja julkaisuja.", "visibility_modal.helper.unlisted_quoting": "Kun ihmiset lainaavat sinua, myös heidän julkaisunsa piilotetaan suosittujen julkaisujen aikajanoilta.", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 0ce1246f824c37..69714d92d2f089 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -745,7 +745,6 @@ "privacy.quote.disabled": "{visibility}, siteringar óvirknar", "privacy.quote.limited": "{visibility}, siteringar avmarkaðar", "privacy.unlisted.additional": "Hetta er júst sum almenn, tó verður posturin ikki vístur í samtíðarrásum ella frámerkjum, rannsakan ella Mastodon leitingum, sjálvt um valið er galdandi fyri alla kontuna.", - "privacy.unlisted.long": "Færri algoritmiskar fanfarur", "privacy.unlisted.short": "Stillur almenningur", "privacy_policy.last_updated": "Seinast dagført {date}", "privacy_policy.title": "Privatlívspolitikkur", @@ -768,6 +767,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "í dag", + "remove_quote_hint.button_label": "Eg skilji", + "remove_quote_hint.message": "Tú kanst gera tað frá {icon} valmyndini.", + "remove_quote_hint.title": "Vilt tú strika siteraða postin hjá tær?", "reply_indicator.attachments": "{count, plural, one {# viðfesti} other {# viðfesti}}", "reply_indicator.cancel": "Ógilda", "reply_indicator.poll": "Atkvøðugreiðsla", @@ -910,7 +912,6 @@ "status.read_more": "Les meira", "status.reblog": "Stimbra", "status.reblog_or_quote": "Stimbra ella sitera", - "status.reblog_private": "Stimbra við upprunasýni", "status.reblogged_by": "{name} stimbrað", "status.reblogs": "{count, plural, one {stimbran} other {stimbranir}}", "status.reblogs.empty": "Eingin hevur stimbrað hendan postin enn. Tá onkur stimbrar postin, verður hann sjónligur her.", @@ -988,7 +989,7 @@ "visibility_modal.button_title": "Set sýni", "visibility_modal.header": "Sýni og samvirkni", "visibility_modal.helper.direct_quoting": "Privatar umrøður, sum eru skrivaðar á Mastodon, kunnu ikki siterast av øðrum.", - "visibility_modal.helper.privacy_editing": "Útgivnir postar kunnnu ikki broyta sýni.", + "visibility_modal.helper.privacy_editing": "Sýni kann ikki broytast eftir, at ein postur er útgivin.", "visibility_modal.helper.private_quoting": "Postar, sum einans eru fyri fylgjarar á Mastodon, kunnu ikki siterast av øðrum.", "visibility_modal.helper.unlisted_quoting": "Tá fólk sitera teg, so vera teirra postar eisini fjaldir frá tíðarlinjum við ráki.", "visibility_modal.instructions": "Stýr hvør samvirka við hendan postin. Tú kanst eisini áseta stillingar til allar framtíðar postar við at fara til Stillingar > Postingarstillingar.", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index e3e99703784ae2..e7803d17e7ce1c 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -739,7 +739,6 @@ "privacy.quote.disabled": "{visibility}, citations désactivées", "privacy.quote.limited": "{visibility}, citations limitées", "privacy.unlisted.additional": "Se comporte exactement comme « public », sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, explorer ou la recherche Mastodon, même si vous les avez activé au niveau de votre compte.", - "privacy.unlisted.long": "Moins de fanfares algorithmiques", "privacy.unlisted.short": "Public discret", "privacy_policy.last_updated": "Dernière mise à jour {date}", "privacy_policy.title": "Politique de confidentialité", @@ -898,7 +897,6 @@ "status.quote_private": "Les publications privées ne peuvent pas être citées", "status.read_more": "En savoir plus", "status.reblog": "Booster", - "status.reblog_private": "Booster avec visibilité originale", "status.reblogged_by": "{name} a boosté", "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "Personne n’a encore boosté cette publication. Lorsque quelqu’un le fera, elle apparaîtra ici.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 82e46bfb0934e9..6f5470e3e0bc4f 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -739,7 +739,6 @@ "privacy.quote.disabled": "{visibility}, citations désactivées", "privacy.quote.limited": "{visibility}, citations limitées", "privacy.unlisted.additional": "Se comporte exactement comme « public », sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, explorer ou la recherche Mastodon, même si vous les avez activé au niveau de votre compte.", - "privacy.unlisted.long": "Moins de fanfares algorithmiques", "privacy.unlisted.short": "Public discret", "privacy_policy.last_updated": "Dernière mise à jour {date}", "privacy_policy.title": "Politique de confidentialité", @@ -898,7 +897,6 @@ "status.quote_private": "Les publications privées ne peuvent pas être citées", "status.read_more": "En savoir plus", "status.reblog": "Partager", - "status.reblog_private": "Partager à l’audience originale", "status.reblogged_by": "{name} a partagé", "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "Personne n’a encore partagé ce message. Lorsque quelqu’un le fera, il apparaîtra ici.", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index f28fbb2ff86799..c8eb6679e33e31 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -731,7 +731,6 @@ "privacy.public.long": "Elkenien op Mastodon en dêrbûten", "privacy.public.short": "Iepenbier", "privacy.unlisted.additional": "Dit is fergelykber mei iepenbier, útsein dat it berjocht net ferskynt op iepenbiere tiidlijnen of hashtags, ûnder ferkenne of Mastodon sykje, sels as jo jo account dêrfoar ynsteld hawwe.", - "privacy.unlisted.long": "Minder algoritmyske fanfare", "privacy.unlisted.short": "Minder iepenbier", "privacy_policy.last_updated": "Lêst bywurke op {date}", "privacy_policy.title": "Privacybelied", @@ -875,7 +874,6 @@ "status.quote_error.filtered": "Ferburgen troch ien fan jo filters", "status.read_more": "Mear ynfo", "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.", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index ff347ec785468d..d7399a35293528 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -745,7 +745,6 @@ "privacy.quote.disabled": "{visibility}, comharthaí athfhriotail díchumasaithe", "privacy.quote.limited": "{visibility}, luachana teoranta", "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", @@ -768,6 +767,9 @@ "relative_time.minutes": "{number}n", "relative_time.seconds": "{number}s", "relative_time.today": "inniu", + "remove_quote_hint.button_label": "Tuigim é", + "remove_quote_hint.message": "Is féidir leat é sin a dhéanamh ón roghchlár roghanna {icon}.", + "remove_quote_hint.title": "Ar mhaith leat do phost luaite a bhaint?", "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", @@ -863,6 +865,7 @@ "status.block": "Bac @{name}", "status.bookmark": "Leabharmharcanna", "status.cancel_reblog_private": "Dímhol", + "status.cannot_quote": "Tá luachana díchumasaithe ar an bpost seo", "status.cannot_reblog": "Ní féidir an phostáil seo a mholadh", "status.context.load_new_replies": "Freagraí nua ar fáil", "status.context.loading": "Ag seiceáil le haghaidh tuilleadh freagraí", @@ -909,7 +912,6 @@ "status.read_more": "Léan a thuilleadh", "status.reblog": "Treisiú", "status.reblog_or_quote": "Borradh nó luachan", - "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.", @@ -987,10 +989,14 @@ "visibility_modal.button_title": "Socraigh infheictheacht", "visibility_modal.header": "Infheictheacht agus idirghníomhaíocht", "visibility_modal.helper.direct_quoting": "Ní féidir le daoine eile tráchtanna príobháideacha a scríobhadh ar Mastodon a lua.", - "visibility_modal.helper.privacy_editing": "Ní féidir infheictheacht postálacha foilsithe a athrú.", + "visibility_modal.helper.privacy_editing": "Ní féidir infheictheacht a athrú tar éis post a fhoilsiú.", + "visibility_modal.helper.privacy_private_self_quote": "Ní féidir féin-luachanna ó phoist phríobháideacha a chur ar fáil don phobal.", "visibility_modal.helper.private_quoting": "Ní féidir le daoine eile poist atá scríofa ar Mastodon agus atá dírithe ar leanúna amháin a lua.", "visibility_modal.helper.unlisted_quoting": "Nuair a luann daoine thú, beidh a bpost i bhfolach ó amlínte treochta freisin.", + "visibility_modal.instructions": "Rialaigh cé a fhéadfaidh idirghníomhú leis an bpost seo. Is féidir leat socruithe a chur i bhfeidhm ar gach post amach anseo trí nascleanúint a dhéanamh chuig Sainroghanna > Réamhshocruithe Postála.", + "visibility_modal.privacy_label": "Infheictheacht", "visibility_modal.quote_followers": "Leantóirí amháin", + "visibility_modal.quote_label": "Cé a fhéadfaidh lua", "visibility_modal.quote_nobody": "Mise amháin", "visibility_modal.quote_public": "Aon duine", "visibility_modal.save": "Sábháil" diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index be02d0a67a77cf..cdaa07162573a8 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -731,7 +731,6 @@ "privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon", "privacy.public.short": "Poblach", "privacy.unlisted.additional": "Tha seo coltach ris an fhaicsinneachd phoblach ach cha nochd am post air loidhnichean-ama an t-saoghail phoblaich, nan tagaichean hais no an rùrachaidh no ann an toraidhean luirg Mhastodon fiù ’s ma thug thu ro-aonta airson sin seachad.", - "privacy.unlisted.long": "Ìre bheag an algairim", "privacy.unlisted.short": "Poblach ach sàmhach", "privacy_policy.last_updated": "An t-ùrachadh mu dheireadh {date}", "privacy_policy.title": "Poileasaidh prìobhaideachd", @@ -873,7 +872,6 @@ "status.quote_error.filtered": "Falaichte le criathrag a th’ agad", "status.read_more": "Leugh an còrr", "status.reblog": "Brosnaich", - "status.reblog_private": "Brosnaich leis an t-so-fhaicsinneachd tùsail", "status.reblogged_by": "’Ga bhrosnachadh le {name}", "status.reblogs": "{count, plural, one {bhrosnachadh} two {bhrosnachadh} few {brosnachaidhean} other {brosnachadh}}", "status.reblogs.empty": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 4e6bbfacd3425d..3168c5f7c51f81 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, citas desactivadas", "privacy.quote.limited": "{visibility}, citas limitadas", "privacy.unlisted.additional": "Do mesmo xeito que público, menos que a publicación non aparecerá nas cronoloxías en directo ou nos cancelos, en descubrir ou nas buscas de Mastodon, incluso se estivese establecido nas opcións xerais da conta.", - "privacy.unlisted.long": "Menor implicación dos algoritmos", + "privacy.unlisted.long": "Non aparece nos resultados de buscas en Mastodon, nas tendencias e cronoloxías públicas", "privacy.unlisted.short": "Público limitado", "privacy_policy.last_updated": "Actualizado por última vez no {date}", "privacy_policy.title": "Política de Privacidade", @@ -913,7 +913,7 @@ "status.read_more": "Ler máis", "status.reblog": "Promover", "status.reblog_or_quote": "Promover ou citar", - "status.reblog_private": "Compartir coa audiencia orixinal", + "status.reblog_private": "Volver a compartir coas túas seguidoras", "status.reblogged_by": "{name} promoveu", "status.reblogs": "{count, plural, one {promoción} other {promocións}}", "status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Establece a visibilidade", "visibility_modal.header": "Visibilidade e interaccións", "visibility_modal.helper.direct_quoting": "As mencións privadas creadas con Mastodon non poden ser citadas.", - "visibility_modal.helper.privacy_editing": "Non se pode cambiar a visibilidade das publicacións xa publicadas.", + "visibility_modal.helper.privacy_editing": "Non se pode cambiar a visibilidade unha vez foi publicada.", "visibility_modal.helper.privacy_private_self_quote": "Non se poden facer públicas as auto-citas de publicacións privadas.", "visibility_modal.helper.private_quoting": "As publicacións só para seguidoras creadas con Mastodon non poden ser citadas.", "visibility_modal.helper.unlisted_quoting": "Cando alguén te cite, a súa publicación non aparecerá nas cronoloxías de popularidade.", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 7418a78784812d..0900ba4477f55d 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, האפשרות לציטוט מכובה", "privacy.quote.limited": "{visibility}, האפשרות לציטוט מוגבלת", "privacy.unlisted.additional": "ההתנהגות דומה להודעה ציבורית, מלבד שההודעה לא תופיע בפיד החי המקומי או בתגיות, תגליות או חיפוש מסטודון, אפילו אם ביקשת שהחשבון כולו יהיה פומבי.", - "privacy.unlisted.long": "פחות חשיפה לאלגוריתמים", + "privacy.unlisted.long": "מוסתרת מתוצאות חיפוש במסטודון, נושאים חמים וציר הזמן הציבורי", "privacy.unlisted.short": "ציבורי שקט", "privacy_policy.last_updated": "עודכן לאחרונה {date}", "privacy_policy.title": "מדיניות פרטיות", @@ -913,7 +913,7 @@ "status.read_more": "לקרוא עוד", "status.reblog": "הדהוד", "status.reblog_or_quote": "להדהד או לצטט", - "status.reblog_private": "להדהד ברמת הנראות המקורית", + "status.reblog_private": "שיתוף מחדש עם העוקבות והעוקבים שלך", "status.reblogged_by": "{name} הידהד/ה:", "status.reblogs": "{count, plural, one {הדהוד אחד} two {שני הדהודים} other {# הדהודים}}", "status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.", @@ -991,12 +991,12 @@ "visibility_modal.button_title": "בחירת רמת חשיפה", "visibility_modal.header": "חשיפה והידוּד (אינטראקציה)", "visibility_modal.helper.direct_quoting": "איזכורים פרטיים שנוצרו במסטודון חסומים מציטוט על ידי אחרים.", - "visibility_modal.helper.privacy_editing": "לא ניתן לשנות את דרגת החשיפה של הודעות שפורסמו.", + "visibility_modal.helper.privacy_editing": "רמת החשיפה של ההודעה לא ניתנת לשינוי אחרי הפרסום.", "visibility_modal.helper.privacy_private_self_quote": "ציטוט עצמי של הודעות פרטיות בהודעה ציבורית איננו אפשרי.", "visibility_modal.helper.private_quoting": "הודעות לעוקבים־בלבד שנוצרו במסטודון חסומות מציטוט על ידי אחרים.", "visibility_modal.helper.unlisted_quoting": "כאשר אחרים מצטטים אותך, ההודעות שלהם יוסתרו גם מ\"נושאים חמים\".", "visibility_modal.instructions": "שליטה ביכולות השימוש של קהל הקוראות בהודעה. תוכלו גם לבחור את ברירות המחדל לכל ההודעות העתידיות על ידי ניווט אל העדפות > ברירות מחדל בפרסום.", - "visibility_modal.privacy_label": "נראות", + "visibility_modal.privacy_label": "חשיפה", "visibility_modal.quote_followers": "לעוקבים בלבד", "visibility_modal.quote_label": "למי מותר לצטט", "visibility_modal.quote_nobody": "רק אני", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index bd20756a7895cc..91caa13f5b3323 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -421,7 +421,6 @@ "status.pin": "Prikvači na profil", "status.read_more": "Pročitajte više", "status.reblog": "Boostaj", - "status.reblog_private": "Boostaj s izvornom vidljivošću", "status.reblogged_by": "{name} je boostao/la", "status.reblogs.empty": "Nitko još nije boostao ovaj toot. Kada netko to učini, ovdje će biti prikazani.", "status.redraft": "Izbriši i ponovno uredi", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 9dda30db2c875c..d49725515b83e5 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -745,7 +745,6 @@ "privacy.quote.disabled": "{visibility}, idézés letiltva", "privacy.quote.limited": "{visibility}, idézés korlátozva", "privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírfolyamokban, hashtagekben, felfedezésben vagy a Mastodonos keresésben, még akkor sem, ha ezt az egész fiókra engedélyezted.", - "privacy.unlisted.long": "Kevesebb algoritmikus fanfár", "privacy.unlisted.short": "Csendes nyilvános", "privacy_policy.last_updated": "Utoljára frissítve: {date}", "privacy_policy.title": "Adatvédelmi szabályzat", @@ -909,7 +908,6 @@ "status.read_more": "Bővebben", "status.reblog": "Megtolás", "status.reblog_or_quote": "Megtolás vagy idézés", - "status.reblog_private": "Megtolás az eredeti közönségnek", "status.reblogged_by": "{name} megtolta", "status.reblogs": "{count, plural, one {megtolás} other {megtolás}}", "status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.", @@ -987,7 +985,6 @@ "visibility_modal.button_title": "Láthatóság beállítása", "visibility_modal.header": "Láthatóság és interakció", "visibility_modal.helper.direct_quoting": "A Mastodonon készült privát említéseket mások nem idézhetik.", - "visibility_modal.helper.privacy_editing": "A közzétett bejegyzések láthatósága nem módosítható.", "visibility_modal.helper.private_quoting": "A Mastodonon írt, csak követőknek szóló bejegyzéseket mások nem idézhetik.", "visibility_modal.helper.unlisted_quoting": "Amikor idéznek tőled, a bejegyzésük rejtve lesz a felkapott bejegyzések hírfolyamain is.", "visibility_modal.instructions": "Állítsd be, hogy ki léphet interakcióba a bejegyzéssel. Az összes bejegyzésre is alkalmazhatod, ha a Beállítások > Bejegyzések alapértelmezései lapra navigálsz.", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 75f1c69bb9a473..ad0cd8f7b10437 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -412,7 +412,6 @@ "status.pin": "Ամրացնել անձնական էջում", "status.read_more": "Կարդալ աւելին", "status.reblog": "Տարածել", - "status.reblog_private": "Տարածել սեփական լսարանին", "status.reblogged_by": "{name} տարածել է", "status.reblogs.empty": "Այս գրառումը ոչ մէկ դեռ չի տարածել։ Տարածողները կերեւան այստեղ, երբ տարածեն։", "status.redraft": "Ջնջել եւ վերակազմել", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index e667ec29060efd..8f774b2a19e928 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -744,7 +744,6 @@ "privacy.quote.disabled": "{visibility}, citation disactivate", "privacy.quote.limited": "{visibility}, citation limitate", "privacy.unlisted.additional": "Isto es exactemente como public, excepte que le message non apparera in fluxos in directo, in hashtags, in Explorar, o in le recerca de Mastodon, mesmo si tu ha optate pro render tote le conto discoperibile.", - "privacy.unlisted.long": "Minus fanfares algorithmic", "privacy.unlisted.short": "Public, non listate", "privacy_policy.last_updated": "Ultime actualisation {date}", "privacy_policy.title": "Politica de confidentialitate", @@ -903,7 +902,6 @@ "status.quotes": "{count, plural, one {citation} other {citationes}}", "status.read_more": "Leger plus", "status.reblog": "Impulsar", - "status.reblog_private": "Impulsar con visibilitate original", "status.reblogged_by": "Impulsate per {name}", "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Necuno ha ancora impulsate iste message. Quando alcuno lo face, le impulsos apparera hic.", @@ -980,7 +978,6 @@ "visibility_modal.button_title": "Definir visibilitate", "visibility_modal.header": "Visibilitate e interaction", "visibility_modal.helper.direct_quoting": "Le mentiones private scribite sur Mastodon non pote esser citate per alteres.", - "visibility_modal.helper.privacy_editing": "Le messages ja publicate non pote cambiar de visibilitate.", "visibility_modal.helper.private_quoting": "Le messages limitate al sequitores scribite sur Mastodon non pote esser citate per alteres.", "visibility_modal.helper.unlisted_quoting": "Quando un persona te cita, su message essera tamben celate del chronologia \"In tendentia\".", "visibility_modal.quote_followers": "Solmente sequitores", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index f12e1f6e6ddb51..1d0acf41fef9df 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -544,7 +544,6 @@ "status.pin": "Sematkan di profil", "status.read_more": "Baca lebih banyak", "status.reblog": "Boost", - "status.reblog_private": "Boost dengan visibilitas asli", "status.reblogged_by": "{name} mem-boost", "status.reblogs.empty": "Belum ada yang mem-boost toot ini. Ketika seseorang melakukannya, mereka akan muncul di sini.", "status.redraft": "Hapus & draf ulang", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index e0c517516602e2..06396e697b47a4 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -509,7 +509,6 @@ "privacy.public.long": "Quicunc in e ex Mastodon", "privacy.public.short": "Public", "privacy.unlisted.additional": "It acte just quam public, except que li posta ne va aparir in tendentie o hashtags, explorar, o sercha de Mastodon, mem si tu ha optet por les sur tui tot conto.", - "privacy.unlisted.long": "Minu fanfare algoritmic", "privacy.unlisted.short": "Quiet public", "privacy_policy.last_updated": "Ultimmen actualisat ye {date}", "privacy_policy.title": "Politica pri Privatie", @@ -635,7 +634,6 @@ "status.pin": "Pinglar sur profil", "status.read_more": "Leer plu", "status.reblog": "Boostar", - "status.reblog_private": "Boostar con li original visibilitá", "status.reblogged_by": "{name} boostat", "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "Ancor nequi ha boostat ti-ci posta. Quande alqui fa it, ilu va aparir ci.", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index deb1cab89a4448..c1fad7bfc4bfbd 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -677,7 +677,6 @@ "privacy.public.long": "Ulu de e ne de Mastodon", "privacy.public.short": "Publike", "privacy.unlisted.additional": "Co kondutas exakte kam publika, ecepte la posto ne aparos en nuna flui o gretvorti, exploro, o sercho di Mastodon, mem se vu esas volunta totkonte.", - "privacy.unlisted.long": "Min multa algoritmoridikuli", "privacy.unlisted.short": "Deslauta publiko", "privacy_policy.last_updated": "Antea novajo ye {date}", "privacy_policy.title": "Privatesguidilo", @@ -817,7 +816,6 @@ "status.pin": "Pinglagez che profilo", "status.read_more": "Lektez plu", "status.reblog": "Repetez", - "status.reblog_private": "Repetez kun originala videbleso", "status.reblogged_by": "{name} repetis", "status.reblogs": "{count, plural, one {repeto} other {repeti}}", "status.reblogs.empty": "Nulu ja repetis ca posto. Kande ulu facas lo, lu montresos hike.", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 2f583f3334d698..49a70456583a7f 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, tilvitnanir eru óvirkar", "privacy.quote.limited": "{visibility}, tilvitnanir eru takmarkaðar", "privacy.unlisted.additional": "Þetta hegðar sér eins og opinber færsla, fyrir utan að færslan birtist ekki í beinum streymum eða myllumerkjum, né heldur í Mastodon-leitum jafnvel þótt þú hafir valið að falla undir slíkt í notandasniðinu þínu.", - "privacy.unlisted.long": "Minni stælar í reikniritum", + "privacy.unlisted.long": "Falið frá leitarniðurstöðum Mastodon, vinsældalistum og opinberum tímalínum", "privacy.unlisted.short": "Hljóðlátt opinbert", "privacy_policy.last_updated": "Síðast uppfært {date}", "privacy_policy.title": "Persónuverndarstefna", @@ -913,7 +913,7 @@ "status.read_more": "Lesa meira", "status.reblog": "Endurbirting", "status.reblog_or_quote": "Endurbirta eða vitna í færslu", - "status.reblog_private": "Endurbirta til upphaflegra lesenda", + "status.reblog_private": "Deildu aftur með þeim sem fylgjast með þér", "status.reblogged_by": "{name} endurbirti", "status.reblogs": "{count, plural, one {endurbirting} other {endurbirtingar}}", "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Stilla sýnileika", "visibility_modal.header": "Sýnileiki og gagnvirkni", "visibility_modal.helper.direct_quoting": "Ekki er hægt að vitna í einkaspjall sem skrifað er á Mastodon.", - "visibility_modal.helper.privacy_editing": "Ekki er hægt að breyta sýnileika birtra færslna.", + "visibility_modal.helper.privacy_editing": "Ekki er hægt að breyta sýnileika færslu eftir að hún hefur verið birt.", "visibility_modal.helper.privacy_private_self_quote": "Tilvitnanir í sjálfan sig úr einkaspjallfærslum er ekki hægt að gera opinberar.", "visibility_modal.helper.private_quoting": "Ekki er hægt að vitna í færslur einungis til fylgjenda sem skrifaðar eru á Mastodon.", "visibility_modal.helper.unlisted_quoting": "Þegar fólk vitnar í þig verða færslurnar þeirr einnig faldar á vinsældatímalínum.", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index d1789693a1560a..964f7218954b98 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, citazioni disabilitate", "privacy.quote.limited": "{visibility}, citazioni limitate", "privacy.unlisted.additional": "Si comporta esattamente come pubblico, tranne per il fatto che il post non verrà visualizzato nei feed live o negli hashtag, nell'esplorazione o nella ricerca Mastodon, anche se hai attivato l'attivazione a livello di account.", - "privacy.unlisted.long": "Meno fanfare algoritmiche", + "privacy.unlisted.long": "Nascosto dai risultati di ricerca di Mastodon, dalle tendenze e dalle timeline pubbliche", "privacy.unlisted.short": "Pubblico silenzioso", "privacy_policy.last_updated": "Ultimo aggiornamento {date}", "privacy_policy.title": "Politica sulla Privacy", @@ -768,6 +768,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "oggi", + "remove_quote_hint.button_label": "Ho capito", + "remove_quote_hint.message": "Puoi farlo dal menu delle opzioni {icon}.", + "remove_quote_hint.title": "Vuoi rimuovere il tuo post citato?", "reply_indicator.attachments": "{count, plural, one {# allegato} other {# allegati}}", "reply_indicator.cancel": "Annulla", "reply_indicator.poll": "Sondaggio", @@ -863,6 +866,7 @@ "status.block": "Blocca @{name}", "status.bookmark": "Aggiungi segnalibro", "status.cancel_reblog_private": "Annulla reblog", + "status.cannot_quote": "Le citazioni sono disabilitate su questo post", "status.cannot_reblog": "Questo post non può essere condiviso", "status.context.load_new_replies": "Nuove risposte disponibili", "status.context.loading": "Controllo per altre risposte", @@ -909,7 +913,7 @@ "status.read_more": "Leggi di più", "status.reblog": "Reblog", "status.reblog_or_quote": "Condividi o cita", - "status.reblog_private": "Reblog con visibilità originale", + "status.reblog_private": "Condividi di nuovo con i tuoi seguaci", "status.reblogged_by": "Rebloggato da {name}", "status.reblogs": "{count, plural, one {boost} other {boost}}", "status.reblogs.empty": "Ancora nessuno ha rebloggato questo post. Quando qualcuno lo farà, apparirà qui.", @@ -987,7 +991,8 @@ "visibility_modal.button_title": "Imposta la visibilità", "visibility_modal.header": "Visibilità e interazione", "visibility_modal.helper.direct_quoting": "Le menzioni private scritte su Mastodon non possono essere citate da altri.", - "visibility_modal.helper.privacy_editing": "La visibilità dei post pubblicati non può essere modificata.", + "visibility_modal.helper.privacy_editing": "La visibilità non può essere modificata dopo la pubblicazione di un post.", + "visibility_modal.helper.privacy_private_self_quote": "Le autocitazioni di post privati ​​non possono essere rese pubbliche.", "visibility_modal.helper.private_quoting": "I post scritti e riservati ai seguaci su Mastodon non possono essere citati da altri.", "visibility_modal.helper.unlisted_quoting": "Quando le persone ti citano, il loro post verrà nascosto anche dalle timeline di tendenza.", "visibility_modal.instructions": "Controlla chi può interagire con questo post. Puoi anche applicare le impostazioni a tutti i post futuri andando su Preferenze > Impostazioni predefinite per i post.", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index b7af03c1099952..5451c435dd7ce4 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -728,7 +728,6 @@ "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": "プライバシーポリシー", @@ -870,7 +869,6 @@ "status.quote_error.filtered": "あなたのフィルター設定によって非表示になっています", "status.read_more": "もっと見る", "status.reblog": "ブースト", - "status.reblog_private": "ブースト", "status.reblogged_by": "{name}さんがブースト", "status.reblogs": "{count, plural, one {ブースト} other {ブースト}}", "status.reblogs.empty": "まだ誰もブーストしていません。ブーストされるとここに表示されます。", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 9831d8b1a977d8..ea7375fd00be70 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -197,7 +197,6 @@ "status.open": "ამ სტატუსის გაფართოება", "status.pin": "აპინე პროფილზე", "status.reblog": "ბუსტი", - "status.reblog_private": "დაიბუსტოს საწყის აუდიტორიაზე", "status.reblogged_by": "{name} დაიბუსტა", "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "გაუქმდეს და გადანაწილდეს", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 4f6a72b52c9b5b..a22643717bf207 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -25,6 +25,9 @@ "account.edit_profile": "Ẓreg amaɣnu", "account.enable_notifications": "Azen-iyi-d ilɣa mi ara d-isuffeɣ @{name}", "account.endorse": "Welleh fell-as deg umaɣnu-inek", + "account.familiar_followers_many": "Yeṭṭafaṛ-it {name1} d {name2}, akked {othersCount, plural, one {yiwen nniḍen i tessneḍ} other {# nniḍen i tessneḍ}}", + "account.familiar_followers_one": "Yeṭṭafar-it {name1}", + "account.familiar_followers_two": "Yeṭṭafar-it {name1} akked {name2}", "account.featured.accounts": "Imeɣna", "account.featured.hashtags": "Ihacṭagen", "account.featured_tags.last_status_at": "Tasuffeɣt taneggarut ass n {date}", @@ -186,6 +189,7 @@ "confirmations.redraft.confirm": "Kkes sakin ɛiwed tira", "confirmations.remove_from_followers.confirm": "Kkes aneḍfar", "confirmations.revoke_quote.confirm": "Kkes tasuffeɣt", + "confirmations.revoke_quote.title": "Kkes tasuffeɣt?", "confirmations.unfollow.confirm": "Ur ḍḍafaṛ ara", "confirmations.unfollow.message": "Tetḥeqqeḍ belli tebɣiḍ ur teṭafaṛeḍ ara {name}?", "content_warning.hide": "Ffer tasuffeɣt", @@ -336,6 +340,7 @@ "interaction_modal.on_another_server": "Deg uqeddac nniḍen", "interaction_modal.on_this_server": "Deg uqeddac-ayi", "interaction_modal.title.follow": "Ḍfer {name}", + "interaction_modal.title.reblog": "Zuzer tsuffeɣt n {name}", "interaction_modal.title.reply": "Tiririt i tsuffeɣt n {name}", "interaction_modal.username_prompt": "Amedya: {example}", "intervals.full.days": "{number, plural, one {# wass} other {# wussan}}", @@ -428,6 +433,7 @@ "navigation_bar.follow_requests": "Isuturen n teḍfeṛt", "navigation_bar.followed_tags": "Ihacṭagen yettwaḍfaren", "navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ", + "navigation_bar.import_export": "Taktert d usifeḍ", "navigation_bar.lists": "Tibdarin", "navigation_bar.live_feed_local": "Asuddem usrid (adigan)", "navigation_bar.live_feed_public": "Asuddem usrid (azayaz)", @@ -437,6 +443,7 @@ "navigation_bar.mutes": "Iseqdacen yettwasusmen", "navigation_bar.opened_in_classic_interface": "Tisuffaɣ, imiḍanen akked isebtar-nniḍen igejdanen ldin-d s wudem amezwer deg ugrudem web aklasiki.", "navigation_bar.preferences": "Imenyafen", + "navigation_bar.privacy_and_reach": "Tabḍnit akked wagwaḍ", "navigation_bar.search": "Nadi", "navigation_bar.search_trends": "Anadi / Anezzuɣ", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", @@ -542,7 +549,6 @@ "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 yiwarzimen", "privacy.unlisted.short": "Azayez asusam", "privacy_policy.last_updated": "Aleqqem aneggaru {date}", "privacy_policy.title": "Tasertit tabaḍnit", @@ -557,6 +563,7 @@ "relative_time.minutes": "{number}tis", "relative_time.seconds": "{number}tas", "relative_time.today": "ass-a", + "reply_indicator.attachments": "{count, plural, one {# n umedday} other {# n imeddayen}}", "reply_indicator.cancel": "Sefsex", "reply_indicator.poll": "Afmiḍi", "report.block": "Sewḥel", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index be0025fdb2fba1..b04790d9a1200f 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -322,7 +322,6 @@ "status.pin": "Профильде жабыстыру", "status.read_more": "Әрі қарай", "status.reblog": "Бөлісу", - "status.reblog_private": "Негізгі аудиторияға бөлісу", "status.reblogged_by": "{name} бөлісті", "status.reblogs.empty": "Бұл жазбаны әлі ешкім бөліспеді. Біреу бөліскен кезде осында көрінеді.", "status.redraft": "Өшіру & қайта қарастыру", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 0c5a9432a422e0..2fedf2b389b1b3 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, 인용 비활성화", "privacy.quote.limited": "{visibility}, 제한된 인용", "privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.", - "privacy.unlisted.long": "더 적은 알고리즘 팡파르", + "privacy.unlisted.long": "마스토돈 검색결과, 유행, 공개 타임라인에서 숨기기", "privacy.unlisted.short": "조용한 공개", "privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨", "privacy_policy.title": "개인정보처리방침", @@ -768,6 +768,9 @@ "relative_time.minutes": "{number}분 전", "relative_time.seconds": "{number}초 전", "relative_time.today": "오늘", + "remove_quote_hint.button_label": "알겠습니다", + "remove_quote_hint.message": "{icon} 메뉴에서 할 수 있습니다.", + "remove_quote_hint.title": "인용된 나의 게시물을 지우고 싶나요?", "reply_indicator.attachments": "{count, plural, other {#}} 개의 첨부파일", "reply_indicator.cancel": "취소", "reply_indicator.poll": "투표", @@ -863,6 +866,7 @@ "status.block": "@{name} 차단", "status.bookmark": "북마크", "status.cancel_reblog_private": "부스트 취소", + "status.cannot_quote": "이 게시물은 인용이 비활성화되어 있습니다", "status.cannot_reblog": "이 게시물은 부스트 할 수 없습니다", "status.context.load_new_replies": "새 답글 보기", "status.context.loading": "추가 답글 확인중", @@ -907,7 +911,7 @@ "status.read_more": "더 보기", "status.reblog": "부스트", "status.reblog_or_quote": "부스트 또는 인용", - "status.reblog_private": "원래의 수신자들에게 부스트", + "status.reblog_private": "팔로워들에게 다시 공유", "status.reblogged_by": "{name} 님이 부스트했습니다", "status.reblogs": "{count, plural, other {부스트}}", "status.reblogs.empty": "아직 아무도 이 게시물을 부스트하지 않았습니다. 부스트 한 사람들이 여기에 표시 됩니다.", @@ -984,9 +988,10 @@ "video.volume_up": "음량 증가", "visibility_modal.button_title": "공개범위 설정", "visibility_modal.header": "공개범위와 반응", - "visibility_modal.helper.privacy_editing": "발행된 게시물은 공개설정을 바꿀 수 없습니다.", "visibility_modal.helper.unlisted_quoting": "사람들이 나를 인용한 경우 그 게시물 또한 유행에서 제외됩니다.", + "visibility_modal.privacy_label": "공개 범위", "visibility_modal.quote_followers": "팔로워만", + "visibility_modal.quote_label": "인용할 수 있는 사람", "visibility_modal.quote_nobody": "나에게만", "visibility_modal.quote_public": "아무나", "visibility_modal.save": "저장" diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index f628721f479ff6..3bd8a72d5a4a5a 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -505,7 +505,6 @@ "status.pin": "Li ser profîlê derzî bike", "status.read_more": "Bêtir bixwîne", "status.reblog": "Bilind bike", - "status.reblog_private": "Bi dîtina resen bilind bike", "status.reblogged_by": "{name} bilind kir", "status.reblogs.empty": "Kesekî hin ev şandî bilind nekiriye. Gava kesek bilind bike, ew ên li vir werin xuyakirin.", "status.redraft": "Jê bibe & ji nû ve reşnivîs bike", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index 9b1d33235fb47a..b1116a7a317c81 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -286,7 +286,6 @@ "status.pin": "Fastya yn profil", "status.read_more": "Redya moy", "status.reblog": "Kenertha", - "status.reblog_private": "Kenertha gans gweladewder derowel", "status.reblogged_by": "{name} a generthas", "status.reblogs.empty": "Ny wrug nagonan kenertha'n post ma hwath. Pan wra, hynn a wra omdhiskwedhes omma.", "status.redraft": "Dilea ha daskynskrifa", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index 7c6ce24a8ff30f..4f2660b93ac47d 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -603,7 +603,6 @@ "privacy.public.long": "Todos en i afuera de Mastodon", "privacy.public.short": "Publiko", "privacy.unlisted.additional": "Esto funksyona exaktamente komo publiko, eksepto ke la publikasyon no aparesera en linyas publikas o etiketas, la eksplorasyon o bushkedas de Mastodon, inkluzo si kapasites esto para tu kuento.", - "privacy.unlisted.long": "Vizivle para todos, ama no en trendes, etiketas o linyas publikas", "privacy.unlisted.short": "Publiko i silensyozo", "privacy_policy.last_updated": "Ultima aktualizasyon: {date}", "privacy_policy.title": "Politika de privasita", @@ -734,7 +733,6 @@ "status.pin": "Fiksa en profil", "status.read_more": "Melda mas", "status.reblog": "Repartaja", - "status.reblog_private": "Repartaja kon vizibilita orijinala", "status.reblogged_by": "{name} repartajo", "status.reblogs.empty": "Ainda nadie tiene repartajado esta publikasyon. Kuando algien lo aga, se amostrara aki.", "status.redraft": "Efasa i eskrive de muevo", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 6060cfeda3e037..67b3d046a93c33 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -682,7 +682,6 @@ "privacy.public.long": "Bet kas iš Mastodon ir ne Mastodon", "privacy.public.short": "Vieša", "privacy.unlisted.additional": "Tai veikia lygiai taip pat, kaip ir vieša, tik įrašas nebus rodomas tiesioginiuose srautuose, saitažodžiose, naršyme ar Mastodon paieškoje, net jei esi įtraukęs (-usi) visą paskyrą.", - "privacy.unlisted.long": "Mažiau algoritminių fanfarų", "privacy.unlisted.short": "Tyliai vieša", "privacy_policy.last_updated": "Paskutinį kartą atnaujinta {date}", "privacy_policy.title": "Privatumo politika", @@ -823,7 +822,6 @@ "status.pin": "Prisegti prie profilio", "status.read_more": "Skaityti daugiau", "status.reblog": "Pakelti", - "status.reblog_private": "Pakelti su originaliu matomumu", "status.reblogged_by": "{name} pakėlė", "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", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 445ba7cae3fc39..2105346648aec5 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -630,7 +630,6 @@ "privacy.public.long": "Jebkurš Mastodon un ārpus tā", "privacy.public.short": "Redzams visiem", "privacy.unlisted.additional": "Šis uzvedas tieši kā publisks, izņemot to, ka ieraksts neparādīsies tiešraides barotnēs vai tēmturos, izpētē vai Mastodon meklēšanā, pat ja esi to norādījis visa konta ietvaros.", - "privacy.unlisted.long": "Mazāk algoritmisku fanfaru", "privacy_policy.last_updated": "Pēdējo reizi atjaunināta {date}", "privacy_policy.title": "Privātuma politika", "recommended": "Ieteicams", @@ -762,7 +761,6 @@ "status.pin": "Piespraust profilam", "status.read_more": "Lasīt vairāk", "status.reblog": "Pastiprināt", - "status.reblog_private": "Pastiprināt ar sākotnējo redzamību", "status.reblogged_by": "{name} pastiprināja", "status.reblogs": "{count, plural, zero {pastiprinājumu} one {pastiprinājums} other {pastiprinājumi}}", "status.reblogs.empty": "Neviens vēl nav pastiprinājis šo ierakstu. Kad kāds to izdarīs, šeit tiks parādīti lietotāji.", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 520990fbe3b2b3..e7b7ca9373b93b 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -643,7 +643,6 @@ "status.pin": "Semat di profil", "status.read_more": "Baca lagi", "status.reblog": "Galakkan", - "status.reblog_private": "Galakkan dengan ketampakan asal", "status.reblogged_by": "{name} galakkan", "status.reblogs": "{count, plural, other {galakan}}", "status.reblogs.empty": "Tiada sesiapa yang galakkan hantaran ini. Apabila ada yang galakkan, hantaran akan muncul di sini.", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 0f99734aa06937..4a3749e42a7fbf 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -530,7 +530,6 @@ "status.pin": "ပရိုဖိုင်တွင် ပင်ထားပါ", "status.read_more": "ပိုမိုဖတ်ရှုရန်", "status.reblog": "Boost", - "status.reblog_private": "မူရင်းပုံစံဖြင့် Boost လုပ်ပါ", "status.reblogged_by": "{name} က Boost လုပ်ထားသည်", "status.reblogs.empty": "ဤပို့စ်ကို မည်သူမှ Boost လုပ်ထားခြင်းမရှိသေးပါ။ တစ်ယောက်ယောက်မှ Boost လုပ်ပါက ဤနေရာတွင်ပေါ်လာပါမည်။", "status.redraft": "ဖျက်ပြီး ပြန်ရေးပါ", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index e04c7434b345a2..fb5099018dc694 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -1,6 +1,6 @@ { "about.blocks": "Siū 管制 ê 服侍器", - "about.contact": "聯絡lâng:", + "about.contact": "聯絡方法:", "about.default_locale": "預設", "about.disclaimer": "Mastodon是自由、開放原始碼ê軟體,mā是Mastodon gGmbH ê商標。", "about.domain_blocks.no_reason_available": "原因bē-tàng用", @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility},停止引用PO文", "privacy.quote.limited": "{visibility},PO文引用受限", "privacy.unlisted.additional": "Tse ê行為kap公開相siâng,m̄-koh 就算lí佇口座設定phah開有關ê公開功能,PO文mā bē顯示佇即時ê動態、hashtag、探索kap Mastodon ê搜尋結果。", - "privacy.unlisted.long": "減少演算法ê宣傳", + "privacy.unlisted.long": "Mài顯示tī Mastodon ê tshiau-tshuē結果、趨勢kap公共ê時間線。", "privacy.unlisted.short": "恬靜公開", "privacy_policy.last_updated": "上尾更新tī:{date}", "privacy_policy.title": "隱私權政策", @@ -768,6 +768,9 @@ "relative_time.minutes": "{number} 分進前", "relative_time.seconds": "{number} 秒進前", "relative_time.today": "今á日", + "remove_quote_hint.button_label": "知ah", + "remove_quote_hint.message": "Lí ē當tuì {icon} 選項ê目錄完成tsit ê動作", + "remove_quote_hint.title": "Kám想beh thâi掉lí受引用ê PO文?", "reply_indicator.attachments": "{count, plural, other {# ê附件}}", "reply_indicator.cancel": "取消", "reply_indicator.poll": "投票", @@ -863,6 +866,7 @@ "status.block": "封鎖 @{name}", "status.bookmark": "冊籤", "status.cancel_reblog_private": "取消轉送", + "status.cannot_quote": "Tsit篇PO文停止使用引用功能ah", "status.cannot_reblog": "Tsit篇PO文bē當轉送", "status.context.load_new_replies": "有新ê回應", "status.context.loading": "Leh檢查其他ê回應", @@ -894,8 +898,8 @@ "status.quote": "引用", "status.quote.cancel": "取消引用", "status.quote_error.filtered": "Lí所設定ê過濾器kā tse khàm起來", - "status.quote_error.not_available": "鋪文bē當看", - "status.quote_error.pending_approval": "鋪文當咧送", + "status.quote_error.not_available": "PO文bē當看", + "status.quote_error.pending_approval": "PO文當咧送", "status.quote_error.pending_approval_popout.body": "因為無kâng ê服侍器有無kâng ê協定,佇聯邦宇宙分享ê引文可能愛開時間來顯示。", "status.quote_error.pending_approval_popout.title": "Leh送引文?請sió等leh", "status.quote_followers_only": "Kan-ta tuè我ê ē當引用PO文", @@ -908,7 +912,7 @@ "status.read_more": "讀詳細", "status.reblog": "轉送", "status.reblog_or_quote": "轉送á是引用", - "status.reblog_private": "照原PO ê通看見ê範圍轉送", + "status.reblog_private": "Koh再hām跟tuè ê分享", "status.reblogged_by": "{name} kā轉送ah", "status.reblogs": "{count, plural, other {# ê 轉送}}", "status.reblogs.empty": "Iáu無lâng轉送tsit篇PO文。Nā是有lâng轉送,ē佇tsia顯示。", @@ -985,10 +989,14 @@ "visibility_modal.button_title": "設定通看ê程度", "visibility_modal.header": "通看ê程度kap互動", "visibility_modal.helper.direct_quoting": "Mastodon頂發布ê私人提起bē當hōo別lâng引用。", - "visibility_modal.helper.privacy_editing": "公開ê PO文bē當改in通看ê程度。", + "visibility_modal.helper.privacy_editing": "Po文發布了後,bē當改通看ê程度。", + "visibility_modal.helper.privacy_private_self_quote": "家kī引用ê私人PO文bē當改公開。", "visibility_modal.helper.private_quoting": "Mastodon頂發布ê kan-ta跟tuè ê通看ê PO文,bē當hōo別lâng引用。", "visibility_modal.helper.unlisted_quoting": "若別lâng引用lí,in ê PO文mā ē tuì趨勢時間線隱藏。", + "visibility_modal.instructions": "控制ē當hām tsit篇PO文互動ê lâng。Lí mā ē當用 偏愛ê設定 > PO文預設,kā設定作用kàu ta̍k篇未來ê PO文。", + "visibility_modal.privacy_label": "通看見ê程度", "visibility_modal.quote_followers": "Kan-ta hōo跟tuè ê lâng", + "visibility_modal.quote_label": "Ē當引用ê lâng", "visibility_modal.quote_nobody": "Kan-ta我", "visibility_modal.quote_public": "Ta̍k ê lâng", "visibility_modal.save": "儲存" diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 55c2b2423dfd17..3d2c603d57a0c0 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, citeren uitgeschakeld", "privacy.quote.limited": "{visibility}, citeren beperkt", "privacy.unlisted.additional": "Dit is vergelijkbaar met openbaar, behalve dat het bericht niet op openbare tijdlijnen, onder hashtags, verkennen of zoeken verschijnt, zelfs als je je account daarvoor hebt ingesteld.", - "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen", + "privacy.unlisted.long": "Niet zichtbaar in de zoekresultaten van Mastodon, onder trends, hashtags en op openbare tijdlijnen", "privacy.unlisted.short": "Minder openbaar", "privacy_policy.last_updated": "Laatst bijgewerkt op {date}", "privacy_policy.title": "Privacybeleid", @@ -913,7 +913,7 @@ "status.read_more": "Meer lezen", "status.reblog": "Boosten", "status.reblog_or_quote": "Boosten of citeren", - "status.reblog_private": "Boost naar oorspronkelijke ontvangers", + "status.reblog_private": "Opnieuw met je volgers delen", "status.reblogged_by": "{name} boostte", "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Privacy instellen", "visibility_modal.header": "Zichtbaarheid en interactie", "visibility_modal.helper.direct_quoting": "Privéberichten afkomstig van Mastodon kunnen niet door anderen worden geciteerd.", - "visibility_modal.helper.privacy_editing": "Het is niet mogelijk om de zichtbaarheid van geplaatste berichten te wijzigen.", + "visibility_modal.helper.privacy_editing": "De zichtbaarheid kan niet meer worden gewijzigd nadat een bericht is gepubliceerd.", "visibility_modal.helper.privacy_private_self_quote": "Jouw eigen citaten van berichten aan alleen volgers kunnen niet openbaar worden gemaakt.", "visibility_modal.helper.private_quoting": "Berichten aan alleen volgers afkomstig van Mastodon kunnen niet door anderen worden geciteerd.", "visibility_modal.helper.unlisted_quoting": "Wanneer mensen jou citeren, verschijnt hun bericht ook niet onder trends.", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 7b44a3a99617cb..89fc2918949fd5 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -744,7 +744,6 @@ "privacy.quote.disabled": "{visibility}, ingen kan sitera", "privacy.quote.limited": "{visibility}, avgrensa sitat", "privacy.unlisted.additional": "Dette er akkurat som offentleg, bortsett frå at innlegga ikkje dukkar opp i direktestraumar eller merkelappar, i oppdagingar eller Mastodon-søk, sjølv om du har sagt ja til at kontoen skal vera synleg.", - "privacy.unlisted.long": "Færre algoritmiske fanfarar", "privacy.unlisted.short": "Stille offentleg", "privacy_policy.last_updated": "Sist oppdatert {date}", "privacy_policy.title": "Personvernsreglar", @@ -903,7 +902,6 @@ "status.quotes": "{count, plural, one {sitat} other {sitat}}", "status.read_more": "Les meir", "status.reblog": "Framhev", - "status.reblog_private": "Framhev til dei originale mottakarane", "status.reblogged_by": "{name} framheva", "status.reblogs": "{count, plural, one {framheving} other {framhevingar}}", "status.reblogs.empty": "Ingen har framheva dette tutet enno. Om nokon gjer, så dukkar det opp her.", @@ -980,7 +978,6 @@ "visibility_modal.button_title": "Vel vising", "visibility_modal.header": "Vising og samhandling", "visibility_modal.helper.direct_quoting": "Private omtalar som er skrivne på Mastodon kan ikkje siterast av andre.", - "visibility_modal.helper.privacy_editing": "Du kan ikkje endra vising på publiserte innlegg.", "visibility_modal.helper.private_quoting": "Innlegg som er skrivne på Mastodon og berre for fylgjarar kan ikkje siterast av andre.", "visibility_modal.helper.unlisted_quoting": "Når folk siterer deg, vil innlegget deira ikkje syna på populære tidsliner.", "visibility_modal.quote_followers": "Berre fylgjarar", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index f96377caa288d6..448dbb8df9affe 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -707,7 +707,6 @@ "privacy.private.short": "Følgere", "privacy.public.long": "Alle på og utenfor Mastodon", "privacy.public.short": "Offentlig", - "privacy.unlisted.long": "Færre algoritmiske fanfarer", "privacy.unlisted.short": "Stille offentlig", "privacy_policy.last_updated": "Sist oppdatert {date}", "privacy_policy.title": "Personvernregler", @@ -841,7 +840,6 @@ "status.quote_error.filtered": "Skjult på grunn av et av filterne dine", "status.read_more": "Les mer", "status.reblog": "Fremhev", - "status.reblog_private": "Fremhev til det opprinnelige publikummet", "status.reblogged_by": "Fremhevet av {name}", "status.reblogs.empty": "Ingen har fremhevet dette innlegget enda. Når noen gjør det, vil de dukke opp her.", "status.redraft": "Slett og skriv på nytt", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 9267ca69efc0a9..7ae918a676728e 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -482,7 +482,6 @@ "status.pin": "Penjar al perfil", "status.read_more": "Ne legir mai", "status.reblog": "Partejar", - "status.reblog_private": "Partejar a l’audiéncia d’origina", "status.reblogged_by": "{name} a partejat", "status.reblogs.empty": "Degun a pas encara partejat aqueste tut. Quand qualqu’un o farà, apareisserà aquí.", "status.redraft": "Escafar e tornar formular", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 26417dc0eb8439..267a1343e017aa 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -292,6 +292,7 @@ "domain_pill.your_handle": "Twoja nazwa:", "domain_pill.your_server": "Twój cyfrowy dom wszystkich twoich wpisów. Nie podoba ci się ten serwer? Przenieś się na inny w dowolnym momencie i zabierz ze sobą swoich obserwujących.", "domain_pill.your_username": "Twój unikalny identyfikator na tym serwerze. Możliwe jest znalezienie osób z tą samą nazwą na innych serwerach.", + "dropdown.empty": "Wybierz opcję", "embed.instructions": "Umieść ten wpis na swojej stronie, kopiując poniższy kod.", "embed.preview": "Tak to będzie wyglądać:", "emoji_button.activity": "Aktywność", @@ -490,6 +491,7 @@ "keyboard_shortcuts.open_media": "Otwórz multimedia", "keyboard_shortcuts.pinned": "Otwórz listę przypiętych wpisów", "keyboard_shortcuts.profile": "Otwórz profil", + "keyboard_shortcuts.quote": "Cytuj post", "keyboard_shortcuts.reply": "Skomentuj", "keyboard_shortcuts.requests": "Otwórz listę próśb o obserwowanie", "keyboard_shortcuts.search": "Aktywuj pole wyszukiwania", @@ -618,6 +620,7 @@ "notification.moderation_warning.action_suspend": "Twoje konto zostało zawieszone.", "notification.own_poll": "Twoja ankieta została zakończona", "notification.poll": "Zakończyła się ankieta, w której głosowano", + "notification.quoted_update": "{name} edytował post, który cytowałeś", "notification.reblog": "Twój post został podbity przez {name}", "notification.reblog.name_and_others_with_link": "{name} i {count, plural, one {# inna osoba} few {# inne osoby} other {# innych osób}} podbili twój wpis", "notification.relationships_severance_event": "Utracono połączenie z {name}", @@ -737,8 +740,10 @@ "privacy.private.short": "Obserwujący", "privacy.public.long": "Każdy na i poza Mastodon", "privacy.public.short": "Publiczny", + "privacy.quote.anyone": "{visibility}, każdy może cytować", + "privacy.quote.disabled": "{visibility}, cytaty wyłączone", + "privacy.quote.limited": "{visibility}, cytaty ograniczone", "privacy.unlisted.additional": "Dostępny podobnie jak wpis publiczny, ale nie będzie widoczny w aktualnościach, hashtagach ani wyszukiwarce Mastodon, nawet jeśli twoje konto jest widoczne.", - "privacy.unlisted.long": "Niewidoczny w aktualnościach", "privacy.unlisted.short": "Niewidoczny", "privacy_policy.last_updated": "Data ostatniej aktualizacji: {date}", "privacy_policy.title": "Polityka prywatności", @@ -757,6 +762,8 @@ "relative_time.minutes": "{number} min.", "relative_time.seconds": "{number} s.", "relative_time.today": "dzisiaj", + "remove_quote_hint.button_label": "Rozumiem", + "remove_quote_hint.title": "Czy chcesz usunąć swój cytowany post?", "reply_indicator.attachments": "{count, plural, one {# załącznik} few {# załączniki} many {# załączników} other {# załączników}}", "reply_indicator.cancel": "Anuluj", "reply_indicator.poll": "Ankieta", @@ -851,12 +858,14 @@ "status.block": "Zablokuj @{name}", "status.bookmark": "Dodaj zakładkę", "status.cancel_reblog_private": "Cofnij podbicie", + "status.cannot_quote": "Cytaty są wyłączone dla tego postu", "status.cannot_reblog": "Ten wpis nie może zostać podbity", "status.context.load_new_replies": "Dostępne są nowe odpowiedzi", "status.context.loading": "Sprawdzanie kolejnych odpowiedzi", "status.continued_thread": "Ciąg dalszy wątku", "status.copy": "Skopiuj odnośnik do wpisu", "status.delete": "Usuń", + "status.delete.success": "Post usunięty", "status.detailed_status": "Szczegółowy widok konwersacji", "status.direct": "Prywatna wzmianka @{name}", "status.direct_indicator": "Prywatna wzmianka", @@ -879,15 +888,20 @@ "status.mute_conversation": "Wycisz konwersację", "status.open": "Rozszerz ten wpis", "status.pin": "Przypnij do profilu", + "status.quote": "Cytuj", + "status.quote.cancel": "Anuluj cytat", "status.quote_error.filtered": "Ukryte z powodu jednego z Twoich filtrów", "status.quote_error.not_available": "Post niedostępny", "status.quote_error.pending_approval": "Post oczekujący", "status.quote_error.pending_approval_popout.body": "Oferty współdzielone przez Fediverse mogą wymagać czasu, ponieważ różne serwery mają różne protokoły.", "status.quote_error.pending_approval_popout.title": "Oczekujący cytat? Spokojnie, bądź cierpliwy :)", + "status.quote_followers_only": "Tylko obserwatorzy mogą cytować ten post", + "status.quote_policy_change": "Zmień kto może cytować", "status.quote_post_author": "Zacytowano post @{name}", + "status.quote_private": "Prywatne posty nie mogą być cytowane", "status.read_more": "Czytaj dalej", "status.reblog": "Podbij", - "status.reblog_private": "Podbij dla odbiorców oryginalnego wpisu", + "status.reblog_or_quote": "Podbij lub cytuj", "status.reblogged_by": "Podbite przez {name}", "status.reblogs": "{count, plural, one {podbicie} few {podbicia} other {podbić}}", "status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.", @@ -937,6 +951,7 @@ "upload_button.label": "Dodaj zdjęcia, filmy lub audio", "upload_error.limit": "Przekroczono limit plików do wysłania.", "upload_error.poll": "Dołączanie plików nie dozwolone z głosowaniami.", + "upload_error.quote": "Dołączanie plików nie jest pozwolone z cytatami.", "upload_form.drag_and_drop.instructions": "Naciśnij spację lub enter żeby podnieść załącznik. Podczas przeciągania, strzałki przesuwają załącznik. Naciśnięcie spacji lub entera upuści załącznik w nowym miejscu, a escape anuluje przesuwanie.", "upload_form.drag_and_drop.on_drag_cancel": "Przesuwanie anulowane. Załącznik {item} upuszczony.", "upload_form.drag_and_drop.on_drag_end": "Upuszczono załącznik {item}.", @@ -959,5 +974,13 @@ "video.skip_forward": "Skocz do przodu", "video.unmute": "Wyłącz wyciszenie", "video.volume_down": "Zmniejsz głośność", - "video.volume_up": "Zwiększ głośność" + "video.volume_up": "Zwiększ głośność", + "visibility_modal.button_title": "Ustaw widoczność", + "visibility_modal.header": "Widoczność i interakcja", + "visibility_modal.privacy_label": "Widoczność", + "visibility_modal.quote_followers": "Tylko dla obserwujących", + "visibility_modal.quote_label": "Kto może cytować", + "visibility_modal.quote_nobody": "Tylko ja", + "visibility_modal.quote_public": "Każdy", + "visibility_modal.save": "Zapisz" } diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 122550d6d3ceda..6ea189bbee7a3a 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -745,7 +745,6 @@ "privacy.quote.disabled": "{visibility} Citações desabilitadas", "privacy.quote.limited": "{visibility} Citações limitadas", "privacy.unlisted.additional": "Isso se comporta exatamente como público, exceto que a publicação não aparecerá nos _feeds ao vivo_ ou nas _hashtags_, explorar, ou barra de busca, mesmo que você seja escolhido em toda a conta.", - "privacy.unlisted.long": "Menos notificações e recomendações do algoritmo", "privacy.unlisted.short": "Público (silencioso)", "privacy_policy.last_updated": "Atualizado {date}", "privacy_policy.title": "Política de privacidade", @@ -909,7 +908,6 @@ "status.read_more": "Ler mais", "status.reblog": "Dar boost", "status.reblog_or_quote": "Acelerar ou citar", - "status.reblog_private": "Dar boost para o mesmo público", "status.reblogged_by": "{name} deu boost", "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "Nada aqui. Quando alguém der boost, o usuário aparecerá aqui.", @@ -987,7 +985,6 @@ "visibility_modal.button_title": "Selecionar Visibilidade", "visibility_modal.header": "Visibilidade e interação", "visibility_modal.helper.direct_quoting": "Menções privadas escritas no Mastodon.", - "visibility_modal.helper.privacy_editing": "Os posts publicados não podem alterar sua visibilidade.", "visibility_modal.helper.private_quoting": "Posts somente para seguidores feitos no Mastodon não podem ser citados por outros.", "visibility_modal.helper.unlisted_quoting": "Quando as pessoas citam você, sua publicação também será ocultada das linhas de tempo de tendência.", "visibility_modal.instructions": "Controle quem pode interagir com este post. Você também pode aplicar as configurações para todos os posts futuros navegando para Preferências > Postagem padrão.", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index b74a33275b7d8a..e66168a3c1660d 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -744,7 +744,6 @@ "privacy.quote.disabled": "{visibility}, citações desativadas", "privacy.quote.limited": "{visibility}, citações limitadas", "privacy.unlisted.additional": "Este comportamento é exatamente igual ao do público, exceto que a publicação não aparecerá em cronologias, nas etiquetas, ao explorar ou na pesquisa do Mastodon, mesmo que tenhas optado por participar em toda a tua conta.", - "privacy.unlisted.long": "Menos fanfarras algorítmicas", "privacy.unlisted.short": "Público silencioso", "privacy_policy.last_updated": "Última atualização em {date}", "privacy_policy.title": "Política de privacidade", @@ -906,7 +905,6 @@ "status.quotes.empty": "Ainda ninguém citou esta publicação. Quando alguém o fizer, aparecerá aqui.", "status.read_more": "Ler mais", "status.reblog": "Impulsionar", - "status.reblog_private": "Impulsionar com a visibilidade original", "status.reblogged_by": "{name} impulsionou", "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Ainda ninguém impulsionou esta publicação. Quando alguém o fizer, aparecerá aqui.", @@ -984,7 +982,6 @@ "visibility_modal.button_title": "Definir visibilidade", "visibility_modal.header": "Visibilidade e interação", "visibility_modal.helper.direct_quoting": "As menções privadas criadas no Mastodon não podem ser citadas por outras pessoas.", - "visibility_modal.helper.privacy_editing": "Publicações publicadas não podem alterar a sua visibilidade.", "visibility_modal.helper.private_quoting": "As publicações apenas para seguidores criadas no Mastodon não podem ser citadas por outras pessoas.", "visibility_modal.helper.unlisted_quoting": "Quando as pessoas o citarem, as publicações delas serão também ocultadas das tendências.", "visibility_modal.quote_followers": "Apenas seguidores", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 8128a998a9c7ab..814a388fb70725 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -528,7 +528,6 @@ "status.pin": "Fixează pe profil", "status.read_more": "Citește mai mult", "status.reblog": "Impuls", - "status.reblog_private": "Impulsionează către audiența originală", "status.reblogged_by": "{name} a distribuit", "status.reblogs.empty": "Nimeni nu a distribuit această postare până acum. Când cineva o va face, va apărea aici.", "status.redraft": "Șterge și adaugă la ciorne", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index fb14c022d08549..cdeb5d85550f3b 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -738,7 +738,6 @@ "privacy.public.long": "Для кого угодно в интернете", "privacy.public.short": "Публичный", "privacy.unlisted.additional": "Похоже на «Публичный» за исключением того, что пост не появится ни в живых лентах, ни в лентах хештегов, ни в разделе «Актуальное», ни в поиске Mastodon, даже если вы разрешили поиск по своим постам в настройках профиля.", - "privacy.unlisted.long": "Без продвижения алгоритмами", "privacy.unlisted.short": "Тихий публичный", "privacy_policy.last_updated": "Последнее обновление: {date}", "privacy_policy.title": "Политика конфиденциальности", @@ -885,7 +884,6 @@ "status.quote_error.pending_approval_popout.title": "Цитирование ещё не подтверждено? Не беспокойтесь", "status.read_more": "Читать далее", "status.reblog": "Продвинуть", - "status.reblog_private": "Продвинуть для своей аудитории", "status.reblogged_by": "{name} продвинул(а)", "status.reblogs": "{count, plural, one {продвижение} few {продвижения} other {продвижений}}", "status.reblogs.empty": "Никто ещё не продвинул этот пост. Все пользователи, которые продвинут этот пост, будут показаны здесь.", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 8dc3e597c11456..2dc48e51118ec2 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -706,7 +706,6 @@ "status.pin": "Apica in su profilu", "status.read_more": "Leghe·nde àteru", "status.reblog": "Cumpartzi", - "status.reblog_private": "Cumpartzi cun is utentes originales", "status.reblogged_by": "{name} at cumpartzidu", "status.reblogs.empty": "Nemos at ancora cumpartzidu custa publicatzione. Cando calicunu dd'at a fàghere, at a èssere ammustrada inoghe.", "status.redraft": "Cantzella e torra a iscrìere", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index 12647ef8188137..0f6043a13f2a98 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -444,7 +444,6 @@ "status.pin": "Preen tae profile", "status.read_more": "Read mair", "status.reblog": "Heeze", - "status.reblog_private": "Heeze wi original visibility", "status.reblogged_by": "{name} heezed", "status.reblogs.empty": "Naebody haes heezed this post yit. Whan somebody dis, they wull shaw up here.", "status.redraft": "Delete & re-dae", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 3de45108eee182..73cc10a6da64ea 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -699,7 +699,6 @@ "privacy.public.long": "මැස්ටෝඩන් වල සහ ඉන් පිටත ඕනෑම අයෙක්", "privacy.public.short": "ප්‍රසිද්ධ", "privacy.unlisted.additional": "මෙය හරියටම පොදු ලෙසම ක්‍රියා කරයි, ඔබ ගිණුම පුරා තෝරාගෙන සිටියත්, සජීවී සංග්‍රහ හෝ හැෂ් ටැග්, ගවේෂණය හෝ මැස්ටෝඩන් සෙවුම තුළ පළ කිරීම දිස් නොවේ.", - "privacy.unlisted.long": "ඇල්ගොරිතම රසික ගාස්තු අඩුයි", "privacy.unlisted.short": "නිහඬ මහජනතාව", "privacy_policy.last_updated": "අවසන් වරට යාවත්කාලීන කරන ලද්දේ {date}", "privacy_policy.title": "රහස්‍යතා ප්‍රතිපත්තිය", @@ -839,7 +838,6 @@ "status.pin": "පැතිකඩට අමුණන්න", "status.read_more": "තව කියවන්න", "status.reblog": "බූස්ට් කරන්න", - "status.reblog_private": "මුල් දෘශ්‍යතාව සමඟ වැඩි කරන්න", "status.reblogged_by": "{name} වැඩි කරන ලදී", "status.reblogs": "{count, plural, one {බූස්ට්} other {බූස්ට්}}", "status.reblogs.empty": "මෙම සටහන තවම කිසිවෙකු බූස්ට් කර නැත. යමෙකු එසේ කළ විට, ඔවුන් මෙහි පෙන්වනු ඇත.", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 723207a4be44ae..ba6ebfc03f2c2d 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -626,7 +626,6 @@ "privacy.public.long": "Ktokoľvek na Mastodone aj mimo neho", "privacy.public.short": "Verejné", "privacy.unlisted.additional": "Presne ako verejné, s tým rozdielom, že sa príspevok nezobrazí v živých kanáloch, hashtagoch, objavovaní či vo vyhľadávaní na Mastodone, aj keď máte pre účet objaviteľnosť zapnutú.", - "privacy.unlisted.long": "Menej algoritmických výmyslov", "privacy.unlisted.short": "Tiché verejné", "privacy_policy.last_updated": "Posledná úprava {date}", "privacy_policy.title": "Pravidlá ochrany súkromia", @@ -762,7 +761,6 @@ "status.pin": "Pripnúť na profil", "status.read_more": "Čítaj ďalej", "status.reblog": "Zdieľať", - "status.reblog_private": "Zdieľať pôvodnému publiku", "status.reblogged_by": "{name} zdieľa", "status.reblogs.empty": "Nikto ešte tento príspevok nezdieľal. Keď tak niekto urobí, zobrazí sa to tu.", "status.redraft": "Vymazať a prepísať", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index c256318fee9960..04e944216b918e 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -677,7 +677,6 @@ "privacy.public.long": "Vsem, ki so ali niso na Mastodonu", "privacy.public.short": "Javno", "privacy.unlisted.additional": "Učinek je enak kot pri javni objavi, le da se ta ne bo prikazala v živih virih, med ključniki, raziskovanjem ali iskanjem, četudi ste to vključili na ravni računa.", - "privacy.unlisted.long": "Manj vsebine po izboru algoritma", "privacy.unlisted.short": "Tiho javno", "privacy_policy.last_updated": "Zadnja posodobitev {date}", "privacy_policy.title": "Pravilnik o zasebnosti", @@ -817,7 +816,6 @@ "status.pin": "Pripni na profil", "status.read_more": "Preberi več", "status.reblog": "Izpostavi", - "status.reblog_private": "Izpostavi z izvirno vidljivostjo", "status.reblogged_by": "{name} je izpostavil/a", "status.reblogs": "{count, plural, one {izpostavitev} two {izpostavitvi} few {izpostavitve} other {izpostavitev}}", "status.reblogs.empty": "Nihče še ni izpostavil te objave. Ko se bo to zgodilo, se bodo pojavile tukaj.", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index d871d1bb278fd5..106906b875b376 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -724,7 +724,6 @@ "privacy.public.long": "Cilido që hyn e del në Mastodon", "privacy.public.short": "Publik", "privacy.unlisted.additional": "Ky sillet saktësisht si publik, vetëm se postimi s’do të shfaqet në prurje të drejtpërdrejta, ose në hashtag-ë, te eksploroni, apo kërkim në Mastodon, edhe kur keni zgjedhur të jetë për tërë llogarinë.", - "privacy.unlisted.long": "Më pak fanfara algoritmike", "privacy.unlisted.short": "Publik i qetë", "privacy_policy.last_updated": "Përditësuar së fundi më {date}", "privacy_policy.title": "Rregulla Privatësie", @@ -866,7 +865,6 @@ "status.quote_error.filtered": "Fshehur për shkak të njërit nga filtrat tuaj", "status.read_more": "Lexoni më tepër", "status.reblog": "Përforcojeni", - "status.reblog_private": "Përforcim për publikun origjinal", "status.reblogged_by": "{name} përforcoi", "status.reblogs": "{count, plural, one {përforcim} other {përforcime}}", "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.", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index c8fa67183e4594..77d1135aa369cf 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -514,7 +514,6 @@ "privacy.public.long": "Bilo ko na Mastodon-u i van njega", "privacy.public.short": "Javno", "privacy.unlisted.additional": "Ovo se ponaša potpuno kao javno, osim što se objava neće pojavljivati u izvorima uživo ili heš oznakama, istraživanjima ili pretrazi Mastodon-a, čak i ako ste uključeni u celom nalogu.", - "privacy.unlisted.long": "Manje algoritamskih fanfara", "privacy.unlisted.short": "Tiha javnost", "privacy_policy.last_updated": "Poslednje ažuriranje {date}", "privacy_policy.title": "Politika privatnosti", @@ -643,7 +642,6 @@ "status.pin": "Zakači na profil", "status.read_more": "Pročitajte više", "status.reblog": "Podrži", - "status.reblog_private": "Podrži sa originalnom vidljivošću", "status.reblogged_by": "{name} je podržao/la", "status.reblogs": "{count, plural, one {# podržavanje} few {# podržavanja} other {# podržavanja}}", "status.reblogs.empty": "Još uvek niko nije podržao ovu objavu. Kada bude podržana, pojaviće se ovde.", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 49261ffd3daee8..2dc428b30c031a 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -514,7 +514,6 @@ "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": "Политика приватности", @@ -643,7 +642,6 @@ "status.pin": "Закачи на профил", "status.read_more": "Прочитајте више", "status.reblog": "Подржи", - "status.reblog_private": "Подржи са оригиналном видљивошћу", "status.reblogged_by": "{name} је подржао/ла", "status.reblogs": "{count, plural, one {# подржавање} few {# подржавања} other {# подржавања}}", "status.reblogs.empty": "Још увек нико није подржао ову објаву. Када буде подржана, појавиће се овде.", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index c14d1eeb062923..80f738ad2882d9 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -739,7 +739,6 @@ "privacy.public.long": "Alla på och utanför Mastodon", "privacy.public.short": "Offentlig", "privacy.unlisted.additional": "Detta fungerar precis som offentlig, förutom att inlägget inte visas i liveflöden eller hashtaggar, utforska eller Mastodon-sökning, även om du har valt detta för hela kontot.", - "privacy.unlisted.long": "Mindre beaktat av algoritmen", "privacy.unlisted.short": "Offentlig (begränsad)", "privacy_policy.last_updated": "Senast uppdaterad {date}", "privacy_policy.title": "Integritetspolicy", @@ -891,7 +890,6 @@ "status.quote_post_author": "Citerade ett inlägg av @{name}", "status.read_more": "Läs mer", "status.reblog": "Boosta", - "status.reblog_private": "Boosta med ursprunglig synlighet", "status.reblogged_by": "{name} boostade", "status.reblogs": "{count, plural, one {# röst} other {# röster}}", "status.reblogs.empty": "Ingen har boostat detta inlägg än. När någon gör det kommer de synas här.", @@ -966,7 +964,6 @@ "video.volume_up": "Volym upp", "visibility_modal.button_title": "Ange synlighet", "visibility_modal.header": "Synlighet och interaktion", - "visibility_modal.helper.privacy_editing": "Publicerade inlägg kan inte ändra deras synlighet.", "visibility_modal.helper.unlisted_quoting": "När folk citerar dig, deras inlägg kommer också att döljas från trendiga tidslinjer.", "visibility_modal.quote_followers": "Endast följare", "visibility_modal.quote_public": "Alla", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index da41a290f9cd97..10d461e9e83481 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -316,7 +316,6 @@ "status.pin": "சுயவிவரத்தில் முள்", "status.read_more": "மேலும் வாசிக்க", "status.reblog": "மதிப்பை உயர்த்து", - "status.reblog_private": "Boost அசல் பார்வையாளர்களுக்கு", "status.reblogged_by": "{name} மதிப்பை உயர்த்து", "status.reblogs.empty": "இதுவரை யாரும் இந்த மோதலை அதிகரிக்கவில்லை. யாராவது செய்தால், அவர்கள் இங்கே காண்பார்கள்.", "status.redraft": "நீக்கு மற்றும் மீண்டும் வரைவு", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 2f58eb9d43a37c..cbdea417b71543 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -220,7 +220,6 @@ "status.pin": "ప్రొఫైల్లో అతికించు", "status.read_more": "ఇంకా చదవండి", "status.reblog": "బూస్ట్", - "status.reblog_private": "అసలు ప్రేక్షకులకు బూస్ట్ చేయి", "status.reblogged_by": "{name} బూస్ట్ చేసారు", "status.reblogs.empty": "ఈ టూట్ను ఇంకా ఎవరూ బూస్ట్ చేయలేదు. ఎవరైనా చేసినప్పుడు, అవి ఇక్కడ కనబడతాయి.", "status.redraft": "తొలగించు & తిరగరాయు", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 545371e56fb9aa..312cee2cf3973c 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -694,7 +694,6 @@ "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": "นโยบายความเป็นส่วนตัว", @@ -834,7 +833,6 @@ "status.pin": "ปักหมุดในโปรไฟล์", "status.read_more": "อ่านเพิ่มเติม", "status.reblog": "ดัน", - "status.reblog_private": "ดันด้วยการมองเห็นดั้งเดิม", "status.reblogged_by": "{name} ได้ดัน", "status.reblogs": "{count, plural, other {การดัน}}", "status.reblogs.empty": "ยังไม่มีใครดันโพสต์นี้ เมื่อใครสักคนดัน เขาจะปรากฏที่นี่", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 569567b1dc548e..93fe56cbc5629a 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -745,7 +745,6 @@ "privacy.quote.disabled": "{visibility}, alıntı yapılamaz", "privacy.quote.limited": "{visibility}, sınırlı alıntı", "privacy.unlisted.additional": "Bu neredeyse herkese açık gibi çalışır, tek farkı gönderi canlı akışlarda veya etiketlerde, keşfette, veya Mastodon aramasında gözükmez, hesap çapında öyle seçmiş olsanız bile.", - "privacy.unlisted.long": "Daha az algoritmik tantana", "privacy.unlisted.short": "Sessizce herkese açık", "privacy_policy.last_updated": "Son güncelleme {date}", "privacy_policy.title": "Gizlilik Politikası", @@ -909,7 +908,6 @@ "status.read_more": "Devamını okuyun", "status.reblog": "Yeniden paylaş", "status.reblog_or_quote": "Yükselt veya alıntıla", - "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.", @@ -987,7 +985,6 @@ "visibility_modal.button_title": "Görünürlüğü ayarla", "visibility_modal.header": "Görünürlük ve etkileşim", "visibility_modal.helper.direct_quoting": "Mastodon'da özel değiniler başkaları tarafından alıntılanamaz.", - "visibility_modal.helper.privacy_editing": "Yayınlanan gönderilerin görünürlüğü değiştirilemez.", "visibility_modal.helper.private_quoting": "Mastodon'da sadece takipçilere yönelik gönderiler başkaları tarafından alıntılanamaz.", "visibility_modal.helper.unlisted_quoting": "İnsanlar sizden alıntı yaptığında, onların gönderileri de trend zaman tünellerinden gizlenecektir.", "visibility_modal.quote_followers": "Sadece takipçiler", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index aaf3805011dec3..d85f36890d0a65 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -709,7 +709,6 @@ "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": "Політика приватності", @@ -855,7 +854,6 @@ "status.quote_post_author": "Цитований допис @{name}", "status.read_more": "Дізнатися більше", "status.reblog": "Поширити", - "status.reblog_private": "Поширити для початкової аудиторії", "status.reblogged_by": "{name} поширює", "status.reblogs": "{count, plural, one {поширення} few {поширення} many {поширень} other {поширення}}", "status.reblogs.empty": "Ніхто ще не поширив цей допис. Коли хтось це зроблять, вони будуть зображені тут.", @@ -922,6 +920,7 @@ "video.hide": "Приховати відео", "video.pause": "Призупинити", "video.play": "Програвати", + "visibility_modal.helper.privacy_editing": "Видимість не може бути змінена після публікації повідомлення.", "visibility_modal.quote_followers": "Тільки для підписників", "visibility_modal.quote_public": "Будь-хто", "visibility_modal.save": "Зберегти" diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 35f2545cdb9367..5f35de4cac4ebf 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility}, tắt trích dẫn", "privacy.quote.limited": "{visibility}, hạn chế trích dẫn", "privacy.unlisted.additional": "Công khai, nhưng tút sẽ không hiện trong bảng tin, hashtag, khám phá hoặc tìm kiếm Mastodon, kể cả trong cài đặt tài khoản bạn chọn cho phép.", - "privacy.unlisted.long": "Ít hướng thuật toán hơn", + "privacy.unlisted.long": "Ẩn khỏi kết quả tìm kiếm, xu hướng và dòng thời gian công khai của Mastodon", "privacy.unlisted.short": "Hạn chế", "privacy_policy.last_updated": "Cập nhật lần cuối {date}", "privacy_policy.title": "Chính sách bảo mật", @@ -913,7 +913,7 @@ "status.read_more": "Đọc tiếp", "status.reblog": "Đăng lại", "status.reblog_or_quote": "Đăng lại hoặc trích dẫn", - "status.reblog_private": "Đăng lại (Riêng tư)", + "status.reblog_private": "Chia sẻ lại với người theo dõi của bạn", "status.reblogged_by": "{name} đăng lại", "status.reblogs": "{count, plural, other {đăng lại}}", "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "Thay đổi quyền riêng tư", "visibility_modal.header": "Hiển thị và tương tác", "visibility_modal.helper.direct_quoting": "Nhắn riêng trên Mastodon không thể được người khác trích dẫn.", - "visibility_modal.helper.privacy_editing": "Không thể thay đổi kiểu hiển thị của tút đã đăng.", + "visibility_modal.helper.privacy_editing": "Không thể thay đổi chế độ hiển thị sau khi một tút đã đăng.", "visibility_modal.helper.privacy_private_self_quote": "Không thể công khai trích dẫn tút của bản thân hoặc tút riêng tư.", "visibility_modal.helper.private_quoting": "Tút chỉ dành cho người theo dõi trên Mastodon không thể được người khác trích dẫn.", "visibility_modal.helper.unlisted_quoting": "Khi ai đó trích dẫn bạn, tút của họ cũng sẽ bị ẩn khỏi bảng tin công khai.", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 713147428f4893..8fc88b8a8bd877 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility},禁用嘟文引用", "privacy.quote.limited": "{visibility},嘟文引用受限", "privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。", - "privacy.unlisted.long": "减少算法影响", + "privacy.unlisted.long": "不显示在Mastodon的搜索结果、热门趋势、公共时间线上", "privacy.unlisted.short": "悄悄公开", "privacy_policy.last_updated": "最近更新于 {date}", "privacy_policy.title": "隐私政策", @@ -770,7 +770,7 @@ "relative_time.today": "今天", "remove_quote_hint.button_label": "明白了", "remove_quote_hint.message": "你可以通过 {icon} 选项菜单进行此操作。", - "remove_quote_hint.title": "是否需要删除你的引用嘟文?", + "remove_quote_hint.title": "是否想要删除你的引用嘟文?", "reply_indicator.attachments": "{count, plural, other {# 个附件}}", "reply_indicator.cancel": "取消", "reply_indicator.poll": "投票", @@ -913,7 +913,7 @@ "status.read_more": "查看更多", "status.reblog": "转嘟", "status.reblog_or_quote": "转嘟或引用", - "status.reblog_private": "以相同可见性转嘟", + "status.reblog_private": "向关注者再次分享", "status.reblogged_by": "{name} 转嘟了", "status.reblogs": "{count, plural, other {次转嘟}}", "status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "设置可见性", "visibility_modal.header": "可见性和互动", "visibility_modal.helper.direct_quoting": "Mastodon上发布的私下提及无法被他人引用。", - "visibility_modal.helper.privacy_editing": "已发布的嘟文无法改变可见性。", + "visibility_modal.helper.privacy_editing": "嘟文发布后便无法更改可见性。", "visibility_modal.helper.privacy_private_self_quote": "自我引用的私人嘟文无法设置为公开。", "visibility_modal.helper.private_quoting": "Mastodon上发布的仅限关注者可见的嘟文无法被他人引用。", "visibility_modal.helper.unlisted_quoting": "当其他人引用你时,他们的嘟文也会从热门时间线上隐藏。", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 0383dfb940038d..4d61d7b69d966c 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -561,7 +561,6 @@ "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": "私隱政策", @@ -688,7 +687,6 @@ "status.pin": "置頂到資料頁", "status.read_more": "閱讀更多", "status.reblog": "轉推", - "status.reblog_private": "轉推到原讀者", "status.reblogged_by": "{name} 轉推", "status.reblogs": "{count, plural, one {則轉推} other {則轉推}}", "status.reblogs.empty": "還未有人轉推。有的話會顯示在這裡。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index ee360d63bf843a..b93a8fd3c2c285 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -745,7 +745,7 @@ "privacy.quote.disabled": "{visibility},停用引用嘟文", "privacy.quote.limited": "{visibility},受限的引用嘟文", "privacy.unlisted.additional": "此與公開嘟文完全相同,但嘟文不會出現於即時內容或主題標籤、探索、及 Mastodon 搜尋中,即使您在帳戶設定中選擇加入。", - "privacy.unlisted.long": "悄然無聲", + "privacy.unlisted.long": "不顯示於 Mastodon 之搜尋結果、熱門趨勢、及公開時間軸上", "privacy.unlisted.short": "不公開", "privacy_policy.last_updated": "最後更新:{date}", "privacy_policy.title": "隱私權政策", @@ -913,7 +913,7 @@ "status.read_more": "閱讀更多", "status.reblog": "轉嘟", "status.reblog_or_quote": "轉嘟或引用", - "status.reblog_private": "依照原嘟可見性轉嘟", + "status.reblog_private": "再次與跟隨者分享", "status.reblogged_by": "{name} 已轉嘟", "status.reblogs": "{count, plural, other {則轉嘟}}", "status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。", @@ -991,7 +991,7 @@ "visibility_modal.button_title": "設定可見性", "visibility_modal.header": "可見性與互動", "visibility_modal.helper.direct_quoting": "Mastodon 上發佈之私人提及嘟文無法被其他使用者引用。", - "visibility_modal.helper.privacy_editing": "無法變更已發佈的嘟文之可見性。", + "visibility_modal.helper.privacy_editing": "嘟文發布後無法變更可見性。", "visibility_modal.helper.privacy_private_self_quote": "自我引用之私嘟無法設為公開可見。", "visibility_modal.helper.private_quoting": "Mastodon 上發佈之僅限跟隨者嘟文無法被其他使用者引用。", "visibility_modal.helper.unlisted_quoting": "當其他人引用您時,他們的嘟文也會自熱門時間軸隱藏。", diff --git a/config/locales/activerecord.br.yml b/config/locales/activerecord.br.yml index dc35f326ff0bd5..1d76f674f7210a 100644 --- a/config/locales/activerecord.br.yml +++ b/config/locales/activerecord.br.yml @@ -8,10 +8,10 @@ br: user: agreement: Emglev gant ar servij email: Chomlec'h postel - locale: Lec'hel + locale: Yezh password: Ger-tremen user/account: - username: Anv + username: Anv implijer user/invite_request: text: Abeg errors: diff --git a/config/locales/an.yml b/config/locales/an.yml index 168cb1904b08c6..33234b58d4fb4c 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -314,6 +314,7 @@ an: title: Emojis personalizaus uncategorized: Sin clasificar unlist: No listau + unlisted: Sin listar update_failed_msg: No se podió actualizar ixe emoji updated_msg: Emoji actualizau con exito! upload: Puyar @@ -1412,7 +1413,6 @@ an: private: Nomás amostrar a seguidores private_long: Nomás amostrar a las tuyas seguidores public: Publico - unlisted: Publico, pero no amostrar en a historia federada statuses_cleanup: enabled: Borrar automaticament publicacions antigas enabled_hint: Elimina automaticament las tuyas publicacions una vegada que aconsigan un branquil de tiempo especificau, de no estar que coincidan con bella d'as excepcions detalladas debaixo diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 19a10803d7f5da..4e0fa4abca81c4 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -373,6 +373,7 @@ ar: title: الإيموجي الخاصة uncategorized: غير مصنّف unlist: تنحية مِن القائمة + unlisted: غير مدرج update_failed_msg: تعذرت عملية تحديث ذاك الإيموجي updated_msg: تم تحديث الإيموجي بنجاح! upload: رفع @@ -2050,7 +2051,6 @@ ar: private: لمتابِعيك فقط private_long: اعرضه لمتابعيك فقط public: للعامة - unlisted: غير مُدرَج statuses_cleanup: enabled: حذف المنشورات القديمة تلقائياً enabled_hint: حذف منشوراتك تلقائياً بمجرد أن تصل إلى عتبة عمرية محددة، إلا إذا كانت مطابقة لأحد الاستثناءات أدناه diff --git a/config/locales/be.yml b/config/locales/be.yml index 43a0e7e59cd99c..3f8ae95af782a4 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -373,7 +373,7 @@ be: title: Адвольныя эмодзі uncategorized: Без катэгорыі unlist: Прыбраць - unlisted: Ціхі публічны + unlisted: Не ў стужках update_failed_msg: Немагчыма абнавіць гэта эмодзі updated_msg: Смайлік паспяхова абноўлены! upload: Запампаваць @@ -2008,7 +2008,7 @@ be: private_long: Паказваць толькі падпісчыкам public: Публічны public_long: Усе ў Mastodon і па-за ім - unlisted: Не ў спісе + unlisted: Ціхі публічны unlisted_long: Схавана ў выніках пошуку Mastodon, трэндах і публічных стужках statuses_cleanup: enabled: Аўтаматычна выдаляць старыя допісы diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 8bb97bb22d8576..19510437177640 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -359,6 +359,7 @@ bg: title: Потребителски емоджита uncategorized: Некатегоризирано unlist: Премахване от списъка + unlisted: Извънсписъчно update_failed_msg: Не може да се обнови това емоджи updated_msg: Успешно осъвременено емоджи! upload: Качване @@ -1896,7 +1897,6 @@ bg: private: Покажи само на последователите си private_long: Видими само за последователи public: Публично - unlisted: Публично, но не показвай в публичния канал statuses_cleanup: enabled: Автоматично изтриване на стари публикации enabled_hint: От само себе си трие публикациите ви, щом достигнат указания възрастов праг, освен ако не съвпаднат с някое от изключенията долу diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 75b0fbd611cfa8..74ff25d754d8b6 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -183,6 +183,7 @@ bn: title: স্বনির্ধারিত ইমোজিগুলি uncategorized: শ্রেণীবিহীন unlist: তালিকামুক্ত + unlisted: তালিকামুক্ত update_failed_msg: সেই ইমোজি আপডেট করতে পারেনি updated_msg: ইমোজি সফলভাবে আপডেট হয়েছে! upload: আপলোড diff --git a/config/locales/br.yml b/config/locales/br.yml index 75e22a95307fa6..4fd6d6f49e8256 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -26,6 +26,7 @@ br: account_moderation_notes: create: Leuskel un notenn accounts: + add_email_domain_block: Stankañ an domani postel approve: Aprouiñ are_you_sure: Ha sur oc'h? avatar: Avatar @@ -51,6 +52,7 @@ br: domain: Domani edit: Kemmañ email: Postel + email_status: Statud ar postel enable: Gweredekaat enabled: Gweredekaet followers: Heulier·ezed·ien @@ -95,25 +97,47 @@ br: suspend: Astalañ suspended: Astalet title: Kontoù + unblock_email: Distankañ ar chomlec'h postel + unblocked_email_msg: Distanket eo bet chomlec'h postel %{username} gant berzh undo_silenced: Dizober ar bevennañ unsubscribe: Digoumanantiñ - username: Anv + username: Anv implijer warn: Diwall web: Web action_logs: action_types: - approve_user: Aprouiñ an implijer - change_role_user: Kemmañ perzh an implijer - confirm_user: Aprouiñ an implijer + approve_user: Aprouiñ an implijer·ez + change_email_user: Cheñch postel an implijer·ez + change_role_user: Kemmañ perzh an implijer·ez + confirm_user: Aprouiñ an implijer·ez + create_custom_emoji: Krouiñ ur fromlun personelaet create_ip_block: Krouiñ ur reolenn IP create_user_role: Krouiñ ur perzh + destroy_custom_emoji: Dilemel ar fromlun personelaet destroy_ip_block: Dilemel ar reolenn IP destroy_status: Dilemel ar c'hannad + destroy_user_role: Dilemel ar perzh + disable_custom_emoji: Diweredekaat ar fromlun personelaet + enable_custom_emoji: Gweredekaat ar fromlun personelaet reset_password_user: Adderaouekaat ar ger-tremen + unblock_email_account: Distankañ ar chomlec'h postel + update_custom_emoji: Hizivaat ar fromlun personelaet update_status: Hizivaat ar c'hannad actions: + change_email_user_html: Cheñchet eo bet chomlec'h postel an implijer·ez %{target} gant %{name} + confirm_user_html: Cheñchet eo bet chomlec'h postel an implijer·ez %{target} gant %{name} + create_custom_emoji_html: Pellgaset eo bet ar fromlun nevez %{target} gant %{name} + create_email_domain_block_html: Stanket eo bet an domani postel %{target} gant %{name} + destroy_custom_emoji_html: Dilamet eo bet ar fromlun %{target} gant %{name} + destroy_email_domain_block_html: Distanket eo bet an domani postel %{target} gant %{name} destroy_status_html: Dilamet eo bet toud %{target} gant %{name} + disable_custom_emoji_html: Diweredekaet eo bet ar fromlun %{target} gant %{name} + enable_custom_emoji_html: Gweredekaet eo bet ar fromlun %{target} gant %{name} + resend_user_html: Adkaset eo bet ar postel kadarnaat evit %{target} gant %{name} + unblock_email_account_html: Distanket eo bet chomlec'h postel %{target} gant %{name} + update_custom_emoji_html: Hizivaet eo bet ar fromlun %{target} gant %{name} update_status_html: Hizivaet eo bet toud %{target} gant %{name} + filter_by_user: Silañ dre implijer·ez title: Renabl aodit announcements: live: War-eeun @@ -121,6 +145,7 @@ br: create: Sevel ur gemenn title: Kemenn nevez publish: Embann + scheduled_for: Rakluniet da %{time} title: Kemennoù unpublish: Diembann custom_emojis: @@ -132,13 +157,20 @@ br: emoji: Fromlun enable: Gweredekaat enabled: Gweredekaet + image_hint: PNG pe GIF betek %{size} list: Listenn listed: Listennet + new: + title: Ouzhpennañ ur fromlun personelaet nevez overwrite: Flastrañ shortcode: Berradenn + title: Fromlunioù personelaet unlist: Dilistennañ + update_failed_msg: N'haller ket hizivaat ar fromlun-mañ + updated_msg: Fromlun hizivaet gant berzh! upload: Ezkargañ dashboard: + active_users: implijerien·ezed oberiant new_users: implijerien·ezed nevez software: Meziant title: Taolenn labour @@ -153,23 +185,29 @@ br: confirm_suspension: cancel: Nullañ domain: Domani + export: Ezporzhiañ + import: Enporzhiañ new: create: Sevel ur stanker severity: noop: Hini ebet suspend: Astalañ + private_comment: Evezhiadenn brevez public_comment: Evezhiadenn foran email_domain_blocks: - add_new: Ouzhpenniñ unan nevez + add_new: Ouzhpennañ unan nevez delete: Dilemel dns: types: mx: Enrolladenn MX domain: Domani new: - create: Ouzhpenniñ un domani + create: Ouzhpennañ un domani + title: Domanioù postel stanket export_domain_allows: no_file: Restr ebet diuzet + export_domain_blocks: + no_file: Restr ebet diuzet fasp: debug: callbacks: @@ -184,6 +222,7 @@ br: save: Enrollañ status: Statud follow_recommendations: + language: Evit ar yezh status: Statud suppressed: Dilamet instances: @@ -206,6 +245,8 @@ br: all: Pep tra limited: Bevennet title: Habaskadur + private_comment: Evezhiadenn brevez + public_comment: Evezhiadenn foran purge: Spurjañ title: Kevread total_blocked_by_us: Stanket ganeomp @@ -213,6 +254,7 @@ br: total_followed_by_us: Heuliet ganeomp total_storage: Restroù media stag invites: + deactivate_all: Diweredekaat pep tra filter: all: Pep tra available: Hegerzh @@ -224,6 +266,7 @@ br: delete: Dilemel expires_in: '1209600': 2 sizhunvezh + '15778476': 6 mizvezh '2629746': 1 mizvezh '31556952': 1 bloavezh '86400': 1 devezh @@ -264,13 +307,31 @@ br: updated_at: Nevesaet view_profile: Gwelet ar profil roles: + add_new: Ouzhpennañ ur perzh + assigned_users: + few: "%{count} implijer·ez" + many: "%{count} implijer·ez" + one: "%{count} implijer·ez" + other: "%{count} implijer·ez" + two: "%{count} implijer·ez" categories: + administration: Merañ devops: DevOps invites: Pedadennoù moderation: Habaskadur special: Ispisial delete: Dilemel privileges: + administrator: Merour + invite_users: Pediñ implijerien·ezed + invite_users_description: Aotren an implijerien·ezed da bediñ tud all d'ar servijer + manage_custom_emojis: Merañ ar fromlunioù personelaet + manage_invites: Merañ ar pedadennoù + manage_roles: Merañ ar perzhioù + manage_rules: Merañ ar reolennoù + manage_settings: Merañ an arventennoù + manage_settings_description: Aotren an implijerien·ezed da cheñch arventennoù al lec'hienn + manage_users: Merañ an implijerien·ezed view_devops: DevOps title: Rolloù rules: @@ -291,11 +352,14 @@ br: discovery: privacy: Buhez prevez profile_directory: Kavlec'h ar profiloù + publish_statistics: Embann ar stadegoù title: Dizoloadur trends: Luskadoù domain_blocks: all: D'an holl dud disabled: Da zen ebet + software_updates: + documentation_link: Gouzout hiroc'h statuses: account: Aozer·ez batch: @@ -314,9 +378,27 @@ br: strikes: actions: delete_statuses: Dilamet eo bet toudoù %{target} gant %{name} + system_checks: + elasticsearch_preset: + action: Gwelet an teuliadur + elasticsearch_preset_single_node: + action: Gwelet an teuliadur + rules_check: + action: Merañ reolennoù ar servijer + software_version_check: + action: Gwelet an hizivadennoù hegerz + message_html: Un hizivadenn eus Mastodon a zo hegerz. + software_version_critical_check: + action: Gwelet an hizivadennoù hegerz + software_version_patch_check: + action: Gwelet an hizivadennoù hegerz tags: title: Gerioù-klik terms_of_service: + preview: + send_preview: Kas ur rakwel da %{email} + publish: Embann + published_on_html: Embannet d'an %{date} save_draft: Enrollañ ar brouilhed trends: allow: Aotren @@ -333,8 +415,11 @@ br: tag_uses_measure: implijoù hollek not_usable: N'haller ket en implijout title: Gerioù-klik diouzh ar c'hiz + username_blocks: + add_new: Ouzhpennañ unan nevez + delete: Dilemel warning_presets: - add_new: Ouzhpenniñ unan nevez + add_new: Ouzhpennañ unan nevez delete: Dilemel webhooks: delete: Dilemel @@ -373,6 +458,8 @@ br: saml: SAML register: Lakaat ho anv reset_password: Adderaouekaat ar ger-tremen + rules: + title_invited: Pedet oc'h bet. security: Diogelroez status: account_status: Statud ar gont @@ -419,7 +506,7 @@ br: csv: CSV lists: Listennoù featured_tags: - add_new: Ouzhpenniñ unan nevez + add_new: Ouzhpennañ unan nevez filters: contexts: account: Profiloù @@ -451,8 +538,18 @@ br: modes: merge: Teuziñ overwrite: Flastrañ + states: + finished: Echu + scheduled: Rakluniet + status: Statud + titles: + blocking: Enporzhiañ kontoù stanket + bookmarks: Enporzhiañ sinedoù + domain_blocking: Enporzhiañ domanioù stanket + lists: Enporzhiañ listennoù types: bookmarks: Sinedoù + lists: Listennoù upload: Ezkargañ invites: delete: Diweredekaat @@ -465,9 +562,20 @@ br: '604800': 1 sizhun '86400': 1 deiz expires_in_prompt: Birviken + invited_by: 'Pedet oc''h bet gant:' + max_uses: + few: "%{count} implij" + many: "%{count} implij" + one: 1 implij + other: "%{count} implij" + two: "%{count} implij" table: uses: Implijoù title: Pediñ tud + login_activities: + authentication_methods: + password: ger-tremen + webauthn: alc’hwezioù surentez media_attachments: validations: images_and_video: N'haller stagañ ur video ouzh un embannadur a zo fotoioù gantañ dija @@ -506,12 +614,18 @@ br: next: Da-heul older: Koshoc'h prev: A-raok + truncate: "…" polls: errors: self_vote: N'hallit ket votiñ en ho sontadegoù deoc'h-c'hwi preferences: other: All posting_defaults: Arventennoù embann dre ziouer + privacy: + privacy: Prevezded + search: Klask + privacy_policy: + title: Reolennoù prevezded redirects: prompt: M'ho peus fiziañs el liamm-mañ, klikit warnañ evit kenderc'hel. title: O kuitaat %{instance} emaoc'h. @@ -523,6 +637,7 @@ br: moved: Dilojet mutual: Kenetre primary: Kentañ + status: Statud ar gont sessions: browser: Merdeer browsers: @@ -533,6 +648,7 @@ br: electron: Electron firefox: Firefox generic: Merdeer dianav + huawei_browser: Merdeer Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Merdeer Nokia S40 Ovi @@ -542,6 +658,7 @@ br: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Merdeer dianav weibo: Weibo date: Deiziad description: "%{browser} war %{platform}" @@ -560,11 +677,20 @@ br: back: Distreiñ da vMastodon development: Diorren edit_profile: Kemmañ ar profil - featured_tags: Gerioù-klik pennañ + export: Ezporzhiañ + featured_tags: Gerioù-klik en a-raok import: Enporzhiañ import_and_export: Enporzhiañ hag ezporzhiañ + notifications: Kemennoù dre bostel preferences: Gwellvezioù profile: Profil + relationships: Heulierien·ezed ha tud heuliet + severed_relationships: + event_type: + user_domain_block: Stanket ho peus %{target_name} + lost_followers: Heulierien·ezed kollet + lost_follows: Tud heuliet kollet + type: Darvoud statuses: attached: image: @@ -577,17 +703,29 @@ br: quoted_status_not_found: War a seblant, n'eus ket eus an embannadenn emaoc'h o klask menegiñ. pin_errors: ownership: N'hallit ket spilhennañ embannadurioù ar re all + reblog: N'haller ket spilhennañ ur skignadenn + quote_policies: + followers: Heulierien·ezed hepken + public: Pep hini + title: '%{name}: "%{quote}"' visibilities: + direct: Meneg prevez + private: Heulierien·ezed hepken public: Publik statuses_cleanup: keep_direct: Mirout ar c'hannadoù eeun keep_media: Derc'hel an embannadurioù gant restroù stag min_age: '1209600': 2 sizhunvezh + '15778476': 6 mizvezh '2629746': 1 mizvezh '31556952': 1 bloavezh + '5259492': 2 mizvezh '604800': 1 sizhunvezh '63113904': 2 vloavezh + '7889238': 3 mizvezh + terms_of_service: + title: Divizoù implijout themes: default: Mastodon (Teñval) mastodon-light: Mastodon (Sklaer) @@ -601,17 +739,25 @@ br: add: Ouzhpennañ disable: Diweredekaat edit: Kemmañ + webauthn: Alc’hwezioù surentez user_mailer: appeal_approved: action: Arventennoù ar gont backup_ready: extra: Prest eo da vezañ pellgarget! + suspicious_sign_in: + change_password: kemmañ ho ker-tremen + terms_of_service_changed: + sign_off: Skipailh %{domain} + subject: Kemmoù en hon divizoù implijout + subtitle: Cheñchet o deus divizoù implijout %{domain} warning: categories: spam: Spam - reason: 'Abeg :' - statuses: 'Toudoù meneget :' + reason: 'Abeg:' + statuses: 'Toudoù meneget:' title: + delete_statuses: Toudoù dilamet none: Diwall welcome: apps_android_action: Tapit anezhañ war Google Play @@ -622,8 +768,12 @@ br: edit_profile_title: Personelaat ho profil feature_action: Gouzout hiroc'h follow_action: Heuliañ + follow_title: Personelait ho kwazh pennañ + follows_subtitle: Heuilhit kontoù brudet-mat + follows_title: Piv heuliañ hashtags_title: Gerioù-klik diouzh ar c'hiz hashtags_view_more: Gwelet muioc'h a c'herioù-klik diouzh ar c'hiz + post_title: Grit hoc'h embannadur kentañ share_title: Rannit ho kont Mastodon sign_in_action: Kevreañ subject: Donemat e Mastodon @@ -632,6 +782,7 @@ br: follow_limit_reached: N'hallit ket heulian muioc'h eget %{limit} a zen signed_in_as: 'Aet-tre evel:' verification: + here_is_how: Setu penaos verification: Amprouadur webauthn_credentials: add: Ouzphennañ un alc'hwez surentez nevez diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 34f9074db1440c..93aba8598f3568 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -361,7 +361,7 @@ ca: title: Emojis personalitzats uncategorized: Sense categoria unlist: No llistat - unlisted: Públic silenciós + unlisted: Sense classificar update_failed_msg: No s'ha pogut actualitzar aquest emoji updated_msg: Emoji s'ha actualitzat correctament! upload: Carrega @@ -1892,7 +1892,6 @@ ca: private_long: Mostra només als seguidors public: Públic public_long: Tothom dins o fora Mastodon - unlisted: No llistat unlisted_long: Amagat dels resultats de cerca de Mastodon, de les tendències i de les línies temporals statuses_cleanup: enabled: Esborra automàticament tuts antics diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index 597dc5c3e8d1a5..cad526a3f5c6fb 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -258,6 +258,7 @@ ckb: title: ئیمۆجی دڵخواز uncategorized: هاوپۆل نەکراوە unlist: بێ پێرست + unlisted: پێرست نەبووە update_failed_msg: نه یتوانی ئه و ئیمۆجییه نوێ بکاتەوە updated_msg: ئیمۆجی بە سەرکەوتوویی نوێکرایەوە! upload: بارکردن @@ -941,7 +942,6 @@ ckb: private: شوێنکەوتوانی تەنها private_long: تەنها بۆ شوێنکەوتوانی پیشان بدە public: گشتی - unlisted: پێرست نەبووە stream_entries: sensitive_content: ناوەڕۆکی هەستیار tags: diff --git a/config/locales/co.yml b/config/locales/co.yml index 29217c0b658da7..73791b8447759f 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -268,6 +268,7 @@ co: title: Emoji parsunalizate uncategorized: Micca categurizatu unlist: Slistà + unlisted: Micca listata update_failed_msg: Ùn s’hè micca pussutu mette à ghjornu l’emoji updated_msg: L’emoji hè stata messa à ghjornu! upload: Caricà @@ -926,7 +927,6 @@ co: private: Solu per l’abbunati private_long: Mustrà solu à l’abbunati public: Pubblicu - unlisted: Micca listatu statuses_cleanup: exceptions: Eccezzione keep_direct: Cunservà i missaghji diretti diff --git a/config/locales/cs.yml b/config/locales/cs.yml index adb15c7d4d3023..815224f1388c3d 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -373,7 +373,7 @@ cs: title: Vlastní emoji uncategorized: Nezařazeno unlist: Neuvést - unlisted: Ztišené veřejné + unlisted: Neuvedeno update_failed_msg: Toto emoji nebylo možné aktualizovat updated_msg: Emoji úspěšně aktualizováno! upload: Nahrát @@ -2008,7 +2008,7 @@ cs: private_long: Zobrazit pouze sledujícím public: Veřejné public_long: Kdokoliv na Mastodonu i mimo něj - unlisted: Neuvedené + unlisted: Ztišené veřejné unlisted_long: Skryté z výsledků vyhledávání na Mastodonu, trendů a veřejných časových os statuses_cleanup: enabled: Automaticky mazat staré příspěvky diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 917b401d2e818b..d46d0b4ec2bdbf 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -379,7 +379,7 @@ cy: title: Emoji cyfaddas uncategorized: Heb gategori unlist: Dad-restru - unlisted: Tewi'r cyhoeddus + unlisted: Heb eu rhestru update_failed_msg: Methwyd a diweddaru'r emoji hwnnw updated_msg: Llwyddwyd i ddiweddaru'r emoji! upload: Llwytho @@ -2093,7 +2093,6 @@ cy: private_long: Dangos i ddilynwyr yn unig public: Cyhoeddus public_long: Unrhyw un ar ac oddi ar Mastodon - unlisted: Heb ei restru unlisted_long: Wedi'i guddio o ganlyniadau chwilio Mastodon, trendio, a llinellau amser cyhoeddus statuses_cleanup: enabled: Dileu hen bostiadau'n awtomatig diff --git a/config/locales/da.yml b/config/locales/da.yml index 6a6b46e6938650..f3679f4e18de5f 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -367,7 +367,7 @@ da: title: Tilpassede emojier uncategorized: Ukategoriseret unlist: Fjern fra liste - unlisted: Offentlig (stille) + unlisted: Ikke oplistet update_failed_msg: Kunne ikke opdatere denne emoji updated_msg: Emoji er opdateret! upload: Upload @@ -1922,7 +1922,7 @@ da: private_long: Vis kun til følgere public: Offentlig public_long: Alle på og udenfor Mastodon - unlisted: Ikke oplistet + unlisted: Offentlig (stille) unlisted_long: Skjult fra Mastodons søgeresultater, tendenser og offentlige tidslinjer statuses_cleanup: enabled: Slet automatisk gamle indlæg diff --git a/config/locales/de.yml b/config/locales/de.yml index a215667685b98e..256364feeac4e4 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -367,7 +367,7 @@ de: title: Eigene Emojis uncategorized: Unkategorisiert unlist: Nicht anzeigen - unlisted: Öffentlich (still) + unlisted: Nicht sichtbar update_failed_msg: Konnte dieses Emoji nicht bearbeiten updated_msg: Emoji erfolgreich bearbeitet! upload: Hochladen @@ -1922,7 +1922,7 @@ de: private_long: Nur für deine Follower sichtbar public: Öffentlich public_long: Alle innerhalb und außerhalb von Mastodon - unlisted: Nicht gelistet + unlisted: Öffentlich (still) unlisted_long: Wird nicht in den Suchergebnissen, Trends oder öffentlichen Timelines von Mastodon angezeigt statuses_cleanup: enabled: Alte Beiträge automatisch entfernen diff --git a/config/locales/devise.br.yml b/config/locales/devise.br.yml index a936bcc05fa488..4279f4303b60d6 100644 --- a/config/locales/devise.br.yml +++ b/config/locales/devise.br.yml @@ -84,7 +84,7 @@ br: updated_not_active: Kemmet eo bet ho ker-tremen ent reizh. registrations: destroyed: Kenavo! Ho kont a zo bet nullet gant berzh. Emichañs e viot adwelet tuchant. - update_needs_confirmation: Ho kont a zo bet hizivaet da benn, met ret eo deomp gwiriañ ho chomlec'h-postel nevez. Mar plij, gwiriit ho postelioù ha heuliit al lec'hienn evit kadarnaat ho chomlec'h-postel nevez. Gwiriit ho restr strobel ma ne oa ket resevet ar postel-mañ ganeoc'h. + update_needs_confirmation: Ho kont a zo bet hizivaet da benn, met ret eo deomp gwiriañ ho chomlec'h-postel nevez. Mar plij, gwiriit ho postelioù ha heuilhit al lec'hienn evit kadarnaat ho chomlec'h-postel nevez. Gwiriit ho restr strobel ma ne oa ket resevet ar postel-mañ ganeoc'h. updated: Ho kont a zo bet hizivaet da benn. sessions: already_signed_out: Digennasket gant berzh. diff --git a/config/locales/doorkeeper.br.yml b/config/locales/doorkeeper.br.yml index 119d8681f0a00f..8de992158b6047 100644 --- a/config/locales/doorkeeper.br.yml +++ b/config/locales/doorkeeper.br.yml @@ -113,7 +113,7 @@ br: applications: Arloadoù oauth2_provider: OAuth2 Pourvezer application: - title: OAuth aotre rekis + title: Aotre OAuth rekis scopes: admin:read: lenn holl titouroù ar servijer admin:read:accounts: lenn titouroù kizidik an holl kontoù @@ -124,19 +124,19 @@ br: follow: kemmañ darempredoù ho kont push: resev ho kemennoù push read: lenn holl titouroù ho kont - read:accounts: gwelout titouroù ar c'hontoù - read:blocks: gwelout ar pezh a zo stanket ganeoc'h - read:bookmarks: gwelout ho sinedoù - read:filters: gwelout ho siloù - read:follows: gwelout ar pezh a zo heuliet ganeoc'h - read:lists: gwelout ho listennoù - read:mutes: gwelout traoù pe kontoù kuzhet ganeoc'h + read:accounts: gwelet titouroù ar c'hontoù + read:blocks: gwelet ar pezh a zo stanket ganeoc'h + read:bookmarks: gwelet ho sinedoù + read:filters: gwelet ho siloù + read:follows: gwelet ar pezh a zo heuliet ganeoc'h + read:lists: gwelet ho listennoù + read:mutes: gwelet traoù pe kontoù kuzhet ganeoc'h read:notifications: gwellout ho kemennoù - read:reports: gwelout ho tanevelloù - read:statuses: gwelout an holl toudoù + read:reports: gwelet ho tanevelloù + read:statuses: gwelet an holl toudoù write: kemmañ holl titouroù ho kont write:accounts: kemmañ ho profil - write:blocks: berzañ kontoù ha domanioù + write:blocks: stankañ kontoù ha domanioù write:bookmarks: toudoù enrollet evel sinedoù write:filters: krouiñ siloù write:follows: heuliañ an dud diff --git a/config/locales/el.yml b/config/locales/el.yml index 000f5fbff2e6c5..7419d1a79e7c26 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -367,6 +367,7 @@ el: title: Προσαρμοσμένα emoji uncategorized: Χωρίς κατηγορία unlist: Αφαίρεση από λίστα + unlisted: Μη καταχωρημένα update_failed_msg: Αδυναμία ενημέρωσης του emoji updated_msg: Επιτυχής ενημέρωση του emoji! upload: Μεταμόρφωση @@ -1913,7 +1914,6 @@ el: private: Μόνο ακόλουθοι private_long: Εμφάνιση μόνο σε ακόλουθους public: Δημόσιο - unlisted: Μη καταχωρημένο statuses_cleanup: enabled: Αυτόματη διαγραφή παλιών αναρτήσεων enabled_hint: Διαγράφει αυτόματα τις αναρτήσεις σου μόλις φτάσουν σε ένα καθορισμένο όριο ηλικίας, εκτός αν ταιριάζουν με μία από τις παρακάτω εξαιρέσεις diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index e2cf9701d75400..ae858ae0083191 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -361,6 +361,7 @@ en-GB: title: Custom emojis uncategorized: Uncategorised unlist: Unlist + unlisted: Unlisted update_failed_msg: Could not update that emoji updated_msg: Emoji successfully updated! upload: Upload @@ -1882,7 +1883,6 @@ en-GB: private: Followers-only private_long: Only show to followers public: Public - unlisted: Unlisted statuses_cleanup: enabled: Automatically delete old posts enabled_hint: Automatically deletes your posts once they reach a specified age threshold, unless they match one of the exceptions below diff --git a/config/locales/eo.yml b/config/locales/eo.yml index c5b91c89afbce1..105f5d7bd8e797 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -364,7 +364,7 @@ eo: title: Propraj emoĝioj uncategorized: Nekategoriigita unlist: Nelistigi - unlisted: Diskrete publika + unlisted: Nelistigita update_failed_msg: Ĝisdatigi tiun emoĝion ne eblis updated_msg: Emoĝio sukcese ĝisdatigita! upload: Alŝuti @@ -1911,7 +1911,6 @@ eo: private: Montri nur al sekvantoj private_long: Montri nur al sekvantoj public: Publika - unlisted: Ne enlistigita statuses_cleanup: enabled: Aŭtomate forigi malnovajn postojn enabled_hint: Automate forigi viajn mesaĝojn kiam ili atingas la aĝlimon kaj havas escepton diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index bcaf077582d4df..ecb64f0ca96010 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -367,7 +367,7 @@ es-AR: title: Emojis personalizados uncategorized: Sin categoría unlist: No listar - unlisted: Público pero silencioso + unlisted: No listado update_failed_msg: No se pudo actualizar ese emoji updated_msg: "¡Emoji actualizado exitosamente!" upload: Subir @@ -1922,7 +1922,7 @@ es-AR: private_long: Sólo mostrar a seguidores public: Público public_long: Todo el mundo, dentro y fuera de Mastodon - unlisted: No listado + unlisted: Público pero silencioso unlisted_long: Oculto de los resultados de búsqueda, tendencias y líneas temporales públicas de Mastodon statuses_cleanup: enabled: Eliminar automáticamente mensajes antiguos diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 56d974485fd4b0..bd61eab792f664 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -367,7 +367,7 @@ es-MX: title: Emojis personalizados uncategorized: Sin clasificar unlist: No listado - unlisted: Ocultos + unlisted: Sin listar update_failed_msg: No se pudo actualizar ese emoji updated_msg: "¡Emoji actualizado con éxito!" upload: Subir @@ -1922,7 +1922,7 @@ es-MX: private_long: Solo mostrar a tus seguidores public: Público public_long: Cualquiera que esté dentro y fuera de Mastodon - unlisted: Público, pero no mostrar en la historia federada + unlisted: Pública, pero silenciosa unlisted_long: Ocultado de los resultados de búsqueda, tendencias y cronologías públicas de Mastodon statuses_cleanup: enabled: Borrar automáticamente publicaciones antiguas diff --git a/config/locales/es.yml b/config/locales/es.yml index 93b8bb8817ebf1..2c26f91b631503 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -367,7 +367,7 @@ es: title: Emojis personalizados uncategorized: Sin clasificar unlist: No listado - unlisted: Ocultos + unlisted: Sin listar update_failed_msg: No se pudo actualizar ese emoji updated_msg: "¡Emoji actualizado con éxito!" upload: Subir @@ -1922,7 +1922,7 @@ es: private_long: Solo mostrar a tus seguidores public: Pública public_long: Cualquiera dentro y fuera de Mastodon - unlisted: Pública, pero no mostrar en la historia federada + unlisted: Pública silenciosa unlisted_long: Ocultado de los resultados de búsqueda de Mastodon, tendencias y cronologías públicas statuses_cleanup: enabled: Borrar automáticamente publicaciones antiguas diff --git a/config/locales/et.yml b/config/locales/et.yml index 77008362ccabf4..09c89c00a6a84d 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -367,7 +367,7 @@ et: title: Emotikonid uncategorized: Kategoriseerimata unlist: Loetlemata - unlisted: Vaikselt avalik + unlisted: Ajajooneväline update_failed_msg: Ei saanud seda emotikoni uuendada updated_msg: Emotikoni uuendamine õnnestus! upload: Lae üles @@ -1922,7 +1922,7 @@ et: private_long: Näevad ainult jälgijad public: Avalik public_long: Nii kasutajad kui mittekasutajad - unlisted: Ajajooneväline + unlisted: Vaikselt avalik unlisted_long: Peidetud Mastodoni otsingutulemustest, pupulaarsust koguva sisu voost ja avalikult ajajoonelt statuses_cleanup: enabled: Vanade postituste automaatne kustutamine diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 92e504aa285821..cc045e3b8a2abc 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -350,6 +350,7 @@ eu: title: Emoji pertsonalak uncategorized: Kategoriarik gabe unlist: Kendu zerrendatik + unlisted: Zerrendatu gabea update_failed_msg: Ezin izan da emoji hori eguneratu updated_msg: Emoji-a ongi eguneratu da! upload: Igo @@ -1745,7 +1746,6 @@ eu: private: Jarraitzaileak soilik private_long: Erakutsi jarraitzaileei soilik public: Publikoa - unlisted: Zerrendatu gabea statuses_cleanup: enabled: Ezabatu bidalketa zaharrak automatikoki enabled_hint: Zure bidalketa zaharrak automatikoki ezabatzen ditu zehazturiko denbora mugara iristean, beheko baldintza bat betetzen ez bada diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 1fcdfaaee48109..571b18fda6304c 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -367,6 +367,7 @@ fa: title: شکلک‌های سفارشی uncategorized: دسته‌بندی نشده unlist: نافهرست + unlisted: فهرست نشده update_failed_msg: این شکلک نتوانست به‌روز شود updated_msg: شکلک با موفقیت به‌روز شد! upload: بارگذاری @@ -1909,10 +1910,10 @@ fa: reblog: تقویت نمی‌تواند سنجاق شود title: "%{name}: «%{quote}»" visibilities: + direct: اشاره خصوصی private: خصوصی private_long: تنها پیگیران شما می‌بینند public: عمومی - unlisted: فهرست نشده statuses_cleanup: enabled: حذف خودکار فرسته‌های قدیمی enabled_hint: فرسته‌هایتان را هنگام رسیدن به کرانهٔ سن خاصی به صورت خودکار حذف می‌کند، مگر این که با یکی از استثناهای زیر مطابق باشند diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 9291c1d301512f..104d06805ed1e2 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -367,7 +367,7 @@ fi: title: Mukautetut emojit uncategorized: Luokittelematon unlist: Poista listasta - unlisted: Vaivihkaa julkinen + unlisted: Ei listassa update_failed_msg: Emojin päivitys epäonnistui updated_msg: Emojin päivitys onnistui! upload: Lähetä @@ -1922,7 +1922,7 @@ fi: private_long: Näytä vain seuraajille public: Julkinen public_long: Kuka tahansa Mastodonissa ja sen ulkopuolella - unlisted: Listaamaton + unlisted: Vaivihkaa julkinen unlisted_long: Piilotettu Mastodonin hakutuloksista, trendeistä ja julkisilta aikajanoilta statuses_cleanup: enabled: Poista vanhat julkaisut automaattisesti diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 018e6ce80df97e..f362dd5bc2bbbf 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -367,7 +367,7 @@ fo: title: Sergjørd kenslutekn uncategorized: Ikki flokkað unlist: Tak av listanum - unlisted: Stillur almenningur + unlisted: Ikki listað update_failed_msg: Fekk ikki dagført hatta kensluteknið updated_msg: Kenslutekn dagført! upload: Legg upp @@ -1922,7 +1922,6 @@ fo: private_long: Vís einans fyri fylgjarum public: Alment public_long: Øll í og uttanfyri Mastodon - unlisted: Ólistað unlisted_long: Fjalt frá leitiúrslitum, rákum og almennum tíðarlinjum í Mastodon statuses_cleanup: enabled: Strika gamlar postar sjálvvirkandi diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index efc728307dd367..55d9342936da44 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -361,6 +361,7 @@ fr-CA: title: Émojis personnalisés uncategorized: Non catégorisé unlist: Délister + unlisted: Délisté update_failed_msg: Cet émoji n'a pas pu être mis à jour updated_msg: Émoji mis à jour avec succès ! upload: Téléverser @@ -1856,7 +1857,6 @@ fr-CA: private: Abonné⋅e⋅s uniquement private_long: Afficher seulement à vos vos abonné·e·s public: Publique - unlisted: Public sans être affiché sur le fil public statuses_cleanup: enabled: Supprimer automatiquement vos anciens messages enabled_hint: Supprime automatiquement vos messages une fois qu'ils ont atteint un seuil d'ancienneté défini, à moins qu'ils ne correspondent à l'une des exceptions ci-dessous diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 07627b39a72250..df509644cf0f6e 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -361,6 +361,7 @@ fr: title: Émojis personnalisés uncategorized: Non catégorisé unlist: Délister + unlisted: Délisté update_failed_msg: Cet émoji n'a pas pu être mis à jour updated_msg: Émoji mis à jour avec succès ! upload: Téléverser @@ -1856,7 +1857,6 @@ fr: private: Abonné⋅e⋅s uniquement private_long: Afficher seulement à vos vos abonné·e·s public: Publique - unlisted: Public sans être affiché sur le fil public statuses_cleanup: enabled: Supprimer automatiquement vos anciens messages enabled_hint: Supprime automatiquement vos messages une fois qu'ils ont atteint un seuil d'ancienneté défini, à moins qu'ils ne correspondent à l'une des exceptions ci-dessous diff --git a/config/locales/fy.yml b/config/locales/fy.yml index b00b81d9fb58ae..2e304aba78f8c7 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -367,6 +367,7 @@ fy: title: Lokale emoji uncategorized: Net kategorisearre unlist: Net yn list + unlisted: Net werjaan update_failed_msg: Dizze emoji koe net bywurke wurde updated_msg: Emoji fernije is slagge! upload: Oplade @@ -1908,7 +1909,6 @@ fy: private: Allinnich folgers private_long: Allinnich oan jo folgers toane public: Iepenbier - unlisted: Minder iepenbier statuses_cleanup: enabled: Automatysk âlde berjochten fuortsmite enabled_hint: Smyt jo berjochten automatysk fuort sa gau as se in bepaalde leeftiidsgrins berikke, útsein se oerienkomme mei ien fan de ûndersteande útsûnderingen diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 04ccd623ad9368..e29cddb95ec727 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -376,7 +376,7 @@ ga: title: Emojis saincheaptha uncategorized: Neamhchatagóirithe unlist: Neamhliostaigh - unlisted: Pobal ciúin + unlisted: Neamhliostaithe update_failed_msg: Níorbh fhéidir an emoji sin a nuashonrú updated_msg: D'éirigh le Emoji a nuashonrú! upload: Uaslódáil @@ -1856,6 +1856,9 @@ ga: self_vote: Ní féidir leat vótáil i do phobalbhreith féin too_few_options: caithfidh níos mó ná mír amháin a bheith ann too_many_options: ní féidir níos mó ná %{max} mír a bheith ann + vote: Vótaigh + posting_defaults: + explanation: Úsáidfear na socruithe seo mar réamhshocruithe nuair a chruthaíonn tú poist nua, ach is féidir leat iad a chur in eagar in aghaidh an phoist laistigh den chumadóir. preferences: other: Eile posting_defaults: Réamhshocruithe á bpostáil @@ -2048,7 +2051,7 @@ ga: private_long: Taispeáin do leantóirí amháin public: Poiblí public_long: Aon duine ar Mastodon agus lasmuigh de - unlisted: Neamhliostaithe + unlisted: Pobal ciúin unlisted_long: I bhfolach ó thorthaí cuardaigh Mastodon, treochtaí, agus amlínte poiblí statuses_cleanup: enabled: Scrios seanphostálacha go huathoibríoch diff --git a/config/locales/gd.yml b/config/locales/gd.yml index edb49ee87a0113..e7ff0cb57e8566 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -367,6 +367,7 @@ gd: title: Emojis gnàthaichte uncategorized: Gun roinn-seòrsa unlist: Falaich o liostaichean + unlisted: Falaichte o liostaichean update_failed_msg: Cha b’ urrainn dhuinn an t-Emoji sin ùrachadh updated_msg: Chaidh an t-Emoji ùrachadh! upload: Luchdaich suas @@ -1964,7 +1965,6 @@ gd: private: Luchd-leantainn a-mhàin private_long: Na seall ach dhan luchd-leantainn public: Poblach - unlisted: Falaichte o liostaichean statuses_cleanup: enabled: Sguab às seann-phostaichean gu fèin-obrachail enabled_hint: Sguabaidh seo às na seann-phostaichean agad gu fèin-obrachail nuair a ruigeas iad stairsneach aoise sònraichte ach ma fhreagras iad ri gin dhe na h-eisgeachdan gu h-ìosal diff --git a/config/locales/gl.yml b/config/locales/gl.yml index f2f1d2d8c47601..1f5aeee388348c 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -367,7 +367,7 @@ gl: title: Emoticonas personalizadas uncategorized: Sen categoría unlist: Non listar - unlisted: Público limitado + unlisted: Fóra das listas update_failed_msg: Non foi posíbel actualizar a emoticona updated_msg: Actualizouse a emoticona de xeito correcto! upload: Subir @@ -1922,7 +1922,7 @@ gl: private_long: Mostrar só as seguidoras public: Público public_long: Para calquera dentro e fóra de Mastodon - unlisted: Fóra das listas + unlisted: Pública limitada unlisted_long: Non aparece nos resultados de buscas en Mastodon, nas tendencias e cronoloxías públicas statuses_cleanup: enabled: Borrar automáticamente publicacións antigas diff --git a/config/locales/he.yml b/config/locales/he.yml index 1629295b4707c5..14425557faf5be 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -373,7 +373,7 @@ he: title: אמוג'י שהעלינו uncategorized: לא מסווגים unlist: בטל רישום - unlisted: ציבורי שקט + unlisted: לא רשומים update_failed_msg: לא ניתן היה לעדכן את היצגן הזה updated_msg: יצגן עודכן בהצלחה! upload: העלאה @@ -936,7 +936,7 @@ he: title: פרסומי החשבון - @%{name} trending: נושאים חמים view_publicly: צפיה בפומבי - visibility: נראות + visibility: חשיפה with_media: עם מדיה strikes: actions: @@ -2008,7 +2008,7 @@ he: private_long: להצגה לעוקבים בלבד public: פומבי public_long: כל הגולשים, מחוברים למסטודון או לא - unlisted: מוסתר + unlisted: ציבורי שקט unlisted_long: מוסתרת מתוצאות חיפוש במסטודון, נושאים חמים וציר הזמן הציבורי statuses_cleanup: enabled: מחק הודעות ישנות אוטומטית diff --git a/config/locales/hr.yml b/config/locales/hr.yml index a85aed588242e6..b39a0a597d7235 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -217,7 +217,6 @@ hr: visibilities: private: Samo pratitelji public: Javno - unlisted: Neprikazano statuses_cleanup: enabled: Automatski obriši strare postove stream_entries: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 4967be453f5dde..979ff4fc480679 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -367,7 +367,7 @@ hu: title: Egyéni emodzsik uncategorized: Nem kategorizált unlist: Elrejtés a listáról - unlisted: Csendes nyilvános + unlisted: Nem listázott update_failed_msg: Nem sikerült frissíteni az emodzsit updated_msg: Emodzsi sikeresen frissítve! upload: Feltöltés @@ -1922,7 +1922,6 @@ hu: private_long: Csak a követőidnek jelenik meg public: Nyilvános public_long: Bárki a Mastodonon és azon kívül - unlisted: Listázatlan unlisted_long: Elrejtve a Mastodon keresési találataiban, a felkapottak között és a nyilvános idővonalakon statuses_cleanup: enabled: Régi bejegyzések automatikus törlése diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 69edde570f02e9..823d811f99f26d 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -229,6 +229,7 @@ hy: title: Սեփական էմօջիներ uncategorized: Չդասակարգուած unlist: Ապացուցակագրում + unlisted: Ծածուկ update_failed_msg: Էմոջին չի կարող թարմացուել updated_msg: Էմոջին թարմացուեց upload: Վերբեռնել @@ -779,7 +780,6 @@ hy: private: Միայն հետեւողներին private_long: Հասանելի միայն հետեւորդներին public: Հրապարակային - unlisted: Ծածուկ statuses_cleanup: exceptions: Բացառություններ min_age: diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 681cbd4cc15c1e..062535f73e8655 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -367,7 +367,7 @@ ia: title: Emojis personalisate uncategorized: Sin categoria unlist: Non listar - unlisted: Public, non listate + unlisted: Non listate update_failed_msg: Non poteva actualisar le emoji updated_msg: Emoji actualisate con successo! upload: Incargar @@ -1919,7 +1919,6 @@ ia: private_long: Solmente monstrar a sequitores public: Public public_long: Quicunque, sur Mastodon o non - unlisted: Non listate unlisted_long: Celate in resultatos de recerca, tendentias e chronologias public de Mastodon statuses_cleanup: enabled: Deler automaticamente le messages ancian diff --git a/config/locales/id.yml b/config/locales/id.yml index b0ee019098229a..eb28e05919faa5 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -317,6 +317,7 @@ id: title: Emoji kustom uncategorized: Tak terkategorikan unlist: Tak terdaftar + unlisted: Tak terdaftar update_failed_msg: Tak dapat memperbarui emoji updated_msg: Emoji berhasil diperbarui! upload: Unggah @@ -1381,7 +1382,6 @@ id: private: Khusus pengikut private_long: Hanya tampilkan ke pengikut public: Publik - unlisted: Bisa dilihat semua orang, tapi tidak ditampilkan di linimasa publik statuses_cleanup: enabled: Otomatis hapus kiriman lama enabled_hint: "Otomatis menghapus kiriman Anda saat sudah mencapai batasan usia, kecuali yang cocok \nsesuai di bawah ini" diff --git a/config/locales/ie.yml b/config/locales/ie.yml index 2c767daa37ebb8..97fdb7cfd87d93 100644 --- a/config/locales/ie.yml +++ b/config/locales/ie.yml @@ -319,6 +319,7 @@ ie: title: Customisat emoji uncategorized: Íncategorisat unlist: Delistar + unlisted: Delistat update_failed_msg: Ne posset actualisar ti emoji updated_msg: Emoji successosimen actualisat! upload: Cargar @@ -1624,7 +1625,6 @@ ie: private: Solmen por sequitores private_long: Monstrar solmen a sequitores public: Public - unlisted: Delistat statuses_cleanup: enabled: Automaticmen deleter old postas enabled_hint: Deleter automaticmen tui postas quande ili atinge un cert etá, except si ili concorda con un del exceptiones ci infra diff --git a/config/locales/io.yml b/config/locales/io.yml index c1f6825fbeb94a..4603c429a24735 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -356,6 +356,7 @@ io: title: Kustumizita emocimaji uncategorized: Nekategorigita unlist: Delistigez + unlisted: Delistigita update_failed_msg: Ne povas novigar ta emocimajo updated_msg: Emocimajo sucesoze novigesis! upload: Adkargar @@ -1745,7 +1746,6 @@ io: private: Montrar nur a sequanti private_long: Nur montrez a sequanti public: Publika - unlisted: Publika, ma ne aperos en publika tempolinei statuses_cleanup: enabled: Automata efacez olda posti enabled_hint: Automata efacez vua posti pos oli atingar fixita oldeslimito, se oli ne parigesas a 1 de suba ecepti diff --git a/config/locales/is.yml b/config/locales/is.yml index 7504628ad348b4..38e09e680374b3 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -367,7 +367,7 @@ is: title: Sérsniðin tjáningartákn uncategorized: Óflokkað unlist: Afskrá - unlisted: Hljóðlátt opinbert + unlisted: Óskráð update_failed_msg: Gat ekki uppfært þetta tjáningartákn updated_msg: Tókst að uppfæra tjáningartákn! upload: Senda inn @@ -1926,7 +1926,7 @@ is: private_long: Aðeins birt fylgjendum public: Opinber public_long: Hver sem er, á og utan Mastodon - unlisted: Óskráð + unlisted: Hljóðlátt opinbert unlisted_long: Falið frá leitarniðurstöðum Mastodon, vinsældalistum og opinberum tímalínum statuses_cleanup: enabled: Sjálfkrafa eyða eldri færslum diff --git a/config/locales/it.yml b/config/locales/it.yml index 4000ee4b12d4e3..9cec4dccb72c2c 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -367,7 +367,7 @@ it: title: Emoji personalizzate uncategorized: Nessuna categoria unlist: Escludi dall'elenco - unlisted: Pubblico silenzioso + unlisted: Non elencato update_failed_msg: Impossibile aggiornare questa emojii updated_msg: Emoji aggiornata con successo! upload: Carica @@ -1924,7 +1924,7 @@ it: private_long: Mostra solo ai seguaci public: Pubblico public_long: Chiunque dentro e fuori Mastodon - unlisted: Pubblico, ma non visibile sulla timeline pubblica + unlisted: Pubblico silenzioso unlisted_long: Nascosto dai risultati di ricerca di Mastodon, dalle tendenze e dalle timeline pubbliche statuses_cleanup: enabled: Cancella automaticamente i vecchi post diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 09169210b6517b..8e09cd93a0b57d 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -358,6 +358,7 @@ ja: title: カスタム絵文字 uncategorized: 未分類 unlist: 非表示 + unlisted: 非表示 update_failed_msg: 絵文字を更新できませんでした updated_msg: 絵文字の更新に成功しました! upload: アップロード @@ -1828,7 +1829,6 @@ ja: private: フォロワー限定 private_long: フォロワーにのみ表示されます public: 公開 - unlisted: 非収載 statuses_cleanup: enabled: 古い投稿を自動的に削除する enabled_hint: 設定した期間を過ぎた投稿は、以下の例外に該当しない限り、自動的に削除されます diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 039a7a0b1028a3..ec623f8be2346e 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -108,6 +108,7 @@ ka: shortcode: მოკლე-კოდი shortcode_hint: მინ. 2 ნიშანი, მხოლოდ ალფანუმერიკული ნიშნები და "ქვედა-ტირეები" title: პერსონალიზირებული ემოჯიები + unlisted: ჩამოუთვლელი update_failed_msg: ემოჯის განახლება ვერ მოხერხდა updated_msg: ემოჯი წარმატებით განახლდა! upload: ატვირთვა @@ -435,7 +436,6 @@ ka: private: მხოლოდ-მიმდევრები private_long: აჩვენე მხოლოდ მიმდევრებს public: საჯარო - unlisted: ჩამოუთვლელი stream_entries: sensitive_content: მგრძნობიარე კონტენტი themes: diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 906d7c8cc97fb6..d710d00ba577f4 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -223,6 +223,7 @@ kab: title: Imujiten udmawanen uncategorized: War-taggayt unlist: Kkes seg wumuɣ + unlisted: Yettwakkes seg wumuɣ update_failed_msg: Ur izmir ara ad-issali umuji-a upload: Sali dashboard: @@ -886,7 +887,6 @@ kab: private: Imeḍfaṛen kan private_long: Ssken i ymeḍfaṛen kan public: Azayez - unlisted: War tabdert statuses_cleanup: enabled: Tukksa n tsuffaɣ tiqburin s wudem awurman min_age: diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 4b32abdf5b71e1..090aaa691aea11 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -151,6 +151,7 @@ kk: title: Таңдаулы эмодзилар uncategorized: Санатсыз unlist: Тізімге енбеген + unlisted: Тізімде жоқ update_failed_msg: Бұл эмодзи жаңартылмады updated_msg: Эмодзи сәтті жаңартылды! upload: Жүктеу @@ -651,7 +652,6 @@ kk: private: Тек оқырмандарға private_long: Тек оқырмандарға ғана көрінеді public: Ашық - unlisted: Тізімге енбеген stream_entries: sensitive_content: Нәзік мазмұн tags: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index e4f1493c351ee1..db39c92bf14c8a 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -364,7 +364,7 @@ ko: title: 커스텀 에모지 uncategorized: 분류되지 않음 unlist: 목록에서 제거 - unlisted: 조용한 공개 + unlisted: 목록에 없음 update_failed_msg: 에모지를 업데이트 할 수 없습니다 updated_msg: 성공적으로 에모지를 업데이트했습니다! upload: 업로드 @@ -1702,6 +1702,7 @@ ko: self_vote: 자신이 만든 설문에는 투표할 수 없음 too_few_options: 둘 이상의 항목이 있어야 함 too_many_options: 항목은 %{max}개를 넘을 수 없습니다 + vote: 투표 preferences: other: 기타 posting_defaults: 게시물 기본설정 @@ -1878,7 +1879,7 @@ ko: private_long: 팔로워에게만 공개됩니다 public: 공개 public_long: 마스토돈 내외 모두 - unlisted: 미등재 + unlisted: 조용한 공개 unlisted_long: 마스토돈 검색결과, 유행, 공개 타임라인에서 숨기기 statuses_cleanup: enabled: 오래된 게시물 자동 삭제 diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 9bc02ea2f0eadc..31b4a387d9d344 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -314,6 +314,7 @@ ku: title: Hestokên kesane uncategorized: Bêbeş unlist: Dervî rêzokê + unlisted: Nerêzokkirî update_failed_msg: Ev hestok nehate rojanekirin updated_msg: Emojî bi awayekî serkeftî hate rojanekirin! upload: Bar bike @@ -1407,7 +1408,6 @@ ku: private: Tenê şopîneran private_long: Tenê bo şopîneran nîşan bide public: Gelemperî - unlisted: Nerêzokkirî statuses_cleanup: enabled: Şandiyên berê bi xweberî va jê bibe enabled_hint: Gava ku ew gihîştibe sînorê temenê diyarkirî, şandiyên te bi xweberî jê dibe, ji bilî van awareteyên jêrîn diff --git a/config/locales/lad.yml b/config/locales/lad.yml index 2791843f989ea1..9a3666f7a6e3bb 100644 --- a/config/locales/lad.yml +++ b/config/locales/lad.yml @@ -348,6 +348,7 @@ lad: title: Emojis personalizados uncategorized: No kategorizado unlist: No lista + unlisted: No listado update_failed_msg: No se pudo aktualizar akel emoji updated_msg: Emoji aktualizado kon sukseso! upload: Karga @@ -1750,7 +1751,6 @@ lad: private: Solo suivantes private_long: Solo amostra a tus segidores public: Publiko - unlisted: No listado statuses_cleanup: enabled: Otomatikamente efasa publikasyones viejas enabled_hint: Supreme otomatikamente tus publikasyones kuando alkansen un limito de tiempo espesifikado, a manko ke koensiden kon alguna de las eksepsiones detalyadas debasho diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 92791bd795d2f9..b1193eeee1b057 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -352,6 +352,7 @@ lt: title: Asmeniniai jaustukai uncategorized: Be kategorijos unlist: Neįtraukti į sąrašą + unlisted: Neįtrauktas į sąrašą update_failed_msg: Jaustukas negalėjo būti pakeistas updated_msg: Jaustukas sėkmingai pakeistas! upload: Įkelti @@ -1219,7 +1220,6 @@ lt: private: Tik sekėjams private_long: rodyti tik sekėjams public: Vieša - unlisted: Neįtrauktas į sąrašą statuses_cleanup: enabled_hint: Automatiškai ištrina įrašus, kai jie pasiekia nustatytą amžiaus ribą, nebent jie atitinka vieną iš toliau nurodytų išimčių interaction_exceptions_explanation: Atkreipk dėmesį, kad negarantuojama, jog įrašai nebus ištrinti, jei jų mėgstamumo ar pasidalinimo riba bus žemesnė, nors vieną kartą ji jau buvo viršyta. diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 269c31aeda27b6..431e338e13b119 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -358,6 +358,7 @@ lv: title: Pielāgotās emocijzīmes uncategorized: Nekategorizētās unlist: Izslēgt + unlisted: Neminētie update_failed_msg: Nevarēja atjaunināt šo emocijzīmi updated_msg: Emocijzīme sekmīgi atjaunināta. upload: Augšupielādēt @@ -1908,7 +1909,6 @@ lv: private: Tikai sekotājiem private_long: Rādīt tikai sekotājiem public: Publisks - unlisted: Nerindota statuses_cleanup: enabled: Automātiski dzēst vecās ziņas enabled_hint: Automātiski izdzēš Tavus ierakstus, tiklīdz tie sasniedz noteiktu vecuma slieksni, ja vien tie neatbilst kādam no zemāk norādītajiem izņēmumiem diff --git a/config/locales/ms.yml b/config/locales/ms.yml index d9c057e503aae3..fb607ea2b89a51 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -321,6 +321,7 @@ ms: title: Emoji sendiri uncategorized: Tidak dikategorikan unlist: Nyahsenaraikan + unlisted: Dinyahsenaraikan update_failed_msg: Tidak boleh mengemaskini emoji tersebut updated_msg: Emoji berjaya dikemaskini! upload: Muat naik @@ -1556,7 +1557,6 @@ ms: private: Pengikut sahaja private_long: Hanya tunjukkan kepada pengikut public: Awam - unlisted: Tidak tersenarai statuses_cleanup: enabled: Padam hantaran lama secara automatik enabled_hint: Memadamkan pos anda secara automatik setelah mereka mencapai ambang umur yang ditentukan, melainkan ia sepadan dengan salah satu pengecualian di bawah diff --git a/config/locales/my.yml b/config/locales/my.yml index 6e03b196c38b8e..87ccadfd7e2878 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -316,6 +316,7 @@ my: title: စိတ်ကြိုက်အီမိုဂျီများ uncategorized: အမျိုးအစားခွဲခြားထားခြင်းမရှိပါ unlist: စာရင်းမသွင်းထားပါ + unlisted: စာရင်းမသွင်းထားပါ update_failed_msg: ထိုအီမိုဂျီကို ပြင်ဆင်၍မရပါ updated_msg: အီမိုဂျီကို ပြင်ဆင်ပြီးပါပြီ။ upload: တင္ရန် @@ -1547,7 +1548,6 @@ my: private: စောင့်ကြည့်သူများသာ private_long: စောင့်ကြည့်သူများကိုသာ ပြရန် public: အများမြင် - unlisted: စာရင်းမသွင်းထားပါ statuses_cleanup: enabled: ပို့စ်အဟောင်းများကို အလိုအလျောက် ဖျက်ပါ enabled_hint: အောက်ပါခြွင်းချက်များထဲမှ တစ်ခုနှင့် မကိုက်ညီပါက သတ်မှတ်ထားသည့်ကာလအပိုင်းအခြားသို့ ရောက်သည်နှင့် သင့်ပို့စ်များကို အလိုအလျောက် ဖျက်ပါမည် diff --git a/config/locales/nan.yml b/config/locales/nan.yml index 334f8c31a26812..ea8047f2ee4bda 100644 --- a/config/locales/nan.yml +++ b/config/locales/nan.yml @@ -364,7 +364,7 @@ nan: title: 自訂emoji uncategorized: Iáu無分類 unlist: Tuì列單the̍h掉 - unlisted: 恬靜公開 + unlisted: The̍h掉ah update_failed_msg: Bē當更新hit ê emoji updated_msg: Emoji成功更新ah! upload: 傳上去 @@ -823,8 +823,68 @@ nan: title: 預設kā用者tuì tshiau-tshuē ia̋n-jín ê索引排除 discovery: follow_recommendations: 跟tuè建議 + preamble: Kā心適ê內容浮現出來,ē當幫tsān tī Mastodon頂siáng lóng可能m̄知ê新手。控制tsē-tsē發現lí ê服侍器ê特色作品ê功能án-nuá運作。 + privacy: 隱私權 + profile_directory: 個人資料ê目錄 + public_timelines: 公共ê時間線 + publish_statistics: 發布統計 + title: 發現 + trends: 趨勢 + domain_blocks: + all: Kàu ta̍k ê lâng + disabled: 無kàu tó tsi̍t ê + users: Kàu ta̍k位登入ê用者 + registrations: + moderation_recommandation: 佇開放hōo ta̍k ê lâng註冊進前,請確認lí有夠額koh主動反應ê管理團隊! + preamble: 控制ē當佇lí ê服侍器註冊ê人。 + title: 註冊 + registrations_mode: + modes: + approved: 註冊tio̍h愛核准 + none: 無lâng通註冊 + open: Ta̍k ê lâng lóng ē當註冊 + warning_hint: Guán建議用「註冊tio̍h愛核准」,除非lí tuì lí ê管理團隊ē當不管時處理pùn-sò訊息kap惡意註冊有信心。 + security: + authorized_fetch: 要求tuì聯邦ê服侍器ê認證 + authorized_fetch_hint: 要求tuì聯邦ê服侍器ê驗證ē當koh khah嚴格執行用者級kap服侍器級ê封鎖。M̄-kú ē致kàu性能處罰ê損失,減少lí ê回應ê擴散程度,mā有可能引入kap tsi̍t-kuá聯邦服務ê相容性問題。另外,tse bē當防止別lâng專工掠lí ê公開PO文kap口座。 + authorized_fetch_overridden_hint: 因為hōo環境變數khàm掉,lí tsit-má bē當改tsit ê設定。 + federation_authentication: 聯邦驗證ê執行 + title: 服侍器ê設定 + site_uploads: + delete: Thâi掉傳上去ê檔案 + destroyed_msg: 成功thâi掉傳上去kàu本站ê內容ah! + software_updates: + critical_update: 重要—請緊升級 + description: 建議kā lí ê Mastodon安裝維持上新ê狀態,the̍h著上新ê修正kap功能。另外,隨時更新Mastodon有時陣真重要,ē當避免安全問題。因為tsiah-ê原因,Mastodon每30分鐘檢查更新,mā ē根據lí ê電子phue通知ê偏愛設定kā lí通知。 + documentation_link: 看詳細 + release_notes: 版本ê資訊 + title: Ē當the̍h ê更新 + type: 類型 + types: + major: 大ê版本更新 + minor: 細ê版本更新 + patch: 碎布(patch)公開—修正錯誤kap容易作用ê改變 + version: 版本 statuses: + account: 作者 + application: 應用程式 + back_to_account: Tńg去口座ê頁 + back_to_report: Tńg去檢舉ê頁 + batch: + add_to_report: '加kàu檢舉 #%{id}' + remove_from_report: Tuì檢舉suá掉 + report: 檢舉 + contents: 內容 + deleted: Thâi掉ah + favourites: 收藏 + history: 版本ê歷史 + in_reply_to: 回應 language: 語言 + media: + title: 媒體 + metadata: Meta資料 + no_history: Tsit篇PO文iáu無hōo lâng編輯 + no_status_selected: 因為無揀任何PO文,所以lóng無改變 trends: tags: dashboard: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index c9bdf1595e1d2b..1cd1a15b01be4f 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -367,7 +367,7 @@ nl: title: Lokale emoji’s uncategorized: Niet gecategoriseerd unlist: Niet in lijst - unlisted: Minder openbaar + unlisted: Niet weergegeven update_failed_msg: Deze emoji kon niet worden bijgewerkt updated_msg: Bijwerken van emoji is geslaagd! upload: Uploaden diff --git a/config/locales/nn.yml b/config/locales/nn.yml index ca347958dcd115..e544ee62471a05 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -367,7 +367,7 @@ nn: title: Eigne kjensleteikn uncategorized: Ukategorisert unlist: Uoppfør - unlisted: Stille offentleg + unlisted: Ikkje oppført update_failed_msg: Klarte ikkje å oppdatera emojien updated_msg: Kjensleteiknet er oppdatert! upload: Last opp @@ -1919,7 +1919,6 @@ nn: private_long: Vis berre til fylgjarar public: Offentleg public_long: Alle på og utanfor Mastodon - unlisted: Ikkje oppført unlisted_long: Gøymt frå søkjeresultat, populært og offentleg på Mastodon statuses_cleanup: enabled: Slett gamle innlegg automatisk diff --git a/config/locales/no.yml b/config/locales/no.yml index 7cbf08b48e471d..ef69532d1c77f0 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -323,6 +323,7 @@ title: Egenoppførte emojier uncategorized: Ukategorisert unlist: Fjern oppføring + unlisted: Unoterte update_failed_msg: Kunne ikke oppdatere emojien updated_msg: Emoji oppdatert uten problemer! upload: Last opp @@ -1631,7 +1632,6 @@ private: Privat private_long: Synlig kun for følgere public: Offentlig - unlisted: Uoppført statuses_cleanup: enabled: Slett gamle innlegg automatisk enabled_hint: Sletter innleggene dine automatisk når de oppnår en angitt alder, med mindre de samsvarer med ett av unntakene nedenfor diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 82888e38ffeed8..4c95bae419d745 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -219,6 +219,7 @@ oc: title: Emojis personals uncategorized: Sens categoria unlist: Listar pas + unlisted: Pas listat update_failed_msg: Mesa a jorn de l’emoji fracasada updated_msg: Emoji ben mes a jorn ! upload: Enviar @@ -850,7 +851,6 @@ oc: private: Seguidors solament private_long: Mostrar pas qu’als seguidors public: Public - unlisted: Pas listat statuses_cleanup: enabled: Supression automatica de publicacions ancianas enabled_hint: Suprimís automaticament vòstras publicacions quand correspondon al critèri d’atge causit, levat se correspondon tanben a las excepcions çai-jos diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 6945ce57c01366..c37470fdff1e97 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -372,6 +372,7 @@ pl: title: Niestandardowe emoji uncategorized: Bez kategorii unlist: Usuń z listy + unlisted: Niewidoczne update_failed_msg: Nie udało się zaktualizować emoji updated_msg: Pomyślnie zaktualizowano emoji! upload: Dodaj @@ -1794,6 +1795,7 @@ pl: self_vote: Nie możesz głosować we własnych ankietach too_few_options: musi zawierać przynajmniej dwie opcje too_many_options: nie może zawierać więcej niż %{max} opcji + vote: Głosuj preferences: other: Pozostałe posting_defaults: Domyślne ustawienia wpisów @@ -1971,12 +1973,15 @@ pl: limit: Przekroczyłeś maksymalną liczbę przypiętych wpisów ownership: Nie możesz przypiąć cudzego wpisu reblog: Nie możesz przypiąć podbicia wpisu + quote_policies: + followers: Tylko obserwujący + nobody: Tylko ja + public: Każdy title: '%{name}: "%{quote}"' visibilities: private: Tylko dla obserwujących private_long: Widoczne tylko dla osób, które Cię obserwują public: Publiczne - unlisted: Niewypisane statuses_cleanup: enabled: Automatycznie usuwaj stare wiadomości enabled_hint: Automatycznie usuwa Twoje posty, gdy osiągną określony próg wiekowy, chyba że spełniają jeden z poniższych wyjątków diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 0d6bf76b3f37de..d88a335383a712 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -367,7 +367,7 @@ pt-BR: title: Emojis personalizados uncategorized: Não categorizado unlist: Não listar - unlisted: Público silencioso + unlisted: Não-listado update_failed_msg: Não foi possível atualizar esse emoji updated_msg: Emoji atualizado! upload: Enviar @@ -1922,7 +1922,6 @@ pt-BR: private_long: Exibir apenas para seguidores public: Público public_long: Qualquer um dentro ou fora do Mástodon - unlisted: Não listado unlisted_long: Oculto aos resultados de pesquisa em Mástodon statuses_cleanup: enabled: Excluir publicações antigas automaticamente diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 3d9c4e2535b50f..acd5bc8c1324b7 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1919,7 +1919,6 @@ pt-PT: private_long: Mostrar só aos seguidores public: Público public_long: Qualquer pessoa dentro e fora do Mastodon - unlisted: Não listado unlisted_long: Oculto dos resultados de pesquisa, tendências e linhas do tempo públicas do Mastodon statuses_cleanup: enabled: Eliminar publicações antigas automaticamente diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 17d10f7924b5ff..6b2dc6a7f3b665 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -269,6 +269,7 @@ ro: title: Emoticoane personalizate uncategorized: Necategorizat unlist: Nu mai lista + unlisted: Nelistat update_failed_msg: Nu s-a putut actualiza emoticonul respectiv updated_msg: Emoticon actualizat cu succes! upload: Încarcă @@ -687,7 +688,6 @@ ro: visibilities: private: Doar urmăritorii private_long: Arată doar urmăritorilor - unlisted: Nelistat stream_entries: sensitive_content: Conținut sensibil tags: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 895eb869d967d2..32ecfa0d0c6ad7 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -373,6 +373,7 @@ ru: title: Эмодзи uncategorized: Вне категорий unlist: Из списка + unlisted: Не в списке update_failed_msg: Не удалось обновить эмодзи updated_msg: Эмодзи обновлён upload: Загрузить @@ -1979,7 +1980,6 @@ ru: private: Только для подписчиков private_long: Доступен только вашим подписчикам public: Публичный - unlisted: Скрытый statuses_cleanup: enabled: Автоматически удалять старые посты enabled_hint: По истечении определённого срока с момента публикации ваши посты, кроме соответствующих отмеченным ниже исключениям, будут автоматически удалены diff --git a/config/locales/sc.yml b/config/locales/sc.yml index 444b26eb80b8f3..0edddd7e8ced64 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -303,6 +303,7 @@ sc: title: Emojis personalizados uncategorized: Sena categoria unlist: Esclude de sa lista + unlisted: Esclùidu de sa lista update_failed_msg: Impossìbile atualizare custu emoji updated_msg: Emoji atualizadu upload: Càrriga @@ -1158,7 +1159,6 @@ sc: private: Isceti pro chie ti sighit private_long: Ammustra isceti a chie ti sighit public: Pùblicu - unlisted: Esclùidu de sa lista statuses_cleanup: exceptions: Etzetziones min_age: diff --git a/config/locales/sco.yml b/config/locales/sco.yml index c20b14dab3948d..ad464f33ae47d0 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -312,6 +312,7 @@ sco: title: Custom emoji uncategorized: No categorized unlist: Unlist + unlisted: Unlistit update_failed_msg: Cuidnae update that emoji updated_msg: Emoji successfully updatit! upload: Upload @@ -1397,7 +1398,6 @@ sco: private: Follaers-ainly private_long: Ainly shaw tae follaers public: Public - unlisted: No listit statuses_cleanup: enabled: Automatically delete auld posts enabled_hint: Automatically deletes yer posts ance they reach a specified age threshold, unless they match ane o the exceptions ablow diff --git a/config/locales/si.yml b/config/locales/si.yml index 8e7fffc75caa84..c19b9260f60947 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -279,6 +279,7 @@ si: title: අභිරුචි ඉමෝජි uncategorized: වර්ගීකරණය නොකළ unlist: ලැයිස්තුගත නොකරන්න + unlisted: ලැයිස්තුගත නොකළ update_failed_msg: එම ඉමොජි යාවත්කාලීන කළ නොහැකි විය updated_msg: ඉමොජි සාර්ථකව යාවත්කාලීන කරන ලදී! upload: උඩුගත කරන්න @@ -1270,7 +1271,6 @@ si: private: අනුගාමිකයින් පමණි private_long: අනුගාමිකයින්ට පමණක් පෙන්වන්න public: ප්‍රසිද්ධ - unlisted: ලැයිස්තුගත නොකළ statuses_cleanup: enabled: පරණ ලිපි ස්වයංක්‍රීයව මකන්න exceptions: හැර දැමීම් diff --git a/config/locales/simple_form.br.yml b/config/locales/simple_form.br.yml index c0a2fb38a4e41e..d2a316b5e538e1 100644 --- a/config/locales/simple_form.br.yml +++ b/config/locales/simple_form.br.yml @@ -17,6 +17,10 @@ br: fields: name: Label value: Endalc'h + account_alias: + acct: Anaouder ar gont gozh + account_migration: + acct: Anaouder ar gont nevez account_warning_preset: title: Titl admin_account_action: @@ -29,6 +33,7 @@ br: announcement: all_day: Darvoud a-hed an devezh ends_at: Diwezh an darvoud + scheduled_at: Rakluniañ an embann starts_at: Deroù an darvoud text: Kemenn defaults: @@ -52,13 +57,19 @@ br: setting_display_media_hide_all: Kuzhat pep tra setting_display_media_show_all: Diskouez pep tra setting_emoji_style: Stil an emojioù + setting_system_font_ui: Implijout nodrezh dre ziouer ar reizhiad + setting_system_scrollbars_ui: Implijout barrenn dibunañ dre ziouer ar reizhiad setting_theme: Neuz al lec'hienn setting_use_pending_items: Mod gorrek title: Titl username: Anv + username_or_email: Anv implijer pe postel whole_word: Ger a-bezh featured_tag: name: Ger-klik + form_admin_settings: + custom_css: CSS personelaet + favicon: Favicon invite: comment: Evezhiadenn invite_request: @@ -76,10 +87,14 @@ br: name: Ger-klik trendable: Aotren ar ger-klik-mañ da zont war wel dindan tuadurioù user: + date_of_birth_1i: Devezh + date_of_birth_2i: Mizvezh + date_of_birth_3i: Bloavezh role: Roll time_zone: Gwerzhid eur user_role: name: Anv + permissions_as_keys: Aotreoù 'no': Ket recommended: Erbedet required: diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index b0db7c40ada3a0..3e38d52cffffdc 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -27,7 +27,7 @@ he: disable: מנעי מהמשתמש להשתמש בחשבונם, מבלי למחוק או להסתיר את תוכנו. none: השתמשי בזה כדי לשלוח למשתמש אזהרה, מבלי לגרור פעולות נוספות. sensitive: אלצי את כל קבצי המדיה המצורפים על ידי המשתמש להיות מסומנים כרגישים. - silence: מנעי מהמשתמש להיות מסוגל לחצרץ בנראות פומבית, החביאי את חצרוציהם והתראותיהם מאנשים שלא עוקבים אחריהם. פעולה זו תסגור את הטיפול בדיווחים נגד החשבון. + silence: מנעי מהמשתמש להיות מסוגל לחצרץ בחשיפה פומבית, החביאי את חצרוציהם והתראותיהם מאנשים שלא עוקבים אחריהם. פעולה זו תסגור את הטיפול בדיווחים נגד החשבון. suspend: מנעי כל התקשרות עם חשבון זה ומחקי את תוכנו. ניתן לשחזור תוך 30 יום. פעולה זו תסגור את הטיפול בדיווחים נגד החשבון. warning_preset_id: אופציונלי. ניתן עדיין להוסיף טקסט ייחודי לסוף ההגדרה announcement: @@ -238,7 +238,7 @@ he: setting_auto_play_gif: ניגון אוטומטי של גיפים setting_boost_modal: הצגת דיאלוג אישור לפני הדהוד setting_default_language: שפת ברירת מחדל להודעה - setting_default_privacy: נראות ההודעה + setting_default_privacy: חשיפת ההודעה setting_default_quote_policy: למי מותר לצטט setting_default_sensitive: תמיד לתת סימון "רגיש" למדיה setting_delete_modal: להראות תיבת אישור לפני מחיקת חיצרוץ diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index b3770cbf6e9ad8..bf76d159e9136d 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -151,7 +151,7 @@ zh-CN: user: chosen_languages: 仅选中语言的嘟文会出现在公共时间线上(全不选则显示所有语言的嘟文) date_of_birth: - other: 我们必须确保您至少有 %{count} 岁才能使用 %{domain}。我们不会存储此信息。 + other: 我们必须确保您至少年满 %{count} 岁才能使用 %{domain}。我们不会存储此信息。 role: 角色用于控制用户拥有的权限。 user_role: color: 在界面各处用于标记该角色的颜色,以十六进制 RGB 格式表示 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index a9e409aad5d746..662f3170bf9c10 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -328,6 +328,7 @@ sk: title: Vlastné emoji uncategorized: Nezaradené unlist: Nezaraď + unlisted: Nie je na zozname update_failed_msg: Nebolo možné aktualizovať toto emoji updated_msg: Emoji bolo úspešne aktualizované! upload: Nahraj @@ -1280,7 +1281,6 @@ sk: private: Iba pre sledovateľov private_long: Ukáž iba následovateľom public: Verejné - unlisted: Nezaradené statuses_cleanup: exceptions: Výnimky ignore_favs: Ignoruj obľúbené diff --git a/config/locales/sl.yml b/config/locales/sl.yml index f8b1949d6b0034..025c350aac871f 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -366,6 +366,7 @@ sl: title: Emotikoni po meri uncategorized: Brez kategorije unlist: Ne prikaži na seznamu + unlisted: Neuvrščeni update_failed_msg: Tega emotikona ni bilo mogoče posodobiti updated_msg: Emotikon je uspešno posodobljen! upload: Pošlji @@ -1914,7 +1915,6 @@ sl: private: Samo sledilci private_long: Prikaži samo sledilcem public: Javno - unlisted: Ni prikazano statuses_cleanup: enabled: Samodejno izbriši stare objave enabled_hint: Samodejno izbriše vaše objave, ko dosežejo določen starostni prag, razen če ne ustrezajo eni od spodnjih izjem diff --git a/config/locales/sq.yml b/config/locales/sq.yml index c94161f5357db3..1247e1e1343d11 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -361,6 +361,7 @@ sq: title: Emoxhi vetjake uncategorized: I pakategorizuar unlist: Hiqe nga lista + unlisted: Hequr prej liste update_failed_msg: S’u përditësua dot ai emoxhi updated_msg: Emoji u përditësua me sukses! upload: Ngarkoje @@ -1868,7 +1869,6 @@ sq: private: Vetëm ndjekësve private_long: Shfaqua vetëm ndjekësve public: Publike - unlisted: Jo në listë statuses_cleanup: enabled: Fshi automatikisht postime të vjetra enabled_hint: Fshin automatikisht postimet tuaja, pasi mbërrijnë një prag të caktuar moshe, hiq rastin kur ka përputhje me një nga përjashtimet më poshtë diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 31a379aa84da73..97fd823c0acac0 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -324,6 +324,7 @@ sr-Latn: title: Proizvoljni emotidžiji uncategorized: Nekategorizovano unlist: Neizlistan + unlisted: Neizlistan update_failed_msg: Ne mogu da ažuriram ovaj emodži updated_msg: Emodži uspešno ažuriran! upload: Otpremi @@ -1657,7 +1658,6 @@ sr-Latn: private: Samo pratioci private_long: Prikaži samo pratiocima public: Javno - unlisted: Neizlistano statuses_cleanup: enabled: Automatski izbriši stare objave enabled_hint: Automatski briše vaše objave kada dostignu određeni starosni prag, osim ako se ne podudaraju sa jednim od izuzetaka u nastavku diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 6c6c5b740eaa7a..0f7cf42d35f8df 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -345,6 +345,7 @@ sr: title: Произвољни емотиџији uncategorized: Некатегоризовано unlist: Неизлистан + unlisted: Неизлистан update_failed_msg: Не могу да ажурирам овај емоџи updated_msg: Емоџи успешно ажуриран! upload: Отпреми @@ -1687,7 +1688,6 @@ sr: private: Само пратиоци private_long: Прикажи само пратиоцима public: Јавно - unlisted: Неизлистано statuses_cleanup: enabled: Аутоматски избриши старе објаве enabled_hint: Аутоматски брише ваше објаве када достигну одређени старосни праг, осим ако се не подударају са једним од изузетака у наставку diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 50c2cb22d50120..850a2d25b407fb 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -367,6 +367,7 @@ sv: title: Egentillverkade emojis uncategorized: Okategoriserad / Okategoiserat / Okategoriserade unlist: Avnotera / Tag bort + unlisted: Olistade update_failed_msg: Kunde inte uppdatera emoji updated_msg: Emoji uppdaterades utan problem! upload: Ladda upp @@ -1913,7 +1914,6 @@ sv: private: Endast följare private_long: Visa endast till följare public: Offentlig - unlisted: Olistade statuses_cleanup: enabled: Ta automatiskt bort gamla inlägg enabled_hint: Raderar dina inlägg automatiskt när de når en specifik ålder, såvida de inte matchar något av undantagen nedan diff --git a/config/locales/ta.yml b/config/locales/ta.yml index e295fe8a87a9df..56b2895c74fa3f 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -151,6 +151,7 @@ ta: not_permitted: இச்செயலைச் செய்ய உங்களுக்கு அனுமதி இல்லை uncategorized: வகைப்படுத்தப்படாதவை unlist: பட்டியலில் இருந்து அகற்றுக + unlisted: பட்டியலிடப்படாத upload: பதிவேற்றம் domain_blocks: new: diff --git a/config/locales/th.yml b/config/locales/th.yml index 9ce35ef0ecb936..a253bca4e64ac1 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -352,6 +352,7 @@ th: title: อีโมจิที่กำหนดเอง uncategorized: ไม่มีหมวดหมู่ unlist: เลิกแสดงรายการ + unlisted: ไม่อยู่ในรายการ update_failed_msg: ไม่สามารถอัปเดตอีโมจินั้น updated_msg: อัปเดตอีโมจิสำเร็จ! upload: อัปโหลด @@ -1785,7 +1786,6 @@ th: private: ผู้ติดตามเท่านั้น private_long: แสดงแก่ผู้ติดตามเท่านั้น public: สาธารณะ - unlisted: ไม่อยู่ในรายการ statuses_cleanup: enabled: ลบโพสต์เก่าโดยอัตโนมัติ enabled_hint: ลบโพสต์ของคุณโดยอัตโนมัติเมื่อโพสต์ถึงค่าเกณฑ์อายุที่ระบุ เว้นแต่โพสต์ตรงกับหนึ่งในข้อยกเว้นด้านล่าง diff --git a/config/locales/tr.yml b/config/locales/tr.yml index b7da232de381d7..df55f5d814c7b6 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -367,7 +367,7 @@ tr: title: Özel emojiler uncategorized: Kategorilenmemiş unlist: Liste dışı - unlisted: Sessizce herkese açık + unlisted: Listelenmemiş update_failed_msg: Bu emoji güncellenemedi updated_msg: Emoji başarıyla güncellendi! upload: Yükle @@ -1919,7 +1919,6 @@ tr: private_long: Sadece takipçilerime gönder public: Herkese açık public_long: Mastodon'da olan olmayan herkes - unlisted: Listelenmemiş unlisted_long: Mastodon arama sonuçlarında, öne çıkanlarda ve herkese açık zaman çizelgesinde gizli statuses_cleanup: enabled: Eski gönderileri otomatik olarak sil diff --git a/config/locales/uk.yml b/config/locales/uk.yml index f1937dd4d23768..339e191044bcc3 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -367,6 +367,7 @@ uk: title: Особливі емодзі uncategorized: Без категорії unlist: Прибрати + unlisted: Не у списку update_failed_msg: Не вийшло оновити емозді updated_msg: Емодзі успішно оновлене! upload: Вивантажити @@ -1876,7 +1877,6 @@ uk: private: Для підписників private_long: Показувати тільки підписникам public: Для всіх - unlisted: Приховувати зі стрічок statuses_cleanup: enabled: Автовидалення давніх дописів enabled_hint: Автоматично видаляє ваші дописи після досягнення вказаного вікового порогу, якщо вони не є одним з наведених винятків diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 69e934c30346fe..515992d00e3062 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -364,7 +364,7 @@ vi: title: Emoji uncategorized: Chưa phân loại unlist: Bỏ danh sách - unlisted: Hạn chế + unlisted: Chưa cho phép update_failed_msg: Không thể cập nhật Emoji này updated_msg: Cập nhật thành công Emoji! upload: Tải lên diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 2f1747b96dfdfb..838bad24077bb9 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -364,7 +364,7 @@ zh-CN: title: 自定义表情 uncategorized: 未分类 unlist: 隐藏 - unlisted: 悄悄公开 + unlisted: 已隐藏 update_failed_msg: 表情更新失败 updated_msg: 表情更新成功! upload: 上传新表情 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 5de477a40812ea..852fff7a1b6d24 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -318,6 +318,7 @@ zh-HK: title: 自訂 Emoji 表情符號 uncategorized: 未分類 unlist: 隱藏 + unlisted: 已隱藏 update_failed_msg: 無法更新表情符號 updated_msg: 已更新表情符號 upload: 上傳新的表情符號 @@ -1636,7 +1637,6 @@ zh-HK: private: 關注者觀看 private_long: 只有關注你的人能看到 public: 公開 - unlisted: 公開,但不在公共時間軸顯示 statuses_cleanup: enabled: 自動刪除舊嘟文 enabled_hint: 當您的嘟文達到指定的時間門檻後,自動刪除嘟文,除非他們符合其中以下例外條件之一 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 6921e227c402f4..810a445ba27afd 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -364,7 +364,7 @@ zh-TW: title: 自訂 emoji 表情符號 uncategorized: 未分類 unlist: 不公開 - unlisted: 不於公開時間軸顯示 + unlisted: 已隱藏 update_failed_msg: 無法更新該 emoji 表情符號 updated_msg: 已更新 emoji 表情符號! upload: 上傳新的表情符號 From 3ca4793e688444108d39cc3057dd5d5d1e8a19dd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 15:04:57 +0200 Subject: [PATCH 07/81] fix(deps): update dependency sass to v1.92.1 (#36046) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8a4abe151db553..6fa7413c241fef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11957,8 +11957,8 @@ __metadata: linkType: hard "sass@npm:^1.62.1": - version: 1.92.0 - resolution: "sass@npm:1.92.0" + version: 1.92.1 + resolution: "sass@npm:1.92.1" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -11969,7 +11969,7 @@ __metadata: optional: true bin: sass: sass.js - checksum: 10c0/bdff9fa6988620e2a81962efdd016e3894d19934cfadc105cf41db767f59dd47afd8ff32840e612ef700cb67e19d9e83c108f1724eb8f0bef56c4877dbe6f14d + checksum: 10c0/4c43975580f6bd5511bb140ec8445d936663ffacc7d0513aae65b95e2a46a954268177406b2dd4ac32494e868520ac5ea929c3521f04bc10293fb16dc25b2935 languageName: node linkType: hard From 9d0e73d3080e3af5f2876e8fecaae36d01ea4abb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 15:51:25 +0200 Subject: [PATCH 08/81] fix(deps): update dependency vite to v7.1.5 (#36056) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6fa7413c241fef..faaaf0a6e564a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7371,7 +7371,7 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.4.4, fdir@npm:^6.5.0": +"fdir@npm:^6.5.0": version: 6.5.0 resolution: "fdir@npm:6.5.0" peerDependencies: @@ -13098,13 +13098,13 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.14": - version: 0.2.14 - resolution: "tinyglobby@npm:0.2.14" +"tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15": + version: 0.2.15 + resolution: "tinyglobby@npm:0.2.15" dependencies: - fdir: "npm:^6.4.4" - picomatch: "npm:^4.0.2" - checksum: 10c0/f789ed6c924287a9b7d3612056ed0cda67306cd2c80c249fd280cf1504742b12583a2089b61f4abbd24605f390809017240e250241f09938054c9b363e51c0a6 + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.3" + checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 languageName: node linkType: hard @@ -13883,8 +13883,8 @@ __metadata: linkType: hard "vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0, vite@npm:^7.1.1": - version: 7.1.4 - resolution: "vite@npm:7.1.4" + version: 7.1.5 + resolution: "vite@npm:7.1.5" dependencies: esbuild: "npm:^0.25.0" fdir: "npm:^6.5.0" @@ -13892,7 +13892,7 @@ __metadata: picomatch: "npm:^4.0.3" postcss: "npm:^8.5.6" rollup: "npm:^4.43.0" - tinyglobby: "npm:^0.2.14" + tinyglobby: "npm:^0.2.15" peerDependencies: "@types/node": ^20.19.0 || >=22.12.0 jiti: ">=1.21.0" @@ -13933,7 +13933,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/dbe2ba29926ffe8985c93d1b3718dcc9040080b7fa10a74c82a52aad7449136a391ba17b265288ff03b864e6f1033b9b537247521a96d5491a9d4af90ac04702 + checksum: 10c0/782d2f20c25541b26d1fb39bef5f194149caff39dc25b7836e25f049ca919f2e2ce186bddb21f3f20f6195354b3579ec637a8ca08d65b117f8b6f81e3e730a9c languageName: node linkType: hard From 2347354bba2281a51e8ad91569294ee1d4e07dea Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 8 Sep 2025 16:11:10 +0200 Subject: [PATCH 09/81] Fix unresponsive areas around GIFV modals in some cases (#36059) --- .../mastodon/features/ui/components/media_modal.jsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/javascript/mastodon/features/ui/components/media_modal.jsx b/app/javascript/mastodon/features/ui/components/media_modal.jsx index 01901485553a7e..2ce13bf1d39a0e 100644 --- a/app/javascript/mastodon/features/ui/components/media_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/media_modal.jsx @@ -201,8 +201,6 @@ class MediaModal extends ImmutablePureComponent { preview={image.get('preview_url')} blurhash={image.get('blurhash')} src={image.get('url')} - width={image.get('width')} - height={image.get('height')} frameRate={image.getIn(['meta', 'original', 'frame_rate'])} aspectRatio={`${image.getIn(['meta', 'original', 'width'])} / ${image.getIn(['meta', 'original', 'height'])}`} startTime={currentTime || 0} @@ -219,8 +217,6 @@ class MediaModal extends ImmutablePureComponent { return ( Date: Mon, 8 Sep 2025 16:53:30 +0200 Subject: [PATCH 10/81] chore(deps): update dependency rubocop-performance to v1.26.0 (#36047) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0f6f85585c858f..ea0038a5900a61 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -791,10 +791,10 @@ GEM rubocop-i18n (3.2.3) lint_roller (~> 1.1) rubocop (>= 1.72.1) - rubocop-performance (1.25.0) + rubocop-performance (1.26.0) lint_roller (~> 1.1) rubocop (>= 1.75.0, < 2.0) - rubocop-ast (>= 1.38.0, < 2.0) + rubocop-ast (>= 1.44.0, < 2.0) rubocop-rails (2.33.3) activesupport (>= 4.2.0) lint_roller (~> 1.1) From 13d970b5ae2fd14284103b8c80bd3141ccdcfb01 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 16:53:51 +0200 Subject: [PATCH 11/81] chore(deps): update dependency rubyzip to v3.1.0 (#36048) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index ea0038a5900a61..f95bdc00ebaedb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -817,7 +817,7 @@ GEM ruby-vips (2.2.5) ffi (~> 1.12) logger - rubyzip (3.0.2) + rubyzip (3.1.0) rufus-scheduler (3.9.2) fugit (~> 1.1, >= 1.11.1) safety_net_attestation (0.4.0) From 1c8990927a6201fb9fda07f05cc96a3df388514d Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 8 Sep 2025 17:31:36 +0200 Subject: [PATCH 12/81] Move quote post fallback removal import-time (#36055) --- .../mastodon/actions/importer/normalizer.js | 19 +++++++++++++++++++ .../mastodon/components/status_content.jsx | 10 ---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js index 330da74000b044..d5e59b8b05108a 100644 --- a/app/javascript/mastodon/actions/importer/normalizer.js +++ b/app/javascript/mastodon/actions/importer/normalizer.js @@ -21,6 +21,15 @@ export function normalizeFilterResult(result) { return normalResult; } +function stripQuoteFallback(text) { + const wrapper = document.createElement('div'); + wrapper.innerHTML = text; + + wrapper.querySelector('.quote-inline')?.remove(); + + return wrapper.innerHTML; +} + export function normalizeStatus(status, normalOldStatus) { const normalStatus = { ...status }; @@ -86,6 +95,11 @@ export function normalizeStatus(status, normalOldStatus) { normalStatus.spoilerHtml = emojify(escapeTextContentForBrowser(spoilerText), emojiMap); normalStatus.hidden = expandSpoilers ? false : spoilerText.length > 0 || normalStatus.sensitive; + // Remove quote fallback link from the DOM so it doesn't mess with paragraph margins + if (normalStatus.quote) { + normalStatus.contentHtml = stripQuoteFallback(normalStatus.contentHtml); + } + if (normalStatus.url && !(normalStatus.url.startsWith('http://') || normalStatus.url.startsWith('https://'))) { normalStatus.url = null; } @@ -125,6 +139,11 @@ export function normalizeStatusTranslation(translation, status) { spoiler_text: translation.spoiler_text, }; + // Remove quote fallback link from the DOM so it doesn't mess with paragraph margins + if (status.get('quote')) { + normalTranslation.contentHtml = stripQuoteFallback(normalTranslation.contentHtml); + } + return normalTranslation; } diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx index 38d24921c5e7b2..5f0f7079aec08c 100644 --- a/app/javascript/mastodon/components/status_content.jsx +++ b/app/javascript/mastodon/components/status_content.jsx @@ -138,16 +138,6 @@ class StatusContent extends PureComponent { onCollapsedToggle(collapsed); } - - // Remove quote fallback link from the DOM so it doesn't - // mess with paragraph margins - if (!!status.get('quote')) { - const inlineQuote = node.querySelector('.quote-inline'); - - if (inlineQuote) { - inlineQuote.remove(); - } - } } handleMouseEnter = ({ currentTarget }) => { From 3c79c512fec6bec2f285f087f67b834404816879 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 09:42:52 +0200 Subject: [PATCH 13/81] New Crowdin Translations (automated) (#36063) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/br.json | 128 +++++++++++++--------- app/javascript/mastodon/locales/da.json | 3 + app/javascript/mastodon/locales/el.json | 21 ++++ app/javascript/mastodon/locales/ga.json | 2 + app/javascript/mastodon/locales/hu.json | 8 ++ config/locales/activerecord.br.yml | 22 ++++ config/locales/br.yml | 135 ++++++++++++++++++++++-- config/locales/devise.br.yml | 2 +- config/locales/doorkeeper.br.yml | 21 +++- config/locales/hu.yml | 1 + config/locales/simple_form.br.yml | 28 +++++ 11 files changed, 312 insertions(+), 59 deletions(-) diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index ba635e1d76afa2..e5ed938d79070a 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -30,13 +30,13 @@ "account.edit_profile": "Kemmañ ar profil", "account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}", "account.endorse": "Lakaat en a-raok war ar profil", - "account.familiar_followers_one": "Heuilhet gant {name1}", - "account.familiar_followers_two": "Heuilhet gant {name1} ha {name2}", + "account.familiar_followers_one": "Heuliet gant {name1}", + "account.familiar_followers_two": "Heuliet gant {name1} ha {name2}", "account.featured": "En a-raok", "account.featured.accounts": "Profiloù", "account.featured.hashtags": "Gerioù-klik", - "account.featured_tags.last_status_at": "Toud diwezhañ : {date}", - "account.featured_tags.last_status_never": "Embannadur ebet", + "account.featured_tags.last_status_at": "Embann diwezhañ: {date}", + "account.featured_tags.last_status_never": "Embann ebet", "account.follow": "Heuliañ", "account.follow_back": "Heuliañ d'ho tro", "account.followers": "Tud koumanantet", @@ -104,22 +104,23 @@ "announcement.announcement": "Kemennad", "annual_report.summary.followers.followers": "heulier", "annual_report.summary.followers.total": "{count} en holl", - "annual_report.summary.highlighted_post.by_favourites": "toud karet ar muiañ", - "annual_report.summary.highlighted_post.by_reblogs": "toud skignet ar muiañ", - "annual_report.summary.highlighted_post.by_replies": "toud gant ar muiañ a respontoù", + "annual_report.summary.highlighted_post.by_favourites": "embannadur karet ar muiañ", + "annual_report.summary.highlighted_post.by_reblogs": "embannadur skignet ar muiañ", + "annual_report.summary.highlighted_post.by_replies": "embannadur gant ar muiañ a respontoù", "annual_report.summary.highlighted_post.possessive": "{name}", "annual_report.summary.most_used_app.most_used_app": "arload muiañ implijet", "annual_report.summary.most_used_hashtag.most_used_hashtag": "ar gerioù-klik implijet ar muiañ", "annual_report.summary.most_used_hashtag.none": "Hini ebet", - "annual_report.summary.new_posts.new_posts": "toudoù nevez", + "annual_report.summary.new_posts.new_posts": "embannadurioù nevez", "attachments_list.unprocessed": "(ket meret)", "audio.hide": "Kuzhat ar c'hleved", "block_modal.show_less": "Diskouez nebeutoc'h", "block_modal.show_more": "Diskouez muioc'h", + "block_modal.they_cant_mention": "Ne c'hall na menegiñ na heuliañ ac'hanoc'h.", "block_modal.title": "Stankañ an implijer·ez?", "boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou", - "boost_modal.reblog": "Skignañ an toud?", - "boost_modal.undo_reblog": "Paouez da skignañ an toud?", + "boost_modal.reblog": "Skignañ an embannadur?", + "boost_modal.undo_reblog": "Paouez da skignañ an embannadur?", "bundle_column_error.copy_stacktrace": "Eilañ an danevell fazi", "bundle_column_error.error.body": "N'haller ket skrammañ ar bajenn goulennet. Gallout a ra bezañ abalamour d'ur beug er c'hod pe d'ur gudenn keverlec'hded gant ar merdeer.", "bundle_column_error.error.title": "Chaous !", @@ -171,9 +172,9 @@ "compose.published.open": "Digeriñ", "compose.saved.body": "Enrollet.", "compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h", - "compose_form.encryption_warning": "Toudoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.", - "compose_form.hashtag_warning": "Ne vo ket listennet an toud-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.", - "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet ho toudoù prevez.", + "compose_form.encryption_warning": "Embannadurioù war Mastodon na vezont ket sifret a-benn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.", + "compose_form.hashtag_warning": "Ne vo ket listennet an embannadur-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet an embannadurioù foran a c'hall bezañ klasket dre c'her-klik.", + "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet hoc'h embannadurioù prevez.", "compose_form.lock_disclaimer.lock": "prennet", "compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?", "compose_form.poll.duration": "Pad ar sontadeg", @@ -190,11 +191,12 @@ "confirmation_modal.cancel": "Nullañ", "confirmations.block.confirm": "Stankañ", "confirmations.delete.confirm": "Dilemel", - "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?", - "confirmations.delete.title": "Dilemel an toud?", + "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an embannadur-mañ?", + "confirmations.delete.title": "Dilemel an embannadur?", "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.delete_list.title": "Dilemel al listenn?", + "confirmations.discard_draft.confirm": "Diverkañ ha kenderc'hel", "confirmations.discard_draft.edit.cancel": "Distreiñ d'an embann", "confirmations.discard_draft.post.cancel": "Distreiñ d'ar brouilhed", "confirmations.discard_draft.post.title": "Dilemel ho prouilhed?", @@ -210,10 +212,11 @@ "confirmations.missing_alt_text.title": "Ouzhpennañ an eiltestenn?", "confirmations.mute.confirm": "Kuzhat", "confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro", + "confirmations.redraft.title": "Diverkañ ha skrivañ an embann en-dro?", "confirmations.remove_from_followers.confirm": "Dilemel an heulier·ez", "confirmations.remove_from_followers.title": "Dilemel an heulier·ez?", - "confirmations.revoke_quote.confirm": "Dilemel an toud", - "confirmations.revoke_quote.title": "Dilemel an toud?", + "confirmations.revoke_quote.confirm": "Dilemel an embannadur", + "confirmations.revoke_quote.title": "Dilemel an embannadur?", "confirmations.unfollow.confirm": "Diheuliañ", "confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name} ?", "confirmations.unfollow.title": "Paouez da heuliañ an implijer·ez?", @@ -233,7 +236,7 @@ "directory.recently_active": "Oberiant nevez zo", "disabled_account_banner.account_settings": "Arventennoù ar gont", "disabled_account_banner.text": "Ho kont {disabledAccount} zo divev evit bremañ.", - "dismissable_banner.community_timeline": "Setu toudoù foran nevesañ an dud a zo herberc’hiet o c'hontoù gant {domain}.", + "dismissable_banner.community_timeline": "Setu embannadurioù foran nevesañ an dud a zo herberc’hiet o c’hontoù gant {domain}.", "dismissable_banner.dismiss": "Diverkañ", "domain_block_modal.block": "Stankañ ar servijer", "domain_block_modal.block_account_instead": "Stankañ @{name} kentoc'h", @@ -243,7 +246,7 @@ "domain_pill.whats_in_a_handle": "Petra eo an anaouder?", "domain_pill.your_handle": "Hoc'h anaouder:", "dropdown.empty": "Diuzit un dibarzh", - "embed.instructions": "Enframmit an toud-mañ en ho lec'hienn en ur eilañ ar c'hod amañ-dindan.", + "embed.instructions": "Enframmit an embannadur-mañ en ho lec’hienn en ur eilañ ar c’hod amañ-dindan.", "embed.preview": "Setu penaos e teuio war wel :", "emoji_button.activity": "Obererezh", "emoji_button.clear": "Diverkañ", @@ -260,8 +263,8 @@ "emoji_button.search_results": "Disoc'hoù an enklask", "emoji_button.symbols": "Arouezioù", "emoji_button.travel": "Beajiñ & Lec'hioù", - "empty_column.account_suspended": "Kont ehanet", - "empty_column.account_timeline": "Toud ebet amañ !", + "empty_column.account_suspended": "Kont astalet", + "empty_column.account_timeline": "Embannadur ebet amañ!", "empty_column.account_unavailable": "Profil dihegerz", "empty_column.blocks": "N'eus ket bet stanket implijer·ez ganeoc'h c'hoazh.", "empty_column.bookmarked_statuses": "N'ho peus embannadur ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", @@ -272,7 +275,7 @@ "empty_column.followed_tags": "N'emaoc'h oc'h heuliañ ger-klik ebet evit poent. Pa vioc'h e vo d'o gwelet amañ.", "empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.", "empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.", - "empty_column.list": "Goullo eo al listenn-mañ evit c'hoazh. Pa vo embannet toudoù nevez gant e izili e teuint war wel amañ.", + "empty_column.list": "Goullo eo al listenn-mañ evit c'hoazh. Pa vo embannet un dra nevez gant e izili e teuio war wel amañ.", "empty_column.mutes": "N'ho peus kuzhet implijer·ez ebet c'hoazh.", "empty_column.notifications": "N'ho peus kemenn ebet c'hoazh. Grit gant implijer·ezed·ien all evit loc'hañ ar gomz.", "empty_column.public": "N'eus netra amañ! Skrivit un dra bennak foran pe heuilhit implijerien·ezed eus servijerioù all evit leuniañ", @@ -288,22 +291,22 @@ "explore.trending_statuses": "Embannadurioù", "explore.trending_tags": "Gerioù-klik", "featured_carousel.next": "War-raok", - "featured_carousel.post": "Embannadenn", + "featured_carousel.post": "Embannadur", "featured_carousel.previous": "War-gil", "featured_carousel.slide": "{index} diwar {total}", "filter_modal.added.context_mismatch_title": "Kenarroud digenglotus !", "filter_modal.added.expired_title": "Sil deuet d'e dermen !", "filter_modal.added.review_and_configure_title": "Arventennoù ar sil", "filter_modal.added.settings_link": "pajenn an arventennoù", - "filter_modal.added.short_explanation": "An toud-mañ zo bet ouzhpennet d'ar rummad sil-mañ : {title}.", + "filter_modal.added.short_explanation": "Ouzhpennet eo bet an embannadur-mañ d'ar rummad sil-mañ: {title}.", "filter_modal.added.title": "Sil ouzhpennet !", "filter_modal.select_filter.context_mismatch": "na glot ket gant ar c'henarroud-mañ", "filter_modal.select_filter.expired": "zo deuet d'e dermen", "filter_modal.select_filter.prompt_new": "Rummad nevez : {name}", "filter_modal.select_filter.search": "Klask pe krouiñ", "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", + "filter_modal.select_filter.title": "Silañ an embannadur-mañ", + "filter_modal.title.status": "Silañ un embannadur", "filter_warning.matches_filter": "A glot gant ar sil “{title}”", "firehose.all": "Pep tra", "firehose.local": "Ar servijer-mañ", @@ -328,8 +331,8 @@ "generic.saved": "Enrollet", "getting_started.heading": "Loc'hañ", "hashtag.admin_moderation": "Digeriñ an etrefas evezhiañ evit #{name}", - "hashtag.browse": "Furchal dre an toudoù gant #{hashtag}", - "hashtag.browse_from_account": "Furchal dre an toudoù gant @{name} gant #{hashtag}", + "hashtag.browse": "Furchal dre an embannadurioù gant #{hashtag}", + "hashtag.browse_from_account": "Furchal dre an embannadurioù gant @{name} gant #{hashtag}", "hashtag.column_header.tag_mode.all": "ha(g) {additional}", "hashtag.column_header.tag_mode.any": "pe {additional}", "hashtag.column_header.tag_mode.none": "hep {additional}", @@ -347,7 +350,7 @@ "hashtag.unfeature": "Na lakaat ket en a-raok war ar profil", "hashtag.unfollow": "Diheuliañ ar ger-klik", "hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}", - "hints.profiles.see_more_posts": "Gwelet toudoù ouzhpenn eus {domain}", + "hints.profiles.see_more_posts": "Gwelet embannadurioù ouzhpenn eus {domain}", "home.column_settings.show_quotes": "Diskouez an arroudennoù", "home.column_settings.show_reblogs": "Diskouez ar skignadennoù", "home.column_settings.show_replies": "Diskouez ar respontoù", @@ -356,11 +359,12 @@ "home.pending_critical_update.link": "Gwelet an hizivadennoù", "home.show_announcements": "Diskouez ar c'hemennoù", "interaction_modal.go": "Mont di", + "interaction_modal.no_account_yet": "N'ho peus ket ur gont c'hoazh?", "interaction_modal.on_another_server": "War ur servijer all", "interaction_modal.on_this_server": "War ar servijer-mañ", "interaction_modal.title.favourite": "Ouzhpennañ embannadur {name} d'ar re vuiañ-karet", "interaction_modal.title.follow": "Heuliañ {name}", - "interaction_modal.title.reblog": "Skignañ toud {name}", + "interaction_modal.title.reblog": "Skignañ embannadur {name}", "interaction_modal.title.reply": "Respont da doud {name}", "interaction_modal.username_prompt": "D.s. {example}", "intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}", @@ -368,13 +372,13 @@ "intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}", "keyboard_shortcuts.back": "Distreiñ", "keyboard_shortcuts.blocked": "Digeriñ roll an implijerien·ezed stanket", - "keyboard_shortcuts.boost": "Skignañ an toud", + "keyboard_shortcuts.boost": "Skignañ an embannadur", "keyboard_shortcuts.column": "Fokus ar bann", "keyboard_shortcuts.compose": "Fokus an takad testenn", "keyboard_shortcuts.description": "Deskrivadur", "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Diskennañ er roll", - "keyboard_shortcuts.enter": "Digeriñ an toud", + "keyboard_shortcuts.enter": "Digeriñ an embannadur", "keyboard_shortcuts.favourite": "Ouzhpennañ an embannadur d'ar re vuiañ-karet", "keyboard_shortcuts.favourites": "Digeriñ roll an embannadurioù muiañ-karet", "keyboard_shortcuts.federated": "Digeriñ ar red-amzer kevredet", @@ -388,16 +392,18 @@ "keyboard_shortcuts.my_profile": "Digeriñ ho profil", "keyboard_shortcuts.notifications": "Digeriñ bann ar c'hemennoù", "keyboard_shortcuts.open_media": "Digeriñ ar media", - "keyboard_shortcuts.pinned": "Digeriñ listenn an toudoù spilhennet", + "keyboard_shortcuts.pinned": "Digeriñ listenn an embannadurioù spilhennet", "keyboard_shortcuts.profile": "Digeriñ profil an aozer.ez", - "keyboard_shortcuts.reply": "Respont d'an toud", + "keyboard_shortcuts.quote": "Menegiñ an embannadur", + "keyboard_shortcuts.reply": "Respont d'an embannadur", "keyboard_shortcuts.requests": "Digeriñ roll goulennoù heuliañ", "keyboard_shortcuts.search": "Fokus barenn klask", "keyboard_shortcuts.spoilers": "da guzhat/ziguzhat tachenn CW", "keyboard_shortcuts.start": "Digeriñ bann \"Kregiñ\"", "keyboard_shortcuts.toggle_hidden": "da guzhat/ziguzhat an desten a-dreñv CW", "keyboard_shortcuts.toggle_sensitivity": "da guzhat/ziguzhat ur media", - "keyboard_shortcuts.toot": "Kregiñ gant un toud nevez", + "keyboard_shortcuts.toot": "Kregiñ gant un embannadur nevez", + "keyboard_shortcuts.translate": "da dreiñ un embannadur", "keyboard_shortcuts.unfocus": "Difokus an dachenn testenn/klask", "keyboard_shortcuts.up": "Pignat er roll", "learn_more_link.got_it": "Mat eo", @@ -408,9 +414,11 @@ "limited_account_hint.title": "Kuzhet eo bet ar profil-mañ gant an evezhierien eus {domain}.", "link_preview.author": "Gant {name}", "link_preview.more_from_author": "Muioc'h gant {name}", + "link_preview.shares": "{count, plural, one {{counter} embannadur} two {{counter} embannadur} few {{counter} embannadur} many {{counter} embannadur} other {{counter} embannadur}}", "lists.add_member": "Ouzhpennañ", "lists.add_to_list": "Ouzhpennañ d'al listenn", "lists.create": "Krouiñ", + "lists.create_a_list_to_organize": "Krouit ul listenn evit renkañ ho red degemer", "lists.create_list": "Krouiñ ul listenn", "lists.delete": "Dilemel al listenn", "lists.done": "Graet", @@ -445,7 +453,9 @@ "navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien", "navigation_bar.import_export": "Enporzhiañ hag ezporzhiañ", "navigation_bar.lists": "Listennoù", - "navigation_bar.logout": "Digennaskañ", + "navigation_bar.live_feed_local": "Red war-eeun (lec'hel)", + "navigation_bar.live_feed_public": "Red war-eeun (foran)", + "navigation_bar.logout": "Digevreañ", "navigation_bar.moderation": "Habaskadur", "navigation_bar.more": "Muioc'h", "navigation_bar.mutes": "Implijerien·ezed kuzhet", @@ -455,18 +465,23 @@ "not_signed_in_indicator.not_signed_in": "Ret eo deoc'h kevreañ evit tizhout an danvez-se.", "notification.admin.report": "Disklêriet eo bet {target} gant {name}", "notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv", + "notification.favourite": "Gant {name} eo bet ouzhpennet hoc'h embannadur d'h·e re vuiañ-karet", "notification.follow": "heuliañ a ra {name} ac'hanoc'h", "notification.follow.name_and_others": "{name} {count, plural, one {hag # den all} two {ha # zen all} few {ha # den all} many {ha # den all} other {ha # den all}} zo o heuliañ ac'hanoc'h", "notification.follow_request": "Gant {name} eo bet goulennet ho heuliañ", + "notification.label.quote": "Gant {name} eo bet meneget hoc'h embannadur", "notification.label.reply": "Respont", "notification.mention": "Meneg", "notification.mentioned_you": "Gant {name} oc'h bet meneget", "notification.moderation-warning.learn_more": "Gouzout hiroc'h", + "notification.moderation_warning.action_disable": "Diweredekaet eo bet ho kont.", + "notification.moderation_warning.action_suspend": "Astalet eo bet ho kont.", "notification.own_poll": "Echu eo ho sontadeg", - "notification.reblog": "Gant {name} eo bet skignet ho toud", + "notification.quoted_update": "Gant {name} eo bet kemmet un embannadur meneget ganeoc'h", + "notification.reblog": "Gant {name} eo bet skignet hoc'h embannadur", "notification.relationships_severance_event.learn_more": "Gouzout hiroc'h", - "notification.status": "Emañ {name} o paouez toudañ", - "notification.update": "Gant {name} ez eus bet kemmet un toud", + "notification.status": "Emañ {name} o paouez embann", + "notification.update": "Gant {name} ez eus bet kemmet un embannadur", "notification_requests.accept": "Asantiñ", "notification_requests.dismiss": "Diverkañ", "notification_requests.edit_selection": "Kemmañ", @@ -483,13 +498,14 @@ "notifications.column_settings.mention": "Menegoù:", "notifications.column_settings.poll": "Disoc'hoù ar sontadeg:", "notifications.column_settings.push": "Kemennoù push", + "notifications.column_settings.quote": "Menegoù:", "notifications.column_settings.reblog": "Skignadennoù:", "notifications.column_settings.show": "Diskouez er bann", "notifications.column_settings.sound": "Seniñ", - "notifications.column_settings.status": "Toudoù nevez :", + "notifications.column_settings.status": "Embannadurioù nevez:", "notifications.column_settings.unread_notifications.category": "Kemennoù anlennet", "notifications.column_settings.unread_notifications.highlight": "Uslinennañ ar c'hemennoù anlennet", - "notifications.column_settings.update": "Kemmoù :", + "notifications.column_settings.update": "Kemmoù:", "notifications.filter.all": "Pep tra", "notifications.filter.boosts": "Skignadennoù", "notifications.filter.favourites": "Muiañ-karet", @@ -521,6 +537,7 @@ "onboarding.profile.note": "Berr-ha-berr", "onboarding.profile.note_hint": "Gallout a rit @menegiñ tud all pe #gerioù-klik…", "onboarding.profile.save_and_continue": "Enrollañ ha kenderc'hel", + "onboarding.profile.title": "Kefluniañ ar profil", "onboarding.profile.upload_avatar": "Enporzhiañ ur skeudenn profil", "password_confirmation.mismatching": "Disheñvel eo an daou c'her-termen-se", "picture_in_picture.restore": "Adlakaat", @@ -535,13 +552,18 @@ "poll_button.add_poll": "Ouzhpennañ ur sontadeg", "poll_button.remove_poll": "Dilemel ar sontadeg", "privacy.change": "Cheñch prevezded an embannadur", + "privacy.direct.long": "Pep hini meneget en embannadur", "privacy.private.long": "Hoc'h heulierien·ezed hepken", "privacy.private.short": "Heulierien", "privacy.public.short": "Publik", + "privacy.quote.anyone": "{visibility}, n'eus forzh piv a c'hall menegiñ", + "privacy.quote.disabled": "{visibility}, menegoù diweredekaet", "privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}", "privacy_policy.title": "Reolennoù Prevezded", + "quote_error.poll": "N'haller ket menegiñ sontadegoù.", "recommended": "Erbedet", "refresh": "Freskaat", + "regeneration_indicator.preparing_your_home_feed": "O prientiñ ho red degemer…", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# devezh} two {# zevezh} few {# devezh} many {# a devezh} other {# devezh}} zo", "relative_time.full.hours": "{number, plural, one {# eurvezh} two {# eurvezh} few {# eurvezh} many {# eur} other {# eurvezh}} zo", @@ -554,10 +576,11 @@ "relative_time.seconds": "{number}eil", "relative_time.today": "hiziv", "remove_quote_hint.button_label": "Mat eo", + "remove_quote_hint.title": "Fellout a ra deoc'h dilemel ho menegiñ an embannadur?", "reply_indicator.cancel": "Nullañ", "reply_indicator.poll": "Sontadeg", "report.block": "Stankañ", - "report.block_explanation": "Ne vo ket gwelet toudoù ar gont-se ken. Ne welo ket ho toudoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.", + "report.block_explanation": "Ne vo ket gwelet embannadurioù ar gont-se ken. Ne welo ket hoc'h embannadurioù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.", "report.categories.legal": "Lezennel", "report.categories.other": "All", "report.categories.spam": "Spam", @@ -565,13 +588,13 @@ "report.category.subtitle": "Choazit ar pezh a glot ar gwellañ", "report.category.title": "Lârit deomp petra c'hoarvez gant {type}", "report.category.title_account": "profil", - "report.category.title_status": "an toud-mañ", + "report.category.title_status": "an embannadur-mañ", "report.close": "Graet", "report.comment.title": "Ha traoù all a rankfemp gouzout ?", "report.forward": "Treuzkas da: {target}", "report.forward_hint": "War ur servijer all emañ ar c'hont-se. Kas dezhañ un adskrid disanv eus an danevell ivez?", "report.mute": "Kuzhat", - "report.mute_explanation": "Ne vo ket gwelet toudoù ar gont-se ken. Gwelet ho toudoù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.", + "report.mute_explanation": "Ne vo ket gwelet embannadurioù ar gont-se ken. Gwelet hoc'h embannadurioù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.", "report.next": "War-raok", "report.placeholder": "Askelennoù ouzhpenn", "report.reasons.dislike": "Ne blij ket din", @@ -586,7 +609,7 @@ "report.rules.subtitle": "Diuzit an holl draoù a glot", "report.rules.title": "Pesort reolennoù zo bet torret ?", "report.statuses.subtitle": "Diuzit an holl draoù a glot", - "report.statuses.title": "Ha toudoù all zo a c'hallfe nerzhañ an disklêriadenn-se ?", + "report.statuses.title": "Hag embannadurioù all zo a c'hallfe nerzhañ an disklêriadenn-se?", "report.submit": "Kinnig", "report.target": "O tisklêriañ {target}", "report.thanks.title": "Ne fell ket deoc'h gwelet an dra-se ?", @@ -604,7 +627,7 @@ "search.quick_action.go_to_account": "Mont d'ar profil {x}", "search.quick_action.go_to_hashtag": "Mont d'ar ger-klik {x}", "search.quick_action.open_url": "Digeriñ an URL e-barzh Mastodon", - "search.quick_action.status_search": "Embannadurioù a glot gant {x}", + "search.quick_action.status_search": "Toudoù a glot gant {x}", "search.search_or_paste": "Klask pe pegañ un URL", "search_popout.full_text_search_disabled_message": "N'eo ket da gaout war {domain}.", "search_popout.language_code": "Kod yezh ISO", @@ -624,18 +647,21 @@ "server_banner.server_stats": "Stadegoù ar servijer :", "sign_in_banner.create_account": "Krouiñ ur gont", "sign_in_banner.sign_in": "Kevreañ", - "sign_in_banner.sso_redirect": "Kennaskañ pe lakaat hoc'h anv", + "sign_in_banner.sso_redirect": "Kevreañ pe lakaat hoc'h anv", "status.admin_account": "Digeriñ etrefas evezhiañ evit @{name}", "status.admin_domain": "Digeriñ an etrefas evezhiañ evit {domain}", "status.admin_status": "Digeriñ an embannadenn e-barzh an etrefas evezhiañ", + "status.all_disabled": "Diweredekaet eo ar skignañ hag ar menegiñ", "status.block": "Stankañ @{name}", "status.bookmark": "Ouzhpennañ d'ar sinedoù", "status.cancel_reblog_private": "Nac'hañ ar skignadenn", + "status.cannot_quote": "N'haller ket menegiñ an embannadur-mañ", "status.cannot_reblog": "Ar c'hannad-se na c'hall ket bezañ skignet", "status.context.load_new_replies": "Respontoù nevez zo", "status.context.loading": "O kerc'hat muioc'h a respontoù", "status.copy": "Eilañ liamm ar c'hannad", "status.delete": "Dilemel", + "status.delete.success": "Embannadur dilamet", "status.detailed_status": "Gwel kaozeadenn munudek", "status.direct": "Menegiñ @{name} ent-prevez", "status.direct_indicator": "Meneg prevez", @@ -656,13 +682,19 @@ "status.mute_conversation": "Kuzhat ar gaozeadenn", "status.open": "Digeriñ ar c'hannad-mañ", "status.pin": "Spilhennañ d'ar profil", + "status.quote": "Menegiñ", + "status.quote.cancel": "Nullañ ar menegiñ", + "status.quote_error.not_available": "Embannadur dihegerz", + "status.quote_policy_change": "Cheñch piv a c'hall menegiñ", "status.read_more": "Lenn muioc'h", "status.reblog": "Skignañ", + "status.reblog_or_quote": "Skignañ pe menegiñ", "status.reblog_private": "Skignañ d'hoc'h heulierien·ezed adarre", "status.reblogged_by": "Skignet gant {name}", "status.reblogs.empty": "Den ebet n'eus skignet ar c'hannad-mañ c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.", "status.redraft": "Diverkañ ha skrivañ en-dro", "status.remove_bookmark": "Dilemel ar sined", + "status.remove_favourite": "Dilemel eus ar re vuiañ-karet", "status.replied_to": "Respont da {name}", "status.reply": "Respont", "status.replyAll": "Respont d'ar gaozeadenn", @@ -715,6 +747,8 @@ "video.play": "Lenn", "visibility_modal.privacy_label": "Gwelusted", "visibility_modal.quote_followers": "Tud koumanantet hepken", + "visibility_modal.quote_label": "Piv a c'hall menegiñ", + "visibility_modal.quote_nobody": "Me hepken", "visibility_modal.quote_public": "Pep den", "visibility_modal.save": "Enrollañ" } diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 7e604c697957d0..a98f5a354e342f 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -745,6 +745,7 @@ "privacy.quote.disabled": "{visibility}, citering deaktiveret", "privacy.quote.limited": "{visibility}, citering begrænset", "privacy.unlisted.additional": "Dette svarer til offentlig, bortset fra at indlægget ikke vises i live-feeds eller hashtags, udforsk eller Mastodon-søgning, selvom du har tilvalgt dette for kontoen.", + "privacy.unlisted.long": "Skjult fra Mastodons søgeresultater, trender og offentlige tidslinjer", "privacy.unlisted.short": "Offentlig (stille)", "privacy_policy.last_updated": "Senest opdateret {date}", "privacy_policy.title": "Privatlivspolitik", @@ -768,6 +769,8 @@ "relative_time.seconds": "{number}s", "relative_time.today": "i dag", "remove_quote_hint.button_label": "Forstået", + "remove_quote_hint.message": "Du kan gøre dette fra menuen {icon} indstillinger.", + "remove_quote_hint.title": "Vil du fjerne dit citerede indlæg?", "reply_indicator.attachments": "{count, plural, one {# vedhæftning} other {# vedhæftninger}}", "reply_indicator.cancel": "Afbryd", "reply_indicator.poll": "Afstemning", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index ce02a4070f6101..8c9cd35ec88e08 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -492,6 +492,7 @@ "keyboard_shortcuts.open_media": "Άνοιγμα πολυμέσων", "keyboard_shortcuts.pinned": "Άνοιγμα λίστας καρφιτσωμένων αναρτήσεων", "keyboard_shortcuts.profile": "Άνοιγμα προφίλ συγγραφέα", + "keyboard_shortcuts.quote": "Παράθεση ανάρτησης", "keyboard_shortcuts.reply": "Απάντηση στην ανάρτηση", "keyboard_shortcuts.requests": "Άνοιγμα λίστας αιτημάτων ακολούθησης", "keyboard_shortcuts.search": "Εστίαση στη γραμμή αναζήτησης", @@ -620,6 +621,7 @@ "notification.moderation_warning.action_suspend": "Ο λογαριασμός σου έχει ανασταλεί.", "notification.own_poll": "Η δημοσκόπησή σου έληξε", "notification.poll": "Μία ψηφοφορία στην οποία συμμετείχες έχει τελειώσει", + "notification.quoted_update": "Ο χρήστης {name} επεξεργάστηκε μία ανάρτηση που παρέθεσες", "notification.reblog": "Ο/Η {name} ενίσχυσε την ανάρτηση σου", "notification.reblog.name_and_others_with_link": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} ενίσχυσαν την ανάρτησή σου", "notification.relationships_severance_event": "Χάθηκε η σύνδεση με το {name}", @@ -743,6 +745,7 @@ "privacy.quote.disabled": "{visibility}, παραθέσεις απενεργοποιημένες", "privacy.quote.limited": "{visibility}, παραθέσεις περιορισμένες", "privacy.unlisted.additional": "Αυτό συμπεριφέρεται ακριβώς όπως το δημόσιο, εκτός από το ότι η ανάρτηση δεν θα εμφανιστεί σε ζωντανές ροές ή ετικέτες, εξερεύνηση ή αναζήτηση στο Mastodon, ακόμη και αν το έχεις επιλέξει για τον λογαριασμό σου.", + "privacy.unlisted.long": "Κρυμμένο από τα αποτελέσματα αναζήτησης Mastodon, τις τάσεις και τις δημόσιες ροές", "privacy.unlisted.short": "Ήσυχα δημόσια", "privacy_policy.last_updated": "Τελευταία ενημέρωση {date}", "privacy_policy.title": "Πολιτική Απορρήτου", @@ -765,6 +768,9 @@ "relative_time.minutes": "{number}λ", "relative_time.seconds": "{number}δ", "relative_time.today": "σήμερα", + "remove_quote_hint.button_label": "Το 'πιασα", + "remove_quote_hint.message": "Μπορείτε να το κάνεις από το μενού επιλογών {icon}.", + "remove_quote_hint.title": "Θες να αφαιρέσεις την ανάρτηση που παρέθεσες;", "reply_indicator.attachments": "{count, plural, one {# συνημμένο} other {# συνημμένα}}", "reply_indicator.cancel": "Άκυρο", "reply_indicator.poll": "Δημοσκόπηση", @@ -860,12 +866,14 @@ "status.block": "Αποκλεισμός @{name}", "status.bookmark": "Σελιδοδείκτης", "status.cancel_reblog_private": "Ακύρωση ενίσχυσης", + "status.cannot_quote": "Οι παραθέσεις είναι ανενεργές σ' αυτήν την ανάρτηση", "status.cannot_reblog": "Αυτή η ανάρτηση δεν μπορεί να ενισχυθεί", "status.context.load_new_replies": "Νέες απαντήσεις διαθέσιμες", "status.context.loading": "Γίνεται έλεγχος για περισσότερες απαντήσεις", "status.continued_thread": "Συνεχιζόμενο νήματος", "status.copy": "Αντιγραφή συνδέσμου ανάρτησης", "status.delete": "Διαγραφή", + "status.delete.success": "Η ανάρτηση διαγράφηκε", "status.detailed_status": "Προβολή λεπτομερούς συζήτησης", "status.direct": "Ιδιωτική επισήμανση @{name}", "status.direct_indicator": "Ιδιωτική επισήμανση", @@ -895,11 +903,17 @@ "status.quote_error.pending_approval": "Ανάρτηση σε αναμονή", "status.quote_error.pending_approval_popout.body": "Οι παραθέσεις που μοιράζονται στο Fediverse μπορεί να χρειαστούν χρόνο για να εμφανιστούν, καθώς διαφορετικοί διακομιστές έχουν διαφορετικά πρωτόκολλα.", "status.quote_error.pending_approval_popout.title": "Παράθεση σε εκκρεμότητα; Μείνετε ψύχραιμοι", + "status.quote_followers_only": "Μόνο οι ακόλουθοι μπορούν να παραθέσουν αυτή την ανάρτηση", + "status.quote_manual_review": "Ο συντάκτης θα επανεξετάσει χειροκίνητα", "status.quote_policy_change": "Αλλάξτε ποιός μπορεί να κάνει παράθεση", "status.quote_post_author": "Παρατίθεται μια ανάρτηση από @{name}", "status.quote_private": "Ιδιωτικές αναρτήσεις δεν μπορούν να παρατεθούν", + "status.quotes": "{count, plural, one {# παράθεση} other {# παραθέσεις}}", + "status.quotes.empty": "Κανείς δεν έχει παραθέσει αυτή την ανάρτηση ακόμα. Μόλις το κάνει, θα εμφανιστεί εδώ.", "status.read_more": "Διάβασε περισότερα", "status.reblog": "Ενίσχυση", + "status.reblog_or_quote": "Ενίσχυση ή παράθεση", + "status.reblog_private": "Μοιράσου ξανά με τους ακόλουθούς σου", "status.reblogged_by": "{name} προώθησε", "status.reblogs": "{count, plural, one {ενίσχυση} other {ενισχύσεις}}", "status.reblogs.empty": "Κανείς δεν ενίσχυσε αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.", @@ -911,6 +925,7 @@ "status.reply": "Απάντησε", "status.replyAll": "Απάντησε στο νήμα συζήτησης", "status.report": "Αναφορά @{name}", + "status.request_quote": "Αίτημα για παράθεση", "status.revoke_quote": "Αφαίρεση της ανάρτησης μου από την ανάρτηση του/της @{name}", "status.sensitive_warning": "Ευαίσθητο περιεχόμενο", "status.share": "Κοινοποίηση", @@ -975,8 +990,14 @@ "video.volume_up": "Αύξηση έντασης", "visibility_modal.button_title": "Ορισμός ορατότητας", "visibility_modal.header": "Ορατότητα και αλληλεπίδραση", + "visibility_modal.helper.direct_quoting": "Ιδιωτικές αναφορές που έχουν συνταχθεί στο Mastodon δεν μπορούν να γίνουν παράθεση από άλλους.", + "visibility_modal.helper.privacy_editing": "Η ορατότητα δεν μπορεί να αλλάξει μετά τη δημοσίευση μιας ανάρτησης.", + "visibility_modal.helper.privacy_private_self_quote": "Αυτο-παραθέσεις ιδιωτικών αναρτήσεων δεν μπορούν να γίνουν δημόσιες.", "visibility_modal.helper.unlisted_quoting": "Όταν οι άνθρωποι σας παραθέτουν, η ανάρτηση τους θα είναι επίσης κρυμμένη από τα δημοφιλή χρονοδιαγράμματα.", + "visibility_modal.privacy_label": "Ορατότητα", "visibility_modal.quote_followers": "Μόνο ακόλουθοι", + "visibility_modal.quote_label": "Ποιος μπορεί να παραθέσει", + "visibility_modal.quote_nobody": "Μόνο εγώ", "visibility_modal.quote_public": "Οποιοσδήποτε", "visibility_modal.save": "Αποθήκευση" } diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index d7399a35293528..60cb97ceba72f9 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -745,6 +745,7 @@ "privacy.quote.disabled": "{visibility}, comharthaí athfhriotail díchumasaithe", "privacy.quote.limited": "{visibility}, luachana teoranta", "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": "I bhfolach ó thorthaí cuardaigh Mastodon, treochtaí, agus amlínte poiblí", "privacy.unlisted.short": "Poiblí ciúin", "privacy_policy.last_updated": "Nuashonraithe {date}", "privacy_policy.title": "Polasaí príobháideachais", @@ -912,6 +913,7 @@ "status.read_more": "Léan a thuilleadh", "status.reblog": "Treisiú", "status.reblog_or_quote": "Borradh nó luachan", + "status.reblog_private": "Roinn arís le do leanúna", "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.", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index d49725515b83e5..066e23e79bac31 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -745,6 +745,7 @@ "privacy.quote.disabled": "{visibility}, idézés letiltva", "privacy.quote.limited": "{visibility}, idézés korlátozva", "privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírfolyamokban, hashtagekben, felfedezésben vagy a Mastodonos keresésben, még akkor sem, ha ezt az egész fiókra engedélyezted.", + "privacy.unlisted.long": "Elrejtve a Mastodon keresési találataiban, a felkapottak között és a nyilvános idővonalakon", "privacy.unlisted.short": "Csendes nyilvános", "privacy_policy.last_updated": "Utoljára frissítve: {date}", "privacy_policy.title": "Adatvédelmi szabályzat", @@ -767,6 +768,9 @@ "relative_time.minutes": "{number}p", "relative_time.seconds": "{number}mp", "relative_time.today": "ma", + "remove_quote_hint.button_label": "Rendben", + "remove_quote_hint.message": "Ezt a {icon} beállítások menüben lehet megtenni.", + "remove_quote_hint.title": "Eltávolítod az idézett bejegyzésedet?", "reply_indicator.attachments": "{count, plural, one {# melléklet} other {# melléklet}}", "reply_indicator.cancel": "Mégsem", "reply_indicator.poll": "Szavazás", @@ -862,6 +866,7 @@ "status.block": "@{name} letiltása", "status.bookmark": "Könyvjelzőzés", "status.cancel_reblog_private": "Megtolás visszavonása", + "status.cannot_quote": "Az idézés ki van kapcsolva ennél a bejegyzésnél", "status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni", "status.context.load_new_replies": "Új válaszok érhetőek el", "status.context.loading": "További válaszok keresése", @@ -908,6 +913,7 @@ "status.read_more": "Bővebben", "status.reblog": "Megtolás", "status.reblog_or_quote": "Megtolás vagy idézés", + "status.reblog_private": "Megosztás a követőiddel", "status.reblogged_by": "{name} megtolta", "status.reblogs": "{count, plural, one {megtolás} other {megtolás}}", "status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.", @@ -985,6 +991,8 @@ "visibility_modal.button_title": "Láthatóság beállítása", "visibility_modal.header": "Láthatóság és interakció", "visibility_modal.helper.direct_quoting": "A Mastodonon készült privát említéseket mások nem idézhetik.", + "visibility_modal.helper.privacy_editing": "A láthatóság nem módosítható a bejegyzés közzététele után.", + "visibility_modal.helper.privacy_private_self_quote": "A privát bejegyzések saját idézései nem tehetőek nyilvánossá.", "visibility_modal.helper.private_quoting": "A Mastodonon írt, csak követőknek szóló bejegyzéseket mások nem idézhetik.", "visibility_modal.helper.unlisted_quoting": "Amikor idéznek tőled, a bejegyzésük rejtve lesz a felkapott bejegyzések hírfolyamain is.", "visibility_modal.instructions": "Állítsd be, hogy ki léphet interakcióba a bejegyzéssel. Az összes bejegyzésre is alkalmazhatod, ha a Beállítások > Bejegyzések alapértelmezései lapra navigálsz.", diff --git a/config/locales/activerecord.br.yml b/config/locales/activerecord.br.yml index 1d76f674f7210a..d277fd41f84426 100644 --- a/config/locales/activerecord.br.yml +++ b/config/locales/activerecord.br.yml @@ -15,12 +15,34 @@ br: user/invite_request: text: Abeg errors: + attributes: + domain: + invalid: n'eo ket un anv domani talvoudek + messages: + invalid_domain_on_line: "%{value} n'eo ket un anv domani talvoudek" models: account: attributes: username: invalid: nemet lizherennoù, niverennoù hag isbarrennigoù reserved: a zo miret + admin/webhook: + attributes: + url: + invalid: n'eo ket un URL talvoudek + doorkeeper/application: + attributes: + website: + invalid: n'eo ket un URL talvoudek + import: + attributes: + data: + malformed: a zo stummet fall + list_account: + attributes: + account_id: + taken: a zo er listenn dija + must_be_following: a dle bezañ ur gont heuliet status: attributes: reblog: diff --git a/config/locales/br.yml b/config/locales/br.yml index 4fd6d6f49e8256..ee65960c55fc97 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -23,6 +23,9 @@ br: two: Toudoù posts_tab_heading: Toudoù admin: + account_actions: + action: Arloañ + already_suspended: Astalet eo bet ar gont-mañ endeo. account_moderation_notes: create: Leuskel un notenn accounts: @@ -38,7 +41,10 @@ br: new_email: Postel nevez submit: Kemmañ ar postel change_role: + edit_roles: Merañ perzhioù an implijerien·ezed + label: Cheñch perzh no_role: Roll ebet + title: Cheñch perzh %{username} confirm: Kadarnaat confirmed: Kadarnaet confirming: O kadarnaat @@ -53,8 +59,9 @@ br: edit: Kemmañ email: Postel email_status: Statud ar postel - enable: Gweredekaat + enable: Diskornañ enabled: Gweredekaet + enabled_msg: Diskornet eo bet kont %{username} gant berzh followers: Heulier·ezed·ien follows: Koumanantoù header: Talbenn @@ -90,6 +97,8 @@ br: role: Roll search: Klask security: Surentez + security_measures: + only_password: Ger-tremen hepken silence: Bevenniñ silenced: Bevennet statuses: Toudoù @@ -99,8 +108,10 @@ br: title: Kontoù unblock_email: Distankañ ar chomlec'h postel unblocked_email_msg: Distanket eo bet chomlec'h postel %{username} gant berzh + unconfirmed_email: Postel digadarn undo_silenced: Dizober ar bevennañ unsubscribe: Digoumanantiñ + unsuspended_msg: Diastalet eo bet kont %{username} gant berzh username: Anv implijer warn: Diwall web: Web @@ -118,9 +129,12 @@ br: destroy_status: Dilemel ar c'hannad destroy_user_role: Dilemel ar perzh disable_custom_emoji: Diweredekaat ar fromlun personelaet + disable_user: Diaotren an implijer·ez enable_custom_emoji: Gweredekaat ar fromlun personelaet reset_password_user: Adderaouekaat ar ger-tremen + suspend_account: Astaliñ ar gont unblock_email_account: Distankañ ar chomlec'h postel + unsuspend_account: Diastaliñ ar gont update_custom_emoji: Hizivaat ar fromlun personelaet update_status: Hizivaat ar c'hannad actions: @@ -134,9 +148,12 @@ br: disable_custom_emoji_html: Diweredekaet eo bet ar fromlun %{target} gant %{name} enable_custom_emoji_html: Gweredekaet eo bet ar fromlun %{target} gant %{name} resend_user_html: Adkaset eo bet ar postel kadarnaat evit %{target} gant %{name} + suspend_account_html: Astalet eo bet kont %{target} gant %{name} unblock_email_account_html: Distanket eo bet chomlec'h postel %{target} gant %{name} + unsuspend_account_html: Diastelet eo bet kont %{target} gant %{name} update_custom_emoji_html: Hizivaet eo bet ar fromlun %{target} gant %{name} update_status_html: Hizivaet eo bet toud %{target} gant %{name} + deleted_account: kont dilamet filter_by_user: Silañ dre implijer·ez title: Renabl aodit announcements: @@ -154,6 +171,7 @@ br: delete: Dilemel disable: Diweredekaat disabled: Diweredekaet + disabled_msg: Diweredekaet eo bet ar fromlun-se gant berzh emoji: Fromlun enable: Gweredekaat enabled: Gweredekaet @@ -166,6 +184,7 @@ br: shortcode: Berradenn title: Fromlunioù personelaet unlist: Dilistennañ + unlisted: Anlistennet update_failed_msg: N'haller ket hizivaat ar fromlun-mañ updated_msg: Fromlun hizivaet gant berzh! upload: Ezkargañ @@ -184,6 +203,7 @@ br: domain_blocks: confirm_suspension: cancel: Nullañ + confirm: Astaliñ domain: Domani export: Ezporzhiañ import: Enporzhiañ @@ -216,6 +236,7 @@ br: providers: active: Oberiant delete: Dilemel + edit: Kemmañ ar pourvezer name: Anv registrations: confirm: Kadarnaat @@ -291,6 +312,8 @@ br: other: "%{count} a notennoù" two: "%{count} a notennoù" action_log: Renabl aodit + already_suspended_badges: + local: Astalet endeo war ar servijer-mañ are_you_sure: Ha sur oc'h? comment: none: Hini ebet @@ -321,6 +344,7 @@ br: moderation: Habaskadur special: Ispisial delete: Dilemel + edit: Kemmañ ar perzh '%{name}' privileges: administrator: Merour invite_users: Pediñ implijerien·ezed @@ -340,10 +364,12 @@ br: edit: Kemmañ ar reolenn move_down: D'an traoñ move_up: D'ar c'hrec'h + title: Reolennoù ar servijer translation: Troidigezh translations: Troidigezhioù settings: about: + manage_rules: Merañ reolennoù ar servijer title: Diwar-benn appearance: title: Neuz @@ -358,26 +384,40 @@ br: domain_blocks: all: D'an holl dud disabled: Da zen ebet + users: D'an implijerien·ezed lec'hel kevreet + title: Arventennoù ar servijer + site_uploads: + delete: Dilemel ar restr pellgaset + destroyed_msg: Pellgasadenn zilamet gant berzh! software_updates: documentation_link: Gouzout hiroc'h + title: Hivizadennoù hegerz + type: Rizh + version: Handelv statuses: account: Aozer·ez batch: report: Disklêriañ deleted: Dilamet favourites: Re vuiañ-karet + language: Yezh media: title: Media + metadata: Metaroadennoù + no_history: An toud-mañ n'eo ket bet kemmet open: Digeriñ ar c'hannad original_status: Toud orin reblogs: Skignadennoù status_changed: Toud kemmet status_title: Embannadenn gant @%{name} + trending: Diouzh ar c'hiz visibility: Gwelusted with_media: Gant mediaoù strikes: actions: delete_statuses: Dilamet eo bet toudoù %{target} gant %{name} + disable: Skornet eo bet kont %{target} gant %{name} + suspend: Astalet eo bet kont %{target} gant %{name} system_checks: elasticsearch_preset: action: Gwelet an teuliadur @@ -392,14 +432,22 @@ br: action: Gwelet an hizivadennoù hegerz software_version_patch_check: action: Gwelet an hizivadennoù hegerz + upload_check_privacy_error: + action: Gwelet amañ evit kaout muioc'h a ditouroù + upload_check_privacy_error_object_storage: + action: Gwelet amañ evit kaout muioc'h a ditouroù tags: + search: Klask title: Gerioù-klik terms_of_service: + history: Roll-istor preview: send_preview: Kas ur rakwel da %{email} publish: Embann published_on_html: Embannet d'an %{date} save_draft: Enrollañ ar brouilhed + title: Divizoù implijout + title: Merañ trends: allow: Aotren approved: Aprouet @@ -410,11 +458,13 @@ br: rejected: Nac'het statuses: allow: Aotren ar c'hannad + title: Embannadurioù diouzh ar c'hiz tags: dashboard: tag_uses_measure: implijoù hollek not_usable: N'haller ket en implijout title: Gerioù-klik diouzh ar c'hiz + trending: Diouzh ar c'hiz username_blocks: add_new: Ouzhpennañ unan nevez delete: Dilemel @@ -424,6 +474,7 @@ br: webhooks: delete: Dilemel disable: Diweredekaat + disabled: Diweredekaet enable: Bevaat enabled: Bev events: Darvoudoù @@ -432,31 +483,53 @@ br: admin_mailer: new_appeal: actions: + delete_statuses: dilemel h·e·c'h embannadurioù + disable: skorañ h·e kont none: ur c'hemenn diwall + suspend: astaliñ h·e kont new_trends: + new_trending_statuses: + title: Embannadurioù diouzh ar c'hiz new_trending_tags: title: Gerioù-klik diouzh ar c'hiz + aliases: + add_new: Krouiñ un alias + empty: N'ho peus alias ebet. + remove: Dilemel an alias appearance: discovery: Dizoloadur localization: body: Gant tud a-youl vat eo troet Mastodon. guide_link: https://crowdin.com/project/mastodon application_mailer: + salutation: "%{name}," view: 'Sellet :' view_profile: Gwelet ar profil view_status: Gwelet ar c'hannad + applications: + logout: Digevreañ auth: + confirmations: + clicking_this_link: klaskit klikañ amañ + login_link: kevreañ + welcome_title: Degemer mat e bourzh, %{name}! delete_account: Dilemel ar gont delete_account_html: Ma fell deoc'h dilemel ho kont e c'hellit klikañ amañ. Goulennet e vo ganeoc'h kadarnaat an obererezh. description: prefix_invited_by_user: Pedet oc'h gant @%{name} da zont e-barzh ar servijer Mastodon-mañ! + didnt_get_confirmation: N'ho peus ket degemeret ul liamm kadarnaat? + dont_have_your_security_key: N'emañ ket hoc'h alc'hwez surentez ganeoc'h? + forgot_password: Ankouaet ho ker-tremen ganeoc'h? login: Mont tre - logout: Digennaskañ + logout: Digevreañ migrate_account_html: Ma fell deoc'h adkas ar gont-mañ war-zu unan all e c'hellit arventenniñ an dra-se amañ. + progress: + confirm: Kadarnaat ho postel providers: cas: CAS saml: SAML register: Lakaat ho anv + resend_confirmation: Adkas al liamm kadarnaat reset_password: Adderaouekaat ar ger-tremen rules: title_invited: Pedet oc'h bet. @@ -466,6 +539,7 @@ br: challenge: confirm: Kenderc' hel invalid_password: Ger-tremen diwiriek + prompt: Kadarnait ho ker-tremen evit kenderc'hel date: formats: default: "%d a viz %b %Y" @@ -490,9 +564,13 @@ br: strikes: appeal: Ober engalv created_at: Deiziad + status: 'Embannadur #%{id}' title_actions: + disable: Skornañ ar gont none: Diwall + suspend: Astaliñ ar gont edit_profile: + basic_information: Titouroù diavaez other: All emoji_styles: auto: Emgefreek @@ -500,6 +578,7 @@ br: exports: archive_takeout: date: Deiziad + download: Pellgargañ ho tielloù size: Ment blocks: Stankañ a rit bookmarks: Sinedoù @@ -511,6 +590,9 @@ br: contexts: account: Profiloù notifications: Kemennoù + edit: + statuses: Embannadurioù hiniennel + title: Kemmañ ar sil index: delete: Dilemel statuses: @@ -528,6 +610,7 @@ br: generic: all: Pep tra changes_saved_msg: Enrollet eo bet ar cheñchamantoù gant berzh! + confirm: Kadarnaat copy: Eilañ delete: Dilemel none: Hini ebet @@ -535,12 +618,17 @@ br: save_changes: Enrollañ ar cheñchamantoù today: hiziv imports: + errors: + empty: Restr CSV goullo + invalid_csv_file: 'Restr CSV didalvoudek. Fazi: %{error}' + too_large: Re vras eo ar restr modes: merge: Teuziñ overwrite: Flastrañ states: finished: Echu scheduled: Rakluniet + unconfirmed: Digadarn status: Statud titles: blocking: Enporzhiañ kontoù stanket @@ -576,6 +664,9 @@ br: authentication_methods: password: ger-tremen webauthn: alc’hwezioù surentez + mail_subscriptions: + unsubscribe: + action: Ya, digoumanantiñ media_attachments: validations: images_and_video: N'haller stagañ ur video ouzh un embannadur a zo fotoioù gantañ dija @@ -585,12 +676,21 @@ br: moderation: title: Habaskadur notification_mailer: + favourite: + body: 'Ouzhpennet eo bet hoc''h embannadur gant %{name} d''h·e re vuiañ-karet:' + subject: Gant %{name} eo bet ouzhpennet hoc'h embannadur d'h·e re vuiañ-karet + title: Embannadur muiañ-karet nevez follow: title: Heulier nevez mention: action: Respont + quote: + body: 'Meneget eo bet hoc''h embannadur gant %{name}:' + subject: Gant %{name} eo bet meneget hoc'h embannadur + title: Meneg nevez reblog: - subject: 'Gant %{name} eo bet skignet ho toud ' + body: 'Skignet eo bet hoc''h embannadur gant %{name}:' + subject: 'Gant %{name} eo bet skignet hoc''h embannadur ' title: Skignadenn nevez status: subject: Embannet ez eus bet traoù gant %{name} @@ -662,6 +762,7 @@ br: weibo: Weibo date: Deiziad description: "%{browser} war %{platform}" + explanation: Sed amañ ar merdeerioù kevreet gant ho kont Mastodon bremañ. ip: IP platforms: adobe_air: Adobe Air @@ -674,7 +775,9 @@ br: settings: account: Kont account_settings: Arventennoù ar gont + aliases: Aliasoù ar gont back: Distreiñ da vMastodon + delete: Dilemel ar gont development: Diorren edit_profile: Kemmañ ar profil export: Ezporzhiañ @@ -686,6 +789,7 @@ br: profile: Profil relationships: Heulierien·ezed ha tud heuliet severed_relationships: + download: Pellgargañ (%{count}) event_type: user_domain_block: Stanket ho peus %{target_name} lost_followers: Heulierien·ezed kollet @@ -699,6 +803,7 @@ br: one: "%{count} skeudenn" other: "%{count} skeudenn" two: "%{count} skeudenn" + edited_at_html: Kemmet d'an %{date} errors: quoted_status_not_found: War a seblant, n'eus ket eus an embannadenn emaoc'h o klask menegiñ. pin_errors: @@ -706,6 +811,7 @@ br: reblog: N'haller ket spilhennañ ur skignadenn quote_policies: followers: Heulierien·ezed hepken + nobody: Me hepken public: Pep hini title: '%{name}: "%{quote}"' visibilities: @@ -715,6 +821,12 @@ br: statuses_cleanup: keep_direct: Mirout ar c'hannadoù eeun keep_media: Derc'hel an embannadurioù gant restroù stag + keep_pinned: Mirout an embannadurioù spilhennet + keep_pinned_hint: Chom hep dilemel hoc'h embannadurioù spilhennet + keep_self_bookmark: Mirout an embannadurioù enrollet evel sinedoù + keep_self_bookmark_hint: Chom hep dilemel hoc'h embannadurioù m'ho peus lakaet anezho er sinedoù + keep_self_fav: Mirout an embannadurioù muiañ-karet + keep_self_fav_hint: Chom hep dilemel hoc'h embannadurioù m'ho peus lakaet anezho en ho re vuiañ-karet min_age: '1209600': 2 sizhunvezh '15778476': 6 mizvezh @@ -727,8 +839,10 @@ br: terms_of_service: title: Divizoù implijout themes: + contrast: Mastodon (Dargemm kreñv) default: Mastodon (Teñval) mastodon-light: Mastodon (Sklaer) + system: Emgefreek (implijout neuz ar reizhiad) time: formats: default: "%d a viz %b %Y, %H:%M" @@ -745,6 +859,7 @@ br: action: Arventennoù ar gont backup_ready: extra: Prest eo da vezañ pellgarget! + subject: Prest eo ho tielloù da vezañ pellgarget suspicious_sign_in: change_password: kemmañ ho ker-tremen terms_of_service_changed: @@ -755,10 +870,16 @@ br: categories: spam: Spam reason: 'Abeg:' - statuses: 'Toudoù meneget:' + statuses: 'Embannadurioù meneget:' + subject: + disable: Skornet eo bet ho kont %{acct} + suspend: Astalet eo bet ho kont %{acct} title: - delete_statuses: Toudoù dilamet + delete_statuses: Embannadurioù dilamet + disable: Kont skornet none: Diwall + silence: Kont vevennet + suspend: Kont astalet welcome: apps_android_action: Tapit anezhañ war Google Play apps_ios_action: Pellgargañ war an App Store @@ -768,7 +889,7 @@ br: edit_profile_title: Personelaat ho profil feature_action: Gouzout hiroc'h follow_action: Heuliañ - follow_title: Personelait ho kwazh pennañ + follow_title: Personelait ho red degemer follows_subtitle: Heuilhit kontoù brudet-mat follows_title: Piv heuliañ hashtags_title: Gerioù-klik diouzh ar c'hiz @@ -791,7 +912,7 @@ br: success: Hoc'h alc'hwez surentez a zo bet ouzphennet gant berzh. delete: Dilemel delete_confirmation: Sur oc'h e fell deoc'h dilemel an alc'hwez surentez-se ? - description_html: Ma'z eo aotreet dilesadur dre alc'hwez surentez, ret e vo deoc'h implijout unan eus hoc'h alc'hwezioù surentez evit mont-tre. + description_html: M'eo aotreet an dilesa dre alc'hwez surentez e vo ret deoc'h implijout unan eus hoc'h alc'hwezioù surentez evit mont-tre. destroy: error: Ur gudenn a oa en ur zilemel hoc'h alc'hwez surentez. Mar plij, klaskit c'hoazh. success: Hoc'h alc'hwez surentez a zo bet dilamet gant berzh. diff --git a/config/locales/devise.br.yml b/config/locales/devise.br.yml index 4279f4303b60d6..ffd64e642d71d0 100644 --- a/config/locales/devise.br.yml +++ b/config/locales/devise.br.yml @@ -13,7 +13,7 @@ br: locked: Prennet eo ho kont. not_found_in_database: "%{authentication_keys} pe ger-tremen diwiriek." pending: O vezañ asantet eo ho kont. - timeout: Ho talc'h a zo aet da dermen. Mar plij, kit-tre c'hoazh evit kenderc'hel. + timeout: Ho talc'h a zo aet da dermen. Mar plij, kevreit c'hoazh evit kenderc'hel. unauthenticated: Ret eo deoc'h mont-tre pe e em enskrivañ araok kenderc'hel. unconfirmed: Ret eo deoc'h kadarnaat ho chomlec'h-postel araok kenderc'hel. mailer: diff --git a/config/locales/doorkeeper.br.yml b/config/locales/doorkeeper.br.yml index 8de992158b6047..e08bc948b474c3 100644 --- a/config/locales/doorkeeper.br.yml +++ b/config/locales/doorkeeper.br.yml @@ -98,15 +98,25 @@ br: notice: Skarzhet eo bet an arload. grouped_scopes: title: + accounts: Kontoù + admin/accounts: Merañ ar c'hontoù + admin/all: An holl berzhioù merañ blocks: Re stanket bookmarks: Sinedoù + conversations: Kaozeadennoù + crypto: Enrinegañ a-benn-da-benn + favourites: Embannadurioù muiañ-karet filters: Siloù + follows: Tud heuliet lists: Listennoù media: Restroù media stag mutes: Kuzhet + notifications: Kemennoù profile: Ho profil Mastodon + push: Kemennoù push + reports: Disklêriadennoù search: Klask - statuses: Toudoù + statuses: Embannadurioù layouts: admin: nav: @@ -121,23 +131,26 @@ br: admin:write: kemmañ holl titouroù ar servijer admin:write:accounts: ober evezherezh war ar c'hontoù admin:write:reports: ober evezherezh war an danevelloù + crypto: implijout an enrinegañ a-benn-da-benn follow: kemmañ darempredoù ho kont push: resev ho kemennoù push read: lenn holl titouroù ho kont read:accounts: gwelet titouroù ar c'hontoù read:blocks: gwelet ar pezh a zo stanket ganeoc'h read:bookmarks: gwelet ho sinedoù + read:favourites: gwelet hoc'h embannadurioù muiañ-karet read:filters: gwelet ho siloù read:follows: gwelet ar pezh a zo heuliet ganeoc'h read:lists: gwelet ho listennoù read:mutes: gwelet traoù pe kontoù kuzhet ganeoc'h read:notifications: gwellout ho kemennoù read:reports: gwelet ho tanevelloù - read:statuses: gwelet an holl toudoù + read:statuses: gwelet an holl embannadurioù write: kemmañ holl titouroù ho kont write:accounts: kemmañ ho profil write:blocks: stankañ kontoù ha domanioù - write:bookmarks: toudoù enrollet evel sinedoù + write:bookmarks: enrollañ embannadurioù evel sinedoù + write:favourites: merkañ embannadurioù evel muiañ-karet write:filters: krouiñ siloù write:follows: heuliañ an dud write:lists: krouiñ listennoù @@ -145,4 +158,4 @@ br: write:mutes: kuzhat tud ha kaozeadennoù write:notifications: skarzhañ ho kemennoù write:reports: danevellañ tud all - write:statuses: embann toudoù + write:statuses: embann diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 979ff4fc480679..fb1466a58128df 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1922,6 +1922,7 @@ hu: private_long: Csak a követőidnek jelenik meg public: Nyilvános public_long: Bárki a Mastodonon és azon kívül + unlisted: Csendes nyilvános unlisted_long: Elrejtve a Mastodon keresési találataiban, a felkapottak között és a nyilvános idővonalakon statuses_cleanup: enabled: Régi bejegyzések automatikus törlése diff --git a/config/locales/simple_form.br.yml b/config/locales/simple_form.br.yml index d2a316b5e538e1..87065f9a0b6e54 100644 --- a/config/locales/simple_form.br.yml +++ b/config/locales/simple_form.br.yml @@ -6,10 +6,13 @@ br: note: 'Gallout a rit @menegiñ tud all pe #gerioù-klik.' defaults: avatar: WEBP, PNG, GIF pe JPG. Bihanoc'h eget %{size}. A vo izelaet betek %{dimensions}px + email: Kaset e vo deoc'h ur postel kadarnaat header: WEBP, PNG, GIF pe JPG. Bihanoc'h eget %{size}. A vo izelaet betek %{dimensions}px password: Implijit 8 lizherennoù d'an neubeutañ setting_default_sensitive: Ar mediaoù kizidik a zo kuzhet dre ziouer ha gallout a reont bezañ diguzhet dre ur c'hlik setting_display_media_default: Kuzhat mediaoù aroueziet evel kizidik + form_admin_settings: + theme: Neuz a vez gwelet gant an implijerien·ezed nevez pe digevreet. form_challenge: current_password: Emaoc'h o tont-tre ul lec'h diogel labels: @@ -17,6 +20,7 @@ br: fields: name: Label value: Endalc'h + show_collections: Diskwel an dud heuliet hag an heulierien·ezed war ar profil account_alias: acct: Anaouder ar gont gozh account_migration: @@ -53,6 +57,8 @@ br: note: Kinnig password: Ger-tremen phrase: Ger-alc'hwez pe frazenn + setting_default_language: Yezh an embann + setting_default_quote_policy: Piv a c'hall menegiñ setting_display_media_default: Dre ziouer setting_display_media_hide_all: Kuzhat pep tra setting_display_media_show_all: Diskouez pep tra @@ -62,14 +68,21 @@ br: setting_theme: Neuz al lec'hienn setting_use_pending_items: Mod gorrek title: Titl + type: Rizh an enporzhiañ username: Anv username_or_email: Anv implijer pe postel whole_word: Ger a-bezh featured_tag: name: Ger-klik form_admin_settings: + app_icon: Arlun an arload custom_css: CSS personelaet favicon: Favicon + profile_directory: Gweredekaat roll ar profiloù + site_short_description: Deskrivadur ar servijer + site_terms: Reolennoù prevezded + site_title: Anv ar servijer + theme: Neuz dre ziouer invite: comment: Evezhiadenn invite_request: @@ -79,13 +92,22 @@ br: ip: IP severity: Reolenn notification_emails: + favourite: Gant unan bennak eo bet ouzhpennet hoc'h embannadur d'h·e re vuiañ-karet follow: Heuliañ a ra {name} ac'hanoc'h + quote: Meneget oc'h bet gant unan bennak + reblog: Gant unan bennak eo bet skignet hoc'h embannadur + software_updates: + label: Un handelv nevez eus Mastodon a zo deuet er-maez rule: hint: Titouroù ouzhpenn text: Reolenn tag: name: Ger-klik trendable: Aotren ar ger-klik-mañ da zont war wel dindan tuadurioù + usable: Aotren an embannadurioù da implijout ar ger-klik-mañ ent-lec'hel + terms_of_service_generator: + domain: Domani + jurisdiction: Barnadurezh user: date_of_birth_1i: Devezh date_of_birth_2i: Mizvezh @@ -95,9 +117,15 @@ br: user_role: name: Anv permissions_as_keys: Aotreoù + webhook: + events: Darvoudoù gweredekaet 'no': Ket + not_recommended: Ket erbedet recommended: Erbedet required: mark: "*" text: rekis + title: + sessions: + webauthn: Implijout unan eus hoc'h alc'hwezioù surentez da gevreañ 'yes': Ya From cf20c5db9c2f36f3b4fe65ae2733dea44ed70eeb Mon Sep 17 00:00:00 2001 From: diondiondion Date: Tue, 9 Sep 2025 14:43:23 +0200 Subject: [PATCH 14/81] Show hint explaining post visibility when quoting a "quiet public" post (#36065) --- .../mastodon/actions/compose_typed.ts | 21 ++++- .../compose/components/visibility_button.tsx | 10 ++- .../confirmation_modal.tsx | 6 +- .../components/confirmation_modals/index.ts | 1 + .../quiet_post_quote_info.tsx | 77 +++++++++++++++++++ .../features/ui/components/modal_root.jsx | 2 + app/javascript/mastodon/locales/en.json | 4 + app/javascript/mastodon/reducers/settings.js | 1 + 8 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/quiet_post_quote_info.tsx diff --git a/app/javascript/mastodon/actions/compose_typed.ts b/app/javascript/mastodon/actions/compose_typed.ts index 3c6a264993672b..7f70a1bd4818fb 100644 --- a/app/javascript/mastodon/actions/compose_typed.ts +++ b/app/javascript/mastodon/actions/compose_typed.ts @@ -16,6 +16,7 @@ import type { Status } from '../models/status'; import { showAlert } from './alerts'; import { focusCompose } from './compose'; +import { openModal } from './modal'; const messages = defineMessages({ quoteErrorUpload: { @@ -110,8 +111,16 @@ export const quoteCompose = createAppThunk( export const quoteComposeByStatus = createAppThunk( (status: Status, { dispatch, getState }) => { - const composeState = getState().compose; + const state = getState(); + const composeState = state.compose; const mediaAttachments = composeState.get('media_attachments'); + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const wasQuietPostHintModalDismissed: boolean = + // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access + state.settings.getIn( + ['dismissed_banners', 'quote/quiet_post_hint'], + false, + ); if (composeState.get('poll')) { dispatch(showAlert({ message: messages.quoteErrorPoll })); @@ -131,6 +140,16 @@ export const quoteComposeByStatus = createAppThunk( status.getIn(['quote_approval', 'current_user']) !== 'manual' ) { dispatch(showAlert({ message: messages.quoteErrorUnauthorized })); + } else if ( + status.get('visibility') === 'unlisted' && + !wasQuietPostHintModalDismissed + ) { + dispatch( + openModal({ + modalType: 'CONFIRM_QUIET_QUOTE', + modalProps: { status }, + }), + ); } else { dispatch(quoteCompose(status)); } diff --git a/app/javascript/mastodon/features/compose/components/visibility_button.tsx b/app/javascript/mastodon/features/compose/components/visibility_button.tsx index 203a569bcc988b..fadb896b5eca80 100644 --- a/app/javascript/mastodon/features/compose/components/visibility_button.tsx +++ b/app/javascript/mastodon/features/compose/components/visibility_button.tsx @@ -79,10 +79,12 @@ const visibilityOptions = { const PrivacyModalButton: FC = ({ disabled = false }) => { const intl = useIntl(); - const { visibility, quotePolicy } = useAppSelector((state) => ({ - visibility: state.compose.get('privacy') as StatusVisibility, - quotePolicy: state.compose.get('quote_policy') as ApiQuotePolicy, - })); + const quotePolicy = useAppSelector( + (state) => state.compose.get('quote_policy') as ApiQuotePolicy, + ); + const visibility = useAppSelector( + (state) => state.compose.get('privacy') as StatusVisibility, + ); const { icon, iconComponent } = useMemo(() => { const option = visibilityOptions[visibility]; 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 index 7a0bfe6a944c5d..19ffe2bae52f1d 100644 --- a/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx @@ -43,10 +43,6 @@ export const ConfirmationModal: React.FC< onSecondary?.(); }, [onClose, onSecondary]); - const handleCancel = useCallback(() => { - onClose(); - }, [onClose]); - return (
    @@ -58,7 +54,7 @@ export const ConfirmationModal: React.FC<
    -
    -
    - -
    +
    ); diff --git a/app/javascript/mastodon/features/ui/components/visibility_modal.tsx b/app/javascript/mastodon/features/ui/components/visibility_modal.tsx index fa04052da005d5..afd9ee7ed0676b 100644 --- a/app/javascript/mastodon/features/ui/components/visibility_modal.tsx +++ b/app/javascript/mastodon/features/ui/components/visibility_modal.tsx @@ -198,8 +198,11 @@ export const VisibilityModal: FC = forwardRef( onClose(); }, [onChange, onClose, visibility, quotePolicy]); - const privacyDropdownId = useId(); - const quoteDropdownId = useId(); + const uniqueId = useId(); + const visibilityLabelId = `${uniqueId}-visibility-label`; + const visibilityDescriptionId = `${uniqueId}-visibility-desc`; + const quoteLabelId = `${uniqueId}-quote-label`; + const quoteDescriptionId = `${uniqueId}-quote-desc`; return (
    @@ -234,28 +237,36 @@ export const VisibilityModal: FC = forwardRef( />
    - +
    - + +
    @@ -320,7 +323,7 @@ export const DropdownMenu = ({ ); }; -interface DropdownProps { +interface DropdownProps { children?: React.ReactElement; icon?: string; iconComponent?: IconProp; @@ -348,7 +351,7 @@ interface DropdownProps { const offset = [5, 5] as OffsetValue; const popperConfig = { strategy: 'fixed' } as UsePopperOptions; -export const Dropdown = ({ +export const Dropdown = ({ children, icon, iconComponent, diff --git a/app/javascript/mastodon/components/status/boost_button.tsx b/app/javascript/mastodon/components/status/boost_button.tsx index b34988de47cf2d..7352c0c5357a0a 100644 --- a/app/javascript/mastodon/components/status/boost_button.tsx +++ b/app/javascript/mastodon/components/status/boost_button.tsx @@ -180,7 +180,7 @@ const ReblogMenuItem: FC = ({ + )} + ); } diff --git a/app/javascript/mastodon/features/compose/components/quoted_post.tsx b/app/javascript/mastodon/features/compose/components/quoted_post.tsx index 335e7ce610dc5e..f09d6fcd3443ff 100644 --- a/app/javascript/mastodon/features/compose/components/quoted_post.tsx +++ b/app/javascript/mastodon/features/compose/components/quoted_post.tsx @@ -11,7 +11,9 @@ export const ComposeQuotedStatus: FC = () => { const quotedStatusId = useAppSelector( (state) => state.compose.get('quoted_status_id') as string | null, ); + const isEditing = useAppSelector((state) => !!state.compose.get('id')); + const quote = useMemo( () => quotedStatusId @@ -22,16 +24,20 @@ export const ComposeQuotedStatus: FC = () => { : null, [quotedStatusId], ); + const dispatch = useAppDispatch(); const handleQuoteCancel = useCallback(() => { dispatch(quoteComposeCancel()); }, [dispatch]); + if (!quote) { return null; } + return ( ); diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 3d8b957c947c8f..c296c4f537d825 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -924,6 +924,7 @@ "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", "status.remove_favourite": "Remove from favorites", + "status.remove_quote": "Remove", "status.replied_in_thread": "Replied in thread", "status.replied_to": "Replied to {name}", "status.reply": "Reply", diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js index 3119b285b22b84..1e68d49aa69f80 100644 --- a/app/javascript/mastodon/selectors/index.js +++ b/app/javascript/mastodon/selectors/index.js @@ -8,57 +8,98 @@ import { getFilters } from './filters'; export { makeGetAccount } from "./accounts"; export { getStatusList } from "./statuses"; -export const makeGetStatus = () => { - return createSelector( - [ - (state, { id }) => state.getIn(['statuses', id]), - (state, { id }) => state.getIn(['statuses', state.getIn(['statuses', id, 'reblog'])]), - (state, { id }) => state.getIn(['accounts', state.getIn(['statuses', id, 'account'])]), - (state, { id }) => state.getIn(['accounts', state.getIn(['statuses', state.getIn(['statuses', id, 'reblog']), 'account'])]), - getFilters, - (_, { contextType }) => ['detailed', 'bookmarks', 'favourites'].includes(contextType), - ], - - (statusBase, statusReblog, accountBase, accountReblog, filters, warnInsteadOfHide) => { - if (!statusBase || statusBase.get('isLoading')) { - return null; - } +const getStatusInputSelectors = [ + (state, { id }) => state.getIn(['statuses', id]), + (state, { id }) => state.getIn(['statuses', state.getIn(['statuses', id, 'reblog'])]), + (state, { id }) => state.getIn(['accounts', state.getIn(['statuses', id, 'account'])]), + (state, { id }) => state.getIn(['accounts', state.getIn(['statuses', state.getIn(['statuses', id, 'reblog']), 'account'])]), + getFilters, + (_, { contextType }) => ['detailed', 'bookmarks', 'favourites'].includes(contextType), +]; - if (statusReblog) { - statusReblog = statusReblog.set('account', accountReblog); - } else { - statusReblog = null; - } +function getStatusResultFunction( + statusBase, + statusReblog, + accountBase, + accountReblog, + filters, + warnInsteadOfHide +) { + if (!statusBase) { + return { + status: null, + loadingState: 'not-found', + }; + } - let filtered = false; - let mediaFiltered = false; - if ((accountReblog || accountBase).get('id') !== me && filters) { - let filterResults = statusReblog?.get('filtered') || statusBase.get('filtered') || ImmutableList(); - if (!warnInsteadOfHide && filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action']) === 'hide')) { - return null; - } - - let mediaFilters = filterResults.filter(result => filters.getIn([result.get('filter'), 'filter_action']) === 'blur'); - if (!mediaFilters.isEmpty()) { - mediaFiltered = mediaFilters.map(result => filters.getIn([result.get('filter'), 'title'])); - } - - filterResults = filterResults.filter(result => filters.has(result.get('filter')) && filters.getIn([result.get('filter'), 'filter_action']) !== 'blur'); - if (!filterResults.isEmpty()) { - filtered = filterResults.map(result => filters.getIn([result.get('filter'), 'title'])); - } + if (statusBase.get('isLoading')) { + return { + status: null, + loadingState: 'loading', + } + } + + if (statusReblog) { + statusReblog = statusReblog.set('account', accountReblog); + } else { + statusReblog = null; + } + + let filtered = false; + let mediaFiltered = false; + if ((accountReblog || accountBase).get('id') !== me && filters) { + let filterResults = statusReblog?.get('filtered') || statusBase.get('filtered') || ImmutableList(); + if (!warnInsteadOfHide && filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action']) === 'hide')) { + return { + status: null, + loadingState: 'filtered', } + } + + let mediaFilters = filterResults.filter(result => filters.getIn([result.get('filter'), 'filter_action']) === 'blur'); + if (!mediaFilters.isEmpty()) { + mediaFiltered = mediaFilters.map(result => filters.getIn([result.get('filter'), 'title'])); + } + + filterResults = filterResults.filter(result => filters.has(result.get('filter')) && filters.getIn([result.get('filter'), 'filter_action']) !== 'blur'); + if (!filterResults.isEmpty()) { + filtered = filterResults.map(result => filters.getIn([result.get('filter'), 'title'])); + } + } - return statusBase.withMutations(map => { - map.set('reblog', statusReblog); - map.set('account', accountBase); - map.set('matched_filters', filtered); - map.set('matched_media_filters', mediaFiltered); - }); + return { + status: statusBase.withMutations(map => { + map.set('reblog', statusReblog); + map.set('account', accountBase); + map.set('matched_filters', filtered); + map.set('matched_media_filters', mediaFiltered); + }), + loadingState: 'complete' + }; +} + +export const makeGetStatus = () => { + return createSelector( + getStatusInputSelectors, + (...args) => { + const {status} = getStatusResultFunction(...args); + return status }, ); }; +/** + * This selector extends the `makeGetStatus` with a more detailed + * `loadingState`, which is useful to find out why `null` is returned + * for the `status` field + */ +export const makeGetStatusWithExtraInfo = () => { + return createSelector( + getStatusInputSelectors, + getStatusResultFunction, + ); +}; + export const makeGetPictureInPicture = () => { return createSelector([ (state, { id }) => state.picture_in_picture.statusId === id, From 946721fd0ba3d2135b55f27fa153f5aa372b4b09 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 11 Sep 2025 18:32:55 +0200 Subject: [PATCH 32/81] Fix local quote notifications (#36091) --- app/services/fan_out_on_write_service.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb index 83acb49fd2dffc..64769230b7cfc9 100644 --- a/app/services/fan_out_on_write_service.rb +++ b/app/services/fan_out_on_write_service.rb @@ -40,6 +40,7 @@ def fan_out_to_local_recipients! deliver_to_self! unless @options[:skip_notifications] + notify_quoted_account! notify_mentioned_accounts! notify_about_update! if update? end @@ -69,6 +70,12 @@ def deliver_to_self! FeedManager.instance.push_to_home(@account, @status, update: update?) if @account.local? end + def notify_quoted_account! + return unless @status.quote&.quoted_account&.local? && @status.quote&.accepted? + + LocalNotificationWorker.perform_async(@status.quote.quoted_account_id, @status.quote.id, 'Quote', 'quote') + end + def notify_mentioned_accounts! @status.active_mentions.where.not(id: @options[:silenced_account_ids] || []).joins(:account).merge(Account.local).select(:id, :account_id).reorder(nil).find_in_batches do |mentions| LocalNotificationWorker.push_bulk(mentions) do |mention| From 45a996f12b04f88e0774bc6d6b52452ce39b612f Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 11 Sep 2025 18:36:18 +0200 Subject: [PATCH 33/81] Fix "Post revoked" label & "Pending" tooltip text (#36090) --- .../mastodon/components/status_quoted.tsx | 53 ++++++++++--------- app/javascript/mastodon/locales/en.json | 4 +- 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/app/javascript/mastodon/components/status_quoted.tsx b/app/javascript/mastodon/components/status_quoted.tsx index f0bbe8e7f1f13e..93a5ad869892bc 100644 --- a/app/javascript/mastodon/components/status_quoted.tsx +++ b/app/javascript/mastodon/components/status_quoted.tsx @@ -21,8 +21,10 @@ const MAX_QUOTE_POSTS_NESTING_LEVEL = 1; const QuoteWrapper: React.FC<{ isError?: boolean; + contextType?: string; + onQuoteCancel?: () => void; children: React.ReactElement; -}> = ({ isError, children }) => { +}> = ({ isError, contextType, onQuoteCancel, children }) => { return (
    {children} + {contextType === 'composer' && ( + + )}
    ); }; @@ -146,49 +153,47 @@ export const QuotedStatus: React.FC = ({ /> -
    - -

    ); + } else if (quoteState === 'revoked') { + quoteError = ( + + ); } else if ( !status || !quotedStatusId || quoteState === 'deleted' || quoteState === 'rejected' || - quoteState === 'revoked' || quoteState === 'unauthorized' ) { quoteError = ( - <> - - {contextType === 'composer' && ( - - )} - + ); } if (quoteError) { - return {quoteError}; + return ( + + {quoteError} + + ); } if (variant === 'link' && status) { diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index c296c4f537d825..ec67ba1d55af4c 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Hidden due to one of your filters", "status.quote_error.not_available": "Post unavailable", "status.quote_error.pending_approval": "Post pending", - "status.quote_error.pending_approval_popout.body": "Quotes shared across the Fediverse may take time to display, as different servers have different protocols.", - "status.quote_error.pending_approval_popout.title": "Pending quote? Remain calm", + "status.quote_error.pending_approval_popout.body": "On Mastodon, you can control whether someone can quote you. This post is pending while we're getting the original author's approval.", + "status.quote_error.revoked": "Post removed by author", "status.quote_followers_only": "Only followers can quote this post", "status.quote_manual_review": "Author will manually review", "status.quote_policy_change": "Change who can quote", From b59e06fba76472d6a4cb2b30593e8fbb21e072e2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 12 Sep 2025 11:04:44 +0200 Subject: [PATCH 34/81] New Crowdin Translations (automated) (#36092) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/az.json | 1 - app/javascript/mastodon/locales/be.json | 5 +++-- app/javascript/mastodon/locales/ca.json | 2 -- app/javascript/mastodon/locales/cs.json | 2 -- app/javascript/mastodon/locales/cy.json | 2 -- app/javascript/mastodon/locales/da.json | 5 +++-- app/javascript/mastodon/locales/de.json | 11 ++++++----- app/javascript/mastodon/locales/el.json | 2 -- app/javascript/mastodon/locales/eo.json | 2 -- app/javascript/mastodon/locales/es-AR.json | 5 +++-- app/javascript/mastodon/locales/es-MX.json | 5 +++-- app/javascript/mastodon/locales/es.json | 7 ++++--- app/javascript/mastodon/locales/et.json | 5 +++-- app/javascript/mastodon/locales/fa.json | 2 -- app/javascript/mastodon/locales/fi.json | 9 +++++++-- app/javascript/mastodon/locales/fo.json | 2 -- app/javascript/mastodon/locales/fr-CA.json | 1 - app/javascript/mastodon/locales/fr.json | 1 - app/javascript/mastodon/locales/ga.json | 2 -- app/javascript/mastodon/locales/gl.json | 5 +++-- app/javascript/mastodon/locales/he.json | 5 +++-- app/javascript/mastodon/locales/hu.json | 2 -- app/javascript/mastodon/locales/ia.json | 2 -- app/javascript/mastodon/locales/is.json | 5 +++-- app/javascript/mastodon/locales/it.json | 7 +++++-- app/javascript/mastodon/locales/nan.json | 2 -- app/javascript/mastodon/locales/nl.json | 5 +++-- app/javascript/mastodon/locales/nn.json | 2 -- app/javascript/mastodon/locales/pl.json | 2 -- app/javascript/mastodon/locales/pt-BR.json | 2 -- app/javascript/mastodon/locales/pt-PT.json | 2 -- app/javascript/mastodon/locales/ru.json | 1 - app/javascript/mastodon/locales/sv.json | 2 -- app/javascript/mastodon/locales/tr.json | 2 -- app/javascript/mastodon/locales/vi.json | 5 +++-- app/javascript/mastodon/locales/zh-CN.json | 15 ++++++++------- app/javascript/mastodon/locales/zh-TW.json | 5 +++-- config/locales/activerecord.zh-CN.yml | 2 +- config/locales/an.yml | 1 - config/locales/ar.yml | 1 - config/locales/ast.yml | 2 -- config/locales/az.yml | 2 -- config/locales/be.yml | 2 +- config/locales/bg.yml | 1 - config/locales/br.yml | 1 - config/locales/ca.yml | 1 - config/locales/ckb.yml | 1 - config/locales/co.yml | 1 - config/locales/cs.yml | 1 - config/locales/cy.yml | 1 - config/locales/de.yml | 2 +- config/locales/el.yml | 1 - config/locales/en-GB.yml | 1 - config/locales/eo.yml | 1 - config/locales/es-AR.yml | 2 +- config/locales/es-MX.yml | 2 +- config/locales/et.yml | 2 +- config/locales/eu.yml | 1 - config/locales/fa.yml | 1 - config/locales/fo.yml | 1 - config/locales/fr-CA.yml | 1 - config/locales/fr.yml | 1 - config/locales/fy.yml | 1 - config/locales/ga.yml | 1 - config/locales/gd.yml | 1 - config/locales/gl.yml | 2 +- config/locales/hr.yml | 1 - config/locales/hy.yml | 1 - config/locales/ia.yml | 1 - config/locales/id.yml | 1 - config/locales/ie.yml | 1 - config/locales/io.yml | 1 - config/locales/it.yml | 2 +- config/locales/ja.yml | 1 - config/locales/ka.yml | 1 - config/locales/kab.yml | 1 - config/locales/kk.yml | 1 - config/locales/ko.yml | 1 - config/locales/ku.yml | 1 - config/locales/lad.yml | 1 - config/locales/lt.yml | 1 - config/locales/lv.yml | 1 - config/locales/ms.yml | 1 - config/locales/my.yml | 1 - config/locales/nn.yml | 1 - config/locales/no.yml | 1 - config/locales/oc.yml | 1 - config/locales/pl.yml | 1 - config/locales/pt-BR.yml | 1 - config/locales/pt-PT.yml | 1 - config/locales/ro.yml | 2 -- config/locales/ru.yml | 1 - config/locales/sc.yml | 1 - config/locales/sco.yml | 1 - config/locales/si.yml | 1 - config/locales/simple_form.be.yml | 2 ++ config/locales/simple_form.da.yml | 2 ++ config/locales/simple_form.de.yml | 2 ++ config/locales/simple_form.es-AR.yml | 2 ++ config/locales/simple_form.es-MX.yml | 2 ++ config/locales/simple_form.es.yml | 2 ++ config/locales/simple_form.et.yml | 18 ++++++++++++++++++ config/locales/simple_form.fi.yml | 2 ++ config/locales/simple_form.gl.yml | 2 ++ config/locales/simple_form.he.yml | 2 ++ config/locales/simple_form.hu.yml | 2 ++ config/locales/simple_form.is.yml | 2 ++ config/locales/simple_form.it.yml | 2 ++ config/locales/simple_form.nl.yml | 2 ++ config/locales/simple_form.vi.yml | 2 ++ config/locales/simple_form.zh-CN.yml | 2 ++ config/locales/simple_form.zh-TW.yml | 2 ++ config/locales/sk.yml | 1 - config/locales/sl.yml | 1 - config/locales/sq.yml | 1 - config/locales/sr-Latn.yml | 1 - config/locales/sr.yml | 1 - config/locales/sv.yml | 1 - config/locales/th.yml | 1 - config/locales/tr.yml | 1 - config/locales/tt.yml | 1 - config/locales/uk.yml | 1 - config/locales/vi.yml | 2 +- config/locales/zh-CN.yml | 8 ++++---- config/locales/zh-HK.yml | 1 - 125 files changed, 126 insertions(+), 156 deletions(-) diff --git a/app/javascript/mastodon/locales/az.json b/app/javascript/mastodon/locales/az.json index f49b6a3f517e43..a062411970b89e 100644 --- a/app/javascript/mastodon/locales/az.json +++ b/app/javascript/mastodon/locales/az.json @@ -868,7 +868,6 @@ "status.quote_error.filtered": "Bəzi filtrlərinizə görə gizlidir", "status.quote_error.not_available": "Göndəriş əlçatmazdır", "status.quote_error.pending_approval": "Göndəriş gözləmədədir", - "status.quote_error.pending_approval_popout.title": "Gözləyən sitat var? Səbrli olun.", "status.quote_post_author": "@{name} göndərişini sitat gətirdi", "status.read_more": "Daha çoxunu oxu", "status.reblog": "Təkrar paylaş", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 73d6035ae8edaa..5f2f4f4befeae8 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Схавана адным з Вашых фільтраў", "status.quote_error.not_available": "Допіс недаступны", "status.quote_error.pending_approval": "Допіс чакае пацвярджэння", - "status.quote_error.pending_approval_popout.body": "Допісы, якія былі цытаваныя паміж серверамі Fediverse, могуць доўга загружацца, паколькі розныя серверы маюць розныя пратаколы.", - "status.quote_error.pending_approval_popout.title": "Цытаваны допіс чакае пацвярджэння? Захоўвайце спакой", + "status.quote_error.pending_approval_popout.body": "У Mastodon можна кантраляваць магчымасць іншых цытаваць Вас. Гэты допіс будзе знаходзіцца ў стане чакання, пакуль мы не атрымаем ухваленне на цытаванне ад аўтара арыгінальнага допісу.", + "status.quote_error.revoked": "Аўтар выдаліў допіс", "status.quote_followers_only": "Толькі падпісчыкі могуць цытаваць гэты допіс", "status.quote_manual_review": "Аўтар зробіць агляд уручную", "status.quote_policy_change": "Змяніць, хто можа цытаваць", @@ -924,6 +924,7 @@ "status.redraft": "Выдаліць і перапісаць", "status.remove_bookmark": "Выдаліць закладку", "status.remove_favourite": "Выдаліць з упадабаных", + "status.remove_quote": "Выдаліць", "status.replied_in_thread": "Адказаў(-ла) у ланцужку", "status.replied_to": "Адказаў(-ла) {name}", "status.reply": "Адказаць", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index c6351eab5f2bbd..02c0f7a9945f7d 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -887,8 +887,6 @@ "status.quote_error.filtered": "No es mostra a causa d'un dels vostres filtres", "status.quote_error.not_available": "Publicació no disponible", "status.quote_error.pending_approval": "Publicació pendent", - "status.quote_error.pending_approval_popout.body": "Les citacions compartides a través del Fediverse poden trigar en aparèixer, perquè diferents servidors tenen diferents protocols.", - "status.quote_error.pending_approval_popout.title": "Publicació pendent? Mantinguem la calma", "status.quote_followers_only": "Només els seguidors poden citar aquesta publicació", "status.quote_manual_review": "L'autor ho revisarà manualment", "status.quote_policy_change": "Canvieu qui us pot citar", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index edae5dcb47d83b..f6ef554d1d22e3 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -905,8 +905,6 @@ "status.quote_error.filtered": "Skryté kvůli jednomu z vašich filtrů", "status.quote_error.not_available": "Příspěvek není dostupný", "status.quote_error.pending_approval": "Příspěvek čeká na schválení", - "status.quote_error.pending_approval_popout.body": "Zobrazení citátů sdílených napříč Fediversem může chvíli trvat, protože různé servery používají různé protokoly.", - "status.quote_error.pending_approval_popout.title": "Příspěvek čeká na schválení? Buďte klidní", "status.quote_followers_only": "Pouze moji sledující mohou citovat tento příspěvek", "status.quote_manual_review": "Autor provede manuální kontrolu", "status.quote_policy_change": "Změňte, kdo může citovat", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 1433c99db9055e..93f15afab5c35e 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -902,8 +902,6 @@ "status.quote_error.filtered": "Wedi'i guddio oherwydd un o'ch hidlwyr", "status.quote_error.not_available": "Postiad ddim ar gael", "status.quote_error.pending_approval": "Postiad yn yr arfaeth", - "status.quote_error.pending_approval_popout.body": "Gall dyfyniadau sy'n cael eu rhannu ar draws y Ffedysawd gymryd amser i'w dangos, gan fod gan wahanol weinyddion brotocolau gwahanol.", - "status.quote_error.pending_approval_popout.title": "Dyfyniad yn aros? Amynedd :-)", "status.quote_followers_only": "Dim ond dilynwyr all ddyfynnu'r postiad hwn", "status.quote_manual_review": "Bydd yr awdur yn ei adolygu ei hyn", "status.quote_policy_change": "Newid pwy all ddyfynnu", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 7975af46d61259..4353cbe86ae12e 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Skjult grundet et af filterne", "status.quote_error.not_available": "Indlæg utilgængeligt", "status.quote_error.pending_approval": "Afventende indlæg", - "status.quote_error.pending_approval_popout.body": "Citater delt på tværs af Fediverset kan tage tid at vise, da forskellige servere har forskellige protokoller.", - "status.quote_error.pending_approval_popout.title": "Afventende citat? Tag det roligt", + "status.quote_error.pending_approval_popout.body": "På Mastodon kan du kontrollere, om nogen kan citere dig. Dette indlæg afventer, mens vi får den oprindelige forfatters godkendelse.", + "status.quote_error.revoked": "Indlæg fjernet af forfatter", "status.quote_followers_only": "Kun følgere kan citere dette indlæg", "status.quote_manual_review": "Forfatter vil manuelt gennemgå", "status.quote_policy_change": "Ændr hvem der kan citere", @@ -924,6 +924,7 @@ "status.redraft": "Slet og omskriv", "status.remove_bookmark": "Fjern bogmærke", "status.remove_favourite": "Fjern fra favoritter", + "status.remove_quote": "Fjern", "status.replied_in_thread": "Svarede i tråd", "status.replied_to": "Svarede {name}", "status.reply": "Besvar", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 9c610a1d6c8053..7d771149094f13 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -749,7 +749,7 @@ "privacy.quote.disabled": "{visibility} – niemand darf zitieren", "privacy.quote.limited": "{visibility} – eingeschränktes Zitieren", "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": "Verborgen vor Suchergebnissen, Trends und öffentlichen Timelines in Mastodon", + "privacy.unlisted.long": "Wird nicht in den Suchergebnissen, Trends oder öffentlichen Timelines von Mastodon angezeigt", "privacy.unlisted.short": "Öffentlich (still)", "privacy_policy.last_updated": "Stand: {date}", "privacy_policy.title": "Datenschutzerklärung", @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Ausgeblendet wegen eines deiner Filter", "status.quote_error.not_available": "Beitrag nicht verfügbar", "status.quote_error.pending_approval": "Beitragsveröffentlichung ausstehend", - "status.quote_error.pending_approval_popout.body": "Zitierte Beiträge, die im Fediverse geteilt werden, benötigen einige Zeit, bis sie überall angezeigt werden, da die verschiedenen Server unterschiedliche Protokolle nutzen.", - "status.quote_error.pending_approval_popout.title": "Zitierter Beitrag noch nicht freigegeben? Immer mit der Ruhe", + "status.quote_error.pending_approval_popout.body": "Auf Mastodon kann festgelegt werden, ob man zitiert werden möchte. Wir warten auf die Genehmigung des ursprünglichen Profils. Bis dahin steht deine Beitragsveröffentlichung noch aus.", + "status.quote_error.revoked": "Beitrag durch Autor*in entfernt", "status.quote_followers_only": "Nur Follower können diesen Beitrag zitieren", "status.quote_manual_review": "Zitierte*r überprüft manuell", "status.quote_policy_change": "Ändern, wer zitieren darf", @@ -924,6 +924,7 @@ "status.redraft": "Löschen und neu erstellen", "status.remove_bookmark": "Lesezeichen entfernen", "status.remove_favourite": "Aus Favoriten entfernen", + "status.remove_quote": "Entfernen", "status.replied_in_thread": "Antwortete im Thread", "status.replied_to": "Antwortete {name}", "status.reply": "Antworten", @@ -999,11 +1000,11 @@ "visibility_modal.helper.privacy_private_self_quote": "Beiträge mit privaten Erwähnungen können öffentlich nicht zitiert werden.", "visibility_modal.helper.private_quoting": "Beiträge, die nur für deine Follower bestimmt sind und auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.", "visibility_modal.helper.unlisted_quoting": "Sollten dich andere zitieren, werden ihre zitierten Beiträge ebenfalls nicht in den Trends und öffentlichen Timelines angezeigt.", - "visibility_modal.instructions": "Lege fest, wer mit diesem Beitrag interagieren darf. Du hast auch die Möglichkeit, diese Einstellung auf alle zukünftigen Beiträge anzuwenden. Gehe zu: Einstellungen > Erweitert > Standardeinstellungen für Beiträge", + "visibility_modal.instructions": "Lege fest, wer mit diesem Beitrag interagieren darf. Du hast auch die Möglichkeit, diese Einstellung auf alle zukünftigen Beiträge anzuwenden. Gehe zu: Einstellungen > Standardeinstellungen für Beiträge", "visibility_modal.privacy_label": "Sichtbarkeit", "visibility_modal.quote_followers": "Nur Follower", "visibility_modal.quote_label": "Wer zitieren darf", - "visibility_modal.quote_nobody": "Nur von mir", + "visibility_modal.quote_nobody": "Nur ich", "visibility_modal.quote_public": "Alle", "visibility_modal.save": "Speichern" } diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 86644bd2ff3091..6d3e411eb82c50 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -903,8 +903,6 @@ "status.quote_error.filtered": "Κρυφό λόγω ενός από τα φίλτρα σου", "status.quote_error.not_available": "Ανάρτηση μη διαθέσιμη", "status.quote_error.pending_approval": "Ανάρτηση σε αναμονή", - "status.quote_error.pending_approval_popout.body": "Οι παραθέσεις που μοιράζονται στο Fediverse μπορεί να χρειαστούν χρόνο για να εμφανιστούν, καθώς διαφορετικοί διακομιστές έχουν διαφορετικά πρωτόκολλα.", - "status.quote_error.pending_approval_popout.title": "Παράθεση σε εκκρεμότητα; Μείνετε ψύχραιμοι", "status.quote_followers_only": "Μόνο οι ακόλουθοι μπορούν να παραθέσουν αυτή την ανάρτηση", "status.quote_manual_review": "Ο συντάκτης θα επανεξετάσει χειροκίνητα", "status.quote_policy_change": "Αλλάξτε ποιός μπορεί να κάνει παράθεση", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index a7c38ec974bf43..4415c0aeb7823b 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -887,8 +887,6 @@ "status.quote_error.filtered": "Kaŝita pro unu el viaj filtriloj", "status.quote_error.not_available": "Afiŝo ne disponebla", "status.quote_error.pending_approval": "Pritraktata afiŝo", - "status.quote_error.pending_approval_popout.body": "Citaĵoj diskonigitaj tra la Fediverso povas bezoni tempon por montriĝi, ĉar malsamaj serviloj havas malsamajn protokolojn.", - "status.quote_error.pending_approval_popout.title": "Ĉu pritraktata citaĵo? Restu trankvila", "status.quote_followers_only": "Nur sekvantoj rajtas citi tiun ĉi afiŝon", "status.quote_manual_review": "Aŭtoro permane revizios", "status.quote_policy_change": "Ŝanĝi kiu povas citi", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 99db20d1b4b130..69ca5179b70ffe 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Oculto debido a uno de tus filtros", "status.quote_error.not_available": "Mensaje no disponible", "status.quote_error.pending_approval": "Mensaje pendiente", - "status.quote_error.pending_approval_popout.body": "Las citas compartidas a través del Fediverso pueden tardar en mostrarse, ya que diferentes servidores tienen diferentes protocolos.", - "status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Esperá un momento", + "status.quote_error.pending_approval_popout.body": "En Mastodon, podés controlar si alguien te puede citar. Este mensaje está pendiente hasta obtener la aprobación del autor original.", + "status.quote_error.revoked": "Mensaje eliminado por el autor", "status.quote_followers_only": "Solo los seguidores pueden citar este mensaje", "status.quote_manual_review": "El autor revisará manualmente", "status.quote_policy_change": "Cambiá quién puede citar", @@ -924,6 +924,7 @@ "status.redraft": "Eliminar mensaje original y editarlo", "status.remove_bookmark": "Quitar marcador", "status.remove_favourite": "Quitar de favoritos", + "status.remove_quote": "Quitar", "status.replied_in_thread": "Respuesta en hilo", "status.replied_to": "Respondió a {name}", "status.reply": "Responder", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 5bca410807b805..d4fedfc947860a 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Oculto debido a uno de tus filtros", "status.quote_error.not_available": "Publicación no disponible", "status.quote_error.pending_approval": "Publicación pendiente", - "status.quote_error.pending_approval_popout.body": "Las citas compartidas en el Fediverso pueden tardar en mostrarse, ya que cada servidor tiene un protocolo diferente.", - "status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Mantén la calma", + "status.quote_error.pending_approval_popout.body": "En Mastodon, puedes controlar si alguien puede citarte. Esta publicación está pendiente mientras obtenemos la aprobación del autor original.", + "status.quote_error.revoked": "Publicación eliminada por el autor", "status.quote_followers_only": "Solo los seguidores pueden citar esta publicación", "status.quote_manual_review": "El autor la revisará manualmente", "status.quote_policy_change": "Cambia quién puede citarte", @@ -924,6 +924,7 @@ "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", "status.remove_favourite": "Eliminar de favoritos", + "status.remove_quote": "Eliminar", "status.replied_in_thread": "Respondido en el hilo", "status.replied_to": "Respondió a {name}", "status.reply": "Responder", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 36a92649b2abd4..9c82e9f04aa246 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Oculto debido a uno de tus filtros", "status.quote_error.not_available": "Publicación no disponible", "status.quote_error.pending_approval": "Publicación pendiente", - "status.quote_error.pending_approval_popout.body": "Las citas compartidas a través del Fediverso pueden tardar en mostrarse, ya que los diferentes servidores tienen diferentes protocolos.", - "status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Mantén la calma", + "status.quote_error.pending_approval_popout.body": "En Mastodon, puedes controlar si alguien puede citarte. Esta publicación está pendiente mientras obtenemos la aprobación del autor original.", + "status.quote_error.revoked": "Publicación eliminada por el autor", "status.quote_followers_only": "Solo los seguidores pueden citar esta publicación", "status.quote_manual_review": "El autor revisará manualmente", "status.quote_policy_change": "Cambia quién puede citarte", @@ -924,13 +924,14 @@ "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", "status.remove_favourite": "Eliminar de favoritos", + "status.remove_quote": "Eliminar", "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 a @{name}", "status.request_quote": "Solicitud de citación", - "status.revoke_quote": "Eliminar mi publicación de la cita de {name}", + "status.revoke_quote": "Eliminar mi publicación de la publicación de @{name}", "status.sensitive_warning": "Contenido sensible", "status.share": "Compartir", "status.show_less_all": "Mostrar menos para todo", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 9a44af586c0e7f..a80a3868e7b4cc 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Peidetud mõne kasutatud filtri tõttu", "status.quote_error.not_available": "Postitus pole saadaval", "status.quote_error.pending_approval": "Postitus on ootel", - "status.quote_error.pending_approval_popout.body": "Kuna erinevates serverites on erinevad reeglid, siis üle Födiversumi jagatud tsitaatide kuvamine võib võtta aega.", - "status.quote_error.pending_approval_popout.title": "Tsiteerimine on ootel? Palun jää rahulikuks", + "status.quote_error.pending_approval_popout.body": "Mastodonis saad sa kontrollida seda, kes võib sind tsiteerida. See postitus on seni ootel, kuni pole algse autori kinnitust tsiteerimisele.", + "status.quote_error.revoked": "Autor on postituse eemaldanud", "status.quote_followers_only": "Vaid jälgijad saavad seda postitust tsiteerida", "status.quote_manual_review": "Autor vaatab selle üle", "status.quote_policy_change": "Muuda neid, kes võivad tsiteerida", @@ -924,6 +924,7 @@ "status.redraft": "Kustuta & alga uuesti", "status.remove_bookmark": "Eemalda järjehoidja", "status.remove_favourite": "Eemalda lemmikute seast", + "status.remove_quote": "Eemalda", "status.replied_in_thread": "Vastatud lõimes", "status.replied_to": "Vastas kasutajale {name}", "status.reply": "Vasta", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index b62c5235bcbf37..c0fddde94952d7 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -885,8 +885,6 @@ "status.quote_error.filtered": "نهفته بنا بر یکی از پالایه‌هایتان", "status.quote_error.not_available": "فرسته در دسترس نیست", "status.quote_error.pending_approval": "فرسته منتظر", - "status.quote_error.pending_approval_popout.body": "نقل‌قول‌هایی که در سراسر فدیورس هم‌رسانی می‌شوند ممکن است زمان‌بر باشند تا نمایش داده شوند، چون کارسازهای مختلف از شیوه‌نامه‌های متفاوتی استفاده می‌کنند.", - "status.quote_error.pending_approval_popout.title": "منتظر نقل؟ خونسرد بمانید", "status.quote_policy_change": "تغییر کسانی که می‌توانند نقل کنند", "status.quote_post_author": "فرسته‌ای از @{name} نقل شد", "status.read_more": "بیشتر بخوانید", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 61d1934deb8917..3965b509fa37d4 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -239,6 +239,10 @@ "confirmations.missing_alt_text.secondary": "Julkaise silti", "confirmations.missing_alt_text.title": "Lisätäänkö vaihtoehtoinen teksti?", "confirmations.mute.confirm": "Mykistä", + "confirmations.quiet_post_quote_info.dismiss": "Älä muistuta minua uudelleen", + "confirmations.quiet_post_quote_info.got_it": "Selvä", + "confirmations.quiet_post_quote_info.message": "Kun lainaat vaivihkaa julkisia julkaisuja, oma julkaisusi piilotetaan suosittujen julkaisujen aikajanoilta.", + "confirmations.quiet_post_quote_info.title": "Lainataan vaivihkaa julkista julkaisua", "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?", @@ -901,8 +905,8 @@ "status.quote_error.filtered": "Piilotettu jonkin asettamasi suodattimen takia", "status.quote_error.not_available": "Julkaisu ei saatavilla", "status.quote_error.pending_approval": "Julkaisu odottaa", - "status.quote_error.pending_approval_popout.body": "Saattaa viedä jonkin ainaa ennen kuin fediversumin kautta jaetut julkaisut tulevat näkyviin, sillä eri palvelimet käyttävät eri protokollia.", - "status.quote_error.pending_approval_popout.title": "Odottava lainaus? Pysy rauhallisena", + "status.quote_error.pending_approval_popout.body": "Mastodonissa voit hallita, voiko joku lainata sinua. Tämä julkaisu on vireillä siihen asti, että saamme alkuperäisen tekijän hyväksynnän.", + "status.quote_error.revoked": "Tekijä on poistanut julkaisun", "status.quote_followers_only": "Vain seuraajat voivat lainata tätä julkaisua", "status.quote_manual_review": "Tekijä arvioi pyynnön manuaalisesti", "status.quote_policy_change": "Vaihda, kuka voi lainata", @@ -920,6 +924,7 @@ "status.redraft": "Poista ja palauta muokattavaksi", "status.remove_bookmark": "Poista kirjanmerkki", "status.remove_favourite": "Poista suosikeista", + "status.remove_quote": "Poista", "status.replied_in_thread": "Vastasi ketjuun", "status.replied_to": "Vastaus käyttäjälle {name}", "status.reply": "Vastaa", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index b37fec6b8df901..d842295118db20 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -905,8 +905,6 @@ "status.quote_error.filtered": "Eitt av tínum filtrum fjalir hetta", "status.quote_error.not_available": "Postur ikki tøkur", "status.quote_error.pending_approval": "Postur bíðar", - "status.quote_error.pending_approval_popout.body": "Sitatir, sum eru deild tvørtur um fediversið, kunnu taka nakað av tíð at vísast, tí ymiskir ambætarar hava ymiskar protokollir.", - "status.quote_error.pending_approval_popout.title": "Bíðar eftir sitati? Tak tað róligt", "status.quote_followers_only": "Bara fylgjarar kunnu sitera hendan postin", "status.quote_manual_review": "Høvundurin fer at eftirkanna manuelt", "status.quote_policy_change": "Broyt hvør kann sitera", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 1c11a1d08d6e70..3982b1d6663eb7 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -890,7 +890,6 @@ "status.quote_error.filtered": "Caché en raison de l'un de vos filtres", "status.quote_error.not_available": "Publication non disponible", "status.quote_error.pending_approval": "Publication en attente", - "status.quote_error.pending_approval_popout.title": "Publication en attente ? Restez calme", "status.quote_followers_only": "Seul·e·s les abonné·e·s peuvent citer cette publication", "status.quote_manual_review": "L'auteur va vérifier manuellement", "status.quote_policy_change": "Changer qui peut vous citer", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 028e35b6622f66..b4e7d820d0d81b 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -890,7 +890,6 @@ "status.quote_error.filtered": "Caché en raison de l'un de vos filtres", "status.quote_error.not_available": "Publication non disponible", "status.quote_error.pending_approval": "Publication en attente", - "status.quote_error.pending_approval_popout.title": "Publication en attente ? Restez calme", "status.quote_followers_only": "Seul·e·s les abonné·e·s peuvent citer cette publication", "status.quote_manual_review": "L'auteur va vérifier manuellement", "status.quote_policy_change": "Changer qui peut vous citer", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 88f02e1edab2e5..690d3029ab8f99 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -905,8 +905,6 @@ "status.quote_error.filtered": "I bhfolach mar gheall ar cheann de do scagairí", "status.quote_error.not_available": "Níl an postáil ar fáil", "status.quote_error.pending_approval": "Post ar feitheamh", - "status.quote_error.pending_approval_popout.body": "D’fhéadfadh sé go dtógfadh sé tamall le Sleachta a roinntear ar fud Fediverse a thaispeáint, toisc go mbíonn prótacail éagsúla ag freastalaithe éagsúla.", - "status.quote_error.pending_approval_popout.title": "Ag fanacht le luachan? Fan socair", "status.quote_followers_only": "Ní féidir ach le leantóirí an post seo a lua", "status.quote_manual_review": "Déanfaidh an t-údar athbhreithniú de láimh", "status.quote_policy_change": "Athraigh cé a fhéadann luachan a thabhairt", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 866e749181bb64..3f4efbdebc5386 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Oculto debido a un dos teus filtros", "status.quote_error.not_available": "Publicación non dispoñible", "status.quote_error.pending_approval": "Publicación pendente", - "status.quote_error.pending_approval_popout.body": "As citas compartidas no Fediverso poderían tardar en mostrarse, xa que os diferentes servidores teñen diferentes protocolos.", - "status.quote_error.pending_approval_popout.title": "Cita pendente? Non te apures", + "status.quote_error.pending_approval_popout.body": "En Mastodon podes establecer se permites que te citen. Esta publicación queda pendente á espera de que a persoa autora orixinal o autorice.", + "status.quote_error.revoked": "Publicación retirada pola autora", "status.quote_followers_only": "Só as seguidoras poden citar esta publicación", "status.quote_manual_review": "A autora revisará manualmente", "status.quote_policy_change": "Cambia quen pode citarte", @@ -924,6 +924,7 @@ "status.redraft": "Eliminar e reescribir", "status.remove_bookmark": "Eliminar marcador", "status.remove_favourite": "Retirar das favoritas", + "status.remove_quote": "Retirar", "status.replied_in_thread": "Respondeu nun fío", "status.replied_to": "Respondeu a {name}", "status.reply": "Responder", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 5f2bbbe3b9870c..490a78b4a34e05 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "מוסתר בהתאם לסננים שלך", "status.quote_error.not_available": "ההודעה לא זמינה", "status.quote_error.pending_approval": "ההודעה בהמתנה לאישור", - "status.quote_error.pending_approval_popout.body": "ציטוטים ששותפו בפדיוורס עשויים להתפרסם אחרי עיכוב קל, כיוון ששרתים שונים משתמשים בפרוטוקולים שונים.", - "status.quote_error.pending_approval_popout.title": "ההודעה בהמתנה? המתינו ברוגע", + "status.quote_error.pending_approval_popout.body": "ברשת מסטודון, ניתן להגביל את האפשרות לצטט הודעות. ההודעה הזו ממתינה עד שהמחבר.ת של ההודעה המקורית יאשרו לך את הציטוט.", + "status.quote_error.revoked": "ההודעה הוסרה על ידי המחבר.ת", "status.quote_followers_only": "רק עוקביך יוכלו לצטט את ההודעה", "status.quote_manual_review": "מחבר.ת ההודעה יחזרו אליך אחרי בדיקה", "status.quote_policy_change": "הגדרת הרשאה לציטוט הודעותיך", @@ -924,6 +924,7 @@ "status.redraft": "מחיקה ועריכה מחדש", "status.remove_bookmark": "הסרת סימניה", "status.remove_favourite": "להסיר מרשימת המועדפים", + "status.remove_quote": "הסרת ציטוט", "status.replied_in_thread": "תגובה לשרשור", "status.replied_to": "בתגובה לחשבון {name}", "status.reply": "תגובה", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index ceb6a7c50bd475..be0bcc25b0361e 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -905,8 +905,6 @@ "status.quote_error.filtered": "A szűrőid miatt rejtett", "status.quote_error.not_available": "A bejegyzés nem érhető el", "status.quote_error.pending_approval": "A bejegyzés függőben van", - "status.quote_error.pending_approval_popout.body": "A Födiverzumon keresztül megosztott idézetek megjelenítése eltarthat egy darabig, mivel a különböző kiszolgálók különböző protokollokat használnak.", - "status.quote_error.pending_approval_popout.title": "Függőben lévő idézet? Maradj nyugodt.", "status.quote_followers_only": "Csak a követők idézhetik ezt a bejegyzést", "status.quote_manual_review": "A szerző kézileg fogja jóváhagyni", "status.quote_policy_change": "Módosítás, hogy kik idézhetnek", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 8f774b2a19e928..6bbe8abf53f29c 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -894,8 +894,6 @@ "status.quote_error.filtered": "Celate a causa de un de tu filtros", "status.quote_error.not_available": "Message indisponibile", "status.quote_error.pending_approval": "Message pendente", - "status.quote_error.pending_approval_popout.body": "Le citationes distribuite a transverso le Fediverso pote tardar in apparer, perque differente servitores ha differente protocollos.", - "status.quote_error.pending_approval_popout.title": "Citation pendente? Resta calme", "status.quote_policy_change": "Cambiar qui pote citar", "status.quote_post_author": "Ha citate un message de @{name}", "status.quote_private": "Le messages private non pote esser citate", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 16aa54d2cff36a..ac3f074c29bc80 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Falið vegna einnar síu sem er virk", "status.quote_error.not_available": "Færsla ekki tiltæk", "status.quote_error.pending_approval": "Færsla í bið", - "status.quote_error.pending_approval_popout.body": "Tilvitnanir sem deilt er út um samfélagsnetið geta þurft nokkurn tíma áður en þær birtast, því mismunandi netþjónar geta haft mismunandi samskiptareglur.", - "status.quote_error.pending_approval_popout.title": "Færsla í bið? Verum róleg", + "status.quote_error.pending_approval_popout.body": "Á Mastodon geturðu stjórnað því hvort aðrir geti vitnað í þig. Þessi færsla bíður eftir samþykki upprunalegs höfundar.", + "status.quote_error.revoked": "Færsla fjarlægð af höfundi", "status.quote_followers_only": "Einungis fylgjendur geta vitnað í þessa færslu", "status.quote_manual_review": "Höfundur mun yfirfara handvirkt", "status.quote_policy_change": "Breyttu því hver getur tilvitnað", @@ -924,6 +924,7 @@ "status.redraft": "Eyða og endurvinna drög", "status.remove_bookmark": "Fjarlægja bókamerki", "status.remove_favourite": "Fjarlægja úr eftirlætum", + "status.remove_quote": "Fjarlægja", "status.replied_in_thread": "Svaraði í samtali", "status.replied_to": "Svaraði til {name}", "status.reply": "Svara", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 964f7218954b98..c0fcc5137ddc91 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -239,6 +239,10 @@ "confirmations.missing_alt_text.secondary": "Pubblica comunque", "confirmations.missing_alt_text.title": "Aggiungere testo alternativo?", "confirmations.mute.confirm": "Silenzia", + "confirmations.quiet_post_quote_info.dismiss": "Non ricordarmelo più", + "confirmations.quiet_post_quote_info.got_it": "Ho capito", + "confirmations.quiet_post_quote_info.message": "Quando citi un post pubblico silenzioso, il tuo post verrà nascosto dalle timeline di tendenza.", + "confirmations.quiet_post_quote_info.title": "Citazione di post pubblici silenziosi", "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?", @@ -901,8 +905,6 @@ "status.quote_error.filtered": "Nascosto a causa di uno dei tuoi filtri", "status.quote_error.not_available": "Post non disponibile", "status.quote_error.pending_approval": "Post in attesa", - "status.quote_error.pending_approval_popout.body": "Le citazioni condivise in tutto il Fediverso possono richiedere del tempo per la visualizzazione, poiché server diversi hanno protocolli diversi.", - "status.quote_error.pending_approval_popout.title": "Citazione in attesa? Resta calmo", "status.quote_followers_only": "Solo i seguaci possono citare questo post", "status.quote_manual_review": "L'autore esaminerà manualmente", "status.quote_policy_change": "Cambia chi può citare", @@ -920,6 +922,7 @@ "status.redraft": "Elimina e riscrivi", "status.remove_bookmark": "Rimuovi segnalibro", "status.remove_favourite": "Rimuovi dai preferiti", + "status.remove_quote": "Rimuovi", "status.replied_in_thread": "Ha risposto nella discussione", "status.replied_to": "Risposta a {name}", "status.reply": "Rispondi", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index fb5099018dc694..d257ff1810b7fd 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -900,8 +900,6 @@ "status.quote_error.filtered": "Lí所設定ê過濾器kā tse khàm起來", "status.quote_error.not_available": "PO文bē當看", "status.quote_error.pending_approval": "PO文當咧送", - "status.quote_error.pending_approval_popout.body": "因為無kâng ê服侍器有無kâng ê協定,佇聯邦宇宙分享ê引文可能愛開時間來顯示。", - "status.quote_error.pending_approval_popout.title": "Leh送引文?請sió等leh", "status.quote_followers_only": "Kan-ta tuè我ê ē當引用PO文", "status.quote_manual_review": "作者ē hōo lâng人工審核", "status.quote_policy_change": "改通引用ê lâng", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 2024b8ceb6cf74..f86021daca08fa 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -241,6 +241,8 @@ "confirmations.mute.confirm": "Negeren", "confirmations.quiet_post_quote_info.dismiss": "Herinner me er niet nogmaals aan", "confirmations.quiet_post_quote_info.got_it": "Begrepen", + "confirmations.quiet_post_quote_info.message": "Wanneer je een minder openbaar bericht citeert, verschijnt jouw bericht niet onder trends.", + "confirmations.quiet_post_quote_info.title": "Minder openbare berichten citeren", "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?", @@ -903,8 +905,6 @@ "status.quote_error.filtered": "Verborgen door een van je filters", "status.quote_error.not_available": "Bericht niet beschikbaar", "status.quote_error.pending_approval": "Bericht in afwachting", - "status.quote_error.pending_approval_popout.body": "Het kan even duren voordat citaten die in de Fediverse gedeeld worden, worden weergegeven. Omdat verschillende servers niet allemaal hetzelfde protocol gebruiken.", - "status.quote_error.pending_approval_popout.title": "Even geduld wanneer het citaat nog moet worden goedgekeurd.", "status.quote_followers_only": "Alleen volgers mogen dit bericht citeren", "status.quote_manual_review": "De auteur gaat het handmatig beoordelen", "status.quote_policy_change": "Wijzig wie jou mag citeren", @@ -922,6 +922,7 @@ "status.redraft": "Verwijderen en herschrijven", "status.remove_bookmark": "Bladwijzer verwijderen", "status.remove_favourite": "Verwijderen uit favorieten", + "status.remove_quote": "Verwijderen", "status.replied_in_thread": "Reageerde in gesprek", "status.replied_to": "Reageerde op {name}", "status.reply": "Reageren", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 89fc2918949fd5..315eb37c6e501c 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -894,8 +894,6 @@ "status.quote_error.filtered": "Gøymt på grunn av eitt av filtra dine", "status.quote_error.not_available": "Innlegget er ikkje tilgjengeleg", "status.quote_error.pending_approval": "Innlegget ventar", - "status.quote_error.pending_approval_popout.body": "Sitat frå rundt om i allheimen kan ta tid å visa, fordi ulike tenarar har ulike protokollar.", - "status.quote_error.pending_approval_popout.title": "Ventande sitat? Ikkje stress", "status.quote_policy_change": "Byt kven som kan sitera", "status.quote_post_author": "Siterte eit innlegg av @{name}", "status.quote_private": "Du kan ikkje sitera private innlegg", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 267a1343e017aa..8c5802b89f0ef7 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -893,8 +893,6 @@ "status.quote_error.filtered": "Ukryte z powodu jednego z Twoich filtrów", "status.quote_error.not_available": "Post niedostępny", "status.quote_error.pending_approval": "Post oczekujący", - "status.quote_error.pending_approval_popout.body": "Oferty współdzielone przez Fediverse mogą wymagać czasu, ponieważ różne serwery mają różne protokoły.", - "status.quote_error.pending_approval_popout.title": "Oczekujący cytat? Spokojnie, bądź cierpliwy :)", "status.quote_followers_only": "Tylko obserwatorzy mogą cytować ten post", "status.quote_policy_change": "Zmień kto może cytować", "status.quote_post_author": "Zacytowano post @{name}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 6ea189bbee7a3a..93798ed26d2879 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -896,8 +896,6 @@ "status.quote_error.filtered": "Oculto devido a um dos seus filtros", "status.quote_error.not_available": "Publicação indisponível", "status.quote_error.pending_approval": "Publicação pendente", - "status.quote_error.pending_approval_popout.body": "Citações compartilhadas entre o Fedverse podem levar um tempo já que servidores diferentes têm protocolos diferentes.", - "status.quote_error.pending_approval_popout.title": "Citação pendente", "status.quote_followers_only": "Apenas seguidores podem citar sua publicação", "status.quote_manual_review": "Autor irá revisar manualmente", "status.quote_policy_change": "Mude quem pode citar", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index e66168a3c1660d..2ab3444ddc9ff2 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -894,8 +894,6 @@ "status.quote_error.filtered": "Oculto devido a um dos seus filtros", "status.quote_error.not_available": "Publicação indisponível", "status.quote_error.pending_approval": "Publicação pendente", - "status.quote_error.pending_approval_popout.body": "As citações partilhadas no Fediverso podem demorar algum tempo a ser exibidas, uma vez que diferentes servidores têm protocolos diferentes.", - "status.quote_error.pending_approval_popout.title": "Citação pendente? Mantenha a calma", "status.quote_followers_only": "Apenas seguidores podem citar esta publicação", "status.quote_manual_review": "O autor vai proceder a uma revisão manual", "status.quote_policy_change": "Alterar quem pode citar", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index cdeb5d85550f3b..d9978f29177744 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -881,7 +881,6 @@ "status.quote_error.filtered": "Скрыто одним из ваших фильтров", "status.quote_error.not_available": "Пост недоступен", "status.quote_error.pending_approval": "Пост ожидает подтверждения", - "status.quote_error.pending_approval_popout.title": "Цитирование ещё не подтверждено? Не беспокойтесь", "status.read_more": "Читать далее", "status.reblog": "Продвинуть", "status.reblogged_by": "{name} продвинул(а)", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 80f738ad2882d9..6520f415c77522 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -884,8 +884,6 @@ "status.quote_error.filtered": "Dolt på grund av ett av dina filter", "status.quote_error.not_available": "Inlägg ej tillgängligt", "status.quote_error.pending_approval": "Väntande inlägg", - "status.quote_error.pending_approval_popout.body": "Citat som delas över Fediverse kan ta tid att visa, eftersom olika servrar har olika protokoll.", - "status.quote_error.pending_approval_popout.title": "Väntande citat? Förbli lugn", "status.quote_policy_change": "Ändra vem som kan citera", "status.quote_post_author": "Citerade ett inlägg av @{name}", "status.read_more": "Läs mer", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index bdd34da474cbbf..d101f3b7c27055 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -898,8 +898,6 @@ "status.quote_error.filtered": "Bazı filtrelerinizden dolayı gizlenmiştir", "status.quote_error.not_available": "Gönderi kullanılamıyor", "status.quote_error.pending_approval": "Gönderi beklemede", - "status.quote_error.pending_approval_popout.body": "Fediverse genelinde paylaşılan alıntıların görüntülenmesi zaman alabilir, çünkü farklı sunucuların farklı protokolleri vardır.", - "status.quote_error.pending_approval_popout.title": "Bekleyen bir teklif mi var? Sakin olun.", "status.quote_followers_only": "Sadece takipçiler bu gönderiyi alıntılayabilir", "status.quote_manual_review": "Yazar manuel olarak gözden geçirecek", "status.quote_policy_change": "Kimin alıntı yapabileceğini değiştirin", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index c0e8294280f2ed..13b9bbc853709d 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "Bị ẩn vì một bộ lọc của bạn", "status.quote_error.not_available": "Tút không khả dụng", "status.quote_error.pending_approval": "Tút đang chờ duyệt", - "status.quote_error.pending_approval_popout.body": "Các trích dẫn được chia sẻ trên Fediverse có thể mất thời gian để hiển thị vì các máy chủ khác nhau có giao thức khác nhau.", - "status.quote_error.pending_approval_popout.title": "Đang chờ trích dẫn? Hãy bình tĩnh", + "status.quote_error.pending_approval_popout.body": "Trên Mastodon, bạn có thể kiểm soát việc ai đó có thể trích dẫn tút của bạn hay không. Tút này đang chờ phê duyệt từ tác giả gốc.", + "status.quote_error.revoked": "Tút gốc đã bị tác giả gỡ", "status.quote_followers_only": "Chỉ người theo dõi tôi có thể trích dẫn tút này", "status.quote_manual_review": "Người đăng sẽ duyệt thủ công", "status.quote_policy_change": "Thay đổi người có thể trích dẫn", @@ -924,6 +924,7 @@ "status.redraft": "Xóa và viết lại", "status.remove_bookmark": "Bỏ lưu", "status.remove_favourite": "Bỏ thích", + "status.remove_quote": "Gỡ", "status.replied_in_thread": "Trả lời thảo luận", "status.replied_to": "Trả lời {name}", "status.reply": "Trả lời", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 928f0170b583e8..f8e309a08570be 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -150,7 +150,7 @@ "bundle_column_error.routing.body": "找不到请求的页面。你确定地址栏中的网址输入正确吗?", "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "关闭", - "bundle_modal_error.message": "载入此页面时发生了错误。", + "bundle_modal_error.message": "加载此页面时发生了错误。", "bundle_modal_error.retry": "重试", "closed_registrations.other_server_instructions": "基于 Mastodon 去中心化的特性,你可以其他服务器上创建账号,并继续与此服务器互动。", "closed_registrations_modal.description": "你目前无法在 {domain} 上创建账号,但请注意,使用 Mastodon 并非需要专门在 {domain} 上注册账号。", @@ -314,9 +314,9 @@ "emoji_button.search_results": "搜索结果", "emoji_button.symbols": "符号", "emoji_button.travel": "旅行与地点", - "empty_column.account_featured.me": "你尚未设置任何精选。你知道吗?你也可以将自己最常使用的话题标签,甚至是好友的帐号,在你的个人主页上设为精选。", - "empty_column.account_featured.other": "{acct} 尚未设置任何精选。你知道吗?你也可以将自己最常使用的话题标签,甚至是好友的帐号,在你的个人主页上设为精选。", - "empty_column.account_featured_other.unknown": "该用户尚未设置任何精选。", + "empty_column.account_featured.me": "你尚未设置任何精选。你知道吗?你也可以将自己最常使用的话题标签,甚至是好友的账号,在你的个人主页上设为精选。", + "empty_column.account_featured.other": "{acct} 尚未设置任何精选。你知道吗?你也可以将自己最常使用的话题标签,甚至是好友的账号,在你的个人主页上设为精选。", + "empty_column.account_featured_other.unknown": "此账号尚未设置任何精选。", "empty_column.account_hides_collections": "该用户选择不公开此信息", "empty_column.account_suspended": "账号已被停用", "empty_column.account_timeline": "这里没有嘟文!", @@ -905,8 +905,8 @@ "status.quote_error.filtered": "已根据你的筛选器过滤", "status.quote_error.not_available": "嘟文不可用", "status.quote_error.pending_approval": "嘟文待发布", - "status.quote_error.pending_approval_popout.body": "由于不同服务器间使用的协议不同,联邦宇宙间引用嘟文的显示可能会有延迟。", - "status.quote_error.pending_approval_popout.title": "引用嘟文还没发布?别着急,请耐心等待", + "status.quote_error.pending_approval_popout.body": "在Mastodon上,你可以控制其他人引用你嘟文的权限。此嘟文在得到原作者的同意后就会发布。", + "status.quote_error.revoked": "嘟文已被作者删除", "status.quote_followers_only": "只有关注者才能引用这篇嘟文", "status.quote_manual_review": "嘟文作者将人工审核", "status.quote_policy_change": "更改谁可以引用", @@ -924,6 +924,7 @@ "status.redraft": "删除并重新编辑", "status.remove_bookmark": "移除书签", "status.remove_favourite": "从喜欢列表中移除", + "status.remove_quote": "移除", "status.replied_in_thread": "回复嘟文串", "status.replied_to": "回复 {name}", "status.reply": "回复", @@ -952,7 +953,7 @@ "tabs_bar.search": "搜索", "terms_of_service.effective_as_of": "自 {date} 起生效", "terms_of_service.title": "服务条款", - "terms_of_service.upcoming_changes_on": "将于 {date} 进行变更", + "terms_of_service.upcoming_changes_on": "{date} 起即将生效的更改", "time_remaining.days": "剩余 {number, plural, other {# 天}}", "time_remaining.hours": "剩余 {number, plural, other {# 小时}}", "time_remaining.minutes": "剩余 {number, plural, other {# 分钟}}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 1c3a67560579e7..8d8a0a86a1da74 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -905,8 +905,8 @@ "status.quote_error.filtered": "由於您的過濾器,該嘟文被隱藏", "status.quote_error.not_available": "無法取得該嘟文", "status.quote_error.pending_approval": "嘟文正在發送中", - "status.quote_error.pending_approval_popout.body": "因為伺服器間可能運行不同協定,顯示聯邦宇宙間之引用嘟文會有些許延遲。", - "status.quote_error.pending_approval_popout.title": "引用嘟文正在發送中?別著急,請稍候片刻", + "status.quote_error.pending_approval_popout.body": "您能於 Mastodon 控制是否允許引用您的嘟文。此嘟文正在等待原始作者核准。", + "status.quote_error.revoked": "嘟文已被作者刪除", "status.quote_followers_only": "只有我的跟隨者能引用此嘟文", "status.quote_manual_review": "嘟文作者將人工審閱", "status.quote_policy_change": "變更可以引用的人", @@ -924,6 +924,7 @@ "status.redraft": "刪除並重新編輯", "status.remove_bookmark": "自書籤中移除", "status.remove_favourite": "自最愛中移除", + "status.remove_quote": "刪除", "status.replied_in_thread": "於討論串中回覆", "status.replied_to": "回覆 {name}", "status.reply": "回覆", diff --git a/config/locales/activerecord.zh-CN.yml b/config/locales/activerecord.zh-CN.yml index af19014cfd96f9..2aadcc8af9226e 100644 --- a/config/locales/activerecord.zh-CN.yml +++ b/config/locales/activerecord.zh-CN.yml @@ -44,7 +44,7 @@ zh-CN: attributes: account_id: taken: 已经被加入到列表了 - must_be_following: 需要是你关注的账号 + must_be_following: 必须是已关注的账号 status: attributes: reblog: diff --git a/config/locales/an.yml b/config/locales/an.yml index d50cd37b57b1ff..4b9385d5f8fcd7 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -1410,7 +1410,6 @@ an: reblog: Un boost no puede fixar-se title: "%{name}: «%{quote}»" visibilities: - private: Nomás amostrar a seguidores public: Publico statuses_cleanup: enabled: Borrar automaticament publicacions antigas diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 9181d877672dc1..cd07926322e35a 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -2048,7 +2048,6 @@ ar: reblog: لا يمكن تثبيت إعادة نشر title: '%{name}: "%{quote}"' visibilities: - private: لمتابِعيك فقط public: للعامة statuses_cleanup: enabled: حذف المنشورات القديمة تلقائياً diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 5d52fcd26287f9..81806695b5e445 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -810,8 +810,6 @@ ast: ownership: Nun se pue fixar la publicación d'otru perfil reblog: Nun se pue fixar una publicación compartida title: "%{name}: «%{quote}»" - visibilities: - private: Namás siguidores statuses_cleanup: exceptions: Esceiciones interaction_exceptions: Esceiciones basaes nes interaiciones diff --git a/config/locales/az.yml b/config/locales/az.yml index 08daf824e17495..0fa11278cee7dd 100644 --- a/config/locales/az.yml +++ b/config/locales/az.yml @@ -283,8 +283,6 @@ az: default_language: İnterfeys dili ilə eyni pin_errors: reblog: Təkrar paylaşım, sancıla bilməz - visibilities: - private: Yalnız izləyicilər statuses_cleanup: enabled: Köhnə göndərişləri avtomatik sil enabled_hint: Aşağıdakı istisnalardan heç birinə uyuşmadığı müddətcə, göndərişləriniz qeyd edilmiş yaş həddinə çatdıqda avtomatik silinir diff --git a/config/locales/be.yml b/config/locales/be.yml index 81414f614d11b7..ba121b66ccb93e 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -2004,7 +2004,7 @@ be: title: '%{name}: "%{quote}"' visibilities: direct: Прыватнае згадванне - private: Для падпісчыкаў + private: Толькі для падпісчыкаў public: Публічны public_long: Усе ў Mastodon і па-за ім unlisted: Ціхі публічны diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 50c699efe00dc2..309d634914e72c 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1894,7 +1894,6 @@ bg: reblog: Раздуване не може да бъде закачано title: "%{name}: „%{quote}“" visibilities: - private: Покажи само на последователите си public: Публично statuses_cleanup: enabled: Автоматично изтриване на стари публикации diff --git a/config/locales/br.yml b/config/locales/br.yml index ee65960c55fc97..c6cb9152522623 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -816,7 +816,6 @@ br: title: '%{name}: "%{quote}"' visibilities: direct: Meneg prevez - private: Heulierien·ezed hepken public: Publik statuses_cleanup: keep_direct: Mirout ar c'hannadoù eeun diff --git a/config/locales/ca.yml b/config/locales/ca.yml index fb1031594a7a27..eae71f330c8ac4 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1888,7 +1888,6 @@ ca: title: '%{name}: "%{quote}"' visibilities: direct: Menció privada - private: Només seguidors public: Públic public_long: Tothom dins o fora Mastodon unlisted_long: Amagat dels resultats de cerca de Mastodon, de les tendències i de les línies temporals diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index 8f21fa732c7e77..891453a7cef39d 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -939,7 +939,6 @@ ckb: ownership: نووسراوەکانی تر ناتوانرێ بسەلمێت reblog: بەهێزکردن ناتوانرێت بچەسپێ visibilities: - private: شوێنکەوتوانی تەنها public: گشتی stream_entries: sensitive_content: ناوەڕۆکی هەستیار diff --git a/config/locales/co.yml b/config/locales/co.yml index 66b89f8a6186d3..01dcc19ba3adee 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -924,7 +924,6 @@ co: reblog: Ùn pudete micca puntarulà una spartera title: '%{name}: "%{quote}"' visibilities: - private: Solu per l’abbunati public: Pubblicu statuses_cleanup: exceptions: Eccezzione diff --git a/config/locales/cs.yml b/config/locales/cs.yml index bd2e3301fac94f..8f680b3cbbc608 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -2004,7 +2004,6 @@ cs: title: "%{name}: „%{quote}“" visibilities: direct: Soukromá zmínka - private: Pouze pro sledující public: Veřejné public_long: Kdokoliv na Mastodonu i mimo něj unlisted: Ztišené veřejné diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 7da5414b5fd718..3b4f8219578e18 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -2089,7 +2089,6 @@ cy: title: '%{name}: "%{quote}"' visibilities: direct: Crybwylliad preifat - private: Dilynwyr yn unig public: Cyhoeddus public_long: Unrhyw un ar ac oddi ar Mastodon unlisted: Tawel cyhoeddus diff --git a/config/locales/de.yml b/config/locales/de.yml index e5e6bd2270eb0c..0f694493fac7ce 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1913,7 +1913,7 @@ de: reblog: Du kannst keine geteilten Beiträge anheften quote_policies: followers: Nur Follower - nobody: Nur von mir + nobody: Nur ich public: Alle title: "%{name}: „%{quote}“" visibilities: diff --git a/config/locales/el.yml b/config/locales/el.yml index 7af6c0909699ed..cbad05cce5f29d 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1916,7 +1916,6 @@ el: title: '%{name}: "%{quote}"' visibilities: direct: Ιδιωτική επισήμανση - private: Μόνο ακόλουθοι public: Δημόσιο public_long: Όλοι εντός και εκτός του Mastodon statuses_cleanup: diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 2e2c3201eac755..621a3a4e4fde30 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -1880,7 +1880,6 @@ en-GB: reblog: A boost cannot be pinned title: '%{name}: "%{quote}"' visibilities: - private: Followers only public: Public statuses_cleanup: enabled: Automatically delete old posts diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 29aaa42dff4dd8..81e0d774177d54 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1908,7 +1908,6 @@ eo: title: "%{name}: “%{quote}”" visibilities: direct: Privada mencio - private: Montri nur al sekvantoj public: Publika statuses_cleanup: enabled: Aŭtomate forigi malnovajn postojn diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 5cee636dc85701..7e019daf4643cb 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1918,7 +1918,7 @@ es-AR: title: '%{name}: "%{quote}"' visibilities: direct: Mención privada - private: Sólo a seguidores + private: Solo seguidores public: Público public_long: Todo el mundo, dentro y fuera de Mastodon unlisted: Público pero silencioso diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index d09ada3657cfd9..2f0a69891f1712 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1918,7 +1918,7 @@ es-MX: title: "%{name}: «%{quote}»" visibilities: direct: Mención privada - private: Sólo mostrar a seguidores + private: Solo seguidores public: Público public_long: Cualquiera que esté dentro y fuera de Mastodon unlisted: Pública, pero silenciosa diff --git a/config/locales/et.yml b/config/locales/et.yml index 86cbac0acede0d..9607d7661d1c98 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1918,7 +1918,7 @@ et: title: '%{name}: "%{quote}"' visibilities: direct: Privaatne mainimine - private: Ainult jälgijatele + private: Ainult jälgijad public: Avalik public_long: Nii kasutajad kui mittekasutajad unlisted: Vaikselt avalik diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 8e457742b72e6b..fb11192599b8e4 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1743,7 +1743,6 @@ eu: reblog: Bultzada bat ezin da finkatu title: '%{name}: "%{quote}"' visibilities: - private: Jarraitzaileak soilik public: Publikoa statuses_cleanup: enabled: Ezabatu bidalketa zaharrak automatikoki diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 6dd35e11bf965b..9c24be803516ad 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1911,7 +1911,6 @@ fa: title: "%{name}: «%{quote}»" visibilities: direct: اشاره خصوصی - private: خصوصی public: عمومی statuses_cleanup: enabled: حذف خودکار فرسته‌های قدیمی diff --git a/config/locales/fo.yml b/config/locales/fo.yml index f6ba039efc7777..72b059cc9e1338 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -1918,7 +1918,6 @@ fo: title: '%{name}: "%{quote}"' visibilities: direct: Privat umrøða - private: Einans fylgjarar public: Alment public_long: Øll í og uttanfyri Mastodon unlisted: Stillur almenningur diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index b5f8bbb57127fe..21bc55898377ac 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -1854,7 +1854,6 @@ fr-CA: reblog: Un partage ne peut pas être épinglé title: "%{name} : « %{quote} »" visibilities: - private: Abonné⋅e⋅s uniquement public: Publique statuses_cleanup: enabled: Supprimer automatiquement vos anciens messages diff --git a/config/locales/fr.yml b/config/locales/fr.yml index d1ddf0d3fb0529..36244422330217 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1854,7 +1854,6 @@ fr: reblog: Un partage ne peut pas être épinglé title: "%{name} : « %{quote} »" visibilities: - private: Abonné⋅e⋅s uniquement public: Publique statuses_cleanup: enabled: Supprimer automatiquement vos anciens messages diff --git a/config/locales/fy.yml b/config/locales/fy.yml index f0c14073a5f0ac..c631241a3192af 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1906,7 +1906,6 @@ fy: reblog: In boost kin net fêstset wurde title: '%{name}: "%{quote}"' visibilities: - private: Allinnich folgers public: Iepenbier statuses_cleanup: enabled: Automatysk âlde berjochten fuortsmite diff --git a/config/locales/ga.yml b/config/locales/ga.yml index adfdacb034be5e..f742840acf2d88 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -2047,7 +2047,6 @@ ga: title: '%{name}: "%{quote}"' visibilities: direct: Lua príobháideach - private: Leantóirí amháin public: Poiblí public_long: Aon duine ar Mastodon agus lasmuigh de unlisted: Pobal ciúin diff --git a/config/locales/gd.yml b/config/locales/gd.yml index a04053630a677e..701e3ab2df6011 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1962,7 +1962,6 @@ gd: reblog: Chan urrainn dhut brosnachadh a phrìneachadh title: "%{name}: “%{quote}”" visibilities: - private: Luchd-leantainn a-mhàin public: Poblach statuses_cleanup: enabled: Sguab às seann-phostaichean gu fèin-obrachail diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 5e8b4a0d740575..4eee0fe0f981cb 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1918,7 +1918,7 @@ gl: title: '%{name}: "%{quote}"' visibilities: direct: Mención privada - private: Só seguidoras + private: Só para seguidoras public: Público public_long: Para calquera dentro e fóra de Mastodon unlisted: Pública limitada diff --git a/config/locales/hr.yml b/config/locales/hr.yml index b39a0a597d7235..7d04d7278c83bc 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -215,7 +215,6 @@ hr: statuses: over_character_limit: prijeđeno je ograničenje od %{max} znakova visibilities: - private: Samo pratitelji public: Javno statuses_cleanup: enabled: Automatski obriši strare postove diff --git a/config/locales/hy.yml b/config/locales/hy.yml index bbc4ba04ae9a8b..933f8a4fa75e78 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -777,7 +777,6 @@ hy: over_character_limit: "%{max} նիշի սահմանը գերազանցուած է" title: '%{name}: "%{quote}"' visibilities: - private: Միայն հետեւողներին public: Հրապարակային statuses_cleanup: exceptions: Բացառություններ diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 88c588b920403f..72aa0cedba8992 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -1915,7 +1915,6 @@ ia: title: "%{name}: “%{quote}”" visibilities: direct: Mention private - private: Solmente sequitores public: Public public_long: Quicunque, sur Mastodon o non unlisted_long: Celate in resultatos de recerca, tendentias e chronologias public de Mastodon diff --git a/config/locales/id.yml b/config/locales/id.yml index 6ab65ec83c59f9..3489519f847096 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1379,7 +1379,6 @@ id: reblog: Boost tidak bisa disematkan title: '%{name}: "%{quote}"' visibilities: - private: Khusus pengikut public: Publik statuses_cleanup: enabled: Otomatis hapus kiriman lama diff --git a/config/locales/ie.yml b/config/locales/ie.yml index ad2b94d2d6aeb3..d202e96d491e37 100644 --- a/config/locales/ie.yml +++ b/config/locales/ie.yml @@ -1622,7 +1622,6 @@ ie: reblog: On ne posse pinglar un boost title: "%{name}: «%{quote}»" visibilities: - private: Solmen por sequitores public: Public statuses_cleanup: enabled: Automaticmen deleter old postas diff --git a/config/locales/io.yml b/config/locales/io.yml index 4e40a917e2c4e5..36d4ce251fdf63 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1743,7 +1743,6 @@ io: reblog: Repeto ne povas pinglizesar title: '%{name}: "%{quote}"' visibilities: - private: Montrar nur a sequanti public: Publika statuses_cleanup: enabled: Automata efacez olda posti diff --git a/config/locales/it.yml b/config/locales/it.yml index 8cd6f9a6177b11..264119d7e374c6 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1920,7 +1920,7 @@ it: title: '%{name}: "%{quote}"' visibilities: direct: Menzione privata - private: Mostra solo ai tuoi seguaci + private: Solo i seguaci public: Pubblico public_long: Chiunque dentro e fuori Mastodon unlisted: Pubblico silenzioso diff --git a/config/locales/ja.yml b/config/locales/ja.yml index cf6a9200125738..e5b26c69d59c89 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1826,7 +1826,6 @@ ja: reblog: ブーストを固定することはできません title: '%{name}: "%{quote}"' visibilities: - private: フォロワー限定 public: 公開 statuses_cleanup: enabled: 古い投稿を自動的に削除する diff --git a/config/locales/ka.yml b/config/locales/ka.yml index e08d02994a4c14..200dac188083e7 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -433,7 +433,6 @@ ka: ownership: სხვისი ტუტი ვერ აიპინება reblog: ბუსტი ვერ აიპინება visibilities: - private: მხოლოდ-მიმდევრები public: საჯარო stream_entries: sensitive_content: მგრძნობიარე კონტენტი diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 36814f6b2dbfc7..369166d041f79d 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -884,7 +884,6 @@ kab: edited_at_html: Tettwaẓreg ass n %{date} title: '%{name} : "%{quote}"' visibilities: - private: Imeḍfaṛen kan public: Azayez statuses_cleanup: enabled: Tukksa n tsuffaɣ tiqburin s wudem awurman diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 2ca1cb3f38891f..b877cb09c79f83 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -649,7 +649,6 @@ kk: ownership: Біреудің жазбасы жабыстырылмайды reblog: Бөлісілген жазба жабыстырылмайды visibilities: - private: Тек оқырмандарға public: Ашық stream_entries: sensitive_content: Нәзік мазмұн diff --git a/config/locales/ko.yml b/config/locales/ko.yml index df1e8e0e1ab6ec..5c158223c13ca2 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1875,7 +1875,6 @@ ko: title: '%{name}: "%{quote}"' visibilities: direct: 개인 멘션 - private: 비공개 public: 공개 public_long: 마스토돈 내외 모두 unlisted: 조용한 공개 diff --git a/config/locales/ku.yml b/config/locales/ku.yml index fa4aef1cb403fe..b05f49cd471fc3 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1405,7 +1405,6 @@ ku: reblog: Ev şandî nayê derzî kirin title: "%{name}%{quote}" visibilities: - private: Tenê şopîneran public: Gelemperî statuses_cleanup: enabled: Şandiyên berê bi xweberî va jê bibe diff --git a/config/locales/lad.yml b/config/locales/lad.yml index 618dbb9920e02d..44dd518f2d03d8 100644 --- a/config/locales/lad.yml +++ b/config/locales/lad.yml @@ -1748,7 +1748,6 @@ lad: reblog: No se puede fixar una repartajasyon title: '%{name}: "%{quote}"' visibilities: - private: Solo suivantes public: Publiko statuses_cleanup: enabled: Otomatikamente efasa publikasyones viejas diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 28b46c212e7f7a..eb69f2b06d518f 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1217,7 +1217,6 @@ lt: ownership: Kitų vartotojų toot'ai negali būti prisegti reblog: Pakeltos žinutės negali būti prisegtos visibilities: - private: Tik sekėjams public: Vieša statuses_cleanup: enabled_hint: Automatiškai ištrina įrašus, kai jie pasiekia nustatytą amžiaus ribą, nebent jie atitinka vieną iš toliau nurodytų išimčių diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 4fa1aed76944e5..b57d2b3ef02c99 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1906,7 +1906,6 @@ lv: reblog: Pastiprinātu ierakstu nevar piespraust title: "%{name}: “%{quote}”" visibilities: - private: Tikai sekotājiem public: Publisks statuses_cleanup: enabled: Automātiski dzēst vecās ziņas diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 7306c44aab2ce6..2df1e0c2b8fdd8 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -1554,7 +1554,6 @@ ms: reblog: Rangsangan tidak boleh disematkan title: '%{name}: "%{quote}"' visibilities: - private: Pengikut sahaja public: Awam statuses_cleanup: enabled: Padam hantaran lama secara automatik diff --git a/config/locales/my.yml b/config/locales/my.yml index 485fdd94016e85..644e648ac54f93 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -1545,7 +1545,6 @@ my: reblog: Boost လုပ်ထားသောပို့စ်ကို ပင်ထား၍မရပါ title: '%{name}: "%{quote}"' visibilities: - private: စောင့်ကြည့်သူများသာ public: အများမြင် statuses_cleanup: enabled: ပို့စ်အဟောင်းများကို အလိုအလျောက် ဖျက်ပါ diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 42f7631eedaee8..bad44da6531e3f 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1915,7 +1915,6 @@ nn: title: "%{name}: «%{quote}»" visibilities: direct: Privat omtale - private: Berre fylgjarar public: Offentleg public_long: Alle på og utanfor Mastodon unlisted_long: Gøymt frå søkjeresultat, populært og offentleg på Mastodon diff --git a/config/locales/no.yml b/config/locales/no.yml index 4e0d44dad0f737..a10f4c6a6aa592 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1629,7 +1629,6 @@ reblog: En fremheving kan ikke festes title: "%{name}: «%{quote}»" visibilities: - private: Privat public: Offentlig statuses_cleanup: enabled: Slett gamle innlegg automatisk diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 34013f5443e565..51f8d8c7b4d004 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -848,7 +848,6 @@ oc: reblog: Se pòt pas penjar un tut partejat title: '%{name} : "%{quote}"' visibilities: - private: Seguidors solament public: Public statuses_cleanup: enabled: Supression automatica de publicacions ancianas diff --git a/config/locales/pl.yml b/config/locales/pl.yml index f6a3fa20fe0076..20b391c8675c8c 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1979,7 +1979,6 @@ pl: public: Każdy title: '%{name}: "%{quote}"' visibilities: - private: Tylko dla obserwujących public: Publiczne statuses_cleanup: enabled: Automatycznie usuwaj stare wiadomości diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index d81c0eba7262cb..4686305e6470d2 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1918,7 +1918,6 @@ pt-BR: title: '%{name}: "%{quote}"' visibilities: direct: Citação privada - private: Apenas seguidores public: Público public_long: Qualquer um dentro ou fora do Mástodon unlisted_long: Oculto aos resultados de pesquisa em Mástodon diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 727ff3f0cbd818..4eb35ce031aae9 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1915,7 +1915,6 @@ pt-PT: title: '%{name}: "%{quote}"' visibilities: direct: Menção privada - private: Só para seguidores public: Público public_long: Qualquer pessoa dentro e fora do Mastodon unlisted_long: Oculto dos resultados de pesquisa, tendências e linhas do tempo públicas do Mastodon diff --git a/config/locales/ro.yml b/config/locales/ro.yml index de443c33ee9ccc..57b82a35d45dd8 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -685,8 +685,6 @@ ro: limit: Deja ai fixat numărul maxim de postări ownership: Postarea altcuiva nu poate fi fixată reblog: Un impuls nu poate fi fixat - visibilities: - private: Doar urmăritorii stream_entries: sensitive_content: Conținut sensibil tags: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 0c4f342e8e5518..cdccbb65e11bdb 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1977,7 +1977,6 @@ ru: reblog: Нельзя закрепить продвижение title: "%{name}: «%{quote}»" visibilities: - private: Только для подписчиков public: Публичный statuses_cleanup: enabled: Автоматически удалять старые посты diff --git a/config/locales/sc.yml b/config/locales/sc.yml index b1f07468f44274..606b47cc40d19f 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -1156,7 +1156,6 @@ sc: reblog: Is cumpartziduras non podent èssere apicadas title: '%{name}: "%{quote}"' visibilities: - private: Isceti pro chie ti sighit public: Pùblicu statuses_cleanup: exceptions: Etzetziones diff --git a/config/locales/sco.yml b/config/locales/sco.yml index a9a4a00a3f64ed..5c1e451446b47f 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -1395,7 +1395,6 @@ sco: reblog: A heeze cannae be preent title: '%{name}: "%{quote}"' visibilities: - private: Follaers-ainly public: Public statuses_cleanup: enabled: Automatically delete auld posts diff --git a/config/locales/si.yml b/config/locales/si.yml index fc4f5ba9a34cd0..e6b561b2ba1212 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -1268,7 +1268,6 @@ si: ownership: වෙනත් අයගේ ලිපි ඇමිණීමට නොහැකිය title: '%{name}: "%{quote}"' visibilities: - private: අනුගාමිකයින් පමණි public: ප්‍රසිද්ධ statuses_cleanup: enabled: පරණ ලිපි ස්වයංක්‍රීයව මකන්න diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index 1db36adc87122e..811dd80dae14f1 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -56,6 +56,8 @@ be: scopes: Абярыце, якімі API праграма зможа карыстацца. Выбар дазволу найвышэйшага ўзроўню ўключае ў сябе дазволу астатніх узроўняў. setting_aggregate_reblogs: Не паказваць новыя пашырэнні для допісаў, якія пашырылі нядаўна (закранае толькі нядаўнія пашырэнні) setting_always_send_emails: Звычайна лісты з апавяшчэннямі не будуць дасылацца, калі вы актыўна карыстаецеся Mastodon + setting_default_quote_policy_private: Допісы для падпісчыкаў, створаныя на Mastodon, нельга цытаваць іншым людзям. + setting_default_quote_policy_unlisted: Калі людзі працытуюць Вас, іх допіс таксама будзе схаваны ад стужкі трэндаў. setting_default_sensitive: Далікатныя медыя прадвызначана схаваныя. Іх можна адкрыць адзіным клікам setting_display_media_default: Хаваць медыя пазначаныя як далікатныя setting_display_media_hide_all: Заўсёды хаваць медыя diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 9592c5fc1d2273..05fa2acc9c0aa6 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -56,6 +56,8 @@ da: scopes: De API'er, som applikationen vil kunne tilgå. Vælges en topniveaudstrækning, vil detailvalg være unødvendige. setting_aggregate_reblogs: Vis ikke nye fremhævelser for nyligt fremhævede indlæg (påvirker kun nyligt modtagne fremhævelser) setting_always_send_emails: Normalt sendes ingen e-mailnotifikationer under aktivt brug af Mastodon + setting_default_quote_policy_private: Kun-følgere indlæg forfattet på Mastodon kan ikke citeres af andre. + setting_default_quote_policy_unlisted: Når folk citerer dig, vil deres indlæg også blive skjult fra trendtidslinjer. setting_default_sensitive: Sensitive medier er som standard skjult og kan vises med et klik setting_display_media_default: Skjul medier med sensitiv-markering setting_display_media_hide_all: Skjul altid medier diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 8b906a2bafa853..0eed719cf71f9b 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -56,6 +56,8 @@ de: scopes: Welche Schnittstellen der Applikation erlaubt sind. Wenn du einen Top-Level-Scope auswählst, dann musst du nicht jeden einzelnen darunter auswählen. setting_aggregate_reblogs: Beiträge, die erst kürzlich geteilt wurden, werden nicht noch einmal angezeigt (betrifft nur zukünftig geteilte Beiträge) setting_always_send_emails: Normalerweise werden Benachrichtigungen nicht per E-Mail versendet, wenn du gerade auf Mastodon aktiv bist + setting_default_quote_policy_private: Beiträge, die nur für deine Follower bestimmt sind und auf Mastodon verfasst wurden, können nicht von anderen zitiert werden. + setting_default_quote_policy_unlisted: Sollten dich andere zitieren, werden ihre zitierten Beiträge ebenfalls nicht in den Trends und öffentlichen Timelines angezeigt. setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen worden sind, werden – je nach Einstellung – erst nach einem zusätzlichen Klick angezeigt setting_display_media_default: Medien mit Inhaltswarnung ausblenden setting_display_media_hide_all: Medien immer ausblenden diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index 55846115dd72a8..cf697ea64c3cd6 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -56,6 +56,8 @@ es-AR: scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionás el alcance de nivel más alto, no necesitás seleccionar las individuales. setting_aggregate_reblogs: No mostrar nuevas adhesiones de los mensajes que fueron recientemente adheridos (sólo afecta a las adhesiones recibidas recientemente) setting_always_send_emails: Normalmente las notificaciones por correo electrónico no se enviarán cuando estés usando Mastodon activamente + setting_default_quote_policy_private: Los mensajes solo para seguidores redactados en Mastodon no pueden ser citados por otras cuentas. + setting_default_quote_policy_unlisted: Cuando otras cuentas te citen, sus publicaciones también se ocultarán de las líneas temporales de tendencias. setting_default_sensitive: El contenido de medios sensibles está oculto predeterminadamente y puede ser mostrado con un clic setting_display_media_default: Ocultar medios marcados como sensibles setting_display_media_hide_all: Siempre ocultar todos los medios diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index 292f7b5586c351..ceaa3fcf9feb5f 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -56,6 +56,8 @@ es-MX: scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales. setting_aggregate_reblogs: No mostrar nuevos impulsos para las publicaciones que han sido recientemente impulsadas (sólo afecta a las publicaciones recibidas recientemente) setting_always_send_emails: Normalmente las notificaciones por correo electrónico no se enviarán cuando estés usando Mastodon activamente + setting_default_quote_policy_private: Las publicaciones solo para seguidores hechas en Mastodon no pueden ser citadas por otros usuarios. + setting_default_quote_policy_unlisted: Cuando las personas te citen, su publicación también se ocultará en las cronologías públicas. setting_default_sensitive: El contenido multimedia sensible está oculto por defecto y puede ser mostrado con un clic setting_display_media_default: Ocultar contenido multimedia marcado como sensible setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index be628ca64a2fed..ec7ba3e30c37be 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -56,6 +56,8 @@ es: scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales. setting_aggregate_reblogs: No mostrar nuevos impulsos para las publicaciones que han sido recientemente impulsadas (sólo afecta a los impulsos recibidos recientemente) setting_always_send_emails: Normalmente las notificaciones por correo electrónico no se enviarán cuando estés usando Mastodon activamente + setting_default_quote_policy_private: Las publicaciones solo para seguidores hechas en Mastodon no pueden ser citadas por otros usuarios. + setting_default_quote_policy_unlisted: Cuando las personas te citen, su publicación también se ocultará en las cronologías públicas. setting_default_sensitive: El contenido multimedia sensible está oculto por defecto y puede ser mostrado con un click setting_display_media_default: Ocultar contenido multimedia marcado como sensible setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 0f9101bb53df18..1f9bf778fad6c9 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -56,6 +56,8 @@ et: scopes: Milliseid API-sid see rakendus tohib kasutada. Kui valid kõrgeima taseme, ei pea üksikuid eraldi valima. setting_aggregate_reblogs: Ära kuva uusi postituste jagamisi, mis on hiljuti jagatud (kehtib vaid uutele jagamistele) setting_always_send_emails: Mastodoni aktiivsel kasutamisel sulle tavaliselt meilile teavitusi ei saadeta + setting_default_quote_policy_private: Ainult jälgijatele mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida. + setting_default_quote_policy_unlisted: Kui teised kasutajad sind tsiteerivad, siis nende postitused peidetakse ajajoonelt, mis näitavad populaarsust koguvaid postitusi. setting_default_sensitive: Tundlik meedia on vaikimisi peidetud ning seda saab avada sellele klikkides setting_display_media_default: Peida tundlikuks märgitud meedia setting_display_media_hide_all: Alati peida kõik meedia @@ -138,10 +140,20 @@ et: effective_date: Mõsitlik ajavahemik on 10 kuni 30 päeva kasutajate teavitamisest. text: Sisu struktureerimiseks võid kasutada Markdown-keelt. terms_of_service_generator: + admin_email: Juriidiliste teadete hulka kuuluvad näiteks vastuväited, kohtumäärused, eemaldamisnõuded ja õiguskaitseasutuste päringud. + arbitration_address: See võib olla sama, kui ülaltoodud tänavaaadress või „N/A“, kui kasutusel on suhtlus e-kirja teel. + arbitration_website: See võib olla veebivorm või „N/A“, kui kasutusel on suhtlus e-kirja teel. + choice_of_law: Linn, piirkond, territoorium või riik, mille sisemised materiaalõigusnormid reguleerivad kõiki nõudeid. dmca_address: USA operaatorite puhul kasuta DMCA määratud esindajate kataloogis registreeritud aadressi. Postkastide loetelu on saadaval otsese taotluse korral. Kasuta DMCA määratud esindaja postkastist loobumise taotlust, et saata e-kiri autoriõiguse ametile ja kirjeldada, et oled kodus asuv sisu moderaator, kes kardab kättemaksu või kättemaksu oma tegevuse eest ja vajab postkasti, et eemaldada oma kodune aadress avalikust nähtavusest. + dmca_email: Võib olla sama e-posti aadress, kui ülaltoodud „E-posti aadress juriidiliste teadete jaoks“. + domain: Sinu poolt pakutava võrguteenuse unikaalne tunnus. jurisdiction: Nimeta riik, kus elab see, kes arveid maksab. Kui tegemist on äriühingu või muu üksusega, märgi riik, kus see on asutatud, ning vajaduse korral linn, piirkond, territoorium või osariik. + min_age: Vanus ei tohiks olla väiksem, kui sinu õigusruumis nõutav alampiir. user: chosen_languages: Keelte valimisel näidatakse avalikel ajajoontel ainult neis keeltes postitusi + date_of_birth: + one: "%{domain} saidi teenuste kasutamiseks pead olema vähemalt %{count} aastat vana. Me ei salvesta neid andmeid." + other: "%{domain} saidi teenuste kasutamiseks pead olema vähemalt %{count} aastat vana. Me ei salvesta neid andmeid." role: Rollid määravad, millised õigused kasutajal on. user_role: color: Rolli tähistamise värvus üle kasutajaliidese, RGB 16nd-formaadis @@ -152,6 +164,7 @@ et: username_block: allow_with_approval: Kohese liitumise asemel peavad vastavusekohased liitumised saama eeleeva heakskiidu comparison: Kui lubad blokeerimise osalise vastavuse alusel, siis palun arvesta Scunthorpe'i probleemi tekkimise võimalusega + username: Vastavust kontrollitakse sõltumata tähesuurusele või levinumate sarnaste tähtemärkide olemasolule, näiteks „4“ → „a“ või „3“ → „e“ webhook: events: Saadetavate sündmuste valik template: Koosta oma JSON manus kasutades muutujateasendust. Jäta tühaks tavalise JSONi jaoks. @@ -344,6 +357,11 @@ et: text: Kasutustingimused terms_of_service_generator: admin_email: E-posti aadress juriidiliste teadete jaoks + arbitration_address: Tänava-aadress kohtuteadete saatmiseks + arbitration_website: Veebisait kohtuteadete saatmiseks + choice_of_law: Kasutatav õigusruum + dmca_address: Tänava-aadress DCMA või autoriõigustega seotud teadete jaoks + dmca_email: E-posti aadress DCMA või autoriõigustega seotud teadete jaoks domain: Domeen jurisdiction: Jurisdiktsioon min_age: Vanuse alampiir diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 19c2ef859bfbc7..b31c8e1ef35d82 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -56,6 +56,8 @@ fi: scopes: Mihin ohjelmointirajapintoihin sovelluksella on pääsy. Jos valitset ylätason käyttöoikeuden, sinun ei tarvitse valita yksittäisiä. setting_aggregate_reblogs: Älä näytä uusia tehostuksia julkaisuille, joita on äskettäin tehostettu (koskee vain juuri vastaanotettuja tehostuksia) setting_always_send_emails: Yleensä sähköposti-ilmoituksia ei lähetetä, kun käytät Mastodonia aktiivisesti + setting_default_quote_policy_private: Muut eivät voi lainata vain seuraajille tarkoitettuja, Mastodonissa kirjoitettuja julkaisuja. + setting_default_quote_policy_unlisted: Kun ihmiset lainaavat sinua, heidän julkaisunsa piilotetaan suosittujen julkaisujen aikajanoilta. setting_default_sensitive: Arkaluonteinen media piilotetaan oletusarvoisesti, ja se voidaan näyttää yhdellä napsautuksella setting_display_media_default: Piilota arkaluonteiseksi merkitty mediasisältö setting_display_media_hide_all: Piilota mediasisältö aina diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index 256868dfaf8a6d..3b4f72b1be4926 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -56,6 +56,8 @@ gl: scopes: A que APIs terá acceso a aplicación. Se escolles un ámbito de alto nivel, non precisas seleccionar elementos individuais. setting_aggregate_reblogs: Non mostrar novas promocións de publicacións que foron promovidas recentemente (só afecta a promocións recén recibidas) setting_always_send_emails: Como norma xeral non che enviamos correos electrónicos se usas activamente Mastodon + setting_default_quote_policy_private: As publicacións só para seguidoras creadas con Mastodon non poden ser citadas. + setting_default_quote_policy_unlisted: Cando alguén te cite, a súa publicación non aparecerá nas cronoloxías de popularidade. setting_default_sensitive: Medios sensibles marcados como ocultos por defecto e móstranse cun click setting_display_media_default: Ocultar medios marcados como sensibles setting_display_media_hide_all: Ocultar sempre os medios diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 5bca77c1eeb6ed..b96d98f60d74dd 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -56,6 +56,8 @@ he: scopes: לאיזה ממשק יורשה היישום לגשת. בבחירת תחום כללי, אין צורך לבחור ממשקים ספציפיים. setting_aggregate_reblogs: לא להראות הדהודים של הודעות שהודהדו לאחרונה (משפיע רק על הדהודים שהתקבלו לא מזמן) setting_always_send_emails: בדרך כלל התראות דוא"ל לא יישלחו בזמן שימוש פעיל במסטודון + setting_default_quote_policy_private: הודעות לעוקבים־בלבד שנוצרו במסטודון חסומות מציטוט על ידי אחרים. + setting_default_quote_policy_unlisted: כאשר אחרים מצטטים אותך, ההודעות שלהם יוסתרו גם מ"נושאים חמים". setting_default_sensitive: מדיה רגישה מוסתרת כברירת מחדל וניתן להציגה בקליק setting_display_media_default: הסתרת מדיה המסומנת כרגישה setting_display_media_hide_all: הסתר מדיה תמיד diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index 274c6bb0f3491e..c4f0e2b6f68454 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -56,6 +56,8 @@ hu: scopes: Mely API-kat érheti el az alkalmazás. Ha felső szintű hatáskört választasz, nem kell egyesével kiválasztanod az alatta lévőeket. setting_aggregate_reblogs: Ne mutassunk megtolásokat olyan bejegyzésekhez, melyeket nemrég toltak meg (csak új megtolásokra lép életbe) setting_always_send_emails: Alapesetben nem küldünk e-mail-értesítéseket, ha aktívan használod a Mastodont + setting_default_quote_policy_private: A Mastodonon írt, csak követőknek szóló bejegyzéseket mások nem idézhetik. + setting_default_quote_policy_unlisted: Amikor idéznek tőled, a bejegyzésük rejtve lesz a felkapott bejegyzések hírfolyamain is. setting_default_sensitive: A kényes médiatartalmat alapesetben elrejtjük, de egyetlen kattintással előhozható setting_display_media_default: Kényes tartalomnak jelölt média elrejtése setting_display_media_hide_all: Média elrejtése mindig diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index 25756219cb7368..bbbba8c8f7aa8e 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -56,6 +56,8 @@ is: scopes: Að hvaða API-kerfisviðmótum forritið fær aðgang. Ef þú velur efsta-stigs svið, þarftu ekki að gefa einstakar heimildir. setting_aggregate_reblogs: Ekki sýna nýjar endurbirtingar á færslum sem hafa nýlega verið endurbirtar (hefur bara áhrif á ný-mótteknar endurbirtingar) setting_always_send_emails: Venjulega eru tilkynningar í tölvupósti ekki sendar þegar þú ert virk/ur í að nota Mastodon + setting_default_quote_policy_private: Aðrir geta ekki vitnað í færslur einungis til fylgjenda sem skrifaðar eru á Mastodon. + setting_default_quote_policy_unlisted: Þegar fólk vitnar í þig verða færslurnar þeirr einnig faldar á vinsældatímalínum. setting_default_sensitive: Viðkvæmt myndefni er sjálfgefið falið og er hægt að birta með smelli setting_display_media_default: Fela myndefni sem merkt er viðkvæmt setting_display_media_hide_all: Alltaf fela allt myndefni diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index 32428dc9a11d8a..39587cd5e5028c 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -56,6 +56,8 @@ it: scopes: A quali API l'applicazione potrà avere accesso. Se selezionate un ambito di alto livello, non c'è bisogno di selezionare quelle singole. setting_aggregate_reblogs: Non mostrare nuove condivisioni per toot che sono stati condivisi di recente (ha effetto solo sulle nuove condivisioni) setting_always_send_emails: Normalmente le notifiche e-mail non vengono inviate quando si utilizza attivamente Mastodon + setting_default_quote_policy_private: I post scritti e riservati ai seguaci su Mastodon non possono essere citati da altri. + setting_default_quote_policy_unlisted: Quando le persone ti citano, il loro post verrà nascosto anche dalle timeline di tendenza. setting_default_sensitive: Media con contenuti sensibili sono nascosti in modo predefinito e possono essere rivelati con un click setting_display_media_default: Nascondi media segnati come sensibili setting_display_media_hide_all: Nascondi sempre tutti i media diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 158ee3552a5552..db3f9edcb021d4 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -56,6 +56,8 @@ nl: scopes: Tot welke API's heeft de toepassing toegang. Wanneer je een toestemming van het bovenste niveau kiest, hoef je geen individuele toestemmingen meer te kiezen. setting_aggregate_reblogs: Geen nieuwe boosts tonen voor berichten die recentelijk nog zijn geboost (heeft alleen effect op nieuw ontvangen boosts) setting_always_send_emails: Normaliter worden er geen e-mailmeldingen verstuurd wanneer je actief Mastodon gebruikt + setting_default_quote_policy_private: Berichten aan alleen volgers afkomstig van Mastodon kunnen niet door anderen worden geciteerd. + setting_default_quote_policy_unlisted: Wanneer mensen jou citeren, verschijnt hun bericht ook niet onder trends. setting_default_sensitive: Gevoelige media wordt standaard verborgen en kan met één klik worden getoond setting_display_media_default: Als gevoelig gemarkeerde media verbergen setting_display_media_hide_all: Media altijd verbergen diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 2164ec90b2898c..e7e308a1b0e6b9 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -56,6 +56,8 @@ vi: scopes: Ứng dụng sẽ được phép truy cập những API nào. Nếu bạn chọn quyền cấp cao nhất, không cần chọn quyền nhỏ. setting_aggregate_reblogs: Nếu một tút đã được đăng lại thì sẽ không hiện những lượt đăng lại khác trên bảng tin setting_always_send_emails: Bình thường thì sẽ không gửi khi bạn đang dùng Mastodon + setting_default_quote_policy_private: Tút chỉ dành cho người theo dõi trên Mastodon không thể được người khác trích dẫn. + setting_default_quote_policy_unlisted: Khi ai đó trích dẫn bạn, tút của họ cũng sẽ bị ẩn khỏi bảng tin công khai. setting_default_sensitive: Bắt buộc nhấn vào mới có thể xem setting_display_media_default: Click để xem setting_display_media_hide_all: Luôn ẩn diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 4656002f0f44e5..efd37217a4b13e 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -56,6 +56,8 @@ zh-CN: scopes: 哪些 API 被允许使用。如果你勾选了更高一级的范围,就不用单独选中子项目了。 setting_aggregate_reblogs: 不显示最近已经被转嘟过的嘟文(只会影响新收到的转嘟) setting_always_send_emails: 一般情况下,如果你活跃使用 Mastodon,我们不会向你发送电子邮件通知 + setting_default_quote_policy_private: Mastodon上发布的仅限关注者可见的嘟文无法被他人引用。 + setting_default_quote_policy_unlisted: 当其他人引用你时,他们的嘟文也会从热门时间线上隐藏。 setting_default_sensitive: 敏感内容默认隐藏,并在点击后显示 setting_display_media_default: 隐藏被标记为敏感内容的媒体 setting_display_media_hide_all: 始终隐藏媒体 diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 7c17c54a5f61d1..6bf083139446af 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -56,6 +56,8 @@ zh-TW: scopes: 允許使應用程式存取的 API。 若您選擇最高階範圍,則無須選擇個別項目。 setting_aggregate_reblogs: 不顯示最近已被轉嘟之嘟文的最新轉嘟(只影響最新收到的嘟文) setting_always_send_emails: 一般情況下若您活躍使用 Mastodon ,我們不會寄送電子郵件通知 + setting_default_quote_policy_private: Mastodon 上發佈之僅限跟隨者嘟文無法被其他使用者引用。 + setting_default_quote_policy_unlisted: 當其他人引用您時,他們的嘟文也會自熱門時間軸隱藏。 setting_default_sensitive: 敏感內容媒體預設隱藏,且按一下即可重新顯示 setting_display_media_default: 隱藏標為敏感內容的媒體 setting_display_media_hide_all: 總是隱藏所有媒體 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 6e756e8ef54235..65aca0b47ed1b2 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -1278,7 +1278,6 @@ sk: reblog: Vyzdvihnutie sa nedá pripnúť title: '%{name}: „%{quote}"' visibilities: - private: Iba pre sledovateľov public: Verejné statuses_cleanup: exceptions: Výnimky diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 1c3f08c6225379..123e8c47c07be0 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1912,7 +1912,6 @@ sl: reblog: Izpostavitev ne more biti pripeta title: "%{name}: »%{quote}«" visibilities: - private: Samo sledilci public: Javno statuses_cleanup: enabled: Samodejno izbriši stare objave diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 93d6e0e18ec340..4b1cf77cb6c520 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1866,7 +1866,6 @@ sq: reblog: S’mund të fiksohet një përforcim title: '%{name}: "%{quote}"' visibilities: - private: Vetëm ndjekësve public: Publike statuses_cleanup: enabled: Fshi automatikisht postime të vjetra diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 106d96d32ce3a7..3173aa34384761 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -1655,7 +1655,6 @@ sr-Latn: reblog: Podrška ne može da se prikači title: "%{name}: „%{quote}”" visibilities: - private: Samo pratioci public: Javno statuses_cleanup: enabled: Automatski izbriši stare objave diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 4949882a614a5b..9fc9ed255f79ea 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1685,7 +1685,6 @@ sr: reblog: Подршка не може да се прикачи title: "%{name}: „%{quote}”" visibilities: - private: Само пратиоци public: Јавно statuses_cleanup: enabled: Аутоматски избриши старе објаве diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 910f422c42295b..4a844f8a941864 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1911,7 +1911,6 @@ sv: reblog: En boost kan inte fästas title: '%{name}: "%{quote}"' visibilities: - private: Endast följare public: Offentlig statuses_cleanup: enabled: Ta automatiskt bort gamla inlägg diff --git a/config/locales/th.yml b/config/locales/th.yml index 5c99bd946b1692..9f4aeab65ffff0 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1783,7 +1783,6 @@ th: reblog: ไม่สามารถปักหมุดการดัน title: '%{name}: "%{quote}"' visibilities: - private: ผู้ติดตามเท่านั้น public: สาธารณะ statuses_cleanup: enabled: ลบโพสต์เก่าโดยอัตโนมัติ diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 5ea4b9a0af4d44..f78e93dcc984c0 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1915,7 +1915,6 @@ tr: title: '%{name}: "%{quote}"' visibilities: direct: Özel değini - private: Sadece takipçiler public: Herkese açık public_long: Mastodon'da olan olmayan herkes unlisted_long: Mastodon arama sonuçlarında, öne çıkanlarda ve herkese açık zaman çizelgesinde gizli diff --git a/config/locales/tt.yml b/config/locales/tt.yml index 7847d636eb5b5c..c929313476dc39 100644 --- a/config/locales/tt.yml +++ b/config/locales/tt.yml @@ -520,7 +520,6 @@ tt: edited_at_html: "%{date} көнне төзәтте" title: '%{name}: "%{quote}"' visibilities: - private: Ияртүчеләр генә public: Һәркемгә ачык statuses_cleanup: min_age: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index cba51a2c9ad07a..7afa383dc06e93 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1874,7 +1874,6 @@ uk: reblog: Не можна закріпити просунутий допис title: '%{name}: "%{quote}"' visibilities: - private: Для підписників public: Для всіх statuses_cleanup: enabled: Автовидалення давніх дописів diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 71562dca7727b9..0af555c913edca 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1875,7 +1875,7 @@ vi: title: '%{name}: "%{quote}"' visibilities: direct: Nhắn riêng - private: Riêng tư + private: Chỉ người theo dõi public: Công khai public_long: Bất kỳ ai trong và ngoài Mastodon unlisted: Hạn chế diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 710c7486b7448e..3200bdfd23e648 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -323,7 +323,7 @@ zh-CN: title: 新公告 preview: disclaimer: 由于用户无法选择退出,电子邮件通知应仅限于重要公告,例如个人数据泄露或服务器关闭通知。 - explanation_html: 此电子邮件将发送给 %{display_count} 用户。电子邮件将包含以下文本: + explanation_html: 此电子邮件将发送给 %{display_count} 名用户。电子邮件将包含以下文本: title: 预览公告通知 publish: 发布 published_msg: 公告已发布! @@ -1874,7 +1874,7 @@ zh-CN: public: 任何人 title: "%{name}:“%{quote}”" visibilities: - direct: 私信提及 + direct: 私下提及 private: 仅关注者 public: 公开 public_long: 所有人(无论是否注册了 Mastodon) @@ -1925,8 +1925,8 @@ zh-CN: terms_of_service: title: 服务条款 terms_of_service_interstitial: - future_preamble_html: 我们正修改服务条款,将在%{date}生效。我们建议您查看更新后的条款。 - past_preamble_html: 自你上次访问起,我们改变了我们的服务条款。我们鼓励你查看更新后的条款。 + future_preamble_html: 我们将更改部分服务条款,这些更改将在%{date}生效。我们建议您查看更新后的条款。 + past_preamble_html: 自你上次访问起,我们更改了一些服务条款。我们建议你查看更新后的条款。 review_link: 查看服务条款 title: "%{domain} 更新了服务条款" themes: diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 9cf7d6d93bd711..c0e6029819ff02 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1634,7 +1634,6 @@ zh-HK: title: "%{name}:「%{quote}」" visibilities: direct: 私訊 - private: 關注者觀看 public: 公開 statuses_cleanup: enabled: 自動刪除舊嘟文 From 30b31a89e6f1281a5ac2c56046354f2d4a4c4dfe Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 12 Sep 2025 11:12:07 +0200 Subject: [PATCH 35/81] Add schema.org markup to SEO-enabled posts (#36075) --- app/helpers/statuses_helper.rb | 12 ++ app/lib/seo/adapter.rb | 16 +++ app/lib/seo/case_transform.rb | 36 +++++ .../seo/social_media_posting_serializer.rb | 127 ++++++++++++++++++ app/views/statuses/show.html.haml | 2 + config/initializers/inflections.rb | 1 + 6 files changed, 194 insertions(+) create mode 100644 app/lib/seo/adapter.rb create mode 100644 app/lib/seo/case_transform.rb create mode 100644 app/serializers/seo/social_media_posting_serializer.rb diff --git a/app/helpers/statuses_helper.rb b/app/helpers/statuses_helper.rb index 16b9d3fb531b21..9cf64d09b4d0ad 100644 --- a/app/helpers/statuses_helper.rb +++ b/app/helpers/statuses_helper.rb @@ -64,4 +64,16 @@ def visibility_icon(status) def prefers_autoplay? ActiveModel::Type::Boolean.new.cast(params[:autoplay]) || current_user&.setting_auto_play_gif end + + def render_seo_schema(status) + json = ActiveModelSerializers::SerializableResource.new( + status, + serializer: SEO::SocialMediaPostingSerializer, + adapter: SEO::Adapter + ).to_json + + # rubocop:disable Rails/OutputSafety + content_tag(:script, json_escape(json).html_safe, type: 'application/ld+json') + # rubocop:enable Rails/OutputSafety + end end diff --git a/app/lib/seo/adapter.rb b/app/lib/seo/adapter.rb new file mode 100644 index 00000000000000..0d95f05807e254 --- /dev/null +++ b/app/lib/seo/adapter.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class SEO::Adapter < ActiveModelSerializers::Adapter::Base + def self.default_key_transform + :camel_lower + end + + def self.transform_key_casing!(value, _options) + SEO::CaseTransform.camel_lower(value) + end + + def serializable_hash(options = nil) + serialized_hash = serializer.serializable_hash(serialization_options(options)) + self.class.transform_key_casing!(serialized_hash, instance_options) + end +end diff --git a/app/lib/seo/case_transform.rb b/app/lib/seo/case_transform.rb new file mode 100644 index 00000000000000..6c81fb00199b0e --- /dev/null +++ b/app/lib/seo/case_transform.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module SEO::CaseTransform + PREFIX_KEYS = %w( + context + id + type + ).freeze + + class << self + def camel_lower_cache + @camel_lower_cache ||= {} + end + + def camel_lower(value) + case value + when Array + value.map { |item| camel_lower(item) } + when Hash + value.deep_transform_keys! { |key| camel_lower(key) } + when Symbol + camel_lower(value.to_s).to_sym + when String + camel_lower_cache[value] ||= begin + if PREFIX_KEYS.include?(value.to_s) + "@#{value}" + else + value.underscore.camelize(:lower) + end + end + else + value + end + end + end +end diff --git a/app/serializers/seo/social_media_posting_serializer.rb b/app/serializers/seo/social_media_posting_serializer.rb new file mode 100644 index 00000000000000..72030e4173da3e --- /dev/null +++ b/app/serializers/seo/social_media_posting_serializer.rb @@ -0,0 +1,127 @@ +# frozen_string_literal: true + +class SEO::SocialMediaPostingSerializer < ActiveModel::Serializer + include FormattingHelper + include RoutingHelper + + attributes :context, :type, :url, :date_published, :date_modified, + :author, :text, :interaction_statistic + + attribute :image, if: -> { object.ordered_media_attachments.any?(&:image?) } + attribute :video, if: -> { object.ordered_media_attachments.any? { |attachment| attachment.video? || attachment.gifv? } } + attribute :audio, if: -> { object.ordered_media_attachments.any?(&:audio?) } + attribute :shared_content, if: -> { object.with_preview_card? } + + def context + 'https://schema.org' + end + + def type + 'SocialMediaPosting' + end + + def url + ActivityPub::TagManager.instance.url_for(object) + end + + def date_published + object.created_at.iso8601 + end + + def date_modified + object.edited_at&.iso8601 + end + + def author + { + type: 'Person', + name: object.account.display_name.presence || object.account.username, + alternate_name: object.account.local_username_and_domain, + identifier: object.account.local_username_and_domain, + url: ActivityPub::TagManager.instance.url_for(object.account), + interaction_statistic: [ + { + type: 'InteractionCounter', + interaction_type: 'https://schema.org/FollowAction', + user_interaction_count: object.account.followers_count, + }, + ], + } + end + + def text + status_content_format(object) + end + + def interaction_statistic + [ + { + type: 'InteractionCounter', + interaction_type: 'https://schema.org/LikeAction', + user_interaction_count: object.favourites_count, + }, + + { + type: 'InteractionCounter', + interaction_type: 'https://schema.org/ShareAction', + user_interaction_count: object.reblogs_count, + }, + + { + type: 'InteractionCounter', + interaction_type: 'https://schema.org/ReplyAction', + user_interaction_count: object.replies_count, + }, + ] + end + + def image + object.ordered_media_attachments.filter_map do |attachment| + next unless attachment.image? + + { + type: 'ImageObject', + content_url: full_asset_url(attachment.file.url(:original, false)), + thumbnail_url: attachment.thumbnail.present? ? full_asset_url(attachment.thumbnail.url(:original)) : full_asset_url(attachment.file.url(:small)), + description: attachment.description, + } + end + end + + def video + object.ordered_media_attachments.filter_map do |attachment| + next unless attachment.video? || attachment.gifv? + + { + type: 'VideoObject', + upload_date: attachment.created_at.iso8601, + content_url: full_asset_url(attachment.file.url(:original, false)), + thumbnail_url: attachment.thumbnail.present? ? full_asset_url(attachment.thumbnail.url(:original)) : full_asset_url(attachment.file.url(:small)), + embed_url: medium_player_url(attachment), + description: attachment.description, + } + end + end + + def audio + object.ordered_media_attachments.filter_map do |attachment| + next unless attachment.audio? + + { + type: 'AudioObject', + upload_date: attachment.created_at.iso8601, + content_url: full_asset_url(attachment.file.url(:original, false)), + thumbnail_url: attachment.thumbnail.present? ? full_asset_url(attachment.thumbnail.url(:original)) : full_asset_url(attachment.file.url(:small)), + embed_url: medium_player_url(attachment), + description: attachment.description, + } + end + end + + def shared_content + { + type: 'WebPage', + url: object.preview_card.url, + } + end +end diff --git a/app/views/statuses/show.html.haml b/app/views/statuses/show.html.haml index cc779f4370eec8..c530b77c331aac 100644 --- a/app/views/statuses/show.html.haml +++ b/app/views/statuses/show.html.haml @@ -3,6 +3,8 @@ - content_for :header_tags do - if @account.user_prefers_noindex? %meta{ name: 'robots', content: 'noindex, noarchive' }/ + - else + = render_seo_schema @status %link{ rel: 'alternate', type: 'application/json+oembed', href: api_oembed_url(url: short_account_status_url(@account, @status), format: 'json') }/ %link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@status) }/ diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index d9a8f726639c46..1befe0a6ffd080 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -27,6 +27,7 @@ inflect.acronym 'REST' inflect.acronym 'RSS' inflect.acronym 'StatsD' + inflect.acronym 'SEO' inflect.acronym 'TOC' inflect.acronym 'URL' From 82b26603fe907c4b3b15c66b7d9fef0f783d287a Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 12 Sep 2025 15:10:31 +0200 Subject: [PATCH 36/81] Fix quote posts with CW and no text being rejected (#36095) --- app/lib/activitypub/activity/create.rb | 10 +----- app/models/status.rb | 6 +++- spec/lib/activitypub/activity/create_spec.rb | 27 ++++++++++++++ .../process_status_update_service_spec.rb | 36 +++++++++++++++++++ spec/services/post_status_service_spec.rb | 8 +++++ 5 files changed, 77 insertions(+), 10 deletions(-) diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index c47c2afc5233f1..50078c27dd3bce 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -56,11 +56,10 @@ def process_status process_audience ApplicationRecord.transaction do - @status = Status.create!(@params) + @status = Status.create!(@params.merge(quote: @quote)) attach_tags(@status) attach_mentions(@status) attach_counts(@status) - attach_quote(@status) end resolve_thread(@status) @@ -202,13 +201,6 @@ def attach_counts(status) end end - def attach_quote(status) - return if @quote.nil? - - @quote.status = status - @quote.save - end - def process_tags return if @object['tag'].nil? diff --git a/app/models/status.rb b/app/models/status.rb index f72a92078b37cd..0bff4f2825df36 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -102,7 +102,7 @@ class Status < ApplicationRecord has_one :quote, inverse_of: :status, dependent: :destroy validates :uri, uniqueness: true, presence: true, unless: :local? - validates :text, presence: true, unless: -> { with_media? || reblog? } + validates :text, presence: true, unless: -> { with_media? || reblog? || with_quote? } validates_with StatusLengthValidator validates_with DisallowedHashtagsValidator validates :reblog, uniqueness: { scope: :account }, if: :reblog? @@ -255,6 +255,10 @@ def with_media? ordered_media_attachments.any? end + def with_quote? + quote.present? + end + def with_preview_card? preview_cards_status.present? end diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index cdd5cb3194d1d5..80a5c6907c4255 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -887,6 +887,33 @@ def activity_for_object(json) end end + context 'with an unverifiable quote of a known post, with summary (CW) but no text' do + let(:quoted_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) } + + let(:object_json) do + build_object( + type: 'Note', + summary: 'beware of what she said', + content: nil, + quote: ActivityPub::TagManager.instance.uri_for(quoted_status) + ) + end + + it 'creates a status with an unverified quote' do + expect { subject.perform }.to change(sender.statuses, :count).by(1) + + status = sender.statuses.first + expect(status).to_not be_nil + expect(status.spoiler_text).to eq 'beware of what she said' + expect(status.content).to eq '' + expect(status.quote).to_not be_nil + expect(status.quote).to have_attributes( + state: 'pending', + approval_uri: nil + ) + end + end + context 'with an unverifiable quote of a known post' do let(:quoted_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) } diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index 9875101778fe54..7af2c67387fb4a 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -600,6 +600,42 @@ end end + context 'when an approved quote of a local post gets updated through an explicit update, removing text' do + let(:quoted_account) { Fabricate(:account) } + let(:quoted_status) { Fabricate(:status, account: quoted_account, quote_approval_policy: Status::QUOTE_APPROVAL_POLICY_FLAGS[:public] << 16) } + let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, state: :accepted) } + let(:approval_uri) { ActivityPub::TagManager.instance.approval_uri_for(quote) } + + let(:payload) do + { + '@context': [ + 'https://www.w3.org/ns/activitystreams', + { + '@id': 'https://w3id.org/fep/044f#quote', + '@type': '@id', + }, + { + '@id': 'https://w3id.org/fep/044f#quoteAuthorization', + '@type': '@id', + }, + ], + id: 'foo', + type: 'Note', + summary: 'Show more', + updated: '2021-09-08T22:39:25Z', + quote: ActivityPub::TagManager.instance.uri_for(quoted_status), + quoteAuthorization: approval_uri, + } + end + + it 'updates the quote post without changing the quote status' do + expect { subject.call(status, json, json) } + .to not_change(quote, :approval_uri) + .and not_change(quote, :state).from('accepted') + .and change(status, :text).from('Hello world').to('') + end + end + context 'when an approved quote of a local post gets updated through an explicit update' do let(:quoted_account) { Fabricate(:account) } let(:quoted_status) { Fabricate(:status, account: quoted_account, quote_approval_policy: Status::QUOTE_APPROVAL_POLICY_FLAGS[:public] << 16) } diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 5494fa0cadf72b..c434d0cb6ef88f 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -305,6 +305,14 @@ .to enqueue_sidekiq_job(ActivityPub::QuoteRequestWorker) end + it 'allows quotes with spoilers and no text' do + account = Fabricate(:account) + quoted_status = Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) + + expect { subject.call(account, spoiler_text: 'test', quoted_status: quoted_status) } + .to enqueue_sidekiq_job(ActivityPub::QuoteRequestWorker) + end + it 'correctly downgrades visibility for private self-quotes' do account = Fabricate(:account) quoted_status = Fabricate(:status, account: account, visibility: :private) From 06803422da3794538cd9cd5c7ccd61a0694ef921 Mon Sep 17 00:00:00 2001 From: Echo Date: Fri, 12 Sep 2025 15:37:26 +0200 Subject: [PATCH 37/81] Make Vite respect CSP for styles (#36089) --- app/views/layouts/application.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index f5318d6c2d246f..3418f6d953d1bb 100755 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -35,7 +35,7 @@ = vite_preload_file_tag "mastodon/locales/#{I18n.locale}.json" = csrf_meta_tags unless skip_csrf_meta_tags? - %meta{ name: 'style-nonce', content: request.content_security_policy_nonce } + %meta{ name: 'style-nonce', content: request.content_security_policy_nonce, property: 'csp-nonce', nonce: request.content_security_policy_nonce } = custom_stylesheet From 8e46252862818511c23af8e00ea6d8e24f8ecc6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 10:15:28 +0200 Subject: [PATCH 38/81] chore(deps): update dependency pundit to v2.5.1 (#36097) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c0f30b99782b2..563d876ff9232a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -129,7 +129,7 @@ GEM erubi (>= 1.0.0) rack (>= 0.9.0) rouge (>= 1.0.0) - bigdecimal (3.2.2) + bigdecimal (3.2.3) bindata (2.5.1) binding_of_caller (1.0.1) debug_inspector (>= 1.2.0) @@ -645,7 +645,7 @@ GEM public_suffix (6.0.2) puma (6.6.1) nio4r (~> 2.0) - pundit (2.5.0) + pundit (2.5.1) activesupport (>= 3.0.0) raabro (1.4.0) racc (1.8.1) From 93c977eb3d4973803632e9fb3a0773e22e3e98e0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 10:28:25 +0200 Subject: [PATCH 39/81] New Crowdin Translations (automated) (#36105) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 50 +++++++++++++++++- app/javascript/mastodon/locales/br.json | 1 + app/javascript/mastodon/locales/cs.json | 3 ++ app/javascript/mastodon/locales/cy.json | 12 +++++ app/javascript/mastodon/locales/el.json | 21 +++++--- app/javascript/mastodon/locales/es-AR.json | 2 +- app/javascript/mastodon/locales/fo.json | 3 ++ app/javascript/mastodon/locales/fr-CA.json | 2 +- app/javascript/mastodon/locales/fr.json | 2 +- app/javascript/mastodon/locales/ga.json | 3 ++ app/javascript/mastodon/locales/hu.json | 3 ++ app/javascript/mastodon/locales/ia.json | 27 +++++++++- app/javascript/mastodon/locales/id.json | 58 +++++++++++--------- app/javascript/mastodon/locales/it.json | 2 + app/javascript/mastodon/locales/nan.json | 7 +++ app/javascript/mastodon/locales/pt-PT.json | 21 ++++++++ app/javascript/mastodon/locales/sv.json | 1 + app/javascript/mastodon/locales/tok.json | 12 +++++ app/javascript/mastodon/locales/ug.json | 5 ++ config/locales/ar.yml | 38 ++++++++++++++ config/locales/cs.yml | 1 + config/locales/cy.yml | 2 + config/locales/el.yml | 11 ++-- config/locales/fo.yml | 1 + config/locales/ga.yml | 1 + config/locales/ia.yml | 5 ++ config/locales/nan.yml | 61 ++++++++++++++++++++++ config/locales/pt-PT.yml | 5 ++ config/locales/simple_form.ar.yml | 6 +++ config/locales/simple_form.cs.yml | 2 + config/locales/simple_form.cy.yml | 2 + config/locales/simple_form.el.yml | 5 +- config/locales/simple_form.fo.yml | 2 + config/locales/simple_form.ga.yml | 2 + config/locales/simple_form.ia.yml | 2 + config/locales/simple_form.pt-PT.yml | 2 + 36 files changed, 340 insertions(+), 43 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 51ef8838d95c58..a08c5cb98dc22b 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -1,7 +1,7 @@ { "about.blocks": "خوادم تحت الإشراف", "about.contact": "للاتصال:", - "about.default_locale": "افتراضيالافتراضية", + "about.default_locale": "افتراضي", "about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.", "about.domain_blocks.no_reason_available": "السبب غير متوفر", "about.domain_blocks.preamble": "يتيح مَستُدون عمومًا لمستخدميه مطالعة المحتوى من المستخدمين من الخواديم الأخرى في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم.", @@ -239,12 +239,17 @@ "confirmations.missing_alt_text.secondary": "انشر على أي حال", "confirmations.missing_alt_text.title": "أضف نصًا بديلًا؟", "confirmations.mute.confirm": "أكتم", + "confirmations.quiet_post_quote_info.dismiss": "لا تُذكرني مرة أخرى", + "confirmations.quiet_post_quote_info.got_it": "مفهوم", "confirmations.redraft.confirm": "إزالة وإعادة الصياغة", "confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.", "confirmations.redraft.title": "أتريد حذف وإعادة صياغة المنشور؟", "confirmations.remove_from_followers.confirm": "إزالة المتابع", "confirmations.remove_from_followers.message": "سيتوقف {name} عن متابعتك. هل بالتأكيد تريد المتابعة؟", "confirmations.remove_from_followers.title": "إزالة المتابع؟", + "confirmations.revoke_quote.confirm": "إزالة المنشور", + "confirmations.revoke_quote.message": "لا يمكن التراجع عن هذا الإجراء.", + "confirmations.revoke_quote.title": "أتريد إزالة المنشور؟", "confirmations.unfollow.confirm": "إلغاء المتابعة", "confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟", "confirmations.unfollow.title": "إلغاء متابعة المستخدم؟", @@ -289,6 +294,7 @@ "domain_pill.your_handle": "عنوانك الكامل:", "domain_pill.your_server": "موطِنك الرقمي، حيث توجد فيه كافة منشوراتك. ألا يعجبك المكان؟ يمكنك الانتقال بين الخوادم في أي وقت واصطحاب متابعيك أيضاً.", "domain_pill.your_username": "معرفك الفريد على هذا الخادم. من الممكن العثور على مستخدمين بنفس إسم المستخدم على خوادم مختلفة.", + "dropdown.empty": "حدد خيارا", "embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.", "embed.preview": "إليك ما سيبدو عليه:", "emoji_button.activity": "الأنشطة", @@ -487,6 +493,7 @@ "keyboard_shortcuts.open_media": "لفتح الوسائط", "keyboard_shortcuts.pinned": "لفتح قائمة المنشورات المثبتة", "keyboard_shortcuts.profile": "لفتح الملف التعريفي للناشر", + "keyboard_shortcuts.quote": "اقتباس المنشور", "keyboard_shortcuts.reply": "للردّ", "keyboard_shortcuts.requests": "لفتح قائمة طلبات المتابعة", "keyboard_shortcuts.search": "للتركيز على البحث", @@ -498,6 +505,8 @@ "keyboard_shortcuts.translate": "لترجمة منشور", "keyboard_shortcuts.unfocus": "لإلغاء التركيز على حقل النص أو نافذة البحث", "keyboard_shortcuts.up": "للانتقال إلى أعلى القائمة", + "learn_more_link.got_it": "مفهوم", + "learn_more_link.learn_more": "تعلم المزيد", "lightbox.close": "إغلاق", "lightbox.next": "التالي", "lightbox.previous": "العودة", @@ -655,6 +664,7 @@ "notifications.column_settings.mention": "الإشارات:", "notifications.column_settings.poll": "نتائج استطلاع الرأي:", "notifications.column_settings.push": "الإشعارات", + "notifications.column_settings.quote": "الاقتباسات:", "notifications.column_settings.reblog": "المعاد نشرها:", "notifications.column_settings.show": "اعرِضها في عمود", "notifications.column_settings.sound": "أصدر صوتا", @@ -734,6 +744,9 @@ "privacy.unlisted.short": "للعامة دون صخب", "privacy_policy.last_updated": "آخر تحديث {date}", "privacy_policy.title": "سياسة الخصوصية", + "quote_error.poll": "الاقتباس غير مسموح باستطلاعات الرأي.", + "quote_error.quote": "لا يسمح إلا باقتباس واحد في كل مرة.", + "quote_error.unauthorized": "غير مصرح لك باقتباس هذا المنشور.", "recommended": "موصى به", "refresh": "أنعِش", "regeneration_indicator.please_stand_by": "الرجاء الانتظار.", @@ -749,6 +762,8 @@ "relative_time.minutes": "{number}د", "relative_time.seconds": "{number}ثا", "relative_time.today": "اليوم", + "remove_quote_hint.button_label": "مفهوم", + "remove_quote_hint.title": "هل ترغب في إزالة منشورك المقتبس؟", "reply_indicator.attachments": "{count, plural, zero {}one {# مرفق} two {# المرفقات} few {# مرفقات} many {# مرفقات} other {# مرفقًا}}", "reply_indicator.cancel": "إلغاء", "reply_indicator.poll": "استطلاع رأي", @@ -840,14 +855,18 @@ "status.admin_account": "افتح الواجهة الإدارية لـ @{name}", "status.admin_domain": "فتح واجهة الإشراف لـ {domain}", "status.admin_status": "افتح هذا المنشور على واجهة الإشراف", + "status.all_disabled": "إعادات النشر والاقتباسات معطلة", "status.block": "احجب @{name}", "status.bookmark": "أضفه إلى الفواصل المرجعية", "status.cancel_reblog_private": "إلغاء إعادة النشر", + "status.cannot_quote": "الاقتباسات معطلة على هذا المنشور", "status.cannot_reblog": "لا يمكن إعادة نشر هذا المنشور", "status.context.load_new_replies": "الردود الجديدة المتاحة", + "status.context.loading": "التحقق من المزيد من الردود", "status.continued_thread": "تكملة للخيط", "status.copy": "انسخ رابط الرسالة", "status.delete": "احذف", + "status.delete.success": "المنشور محذوف", "status.detailed_status": "تفاصيل المحادثة", "status.direct": "إشارة خاصة لـ @{name}", "status.direct_indicator": "إشارة خاصة", @@ -870,20 +889,37 @@ "status.mute_conversation": "كتم المحادثة", "status.open": "وسّع هذا المنشور", "status.pin": "دبّسه على الصفحة التعريفية", + "status.quote": "اقتباس", + "status.quote.cancel": "إلغاء الاقتباس", "status.quote_error.filtered": "مُخفي بسبب إحدى إعدادات التصفية خاصتك", + "status.quote_error.not_available": "المنشور غير متوفر", + "status.quote_error.pending_approval": "المنشور معلق", + "status.quote_error.pending_approval_popout.body": "في ماستدون، يمكنك التحكم في ما إذا كان بإمكان شخص ما أن يقتبس منك أو لا. هذا المنشور معلق في انتظار الحصول على موافقة الكاتب الأصلي.", + "status.quote_error.revoked": "تمت إزالة المنشور من قبل صاحبه", + "status.quote_followers_only": "يمكن فقط للمتابعين اقتباس هذا المنشور", + "status.quote_manual_review": "الكاتب سوف يراجع يدوياً", + "status.quote_policy_change": "تغيير من يمكنه الاقتباس", + "status.quote_post_author": "اقتبس @{name} منشورا", + "status.quote_private": "المنشورات الخاصة لا يمكن اقتباسها", + "status.quotes.empty": "لا أحد اقتبس هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", "status.read_more": "اقرأ المزيد", "status.reblog": "إعادة النشر", + "status.reblog_or_quote": "إعادة النشر أو اقتباس", + "status.reblog_private": "شارك مرة أخرى مع متابعيك", "status.reblogged_by": "شارَكَه {name}", "status.reblogs": "{count, plural, one {إعادة نشر واحدة} two {معاد نشرها مرتان} few {# إعادات نشر} many {# إعادات نشر} other {# إعادة نشر}}", "status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", "status.redraft": "إزالة وإعادة الصياغة", "status.remove_bookmark": "احذفه مِن الفواصل المرجعية", "status.remove_favourite": "إزالة من التفضيلات", + "status.remove_quote": "إزالة", "status.replied_in_thread": "رد في خيط", "status.replied_to": "رَدًا على {name}", "status.reply": "ردّ", "status.replyAll": "رُد على الخيط", "status.report": "ابلِغ عن @{name}", + "status.request_quote": "طلب اقتباس", + "status.revoke_quote": "إزالة منشوري من اقتباس @{name}", "status.sensitive_warning": "محتوى حساس", "status.share": "مشاركة", "status.show_less_all": "طي الكل", @@ -921,6 +957,7 @@ "upload_button.label": "إضافة وسائط", "upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.", "upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.", + "upload_error.quote": "تحميل الملفات غير مسموح بها مع الاقتباسات.", "upload_form.drag_and_drop.instructions": "لحمل مرفق، اضغط على space أو Enter. وفي أثناء السحب، استخدم مفاتيح الأسهم لتنقل المرفق في أية اتجاه. اضغط على Space أو Enter مجدداً لتنقل المرفق إلى موضعه الجديد، أو اضغط Escape للإلغاء.", "upload_form.drag_and_drop.on_drag_cancel": "تم إلغاء السحب. تم إسقاط مرفقات الوسائط {item}.", "upload_form.drag_and_drop.on_drag_end": "تم إضافة المرفق {item}.", @@ -943,5 +980,14 @@ "video.skip_forward": "تخطي للأمام", "video.unmute": "إلغاء الكتم", "video.volume_down": "خفض الصوت", - "video.volume_up": "رفع الصوت" + "video.volume_up": "رفع الصوت", + "visibility_modal.button_title": "اختر مدى الظهور", + "visibility_modal.header": "مدى الظهور والتفاعل", + "visibility_modal.helper.unlisted_quoting": "عندما يقتبس الناس منك ، فإن منشورهم سيكون أيضا مخفيا عن الخيوط الزمنية الرائجة.", + "visibility_modal.privacy_label": "مدى الظهور", + "visibility_modal.quote_followers": "للمتابِعين فقط", + "visibility_modal.quote_label": "من يستطيع الاقتباس", + "visibility_modal.quote_nobody": "أنا فقط", + "visibility_modal.quote_public": "أيا كان", + "visibility_modal.save": "حفظ" } diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index e5ed938d79070a..1bfbbef3fff93c 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -435,6 +435,7 @@ "load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}", "loading_indicator.label": "O kargañ…", "media_gallery.hide": "Kuzhat", + "mute_modal.hide_from_notifications": "Kuzhat er c'hemennoù", "mute_modal.hide_options": "Dibarzhioù ar c'huzhat", "mute_modal.show_options": "Dibarzhioù an diskwel", "mute_modal.title": "Kuzhat an implijer·ez?", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index f6ef554d1d22e3..1734dac74bace8 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -905,6 +905,8 @@ "status.quote_error.filtered": "Skryté kvůli jednomu z vašich filtrů", "status.quote_error.not_available": "Příspěvek není dostupný", "status.quote_error.pending_approval": "Příspěvek čeká na schválení", + "status.quote_error.pending_approval_popout.body": "Na Mastodonu můžete kontrolovat, zda vás někdo může citovat. Tento příspěvek čeká, dokud neobdržíme schválení od původního autora.", + "status.quote_error.revoked": "Příspěvek odstraněn autorem", "status.quote_followers_only": "Pouze moji sledující mohou citovat tento příspěvek", "status.quote_manual_review": "Autor provede manuální kontrolu", "status.quote_policy_change": "Změňte, kdo může citovat", @@ -922,6 +924,7 @@ "status.redraft": "Smazat a přepsat", "status.remove_bookmark": "Odstranit ze záložek", "status.remove_favourite": "Odebrat z oblíbených", + "status.remove_quote": "Odstranit", "status.replied_in_thread": "Odpověděli ve vlákně", "status.replied_to": "Odpověděl/a uživateli {name}", "status.reply": "Odpovědět", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 93f15afab5c35e..9ec1196e447a13 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -773,6 +773,8 @@ "relative_time.seconds": "{number} eiliad", "relative_time.today": "heddiw", "remove_quote_hint.button_label": "Iawn", + "remove_quote_hint.message": "Gallwch wneud hynny o'r ddewislen dewisiadau {icon}.", + "remove_quote_hint.title": "Eisiau dileu eich postiad sy'n cael ei ddyfynnu?", "reply_indicator.attachments": "{count, plural, one {# atodiad} other {# atodiad}}", "reply_indicator.cancel": "Diddymu", "reply_indicator.poll": "Pleidlais", @@ -868,6 +870,7 @@ "status.block": "Rhwystro @{name}", "status.bookmark": "Nod tudalen", "status.cancel_reblog_private": "Dadhybu", + "status.cannot_quote": "Mae dyfyniadau wedi'u hanalluogi ar y postiad hwn", "status.cannot_reblog": "Does dim modd hybu'r postiad hwn", "status.context.load_new_replies": "Mae atebion newydd ar gael", "status.context.loading": "Yn chwilio am fwy o atebion", @@ -902,6 +905,8 @@ "status.quote_error.filtered": "Wedi'i guddio oherwydd un o'ch hidlwyr", "status.quote_error.not_available": "Postiad ddim ar gael", "status.quote_error.pending_approval": "Postiad yn yr arfaeth", + "status.quote_error.pending_approval_popout.body": "Ar Mastodon, gallwch reoli os yw rhywun yn gallu eich dyfynnu. Mae'r postiad hwn yn cael ei ddal nôl tra'n bod yn cael cymeradwyaeth yr awdur gwreiddiol.", + "status.quote_error.revoked": "Postiad wedi'i ddileu gan yr awdur", "status.quote_followers_only": "Dim ond dilynwyr all ddyfynnu'r postiad hwn", "status.quote_manual_review": "Bydd yr awdur yn ei adolygu ei hyn", "status.quote_policy_change": "Newid pwy all ddyfynnu", @@ -911,12 +916,14 @@ "status.read_more": "Darllen rhagor", "status.reblog": "Hybu", "status.reblog_or_quote": "Hybu neu ddyfynnu", + "status.reblog_private": "Rhannwch eto gyda'ch dilynwyr", "status.reblogged_by": "Hybodd {name}", "status.reblogs": "{count, plural, one {# hwb} other {# hwb}}", "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 ail lunio", "status.remove_bookmark": "Tynnu nod tudalen", "status.remove_favourite": "Tynnu o'r ffefrynnau", + "status.remove_quote": "Tynnu", "status.replied_in_thread": "Wedi ateb mewn edefyn", "status.replied_to": "Wedi ymateb i {name}", "status.reply": "Ymateb", @@ -988,9 +995,14 @@ "visibility_modal.button_title": "Gosod gwelededd", "visibility_modal.header": "Gwelededd a rhyngweithio", "visibility_modal.helper.direct_quoting": "Does dim modd dyfynnu crybwylliadau preifat ysgrifennwyd ar Mastodon.", + "visibility_modal.helper.privacy_editing": "Does dim modd newid gwelededd ar ôl i bostiad gael ei gyhoeddi.", + "visibility_modal.helper.privacy_private_self_quote": "Does dim modd cyhoeddi hunan-ddyfyniadau o bostiadau preifat.", "visibility_modal.helper.private_quoting": "Does dim modd dyfynnu crybwylliadau preifat ysgrifennwyd gan ddilynwyr.", "visibility_modal.helper.unlisted_quoting": "Pan fydd pobl yn eich dyfynnu, bydd eu postiad hefyd yn cael ei guddio rhag llinellau amser sy'n trendio.", + "visibility_modal.instructions": "Rheolwch bwy all ryngweithio â'r postiad hwn. Gallwch hefyd osod gosodiadau i bob postiad yn y dyfodol drwy lywio i Dewisiadau >Rhagosodiadau postio .", + "visibility_modal.privacy_label": "Gwelededd", "visibility_modal.quote_followers": "Dilynwyr yn unig", + "visibility_modal.quote_label": "Pwy sy'n gallu dyfynnu", "visibility_modal.quote_nobody": "Dim ond fi", "visibility_modal.quote_public": "Pawb", "visibility_modal.save": "Cadw" diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 6d3e411eb82c50..d2bfe8e0afc1ea 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -241,6 +241,8 @@ "confirmations.mute.confirm": "Αποσιώπηση", "confirmations.quiet_post_quote_info.dismiss": "Μη μου το ξαναθυμίσεις", "confirmations.quiet_post_quote_info.got_it": "Το κατάλαβα", + "confirmations.quiet_post_quote_info.message": "Όταν παραθέτετε μια ήσυχη δημόσια ανάρτηση, η ανάρτηση σας θα είναι κρυμμένη από τις δημοφιλείς ροές.", + "confirmations.quiet_post_quote_info.title": "Παράθεση ήσυχων δημόσιων αναρτήσεων", "confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο", "confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.", "confirmations.redraft.title": "Διαγραφή & επανασύνταξη;", @@ -321,7 +323,7 @@ "empty_column.account_unavailable": "Μη διαθέσιμο προφίλ", "empty_column.blocks": "Δεν έχεις αποκλείσει κανέναν χρήστη ακόμα.", "empty_column.bookmarked_statuses": "Δεν έχεις καμία ανάρτηση με σελιδοδείκτη ακόμα. Μόλις βάλεις κάποιον, θα εμφανιστεί εδώ.", - "empty_column.community": "Η τοπική ροή είναι κενή. Γράψε κάτι δημόσιο παραμύθι ν' αρχινίσει!", + "empty_column.community": "Η τοπική ροή είναι κενή. Γράψε κάτι δημόσια για να αρχίσει να κυλά η μπάλα!", "empty_column.direct": "Δεν έχεις καμία προσωπική επισήμανση ακόμα. Όταν στείλεις ή λάβεις μία, θα εμφανιστεί εδώ.", "empty_column.domain_blocks": "Δεν υπάρχουν αποκλεισμένοι τομείς ακόμα.", "empty_column.explore_statuses": "Τίποτα δεν βρίσκεται στις τάσεις αυτή τη στιγμή. Έλεγξε αργότερα!", @@ -480,20 +482,20 @@ "keyboard_shortcuts.enter": "Άνοιγμα ανάρτησης", "keyboard_shortcuts.favourite": "Αγάπησε την ανάρτηση", "keyboard_shortcuts.favourites": "Άνοιγμα λίστας αγαπημένων", - "keyboard_shortcuts.federated": "Άνοιγμα ροής συναλλαγών", + "keyboard_shortcuts.federated": "Άνοιγμα ομοσπονδιακής ροής", "keyboard_shortcuts.heading": "Συντομεύσεις πληκτρολογίου", "keyboard_shortcuts.home": "Άνοιγμα ροής αρχικής σελίδας", "keyboard_shortcuts.hotkey": "Συντόμευση", "keyboard_shortcuts.legend": "Εμφάνιση αυτού του οδηγού", "keyboard_shortcuts.load_more": "Εστίαση στο κουμπί \"Φόρτωση περισσότερων\"", "keyboard_shortcuts.local": "Άνοιγμα τοπικής ροής", - "keyboard_shortcuts.mention": "Επισήμανση συγγραφέα", + "keyboard_shortcuts.mention": "Επισήμανση συντάκτη", "keyboard_shortcuts.muted": "Άνοιγμα λίστας αποσιωπημένων χρηστών", "keyboard_shortcuts.my_profile": "Άνοιγμα του προφίλ σου", "keyboard_shortcuts.notifications": "Άνοιγμα στήλης ειδοποιήσεων", "keyboard_shortcuts.open_media": "Άνοιγμα πολυμέσων", "keyboard_shortcuts.pinned": "Άνοιγμα λίστας καρφιτσωμένων αναρτήσεων", - "keyboard_shortcuts.profile": "Άνοιγμα προφίλ συγγραφέα", + "keyboard_shortcuts.profile": "Άνοιγμα προφίλ συντάκτη", "keyboard_shortcuts.quote": "Παράθεση ανάρτησης", "keyboard_shortcuts.reply": "Απάντηση στην ανάρτηση", "keyboard_shortcuts.requests": "Άνοιγμα λίστας αιτημάτων ακολούθησης", @@ -747,7 +749,7 @@ "privacy.quote.disabled": "{visibility}, παραθέσεις απενεργοποιημένες", "privacy.quote.limited": "{visibility}, παραθέσεις περιορισμένες", "privacy.unlisted.additional": "Αυτό συμπεριφέρεται ακριβώς όπως το δημόσιο, εκτός από το ότι η ανάρτηση δεν θα εμφανιστεί σε ζωντανές ροές ή ετικέτες, εξερεύνηση ή αναζήτηση στο Mastodon, ακόμη και αν το έχεις επιλέξει για τον λογαριασμό σου.", - "privacy.unlisted.long": "Κρυμμένο από τα αποτελέσματα αναζήτησης Mastodon, τις τάσεις και τις δημόσιες ροές", + "privacy.unlisted.long": "Κρυμμένη από τα αποτελέσματα αναζήτησης Mastodon, τις τάσεις και τις δημόσιες ροές", "privacy.unlisted.short": "Ήσυχα δημόσια", "privacy_policy.last_updated": "Τελευταία ενημέρωση {date}", "privacy_policy.title": "Πολιτική Απορρήτου", @@ -903,6 +905,8 @@ "status.quote_error.filtered": "Κρυφό λόγω ενός από τα φίλτρα σου", "status.quote_error.not_available": "Ανάρτηση μη διαθέσιμη", "status.quote_error.pending_approval": "Ανάρτηση σε αναμονή", + "status.quote_error.pending_approval_popout.body": "Στο Mastodon, μπορείς να ελέγξεις αν κάποιος μπορεί να σε παραθέσει. Αυτή η ανάρτηση εκκρεμεί ενώ λαμβάνουμε την έγκριση του αρχικού συντάκτη.", + "status.quote_error.revoked": "Η ανάρτηση αφαιρέθηκε από τον συντάκτη", "status.quote_followers_only": "Μόνο οι ακόλουθοι μπορούν να παραθέσουν αυτή την ανάρτηση", "status.quote_manual_review": "Ο συντάκτης θα επανεξετάσει χειροκίνητα", "status.quote_policy_change": "Αλλάξτε ποιός μπορεί να κάνει παράθεση", @@ -920,6 +924,7 @@ "status.redraft": "Σβήσε & ξαναγράψε", "status.remove_bookmark": "Αφαίρεση σελιδοδείκτη", "status.remove_favourite": "Κατάργηση από τα αγαπημένα", + "status.remove_quote": "Αφαίρεση", "status.replied_in_thread": "Απαντήθηκε σε νήμα", "status.replied_to": "Απάντησε στον {name}", "status.reply": "Απάντησε", @@ -938,7 +943,7 @@ "status.uncached_media_warning": "Μη διαθέσιμη προεπισκόπηση", "status.unmute_conversation": "Αναίρεση σίγασης συνομιλίας", "status.unpin": "Ξεκαρφίτσωσε από το προφίλ", - "subscribed_languages.lead": "Μόνο αναρτήσεις σε επιλεγμένες γλώσσες θα εμφανίζονται στην αρχική σου και θα παραθέτονται χρονοδιαγράμματα μετά την αλλαγή. Επέλεξε καμία για να λαμβάνεις αναρτήσεις σε όλες τις γλώσσες.", + "subscribed_languages.lead": "Μόνο αναρτήσεις σε επιλεγμένες γλώσσες θα εμφανίζονται στην αρχική σου και θα παραθέτονται ροές μετά την αλλαγή. Επέλεξε καμία για να λαμβάνεις αναρτήσεις σε όλες τις γλώσσες.", "subscribed_languages.save": "Αποθήκευση αλλαγών", "subscribed_languages.target": "Αλλαγή εγγεγραμμένων γλωσσών για {target}", "tabs_bar.home": "Αρχική", @@ -993,7 +998,9 @@ "visibility_modal.helper.direct_quoting": "Ιδιωτικές αναφορές που έχουν συνταχθεί στο Mastodon δεν μπορούν να γίνουν παράθεση από άλλους.", "visibility_modal.helper.privacy_editing": "Η ορατότητα δεν μπορεί να αλλάξει μετά τη δημοσίευση μιας ανάρτησης.", "visibility_modal.helper.privacy_private_self_quote": "Αυτο-παραθέσεις ιδιωτικών αναρτήσεων δεν μπορούν να γίνουν δημόσιες.", - "visibility_modal.helper.unlisted_quoting": "Όταν οι άνθρωποι σας παραθέτουν, η ανάρτηση τους θα είναι επίσης κρυμμένη από τα δημοφιλή χρονοδιαγράμματα.", + "visibility_modal.helper.private_quoting": "Αναρτήσεις για ακολούθους μόνο που έχουν συνταχθεί στο Mastodon, δεν μπορούν να γίνουν παράθεση από άλλους.", + "visibility_modal.helper.unlisted_quoting": "Όταν οι άνθρωποι σας παραθέτουν, η ανάρτησή τους θα είναι επίσης κρυμμένη από τις δημοφιλείς ροές.", + "visibility_modal.instructions": "Ελέγξτε ποιος μπορεί να αλληλεπιδράσει με αυτή την ανάρτηση. Μπορείτε επίσης να εφαρμόσετε ρυθμίσεις σε όλες τις μελλοντικές αναρτήσεις πλοηγώντας σε Προτιμήσεις > Προεπιλογές ανάρτησης.", "visibility_modal.privacy_label": "Ορατότητα", "visibility_modal.quote_followers": "Μόνο ακόλουθοι", "visibility_modal.quote_label": "Ποιος μπορεί να παραθέσει", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 69ca5179b70ffe..ab86d547002e2f 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -51,7 +51,7 @@ "account.go_to_profile": "Ir al perfil", "account.hide_reblogs": "Ocultar adhesiones de @{name}", "account.in_memoriam": "Cuenta conmemorativa.", - "account.joined_short": "En este servidor desde", + "account.joined_short": "En este servidor desde el", "account.languages": "Cambiar idiomas suscritos", "account.link_verified_on": "La propiedad de este enlace fue verificada el {date}", "account.locked_info": "Esta cuenta es privada. El propietario manualmente revisa quién puede seguirle.", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index d842295118db20..3c2a2693038040 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -905,6 +905,8 @@ "status.quote_error.filtered": "Eitt av tínum filtrum fjalir hetta", "status.quote_error.not_available": "Postur ikki tøkur", "status.quote_error.pending_approval": "Postur bíðar", + "status.quote_error.pending_approval_popout.body": "Á Mastodon kanst tú avgera, um onkur kann sitera teg. Hesin posturin bíðar eftir góðkenning frá upprunahøvundinum.", + "status.quote_error.revoked": "Posturin burturbeindur av høvundinum", "status.quote_followers_only": "Bara fylgjarar kunnu sitera hendan postin", "status.quote_manual_review": "Høvundurin fer at eftirkanna manuelt", "status.quote_policy_change": "Broyt hvør kann sitera", @@ -922,6 +924,7 @@ "status.redraft": "Strika & ger nýggja kladdu", "status.remove_bookmark": "Gloym", "status.remove_favourite": "Strika í yndismerkjum", + "status.remove_quote": "Burturbein", "status.replied_in_thread": "Svaraði í tráðnum", "status.replied_to": "Svaraði {name}", "status.reply": "Svara", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 3982b1d6663eb7..7360c48e66407e 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -556,7 +556,7 @@ "navigation_bar.account_settings": "Mot de passe et sécurité", "navigation_bar.administration": "Administration", "navigation_bar.advanced_interface": "Ouvrir dans l’interface avancée", - "navigation_bar.automated_deletion": "Suppression automatique du message", + "navigation_bar.automated_deletion": "Suppression automatique de messages", "navigation_bar.blocks": "Comptes bloqués", "navigation_bar.bookmarks": "Signets", "navigation_bar.direct": "Mention privée", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index b4e7d820d0d81b..10272f74f0f316 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -556,7 +556,7 @@ "navigation_bar.account_settings": "Mot de passe et sécurité", "navigation_bar.administration": "Administration", "navigation_bar.advanced_interface": "Ouvrir dans l’interface avancée", - "navigation_bar.automated_deletion": "Suppression automatique du message", + "navigation_bar.automated_deletion": "Suppression automatique de messages", "navigation_bar.blocks": "Comptes bloqués", "navigation_bar.bookmarks": "Marque-pages", "navigation_bar.direct": "Mention privée", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 690d3029ab8f99..46c81b23ed6dc9 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -905,6 +905,8 @@ "status.quote_error.filtered": "I bhfolach mar gheall ar cheann de do scagairí", "status.quote_error.not_available": "Níl an postáil ar fáil", "status.quote_error.pending_approval": "Post ar feitheamh", + "status.quote_error.pending_approval_popout.body": "Ar Mastodon, is féidir leat a rialú an féidir le duine tú a lua nó nach féidir. Tá an post seo ar feitheamh fad is atá ceadú an údair bhunaidh á fháil againn.", + "status.quote_error.revoked": "Post bainte ag an údar", "status.quote_followers_only": "Ní féidir ach le leantóirí an post seo a lua", "status.quote_manual_review": "Déanfaidh an t-údar athbhreithniú de láimh", "status.quote_policy_change": "Athraigh cé a fhéadann luachan a thabhairt", @@ -922,6 +924,7 @@ "status.redraft": "Scrios ⁊ athdhréachtaigh", "status.remove_bookmark": "Bain leabharmharc", "status.remove_favourite": "Bain ó cheanáin", + "status.remove_quote": "Bain", "status.replied_in_thread": "D'fhreagair sa snáithe", "status.replied_to": "D'fhreagair {name}", "status.reply": "Freagair", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index be0bcc25b0361e..db1f3d16561291 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -905,6 +905,8 @@ "status.quote_error.filtered": "A szűrőid miatt rejtett", "status.quote_error.not_available": "A bejegyzés nem érhető el", "status.quote_error.pending_approval": "A bejegyzés függőben van", + "status.quote_error.pending_approval_popout.body": "A Mastodonon te mondod meg, hogy valaki idézhet-e. Ez a bejegyzés addig függőben marad, amíg az eredeti szerző nem engedélyezi azt.", + "status.quote_error.revoked": "A szerző eltávolítta a bejegyzést", "status.quote_followers_only": "Csak a követők idézhetik ezt a bejegyzést", "status.quote_manual_review": "A szerző kézileg fogja jóváhagyni", "status.quote_policy_change": "Módosítás, hogy kik idézhetnek", @@ -922,6 +924,7 @@ "status.redraft": "Törlés és újraírás", "status.remove_bookmark": "Könyvjelző eltávolítása", "status.remove_favourite": "Eltávolítás a kedvencek közül", + "status.remove_quote": "Eltávolítás", "status.replied_in_thread": "Válaszolva a szálban", "status.replied_to": "Megválaszolva {name} számára", "status.reply": "Válasz", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 6bbe8abf53f29c..6ac4703ad26479 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -239,6 +239,10 @@ "confirmations.missing_alt_text.secondary": "Publicar totevia", "confirmations.missing_alt_text.title": "Adder texto alternative?", "confirmations.mute.confirm": "Silentiar", + "confirmations.quiet_post_quote_info.dismiss": "Non rememorar me de novo", + "confirmations.quiet_post_quote_info.got_it": "Comprendite", + "confirmations.quiet_post_quote_info.message": "Quando tu cita un message public quiete, tu message non apparera in le chronologias de tendentias.", + "confirmations.quiet_post_quote_info.title": "Citation de messages public quiete", "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?", @@ -420,7 +424,7 @@ "hashtag.follow": "Sequer hashtag", "hashtag.mute": "Silentiar #{hashtag}", "hashtag.unfeature": "Non evidentiar sur le profilo", - "hashtag.unfollow": "Non sequer plus le hashtag", + "hashtag.unfollow": "Non plus sequer le hashtag", "hashtags.and_other": "…e {count, plural, one {un altere} other {# alteres}}", "hints.profiles.followers_may_be_missing": "Le sequitores de iste profilo pote mancar.", "hints.profiles.follows_may_be_missing": "Le profilos sequite per iste profilo pote mancar.", @@ -492,6 +496,7 @@ "keyboard_shortcuts.open_media": "Aperir multimedia", "keyboard_shortcuts.pinned": "Aperir le lista de messages fixate", "keyboard_shortcuts.profile": "Aperir le profilo del autor", + "keyboard_shortcuts.quote": "Citar message", "keyboard_shortcuts.reply": "Responder al message", "keyboard_shortcuts.requests": "Aperir le lista de requestas de sequimento", "keyboard_shortcuts.search": "Focalisar barra de recerca", @@ -744,6 +749,7 @@ "privacy.quote.disabled": "{visibility}, citation disactivate", "privacy.quote.limited": "{visibility}, citation limitate", "privacy.unlisted.additional": "Isto es exactemente como public, excepte que le message non apparera in fluxos in directo, in hashtags, in Explorar, o in le recerca de Mastodon, mesmo si tu ha optate pro render tote le conto discoperibile.", + "privacy.unlisted.long": "Non apparera in le resultatos de recerca, tendentias e chronologias public de Mastodon", "privacy.unlisted.short": "Public, non listate", "privacy_policy.last_updated": "Ultime actualisation {date}", "privacy_policy.title": "Politica de confidentialitate", @@ -766,6 +772,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "hodie", + "remove_quote_hint.button_label": "Comprendite", + "remove_quote_hint.message": "Tu pote facer lo desde le menu de optiones {icon}.", + "remove_quote_hint.title": "Vole remover tu message citate?", "reply_indicator.attachments": "{count, plural, one {# annexo} other {# annexos}}", "reply_indicator.cancel": "Cancellar", "reply_indicator.poll": "Sondage", @@ -861,12 +870,14 @@ "status.block": "Blocar @{name}", "status.bookmark": "Adder al marcapaginas", "status.cancel_reblog_private": "Disfacer impulso", + "status.cannot_quote": "Le citationes es disactivate pro iste message", "status.cannot_reblog": "Iste message non pote esser impulsate", "status.context.load_new_replies": "Nove responsas disponibile", "status.context.loading": "Cercante plus responsas", "status.continued_thread": "Continuation del discussion", "status.copy": "Copiar ligamine a message", "status.delete": "Deler", + "status.delete.success": "Message delite", "status.detailed_status": "Vista detaliate del conversation", "status.direct": "Mentionar privatemente @{name}", "status.direct_indicator": "Mention private", @@ -894,23 +905,32 @@ "status.quote_error.filtered": "Celate a causa de un de tu filtros", "status.quote_error.not_available": "Message indisponibile", "status.quote_error.pending_approval": "Message pendente", + "status.quote_error.pending_approval_popout.body": "Sur Mastodon, tu pote controlar si on pote citar te. Iste message attende ora le approbation del autor original.", + "status.quote_error.revoked": "Message removite per le autor", + "status.quote_followers_only": "Solmente sequitores pote citar iste message", + "status.quote_manual_review": "Le autor lo examinara manualmente", "status.quote_policy_change": "Cambiar qui pote citar", "status.quote_post_author": "Ha citate un message de @{name}", "status.quote_private": "Le messages private non pote esser citate", "status.quotes": "{count, plural, one {citation} other {citationes}}", + "status.quotes.empty": "Necuno ha ancora citate iste message. Quando alcuno lo face, illo apparera hic.", "status.read_more": "Leger plus", "status.reblog": "Impulsar", + "status.reblog_or_quote": "Impulsar o citar", + "status.reblog_private": "Re-compartir con tu sequitores", "status.reblogged_by": "Impulsate per {name}", "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "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.remove_favourite": "Remover del favoritos", + "status.remove_quote": "Remover", "status.replied_in_thread": "Responsa in discussion", "status.replied_to": "Responsa a {name}", "status.reply": "Responder", "status.replyAll": "Responder al discussion", "status.report": "Reportar @{name}", + "status.request_quote": "Demandar a citar", "status.revoke_quote": "Remover mi message del message de @{name}", "status.sensitive_warning": "Contento sensibile", "status.share": "Compartir", @@ -976,9 +996,14 @@ "visibility_modal.button_title": "Definir visibilitate", "visibility_modal.header": "Visibilitate e interaction", "visibility_modal.helper.direct_quoting": "Le mentiones private scribite sur Mastodon non pote esser citate per alteres.", + "visibility_modal.helper.privacy_editing": "Le visibilitate de un message non pote esser cambiate post su publication.", + "visibility_modal.helper.privacy_private_self_quote": "Le auto-citationes de messages private non pote esser rendite public.", "visibility_modal.helper.private_quoting": "Le messages limitate al sequitores scribite sur Mastodon non pote esser citate per alteres.", "visibility_modal.helper.unlisted_quoting": "Quando un persona te cita, su message essera tamben celate del chronologia \"In tendentia\".", + "visibility_modal.instructions": "Controla qui pote interager con iste message. Tu pote etiam applicar le parametros a tote le messages futur desde Preferentias > Parametros de publication predefinite.", + "visibility_modal.privacy_label": "Visibilitate", "visibility_modal.quote_followers": "Solmente sequitores", + "visibility_modal.quote_label": "Qui pote citar", "visibility_modal.quote_nobody": "Solo io", "visibility_modal.quote_public": "Omnes", "visibility_modal.save": "Salvar" diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 1d0acf41fef9df..44a63f6f41f27a 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -1,13 +1,15 @@ { "about.blocks": "Server yang dimoderasi", "about.contact": "Kontak:", - "about.disclaimer": "perangkat lunak sumber terbuperangkat lunak sumber terbukaka184124.", + "about.default_locale": "Default", + "about.disclaimer": "Mastodon adalah perangkat lunak bebas dan sumber terbuka, serta merek dagang milik Mastodon gGmbH.", "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.", "about.domain_blocks.silenced.title": "Terbatas", "about.domain_blocks.suspended.explanation": "Tidak ada data yang diproses, disimpan, atau ditukarkan dari server ini, membuat interaksi atau komunikasi dengan pengguna dari server ini tidak mungkin dilakukan.", "about.domain_blocks.suspended.title": "Ditangguhkan", + "about.language_label": "Bahasa", "about.not_available": "Informasi ini belum tersedia di server ini.", "about.powered_by": "Media sosial terdesentralisasi diberdayakan oleh {mastodon}", "about.rules": "Aturan server", @@ -28,6 +30,10 @@ "account.edit_profile": "Ubah profil", "account.enable_notifications": "Beritahu saya saat @{name} memposting", "account.endorse": "Tampilkan di profil", + "account.familiar_followers_one": "Diikuti oleh {name1}", + "account.familiar_followers_two": "Diikuti oleh {name1} dan {name2}", + "account.featured": "Unggulan", + "account.featured.accounts": "Profil", "account.featured_tags.last_status_at": "Kiriman terakhir pada {date}", "account.featured_tags.last_status_never": "Tidak ada kiriman", "account.follow": "Ikuti", @@ -267,7 +273,7 @@ "explore.trending_links": "Berita", "explore.trending_statuses": "Kiriman", "explore.trending_tags": "Tagar", - "filter_modal.added.context_mismatch_explanation": "Indonesia Translate", + "filter_modal.added.context_mismatch_explanation": "Kategori filter ini tidak berlaku untuk konteks di mana Anda mengakses postingan ini. Jika Anda ingin postingan tersebut difilter juga dalam konteks ini, Anda perlu mengedit filter.", "filter_modal.added.context_mismatch_title": "Konteks tidak cocok!", "filter_modal.added.expired_explanation": "Kategori saringan ini telah kedaluwarsa, Anda harus mengubah tanggal kedaluwarsa untuk diterapkan.", "filter_modal.added.expired_title": "Saringan kedaluwarsa!", @@ -335,38 +341,38 @@ "intervals.full.days": "{number, plural, other {# hari}}", "intervals.full.hours": "{number, plural, other {# jam}}", "intervals.full.minutes": "{number, plural, other {# menit}}", - "keyboard_shortcuts.back": "untuk kembali", - "keyboard_shortcuts.blocked": "buka daftar pengguna terblokir", - "keyboard_shortcuts.boost": "untuk menyebarkan", + "keyboard_shortcuts.back": "Kembali ke belakang", + "keyboard_shortcuts.blocked": "Buka daftar pengguna yang diblokir", + "keyboard_shortcuts.boost": "Tingkatkan postingan", "keyboard_shortcuts.column": "Fokus kolom", - "keyboard_shortcuts.compose": "untuk fokus ke area penulisan", + "keyboard_shortcuts.compose": "Fokus pada kotak teks", "keyboard_shortcuts.description": "Deskripsi", "keyboard_shortcuts.direct": "to open direct messages column", - "keyboard_shortcuts.down": "untuk pindah ke bawah dalam sebuah daftar", + "keyboard_shortcuts.down": "Pindah ke bawah dalam daftar", "keyboard_shortcuts.enter": "Buka kiriman", - "keyboard_shortcuts.federated": "buka linimasa gabungan", + "keyboard_shortcuts.federated": "Buka linimasa terpadu", "keyboard_shortcuts.heading": "Pintasan keyboard", "keyboard_shortcuts.home": "Buka linimasa beranda", "keyboard_shortcuts.hotkey": "Pintasan", - "keyboard_shortcuts.legend": "tampilkan legenda ini", - "keyboard_shortcuts.local": "buka linimasa lokal", - "keyboard_shortcuts.mention": "sebut pencipta", - "keyboard_shortcuts.muted": "buka daftar pengguna terbisukan", + "keyboard_shortcuts.legend": "Tampilkan legenda ini", + "keyboard_shortcuts.local": "Buka linimasa lokal", + "keyboard_shortcuts.mention": "Sebutkan penulis", + "keyboard_shortcuts.muted": "Buka daftar pengguna yang dibisukan", "keyboard_shortcuts.my_profile": "Buka profil Anda", - "keyboard_shortcuts.notifications": "buka kolom notifikasi", - "keyboard_shortcuts.open_media": "membuka media", + "keyboard_shortcuts.notifications": "Buka kolom pemberitahuan", + "keyboard_shortcuts.open_media": "Buka media", "keyboard_shortcuts.pinned": "buka daftar toot tersemat", - "keyboard_shortcuts.profile": "buka profil pencipta", - "keyboard_shortcuts.reply": "balas", - "keyboard_shortcuts.requests": "buka daftar permintaan ikuti", - "keyboard_shortcuts.search": "untuk fokus mencari", - "keyboard_shortcuts.spoilers": "untuk menampilkan/menyembunyikan bidang CW", - "keyboard_shortcuts.start": "buka kolom \"memulai\"", - "keyboard_shortcuts.toggle_hidden": "tampilkan/sembunyikan teks di belakang CW", - "keyboard_shortcuts.toggle_sensitivity": "tampilkan/sembunyikan media", - "keyboard_shortcuts.toot": "mulai toot baru", - "keyboard_shortcuts.unfocus": "untuk tidak fokus pada area teks/pencarian", - "keyboard_shortcuts.up": "untuk memindah ke atas pada daftar", + "keyboard_shortcuts.profile": "Buka profil penulis", + "keyboard_shortcuts.reply": "Balas posting", + "keyboard_shortcuts.requests": "Buka daftar permintaan mengikuti", + "keyboard_shortcuts.search": "Fokus ke kotak pencarian", + "keyboard_shortcuts.spoilers": "Tampilkan/sembunyikan bidang CW", + "keyboard_shortcuts.start": "Buka kolom “Mulai”", + "keyboard_shortcuts.toggle_hidden": "Tampilkan/sembunyikan teks di belakang CW", + "keyboard_shortcuts.toggle_sensitivity": "Tampilkan/sembunyikan media", + "keyboard_shortcuts.toot": "Buat posting baru", + "keyboard_shortcuts.unfocus": "Hapus fokus pada kotak teks/kotak pencarian", + "keyboard_shortcuts.up": "Naik ke posisi atas dalam daftar", "lightbox.close": "Tutup", "lightbox.next": "Selanjutnya", "lightbox.previous": "Sebelumnya", @@ -495,7 +501,7 @@ "report.statuses.subtitle": "Pilih semua yang berlaku", "report.statuses.title": "Adakah kiriman yang mendukung pelaporan ini?", "report.submit": "Kirim", - "report.target": "Melaporkan", + "report.target": "Melaporkan {target}", "report.thanks.take_action": "Berikut adalah pilihan Anda untuk mengatur apa yang Anda lihat di Mastodon:", "report.thanks.take_action_actionable": "Ketika kami meninjau ini, Anda dapat mengambil tindakan terhadap @{name}:", "report.thanks.title": "Tidak ingin melihat ini?", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index c0fcc5137ddc91..fe11d8fe8ead49 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -905,6 +905,8 @@ "status.quote_error.filtered": "Nascosto a causa di uno dei tuoi filtri", "status.quote_error.not_available": "Post non disponibile", "status.quote_error.pending_approval": "Post in attesa", + "status.quote_error.pending_approval_popout.body": "Su Mastodon, puoi controllare se qualcuno può citarti. Questo post è in attesa dell'approvazione dell'autore originale.", + "status.quote_error.revoked": "Post rimosso dall'autore", "status.quote_followers_only": "Solo i seguaci possono citare questo post", "status.quote_manual_review": "L'autore esaminerà manualmente", "status.quote_policy_change": "Cambia chi può citare", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index d257ff1810b7fd..02a8ae72e391ec 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -239,6 +239,10 @@ "confirmations.missing_alt_text.secondary": "就按呢PO出去", "confirmations.missing_alt_text.title": "Kám beh加添說明文字?", "confirmations.mute.confirm": "消音", + "confirmations.quiet_post_quote_info.dismiss": "請mài koh提醒我", + "confirmations.quiet_post_quote_info.got_it": "知ah", + "confirmations.quiet_post_quote_info.message": "Nā是引用無tī公共時間線內底êPO文,lí êPO文bē當tī趨勢ê時間線顯示。", + "confirmations.quiet_post_quote_info.title": "引用無tī公開ê時間線內底顯示ê PO文", "confirmations.redraft.confirm": "Thâi掉了後重寫", "confirmations.redraft.message": "Lí kám確定behthâi掉tsit篇PO文了後koh重寫?收藏kap轉PO ē無去,而且原底ê PO文ê回應ē變孤立。", "confirmations.redraft.title": "Kám beh thâi掉koh重寫PO文?", @@ -900,6 +904,8 @@ "status.quote_error.filtered": "Lí所設定ê過濾器kā tse khàm起來", "status.quote_error.not_available": "PO文bē當看", "status.quote_error.pending_approval": "PO文當咧送", + "status.quote_error.pending_approval_popout.body": "佇Mastodon,lí ē當控制PO文kám beh hōo lâng引用。Tsit篇PO文teh等原文作者允准。", + "status.quote_error.revoked": "PO文已經hōo作者thâi掉", "status.quote_followers_only": "Kan-ta tuè我ê ē當引用PO文", "status.quote_manual_review": "作者ē hōo lâng人工審核", "status.quote_policy_change": "改通引用ê lâng", @@ -917,6 +923,7 @@ "status.redraft": "Thâi掉了後重寫", "status.remove_bookmark": "Thâi掉冊籤", "status.remove_favourite": "Tuì收藏內suá掉", + "status.remove_quote": "Thâi掉", "status.replied_in_thread": "佇討論線內應", "status.replied_to": "回應 {name}", "status.reply": "回應", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 2ab3444ddc9ff2..846ed93a0d454b 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -239,6 +239,10 @@ "confirmations.missing_alt_text.secondary": "Publicar mesmo assim", "confirmations.missing_alt_text.title": "Adicionar texto alternativo?", "confirmations.mute.confirm": "Ocultar", + "confirmations.quiet_post_quote_info.dismiss": "Não me relembre novamente", + "confirmations.quiet_post_quote_info.got_it": "Entendido", + "confirmations.quiet_post_quote_info.message": "Ao citar uma publicação não listada, a sua publicação não será exibida nos destaques.", + "confirmations.quiet_post_quote_info.title": "Citação de publicação não listada", "confirmations.redraft.confirm": "Eliminar e reescrever", "confirmations.redraft.message": "Tens a certeza de que queres eliminar e tornar a escrever esta publicação? Os favoritos e as publicações impulsionadas perder-se-ão e as respostas à publicação original ficarão órfãs.", "confirmations.redraft.title": "Eliminar e reescrever publicação?", @@ -492,6 +496,7 @@ "keyboard_shortcuts.open_media": "abrir multimédia", "keyboard_shortcuts.pinned": "abrir lista de publicações fixadas", "keyboard_shortcuts.profile": "abrir o perfil do autor", + "keyboard_shortcuts.quote": "Citar publicação", "keyboard_shortcuts.reply": "responder à publicação", "keyboard_shortcuts.requests": "abrir a lista dos pedidos de seguidor", "keyboard_shortcuts.search": "focar barra de pesquisa", @@ -744,6 +749,7 @@ "privacy.quote.disabled": "{visibility}, citações desativadas", "privacy.quote.limited": "{visibility}, citações limitadas", "privacy.unlisted.additional": "Este comportamento é exatamente igual ao do público, exceto que a publicação não aparecerá em cronologias, nas etiquetas, ao explorar ou na pesquisa do Mastodon, mesmo que tenhas optado por participar em toda a tua conta.", + "privacy.unlisted.long": "Oculto dos resultados de pesquisa, destaques e cronologias públicas do Mastodon", "privacy.unlisted.short": "Público silencioso", "privacy_policy.last_updated": "Última atualização em {date}", "privacy_policy.title": "Política de privacidade", @@ -766,6 +772,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "hoje", + "remove_quote_hint.button_label": "Entendido", + "remove_quote_hint.message": "Pode fazê-lo a partir do {icon} menu de opções.", + "remove_quote_hint.title": "Quer remover a sua publicação citada?", "reply_indicator.attachments": "{count, plural, one {# anexo} other {# anexos}}", "reply_indicator.cancel": "Cancelar", "reply_indicator.poll": "Sondagem", @@ -861,12 +870,14 @@ "status.block": "Bloquear @{name}", "status.bookmark": "Guardar nos marcadores", "status.cancel_reblog_private": "Retirar impulso", + "status.cannot_quote": "Citações estão desativadas nesta publicação", "status.cannot_reblog": "Esta publicação não pode ser impulsionada", "status.context.load_new_replies": "Novas respostas disponíveis", "status.context.loading": "A verificar por mais respostas", "status.continued_thread": "Continuação da conversa", "status.copy": "Copiar hiperligação da publicação", "status.delete": "Eliminar", + "status.delete.success": "Publicação eliminada", "status.detailed_status": "Vista pormenorizada da conversa", "status.direct": "Mencionar @{name} em privado", "status.direct_indicator": "Menção privada", @@ -894,6 +905,8 @@ "status.quote_error.filtered": "Oculto devido a um dos seus filtros", "status.quote_error.not_available": "Publicação indisponível", "status.quote_error.pending_approval": "Publicação pendente", + "status.quote_error.pending_approval_popout.body": "No Mastodon, pode controlar se alguém pode citar as suas publicações. Esta publicação está pendente enquanto aguardamos a aprovação do autor original.", + "status.quote_error.revoked": "Publicação removida pelo autor", "status.quote_followers_only": "Apenas seguidores podem citar esta publicação", "status.quote_manual_review": "O autor vai proceder a uma revisão manual", "status.quote_policy_change": "Alterar quem pode citar", @@ -903,12 +916,15 @@ "status.quotes.empty": "Ainda ninguém citou esta publicação. Quando alguém o fizer, aparecerá aqui.", "status.read_more": "Ler mais", "status.reblog": "Impulsionar", + "status.reblog_or_quote": "Partilhe ou cite", + "status.reblog_private": "Partilhe novamente com os seus seguidores", "status.reblogged_by": "{name} impulsionou", "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Ainda ninguém impulsionou esta publicação. Quando alguém o fizer, aparecerá aqui.", "status.redraft": "Eliminar e reescrever", "status.remove_bookmark": "Retirar dos marcadores", "status.remove_favourite": "Remover dos favoritos", + "status.remove_quote": "Remover", "status.replied_in_thread": "Responder na conversa", "status.replied_to": "Respondeu a {name}", "status.reply": "Responder", @@ -980,9 +996,14 @@ "visibility_modal.button_title": "Definir visibilidade", "visibility_modal.header": "Visibilidade e interação", "visibility_modal.helper.direct_quoting": "As menções privadas criadas no Mastodon não podem ser citadas por outras pessoas.", + "visibility_modal.helper.privacy_editing": "A visibilidade não pode ser alterada após a publicação ser publicada.", + "visibility_modal.helper.privacy_private_self_quote": "As autocitações de publicações privadas não podem ser tornadas públicas.", "visibility_modal.helper.private_quoting": "As publicações apenas para seguidores criadas no Mastodon não podem ser citadas por outras pessoas.", "visibility_modal.helper.unlisted_quoting": "Quando as pessoas o citarem, as publicações delas serão também ocultadas das tendências.", + "visibility_modal.instructions": "Controle quem pode interagir com esta publicação. Também pode definir esta configuração para todas as publicações futuras, em Preferências > Padrões de publicação.", + "visibility_modal.privacy_label": "Visibilidade", "visibility_modal.quote_followers": "Apenas seguidores", + "visibility_modal.quote_label": "Quem pode citar", "visibility_modal.quote_nobody": "Apenas eu", "visibility_modal.quote_public": "Todos", "visibility_modal.save": "Guardar" diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 6520f415c77522..5f5bbe77e714ad 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -239,6 +239,7 @@ "confirmations.missing_alt_text.secondary": "Posta ändå", "confirmations.missing_alt_text.title": "Lägg till alt-text?", "confirmations.mute.confirm": "Tysta", + "confirmations.quiet_post_quote_info.dismiss": "Påminn mig inte igen", "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?", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index cabee093148ca7..b02a9b72f0beed 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -218,6 +218,13 @@ "confirmations.delete_list.confirm": "o weka", "confirmations.delete_list.message": "sina wile ala wile weka e lipu ni?", "confirmations.delete_list.title": "o weka ala weka e kulupu lipu?", + "confirmations.discard_draft.confirm": "o weka e toki ni", + "confirmations.discard_draft.edit.cancel": "o awen o ante", + "confirmations.discard_draft.edit.message": "sina awen e ni la ona li weka e ante sina pi tenpo ni lon toki ni.", + "confirmations.discard_draft.edit.title": "sina wile ala wile weka e ante toki?", + "confirmations.discard_draft.post.cancel": "awen la o sitelen", + "confirmations.discard_draft.post.message": "sina awen e ni la ona li weka e toki ni.", + "confirmations.discard_draft.post.title": "sina wile ala wile weka e toki 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.follow_to_list.confirm": "o kute, o pana tawa lipu jan", @@ -231,12 +238,15 @@ "confirmations.missing_alt_text.secondary": "o pana a", "confirmations.missing_alt_text.title": "o pana ala pana e toki pi sona lukin?", "confirmations.mute.confirm": "o len", + "confirmations.quiet_post_quote_info.got_it": "sona", "confirmations.redraft.confirm": "o weka o pali sin e toki", "confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.", "confirmations.redraft.title": "ni li weka li pali sin e toki ni.", "confirmations.remove_from_followers.confirm": "o kama kute ala e jan", "confirmations.remove_from_followers.message": "{name} li kama kute ala e sina. sina wile ala wile e ni?", "confirmations.remove_from_followers.title": "o kama ala kama kute ala e jan?", + "confirmations.revoke_quote.confirm": "o weka e toki tan lipu Mastodon", + "confirmations.revoke_quote.title": "sina wile weka ala weka e toki?", "confirmations.unfollow.confirm": "o kute ala", "confirmations.unfollow.message": "sina o wile ala wile pini kute e jan {name}?", "confirmations.unfollow.title": "sina wile ala wile pini kute?", @@ -416,6 +426,7 @@ "keyboard_shortcuts.toot": "o toki sin", "keyboard_shortcuts.translate": "o ante e toki lipu", "keyboard_shortcuts.up": "o tawa sewi lon lipu", + "learn_more_link.got_it": "sona", "lightbox.close": "o pini", "lightbox.next": "sinpin", "lightbox.previous": "monsi", @@ -508,6 +519,7 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "tenpo suno ni", + "remove_quote_hint.button_label": "sona", "reply_indicator.attachments": "{count, plural, other {sitelen #}}", "reply_indicator.cancel": "o pana ala", "report.block": "o len e jan", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index 85898d048a7863..527457ca378a60 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -1,9 +1,14 @@ { "about.blocks": "باشقۇرۇلىدىغان مۇلازىمېتىر", "about.contact": "ئالاقە:", + "about.default_locale": "كۆڭۈلدىكى", "about.disclaimer": "Mastodon ھەقسىز، ئوچۇق كودلۇق يۇمشاق دېتال تاۋار ماركىسى Mastodon gGmbH غا تەۋە.", "about.domain_blocks.no_reason_available": "سەۋەبىنى ئىشلەتكىلى بولمايدۇ", + "about.language_label": "تىل", "account.badges.bot": "ماشىنا ئادەم", + "account.badges.group": "گۇرۇپپا", + "account.block": "@{name} نى توس", + "account.block_domain": "{domain} دائىرىنى توس", "account.cancel_follow_request": "ئەگىشىش ئىلتىماسىدىن ۋاز كەچ", "account.posts": "يازما", "account.posts_with_replies": "يازما ۋە ئىنكاس", diff --git a/config/locales/ar.yml b/config/locales/ar.yml index cd07926322e35a..f48e9fc9ef9f15 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -215,6 +215,7 @@ ar: destroy_status: حذف المنشور destroy_unavailable_domain: حذف نطاق غير متوفر destroy_user_role: حذف الدور + destroy_username_block: حذف قاعدة اسم المستخدم disable_2fa_user: تعطيل 2FA disable_custom_emoji: تعطيل الإيموجي المخصص disable_relay: تعطيل خادم الترحيل @@ -249,6 +250,7 @@ ar: update_report: تحديث التقرير update_status: تحديث المنشور update_user_role: تحديث الدور + update_username_block: تحديث قاعدة اسم المستخدم actions: approve_appeal_html: وافق %{name} على استئناف الطعن بشأن قرار الإشراف من %{target} approve_user_html: وافق %{name} على تسجيل %{target} @@ -1157,6 +1159,24 @@ ar: zero: مستخدَم من قِبل %{count} شخص خلال الأسبوع الماضي title: التوصيات والرائجة trending: المتداولة + username_blocks: + add_new: إضافة جديد + block_registrations: حظر التسجيلات + comparison: + contains: يحتوي على + equals: يساوي + contains_html: تحوي %{string} + created_msg: تم إنشاء قاعدة اسم المستخدم بنجاح + delete: حذف + edit: + title: تعديل قاعدة اسم المستخدم + matches_exactly_html: تحوي %{string} + new: + create: إنشاء قاعدة + title: إنشاء قاعدة اسم مستخدم جديدة + not_permitted: غير مسموح به + title: قواعد اسم المستخدم + updated_msg: تم تحديث قاعدة اسم المستخدم بنجاح warning_presets: add_new: إضافة واحد جديد delete: حذف @@ -1425,6 +1445,10 @@ ar: basic_information: معلومات أساسية hint_html: "قم بتخصيص ما سيراه الناس في ملفك الشخصي العام وبجوار منشوراتك. من المرجح أن يتابعك أشخاص آخرون ويتفاعلون معك إن كان لديك صفحة شخصية مملوء وصورة." other: أخرى + emoji_styles: + auto: تلقائي + native: محلي + twemoji: Twemoji errors: '400': الطلب الذي قدمته غير صالح أو أنّ شكله غير سليم. '403': ليس لك الصلاحيات الكافية لعرض هذه الصفحة. @@ -1814,6 +1838,10 @@ ar: title: إشارة جديدة poll: subject: انتهى استطلاع %{name} للرأي + quote: + body: 'قام %{name} باقتباس منشورك:' + subject: اقتبس %{name} منشورا لك + title: اقتباس جديد reblog: body: 'قام %{name} بترقية منشورك:' subject: قام %{name} بإعادة نشر منشورك @@ -1862,6 +1890,7 @@ ar: self_vote: لا يمكنك التصويت في استطلاعاتك الخاصة too_few_options: يجب أن يحتوي على أكثر من عنصر واحد too_many_options: لا يمكنه أن يحتوي أكثر مِن %{max} عناصر + vote: صَوّت preferences: other: إعدادات أخرى posting_defaults: التفضيلات الافتراضية للنشر @@ -2040,15 +2069,24 @@ ar: edited_at_html: عُدّل في %{date} errors: in_reply_not_found: إنّ المنشور الذي تحاول الرد عليه غير موجود على ما يبدو. + quoted_status_not_found: لا يبدو أن المنشور الذي تحاول اقتباسه موجود. over_character_limit: تم تجاوز حد الـ %{max} حرف المسموح بها pin_errors: direct: لا يمكن تثبيت المنشورات التي يراها فقط المتسخدمون المشار إليهم limit: لقد بلغت الحد الأقصى للمنشورات المثبتة ownership: لا يمكن تثبيت منشور نشره شخص آخر reblog: لا يمكن تثبيت إعادة نشر + quote_policies: + followers: للمتابِعين فقط + nobody: لي فقط + public: أيا كان title: '%{name}: "%{quote}"' visibilities: + direct: إشارة خاصة + private: للمتابِعين فقط public: للعامة + public_long: أي شخص على أو خارج ماستدون + unlisted: للعامة دون صخب statuses_cleanup: enabled: حذف المنشورات القديمة تلقائياً enabled_hint: حذف منشوراتك تلقائياً بمجرد أن تصل إلى عتبة عمرية محددة، إلا إذا كانت مطابقة لأحد الاستثناءات أدناه diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 8f680b3cbbc608..fd3b579781703e 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -2004,6 +2004,7 @@ cs: title: "%{name}: „%{quote}“" visibilities: direct: Soukromá zmínka + private: Pouze sledující public: Veřejné public_long: Kdokoliv na Mastodonu i mimo něj unlisted: Ztišené veřejné diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 3b4f8219578e18..7fe0e7dd85f77a 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1453,6 +1453,7 @@ cy: emoji_styles: auto: Awto native: Cynhenid + twemoji: Twemoji errors: '400': Roedd y cais a gyflwynwyd gennych yn annilys neu wedi'i gamffurfio. '403': Nid oes gennych ganiatâd i weld y dudalen hon. @@ -2089,6 +2090,7 @@ cy: title: '%{name}: "%{quote}"' visibilities: direct: Crybwylliad preifat + private: Dim ond dilynwyr public: Cyhoeddus public_long: Unrhyw un ar ac oddi ar Mastodon unlisted: Tawel cyhoeddus diff --git a/config/locales/el.yml b/config/locales/el.yml index cbad05cce5f29d..68fd74aa5a0553 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1052,7 +1052,7 @@ el: rejected: Απορρίφθηκε statuses: allow: Να επιτρέπεται η ανάρτηση - allow_account: Να επιτρέπεται ο συγγραφέας + allow_account: Να επιτρέπεται ο συντάκτης confirm_allow: Σίγουρα θες να επιτρέψεις τις επιλεγμένες καταστάσεις; confirm_allow_account: Σίγουρα θες να επιτρέψεις τους επιλεγμένους λογαριασμούς; confirm_disallow: Σίγουρα θες να απορρίψεις τις επιλεγμένες καταστάσεις; @@ -1183,7 +1183,7 @@ el: remove: Αποσύνδεση ψευδώνυμου appearance: advanced_web_interface: Προηγμένη διεπαφή ιστού - advanced_web_interface_hint: 'Αν θέλεις να χρησιμοποιήσεις ολόκληρο το πλάτος της οθόνης σου, η προηγμένη λειτουργία χρήσης σου επιτρέπει να ορίσεις πολλαπλές στήλες ώστε να βλέπεις ταυτόχρονα όση πληροφορία θέλεις: Την αρχική ροή, τις ειδοποιήσεις, την ροή συναλλαγών και όσες λίστες και ετικέτες θέλεις.' + advanced_web_interface_hint: 'Αν θέλεις να χρησιμοποιήσεις ολόκληρο το πλάτος της οθόνης σου, η προηγμένη λειτουργία χρήσης σου επιτρέπει να ορίσεις πολλαπλές στήλες ώστε να βλέπεις ταυτόχρονα όση πληροφορία θέλεις: Την αρχική ροή, τις ειδοποιήσεις, τις ομοσπονδιακές ροές και όσες λίστες και ετικέτες θέλεις.' animations_and_accessibility: Εφέ κινήσεων και προσβασιμότητα confirmation_dialogs: Ερωτήσεις επιβεβαίωσης discovery: Ανακάλυψη @@ -1296,7 +1296,7 @@ el: more_from_html: Περισσότερα από %{name} s_blog: Ιστολόγιο του/της %{name} then_instructions: Στη συνέχεια, πρόσθεσε το όνομα τομέα της δημοσίευσης στο παρακάτω πεδίο. - title: Αναφορά συγγραφέα + title: Αναφορά συντάκτη challenge: confirm: Συνέχεια hint_html: "Συμβουλή: Δεν θα σου ζητήσουμε τον κωδικό ασφαλείας σου ξανά για την επόμενη ώρα." @@ -1740,6 +1740,8 @@ el: too_few_options: πρέπει να έχει περισσότερες από μια επιλογές too_many_options: δεν μπορεί να έχει περισσότερες από %{max} επιλογές vote: Ψήφισε + posting_defaults: + explanation: Αυτές οι ρυθμίσεις θα χρησιμοποιηθούν ως προεπιλογές όταν δημιουργείτε νέες αναρτήσεις, αλλά μπορείτε να τις επεξεργαστείτε ανά ανάρτηση εντός του συνθέτη. preferences: other: Άλλες posting_defaults: Προεπιλογές ανάρτησης @@ -1916,8 +1918,11 @@ el: title: '%{name}: "%{quote}"' visibilities: direct: Ιδιωτική επισήμανση + private: Μόνο ακόλουθοι public: Δημόσιο public_long: Όλοι εντός και εκτός του Mastodon + unlisted: Ήσυχα δημόσια + unlisted_long: Κρυμμένη από τα αποτελέσματα αναζήτησης Mastodon, τις τάσεις και τις δημόσιες ροές statuses_cleanup: enabled: Αυτόματη διαγραφή παλιών αναρτήσεων enabled_hint: Διαγράφει αυτόματα τις αναρτήσεις σου μόλις φτάσουν σε ένα καθορισμένο όριο ηλικίας, εκτός αν ταιριάζουν με μία από τις παρακάτω εξαιρέσεις diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 72b059cc9e1338..f6ba039efc7777 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -1918,6 +1918,7 @@ fo: title: '%{name}: "%{quote}"' visibilities: direct: Privat umrøða + private: Einans fylgjarar public: Alment public_long: Øll í og uttanfyri Mastodon unlisted: Stillur almenningur diff --git a/config/locales/ga.yml b/config/locales/ga.yml index f742840acf2d88..adfdacb034be5e 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -2047,6 +2047,7 @@ ga: title: '%{name}: "%{quote}"' visibilities: direct: Lua príobháideach + private: Leantóirí amháin public: Poiblí public_long: Aon duine ar Mastodon agus lasmuigh de unlisted: Pobal ciúin diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 72aa0cedba8992..019e3f8438dec6 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -1739,6 +1739,9 @@ ia: self_vote: Tu non pote votar in tu proprie sondages too_few_options: debe haber plus de un elemento too_many_options: non pote continer plus de %{max} elementos + vote: Votar + posting_defaults: + explanation: Iste parametros essera usate como predefinite quando tu crea nove messages, ma tu pote modificar los pro cata message in le compositor. preferences: other: Alteres posting_defaults: Parametros de publication predefinite @@ -1915,8 +1918,10 @@ ia: title: "%{name}: “%{quote}”" visibilities: direct: Mention private + private: Solmente sequitores public: Public public_long: Quicunque, sur Mastodon o non + unlisted: Public ma quiete unlisted_long: Celate in resultatos de recerca, tendentias e chronologias public de Mastodon statuses_cleanup: enabled: Deler automaticamente le messages ancian diff --git a/config/locales/nan.yml b/config/locales/nan.yml index ea8047f2ee4bda..830a36760ce52c 100644 --- a/config/locales/nan.yml +++ b/config/locales/nan.yml @@ -885,6 +885,67 @@ nan: metadata: Meta資料 no_history: Tsit篇PO文iáu無hōo lâng編輯 no_status_selected: 因為無揀任何PO文,所以lóng無改變 + open: 公開PO文 + original_status: 原底ê PO文 + reblogs: 轉送 + replied_to_html: 回應 %{acct_link} + status_changed: PO文有改ah + status_title: 由 @%{name} 所PO + title: Tsit ê口座ê PO文 - @%{name} + trending: 趨勢 + view_publicly: 公開看 + visibility: 通看ê程度 + with_media: 有媒體 + strikes: + actions: + delete_statuses: "%{name} kā %{target} ê PO文thâi掉ah" + disable: "%{name} kā %{target} ê口座冷凍ah" + mark_statuses_as_sensitive: "%{name} kā %{target} êPO文標做敏感ê內容" + none: "%{name} 送警告hōo %{target} ah" + sensitive: "%{name} kā %{target} ê口座標做敏感" + silence: "%{name} 限制 %{target} ê口座" + suspend: "%{name} kā %{target} ê口座停止權限ah" + appeal_approved: 投訴ah + appeal_pending: 投訴teh等審核 + appeal_rejected: 投訴hōo lâng拒絕 + system_checks: + database_schema_check: + message_html: 有leh等待處理ê資料庫遷suá。請執行tsiah-ê,來保證應用程式照期望pháng + elasticsearch_analysis_index_mismatch: + message_html: Elasticsearch ê索引分析器過期ah。請執行 tootctl search deploy --only-mapping --only=%{value} + elasticsearch_health_red: + message_html: Elasticsearch ê cluster無健康(紅色ê狀態),bē當用tshiau-tshuē功能 + elasticsearch_health_yellow: + message_html: Elasticsearch ê cluster無健康(黃色ê狀態),lí可能想beh調查原因。 + elasticsearch_index_mismatch: + message_html: Elasticsearch索引對應過期ah。請執行 tootctl search deploy --only=%{value} + elasticsearch_preset: + action: 看文件 + message_html: Lí ê Elasticsearch ê cluster有超過tsi̍t ê節點,m̄-kú Mastodon iáu無設定用in。 + elasticsearch_preset_single_node: + action: 看文件 + message_html: Lí ê Elasticsearch 叢集kan-ta有tsi̍t ê節點,ES_PRESET 應該設定做 single_node_cluster。 + elasticsearch_reset_chewy: + message_html: Lí ê Elasticsearch系統索引因為設定改變,過期ah。請執行 tootctl search deploy --reset-chewy 來更新。 + elasticsearch_running_check: + message_html: Bē當連接 Elasticsearch。請確認kám有teh pháng,á是停用全文tshiau-tshuē + elasticsearch_version_check: + message_html: Bē當相容ê Elasticsearch版本:%{value} + version_comparison: Elasticsearch %{running_version} 版teh pháng,m̄-kú 愛 %{required_version} 版。 + rules_check: + action: 管理服侍器ê規則 + message_html: Lí iáu bē定義任何服侍器ê規則。 + sidekiq_process_check: + message_html: 排列 %{value} 無leh pháng Sidekiq ê程序。請檢視lí ê Sidekiq 設定 + software_version_check: + action: 看ē當the̍h ê更新 + message_html: 有Mastodon ê更新ē當載落去。 + software_version_critical_check: + action: 看ē當the̍h ê更新 + message_html: 有重大ê Mastodon更新ē當載落去,請趕緊更新。 + software_version_patch_check: + action: 看ē當the̍h ê更新 + message_html: 有修正錯誤ê Mastodon ê更新,ē當載落去。 trends: tags: dashboard: diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 4eb35ce031aae9..3ee797564854aa 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1739,6 +1739,9 @@ pt-PT: self_vote: Não podes votar numa sondagem criada por ti too_few_options: tem de ter mais do que um item too_many_options: não pode conter mais do que %{max} itens + vote: Votar + posting_defaults: + explanation: Essas configurações serão utilizadas como padrão quando criar novas publicações, mas poderá alterá-las individualmente no editor. preferences: other: Outro posting_defaults: Padrões de publicação @@ -1915,8 +1918,10 @@ pt-PT: title: '%{name}: "%{quote}"' visibilities: direct: Menção privada + private: Apenas seguidores public: Público public_long: Qualquer pessoa dentro e fora do Mastodon + unlisted: Não listado unlisted_long: Oculto dos resultados de pesquisa, tendências e linhas do tempo públicas do Mastodon statuses_cleanup: enabled: Eliminar publicações antigas automaticamente diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 17fc95b6786d73..4e2c1cf67ee938 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -227,6 +227,7 @@ ar: setting_auto_play_gif: تشغيل تلقائي لِوَسائط جيف المتحركة setting_boost_modal: إظهار مربع حوار التأكيد قبل إعادة نشر أي منشور setting_default_language: لغة النشر + setting_default_privacy: مدى ظهور المنشور setting_default_quote_policy: من يستطيع الاقتباس setting_default_sensitive: اعتبر الوسائط دائما كمحتوى حساس setting_delete_modal: إظهار مربع حوار التأكيد قبل حذف أي منشور @@ -236,6 +237,7 @@ ar: setting_display_media_default: افتراضي setting_display_media_hide_all: إخفاء الكل setting_display_media_show_all: عرض الكل + setting_emoji_style: نمط الوجوه التعبيرية setting_expand_spoilers: توسيع المنشورات التي تحتوي على تحذيرات عن المحتوى دائما setting_hide_network: إخفِ شبكتك setting_missing_alt_text_modal: إظهار حوار التأكيد قبل نشر وسائط دون نص بديل @@ -318,6 +320,7 @@ ar: follow_request: ابعث بريدا إلكترونيا عندما يقوم أحدهم بإرسال طلب بالمتابعة mention: ابعث بريداً إلكترونيًا عندما يُشير إليك أو يذكُرك أحدهم pending_account: ابعث رسالة إلكترونية إن كان هناك حساب جديد بحاجة إلى مراجعة + quote: شخص ما اقتبس منك reblog: عندما يقوم أحدهم بإعادة نشر منشورك report: هناك إبلاغ جديد تم إرساله software_updates: @@ -364,6 +367,9 @@ ar: name: التسمية permissions_as_keys: الصلاحيات position: الأولوية + username_block: + allow_with_approval: السماح بالتسجيلات بعد الموافقة + comparison: طريقة المقارنة webhook: events: الأحداث المفعلة template: قالب الحمولة diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index 42937048de1434..f2ef4f672cc7e7 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -56,6 +56,8 @@ cs: scopes: Která API bude aplikace moct používat. Pokud vyberete rozsah nejvyššího stupně, nebudete je muset vybírat jednotlivě. setting_aggregate_reblogs: Nezobrazovat nové boosty pro příspěvky, které byly nedávno boostnuty (ovlivňuje pouze nově přijaté boosty) setting_always_send_emails: Jinak nebudou e-mailové notifikace posílány, když Mastodon aktivně používáte + setting_default_quote_policy_private: Příspěvky pouze pro sledující, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními. + setting_default_quote_policy_unlisted: Když vás lidé citují, jejich příspěvek bude v časové ose populárních příspěvků také skryt. setting_default_sensitive: Citlivá média jsou ve výchozím stavu skryta a mohou být zobrazena kliknutím setting_display_media_default: Skrývat média označená jako citlivá setting_display_media_hide_all: Vždy skrývat média diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index 3c5e8b523df102..0faa978c4d04c0 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -56,6 +56,8 @@ cy: scopes: Pa APIs y bydd y rhaglen yn cael mynediad iddynt. Os dewiswch gwmpas lefel uchaf, nid oes angen i chi ddewis rhai unigol. setting_aggregate_reblogs: Peidiwch â dangos hybiau newydd ar bostiadau sydd wedi cael eu hybu'n ddiweddar (dim ond yn effeithio ar hybiau newydd ei dderbyn) setting_always_send_emails: Fel arfer ni fydd hysbysiadau e-bost yn cael eu hanfon pan fyddwch chi wrthi'n defnyddio Mastodon + setting_default_quote_policy_private: Does dim modd dyfynnu postiadau sydd wedi'u hysgrifennu ar Mastodon ar gyfer dim ond dilynwyr. + setting_default_quote_policy_unlisted: Pan fydd pobl yn eich dyfynnu, bydd eu postiad hefyd yn cael ei guddio rhag llinellau amser sy'n trendio. setting_default_sensitive: Mae cyfryngau sensitif wedi'u cuddio yn rhagosodedig a gellir eu datgelu trwy glicio setting_display_media_default: Cuddio cyfryngau wedi eu marcio'n sensitif setting_display_media_hide_all: Cuddio cyfryngau bob tro diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 9a4cb7218a7d8c..f43399b5e6993d 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -56,6 +56,8 @@ el: scopes: Ποια API θα επιτρέπεται στην εφαρμογή να χρησιμοποιήσεις. Αν επιλέξεις κάποιο υψηλό εύρος εφαρμογής, δε χρειάζεται να επιλέξεις και το καθένα ξεχωριστά. setting_aggregate_reblogs: Απόκρυψη των νέων αναρτήσεων για τις αναρτήσεις που έχουν ενισχυθεί πρόσφατα (επηρεάζει μόνο τις νέες ενισχύσεις) setting_always_send_emails: Κανονικά οι ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου δεν θα αποστέλλονται όταν χρησιμοποιείτε ενεργά το Mastodon + setting_default_quote_policy_private: Αναρτήσεις για ακολούθους μόνο που έχουν συνταχθεί στο Mastodon, δεν μπορούν να γίνουν παράθεση από άλλους. + setting_default_quote_policy_unlisted: Όταν οι άνθρωποι σας παραθέτουν, η ανάρτησή τους θα είναι επίσης κρυμμένη από τις δημοφιλείς ροές. setting_default_sensitive: Τα ευαίσθητα πολυμέσα είναι κρυμμένα και εμφανίζονται με ένα κλικ setting_display_media_default: Απόκρυψη ευαίσθητων πολυμέσων setting_display_media_hide_all: Μόνιμη απόκρυψη όλων των πολυμέσων @@ -235,6 +237,7 @@ el: setting_auto_play_gif: Αυτόματη αναπαραγωγή των GIF setting_boost_modal: Επιβεβαίωση πριν την προώθηση setting_default_language: Γλώσσα κατά την ανάρτηση + setting_default_privacy: Ορατότητα αναρτήσεων setting_default_quote_policy: Ποιος μπορεί να παραθέσει setting_default_sensitive: Σημείωση όλων των πολυμέσων ως ευαίσθητου περιεχομένου setting_delete_modal: Επιβεβαίωση πριν τη διαγραφή ενός τουτ @@ -299,7 +302,7 @@ el: status_page_url: URL σελίδας κατάστασης theme: Προεπιλεγμένο θέμα thumbnail: Μικρογραφία διακομιστή - timeline_preview: Να επιτρέπεται μη πιστοποιημένη πρόσβαση σε δημόσια χρονολόγια + timeline_preview: Να επιτρέπεται μη πιστοποιημένη πρόσβαση σε δημόσιες ροές trendable_by_default: Επίτρεψε τις τάσεις χωρίς προηγούμενη αξιολόγηση trends: Ενεργοποίηση τάσεων trends_as_landing_page: Χρήση των τάσεων ως σελίδα προορισμού diff --git a/config/locales/simple_form.fo.yml b/config/locales/simple_form.fo.yml index 74f28cf44cb443..95368bcf7ab071 100644 --- a/config/locales/simple_form.fo.yml +++ b/config/locales/simple_form.fo.yml @@ -56,6 +56,8 @@ fo: scopes: Hvørji API nýtsluskipanin fær atgongd til. Velur tú eitt vav á hægsta stigi, so er ikki neyðugt at velja tey einstøku. setting_aggregate_reblogs: Vís ikki nýggjar stimbranir fyri postar, sum nýliga eru stimbraðir (ávirkar einans stimbranir, ið eru móttiknar fyri kortum) setting_always_send_emails: Vanliga vera teldupostfráboðanir ikki sendar, tá tú virkin brúkar Mastodon + setting_default_quote_policy_private: Postar, sum einans eru fyri fylgjarar á Mastodon, kunnu ikki siterast av øðrum. + setting_default_quote_policy_unlisted: Tá fólk sitera teg, so vera teirra postar eisini fjaldir frá tíðarlinjum við ráki. setting_default_sensitive: Viðkvæmar miðlafílur eru fjaldar og kunnu avdúkast við einum klikki setting_display_media_default: Fjal miðlafílur, sum eru merktar sum viðkvæmar setting_display_media_hide_all: Fjal altíð miðlafílur diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml index ec4b275854c22d..c7e143743d99aa 100644 --- a/config/locales/simple_form.ga.yml +++ b/config/locales/simple_form.ga.yml @@ -56,6 +56,8 @@ ga: scopes: Cé na APIanna a mbeidh cead ag an bhfeidhmchlár rochtain a fháil orthu. Má roghnaíonn tú raon feidhme barrleibhéil, ní gá duit cinn aonair a roghnú. setting_aggregate_reblogs: Ná taispeáin treisithe nua do phoist a treisíodh le déanaí (ní dhéanann difear ach do threisithe nuafhaighte) setting_always_send_emails: Go hiondúil ní sheolfar fógraí ríomhphoist agus tú ag úsáid Mastodon go gníomhach + setting_default_quote_policy_private: Ní féidir le daoine eile poist atá scríofa ar Mastodon agus atá dírithe ar leanúna amháin a lua. + setting_default_quote_policy_unlisted: Nuair a luann daoine thú, beidh a bpost i bhfolach ó amlínte treochta freisin. setting_default_sensitive: Tá meáin íogair i bhfolach de réir réamhshocraithe agus is féidir iad a nochtadh le cliceáil setting_display_media_default: Folaigh meáin atá marcáilte mar íogair setting_display_media_hide_all: Folaigh meáin i gcónaí diff --git a/config/locales/simple_form.ia.yml b/config/locales/simple_form.ia.yml index 69014b465376f6..499d565f4f6414 100644 --- a/config/locales/simple_form.ia.yml +++ b/config/locales/simple_form.ia.yml @@ -56,6 +56,8 @@ ia: scopes: Le APIs al quales le application habera accesso. Si tu selige un ambito de nivello superior, non es necessari seliger ambitos individual. setting_aggregate_reblogs: Non monstrar nove impulsos pro messages que ha essite recentemente impulsate (affecta solmente le impulsos novemente recipite) setting_always_send_emails: Normalmente, le notificationes de e-mail non es inviate quando tu activemente usa Mastodon + setting_default_quote_policy_private: Le messages limitate al sequitores scribite sur Mastodon non pote esser citate per alteres. + setting_default_quote_policy_unlisted: Quando le gente te cita, lor message equalmente non apparera in le chronologias de tendentias. setting_default_sensitive: Le medios sensibile es celate de ordinario e pote esser revelate con un clic setting_display_media_default: Celar le medios marcate como sensibile setting_display_media_hide_all: Sempre celar contento multimedial diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index afd841273e555a..4e5fa12c041ed8 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -56,6 +56,8 @@ pt-PT: scopes: Quais as API a que a aplicação terá permissão para aceder. Se selecionar um âmbito de nível superior, não precisa de selecionar âmbitos individuais. setting_aggregate_reblogs: Não mostrar os novos impulsos para publicações que tenham sido recentemente impulsionadas (apenas afeta os impulsos recentemente recebidos) setting_always_send_emails: Normalmente as notificações por e-mail não serão enviadas quando estiver a utilizar ativamente o Mastodon + setting_default_quote_policy_private: As publicações exclusivas para seguidores criadas no Mastodon não podem ser citadas por outras pessoas. + setting_default_quote_policy_unlisted: Quando as pessoas o citarem, as respetivas publicações também serão ocultadas dos destaques. setting_default_sensitive: Os multimédia sensíveis são ocultados por predefinição e podem ser revelados com um clique/toque setting_display_media_default: Esconder multimédia marcada como sensível setting_display_media_hide_all: Esconder sempre toda a multimédia From 38c0c9ba3b9e3688f3bcfd93b11ad9d6e8be90d3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 10:55:15 +0200 Subject: [PATCH 40/81] chore(deps): update dependency libvips to v8.17.2 (#36117) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 38723228547cc5..5875ad6e80e2d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -183,7 +183,7 @@ FROM build AS libvips # libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"] # renovate: datasource=github-releases depName=libvips packageName=libvips/libvips -ARG VIPS_VERSION=8.17.1 +ARG VIPS_VERSION=8.17.2 # libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"] ARG VIPS_URL=https://github.com/libvips/libvips/releases/download From 681a9cfda12ddc2248723ec474f0d1218b7061fb Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 15 Sep 2025 11:21:03 +0200 Subject: [PATCH 41/81] In composer, show when quoted post is also a quote post (#36119) --- .../mastodon/components/status_quoted.tsx | 54 ++++++++----------- 1 file changed, 21 insertions(+), 33 deletions(-) diff --git a/app/javascript/mastodon/components/status_quoted.tsx b/app/javascript/mastodon/components/status_quoted.tsx index 93a5ad869892bc..2726b1a55a2dd4 100644 --- a/app/javascript/mastodon/components/status_quoted.tsx +++ b/app/javascript/mastodon/components/status_quoted.tsx @@ -2,8 +2,6 @@ import { useEffect, useMemo, useRef } from 'react'; import { FormattedMessage } from 'react-intl'; -import classNames from 'classnames'; - import type { Map as ImmutableMap } from 'immutable'; import { LearnMoreLink } from 'mastodon/components/learn_more_link'; @@ -13,36 +11,20 @@ import type { RootState } from 'mastodon/store'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; import { fetchStatus } from '../actions/statuses'; +import type { Account } from '../models/account'; import { makeGetStatusWithExtraInfo } from '../selectors'; import { Button } from './button'; const MAX_QUOTE_POSTS_NESTING_LEVEL = 1; -const QuoteWrapper: React.FC<{ - isError?: boolean; - contextType?: string; - onQuoteCancel?: () => void; - children: React.ReactElement; -}> = ({ isError, contextType, onQuoteCancel, children }) => { - return ( -
    - {children} - {contextType === 'composer' && ( - - )} -
    - ); -}; - const NestedQuoteLink: React.FC<{ status: Status }> = ({ status }) => { - const accountId = status.get('account') as string; + const accountObjectOrId = status.get('account') as string | Account; + const accountId = + typeof accountObjectOrId === 'string' + ? accountObjectOrId + : accountObjectOrId.id; + const account = useAppSelector((state) => accountId ? state.accounts.get(accountId) : undefined, ); @@ -185,14 +167,20 @@ export const QuotedStatus: React.FC = ({ } if (quoteError) { + const hasRemoveButton = contextType === 'composer' && !!onQuoteCancel; + return ( - +
    {quoteError} - + {hasRemoveButton && ( + + )} +
    ); } @@ -205,7 +193,7 @@ export const QuotedStatus: React.FC = ({ childQuote && nestingLevel <= MAX_QUOTE_POSTS_NESTING_LEVEL; return ( - +
    {/* @ts-expect-error Status is not yet typed */} = ({ /> )} - +
    ); }; From 4702e369e93f9f93a1b4e75e4d3a134b4da58182 Mon Sep 17 00:00:00 2001 From: Lycolia Rizzim <33796432+Lycolia@users.noreply.github.com> Date: Mon, 15 Sep 2025 18:43:14 +0900 Subject: [PATCH 42/81] Fix: clicking a status header opens the status details, no longer navigate to profile (#36118) --- app/javascript/styles/mastodon/components.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index d32174ee4fcaf4..4c33244c43d97d 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1630,7 +1630,7 @@ align-items: center; gap: 10px; overflow: hidden; - flex-grow: 1; + margin-inline-end: auto; .display-name { bdi { From 94dcf8c96c7c32a5ba42b68c88cb1d0e85cf39ea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 12:02:38 +0200 Subject: [PATCH 43/81] fix(deps): update dependency axios to v1.12.0 [security] (#36116) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 79c076a7c7f926..fea87111187924 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5292,13 +5292,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0": - version: 1.11.0 - resolution: "axios@npm:1.11.0" + version: 1.12.2 + resolution: "axios@npm:1.12.2" dependencies: follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.4" proxy-from-env: "npm:^1.1.0" - checksum: 10c0/5de273d33d43058610e4d252f0963cc4f10714da0bfe872e8ef2cbc23c2c999acc300fd357b6bce0fc84a2ca9bd45740fa6bb28199ce2c1266c8b1a393f2b36e + checksum: 10c0/80b063e318cf05cd33a4d991cea0162f3573481946f9129efb7766f38fde4c061c34f41a93a9f9521f02b7c9565ccbc197c099b0186543ac84a24580017adfed languageName: node linkType: hard From f5591346ccc024d37da08144c707dc2a759ad7de Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 15 Sep 2025 15:45:57 +0200 Subject: [PATCH 44/81] Add `following_url` to `accounts` (#36093) --- app/models/account.rb | 2 ++ app/services/activitypub/process_account_service.rb | 1 + db/migrate/20250912082651_add_following_url_to_accounts.rb | 7 +++++++ db/schema.rb | 3 ++- 4 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20250912082651_add_following_url_to_accounts.rb diff --git a/app/models/account.rb b/app/models/account.rb index 5fa1f0cebf692d..01644fdc92b557 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -31,6 +31,7 @@ # outbox_url :string default(""), not null # shared_inbox_url :string default(""), not null # followers_url :string default(""), not null +# following_url :string default(""), not null # protocol :integer default("ostatus"), not null # memorial :boolean default(FALSE), not null # moved_to_account_id :bigint(8) @@ -123,6 +124,7 @@ class Account < ApplicationRecord validates_with EmptyProfileFieldNamesValidator, if: -> { local? && will_save_change_to_fields? } with_options on: :create, if: :local? do validates :followers_url, absence: true + validates :following_url, absence: true validates :inbox_url, absence: true validates :shared_inbox_url, absence: true validates :uri, absence: true diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index 201f7513b9b22c..eb67daf7e8f24a 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -102,6 +102,7 @@ def set_immediate_protocol_attributes! @account.outbox_url = valid_collection_uri(@json['outbox']) @account.shared_inbox_url = valid_collection_uri(@json['endpoints'].is_a?(Hash) ? @json['endpoints']['sharedInbox'] : @json['sharedInbox']) @account.followers_url = valid_collection_uri(@json['followers']) + @account.following_url = valid_collection_uri(@json['following']) @account.url = url || @uri @account.uri = @uri @account.actor_type = actor_type diff --git a/db/migrate/20250912082651_add_following_url_to_accounts.rb b/db/migrate/20250912082651_add_following_url_to_accounts.rb new file mode 100644 index 00000000000000..8f9f3c63d63bf0 --- /dev/null +++ b/db/migrate/20250912082651_add_following_url_to_accounts.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddFollowingURLToAccounts < ActiveRecord::Migration[8.0] + def change + add_column :accounts, :following_url, :string, default: '', null: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 583ea900084b40..3b3c1bdfe5fe8f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.0].define(version: 2025_09_11_163952) do +ActiveRecord::Schema[8.0].define(version: 2025_09_12_082651) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -198,6 +198,7 @@ t.datetime "requested_review_at", precision: nil t.boolean "indexable", default: false, null: false t.string "attribution_domains", default: [], array: true + t.string "following_url", default: "", null: false t.index "(((setweight(to_tsvector('simple'::regconfig, (display_name)::text), 'A'::\"char\") || setweight(to_tsvector('simple'::regconfig, (username)::text), 'B'::\"char\")) || setweight(to_tsvector('simple'::regconfig, (COALESCE(domain, ''::character varying))::text), 'C'::\"char\")))", name: "search_index", using: :gin t.index "lower((username)::text), COALESCE(lower((domain)::text), ''::text)", name: "index_accounts_on_username_and_domain_lower", unique: true t.index ["domain", "id"], name: "index_accounts_on_domain_and_id" From e4bb0fc43a2ce90a32e882e08c1326ff9ff70643 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 15 Sep 2025 17:03:44 +0200 Subject: [PATCH 45/81] Add server-side support for handling posts with a quote policy allowing followers to quote (#36127) --- app/lib/activitypub/activity/create.rb | 1 + app/lib/activitypub/parser/status_parser.rb | 4 ++-- .../concerns/status/interaction_policy_concern.rb | 13 ++++++++++++- app/serializers/activitypub/note_serializer.rb | 2 +- .../activitypub/process_status_update_service.rb | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 50078c27dd3bce..607e9be8cc70fd 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -88,6 +88,7 @@ def process_status_params @status_parser = ActivityPub::Parser::StatusParser.new( @json, followers_collection: @account.followers_url, + following_collection: @account.following_url, actor_uri: ActivityPub::TagManager.instance.uri_for(@account), object: @object ) diff --git a/app/lib/activitypub/parser/status_parser.rb b/app/lib/activitypub/parser/status_parser.rb index e1f11c20f3ca3a..ad4ecebbbf594d 100644 --- a/app/lib/activitypub/parser/status_parser.rb +++ b/app/lib/activitypub/parser/status_parser.rb @@ -8,6 +8,7 @@ class ActivityPub::Parser::StatusParser # @param [Hash] json # @param [Hash] options # @option options [String] :followers_collection + # @option options [String] :following_collection # @option options [String] :actor_uri # @option options [Hash] :object def initialize(json, **options) @@ -146,8 +147,7 @@ def quote_subpolicy(subpolicy) flags |= Status::QUOTE_APPROVAL_POLICY_FLAGS[:public] if allowed_actors.delete('as:Public') || allowed_actors.delete('Public') || allowed_actors.delete('https://www.w3.org/ns/activitystreams#Public') flags |= Status::QUOTE_APPROVAL_POLICY_FLAGS[:followers] if allowed_actors.delete(@options[:followers_collection]) - # TODO: we don't actually store that collection URI - # flags |= Status::QUOTE_APPROVAL_POLICY_FLAGS[:followed] + flags |= Status::QUOTE_APPROVAL_POLICY_FLAGS[:following] if allowed_actors.delete(@options[:following_collection]) # Remove the special-meaning actor URI allowed_actors.delete(@options[:actor_uri]) diff --git a/app/models/concerns/status/interaction_policy_concern.rb b/app/models/concerns/status/interaction_policy_concern.rb index 28a568e902d726..dbac017b33f18b 100644 --- a/app/models/concerns/status/interaction_policy_concern.rb +++ b/app/models/concerns/status/interaction_policy_concern.rb @@ -7,7 +7,7 @@ module Status::InteractionPolicyConcern unsupported_policy: (1 << 0), public: (1 << 1), followers: (1 << 2), - followed: (1 << 3), + following: (1 << 3), }.freeze included do @@ -30,6 +30,7 @@ def quote_policy_for_account(other_account, preloaded_relations: {}) return :denied if other_account.nil? || direct_visibility? following_author = nil + followed_by_author = nil # Post author is always allowed to quote themselves return :automatic if account_id == other_account.id @@ -44,6 +45,11 @@ def quote_policy_for_account(other_account, preloaded_relations: {}) return :automatic if following_author end + if automatic_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:following]) + followed_by_author = account.following?(other_account) if followed_by_author.nil? + return :automatic if followed_by_author + end + # We don't know we are allowed by the automatic policy, considering the manual one return :manual if manual_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:public]) @@ -52,6 +58,11 @@ def quote_policy_for_account(other_account, preloaded_relations: {}) return :manual if following_author end + if manual_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:following]) + followed_by_author = account.following?(other_account) if followed_by_author.nil? + return :manual if followed_by_author + end + return :unknown if (automatic_policy | manual_policy).anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:unsupported_policy]) :denied diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb index 8592b137ea32f1..bfe26068e87607 100644 --- a/app/serializers/activitypub/note_serializer.rb +++ b/app/serializers/activitypub/note_serializer.rb @@ -234,7 +234,7 @@ def interaction_policy policy = object.quote_approval_policy >> 16 approved_uris << ActivityPub::TagManager::COLLECTIONS[:public] if policy.anybits?(Status::QUOTE_APPROVAL_POLICY_FLAGS[:public]) approved_uris << ActivityPub::TagManager.instance.followers_uri_for(object.account) if policy.anybits?(Status::QUOTE_APPROVAL_POLICY_FLAGS[:followers]) - approved_uris << ActivityPub::TagManager.instance.following_uri_for(object.account) if policy.anybits?(Status::QUOTE_APPROVAL_POLICY_FLAGS[:followed]) + approved_uris << ActivityPub::TagManager.instance.following_uri_for(object.account) if policy.anybits?(Status::QUOTE_APPROVAL_POLICY_FLAGS[:following]) approved_uris << ActivityPub::TagManager.instance.uri_for(object.account) if approved_uris.empty? { diff --git a/app/services/activitypub/process_status_update_service.rb b/app/services/activitypub/process_status_update_service.rb index 2e0e6e8864cdf5..d6bbb451978ded 100644 --- a/app/services/activitypub/process_status_update_service.rb +++ b/app/services/activitypub/process_status_update_service.rb @@ -10,7 +10,7 @@ def call(status, activity_json, object_json, request_id: nil) @activity_json = activity_json @json = object_json - @status_parser = ActivityPub::Parser::StatusParser.new(@json, followers_collection: status.account.followers_url, actor_uri: ActivityPub::TagManager.instance.uri_for(status.account)) + @status_parser = ActivityPub::Parser::StatusParser.new(@json, followers_collection: status.account.followers_url, following_collection: status.account.following_url, actor_uri: ActivityPub::TagManager.instance.uri_for(status.account)) @uri = @status_parser.uri @status = status @account = status.account From 887e982aa2d73395fe52409781348db270364c21 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 15 Sep 2025 17:27:43 +0200 Subject: [PATCH 46/81] Don't show more than one quote removal hint on notifications page (#36128) --- .../components/dismissable_banner.tsx | 6 ++-- .../status_action_bar/remove_quote_hint.tsx | 35 +++++++++++++++++-- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/app/javascript/mastodon/components/dismissable_banner.tsx b/app/javascript/mastodon/components/dismissable_banner.tsx index c850323615d065..a874f4792e4c7f 100644 --- a/app/javascript/mastodon/components/dismissable_banner.tsx +++ b/app/javascript/mastodon/components/dismissable_banner.tsx @@ -45,7 +45,7 @@ export function useDismissableBannerState({ id }: Props) { }, [id, dispatch, isVisible, dismissed]); return { - isVisible, + wasDismissed: !isVisible, dismiss, }; } @@ -55,11 +55,11 @@ export const DismissableBanner: React.FC> = ({ children, }) => { const intl = useIntl(); - const { isVisible, dismiss } = useDismissableBannerState({ + const { wasDismissed, dismiss } = useDismissableBannerState({ id, }); - if (!isVisible) { + if (wasDismissed) { return null; } diff --git a/app/javascript/mastodon/components/status_action_bar/remove_quote_hint.tsx b/app/javascript/mastodon/components/status_action_bar/remove_quote_hint.tsx index 6046dad035d847..dec9c3ef38cb2f 100644 --- a/app/javascript/mastodon/components/status_action_bar/remove_quote_hint.tsx +++ b/app/javascript/mastodon/components/status_action_bar/remove_quote_hint.tsx @@ -1,4 +1,4 @@ -import { useRef } from 'react'; +import { useEffect, useRef, useState, useId } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; @@ -14,6 +14,13 @@ import { Icon } from '../icon'; const DISMISSABLE_BANNER_ID = 'notifications/remove_quote_hint'; +/** + * We don't want to show this hint in the UI more than once, + * so the first time it renders, we store a unique component ID + * here to prevent any other hints from being displayed after it. + */ +let firstHintId: string | null = null; + export const RemoveQuoteHint: React.FC<{ canShowHint: boolean; className?: string; @@ -22,14 +29,36 @@ export const RemoveQuoteHint: React.FC<{ const anchorRef = useRef(null); const intl = useIntl(); - const { isVisible, dismiss } = useDismissableBannerState({ + const { wasDismissed, dismiss } = useDismissableBannerState({ id: DISMISSABLE_BANNER_ID, }); + const shouldShowHint = !wasDismissed && canShowHint; + + const uniqueId = useId(); + const [isOnlyHint, setIsOnlyHint] = useState(false); + useEffect(() => { + if (!shouldShowHint) { + return () => null; + } + + if (!firstHintId) { + firstHintId = uniqueId; + setIsOnlyHint(true); + } + + return () => { + if (firstHintId === uniqueId) { + firstHintId = null; + setIsOnlyHint(false); + } + }; + }, [shouldShowHint, uniqueId]); + return (
    {children(dismiss)} - {isVisible && canShowHint && ( + {shouldShowHint && isOnlyHint && ( Date: Mon, 15 Sep 2025 17:35:33 +0200 Subject: [PATCH 47/81] Add example post with manual quote approval policy to `dev:populate_sample_data` (#36099) --- lib/tasks/dev.rake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake index 2aad68d53d8fd8..b1a144f64cdd33 100644 --- a/lib/tasks/dev.rake +++ b/lib/tasks/dev.rake @@ -436,6 +436,13 @@ namespace :dev do quoted_status: quoted, state: :accepted ).find_or_create_by!(id: 10_000_013) + + Status.create_with( + text: 'This post has a manual quote policy', + account: remote_account, + visibility: :public, + quote_approval_policy: Status::QUOTE_APPROVAL_POLICY_FLAGS[:public] + ).find_or_create_by!(id: 10_000_030) end end end From 38fa0102c111f1c0cff5a42eba6882ffae4ca109 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 15 Sep 2025 17:38:11 +0200 Subject: [PATCH 48/81] Fix logged-out quote menu UX, simplify Interaction dialog copy (#36124) --- .../mastodon/components/follow_button.tsx | 1 - app/javascript/mastodon/components/poll.tsx | 1 - .../components/status/boost_button.tsx | 46 +++++--- .../components/status/boost_button_utils.ts | 4 +- .../components/status_action_bar/index.jsx | 4 +- .../mastodon/containers/status_container.jsx | 3 +- .../features/interaction_modal/index.tsx | 109 ++---------------- .../picture_in_picture/components/footer.tsx | 3 - .../mastodon/features/status/index.jsx | 3 - app/javascript/mastodon/locales/en.json | 12 +- .../styles/mastodon/components.scss | 7 -- 11 files changed, 51 insertions(+), 142 deletions(-) diff --git a/app/javascript/mastodon/components/follow_button.tsx b/app/javascript/mastodon/components/follow_button.tsx index 4a22bb1c3f8ad3..98ef3ba3f1c851 100644 --- a/app/javascript/mastodon/components/follow_button.tsx +++ b/app/javascript/mastodon/components/follow_button.tsx @@ -46,7 +46,6 @@ export const FollowButton: React.FC<{ openModal({ modalType: 'INTERACTION', modalProps: { - type: 'follow', accountId: accountId, url: account?.url, }, diff --git a/app/javascript/mastodon/components/poll.tsx b/app/javascript/mastodon/components/poll.tsx index d9e76617d0eafb..80444f6406f10f 100644 --- a/app/javascript/mastodon/components/poll.tsx +++ b/app/javascript/mastodon/components/poll.tsx @@ -109,7 +109,6 @@ export const Poll: React.FC = ({ pollId, disabled, status }) => { openModal({ modalType: 'INTERACTION', modalProps: { - type: 'vote', accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, diff --git a/app/javascript/mastodon/components/status/boost_button.tsx b/app/javascript/mastodon/components/status/boost_button.tsx index 7352c0c5357a0a..33f4b1a7289314 100644 --- a/app/javascript/mastodon/components/status/boost_button.tsx +++ b/app/javascript/mastodon/components/status/boost_button.tsx @@ -72,6 +72,18 @@ export const StatusBoostButton: FC = ({ const statusId = status.get('id') as string; const wasBoosted = !!status.get('reblogged'); + const showLoginPrompt = useCallback(() => { + dispatch( + openModal({ + modalType: 'INTERACTION', + modalProps: { + accountId: status.getIn(['account', 'id']), + url: status.get('uri'), + }, + }), + ); + }, [dispatch, status]); + const items = useMemo(() => { const boostItem = boostItemState(statusState); const quoteItem = quoteItemState(statusState); @@ -87,6 +99,8 @@ export const StatusBoostButton: FC = ({ action: (event) => { if (isLoggedIn) { dispatch(toggleReblog(statusId, event.shiftKey)); + } else { + showLoginPrompt(); } }, }, @@ -100,34 +114,37 @@ export const StatusBoostButton: FC = ({ action: () => { if (isLoggedIn) { dispatch(quoteComposeById(statusId)); + } else { + showLoginPrompt(); } }, }, ] satisfies [ActionMenuItemWithIcon, ActionMenuItemWithIcon]; - }, [dispatch, intl, isLoggedIn, statusId, statusState, wasBoosted]); + }, [ + dispatch, + intl, + isLoggedIn, + showLoginPrompt, + statusId, + statusState, + wasBoosted, + ]); const boostIcon = items[0].icon; const handleDropdownOpen = useCallback( (event: MouseEvent | KeyboardEvent) => { - if (!isLoggedIn) { - dispatch( - openModal({ - modalType: 'INTERACTION', - modalProps: { - type: 'reblog', - accountId: status.getIn(['account', 'id']), - url: status.get('uri'), - }, - }), - ); - } else if (event.shiftKey) { + if (event.shiftKey) { + if (!isLoggedIn) { + showLoginPrompt(); + return false; + } dispatch(toggleReblog(status.get('id'), true)); return false; } return true; }, - [dispatch, isLoggedIn, status], + [dispatch, isLoggedIn, showLoginPrompt, status], ); return ( @@ -223,7 +240,6 @@ export const LegacyReblogButton: FC = ({ openModal({ modalType: 'INTERACTION', modalProps: { - type: 'reblog', accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, diff --git a/app/javascript/mastodon/components/status/boost_button_utils.ts b/app/javascript/mastodon/components/status/boost_button_utils.ts index 34fa26aceab77e..2c40cb2b2840a4 100644 --- a/app/javascript/mastodon/components/status/boost_button_utils.ts +++ b/app/javascript/mastodon/components/status/boost_button_utils.ts @@ -129,6 +129,7 @@ export function boostItemState({ } export function quoteItemState({ + isLoggedIn, isMine, isQuoteAutomaticallyAccepted, isQuoteManuallyAccepted, @@ -149,7 +150,8 @@ export function quoteItemState({ } else if (isQuoteManuallyAccepted) { iconText.title = messages.request_quote; iconText.meta = messages.quote_manual_review; - } else { + // We don't show the disabled state when logged out + } else if (isLoggedIn) { iconText.disabled = true; iconText.iconComponent = FormatQuoteOff; iconText.meta = isQuoteFollowersOnly diff --git a/app/javascript/mastodon/components/status_action_bar/index.jsx b/app/javascript/mastodon/components/status_action_bar/index.jsx index 3aff359c10e8cd..0e72a8cefe7bf3 100644 --- a/app/javascript/mastodon/components/status_action_bar/index.jsx +++ b/app/javascript/mastodon/components/status_action_bar/index.jsx @@ -122,7 +122,7 @@ class StatusActionBar extends ImmutablePureComponent { if (signedIn) { this.props.onReply(this.props.status); } else { - this.props.onInteractionModal('reply', this.props.status); + this.props.onInteractionModal(this.props.status); } }; @@ -140,7 +140,7 @@ class StatusActionBar extends ImmutablePureComponent { if (signedIn) { this.props.onFavourite(this.props.status); } else { - this.props.onInteractionModal('favourite', this.props.status); + this.props.onInteractionModal(this.props.status); } }; diff --git a/app/javascript/mastodon/containers/status_container.jsx b/app/javascript/mastodon/containers/status_container.jsx index e73ef5b96e1fb2..ba280ffd231384 100644 --- a/app/javascript/mastodon/containers/status_container.jsx +++ b/app/javascript/mastodon/containers/status_container.jsx @@ -235,11 +235,10 @@ const mapDispatchToProps = (dispatch, { contextType }) => ({ dispatch(deployPictureInPicture({statusId: status.get('id'), accountId: status.getIn(['account', 'id']), playerType: type, props: mediaProps})); }, - onInteractionModal (type, status) { + onInteractionModal (status) { dispatch(openModal({ modalType: 'INTERACTION', modalProps: { - type, accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, diff --git a/app/javascript/mastodon/features/interaction_modal/index.tsx b/app/javascript/mastodon/features/interaction_modal/index.tsx index 40d498d1ae15c1..2abfceaa0bf89f 100644 --- a/app/javascript/mastodon/features/interaction_modal/index.tsx +++ b/app/javascript/mastodon/features/interaction_modal/index.tsx @@ -7,15 +7,9 @@ import classNames from 'classnames'; import { escapeRegExp } from 'lodash'; import { useDebouncedCallback } from 'use-debounce'; -import InsertChartIcon from '@/material-icons/400-24px/insert_chart.svg?react'; -import PersonAddIcon from '@/material-icons/400-24px/person_add.svg?react'; -import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react'; -import ReplyIcon from '@/material-icons/400-24px/reply.svg?react'; -import StarIcon from '@/material-icons/400-24px/star.svg?react'; import { openModal, closeModal } from 'mastodon/actions/modal'; import { apiRequest } from 'mastodon/api'; import { Button } from 'mastodon/components/button'; -import { Icon } from 'mastodon/components/icon'; import { domain as localDomain, registrationsOpen, @@ -408,8 +402,7 @@ const LoginForm: React.FC<{ const InteractionModal: React.FC<{ accountId: string; url: string; - type: 'reply' | 'reblog' | 'favourite' | 'follow' | 'vote'; -}> = ({ accountId, url, type }) => { +}> = ({ accountId, url }) => { const dispatch = useAppDispatch(); const displayNameHtml = useAppSelector( (state) => state.accounts.get(accountId)?.display_name_html ?? '', @@ -437,93 +430,6 @@ const InteractionModal: React.FC<{ ); }, [dispatch]); - let title: React.ReactNode, - icon: React.ReactNode, - actionPrompt: React.ReactNode; - - switch (type) { - case 'reply': - icon = ; - title = ( - - ); - actionPrompt = ( - - ); - break; - case 'reblog': - icon = ; - title = ( - - ); - actionPrompt = ( - - ); - break; - case 'favourite': - icon = ; - title = ( - - ); - actionPrompt = ( - - ); - break; - case 'follow': - icon = ; - title = ( - - ); - actionPrompt = ( - - ); - break; - case 'vote': - icon = ; - title = ( - - ); - actionPrompt = ( - - ); - break; - } - let signupButton; if (sso_redirect) { @@ -559,9 +465,18 @@ const InteractionModal: React.FC<{

    - {icon} {title} +

    -

    {actionPrompt}

    +

    + +

    diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.tsx b/app/javascript/mastodon/features/picture_in_picture/components/footer.tsx index ddcc386ad81d93..d1671b4bda45a9 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/footer.tsx +++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.tsx @@ -92,7 +92,6 @@ export const Footer: React.FC<{ openModal({ modalType: 'INTERACTION', modalProps: { - type: 'reply', accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, @@ -113,7 +112,6 @@ export const Footer: React.FC<{ openModal({ modalType: 'INTERACTION', modalProps: { - type: 'favourite', accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, @@ -135,7 +133,6 @@ export const Footer: React.FC<{ openModal({ modalType: 'INTERACTION', modalProps: { - type: 'reblog', accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, diff --git a/app/javascript/mastodon/features/status/index.jsx b/app/javascript/mastodon/features/status/index.jsx index 362ad2c5e29d01..b17e9823541c78 100644 --- a/app/javascript/mastodon/features/status/index.jsx +++ b/app/javascript/mastodon/features/status/index.jsx @@ -186,7 +186,6 @@ class Status extends ImmutablePureComponent { dispatch(openModal({ modalType: 'INTERACTION', modalProps: { - type: 'favourite', accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, @@ -216,7 +215,6 @@ class Status extends ImmutablePureComponent { dispatch(openModal({ modalType: 'INTERACTION', modalProps: { - type: 'reply', accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, @@ -234,7 +232,6 @@ class Status extends ImmutablePureComponent { dispatch(openModal({ modalType: 'INTERACTION', modalProps: { - type: 'reblog', accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index ec67ba1d55af4c..89de5db5ea6007 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignore notifications from unsolicited Private Mentions?", "info_button.label": "Help", "info_button.what_is_alt_text": "

    What is alt text?

    Alt text provides image descriptions for people with vision impairments, low-bandwidth connections, or those seeking extra context.

    You can improve accessibility and understanding for everyone by writing clear, concise, and objective alt text.

    • Capture important elements
    • Summarize text in images
    • Use regular sentence structure
    • Avoid redundant information
    • Focus on trends and key findings in complex visuals (like diagrams or maps)
    ", - "interaction_modal.action.favourite": "To continue, you need to favorite from your account.", - "interaction_modal.action.follow": "To continue, you need to follow from your account.", - "interaction_modal.action.reblog": "To continue, you need to reblog from your account.", - "interaction_modal.action.reply": "To continue, you need to reply from your account.", - "interaction_modal.action.vote": "To continue, you need to vote from your account.", + "interaction_modal.action": "To interact with {name}'s post, you need to sign into your account on whatever Mastodon server you use.", "interaction_modal.go": "Go", "interaction_modal.no_account_yet": "Don't have an account yet?", "interaction_modal.on_another_server": "On a different server", "interaction_modal.on_this_server": "On this server", - "interaction_modal.title.favourite": "Favorite {name}'s post", - "interaction_modal.title.follow": "Follow {name}", - "interaction_modal.title.reblog": "Boost {name}'s post", - "interaction_modal.title.reply": "Reply to {name}'s post", - "interaction_modal.title.vote": "Vote in {name}'s poll", + "interaction_modal.title": "Sign in to continue", "interaction_modal.username_prompt": "E.g. {example}", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 4c33244c43d97d..bf810fe6e2b501 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -9533,13 +9533,6 @@ noscript { font-size: 14px; } - &__icon { - color: $highlight-text-color; - display: flex; - align-items: center; - justify-content: center; - } - &__lead { margin-bottom: 20px; From 6c5a4702d9d69804bdcccf8e076cc52ee2dcddeb Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 15 Sep 2025 17:53:21 +0200 Subject: [PATCH 49/81] Use default quote policy setting in the absence of API parameter (#36094) --- app/controllers/concerns/api/interaction_policies_concern.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/concerns/api/interaction_policies_concern.rb b/app/controllers/concerns/api/interaction_policies_concern.rb index 21a4cf6c56f03b..e374998c0376ac 100644 --- a/app/controllers/concerns/api/interaction_policies_concern.rb +++ b/app/controllers/concerns/api/interaction_policies_concern.rb @@ -4,8 +4,7 @@ module Api::InteractionPoliciesConcern extend ActiveSupport::Concern def quote_approval_policy - # TODO: handle `nil` separately - return nil unless Mastodon::Feature.outgoing_quotes_enabled? && status_params[:quote_approval_policy].present? + return nil unless Mastodon::Feature.outgoing_quotes_enabled? case status_params[:quote_approval_policy] when 'public' @@ -14,6 +13,8 @@ def quote_approval_policy Status::QUOTE_APPROVAL_POLICY_FLAGS[:followers] << 16 when 'nobody' 0 + when nil + current_user.setting_default_quote_policy else # TODO: raise more useful message raise ActiveRecord::RecordInvalid From 96d0f6f049b001d762158d947c9b827b653835be Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Sep 2025 11:43:02 +0200 Subject: [PATCH 50/81] New Crowdin Translations (automated) (#36133) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/af.json | 3 - app/javascript/mastodon/locales/an.json | 3 - app/javascript/mastodon/locales/ar.json | 10 --- app/javascript/mastodon/locales/ast.json | 3 - app/javascript/mastodon/locales/az.json | 10 --- app/javascript/mastodon/locales/be.json | 58 +++++++--------- app/javascript/mastodon/locales/bg.json | 10 --- app/javascript/mastodon/locales/br.json | 4 -- app/javascript/mastodon/locales/ca.json | 10 --- app/javascript/mastodon/locales/ckb.json | 3 - app/javascript/mastodon/locales/cs.json | 10 --- app/javascript/mastodon/locales/cy.json | 10 --- app/javascript/mastodon/locales/da.json | 12 +--- app/javascript/mastodon/locales/de.json | 12 +--- app/javascript/mastodon/locales/el.json | 10 --- app/javascript/mastodon/locales/en-GB.json | 10 --- app/javascript/mastodon/locales/eo.json | 10 --- app/javascript/mastodon/locales/es-AR.json | 12 +--- app/javascript/mastodon/locales/es-MX.json | 12 +--- app/javascript/mastodon/locales/es.json | 16 ++--- app/javascript/mastodon/locales/et.json | 10 --- app/javascript/mastodon/locales/eu.json | 8 --- app/javascript/mastodon/locales/fa.json | 10 --- app/javascript/mastodon/locales/fi.json | 12 +--- app/javascript/mastodon/locales/fil.json | 2 - app/javascript/mastodon/locales/fo.json | 12 +--- app/javascript/mastodon/locales/fr-CA.json | 10 --- app/javascript/mastodon/locales/fr.json | 10 --- app/javascript/mastodon/locales/fy.json | 10 --- app/javascript/mastodon/locales/ga.json | 10 --- app/javascript/mastodon/locales/gd.json | 10 --- app/javascript/mastodon/locales/gl.json | 10 --- app/javascript/mastodon/locales/he.json | 10 --- app/javascript/mastodon/locales/hi.json | 4 -- app/javascript/mastodon/locales/hr.json | 1 - app/javascript/mastodon/locales/hu.json | 10 --- app/javascript/mastodon/locales/hy.json | 4 -- app/javascript/mastodon/locales/ia.json | 10 --- app/javascript/mastodon/locales/id.json | 3 - app/javascript/mastodon/locales/ie.json | 4 -- app/javascript/mastodon/locales/io.json | 10 --- app/javascript/mastodon/locales/is.json | 12 +--- app/javascript/mastodon/locales/it.json | 10 --- app/javascript/mastodon/locales/ja.json | 10 --- app/javascript/mastodon/locales/kab.json | 8 --- app/javascript/mastodon/locales/ko.json | 10 --- app/javascript/mastodon/locales/ku.json | 3 - app/javascript/mastodon/locales/lad.json | 5 -- app/javascript/mastodon/locales/lt.json | 10 --- app/javascript/mastodon/locales/lv.json | 9 --- app/javascript/mastodon/locales/ml.json | 2 - app/javascript/mastodon/locales/mr.json | 3 - app/javascript/mastodon/locales/ms.json | 5 -- app/javascript/mastodon/locales/my.json | 4 -- app/javascript/mastodon/locales/nan.json | 10 --- app/javascript/mastodon/locales/ne.json | 2 - app/javascript/mastodon/locales/nl.json | 12 +--- app/javascript/mastodon/locales/nn.json | 37 ++++++++--- app/javascript/mastodon/locales/no.json | 10 --- app/javascript/mastodon/locales/oc.json | 3 - app/javascript/mastodon/locales/pa.json | 5 -- app/javascript/mastodon/locales/pl.json | 10 --- app/javascript/mastodon/locales/pt-BR.json | 10 --- app/javascript/mastodon/locales/pt-PT.json | 10 --- app/javascript/mastodon/locales/ro.json | 3 - app/javascript/mastodon/locales/ru.json | 70 +++++++++++++++----- app/javascript/mastodon/locales/sa.json | 3 - app/javascript/mastodon/locales/sc.json | 2 - app/javascript/mastodon/locales/sco.json | 3 - app/javascript/mastodon/locales/si.json | 10 --- app/javascript/mastodon/locales/sk.json | 9 --- app/javascript/mastodon/locales/sl.json | 10 --- app/javascript/mastodon/locales/sq.json | 10 --- app/javascript/mastodon/locales/sr-Latn.json | 4 -- app/javascript/mastodon/locales/sr.json | 4 -- app/javascript/mastodon/locales/sv.json | 10 --- app/javascript/mastodon/locales/th.json | 10 --- app/javascript/mastodon/locales/tok.json | 10 --- app/javascript/mastodon/locales/tr.json | 10 --- app/javascript/mastodon/locales/tt.json | 3 - app/javascript/mastodon/locales/uk.json | 12 +--- app/javascript/mastodon/locales/uz.json | 3 - app/javascript/mastodon/locales/vi.json | 10 --- app/javascript/mastodon/locales/zh-CN.json | 10 --- app/javascript/mastodon/locales/zh-HK.json | 4 -- app/javascript/mastodon/locales/zh-TW.json | 12 +--- config/locales/nn.yml | 5 ++ config/locales/simple_form.nn.yml | 2 + 88 files changed, 137 insertions(+), 690 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 4efd1ddb560d7b..6df4608528097a 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -169,9 +169,6 @@ "hashtag.column_settings.tag_toggle": "Voeg meer etikette by hierdie kolom", "hashtag.follow": "Volg hutsetiket", "home.column_settings.show_reblogs": "Wys aangestuurde plasings", - "interaction_modal.title.follow": "Volg {name}", - "interaction_modal.title.reblog": "Stuur {name} se plasing aan", - "interaction_modal.title.reply": "Reageer op {name} se plasing", "intervals.full.days": "{number, plural, one {# dag} other {# dae}}", "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}", "intervals.full.minutes": "{number, plural, one {# minuut} other {# minute}}", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index 0cda60105d00c9..661a1bebdb3fa4 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -233,9 +233,6 @@ "home.show_announcements": "Amostrar anuncios", "interaction_modal.on_another_server": "En un servidor diferent", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.title.follow": "Seguir a {name}", - "interaction_modal.title.reblog": "Empentar la publicación de {name}", - "interaction_modal.title.reply": "Responder a la publicación de {name}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# menuto} other {# menutos}}", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index a08c5cb98dc22b..6d80746a1374c5 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -451,20 +451,10 @@ "ignore_notifications_modal.private_mentions_title": "تجاهل الإشعارات للرسائل التي لم تطلبها؟", "info_button.label": "المساعدة", "info_button.what_is_alt_text": "

    ماهو النص البديل؟

    يوفر النص البديل أوصافا للصور للأشخاص الذين يعانون من إعاقات بصرية أو اتصالات شبكة ضعيفة أو أولئك الذين يبحثون عن سياق إضافي.

    يمكنك تحسين إمكانية الوصول والفهم للجميع من خلال كتابة نص بديل واضح وموجز وموضوعي.

    • حدد العناصر المهمة
    • لخص النص في الصور
    • استخدام بنية الجمل العادية
    • تجنب المعلومات الزائدة
    • ركز على الاتجاهات والنتائج الرئيسية في العناصر المرئية المعقدة (مثل الرسوم البيانية أو الخرائط)
    ", - "interaction_modal.action.favourite": "للمتابعة، تحتاج إلى تفضيل المنشور من حسابك.", - "interaction_modal.action.follow": "للمتابعة، تحتاج إلى متابعة المنشور من حسابك.", - "interaction_modal.action.reblog": "للمتابعة، تحتاج إلى إعادة نشر المنشور من حسابك.", - "interaction_modal.action.reply": "للمتابعة، تحتاج إلى الرد من حسابك.", - "interaction_modal.action.vote": "للمتابعة، تحتاج إلى التصويت من حسابك.", "interaction_modal.go": "اذهب", "interaction_modal.no_account_yet": "لا تملك حساباً بعد؟", "interaction_modal.on_another_server": "على خادم مختلف", "interaction_modal.on_this_server": "على هذا الخادم", - "interaction_modal.title.favourite": "إضافة منشور {name} إلى المفضلة", - "interaction_modal.title.follow": "اتبع {name}", - "interaction_modal.title.reblog": "إعادة نشر منشور {name}", - "interaction_modal.title.reply": "الرد على منشور {name}", - "interaction_modal.title.vote": "صوّت في استطلاع {name}", "interaction_modal.username_prompt": "مثلاً {example}", "intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}", "intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index cc9296643161d0..892a5f7ae81956 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -275,9 +275,6 @@ "interaction_modal.no_account_yet": "¿Tovía nun tienes una cuenta?", "interaction_modal.on_another_server": "N'otru sirvidor", "interaction_modal.on_this_server": "Nesti sirvidor", - "interaction_modal.title.follow": "Siguir a {name}", - "interaction_modal.title.reply": "Rempuesta a la publicación de: {name}", - "interaction_modal.title.vote": "Vota na encuesta de {name}", "intervals.full.days": "{number, plural, one {# día} other {# díes}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}", diff --git a/app/javascript/mastodon/locales/az.json b/app/javascript/mastodon/locales/az.json index a062411970b89e..be7541011e3fb4 100644 --- a/app/javascript/mastodon/locales/az.json +++ b/app/javascript/mastodon/locales/az.json @@ -444,20 +444,10 @@ "ignore_notifications_modal.not_following_title": "İzləmədiyiniz şəxslərin bildirişləri yox sayılsın?", "ignore_notifications_modal.private_mentions_title": "İstənilməyən Şəxsi Adçəkmələrdən gələn bildirişlər yox sayılsın?", "info_button.label": "Kömək", - "interaction_modal.action.favourite": "Davam etmək üçün hesabınızdan sevimlilərə əlavə etməlisiniz.", - "interaction_modal.action.follow": "Davam etmək üçün hesabınızdan izləməlisiniz.", - "interaction_modal.action.reblog": "Davam etmək üçün hesabınızdan təkrar göndərməlisiniz.", - "interaction_modal.action.reply": "Davam etmək üçün hesabınızdan cavab verməlisiniz.", - "interaction_modal.action.vote": "Davam etmək üçün hesabınızdan səs verməlisiniz.", "interaction_modal.go": "Get", "interaction_modal.no_account_yet": "Hələ heç bir hesabınız yoxdur?", "interaction_modal.on_another_server": "Fərqli bir serverdə", "interaction_modal.on_this_server": "Bu serverdə", - "interaction_modal.title.favourite": "{name} - göndərişini sevimlilərə əlavə et", - "interaction_modal.title.follow": "{name} - izlə", - "interaction_modal.title.reblog": "{name} - göndərişini təkrar paylaş", - "interaction_modal.title.reply": "{name} - göndərişinə cavab ver", - "interaction_modal.title.vote": "{name} - anketində səs ver", "interaction_modal.username_prompt": "Məs: {example}", "intervals.full.days": "{number, plural, one {# gün} other {# gün}}", "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 5f2f4f4befeae8..2eb287b1e92840 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -57,7 +57,7 @@ "account.locked_info": "Гэты ўліковы запіс пазначаны як схаваны. Уладальнік сам вырашае, хто можа падпісвацца на яго.", "account.media": "Медыя", "account.mention": "Згадаць @{name}", - "account.moved_to": "{name} указаў, што яго/яе новы ўліковы запіс цяпер:", + "account.moved_to": "{name} указаў(-ла), што яго/яе новы ўліковы запіс цяпер:", "account.mute": "Ігнараваць @{name}", "account.mute_notifications_short": "Не апавяшчаць", "account.mute_short": "Ігнараваць", @@ -68,10 +68,10 @@ "account.open_original_page": "Адкрыць арыгінальную старонку", "account.posts": "Допісы", "account.posts_with_replies": "Допісы і адказы", - "account.remove_from_followers": "Выдаліць карыстальніка {name} з падпісчыкаў", + "account.remove_from_followers": "Выдаліць {name} з падпісчыкаў", "account.report": "Паскардзіцца на @{name}", "account.requested": "Чакаецца ўхваленне. Націсніце, каб скасаваць запыт на падпіску", - "account.requested_follow": "{name} адправіў запыт на падпіску", + "account.requested_follow": "{name} адправіў(-ла) запыт на падпіску", "account.requests_to_follow_you": "Хоча падпісацца на вас", "account.share": "Абагуліць профіль @{name}", "account.show_reblogs": "Паказаць падштурхоўванні ад @{name}", @@ -229,7 +229,7 @@ "confirmations.discard_edit_media.confirm": "Адмяніць", "confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?", "confirmations.follow_to_list.confirm": "Падпісацца і дадаць у спіс", - "confirmations.follow_to_list.message": "Вам трэба падпісацца на карыстальніка {name}, каб дадаць яго ў спіс.", + "confirmations.follow_to_list.message": "Вам трэба падпісацца на {name}, каб дадаць яго/яе ў спіс.", "confirmations.follow_to_list.title": "Падпісацца на карыстальніка?", "confirmations.logout.confirm": "Выйсці", "confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?", @@ -247,7 +247,7 @@ "confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.", "confirmations.redraft.title": "Выдаліць і перапісаць допіс?", "confirmations.remove_from_followers.confirm": "Выдаліць падпісчыка", - "confirmations.remove_from_followers.message": "Карыстальнік {name} больш не будзе падпісаны на Вас. Упэўненыя, што хочаце працягнуць?", + "confirmations.remove_from_followers.message": "{name} больш не будзе падпісаны(-ая) на Вас. Упэўненыя, што хочаце працягнуць?", "confirmations.remove_from_followers.title": "Выдаліць падпісчыка?", "confirmations.revoke_quote.confirm": "Выдаліць допіс", "confirmations.revoke_quote.message": "Гэтае дзеянне немагчыма адмяніць.", @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Ігнараваць апавяшчэнні пра непажаданыя прыватныя згадванні?", "info_button.label": "Даведка", "info_button.what_is_alt_text": "

    Што такое альтэрнатыўны тэкст?

    Альтэрнатыўны тэкст апісвае відарыс людзям з парушэннем зроку, павольным злучэннем або тым, каму патрэбны дадатковы кантэкст.

    Вы можаце зрабіць відарыс больш дасяжным і зразумелым для ўсіх, напісаўшы зразумелы, сціслы і аб'ектыўны альтэрнатыўны тэкст.

    • Ахоплівайце важныя элементы
    • Тлумачце тэкст на відарысе
    • Карыстайцеся звычайнымі сказамі
    • Пазбягайце залішняй інфармацыі
    • Засяроджвайцеся на тэндэнцыях і ключавых высновах у цяжкіх для разумення візуальных матэрыялах (напрыклад, дыяграмах або картах)
    ", - "interaction_modal.action.favourite": "Каб працягнуць, Вы мусіце ўпадабаць нешта са свайго ўліковага запісу.", - "interaction_modal.action.follow": "Каб працягнуць, Вы мусіце падпісацца на некага са свайго ўліковага запісу.", - "interaction_modal.action.reblog": "Каб працягнуць, Вам трэба пашырыць допіс са свайго ўліковага запісу.", - "interaction_modal.action.reply": "Каб працягнуць, Вам трэба адказаць са свайго ўліковага запісу.", - "interaction_modal.action.vote": "Каб працягнуць, Вам трэба прагаласаваць са свайго ўліковага запісу.", "interaction_modal.go": "Перайсці", "interaction_modal.no_account_yet": "Не маеце ўліковага запісу?", "interaction_modal.on_another_server": "На іншым серверы", "interaction_modal.on_this_server": "На гэтым серверы", - "interaction_modal.title.favourite": "Упадабаць допіс {name}", - "interaction_modal.title.follow": "Падпісацца на {name}", - "interaction_modal.title.reblog": "Пашырыць допіс ад {name}", - "interaction_modal.title.reply": "Адказаць на допіс {name}", - "interaction_modal.title.vote": "Прагаласуйце ў апытанні {name}", "interaction_modal.username_prompt": "Напр., {example}", "intervals.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}", "intervals.full.hours": "{number, plural, one {# гадзіна} few {# гадзіны} many {# гадзін} other {# гадзіны}}", @@ -590,30 +580,30 @@ "navigation_panel.expand_followed_tags": "Разгарнуць меню падпісак на хэштэгі", "navigation_panel.expand_lists": "Разгарнуць меню спіса", "not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.", - "notification.admin.report": "{name} паскардзіўся на {target}", - "notification.admin.report_account": "{name} паскардзіўся на {count, plural, one {# допіс} 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.admin.sign_up.name_and_others": "{name} і {count, plural, one {# іншы} other {# іншых}} зарэгістраваліся", + "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.admin.sign_up.name_and_others": "{name} і {count, plural, one {# іншы(-ая)} other {# іншых}} зарэгістраваліся", "notification.annual_report.message": "Вас чакае Ваш #Wrapstodon нумар {year}! Падзяліцеся сваімі галоўнымі падзеямі і запамінальнымі момантамі ў Mastodon!", "notification.annual_report.view": "Перайсці да #Wrapstodon", - "notification.favourite": "Карыстальнік {name} упадабаў Ваш допіс", - "notification.favourite.name_and_others_with_link": "{name} і {count, plural, one {# іншы} other {# іншыя}} ўпадабалі Ваш допіс", - "notification.favourite_pm": "Ваша асабістае згадванне ўпадабана {name}", - "notification.favourite_pm.name_and_others_with_link": "{name} і {count, plural, one {# іншы} few {# іншыя} many {# іншых} other {# іншых}} ўпадабалі ваша асабістае згадванне", - "notification.follow": "{name} падпісаўся на вас", - "notification.follow.name_and_others": "{name} і {count, plural, one {# іншы} other {# іншыя}} падпісаліся на Вас", - "notification.follow_request": "{name} адправіў запыт на падпіску", + "notification.favourite": "{name} упадабаў(-ла) Ваш допіс", + "notification.favourite.name_and_others_with_link": "{name} і {count, plural, one {# іншы(-ая)} other {# іншыя}} ўпадабалі Ваш допіс", + "notification.favourite_pm": "{name} упадабаў(-ла) Вашае прыватнае згадванне", + "notification.favourite_pm.name_and_others_with_link": "{name} і {count, plural, one {# іншы(-ая)} few {# іншыя} many {# іншых} other {# іншых}} ўпадабалі ваша асабістае згадванне", + "notification.follow": "{name} падпісаўся(-лась) на Вас", + "notification.follow.name_and_others": "{name} і {count, plural, one {# іншы(-ая)} other {# іншыя}} падпісаліся на Вас", + "notification.follow_request": "{name} адправіў(-ла) запыт на падпіску", "notification.follow_request.name_and_others": "{name} і {count, plural, one {# іншы} many {# іншых} other {# іншых}} запыталіся падпісацца на вас", "notification.label.mention": "Згадванне", "notification.label.private_mention": "Асабістае згадванне", "notification.label.private_reply": "Асабісты адказ", - "notification.label.quote": "Карыстальнік {name} цытаваў Ваш допіс", + "notification.label.quote": "{name} цытаваў(-ла) Ваш допіс", "notification.label.reply": "Адказ", "notification.mention": "Згадванне", - "notification.mentioned_you": "{name} згадаў вас", + "notification.mentioned_you": "{name} згадаў(-ла) Вас", "notification.moderation-warning.learn_more": "Даведацца больш", "notification.moderation_warning": "Вы атрымалі папярэджанне ад мадэратараў", "notification.moderation_warning.action_delete_statuses": "Некаторыя Вашыя допісы былі выдаленыя.", @@ -626,8 +616,8 @@ "notification.own_poll": "Ваша апытанне скончылася", "notification.poll": "Апытанне, дзе Вы прынялі ўдзел, скончылася", "notification.quoted_update": "{name} адрэдагаваў(-ла) допіс, які Вы цытавалі", - "notification.reblog": "{name} пашырыў ваш допіс", - "notification.reblog.name_and_others_with_link": "{name} і {count, plural, one {# іншы} many {# іншых} other {# іншых}} пашырылі ваш допіс", + "notification.reblog": "{name} пашырыў(-ла) Ваш допіс", + "notification.reblog.name_and_others_with_link": "{name} і {count, plural, one {# іншы(-ая)} 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 {# уліковы запіс} few {# уліковыя запісы} many {# уліковых запісаў} other {# уліковых запісаў}}.", @@ -867,7 +857,7 @@ "status.admin_domain": "Адкрыць інтэрфейс мадэратара для {domain}", "status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі", "status.all_disabled": "Пашырэнні і цытаванні адключаны", - "status.block": "Заблакаваць @{name}", + "status.block": "Заблакіраваць @{name}", "status.bookmark": "Дадаць закладку", "status.cancel_reblog_private": "Прыбраць", "status.cannot_quote": "Цытаванне адключанае для гэтага допісу", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 4063ebc4b15c63..618ce28c61b43f 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -445,20 +445,10 @@ "ignore_notifications_modal.private_mentions_title": "Пренебрегвате ли известия от непоискани лични споменавания?", "info_button.label": "Помощ", "info_button.what_is_alt_text": "

    Какво е алтернативен текст?

    Алтернативният текст осигурява описания на изображение за хора със зрителни увреждания, връзки с ниска честотна лента или търсещите допълнителен контекст.

    Може да подобрите достъпността и разбираемостта за всеки, пишейки ясен, кратък и обективен алтернативен текст.

    • Уловете важните елементи
    • Обобщете текста в образите
    • Употребявайте правилна структура на изречението
    • Избягвайте излишна информация
    • Съсредоточете се върху тенденциите и ключови констатации в сложни онагледявания (като диаграми и карти)
    ", - "interaction_modal.action.favourite": "Трябва да направите любимо от акаунта си, за да продължите.", - "interaction_modal.action.follow": "Трябва да последвате от акаунта си, за да продължите.", - "interaction_modal.action.reblog": "Трябва да разпространите нечий блог от акаунта си, за да продължите.", - "interaction_modal.action.reply": "Трябва да отговорите от акаунта си, за да продължите.", - "interaction_modal.action.vote": "Трябва да гласувате от акаунта си, за да продължите.", "interaction_modal.go": "Напред", "interaction_modal.no_account_yet": "Още ли нямате акаунт?", "interaction_modal.on_another_server": "На различен сървър", "interaction_modal.on_this_server": "На този сървър", - "interaction_modal.title.favourite": "Означавам публикация на {name} като любима", - "interaction_modal.title.follow": "Последване на {name}", - "interaction_modal.title.reblog": "Подсилване на публикацията на {name}", - "interaction_modal.title.reply": "Отговаряне на публикацията на {name}", - "interaction_modal.title.vote": "Гласувайте в анкетата на {name}", "interaction_modal.username_prompt": "Напр. {example}", "intervals.full.days": "{number, plural, one {# ден} other {# дни}}", "intervals.full.hours": "{number, plural, one {# час} other {# часа}}", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 1bfbbef3fff93c..92cf683bce1667 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -362,10 +362,6 @@ "interaction_modal.no_account_yet": "N'ho peus ket ur gont c'hoazh?", "interaction_modal.on_another_server": "War ur servijer all", "interaction_modal.on_this_server": "War ar servijer-mañ", - "interaction_modal.title.favourite": "Ouzhpennañ embannadur {name} d'ar re vuiañ-karet", - "interaction_modal.title.follow": "Heuliañ {name}", - "interaction_modal.title.reblog": "Skignañ embannadur {name}", - "interaction_modal.title.reply": "Respont da doud {name}", "interaction_modal.username_prompt": "D.s. {example}", "intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}", "intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 02c0f7a9945f7d..5f3d6913ab2b62 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -448,20 +448,10 @@ "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?", "info_button.label": "Ajuda", - "interaction_modal.action.favourite": "Per a continuar heu d'afavorir des del vostre compte.", - "interaction_modal.action.follow": "Per a continuar heu de seguir des del vostre compte.", - "interaction_modal.action.reblog": "Per a continuar heu d'impulsar des del vostre compte.", - "interaction_modal.action.reply": "Per a continuar heu de respondre des del vostre compte.", - "interaction_modal.action.vote": "Per a continuar heu de votar des del vostre compte.", "interaction_modal.go": "Endavant", "interaction_modal.no_account_yet": "Encara no teniu cap compte?", "interaction_modal.on_another_server": "A un altre servidor", "interaction_modal.on_this_server": "En aquest servidor", - "interaction_modal.title.favourite": "Afavoreix el tut de {name}", - "interaction_modal.title.follow": "Segueix {name}", - "interaction_modal.title.reblog": "Impulsa el tut de {name}", - "interaction_modal.title.reply": "Respon al tut de {name}", - "interaction_modal.title.vote": "Voteu l'enquesta de {name}", "interaction_modal.username_prompt": "P. ex. {example}", "intervals.full.days": "{number, plural, one {# dia} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 7dac82f75d8b8b..0188b67e2742b4 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -275,9 +275,6 @@ "home.show_announcements": "پیشاندانی راگەیەنراوەکان", "interaction_modal.on_another_server": "لەسەر ڕاژەیەکی جیا", "interaction_modal.on_this_server": "لەسەر ئەم ڕاژەیە", - "interaction_modal.title.follow": "دوای {name} بکەوە", - "interaction_modal.title.reblog": "پۆستی {name} زیاد بکە", - "interaction_modal.title.reply": "وەڵامی پۆستەکەی {name} بدەرەوە", "intervals.full.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژەک}}", "intervals.full.hours": "{number, plural, one {# کات} other {# کات}}", "intervals.full.minutes": "{number, plural, one {# خولەک} other {# خولەک}}", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 1734dac74bace8..20b7b6b9c48cd2 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorovat oznámení z nevyžádaných soukromých zmínek?", "info_button.label": "Nápověda", "info_button.what_is_alt_text": "

    Co je to alt text?

    Alt text poskytuje popis obrázků pro lidi se zrakovými postižením, špatným připojením něbo těm, kteří potřebují více kontextu.

    Můžete zlepšit přístupnost a porozumění napsáním jasného, stručného a objektivního alt textu.

    • Zachyťte důležité prvky
    • Shrňte text v obrázku
    • Použijte pravidelnou větnou skladbu
    • Vyhněte se nadbytečným informacím
    • U komplexních vizualizací (diagramy, mapy...) se zaměřte na trendy a klíčová zjištění
    ", - "interaction_modal.action.favourite": "Chcete-li pokračovat, musíte oblíbit z vašeho účtu.", - "interaction_modal.action.follow": "Chcete-li pokračovat, musíte sledovat z vašeho účtu.", - "interaction_modal.action.reblog": "Chcete-li pokračovat, musíte dát boost z vašeho účtu.", - "interaction_modal.action.reply": "Chcete-li pokračovat, musíte odpovědět z vašeho účtu.", - "interaction_modal.action.vote": "Chcete-li pokračovat, musíte hlasovat z vašeho účtu.", "interaction_modal.go": "Přejít", "interaction_modal.no_account_yet": "Ještě nemáte účet?", "interaction_modal.on_another_server": "Na jiném serveru", "interaction_modal.on_this_server": "Na tomto serveru", - "interaction_modal.title.favourite": "Oblíbit si příspěvek od uživatele {name}", - "interaction_modal.title.follow": "Sledovat {name}", - "interaction_modal.title.reblog": "Boostnout příspěvek uživatele {name}", - "interaction_modal.title.reply": "Odpovědět na příspěvek uživatele {name}", - "interaction_modal.title.vote": "Hlasujte v anketě {name}", "interaction_modal.username_prompt": "např. {example}", "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 9ec1196e447a13..73e9a4734e8a57 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Anwybyddu hysbysiadau o Grybwylliadau Preifat digymell?", "info_button.label": "Cymorth", "info_button.what_is_alt_text": "

    Beth yw testun amgen?

    Mae Testun Amgen yn darparu disgrifiadau delwedd ar gyfer pobl â nam ar eu golwg, cysylltiadau lled band isel, neu'r rhai sy'n ceisio cyd-destun ychwanegol.

    Gallwch wella hygyrchedd a dealltwriaeth i bawb trwy ysgrifennu testun amgen clir, cryno a gwrthrychol.

    • Dal elfennau pwysig
    • Crynhoi testun mewn delweddau
    • Defnyddiwch strwythur brawddegau rheolaidd
    • Osgoi gwybodaeth ddiangen
    • Canolbwyntio ar dueddiadau a chanfyddiadau allweddol mewn delweddau cymhleth (fel diagramau neu fapiau)
    ", - "interaction_modal.action.favourite": "I barhau, mae angen i chi hoffi o'ch cyfrif.", - "interaction_modal.action.follow": "I barhau, mae angen i chi ddilyn o'ch cyfrif.", - "interaction_modal.action.reblog": "I barhau, mae angen i chi ail-flogio o'ch cyfrif.", - "interaction_modal.action.reply": "I barhau, mae angen i chi ymateb o'ch cyfrif.", - "interaction_modal.action.vote": "I barhau, mae angen i chi bleidleisio o'ch cyfrif.", "interaction_modal.go": "Mynd", "interaction_modal.no_account_yet": "Dim cyfrif eto?", "interaction_modal.on_another_server": "Ar weinydd gwahanol", "interaction_modal.on_this_server": "Ar y gweinydd hwn", - "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}", - "interaction_modal.title.vote": "Pleidleisiwch ym mhleidlais {name}", "interaction_modal.username_prompt": "e.e. {example}", "intervals.full.days": "{number, plural, one {# diwrnod} two {# ddiwrnod} other {# diwrnod}}", "intervals.full.hours": "{number, plural, one {# awr} other {# awr}}", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 4353cbe86ae12e..aa046c295c7a24 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignorér notifikationer fra uopfordrede private omtaler?", "info_button.label": "Hjælp", "info_button.what_is_alt_text": "

    Hvad er alt-tekst?

    Alt-tekst leverer billedbeskrivelser til folk med synsnedsættelser, lav båndbredde-forbindelser eller med ønske om ekstra kontekst.

    Tilgængelighed og forståelse kan forbedres for alle ved at skrive klar, kortfattet og objektiv alt-tekst.

    • Fang vigtige elementer
    • Opsummér tekst i billeder
    • Brug almindelig sætningsstruktur
    • Undgå overflødig information
    • Fokusér på tendenser og centrale resultater i kompleks grafik (såsom diagrammer eller kort)
    ", - "interaction_modal.action.favourite": "For at fortsætte, skal du føje til favoritter fra din konto.", - "interaction_modal.action.follow": "For at fortsætte skal du følge fra din konto.", - "interaction_modal.action.reblog": "For at fortsætte, skal du vælge fremhæv fra din konto.", - "interaction_modal.action.reply": "For at fortsætte, skal du besvare fra din konto.", - "interaction_modal.action.vote": "For at fortsætte, skal du stemme fra din konto.", + "interaction_modal.action": "For at interagere med {name}'s indlæg skal du logge ind på din konto på den Mastodon-server, du bruger.", "interaction_modal.go": "Gå", "interaction_modal.no_account_yet": "Har endnu ingen konto?", "interaction_modal.on_another_server": "På en anden server", "interaction_modal.on_this_server": "På denne server", - "interaction_modal.title.favourite": "Føj {name}s indlæg til favoritter", - "interaction_modal.title.follow": "Følg {name}", - "interaction_modal.title.reblog": "Fremhæv {name}s indlæg", - "interaction_modal.title.reply": "Besvar {name}s indlæg", - "interaction_modal.title.vote": "Stem i {name}s afstemning", + "interaction_modal.title": "Log ind for at fortsætte", "interaction_modal.username_prompt": "F.eks. {example}", "intervals.full.days": "{number, plural, one {# dag} other {# dage}}", "intervals.full.hours": "{number, plural, one {# time} other {# timer}}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 7d771149094f13..9dc8178696b3d0 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Benachrichtigungen von unerwünschten privaten Erwähnungen ignorieren?", "info_button.label": "Hilfe", "info_button.what_is_alt_text": "

    Was ist Alt-Text?

    Alt-Text bietet Bildbeschreibungen für Personen mit einer Sehschwäche, einer schlechten Internetverbindung und für alle, die zusätzlichen Kontext möchten.

    Du kannst die Zugänglichkeit und die Verständlichkeit für alle verbessern, indem du eine klare, genaue und objektive Bildbeschreibung hinzufügst.

    • Erfasse wichtige Elemente
    • Fasse Text in Bildern zusammen
    • Verwende einen korrekten Satzbau
    • Vermeide unwichtige Informationen
    • Konzentriere dich bei komplexen Darstellungen (z. B. Diagramme oder Karten) auf Trends und wichtige Erkenntnisse
    ", - "interaction_modal.action.favourite": "Du musst von deinem Konto aus favorisieren, um fortzufahren.", - "interaction_modal.action.follow": "Du musst von deinem Konto aus folgen, um fortzufahren.", - "interaction_modal.action.reblog": "Du musst von deinem Konto aus teilen, um fortzufahren.", - "interaction_modal.action.reply": "Du musst von deinem Konto aus antworten, um fortzufahren.", - "interaction_modal.action.vote": "Du musst von deinem Konto aus abstimmen, um fortzufahren.", + "interaction_modal.action": "Melde dich auf deinem Mastodon-Server an, damit du mit dem Beitrag von {name} interagieren kannst.", "interaction_modal.go": "Los", "interaction_modal.no_account_yet": "Du hast noch kein Konto?", "interaction_modal.on_another_server": "Auf einem anderen Server", "interaction_modal.on_this_server": "Auf diesem Server", - "interaction_modal.title.favourite": "Beitrag von {name} favorisieren", - "interaction_modal.title.follow": "Folge {name}", - "interaction_modal.title.reblog": "Beitrag von {name} teilen", - "interaction_modal.title.reply": "Auf Beitrag von {name} antworten", - "interaction_modal.title.vote": "An der Umfrage von {name} teilnehmen", + "interaction_modal.title": "Melde dich an, um fortzufahren", "interaction_modal.username_prompt": "z. B. {example}", "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}", "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index d2bfe8e0afc1ea..e91cf7da8767a8 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Αγνόηση ειδοποιήσεων από μη ζητηθείσες ιδιωτικές αναφορές;", "info_button.label": "Βοήθεια", "info_button.what_is_alt_text": "Το εναλλακτικό κείμενο παρέχει περιγραφές εικόνας για άτομα με προβλήματα όρασης, διαδικτυακές συνδέσεις χαμηλής ταχύτητας ή για άτομα που αναζητούν επιπλέον περιεχόμενο.\\n\\nΜπορείς να βελτιώσεις την προσβασιμότητα και την κατανόηση για όλους, γράφοντας σαφές, συνοπτικό και αντικειμενικό εναλλακτικό κείμενο.\\n\\n
    • Κατέγραψε σημαντικά στοιχεία
    • \\n
    • Συνόψισε το κείμενο στις εικόνες
    • \\n
    • Χρησιμοποίησε δομή κανονικής πρότασης
    • \\n
    • Απέφυγε περιττές πληροφορίες
    • \\n
    • Εστίασε στις τάσεις και τα βασικά ευρήματα σε σύνθετα οπτικά στοιχεία (όπως διαγράμματα ή χάρτες)
    ", - "interaction_modal.action.favourite": "Για να συνεχίσεις, θα πρέπει να αγαπήσεις από τον λογαριασμό σου.", - "interaction_modal.action.follow": "Για να συνεχίσεις, θα πρέπει να ακολουθήσεις από τον λογαριασμό σου.", - "interaction_modal.action.reblog": "Για να συνεχίσεις, θα πρέπει να αναδημοσιεύσεις από τον λογαριασμό σου.", - "interaction_modal.action.reply": "Για να συνεχίσεις, θα πρέπει να απαντήσεις από τον λογαριασμό σου.", - "interaction_modal.action.vote": "Για να συνεχίσεις, θα πρέπει να ψηφίσεις από τον λογαριασμό σου.", "interaction_modal.go": "Πάμε", "interaction_modal.no_account_yet": "Δεν έχεις ακόμη λογαριασμό;", "interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή", "interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή", - "interaction_modal.title.favourite": "Αγάπησε την ανάρτηση του χρήστη {name}", - "interaction_modal.title.follow": "Ακολούθησε {name}", - "interaction_modal.title.reblog": "Ενίσχυσε την ανάρτηση του {name}", - "interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}", - "interaction_modal.title.vote": "Ψήφισε στη δημοσκόπηση του χρήστη {name}", "interaction_modal.username_prompt": "Πχ. {example}", "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}", "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 51d4a1f7d6631d..60f4e0d8f9d82d 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -445,20 +445,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignore notifications from unsolicited Private Mentions?", "info_button.label": "Help", "info_button.what_is_alt_text": "

    What is alt text?

    Alt text provides image descriptions for people with vision impairments, low-bandwidth connections, or those seeking extra context.

    You can improve accessibility and understanding for everyone by writing clear, concise, and objective alt text.

    • Capture important elements
    • Summarise text in images
    • Use regular sentence structure
    • Avoid redundant information
    • Focus on trends and key findings in complex visuals (like diagrams or maps)
    ", - "interaction_modal.action.favourite": "To continue, you need to favourite from your account.", - "interaction_modal.action.follow": "To continue, you need to follow from your account.", - "interaction_modal.action.reblog": "To continue, you need to reblog from your account.", - "interaction_modal.action.reply": "To continue, you need to reply from your account.", - "interaction_modal.action.vote": "To continue, you need to vote from your account.", "interaction_modal.go": "Go", "interaction_modal.no_account_yet": "Don't have an account yet?", "interaction_modal.on_another_server": "On a different server", "interaction_modal.on_this_server": "On this server", - "interaction_modal.title.favourite": "Favourite {name}'s post", - "interaction_modal.title.follow": "Follow {name}", - "interaction_modal.title.reblog": "Boost {name}'s post", - "interaction_modal.title.reply": "Reply to {name}'s post", - "interaction_modal.title.vote": "Vote in {name}'s poll", "interaction_modal.username_prompt": "E.g. {example}", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 4415c0aeb7823b..e39bbe06c8cb2d 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -445,20 +445,10 @@ "ignore_notifications_modal.private_mentions_title": "Ĉu ignori sciigojn de nepetitaj privataj mencioj?", "info_button.label": "Helpo", "info_button.what_is_alt_text": "

    Kio estas la alternativa teksto?

    La alternativa teksto ofertas priskribojn de la bildoj por individuoj kun vidaj malfacilaĵoj, konektoj kun malalta larĝa bando aŭ kiuj serĉas plian kuntekston.

    Vi povas plibonigi alireblecon kaj komprenon por ĉiuj per skribado de klaraj, koncizaj, kaj objektivaj alternativaj tekstoj.

    • Kaptu gravajn elementojn.
    • Resumu tekston en bildoj.
    • Uzu regulan frazstrukturon.
    • Evitu redundan informon.
    • Fokusu sur tendencoj kaj ĉefaj trovoj en kompleksaj visualoj (kiel diagramoj aŭ mapoj).
    ", - "interaction_modal.action.favourite": "Por daŭrigi, vi devas stelumi el via konto.", - "interaction_modal.action.follow": "Por daŭrigi, vi devas sekvi el via konto.", - "interaction_modal.action.reblog": "Por daŭrigi, vi devas diskonigi el via konto.", - "interaction_modal.action.reply": "Por daŭrigi, vi devas respondi el via konto.", - "interaction_modal.action.vote": "Por daŭrigi, vi devas voĉdoni el via konto.", "interaction_modal.go": "Iru", "interaction_modal.no_account_yet": "Ĉu vi ankoraŭ ne havas konton?", "interaction_modal.on_another_server": "En alia servilo", "interaction_modal.on_this_server": "En ĉi tiu servilo", - "interaction_modal.title.favourite": "Stelumi la afiŝon de {name}", - "interaction_modal.title.follow": "Sekvi {name}", - "interaction_modal.title.reblog": "Akceli la afiŝon de {name}", - "interaction_modal.title.reply": "Respondi al la afiŝo de {name}", - "interaction_modal.title.vote": "Voĉdonu en la balotenketo de {name}", "interaction_modal.username_prompt": "Ekz. {example}", "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}", "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index ab86d547002e2f..9c46acdf820f8f 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "¿Ignorar notificaciones de menciones privadas no solicitadas?", "info_button.label": "Ayuda", "info_button.what_is_alt_text": "

    ¿Qué es el texto alternativo?

    El texto alternativo proporciona descripciones de las imágenes para personas con dificultades visuales, conexiones con escaso ancho de banda o que buscan un contexto adicional.

    Podés mejorar la accesibilidad y la comprensión para todos escribiendo un texto alternativo claro, conciso y objetivo.

    • Captura los elementos importantes.
    • Resumí el texto en imágenes.
    • Usá una estructura de frases normal.
    • Evitá la información redundante.
    • Focalizate en las tendencias y conclusiones clave de los elementos visuales complejos (como diagramas o mapas).
    ", - "interaction_modal.action.favourite": "Para continuar, tenés que marcar como favorito desde tu cuenta.", - "interaction_modal.action.follow": "Para continuar, tenés que seguir desde tu cuenta.", - "interaction_modal.action.reblog": "Para continuar, tenés que adherir desde tu cuenta.", - "interaction_modal.action.reply": "Para continuar, tenés que responder desde tu cuenta.", - "interaction_modal.action.vote": "Para continuar, tenés que votar desde tu cuenta.", + "interaction_modal.action": "Para interactuar con el mensaje de {name}, tenés que iniciar sesión en la cuenta del servidor de Mastodon que usés.", "interaction_modal.go": "Ir", "interaction_modal.no_account_yet": "¿Todavía no tenés cuenta?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.title.favourite": "Marcar como favorito el mensaje de {name}", - "interaction_modal.title.follow": "Seguir a {name}", - "interaction_modal.title.reblog": "Adherir al mensaje de {name}", - "interaction_modal.title.reply": "Responder al mensaje de {name}", - "interaction_modal.title.vote": "Votá en la encuesta de {name}", + "interaction_modal.title": "Iniciá sesión para continuar", "interaction_modal.username_prompt": "Por ejemplo: {example}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index d4fedfc947860a..9d4c673cd98694 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "¿Ignorar notificaciones de menciones privadas no solicitadas?", "info_button.label": "Ayuda", "info_button.what_is_alt_text": "

    ¿Qué es el texto alternativo?

    El texto alternativo ofrece descripciones de las imágenes para individuos con dificultades visuales, conexiones de bajo ancho de banda o que buscan un contexto adicional.

    Puedes mejorar la accesibilidad y la comprensión para todos redactando un texto alternativo claro, breve y objetivo.

    • Captura los elementos clave.
    • Resume el texto en imágenes.
    • Utiliza una estructura de oraciones estándar.
    • Evita la información repetitiva.
    • Enfócate en las tendencias y conclusiones principales de los elementos visuales complejos (como gráficos o mapas).
    ", - "interaction_modal.action.favourite": "Para continuar, debes marcar como favorito desde tu cuenta.", - "interaction_modal.action.follow": "Para continuar, debes seguir desde tu cuenta.", - "interaction_modal.action.reblog": "Para continuar, debes impulsar desde tu cuenta.", - "interaction_modal.action.reply": "Para continuar, debes responder desde tu cuenta.", - "interaction_modal.action.vote": "Para continuar, debes votar desde tu cuenta.", + "interaction_modal.action": "Para interactuar con la publicación de {name}, debes iniciar sesión en tu cuenta en cualquier servidor Mastodon que utilices.", "interaction_modal.go": "Ir", "interaction_modal.no_account_yet": "¿Aún no tienes una cuenta?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", - "interaction_modal.title.follow": "Seguir a {name}", - "interaction_modal.title.reblog": "Impulsar la publicación de {name}", - "interaction_modal.title.reply": "Responder la publicación de {name}", - "interaction_modal.title.vote": "Votar en la encuesta de {name}", + "interaction_modal.title": "Inicia sesión para continuar", "interaction_modal.username_prompt": "Por ejemplo: {example}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 9c82e9f04aa246..2887a550c49823 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -77,7 +77,7 @@ "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": "Desbloquear dominio {domain}", + "account.unblock_domain": "Desbloquear el dominio {domain}", "account.unblock_domain_short": "Desbloquear", "account.unblock_short": "Desbloquear", "account.unendorse": "No mostrar en el perfil", @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "¿Ignorar notificaciones de menciones privadas no solicitadas?", "info_button.label": "Ayuda", "info_button.what_is_alt_text": "

    ¿Qué es el texto alternativo?

    El texto alternativo proporciona descripciones de las imágenes para personas con problemas de visión, conexiones con poco ancho de banda o que buscan un contexto adicional.

    Puedes mejorar la accesibilidad y la comprensión para todos escribiendo un texto alternativo claro, conciso y objetivo.

    • Captura los elementos importantes.
    • Resume el texto en imágenes.
    • Usa una estructura de frases normal.
    • Evita la información redundante.
    • Céntrate en las tendencias y conclusiones clave de los elementos visuales complejos (como diagramas o mapas).
    ", - "interaction_modal.action.favourite": "Para continuar, tienes que marcar como favorito desde tu cuenta.", - "interaction_modal.action.follow": "Para continuar, tienes que seguir desde tu cuenta.", - "interaction_modal.action.reblog": "Para continuar, tienes que impulsar desde tu cuenta.", - "interaction_modal.action.reply": "Para continuar, tienes que responder desde tu cuenta.", - "interaction_modal.action.vote": "Para continuar, tienes que votar desde tu cuenta.", + "interaction_modal.action": "Para interactuar con la publicación de {name}, debes iniciar sesión en tu cuenta en cualquier servidor Mastodon que utilices.", "interaction_modal.go": "Ir", "interaction_modal.no_account_yet": "¿Todavía no tienes cuenta?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", - "interaction_modal.title.follow": "Seguir a {name}", - "interaction_modal.title.reblog": "Impulsar la publicación de {name}", - "interaction_modal.title.reply": "Responder a la publicación de {name}", - "interaction_modal.title.vote": "Vota en la encuesta de {name}", + "interaction_modal.title": "Inicia sesión para continuar", "interaction_modal.username_prompt": "Por ejemplo: {example}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", @@ -879,7 +871,7 @@ "status.delete": "Borrar", "status.delete.success": "Publicación eliminada", "status.detailed_status": "Vista de conversación detallada", - "status.direct": "Mención privada @{name}", + "status.direct": "Mencionar en privado a @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", "status.edited": "Última edición {date}", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index a80a3868e7b4cc..c7bd75d6f585cd 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignoreeri soovimatute eraviisiliste mainimiste teateid?", "info_button.label": "Abi", "info_button.what_is_alt_text": "

    Mis on alt-tekst?

    Alt-tekst pakub pildi kirjeldust nägemispuudega inimeste jaoks või neile, kel on aeglane internet või neile, kes otsivad lisaselgitust

    Saad parandada ligipääsetavust ja mõistmist kõigi jaoks, kirjutades selge, lühida ja objektiivse alt-teksti.

    • Lisa tähtsad elemendid
    • Tee pildil olevast tekstist kokkuvõte
    • Kasuta reeglipärast lausestruktuuri
    • Väldi ebaolulist infot
    • Keskendu keerukate vaadete puhul (näiteks diagrammid ja kaardid) puhul trendidele ja põhiseostele
    ", - "interaction_modal.action.favourite": "Jätkamiseks pead oma konto alt lemmikuks märkima.", - "interaction_modal.action.follow": "Jätkamiseks pead oma konto alt lemmikuks märkima.", - "interaction_modal.action.reblog": "Jätkamiseks pead jagama oma konto alt.", - "interaction_modal.action.reply": "Jätkamiseks pead vastama oma konto alt.", - "interaction_modal.action.vote": "Jätkamiseks pead hääletama oma konto alt.", "interaction_modal.go": "Mine", "interaction_modal.no_account_yet": "Pole veel kontot?", "interaction_modal.on_another_server": "Teises serveris", "interaction_modal.on_this_server": "Selles serveris", - "interaction_modal.title.favourite": "Lisa konto {name} postitus lemmikuks", - "interaction_modal.title.follow": "Jälgi kontot {name}", - "interaction_modal.title.reblog": "Jaga {name} postitust", - "interaction_modal.title.reply": "Vasta kasutaja {name} postitusele", - "interaction_modal.title.vote": "Hääleta {name} küsitluses", "interaction_modal.username_prompt": "Nt {example}", "intervals.full.days": "{number, plural, one {# päev} other {# päeva}}", "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index e5ac637a09bb90..579701a525ec10 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -438,18 +438,10 @@ "ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?", "info_button.label": "Laguntza", "info_button.what_is_alt_text": "

    Zer da Alt testua?

    Alt testuak irudiak deskribatzeko aukera ematen du, ikusmen-urritasunak, banda-zabalera txikiko konexioak edo testuinguru gehigarria nahi duten pertsonentzat.

    Alt testu argi, zehatz eta objektiboen bidez, guztion irisgarritasuna eta ulermena hobetu ditzakezu.

    • Hartu elementu garrantzitsuenak
    • Laburbildu irudietako testua
    • Erabili esaldien egitura erregularra
    • Baztertu informazio erredundantea.
    • Enfokatu joeretan eta funtsezko elementuetan irudi konplexuetan (diagrametan edo mapetan, adibidez)
    ", - "interaction_modal.action.favourite": "Jarraitzeko, zure kontutik atsegindu behar duzu.", - "interaction_modal.action.follow": "Jarraitzeko zure kontutik jarraitu behar duzu.", - "interaction_modal.action.reply": "Jarraitzeko zure kontutik erantzun behar duzu.", - "interaction_modal.action.vote": "Jarraitzeko, zure kontutik bozkatu behar duzu.", "interaction_modal.go": "Joan", "interaction_modal.no_account_yet": "Ez al duzu konturik oraindik?", "interaction_modal.on_another_server": "Beste zerbitzari batean", "interaction_modal.on_this_server": "Zerbitzari honetan", - "interaction_modal.title.favourite": "Egin gogoko {name}(r)en bidalketa", - "interaction_modal.title.follow": "Jarraitu {name}(r)i", - "interaction_modal.title.reblog": "Bultzatu {name}(r)en bidalketa", - "interaction_modal.title.reply": "Erantzun {name}(r)en bidalketari", "interaction_modal.username_prompt": "Adib. {example}", "intervals.full.days": "{number, plural, one {egun #} other {# egun}}", "intervals.full.hours": "{number, plural, one {ordu #} other {# ordu}}", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index c0fddde94952d7..fd623fadba010f 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -449,20 +449,10 @@ "ignore_notifications_modal.private_mentions_title": "چشم‌پوشی از نام‌بری‌های خصوصی ناخواسته؟", "info_button.label": "راهنما", "info_button.what_is_alt_text": "

    متن جایگزین چیست؟

    متن جایگزین توضیحات تصویری را برای افراد دارای اختلالات بینایی، اتصالات با پهنای باند کم یا کسانی که به دنبال زمینه اضافی هستند ارائه می دهد.

    با نوشتن متن جایگزین واضح، مختصر و عینی می توانید دسترسی و درک را برای همه بهبود بخشید.

    • عناصر مهم را ضبط کنید
    • متن را در تصاویر خلاصه کنید
    • از ساختار جمله منظم استفاده کنید
    • از اطلاعات اضافی خودداری کنید
    • روی روندها و یافته های کلیدی در تصاویر پیچیده (مانند نمودارها یا نقشه ها) تمرکز کنید.
    ", - "interaction_modal.action.favourite": "برای ادامه، باید از حساب خود به دلخواه انتخاب کنید.", - "interaction_modal.action.follow": "برای ادامه، باید از حساب کاربری خود دنبال کنید.", - "interaction_modal.action.reblog": "برای ادامه، باید از حساب خود مجددا بلاگ کنید.", - "interaction_modal.action.reply": "برای ادامه، باید از حساب خود پاسخ دهید.", - "interaction_modal.action.vote": "برای ادامه، باید از حساب کاربری خود رای دهید.", "interaction_modal.go": "برو", "interaction_modal.no_account_yet": "هنوز حساب کاربری ندارید؟", "interaction_modal.on_another_server": "روی کارسازی دیگر", "interaction_modal.on_this_server": "روی این کارساز", - "interaction_modal.title.favourite": "فرسته‌های برگزیدهٔ {name}", - "interaction_modal.title.follow": "پیگیری {name}", - "interaction_modal.title.reblog": "تقویت فرستهٔ {name}", - "interaction_modal.title.reply": "پاسخ به فرستهٔ {name}", - "interaction_modal.title.vote": "رأی دادن در نظرسنجی {name}", "interaction_modal.username_prompt": "به عنوان مثال {example}", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 3965b509fa37d4..97a3c16b6af2f9 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Sivuutetaanko ilmoitukset pyytämättömistä yksityismaininnoista?", "info_button.label": "Ohje", "info_button.what_is_alt_text": "

    Mikä vaihtoehtoinen teksti on?

    Vaihtoehtoinen teksti tarjoaa kuvauksen kuvista ihmisille, joilla on näkövamma tai matalan kaistanleveyden yhteys tai jotka kaipaavat lisäkontekstia.

    Voit parantaa saavutettavuutta ja ymmärrettävyyttä kaikkien näkökulmasta kirjoittamalla selkeän, tiiviin ja objektiivisen vaihtoehtoisen tekstin.

    • Ota mukaan tärkeät elementit
    • Tiivistä kuvissa oleva teksti
    • Käytä tavallisia lauserakenteita
    • Vältä turhaa tietoa
    • Keskity trendeihin ja keskeisiin tuloksiin monimutkaisissa visuaalisissa esityksissä (kuten kaavioissa tai kartoissa)
    ", - "interaction_modal.action.favourite": "Jotta voit jatkaa, sinun tulee lisätä julkaisu suosikiksesi omalta tililtäsi.", - "interaction_modal.action.follow": "Jotta voit jatkaa, sinun tulee seurata käyttäjää omalta tililtäsi.", - "interaction_modal.action.reblog": "Jotta voit jatkaa, sinun tulee uudelleenjulkaista omalta tililtäsi.", - "interaction_modal.action.reply": "Jotta voit jatkaa, sinun tulee vastata omalta tililtäsi.", - "interaction_modal.action.vote": "Jotta voit jatkaa, sinun tulee äänestää omalta tililtäsi.", + "interaction_modal.action": "Jotta voit olla vuorovaikutuksessa käyttäjän {name} julkaisun kanssa, sinun on kirjauduttava sisään tilillesi käyttämälläsi Mastodon-palvelimella.", "interaction_modal.go": "Siirry", "interaction_modal.no_account_yet": "Eikö sinulla ole vielä tiliä?", "interaction_modal.on_another_server": "Toisella palvelimella", "interaction_modal.on_this_server": "Tällä palvelimella", - "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", - "interaction_modal.title.reply": "Vastaa käyttäjän {name} julkaisuun", - "interaction_modal.title.vote": "Osallistu käyttäjän {name} äänestykseen", + "interaction_modal.title": "Jatka kirjautumalla sisään", "interaction_modal.username_prompt": "Esim. {example}", "intervals.full.days": "{number, plural, one {# päivä} other {# päivää}}", "intervals.full.hours": "{number, plural, one {# tunti} other {# tuntia}}", diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index c2d685745e11bd..f8425dd8efd185 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -225,8 +225,6 @@ "home.pending_critical_update.body": "Mangyaring i-update ang iyong serbiro ng Mastodon sa lalong madaling panahon!", "interaction_modal.on_another_server": "Sa ibang serbiro", "interaction_modal.on_this_server": "Sa serbirong ito", - "interaction_modal.title.follow": "Sundan si {name}", - "interaction_modal.title.vote": "Bumoto sa botohan ni {name}", "intervals.full.days": "{number, plural, one {# araw} other {# na araw}}", "intervals.full.hours": "{number, plural, one {# oras} other {# na oras}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# na minuto}}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 3c2a2693038040..2baa84e69d6e2d 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Lat sum um tú ikki sær fráboðanir frá óbiðnum privatum umrøðum?", "info_button.label": "Hjálp", "info_button.what_is_alt_text": "

    Hvat er alt tekstur?

    Alt tekstur lýsir myndir fyri fólki, sum síggja illa, ella sum hava ringt net samband ella tey, sum vilja vita meira um samanhangin.

    Tú kanst bøta um atkomuna og fatanina hjá øllum við at skriva kláran, stuttan og objektivan alt tekst.

    • Fanga týdningarmikil element
    • Samanfata tekst í myndum
    • Brúka reglubundnan setningsbygnað
    • Lat vera við at siga ting upp í saman
    • Fokusera á rák og høvuðsúrslit í kompleksum myndum (sosum diagrammir og kort)
    ", - "interaction_modal.action.favourite": "Fyri at halda fram, so mást tú yndismerkja frá tínari kontu.", - "interaction_modal.action.follow": "Fyri at halda fram, mást tú fylgja frá tínari kontu.", - "interaction_modal.action.reblog": "Fyri at halda fram, mást tú endurblogga frá tínari kontu.", - "interaction_modal.action.reply": "Fyri at halda fram, mást tú svara frá tínari kontu.", - "interaction_modal.action.vote": "Fyri at halda fram, mást tú atkvøða frá tínari kontu.", + "interaction_modal.action": "Fyri at samvirka við postin hjá {name}, mást tú rita inn á Mastodon-ambætaranum, sum tú brúkar.", "interaction_modal.go": "Far", "interaction_modal.no_account_yet": "Hevur tú onga kontu enn?", "interaction_modal.on_another_server": "Á øðrum ambætara", "interaction_modal.on_this_server": "Á hesum ambætaranum", - "interaction_modal.title.favourite": "Dáma postin hjá {name}", - "interaction_modal.title.follow": "Fylg {name}", - "interaction_modal.title.reblog": "Stimbra postin hjá {name}", - "interaction_modal.title.reply": "Svara postinum hjá {name}", - "interaction_modal.title.vote": "Atkvøði í spurnarkanningini hjá {name}", + "interaction_modal.title": "Rita inn fyri at halda fram", "interaction_modal.username_prompt": "T.d. {example}", "intervals.full.days": "{number, plural, one {# dagur} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# tími} other {# tímar}}", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 7360c48e66407e..0362f2d5e8aaf3 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -448,20 +448,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorer les notifications issues des mentions privées non sollicitées ?", "info_button.label": "Aide", "info_button.what_is_alt_text": "

    Qu'est-ce que le texte alternatif ?

    Un texte alternatif fournit une description de l'image aux personnes avec un handicap visuel ou une connexion limitée ou qui souhaitent avoir un contexte supplémentaire.

    Vous pouvez améliorer l'accessibilité et la compression de tout le monde en écrivant un texte alternatif clair, concis et objectif.

    • Identifiez les éléments importants
    • Résumez le texte présent à l'image
    • Utilisez une structure de phrase normale
    • Évitez les informations redondantes
    • Pour les visuels complexes (tels que les diagrammes ou les cartes), indiquez les tendances ou points-clés
    ", - "interaction_modal.action.favourite": "Pour continuer, vous devez ajouter en favori depuis votre compte.", - "interaction_modal.action.follow": "Pour continuer, vous devez suivre depuis votre compte.", - "interaction_modal.action.reblog": "Pour continuer, vous devez booster depuis votre compte.", - "interaction_modal.action.reply": "Pour continuer, vous devez répondre depuis votre compte.", - "interaction_modal.action.vote": "Pour continuer, vous devez voter depuis votre compte.", "interaction_modal.go": "Valider", "interaction_modal.no_account_yet": "Vous n'avez pas encore de compte ?", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", - "interaction_modal.title.favourite": "Ajouter la publication de {name} aux favoris", - "interaction_modal.title.follow": "Suivre {name}", - "interaction_modal.title.reblog": "Booster la publication de {name}", - "interaction_modal.title.reply": "Répondre à la publication de {name}", - "interaction_modal.title.vote": "Voter pour le sondage de {name}", "interaction_modal.username_prompt": "Par exemple : {example}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 10272f74f0f316..c77bf34361f7fd 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -448,20 +448,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorer les notifications issues des mentions privées non sollicitées ?", "info_button.label": "Aide", "info_button.what_is_alt_text": "

    Qu'est-ce que le texte alternatif ?

    Un texte alternatif fournit une description de l'image aux personnes avec un handicap visuel ou une connexion limitée ou qui souhaitent avoir un contexte supplémentaire.

    Vous pouvez améliorer l'accessibilité et la compression de tout le monde en écrivant un texte alternatif clair, concis et objectif.

    • Identifiez les éléments importants
    • Résumez le texte présent à l'image
    • Utilisez une structure de phrase normale
    • Évitez les informations redondantes
    • Pour les visuels complexes (tels que les diagrammes ou les cartes), indiquez les tendances ou points-clés
    ", - "interaction_modal.action.favourite": "Pour continuer, vous devez ajouter en favori depuis votre compte.", - "interaction_modal.action.follow": "Pour continuer, vous devez suivre depuis votre compte.", - "interaction_modal.action.reblog": "Pour continuer, vous devez booster depuis votre compte.", - "interaction_modal.action.reply": "Pour continuer, vous devez répondre depuis votre compte.", - "interaction_modal.action.vote": "Pour continuer, vous devez voter depuis votre compte.", "interaction_modal.go": "Valider", "interaction_modal.no_account_yet": "Vous n'avez pas encore de compte ?", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", - "interaction_modal.title.favourite": "Ajouter le message de {name} aux favoris", - "interaction_modal.title.follow": "Suivre {name}", - "interaction_modal.title.reblog": "Partager le message de {name}", - "interaction_modal.title.reply": "Répondre au message de {name}", - "interaction_modal.title.vote": "Voter pour le sondage de {name}", "interaction_modal.username_prompt": "Par exemple : {example}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index c8eb6679e33e31..31b5196f3edc0b 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -445,20 +445,10 @@ "ignore_notifications_modal.private_mentions_title": "Meldingen negearje fan net frege priveeberjochten?", "info_button.label": "Help", "info_button.what_is_alt_text": "

    Wat is alt-tekst?

    Alt-tekst biedt ôfbyldingsbeskriuwingen foar minsken mei in fisuele beheining en ferbiningen mei in lege bânbreedte of foar minsken dy’t nei ekstra kontekst sykje.

    Jo kinne de tagonklikheid en de begryplikheid foar elkenien ferbetterje troch dúdlik, koart en objektyf te skriuwen.

    • Beskriuw wichtige eleminten
    • Fetsje tekst yn ôfbyldingen gear
    • Brûk in normale sinsbou
    • Mij oertallige ynformaasje
    • Fokusje op trends en wichtige befiningen yn komplekse bylden (lykas diagrammen of kaarten)
    ", - "interaction_modal.action.favourite": "Om troch te gaan, moatte jo fan jo eigen account ôf as favoryt markearje.", - "interaction_modal.action.follow": "Om troch te gaan, moatte jo fan jo eigen account ôf folgje.", - "interaction_modal.action.reblog": "Om troch te gaan, moatte jo fan jo eigen account ôf booste.", - "interaction_modal.action.reply": "Om troch te gaan, moatte jo fan jo eigen account ôf reagearje.", - "interaction_modal.action.vote": "Om troch te gaan, moatte jo fan jo eigen account ôf as favoryt stimme.", "interaction_modal.go": "Gean", "interaction_modal.no_account_yet": "Hawwe jo noch gjin account?", "interaction_modal.on_another_server": "Op een oare server", "interaction_modal.on_this_server": "Op dizze server", - "interaction_modal.title.favourite": "Berjocht fan {name} as favoryt markearje", - "interaction_modal.title.follow": "{name} folgje", - "interaction_modal.title.reblog": "Berjocht fan {name} booste", - "interaction_modal.title.reply": "Op it berjocht fan {name} reagearje", - "interaction_modal.title.vote": "Stimme yn {name}’s peiling", "interaction_modal.username_prompt": "Byg. {example}", "intervals.full.days": "{number, plural, one {# dei} other {# dagen}} lyn", "intervals.full.hours": "{number, plural, one {# oere} other {# oeren}} lyn", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 46c81b23ed6dc9..e05e35ce2151c2 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "An dtugann tú aird ar fhógraí ó Luaintí Príobháideacha gan iarraidh?", "info_button.label": "Cabhrú", "info_button.what_is_alt_text": "

    Cad is téacs altach ann?

    Soláthraíonn téacs Alt cur síos ar íomhánna do dhaoine le lagú radhairc, naisc íseal-bandaleithead, nó daoine atá ag lorg comhthéacs breise.

    Is féidir leat inrochtaineacht agus tuiscint a fheabhsú do chách trí théacs alt soiléir, gonta, oibiachtúil a scríobh.

    • Glac gnéithe tábhachtacha
    • Déan achoimre ar théacs in íomhánna
    • Úsáid struchtúr abairtí rialta
    • li>
    • Seachain faisnéis iomarcach
    • Fócas ar threochtaí agus ar phríomhthorthaí i bhfíseanna casta (amhail léaráidí nó léarscáileanna)
    ", - "interaction_modal.action.favourite": "Chun leanúint ar aghaidh, ní mór duit an ceann is fearr leat ó do chuntas.", - "interaction_modal.action.follow": "Chun leanúint ar aghaidh, ní mór duit leanúint ó do chuntas.", - "interaction_modal.action.reblog": "Chun leanúint ar aghaidh, ní mór duit athbhlagáil ó do chuntas.", - "interaction_modal.action.reply": "Chun leanúint ar aghaidh, ní mór duit freagra a thabhairt ó do chuntas.", - "interaction_modal.action.vote": "Chun leanúint ar aghaidh, ní mór duit vótáil ó do chuntas.", "interaction_modal.go": "Téigh", "interaction_modal.no_account_yet": "Níl cuntas agat fós?", "interaction_modal.on_another_server": "Ar freastalaí eile", "interaction_modal.on_this_server": "Ar an freastalaí seo", - "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}", - "interaction_modal.title.vote": "Vótáil i vótaíocht {name}", "interaction_modal.username_prompt": "M.sh. {example}", "intervals.full.days": "{number, plural, one {# lá} other {# lá}}", "intervals.full.hours": "{number, plural, one {# uair} other {# uair}}", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index cdaa07162573a8..de0ff98b6bc44b 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -445,20 +445,10 @@ "ignore_notifications_modal.private_mentions_title": "A bheil thu airson na brathan o iomraidhean phrìobhaideach gun iarraidh a leigeil seachad?", "info_button.label": "Cobhair", "info_button.what_is_alt_text": "

    Dè a th’ ann an roghainn teacsa?

    Bheir roghainn teacsa tuairisgeulan dhealbhan dhan fheadhainn air a bheil cion lèirsinne, aig a bheil ceangal air leud-banna cumhang no a tha a’ sireadh barrachd co-theacsa.

    ’S urrainn dhut piseach a thoirt air an t-so-ruigsinneachd is an tuigse dhan a h-uile duine ma sgrìobhas tu roghainn teacsa a tha soilleir, goirid is cuspaireach.

    • Gabh a-steach na nithean cudromach
    • Dèan geàrr-chunntas dhen teacsa sna dealbhan
    • Cleachd structar sheantansan àbhaisteach
    • \\nSeachainn fiosrachadh anabarrach
    • Cùm an aire air treandaichean is puingean cudromach ann an dealbhan iom-fhillte (mar diagram no mapa)
    ", - "interaction_modal.action.favourite": "Airson leantainn air adhart, feumaidh tu a chur ris na h-annsachdan on chunntas agad.", - "interaction_modal.action.follow": "Airson leantainn air adhart, feumaidh tu a leantainn on chunntas agad.", - "interaction_modal.action.reblog": "Airson leantainn air adhart, feumaidh tu a bhrosnachadh on chunntas agad.", - "interaction_modal.action.reply": "Airson leantainn air adhart, feumaidh tu fhreagairt on chunntas agad.", - "interaction_modal.action.vote": "Airson leantainn air adhart, feumaidh tu bhòtadh on chunntas agad.", "interaction_modal.go": "Siuthad", "interaction_modal.no_account_yet": "Nach eil cunntas agad fhathast?", "interaction_modal.on_another_server": "Air frithealaiche eile", "interaction_modal.on_this_server": "Air an frithealaiche seo", - "interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan", - "interaction_modal.title.follow": "Lean {name}", - "interaction_modal.title.reblog": "Brosnaich am post aig {name}", - "interaction_modal.title.reply": "Freagair dhan phost aig {name}", - "interaction_modal.title.vote": "Bhòt sa chunntas-bheachd aig {name}", "interaction_modal.username_prompt": "M.e. {example}", "intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}", "intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 3f4efbdebc5386..8b692a9632e792 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorar notificacións de Mencións Privadas non solicitadas?", "info_button.label": "Axuda", "info_button.what_is_alt_text": "

    Que é o Texto Alternativo?

    O Text Alt proporciona a descrición das imaxes para as persoas con deficiencias visuais, conexións a internet de baixa calidade ou para engadir contexto ás mesmas.

    Podes mellorar a accesibilidade e a comprensión da publicación ao escribir un texto alternativo claro, conciso e obxectivo.

    • Identifica os elementos importantes
    • Inclúe o texto que apareza nas imaxes
    • Utiliza sintaxe estándar nas frases
    • Evita información redundante
    • Céntrate nos elementos principais cando sexan imaxes complexas (como diagramas ou mapas)
    ", - "interaction_modal.action.favourite": "Para continuar, debes favorecer desde a túa conta.", - "interaction_modal.action.follow": "Para continuar, debes facer seguimento desde a túa conta.", - "interaction_modal.action.reblog": "Para continuar, debes promover desde a túa conta.", - "interaction_modal.action.reply": "Para continuar, debes responder desde a túa conta.", - "interaction_modal.action.vote": "Para continuar, debes votar desde a túa conta.", "interaction_modal.go": "Ir", "interaction_modal.no_account_yet": "Aínda non tes unha conta?", "interaction_modal.on_another_server": "Nun servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.title.favourite": "Marcar coma favorita a publicación de {name}", - "interaction_modal.title.follow": "Seguir a {name}", - "interaction_modal.title.reblog": "Promover a publicación de {name}", - "interaction_modal.title.reply": "Responder á publicación de {name}", - "interaction_modal.title.vote": "Vota na enquisa de {name}", "interaction_modal.username_prompt": "Ex. {example}", "intervals.full.days": "{number, plural,one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 490a78b4a34e05..ca82645d7b7830 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "להתעלם מהתראות מאיזכורים פרטיים?", "info_button.label": "עזרה", "info_button.what_is_alt_text": "

    מהו כיתוב חלופי?

    כיתוב חלופי משמש תיאור מילולי של תמונות לסובלים ממגבלות ראיה, חיבורי רשת איטיים, או אלו הצריכים הקשר יותר מפורט לתוכן המולטימדיה המצורף.

    ניתן לשפר את הנגישות והבנת התוכן לכולם ע\"י כתיבת תיאור ברור, תמציתי ונטול פניות.

    • כיסוי היסודות החשובים
    • סיכום המלל שבתמונות
    • שימוש במבנה משפטים רגיל
    • יש להמנע מחזרה על מידע
    • אם העזרים הויזואליים הם דיאגרמות או מפות, התמקדו במגמות וממצאים מרכזיים.
    ", - "interaction_modal.action.favourite": "כדי להמשיך, עליך לחבב מחשבונך.", - "interaction_modal.action.follow": "כדי להמשיך, עליך לעקוב מחשבונך.", - "interaction_modal.action.reblog": "כדי להמשיך, עליך להדהד מחשבונך.", - "interaction_modal.action.reply": "כדי להמשיך, עליך לענות מחשבונך.", - "interaction_modal.action.vote": "כדי להמשיך, עליך להצביע מחשבונך.", "interaction_modal.go": "המשך", "interaction_modal.no_account_yet": "אין לך עדיין חשבון?", "interaction_modal.on_another_server": "על שרת אחר", "interaction_modal.on_this_server": "על שרת זה", - "interaction_modal.title.favourite": "חיבוב החצרוץ של {name}", - "interaction_modal.title.follow": "לעקוב אחרי {name}", - "interaction_modal.title.reblog": "להדהד את החצרוץ של {name}", - "interaction_modal.title.reply": "תשובה לחצרוץ של {name}", - "interaction_modal.title.vote": "הצביעו בסקר של {name}", "interaction_modal.username_prompt": "למשל {example}", "intervals.full.days": "{number, plural, one {# יום} other {# ימים}}", "intervals.full.hours": "{number, plural, one {# שעה} other {# שעות}}", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index c81a97178a2826..ca56ad484e2057 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -287,10 +287,6 @@ "home.show_announcements": "घोषणाएं दिखाएं", "interaction_modal.on_another_server": "एक अलग सर्वर पर", "interaction_modal.on_this_server": "इस सर्वर पे", - "interaction_modal.title.favourite": "मनपसंद {name} की पोस्ट", - "interaction_modal.title.follow": "फॉलो {name}", - "interaction_modal.title.reblog": "बूस्ट {name} की पोस्ट", - "interaction_modal.title.reply": "{name} की पोस्ट पे रिप्लाई करें", "intervals.full.days": "{number, plural,one {# दिन} other {# दिन}}", "intervals.full.hours": "{number, plural,one {# घंटा} other {# घंटे}}", "keyboard_shortcuts.back": "वापस जाने के लिए", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 91caa13f5b3323..cb3f25de0699fe 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -240,7 +240,6 @@ "home.pending_critical_update.title": "Dostupno je kritično sigurnosno ažuriranje!", "home.show_announcements": "Prikaži najave", "interaction_modal.on_this_server": "Na ovom serveru", - "interaction_modal.title.follow": "Prati {name}", "intervals.full.days": "{number, plural, one {# dan} other {# dana}}", "intervals.full.hours": "{number, plural, one {# sat} few {# sata} other {# sati}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minute} other {# minuta}}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index db1f3d16561291..53709290270c6e 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Figyelmen kívül hagyod a kéretlen privát említéseket?", "info_button.label": "Súgó", "info_button.what_is_alt_text": "

    Mi az alternatív szöveg?

    Az alternatív szöveg képleírást biztosít a látássérültek, az alacsony sávszélességű kapcsolatokkal rendelkezők, illetve a bővebb kontextust keresők számára.

    Az egyértelmű, tömör és objektív alternatív szöveg megírásával mindenki számára akadálymentesebb és könnyebben érthető lesz.

    • Rögzítsd a fontos elemeket.
    • Foglald össze szövegesen a képeket.
    • Használj szabályos mondatszerkezetet.
    • Kerüld a felesleges információkat.
    • Összetett vizuális ábrákon (például diagramokon vagy térképeken) összpontosíts a trendekre és a legfontosabb megállapításokra.
    ", - "interaction_modal.action.favourite": "A folytatáshoz a fiókodból kell kedvencnek jelölnöd.", - "interaction_modal.action.follow": "A folytatáshoz a fiókodból kell követned.", - "interaction_modal.action.reblog": "A folytatáshoz a fiókodból kell megosztanod.", - "interaction_modal.action.reply": "A folytatáshoz a fiókodból kell válaszolnod rá.", - "interaction_modal.action.vote": "A folytatáshoz a fiókodból kell szavaznod.", "interaction_modal.go": "Ugrás", "interaction_modal.no_account_yet": "Még nincs fiókod?", "interaction_modal.on_another_server": "Másik kiszolgálón", "interaction_modal.on_this_server": "Ezen a kiszolgálón", - "interaction_modal.title.favourite": "{name} bejegyzésének megjelölése kedvencként", - "interaction_modal.title.follow": "{name} követése", - "interaction_modal.title.reblog": "{name} bejegyzésének megtolása", - "interaction_modal.title.reply": "Válasz {name} bejegyzésére", - "interaction_modal.title.vote": "Szavazz {name} szavazásában", "interaction_modal.username_prompt": "Például {example}", "intervals.full.days": "{number, plural, one {# nap} other {# nap}}", "intervals.full.hours": "{number, plural, one {# óra} other {# óra}}", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index ad0cd8f7b10437..62669eda9b5d20 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -216,10 +216,6 @@ "home.show_announcements": "Ցուցադրել յայտարարութիւնները", "interaction_modal.on_another_server": "Այլ հանգոյցում", "interaction_modal.on_this_server": "Այս հանգոյցում", - "interaction_modal.title.favourite": "Հաւանել {name}-ի գրառումը", - "interaction_modal.title.follow": "Հետեւել {name}-ին", - "interaction_modal.title.reblog": "Տարածել {name}-ի գրառումը", - "interaction_modal.title.reply": "Պատասխանել {name}-ի գրառմանը", "intervals.full.days": "{number, plural, one {# օր} other {# օր}}", "intervals.full.hours": "{number, plural, one {# ժամ} other {# ժամ}}", "intervals.full.minutes": "{number, plural, one {# րոպէ} other {# րոպէ}}", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 6ac4703ad26479..3b6c7d8ed297fb 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorar notificationes de mentiones private non requestate?", "info_button.label": "Adjuta", "info_button.what_is_alt_text": "

    Que es texto alternative?

    Le texto alternative forni descriptiones de imagines a personas con impedimentos visual, con connexiones lente, o qui cerca contexto additional.

    Tu pote meliorar le accessibilitate e le comprension pro totes scribente un texto alternative clar, concise e objective.

    • Captura le elementos importante
    • Summarisa texto in imagines
    • Usa le structura de phrase normal
    • Evita information redundante
    • In figuras complexe (como diagrammas o mappas), concentra te sur le tendentias e punctos clave
    ", - "interaction_modal.action.favourite": "Per favor reveni a tu conto pro marcar isto como favorite.", - "interaction_modal.action.follow": "Per favor reveni a tu conto pro sequer.", - "interaction_modal.action.reblog": "Per favor reveni a tu conto pro impulsar.", - "interaction_modal.action.reply": "Per favor reveni a tu conto pro responder.", - "interaction_modal.action.vote": "Per favor reveni a tu conto pro votar.", "interaction_modal.go": "Revenir", "interaction_modal.no_account_yet": "Tu non ha ancora un conto?", "interaction_modal.on_another_server": "Sur un altere servitor", "interaction_modal.on_this_server": "Sur iste servitor", - "interaction_modal.title.favourite": "Marcar le message de {name} como favorite", - "interaction_modal.title.follow": "Sequer {name}", - "interaction_modal.title.reblog": "Impulsar le message de {name}", - "interaction_modal.title.reply": "Responder al message de {name}", - "interaction_modal.title.vote": "Votar in le sondage de {name}", "interaction_modal.username_prompt": "P.ex. {example}", "intervals.full.days": "{number, plural, one {# die} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 44a63f6f41f27a..7c5c816c67dde4 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -335,9 +335,6 @@ "home.show_announcements": "Tampilkan pengumuman", "interaction_modal.on_another_server": "Di server lain", "interaction_modal.on_this_server": "Di server ini", - "interaction_modal.title.follow": "Ikuti {name}", - "interaction_modal.title.reblog": "Boost kiriman {name}", - "interaction_modal.title.reply": "Balas ke kiriman {name}", "intervals.full.days": "{number, plural, other {# hari}}", "intervals.full.hours": "{number, plural, other {# jam}}", "intervals.full.minutes": "{number, plural, other {# menit}}", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index 06396e697b47a4..4a464ef16e2e0c 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -325,10 +325,6 @@ "home.show_announcements": "Monstrar proclamationes", "interaction_modal.on_another_server": "Sur un servitor diferent", "interaction_modal.on_this_server": "Sur ti-ci servitor", - "interaction_modal.title.favourite": "Favoritisar li posta de {name}", - "interaction_modal.title.follow": "Sequer {name}", - "interaction_modal.title.reblog": "Boostar li posta de {name}", - "interaction_modal.title.reply": "Responder al posta de {name}", "intervals.full.days": "{number, plural, one {# die} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hor} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index c1fad7bfc4bfbd..b51d32d05a772d 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -403,20 +403,10 @@ "ignore_notifications_modal.private_mentions_title": "Ka ignorar savigi de nekonocita privata mencionii?", "info_button.label": "Helpo", "info_button.what_is_alt_text": "

    Quo alternativa texto es?

    On povas bonigar adireblo e kompreno por omno per skribar klara, deslonga e fakta alternative texto.

    ", - "interaction_modal.action.favourite": "Por durar, vu bezonas prizar de vua konto.", - "interaction_modal.action.follow": "Por durar, vu bezonas sequar de vua konto.", - "interaction_modal.action.reblog": "Por durar, vu bezonas riblogar de vua konto.", - "interaction_modal.action.reply": "Por durar, vu bezonas respondar de vua konto.", - "interaction_modal.action.vote": "Por durar, vu bezonas vocdonar de vua konto.", "interaction_modal.go": "Irar", "interaction_modal.no_account_yet": "Ka vu ne havas konto ankore?", "interaction_modal.on_another_server": "Che diferanta servilo", "interaction_modal.on_this_server": "Che ca servilo", - "interaction_modal.title.favourite": "Favorizez ca posto da {name}", - "interaction_modal.title.follow": "Sequez {name}", - "interaction_modal.title.reblog": "Repetez posto di {name}", - "interaction_modal.title.reply": "Respondez posto di {name}", - "interaction_modal.title.vote": "Votar sur votinquesto di {name}", "interaction_modal.username_prompt": "Exemple {example}", "intervals.full.days": "{number, plural, one {# dio} other {# dii}}", "intervals.full.hours": "{number, plural, one {# horo} other {# hori}}", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index ac3f074c29bc80..4218ac4ef9284e 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Hunsa tilkynningar frá óumbeðnum tilvísunum í einkaspjalli?", "info_button.label": "Hjálp", "info_button.what_is_alt_text": "

    Hvað er alt-texti?

    Hjálpartexti eða ALT-myndatexti inniheldur lýsingu á myndefni fyrir fólk með ýmsar gerðir sjónskerðingar, fyrir tengingar með litla bandbreidd, eða til að gefa nánara samhengi fyrir myndefni.

    Þú getur með þessu bætt almennt aðgengi og aukið skilning á efni sem þú birtir með því að skrifa skýran, skorinortan og hlutlægan alt-texta til vara.

    • Lýstu mikilvægum atriðum
    • \\n
    • Hafðu yfirlit með þeim texta sem sést í myndum
    • Notaðu eðlilega setningaskipan
    • Forðastu óþarfar upplýsingar
    • Leggðu áherslu á aðalatriði í flóknu myndefni (eins og línuritum eða landakortum)
    ", - "interaction_modal.action.favourite": "Til að halda áfram þarftu að setja eitthvað í eftirlæti, verandi inni á aðgangnum þínum.", - "interaction_modal.action.follow": "Til að halda áfram þarftu að fylgjast með einhverjum, verandi inni á aðgangnum þínum.", - "interaction_modal.action.reblog": "Til að halda áfram þarftu að endurbirta frá einhverjum, verandi inni á aðgangnum þínum.", - "interaction_modal.action.reply": "Til að halda áfram þarftu að svara einhverjum, verandi inni á aðgangnum þínum.", - "interaction_modal.action.vote": "Til að halda áfram þarftu að greiða atkvæði, verandi inni á aðgangnum þínum.", + "interaction_modal.action": "Til að eiga við færsluna frá {name} þarftu að skrá þig inn á reikning þinn á þeim Mastodon-þjóni sem þú notar.", "interaction_modal.go": "Áfram", "interaction_modal.no_account_yet": "Ertu ekki ennþá með aðgang?", "interaction_modal.on_another_server": "Á öðrum netþjóni", "interaction_modal.on_this_server": "Á þessum netþjóni", - "interaction_modal.title.favourite": "Setja færsluna frá {name} í eftirlæti", - "interaction_modal.title.follow": "Fylgjast með {name}", - "interaction_modal.title.reblog": "Endurbirta færsluna frá {name}", - "interaction_modal.title.reply": "Svara færslunni frá {name}", - "interaction_modal.title.vote": "Greiða atkvæði í könnun á vegum {name}", + "interaction_modal.title": "Skráðu inn til að halda áfram", "interaction_modal.username_prompt": "Til dæmis {example}", "intervals.full.days": "{number, plural, one {# dagur} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index fe11d8fe8ead49..b3838894b4c555 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorare le notifiche provenienti da menzioni private indesiderate?", "info_button.label": "Aiuto", "info_button.what_is_alt_text": "

    Cos'è il testo alternativo?

    Il testo alternativo fornisce descrizioni delle immagini per le persone con disturbi della vista, connessioni a bassa larghezza di banda o per coloro che cercano un contesto aggiuntivo.

    È possibile migliorare l'accessibilità e la comprensione per tutti scrivendo un testo alt chiaro, conciso e obiettivo.

    • Cattura elementi importanti
    • Riassume il testo nelle immagini
    • Usa la struttura delle frasi regolari
    • Evita le informazioni ridondanti
    • Concentrati sulle tendenze e i risultati chiave in immagini complesse (come diagrammi o mappe)
    ", - "interaction_modal.action.favourite": "Per continuare, devi aggiungere ai preferiti il ​​tuo account.", - "interaction_modal.action.follow": "Per continuare, devi seguire dal tuo account.", - "interaction_modal.action.reblog": "Per continuare, devi condividere dal tuo account.", - "interaction_modal.action.reply": "Per continuare, devi rispondere dal tuo account.", - "interaction_modal.action.vote": "Per continuare, devi votare dal tuo account.", "interaction_modal.go": "Vai", "interaction_modal.no_account_yet": "Non hai ancora un account?", "interaction_modal.on_another_server": "Su un altro server", "interaction_modal.on_this_server": "Su questo server", - "interaction_modal.title.favourite": "Contrassegna il post di {name} come preferito", - "interaction_modal.title.follow": "Segui {name}", - "interaction_modal.title.reblog": "Reblogga il post di {name}", - "interaction_modal.title.reply": "Rispondi al post di {name}", - "interaction_modal.title.vote": "Vota nel sondaggio di {name}", "interaction_modal.username_prompt": "Es. {example}", "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 5451c435dd7ce4..f15158b57c7e16 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -444,20 +444,10 @@ "ignore_notifications_modal.private_mentions_title": "本当に「外部からの非公開の返信」を無視するようにしますか?", "info_button.label": "ヘルプ", "info_button.what_is_alt_text": "

    代替テキストとは何ですか?

    代替テキストは、視覚障害、低速ネットワーク接続の人や追加コンテンツを求める人に役立つ画像説明です。

    明確、簡潔、客観的に記述することでアクセシビリティが向上し、より多くの人に理解されるようになります。

    • 要点をとらえる
    • 画像内のテキストを要約する
    • 平易な文章で説明する
    • 情報の重複を避ける
    • 複雑な内容 (図や地図など) では傾向やポイントを見つける
    ", - "interaction_modal.action.favourite": "お気に入り登録はあなたのアカウントがあるサーバーで行う必要があります。", - "interaction_modal.action.follow": "ユーザーをフォローするには、あなたのアカウントがあるサーバーからフォローする必要があります。", - "interaction_modal.action.reblog": "投稿をブーストするには、あなたのアカウントがあるサーバーでブーストする必要があります。", - "interaction_modal.action.reply": "リプライを送るには、あなたのアカウントがあるサーバーから送る必要があります。", - "interaction_modal.action.vote": "票を入れるには、あなたのアカウントがあるサーバーから投票する必要があります。", "interaction_modal.go": "サーバーに移動", "interaction_modal.no_account_yet": "アカウントを持っていない場合は:", "interaction_modal.on_another_server": "別のサーバー", "interaction_modal.on_this_server": "このサーバー", - "interaction_modal.title.favourite": "{name}さんの投稿をお気に入り登録", - "interaction_modal.title.follow": "{name}さんをフォロー", - "interaction_modal.title.reblog": "{name}さんの投稿をブースト", - "interaction_modal.title.reply": "{name}さんの投稿にリプライ", - "interaction_modal.title.vote": "{name}さんのアンケートに投票", "interaction_modal.username_prompt": "例: {example}", "intervals.full.days": "{number}日", "intervals.full.hours": "{number}時間", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index a22643717bf207..4cf0288824da48 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -330,18 +330,10 @@ "home.show_announcements": "Ssken-d ulɣuyen", "ignore_notifications_modal.ignore": "Ttu ilɣa", "info_button.label": "Tallelt", - "interaction_modal.action.favourite": "I wakken ad tkemmleḍ, yessefk ad d-tḥemmleḍ seg umiḍan-ik·im.", - "interaction_modal.action.follow": "I wakken ad tkemmleḍ, yessefk ad d-tḍefreḍ seg umiḍan-ik·im.", - "interaction_modal.action.reblog": "I wakken ad tkemmleḍ, yessefk ad d-snernuḍ seg umiḍan-ik·im.", - "interaction_modal.action.reply": "I wakken ad tkemmleḍ, yessefk ad d-terreḍ seg umiḍan-ik·im.", - "interaction_modal.action.vote": "I wakken ad tkemmleḍ, yessefk ad d-tferneḍ seg umiḍan-ik·im.", "interaction_modal.go": "Ddu", "interaction_modal.no_account_yet": "Werɛad ur tesɛid amiḍan?", "interaction_modal.on_another_server": "Deg uqeddac nniḍen", "interaction_modal.on_this_server": "Deg uqeddac-ayi", - "interaction_modal.title.follow": "Ḍfer {name}", - "interaction_modal.title.reblog": "Zuzer tsuffeɣt n {name}", - "interaction_modal.title.reply": "Tiririt i tsuffeɣt n {name}", "interaction_modal.username_prompt": "Amedya: {example}", "intervals.full.days": "{number, plural, one {# wass} other {# wussan}}", "intervals.full.hours": "{number, plural, one {# usarag} other {# yisragen}}", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index b9acc29158cb67..8b9d7b83609d53 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "요청하지 않은 개인 멘션 알림을 무시할까요?", "info_button.label": "도움말", "info_button.what_is_alt_text": "

    대체 텍스트가 무엇인가요?

    대체 텍스트는 저시력자, 낮은 인터넷 대역폭 사용자, 더 자세한 문맥을 위해 이미지에 대한 설명을 제공하는 것입니다.

    깔끔하고 간결하고 객관적인 대체 텍스트를 작성해 모두가 이해하기 쉽게 만들고 접근성이 높아질 수 있습니다.

    • 중요한 요소에 중점을 두세요
    • 이미지 안의 글자를 요약하세요
    • 정형화된 문장 구조를 사용하세요
    • 중복된 정보를 피하세요
    • 복잡한 시각자료(도표나 지도 같은)에선 추세와 주요 결과에 중점을 두세요
    ", - "interaction_modal.action.favourite": "계속하려면 내 계정으로 즐겨찾기해야 합니다.", - "interaction_modal.action.follow": "계속하려면 내 계정으로 팔로우해야 합니다.", - "interaction_modal.action.reblog": "계속하려면 내 계정으로 리블로그해야 합니다.", - "interaction_modal.action.reply": "계속하려면 내 계정으로 답장해야 합니다.", - "interaction_modal.action.vote": "계속하려면 내 계정으로 투표해야 합니다.", "interaction_modal.go": "이동", "interaction_modal.no_account_yet": "아직 계정이 없나요?", "interaction_modal.on_another_server": "다른 서버에", "interaction_modal.on_this_server": "이 서버에서", - "interaction_modal.title.favourite": "{name} 님의 게시물을 좋아하기", - "interaction_modal.title.follow": "{name} 님을 팔로우", - "interaction_modal.title.reblog": "{name} 님의 게시물을 부스트", - "interaction_modal.title.reply": "{name} 님의 게시물에 답글", - "interaction_modal.title.vote": "{name} 님의 투표에 참여", "interaction_modal.username_prompt": "예시: {example}", "intervals.full.days": "{number} 일", "intervals.full.hours": "{number} 시간", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 3bd8a72d5a4a5a..3518959e2b4c0f 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -278,9 +278,6 @@ "home.show_announcements": "Reklaman nîşan bide", "interaction_modal.on_another_server": "Li ser rajekareke cuda", "interaction_modal.on_this_server": "Li ser ev rajekar", - "interaction_modal.title.follow": "{name} bişopîne", - "interaction_modal.title.reblog": "Şandiyê {name} bilind bike", - "interaction_modal.title.reply": "Bersivê bide şandiyê {name}", "intervals.full.days": "{number, plural, one {# roj} other {# roj}}", "intervals.full.hours": "{number, plural, one {# demjimêr} other {# demjimêr}}\n \n", "intervals.full.minutes": "{number, plural, one {# xulek} other {# xulek}}", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index 4f2660b93ac47d..7578b4bce3bc4f 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -384,11 +384,6 @@ "info_button.label": "Ayuda", "interaction_modal.on_another_server": "En otro sirvidor", "interaction_modal.on_this_server": "En este sirvidor", - "interaction_modal.title.favourite": "Endika ke te plaze publikasyon de {name}", - "interaction_modal.title.follow": "Sige a {name}", - "interaction_modal.title.reblog": "Repartaja publikasyon de {name}", - "interaction_modal.title.reply": "Arisponde a publikasyon de {name}", - "interaction_modal.title.vote": "Vota en la anketa de {name}", "interaction_modal.username_prompt": "Por enshemplo {example}", "intervals.full.days": "{number, plural, one {# diya} other {# diyas}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 67b3d046a93c33..6276bb80383152 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -417,20 +417,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignoruoti pranešimus iš neprašytų privačių paminėjimų?", "info_button.label": "Žinynas", "info_button.what_is_alt_text": "

    Kas yra alternatyvusis tekstas?

    Alternatyvusis tekstas pateikia vaizdų aprašymus asmenims su regos sutrikimais, turintiems mažo pralaidumo ryšį arba ieškantiems papildomo konteksto.

    Galite pagerinti prieinamumą ir suprantamumą visiems, jei parašysite aiškų, glaustą ir objektyvų alternatyvųjį tekstą.

    • Užfiksuokite svarbiausius elementus.
    • Apibendrinkite tekstą vaizduose.
    • Naudokite įprasta sakinio struktūrą.
    • Venkite nereikalingos informacijos.
    • Sutelkite dėmesį į tendencijas ir pagrindines išvadas sudėtinguose vaizdiniuose (tokiuose kaip diagramos ar žemėlapiai).
    ", - "interaction_modal.action.favourite": "Kad tęstumėte, turite pamėgti iš savo paskyros.", - "interaction_modal.action.follow": "Kad tęstumėte, turite sekti iš savo paskyros.", - "interaction_modal.action.reblog": "Kad tęstumėte, turite pasidalinti iš savo paskyros.", - "interaction_modal.action.reply": "Kad tęstumėte, turite atsakyti iš savo paskyros.", - "interaction_modal.action.vote": "Kad tęstumėte, turite balsuoti iš savo paskyros.", "interaction_modal.go": "Eiti", "interaction_modal.no_account_yet": "Dar neturite paskyros?", "interaction_modal.on_another_server": "Kitame serveryje", "interaction_modal.on_this_server": "Šiame serveryje", - "interaction_modal.title.favourite": "Pamėgti {name} įrašą", - "interaction_modal.title.follow": "Sekti {name}", - "interaction_modal.title.reblog": "Pakelti {name} įrašą", - "interaction_modal.title.reply": "Atsakyti į {name} įrašą", - "interaction_modal.title.vote": "Balsuoti {name} apklausoje", "interaction_modal.username_prompt": "Pvz., {example}", "intervals.full.days": "{number, plural, one {# diena} few {# dienos} many {# dienos} other {# dienų}}", "intervals.full.hours": "{number, plural, one {# valanda} few {# valandos} many {# valandos} other {# valandų}}", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 2105346648aec5..d80b8daf200e9f 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -411,19 +411,10 @@ "ignore_notifications_modal.ignore": "Neņemt vērā paziņojumus", "ignore_notifications_modal.not_following_title": "Neņemt vērā paziņojumus no cilvēkiem, kuriem neseko?", "info_button.label": "Palīdzība", - "interaction_modal.action.favourite": "Lai turpinātu, nepieciešams pievienot sava konta izlasei.", - "interaction_modal.action.follow": "Lai turpinātu, nepieciešams sekot no sava konta.", - "interaction_modal.action.reblog": "Lai turpinātu, nepieciešams pastiprināt no sava konta.", - "interaction_modal.action.reply": "Lai turpinātu, nepieciešams atbildēt no sava konta.", - "interaction_modal.action.vote": "Lai turpinātu, nepieciešams balsot no sava konta.", "interaction_modal.go": "Aiziet", "interaction_modal.no_account_yet": "Vēl nav konta?", "interaction_modal.on_another_server": "Citā serverī", "interaction_modal.on_this_server": "Šajā serverī", - "interaction_modal.title.favourite": "Pievienot {name} ierakstu izlasei", - "interaction_modal.title.follow": "Sekot {name}", - "interaction_modal.title.reblog": "Pastiprināt {name} ierakstu", - "interaction_modal.title.reply": "Atbildēt uz {name} ierakstu", "interaction_modal.username_prompt": "Piem., {example}", "intervals.full.days": "{number, plural, one {# diena} other {# dienas}}", "intervals.full.hours": "{number, plural, one {# stunda} other {# stundas}}", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 753ff3eafde89a..63fc97c8abb85e 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -222,8 +222,6 @@ "home.pending_critical_update.link": "പുതുകൾ കാണുക", "home.show_announcements": "പ്രഖ്യാപനങ്ങൾ കാണിക്കുക", "interaction_modal.on_this_server": "ഈ സെർവറീൽ", - "interaction_modal.title.favourite": "പ്രിയപ്പെട്ട {name}-ന്റെ എഴുതു്", - "interaction_modal.title.follow": "{name}-െ പിന്തുടരുക", "keyboard_shortcuts.back": "തിരികെ പോകുക", "keyboard_shortcuts.blocked": "to open blocked users list", "keyboard_shortcuts.boost": "ബൂസ്റ്റ് ചെയ്യുക", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 8186fec9dbbdd5..28d3ae9ab37a64 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -120,9 +120,6 @@ "home.show_announcements": "घोषणा दाखवा", "interaction_modal.on_another_server": "वेगळ्या सर्व्हरवर", "interaction_modal.on_this_server": "या सर्व्हरवर", - "interaction_modal.title.follow": "{name} चे अनुसरण करा", - "interaction_modal.title.reblog": "{name} ची पोस्ट बूस्ट करा", - "interaction_modal.title.reply": "{name} च्या पोस्टला उत्तर द्या", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index e7b7ca9373b93b..2ffdf6cfd0b4bf 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -369,13 +369,8 @@ "home.pending_critical_update.link": "Lihat pengemaskinian", "home.pending_critical_update.title": "Kemas kini keselamatan kritikal tersedia!", "home.show_announcements": "Tunjukkan pengumuman", - "interaction_modal.action.favourite": "Untuk sambung, anda perlu suka dari akaun anda.", "interaction_modal.on_another_server": "Di pelayan lain", "interaction_modal.on_this_server": "Pada pelayan ini", - "interaction_modal.title.favourite": "Suka hantaran {name}", - "interaction_modal.title.follow": "Ikuti {name}", - "interaction_modal.title.reblog": "Galak hantaran {name}", - "interaction_modal.title.reply": "Balas siaran {name}", "intervals.full.days": "{number, plural, other {# hari}}", "intervals.full.hours": "{number, plural, other {# jam}}", "intervals.full.minutes": "{number, plural, other {# minit}}", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 4a3749e42a7fbf..a65eab5aa708cd 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -271,10 +271,6 @@ "home.show_announcements": "ကြေညာချက်များကို ပြပါ", "interaction_modal.on_another_server": "တခြားဆာဗာပေါ်တွင်", "interaction_modal.on_this_server": "ဤဆာဗာတွင်", - "interaction_modal.title.favourite": "Favorite {name} ၏ ပို့စ်", - "interaction_modal.title.follow": "{name} ကို စောင့်ကြည့်မယ်", - "interaction_modal.title.reblog": "{name} ၏ ပို့စ်ကို Boost လုပ်ပါ", - "interaction_modal.title.reply": "{name} ၏ ပို့စ်ကို စာပြန်မယ်", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index 02a8ae72e391ec..234298d859ddbc 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "忽略ka-kī主動送ê私人提起ê通知?", "info_button.label": "幫tsān", "info_button.what_is_alt_text": "

    Siánn物是替代文字?

    替代文字kā視覺有障礙、網路速度khah慢,á是beh tshuē頂下文ê lâng,提供圖ê敘述。

    Lí ē當通過寫明白、簡單kap客觀ê替代文字,替逐家改善容易使用性kap幫tsān理解。

    • 掌握重要ê因素
    • 替圖寫摘要ê文字
    • 用規則ê語句結構
    • 避免重複ê資訊
    • 專注佇趨勢kap佇複雜視覺(比如圖表á是地圖)內底tshuē關鍵
    ", - "interaction_modal.action.favourite": "Nā beh繼續,lí tio̍h用你ê口座收藏。", - "interaction_modal.action.follow": "Nā beh繼續,lí tio̍h用你ê口座跟tuè。", - "interaction_modal.action.reblog": "Nā beh繼續,lí tio̍h用你ê口座轉送。", - "interaction_modal.action.reply": "Nā beh繼續,lí tio̍h用你ê口座回應。", - "interaction_modal.action.vote": "Nā beh繼續,lí tio̍h用你ê口座投票。", "interaction_modal.go": "行", "interaction_modal.no_account_yet": "Tsit-má iáu bô口座?", "interaction_modal.on_another_server": "佇無kâng ê服侍器", "interaction_modal.on_this_server": "Tī tsit ê服侍器", - "interaction_modal.title.favourite": "收藏 {name} ê PO文", - "interaction_modal.title.follow": "跟tuè {name}", - "interaction_modal.title.reblog": "轉送 {name} ê PO文", - "interaction_modal.title.reply": "回應 {name} ê PO文", - "interaction_modal.title.vote": "參加 {name} ê投票", "interaction_modal.username_prompt": "比如:{example}", "intervals.full.days": "{number, plural, other {# kang}}", "intervals.full.hours": "{number, plural, other {# 點鐘}}", diff --git a/app/javascript/mastodon/locales/ne.json b/app/javascript/mastodon/locales/ne.json index 360befc1ee220a..a0b99c597385e0 100644 --- a/app/javascript/mastodon/locales/ne.json +++ b/app/javascript/mastodon/locales/ne.json @@ -163,8 +163,6 @@ "home.column_settings.show_reblogs": "बूस्टहरू देखाउनुहोस्", "ignore_notifications_modal.private_mentions_title": "अनावश्यक प्राइवेट उल्लेखहरूबाट आउने सूचनाहरूलाई बेवास्ता गर्न चाहनुहुन्छ?", "interaction_modal.no_account_yet": "अहिलेसम्म खाता छैन?", - "interaction_modal.title.follow": "{name} लाई फलो गर्नुहोस्", - "interaction_modal.title.reblog": "{name} को पोस्ट बुस्ट गर्नुहोस्", "keyboard_shortcuts.boost": "पोस्ट बुस्ट गर्नुहोस्", "keyboard_shortcuts.mention": "लेखकलाई उल्लेख गर्नुहोस्", "mute_modal.they_can_mention_and_follow": "\n\nतिनीहरूले तपाईंलाई उल्लेख गर्न र फलो गर्न सक्छन्, तर तपाईंले तिनीहरूलाई देख्नुहुने छैन।", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index f86021daca08fa..4a90415f285d90 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Meldingen negeren van ongevraagde privéberichten?", "info_button.label": "Help", "info_button.what_is_alt_text": "

    Wat is alt-tekst?

    Alt-tekst biedt beschrijvingen van afbeeldingen voor mensen met een visuele beperking, voor verbindingen met lage internetsnelheid of mensen die op zoek zijn naar extra context.

    Je kunt de toegankelijkheid en de begrijpelijkheid voor iedereen verbeteren door heldere, beknopte en objectieve alt-teksten te schrijven.

    • Leg belangrijke elementen vast
    • Tekst in afbeeldingen samenvatten
    • Een eenvoudige zinsbouw gebruiken
    • Overbodige informatie vermijden
    • Voor complexe diagrammen of kaarten alleen op trends en belangrijke bevindingen focussen
    ", - "interaction_modal.action.favourite": "Om verder te gaan, moet je vanaf je eigen account als favoriet markeren.", - "interaction_modal.action.follow": "Om verder te gaan, moet je vanaf je eigen account volgen.", - "interaction_modal.action.reblog": "Om verder te gaan, moet je vanaf je eigen account boosten.", - "interaction_modal.action.reply": "Om verder te gaan, moet je vanaf je eigen account reageren.", - "interaction_modal.action.vote": "Om verder te gaan, moet je vanaf je eigen account stemmen.", "interaction_modal.go": "Ga", "interaction_modal.no_account_yet": "Heb je nog geen account?", "interaction_modal.on_another_server": "Op een andere server", "interaction_modal.on_this_server": "Op deze server", - "interaction_modal.title.favourite": "Bericht van {name} als favoriet markeren", - "interaction_modal.title.follow": "{name} volgen", - "interaction_modal.title.reblog": "Bericht van {name} boosten", - "interaction_modal.title.reply": "Op het bericht van {name} reageren", - "interaction_modal.title.vote": "Stemmen in {name}'s peiling", "interaction_modal.username_prompt": "Bijv. {example}", "intervals.full.days": "{number, plural, one {# dag} other {# dagen}}", "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}", @@ -905,6 +895,8 @@ "status.quote_error.filtered": "Verborgen door een van je filters", "status.quote_error.not_available": "Bericht niet beschikbaar", "status.quote_error.pending_approval": "Bericht in afwachting", + "status.quote_error.pending_approval_popout.body": "Op Mastodon kun je bepalen of iemand je kan citeren. Dit bericht is in afwachting van de goedkeuring van de oorspronkelijke auteur.", + "status.quote_error.revoked": "Bericht verwijderd door auteur", "status.quote_followers_only": "Alleen volgers mogen dit bericht citeren", "status.quote_manual_review": "De auteur gaat het handmatig beoordelen", "status.quote_policy_change": "Wijzig wie jou mag citeren", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 315eb37c6e501c..0a6dd429bb3fc5 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -239,6 +239,10 @@ "confirmations.missing_alt_text.secondary": "Publiser likevel", "confirmations.missing_alt_text.title": "Legg til alternativ tekst?", "confirmations.mute.confirm": "Demp", + "confirmations.quiet_post_quote_info.dismiss": "Ikkje minn meg på det att", + "confirmations.quiet_post_quote_info.got_it": "Greitt", + "confirmations.quiet_post_quote_info.message": "Når du siterer eit stille offentleg innlegg, blir innlegget ditt gøymt frå offentlege populære tidsliner.", + "confirmations.quiet_post_quote_info.title": "Å sitera stille offentlege innlegg", "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?", @@ -449,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Oversjå varsel frå masseutsende private omtaler?", "info_button.label": "Hjelp", "info_button.what_is_alt_text": "

    Kva er alternativ tekst?

    Alternativ eller skildrande tekst gjev ei skildring av biletet for menneske som har synsvanskar, sein nettilkopling eller dei som ser etter ekstra innhald.

    Du gjer innhaldet ditt meir tilgjengeleg og forståeleg for alle ved å skriva klåre, presise og nøytrale alt-tekstar.

    • Skriv om viktige element
    • Oppsummer tekst i bilete
    • Skriv vanlege setningar
    • Unngå unyttige opplysingar
    • Legg vekt på hovudpunkta i innhaldsrike visuelle element, som grafar eller kart
    ", - "interaction_modal.action.favourite": "Du må favorittmerka frå kontoen din for å halda fram.", - "interaction_modal.action.follow": "Du må fylgja frå kontoen din for å halda fram.", - "interaction_modal.action.reblog": "Du må framheva frå kontoen din for å halda fram.", - "interaction_modal.action.reply": "Du må svara frå kontoen din for å halda fram.", - "interaction_modal.action.vote": "Du må røysta frå kontoen din for å halda fram.", + "interaction_modal.action": "For å handla med innlegget til {name}, må du logga inn på den Mastodon-tenaren du bruker.", "interaction_modal.go": "Gå", "interaction_modal.no_account_yet": "Har du ikkje ein konto enno?", "interaction_modal.on_another_server": "På ein annan tenar", "interaction_modal.on_this_server": "På denne tenaren", - "interaction_modal.title.favourite": "Marker innlegget til {name} som favoritt", - "interaction_modal.title.follow": "Fylg {name}", - "interaction_modal.title.reblog": "Framhev {name} sitt innlegg", - "interaction_modal.title.reply": "Svar på innlegge til {name}", - "interaction_modal.title.vote": "Røyst i {name} si avrøysting", + "interaction_modal.title": "Logg inn for å halda fram", "interaction_modal.username_prompt": "T.d. {example}", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# time} other {# timar}}", @@ -492,6 +488,7 @@ "keyboard_shortcuts.open_media": "Opne media", "keyboard_shortcuts.pinned": "Opne lista over festa tut", "keyboard_shortcuts.profile": "Opne forfattaren sin profil", + "keyboard_shortcuts.quote": "Siter innlegget", "keyboard_shortcuts.reply": "Svar på innlegg", "keyboard_shortcuts.requests": "Opne lista med fylgjeførespurnader", "keyboard_shortcuts.search": "for å fokusera søket", @@ -744,6 +741,7 @@ "privacy.quote.disabled": "{visibility}, ingen kan sitera", "privacy.quote.limited": "{visibility}, avgrensa sitat", "privacy.unlisted.additional": "Dette er akkurat som offentleg, bortsett frå at innlegga ikkje dukkar opp i direktestraumar eller merkelappar, i oppdagingar eller Mastodon-søk, sjølv om du har sagt ja til at kontoen skal vera synleg.", + "privacy.unlisted.long": "Gøymt frå søkjeresultata på Mastodon, og frå populære og offentlege tidsliner", "privacy.unlisted.short": "Stille offentleg", "privacy_policy.last_updated": "Sist oppdatert {date}", "privacy_policy.title": "Personvernsreglar", @@ -766,6 +764,9 @@ "relative_time.minutes": "{number}min", "relative_time.seconds": "{number}sek", "relative_time.today": "i dag", + "remove_quote_hint.button_label": "Greitt", + "remove_quote_hint.message": "Du kan gjera det på {icon} valmenyen.", + "remove_quote_hint.title": "Vil du fjerna det siterte innlegget?", "reply_indicator.attachments": "{count, plural, one {# vedlegg} other {# vedlegg}}", "reply_indicator.cancel": "Avbryt", "reply_indicator.poll": "Avstemming", @@ -861,12 +862,14 @@ "status.block": "Blokker @{name}", "status.bookmark": "Set bokmerke", "status.cancel_reblog_private": "Opphev framheving", + "status.cannot_quote": "Du kan ikkje sitera dette innlegget", "status.cannot_reblog": "Du kan ikkje framheva dette innlegget", "status.context.load_new_replies": "Nye svar finst", "status.context.loading": "Ser etter fleire svar", "status.continued_thread": "Framhald til tråden", "status.copy": "Kopier lenke til status", "status.delete": "Slett", + "status.delete.success": "Innlegget er sletta", "status.detailed_status": "Detaljert samtalevisning", "status.direct": "Nevn @{name} privat", "status.direct_indicator": "Privat omtale", @@ -894,23 +897,32 @@ "status.quote_error.filtered": "Gøymt på grunn av eitt av filtra dine", "status.quote_error.not_available": "Innlegget er ikkje tilgjengeleg", "status.quote_error.pending_approval": "Innlegget ventar", + "status.quote_error.pending_approval_popout.body": "På Mastodon kan du kontrollera om folk får sitera deg. Innlegget ditt ventar medan me ventar på at opphavspersonen godkjenner det.", + "status.quote_error.revoked": "Innlegget er sletta av skribenten", + "status.quote_followers_only": "Berre fylgjarar kan sitera dette innlegget", + "status.quote_manual_review": "Skribenten ser gjennom manuelt", "status.quote_policy_change": "Byt kven som kan sitera", "status.quote_post_author": "Siterte eit innlegg av @{name}", "status.quote_private": "Du kan ikkje sitera private innlegg", "status.quotes": "{count, plural, one {sitat} other {sitat}}", + "status.quotes.empty": "Ingen har sitert dette innlegget enno. Når nokon gje det, vil det dukka opp her.", "status.read_more": "Les meir", "status.reblog": "Framhev", + "status.reblog_or_quote": "Framhev eller siter", + "status.reblog_private": "Del på nytt med fylgjarane dine", "status.reblogged_by": "{name} framheva", "status.reblogs": "{count, plural, one {framheving} other {framhevingar}}", "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.remove_favourite": "Fjern frå favorittar", + "status.remove_quote": "Fjern", "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.request_quote": "Spørsmål om å sitera", "status.revoke_quote": "Fjern innlegget mitt frå @{name} sitt innlegg", "status.sensitive_warning": "Ømtolig innhald", "status.share": "Del", @@ -976,9 +988,14 @@ "visibility_modal.button_title": "Vel vising", "visibility_modal.header": "Vising og samhandling", "visibility_modal.helper.direct_quoting": "Private omtalar som er skrivne på Mastodon kan ikkje siterast av andre.", + "visibility_modal.helper.privacy_editing": "Du kan ikkje endra korleis eit innlegg viser når du har lagt det ut.", + "visibility_modal.helper.privacy_private_self_quote": "Du kan ikkje offentleggjera sjølvsitat av private innlegg.", "visibility_modal.helper.private_quoting": "Innlegg som er skrivne på Mastodon og berre for fylgjarar kan ikkje siterast av andre.", "visibility_modal.helper.unlisted_quoting": "Når folk siterer deg, vil innlegget deira ikkje syna på populære tidsliner.", + "visibility_modal.instructions": "Styr kven som kan samhandla med dette innlegget. Du kan òg bruka desse innstillingane på alle framtidige innlegg ved å gå til Innstillingar > Standard for innlegg.", + "visibility_modal.privacy_label": "Vising", "visibility_modal.quote_followers": "Berre fylgjarar", + "visibility_modal.quote_label": "Kven kan sitera", "visibility_modal.quote_nobody": "Berre eg", "visibility_modal.quote_public": "Allle", "visibility_modal.save": "Lagre" diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 448dbb8df9affe..fa03560194ca4d 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -438,20 +438,10 @@ "ignore_notifications_modal.private_mentions_title": "Overse varsler fra uoppfordrede private omtaler?", "info_button.label": "Hjelp", "info_button.what_is_alt_text": "

    Hva er alternativ tekst?

    Alternativ tekst gir en bildebeskrivelse til folk med nedsatt syn, lav båndbredde eller de som vil ha mer kontekst.

    Du kan forbedre tilgjengeligheten og forståelsen for alle ved å skive en tydelig, konsis og objektiv alternativ tekst.

    • Få med deg viktige elementer
    • Summér tekst i bilder
    • Bruk vanlige setningsstrukturer
    • Unngå overflødig informasjon
    • Fokuser på trender og viktige funn i komplekse grafiske fremstillinger (som diagram og kart)
    ", - "interaction_modal.action.favourite": "Favoriser fra din konto for å fortsette.", - "interaction_modal.action.follow": "Følg fra din konto for å fortsette.", - "interaction_modal.action.reblog": "Du må framheve fra kontoen din for å fortsette.", - "interaction_modal.action.reply": "Svar fra kontoen din for å fortsette.", - "interaction_modal.action.vote": "Stem fra kontoen din for å fortsette.", "interaction_modal.go": "Gå", "interaction_modal.no_account_yet": "Har du ikke en konto ennå?", "interaction_modal.on_another_server": "På en annen server", "interaction_modal.on_this_server": "På denne serveren", - "interaction_modal.title.favourite": "Favorittmarker innlegget til {name}", - "interaction_modal.title.follow": "Følg {name}", - "interaction_modal.title.reblog": "Fremhev {name} sitt innlegg", - "interaction_modal.title.reply": "Svar på {name} sitt innlegg", - "interaction_modal.title.vote": "Stem på {name}s avstemning", "interaction_modal.username_prompt": "For eksempel {example}", "intervals.full.days": "{number, plural,one {# dag} other {# dager}}", "intervals.full.hours": "{number, plural, one {# time} other {# timer}}", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 7ae918a676728e..0d87228ea1a412 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -257,9 +257,6 @@ "home.show_announcements": "Mostrar las anóncias", "interaction_modal.on_another_server": "Sus un autre servidor", "interaction_modal.on_this_server": "Sus aqueste servidor", - "interaction_modal.title.follow": "Sègre {name}", - "interaction_modal.title.reblog": "Partejar la publicacion de {name}", - "interaction_modal.title.reply": "Respondre a la publicacion de {name}", "intervals.full.days": "{number, plural, one {# jorn} other {# jorns}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 50756eebbf0cc2..cd20e4bce04656 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -288,11 +288,6 @@ "interaction_modal.no_account_yet": "ਹਾਲੇ ਖਾਤਾ ਨਹੀਂ ਹੈ?", "interaction_modal.on_another_server": "ਵੱਖਰੇ ਸਰਵਰ ਉੱਤੇ", "interaction_modal.on_this_server": "ਇਸ ਸਰਵਰ ਉੱਤੇ", - "interaction_modal.title.favourite": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ", - "interaction_modal.title.follow": "{name} ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ", - "interaction_modal.title.reblog": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰੋ", - "interaction_modal.title.reply": "{name} ਦੀ ਪੋਸਟ ਦਾ ਜਵਾਬ ਦਿਓ", - "interaction_modal.title.vote": "{name} ਦੀ ਚੋਣ ਵਾਸਤੇ ਵੋਟ ਪਾਓ", "interaction_modal.username_prompt": "ਜਿਵੇਂ {example}", "intervals.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}}", "intervals.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}}", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 8c5802b89f0ef7..5bde8c26dd47dc 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -449,20 +449,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorować powiadomienia od niechcianych wzmianek bezpośrednich?", "info_button.label": "Pomoc", "info_button.what_is_alt_text": "

    Czym jest tekst alternatywny?

    Tekst alternatywny zawiera opisy zdjęć dla osób niedowidzących, korzystających z połączeń o niskiej przepustowości lub szukających dodatkowego kontekstu.

    \n

    Możesz poprawić dostępność i czytelność dla wszystkich, pisząc jasny, zwięzły i precyzyjny tekst alternatywny.

    \n
      \n
    • Podkreśl ważne elementy
    • \n
    • Streść tekst widoczny na zdjęciach
    • \n
    • Używaj poprawnej struktury zdań
    • \n
    • Unikaj zbędnych informacji
    • \n
    • Skoncentruj się na kluczowych informacjach zawartych w złożonych wizualizacjach (takich jak diagramy lub mapy)
    • \n
    ", - "interaction_modal.action.favourite": "Aby kontynuować, musisz polubić ze swojego konta.", - "interaction_modal.action.follow": "Aby kontynuować, musisz obserwować ze swojego konta.", - "interaction_modal.action.reblog": "Aby kontynuować, musisz podbić ze swojego konta.", - "interaction_modal.action.reply": "Aby kontynuować, musisz komentować ze swojego konta.", - "interaction_modal.action.vote": "Aby kontynuować, musisz zagłosować ze swojego konta.", "interaction_modal.go": "Dalej", "interaction_modal.no_account_yet": "Nie masz jeszcze konta?", "interaction_modal.on_another_server": "Na innym serwerze", "interaction_modal.on_this_server": "Na tym serwerze", - "interaction_modal.title.favourite": "Polub wpis {name}", - "interaction_modal.title.follow": "Obserwuj {name}", - "interaction_modal.title.reblog": "Podbij wpis {name}", - "interaction_modal.title.reply": "Odpowiedz na post {name}", - "interaction_modal.title.vote": "Głosuj w ankiecie {name}", "interaction_modal.username_prompt": "Np. {example}", "intervals.full.days": "{number, plural, one {# dzień} few {# dni} many {# dni} other {# dni}}", "intervals.full.hours": "{number, plural, one {# godzina} few {# godziny} many {# godzin} other {# godzin}}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 93798ed26d2879..103c3bcf2bb24b 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -449,20 +449,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorar notificações de menções privadas não solicitadas?", "info_button.label": "Ajuda", "info_button.what_is_alt_text": "

    O que é texto alternativo?

    O texto alternativo fornece descrições de imagens para pessoas com deficiências visuais, conexões de internet de baixa largura de banda ou aquelas que buscam mais contexto.

    Você pode melhorar a acessibilidade e a compreensão para todos escrevendo texto alternativo claro, conciso e objetivo.

    • Capture elementos importantes
    • Resuma textos em imagens
    • Use estrutura de frases regular
    • Evite informações redundantes
    • Foque em tendências e descobertas principais em visuais complexos (como diagramas ou mapas)
    ", - "interaction_modal.action.favourite": "Para continuar, você precisa favoritar na sua conta.", - "interaction_modal.action.follow": "Para continuar, você precisa seguir da sua conta.", - "interaction_modal.action.reblog": "Para continuar, você precisa impulsionar na sua conta.", - "interaction_modal.action.reply": "Para continuar, você precisa responder na sua conta.", - "interaction_modal.action.vote": "Para continuar, você precisa votar na sua conta.", "interaction_modal.go": "Ir", "interaction_modal.no_account_yet": "Não possui uma conta ainda?", "interaction_modal.on_another_server": "Em um servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.title.favourite": "Favoritar publicação de {name}", - "interaction_modal.title.follow": "Seguir {name}", - "interaction_modal.title.reblog": "Impulsionar publicação de {name}", - "interaction_modal.title.reply": "Responder à publicação de {name}", - "interaction_modal.title.vote": "Votar na enquete de {name}", "interaction_modal.username_prompt": "p. e.x.: {example}", "intervals.full.days": "{number, plural, one {# dia} other {# dias}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 846ed93a0d454b..bc82a2b7f5f148 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "Ignorar notificações de menções privadas não solicitadas?", "info_button.label": "Ajuda", "info_button.what_is_alt_text": "

    O que é texto alternativo?

    O texto alternativo fornece descrições de imagens para pessoas com deficiências visuais, ligações de baixa largura de banda ou pessoas que procuram um contexto adicional.

    Pode melhorar a acessibilidade e a compreensão de todos escrevendo um texto alternativo claro, conciso e objetivo.

    • Capte os elementos importantes
    • Resuma o texto em imagens
    • Use uma estrutura de frase regular
    • Evite informações redundantes
    • Concentre-se nas tendências e principais conclusões em imagens complexas (como diagramas ou mapas)
    ", - "interaction_modal.action.favourite": "Para continuar, tens de adicionar um favorito na tua conta.", - "interaction_modal.action.follow": "Para continuar, tens de seguir alguém na tua conta.", - "interaction_modal.action.reblog": "Para continuar, tens de impulsionar desde a tua conta.", - "interaction_modal.action.reply": "Para continuar, tens de fazer uma resposta na tua conta.", - "interaction_modal.action.vote": "Para continuar é necessário votar a partir da tua conta.", "interaction_modal.go": "Ir", "interaction_modal.no_account_yet": "Ainda não tens conta?", "interaction_modal.on_another_server": "Num servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.title.favourite": "Assinalar a publicação de {name} como favorita", - "interaction_modal.title.follow": "Seguir {name}", - "interaction_modal.title.reblog": "Impulsionar a publicação de {name}", - "interaction_modal.title.reply": "Responder à publicação de {name}", - "interaction_modal.title.vote": "Votar na sondagem de {name}", "interaction_modal.username_prompt": "Por exemplo: {example}", "intervals.full.days": "{number, plural, one {# dia} other {# dias}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 814a388fb70725..ce3dde8eeaf207 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -294,9 +294,6 @@ "home.show_announcements": "Afișează anunțurile", "interaction_modal.on_another_server": "Pe un alt server", "interaction_modal.on_this_server": "Pe acest server", - "interaction_modal.title.follow": "Urmărește pe {name}", - "interaction_modal.title.reblog": "Distribuie postarea lui {name}", - "interaction_modal.title.reply": "Răspunde postării lui {name}", "intervals.full.days": "{number, plural, one {o zi} few {# zile} other {# de zile}}", "intervals.full.hours": "{number, plural, one {o oră} few {# ore} other {# de ore}}", "intervals.full.minutes": "{number, plural, one {un minut} few {# minute} other {# de minute}}", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index d9978f29177744..28881068dc4c8e 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -239,15 +239,19 @@ "confirmations.missing_alt_text.secondary": "Опубликовать", "confirmations.missing_alt_text.title": "Добавить альтернативный текст?", "confirmations.mute.confirm": "Игнорировать", + "confirmations.quiet_post_quote_info.dismiss": "Больше не показывать", + "confirmations.quiet_post_quote_info.got_it": "Понятно", + "confirmations.quiet_post_quote_info.message": "Если вы цитируете публикацию, опубликованную в открытом доступе, ваша публикация будет скрыта от новостных лент.", + "confirmations.quiet_post_quote_info.title": "Цитирование тихих публичных постов", "confirmations.redraft.confirm": "Удалить и исправить", "confirmations.redraft.message": "Вы уверены, что хотите удалить этот пост и создать его заново? Взаимодействия, такие как добавление в избранное и продвижение, будут потеряны, а ответы к оригинальному посту перестанут на него ссылаться.", "confirmations.redraft.title": "Удалить и создать пост заново?", "confirmations.remove_from_followers.confirm": "Убрать подписчика", "confirmations.remove_from_followers.message": "Пользователь {name} перестанет быть подписан на вас. Продолжить?", "confirmations.remove_from_followers.title": "Убрать подписчика?", - "confirmations.revoke_quote.confirm": "Убрать пост", - "confirmations.revoke_quote.message": "Это действие невозможно отменить.", - "confirmations.revoke_quote.title": "Убрать пост?", + "confirmations.revoke_quote.confirm": "Удалить публикацию", + "confirmations.revoke_quote.message": "Это действие нельзя будет отменить.", + "confirmations.revoke_quote.title": "Удалить публикацию?", "confirmations.unfollow.confirm": "Отписаться", "confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?", "confirmations.unfollow.title": "Отписаться?", @@ -292,6 +296,7 @@ "domain_pill.your_handle": "Ваш адрес:", "domain_pill.your_server": "Ваш цифровой дом, где находятся все ваши посты. Если вам не нравится этот сервер, вы можете в любое время перенести свою учётную запись на другой сервер, не теряя подписчиков.", "domain_pill.your_username": "Ваш уникальный идентификатор на этом сервере. На разных серверах могут встречаться люди с тем же именем пользователя.", + "dropdown.empty": "Выберите опцию", "embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:", "embed.preview": "Так это будет выглядеть:", "emoji_button.activity": "Занятия", @@ -448,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Игнорировать уведомления о нежелательных личных упоминаниях?", "info_button.label": "Помощь", "info_button.what_is_alt_text": "

    Что это такое?

    Альтернативный текст содержит описание изображения для людей с ограничениями зрения, медленным интернетом и для тех, кому нужен дополнительный контекст.

    Вы можете улучшить доступность и понимание для всех, написав чёткий, краткий и объективный альтернативный текст.

    • Уловите важные элементы
    • Перескажите текстовую информацию на изображении
    • Используйте правильную структуру предложений
    • Избегайте избыточной информации
    • Сосредоточьтесь на тенденциях и ключевых выводах при описании сложных визуализаций, таких как диаграммы или карты
    ", - "interaction_modal.action.favourite": "Вы можете добавить этот пост в избранное со своей учётной записью.", - "interaction_modal.action.follow": "Вы можете подписаться со своей учётной записью.", - "interaction_modal.action.reblog": "Вы можете продвинуть этот пост со своей учётной записью.", - "interaction_modal.action.reply": "Вы можете ответить на этот пост со своей учётной записью.", - "interaction_modal.action.vote": "Вы можете проголосовать в этом опросе со своей учётной записью.", + "interaction_modal.action": "Для взаимодействия с сообщением {name} необходимо войти в свою учетную запись на любом сервере Mastodon.", "interaction_modal.go": "Вперёд!", "interaction_modal.no_account_yet": "У вас нет никакой учётной записи?", "interaction_modal.on_another_server": "На другом сервере", "interaction_modal.on_this_server": "На этом сервере", - "interaction_modal.title.favourite": "Добавить пост {name} в избранное", - "interaction_modal.title.follow": "Подписаться на {name}", - "interaction_modal.title.reblog": "Продвинуть пост {name}", - "interaction_modal.title.reply": "Ответить на пост {name}", - "interaction_modal.title.vote": "Голосовать в опросе {name}", + "interaction_modal.title": "Войдите, чтобы продолжить", "interaction_modal.username_prompt": "Например, {example}", "intervals.full.days": "{number, plural, one {# день} few {# дня} other {# дней}}", "intervals.full.hours": "{number, plural, one {# час} few {# часа} other {# часов}}", @@ -482,6 +479,7 @@ "keyboard_shortcuts.home": "перейти к домашней ленте", "keyboard_shortcuts.hotkey": "Горячая клавиша", "keyboard_shortcuts.legend": "показать эту справку", + "keyboard_shortcuts.load_more": "Акцент на кнопке «Загрузить ещё»", "keyboard_shortcuts.local": "перейти к локальной ленте", "keyboard_shortcuts.mention": "упомянуть автора поста", "keyboard_shortcuts.muted": "открыть список игнорируемых пользователей", @@ -490,6 +488,7 @@ "keyboard_shortcuts.open_media": "открыть медиа", "keyboard_shortcuts.pinned": "перейти к закреплённым постам", "keyboard_shortcuts.profile": "перейти к профилю автора", + "keyboard_shortcuts.quote": "Цитировать пост", "keyboard_shortcuts.reply": "ответить", "keyboard_shortcuts.requests": "перейти к запросам на подписку", "keyboard_shortcuts.search": "перейти к поиску", @@ -502,7 +501,7 @@ "keyboard_shortcuts.unfocus": "убрать фокус с поля ввода/поиска", "keyboard_shortcuts.up": "вверх по списку", "learn_more_link.got_it": "Понятно", - "learn_more_link.learn_more": "Узнать больше", + "learn_more_link.learn_more": "Подробнее", "lightbox.close": "Закрыть", "lightbox.next": "Далее", "lightbox.previous": "Назад", @@ -618,6 +617,7 @@ "notification.moderation_warning.action_suspend": "Ваша учётная запись была заблокирована.", "notification.own_poll": "Ваш опрос завершился", "notification.poll": "Опрос, в котором вы приняли участие, завершился", + "notification.quoted_update": "{name} отредактировал процитированное вами сообщение", "notification.reblog": "{name} продвинул(а) ваш пост", "notification.reblog.name_and_others_with_link": "{name} и ещё {count, plural, one {# пользователь} few {# пользователя} other {# пользователей}} продвинули ваш пост", "notification.relationships_severance_event": "Разорвана связь с {name}", @@ -737,10 +737,18 @@ "privacy.private.short": "Для подписчиков", "privacy.public.long": "Для кого угодно в интернете", "privacy.public.short": "Публичный", + "privacy.quote.anyone": "{visibility}, каждый может процитировать", + "privacy.quote.disabled": "{visibility}, цитаты отключены", + "privacy.quote.limited": "{visibility}, цитаты ограничены", "privacy.unlisted.additional": "Похоже на «Публичный» за исключением того, что пост не появится ни в живых лентах, ни в лентах хештегов, ни в разделе «Актуальное», ни в поиске Mastodon, даже если вы разрешили поиск по своим постам в настройках профиля.", + "privacy.unlisted.long": "Скрыто от результатов поиска Mastodon, трендов и публичных графиков", "privacy.unlisted.short": "Тихий публичный", "privacy_policy.last_updated": "Последнее обновление: {date}", "privacy_policy.title": "Политика конфиденциальности", + "quote_error.poll": "Цитирование не допускается при голосовании.", + "quote_error.quote": "Одновременно допускается только одна цитата.", + "quote_error.unauthorized": "Вы не имеете права цитировать этот пост.", + "quote_error.upload": "Цитирование с использованием медиа вложений запрещено.", "recommended": "Рекомендуется", "refresh": "Обновить", "regeneration_indicator.please_stand_by": "Пожалуйста, подождите.", @@ -756,6 +764,9 @@ "relative_time.minutes": "{number} мин.", "relative_time.seconds": "{number} с.", "relative_time.today": "сегодня", + "remove_quote_hint.button_label": "Понятно", + "remove_quote_hint.message": "Вы можете сделать это из меню настроек {icon}.", + "remove_quote_hint.title": "Хотите удалить цитируемый вами пост?", "reply_indicator.attachments": "{count, plural, one {# вложение} few {# вложения} other {# вложений}}", "reply_indicator.cancel": "Отмена", "reply_indicator.poll": "Опрос", @@ -847,15 +858,18 @@ "status.admin_account": "Открыть интерфейс модератора для @{name}", "status.admin_domain": "Открыть интерфейс модератора для {domain}", "status.admin_status": "Открыть этот пост в интерфейсе модератора", + "status.all_disabled": "Бусты и цитаты отключены", "status.block": "Заблокировать @{name}", "status.bookmark": "Добавить в закладки", "status.cancel_reblog_private": "Отменить продвижение", + "status.cannot_quote": "Цитаты отключены на этой публикации", "status.cannot_reblog": "Этот пост не может быть продвинут", "status.context.load_new_replies": "Доступны новые ответы", "status.context.loading": "Проверяем, есть ли ещё ответы", "status.continued_thread": "Продолжение предыдущего поста", "status.copy": "Скопировать ссылку на пост", "status.delete": "Удалить", + "status.delete.success": "Пост удален", "status.detailed_status": "Подробный просмотр обсуждения", "status.direct": "Упомянуть @{name} лично", "status.direct_indicator": "Личное упоминание", @@ -878,22 +892,38 @@ "status.mute_conversation": "Игнорировать обсуждение", "status.open": "Открыть пост", "status.pin": "Закрепить в профиле", + "status.quote": "Цитировать", + "status.quote.cancel": "Отменить цитирование", "status.quote_error.filtered": "Скрыто одним из ваших фильтров", "status.quote_error.not_available": "Пост недоступен", "status.quote_error.pending_approval": "Пост ожидает подтверждения", + "status.quote_error.pending_approval_popout.body": "На Mastodon вы можете контролировать, будет ли кто-то цитировать вас. Этот пост находится на рассмотрении, пока мы не получим одобрение автора.", + "status.quote_error.revoked": "Сообщение удалено автором", + "status.quote_followers_only": "Только подписчики могут цитировать этот пост", + "status.quote_manual_review": "Автор будет проверять вручную", + "status.quote_policy_change": "Измените, кто может цитировать", + "status.quote_post_author": "Пост цитировал @{name}", + "status.quote_private": "Приватные записи не могут быть цитированы", + "status.quotes": "{count, plural, one {# голос} few {# голоса} many {# голосов} other {# голосов}}", + "status.quotes.empty": "Никто еще не цитировал этот пост. Когда кто-нибудь это сделает, он появится здесь.", "status.read_more": "Читать далее", "status.reblog": "Продвинуть", + "status.reblog_or_quote": "Буст или цитата", + "status.reblog_private": "Поделиться снова со своими подписчиками", "status.reblogged_by": "{name} продвинул(а)", "status.reblogs": "{count, plural, one {продвижение} few {продвижения} other {продвижений}}", "status.reblogs.empty": "Никто ещё не продвинул этот пост. Все пользователи, которые продвинут этот пост, будут показаны здесь.", "status.redraft": "Удалить и исправить", "status.remove_bookmark": "Убрать из закладок", "status.remove_favourite": "Убрать из избранного", + "status.remove_quote": "Удалить", "status.replied_in_thread": "Ответил(а) в обсуждении", "status.replied_to": "Ответил(а) {name}", "status.reply": "Ответить", "status.replyAll": "Ответить в обсуждении", "status.report": "Пожаловаться на @{name}", + "status.request_quote": "Запрос на цитирование", + "status.revoke_quote": "Удалить мой пост из поста @{name}", "status.sensitive_warning": "Медиа деликатного характера", "status.share": "Поделиться", "status.show_less_all": "Свернуть все предупреждения о содержании в ветке", @@ -931,6 +961,7 @@ "upload_button.label": "Прикрепить фото, видео или аудио", "upload_error.limit": "Превышено максимальное количество вложений.", "upload_error.poll": "К опросам нельзя прикреплять файлы.", + "upload_error.quote": "К опросам нельзя прикреплять файлы.", "upload_form.drag_and_drop.instructions": "Чтобы выбрать вложение, нажмите \"Пробел\" (Space) или \"Ввод\" (Enter). Используйте клавиши со стрелками, чтобы передвинуть вложение в любом направлении. Нажмите \"Пробел\" (Space) или \"Ввод\" (Enter) ещё раз, чтобы переместить вложение на новое место, либо нажмите кнопку \"Выйти\" (Escape) для отмены перемещения.", "upload_form.drag_and_drop.on_drag_cancel": "Перемещение отменено. Вложение {item} было оставлено на прежнем месте.", "upload_form.drag_and_drop.on_drag_end": "Вложение {item} было перемещено.", @@ -953,5 +984,14 @@ "video.skip_forward": "Перемотка вперёд", "video.unmute": "Включить звук", "video.volume_down": "Громкость уменьшена", - "video.volume_up": "Громкость увеличена" + "video.volume_up": "Громкость увеличена", + "visibility_modal.button_title": "Настроить видимость", + "visibility_modal.header": "Видимость и взаимодействие", + "visibility_modal.helper.direct_quoting": "Частные упоминания, созданные на Mastodon не могут быть цитированы другими.", + "visibility_modal.helper.privacy_editing": "После публикации поста его видимость нельзя изменить.", + "visibility_modal.helper.privacy_private_self_quote": "Цитаты из личных сообщений не могут быть опубликованы публично.", + "visibility_modal.helper.private_quoting": "Публикации на Mastodon, доступные исключительно подписчикам, не подлежат цитированию со стороны других пользователей.", + "visibility_modal.helper.unlisted_quoting": "Когда люди цитируют вас, их посты также скрываются из ленты трендов.", + "visibility_modal.instructions": "Регулируйте, кто сможет взаимодействовать с этим сообщением. Также можно установить параметры для всех будущих публикаций, перейдя в Настройки > Стандартные параметры публикации.", + "visibility_modal.privacy_label": "Видимость" } diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 7daaf7f03d7f48..b9c13df0581965 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -242,9 +242,6 @@ "home.show_announcements": "विज्ञापनानि दर्शय", "interaction_modal.on_another_server": "अन्यस्मिन्सर्वरि", "interaction_modal.on_this_server": "अस्मिन्सर्वरि", - "interaction_modal.title.follow": "{name} अनुसर", - "interaction_modal.title.reblog": "{name} नाम्ना उपभोक्तुः पत्रं बुस्त्कुरु", - "interaction_modal.title.reply": "{name} नाम्ना उपभोक्तुःपत्रं प्रतिवादय", "intervals.full.days": "{number, plural, one {# दिनम्} other {# दिनानि}}", "intervals.full.hours": "{number, plural, one {# होरा} other {# होराः}}", "intervals.full.minutes": "{number, plural, one {# क्षणम्} other {# क्षणानि}}", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 2dc48e51118ec2..d126379384efd4 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -376,8 +376,6 @@ "interaction_modal.no_account_yet": "Non tenes galu perunu contu?", "interaction_modal.on_another_server": "In un'àteru serbidore", "interaction_modal.on_this_server": "In custu serbidore", - "interaction_modal.title.follow": "Sighi a {name}", - "interaction_modal.title.reply": "Risponde a sa publicatzione de {name}", "interaction_modal.username_prompt": "Pro es., {example}", "intervals.full.days": "{number, plural, one {# die} other {# dies}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index 0f6043a13f2a98..52445feced9435 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -237,9 +237,6 @@ "home.show_announcements": "Shaw annooncements", "interaction_modal.on_another_server": "On a different server", "interaction_modal.on_this_server": "On this server", - "interaction_modal.title.follow": "Follae {name}", - "interaction_modal.title.reblog": "Heeze {name}'s post", - "interaction_modal.title.reply": "Reply tae {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# oor} other {# oors}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minties}}", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 73cc10a6da64ea..107ef3f1cf6901 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -427,20 +427,10 @@ "ignore_notifications_modal.private_mentions_title": "අයාචිත පෞද්ගලික සඳහන් කිරීම් වලින් ලැබෙන දැනුම්දීම් නොසලකා හරින්නද?", "info_button.label": "උදව්", "info_button.what_is_alt_text": "

    alt පෙළ යනු කුමක්ද?

    දෘශ්‍යාබාධිත, අඩු කලාප පළල සම්බන්ධතා ඇති පුද්ගලයින් හෝ අමතර සන්දර්භයක් සොයන අය සඳහා Alt පෙළ රූප විස්තර සපයයි.

    පැහැදිලි, සංක්ෂිප්ත සහ වෛෂයික alt පෙළ ලිවීමෙන් ඔබට සැමට ප්‍රවේශ්‍යතාව සහ අවබෝධය වැඩි දියුණු කළ හැකිය.

    • වැදගත් අංග ග්‍රහණය කරගන්න
    • රූපවල පෙළ සාරාංශ කරන්න
    • නිත්‍ය වාක්‍ය ව්‍යුහය භාවිතා කරන්න
    • අතිරික්ත තොරතුරු වලින් වළකින්න
    • සංකීර්ණ දෘශ්‍යවල (රූප සටහන් හෝ සිතියම් වැනි) ප්‍රවණතා සහ ප්‍රධාන සොයාගැනීම් කෙරෙහි අවධානය යොමු කරන්න
    ", - "interaction_modal.action.favourite": "ඉදිරියට යාමට, ඔබ ඔබේ ගිණුමෙන් ප්‍රියතම කළ යුතුය.", - "interaction_modal.action.follow": "ඉදිරියට යාමට, ඔබ ඔබේ ගිණුමෙන් අනුගමනය කළ යුතුය.", - "interaction_modal.action.reblog": "ඉදිරියට යාමට, ඔබ ඔබේ ගිණුමෙන් නැවත බ්ලොග් කළ යුතුය.", - "interaction_modal.action.reply": "ඉදිරියට යාමට, ඔබ ඔබේ ගිණුමෙන් පිළිතුරු දිය යුතුය.", - "interaction_modal.action.vote": "ඉදිරියට යාමට, ඔබ ඔබේ ගිණුමෙන් ඡන්දය දිය යුතුය.", "interaction_modal.go": "යන්න", "interaction_modal.no_account_yet": "තවම ගිණුමක් නැද්ද?", "interaction_modal.on_another_server": "වෙනත් සේවාදායකයක", "interaction_modal.on_this_server": "මෙම සේවාදායකයෙහි", - "interaction_modal.title.favourite": "{name}ගේ ලිපිය ප්‍රිය කරන්න", - "interaction_modal.title.follow": "{name} අනුගමනය", - "interaction_modal.title.reblog": "{name}ගේ සටහන වැඩි කරන්න", - "interaction_modal.title.reply": "{name}ගේ ලිපියට පිළිතුරු", - "interaction_modal.title.vote": "{name}ගේ මත විමසුමට ඡන්දය දෙන්න", "interaction_modal.username_prompt": "උදා {example}", "intervals.full.days": "{number, plural, one {දවස් #} other {දවස් #}}", "intervals.full.hours": "{number, plural, one {පැය #} other {පැය #}}", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index ba6ebfc03f2c2d..771f52618c4390 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -384,19 +384,10 @@ "ignore_notifications_modal.not_following_title": "Nevšímať si oznámenia od ľudí, ktorých nenasleduješ?", "ignore_notifications_modal.private_mentions_title": "Nevšímať si oznámenia o nevyžiadaných súkromných spomínaniach?", "info_button.label": "Pomoc", - "interaction_modal.action.favourite": "Pre pokračovanie si musíš obľúbiť zo svojho účtu.", - "interaction_modal.action.follow": "Pre pokračovanie musíš nasledovať zo svojho účtu.", - "interaction_modal.action.reply": "Pre pokračovanie musíš odpovedať s tvojho účtu.", - "interaction_modal.action.vote": "Pre pokračovanie musíš hlasovať s tvojho účtu.", "interaction_modal.go": "Prejdi", "interaction_modal.no_account_yet": "Ešte nemáš účet?", "interaction_modal.on_another_server": "Na inom serveri", "interaction_modal.on_this_server": "Na tomto serveri", - "interaction_modal.title.favourite": "Ohviezdičkovať príspevok od {name}", - "interaction_modal.title.follow": "Sledovať {name}", - "interaction_modal.title.reblog": "Zdieľať príspevok od {name}", - "interaction_modal.title.reply": "Odpovedať na príspevok od {name}", - "interaction_modal.title.vote": "Hlasuj v ankete od {name}", "interaction_modal.username_prompt": "Napr. {example}", "intervals.full.days": "{number, plural, one {# deň} few {# dni} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodín} other {# hodín}}", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 04e944216b918e..9127605dbafed5 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -403,20 +403,10 @@ "ignore_notifications_modal.private_mentions_title": "Naj prezrem obvestila od nezaželenih zasebnih omemb?", "info_button.label": "Pomoč", "info_button.what_is_alt_text": "

    Kaj je nadomestno besedilo?

    Z nadomestnim besedilom dodatno opišemo sliko in tako pomagamo slabovidnim, ljudem s slabo internetno povezavo in tistim, ki jim manjka kontekst.

    Vaša objava bo veliko bolj dostopna in razumljiva, če boste napisali jasno, jedrnato in nepristransko nadomestno besedilo.

    • Izpostavite pomembne elemente.
    • Povzemite besedilo v slikah.
    • Pišite v celih stavkih.
    • Zajemite bistvo, ne dolgovezite.
    • Opišite težnje in ključna odkritja, ki ste jih razbrali iz zapletenih grafik (npr. diagramov ali zemljevidov).
    ", - "interaction_modal.action.favourite": "Med priljubljene lahko dodate, ko se vpišete v svoj račun.", - "interaction_modal.action.follow": "Sledite lahko šele, ko se vpišete v svoj račun.", - "interaction_modal.action.reblog": "Izpostavite lahko šele, ko se vpišete v svoj račun.", - "interaction_modal.action.reply": "Odgovorite lahko šele, ko se vpišete v svoj račun.", - "interaction_modal.action.vote": "Glasujete lahko šele, ko se vpišete v svoj račun.", "interaction_modal.go": "Naprej", "interaction_modal.no_account_yet": "Še nimate računa?", "interaction_modal.on_another_server": "Na drugem strežniku", "interaction_modal.on_this_server": "Na tem strežniku", - "interaction_modal.title.favourite": "Daj objavo {name} med priljubljene", - "interaction_modal.title.follow": "Sledi {name}", - "interaction_modal.title.reblog": "Izpostavi objavo {name}", - "interaction_modal.title.reply": "Odgovori na objavo {name}", - "interaction_modal.title.vote": "Izpolni anketo uporabnika/ce {name}", "interaction_modal.username_prompt": "Npr. {example}", "intervals.full.days": "{number, plural, one {# dan} two {# dni} few {# dni} other {# dni}}", "intervals.full.hours": "{number, plural, one {# ura} two {# uri} few {# ure} other {# ur}}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 106906b875b376..56db9a5ac3645c 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -440,20 +440,10 @@ "ignore_notifications_modal.private_mentions_title": "Të shpërfillen njoftime nga Përmendje Private të pakërkuara?", "info_button.label": "Ndihmë", "info_button.what_is_alt_text": "

    Ç’është teksti alternativ?

    Teksti alternativ jep përshkrime figurash për persona me mangësi në të parët, lidhje me gjerësi bande të ulët, ose për ata që duan kontekst shtesë.

    Mund të përmirësoni përdorimin nga persona me aftësi të kufizuara dhe kuptimin për këto, duke shkruar tekst alternativ të qartë, konciz dhe objektiv.

    • Rrokni elementët e rëndësishëm
    • Përmblidhni tekst në figura
    • Përdorni strukturë të rregullt fjalish
    • Shmangni përsëritje informacioni
    • Në aspekte pamore të ndërlikuara (fjala vjen, diagrame ose harta) përqendrohuni te prirje dhe gjetje gjërash kyçe
    ", - "interaction_modal.action.favourite": "Që të vazhdoni, lypset t’i vini shenjë si i parapëlqyer që nga llogaria juaj.", - "interaction_modal.action.follow": "Që të vazhdoni, lypset ta ndiqni që nga llogaria juaj.", - "interaction_modal.action.reblog": "Që të vazhdoni, lypset ta riblogoni që nga llogaria juaj.", - "interaction_modal.action.reply": "Që të vazhdoni, lypset të përgjigjeni që nga llogaria juaj.", - "interaction_modal.action.vote": "Që të vazhdoni, lypset të votoni që nga llogaria juaj.", "interaction_modal.go": "Shko", "interaction_modal.no_account_yet": "S’keni ende një llogari?", "interaction_modal.on_another_server": "Në një tjetër shërbyes", "interaction_modal.on_this_server": "Në këtë shërbyes", - "interaction_modal.title.favourite": "Bëje të parapëlqyer postimin e {name}", - "interaction_modal.title.follow": "Ndiq {name}", - "interaction_modal.title.reblog": "Përforconi postimin e {name}", - "interaction_modal.title.reply": "Përgjigjuni postimit të {name}", - "interaction_modal.title.vote": "Votoni te pyetësori nga {name}", "interaction_modal.username_prompt": "P.sh., {example}", "intervals.full.days": "{number, plural, one {# ditë} other {# ditë}}", "intervals.full.hours": "{number, plural, one {# orë} other {# orë}}", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 77d1135aa369cf..8cb2e30cb5f82e 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -328,10 +328,6 @@ "home.show_announcements": "Prijaži najave", "interaction_modal.on_another_server": "Na drugom serveru", "interaction_modal.on_this_server": "Na ovom serveru", - "interaction_modal.title.favourite": "Označi objavu korisnika {name} kao omiljenu", - "interaction_modal.title.follow": "Zaprati {name}", - "interaction_modal.title.reblog": "Podrži objavu korisnika {name}", - "interaction_modal.title.reply": "Odgovori na objavu korisnika {name}", "intervals.full.days": "{number, plural, one {# dan} few {# dana} other {# dana}}", "intervals.full.hours": "{number, plural, one {# sat} few {# sata} other {# sati}}", "intervals.full.minutes": "{number, plural, one {# minut} few {# minuta} other {# minuta}}", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 2dc428b30c031a..485109105b8e7b 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -328,10 +328,6 @@ "home.show_announcements": "Пријажи најаве", "interaction_modal.on_another_server": "На другом серверу", "interaction_modal.on_this_server": "На овом серверу", - "interaction_modal.title.favourite": "Означи објаву корисника {name} као омиљену", - "interaction_modal.title.follow": "Запрати {name}", - "interaction_modal.title.reblog": "Подржи објаву корисника {name}", - "interaction_modal.title.reply": "Одговори на објаву корисника {name}", "intervals.full.days": "{number, plural, one {# дан} few {# дана} other {# дана}}", "intervals.full.hours": "{number, plural, one {# сат} few {# сата} other {# сати}}", "intervals.full.minutes": "{number, plural, one {# минут} few {# минута} other {# минута}}", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 5f5bbe77e714ad..3bbe6434ed8e39 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -450,20 +450,10 @@ "ignore_notifications_modal.private_mentions_title": "Vill du ignorera aviseringar från oombedda privata omnämnanden?", "info_button.label": "Hjälp", "info_button.what_is_alt_text": "

    Vad är alt-text?

    alt-text ger bildbeskrivningar för personer med synnedsättning, anslutningar med låg bandbredd eller de som söker extra sammanhang.

    Du kan förbättra tillgängligheten och förståelsen för alla genom att skriva en tydlig, koncis och objektiv alt-text.

    • Fånga viktiga element
    • Sammanfatta text i bilder
    • Använd vanlig meningsstruktur
    • Undvik överflödig information
    • Fokus på trender och viktiga resultat i komplexa bilder (som diagram eller kartor)
    ", - "interaction_modal.action.favourite": "För att fortsätta, måste du favoritmarkera från ditt konto.", - "interaction_modal.action.follow": "För att fortsätta, måste du följa från ditt konto.", - "interaction_modal.action.reblog": "För att fortsätta, måste du boosta från ditt konto.", - "interaction_modal.action.reply": "För att fortsätta, måste du svara från ditt konto.", - "interaction_modal.action.vote": "För att fortsätta, måste du rösta från ditt konto.", "interaction_modal.go": "Vidare", "interaction_modal.no_account_yet": "Har du inget konto än?", "interaction_modal.on_another_server": "På en annan server", "interaction_modal.on_this_server": "På denna server", - "interaction_modal.title.favourite": "Favoritmarkera {name}s inlägg", - "interaction_modal.title.follow": "Följ {name}", - "interaction_modal.title.reblog": "Boosta {name}s inlägg", - "interaction_modal.title.reply": "Svara på {name}s inlägg", - "interaction_modal.title.vote": "Rösta i {name}s enkät", "interaction_modal.username_prompt": "T.ex. {example}", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# timme} other {# timmar}}", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 312cee2cf3973c..a1fade41ca66c0 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -416,20 +416,10 @@ "ignore_notifications_modal.not_following_title": "เพิกเฉยการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม?", "ignore_notifications_modal.private_mentions_title": "เพิกเฉยการแจ้งเตือนจากการกล่าวถึงแบบส่วนตัวที่ไม่พึงประสงค์?", "info_button.label": "ช่วยเหลือ", - "interaction_modal.action.favourite": "เพื่อดำเนินการต่อ คุณจำเป็นต้องชื่นชอบจากบัญชีของคุณ", - "interaction_modal.action.follow": "เพื่อดำเนินการต่อ คุณจำเป็นต้องติดตามจากบัญชีของคุณ", - "interaction_modal.action.reblog": "เพื่อดำเนินการต่อ คุณจำเป็นต้องดันจากบัญชีของคุณ", - "interaction_modal.action.reply": "เพื่อดำเนินการต่อ คุณจำเป็นต้องตอบกลับจากบัญชีของคุณ", - "interaction_modal.action.vote": "เพื่อดำเนินการต่อ คุณจำเป็นต้องลงคะแนนจากบัญชีของคุณ", "interaction_modal.go": "ไป", "interaction_modal.no_account_yet": "ยังไม่มีบัญชี?", "interaction_modal.on_another_server": "ในเซิร์ฟเวอร์อื่น", "interaction_modal.on_this_server": "ในเซิร์ฟเวอร์นี้", - "interaction_modal.title.favourite": "ชื่นชอบโพสต์ของ {name}", - "interaction_modal.title.follow": "ติดตาม {name}", - "interaction_modal.title.reblog": "ดันโพสต์ของ {name}", - "interaction_modal.title.reply": "ตอบกลับโพสต์ของ {name}", - "interaction_modal.title.vote": "ลงคะแนนในการสำรวจความคิดเห็นของ {name}", "interaction_modal.username_prompt": "เช่น {example}", "intervals.full.days": "{number, plural, other {# วัน}}", "intervals.full.hours": "{number, plural, other {# ชั่วโมง}}", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index b02a9b72f0beed..dbc6b4b871c73d 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -390,20 +390,10 @@ "ignore_notifications_modal.ignore": " o kute ala e mu", "info_button.label": "sona", "info_button.what_is_alt_text": "

    toki pi sona lukin li seme?

    toki ni li pana e sona tan sitelen lukin tawa jan mute ni: ona li ken ala lukin. ona li wile e sona namako.

    sina ken pana e sona pona kepeken nasin ni:

    • o toki pona.
    • o toki e ijo suli lon sitelen.
    • o toki lili e nimi lon sitelen.
    • o toki suli ala e ijo lili.
    ", - "interaction_modal.action.favourite": "sina wile pana e pona tawa jan ni la, o kama lon sijelo sina.", - "interaction_modal.action.follow": "sina wile kute e jan ni la, o kama lon sijelo sina.", - "interaction_modal.action.reblog": "sina wile pana sin e toki ni la, o kama lon sijelo sina.", - "interaction_modal.action.reply": "sina wile toki tawa lipu ni la, o kama lon sijelo sina.", - "interaction_modal.action.vote": "sina wile pana e wile tawa lipu ni la, o kama lon sijelo sina.", "interaction_modal.go": "o tawa", "interaction_modal.no_account_yet": "sina jo ala e sijelo anu seme?", "interaction_modal.on_another_server": "lon ma ante", "interaction_modal.on_this_server": "lon ma ni", - "interaction_modal.title.favourite": "o pona tawa {name}", - "interaction_modal.title.follow": "o kute e {name}", - "interaction_modal.title.reblog": "o pana sin e toki tan {name}", - "interaction_modal.title.reply": "o toki lon lipu tawa {name}", - "interaction_modal.title.vote": "o pana e sona wile tawa {name}", "interaction_modal.username_prompt": "ni li sama ni: {example}", "intervals.full.days": "ni li pini lon {number, plural, other {tenpo suno #}}", "intervals.full.hours": "ni li pini lon {number, plural, other {tenpo ilo #}}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index d101f3b7c27055..4e95baa451dd82 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -451,20 +451,10 @@ "ignore_notifications_modal.private_mentions_title": "İstenmeyen özel bahsetmelerden gelen bildirimleri yoksay?", "info_button.label": "Yardım", "info_button.what_is_alt_text": "

    Alternatif metin nedir?

    Alternatif metin, görme bozukluğu olan, düşük bant genişliğine sahip bağlantıları olan veya ekstra bağlam arayan kişiler için görsel açıklamaları sağlar.

    Net, sade ve nesnel alternatif metin yazarak herkes için erişilebilirliği ve anlaşılabilirliği iyileştirebilirsiniz.

    • Önemlileri yakalayın
    • Resimlerdeki metni özetleyin
    • Düzenli cümle yapısı kullanın
    • Gereksiz bilgilerden kaçının
    • Karmaşık görsellerde (şemalar veya haritalar gibi) trendlere ve temel bulgulara odaklanın
    ", - "interaction_modal.action.favourite": "Devam etmek için, hesabınızı kullanarak beğenmelisiniz.", - "interaction_modal.action.follow": "Devam etmek için, hesabınızı kullanarak takip etmelisiniz.", - "interaction_modal.action.reblog": "Devam etmek için, hesabınızı kullanarak tekrar göndermelisiniz.", - "interaction_modal.action.reply": "Devam etmek için, hesabınızı kullanarak yanıt vermelisiniz.", - "interaction_modal.action.vote": "Devam etmek için, hesabınızı kullanarak oylamalısınız.", "interaction_modal.go": "Git", "interaction_modal.no_account_yet": "Henüz bir hesabınız yok mu?", "interaction_modal.on_another_server": "Farklı bir sunucuda", "interaction_modal.on_this_server": "Bu sunucuda", - "interaction_modal.title.favourite": "{name} kişisinin gönderisini favorilerine ekle", - "interaction_modal.title.follow": "{name} kişisini takip et", - "interaction_modal.title.reblog": "{name} kişisinin gönderisini yeniden paylaş", - "interaction_modal.title.reply": "{name} kişisinin gönderisine yanıt ver", - "interaction_modal.title.vote": "{name} kullanıcısının anketinde oy kullan", "interaction_modal.username_prompt": "Örnek: {example}", "intervals.full.days": "{number, plural, one {# gün} other {# gün}}", "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index a56107081e7b81..4c454c37fb23be 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -227,9 +227,6 @@ "home.show_announcements": "Белдерүләр бирегез", "interaction_modal.on_another_server": "Башка серверда", "interaction_modal.on_this_server": "Бу серверда", - "interaction_modal.title.follow": "Иярү {name}", - "interaction_modal.title.reblog": "Арттыру {name} сак", - "interaction_modal.title.reply": "Җавап {name} сак", "intervals.full.days": "{number, plural, one {# көн} other {# көн}}", "intervals.full.hours": "{number, plural, one {# сәгать} other {# сәгать}}", "intervals.full.minutes": "{number, plural, one {# минут} other {# минут}}", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index d85f36890d0a65..913ef41d74495b 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -420,20 +420,12 @@ "ignore_notifications_modal.private_mentions_title": "Ігнорувати сповіщення від небажаних приватних згадок?", "info_button.label": "Довідка", "info_button.what_is_alt_text": "

    Що таке альтернативний текст?

    Альтернативний текст містить описи зображень для людей з вадами зору, низькошвидкісними з'єднаннями або тих, хто шукає додатковий контекст.

    Ви можете покращити доступність і розуміння для всіх, написавши чіткий та лаконічний альтернативний текст.

    • Позначайте важливі елементи
    • Охоплюйте текст у картинках
    • Використовуйте звичайну структуру речень
    • Уникайте надлишкової інформації
    • Зосередьтеся на тенденціях і ключових висновках у складних візуальних формах (наприклад, діаграмах або картах)
    ", - "interaction_modal.action.favourite": "Щоб продовжити, потрібно додати улюблене з вашого облікового запису.", - "interaction_modal.action.follow": "Щоб іти далі, потрібно підписатися з вашого облікового запису.", - "interaction_modal.action.reblog": "Щоб іти далі, потрібно зробити реблог з вашого облікового запису.", - "interaction_modal.action.reply": "Щоб іти далі, потрібно відповісти з вашого облікового запису.", - "interaction_modal.action.vote": "Щоб іти далі, потрібно проголосувати з вашим обліковим записом.", + "interaction_modal.action": "Щоб взаємодіяти з {name}, вам потрібно увійти в свій обліковий запис на будь-якому сервері Mastodon.", "interaction_modal.go": "Вперед", "interaction_modal.no_account_yet": "Ще не зареєстровані?", "interaction_modal.on_another_server": "На іншому сервері", "interaction_modal.on_this_server": "На цьому сервері", - "interaction_modal.title.favourite": "Уподобати допис {name}", - "interaction_modal.title.follow": "Підписатися на {name}", - "interaction_modal.title.reblog": "Поширити допис {name}", - "interaction_modal.title.reply": "Відповісти на допис {name}", - "interaction_modal.title.vote": "Проголосувати в опитуванні {name}", + "interaction_modal.title": "Увійдіть, щоб продовжити", "interaction_modal.username_prompt": "Наприклад, %{example}", "intervals.full.days": "{number, plural, one {# день} few {# дні} other {# днів}}", "intervals.full.hours": "{number, plural, one {# година} few {# години} other {# годин}}", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index d651b9501ca964..d4b37a32f7b7bc 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -235,9 +235,6 @@ "home.show_announcements": "E'lonlarni ko'rsatish", "interaction_modal.on_another_server": "Boshqa serverda", "interaction_modal.on_this_server": "Shu serverda", - "interaction_modal.title.follow": "{name} ga ergashing", - "interaction_modal.title.reblog": "{name}ning postini boost qilish", - "interaction_modal.title.reply": "{name} postiga javob bering", "keyboard_shortcuts.back": "Orqaga qaytish", "keyboard_shortcuts.blocked": "to open blocked users list", "keyboard_shortcuts.boost": "Postni boost qilish", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 13b9bbc853709d..43119e3c7e96d5 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -453,20 +453,10 @@ "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?", "info_button.label": "Trợ giúp", "info_button.what_is_alt_text": "

    Văn bản thay thế là gì?

    Văn bản thay thế giúp mô tả hình ảnh cho những người khiếm thị, kết nối mạng chậm hoặc đơn giản là bổ sung ngữ cảnh.

    Bạn có thể cải thiện khả năng tiếp cận và giải thích kỹ hơn cho mọi người bằng cách viết văn bản thay thế rõ ràng, ngắn gọn và khách quan.

    • Nắm bắt thành phần quan trọng
    • Tóm tắt văn bản trong hình
    • Dùng cấu trúc câu đơn
    • Tránh giải thích rối rắm
    • Tập trung vào các xu hướng và kết luận chính trong hình ảnh phức tạp (như biểu đồ hoặc bản đồ)
    ", - "interaction_modal.action.favourite": "Bạn cần dùng tài khoản của mình để thích.", - "interaction_modal.action.follow": "Bạn cần dùng tài khoản của mình để theo dõi.", - "interaction_modal.action.reblog": "Bạn cần dùng tài khoản của mình để đăng lại.", - "interaction_modal.action.reply": "Bạn cần dùng tài khoản của mình để trả lời.", - "interaction_modal.action.vote": "Bạn cần dùng tài khoản của mình để vốt.", "interaction_modal.go": "Đi", "interaction_modal.no_account_yet": "Chưa có tài khoản?", "interaction_modal.on_another_server": "Trên máy chủ khác", "interaction_modal.on_this_server": "Trên máy chủ này", - "interaction_modal.title.favourite": "Thích tút của {name}", - "interaction_modal.title.follow": "Theo dõi {name}", - "interaction_modal.title.reblog": "Đăng lại tút của {name}", - "interaction_modal.title.reply": "Trả lời tút của {name}", - "interaction_modal.title.vote": "Vốt cùng {name}", "interaction_modal.username_prompt": "Ví dụ: {example}", "intervals.full.days": "{number, plural, other {# ngày}}", "intervals.full.hours": "{number, plural, other {# giờ}}", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index f8e309a08570be..388639c13de591 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -453,20 +453,10 @@ "ignore_notifications_modal.private_mentions_title": "是否忽略不请自来的私下提及?", "info_button.label": "帮助", "info_button.what_is_alt_text": "

    什么是替代文本?

    替代文本为视力障碍者、低带宽连接用户或需要额外背景信息的用户提供图像描述。

    通过编写清晰、简洁、客观的替代文本,可以提升所有人的可访问性和理解力。

    • 捕捉重要元素
    • 总结图像中的文本
    • 使用常规句子结构
    • 避免冗余信息
    • 关注复杂视觉内容(如图表或地图)中的趋势和关键信息
    ", - "interaction_modal.action.favourite": "你需要切换到自己的账号,再发送喜欢。", - "interaction_modal.action.follow": "你需要切换到自己的账号,再进行关注。", - "interaction_modal.action.reblog": "你需要切换到自己的账号,再进行转嘟。", - "interaction_modal.action.reply": "你需要切换到自己的账号,再发送回复。", - "interaction_modal.action.vote": "你需要切换到自己的账号,再发送投票。", "interaction_modal.go": "跳转", "interaction_modal.no_account_yet": "还没有账号?", "interaction_modal.on_another_server": "在另一服务器", "interaction_modal.on_this_server": "在此服务器", - "interaction_modal.title.favourite": "喜欢 {name} 的嘟文", - "interaction_modal.title.follow": "关注 {name}", - "interaction_modal.title.reblog": "转发 {name} 的嘟文", - "interaction_modal.title.reply": "回复 {name} 的嘟文", - "interaction_modal.title.vote": "参与 {name} 的投票", "interaction_modal.username_prompt": "例如: {example}", "intervals.full.days": "{number} 天", "intervals.full.hours": "{number} 小时", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 4d61d7b69d966c..1637e1cf589219 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -354,10 +354,6 @@ "info_button.label": "幫助", "interaction_modal.on_another_server": "於不同伺服器", "interaction_modal.on_this_server": "於此伺服器", - "interaction_modal.title.favourite": "把 {name} 的帖文加入最愛", - "interaction_modal.title.follow": "追蹤 {name}", - "interaction_modal.title.reblog": "轉發 {name} 的帖文", - "interaction_modal.title.reply": "回覆 {name} 的帖文", "intervals.full.days": "{number, plural, one {# 天} other {# 天}}", "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}", "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 8d8a0a86a1da74..225e252068ed76 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -453,20 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "忽略來自不請自來私訊之推播通知?", "info_button.label": "幫助", "info_button.what_is_alt_text": "

    何謂 ALT 說明文字?

    ALT 說明文字為視覺障礙者、低網路頻寬或尋求額外上下文語境的人們提供圖片描述。

    您可以透過撰寫清晰、簡潔及客觀的說明文字以替所有人改善無障礙特性與協助理解。

    • 掌握幾個重要元素
    • 替圖片提供文字摘要
    • 使用常規行文結構
    • 避免冗贅資訊
    • 聚焦於趨勢與複雜視覺中之關鍵(如圖表或地圖)
    ", - "interaction_modal.action.favourite": "若欲繼續,您必須自您的帳號加入最愛。", - "interaction_modal.action.follow": "若欲繼續,您必須自您的帳號跟隨。", - "interaction_modal.action.reblog": "若欲繼續,您必須自您的帳號轉嘟。", - "interaction_modal.action.reply": "若欲繼續,您必須自您的帳號回覆。", - "interaction_modal.action.vote": "若欲繼續,您必須自您的帳號投票。", + "interaction_modal.action": "若欲與 {name} 之嘟文互動,您必須登入您帳號所註冊之 Mastodon 伺服器。", "interaction_modal.go": "Go!", "interaction_modal.no_account_yet": "仍尚未有帳號嗎?", "interaction_modal.on_another_server": "於不同伺服器", "interaction_modal.on_this_server": "於此伺服器", - "interaction_modal.title.favourite": "將 {name} 之嘟文加入最愛", - "interaction_modal.title.follow": "跟隨 {name}", - "interaction_modal.title.reblog": "轉嘟 {name} 的嘟文", - "interaction_modal.title.reply": "回覆 {name} 的嘟文", - "interaction_modal.title.vote": "參與 {name} 之投票", + "interaction_modal.title": "請先登入以繼續", "interaction_modal.username_prompt": "例如 {example}", "intervals.full.days": "{number, plural, other {# 天}}", "intervals.full.hours": "{number, plural, other {# 小時}}", diff --git a/config/locales/nn.yml b/config/locales/nn.yml index bad44da6531e3f..15999049db8ea2 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1739,6 +1739,9 @@ nn: self_vote: Du kan ikkje stemme i di eiga avstemming too_few_options: må ha meir enn eitt element too_many_options: kan ikkje ha meir enn %{max} element + vote: Røyst + posting_defaults: + explanation: Desse innstillingane vil bli brukte som standardval når du skriv nye innlegg, men du kan redigera dei for kvart innlegg når du skriv. preferences: other: Anna posting_defaults: Innleggsstandarder @@ -1915,8 +1918,10 @@ nn: title: "%{name}: «%{quote}»" visibilities: direct: Privat omtale + private: Berre fylgjarar public: Offentleg public_long: Alle på og utanfor Mastodon + unlisted: Stille offentleg unlisted_long: Gøymt frå søkjeresultat, populært og offentleg på Mastodon statuses_cleanup: enabled: Slett gamle innlegg automatisk diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml index aba9f55001cbb2..d7aa7ad4193405 100644 --- a/config/locales/simple_form.nn.yml +++ b/config/locales/simple_form.nn.yml @@ -56,6 +56,8 @@ nn: scopes: API-ane som programmet vil få tilgjenge til. Ettersom du vel eit toppnivåomfang tarv du ikkje velja einskilde API-ar. setting_aggregate_reblogs: Ikkje vis nye framhevingar for tut som nyleg har vorte heva fram (Påverkar berre nylege framhevingar) setting_always_send_emails: Vanlegvis vil ikkje e-postvarsel bli sendt når du brukar Mastodon aktivt + setting_default_quote_policy_private: Innlegg som er skrivne på Mastodon og berre for fylgjarar kan ikkje siterast av andre. + setting_default_quote_policy_unlisted: Når folk siterer deg, vil innlegget deira ikkje syna på populære tidsliner. setting_default_sensitive: Sensitive media vert gøymde som standard, og du syner dei ved å klikka på dei setting_display_media_default: Gøym media som er merka som sensitive setting_display_media_hide_all: Alltid skjul alt media From 41ab10f88cab53a0aec61841be237a048cc96be3 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 16 Sep 2025 12:24:58 +0200 Subject: [PATCH 51/81] =?UTF-8?q?Change=20wording=20of=20disabled=20quote?= =?UTF-8?q?=20state=20to=20=E2=80=9CYou=20are=20not=20allowed=20to=20quote?= =?UTF-8?q?=20this=20post=E2=80=9D=20(#36129)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/mastodon/api_types/quotes.ts | 1 + app/javascript/mastodon/components/status/boost_button_utils.ts | 2 +- app/javascript/mastodon/locales/en.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/api_types/quotes.ts b/app/javascript/mastodon/api_types/quotes.ts index b4fe380d5222db..f42a3eb7289024 100644 --- a/app/javascript/mastodon/api_types/quotes.ts +++ b/app/javascript/mastodon/api_types/quotes.ts @@ -4,6 +4,7 @@ export type ApiQuoteState = 'accepted' | 'pending' | 'revoked' | 'unauthorized'; export type ApiQuotePolicy = | 'public' | 'followers' + | 'following' | 'nobody' | 'unsupported_policy'; export type ApiUserQuotePolicy = 'automatic' | 'manual' | 'denied' | 'unknown'; diff --git a/app/javascript/mastodon/components/status/boost_button_utils.ts b/app/javascript/mastodon/components/status/boost_button_utils.ts index 2c40cb2b2840a4..daf21e9176df03 100644 --- a/app/javascript/mastodon/components/status/boost_button_utils.ts +++ b/app/javascript/mastodon/components/status/boost_button_utils.ts @@ -21,7 +21,7 @@ export const messages = defineMessages({ quote: { id: 'status.quote', defaultMessage: 'Quote' }, quote_cannot: { id: 'status.cannot_quote', - defaultMessage: 'Quotes are disabled on this post', + defaultMessage: 'You are not allowed to quote this post', }, quote_followers_only: { id: 'status.quote_followers_only', diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 89de5db5ea6007..e88cc16eacad49 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -862,7 +862,7 @@ "status.block": "Block @{name}", "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Unboost", - "status.cannot_quote": "Quotes are disabled on this post", + "status.cannot_quote": "You are not allowed to quote this post", "status.cannot_reblog": "This post cannot be boosted", "status.context.load_new_replies": "New replies available", "status.context.loading": "Checking for more replies", From d1402af0b21b2df9488993d7a28f7074d3743c90 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 16 Sep 2025 14:23:44 +0200 Subject: [PATCH 52/81] Change reblog button to immediately show the interaction modal when logged out (#36138) --- .../components/status/boost_button.tsx | 31 +++++-------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/app/javascript/mastodon/components/status/boost_button.tsx b/app/javascript/mastodon/components/status/boost_button.tsx index 33f4b1a7289314..64bda4dcaac942 100644 --- a/app/javascript/mastodon/components/status/boost_button.tsx +++ b/app/javascript/mastodon/components/status/boost_button.tsx @@ -97,11 +97,7 @@ export const StatusBoostButton: FC = ({ highlighted: wasBoosted, disabled: boostItem.disabled, action: (event) => { - if (isLoggedIn) { - dispatch(toggleReblog(statusId, event.shiftKey)); - } else { - showLoginPrompt(); - } + dispatch(toggleReblog(statusId, event.shiftKey)); }, }, { @@ -112,33 +108,22 @@ export const StatusBoostButton: FC = ({ icon: quoteItem.iconComponent, disabled: quoteItem.disabled, action: () => { - if (isLoggedIn) { - dispatch(quoteComposeById(statusId)); - } else { - showLoginPrompt(); - } + dispatch(quoteComposeById(statusId)); }, }, ] satisfies [ActionMenuItemWithIcon, ActionMenuItemWithIcon]; - }, [ - dispatch, - intl, - isLoggedIn, - showLoginPrompt, - statusId, - statusState, - wasBoosted, - ]); + }, [dispatch, intl, statusId, statusState, wasBoosted]); const boostIcon = items[0].icon; const handleDropdownOpen = useCallback( (event: MouseEvent | KeyboardEvent) => { + if (!isLoggedIn) { + showLoginPrompt(); + return false; + } + if (event.shiftKey) { - if (!isLoggedIn) { - showLoginPrompt(); - return false; - } dispatch(toggleReblog(status.get('id'), true)); return false; } From d9b70bbde13b78709b48be6c979bc7520e81520a Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 16 Sep 2025 16:25:21 +0200 Subject: [PATCH 53/81] Fix login page linking to other pages within OAuth authorization flow (#36115) --- app/helpers/application_helper.rb | 4 ++++ app/views/auth/sessions/new.html.haml | 3 ++- app/views/layouts/auth.html.haml | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 807baba1454a2d..80cff698298688 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -260,6 +260,10 @@ def app_store_url_android 'https://play.google.com/store/apps/details?id=org.joinmastodon.android' end + def within_authorization_flow? + session[:user_return_to].present? && Rails.application.routes.recognize_path(session[:user_return_to])[:controller] == 'oauth/authorizations' + end + private def storage_host_var diff --git a/app/views/auth/sessions/new.html.haml b/app/views/auth/sessions/new.html.haml index 89903581a2b429..67b958d38c167e 100644 --- a/app/views/auth/sessions/new.html.haml +++ b/app/views/auth/sessions/new.html.haml @@ -41,4 +41,5 @@ - resource_class.omniauth_providers.each do |provider| = provider_sign_in_link(provider) -.form-footer= render 'auth/shared/links' +- unless within_authorization_flow? + .form-footer= render 'auth/shared/links' diff --git a/app/views/layouts/auth.html.haml b/app/views/layouts/auth.html.haml index c351e356318fb8..bdbcc84e1f3d21 100644 --- a/app/views/layouts/auth.html.haml +++ b/app/views/layouts/auth.html.haml @@ -5,8 +5,11 @@ .container-alt .logo-container %h1 - = link_to root_path do + - if within_authorization_flow? = logo_as_symbol(:wordmark) + - else + = link_to root_path do + = logo_as_symbol(:wordmark) .form-container = render 'flashes' From f884e780af708e79071820fe8e7d9b3a37074307 Mon Sep 17 00:00:00 2001 From: "KMY (Yuki Asuka)" Date: Wed, 17 Sep 2025 03:56:19 +0000 Subject: [PATCH 54/81] Fix test --- .../mastodon/components/status/boost_button.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/components/status/boost_button.tsx b/app/javascript/mastodon/components/status/boost_button.tsx index af86e9df43ac9d..449ce9f9757afb 100644 --- a/app/javascript/mastodon/components/status/boost_button.tsx +++ b/app/javascript/mastodon/components/status/boost_button.tsx @@ -19,8 +19,7 @@ import type { RenderItemFn, RenderItemFnHandlers } from '../dropdown_menu'; import { Dropdown, DropdownMenuItemContent } from '../dropdown_menu'; import { IconButton } from '../icon_button'; -import type { - MenuItemState} from './boost_button_utils'; +import type { MenuItemState } from './boost_button_utils'; import { boostItemState, messages, @@ -168,7 +167,15 @@ export const StatusBoostButton: FC = ({ ActionMenuItemWithIcon, ActionMenuItemWithIcon, ]; - }, [dispatch, intl, statusId, statusState, wasBoosted]); + }, [ + dispatch, + intl, + statusId, + statusState, + wasBoosted, + statusUrl, + isQuoteUiDisabled, + ]); const boostIcon = items[0].icon; From 3055afd1d2dfedd7c0e75591883712e11cc13f9a Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Wed, 17 Sep 2025 16:08:55 +0900 Subject: [PATCH 55/81] Fix applying user's default quote policy if API parameter is not specified (#36132) --- .../api/interaction_policies_concern.rb | 2 +- spec/requests/api/v1/statuses_spec.rb | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/api/interaction_policies_concern.rb b/app/controllers/concerns/api/interaction_policies_concern.rb index e374998c0376ac..3e319f6be9ef00 100644 --- a/app/controllers/concerns/api/interaction_policies_concern.rb +++ b/app/controllers/concerns/api/interaction_policies_concern.rb @@ -14,7 +14,7 @@ def quote_approval_policy when 'nobody' 0 when nil - current_user.setting_default_quote_policy + Status::QUOTE_APPROVAL_POLICY_FLAGS[current_user.setting_default_quote_policy&.to_sym] << 16 else # TODO: raise more useful message raise ActiveRecord::RecordInvalid diff --git a/spec/requests/api/v1/statuses_spec.rb b/spec/requests/api/v1/statuses_spec.rb index ba18623302e51c..7a6cb81899721a 100644 --- a/spec/requests/api/v1/statuses_spec.rb +++ b/spec/requests/api/v1/statuses_spec.rb @@ -158,6 +158,28 @@ end end + context 'without a quote policy', feature: :outgoing_quotes do + let(:user) do + Fabricate(:user, settings: { default_quote_policy: 'followers' }) + end + + it 'returns post with user default quote policy, as well as rate limit headers', :aggregate_failures do + subject + expect(user.setting_default_quote_policy).to eq 'followers' + + expect(response).to have_http_status(200) + expect(response.content_type) + .to start_with('application/json') + expect(response.parsed_body[:quote_approval]).to include({ + automatic: ['followers'], + manual: [], + current_user: 'automatic', + }) + expect(response.headers['X-RateLimit-Limit']).to eq RateLimiter::FAMILIES[:statuses][:limit].to_s + expect(response.headers['X-RateLimit-Remaining']).to eq (RateLimiter::FAMILIES[:statuses][:limit] - 1).to_s + end + end + context 'with a quote policy', feature: :outgoing_quotes do let(:quoted_status) { Fabricate(:status, account: user.account) } let(:params) do From ff03938808dd274d2a1aab1c3e024301ce03a9db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 09:27:03 +0200 Subject: [PATCH 56/81] New Crowdin Translations (automated) (#36143) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 1 - app/javascript/mastodon/locales/be.json | 4 +++- app/javascript/mastodon/locales/br.json | 1 - app/javascript/mastodon/locales/cs.json | 4 +++- app/javascript/mastodon/locales/cy.json | 1 - app/javascript/mastodon/locales/da.json | 2 +- app/javascript/mastodon/locales/de.json | 2 +- app/javascript/mastodon/locales/el.json | 1 - app/javascript/mastodon/locales/eo.json | 1 - app/javascript/mastodon/locales/es-AR.json | 2 +- app/javascript/mastodon/locales/es-MX.json | 2 +- app/javascript/mastodon/locales/es.json | 2 +- app/javascript/mastodon/locales/et.json | 1 - app/javascript/mastodon/locales/fa.json | 1 - app/javascript/mastodon/locales/fi.json | 2 +- app/javascript/mastodon/locales/fo.json | 2 +- app/javascript/mastodon/locales/fr-CA.json | 1 - app/javascript/mastodon/locales/fr.json | 1 - app/javascript/mastodon/locales/ga.json | 3 ++- app/javascript/mastodon/locales/gd.json | 15 +++++++++++++++ app/javascript/mastodon/locales/gl.json | 3 ++- app/javascript/mastodon/locales/he.json | 1 - app/javascript/mastodon/locales/hu.json | 1 - app/javascript/mastodon/locales/ia.json | 1 - app/javascript/mastodon/locales/is.json | 2 +- app/javascript/mastodon/locales/it.json | 4 +++- app/javascript/mastodon/locales/ko.json | 1 - app/javascript/mastodon/locales/nan.json | 1 - app/javascript/mastodon/locales/nl.json | 6 ++++-- app/javascript/mastodon/locales/nn.json | 1 - app/javascript/mastodon/locales/pl.json | 1 - app/javascript/mastodon/locales/pt-PT.json | 1 - app/javascript/mastodon/locales/ru.json | 1 - app/javascript/mastodon/locales/tr.json | 18 ++++++++++++++++++ app/javascript/mastodon/locales/vi.json | 1 - app/javascript/mastodon/locales/zh-CN.json | 4 +++- app/javascript/mastodon/locales/zh-TW.json | 2 +- config/locales/simple_form.tr.yml | 2 ++ config/locales/tr.yml | 5 +++++ 39 files changed, 69 insertions(+), 36 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 6d80746a1374c5..414a7c04070111 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -849,7 +849,6 @@ "status.block": "احجب @{name}", "status.bookmark": "أضفه إلى الفواصل المرجعية", "status.cancel_reblog_private": "إلغاء إعادة النشر", - "status.cannot_quote": "الاقتباسات معطلة على هذا المنشور", "status.cannot_reblog": "لا يمكن إعادة نشر هذا المنشور", "status.context.load_new_replies": "الردود الجديدة المتاحة", "status.context.loading": "التحقق من المزيد من الردود", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 2eb287b1e92840..60b0582c035463 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ігнараваць апавяшчэнні пра непажаданыя прыватныя згадванні?", "info_button.label": "Даведка", "info_button.what_is_alt_text": "

    Што такое альтэрнатыўны тэкст?

    Альтэрнатыўны тэкст апісвае відарыс людзям з парушэннем зроку, павольным злучэннем або тым, каму патрэбны дадатковы кантэкст.

    Вы можаце зрабіць відарыс больш дасяжным і зразумелым для ўсіх, напісаўшы зразумелы, сціслы і аб'ектыўны альтэрнатыўны тэкст.

    • Ахоплівайце важныя элементы
    • Тлумачце тэкст на відарысе
    • Карыстайцеся звычайнымі сказамі
    • Пазбягайце залішняй інфармацыі
    • Засяроджвайцеся на тэндэнцыях і ключавых высновах у цяжкіх для разумення візуальных матэрыялах (напрыклад, дыяграмах або картах)
    ", + "interaction_modal.action": "Каб узаемадзейнічаць з допісам {name}, Вам трэба ўвайсці ў свой уліковы запіс на любым серверы Mastodon, якім Вы карыстаецеся.", "interaction_modal.go": "Перайсці", "interaction_modal.no_account_yet": "Не маеце ўліковага запісу?", "interaction_modal.on_another_server": "На іншым серверы", "interaction_modal.on_this_server": "На гэтым серверы", + "interaction_modal.title": "Увайдзіце, каб працягнуць", "interaction_modal.username_prompt": "Напр., {example}", "intervals.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}", "intervals.full.hours": "{number, plural, one {# гадзіна} few {# гадзіны} many {# гадзін} other {# гадзіны}}", @@ -860,7 +862,7 @@ "status.block": "Заблакіраваць @{name}", "status.bookmark": "Дадаць закладку", "status.cancel_reblog_private": "Прыбраць", - "status.cannot_quote": "Цытаванне адключанае для гэтага допісу", + "status.cannot_quote": "Вы не маеце дазвол цытаваць гэты допіс", "status.cannot_reblog": "Гэты допіс нельга пашырыць", "status.context.load_new_replies": "Даступныя новыя адказы", "status.context.loading": "Правяраюцца новыя адказы", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 92cf683bce1667..d07301d8b9f7b3 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -652,7 +652,6 @@ "status.block": "Stankañ @{name}", "status.bookmark": "Ouzhpennañ d'ar sinedoù", "status.cancel_reblog_private": "Nac'hañ ar skignadenn", - "status.cannot_quote": "N'haller ket menegiñ an embannadur-mañ", "status.cannot_reblog": "Ar c'hannad-se na c'hall ket bezañ skignet", "status.context.load_new_replies": "Respontoù nevez zo", "status.context.loading": "O kerc'hat muioc'h a respontoù", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 20b7b6b9c48cd2..36fcd1c9356ba1 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignorovat oznámení z nevyžádaných soukromých zmínek?", "info_button.label": "Nápověda", "info_button.what_is_alt_text": "

    Co je to alt text?

    Alt text poskytuje popis obrázků pro lidi se zrakovými postižením, špatným připojením něbo těm, kteří potřebují více kontextu.

    Můžete zlepšit přístupnost a porozumění napsáním jasného, stručného a objektivního alt textu.

    • Zachyťte důležité prvky
    • Shrňte text v obrázku
    • Použijte pravidelnou větnou skladbu
    • Vyhněte se nadbytečným informacím
    • U komplexních vizualizací (diagramy, mapy...) se zaměřte na trendy a klíčová zjištění
    ", + "interaction_modal.action": "Chcete-li interagovat s příspěvkem {name}, budete se muset přihlásit do vašeho účtu na Mastodon serveru, který používáte.", "interaction_modal.go": "Přejít", "interaction_modal.no_account_yet": "Ještě nemáte účet?", "interaction_modal.on_another_server": "Na jiném serveru", "interaction_modal.on_this_server": "Na tomto serveru", + "interaction_modal.title": "Chcete-li pokračovat, přihlaste se", "interaction_modal.username_prompt": "např. {example}", "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}", @@ -860,7 +862,7 @@ "status.block": "Blokovat @{name}", "status.bookmark": "Přidat do záložek", "status.cancel_reblog_private": "Zrušit boostnutí", - "status.cannot_quote": "Citování je na tomo příspěvku zakázáno", + "status.cannot_quote": "Nemáte oprávnění citovat tento příspěvek", "status.cannot_reblog": "Tento příspěvek nemůže být boostnutý", "status.context.load_new_replies": "K dispozici jsou nové odpovědi", "status.context.loading": "Hledání dalších odpovědí", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 73e9a4734e8a57..ddff142317f472 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -860,7 +860,6 @@ "status.block": "Rhwystro @{name}", "status.bookmark": "Nod tudalen", "status.cancel_reblog_private": "Dadhybu", - "status.cannot_quote": "Mae dyfyniadau wedi'u hanalluogi ar y postiad hwn", "status.cannot_reblog": "Does dim modd hybu'r postiad hwn", "status.context.load_new_replies": "Mae atebion newydd ar gael", "status.context.loading": "Yn chwilio am fwy o atebion", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index aa046c295c7a24..a3fdba3778578f 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -862,7 +862,7 @@ "status.block": "Blokér @{name}", "status.bookmark": "Bogmærk", "status.cancel_reblog_private": "Fjern fremhævelse", - "status.cannot_quote": "Citater er deaktiveret på dette indlæg", + "status.cannot_quote": "Du har ikke tilladelse til at citere dette indlæg", "status.cannot_reblog": "Dette indlæg kan ikke fremhæves", "status.context.load_new_replies": "Nye svar tilgængelige", "status.context.loading": "Tjekker for flere svar", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 9dc8178696b3d0..df93bb56b5704c 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -862,7 +862,7 @@ "status.block": "@{name} blockieren", "status.bookmark": "Lesezeichen setzen", "status.cancel_reblog_private": "Beitrag nicht mehr teilen", - "status.cannot_quote": "Zitieren dieses Beitrags ist deaktiviert", + "status.cannot_quote": "Dir ist es nicht gestattet, diesen Beitrag zu zitieren", "status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden", "status.context.load_new_replies": "Neue Antworten verfügbar", "status.context.loading": "Weitere Antworten werden abgerufen", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index e91cf7da8767a8..0dd62b52cb32a1 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -860,7 +860,6 @@ "status.block": "Αποκλεισμός @{name}", "status.bookmark": "Σελιδοδείκτης", "status.cancel_reblog_private": "Ακύρωση ενίσχυσης", - "status.cannot_quote": "Οι παραθέσεις είναι ανενεργές σ' αυτήν την ανάρτηση", "status.cannot_reblog": "Αυτή η ανάρτηση δεν μπορεί να ενισχυθεί", "status.context.load_new_replies": "Νέες απαντήσεις διαθέσιμες", "status.context.loading": "Γίνεται έλεγχος για περισσότερες απαντήσεις", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index e39bbe06c8cb2d..e6050d6ce0ce31 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -842,7 +842,6 @@ "status.block": "Bloki @{name}", "status.bookmark": "Aldoni al la legosignoj", "status.cancel_reblog_private": "Ne plu diskonigi", - "status.cannot_quote": "Citaĵoj estas malebligitaj en ĉi tiu afiŝo", "status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi", "status.context.load_new_replies": "Disponeblaj novaj respondoj", "status.context.loading": "Serĉante pliajn respondojn", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 9c46acdf820f8f..096f8464907211 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -862,7 +862,7 @@ "status.block": "Bloquear a @{name}", "status.bookmark": "Marcar", "status.cancel_reblog_private": "Quitar adhesión", - "status.cannot_quote": "Las citas están deshabilitadas en este mensaje", + "status.cannot_quote": "No te es permitido citar este mensaje", "status.cannot_reblog": "No se puede adherir a este mensaje", "status.context.load_new_replies": "Hay nuevas respuestas", "status.context.loading": "Buscando más respuestas", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 9d4c673cd98694..beaa07fdef5c5b 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -862,7 +862,7 @@ "status.block": "Bloquear a @{name}", "status.bookmark": "Añadir marcador", "status.cancel_reblog_private": "Deshacer impulso", - "status.cannot_quote": "Las citas están desactivadas en esta publicación", + "status.cannot_quote": "No está permitido citar esta publicación", "status.cannot_reblog": "Esta publicación no puede ser impulsada", "status.context.load_new_replies": "Nuevas respuestas disponibles", "status.context.loading": "Comprobando si hay más respuestas", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 2887a550c49823..2ddacc09bbcb76 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -862,7 +862,7 @@ "status.block": "Bloquear a @{name}", "status.bookmark": "Añadir marcador", "status.cancel_reblog_private": "Deshacer impulso", - "status.cannot_quote": "Las citas están desactivadas en esta publicación", + "status.cannot_quote": "No está permitido citar esta publicación", "status.cannot_reblog": "Esta publicación no se puede impulsar", "status.context.load_new_replies": "Hay nuevas respuestas", "status.context.loading": "Buscando más respuestas", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index c7bd75d6f585cd..0d01293a3bda96 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -860,7 +860,6 @@ "status.block": "Blokeeri @{name}", "status.bookmark": "Järjehoidja", "status.cancel_reblog_private": "Lõpeta jagamine", - "status.cannot_quote": "Selle postituse tsiteerimine pole lubatud", "status.cannot_reblog": "Seda postitust ei saa jagada", "status.context.load_new_replies": "Leidub uusi vastuseid", "status.context.loading": "Kontrollin täiendavate vastuste olemasolu", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index fd623fadba010f..b2b0a6c2de372c 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -841,7 +841,6 @@ "status.block": "انسداد ‎@{name}", "status.bookmark": "نشانک", "status.cancel_reblog_private": "ناتقویت", - "status.cannot_quote": "نقل قول برای این پست غیرفعال است", "status.cannot_reblog": "این فرسته قابل تقویت نیست", "status.context.load_new_replies": "پاسخ‌های جدیدی موجودند", "status.context.loading": "بررسی کردن برای پاسخ‌های بیش‌تر", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 97a3c16b6af2f9..65ea02d9bee56b 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -862,7 +862,7 @@ "status.block": "Estä @{name}", "status.bookmark": "Lisää kirjanmerkki", "status.cancel_reblog_private": "Peru tehostus", - "status.cannot_quote": "Tämän julkaisun lainaus on poistettu käytöstä", + "status.cannot_quote": "Sinulla ei ole oikeutta lainata tätä julkaisua", "status.cannot_reblog": "Tätä julkaisua ei voi tehostaa", "status.context.load_new_replies": "Uusia vastauksia saatavilla", "status.context.loading": "Tarkistetaan lisävastauksia", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 2baa84e69d6e2d..d11804fb300e24 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -862,7 +862,7 @@ "status.block": "Blokera @{name}", "status.bookmark": "Goym", "status.cancel_reblog_private": "Strika stimbran", - "status.cannot_quote": "Tað er ikki loyvt at sitera hendan postin", + "status.cannot_quote": "Tú hevur ikki loyvi at sitera hendan postin", "status.cannot_reblog": "Tað ber ikki til at stimbra hendan postin", "status.context.load_new_replies": "Nýggj svar tøk", "status.context.loading": "Kanni um tað eru fleiri svar", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 0362f2d5e8aaf3..aa3060184248e0 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -846,7 +846,6 @@ "status.block": "Bloquer @{name}", "status.bookmark": "Ajouter aux signets", "status.cancel_reblog_private": "Débooster", - "status.cannot_quote": "Les citations sont désactivées sur cette publication", "status.cannot_reblog": "Cette publication ne peut pas être boostée", "status.context.load_new_replies": "Nouvelles réponses disponibles", "status.continued_thread": "Suite du fil", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index c77bf34361f7fd..e21f8d5a2a2372 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -846,7 +846,6 @@ "status.block": "Bloquer @{name}", "status.bookmark": "Ajouter aux marque-pages", "status.cancel_reblog_private": "Annuler le partage", - "status.cannot_quote": "Les citations sont désactivées sur cette publication", "status.cannot_reblog": "Ce message ne peut pas être partagé", "status.context.load_new_replies": "Nouvelles réponses disponibles", "status.continued_thread": "Suite du fil", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index e05e35ce2151c2..fa69cf355a2d1e 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "An dtugann tú aird ar fhógraí ó Luaintí Príobháideacha gan iarraidh?", "info_button.label": "Cabhrú", "info_button.what_is_alt_text": "

    Cad is téacs altach ann?

    Soláthraíonn téacs Alt cur síos ar íomhánna do dhaoine le lagú radhairc, naisc íseal-bandaleithead, nó daoine atá ag lorg comhthéacs breise.

    Is féidir leat inrochtaineacht agus tuiscint a fheabhsú do chách trí théacs alt soiléir, gonta, oibiachtúil a scríobh.

    • Glac gnéithe tábhachtacha
    • Déan achoimre ar théacs in íomhánna
    • Úsáid struchtúr abairtí rialta
    • li>
    • Seachain faisnéis iomarcach
    • Fócas ar threochtaí agus ar phríomhthorthaí i bhfíseanna casta (amhail léaráidí nó léarscáileanna)
    ", + "interaction_modal.action": "Chun idirghníomhú le post {name}, ní mór duit síniú isteach i do chuntas ar cibé freastalaí Mastodon a úsáideann tú.", "interaction_modal.go": "Téigh", "interaction_modal.no_account_yet": "Níl cuntas agat fós?", "interaction_modal.on_another_server": "Ar freastalaí eile", "interaction_modal.on_this_server": "Ar an freastalaí seo", + "interaction_modal.title": "Sínigh isteach le leanúint ar aghaidh", "interaction_modal.username_prompt": "M.sh. {example}", "intervals.full.days": "{number, plural, one {# lá} other {# lá}}", "intervals.full.hours": "{number, plural, one {# uair} other {# uair}}", @@ -860,7 +862,6 @@ "status.block": "Bac @{name}", "status.bookmark": "Leabharmharcanna", "status.cancel_reblog_private": "Dímhol", - "status.cannot_quote": "Tá luachana díchumasaithe ar an bpost seo", "status.cannot_reblog": "Ní féidir an phostáil seo a mholadh", "status.context.load_new_replies": "Freagraí nua ar fáil", "status.context.loading": "Ag seiceáil le haghaidh tuilleadh freagraí", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index de0ff98b6bc44b..8965b27ee16ef7 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -239,6 +239,8 @@ "confirmations.missing_alt_text.secondary": "Postaich e co-dhiù", "confirmations.missing_alt_text.title": "A bheil thu airson roghainn teacsa a chur ris?", "confirmations.mute.confirm": "Mùch", + "confirmations.quiet_post_quote_info.dismiss": "Na cuiribh seo ’nam chuimhne a-rithist", + "confirmations.quiet_post_quote_info.got_it": "Tha mi agaibh", "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?", @@ -477,6 +479,7 @@ "keyboard_shortcuts.open_media": "Fosgail meadhan", "keyboard_shortcuts.pinned": "Fosgail liosta nam postaichean prìnichte", "keyboard_shortcuts.profile": "Fosgail pròifil an ùghdair", + "keyboard_shortcuts.quote": "Luaidh am post", "keyboard_shortcuts.reply": "Freagair do phost", "keyboard_shortcuts.requests": "Fosgail liosta nan iarrtasan leantainn", "keyboard_shortcuts.search": "Cuir am fòcas air a’ bhàr-luirg", @@ -588,6 +591,7 @@ "notification.label.mention": "Iomradh", "notification.label.private_mention": "Iomradh prìobhaideach", "notification.label.private_reply": "Freagairt phrìobhaideach", + "notification.label.quote": "Luaidh {name} am post agad", "notification.label.reply": "Freagairt", "notification.mention": "Iomradh", "notification.mentioned_you": "Thug {name} iomradh ort", @@ -602,6 +606,7 @@ "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.quoted_update": "Dheasaich {name} post a luaidh thu", "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}", @@ -645,6 +650,7 @@ "notifications.column_settings.mention": "Iomraidhean:", "notifications.column_settings.poll": "Toraidhean cunntais-bheachd:", "notifications.column_settings.push": "Brathan putaidh", + "notifications.column_settings.quote": "Luaidhean:", "notifications.column_settings.reblog": "Brosnachaidhean:", "notifications.column_settings.show": "Seall sa cholbh", "notifications.column_settings.sound": "Cluich fuaim", @@ -720,10 +726,15 @@ "privacy.private.short": "Luchd-leantainn", "privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon", "privacy.public.short": "Poblach", + "privacy.quote.anyone": "{visibility}, faodaidh neach sam bith a luaidh", + "privacy.quote.disabled": "{visibility}, luaidhean à comas", + "privacy.quote.limited": "{visibility}, luaidhean cuingichte", "privacy.unlisted.additional": "Tha seo coltach ris an fhaicsinneachd phoblach ach cha nochd am post air loidhnichean-ama an t-saoghail phoblaich, nan tagaichean hais no an rùrachaidh no ann an toraidhean luirg Mhastodon fiù ’s ma thug thu ro-aonta airson sin seachad.", "privacy.unlisted.short": "Poblach ach sàmhach", "privacy_policy.last_updated": "An t-ùrachadh mu dheireadh {date}", "privacy_policy.title": "Poileasaidh prìobhaideachd", + "quote_error.quote": "Chan eil taic ach ri aon luaidh aig an aon àm.", + "quote_error.unauthorized": "Chan fhaod thu am post seo a luaidh.", "recommended": "Molta", "refresh": "Ath-nuadhaich", "regeneration_indicator.please_stand_by": "Fuirich ort.", @@ -830,9 +841,11 @@ "status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}", "status.admin_domain": "Fosgail eadar-aghaidh na maorsainneachd dha {domain}", "status.admin_status": "Fosgail am post seo ann an eadar-aghaidh na maorsainneachd", + "status.all_disabled": "Tha brosnachaidhean ’s luaidhean à comas", "status.block": "Bac @{name}", "status.bookmark": "Cuir ris na comharran-lìn", "status.cancel_reblog_private": "Na brosnaich tuilleadh", + "status.cannot_quote": "Chan fhaod thu am post seo a luaidh", "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", @@ -859,6 +872,8 @@ "status.mute_conversation": "Mùch an còmhradh", "status.open": "Leudaich am post seo", "status.pin": "Prìnich ris a’ phròifil", + "status.quote": "Luaidh", + "status.quote.cancel": "Sguir dhen luaidh", "status.quote_error.filtered": "Falaichte le criathrag a th’ agad", "status.read_more": "Leugh an còrr", "status.reblog": "Brosnaich", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 8b692a9632e792..2e010a5eaccd12 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignorar notificacións de Mencións Privadas non solicitadas?", "info_button.label": "Axuda", "info_button.what_is_alt_text": "

    Que é o Texto Alternativo?

    O Text Alt proporciona a descrición das imaxes para as persoas con deficiencias visuais, conexións a internet de baixa calidade ou para engadir contexto ás mesmas.

    Podes mellorar a accesibilidade e a comprensión da publicación ao escribir un texto alternativo claro, conciso e obxectivo.

    • Identifica os elementos importantes
    • Inclúe o texto que apareza nas imaxes
    • Utiliza sintaxe estándar nas frases
    • Evita información redundante
    • Céntrate nos elementos principais cando sexan imaxes complexas (como diagramas ou mapas)
    ", + "interaction_modal.action": "Para interactuar coa publicación de {name} debes iniciar sesión no servidor Mastodon que utilices.", "interaction_modal.go": "Ir", "interaction_modal.no_account_yet": "Aínda non tes unha conta?", "interaction_modal.on_another_server": "Nun servidor diferente", "interaction_modal.on_this_server": "Neste servidor", + "interaction_modal.title": "Inicia sesión para continuar", "interaction_modal.username_prompt": "Ex. {example}", "intervals.full.days": "{number, plural,one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", @@ -860,7 +862,6 @@ "status.block": "Bloquear a @{name}", "status.bookmark": "Marcar", "status.cancel_reblog_private": "Desfacer compartido", - "status.cannot_quote": "Non se permite citar esta publicación", "status.cannot_reblog": "Esta publicación non pode ser promovida", "status.context.load_new_replies": "Non hai respostas dispoñibles", "status.context.loading": "Mirando se hai máis respostas", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index ca82645d7b7830..d632b4fb22c5c8 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -860,7 +860,6 @@ "status.block": "חסימת @{name}", "status.bookmark": "סימניה", "status.cancel_reblog_private": "הסרת הדהוד", - "status.cannot_quote": "ציטוטים של הודעה זו אינם מותרים", "status.cannot_reblog": "לא ניתן להדהד חצרוץ זה", "status.context.load_new_replies": "הגיעו תגובות חדשות", "status.context.loading": "מחפש תגובות חדשות", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 53709290270c6e..68da77e3de6ab9 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -860,7 +860,6 @@ "status.block": "@{name} letiltása", "status.bookmark": "Könyvjelzőzés", "status.cancel_reblog_private": "Megtolás visszavonása", - "status.cannot_quote": "Az idézés ki van kapcsolva ennél a bejegyzésnél", "status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni", "status.context.load_new_replies": "Új válaszok érhetőek el", "status.context.loading": "További válaszok keresése", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 3b6c7d8ed297fb..dc10561c33dc85 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -860,7 +860,6 @@ "status.block": "Blocar @{name}", "status.bookmark": "Adder al marcapaginas", "status.cancel_reblog_private": "Disfacer impulso", - "status.cannot_quote": "Le citationes es disactivate pro iste message", "status.cannot_reblog": "Iste message non pote esser impulsate", "status.context.load_new_replies": "Nove responsas disponibile", "status.context.loading": "Cercante plus responsas", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 4218ac4ef9284e..f380a4b4a50c80 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -862,7 +862,7 @@ "status.block": "Útiloka @{name}", "status.bookmark": "Bókamerki", "status.cancel_reblog_private": "Taka úr endurbirtingu", - "status.cannot_quote": "Tilvitnanir eru gerðar óvirkar á þessari færslu", + "status.cannot_quote": "Þú hefur ekki heimild til að vitna í þessa færslu", "status.cannot_reblog": "Þessa færslu er ekki hægt að endurbirta", "status.context.load_new_replies": "Ný svör hafa borist", "status.context.loading": "Athuga með fleiri svör", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index b3838894b4c555..f0bf3c02cf0b2f 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignorare le notifiche provenienti da menzioni private indesiderate?", "info_button.label": "Aiuto", "info_button.what_is_alt_text": "

    Cos'è il testo alternativo?

    Il testo alternativo fornisce descrizioni delle immagini per le persone con disturbi della vista, connessioni a bassa larghezza di banda o per coloro che cercano un contesto aggiuntivo.

    È possibile migliorare l'accessibilità e la comprensione per tutti scrivendo un testo alt chiaro, conciso e obiettivo.

    • Cattura elementi importanti
    • Riassume il testo nelle immagini
    • Usa la struttura delle frasi regolari
    • Evita le informazioni ridondanti
    • Concentrati sulle tendenze e i risultati chiave in immagini complesse (come diagrammi o mappe)
    ", + "interaction_modal.action": "Per interagire con il post di {name}, devi accedere al tuo account su qualsiasi server Mastodon tu utilizzi.", "interaction_modal.go": "Vai", "interaction_modal.no_account_yet": "Non hai ancora un account?", "interaction_modal.on_another_server": "Su un altro server", "interaction_modal.on_this_server": "Su questo server", + "interaction_modal.title": "Accedi per continuare", "interaction_modal.username_prompt": "Es. {example}", "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", @@ -860,7 +862,7 @@ "status.block": "Blocca @{name}", "status.bookmark": "Aggiungi segnalibro", "status.cancel_reblog_private": "Annulla reblog", - "status.cannot_quote": "Le citazioni sono disabilitate su questo post", + "status.cannot_quote": "Non ti è consentito citare questo post", "status.cannot_reblog": "Questo post non può essere condiviso", "status.context.load_new_replies": "Nuove risposte disponibili", "status.context.loading": "Controllo per altre risposte", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 8b9d7b83609d53..40c9ae00044bc5 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -860,7 +860,6 @@ "status.block": "@{name} 차단", "status.bookmark": "북마크", "status.cancel_reblog_private": "부스트 취소", - "status.cannot_quote": "이 게시물은 인용이 비활성화되어 있습니다", "status.cannot_reblog": "이 게시물은 부스트 할 수 없습니다", "status.context.load_new_replies": "새 답글 보기", "status.context.loading": "추가 답글 확인중", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index 234298d859ddbc..ae0cc5c3942244 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -860,7 +860,6 @@ "status.block": "封鎖 @{name}", "status.bookmark": "冊籤", "status.cancel_reblog_private": "取消轉送", - "status.cannot_quote": "Tsit篇PO文停止使用引用功能ah", "status.cannot_reblog": "Tsit篇PO文bē當轉送", "status.context.load_new_replies": "有新ê回應", "status.context.loading": "Leh檢查其他ê回應", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 4a90415f285d90..688554e6df44cc 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Meldingen negeren van ongevraagde privéberichten?", "info_button.label": "Help", "info_button.what_is_alt_text": "

    Wat is alt-tekst?

    Alt-tekst biedt beschrijvingen van afbeeldingen voor mensen met een visuele beperking, voor verbindingen met lage internetsnelheid of mensen die op zoek zijn naar extra context.

    Je kunt de toegankelijkheid en de begrijpelijkheid voor iedereen verbeteren door heldere, beknopte en objectieve alt-teksten te schrijven.

    • Leg belangrijke elementen vast
    • Tekst in afbeeldingen samenvatten
    • Een eenvoudige zinsbouw gebruiken
    • Overbodige informatie vermijden
    • Voor complexe diagrammen of kaarten alleen op trends en belangrijke bevindingen focussen
    ", + "interaction_modal.action": "Wanneer je met het bericht van {name} interactie wil hebben, moet je met jouw account op jouw eigen Mastodon-server inloggen.", "interaction_modal.go": "Ga", "interaction_modal.no_account_yet": "Heb je nog geen account?", "interaction_modal.on_another_server": "Op een andere server", "interaction_modal.on_this_server": "Op deze server", + "interaction_modal.title": "Inloggen om door te gaan", "interaction_modal.username_prompt": "Bijv. {example}", "intervals.full.days": "{number, plural, one {# dag} other {# dagen}}", "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}", @@ -860,7 +862,7 @@ "status.block": "@{name} blokkeren", "status.bookmark": "Bladwijzer toevoegen", "status.cancel_reblog_private": "Niet langer boosten", - "status.cannot_quote": "Citaten zijn voor dit bericht uitgeschakeld", + "status.cannot_quote": "Je bent niet gemachtigd om dit bericht te citeren", "status.cannot_reblog": "Dit bericht kan niet geboost worden", "status.context.load_new_replies": "Nieuwe reacties beschikbaar", "status.context.loading": "Op nieuwe reacties aan het controleren", @@ -895,7 +897,7 @@ "status.quote_error.filtered": "Verborgen door een van je filters", "status.quote_error.not_available": "Bericht niet beschikbaar", "status.quote_error.pending_approval": "Bericht in afwachting", - "status.quote_error.pending_approval_popout.body": "Op Mastodon kun je bepalen of iemand je kan citeren. Dit bericht is in afwachting van de goedkeuring van de oorspronkelijke auteur.", + "status.quote_error.pending_approval_popout.body": "Op Mastodon kun je bepalen of iemand je mag citeren. Dit bericht is in afwachting van de goedkeuring van de oorspronkelijke auteur.", "status.quote_error.revoked": "Bericht verwijderd door auteur", "status.quote_followers_only": "Alleen volgers mogen dit bericht citeren", "status.quote_manual_review": "De auteur gaat het handmatig beoordelen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 0a6dd429bb3fc5..d2e3046156dee0 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -862,7 +862,6 @@ "status.block": "Blokker @{name}", "status.bookmark": "Set bokmerke", "status.cancel_reblog_private": "Opphev framheving", - "status.cannot_quote": "Du kan ikkje sitera dette innlegget", "status.cannot_reblog": "Du kan ikkje framheva dette innlegget", "status.context.load_new_replies": "Nye svar finst", "status.context.loading": "Ser etter fleire svar", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 5bde8c26dd47dc..ab1062ed8b0dd2 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -848,7 +848,6 @@ "status.block": "Zablokuj @{name}", "status.bookmark": "Dodaj zakładkę", "status.cancel_reblog_private": "Cofnij podbicie", - "status.cannot_quote": "Cytaty są wyłączone dla tego postu", "status.cannot_reblog": "Ten wpis nie może zostać podbity", "status.context.load_new_replies": "Dostępne są nowe odpowiedzi", "status.context.loading": "Sprawdzanie kolejnych odpowiedzi", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index bc82a2b7f5f148..98e790e371334a 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -860,7 +860,6 @@ "status.block": "Bloquear @{name}", "status.bookmark": "Guardar nos marcadores", "status.cancel_reblog_private": "Retirar impulso", - "status.cannot_quote": "Citações estão desativadas nesta publicação", "status.cannot_reblog": "Esta publicação não pode ser impulsionada", "status.context.load_new_replies": "Novas respostas disponíveis", "status.context.loading": "A verificar por mais respostas", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 28881068dc4c8e..a22268bb62bce2 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -862,7 +862,6 @@ "status.block": "Заблокировать @{name}", "status.bookmark": "Добавить в закладки", "status.cancel_reblog_private": "Отменить продвижение", - "status.cannot_quote": "Цитаты отключены на этой публикации", "status.cannot_reblog": "Этот пост не может быть продвинут", "status.context.load_new_replies": "Доступны новые ответы", "status.context.loading": "Проверяем, есть ли ещё ответы", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 4e95baa451dd82..806108bba9bbd9 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -241,6 +241,8 @@ "confirmations.mute.confirm": "Sessize al", "confirmations.quiet_post_quote_info.dismiss": "Bana bir daha hatırlatma", "confirmations.quiet_post_quote_info.got_it": "Anladım", + "confirmations.quiet_post_quote_info.message": "Sessiz bir genel gönderiyi alıntıladığınızda, gönderiniz öne çıkan zaman çizelgelerinden gizlenir.", + "confirmations.quiet_post_quote_info.title": "Herkese açık sessiz gönderileri alıntılamak", "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?", @@ -451,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "İstenmeyen özel bahsetmelerden gelen bildirimleri yoksay?", "info_button.label": "Yardım", "info_button.what_is_alt_text": "

    Alternatif metin nedir?

    Alternatif metin, görme bozukluğu olan, düşük bant genişliğine sahip bağlantıları olan veya ekstra bağlam arayan kişiler için görsel açıklamaları sağlar.

    Net, sade ve nesnel alternatif metin yazarak herkes için erişilebilirliği ve anlaşılabilirliği iyileştirebilirsiniz.

    • Önemlileri yakalayın
    • Resimlerdeki metni özetleyin
    • Düzenli cümle yapısı kullanın
    • Gereksiz bilgilerden kaçının
    • Karmaşık görsellerde (şemalar veya haritalar gibi) trendlere ve temel bulgulara odaklanın
    ", + "interaction_modal.action": "{name}'nin gönderisiyle etkileşim kurmak için, kullandığınız Mastodon sunucusunda hesabınıza giriş yapmanız gerekir.", "interaction_modal.go": "Git", "interaction_modal.no_account_yet": "Henüz bir hesabınız yok mu?", "interaction_modal.on_another_server": "Farklı bir sunucuda", "interaction_modal.on_this_server": "Bu sunucuda", + "interaction_modal.title": "Devam etmek için oturum açın", "interaction_modal.username_prompt": "Örnek: {example}", "intervals.full.days": "{number, plural, one {# gün} other {# gün}}", "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", @@ -737,6 +741,7 @@ "privacy.quote.disabled": "{visibility}, alıntı yapılamaz", "privacy.quote.limited": "{visibility}, sınırlı alıntı", "privacy.unlisted.additional": "Bu neredeyse herkese açık gibi çalışır, tek farkı gönderi canlı akışlarda veya etiketlerde, keşfette, veya Mastodon aramasında gözükmez, hesap çapında öyle seçmiş olsanız bile.", + "privacy.unlisted.long": "Mastodon arama sonuçlarında, öne çıkanlarda ve herkese açık zaman çizelgesinde gizli", "privacy.unlisted.short": "Sessizce herkese açık", "privacy_policy.last_updated": "Son güncelleme {date}", "privacy_policy.title": "Gizlilik Politikası", @@ -759,6 +764,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}sn", "relative_time.today": "bugün", + "remove_quote_hint.button_label": "Anladım", + "remove_quote_hint.message": "Bunu {icon} seçenekler menüsünden yapabilirsiniz.", + "remove_quote_hint.title": "Alıntılanmış gönderinizi kaldırmak mı istiyorsunuz?", "reply_indicator.attachments": "{count, plural, one {# ek} other {# ek}}", "reply_indicator.cancel": "İptal", "reply_indicator.poll": "Anket", @@ -854,6 +862,7 @@ "status.block": "@{name} adlı kişiyi engelle", "status.bookmark": "Yer işareti ekle", "status.cancel_reblog_private": "Yeniden paylaşımı geri al", + "status.cannot_quote": "Bu gönderiyi alıntılamaya izniniz yok", "status.cannot_reblog": "Bu gönderi yeniden paylaşılamaz", "status.context.load_new_replies": "Yeni yanıtlar mevcut", "status.context.loading": "Daha fazla yanıt için kontrol ediliyor", @@ -888,6 +897,8 @@ "status.quote_error.filtered": "Bazı filtrelerinizden dolayı gizlenmiştir", "status.quote_error.not_available": "Gönderi kullanılamıyor", "status.quote_error.pending_approval": "Gönderi beklemede", + "status.quote_error.pending_approval_popout.body": "Mastodon'da, birinin sizi alıntılayıp alıntılayamayacağını kontrol edebilirsiniz. Bu gönderi, orijinal yazarın onayını alma sürecinde beklemede.", + "status.quote_error.revoked": "Gönderi yazarı tarafından kaldırıldı", "status.quote_followers_only": "Sadece takipçiler bu gönderiyi alıntılayabilir", "status.quote_manual_review": "Yazar manuel olarak gözden geçirecek", "status.quote_policy_change": "Kimin alıntı yapabileceğini değiştirin", @@ -898,12 +909,14 @@ "status.read_more": "Devamını okuyun", "status.reblog": "Yeniden paylaş", "status.reblog_or_quote": "Yükselt veya alıntıla", + "status.reblog_private": "Takipçilerinizle tekrar paylaşın", "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.redraft": "Sil,Düzenle ve yeniden-paylaş", "status.remove_bookmark": "Yer işaretini kaldır", "status.remove_favourite": "Favorilerden kaldır", + "status.remove_quote": "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", @@ -975,9 +988,14 @@ "visibility_modal.button_title": "Görünürlüğü ayarla", "visibility_modal.header": "Görünürlük ve etkileşim", "visibility_modal.helper.direct_quoting": "Mastodon'da özel değiniler başkaları tarafından alıntılanamaz.", + "visibility_modal.helper.privacy_editing": "Gönderi yayınlandıktan sonra görünürlük değiştirilemez.", + "visibility_modal.helper.privacy_private_self_quote": "Özel gönderilerin kendi alıntıları herkese açık hale getirilemez.", "visibility_modal.helper.private_quoting": "Mastodon'da sadece takipçilere yönelik gönderiler başkaları tarafından alıntılanamaz.", "visibility_modal.helper.unlisted_quoting": "İnsanlar sizden alıntı yaptığında, onların gönderileri de trend zaman tünellerinden gizlenecektir.", + "visibility_modal.instructions": "Bu gönderiyle kimlerin etkileşime girebileceğini kontrol edin. Ayrıca, Tercihler > Gönderme varsayılanları bölümüne giderek tüm gelecek gönderiler için ayarlayabilirsiniz.", + "visibility_modal.privacy_label": "Görünürlük", "visibility_modal.quote_followers": "Sadece takipçiler", + "visibility_modal.quote_label": "Kimler alıntılayabilir", "visibility_modal.quote_nobody": "Sadece ben", "visibility_modal.quote_public": "Herkesten", "visibility_modal.save": "Kaydet" diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 43119e3c7e96d5..8a6ae0e4317d65 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -860,7 +860,6 @@ "status.block": "Chặn @{name}", "status.bookmark": "Lưu", "status.cancel_reblog_private": "Bỏ đăng lại", - "status.cannot_quote": "Trích dẫn bị tắt", "status.cannot_reblog": "Không thể đăng lại tút này", "status.context.load_new_replies": "Có những trả lời mới", "status.context.loading": "Kiểm tra nhiều trả lời hơn", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 388639c13de591..6369a0a4fb2119 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "是否忽略不请自来的私下提及?", "info_button.label": "帮助", "info_button.what_is_alt_text": "

    什么是替代文本?

    替代文本为视力障碍者、低带宽连接用户或需要额外背景信息的用户提供图像描述。

    通过编写清晰、简洁、客观的替代文本,可以提升所有人的可访问性和理解力。

    • 捕捉重要元素
    • 总结图像中的文本
    • 使用常规句子结构
    • 避免冗余信息
    • 关注复杂视觉内容(如图表或地图)中的趋势和关键信息
    ", + "interaction_modal.action": "要和 {name} 的嘟文互动,你需要登录到你在Mastodon服务器上注册的账号。", "interaction_modal.go": "跳转", "interaction_modal.no_account_yet": "还没有账号?", "interaction_modal.on_another_server": "在另一服务器", "interaction_modal.on_this_server": "在此服务器", + "interaction_modal.title": "登录以继续", "interaction_modal.username_prompt": "例如: {example}", "intervals.full.days": "{number} 天", "intervals.full.hours": "{number} 小时", @@ -860,7 +862,7 @@ "status.block": "屏蔽 @{name}", "status.bookmark": "添加到书签", "status.cancel_reblog_private": "取消转嘟", - "status.cannot_quote": "此嘟文已禁用引用功能", + "status.cannot_quote": "你无法引用此嘟文", "status.cannot_reblog": "不能转嘟这条嘟文", "status.context.load_new_replies": "有新回复", "status.context.loading": "正在检查更多回复", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 225e252068ed76..5646b7ede835eb 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -862,7 +862,7 @@ "status.block": "封鎖 @{name}", "status.bookmark": "書籤", "status.cancel_reblog_private": "取消轉嘟", - "status.cannot_quote": "此嘟文已停用引用功能", + "status.cannot_quote": "您不被允許引用此嘟文", "status.cannot_reblog": "這則嘟文無法被轉嘟", "status.context.load_new_replies": "有新回嘟", "status.context.loading": "正在檢查更多回嘟", diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 527a45eacc3c49..9901691c9ecf11 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -56,6 +56,8 @@ tr: scopes: Uygulamanın erişmesine izin verilen API'ler. Üst seviye bir kapsam seçtiyseniz, bireysel kapsam seçmenize gerek yoktur. setting_aggregate_reblogs: Yakın zamanda teşvik edilmiş gönderiler için yeni teşvikleri göstermeyin (yalnızca yeni alınan teşvikleri etkiler) setting_always_send_emails: Normalde, Mastodon'u aktif olarak kullanırken e-posta bildirimleri gönderilmeyecektir + setting_default_quote_policy_private: Mastodon'da sadece takipçilere yönelik gönderiler başkaları tarafından alıntılanamaz. + setting_default_quote_policy_unlisted: İnsanlar sizden alıntı yaptığında, onların gönderileri de trend zaman tünellerinden gizlenecektir. setting_default_sensitive: Hassas medya varsayılan olarak gizlidir ve bir tıklama ile gösterilebilir setting_display_media_default: Hassas olarak işaretlenmiş medyayı gizle setting_display_media_hide_all: Medyayı her zaman gizle diff --git a/config/locales/tr.yml b/config/locales/tr.yml index f78e93dcc984c0..50319622df6a55 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1739,6 +1739,9 @@ tr: self_vote: Kendi anketlerinizde oy kullanamazsınız too_few_options: birden fazla öğeye sahip olmalı too_many_options: "%{max} öğeden fazla öğe içeremez" + vote: Oyla + posting_defaults: + explanation: Bu ayarlar, yeni gönderiler oluştururken varsayılan olarak kullanılacaktır, ancak bunları oluşturucu içinde her gönderi için ayrı ayrı düzenleyebilirsiniz. preferences: other: Diğer posting_defaults: Gönderi varsayılanları @@ -1915,8 +1918,10 @@ tr: title: '%{name}: "%{quote}"' visibilities: direct: Özel değini + private: Sadece takipçiler public: Herkese açık public_long: Mastodon'da olan olmayan herkes + unlisted: Sessizce herkese açık unlisted_long: Mastodon arama sonuçlarında, öne çıkanlarda ve herkese açık zaman çizelgesinde gizli statuses_cleanup: enabled: Eski gönderileri otomatik olarak sil From dfef7d94074e102a29cf2db00e458ad223900438 Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 17 Sep 2025 11:00:57 +0200 Subject: [PATCH 57/81] Refactor: Replace all display name usage for new component (#36137) --- .../__snapshots__/display_name-test.jsx.snap | 27 ---- .../__tests__/display_name-test.jsx | 19 --- .../mastodon/components/display_name.tsx | 122 ------------------ .../components/display_name/default.tsx | 36 ++++++ .../display_name/display_name.stories.tsx | 8 +- .../components/display_name/index.tsx | 111 +++------------- .../components/display_name/no-domain.tsx | 39 ++++++ .../components/display_name/simple.tsx | 23 ++++ app/javascript/mastodon/components/status.jsx | 20 ++- .../components/status_thread_label.tsx | 11 +- .../components/follow_request_note.jsx | 3 +- .../components/account_header.tsx | 4 +- .../components/familiar_followers.tsx | 29 ++--- .../components/moved_note.tsx | 12 +- .../annual_report/highlighted_post.tsx | 7 +- .../components/conversation.jsx | 12 +- .../explore/components/author_link.jsx | 8 +- .../features/interaction_modal/index.tsx | 7 +- .../notifications/components/notification.jsx | 10 +- .../components/notification_request.jsx | 3 +- .../components/displayed_name.tsx | 22 ---- .../components/notification_admin_report.tsx | 7 +- .../notification_group_with_status.tsx | 9 +- .../components/notification_with_status.tsx | 13 +- 24 files changed, 198 insertions(+), 364 deletions(-) delete mode 100644 app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap delete mode 100644 app/javascript/mastodon/components/__tests__/display_name-test.jsx delete mode 100644 app/javascript/mastodon/components/display_name.tsx create mode 100644 app/javascript/mastodon/components/display_name/default.tsx create mode 100644 app/javascript/mastodon/components/display_name/no-domain.tsx create mode 100644 app/javascript/mastodon/components/display_name/simple.tsx delete mode 100644 app/javascript/mastodon/features/notifications_v2/components/displayed_name.tsx diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap deleted file mode 100644 index 9d1b236fad0bbe..00000000000000 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap +++ /dev/null @@ -1,27 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[` > renders display name + account name 1`] = ` - - - Foo

    ", - } - } - /> -
    - - - @ - bar@baz - -
    -`; diff --git a/app/javascript/mastodon/components/__tests__/display_name-test.jsx b/app/javascript/mastodon/components/__tests__/display_name-test.jsx deleted file mode 100644 index 05a0f47170f468..00000000000000 --- a/app/javascript/mastodon/components/__tests__/display_name-test.jsx +++ /dev/null @@ -1,19 +0,0 @@ -import { fromJS } from 'immutable'; - -import renderer from 'react-test-renderer'; - -import { DisplayName } from '../display_name'; - -describe('', () => { - it('renders display name + account name', () => { - const account = fromJS({ - username: 'bar', - acct: 'bar@baz', - display_name_html: '

    Foo

    ', - }); - const component = renderer.create(); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); -}); diff --git a/app/javascript/mastodon/components/display_name.tsx b/app/javascript/mastodon/components/display_name.tsx deleted file mode 100644 index 8409244827ebb4..00000000000000 --- a/app/javascript/mastodon/components/display_name.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import React from 'react'; - -import type { List } from 'immutable'; - -import type { Account } from 'mastodon/models/account'; - -import { autoPlayGif } from '../initial_state'; - -import { Skeleton } from './skeleton'; - -interface Props { - account?: Account; - others?: List; - localDomain?: string; -} - -export class DisplayName extends React.PureComponent { - handleMouseEnter: React.ReactEventHandler = ({ - currentTarget, - }) => { - if (autoPlayGif) { - return; - } - - const emojis = - currentTarget.querySelectorAll('img.custom-emoji'); - - emojis.forEach((emoji) => { - const originalSrc = emoji.getAttribute('data-original'); - if (originalSrc != null) emoji.src = originalSrc; - }); - }; - - handleMouseLeave: React.ReactEventHandler = ({ - currentTarget, - }) => { - if (autoPlayGif) { - return; - } - - const emojis = - currentTarget.querySelectorAll('img.custom-emoji'); - - emojis.forEach((emoji) => { - const staticSrc = emoji.getAttribute('data-static'); - if (staticSrc != null) emoji.src = staticSrc; - }); - }; - - render() { - const { others, localDomain } = this.props; - - let displayName: React.ReactNode, - suffix: React.ReactNode, - account: Account | undefined; - - if (others && others.size > 0) { - account = others.first(); - } else if (this.props.account) { - account = this.props.account; - } - - if (others && others.size > 1) { - displayName = others - .take(2) - .map((a) => ( - - - - )) - .reduce((prev, cur) => [prev, ', ', cur]); - - if (others.size - 2 > 0) { - suffix = `+${others.size - 2}`; - } - } else if (account) { - let acct = account.get('acct'); - - if (!acct.includes('@') && localDomain) { - acct = `${acct}@${localDomain}`; - } - - displayName = ( - - - - ); - suffix = @{acct}; - } else { - displayName = ( - - - - - - ); - suffix = ( - - - - ); - } - - return ( - - {displayName} {suffix} - - ); - } -} diff --git a/app/javascript/mastodon/components/display_name/default.tsx b/app/javascript/mastodon/components/display_name/default.tsx new file mode 100644 index 00000000000000..57ae24ab26f7ac --- /dev/null +++ b/app/javascript/mastodon/components/display_name/default.tsx @@ -0,0 +1,36 @@ +import { useMemo } from 'react'; +import type { ComponentPropsWithoutRef, FC } from 'react'; + +import { Skeleton } from '../skeleton'; + +import type { DisplayNameProps } from './index'; +import { DisplayNameWithoutDomain } from './no-domain'; + +export const DisplayNameDefault: FC< + Omit & ComponentPropsWithoutRef<'span'> +> = ({ account, localDomain, className, ...props }) => { + const username = useMemo(() => { + if (!account) { + return null; + } + let acct = account.get('acct'); + + if (!acct.includes('@') && localDomain) { + acct = `${acct}@${localDomain}`; + } + return `@${acct}`; + }, [account, localDomain]); + + return ( + + {' '} + + {username ?? } + + + ); +}; diff --git a/app/javascript/mastodon/components/display_name/display_name.stories.tsx b/app/javascript/mastodon/components/display_name/display_name.stories.tsx index ccd7dcbb916d8b..d546fdd135ea82 100644 --- a/app/javascript/mastodon/components/display_name/display_name.stories.tsx +++ b/app/javascript/mastodon/components/display_name/display_name.stories.tsx @@ -18,8 +18,6 @@ const meta = { username: 'mastodon@mastodon.social', name: 'Test User 🧪', loading: false, - simple: false, - noDomain: false, localDomain: 'mastodon.social', }, tags: [], @@ -50,13 +48,13 @@ export const Loading: Story = { export const NoDomain: Story = { args: { - noDomain: true, + variant: 'noDomain', }, }; export const Simple: Story = { args: { - simple: true, + variant: 'simple', }, }; @@ -76,6 +74,6 @@ export const Linked: Story = { acct: username, }) : undefined; - return ; + return ; }, }; diff --git a/app/javascript/mastodon/components/display_name/index.tsx b/app/javascript/mastodon/components/display_name/index.tsx index 6bd4addded5018..06bc380a10b2c2 100644 --- a/app/javascript/mastodon/components/display_name/index.tsx +++ b/app/javascript/mastodon/components/display_name/index.tsx @@ -1,110 +1,37 @@ import type { ComponentPropsWithoutRef, FC } from 'react'; -import { useMemo } from 'react'; -import classNames from 'classnames'; import type { LinkProps } from 'react-router-dom'; import { Link } from 'react-router-dom'; -import { EmojiHTML } from '@/mastodon/features/emoji/emoji_html'; import type { Account } from '@/mastodon/models/account'; -import { isModernEmojiEnabled } from '@/mastodon/utils/environment'; -import { Skeleton } from '../skeleton'; +import { DisplayNameDefault } from './default'; +import { DisplayNameWithoutDomain } from './no-domain'; +import { DisplayNameSimple } from './simple'; -interface Props { +export interface DisplayNameProps { account?: Account; localDomain?: string; - simple?: boolean; - noDomain?: boolean; + variant?: 'default' | 'simple' | 'noDomain'; } -export const DisplayName: FC> = ({ - account, - localDomain, - simple = false, - noDomain = false, - className, - ...props -}) => { - const username = useMemo(() => { - if (!account || noDomain) { - return null; - } - let acct = account.get('acct'); - - if (!acct.includes('@') && localDomain) { - acct = `${acct}@${localDomain}`; - } - return `@${acct}`; - }, [account, localDomain, noDomain]); - - if (!account) { - if (simple) { - return null; - } - return ( - - - - - - - {!noDomain && ( - -   - - - )} - - ); - } - const accountName = isModernEmojiEnabled() - ? account.get('display_name') - : account.get('display_name_html'); - if (simple) { - return ( - - - - ); +export const DisplayName: FC< + DisplayNameProps & ComponentPropsWithoutRef<'span'> +> = ({ variant = 'default', ...props }) => { + if (variant === 'simple') { + return ; + } else if (variant === 'noDomain') { + return ; } - - return ( - - - - - {username && ( -  {username} - )} - - ); + return ; }; export const LinkedDisplayName: FC< - Props & { asProps?: ComponentPropsWithoutRef<'span'> } & Partial -> = ({ - account, - asProps = {}, - className, - localDomain, - simple, - noDomain, - ...linkProps -}) => { - const displayProps = { - account, - className, - localDomain, - simple, - noDomain, - ...asProps, - }; + Omit & { + displayProps: DisplayNameProps & ComponentPropsWithoutRef<'span'>; + } +> = ({ displayProps, children, ...linkProps }) => { + const { account } = displayProps; if (!account) { return ; } @@ -113,9 +40,11 @@ export const LinkedDisplayName: FC< + {children} ); diff --git a/app/javascript/mastodon/components/display_name/no-domain.tsx b/app/javascript/mastodon/components/display_name/no-domain.tsx new file mode 100644 index 00000000000000..ccb9a62ab768e4 --- /dev/null +++ b/app/javascript/mastodon/components/display_name/no-domain.tsx @@ -0,0 +1,39 @@ +import type { ComponentPropsWithoutRef, FC } from 'react'; + +import classNames from 'classnames'; + +import { EmojiHTML } from '@/mastodon/features/emoji/emoji_html'; +import { isModernEmojiEnabled } from '@/mastodon/utils/environment'; + +import { Skeleton } from '../skeleton'; + +import type { DisplayNameProps } from './index'; + +export const DisplayNameWithoutDomain: FC< + Omit & + ComponentPropsWithoutRef<'span'> +> = ({ account, className, children, ...props }) => { + return ( + + + {account ? ( + + ) : ( + + + + )} + + {children} + + ); +}; diff --git a/app/javascript/mastodon/components/display_name/simple.tsx b/app/javascript/mastodon/components/display_name/simple.tsx new file mode 100644 index 00000000000000..3190c4384b2dcc --- /dev/null +++ b/app/javascript/mastodon/components/display_name/simple.tsx @@ -0,0 +1,23 @@ +import type { ComponentPropsWithoutRef, FC } from 'react'; + +import { EmojiHTML } from '@/mastodon/features/emoji/emoji_html'; +import { isModernEmojiEnabled } from '@/mastodon/utils/environment'; + +import type { DisplayNameProps } from './index'; + +export const DisplayNameSimple: FC< + Omit & + ComponentPropsWithoutRef<'span'> +> = ({ account, ...props }) => { + if (!account) { + return null; + } + const accountName = isModernEmojiEnabled() + ? account.get('display_name') + : account.get('display_name_html'); + return ( + + + + ); +}; diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index bd1d431622354c..34a9dda49774fb 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -28,7 +28,7 @@ import { displayMedia } from '../initial_state'; import { Avatar } from './avatar'; import { AvatarOverlay } from './avatar_overlay'; -import { DisplayName } from './display_name'; +import { LinkedDisplayName } from './display_name'; import { getHashtagBarForStatus } from './hashtag_bar'; import { RelativeTimestamp } from './relative_timestamp'; import StatusActionBar from './status_action_bar'; @@ -409,12 +409,20 @@ class Status extends ImmutablePureComponent { const matchedFilters = status.get('matched_filters'); if (status.get('reblog', null) !== null && typeof status.get('reblog') === 'object') { - const display_name_html = { __html: status.getIn(['account', 'display_name_html']) }; + const name = ( + + ) prepend = (
    - }} /> +
    ); @@ -570,13 +578,11 @@ class Status extends ImmutablePureComponent { {status.get('edited_at') && *} - +
    {statusAvatar}
    - - - +
    {isQuotedPost && !!this.props.onQuoteCancel && ( }} + values={{ + name: ( + + ), + }} /> ); } else { diff --git a/app/javascript/mastodon/features/account/components/follow_request_note.jsx b/app/javascript/mastodon/features/account/components/follow_request_note.jsx index d57fd030b2d9e2..9c20f1e0626259 100644 --- a/app/javascript/mastodon/features/account/components/follow_request_note.jsx +++ b/app/javascript/mastodon/features/account/components/follow_request_note.jsx @@ -6,6 +6,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component'; import CheckIcon from '@/material-icons/400-24px/check.svg?react'; import CloseIcon from '@/material-icons/400-24px/close.svg?react'; import { Icon } from 'mastodon/components/icon'; +import { DisplayName } from '@/mastodon/components/display_name'; export default class FollowRequestNote extends ImmutablePureComponent { @@ -19,7 +20,7 @@ export default class FollowRequestNote extends ImmutablePureComponent { return (
    - }} /> + }} />
    diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index 0bae0395031f6d..ed6d9cb83ec2fd 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -7,6 +7,7 @@ import { Helmet } from 'react-helmet'; import { NavLink } from 'react-router-dom'; import { AccountBio } from '@/mastodon/components/account_bio'; +import { DisplayName } from '@/mastodon/components/display_name'; import CheckIcon from '@/material-icons/400-24px/check.svg?react'; import LockIcon from '@/material-icons/400-24px/lock.svg?react'; import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react'; @@ -774,7 +775,6 @@ export const AccountHeader: React.FC<{ ); } - const displayNameHtml = { __html: account.display_name_html }; const fields = account.fields; const isLocal = !account.acct.includes('@'); const username = account.acct.split('@')[0]; @@ -863,7 +863,7 @@ export const AccountHeader: React.FC<{

    - + @{username} diff --git a/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx b/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx index 41bd8ab4ba82fc..cc6434c6ee6436 100644 --- a/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx @@ -1,33 +1,26 @@ import { FormattedMessage } from 'react-intl'; -import { Link } from 'react-router-dom'; - import { Avatar } from '@/mastodon/components/avatar'; import { AvatarGroup } from '@/mastodon/components/avatar_group'; +import { LinkedDisplayName } from '@/mastodon/components/display_name'; import type { Account } from '@/mastodon/models/account'; import { useFetchFamiliarFollowers } from '../hooks/familiar_followers'; -const AccountLink: React.FC<{ account?: Account }> = ({ account }) => { - if (!account) { - return null; - } - - return ( - - ); -}; - const FamiliarFollowersReadout: React.FC<{ familiarFollowers: Account[] }> = ({ familiarFollowers, }) => { const messageData = { - name1: , - name2: , + name1: ( + + ), + name2: ( + + ), othersCount: familiarFollowers.length - 2, }; diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx b/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx index 51dbb93c8b6d42..f2457dedd74712 100644 --- a/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx @@ -2,8 +2,8 @@ import { FormattedMessage } from 'react-intl'; import { Link } from 'react-router-dom'; +import { DisplayName } from '@/mastodon/components/display_name'; import { AvatarOverlay } from 'mastodon/components/avatar_overlay'; -import { DisplayName } from 'mastodon/components/display_name'; import { useAppSelector } from 'mastodon/store'; export const MovedNote: React.FC<{ @@ -20,15 +20,7 @@ export const MovedNote: React.FC<{ id='account.moved_to' defaultMessage='{name} has indicated that their new account is now:' values={{ - name: ( - - - - ), + name: , }} />

    diff --git a/app/javascript/mastodon/features/annual_report/highlighted_post.tsx b/app/javascript/mastodon/features/annual_report/highlighted_post.tsx index 3a2a70713da64b..7edbb2e614ff54 100644 --- a/app/javascript/mastodon/features/annual_report/highlighted_post.tsx +++ b/app/javascript/mastodon/features/annual_report/highlighted_post.tsx @@ -6,6 +6,7 @@ import { useCallback } from 'react'; import { FormattedMessage } from 'react-intl'; +import { DisplayName } from '@/mastodon/components/display_name'; import { toggleStatusSpoilers } from 'mastodon/actions/statuses'; import { DetailedStatus } from 'mastodon/features/status/components/detailed_status'; import { me } from 'mastodon/initial_state'; @@ -79,11 +80,7 @@ export const HighlightedPost: React.FC<{ id='annual_report.summary.highlighted_post.possessive' defaultMessage="{name}'s" values={{ - name: account && ( - - ), + name: , }} /> diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx index f701ab0f0453b7..9aae588bcc75c9 100644 --- a/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx +++ b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx @@ -25,6 +25,7 @@ import StatusContent from 'mastodon/components/status_content'; import { Dropdown } from 'mastodon/components/dropdown_menu'; import { autoPlayGif } from 'mastodon/initial_state'; import { makeGetStatus } from 'mastodon/selectors'; +import { LinkedDisplayName } from '@/mastodon/components/display_name'; const messages = defineMessages({ more: { id: 'status.more', defaultMessage: 'More' }, @@ -139,15 +140,8 @@ export const Conversation = ({ conversation, scrollKey }) => { menu.push({ text: intl.formatMessage(messages.delete), action: handleDelete }); - const names = accounts.map(a => ( - - - - - + const names = accounts.map((account) => ( + )).reduce((prev, cur) => [prev, ', ', cur]); const handlers = { diff --git a/app/javascript/mastodon/features/explore/components/author_link.jsx b/app/javascript/mastodon/features/explore/components/author_link.jsx index 764ae753412d95..cf92ebc78b36a0 100644 --- a/app/javascript/mastodon/features/explore/components/author_link.jsx +++ b/app/javascript/mastodon/features/explore/components/author_link.jsx @@ -1,9 +1,8 @@ import PropTypes from 'prop-types'; -import { Link } from 'react-router-dom'; - import { Avatar } from 'mastodon/components/avatar'; import { useAppSelector } from 'mastodon/store'; +import { LinkedDisplayName } from '@/mastodon/components/display_name'; export const AuthorLink = ({ accountId }) => { const account = useAppSelector(state => state.getIn(['accounts', accountId])); @@ -13,10 +12,9 @@ export const AuthorLink = ({ accountId }) => { } return ( - + - - + ); }; diff --git a/app/javascript/mastodon/features/interaction_modal/index.tsx b/app/javascript/mastodon/features/interaction_modal/index.tsx index 2abfceaa0bf89f..d17521d1e3dea7 100644 --- a/app/javascript/mastodon/features/interaction_modal/index.tsx +++ b/app/javascript/mastodon/features/interaction_modal/index.tsx @@ -7,6 +7,7 @@ import classNames from 'classnames'; import { escapeRegExp } from 'lodash'; import { useDebouncedCallback } from 'use-debounce'; +import { DisplayName } from '@/mastodon/components/display_name'; import { openModal, closeModal } from 'mastodon/actions/modal'; import { apiRequest } from 'mastodon/api'; import { Button } from 'mastodon/components/button'; @@ -404,15 +405,13 @@ const InteractionModal: React.FC<{ url: string; }> = ({ accountId, url }) => { const dispatch = useAppDispatch(); - const displayNameHtml = useAppSelector( - (state) => state.accounts.get(accountId)?.display_name_html ?? '', - ); const signupUrl = useAppSelector( (state) => (state.server.getIn(['server', 'registrations', 'url'], null) || '/auth/sign_up') as string, ); - const name = ; + const account = useAppSelector((state) => state.accounts.get(accountId)); + const name = ; const handleSignupClick = useCallback(() => { dispatch( diff --git a/app/javascript/mastodon/features/notifications/components/notification.jsx b/app/javascript/mastodon/features/notifications/components/notification.jsx index 7151f171007ee7..4fbae1e047e4f9 100644 --- a/app/javascript/mastodon/features/notifications/components/notification.jsx +++ b/app/javascript/mastodon/features/notifications/components/notification.jsx @@ -18,6 +18,7 @@ import PersonAddIcon from '@/material-icons/400-24px/person_add-fill.svg?react'; import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react'; import StarIcon from '@/material-icons/400-24px/star-fill.svg?react'; import { Account } from 'mastodon/components/account'; +import { LinkedDisplayName } from '@/mastodon/components/display_name'; import { Icon } from 'mastodon/components/icon'; import { Hotkeys } from 'mastodon/components/hotkeys'; import { StatusQuoteManager } from 'mastodon/components/status_quoted'; @@ -485,8 +486,10 @@ class Notification extends ImmutablePureComponent { } const targetAccount = report.get('target_account'); - const targetDisplayNameHtml = { __html: targetAccount.get('display_name_html') }; - const targetLink = ; + const targetLink = ; return ( @@ -508,8 +511,7 @@ class Notification extends ImmutablePureComponent { render () { const { notification } = this.props; const account = notification.get('account'); - const displayNameHtml = { __html: account.get('display_name_html') }; - const link = ; + const link = ; switch(notification.get('type')) { case 'follow': diff --git a/app/javascript/mastodon/features/notifications/components/notification_request.jsx b/app/javascript/mastodon/features/notifications/components/notification_request.jsx index 381bb1153f4759..76ac99894e3edc 100644 --- a/app/javascript/mastodon/features/notifications/components/notification_request.jsx +++ b/app/javascript/mastodon/features/notifications/components/notification_request.jsx @@ -16,6 +16,7 @@ import { acceptNotificationRequest, dismissNotificationRequest } from 'mastodon/ import { initReport } from 'mastodon/actions/reports'; import { Avatar } from 'mastodon/components/avatar'; import { CheckBox } from 'mastodon/components/check_box'; +import { DisplayName } from '@/mastodon/components/display_name'; import { IconButton } from 'mastodon/components/icon_button'; import { Dropdown } from 'mastodon/components/dropdown_menu'; import { makeGetAccount } from 'mastodon/selectors'; @@ -96,7 +97,7 @@ export const NotificationRequest = ({ id, accountId, notificationsCount, checked
    - +
    @{account?.get('acct')} diff --git a/app/javascript/mastodon/features/notifications_v2/components/displayed_name.tsx b/app/javascript/mastodon/features/notifications_v2/components/displayed_name.tsx deleted file mode 100644 index 82ecb93ee5fdb9..00000000000000 --- a/app/javascript/mastodon/features/notifications_v2/components/displayed_name.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Link } from 'react-router-dom'; - -import { useAppSelector } from 'mastodon/store'; - -export const DisplayedName: React.FC<{ - accountIds: string[]; -}> = ({ accountIds }) => { - const lastAccountId = accountIds[0] ?? '0'; - const account = useAppSelector((state) => state.accounts.get(lastAccountId)); - - if (!account) return null; - - return ( - - - - ); -}; diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_admin_report.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_admin_report.tsx index e41a6b2736c3c4..03f047fb7fe3a7 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_admin_report.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_admin_report.tsx @@ -2,6 +2,7 @@ import { FormattedMessage, useIntl, defineMessages } from 'react-intl'; import classNames from 'classnames'; +import { DisplayName } from '@/mastodon/components/display_name'; import FlagIcon from '@/material-icons/400-24px/flag-fill.svg?react'; import { Icon } from 'mastodon/components/icon'; import { RelativeTimestamp } from 'mastodon/components/relative_timestamp'; @@ -42,11 +43,9 @@ export const NotificationAdminReport: React.FC<{ if (!account || !targetAccount) return null; - const domain = account.acct.split('@')[1]; - const values = { - name: {domain ?? `@${account.acct}`}, - target: @{targetAccount.acct}, + name: , + target: , category: intl.formatMessage(messages[report.category]), count: report.status_ids.length, }; diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx index 4be1eefcddc2ff..00746560dace6a 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx @@ -3,6 +3,7 @@ import type { JSX } from 'react'; import classNames from 'classnames'; +import { LinkedDisplayName } from '@/mastodon/components/display_name'; import { replyComposeById } from 'mastodon/actions/compose'; import { navigateToStatus } from 'mastodon/actions/statuses'; import { Avatar } from 'mastodon/components/avatar'; @@ -14,7 +15,6 @@ import { RelativeTimestamp } from 'mastodon/components/relative_timestamp'; import { NOTIFICATIONS_GROUP_MAX_AVATARS } from 'mastodon/models/notification_group'; import { useAppSelector, useAppDispatch } from 'mastodon/store'; -import { DisplayedName } from './displayed_name'; import { EmbeddedStatus } from './embedded_status'; const AVATAR_SIZE = 28; @@ -61,15 +61,18 @@ export const NotificationGroupWithStatus: React.FC<{ additionalContent, }) => { const dispatch = useAppDispatch(); + const account = useAppSelector((state) => + state.accounts.get(accountIds.at(0) ?? ''), + ); const label = useMemo( () => labelRenderer( - , + , count, labelSeeMoreHref, ), - [labelRenderer, accountIds, count, labelSeeMoreHref], + [labelRenderer, account, count, labelSeeMoreHref], ); const isPrivateMention = useAppSelector( diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_with_status.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_with_status.tsx index 96a4a4d65df262..bc219cba12c498 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_with_status.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_with_status.tsx @@ -2,6 +2,7 @@ import { useMemo } from 'react'; import classNames from 'classnames'; +import { LinkedDisplayName } from '@/mastodon/components/display_name'; import { replyComposeById } from 'mastodon/actions/compose'; import { toggleReblog, toggleFavourite } from 'mastodon/actions/interactions'; import { @@ -15,7 +16,6 @@ import { StatusQuoteManager } from 'mastodon/components/status_quoted'; import { getStatusHidden } from 'mastodon/selectors/filters'; import { useAppSelector, useAppDispatch } from 'mastodon/store'; -import { DisplayedName } from './displayed_name'; import type { LabelRenderer } from './notification_group_with_status'; export const NotificationWithStatus: React.FC<{ @@ -39,9 +39,16 @@ export const NotificationWithStatus: React.FC<{ }) => { const dispatch = useAppDispatch(); + const account = useAppSelector((state) => + state.accounts.get(accountIds.at(0) ?? ''), + ); const label = useMemo( - () => labelRenderer(, count), - [labelRenderer, accountIds, count], + () => + labelRenderer( + , + count, + ), + [labelRenderer, account, count], ); const isPrivateMention = useAppSelector( From 72fff2e54ffc134b186ab7b37a98a4ae353a0ed3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:44:12 +0200 Subject: [PATCH 58/81] chore(deps): update dependency ruby to v3.4.6 (#36135) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .ruby-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index 4f5e69734c9582..1cf8253024ccd6 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.4.5 +3.4.6 From de3692ca00bbf926f6458f51461b147918c07783 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:44:16 +0200 Subject: [PATCH 59/81] chore(deps): update docker.io/ruby docker tag to v3.4.6 (#36145) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5875ad6e80e2d5..e7f2f7f495f663 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ ARG BASE_REGISTRY="docker.io" # Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.4.x"] # renovate: datasource=docker depName=docker.io/ruby -ARG RUBY_VERSION="3.4.5" +ARG RUBY_VERSION="3.4.6" # # Node.js version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"] # renovate: datasource=node-version depName=node ARG NODE_MAJOR_VERSION="22" From 8a6ef2ebdfaca2a047e7dd82785675310ee3a53d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:46:30 +0200 Subject: [PATCH 60/81] fix(deps): update dependency jsdom to v27 (#36107) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- streaming/package.json | 2 +- yarn.lock | 202 ++++++++++++++++++++++++----------------- 2 files changed, 121 insertions(+), 83 deletions(-) diff --git a/streaming/package.json b/streaming/package.json index a820eeb867cb1b..40a737a61dad6a 100644 --- a/streaming/package.json +++ b/streaming/package.json @@ -21,7 +21,7 @@ "dotenv": "^16.0.3", "express": "^4.18.2", "ioredis": "^5.3.2", - "jsdom": "^26.0.0", + "jsdom": "^27.0.0", "pg": "^8.5.0", "pg-connection-string": "^2.6.0", "pino": "^9.0.0", diff --git a/yarn.lock b/yarn.lock index fea87111187924..8c3f75dfbc3523 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,16 +42,35 @@ __metadata: languageName: node linkType: hard -"@asamuzakjp/css-color@npm:^2.8.2": - version: 2.8.2 - resolution: "@asamuzakjp/css-color@npm:2.8.2" +"@asamuzakjp/css-color@npm:^4.0.3": + version: 4.0.4 + resolution: "@asamuzakjp/css-color@npm:4.0.4" dependencies: - "@csstools/css-calc": "npm:^2.1.1" - "@csstools/css-color-parser": "npm:^3.0.7" - "@csstools/css-parser-algorithms": "npm:^3.0.4" - "@csstools/css-tokenizer": "npm:^3.0.3" - lru-cache: "npm:^11.0.2" - checksum: 10c0/352b91ca7741876e459cd3cb350a969e842da1e532577157d38365a6da89b7d6e6944249489366ee61b8a225ede1b521e7ab305b70ad4c688b01404061eecca8 + "@csstools/css-calc": "npm:^2.1.4" + "@csstools/css-color-parser": "npm:^3.0.10" + "@csstools/css-parser-algorithms": "npm:^3.0.5" + "@csstools/css-tokenizer": "npm:^3.0.4" + lru-cache: "npm:^11.1.0" + checksum: 10c0/5a4eb3c8594f58f3df06c867a6cda4a33f702f5cd682d6afa5074813f16fd05e732653ac79bd6fc66390554e158ac478103ad5e885fd9cf154b69bb67639e82f + languageName: node + linkType: hard + +"@asamuzakjp/dom-selector@npm:^6.5.4": + version: 6.5.4 + resolution: "@asamuzakjp/dom-selector@npm:6.5.4" + dependencies: + "@asamuzakjp/nwsapi": "npm:^2.3.9" + bidi-js: "npm:^1.0.3" + css-tree: "npm:^3.1.0" + is-potential-custom-element-name: "npm:^1.0.1" + checksum: 10c0/aeb032b0f7832c891d5f9900b381fe0c7187343eb46a353f07ffbaac2d222bb80ac7504006e7e1b4c45af9e640fd093e14f951870a146d3ad80fd67670c9a115 + languageName: node + linkType: hard + +"@asamuzakjp/nwsapi@npm:^2.3.9": + version: 2.3.9 + resolution: "@asamuzakjp/nwsapi@npm:2.3.9" + checksum: 10c0/869b81382e775499c96c45c6dbe0d0766a6da04bcf0abb79f5333535c4e19946851acaa43398f896e2ecc5a1de9cf3db7cf8c4b1afac1ee3d15e21584546d74d languageName: node linkType: hard @@ -1256,7 +1275,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^2.1.1, @csstools/css-calc@npm:^2.1.4": +"@csstools/css-calc@npm:^2.1.4": version: 2.1.4 resolution: "@csstools/css-calc@npm:2.1.4" peerDependencies: @@ -1266,7 +1285,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.10, @csstools/css-color-parser@npm:^3.0.7": +"@csstools/css-color-parser@npm:^3.0.10": version: 3.0.10 resolution: "@csstools/css-color-parser@npm:3.0.10" dependencies: @@ -1279,7 +1298,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.4, @csstools/css-parser-algorithms@npm:^3.0.5": +"@csstools/css-parser-algorithms@npm:^3.0.5": version: 3.0.5 resolution: "@csstools/css-parser-algorithms@npm:3.0.5" peerDependencies: @@ -1288,7 +1307,16 @@ __metadata: languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^3.0.3, @csstools/css-tokenizer@npm:^3.0.4": +"@csstools/css-syntax-patches-for-csstree@npm:^1.0.14": + version: 1.0.14 + resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.0.14" + peerDependencies: + postcss: ^8.4 + checksum: 10c0/e431cf5aa4ccd6a40f4a417663ac7178c822c5427b9c8473e466257dc46dd9698e3852d5517ec220b7d1d1ea911e9007ecb429464329ae169a0aa68b56f1c3ac + languageName: node + linkType: hard + +"@csstools/css-tokenizer@npm:^3.0.4": version: 3.0.4 resolution: "@csstools/css-tokenizer@npm:3.0.4" checksum: 10c0/3b589f8e9942075a642213b389bab75a2d50d05d203727fcdac6827648a5572674caff07907eff3f9a2389d86a4ee47308fafe4f8588f4a77b7167c588d2559f @@ -2789,7 +2817,7 @@ __metadata: express: "npm:^4.18.2" globals: "npm:^16.0.0" ioredis: "npm:^5.3.2" - jsdom: "npm:^26.0.0" + jsdom: "npm:^27.0.0" pg: "npm:^8.5.0" pg-connection-string: "npm:^2.6.0" pino: "npm:^9.0.0" @@ -5405,6 +5433,15 @@ __metadata: languageName: node linkType: hard +"bidi-js@npm:^1.0.3": + version: 1.0.3 + resolution: "bidi-js@npm:1.0.3" + dependencies: + require-from-string: "npm:^2.0.2" + checksum: 10c0/fdddea4aa4120a34285486f2267526cd9298b6e8b773ad25e765d4f104b6d7437ab4ba542e6939e3ac834a7570bcf121ee2cf6d3ae7cd7082c4b5bedc8f271e1 + languageName: node + linkType: hard + "binary-extensions@npm:^2.0.0": version: 2.3.0 resolution: "binary-extensions@npm:2.3.0" @@ -6104,13 +6141,14 @@ __metadata: languageName: node linkType: hard -"cssstyle@npm:^4.2.1": - version: 4.2.1 - resolution: "cssstyle@npm:4.2.1" +"cssstyle@npm:^5.3.0": + version: 5.3.0 + resolution: "cssstyle@npm:5.3.0" dependencies: - "@asamuzakjp/css-color": "npm:^2.8.2" - rrweb-cssom: "npm:^0.8.0" - checksum: 10c0/02ba8c47c0caaab57acadacb3eb6c0f5f009000f55d61f6563670e07d389b26edefeed497e6c1847fcd2e6bbe0b6974c2d4291f97fa0c6ec6add13a7fa926d84 + "@asamuzakjp/css-color": "npm:^4.0.3" + "@csstools/css-syntax-patches-for-csstree": "npm:^1.0.14" + css-tree: "npm:^3.1.0" + checksum: 10c0/6ceddc5b696d1220b9a3e41775860f58d29046cdbabc1e6b9c19bc48a6bfdcde749c45023417abf7ca3319429566c079a3e6f6e191ceab159dbced6187cb8b7c languageName: node linkType: hard @@ -6128,13 +6166,13 @@ __metadata: languageName: node linkType: hard -"data-urls@npm:^5.0.0": - version: 5.0.0 - resolution: "data-urls@npm:5.0.0" +"data-urls@npm:^6.0.0": + version: 6.0.0 + resolution: "data-urls@npm:6.0.0" dependencies: whatwg-mimetype: "npm:^4.0.0" - whatwg-url: "npm:^14.0.0" - checksum: 10c0/1b894d7d41c861f3a4ed2ae9b1c3f0909d4575ada02e36d3d3bc584bdd84278e20709070c79c3b3bff7ac98598cb191eb3e86a89a79ea4ee1ef360e1694f92ad + whatwg-url: "npm:^15.0.0" + checksum: 10c0/952102a8e6282fea112f7120d79fac482a2f99e20c67f9cb069d661c00627305b042e1f7e3cef8e4bbc795b42c5d481bbc9c6effeff5bb1427f9acaf1722bd35 languageName: node linkType: hard @@ -6534,13 +6572,20 @@ __metadata: languageName: node linkType: hard -"entities@npm:^4.4.0, entities@npm:^4.5.0": +"entities@npm:^4.4.0": version: 4.5.0 resolution: "entities@npm:4.5.0" checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 languageName: node linkType: hard +"entities@npm:^6.0.0": + version: 6.0.1 + resolution: "entities@npm:6.0.1" + checksum: 10c0/ed836ddac5acb34341094eb495185d527bd70e8632b6c0d59548cbfa23defdbae70b96f9a405c82904efa421230b5b3fd2283752447d737beffd3f3e6ee74414 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -8761,36 +8806,36 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^26.0.0": - version: 26.1.0 - resolution: "jsdom@npm:26.1.0" +"jsdom@npm:^27.0.0": + version: 27.0.0 + resolution: "jsdom@npm:27.0.0" dependencies: - cssstyle: "npm:^4.2.1" - data-urls: "npm:^5.0.0" + "@asamuzakjp/dom-selector": "npm:^6.5.4" + cssstyle: "npm:^5.3.0" + data-urls: "npm:^6.0.0" decimal.js: "npm:^10.5.0" html-encoding-sniffer: "npm:^4.0.0" http-proxy-agent: "npm:^7.0.2" https-proxy-agent: "npm:^7.0.6" is-potential-custom-element-name: "npm:^1.0.1" - nwsapi: "npm:^2.2.16" - parse5: "npm:^7.2.1" + parse5: "npm:^7.3.0" rrweb-cssom: "npm:^0.8.0" saxes: "npm:^6.0.0" symbol-tree: "npm:^3.2.4" - tough-cookie: "npm:^5.1.1" + tough-cookie: "npm:^6.0.0" w3c-xmlserializer: "npm:^5.0.0" - webidl-conversions: "npm:^7.0.0" + webidl-conversions: "npm:^8.0.0" whatwg-encoding: "npm:^3.1.1" whatwg-mimetype: "npm:^4.0.0" - whatwg-url: "npm:^14.1.1" - ws: "npm:^8.18.0" + whatwg-url: "npm:^15.0.0" + ws: "npm:^8.18.2" xml-name-validator: "npm:^5.0.0" peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: canvas: optional: true - checksum: 10c0/5b14a5bc32ce077a06fb42d1ab95b1191afa5cbbce8859e3b96831c5143becbbcbf0511d4d4934e922d2901443ced2cdc3b734c1cf30b5f73b3e067ce457d0f4 + checksum: 10c0/cc977bd0f48f92b275166b3e64622d83c2073dc309b790ed806246365985743295a7735bc8519a186ccffd42d1f2c16a0fa52a4ea79d2b329a948756db64ade1 languageName: node linkType: hard @@ -9174,10 +9219,10 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^11.0.2": - version: 11.0.2 - resolution: "lru-cache@npm:11.0.2" - checksum: 10c0/c993b8e06ead0b24b969c1dbb5b301716aed66e320e9014a80012f5febe280b438f28ff50046b2c55ff404e889351ccb332ff91f8dd175a21f5eae80e3fb155f +"lru-cache@npm:^11.1.0": + version: 11.2.1 + resolution: "lru-cache@npm:11.2.1" + checksum: 10c0/6f0e6b27f368d5e464e7813bd5b0af8f9a81a3a7ce2f40509841fdef07998b2588869f3e70edfbdb3bf705857f7bb21cca58fb01e1a1dc2440a83fcedcb7e8d8 languageName: node linkType: hard @@ -9715,13 +9760,6 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.16": - version: 2.2.16 - resolution: "nwsapi@npm:2.2.16" - checksum: 10c0/0aa0637f4d51043d0183d994e08336bae996b03b42984381bf09ebdf3ff4909c018eda6b2a8aba0a08f3ea8303db8a0dad0608b38dc0bff15fd87017286ae21a - languageName: node - linkType: hard - "object-assign@npm:^4, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -9977,12 +10015,12 @@ __metadata: languageName: node linkType: hard -"parse5@npm:^7.2.1": - version: 7.2.1 - resolution: "parse5@npm:7.2.1" +"parse5@npm:^7.3.0": + version: 7.3.0 + resolution: "parse5@npm:7.3.0" dependencies: - entities: "npm:^4.5.0" - checksum: 10c0/829d37a0c709215a887e410a7118d754f8e1afd7edb529db95bc7bbf8045fb0266a7b67801331d8e8d9d073ea75793624ec27ce9ff3b96862c3b9008f4d68e80 + entities: "npm:^6.0.0" + checksum: 10c0/7fd2e4e247e85241d6f2a464d0085eed599a26d7b0a5233790c49f53473232eb85350e8133344d9b3fd58b89339e7ad7270fe1f89d28abe50674ec97b87f80b5 languageName: node linkType: hard @@ -13095,21 +13133,21 @@ __metadata: languageName: node linkType: hard -"tldts-core@npm:^6.1.47": - version: 6.1.47 - resolution: "tldts-core@npm:6.1.47" - checksum: 10c0/538372072aea7153e842646a9e22d0d9335acf7fd877d10ee374cf78dceff79a2ccebadf7d25e0dbddd7b7b60bafe1c885aac3e3b1d5bec7806963c89b163ee7 +"tldts-core@npm:^7.0.14": + version: 7.0.14 + resolution: "tldts-core@npm:7.0.14" + checksum: 10c0/e35f006e3376c70ea2cde436fc808b3017322de62246e7e4a733cc09a60959711cd9dbfd91b67ffe52fbee215d9e41911a39b6c20e8f45544b09f7662355753f languageName: node linkType: hard -"tldts@npm:^6.1.32": - version: 6.1.47 - resolution: "tldts@npm:6.1.47" +"tldts@npm:^7.0.5": + version: 7.0.14 + resolution: "tldts@npm:7.0.14" dependencies: - tldts-core: "npm:^6.1.47" + tldts-core: "npm:^7.0.14" bin: tldts: bin/cli.js - checksum: 10c0/42c999ab24ce3ab221cfefe77488d145d16d9523524913badaa4af4f1f0d65e0a92a678659b22b7d26d1c62796540c95158049220c9ff243090b93470f236302 + checksum: 10c0/87dd69b68e07c0cb3913c4b7fb4a57a3b4826a664637725ab9226aa01a4786d003c181b0525d09bfb1bb0c16802b4350620443da64d9e947a7ff4c19f2f4acbf languageName: node linkType: hard @@ -13148,12 +13186,12 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^5.1.1": - version: 5.1.2 - resolution: "tough-cookie@npm:5.1.2" +"tough-cookie@npm:^6.0.0": + version: 6.0.0 + resolution: "tough-cookie@npm:6.0.0" dependencies: - tldts: "npm:^6.1.32" - checksum: 10c0/5f95023a47de0f30a902bba951664b359725597d8adeabc66a0b93a931c3af801e1e697dae4b8c21a012056c0ea88bd2bf4dfe66b2adcf8e2f42cd9796fe0626 + tldts: "npm:^7.0.5" + checksum: 10c0/7b17a461e9c2ac0d0bea13ab57b93b4346d0b8c00db174c963af1e46e4ea8d04148d2a55f2358fc857db0c0c65208a98e319d0c60693e32e0c559a9d9cf20cb5 languageName: node linkType: hard @@ -13173,12 +13211,12 @@ __metadata: languageName: node linkType: hard -"tr46@npm:^5.1.0": - version: 5.1.0 - resolution: "tr46@npm:5.1.0" +"tr46@npm:^5.1.1": + version: 5.1.1 + resolution: "tr46@npm:5.1.1" dependencies: punycode: "npm:^2.3.1" - checksum: 10c0/d761f7144e0cb296187674ef245c74f761e334d7cf25ca73ef60e4c72c097c75051031c093fa1a2fee04b904977b316716a7915854bcae8fb1a371746513cbe8 + checksum: 10c0/ae270e194d52ec67ebd695c1a42876e0f19b96e4aca2ab464ab1d9d17dc3acd3e18764f5034c93897db73421563be27c70c98359c4501136a497e46deda5d5ec languageName: node linkType: hard @@ -14007,10 +14045,10 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^7.0.0": - version: 7.0.0 - resolution: "webidl-conversions@npm:7.0.0" - checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4 +"webidl-conversions@npm:^8.0.0": + version: 8.0.0 + resolution: "webidl-conversions@npm:8.0.0" + checksum: 10c0/3244e8a6534163bc3ee5f5f48b507b4bb74e34e7cc7c86a50cd02734753042b88343dae48321f34ad61ddc6b5c90cb1a5b2ee757b8be8e6fadc587a9f3db76cd languageName: node linkType: hard @@ -14037,13 +14075,13 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^14.0.0, whatwg-url@npm:^14.1.1": - version: 14.2.0 - resolution: "whatwg-url@npm:14.2.0" +"whatwg-url@npm:^15.0.0": + version: 15.0.0 + resolution: "whatwg-url@npm:15.0.0" dependencies: - tr46: "npm:^5.1.0" - webidl-conversions: "npm:^7.0.0" - checksum: 10c0/f746fc2f4c906607d09537de1227b13f9494c171141e5427ed7d2c0dd0b6a48b43d8e71abaae57d368d0c06b673fd8ec63550b32ad5ed64990c7b0266c2b4272 + tr46: "npm:^5.1.1" + webidl-conversions: "npm:^8.0.0" + checksum: 10c0/7b4f633fcd8fea6d588fb5694a9c4631382b41d31270e1fb3b755923f2c267d456ea1c7122124689e430b6a4e73c7e43e0731f833b33bfedcfffa2a7b4efbfc0 languageName: node linkType: hard From 2664bb628b7bf77b9efa4143423486cf16d17ba7 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 17 Sep 2025 14:00:58 +0200 Subject: [PATCH 61/81] Fix quote with CW but no text being shown without CW (#36150) --- app/javascript/mastodon/actions/importer/normalizer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js index d5e59b8b05108a..7723379804cc8f 100644 --- a/app/javascript/mastodon/actions/importer/normalizer.js +++ b/app/javascript/mastodon/actions/importer/normalizer.js @@ -81,7 +81,7 @@ export function normalizeStatus(status, normalOldStatus) { } else { // If the status has a CW but no contents, treat the CW as if it were the // status' contents, to avoid having a CW toggle with seemingly no effect. - if (normalStatus.spoiler_text && !normalStatus.content) { + if (normalStatus.spoiler_text && !normalStatus.content && !normalStatus.quote) { normalStatus.content = normalStatus.spoiler_text; normalStatus.spoiler_text = ''; } From fbf093a87fe57951428d15abca6aff6a89a7f132 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 17 Sep 2025 14:19:00 +0200 Subject: [PATCH 62/81] Fix CW being moved to text when posting quote posts with empty text (#36151) --- app/services/post_status_service.rb | 2 +- spec/requests/api/v1/statuses_spec.rb | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index cfc80d81cd30d1..e6d0c40730745d 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -66,7 +66,7 @@ def call(account, options = {}) def preprocess_attributes! @sensitive = (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present? - @text = @options.delete(:spoiler_text) if @text.blank? && @options[:spoiler_text].present? + @text = @options.delete(:spoiler_text) if @text.blank? && @options[:spoiler_text].present? && @quoted_status.blank? @visibility = @options[:visibility] || @account.user&.setting_default_privacy @visibility = :unlisted if @visibility&.to_sym == :public && @account.silenced? @visibility = :private if @quoted_status&.private_visibility? diff --git a/spec/requests/api/v1/statuses_spec.rb b/spec/requests/api/v1/statuses_spec.rb index 7a6cb81899721a..b3cc4913c33d27 100644 --- a/spec/requests/api/v1/statuses_spec.rb +++ b/spec/requests/api/v1/statuses_spec.rb @@ -226,6 +226,29 @@ end end + context 'with a self-quote post and a CW but no text', feature: :outgoing_quotes do + let(:quoted_status) { Fabricate(:status, account: user.account) } + let(:params) do + { + spoiler_text: 'this is a CW', + quoted_status_id: quoted_status.id, + } + end + + it 'returns a quote post, as well as rate limit headers', :aggregate_failures do + subject + + expect(response).to have_http_status(200) + expect(response.content_type) + .to start_with('application/json') + expect(response.parsed_body[:quote]).to be_present + expect(response.parsed_body[:spoiler_text]).to eq 'this is a CW' + expect(response.parsed_body[:content]).to eq '' + expect(response.headers['X-RateLimit-Limit']).to eq RateLimiter::FAMILIES[:statuses][:limit].to_s + expect(response.headers['X-RateLimit-Remaining']).to eq (RateLimiter::FAMILIES[:statuses][:limit] - 1).to_s + end + end + context 'with a safeguard' do let!(:alice) { Fabricate(:account, username: 'alice') } let!(:bob) { Fabricate(:account, username: 'bob') } From db0cd9489c70e985da961a585f3a809ca449dccf Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 17 Sep 2025 14:19:03 +0200 Subject: [PATCH 63/81] Bump version to v4.4.4 (#36152) --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ docker-compose.yml | 6 +++--- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6684e2067aa51..3ad88c51070c5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,34 @@ All notable changes to this project will be documented in this file. +## [4.4.4] - 2025-09-16 + +### Security + +- Update dependencies + +### Fixed + +- Fix missing memoization in `Web::PushNotificationWorker` (#36085 by @ClearlyClaire) +- Fix unresponsive areas around GIFV modals in some cases (#36059 by @ClearlyClaire) +- Fix missing `beforeUnload` confirmation when a poll is being authored (#36030 by @ClearlyClaire) +- Fix processing of remote edited statuses with new media and no text (#35970 by @unfokus) +- Fix polls not being displayed in moderation interface (#35644 and #35933 by @ThisIsMissEm) +- Fix WebUI handling of deleted quoted posts (#35909 and #35918 by @ClearlyClaire and @diondiondion) +- Fix “Edit” and “Delete & Redraft” on a poll not inserting empty option (#35892 by @ClearlyClaire) +- Fix loading of some compatibility CSS on some configurations (#35876 by @shleeable) +- Fix HttpLog not being enabled with `RAILS_LOG_LEVEL=debug` (#35833 by @mjankowski) +- Fix self-destruct scheduler behavior on some Redis setups (#35823 by @ClearlyClaire) +- Fix `tootctl admin create` not bypassing reserved username checks (#35779 by @ClearlyClaire) +- Fix interaction policy changes in implicit updates not being saved (#35751 by @ClearlyClaire) +- Fix quote revocation not being streamed (#35710 by @ClearlyClaire) +- Fix export of large user archives by enabling Zip64 (#35850 by @ClearlyClaire) + +### Changed + +- Change labels for quote policy settings (#35893 by @ClearlyClaire) +- Change standalone “Share” page to redirect to web interface after posting (#35763 by @ChaosExAnima) + ## [4.4.3] - 2025-08-05 ### Security diff --git a/docker-compose.yml b/docker-compose.yml index 39823fc812c5d4..e0159beae7035b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -59,7 +59,7 @@ services: web: # You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes # build: . - image: ghcr.io/mastodon/mastodon:v4.4.3 + image: ghcr.io/mastodon/mastodon:v4.4.4 restart: always env_file: .env.production command: bundle exec puma -C config/puma.rb @@ -83,7 +83,7 @@ services: # build: # dockerfile: ./streaming/Dockerfile # context: . - image: ghcr.io/mastodon/mastodon-streaming:v4.4.3 + image: ghcr.io/mastodon/mastodon-streaming:v4.4.4 restart: always env_file: .env.production command: node ./streaming/index.js @@ -102,7 +102,7 @@ services: sidekiq: # You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes # build: . - image: ghcr.io/mastodon/mastodon:v4.4.3 + image: ghcr.io/mastodon/mastodon:v4.4.4 restart: always env_file: .env.production command: bundle exec sidekiq From 085e9ea676f11cad4ae7fafce5ceadb16ecd0f83 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 17 Sep 2025 17:24:39 +0200 Subject: [PATCH 64/81] Create reusable Alert/Snackbar component (#36141) --- .storybook/preview-body.html | 2 + .../components/alert/alert.stories.tsx | 110 ++++++++++++++++++ .../mastodon/components/alert/index.tsx | 68 +++++++++++ .../mastodon/components/alerts_controller.tsx | 46 +++----- .../styles/mastodon/components.scss | 47 ++++++-- 5 files changed, 232 insertions(+), 41 deletions(-) create mode 100644 .storybook/preview-body.html create mode 100644 app/javascript/mastodon/components/alert/alert.stories.tsx create mode 100644 app/javascript/mastodon/components/alert/index.tsx diff --git a/.storybook/preview-body.html b/.storybook/preview-body.html new file mode 100644 index 00000000000000..1870d95b8fe3db --- /dev/null +++ b/.storybook/preview-body.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/javascript/mastodon/components/alert/alert.stories.tsx b/app/javascript/mastodon/components/alert/alert.stories.tsx new file mode 100644 index 00000000000000..4d5f8acb65b9d9 --- /dev/null +++ b/app/javascript/mastodon/components/alert/alert.stories.tsx @@ -0,0 +1,110 @@ +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { fn, expect } from 'storybook/test'; + +import { Alert } from '.'; + +const meta = { + title: 'Components/Alert', + component: Alert, + args: { + isActive: true, + animateFrom: 'side', + title: '', + message: '', + action: '', + onActionClick: fn(), + }, + argTypes: { + isActive: { + control: 'boolean', + type: 'boolean', + description: 'Animate to the active (displayed) state of the alert', + }, + animateFrom: { + control: 'radio', + type: 'string', + options: ['side', 'below'], + description: + 'Direction that the alert animates in from when activated. `side` is dependent on reading direction, defaulting to left in ltr languages.', + }, + title: { + control: 'text', + type: 'string', + description: '(Optional) title of the alert', + }, + message: { + control: 'text', + type: 'string', + description: 'Main alert text', + }, + action: { + control: 'text', + type: 'string', + description: + 'Label of the alert action (requires `onActionClick` handler)', + }, + }, + tags: ['test'], +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const Simple: Story = { + args: { + message: 'Post published.', + }, + render: (args) => ( +
    + +
    + ), +}; + +export const WithAction: Story = { + args: { + ...Simple.args, + action: 'Open', + }, + render: Simple.render, + play: async ({ args, canvas, userEvent }) => { + const button = await canvas.findByRole('button', { name: 'Open' }); + await userEvent.click(button); + await expect(args.onActionClick).toHaveBeenCalled(); + }, +}; + +export const WithTitle: Story = { + args: { + title: 'Warning:', + message: 'This is an alert', + }, + render: Simple.render, +}; + +export const WithDismissButton: Story = { + args: { + message: 'More replies found', + action: 'Show', + onDismiss: fn(), + }, + render: Simple.render, +}; + +export const InSizedContainer: Story = { + args: WithDismissButton.args, + render: (args) => ( +
    + +
    + ), +}; diff --git a/app/javascript/mastodon/components/alert/index.tsx b/app/javascript/mastodon/components/alert/index.tsx new file mode 100644 index 00000000000000..1009e77524bdfc --- /dev/null +++ b/app/javascript/mastodon/components/alert/index.tsx @@ -0,0 +1,68 @@ +import { useIntl } from 'react-intl'; + +import classNames from 'classnames'; + +import CloseIcon from '@/material-icons/400-24px/close.svg?react'; + +import { IconButton } from '../icon_button'; + +/** + * Snackbar/Toast-style notification component. + */ +export const Alert: React.FC<{ + isActive?: boolean; + animateFrom?: 'side' | 'below'; + title?: string; + message: string; + action?: string; + onActionClick?: () => void; + onDismiss?: () => void; +}> = ({ + isActive, + animateFrom = 'side', + title, + message, + action, + onActionClick, + onDismiss, +}) => { + const intl = useIntl(); + + const hasAction = Boolean(action && onActionClick); + + return ( +
    + + {Boolean(title) && ( + {title} + )} + {message} + + + {hasAction && ( + + )} + + {onDismiss && ( + + )} +
    + ); +}; diff --git a/app/javascript/mastodon/components/alerts_controller.tsx b/app/javascript/mastodon/components/alerts_controller.tsx index 26749fa10376e3..aa97feeca58dac 100644 --- a/app/javascript/mastodon/components/alerts_controller.tsx +++ b/app/javascript/mastodon/components/alerts_controller.tsx @@ -3,16 +3,16 @@ import { useState, useEffect } from 'react'; import { useIntl } from 'react-intl'; import type { IntlShape } from 'react-intl'; -import classNames from 'classnames'; - import { dismissAlert } from 'mastodon/actions/alerts'; import type { - Alert, + Alert as AlertType, TranslatableString, TranslatableValues, } from 'mastodon/models/alert'; import { useAppSelector, useAppDispatch } from 'mastodon/store'; +import { Alert } from './alert'; + const formatIfNeeded = ( intl: IntlShape, message: TranslatableString, @@ -25,8 +25,8 @@ const formatIfNeeded = ( return message; }; -const Alert: React.FC<{ - alert: Alert; +const TimedAlert: React.FC<{ + alert: AlertType; dismissAfter: number; }> = ({ alert: { key, title, message, values, action, onClick }, @@ -62,29 +62,13 @@ const Alert: React.FC<{ }, [dispatch, setActive, key, dismissAfter]); return ( -
    -
    - {title && ( - - {formatIfNeeded(intl, title, values)} - - )} - - - {formatIfNeeded(intl, message, values)} - - - {action && ( - - )} -
    -
    + ); }; @@ -98,7 +82,11 @@ export const AlertsController: React.FC = () => { return (
    {alerts.map((alert, idx) => ( - + ))}
    ); diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index bf810fe6e2b501..f5cb8744bf8f06 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -10294,7 +10294,7 @@ noscript { .notification-list { position: fixed; bottom: 2rem; - inset-inline-start: 0; + inset-inline-start: 1rem; z-index: 9999; display: flex; flex-direction: column; @@ -10302,9 +10302,11 @@ noscript { } .notification-bar { + --alert-edge-spacing: 1rem; + + display: flex; + gap: 10px; flex: 0 0 auto; - position: relative; - inset-inline-start: -100%; width: auto; padding: 15px; margin: 0; @@ -10320,33 +10322,43 @@ noscript { font-size: 15px; line-height: 21px; - &.notification-bar-active { - inset-inline-start: 1rem; + &.from-side { + translate: calc( + -1 * (100% + var(--alert-edge-spacing)) * var(--text-x-direction) + ); + } + + &.from-below { + translate: 0 calc(100% + var(--alert-edge-spacing)); + } + + &.notification-bar--active { + translate: none; } .no-reduce-motion & { transition: 0.5s cubic-bezier(0.89, 0.01, 0.5, 1.1); - transform: translateZ(0); + will-change: translate; } } -.notification-bar-title { - margin-inline-end: 5px; +.notification-bar__content { + margin-inline-end: auto; } -.notification-bar-title, -.notification-bar-action { +.notification-bar__title { + margin-inline-end: 5px; font-weight: 700; } -.notification-bar-action { +.notification-bar__action { display: inline-block; border: 0; background: transparent; text-transform: uppercase; - margin-inline-start: 10px; cursor: pointer; color: $blurple-300; + font-weight: 700; border-radius: 4px; padding: 0 4px; @@ -10357,6 +10369,17 @@ noscript { } } +.notification-bar__dismiss-button { + margin-top: -2px; + color: rgb(from currentColor r g b / 85%); + + &:hover, + &:focus, + &:active { + color: currentColor; + } +} + .hashtag-header { border-bottom: 1px solid var(--background-border-color); padding: 15px; From 90765342a35abd6883e57f5419342f491b83e250 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 17 Sep 2025 21:16:36 +0200 Subject: [PATCH 65/81] Fix posts when omitting quote policy and default policy is `nobody` (#36158) --- .../api/interaction_policies_concern.rb | 4 +--- spec/requests/api/v1/statuses_spec.rb | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/controllers/concerns/api/interaction_policies_concern.rb b/app/controllers/concerns/api/interaction_policies_concern.rb index 3e319f6be9ef00..5b63705a9bf703 100644 --- a/app/controllers/concerns/api/interaction_policies_concern.rb +++ b/app/controllers/concerns/api/interaction_policies_concern.rb @@ -6,15 +6,13 @@ module Api::InteractionPoliciesConcern def quote_approval_policy return nil unless Mastodon::Feature.outgoing_quotes_enabled? - case status_params[:quote_approval_policy] + case status_params[:quote_approval_policy].presence || current_user.setting_default_quote_policy when 'public' Status::QUOTE_APPROVAL_POLICY_FLAGS[:public] << 16 when 'followers' Status::QUOTE_APPROVAL_POLICY_FLAGS[:followers] << 16 when 'nobody' 0 - when nil - Status::QUOTE_APPROVAL_POLICY_FLAGS[current_user.setting_default_quote_policy&.to_sym] << 16 else # TODO: raise more useful message raise ActiveRecord::RecordInvalid diff --git a/spec/requests/api/v1/statuses_spec.rb b/spec/requests/api/v1/statuses_spec.rb index b3cc4913c33d27..eb3e8aed5bc8aa 100644 --- a/spec/requests/api/v1/statuses_spec.rb +++ b/spec/requests/api/v1/statuses_spec.rb @@ -180,6 +180,28 @@ end end + context 'without a quote policy and the user defaults to nobody', feature: :outgoing_quotes do + let(:user) do + Fabricate(:user, settings: { default_quote_policy: 'nobody' }) + end + + it 'returns post with user default quote policy, as well as rate limit headers', :aggregate_failures do + subject + expect(user.setting_default_quote_policy).to eq 'nobody' + + expect(response).to have_http_status(200) + expect(response.content_type) + .to start_with('application/json') + expect(response.parsed_body[:quote_approval]).to include({ + automatic: [], + manual: [], + current_user: 'automatic', + }) + expect(response.headers['X-RateLimit-Limit']).to eq RateLimiter::FAMILIES[:statuses][:limit].to_s + expect(response.headers['X-RateLimit-Remaining']).to eq (RateLimiter::FAMILIES[:statuses][:limit] - 1).to_s + end + end + context 'with a quote policy', feature: :outgoing_quotes do let(:quoted_status) { Fabricate(:status, account: user.account) } let(:params) do From bb3f9ed13b41900916149363c97621af092403c4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 10:17:25 +0200 Subject: [PATCH 66/81] New Crowdin Translations (automated) (#36160) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/br.json | 4 +-- app/javascript/mastodon/locales/el.json | 5 +++- app/javascript/mastodon/locales/fr-CA.json | 35 ++++++++++++++++++++++ app/javascript/mastodon/locales/fr.json | 35 ++++++++++++++++++++++ app/javascript/mastodon/locales/ga.json | 1 + app/javascript/mastodon/locales/he.json | 3 ++ app/javascript/mastodon/locales/hu.json | 3 ++ app/javascript/mastodon/locales/ia.json | 3 ++ app/javascript/mastodon/locales/ja.json | 3 ++ app/javascript/mastodon/locales/lad.json | 11 ++++++- app/javascript/mastodon/locales/vi.json | 3 ++ config/locales/el.yml | 8 ++--- config/locales/lad.yml | 15 ++++++++++ 13 files changed, 121 insertions(+), 8 deletions(-) diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index d07301d8b9f7b3..0f2f63c9ce75e6 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -319,7 +319,7 @@ "follow_suggestions.popular_suggestion_longer": "Diouzh ar c'hiz war {domain}", "follow_suggestions.view_all": "Gwelet pep tra", "follow_suggestions.who_to_follow": "Piv heuliañ", - "followed_tags": "Gerioù-klik o heuliañ", + "followed_tags": "Gerioù-klik heuliet", "footer.about": "Diwar-benn", "footer.directory": "Kavlec'h ar profiloù", "footer.get_app": "Pellgargañ an arload", @@ -446,7 +446,7 @@ "navigation_bar.favourites": "Muiañ-karet", "navigation_bar.filters": "Gerioù kuzhet", "navigation_bar.follow_requests": "Rekedoù heuliañ", - "navigation_bar.followed_tags": "Gerioù-klik o heuliañ", + "navigation_bar.followed_tags": "Gerioù-klik heuliet", "navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien", "navigation_bar.import_export": "Enporzhiañ hag ezporzhiañ", "navigation_bar.lists": "Listennoù", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 0dd62b52cb32a1..921601a20192b3 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Αγνόηση ειδοποιήσεων από μη ζητηθείσες ιδιωτικές αναφορές;", "info_button.label": "Βοήθεια", "info_button.what_is_alt_text": "Το εναλλακτικό κείμενο παρέχει περιγραφές εικόνας για άτομα με προβλήματα όρασης, διαδικτυακές συνδέσεις χαμηλής ταχύτητας ή για άτομα που αναζητούν επιπλέον περιεχόμενο.\\n\\nΜπορείς να βελτιώσεις την προσβασιμότητα και την κατανόηση για όλους, γράφοντας σαφές, συνοπτικό και αντικειμενικό εναλλακτικό κείμενο.\\n\\n
    • Κατέγραψε σημαντικά στοιχεία
    • \\n
    • Συνόψισε το κείμενο στις εικόνες
    • \\n
    • Χρησιμοποίησε δομή κανονικής πρότασης
    • \\n
    • Απέφυγε περιττές πληροφορίες
    • \\n
    • Εστίασε στις τάσεις και τα βασικά ευρήματα σε σύνθετα οπτικά στοιχεία (όπως διαγράμματα ή χάρτες)
    ", + "interaction_modal.action": "Για να αλληλεπιδράσετε με την ανάρτηση του/της {name}, πρέπει να συνδεθείτε στον λογαριασμό σας σε οποιονδήποτε διακομιστή Mastodon χρησιμοποιείτε.", "interaction_modal.go": "Πάμε", "interaction_modal.no_account_yet": "Δεν έχεις ακόμη λογαριασμό;", "interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή", "interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή", + "interaction_modal.title": "Συνδεθείτε για να συνεχίσετε", "interaction_modal.username_prompt": "Πχ. {example}", "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}", "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}", @@ -624,7 +626,7 @@ "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.update": "Ο/Η {name} επεξεργάστηκε μια ανάρτηση", "notification_requests.accept": "Αποδοχή", "notification_requests.accept_multiple": "{count, plural, one {Αποδοχή # αιτήματος…} other {Αποδοχή # αιτημάτων…}}", "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Αποδοχή αιτήματος} other {Αποδοχή αιτημάτων}}", @@ -860,6 +862,7 @@ "status.block": "Αποκλεισμός @{name}", "status.bookmark": "Σελιδοδείκτης", "status.cancel_reblog_private": "Ακύρωση ενίσχυσης", + "status.cannot_quote": "Δε σας επιτρέπετε να παραθέσετε αυτή την ανάρτηση", "status.cannot_reblog": "Αυτή η ανάρτηση δεν μπορεί να ενισχυθεί", "status.context.load_new_replies": "Νέες απαντήσεις διαθέσιμες", "status.context.loading": "Γίνεται έλεγχος για περισσότερες απαντήσεις", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index aa3060184248e0..2bc6195c55cec2 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -239,6 +239,10 @@ "confirmations.missing_alt_text.secondary": "Publier quand-même", "confirmations.missing_alt_text.title": "Ajouter un texte alternatif?", "confirmations.mute.confirm": "Masquer", + "confirmations.quiet_post_quote_info.dismiss": "Ne plus me rappeler", + "confirmations.quiet_post_quote_info.got_it": "Compris", + "confirmations.quiet_post_quote_info.message": "Lorsque vous citez un message public silencieux, votre message sera caché des fils tendances.", + "confirmations.quiet_post_quote_info.title": "Citation de messages publics silencieux", "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 ?", @@ -345,6 +349,7 @@ "explore.trending_links": "Nouvelles", "explore.trending_statuses": "Messages", "explore.trending_tags": "Hashtags", + "featured_carousel.header": "{count, plural, one {Pinned Post} other {Pinned Posts}}", "featured_carousel.next": "Suivant", "featured_carousel.post": "Poste", "featured_carousel.previous": "Précédent", @@ -448,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignorer les notifications issues des mentions privées non sollicitées ?", "info_button.label": "Aide", "info_button.what_is_alt_text": "

    Qu'est-ce que le texte alternatif ?

    Un texte alternatif fournit une description de l'image aux personnes avec un handicap visuel ou une connexion limitée ou qui souhaitent avoir un contexte supplémentaire.

    Vous pouvez améliorer l'accessibilité et la compression de tout le monde en écrivant un texte alternatif clair, concis et objectif.

    • Identifiez les éléments importants
    • Résumez le texte présent à l'image
    • Utilisez une structure de phrase normale
    • Évitez les informations redondantes
    • Pour les visuels complexes (tels que les diagrammes ou les cartes), indiquez les tendances ou points-clés
    ", + "interaction_modal.action": "Pour interagir avec le message de {name}, vous devez vous connecter à votre compte sur le serveur Mastodon que vous utilisez.", "interaction_modal.go": "Valider", "interaction_modal.no_account_yet": "Vous n'avez pas encore de compte ?", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", + "interaction_modal.title": "Connectez-vous pour continuer", "interaction_modal.username_prompt": "Par exemple : {example}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", @@ -472,6 +479,7 @@ "keyboard_shortcuts.home": "Ouvrir le fil d’accueil", "keyboard_shortcuts.hotkey": "Raccourci clavier", "keyboard_shortcuts.legend": "Afficher cette légende", + "keyboard_shortcuts.load_more": "Bouton Focus \"Charger plus\"", "keyboard_shortcuts.local": "Ouvrir le fil local", "keyboard_shortcuts.mention": "Mentionner l'auteur·rice", "keyboard_shortcuts.muted": "Ouvrir la liste de comptes masqués", @@ -569,6 +577,10 @@ "navigation_bar.privacy_and_reach": "Vie privée et visibilité", "navigation_bar.search": "Rechercher", "navigation_bar.search_trends": "Recherche / Tendance", + "navigation_panel.collapse_followed_tags": "Réduire le menu des hashtags suivis", + "navigation_panel.collapse_lists": "Réduire le menu de la liste", + "navigation_panel.expand_followed_tags": "Développer le menu des hashtags suivis", + "navigation_panel.expand_lists": "Développer le menu de la liste", "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}", @@ -729,6 +741,7 @@ "privacy.quote.disabled": "{visibility}, citations désactivées", "privacy.quote.limited": "{visibility}, citations limitées", "privacy.unlisted.additional": "Se comporte exactement comme « public », sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, explorer ou la recherche Mastodon, même si vous les avez activé au niveau de votre compte.", + "privacy.unlisted.long": "Caché des résultats de recherche de Mastodon, aux tendances et aux échéanciers publics", "privacy.unlisted.short": "Public discret", "privacy_policy.last_updated": "Dernière mise à jour {date}", "privacy_policy.title": "Politique de confidentialité", @@ -751,6 +764,9 @@ "relative_time.minutes": "{number} min", "relative_time.seconds": "{number} s", "relative_time.today": "aujourd’hui", + "remove_quote_hint.button_label": "Compris", + "remove_quote_hint.message": "Vous pouvez le faire à partir du menu des options {icon}.", + "remove_quote_hint.title": "Vous voulez supprimer votre message cité ?", "reply_indicator.attachments": "{count, plural, one {# pièce jointe} other {# pièces jointes}}", "reply_indicator.cancel": "Annuler", "reply_indicator.poll": "Sondage", @@ -846,8 +862,10 @@ "status.block": "Bloquer @{name}", "status.bookmark": "Ajouter aux signets", "status.cancel_reblog_private": "Débooster", + "status.cannot_quote": "Vous n'êtes pas autorisé à citer ce message", "status.cannot_reblog": "Cette publication ne peut pas être boostée", "status.context.load_new_replies": "Nouvelles réponses disponibles", + "status.context.loading": "Vérification de plus de réponses", "status.continued_thread": "Suite du fil", "status.copy": "Copier un lien vers cette publication", "status.delete": "Supprimer", @@ -879,24 +897,33 @@ "status.quote_error.filtered": "Caché en raison de l'un de vos filtres", "status.quote_error.not_available": "Publication non disponible", "status.quote_error.pending_approval": "Publication en attente", + "status.quote_error.pending_approval_popout.body": "Sur Mastodon, vous pouvez contrôler si quelqu'un peut vous citer. Ce message est en attente pendant que nous recevons l'approbation de l'auteur original.", + "status.quote_error.revoked": "Post supprimé par l'auteur", "status.quote_followers_only": "Seul·e·s les abonné·e·s peuvent citer cette publication", "status.quote_manual_review": "L'auteur va vérifier manuellement", "status.quote_policy_change": "Changer qui peut vous citer", + "status.quote_post_author": "A cité un message par @{name}", "status.quote_private": "Les publications privées ne peuvent pas être citées", + "status.quotes": " {count, plural, one {quote} other {quotes}}", + "status.quotes.empty": "Personne n'a encore cité ce message. Quand quelqu'un le fera, il apparaîtra ici.", "status.read_more": "En savoir plus", "status.reblog": "Booster", + "status.reblog_or_quote": "Boost ou citation", + "status.reblog_private": "Partagez à nouveau avec vos abonnés", "status.reblogged_by": "{name} a boosté", "status.reblogs": "{count, plural, one {boost} other {boosts}}", "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.remove_favourite": "Retirer des favoris", + "status.remove_quote": "Supprimer", "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.request_quote": "Demander à citer", + "status.revoke_quote": "Retirer mon message du post de @{name}", "status.sensitive_warning": "Contenu sensible", "status.share": "Partager", "status.show_less_all": "Tout replier", @@ -934,6 +961,7 @@ "upload_button.label": "Ajouter des images, une vidéo ou un fichier audio", "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.", "upload_error.poll": "L’envoi de fichiers n’est pas autorisé avec les sondages.", + "upload_error.quote": "L’envoi de fichiers n’est pas autorisé avec les sondages.", "upload_form.drag_and_drop.instructions": "Pour choisir un média joint, appuyez sur la touche espace ou entrée. Tout en faisant glisser, utilisez les touches fléchées pour déplacer le fichier média dans une direction donnée. Appuyez à nouveau sur la touche espace ou entrée pour déposer le fichier média dans sa nouvelle position, ou appuyez sur la touche Echap pour annuler.", "upload_form.drag_and_drop.on_drag_cancel": "Le glissement a été annulé. La pièce jointe {item} n'a pas été ajoutée.", "upload_form.drag_and_drop.on_drag_end": "La pièce jointe du média {item} a été déplacée.", @@ -953,11 +981,18 @@ "video.pause": "Pause", "video.play": "Lecture", "video.skip_backward": "Revenir en arrière", + "video.skip_forward": "Avancer", "video.unmute": "Rétablir le son", "video.volume_down": "Baisser le volume", "video.volume_up": "Augmenter le volume", "visibility_modal.button_title": "Définir la visibilité", "visibility_modal.header": "Visibilité et interactions", + "visibility_modal.helper.direct_quoting": "Les mentions privées rédigées sur Mastodon ne peuvent pas être citées par d'autres personnes.", + "visibility_modal.helper.privacy_editing": "La visibilité ne peut pas être modifiée après la publication d'un message.", + "visibility_modal.helper.privacy_private_self_quote": "Les auto-citations de messages privés ne peuvent pas être rendues publiques.", + "visibility_modal.helper.private_quoting": "Les posts accessible uniquement par les followers sur Mastodon ne peuvent être cités par d'autres personnes.", + "visibility_modal.helper.unlisted_quoting": "Lorsque les gens vous citent, leur message sera également caché dans les calendriers tendances.", + "visibility_modal.instructions": "Contrôlez qui peut interagir avec ce post. Vous pouvez également appliquer ces paramètres à tous les futurs messages en allant dans Préférences > Valeurs par d'éfaut de publication.", "visibility_modal.privacy_label": "Visibilité", "visibility_modal.quote_followers": "Abonné·e·s seulement", "visibility_modal.quote_label": "Autoriser les citations pour", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index e21f8d5a2a2372..e579dbe09b904f 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -239,6 +239,10 @@ "confirmations.missing_alt_text.secondary": "Publier quand-même", "confirmations.missing_alt_text.title": "Ajouter un texte alternatif?", "confirmations.mute.confirm": "Masquer", + "confirmations.quiet_post_quote_info.dismiss": "Ne plus me rappeler", + "confirmations.quiet_post_quote_info.got_it": "Compris", + "confirmations.quiet_post_quote_info.message": "Lorsque vous citez un message public silencieux, votre message sera caché des fils tendances.", + "confirmations.quiet_post_quote_info.title": "Citation de messages publics silencieux", "confirmations.redraft.confirm": "Supprimer et ré-écrire", "confirmations.redraft.message": "Voulez-vous vraiment supprimer le message pour le réécrire ? Ses partages ainsi que ses mises en favori seront perdues, et ses réponses seront orphelines.", "confirmations.redraft.title": "Supprimer et réécrire le message ?", @@ -345,6 +349,7 @@ "explore.trending_links": "Nouvelles", "explore.trending_statuses": "Messages", "explore.trending_tags": "Hashtags", + "featured_carousel.header": "{count, plural, one {Pinned Post} other {Pinned Posts}}", "featured_carousel.next": "Suivant", "featured_carousel.post": "Poste", "featured_carousel.previous": "Précédent", @@ -448,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignorer les notifications issues des mentions privées non sollicitées ?", "info_button.label": "Aide", "info_button.what_is_alt_text": "

    Qu'est-ce que le texte alternatif ?

    Un texte alternatif fournit une description de l'image aux personnes avec un handicap visuel ou une connexion limitée ou qui souhaitent avoir un contexte supplémentaire.

    Vous pouvez améliorer l'accessibilité et la compression de tout le monde en écrivant un texte alternatif clair, concis et objectif.

    • Identifiez les éléments importants
    • Résumez le texte présent à l'image
    • Utilisez une structure de phrase normale
    • Évitez les informations redondantes
    • Pour les visuels complexes (tels que les diagrammes ou les cartes), indiquez les tendances ou points-clés
    ", + "interaction_modal.action": "Pour interagir avec le message de {name}, vous devez vous connecter à votre compte sur le serveur Mastodon que vous utilisez.", "interaction_modal.go": "Valider", "interaction_modal.no_account_yet": "Vous n'avez pas encore de compte ?", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", + "interaction_modal.title": "Connectez-vous pour continuer", "interaction_modal.username_prompt": "Par exemple : {example}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", @@ -472,6 +479,7 @@ "keyboard_shortcuts.home": "Ouvrir le fil d’accueil", "keyboard_shortcuts.hotkey": "Raccourci clavier", "keyboard_shortcuts.legend": "Afficher cet aide-mémoire", + "keyboard_shortcuts.load_more": "Bouton Focus \"Charger plus\"", "keyboard_shortcuts.local": "Ouvrir le fil public local", "keyboard_shortcuts.mention": "Mentionner l’auteur·rice", "keyboard_shortcuts.muted": "Ouvrir la liste des comptes masqués", @@ -569,6 +577,10 @@ "navigation_bar.privacy_and_reach": "Vie privée et visibilité", "navigation_bar.search": "Rechercher", "navigation_bar.search_trends": "Recherche / Tendance", + "navigation_panel.collapse_followed_tags": "Réduire le menu des hashtags suivis", + "navigation_panel.collapse_lists": "Réduire le menu de la liste", + "navigation_panel.expand_followed_tags": "Développer le menu des hashtags suivis", + "navigation_panel.expand_lists": "Développer le menu de la liste", "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}", @@ -729,6 +741,7 @@ "privacy.quote.disabled": "{visibility}, citations désactivées", "privacy.quote.limited": "{visibility}, citations limitées", "privacy.unlisted.additional": "Se comporte exactement comme « public », sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, explorer ou la recherche Mastodon, même si vous les avez activé au niveau de votre compte.", + "privacy.unlisted.long": "Caché des résultats de recherche de Mastodon, aux tendances et aux échéanciers publics", "privacy.unlisted.short": "Public discret", "privacy_policy.last_updated": "Dernière mise à jour {date}", "privacy_policy.title": "Politique de confidentialité", @@ -751,6 +764,9 @@ "relative_time.minutes": "{number} min", "relative_time.seconds": "{number} s", "relative_time.today": "aujourd’hui", + "remove_quote_hint.button_label": "Compris", + "remove_quote_hint.message": "Vous pouvez le faire à partir du menu des options {icon}.", + "remove_quote_hint.title": "Vous voulez supprimer votre message cité ?", "reply_indicator.attachments": "{count, plural, one {# pièce jointe} other {# pièces jointes}}", "reply_indicator.cancel": "Annuler", "reply_indicator.poll": "Sondage", @@ -846,8 +862,10 @@ "status.block": "Bloquer @{name}", "status.bookmark": "Ajouter aux marque-pages", "status.cancel_reblog_private": "Annuler le partage", + "status.cannot_quote": "Vous n'êtes pas autorisé à citer ce message", "status.cannot_reblog": "Ce message ne peut pas être partagé", "status.context.load_new_replies": "Nouvelles réponses disponibles", + "status.context.loading": "Vérification de plus de réponses", "status.continued_thread": "Suite du fil", "status.copy": "Copier le lien vers le message", "status.delete": "Supprimer", @@ -879,24 +897,33 @@ "status.quote_error.filtered": "Caché en raison de l'un de vos filtres", "status.quote_error.not_available": "Publication non disponible", "status.quote_error.pending_approval": "Publication en attente", + "status.quote_error.pending_approval_popout.body": "Sur Mastodon, vous pouvez contrôler si quelqu'un peut vous citer. Ce message est en attente pendant que nous recevons l'approbation de l'auteur original.", + "status.quote_error.revoked": "Post supprimé par l'auteur", "status.quote_followers_only": "Seul·e·s les abonné·e·s peuvent citer cette publication", "status.quote_manual_review": "L'auteur va vérifier manuellement", "status.quote_policy_change": "Changer qui peut vous citer", + "status.quote_post_author": "A cité un message par @{name}", "status.quote_private": "Les publications privées ne peuvent pas être citées", + "status.quotes": " {count, plural, one {quote} other {quotes}}", + "status.quotes.empty": "Personne n'a encore cité ce message. Quand quelqu'un le fera, il apparaîtra ici.", "status.read_more": "En savoir plus", "status.reblog": "Partager", + "status.reblog_or_quote": "Boost ou citation", + "status.reblog_private": "Partagez à nouveau avec vos abonnés", "status.reblogged_by": "{name} a partagé", "status.reblogs": "{count, plural, one {boost} other {boosts}}", "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.remove_favourite": "Retirer des favoris", + "status.remove_quote": "Supprimer", "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.request_quote": "Demander à citer", + "status.revoke_quote": "Retirer mon message du post de @{name}", "status.sensitive_warning": "Contenu sensible", "status.share": "Partager", "status.show_less_all": "Tout replier", @@ -934,6 +961,7 @@ "upload_button.label": "Ajouter des images, une vidéo ou un fichier audio", "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.", "upload_error.poll": "L’envoi de fichiers n’est pas autorisé avec les sondages.", + "upload_error.quote": "L’envoi de fichiers n’est pas autorisé avec les sondages.", "upload_form.drag_and_drop.instructions": "Pour choisir un média joint, appuyez sur la touche espace ou entrée. Tout en faisant glisser, utilisez les touches fléchées pour déplacer le fichier média dans une direction donnée. Appuyez à nouveau sur la touche espace ou entrée pour déposer le fichier média dans sa nouvelle position, ou appuyez sur la touche Echap pour annuler.", "upload_form.drag_and_drop.on_drag_cancel": "Le glissement a été annulé. La pièce jointe {item} n'a pas été ajoutée.", "upload_form.drag_and_drop.on_drag_end": "La pièce jointe du média {item} a été déplacée.", @@ -953,11 +981,18 @@ "video.pause": "Pause", "video.play": "Lecture", "video.skip_backward": "Revenir en arrière", + "video.skip_forward": "Avancer", "video.unmute": "Rétablir le son", "video.volume_down": "Baisser le volume", "video.volume_up": "Augmenter le volume", "visibility_modal.button_title": "Définir la visibilité", "visibility_modal.header": "Visibilité et interactions", + "visibility_modal.helper.direct_quoting": "Les mentions privées rédigées sur Mastodon ne peuvent pas être citées par d'autres personnes.", + "visibility_modal.helper.privacy_editing": "La visibilité ne peut pas être modifiée après la publication d'un message.", + "visibility_modal.helper.privacy_private_self_quote": "Les auto-citations de messages privés ne peuvent pas être rendues publiques.", + "visibility_modal.helper.private_quoting": "Les posts accessible uniquement par les followers sur Mastodon ne peuvent être cités par d'autres personnes.", + "visibility_modal.helper.unlisted_quoting": "Lorsque les gens vous citent, leur message sera également caché dans les calendriers tendances.", + "visibility_modal.instructions": "Contrôlez qui peut interagir avec ce post. Vous pouvez également appliquer ces paramètres à tous les futurs messages en allant dans Préférences > Valeurs par d'éfaut de publication.", "visibility_modal.privacy_label": "Visibilité", "visibility_modal.quote_followers": "Abonné·e·s seulement", "visibility_modal.quote_label": "Autoriser les citations pour", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index fa69cf355a2d1e..10474609f1f151 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -862,6 +862,7 @@ "status.block": "Bac @{name}", "status.bookmark": "Leabharmharcanna", "status.cancel_reblog_private": "Dímhol", + "status.cannot_quote": "Ní cheadaítear duit an post seo a lua", "status.cannot_reblog": "Ní féidir an phostáil seo a mholadh", "status.context.load_new_replies": "Freagraí nua ar fáil", "status.context.loading": "Ag seiceáil le haghaidh tuilleadh freagraí", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index d632b4fb22c5c8..c196fe47bc992b 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "להתעלם מהתראות מאיזכורים פרטיים?", "info_button.label": "עזרה", "info_button.what_is_alt_text": "

    מהו כיתוב חלופי?

    כיתוב חלופי משמש תיאור מילולי של תמונות לסובלים ממגבלות ראיה, חיבורי רשת איטיים, או אלו הצריכים הקשר יותר מפורט לתוכן המולטימדיה המצורף.

    ניתן לשפר את הנגישות והבנת התוכן לכולם ע\"י כתיבת תיאור ברור, תמציתי ונטול פניות.

    • כיסוי היסודות החשובים
    • סיכום המלל שבתמונות
    • שימוש במבנה משפטים רגיל
    • יש להמנע מחזרה על מידע
    • אם העזרים הויזואליים הם דיאגרמות או מפות, התמקדו במגמות וממצאים מרכזיים.
    ", + "interaction_modal.action": "כדי להגיב להודעה של {name}, עליך להזהות בשם המשתמש שלך בשרת המסטודון בו את.ה משתמש.ת.", "interaction_modal.go": "המשך", "interaction_modal.no_account_yet": "אין לך עדיין חשבון?", "interaction_modal.on_another_server": "על שרת אחר", "interaction_modal.on_this_server": "על שרת זה", + "interaction_modal.title": "יש להזדהות כדי להמשיך", "interaction_modal.username_prompt": "למשל {example}", "intervals.full.days": "{number, plural, one {# יום} other {# ימים}}", "intervals.full.hours": "{number, plural, one {# שעה} other {# שעות}}", @@ -860,6 +862,7 @@ "status.block": "חסימת @{name}", "status.bookmark": "סימניה", "status.cancel_reblog_private": "הסרת הדהוד", + "status.cannot_quote": "אין לך הרשאה לצטט את ההודעה הזו", "status.cannot_reblog": "לא ניתן להדהד חצרוץ זה", "status.context.load_new_replies": "הגיעו תגובות חדשות", "status.context.loading": "מחפש תגובות חדשות", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 68da77e3de6ab9..8e6cc9815e3ec8 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Figyelmen kívül hagyod a kéretlen privát említéseket?", "info_button.label": "Súgó", "info_button.what_is_alt_text": "

    Mi az alternatív szöveg?

    Az alternatív szöveg képleírást biztosít a látássérültek, az alacsony sávszélességű kapcsolatokkal rendelkezők, illetve a bővebb kontextust keresők számára.

    Az egyértelmű, tömör és objektív alternatív szöveg megírásával mindenki számára akadálymentesebb és könnyebben érthető lesz.

    • Rögzítsd a fontos elemeket.
    • Foglald össze szövegesen a képeket.
    • Használj szabályos mondatszerkezetet.
    • Kerüld a felesleges információkat.
    • Összetett vizuális ábrákon (például diagramokon vagy térképeken) összpontosíts a trendekre és a legfontosabb megállapításokra.
    ", + "interaction_modal.action": "Hogy interakcióba lépj {name} bejegyzésével, be kell jelentkezned a fiókodba az általad használt Mastodon kiszolgálón.", "interaction_modal.go": "Ugrás", "interaction_modal.no_account_yet": "Még nincs fiókod?", "interaction_modal.on_another_server": "Másik kiszolgálón", "interaction_modal.on_this_server": "Ezen a kiszolgálón", + "interaction_modal.title": "Jelentkezz be a folytatáshoz", "interaction_modal.username_prompt": "Például {example}", "intervals.full.days": "{number, plural, one {# nap} other {# nap}}", "intervals.full.hours": "{number, plural, one {# óra} other {# óra}}", @@ -860,6 +862,7 @@ "status.block": "@{name} letiltása", "status.bookmark": "Könyvjelzőzés", "status.cancel_reblog_private": "Megtolás visszavonása", + "status.cannot_quote": "Nem idézheted ezt a bejegyzést", "status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni", "status.context.load_new_replies": "Új válaszok érhetőek el", "status.context.loading": "További válaszok keresése", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index dc10561c33dc85..8291e8ad5f9040 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignorar notificationes de mentiones private non requestate?", "info_button.label": "Adjuta", "info_button.what_is_alt_text": "

    Que es texto alternative?

    Le texto alternative forni descriptiones de imagines a personas con impedimentos visual, con connexiones lente, o qui cerca contexto additional.

    Tu pote meliorar le accessibilitate e le comprension pro totes scribente un texto alternative clar, concise e objective.

    • Captura le elementos importante
    • Summarisa texto in imagines
    • Usa le structura de phrase normal
    • Evita information redundante
    • In figuras complexe (como diagrammas o mappas), concentra te sur le tendentias e punctos clave
    ", + "interaction_modal.action": "Pro interager con le message de {name}, tu debe acceder a tu conto sur le servitor Mastodon que tu usa.", "interaction_modal.go": "Revenir", "interaction_modal.no_account_yet": "Tu non ha ancora un conto?", "interaction_modal.on_another_server": "Sur un altere servitor", "interaction_modal.on_this_server": "Sur iste servitor", + "interaction_modal.title": "Aperi session pro continuar", "interaction_modal.username_prompt": "P.ex. {example}", "intervals.full.days": "{number, plural, one {# die} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", @@ -860,6 +862,7 @@ "status.block": "Blocar @{name}", "status.bookmark": "Adder al marcapaginas", "status.cancel_reblog_private": "Disfacer impulso", + "status.cannot_quote": "Tu non es autorisate a citar iste message", "status.cannot_reblog": "Iste message non pote esser impulsate", "status.context.load_new_replies": "Nove responsas disponibile", "status.context.loading": "Cercante plus responsas", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index f15158b57c7e16..d38ba16fba74e5 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -717,6 +717,9 @@ "privacy.private.short": "フォロワー", "privacy.public.long": "すべての人 (Mastodon以外も含む)", "privacy.public.short": "公開", + "privacy.quote.anyone": "{visibility}、誰でも引用可能", + "privacy.quote.disabled": "{visibility}、引用不可", + "privacy.quote.limited": "{visibility}、引用は制限", "privacy.unlisted.additional": "「公開」とほとんど同じですが、リアルタイムフィードやハッシュタグ、探索機能、Mastodon検索などに投稿が表示されない点で「公開」と異なります。また、アカウント設定で投稿の検索や表示を許可している場合でも、この公開範囲を設定した投稿は前述の機能には表示されません。", "privacy.unlisted.short": "ひかえめな公開", "privacy_policy.last_updated": "{date}に更新", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index 7578b4bce3bc4f..754f6eb3c6b190 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -100,6 +100,7 @@ "announcement.announcement": "Pregon", "annual_report.summary.archetype.pollster": "El anketero", "annual_report.summary.followers.followers": "suivantes", + "annual_report.summary.followers.total": "{count} en total", "annual_report.summary.highlighted_post.by_favourites": "la puvlikasyon mas favoritada", "annual_report.summary.highlighted_post.by_reblogs": "la puvlikasyon mas repartajada", "annual_report.summary.highlighted_post.by_replies": "la puvlikasyon kon mas repuestas", @@ -130,6 +131,7 @@ "bundle_column_error.routing.body": "No se pudo trokar la pajina solisitada. Estas siguro ke el adreso URL en la vara de adreso es djusto?", "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Serra", + "bundle_modal_error.message": "Algo negro afito al eskargar este ekran.", "bundle_modal_error.retry": "Aprova de muevo", "closed_registrations.other_server_instructions": "Deke Mastodon es desentralizado, puedes kriyar un kuento en otro sirvidor i ainda enteraktuar kon este.", "closed_registrations_modal.description": "Aktualmente no es posivle kriyar un kuento en {domain}, ama por favor akodrate de ke no ay menester de tener un kuento espesifikamente en {domain} para kulanear Mastodon.", @@ -197,6 +199,7 @@ "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_draft.confirm": "Kita i kontinua", "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.follow_to_list.title": "Segir utilizador?", @@ -209,6 +212,8 @@ "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.revoke_quote.confirm": "Kita puvlikasyon", + "confirmations.revoke_quote.title": "Kitar puvlikasyon?", "confirmations.unfollow.confirm": "Desige", "confirmations.unfollow.message": "Estas siguro ke keres deshar de segir a {name}?", "confirmations.unfollow.title": "Desige utilizador?", @@ -422,6 +427,7 @@ "keyboard_shortcuts.toot": "Eskrive mueva publikasyon", "keyboard_shortcuts.unfocus": "No enfoka en el area de eskrivir/bushkeda", "keyboard_shortcuts.up": "Move verso arriva en la lista", + "learn_more_link.learn_more": "Ambezate mas", "lightbox.close": "Serra", "lightbox.next": "Sigiente", "lightbox.previous": "Anterior", @@ -786,5 +792,8 @@ "video.mute": "Silensia", "video.pause": "Pauza", "video.play": "Reproduze", - "video.unmute": "Desilensia" + "video.unmute": "Desilensia", + "visibility_modal.privacy_label": "Vizivilita", + "visibility_modal.quote_followers": "Solo suivantes", + "visibility_modal.save": "Guadra" } diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 8a6ae0e4317d65..1ca950280e381f 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -453,10 +453,12 @@ "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?", "info_button.label": "Trợ giúp", "info_button.what_is_alt_text": "

    Văn bản thay thế là gì?

    Văn bản thay thế giúp mô tả hình ảnh cho những người khiếm thị, kết nối mạng chậm hoặc đơn giản là bổ sung ngữ cảnh.

    Bạn có thể cải thiện khả năng tiếp cận và giải thích kỹ hơn cho mọi người bằng cách viết văn bản thay thế rõ ràng, ngắn gọn và khách quan.

    • Nắm bắt thành phần quan trọng
    • Tóm tắt văn bản trong hình
    • Dùng cấu trúc câu đơn
    • Tránh giải thích rối rắm
    • Tập trung vào các xu hướng và kết luận chính trong hình ảnh phức tạp (như biểu đồ hoặc bản đồ)
    ", + "interaction_modal.action": "Để tương tác với tút của {name}, bạn cần đăng nhập vào tài khoản trên một máy chủ Mastodon bất kỳ.", "interaction_modal.go": "Đi", "interaction_modal.no_account_yet": "Chưa có tài khoản?", "interaction_modal.on_another_server": "Trên máy chủ khác", "interaction_modal.on_this_server": "Trên máy chủ này", + "interaction_modal.title": "Đăng nhập để tiếp tục", "interaction_modal.username_prompt": "Ví dụ: {example}", "intervals.full.days": "{number, plural, other {# ngày}}", "intervals.full.hours": "{number, plural, other {# giờ}}", @@ -860,6 +862,7 @@ "status.block": "Chặn @{name}", "status.bookmark": "Lưu", "status.cancel_reblog_private": "Bỏ đăng lại", + "status.cannot_quote": "Bạn không được phép trích dẫn tút này", "status.cannot_reblog": "Không thể đăng lại tút này", "status.context.load_new_replies": "Có những trả lời mới", "status.context.loading": "Kiểm tra nhiều trả lời hơn", diff --git a/config/locales/el.yml b/config/locales/el.yml index 68fd74aa5a0553..3243e9b7616464 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -242,7 +242,7 @@ el: update_username_block: Ενημέρωση Κανόνα Ονόματος Χρήστη actions: approve_appeal_html: Ο/Η %{name} ενέκρινε την ένσταση της απόφασης των συντονιστών από %{target} - approve_user_html: ο/η %{name} ενέκρινε την εγγραφή του %{target} + approve_user_html: Ο/Η %{name} ενέκρινε την εγγραφή του χρήστη %{target} assigned_to_self_report_html: Ο/Η %{name} ανάθεσε την αναφορά %{target} στον εαυτό του/της change_email_user_html: Ο χρήστης %{name} άλλαξε τη διεύθυνση email του χρήστη %{target} change_role_user_html: Ο/Η %{name} άλλαξε ρόλο του/της %{target} @@ -286,8 +286,8 @@ el: promote_user_html: Ο/Η %{name} προβίβασε το χρήστη %{target} publish_terms_of_service_html: Ο χρήστης %{name} δημοσίευσε ενημερώσεις για τους όρους της υπηρεσίας reject_appeal_html: Ο/Η %{name} απέρριψε την ένσταση της απόφασης των συντονιστών από %{target} - reject_user_html: ο/η %{name} απέρριψε την εγγραφή από %{target} - remove_avatar_user_html: ο/η %{name} αφαίρεσε το άβαταρ του/της %{target} + reject_user_html: Ο/Η %{name} απέρριψε την εγγραφή του χρήστη %{target} + remove_avatar_user_html: Ο/Η %{name} αφαίρεσε το άβαταρ του/της %{target} reopen_report_html: Ο/Η %{name} ξανάνοιξε την αναφορά %{target} resend_user_html: Ο χρήστης %{name} έστειλε ξανά email επιβεβαίωσης για τον χρήστη %{target} reset_password_user_html: Ο/Η %{name} επανέφερε το συνθηματικό του χρήστη %{target} @@ -918,7 +918,7 @@ el: none: Ο/Η %{name} έστειλε προειδοποίηση προς τον/την %{target} sensitive: Ο/Η %{name} επισήμανε τα πολυμέσα του λογαριασμού %{target} ως ευαίσθητα silence: Ο/Η %{name} περιόρισε τον λογαριασμό %{target} - suspend: ο/η %{name} ανέστειλε τον λογαριασμό %{target} + suspend: Ο/Η %{name} ανέστειλε τον λογαριασμό %{target} appeal_approved: Έγινε έφεση appeal_pending: Έφεση σε εκκρεμότητα appeal_rejected: Η έφεση απορρίφθηκε diff --git a/config/locales/lad.yml b/config/locales/lad.yml index 44dd518f2d03d8..06bc932ea4d4b1 100644 --- a/config/locales/lad.yml +++ b/config/locales/lad.yml @@ -204,6 +204,7 @@ lad: destroy_user_role: Efasa rolo disable_2fa_user: Inkapasita autentifikasyon en dos pasos disable_custom_emoji: Inkapasita emoji personalizados + disable_relay: Dezaktiva relevo disable_sign_in_token_auth_user: Inkapasita la autentifikasyon por token de posta elektronika para el utilizador disable_user: Inkapasita utilizador enable_custom_emoji: Kapasita emoji personalizados @@ -484,6 +485,7 @@ lad: save: Guadra sign_in: Konektate status: Estado + title: FASP follow_recommendations: description_html: "Las rekomendasyones de kuentos ayudan a los muevos utilizadores a topar presto kontenido enteresante. Kuando un utilizador no tiene enteraktuado kon otros lo sufisiente komo para djenerar rekomendasyones personalizadas de kuentos a las ke segir, en sus lugar se le rekomiendan estes kuentos. Se rekalkulan diariamente a partir de una mikstura de kuentos kon el mayor numero de enteraksyones rezientes i kon el mayor numero de suivantes lokales kon una lingua determinada." language: Para la lingua @@ -794,6 +796,7 @@ lad: discovery: follow_recommendations: Rekomendasyones de kuentos preamble: Ekspone kontenido enteresante a la superfisie es fundamental para inkorporar muevos utilizadores ke pueden no koneser a dinguno Mastodon. Kontrola komo fonksionan varias opsiones de diskuvrimiento en tu sirvidor. + privacy: Privasita profile_directory: Katalogo de profiles public_timelines: Linyas de tiempo publikas publish_statistics: Publika estatistikas @@ -1006,6 +1009,11 @@ lad: other: Uzada por %{count} personas durante la ultima semana title: Rekomendasyones i trendes trending: En trend + username_blocks: + add_new: Adjusta muevo + delete: Efasa + new: + create: Kriya regla warning_presets: add_new: Adjusta muevo delete: Efasa @@ -1584,6 +1592,7 @@ lad: self_vote: No puedes votar en tus propias anketas too_few_options: deve tener mas de un elemento too_many_options: no puede kontener mas de %{max} elementos + vote: Vota preferences: other: Otros posting_defaults: Konfigurasyon predeterminada de publikasyones @@ -1746,9 +1755,15 @@ lad: limit: Ya tienes fiksado el numero maksimo de publikasyones ownership: La publikasyon de otra persona no puede fiksarse reblog: No se puede fixar una repartajasyon + quote_policies: + nobody: Solo yo title: '%{name}: "%{quote}"' visibilities: + direct: Enmentadura privada + private: Solo suivantes public: Publiko + public_long: Todos en i afuera de Mastodon + unlisted: Publiko i silensyozo statuses_cleanup: enabled: Otomatikamente efasa publikasyones viejas enabled_hint: Supreme otomatikamente tus publikasyones kuando alkansen un limito de tiempo espesifikado, a manko ke koensiden kon alguna de las eksepsiones detalyadas debasho From c368a16dc1448210d97b03ed9c66329b2fac7f5c Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 18 Sep 2025 12:16:22 +0200 Subject: [PATCH 67/81] Fix translate button width in Safari (#36164) --- app/javascript/styles/mastodon/components.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index f5cb8744bf8f06..f412d7938888f1 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1413,13 +1413,14 @@ .status__content__translate-button { display: flex; align-items: center; + width: min-content; font-size: 15px; line-height: 22px; color: $highlight-text-color; border: 0; background: transparent; padding: 0; - padding-top: 16px; + margin-top: 16px; text-decoration: none; &:hover, From 20ce10956808b648d2c128dfa1c11c66d6c16918 Mon Sep 17 00:00:00 2001 From: "KMY (Yuki Asuka)" Date: Thu, 18 Sep 2025 10:39:19 +0000 Subject: [PATCH 68/81] Fix test --- app/lib/activitypub/tag_manager.rb | 2 +- spec/lib/activitypub/activity/create_spec.rb | 12 ++++++------ spec/lib/activitypub/activity/delete_spec.rb | 4 +--- spec/lib/activitypub/activity/update_spec.rb | 2 -- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb index e853ce9e94ce15..23af722630740f 100644 --- a/app/lib/activitypub/tag_manager.rb +++ b/app/lib/activitypub/tag_manager.rb @@ -180,7 +180,7 @@ def to(status) end when 'limited' # do not empty array to avoid Fedibird personal visibility - status.conversation.nil? ? ['kmyblue:Limited'] : [context_url(status.conversation)] + status.conversation.nil? ? ['kmyblue:Limited'] : [group_context_url(status.conversation.id)] end end diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index f855d62e7cb2d4..f165b2b758d9d3 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -998,7 +998,7 @@ def activity_for_object(json) id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, type: 'Note', content: 'Lorem ipsum', - context: 'http://example.com/conversation', + groupContext: 'http://example.com/conversation', } end @@ -1035,7 +1035,7 @@ def activity_for_object(json) id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, type: 'Note', content: 'Lorem ipsum', - context: 'http://example.com/invalid-conversation', + groupContext: 'http://example.com/invalid-conversation', } end @@ -1057,7 +1057,7 @@ def activity_for_object(json) id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, type: 'Note', content: 'Lorem ipsum', - context: "https://cb6e6126.ngrok.io/contexts/#{existing.id}", + groupContext: "https://cb6e6126.ngrok.io/group_contexts/#{existing.id}", } end @@ -1100,7 +1100,7 @@ def activity_for_object(json) id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, type: 'Note', content: 'Lorem ipsum', - context: ActivityPub::TagManager.instance.uri_for(conversation), + groupContext: ActivityPub::TagManager.instance.uri_for(conversation, group: true), inReplyTo: ActivityPub::TagManager.instance.uri_for(original_status), } end @@ -1142,7 +1142,7 @@ def activity_for_object(json) id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, type: 'Note', content: 'Lorem ipsum', - context: ActivityPub::TagManager.instance.uri_for(conversation), + groupContext: ActivityPub::TagManager.instance.uri_for(conversation, group: true), inReplyTo: ActivityPub::TagManager.instance.uri_for(original_status), tag: [ { @@ -1197,7 +1197,7 @@ def activity_for_object(json) id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, type: 'Note', content: 'Lorem ipsum', - context: ActivityPub::TagManager.instance.uri_for(conversation), + groupContext: ActivityPub::TagManager.instance.uri_for(conversation, group: true), inReplyTo: ActivityPub::TagManager.instance.uri_for(original_status), tag: [ { diff --git a/spec/lib/activitypub/activity/delete_spec.rb b/spec/lib/activitypub/activity/delete_spec.rb index bc358edd5811b3..2719fad36a11ab 100644 --- a/spec/lib/activitypub/activity/delete_spec.rb +++ b/spec/lib/activitypub/activity/delete_spec.rb @@ -124,10 +124,8 @@ context 'when the status is limited post and has conversation' do subject { described_class.new(json, sender) } - let(:conversation) { Fabricate(:conversation, ancestor_status: status) } - before do - status.update(conversation: conversation, visibility: :limited) + status.update(visibility: :limited) status.mentions << Fabricate(:mention, silent: true, account: Fabricate(:account, protocol: :activitypub, domain: 'example.com', inbox_url: 'https://example.com/actor/inbox', shared_inbox_url: 'https://example.com/inbox')) status.save stub_request(:post, 'https://example.com/inbox').to_return(status: 200) diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb index f3b24e91d2cbf1..6f326ded0178ee 100644 --- a/spec/lib/activitypub/activity/update_spec.rb +++ b/spec/lib/activitypub/activity/update_spec.rb @@ -146,7 +146,6 @@ context 'when the status is limited post and has conversation' do let(:status) { Fabricate(:status, visibility: :limited, account: sender, uri: 'https://example.com/note', text: 'Ohagi is koshian') } - let(:conversation) { Fabricate(:conversation, ancestor_status: status) } let(:json) do { '@context': 'https://www.w3.org/ns/activitystreams', @@ -163,7 +162,6 @@ end before do - status.update(conversation: conversation, visibility: :limited) status.mentions << Fabricate(:mention, silent: true, account: Fabricate(:account, protocol: :activitypub, domain: 'example.com', inbox_url: 'https://example.com/actor/inbox', shared_inbox_url: 'https://example.com/inbox')) status.save stub_request(:post, 'https://example.com/inbox').to_return(status: 200) From 16a6e5c118386e65c7c4dbcc6f47b7281c984978 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 18 Sep 2025 14:46:31 +0200 Subject: [PATCH 69/81] Add click-through for quoted limited accounts (#36167) --- .../mastodon/components/status_quoted.tsx | 39 ++++++++++++++++++- app/javascript/mastodon/locales/en.json | 2 + 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/status_quoted.tsx b/app/javascript/mastodon/components/status_quoted.tsx index 2726b1a55a2dd4..8c8216701a66ba 100644 --- a/app/javascript/mastodon/components/status_quoted.tsx +++ b/app/javascript/mastodon/components/status_quoted.tsx @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useRef } from 'react'; +import { useCallback, useEffect, useMemo, useRef } from 'react'; import { FormattedMessage } from 'react-intl'; @@ -6,13 +6,16 @@ import type { Map as ImmutableMap } from 'immutable'; import { LearnMoreLink } from 'mastodon/components/learn_more_link'; import StatusContainer from 'mastodon/containers/status_container'; +import { domain } from 'mastodon/initial_state'; +import type { Account } from 'mastodon/models/account'; import type { Status } from 'mastodon/models/status'; import type { RootState } from 'mastodon/store'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; +import { revealAccount } from '../actions/accounts_typed'; import { fetchStatus } from '../actions/statuses'; -import type { Account } from '../models/account'; import { makeGetStatusWithExtraInfo } from '../selectors'; +import { getAccountHidden } from '../selectors/accounts'; import { Button } from './button'; @@ -56,6 +59,29 @@ type GetStatusSelector = ( type QuoteMap = ImmutableMap<'state' | 'quoted_status', string | null>; +const LimitedAccountHint: React.FC<{ accountId: string }> = ({ accountId }) => { + const dispatch = useAppDispatch(); + const reveal = useCallback(() => { + dispatch(revealAccount({ id: accountId })); + }, [dispatch, accountId]); + + return ( + <> + + + + ); +}; + interface QuotedStatusProps { quote: QuoteMap; contextType?: string; @@ -89,6 +115,13 @@ export const QuotedStatus: React.FC = ({ getStatusSelector(state, { id: quotedStatusId, contextType }), ); + const accountId: string | null = status?.get('account') + ? (status.get('account') as Account).id + : null; + const hiddenAccount = useAppSelector( + (state) => accountId && getAccountHidden(state, accountId), + ); + const shouldFetchQuote = !status?.get('isLoading') && quoteState !== 'deleted' && @@ -164,6 +197,8 @@ export const QuotedStatus: React.FC = ({ defaultMessage='Post unavailable' /> ); + } else if (hiddenAccount && accountId) { + quoteError = ; } if (quoteError) { diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index e88cc16eacad49..f7dde46fcd4cfd 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -895,6 +895,8 @@ "status.quote": "Quote", "status.quote.cancel": "Cancel quote", "status.quote_error.filtered": "Hidden due to one of your filters", + "status.quote_error.limited_account_hint.action": "Show anyway", + "status.quote_error.limited_account_hint.title": "This account has been hidden by the moderators of {domain}.", "status.quote_error.not_available": "Post unavailable", "status.quote_error.pending_approval": "Post pending", "status.quote_error.pending_approval_popout.body": "On Mastodon, you can control whether someone can quote you. This post is pending while we're getting the original author's approval.", From e2171f508334d5b8dd1cf1ef475b5721f3dc631a Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 18 Sep 2025 15:21:17 +0200 Subject: [PATCH 70/81] Change quoted posts from silenced accounts not to be hidden (#36166) --- app/lib/status_cache_hydrator.rb | 2 +- app/lib/status_filter.rb | 6 ++++++ app/serializers/rest/base_quote_serializer.rb | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/lib/status_cache_hydrator.rb b/app/lib/status_cache_hydrator.rb index fb734266412a21..5ba706c4c055b1 100644 --- a/app/lib/status_cache_hydrator.rb +++ b/app/lib/status_cache_hydrator.rb @@ -97,7 +97,7 @@ def hydrate_quote_payload(empty_payload, quote, account_id, nested: false) if quote.quoted_status.nil? payload[nested ? :quoted_status_id : :quoted_status] = nil payload[:state] = 'deleted' - elsif StatusFilter.new(quote.quoted_status, Account.find_by(id: account_id)).filtered? + elsif StatusFilter.new(quote.quoted_status, Account.find_by(id: account_id)).filtered_for_quote? payload[nested ? :quoted_status_id : :quoted_status] = nil payload[:state] = 'unauthorized' else diff --git a/app/lib/status_filter.rb b/app/lib/status_filter.rb index eb522e5447a1e6..dbf7d28b69c1e4 100644 --- a/app/lib/status_filter.rb +++ b/app/lib/status_filter.rb @@ -15,6 +15,12 @@ def filtered? blocked_by_policy? || (account_present? && filtered_status?) || silenced_account? end + def filtered_for_quote? + return false if !account.nil? && account.id == status.account_id + + blocked_by_policy? || (account_present? && filtered_status?) + end + private def account_present? diff --git a/app/serializers/rest/base_quote_serializer.rb b/app/serializers/rest/base_quote_serializer.rb index 20a53d1a20e100..be9d5cbe6f238e 100644 --- a/app/serializers/rest/base_quote_serializer.rb +++ b/app/serializers/rest/base_quote_serializer.rb @@ -8,13 +8,13 @@ def state # Extra states when a status is unavailable return 'deleted' if object.quoted_status.nil? - return 'unauthorized' if status_filter.filtered? + return 'unauthorized' if status_filter.filtered_for_quote? object.state end def quoted_status - object.quoted_status if object.accepted? && object.quoted_status.present? && !status_filter.filtered? + object.quoted_status if object.accepted? && object.quoted_status.present? && !status_filter.filtered_for_quote? end private From 48005c55fffd1540105ca53870da64f742a0f7fc Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 18 Sep 2025 19:03:07 +0200 Subject: [PATCH 71/81] Add short-time HTTP caching of quote authorizations for public posts (#36171) --- app/controllers/activitypub/quote_authorizations_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/activitypub/quote_authorizations_controller.rb b/app/controllers/activitypub/quote_authorizations_controller.rb index fa635d636a69e4..274afb929a16ed 100644 --- a/app/controllers/activitypub/quote_authorizations_controller.rb +++ b/app/controllers/activitypub/quote_authorizations_controller.rb @@ -9,7 +9,7 @@ class ActivityPub::QuoteAuthorizationsController < ActivityPub::BaseController before_action :set_quote_authorization def show - expires_in 0, public: @quote.status.distributable? && public_fetch_mode? + expires_in 30.seconds, public: true if @quote.status.distributable? && public_fetch_mode? render json: @quote, serializer: ActivityPub::QuoteAuthorizationSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json' end From 23efdf12cb78f430fecd1b6e4f7fd3c35a413d47 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 19 Sep 2025 09:58:45 +0200 Subject: [PATCH 72/81] New Crowdin Translations (automated) (#36187) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 2 + app/javascript/mastodon/locales/da.json | 4 +- app/javascript/mastodon/locales/de.json | 2 + app/javascript/mastodon/locales/el.json | 2 + app/javascript/mastodon/locales/eo.json | 14 +++++ app/javascript/mastodon/locales/es-AR.json | 2 + app/javascript/mastodon/locales/es-MX.json | 4 +- app/javascript/mastodon/locales/es.json | 4 +- app/javascript/mastodon/locales/et.json | 5 ++ app/javascript/mastodon/locales/fi.json | 4 +- app/javascript/mastodon/locales/fo.json | 2 + app/javascript/mastodon/locales/gd.json | 53 +++++++++++++++- app/javascript/mastodon/locales/gl.json | 3 + app/javascript/mastodon/locales/hu.json | 2 + app/javascript/mastodon/locales/kab.json | 23 ++++++- app/javascript/mastodon/locales/nl.json | 6 +- app/javascript/mastodon/locales/nn.json | 3 +- app/javascript/mastodon/locales/vi.json | 2 + app/javascript/mastodon/locales/zh-CN.json | 22 +++---- app/javascript/mastodon/locales/zh-TW.json | 2 + config/locales/da.yml | 24 ++++---- config/locales/doorkeeper.nn.yml | 4 +- config/locales/eo.yml | 9 +++ config/locales/gd.yml | 46 ++++++++++++++ config/locales/kab.yml | 14 +++++ config/locales/nl.yml | 2 +- config/locales/nn.yml | 70 +++++++++++----------- config/locales/simple_form.eo.yml | 2 + config/locales/simple_form.gd.yml | 18 ++++++ config/locales/simple_form.nl.yml | 2 +- config/locales/simple_form.nn.yml | 6 +- 31 files changed, 285 insertions(+), 73 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 60b0582c035463..bf4f493831edb9 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -895,6 +895,8 @@ "status.quote": "Цытаваць", "status.quote.cancel": "Адмяніць цытаванне", "status.quote_error.filtered": "Схавана адным з Вашых фільтраў", + "status.quote_error.limited_account_hint.action": "Усё адно паказаць", + "status.quote_error.limited_account_hint.title": "Гэты ўліковы запіс быў схаваны мадэратарамі {domain}.", "status.quote_error.not_available": "Допіс недаступны", "status.quote_error.pending_approval": "Допіс чакае пацвярджэння", "status.quote_error.pending_approval_popout.body": "У Mastodon можна кантраляваць магчымасць іншых цытаваць Вас. Гэты допіс будзе знаходзіцца ў стане чакання, пакуль мы не атрымаем ухваленне на цытаванне ад аўтара арыгінальнага допісу.", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index a3fdba3778578f..8fd171135891cd 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -895,6 +895,8 @@ "status.quote": "Citér", "status.quote.cancel": "Annullér citat", "status.quote_error.filtered": "Skjult grundet et af filterne", + "status.quote_error.limited_account_hint.action": "Vis alligevel", + "status.quote_error.limited_account_hint.title": "Denne profil er blevet skjult af {domain}-moderatorerne.", "status.quote_error.not_available": "Indlæg utilgængeligt", "status.quote_error.pending_approval": "Afventende indlæg", "status.quote_error.pending_approval_popout.body": "På Mastodon kan du kontrollere, om nogen kan citere dig. Dette indlæg afventer, mens vi får den oprindelige forfatters godkendelse.", @@ -996,7 +998,7 @@ "visibility_modal.privacy_label": "Synlighed", "visibility_modal.quote_followers": "Kun følgere", "visibility_modal.quote_label": "Hvem kan citere", - "visibility_modal.quote_nobody": "Kun en selv", + "visibility_modal.quote_nobody": "Kun mig", "visibility_modal.quote_public": "Alle", "visibility_modal.save": "Gem" } diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index df93bb56b5704c..0e5fcbd9ffff7e 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -895,6 +895,8 @@ "status.quote": "Zitieren", "status.quote.cancel": "Zitat abbrechen", "status.quote_error.filtered": "Ausgeblendet wegen eines deiner Filter", + "status.quote_error.limited_account_hint.action": "Trotzdem anzeigen", + "status.quote_error.limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen von {domain} ausgeblendet.", "status.quote_error.not_available": "Beitrag nicht verfügbar", "status.quote_error.pending_approval": "Beitragsveröffentlichung ausstehend", "status.quote_error.pending_approval_popout.body": "Auf Mastodon kann festgelegt werden, ob man zitiert werden möchte. Wir warten auf die Genehmigung des ursprünglichen Profils. Bis dahin steht deine Beitragsveröffentlichung noch aus.", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 921601a20192b3..e2bec9981f511b 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -895,6 +895,8 @@ "status.quote": "Παράθεση", "status.quote.cancel": "Ακύρωση παράθεσης", "status.quote_error.filtered": "Κρυφό λόγω ενός από τα φίλτρα σου", + "status.quote_error.limited_account_hint.action": "Εμφάνιση ούτως ή άλλως", + "status.quote_error.limited_account_hint.title": "Αυτό το προφίλ έχει αποκρυφτεί από τους διαχειριστές του διακομιστή {domain}.", "status.quote_error.not_available": "Ανάρτηση μη διαθέσιμη", "status.quote_error.pending_approval": "Ανάρτηση σε αναμονή", "status.quote_error.pending_approval_popout.body": "Στο Mastodon, μπορείς να ελέγξεις αν κάποιος μπορεί να σε παραθέσει. Αυτή η ανάρτηση εκκρεμεί ενώ λαμβάνουμε την έγκριση του αρχικού συντάκτη.", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index e6050d6ce0ce31..34967d20b09b5a 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -222,6 +222,7 @@ "confirmations.discard_draft.edit.cancel": "Daŭrigi redaktadon", "confirmations.discard_draft.edit.title": "Ĉu forĵeti ŝanĝojn al via afiŝo?", "confirmations.discard_draft.post.cancel": "Daŭrigi malneton", + "confirmations.discard_draft.post.message": "Daŭrigo forigos la afiŝon, kiun vi nun verkas.", "confirmations.discard_draft.post.title": "Ĉu forĵeti vian malneton?", "confirmations.discard_edit_media.confirm": "Forĵeti", "confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭvidigo de la vidaŭdaĵo, ĉu vi forĵetu ilin malgraŭe?", @@ -236,6 +237,8 @@ "confirmations.missing_alt_text.secondary": "Afiŝi ĉiuokaze", "confirmations.missing_alt_text.title": "Ĉu aldoni alttekston?", "confirmations.mute.confirm": "Silentigi", + "confirmations.quiet_post_quote_info.dismiss": "Ne memorigu min denove", + "confirmations.quiet_post_quote_info.got_it": "Komprenite", "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?", @@ -722,6 +725,8 @@ "privacy.public.long": "Ĉiujn ajn ĉe kaj ekster Mastodon", "privacy.public.short": "Publika", "privacy.quote.anyone": "{visibility}, iu ajn povas citi", + "privacy.quote.disabled": "{visibility}, malŝaltitaj citaĵoj", + "privacy.quote.limited": "{visibility}, limigitaj citaĵoj", "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.short": "Diskrete publika", "privacy_policy.last_updated": "Laste ĝisdatigita en {date}", @@ -842,6 +847,7 @@ "status.block": "Bloki @{name}", "status.bookmark": "Aldoni al la legosignoj", "status.cancel_reblog_private": "Ne plu diskonigi", + "status.cannot_quote": "Vi ne rajtas citi ĉi tiun afiŝon", "status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi", "status.context.load_new_replies": "Disponeblaj novaj respondoj", "status.context.loading": "Serĉante pliajn respondojn", @@ -876,6 +882,8 @@ "status.quote_error.filtered": "Kaŝita pro unu el viaj filtriloj", "status.quote_error.not_available": "Afiŝo ne disponebla", "status.quote_error.pending_approval": "Pritraktata afiŝo", + "status.quote_error.pending_approval_popout.body": "Ĉe Mastodon, vi povas kontroli ĉu iu rajtas citi vin. Ĉi tiu afiŝo estas atendata dum ni akiras la aprobon de la originala aŭtoro.", + "status.quote_error.revoked": "Afiŝo forigita de aŭtoro", "status.quote_followers_only": "Nur sekvantoj rajtas citi tiun ĉi afiŝon", "status.quote_manual_review": "Aŭtoro permane revizios", "status.quote_policy_change": "Ŝanĝi kiu povas citi", @@ -886,17 +894,20 @@ "status.read_more": "Legi pli", "status.reblog": "Diskonigi", "status.reblog_or_quote": "Diskonigi aŭ citi", + "status.reblog_private": "Kunhavigu denove kun viaj sekvantoj", "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.remove_favourite": "Forigi el plej ŝatataj", + "status.remove_quote": "Forigi", "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.request_quote": "Peto por citi", "status.revoke_quote": "Forigu mian afiŝon el la afiŝo de @{name}", "status.sensitive_warning": "Tikla enhavo", "status.share": "Kundividi", @@ -961,6 +972,9 @@ "video.volume_up": "Laŭteco pliigi", "visibility_modal.button_title": "Agordu videblon", "visibility_modal.header": "Videblo kaj interago", + "visibility_modal.helper.direct_quoting": "Privataj mencioj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj.", + "visibility_modal.helper.privacy_editing": "Videbleco ne povas esti ŝanĝita post publikigo de afiŝo.", + "visibility_modal.helper.privacy_private_self_quote": "Memcitaĵoj de privataj afiŝoj ne povas esti publikigitaj.", "visibility_modal.helper.private_quoting": "Afiŝoj nur por sekvantoj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj.", "visibility_modal.helper.unlisted_quoting": "Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj.", "visibility_modal.privacy_label": "Videbleco", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 096f8464907211..672cad81aaf2b2 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -895,6 +895,8 @@ "status.quote": "Citar", "status.quote.cancel": "Cancelar cita", "status.quote_error.filtered": "Oculto debido a uno de tus filtros", + "status.quote_error.limited_account_hint.action": "Mostrar de todos modos", + "status.quote_error.limited_account_hint.title": "Esta cuenta fue ocultada por los moderadores de {domain}.", "status.quote_error.not_available": "Mensaje no disponible", "status.quote_error.pending_approval": "Mensaje pendiente", "status.quote_error.pending_approval_popout.body": "En Mastodon, podés controlar si alguien te puede citar. Este mensaje está pendiente hasta obtener la aprobación del autor original.", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index beaa07fdef5c5b..ff1a75b4ccd76f 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -892,9 +892,11 @@ "status.mute_conversation": "Silenciar conversación", "status.open": "Expandir estado", "status.pin": "Fijar", - "status.quote": "Cita", + "status.quote": "Citar", "status.quote.cancel": "Cancelar cita", "status.quote_error.filtered": "Oculto debido a uno de tus filtros", + "status.quote_error.limited_account_hint.action": "Mostrar de todas formas", + "status.quote_error.limited_account_hint.title": "Esta cuenta ha sido ocultada por los moderadores de {domain}.", "status.quote_error.not_available": "Publicación no disponible", "status.quote_error.pending_approval": "Publicación pendiente", "status.quote_error.pending_approval_popout.body": "En Mastodon, puedes controlar si alguien puede citarte. Esta publicación está pendiente mientras obtenemos la aprobación del autor original.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 2ddacc09bbcb76..b71f154f89b0c8 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -892,9 +892,11 @@ "status.mute_conversation": "Silenciar conversación", "status.open": "Expandir publicación", "status.pin": "Fijar", - "status.quote": "Cita", + "status.quote": "Citar", "status.quote.cancel": "Cancelar cita", "status.quote_error.filtered": "Oculto debido a uno de tus filtros", + "status.quote_error.limited_account_hint.action": "Mostrar de todos modos", + "status.quote_error.limited_account_hint.title": "Esta cuenta ha sido ocultada por los moderadores de {domain}.", "status.quote_error.not_available": "Publicación no disponible", "status.quote_error.pending_approval": "Publicación pendiente", "status.quote_error.pending_approval_popout.body": "En Mastodon, puedes controlar si alguien puede citarte. Esta publicación está pendiente mientras obtenemos la aprobación del autor original.", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 0d01293a3bda96..791736f1310148 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -453,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "Ignoreeri soovimatute eraviisiliste mainimiste teateid?", "info_button.label": "Abi", "info_button.what_is_alt_text": "

    Mis on alt-tekst?

    Alt-tekst pakub pildi kirjeldust nägemispuudega inimeste jaoks või neile, kel on aeglane internet või neile, kes otsivad lisaselgitust

    Saad parandada ligipääsetavust ja mõistmist kõigi jaoks, kirjutades selge, lühida ja objektiivse alt-teksti.

    • Lisa tähtsad elemendid
    • Tee pildil olevast tekstist kokkuvõte
    • Kasuta reeglipärast lausestruktuuri
    • Väldi ebaolulist infot
    • Keskendu keerukate vaadete puhul (näiteks diagrammid ja kaardid) puhul trendidele ja põhiseostele
    ", + "interaction_modal.action": "Suhestumaks kasutaja {name} postitusega palun logi sisse oma Mastodoni kasutajakontoga sõltumata serverist, mida kasutad.", "interaction_modal.go": "Mine", "interaction_modal.no_account_yet": "Pole veel kontot?", "interaction_modal.on_another_server": "Teises serveris", "interaction_modal.on_this_server": "Selles serveris", + "interaction_modal.title": "Jätkamiseks logi sisse", "interaction_modal.username_prompt": "Nt {example}", "intervals.full.days": "{number, plural, one {# päev} other {# päeva}}", "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}", @@ -860,6 +862,7 @@ "status.block": "Blokeeri @{name}", "status.bookmark": "Järjehoidja", "status.cancel_reblog_private": "Lõpeta jagamine", + "status.cannot_quote": "Sul pole õigust seda postitust tsiteerida", "status.cannot_reblog": "Seda postitust ei saa jagada", "status.context.load_new_replies": "Leidub uusi vastuseid", "status.context.loading": "Kontrollin täiendavate vastuste olemasolu", @@ -892,6 +895,8 @@ "status.quote": "Tsiteeri", "status.quote.cancel": "Katkesta tsiteerimine", "status.quote_error.filtered": "Peidetud mõne kasutatud filtri tõttu", + "status.quote_error.limited_account_hint.action": "Näita ikkagi", + "status.quote_error.limited_account_hint.title": "See profiil on peidetud {domain} serveri moderaatorite poolt.", "status.quote_error.not_available": "Postitus pole saadaval", "status.quote_error.pending_approval": "Postitus on ootel", "status.quote_error.pending_approval_popout.body": "Mastodonis saad sa kontrollida seda, kes võib sind tsiteerida. See postitus on seni ootel, kuni pole algse autori kinnitust tsiteerimisele.", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 65ea02d9bee56b..2925044cc546fb 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -507,7 +507,7 @@ "lightbox.previous": "Edellinen", "lightbox.zoom_in": "Näytä todellisen kokoisena", "lightbox.zoom_out": "Näytä sovitettuna", - "limited_account_hint.action": "Näytä profiili joka tapauksessa", + "limited_account_hint.action": "Näytä profiili kuitenkin", "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}", @@ -895,6 +895,8 @@ "status.quote": "Lainaa", "status.quote.cancel": "Peruuta lainaus", "status.quote_error.filtered": "Piilotettu jonkin asettamasi suodattimen takia", + "status.quote_error.limited_account_hint.action": "Näytä kuitenkin", + "status.quote_error.limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.", "status.quote_error.not_available": "Julkaisu ei saatavilla", "status.quote_error.pending_approval": "Julkaisu odottaa", "status.quote_error.pending_approval_popout.body": "Mastodonissa voit hallita, voiko joku lainata sinua. Tämä julkaisu on vireillä siihen asti, että saamme alkuperäisen tekijän hyväksynnän.", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index d11804fb300e24..dc4cbc694a2ff5 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -895,6 +895,8 @@ "status.quote": "Sitat", "status.quote.cancel": "Ógilda sitat", "status.quote_error.filtered": "Eitt av tínum filtrum fjalir hetta", + "status.quote_error.limited_account_hint.action": "Vís kortini", + "status.quote_error.limited_account_hint.title": "Hendan kontan er fjald av kjakleiðarunum á {domain}.", "status.quote_error.not_available": "Postur ikki tøkur", "status.quote_error.pending_approval": "Postur bíðar", "status.quote_error.pending_approval_popout.body": "Á Mastodon kanst tú avgera, um onkur kann sitera teg. Hesin posturin bíðar eftir góðkenning frá upprunahøvundinum.", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 8965b27ee16ef7..2b2efe733c8950 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -241,12 +241,17 @@ "confirmations.mute.confirm": "Mùch", "confirmations.quiet_post_quote_info.dismiss": "Na cuiribh seo ’nam chuimhne a-rithist", "confirmations.quiet_post_quote_info.got_it": "Tha mi agaibh", + "confirmations.quiet_post_quote_info.message": "Nuair a luaidheas tu post a tha poblach ach sàmhach, thèid am post agad fhalach o loidhnichean-ama nan treandaichean.", + "confirmations.quiet_post_quote_info.title": "Luaidh air postaichean poblach ach sàmhach", "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.remove_from_followers.confirm": "Thoir an neach-leantainn air falbh", "confirmations.remove_from_followers.message": "Cha lean {name} thu tuilleadh. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.remove_from_followers.title": "A bheil thu airson an neach-leantainn a thoirt air falbh?", + "confirmations.revoke_quote.confirm": "Thoir am post air falbh", + "confirmations.revoke_quote.message": "Cha ghabh seo a neo-dhèanamh.", + "confirmations.revoke_quote.title": "A bheil thu airson am post a thoirt air falbh?", "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?", @@ -291,6 +296,7 @@ "domain_pill.your_handle": "An t-aithnichear agad:", "domain_pill.your_server": "Do dhachaigh dhigiteach far a bheil na postaichean uile agad a’ fuireach. Nach toigh leat an tè seo? Dèan imrich gu frithealaiche eile uair sam bith is thoir an luchd-leantainn agad leat cuideachd.", "domain_pill.your_username": "Seo an t-aithnichear àraidh agad air an fhrithealaiche seo. Dh’fhaoidte gu bheil luchd-cleachdaidh air a bheil an t-aon ainm air frithealaichean eile.", + "dropdown.empty": "Tagh roghainn", "embed.instructions": "Leabaich am post seo san làrach-lìn agad is tu a’ dèanamh lethbhreac dhen chòd gu h-ìosal.", "embed.preview": "Seo an coltas a bhios air:", "emoji_button.activity": "Gnìomhachd", @@ -447,10 +453,12 @@ "ignore_notifications_modal.private_mentions_title": "A bheil thu airson na brathan o iomraidhean phrìobhaideach gun iarraidh a leigeil seachad?", "info_button.label": "Cobhair", "info_button.what_is_alt_text": "

    Dè a th’ ann an roghainn teacsa?

    Bheir roghainn teacsa tuairisgeulan dhealbhan dhan fheadhainn air a bheil cion lèirsinne, aig a bheil ceangal air leud-banna cumhang no a tha a’ sireadh barrachd co-theacsa.

    ’S urrainn dhut piseach a thoirt air an t-so-ruigsinneachd is an tuigse dhan a h-uile duine ma sgrìobhas tu roghainn teacsa a tha soilleir, goirid is cuspaireach.

    • Gabh a-steach na nithean cudromach
    • Dèan geàrr-chunntas dhen teacsa sna dealbhan
    • Cleachd structar sheantansan àbhaisteach
    • \\nSeachainn fiosrachadh anabarrach
    • Cùm an aire air treandaichean is puingean cudromach ann an dealbhan iom-fhillte (mar diagram no mapa)
    ", + "interaction_modal.action": "Mus eadar-ghabh thu leis a’ phost le {name}, feumaidh tu clàradh a-steach dhan chunntas agad air ge b’ e dè am frithealaiche Mastodon a chleachdas tu.", "interaction_modal.go": "Siuthad", "interaction_modal.no_account_yet": "Nach eil cunntas agad fhathast?", "interaction_modal.on_another_server": "Air frithealaiche eile", "interaction_modal.on_this_server": "Air an frithealaiche seo", + "interaction_modal.title": "Clàraich a-steach airson leantainn air adhart", "interaction_modal.username_prompt": "M.e. {example}", "intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}", "intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}", @@ -471,6 +479,7 @@ "keyboard_shortcuts.home": "Fosgail loidhne-ama na dachaigh", "keyboard_shortcuts.hotkey": "Grad-iuchair", "keyboard_shortcuts.legend": "Seall an clàr-mìneachaidh seo", + "keyboard_shortcuts.load_more": "Cuir am fòcas air a’ phutan “Luchdaich barrachd dheth”", "keyboard_shortcuts.local": "Fosgail an loidhne-ama ionadail", "keyboard_shortcuts.mention": "Thoir iomradh dhan ùghdar", "keyboard_shortcuts.muted": "Fosgail liosta nan cleachdaichean mùchte", @@ -491,6 +500,8 @@ "keyboard_shortcuts.translate": "airson post eadar-theangachadh", "keyboard_shortcuts.unfocus": "Thoir am fòcas far raon teacsa an sgrìobhaidh/an luirg", "keyboard_shortcuts.up": "Gluais suas air an liosta", + "learn_more_link.got_it": "Tha mi agaibh", + "learn_more_link.learn_more": "Barrachd fiosrachaidh", "lightbox.close": "Dùin", "lightbox.next": "Air adhart", "lightbox.previous": "Air ais", @@ -730,11 +741,14 @@ "privacy.quote.disabled": "{visibility}, luaidhean à comas", "privacy.quote.limited": "{visibility}, luaidhean cuingichte", "privacy.unlisted.additional": "Tha seo coltach ris an fhaicsinneachd phoblach ach cha nochd am post air loidhnichean-ama an t-saoghail phoblaich, nan tagaichean hais no an rùrachaidh no ann an toraidhean luirg Mhastodon fiù ’s ma thug thu ro-aonta airson sin seachad.", + "privacy.unlisted.long": "Falaichte o na toraidhean-luirg, na treandaichean ’s na loichnichean-ama poblach", "privacy.unlisted.short": "Poblach ach sàmhach", "privacy_policy.last_updated": "An t-ùrachadh mu dheireadh {date}", "privacy_policy.title": "Poileasaidh prìobhaideachd", + "quote_error.poll": "Chan fhaod thu luaidh a chur an cois cunntais-bheachd.", "quote_error.quote": "Chan eil taic ach ri aon luaidh aig an aon àm.", "quote_error.unauthorized": "Chan fhaod thu am post seo a luaidh.", + "quote_error.upload": "Chan fhaod thu meadhan a chur ri luaidh.", "recommended": "Molta", "refresh": "Ath-nuadhaich", "regeneration_indicator.please_stand_by": "Fuirich ort.", @@ -750,6 +764,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}d", "relative_time.today": "an-diugh", + "remove_quote_hint.button_label": "Tha mi agaibh", + "remove_quote_hint.message": "Nì thu sin o chlàr-taice {icon} nan roghainnean.", + "remove_quote_hint.title": "A bheil thu airson am post agad a thoirt air falbh on luaidh?", "reply_indicator.attachments": "{count, plural, one {# cheanglachan} two {# cheanglachan} few {# ceanglachain} other {# ceanglachan}}", "reply_indicator.cancel": "Sguir dheth", "reply_indicator.poll": "Cunntas-bheachd", @@ -847,9 +864,12 @@ "status.cancel_reblog_private": "Na brosnaich tuilleadh", "status.cannot_quote": "Chan fhaod thu am post seo a luaidh", "status.cannot_reblog": "Cha ghabh am post seo brosnachadh", + "status.context.load_new_replies": "Tha freagairt no dhà ùr ri fhaighinn", + "status.context.loading": "A’ toirt sùil airson barrachd fhreagairtean", "status.continued_thread": "Pàirt de shnàithlean", "status.copy": "Dèan lethbhreac dhen cheangal dhan phost", "status.delete": "Sguab às", + "status.delete.success": "Chaidh am post a sguabadh às", "status.detailed_status": "Mion-shealladh a’ chòmhraidh", "status.direct": "Thoir iomradh air @{name} gu prìobhaideach", "status.direct_indicator": "Iomradh prìobhaideach", @@ -875,19 +895,35 @@ "status.quote": "Luaidh", "status.quote.cancel": "Sguir dhen luaidh", "status.quote_error.filtered": "Falaichte le criathrag a th’ agad", + "status.quote_error.not_available": "Chan eil am post ri fhaighinn", + "status.quote_error.pending_approval": "Cha deach dèiligeadh ris a’ phost fhathast", + "status.quote_error.pending_approval_popout.body": "Air Mastodon, ’s urrainn dhut stiùireadh am faod cuideigin do luaidh gus nach fhaod. Tha am post seo a’ feitheamh air aonta an ùghdair thùsail.", + "status.quote_error.revoked": "Chaidh am post a thoirt air falbh leis an ùghdar", + "status.quote_followers_only": "Chan fhaod ach luchd-leantainn am post seo a luaidh", + "status.quote_manual_review": "Nì an t-ùghdar lèirmheas air a làimh", + "status.quote_policy_change": "Atharraich cò dh’fhaodas luaidh", + "status.quote_post_author": "Luaidh air post le @{name}", + "status.quote_private": "Chan fhaodar postaichean prìobhaideach a luaidh", + "status.quotes": "{count, plural, one {luaidh} two {luaidh} few {luaidhean} other {luaidh}}", + "status.quotes.empty": "Chan deach am post seo a luaidh le duine sam bith fhathast. Nuair a luaidheas cuideigin e, nochdaidh iad an-seo.", "status.read_more": "Leugh an còrr", "status.reblog": "Brosnaich", + "status.reblog_or_quote": "Brosnaich no luaidh", + "status.reblog_private": "Co-roinn leis an luchd-leantainn agad a-rithist", "status.reblogged_by": "’Ga bhrosnachadh le {name}", "status.reblogs": "{count, plural, one {bhrosnachadh} two {bhrosnachadh} few {brosnachaidhean} other {brosnachadh}}", "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.remove_favourite": "Thoir air falbh o na h-annsachdan", + "status.remove_quote": "Thoir 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.request_quote": "Iarr luaidh", + "status.revoke_quote": "Thoir am post agam air falbh on phost le @{name}", "status.sensitive_warning": "Susbaint fhrionasach", "status.share": "Co-roinn", "status.show_less_all": "Seall nas lugha dhen a h-uile", @@ -925,6 +961,7 @@ "upload_button.label": "Cuir ris dealbhan, video no faidhle fuaime", "upload_error.limit": "Luchdaich thu suas na tha ceadaichte dhut a dh’fhaidhlichean mu thràth.", "upload_error.poll": "Chan fhaod thu faidhle a luchdadh suas an cois cunntais-bheachd.", + "upload_error.quote": "Chan fhaod thu faidhle a luchdadh suas an cois luaidh.", "upload_form.drag_and_drop.instructions": "Airson ceanglachan meadhain a thogail, brùth air space no enter. Fhad ’ a bhios tu ’ga shlaodadh, cleachd na h-iuchraichean-saighde airson an ceanglachan meadhain a ghluasad gu comhair sam bith. Brùth air space no enter a-rithist airson an ceanglachen meadhain a leigeil às air an ionad ùr aige no brùth air escape airson sgur dheth.", "upload_form.drag_and_drop.on_drag_cancel": "Chaidh sgur dhen t-slaodadh. Chaidh an ceanglachan meadhain {item} a leigeil às.", "upload_form.drag_and_drop.on_drag_end": "Chaidh an ceanglachan meadhain {item} a leigeil às.", @@ -947,5 +984,19 @@ "video.skip_forward": "Geàrr leum air adhart", "video.unmute": "Dì-mhùch", "video.volume_down": "Lùghdaich an fhuaim", - "video.volume_up": "Cuir an fhuaim an àirde" + "video.volume_up": "Cuir an fhuaim an àirde", + "visibility_modal.button_title": "Suidhich an fhaicsinneachd", + "visibility_modal.header": "Faicsinneachd ⁊ eadar-ghabhail", + "visibility_modal.helper.direct_quoting": "Chan urrainn do chàch iomraidhean prìobhaideach a chaidh a sgrìobhadh le Mastodon a luaidh.", + "visibility_modal.helper.privacy_editing": "Chan urrainn dhut faicsinneachd puist atharrachadh às dhèidh fhoillseachadh.", + "visibility_modal.helper.privacy_private_self_quote": "Chan fhaodar fèin-luaidhean air postaichean prìobhaideach a dhèanamh poblach.", + "visibility_modal.helper.private_quoting": "Chan urrainn do chàch postaichean dhan luchd-leantainn a-mhàin a chaidh a sgrìobhadh le Mastodon a luaidh.", + "visibility_modal.helper.unlisted_quoting": "Nuair a luaidheas daoine thu, thèid am post aca-san fhalach o loidhnichean-ama nan treandaichean.", + "visibility_modal.instructions": "Stiùirich cò dh’fhaodas eadar-ghabhahil leis a’ phost seo. ’S urrainn dhut do roghainnean airson nam postaichean ri teachd a thaghadh aig Roghainnean > Bun-roghainnean a’ phostaidh", + "visibility_modal.privacy_label": "Faicsinneachd", + "visibility_modal.quote_followers": "Luchd-leantainn a-mhàin", + "visibility_modal.quote_label": "Cò dh’fhaodas luaidh", + "visibility_modal.quote_nobody": "Mi fhìn a-mhàin", + "visibility_modal.quote_public": "Duine sam bith", + "visibility_modal.save": "Sàbhail" } diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 2e010a5eaccd12..62b2a7389cf265 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -862,6 +862,7 @@ "status.block": "Bloquear a @{name}", "status.bookmark": "Marcar", "status.cancel_reblog_private": "Desfacer compartido", + "status.cannot_quote": "Non tes permiso para citar esta publicación", "status.cannot_reblog": "Esta publicación non pode ser promovida", "status.context.load_new_replies": "Non hai respostas dispoñibles", "status.context.loading": "Mirando se hai máis respostas", @@ -894,6 +895,8 @@ "status.quote": "Citar", "status.quote.cancel": "Cancelar a cita", "status.quote_error.filtered": "Oculto debido a un dos teus filtros", + "status.quote_error.limited_account_hint.action": "Mostrar igualmente", + "status.quote_error.limited_account_hint.title": "A moderación de {domain} ocultou esta conta.", "status.quote_error.not_available": "Publicación non dispoñible", "status.quote_error.pending_approval": "Publicación pendente", "status.quote_error.pending_approval_popout.body": "En Mastodon podes establecer se permites que te citen. Esta publicación queda pendente á espera de que a persoa autora orixinal o autorice.", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 8e6cc9815e3ec8..42fad56b6f4ea1 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -895,6 +895,8 @@ "status.quote": "Idézés", "status.quote.cancel": "Idézés elvetése", "status.quote_error.filtered": "A szűrőid miatt rejtett", + "status.quote_error.limited_account_hint.action": "Megjelenítés mindenképp", + "status.quote_error.limited_account_hint.title": "Ezt a fiókot elrejtették a(z) {domain} moderátorai.", "status.quote_error.not_available": "A bejegyzés nem érhető el", "status.quote_error.pending_approval": "A bejegyzés függőben van", "status.quote_error.pending_approval_popout.body": "A Mastodonon te mondod meg, hogy valaki idézhet-e. Ez a bejegyzés addig függőben marad, amíg az eredeti szerző nem engedélyezi azt.", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 4cf0288824da48..50fea784f9d36c 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -1,6 +1,7 @@ { "about.blocks": "Iqeddacen yettwaɛassen", "about.contact": "Anermis:", + "about.default_locale": "Tamezwert", "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.", @@ -186,6 +187,8 @@ "confirmations.missing_alt_text.secondary": "Suffeɣ akken yebɣu yili", "confirmations.missing_alt_text.title": "Rnu aḍris amlellay?", "confirmations.mute.confirm": "Sgugem", + "confirmations.quiet_post_quote_info.dismiss": "Ur iyi-d-smektay ara", + "confirmations.quiet_post_quote_info.got_it": "Gziɣ-t", "confirmations.redraft.confirm": "Kkes sakin ɛiwed tira", "confirmations.remove_from_followers.confirm": "Kkes aneḍfar", "confirmations.revoke_quote.confirm": "Kkes tasuffeɣt", @@ -334,6 +337,7 @@ "interaction_modal.no_account_yet": "Werɛad ur tesɛid amiḍan?", "interaction_modal.on_another_server": "Deg uqeddac nniḍen", "interaction_modal.on_this_server": "Deg uqeddac-ayi", + "interaction_modal.title": "Qqen i wakken ad tkemmleḍ", "interaction_modal.username_prompt": "Amedya: {example}", "intervals.full.days": "{number, plural, one {# wass} other {# wussan}}", "intervals.full.hours": "{number, plural, one {# usarag} other {# yisragen}}", @@ -416,6 +420,7 @@ "navigation_bar.account_settings": "Awal n uɛeddi akked tɣellist", "navigation_bar.administration": "Tadbelt", "navigation_bar.advanced_interface": "Ldi deg ugrudem n web leqqayen", + "navigation_bar.automated_deletion": "Tukksa tawurmant n tsuffaɣ", "navigation_bar.blocks": "Iseqdacen yettusḥebsen", "navigation_bar.bookmarks": "Ticraḍ", "navigation_bar.direct": "Tibdarin tusligin", @@ -555,6 +560,7 @@ "relative_time.minutes": "{number}tis", "relative_time.seconds": "{number}tas", "relative_time.today": "ass-a", + "remove_quote_hint.button_label": "Gziɣ-t", "reply_indicator.attachments": "{count, plural, one {# n umedday} other {# n imeddayen}}", "reply_indicator.cancel": "Sefsex", "reply_indicator.poll": "Afmiḍi", @@ -597,6 +603,7 @@ "report_notification.categories.spam": "Aspam", "report_notification.categories.spam_sentence": "aspam", "report_notification.open": "Ldi aneqqis", + "search.clear": "Sfeḍ anadi", "search.no_recent_searches": "Ulac inadiyen ineggura", "search.placeholder": "Nadi", "search.quick_action.account_search": "Imaɣnuten mṣadan d {x}", @@ -631,9 +638,11 @@ "status.bookmark": "Creḍ", "status.cancel_reblog_private": "Sefsex beṭṭu", "status.cannot_reblog": "Tasuffeɣt-a ur tezmir ara ad tettwabḍu tikelt-nniḍen", + "status.context.load_new_replies": "Llant tririyin timaynutin", "status.continued_thread": "Asqerdec yettkemmil", "status.copy": "Nɣel assaɣ ɣer tasuffeɣt", "status.delete": "Kkes", + "status.delete.success": "Tettwakkes tsuffeɣt", "status.direct": "Bder-d @{name} weḥd-s", "status.direct_indicator": "Abdar uslig", "status.edit": "Ẓreg", @@ -657,19 +666,24 @@ "status.pin": "Senteḍ-itt deg umaɣnu", "status.quote": "Tanebdurt", "status.quote.cancel": "Semmet tanebdurt", + "status.quote_error.limited_account_hint.action": "Sken-d akken ibɣu yili", + "status.quote_error.revoked": "Tasuffeɣt-a yekkes-itt umeskar-is", "status.quote_post_author": "Yebder-d tasuffeɣt sɣur @{name}", "status.read_more": "Issin ugar", "status.reblog": "Bḍu", + "status.reblog_or_quote": "Zuzer neɣ ader-d", "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", + "status.remove_quote": "Kkes", "status.replied_in_thread": "Y·t·erra-d deg usqerdec", "status.replied_to": "Y·terra-yas i {name}", "status.reply": "Err", "status.replyAll": "Err i wesqerdec", "status.report": "Cetki ɣef @{name}", + "status.request_quote": "Suter tabdert", "status.sensitive_warning": "Agbur amḥulfu", "status.share": "Bḍu", "status.show_less_all": "Semẓi akk tisuffɣin", @@ -716,7 +730,14 @@ "video.mute": "Sgugem", "video.pause": "Sgunfu", "video.play": "Seddu", + "video.skip_backward": "Uɣal ɣer deffir", + "video.skip_forward": "Ddu ɣer zdat", "video.unmute": "Kkes asgugem", + "visibility_modal.button_title": "Sbadu abani", + "visibility_modal.privacy_label": "Abani", "visibility_modal.quote_followers": "Imeḍfaṛen kan", - "visibility_modal.quote_public": "Yal yiwen" + "visibility_modal.quote_label": "Anwa i izemren ad d-yebder", + "visibility_modal.quote_nobody": "Nekki kan", + "visibility_modal.quote_public": "Yal yiwen", + "visibility_modal.save": "Sekles" } diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 688554e6df44cc..c1a21ad6bad359 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -737,7 +737,7 @@ "privacy.private.short": "Volgers", "privacy.public.long": "Iedereen op Mastodon en daarbuiten", "privacy.public.short": "Openbaar", - "privacy.quote.anyone": "{visibility}, iedereen kan citeren", + "privacy.quote.anyone": "{visibility}, iedereen mag citeren", "privacy.quote.disabled": "{visibility}, citeren uitgeschakeld", "privacy.quote.limited": "{visibility}, citeren beperkt", "privacy.unlisted.additional": "Dit is vergelijkbaar met openbaar, behalve dat het bericht niet op openbare tijdlijnen, onder hashtags, verkennen of zoeken verschijnt, zelfs als je je account daarvoor hebt ingesteld.", @@ -895,6 +895,8 @@ "status.quote": "Citeren", "status.quote.cancel": "Citeren annuleren", "status.quote_error.filtered": "Verborgen door een van je filters", + "status.quote_error.limited_account_hint.action": "Alsnog tonen", + "status.quote_error.limited_account_hint.title": "Dit account is door de moderatoren van {domain} verborgen.", "status.quote_error.not_available": "Bericht niet beschikbaar", "status.quote_error.pending_approval": "Bericht in afwachting", "status.quote_error.pending_approval_popout.body": "Op Mastodon kun je bepalen of iemand je mag citeren. Dit bericht is in afwachting van de goedkeuring van de oorspronkelijke auteur.", @@ -992,7 +994,7 @@ "visibility_modal.helper.privacy_private_self_quote": "Jouw eigen citaten van berichten aan alleen volgers kunnen niet openbaar worden gemaakt.", "visibility_modal.helper.private_quoting": "Berichten aan alleen volgers afkomstig van Mastodon kunnen niet door anderen worden geciteerd.", "visibility_modal.helper.unlisted_quoting": "Wanneer mensen jou citeren, verschijnt hun bericht ook niet onder trends.", - "visibility_modal.instructions": "Bepaal wie wat met dit bericht kan doen. Je kunt ook instellingen op alle toekomstige berichten toepassen door naar Voorkeuren > Standaardinstellingen voor berichten te gaan.", + "visibility_modal.instructions": "Bepaal wie wat met dit bericht mag doen. Je kunt ook de instellingen voor alle toekomstige berichten aanpassen door naar Voorkeuren > Standaardinstellingen voor berichten te gaan.", "visibility_modal.privacy_label": "Zichtbaarheid", "visibility_modal.quote_followers": "Alleen volgers", "visibility_modal.quote_label": "Wie mag jou citeren", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index d2e3046156dee0..00108fa316e80a 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -430,7 +430,7 @@ "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_follows": "Sjå fleire fylgje på {domain}", "hints.profiles.see_more_posts": "Sjå fleire innlegg på {domain}", "home.column_settings.show_quotes": "Vis sitat", "home.column_settings.show_reblogs": "Vis framhevingar", @@ -862,6 +862,7 @@ "status.block": "Blokker @{name}", "status.bookmark": "Set bokmerke", "status.cancel_reblog_private": "Opphev framheving", + "status.cannot_quote": "Du har ikkje løyve til å sitera dette innlegget", "status.cannot_reblog": "Du kan ikkje framheva dette innlegget", "status.context.load_new_replies": "Nye svar finst", "status.context.loading": "Ser etter fleire svar", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 1ca950280e381f..5ac881547df602 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -895,6 +895,8 @@ "status.quote": "Trích dẫn", "status.quote.cancel": "Bỏ trích dẫn", "status.quote_error.filtered": "Bị ẩn vì một bộ lọc của bạn", + "status.quote_error.limited_account_hint.action": "Vẫn xem", + "status.quote_error.limited_account_hint.title": "Người này đã bị ẩn bởi quản trị viên {domain}.", "status.quote_error.not_available": "Tút không khả dụng", "status.quote_error.pending_approval": "Tút đang chờ duyệt", "status.quote_error.pending_approval_popout.body": "Trên Mastodon, bạn có thể kiểm soát việc ai đó có thể trích dẫn tút của bạn hay không. Tút này đang chờ phê duyệt từ tác giả gốc.", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 6369a0a4fb2119..1f1f895ff7fc15 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -72,7 +72,7 @@ "account.report": "举报 @{name}", "account.requested": "正在等待对方同意。点击取消发送关注请求", "account.requested_follow": "{name} 向你发送了关注请求", - "account.requests_to_follow_you": "请求关注您", + "account.requests_to_follow_you": "请求关注你", "account.share": "分享 @{name} 的个人资料", "account.show_reblogs": "显示来自 @{name} 的转嘟", "account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}", @@ -219,13 +219,13 @@ "confirmations.delete_list.confirm": "删除", "confirmations.delete_list.message": "确定要永久删除此列表吗?", "confirmations.delete_list.title": "确定要删除列表?", - "confirmations.discard_draft.confirm": "放弃并继续", + "confirmations.discard_draft.confirm": "丢弃并继续", "confirmations.discard_draft.edit.cancel": "恢复编辑", - "confirmations.discard_draft.edit.message": "继续将丢弃您对您正在编辑的嘟文所作的任何更改。", - "confirmations.discard_draft.edit.title": "是否丢弃您对嘟文的更改?", + "confirmations.discard_draft.edit.message": "继续将丢弃你对你正在编辑的嘟文所作的任何更改。", + "confirmations.discard_draft.edit.title": "是否丢弃你对嘟文的更改?", "confirmations.discard_draft.post.cancel": "恢复草稿", - "confirmations.discard_draft.post.message": "继续将丢弃您正在编辑的嘟文。", - "confirmations.discard_draft.post.title": "丢弃您的嘟文草稿?", + "confirmations.discard_draft.post.message": "继续将丢弃你正在编辑的嘟文。", + "confirmations.discard_draft.post.title": "丢弃你的嘟文草稿?", "confirmations.discard_edit_media.confirm": "丢弃", "confirmations.discard_edit_media.message": "你还有未保存的媒体描述或预览修改,仍要丢弃吗?", "confirmations.follow_to_list.confirm": "关注并添加到列表", @@ -247,7 +247,7 @@ "confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。", "confirmations.redraft.title": "是否删除并重新编辑嘟文?", "confirmations.remove_from_followers.confirm": "移除关注者", - "confirmations.remove_from_followers.message": "{name} 将停止关注您。您确定要继续吗?", + "confirmations.remove_from_followers.message": "{name} 将停止关注你。你确定要继续吗?", "confirmations.remove_from_followers.title": "移除关注者?", "confirmations.revoke_quote.confirm": "移除嘟文", "confirmations.revoke_quote.message": "此操作无法撤销。", @@ -314,8 +314,8 @@ "emoji_button.search_results": "搜索结果", "emoji_button.symbols": "符号", "emoji_button.travel": "旅行与地点", - "empty_column.account_featured.me": "你尚未设置任何精选。你知道吗?你也可以将自己最常使用的话题标签,甚至是好友的账号,在你的个人主页上设为精选。", - "empty_column.account_featured.other": "{acct} 尚未设置任何精选。你知道吗?你也可以将自己最常使用的话题标签,甚至是好友的账号,在你的个人主页上设为精选。", + "empty_column.account_featured.me": "你尚未设置任何精选。你知道吗?你可以将自己最常使用的话题标签,甚至是好友的账号,在你的个人主页上设为精选。", + "empty_column.account_featured.other": "{acct} 尚未设置任何精选。你知道吗?你可以将自己最常使用的话题标签,甚至是好友的账号,在你的个人主页上设为精选。", "empty_column.account_featured_other.unknown": "此账号尚未设置任何精选。", "empty_column.account_hides_collections": "该用户选择不公开此信息", "empty_column.account_suspended": "账号已被停用", @@ -740,7 +740,7 @@ "privacy.quote.anyone": "{visibility},任何人都能引用", "privacy.quote.disabled": "{visibility},禁用嘟文引用", "privacy.quote.limited": "{visibility},嘟文引用受限", - "privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。", + "privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使你已全局开启了对应的发现设置。", "privacy.unlisted.long": "不显示在Mastodon的搜索结果、热门趋势、公共时间线上", "privacy.unlisted.short": "悄悄公开", "privacy_policy.last_updated": "最近更新于 {date}", @@ -895,6 +895,8 @@ "status.quote": "引用", "status.quote.cancel": "取消引用", "status.quote_error.filtered": "已根据你的筛选器过滤", + "status.quote_error.limited_account_hint.action": "仍然显示", + "status.quote_error.limited_account_hint.title": "此账号已被 {domain} 管理员隐藏。", "status.quote_error.not_available": "嘟文不可用", "status.quote_error.pending_approval": "嘟文待发布", "status.quote_error.pending_approval_popout.body": "在Mastodon上,你可以控制其他人引用你嘟文的权限。此嘟文在得到原作者的同意后就会发布。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 5646b7ede835eb..7dcbe572b9f973 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -895,6 +895,8 @@ "status.quote": "引用", "status.quote.cancel": "取消引用嘟文", "status.quote_error.filtered": "由於您的過濾器,該嘟文被隱藏", + "status.quote_error.limited_account_hint.action": "仍要顯示", + "status.quote_error.limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。", "status.quote_error.not_available": "無法取得該嘟文", "status.quote_error.pending_approval": "嘟文正在發送中", "status.quote_error.pending_approval_popout.body": "您能於 Mastodon 控制是否允許引用您的嘟文。此嘟文正在等待原始作者核准。", diff --git a/config/locales/da.yml b/config/locales/da.yml index ad54e7a4174bd0..9f15c2a43f0e44 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1499,39 +1499,39 @@ da: overwrite_long: Erstat aktuelle poster med de nye overwrite_preambles: blocking_html: - one: Man er ved at erstatte sin sortliste med %{count} konto fra %{filename}. - other: Man er ved at erstatte sin sortliste med optil %{count} konti fra %{filename}. + one: Du er ved at erstatte din sortliste med %{count} konto fra %{filename}. + other: Du er ved at erstatte din sortliste med op til %{count} konti fra %{filename}. bookmarks_html: one: Du er ved at erstatte dine bogmærker med %{count} indlæg fra %{filename}. other: Du er ved at erstatte dine bogmærker med op til %{count} indlæg fra %{filename}. domain_blocking_html: - one: Man er ved at erstatte sin domænesortliste med %{count} domæne fra %{filename}. - other: Man er ved at erstatte sin domænesortliste med op til %{count} domæner fra %{filename}. + one: Du er ved at erstatte din domænesortliste med %{count} domæne fra %{filename}. + other: Du er ved at erstatte din domænesortliste med op til %{count} domæner fra %{filename}. following_html: one: Du er ved at følge %{count} konto fra %{filename} og stoppe med at følge andre. other: Du er ved at følge %{count} konti fra %{filename} og stoppe med at følge andre. lists_html: - one: Man er ved at erstatte sine lister med indhold fra %{filename}. %{count} konto føjes til nye lister. - other: Man er ved at erstatte sine lister med indhold fra %{filename}. Op til %{count} konti føjes til nye lister. + one: Du er ved at erstatte dine lister med indhold fra %{filename}. %{count} konto føjes til nye lister. + other: Du er ved at erstatte dine lister med indhold fra %{filename}. Op til %{count} konti føjes til nye lister. muting_html: one: Du er ved at erstatte din liste over en skjult konto med op til %{count} konto fra %{filename}. other: Du er ved at erstatte din liste over skjulte konti med op til %{count} konti fra %{filename}. preambles: blocking_html: - one: Man er ved at blokere %{count} konto fra %{filename}. - other: Man er ved at blokere op til %{count} konti fra %{filename}. + one: Du er ved at blokere %{count} konto fra %{filename}. + other: Du er ved at blokere op til %{count} konti fra %{filename}. bookmarks_html: one: Du er ved at tilføje %{count} indlæg fra %{filename} til dine bogmærker. other: Du er ved at tilføje %{count} indlæg fra %{filename} til dine bogmærker. domain_blocking_html: - one: Man er ved at blokere %{count} domæne fra %{filename}. + one: Du er ved at blokere %{count} domæne fra %{filename}. other: Man er ved at blokere op til %{count} domæner fra %{filename}. following_html: - one: Man er ved at følge %{count} konto fra %{filename}. + one: Du er ved at følge %{count} konto fra %{filename}. other: Man er ved at følge op til%{count} konti fra %{filename}. lists_html: - one: Man er ved at tilføje %{count} konto fra %{filename} til sine lister. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til. - other: Man er ved at tilføje %{count} konti fra %{filename} til sine lister. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til. + one: Du er ved at tilføje %{count} konto fra %{filename} til dine lister. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til. + other: Du er ved at tilføje %{count} konti fra %{filename} til dine lister. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til. muting_html: one: Du er ved at skjule op til %{count} konto fra %{filename}. other: Du er ved at skjule op til %{count} konti fra %{filename}. diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml index 9b9ddba08d68db..934bb870be72cf 100644 --- a/config/locales/doorkeeper.nn.yml +++ b/config/locales/doorkeeper.nn.yml @@ -131,7 +131,7 @@ nn: favourites: Favorittar filters: Filter follow: Dei du fylgjer, dempar og blokkerer - follows: Fylgjer + follows: Fylgje lists: Lister media: Mediavedlegg mutes: Dempingar @@ -175,7 +175,7 @@ nn: read:bookmarks: sjå bokmerka dine read:favourites: sjå favorittane dine read:filters: sjå filtera dine - read:follows: sjå fylgjarane dine + read:follows: sjå kven du fylgjer read:lists: sjå listene dine read:mutes: sjå kven du har målbunde read:notifications: sjå varsla dine diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 81e0d774177d54..812053fa390721 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -582,6 +582,10 @@ eo: limited: Limigita title: Moderigado moderation_notes: + create: Aldoni moderigan noton + created_msg: Noto pri moderigo de instanco sukcese kreita! + description_html: Vidu kaj lasu notojn por aliaj moderigantoj kaj via estonta memo + destroyed_msg: Noto pri moderigo de instanco sukcese forigita! title: Notoj de moderigado private_comment: Privata komento public_comment: Publika komento @@ -1087,6 +1091,7 @@ eo: contains: Enhavas equals: Egalas contains_html: Enhavas %{string} + created_msg: Sukcese kreita uzantnomo-regulo delete: Forigi edit: title: Redakti uzantnoman regulon @@ -1908,7 +1913,11 @@ eo: title: "%{name}: “%{quote}”" visibilities: direct: Privada mencio + private: Nur sekvantoj public: Publika + public_long: Ĉiujn ajn ĉe kaj ekster Mastodon + unlisted: Diskrete publika + unlisted_long: Kaŝita de serĉrezultoj, tendencoj kaj publikaj templinioj de Mastodon statuses_cleanup: enabled: Aŭtomate forigi malnovajn postojn enabled_hint: Automate forigi viajn mesaĝojn kiam ili atingas la aĝlimon kaj havas escepton diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 701e3ab2df6011..0720cf964a289a 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -196,6 +196,7 @@ gd: create_relay: Cruthaich ath-sheachadan create_unavailable_domain: Cruthaich àrainn nach eil ri fhaighinn create_user_role: Cruthaich dreuchd + create_username_block: Cruthaich riaghailt ainm-cleachdaiche demote_user: Ìslich an cleachdaiche destroy_announcement: Sguab às am brath-fios destroy_canonical_email_block: Sguab às bacadh a’ phuist-d @@ -209,6 +210,7 @@ gd: destroy_status: Sguab às am post destroy_unavailable_domain: Sguab às àrainn nach eil ri fhaighinn destroy_user_role: Mill an dreuchd + destroy_username_block: Sguab às riaghailt ainm-cleachdaiche disable_2fa_user: Cuir an dearbhadh dà-cheumnach à comas disable_custom_emoji: Cuir an t-Emoji gnàthaichte à comas disable_relay: Cuir an t-ath-sheachadan à comas @@ -243,6 +245,7 @@ gd: update_report: Ùraich an gearan update_status: Ùraich am post update_user_role: Ùraich an dreuchd + update_username_block: Ùraich riaghailt ainm-cleachdaiche actions: approve_appeal_html: Dh’aontaich %{name} ri ath-thagradh air co-dhùnadh na maorsainneachd o %{target} approve_user_html: Dh’aontaich %{name} ri clàradh o %{target} @@ -261,6 +264,7 @@ gd: create_relay_html: Chruthaich %{name} an t-ath-sheachadan %{target} create_unavailable_domain_html: Sguir %{name} ris an lìbhrigeadh dhan àrainn %{target} create_user_role_html: Chruthaich %{name} an dreuchd %{target} + create_username_block_html: Chuir %{name} riaghailt ris airson ainmean-cleachdaidh sa bheil %{target} demote_user_html: Dh’ìslich %{name} an cleachdaiche %{target} destroy_announcement_html: Sguab %{name} às am brath-fios %{target} destroy_canonical_email_block_html: Dhì-bhac %{name} am post-d air a bheil an hais %{target} @@ -274,6 +278,7 @@ gd: destroy_status_html: Thug %{name} post aig %{target} air falbh destroy_unavailable_domain_html: Lean %{name} air adhart leis an lìbhrigeadh dhan àrainn %{target} destroy_user_role_html: Sguab %{name} às an dreuchd %{target} + destroy_username_block_html: Thug %{name} an riaghailt airson ainmean-cleachdaidh sa bheil %{target} air falbh disable_2fa_user_html: Chuir %{name} riatanas an dearbhaidh dà-cheumnaich à comas dhan chleachdaiche %{target} disable_custom_emoji_html: Chuir %{name} an Emoji %{target} à comas disable_relay_html: Chuir %{name} an t-ath-sheachadan %{target} à comas @@ -308,6 +313,7 @@ gd: update_report_html: Dh’ùraich %{name} an gearan %{target} update_status_html: Dh’ùraich %{name} post le %{target} update_user_role_html: Dh’atharraich %{name} an dreuchd %{target} + update_username_block_html: Dh’ùraich %{name} an riaghailt airson ainmean-cleachdaidh sa bheil %{target} deleted_account: chaidh an cunntas a sguabadh às empty: Cha deach loga a lorg. filter_by_action: Criathraich a-rèir gnìomha @@ -1121,6 +1127,25 @@ gd: two: Chaidh a chleachdadh le %{count} rè na seachdain seo chaidh title: Molaidhean ⁊ treandaichean trending: A’ treandadh + username_blocks: + add_new: Cuir tè ùr ris + block_registrations: Bac clàradh + comparison: + contains: Anns a bheil + equals: Co-ionnan ri + contains_html: Anns a bheil %{string} + created_msg: Chaidh riaghailt ainm-cleachdaiche a chruthachadh + delete: Sguab às + edit: + title: Deasaich riaghailt ainm-cleachdaiche + matches_exactly_html: Co-ionnan ri %{string} + new: + create: Cruthaich riaghailt + title: Cruthaich riaghailt ainm-cleachdaiche ùr + no_username_block_selected: Cha deach riaghailt ainm-cleachdaiche sam bith atharrachadh o nach deach gin dhiubh a thaghadh + not_permitted: Chan eil seo ceadaichte + title: Riaghailtean ainm-chleachdaiche + updated_msg: Chaidh riaghailt ainm-cleachdaiche ùrachadh warning_presets: add_new: Cuir fear ùr ris delete: Sguab às @@ -1387,6 +1412,10 @@ gd: basic_information: Fiosrachadh bunasach hint_html: "Gnàthaich na chithear air a’ phròifil phoblach agad is ri taobh nam postaichean agad. Bidh càch nas buailtiche do leantainn agus conaltradh leat nuair a bhios tu air a’ phròifil agad a lìonadh agus dealbh rithe." other: Eile + emoji_styles: + auto: Fèin-obrachail + native: Tùsail + twemoji: Twemoji errors: '400': Cha robh an t-iarrtas a chuir thu a-null dligheach no bha droch-chruth air. '403': Chan eil cead agad gus an duilleag seo a shealltainn. @@ -1736,6 +1765,10 @@ gd: title: Iomradh ùr poll: subject: Thàinig cunntas-bheachd le %{name} gu crìoch + quote: + body: 'Chaidh post a luaidh le %{name}:' + subject: Luaidh %{name} am post agad + title: Luaidh ùr reblog: body: 'Chaidh am post agad a bhrosnachadh le %{name}:' subject: Bhrosnaich %{name} am post agad @@ -1784,6 +1817,9 @@ gd: self_vote: Chan urrainn dhut bhòtadh sna chunntasan-bheachd agad fhèin too_few_options: "– feumaidh iomadh nì a bhith aige" too_many_options: "– chan fhaod còrr is %{max} nì a bhith ’na bhroinn" + vote: Bhòt + posting_defaults: + explanation: Thèid na roghainnean seo a chleachdadh nam bun-roghainnean nuair a chruthaicheas tu post ùr ach ’s urrainn dhut an deasachadh fhathast do gach post fa leth fhad ’s a bhios tu ri sgrìobhadh. preferences: other: Eile posting_defaults: Bun-roghainnean a’ phostaidh @@ -1954,15 +1990,25 @@ gd: edited_at_html: Air a dheasachadh %{date} errors: in_reply_not_found: Tha coltas nach eil am post dhan a tha thu airson freagairt ann. + quoted_status_not_found: Tha coltas nach eil am post dhan a tha thu airson luaidh ann. over_character_limit: chaidh thu thar crìoch charactaran de %{max} pin_errors: direct: Chan urrainn dhut post a phrìneachadh nach fhaic ach na cleachdaichean le iomradh orra limit: Tha an àireamh as motha de phostaichean prìnichte agad a tha ceadaichte ownership: Chan urrainn dhut post càich a phrìneachadh reblog: Chan urrainn dhut brosnachadh a phrìneachadh + quote_policies: + followers: Luchd-leantainn a-mhàin + nobody: Mi fhìn a-mhàin + public: Duine sam bith title: "%{name}: “%{quote}”" visibilities: + direct: Iomradh prìobhaideach + private: Luchd-leantainn a-mhàin public: Poblach + public_long: Duine sam bith taobh a-staigh no a-muigh Mhastodon + unlisted: Poblach ach sàmhach + unlisted_long: Falaichte o na toraidhean-luirg, na treandaichean ’s na loichnichean-ama poblach statuses_cleanup: enabled: Sguab às seann-phostaichean gu fèin-obrachail enabled_hint: Sguabaidh seo às na seann-phostaichean agad gu fèin-obrachail nuair a ruigeas iad stairsneach aoise sònraichte ach ma fhreagras iad ri gin dhe na h-eisgeachdan gu h-ìosal diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 369166d041f79d..9ec00b897aa910 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -274,7 +274,10 @@ kab: delete: Kkes ip: Tansa IP providers: + active: D urmid delete: Kkes + edit: Ẓreg asaǧǧaw + finish_registration: Fakk ajerred name: Isem providers: Asaǧǧaw registrations: @@ -384,6 +387,7 @@ kab: updated_at: Yettwaleqqem view_profile: Wali amaɣnu roles: + add_new: Rnu tawuri assigned_users: one: "%{count} n useqdac" other: "%{count} n iseqdacen" @@ -441,6 +445,7 @@ kab: contents: Agbur deleted: Yettwakkes favourites: Imenyafen + in_reply_to: Tiririt i language: Tutlayt media: title: Amidya @@ -882,9 +887,17 @@ kab: one: "%{count} n tbidyutt" other: "%{count} n tbidyutin" edited_at_html: Tettwaẓreg ass n %{date} + quote_policies: + followers: Imeḍfaṛen kan + nobody: Nekki kan + public: Yal yiwen title: '%{name} : "%{quote}"' visibilities: + direct: Abdar uslig + private: Imeḍfaṛen kan public: Azayez + public_long: Kra n win yellan deg Masṭudun neɣ berra-s + unlisted: Azayez asusam statuses_cleanup: enabled: Tukksa n tsuffaɣ tiqburin s wudem awurman min_age: @@ -951,6 +964,7 @@ kab: hashtags_subtitle: Snirem ayen yellan d anezzuɣ deg 2 n wussan-a iεeddan hashtags_title: Ihacṭagen inezzaɣ hashtags_view_more: Sken-d ugar n yihacṭagen inezzaɣ + post_action: Aru post_step: Ini-as azul i umaḍal s uḍris, s tiwlafin, s tividyutin neɣ s tefranin. post_title: Aru tasuffeɣt-inek·inem tamezwarut share_step: Init-asen i yimeddukal-nwen amek ara ken-id-afen deg Mastodon. diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 47616bb6b7bbe3..0c557cd4421a53 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1744,7 +1744,7 @@ nl: explanation: Deze instellingen worden als standaard gebruikt wanneer je nieuwe berichten aanmaakt, maar je kunt ze per bericht aanpassen. preferences: other: Overig - posting_defaults: Standaardinstellingen voor berichten + posting_defaults: Instellingen voor berichten public_timelines: Openbare tijdlijnen privacy: hint_html: "Hoe wil je dat jouw profiel en berichten kunnen worden gevonden? Een verscheidenheid aan functies in Mastodon kunnen je helpen om een groter publiek te bereiken als ze zijn ingeschakeld. Neem rustig de tijd om deze instellingen te bekijken, om er zo zeker van te zijn dat ze aan jouw wensen voldoen." diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 15999049db8ea2..bd59f5a1a671a7 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -232,7 +232,7 @@ nn: unsensitive_account: Angr tving ømtolig konto unsilence_account: Angre avgrensing av konto unsuspend_account: Opphev utestenginga av kontoen - update_announcement: Oppdater kunngjøringen + update_announcement: Oppdater kunngjeringa update_custom_emoji: Oppdater tilpassa emoji update_domain_block: Oppdater domene-sperring update_ip_block: Oppdater IP-regel @@ -316,26 +316,26 @@ nn: unavailable_instance: "(domenenamn er utilgjengeleg)" announcements: back: Tilbake til kunngjeringane - destroyed_msg: Kunngjøringen er slettet! + destroyed_msg: Kunngjeringa er sletta edit: - title: Rediger kunngjøring - empty: Ingen kunngjøringer funnet. + title: Rediger kunngjeringa + empty: Fann ingen kunngjeringar. live: Direkte new: - create: Lag kunngjøring - title: Ny kunngjøring + create: Skriv ei kunngjering + title: Ny kunngjering preview: disclaimer: Av di folk ikkje kan velja bort epostvarsel, bør du avgrensa dei til viktige kunngjeringar som datainnbrot eller varsel om at tenaren skal stengja. explanation_html: 'Denne eposten blir send til %{display_count} folk. Denne teksten vil stå i eposten:' title: Førehandsvis kunngjeringa publish: Publiser - published_msg: Kunngjøring publisert! + published_msg: Kunngjeringa er offentleggjord! scheduled_for: Planlagt for %{time} - scheduled_msg: Kunngjøring planlagt for publisering! - title: Kunngjøringer + scheduled_msg: Du har planlagt kunngjeringa. + title: Kunngjeringar unpublish: Avpubliser - unpublished_msg: Kunngjøring upublisert! - updated_msg: Kunngjøringen er oppdatert! + unpublished_msg: Du avpubliserte kunngjeringa. + updated_msg: Du oppdaterte kunngjeringa. critical_update_pending: Kritisk oppdatering ventar custom_emojis: assign_category: Vel kategori @@ -631,7 +631,7 @@ nn: relays: add_new: Legg til ny overgang delete: Slett - description_html: En federert overgang er en mellomleddsserver som utveksler store mengder av offentlige tuter mellom servere som abonnerer og publiserer til den. Det kan hjelpe små og mellomstore servere til å oppdage innhold fra strømiverset, noe som ellers ville ha krevd at lokale brukere manuelt fulgte andre personer på fjerne servere. + description_html: Eit føderert rele er ein tenar som er mellomledd og handterer store mengder offentlege innlegg mellom tenarar som abonnerer på og sender innlegg til han. Det kan hjelpa små og mellomstore tenarar å oppdaga innhald frå allheimen, noko som elles ville krevja at lokale brukarar manuelt fylgde andre folk på andre tenarar. disable: Slå av disabled: Slege av enable: Slå på @@ -788,8 +788,8 @@ nn: manage_user_access_description: Let brukarar deaktivere 2-trinnsautentisering, endre e-postadressa og tilbakestille passordet til andre brukarar manage_users: Handtere brukarar manage_users_description: Let brukarar sjå detaljar om andre brukarar og utføre moderasjonshandlingar mot dei - manage_webhooks: Handtere webhooks - manage_webhooks_description: Let brukarar setje opp webhooks for administrative hendingar + manage_webhooks: Handter vevkoplingar + manage_webhooks_description: Lèt brukarar setja opp vevkoplingar for administrative hendingar view_audit_log: Sjå revisjonslogg view_audit_log_description: Let brukarar sjå historikk over administrative handlingar på tenaren view_dashboard: Vis dashbord @@ -806,7 +806,7 @@ nn: empty: Ingen serverregler har blitt definert ennå. move_down: Flytt ned move_up: Flytt opp - title: Server regler + title: Tenarreglar translation: Omsetjing translations: Omsetjingar translations_explanation: Du kan leggja til omsetjingar av retningslinene for denne tenaren. Standardverdien vil syna dersom det ikkje finst noka omsetjing. Ver god å passa på at alle omsetjingar er i samsvar med standardverdien. @@ -869,7 +869,7 @@ nn: destroyed_msg: Vellukka sletting av sideopplasting! software_updates: critical_update: Kritisk – gjer vel og oppdater snart - description: Det er anbefalt å halda Mastodon-installasjonen oppdatert for å dra nytte av nye feilrettingar og funksjonar. Dessutan er det av og til kritisk å oppdatera Mastodon til rett tid for å ungå sikkerheitsproblem. På grunn av dette vil Mastodon sjå etter oppdateringar kvart 30. minutt og halda deg orientert etter innstillingane du har sett for e-postvarsling. + description: Me rår til å halda Mastodon-installasjonen oppdatert for å dra nytte av nye feilrettingar og funksjonar. Dessutan er det av og til kritisk å oppdatera Mastodon til rett tid for å ungå sikkerheitsproblem. På grunn av dette vil Mastodon sjå etter oppdateringar kvart 30. minutt og halda deg orientert etter innstillingane du har sett for e-postvarsling. documentation_link: Lær meir release_notes: Oppdateringsnotat title: Tilgjengelege oppdateringar @@ -947,8 +947,8 @@ nn: message_html: 'Inkompatibel Elasticsearch-versjon: %{value}' version_comparison: Elasticsearch %{running_version} kjører mens %{required_version} er påkrevd rules_check: - action: Behandle serverregler - message_html: Du har ikke definert noen serverregler. + action: Handter tenarreglar + message_html: Du har ikkje laga reglar for denne tenaren. sidekiq_process_check: message_html: Ingen Sidekiq-prosess kjører for %{value} køen(e). Vennligst se gjennom Sidekiq-konfigurasjonen din software_version_check: @@ -1089,7 +1089,7 @@ nn: used_by_over_week: one: Brukt av én person i løpet av den seneste uken other: Brukt av %{count} personer i løpet av den seneste uken - title: Anbefalingar og trendar + title: Tilrådingar og trendar trending: Trender username_blocks: add_new: Lag ny @@ -1119,23 +1119,23 @@ nn: webhooks: add_new: Legg til endepunkt delete: Slett - description_html: En webhook gjør det mulig for Mastodon å sende varsler i sanntid om utvalgte hendelser til din egen applikasjon, sånn at applikasjonen din kan reagere automatisk. - disable: Deaktiver - disabled: Deaktivert + description_html: Ei vevkopling gjer det mogleg for Mastodon å senda varsel i sanntid om utvalde hendingar til ditt eige program, slik at programmet ditt kan reagera automatisk. + disable: Skru av + disabled: Skrudd av edit: Rediger endepunkt - empty: Du har ingen webhook-endepunkter konfigurert ennå. - enable: Aktiver + empty: Du har ikkje laga nokon vevkoplingsendepunkt enno. + enable: Skru på enabled: Aktiv enabled_events: one: 1 aktivert hendelse - other: "%{count} aktiverte hendelser" - events: Hendelser - new: Ny webhook - rotate_secret: Roter hemmelighet - secret: Hemmelighet for signering + other: "%{count} aktiverte hendingar" + events: Hendingar + new: Ny vevkopling + rotate_secret: Roter løyndomen + secret: Signeringsrløyndom status: Status - title: Webhooker - webhook: Webhook + title: Vevkoplingar + webhook: Vevkopling admin_mailer: auto_close_registrations: body: På grunn av mangel på nyleg moderatoraktivitet, er registreringar på %{instance} automatisk bytt til å krevje manuell gjennomgang, for å hindre at %{instance} vert brukt som ein plattform for potensielle dårlege aktørar. Du kan byte tilbake for å opne registreringar når som helst. @@ -1260,7 +1260,7 @@ nn: invited_by: 'Du kan bli med i %{domain} takka vere invitasjonen du har fått frå:' preamble: Disse angis og håndheves av %{domain}-moderatorene. preamble_invited: Før du held fram, ver snill og sjå gjennom reglane bestemt av moderatorane av %{domain}. - title: Noen grunnregler. + title: Nokre grunnreglar. title_invited: Du har blitt invitert. security: Tryggleik set_new_password: Lag nytt passord @@ -1554,7 +1554,7 @@ nn: muting: Importerer dempa brukarkontoar type: Type import type_groups: - constructive: Fylgjer og bokmerke + constructive: Fylgje og bokmerke destructive: Blokkeringar og dempingar types: blocking: Blokkeringsliste @@ -1789,7 +1789,7 @@ nn: missing_resource: Kunne ikke finne URLen for din konto reports: errors: - invalid_rules: refererer ikke til gyldige regler + invalid_rules: viser ikkje til gyldige reglar rss: content_warning: 'Innhaldsvarsel:' descriptions: @@ -1866,7 +1866,7 @@ nn: notifications: Epostvarsel preferences: Innstillingar profile: Profil - relationships: Fylgjar og fylgjarar + relationships: Fylgje og fylgjarar severed_relationships: Brotne forhold statuses_cleanup: Automatisert sletting av innlegg strikes: Modereringsadvarsler diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml index a943c6ee1d6b35..4e2ff0bf0af9f1 100644 --- a/config/locales/simple_form.eo.yml +++ b/config/locales/simple_form.eo.yml @@ -56,6 +56,8 @@ eo: scopes: Kiujn API-ojn la aplikaĵo permesiĝos atingi. Se vi elektas supran amplekson, vi ne bezonas elekti la individuajn. setting_aggregate_reblogs: Ne montri novajn plusendojn de mesaĝoj lastatempe plusenditaj (nur efikas al nove ricevitaj plusendoj) setting_always_send_emails: Normale, la sciigoj per retpoŝto ne estos senditaj kiam vi uzas Mastodon aktive + setting_default_quote_policy_private: Afiŝoj nur por sekvantoj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj. + setting_default_quote_policy_unlisted: Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj. setting_default_sensitive: La tiklaj vidaŭdaĵoj estas implicite kaŝitaj kaj povas esti malkaŝitaj per alklako setting_display_media_default: Kaŝi plurmediojn markitajn kiel tiklaj setting_display_media_hide_all: Ĉiam kaŝi la vidaŭdaĵojn diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 0c6487e872afac..2464955a43e5be 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -56,10 +56,13 @@ gd: scopes: Na APIan a dh’fhaodas an aplacaid inntrigeadh. Ma thaghas tu sgòp air ìre as àirde, cha leig thu leas sgòpaichean fa leth a thaghadh. setting_aggregate_reblogs: Na seall brosnachaidhean ùra do phostaichean a chaidh a bhrosnachadh o chionn goirid (cha doir seo buaidh ach air brosnachaidhean ùra o seo a-mach) setting_always_send_emails: Mar as àbhaist, cha dèid brathan puist-d a chur nuair a a bhios tu ri Mastodon gu cunbhalach + setting_default_quote_policy_private: Chan urrainn do chàch postaichean dhan luchd-leantainn a-mhàin a chaidh a sgrìobhadh le Mastodon a luaidh. + setting_default_quote_policy_unlisted: Nuair a luaidheas daoine thu, thèid am post aca-san fhalach o loidhnichean-ama nan treandaichean. setting_default_sensitive: Thèid meadhanan frionasach fhalach a ghnàth is gabhaidh an nochdadh le briogadh orra setting_display_media_default: Falaich meadhanan ris a bheil comharra gu bheil iad frionasach setting_display_media_hide_all: Falaich na meadhanan an-còmhnaidh setting_display_media_show_all: Seall na meadhanan an-còmhnaidh + setting_emoji_style: An dòigh air an dèid emojis a shealltainn. Feuchaidh “Fèin-obrachail” ris na h-emojis tùsail a chleachdadh ach thèid Twemoji a chleachdadh ’nan àite air seann-bhrabhsairean. setting_system_scrollbars_ui: Chan obraich seo ach air brabhsairean desktop stèidhichte air Safari ’s Chrome setting_use_blurhash: Tha caiseadan stèidhichte air dathan nan nithean lèirsinneach a chaidh fhalach ach chan fhaicear am mion-fhiosrachadh setting_use_pending_items: Falaich ùrachaidhean na loidhne-ama air cùlaibh briogaidh seach a bhith a’ sgroladh nam postaichean gu fèin-obrachail @@ -148,6 +151,11 @@ gd: min_age: Cha bu chòir seo a bhith fon aois as lugha a dh’iarras laghain an t-uachdranais laghail agad. user: chosen_languages: Nuair a bhios cromag ris, cha nochd ach postaichean sna cànain a thagh thu air loidhnichean-ama poblach + date_of_birth: + few: Feumaidh sinn dèanamh cinnteach gu bheil thu %{count} bliadhnaichean a dh’aois air a char as lugha mus cleachd thu %{domain}. Cha chlàraich sinn seo. + one: Feumaidh sinn dèanamh cinnteach gu bheil thu %{count} bhliadhna a dh’aois air a char as lugha mus cleachd thu %{domain}. Cha chlàraich sinn seo. + other: Feumaidh sinn dèanamh cinnteach gu bheil thu %{count} bliadhna a dh’aois air a char as lugha mus cleachd thu %{domain}. Cha chlàraich sinn seo. + two: Feumaidh sinn dèanamh cinnteach gu bheil thu %{count} bhliadhna a dh’aois air a char as lugha mus cleachd thu %{domain}. Cha chlàraich sinn seo. role: Stiùiridh an dreuchd dè na ceadan a bhios aig cleachdaiche. user_role: color: An datha a bhios air an dreuchd air feadh na h-eadar-aghaidh, ’na RGB san fhòrmat sia-dheicheach @@ -155,6 +163,9 @@ gd: name: Ainm poblach na dreuchd ma chaidh a suidheachadh gun nochd i na baidse permissions_as_keys: Gheibh na cleachdaichean aig a bheil an dreuchd seo inntrigeadh dha… position: Ma tha còmhstri ann, buannaichidh an dreuchd as àirde ann an cuid a shuidheachaidhean. Tha gnìomhan sònraichte ann nach urrainn ach dreuchdan le prìomhachas ìosail a ghabhail + username_block: + allow_with_approval: An àite bacadh clàraidh gu tur, bidh clàraidhean a mhaidsicheas feumach air d’ aonta + comparison: Thoir an aire air an Scunthorpe Problem nuair a bhacas tu maidsichean pàirteach webhook: events: Tagh na tachartasan a thèid a chur template: Cruthaich an JSON payload agad fhèin le eadar-phòlachadh chaochladairean. Fàg seo bàn airson JSON bunaiteach fhaighinn. @@ -227,6 +238,7 @@ gd: setting_auto_play_gif: Cluich GIFs beòthaichte gu fèin-obrachail setting_boost_modal: Seall còmhradh dearbhaidh mus dèan thu brosnachadh setting_default_language: Cànan postaidh + setting_default_privacy: Faicsinneachd nam post setting_default_quote_policy: Cò dh’fhaodas luaidh setting_default_sensitive: Cuir comharra ri meadhanan an-còmhnaidh gu bheil iad frionasach setting_delete_modal: Seall còmhradh dearbhaidh mus sguab thu às post @@ -236,6 +248,7 @@ gd: setting_display_media_default: Bun-roghainn setting_display_media_hide_all: Falaich na h-uile setting_display_media_show_all: Seall na h-uile + setting_emoji_style: Stoidhle nan Emojis setting_expand_spoilers: Leudaich postaichean ris a bheil rabhadh susbainte an-còmhnaidh setting_hide_network: Falaich an graf sòisealta agad setting_missing_alt_text_modal: Faic còmhradh dearbhaidh mus postaich thu meadhan às aonais roghainn teacsa @@ -318,6 +331,7 @@ gd: follow_request: Dh’iarr cuideigin ’gad leantainn mention: Thug cuideigin iomradh ort pending_account: Tha cunntas ùr feumach air lèirmheas + quote: Luaidh cuideigin thu reblog: Bhrosnaich cuideigin am post agad report: Chaidh gearan ùr a chur a-null software_updates: @@ -364,6 +378,10 @@ gd: name: Ainm permissions_as_keys: Ceadan position: Prìomhachas + username_block: + allow_with_approval: Ceadaich clàradh le aontachadh + comparison: Dòigh a’ choimheis + username: Am facal ri mhaidseadh webhook: events: Na tachartas an comas template: Teamplaid payload diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index db3f9edcb021d4..16fb62a11ea29a 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -236,7 +236,7 @@ nl: setting_always_send_emails: Altijd e-mailmeldingen verzenden setting_auto_play_gif: Geanimeerde GIF's automatisch afspelen setting_boost_modal: Vraag voor het boosten van een bericht een bevestiging - setting_default_language: Taal van jouw berichten + setting_default_language: Taal van berichten setting_default_privacy: Zichtbaarheid van nieuwe berichten setting_default_quote_policy: Wie mag jou citeren setting_default_sensitive: Media altijd als gevoelig markeren diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml index d7aa7ad4193405..ad9cda9d340c97 100644 --- a/config/locales/simple_form.nn.yml +++ b/config/locales/simple_form.nn.yml @@ -337,12 +337,12 @@ nn: all: Varsle om alle oppdateringar critical: Varsle kun om kristiske oppdateringar label: Ein ny versjon av Mastodon er tilgjengeleg - none: Aldri varsle om oppdateringar (ikkje anbefalt) + none: Aldri varsle om oppdateringar (ikkje tilrådd) patch: Varsle om feilrettingsoppdateringar trending_tag: Ny trend krev gjennomgang rule: hint: Meir informasjon - text: Regler + text: Regel settings: indexable: Ta med profilsida i søkjemotorar show_application: Vis kva app du brukte når du skreiv innlegg @@ -386,7 +386,7 @@ nn: template: Nyttelastmal url: Endepunkts-URL 'no': Nei - not_recommended: Ikkje anbefalt + not_recommended: Ikkje tilrådd overridden: Overstyrt recommended: Tilrådt required: From b6bc42aaa698587a94da1ecaf176bef941196bfb Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 19 Sep 2025 10:45:13 +0200 Subject: [PATCH 73/81] Fix getting `Create` and `Update` out of order (#36176) --- app/lib/activitypub/activity/update.rb | 3 + spec/lib/activitypub/activity_spec.rb | 111 +++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 spec/lib/activitypub/activity_spec.rb diff --git a/app/lib/activitypub/activity/update.rb b/app/lib/activitypub/activity/update.rb index 973706f5957904..15025ca5e71f95 100644 --- a/app/lib/activitypub/activity/update.rb +++ b/app/lib/activitypub/activity/update.rb @@ -28,6 +28,9 @@ def update_status @status = Status.find_by(uri: object_uri, account_id: @account.id) + # We may be getting `Create` and `Update` out of order + @status ||= ActivityPub::Activity::Create.new(@json, @account, **@options).perform + return if @status.nil? ActivityPub::ProcessStatusUpdateService.new.call(@status, @json, @object, request_id: @options[:request_id]) diff --git a/spec/lib/activitypub/activity_spec.rb b/spec/lib/activitypub/activity_spec.rb new file mode 100644 index 00000000000000..218da04d9b5e7a --- /dev/null +++ b/spec/lib/activitypub/activity_spec.rb @@ -0,0 +1,111 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe ActivityPub::Activity do + describe 'processing a Create and an Update' do + let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers', domain: 'example.com', uri: 'https://example.com/actor') } + let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } + let(:quoted_status) { Fabricate(:status, account: quoted_account) } + let(:approval_uri) { 'https://quoted.example.com/approvals/1' } + + let(:approval_payload) do + { + '@context': [ + 'https://www.w3.org/ns/activitystreams', + { + QuoteAuthorization: 'https://w3id.org/fep/044f#QuoteAuthorization', + gts: 'https://gotosocial.org/ns#', + interactingObject: { + '@id': 'gts:interactingObject', + '@type': '@id', + }, + interactionTarget: { + '@id': 'gts:interactionTarget', + '@type': '@id', + }, + }, + ], + type: 'QuoteAuthorization', + id: approval_uri, + attributedTo: ActivityPub::TagManager.instance.uri_for(quoted_status.account), + interactingObject: [ActivityPub::TagManager.instance.uri_for(sender), 'post1'].join('/'), + interactionTarget: ActivityPub::TagManager.instance.uri_for(quoted_status), + } + end + + let(:create_json) do + { + '@context': [ + 'https://www.w3.org/ns/activitystreams', + { + quote: 'https://w3id.org/fep/044f#quote', + }, + ], + id: [ActivityPub::TagManager.instance.uri_for(sender), '#create'].join, + type: 'Create', + actor: ActivityPub::TagManager.instance.uri_for(sender), + object: { + id: [ActivityPub::TagManager.instance.uri_for(sender), 'post1'].join('/'), + type: 'Note', + to: [ + 'https://www.w3.org/ns/activitystreams#Public', + ], + content: 'foo', + published: '2025-05-24T11:03:10Z', + quote: ActivityPub::TagManager.instance.uri_for(quoted_status), + }, + }.deep_stringify_keys + end + + let(:update_json) do + { + '@context': [ + 'https://www.w3.org/ns/activitystreams', + { + quote: 'https://w3id.org/fep/044f#quote', + quoteAuthorization: { '@id': 'https://w3id.org/fep/044f#quoteAuthorization', '@type': '@id' }, + }, + ], + id: [ActivityPub::TagManager.instance.uri_for(sender), '#update'].join, + type: 'Update', + actor: ActivityPub::TagManager.instance.uri_for(sender), + object: { + id: [ActivityPub::TagManager.instance.uri_for(sender), 'post1'].join('/'), + type: 'Note', + to: [ + 'https://www.w3.org/ns/activitystreams#Public', + ], + content: 'foo', + published: '2025-05-24T11:03:10Z', + quote: ActivityPub::TagManager.instance.uri_for(quoted_status), + quoteAuthorization: approval_uri, + }, + }.deep_stringify_keys + end + + before do + sender.update(uri: ActivityPub::TagManager.instance.uri_for(sender)) + + stub_request(:get, approval_uri).to_return(headers: { 'Content-Type': 'application/activity+json' }, body: Oj.dump(approval_payload)) + end + + context 'when getting them in order' do + it 'creates a status and approves the quote' do + described_class.factory(create_json, sender).perform + status = described_class.factory(update_json, sender).perform + + expect(status.quote.state).to eq 'accepted' + end + end + + context 'when getting them out of order' do + it 'creates a status and approves the quote' do + described_class.factory(update_json, sender).perform + status = described_class.factory(create_json, sender).perform + + expect(status.quote.state).to eq 'accepted' + end + end + end +end From a0a56a4c7b43987a2cebfd56ea77773806723655 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 19 Sep 2025 11:52:17 +0200 Subject: [PATCH 74/81] Fix processing of out-of-order `Update` as implicit updates (#36190) --- app/services/activitypub/process_status_update_service.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/services/activitypub/process_status_update_service.rb b/app/services/activitypub/process_status_update_service.rb index d6bbb451978ded..66c8da2b604df9 100644 --- a/app/services/activitypub/process_status_update_service.rb +++ b/app/services/activitypub/process_status_update_service.rb @@ -25,6 +25,9 @@ def call(status, activity_json, object_json, request_id: nil) if @status_parser.edited_at.present? && (@status.edited_at.nil? || @status_parser.edited_at > @status.edited_at) handle_explicit_update! + elsif @status.edited_at.present? && (@status_parser.edited_at.nil? || @status_parser.edited_at < @status.edited_at) + # This is an older update, reject it + return @status else handle_implicit_update! end From 938b54dff0628992fe12ff3bd0ba9d2abbec8616 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 19 Sep 2025 12:02:46 +0200 Subject: [PATCH 75/81] Switch stoplight back to upstream releases (#36188) --- Gemfile | 2 +- Gemfile.lock | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index b80621bf9ded48..b6ecb0126d8f54 100644 --- a/Gemfile +++ b/Gemfile @@ -88,7 +88,7 @@ gem 'sidekiq-scheduler', '~> 6.0' gem 'sidekiq-unique-jobs', '> 8' gem 'simple_form', '~> 5.2' gem 'simple-navigation', '~> 4.4' -gem 'stoplight', github: 'ClearlyClaire/stoplight', ref: 'f13e0c0d5e6d34af8d3cfc888871caa84237db42' +gem 'stoplight' gem 'strong_migrations' gem 'tty-prompt', '~> 0.23', require: false gem 'twitter-text', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 563d876ff9232a..761dcfc751e1ff 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,3 @@ -GIT - remote: https://github.com/ClearlyClaire/stoplight.git - revision: f13e0c0d5e6d34af8d3cfc888871caa84237db42 - ref: f13e0c0d5e6d34af8d3cfc888871caa84237db42 - specs: - stoplight (5.3.1) - zeitwerk - GIT remote: https://github.com/mastodon/webpush.git revision: 9631ac63045cfabddacc69fc06e919b4c13eb913 @@ -861,6 +853,8 @@ GEM stackprof (0.2.27) starry (0.2.0) base64 + stoplight (5.3.5) + zeitwerk stringio (3.1.7) strong_migrations (2.5.0) activerecord (>= 7.1) @@ -1092,7 +1086,7 @@ DEPENDENCIES simplecov (~> 0.22) simplecov-lcov (~> 0.8) stackprof - stoplight! + stoplight strong_migrations test-prof thor (~> 1.2) From 4ff215f19bc33945d77b65529e0f5053127cb331 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 19 Sep 2025 14:19:10 +0200 Subject: [PATCH 76/81] Update dependency `rexml` (#36192) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 761dcfc751e1ff..c3af4d7c62ca96 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -727,7 +727,7 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.4.1) + rexml (3.4.4) rotp (6.3.0) rouge (4.6.0) rpam2 (4.0.2) From ea7371c18368ebdaab94bbc8365be2274e84e9d1 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 19 Sep 2025 14:55:30 +0200 Subject: [PATCH 77/81] Return 404 for quote approval when either quoted or quoting status is deleted (#36194) --- app/controllers/activitypub/quote_authorizations_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/activitypub/quote_authorizations_controller.rb b/app/controllers/activitypub/quote_authorizations_controller.rb index 274afb929a16ed..f2f5313e1ad3c6 100644 --- a/app/controllers/activitypub/quote_authorizations_controller.rb +++ b/app/controllers/activitypub/quote_authorizations_controller.rb @@ -21,6 +21,8 @@ def pundit_user def set_quote_authorization @quote = Quote.accepted.where(quoted_account: @account).find(params[:id]) + return not_found unless @quote.status.present? && @quote.quoted_status.present? + authorize @quote.status, :show? rescue Mastodon::NotPermittedError not_found From f316cd51c8034f2755cab12ec780bbf5228a7a87 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Fri, 19 Sep 2025 15:14:24 +0200 Subject: [PATCH 78/81] Enable GH actions scanning with CodeQL (#36193) --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 8690e9ed6d1639..c864e12d2d8c09 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -25,8 +25,8 @@ jobs: strategy: fail-fast: false matrix: - language: ['javascript', 'ruby'] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + language: ['actions', 'javascript', 'ruby'] + # CodeQL supports [ 'actions', 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support steps: From 854aaec6fe69df02e6d850cb90eef37032b4d72f Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 19 Sep 2025 11:22:23 -0400 Subject: [PATCH 79/81] Spec for newline in request lib initialize (#36170) --- spec/lib/request_spec.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb index 79c400e098e489..da6182345502ce 100644 --- a/spec/lib/request_spec.rb +++ b/spec/lib/request_spec.rb @@ -40,6 +40,23 @@ end end + describe '#initialize' do + subject { described_class.new(:get, url) } + + context 'when URL has new lines' do + let(:url) { "https://host.example/image\nhttps://badhost.example/page.jpg" } + + it 'encodes new lines in url value after normalization' do + expect(initialized_url_value) + .to eq('https://host.example/image%0Ahttps://badhost.example/page.jpg') + end + end + + def initialized_url_value + subject.instance_variable_get(:@url).to_s + end + end + describe '#perform' do context 'with valid host and non-persistent connection' do before { stub_request(:get, 'http://example.com').to_return(body: 'lorem ipsum') } From f82c7f9ce1ef926e0e852ae66616bcb082845983 Mon Sep 17 00:00:00 2001 From: "KMY (Yuki Asuka)" Date: Sat, 20 Sep 2025 12:34:20 +0000 Subject: [PATCH 80/81] Fix test --- spec/lib/activitypub/activity/update_spec.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb index 6f326ded0178ee..2798219716a9f7 100644 --- a/spec/lib/activitypub/activity/update_spec.rb +++ b/spec/lib/activitypub/activity/update_spec.rb @@ -138,9 +138,10 @@ subject.perform end - it 'does not create a new status', :inline_jobs do + it 'creates a new status', :inline_jobs do status = Status.find_by(uri: 'https://example.com/note') - expect(status).to be_nil + expect(status).to_not be_nil + expect(status.text).to eq 'Ohagi is tsubuan' end end From 835413d9a41f6cc6292aad8d552d176d616b59f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?KMY=EF=BC=88=E9=9B=AA=E3=81=82=E3=81=99=E3=81=8B=EF=BC=89?= Date: Mon, 22 Sep 2025 14:29:31 +0900 Subject: [PATCH 81/81] Fix reference link --- .../mastodon/components/status/boost_button_utils.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/status/boost_button_utils.ts b/app/javascript/mastodon/components/status/boost_button_utils.ts index 692381feec2ccb..fd8ef99cd2a5b0 100644 --- a/app/javascript/mastodon/components/status/boost_button_utils.ts +++ b/app/javascript/mastodon/components/status/boost_button_utils.ts @@ -6,6 +6,7 @@ import type { Status, StatusVisibility } from '@/mastodon/models/status'; import { createAppSelector } from '@/mastodon/store'; import FormatQuote from '@/material-icons/400-24px/format_quote-fill.svg?react'; import FormatQuoteOff from '@/material-icons/400-24px/format_quote_off-fill.svg?react'; +import ReferenceIcon from '@/material-icons/400-24px/link.svg?react'; import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react'; import RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react'; import RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react'; @@ -195,8 +196,8 @@ export function referenceItemState({ isStatusReferenceAvailableServer, }: StatusState): MenuItemState { const iconText: MenuItemState = { - title: messages.quote, - iconComponent: FormatQuote, + title: messages.reference_link, + iconComponent: ReferenceIcon, }; if (!isPublic) {