From ff6d2ec34306462e3c548ca92df5992887a9d7fa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2024 15:38:05 +0000 Subject: [PATCH 001/306] fix(deps): update dependency pino to v9.3.2 (#31148) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9aca26545b..c62945dd97 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13197,15 +13197,15 @@ __metadata: linkType: hard "pino@npm:^9.0.0": - version: 9.3.1 - resolution: "pino@npm:9.3.1" + version: 9.3.2 + resolution: "pino@npm:9.3.2" dependencies: atomic-sleep: "npm:^1.0.0" fast-redact: "npm:^3.1.1" on-exit-leak-free: "npm:^2.1.0" pino-abstract-transport: "npm:^1.2.0" pino-std-serializers: "npm:^7.0.0" - process-warning: "npm:^3.0.0" + process-warning: "npm:^4.0.0" quick-format-unescaped: "npm:^4.0.3" real-require: "npm:^0.2.0" safe-stable-stringify: "npm:^2.3.1" @@ -13213,7 +13213,7 @@ __metadata: thread-stream: "npm:^3.0.0" bin: pino: bin.js - checksum: 10c0/ab1e81b3e5a91852136d80a592939883eeb81442e5d3a2c070bdbdeb47c5aaa297ead246530b10eb6d5ff59445f4645d1333d342f255d9f002f73aea843e74ee + checksum: 10c0/698eb2ebfcc4252da9d035fcf9c999bf27615b66ebc47f9b3d7e942750e50ebe38429e6457abcf8014d70125964ddf114e696cb8225b480d9930271708e3fb52 languageName: node linkType: hard @@ -14188,6 +14188,13 @@ __metadata: languageName: node linkType: hard +"process-warning@npm:^4.0.0": + version: 4.0.0 + resolution: "process-warning@npm:4.0.0" + checksum: 10c0/5312a72b69d37a1b82ad03f3dfa0090dab3804a8fd995d06c28e3c002852bd82f5584217d9f4a3f197892bb2afc22d57e2c662c7e906b5abb48c0380c7b0880d + languageName: node + linkType: hard + "process@npm:^0.11.10": version: 0.11.10 resolution: "process@npm:0.11.10" From 8818748b9023acd84f42bf887e361d9244521df4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 25 Jul 2024 19:05:54 +0200 Subject: [PATCH 002/306] Change design of confirmation modals in web UI (#30884) Co-authored-by: Renaud Chaput --- app/javascript/mastodon/components/domain.tsx | 14 +-- .../mastodon/components/follow_button.tsx | 29 ++----- .../mastodon/containers/account_container.jsx | 21 ++--- .../mastodon/containers/domain_container.jsx | 36 -------- .../mastodon/containers/status_container.jsx | 42 ++------- .../containers/header_container.jsx | 19 +--- .../compose/components/action_bar.jsx | 15 +--- .../mastodon/features/compose/index.jsx | 15 +--- .../components/conversation.jsx | 13 +-- .../directory/components/account_card.tsx | 52 ++--------- .../mastodon/features/domain_blocks/index.jsx | 5 +- .../mastodon/features/list_timeline/index.jsx | 23 +---- .../containers/column_settings_container.js | 16 +--- .../picture_in_picture/components/footer.jsx | 14 +-- .../containers/detailed_status_container.js | 31 +------ .../mastodon/features/status/index.jsx | 37 +++----- .../ui/components/confirmation_modal.jsx | 65 -------------- .../clear_notifications.tsx | 46 ++++++++++ .../confirmation_modal.tsx | 79 +++++++++++++++++ .../confirmation_modals/delete_list.tsx | 58 +++++++++++++ .../confirmation_modals/delete_status.tsx | 67 +++++++++++++++ .../confirmation_modals/edit_status.tsx | 45 ++++++++++ .../components/confirmation_modals/index.ts | 8 ++ .../confirmation_modals/log_out.tsx | 40 +++++++++ .../components/confirmation_modals/reply.tsx | 46 ++++++++++ .../confirmation_modals/unfollow.tsx | 50 +++++++++++ .../ui/components/disabled_account_banner.jsx | 20 +---- .../features/ui/components/link_footer.jsx | 21 +---- .../features/ui/components/modal_root.jsx | 18 +++- app/javascript/mastodon/locales/en.json | 12 ++- .../styles/mastodon/components.scss | 86 +++++-------------- 31 files changed, 554 insertions(+), 489 deletions(-) delete mode 100644 app/javascript/mastodon/containers/domain_container.jsx delete mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modal.jsx create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/clear_notifications.tsx create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/delete_list.tsx create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/delete_status.tsx create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/unfollow.tsx diff --git a/app/javascript/mastodon/components/domain.tsx b/app/javascript/mastodon/components/domain.tsx index ed5e8e7e4c..aa64f0f8c3 100644 --- a/app/javascript/mastodon/components/domain.tsx +++ b/app/javascript/mastodon/components/domain.tsx @@ -3,6 +3,8 @@ import { useCallback } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import LockOpenIcon from '@/material-icons/400-24px/lock_open.svg?react'; +import { unblockDomain } from 'mastodon/actions/domain_blocks'; +import { useAppDispatch } from 'mastodon/store'; import { IconButton } from './icon_button'; @@ -13,17 +15,15 @@ const messages = defineMessages({ }, }); -interface Props { +export const Domain: React.FC<{ domain: string; - onUnblockDomain: (domain: string) => void; -} - -export const Domain: React.FC = ({ domain, onUnblockDomain }) => { +}> = ({ domain }) => { const intl = useIntl(); + const dispatch = useAppDispatch(); const handleDomainUnblock = useCallback(() => { - onUnblockDomain(domain); - }, [domain, onUnblockDomain]); + dispatch(unblockDomain(domain)); + }, [dispatch, domain]); return (
diff --git a/app/javascript/mastodon/components/follow_button.tsx b/app/javascript/mastodon/components/follow_button.tsx index ecc4e1ee17..222789318e 100644 --- a/app/javascript/mastodon/components/follow_button.tsx +++ b/app/javascript/mastodon/components/follow_button.tsx @@ -1,13 +1,9 @@ import { useCallback, useEffect } from 'react'; -import { useIntl, defineMessages, FormattedMessage } from 'react-intl'; +import { useIntl, defineMessages } from 'react-intl'; import { useIdentity } from '@/mastodon/identity_context'; -import { - fetchRelationships, - followAccount, - unfollowAccount, -} from 'mastodon/actions/accounts'; +import { fetchRelationships, followAccount } from 'mastodon/actions/accounts'; import { openModal } from 'mastodon/actions/modal'; import { Button } from 'mastodon/components/button'; import { LoadingIndicator } from 'mastodon/components/loading_indicator'; @@ -60,29 +56,14 @@ export const FollowButton: React.FC<{ if (accountId === me) { return; - } else if (relationship.following || relationship.requested) { + } else if (account && (relationship.following || relationship.requested)) { dispatch( - openModal({ - modalType: 'CONFIRM', - modalProps: { - message: ( - @{account?.acct} }} - /> - ), - confirm: intl.formatMessage(messages.unfollow), - onConfirm: () => { - dispatch(unfollowAccount(accountId)); - }, - }, - }), + openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } }), ); } else { dispatch(followAccount(accountId)); } - }, [dispatch, intl, accountId, relationship, account, signedIn]); + }, [dispatch, accountId, relationship, account, signedIn]); let label; diff --git a/app/javascript/mastodon/containers/account_container.jsx b/app/javascript/mastodon/containers/account_container.jsx index f171fcc2fe..d34962fa4a 100644 --- a/app/javascript/mastodon/containers/account_container.jsx +++ b/app/javascript/mastodon/containers/account_container.jsx @@ -1,24 +1,20 @@ -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; +import { openModal } from 'mastodon/actions/modal'; + import { followAccount, - unfollowAccount, blockAccount, unblockAccount, muteAccount, unmuteAccount, } from '../actions/accounts'; -import { openModal } from '../actions/modal'; import { initMuteModal } from '../actions/mutes'; import Account from '../components/account'; import { makeGetAccount } from '../selectors'; -const messages = defineMessages({ - unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, -}); - const makeMapStateToProps = () => { const getAccount = makeGetAccount(); @@ -29,18 +25,11 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onFollow (account) { if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: @{account.get('acct')} }} />, - confirm: intl.formatMessage(messages.unfollowConfirm), - onConfirm: () => dispatch(unfollowAccount(account.get('id'))), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } })); } else { dispatch(followAccount(account.get('id'))); } diff --git a/app/javascript/mastodon/containers/domain_container.jsx b/app/javascript/mastodon/containers/domain_container.jsx deleted file mode 100644 index c719a5775c..0000000000 --- a/app/javascript/mastodon/containers/domain_container.jsx +++ /dev/null @@ -1,36 +0,0 @@ -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; - -import { connect } from 'react-redux'; - -import { blockDomain, unblockDomain } from '../actions/domain_blocks'; -import { openModal } from '../actions/modal'; -import { Domain } from '../components/domain'; - -const messages = defineMessages({ - blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' }, -}); - -const makeMapStateToProps = () => { - const mapStateToProps = () => ({}); - - return mapStateToProps; -}; - -const mapDispatchToProps = (dispatch, { intl }) => ({ - onBlockDomain (domain) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: {domain} }} />, - confirm: intl.formatMessage(messages.blockDomainConfirm), - onConfirm: () => dispatch(blockDomain(domain)), - }, - })); - }, - - onUnblockDomain (domain) { - dispatch(unblockDomain(domain)); - }, -}); - -export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Domain)); diff --git a/app/javascript/mastodon/containers/status_container.jsx b/app/javascript/mastodon/containers/status_container.jsx index c803822dc0..58c5aac8f8 100644 --- a/app/javascript/mastodon/containers/status_container.jsx +++ b/app/javascript/mastodon/containers/status_container.jsx @@ -1,4 +1,4 @@ -import { defineMessages, injectIntl } from 'react-intl'; +import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; @@ -46,18 +46,6 @@ import Status from '../components/status'; import { deleteModal } from '../initial_state'; import { makeGetStatus, makeGetPictureInPicture } from '../selectors'; -const messages = defineMessages({ - deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, - deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' }, - redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' }, - redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, - editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' }, - editMessage: { id: 'confirmations.edit.message', defaultMessage: 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, - blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' }, -}); - const makeMapStateToProps = () => { const getStatus = makeGetStatus(); const getPictureInPicture = makeGetPictureInPicture(); @@ -71,20 +59,14 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ +const mapDispatchToProps = (dispatch, { contextType }) => ({ onReply (status) { dispatch((_, getState) => { let state = getState(); if (state.getIn(['compose', 'text']).trim().length !== 0) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: () => dispatch(replyCompose(status)) }, - })); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } })); } else { dispatch(replyCompose(status)); } @@ -129,14 +111,7 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ if (!deleteModal) { dispatch(deleteStatus(status.get('id'), withRedraft)); } else { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage), - confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm), - onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } })); } }, @@ -144,14 +119,7 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ dispatch((_, getState) => { let state = getState(); if (state.getIn(['compose', 'text']).trim().length !== 0) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.editMessage), - confirm: intl.formatMessage(messages.editConfirm), - onConfirm: () => dispatch(editStatus(status.get('id'))), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_EDIT_STATUS', modalProps: { statusId: status.get('id') } })); } else { dispatch(editStatus(status.get('id'))); } diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx index 90298879d7..8df06bd920 100644 --- a/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx +++ b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx @@ -1,4 +1,4 @@ -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; @@ -6,7 +6,6 @@ import { openURL } from 'mastodon/actions/search'; import { followAccount, - unfollowAccount, unblockAccount, unmuteAccount, pinAccount, @@ -24,11 +23,6 @@ import { initReport } from '../../../actions/reports'; import { makeGetAccount, getAccountHidden } from '../../../selectors'; import Header from '../components/header'; -const messages = defineMessages({ - unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, - blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' }, -}); - const makeMapStateToProps = () => { const getAccount = makeGetAccount(); @@ -41,18 +35,11 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onFollow (account) { if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: @{account.get('acct')} }} />, - confirm: intl.formatMessage(messages.unfollowConfirm), - onConfirm: () => dispatch(unfollowAccount(account.get('id'))), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } })); } else { dispatch(followAccount(account.get('id'))); } diff --git a/app/javascript/mastodon/features/compose/components/action_bar.jsx b/app/javascript/mastodon/features/compose/components/action_bar.jsx index be52eac11e..6c2f27b01b 100644 --- a/app/javascript/mastodon/features/compose/components/action_bar.jsx +++ b/app/javascript/mastodon/features/compose/components/action_bar.jsx @@ -7,7 +7,6 @@ import { useDispatch } from 'react-redux'; import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react'; import { openModal } from 'mastodon/actions/modal'; import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container'; -import { logOut } from 'mastodon/utils/log_out'; const messages = defineMessages({ edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, @@ -23,8 +22,6 @@ const messages = defineMessages({ filters: { id: 'navigation_bar.filters', defaultMessage: 'Muted words' }, logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' }, bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' }, - logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, - logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, }); export const ActionBar = () => { @@ -32,16 +29,8 @@ export const ActionBar = () => { const intl = useIntl(); const handleLogoutClick = useCallback(() => { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.logoutMessage), - confirm: intl.formatMessage(messages.logoutConfirm), - closeWhenConfirm: false, - onConfirm: () => logOut(), - }, - })); - }, [dispatch, intl]); + dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' })); + }, [dispatch]); let menu = []; diff --git a/app/javascript/mastodon/features/compose/index.jsx b/app/javascript/mastodon/features/compose/index.jsx index 83c741fd19..3a96ab49c3 100644 --- a/app/javascript/mastodon/features/compose/index.jsx +++ b/app/javascript/mastodon/features/compose/index.jsx @@ -21,7 +21,6 @@ import SettingsIcon from '@/material-icons/400-24px/settings-fill.svg?react'; import { openModal } from 'mastodon/actions/modal'; import Column from 'mastodon/components/column'; import { Icon } from 'mastodon/components/icon'; -import { logOut } from 'mastodon/utils/log_out'; import elephantUIPlane from '../../../images/elephant_ui_plane.svg'; import { changeComposing, mountCompose, unmountCompose } from '../../actions/compose'; @@ -42,8 +41,6 @@ const messages = defineMessages({ preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' }, compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new post' }, - logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, - logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, }); const mapStateToProps = (state, ownProps) => ({ @@ -72,20 +69,12 @@ class Compose extends PureComponent { } handleLogoutClick = e => { - const { dispatch, intl } = this.props; + const { dispatch } = this.props; e.preventDefault(); e.stopPropagation(); - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.logoutMessage), - confirm: intl.formatMessage(messages.logoutConfirm), - closeWhenConfirm: false, - onConfirm: () => logOut(), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' })); return false; }; diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx index 326ea3e5ac..6588c8b763 100644 --- a/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx +++ b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx @@ -36,8 +36,6 @@ const messages = defineMessages({ delete: { id: 'conversation.delete', defaultMessage: 'Delete conversation' }, muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute conversation' }, unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, }); const getAccounts = createSelector( @@ -103,19 +101,12 @@ export const Conversation = ({ conversation, scrollKey, onMoveUp, onMoveDown }) let state = getState(); if (state.getIn(['compose', 'text']).trim().length !== 0) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: () => dispatch(replyCompose(lastStatus)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status: lastStatus } })); } else { dispatch(replyCompose(lastStatus)); } }); - }, [dispatch, lastStatus, intl]); + }, [dispatch, lastStatus]); const handleDelete = useCallback(() => { dispatch(deleteConversation(id)); diff --git a/app/javascript/mastodon/features/directory/components/account_card.tsx b/app/javascript/mastodon/features/directory/components/account_card.tsx index 7201f6135b..2a0470bb72 100644 --- a/app/javascript/mastodon/features/directory/components/account_card.tsx +++ b/app/javascript/mastodon/features/directory/components/account_card.tsx @@ -8,7 +8,6 @@ import { Link } from 'react-router-dom'; import { followAccount, - unfollowAccount, unblockAccount, unmuteAccount, } from 'mastodon/actions/accounts'; @@ -29,20 +28,12 @@ const messages = defineMessages({ id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request', }, - cancelFollowRequestConfirm: { - id: 'confirmations.cancel_follow_request.confirm', - defaultMessage: 'Withdraw request', - }, requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request', }, unblock: { id: 'account.unblock_short', defaultMessage: 'Unblock' }, unmute: { id: 'account.unmute_short', defaultMessage: 'Unmute' }, - unfollowConfirm: { - id: 'confirmations.unfollow.confirm', - defaultMessage: 'Unfollow', - }, edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, }); @@ -89,48 +80,17 @@ export const AccountCard: React.FC<{ accountId: string }> = ({ accountId }) => { const handleFollow = useCallback(() => { if (!account) return; - if (account.getIn(['relationship', 'following'])) { + if ( + account.getIn(['relationship', 'following']) || + account.getIn(['relationship', 'requested']) + ) { dispatch( - openModal({ - modalType: 'CONFIRM', - modalProps: { - message: ( - @{account.get('acct')} }} - /> - ), - confirm: intl.formatMessage(messages.unfollowConfirm), - onConfirm: () => { - dispatch(unfollowAccount(account.get('id'))); - }, - }, - }), - ); - } else if (account.getIn(['relationship', 'requested'])) { - dispatch( - openModal({ - modalType: 'CONFIRM', - modalProps: { - message: ( - @{account.get('acct')} }} - /> - ), - confirm: intl.formatMessage(messages.cancelFollowRequestConfirm), - onConfirm: () => { - dispatch(unfollowAccount(account.get('id'))); - }, - }, - }), + openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } }), ); } else { dispatch(followAccount(account.get('id'))); } - }, [account, dispatch, intl]); + }, [account, dispatch]); const handleBlock = useCallback(() => { if (account?.relationship?.blocking) { diff --git a/app/javascript/mastodon/features/domain_blocks/index.jsx b/app/javascript/mastodon/features/domain_blocks/index.jsx index 964eada9c1..3656596806 100644 --- a/app/javascript/mastodon/features/domain_blocks/index.jsx +++ b/app/javascript/mastodon/features/domain_blocks/index.jsx @@ -11,16 +11,15 @@ import { connect } from 'react-redux'; import { debounce } from 'lodash'; import BlockIcon from '@/material-icons/400-24px/block-fill.svg?react'; +import { Domain } from 'mastodon/components/domain'; import { fetchDomainBlocks, expandDomainBlocks } from '../../actions/domain_blocks'; import { LoadingIndicator } from '../../components/loading_indicator'; import ScrollableList from '../../components/scrollable_list'; -import DomainContainer from '../../containers/domain_container'; import Column from '../ui/components/column'; const messages = defineMessages({ heading: { id: 'column.domain_blocks', defaultMessage: 'Blocked domains' }, - unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' }, }); const mapStateToProps = state => ({ @@ -70,7 +69,7 @@ class Blocks extends ImmutablePureComponent { bindToDocument={!multiColumn} > {domains.map(domain => - , + , )} diff --git a/app/javascript/mastodon/features/list_timeline/index.jsx b/app/javascript/mastodon/features/list_timeline/index.jsx index f640e503c2..59d9f86977 100644 --- a/app/javascript/mastodon/features/list_timeline/index.jsx +++ b/app/javascript/mastodon/features/list_timeline/index.jsx @@ -15,7 +15,7 @@ import DeleteIcon from '@/material-icons/400-24px/delete.svg?react'; import EditIcon from '@/material-icons/400-24px/edit.svg?react'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import { addColumn, removeColumn, moveColumn } from 'mastodon/actions/columns'; -import { fetchList, deleteList, updateList } from 'mastodon/actions/lists'; +import { fetchList, updateList } from 'mastodon/actions/lists'; import { openModal } from 'mastodon/actions/modal'; import { connectListStream } from 'mastodon/actions/streaming'; import { expandListTimeline } from 'mastodon/actions/timelines'; @@ -29,8 +29,6 @@ import StatusListContainer from 'mastodon/features/ui/containers/status_list_con import { WithRouterPropTypes } from 'mastodon/utils/react_router'; const messages = defineMessages({ - deleteMessage: { id: 'confirmations.delete_list.message', defaultMessage: 'Are you sure you want to permanently delete this list?' }, - deleteConfirm: { id: 'confirmations.delete_list.confirm', defaultMessage: 'Delete' }, followed: { id: 'lists.replies_policy.followed', defaultMessage: 'Any followed user' }, none: { id: 'lists.replies_policy.none', defaultMessage: 'No one' }, list: { id: 'lists.replies_policy.list', defaultMessage: 'Members of the list' }, @@ -125,25 +123,10 @@ class ListTimeline extends PureComponent { }; handleDeleteClick = () => { - const { dispatch, columnId, intl } = this.props; + const { dispatch, columnId } = this.props; const { id } = this.props.params; - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.deleteMessage), - confirm: intl.formatMessage(messages.deleteConfirm), - onConfirm: () => { - dispatch(deleteList(id)); - - if (columnId) { - dispatch(removeColumn(columnId)); - } else { - this.props.history.push('/lists'); - } - }, - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_DELETE_LIST', modalProps: { listId: id, columnId } })); }; handleRepliesPolicyChange = ({ target }) => { diff --git a/app/javascript/mastodon/features/notifications/containers/column_settings_container.js b/app/javascript/mastodon/features/notifications/containers/column_settings_container.js index 2434c3982d..21dbb2aa90 100644 --- a/app/javascript/mastodon/features/notifications/containers/column_settings_container.js +++ b/app/javascript/mastodon/features/notifications/containers/column_settings_container.js @@ -2,11 +2,10 @@ import { defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; +import { openModal } from 'mastodon/actions/modal'; import { initializeNotifications } from 'mastodon/actions/notifications_migration'; import { showAlert } from '../../../actions/alerts'; -import { openModal } from '../../../actions/modal'; -import { clearNotifications } from '../../../actions/notification_groups'; import { updateNotificationsPolicy } from '../../../actions/notification_policies'; import { setFilter, requestBrowserPermission } from '../../../actions/notifications'; import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications'; @@ -14,8 +13,6 @@ import { changeSetting } from '../../../actions/settings'; import ColumnSettings from '../components/column_settings'; const messages = defineMessages({ - clearMessage: { id: 'notifications.clear_confirmation', defaultMessage: 'Are you sure you want to permanently clear all your notifications?' }, - clearConfirm: { id: 'notifications.clear', defaultMessage: 'Clear notifications' }, permissionDenied: { id: 'notifications.permission_denied_alert', defaultMessage: 'Desktop notifications can\'t be enabled, as browser permission has been denied before' }, }); @@ -31,7 +28,7 @@ const mapStateToProps = state => ({ notificationPolicy: state.notificationPolicy, }); -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onChange (path, checked) { if (path[0] === 'push') { @@ -70,14 +67,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }, onClear () { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.clearMessage), - confirm: intl.formatMessage(messages.clearConfirm), - onConfirm: () => dispatch(clearNotifications()), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_CLEAR_NOTIFICATIONS' })); }, onRequestNotificationPermission () { diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx index d5226eb346..300c8dd5b3 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx +++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx @@ -31,8 +31,6 @@ const messages = defineMessages({ cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' }, cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' }, favourite: { id: 'status.favourite', defaultMessage: 'Favorite' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, open: { id: 'status.open', defaultMessage: 'Expand this status' }, }); @@ -71,19 +69,13 @@ class Footer extends ImmutablePureComponent { }; handleReplyClick = () => { - const { dispatch, askReplyConfirmation, status, intl } = this.props; + const { dispatch, askReplyConfirmation, status, onClose } = this.props; const { signedIn } = this.props.identity; if (signedIn) { if (askReplyConfirmation) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: this._performReply, - }, - })); + onClose(true); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } })); } else { this._performReply(); } diff --git a/app/javascript/mastodon/features/status/containers/detailed_status_container.js b/app/javascript/mastodon/features/status/containers/detailed_status_container.js index 5ab1013700..0e73697fef 100644 --- a/app/javascript/mastodon/features/status/containers/detailed_status_container.js +++ b/app/javascript/mastodon/features/status/containers/detailed_status_container.js @@ -1,4 +1,4 @@ -import { defineMessages, injectIntl } from 'react-intl'; +import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; @@ -28,15 +28,6 @@ import { deleteModal } from '../../../initial_state'; import { makeGetStatus, makeGetPictureInPicture } from '../../../selectors'; import DetailedStatus from '../components/detailed_status'; -const messages = defineMessages({ - deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, - deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' }, - redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' }, - redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, -}); - const makeMapStateToProps = () => { const getStatus = makeGetStatus(); const getPictureInPicture = makeGetPictureInPicture(); @@ -50,20 +41,13 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onReply (status) { dispatch((_, getState) => { let state = getState(); if (state.getIn(['compose', 'text']).trim().length !== 0) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: () => dispatch(replyCompose(status)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } })); } else { dispatch(replyCompose(status)); } @@ -100,14 +84,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ if (!deleteModal) { dispatch(deleteStatus(status.get('id'), withRedraft)); } else { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage), - confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm), - onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } })); } }, diff --git a/app/javascript/mastodon/features/status/index.jsx b/app/javascript/mastodon/features/status/index.jsx index e9df3697a2..7f3044c5c9 100644 --- a/app/javascript/mastodon/features/status/index.jsx +++ b/app/javascript/mastodon/features/status/index.jsx @@ -72,17 +72,10 @@ import DetailedStatus from './components/detailed_status'; const messages = defineMessages({ - deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, - deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' }, - redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' }, - redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.' }, revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' }, hideAll: { id: 'status.show_less_all', defaultMessage: 'Show less for all' }, statusTitleWithAttachments: { id: 'status.title.with_attachments', defaultMessage: '{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}' }, detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, - blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' }, }); const makeMapStateToProps = () => { @@ -264,19 +257,12 @@ class Status extends ImmutablePureComponent { }; handleReplyClick = (status) => { - const { askReplyConfirmation, dispatch, intl } = this.props; + const { askReplyConfirmation, dispatch } = this.props; const { signedIn } = this.props.identity; if (signedIn) { if (askReplyConfirmation) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: () => dispatch(replyCompose(status)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } })); } else { dispatch(replyCompose(status)); } @@ -319,24 +305,23 @@ class Status extends ImmutablePureComponent { }; handleDeleteClick = (status, withRedraft = false) => { - const { dispatch, intl } = this.props; + const { dispatch } = this.props; if (!deleteModal) { dispatch(deleteStatus(status.get('id'), withRedraft)); } else { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage), - confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm), - onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } })); } }; handleEditClick = (status) => { - this.props.dispatch(editStatus(status.get('id'))); + const { dispatch, askReplyConfirmation } = this.props; + + if (askReplyConfirmation) { + dispatch(openModal({ modalType: 'CONFIRM_EDIT_STATUS', modalProps: { statusId: status.get('id') } })); + } else { + dispatch(editStatus(status.get('id'))); + } }; handleDirectClick = (account) => { diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx b/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx deleted file mode 100644 index 5080c0bf85..0000000000 --- a/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx +++ /dev/null @@ -1,65 +0,0 @@ -import PropTypes from 'prop-types'; -import { PureComponent } from 'react'; - -import { injectIntl, FormattedMessage } from 'react-intl'; - -import { Button } from '../../../components/button'; - -class ConfirmationModal extends PureComponent { - - static propTypes = { - message: PropTypes.node.isRequired, - confirm: PropTypes.string.isRequired, - onClose: PropTypes.func.isRequired, - onConfirm: PropTypes.func.isRequired, - secondary: PropTypes.string, - onSecondary: PropTypes.func, - closeWhenConfirm: PropTypes.bool, - intl: PropTypes.object.isRequired, - }; - - static defaultProps = { - closeWhenConfirm: true, - }; - - handleClick = () => { - if (this.props.closeWhenConfirm) { - this.props.onClose(); - } - this.props.onConfirm(); - }; - - handleSecondary = () => { - this.props.onClose(); - this.props.onSecondary(); - }; - - handleCancel = () => { - this.props.onClose(); - }; - - render () { - const { message, confirm, secondary } = this.props; - - return ( -
-
- {message} -
- -
- - {secondary !== undefined && ( -
-
- ); - } - -} - -export default injectIntl(ConfirmationModal); diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/clear_notifications.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/clear_notifications.tsx new file mode 100644 index 0000000000..312ec600a6 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/clear_notifications.tsx @@ -0,0 +1,46 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { clearNotifications } from 'mastodon/actions/notification_groups'; +import { useAppDispatch } from 'mastodon/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + clearTitle: { + id: 'notifications.clear_title', + defaultMessage: 'Clear notifications?', + }, + clearMessage: { + id: 'notifications.clear_confirmation', + defaultMessage: + 'Are you sure you want to permanently clear all your notifications?', + }, + clearConfirm: { + id: 'notifications.clear', + defaultMessage: 'Clear notifications', + }, +}); + +export const ConfirmClearNotificationsModal: React.FC< + BaseConfirmationModalProps +> = ({ onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + void dispatch(clearNotifications()); + }, [dispatch]); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx new file mode 100644 index 0000000000..c3a0c0aa76 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx @@ -0,0 +1,79 @@ +import { useCallback } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import { Button } from 'mastodon/components/button'; + +export interface BaseConfirmationModalProps { + onClose: () => void; +} + +export const ConfirmationModal: React.FC< + { + title: React.ReactNode; + message: React.ReactNode; + confirm: React.ReactNode; + secondary?: React.ReactNode; + onSecondary?: () => void; + onConfirm: () => void; + closeWhenConfirm?: boolean; + } & BaseConfirmationModalProps +> = ({ + title, + message, + confirm, + onClose, + onConfirm, + secondary, + onSecondary, + closeWhenConfirm = true, +}) => { + const handleClick = useCallback(() => { + if (closeWhenConfirm) { + onClose(); + } + + onConfirm(); + }, [onClose, onConfirm, closeWhenConfirm]); + + const handleSecondary = useCallback(() => { + onClose(); + onSecondary?.(); + }, [onClose, onSecondary]); + + const handleCancel = useCallback(() => { + onClose(); + }, [onClose]); + + return ( +
+
+
+

{title}

+

{message}

+
+
+ +
+
+ {secondary && ( + <> + + +
+ + )} + + + + +
+
+
+ ); +}; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_list.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_list.tsx new file mode 100644 index 0000000000..8fd9d8da01 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_list.tsx @@ -0,0 +1,58 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { useHistory } from 'react-router'; + +import { removeColumn } from 'mastodon/actions/columns'; +import { deleteList } from 'mastodon/actions/lists'; +import { useAppDispatch } from 'mastodon/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + deleteListTitle: { + id: 'confirmations.delete_list.title', + defaultMessage: 'Delete list?', + }, + deleteListMessage: { + id: 'confirmations.delete_list.message', + defaultMessage: 'Are you sure you want to permanently delete this list?', + }, + deleteListConfirm: { + id: 'confirmations.delete_list.confirm', + defaultMessage: 'Delete', + }, +}); + +export const ConfirmDeleteListModal: React.FC< + { + listId: string; + columnId: string; + } & BaseConfirmationModalProps +> = ({ listId, columnId, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + const history = useHistory(); + + const onConfirm = useCallback(() => { + dispatch(deleteList(listId)); + + if (columnId) { + dispatch(removeColumn(columnId)); + } else { + history.push('/lists'); + } + }, [dispatch, history, columnId, listId]); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_status.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_status.tsx new file mode 100644 index 0000000000..39e80cf741 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/delete_status.tsx @@ -0,0 +1,67 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { deleteStatus } from 'mastodon/actions/statuses'; +import { useAppDispatch } from 'mastodon/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + deleteAndRedraftTitle: { + id: 'confirmations.redraft.title', + defaultMessage: 'Delete & redraft post?', + }, + deleteAndRedraftMessage: { + id: 'confirmations.redraft.message', + defaultMessage: + 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.', + }, + deleteAndRedraftConfirm: { + id: 'confirmations.redraft.confirm', + defaultMessage: 'Delete & redraft', + }, + deleteTitle: { + id: 'confirmations.delete.title', + defaultMessage: 'Delete post?', + }, + deleteMessage: { + id: 'confirmations.delete.message', + defaultMessage: 'Are you sure you want to delete this status?', + }, + deleteConfirm: { + id: 'confirmations.delete.confirm', + defaultMessage: 'Delete', + }, +}); + +export const ConfirmDeleteStatusModal: React.FC< + { + statusId: string; + withRedraft: boolean; + } & BaseConfirmationModalProps +> = ({ statusId, withRedraft, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + dispatch(deleteStatus(statusId, withRedraft)); + }, [dispatch, statusId, withRedraft]); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx new file mode 100644 index 0000000000..fb958518c2 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/edit_status.tsx @@ -0,0 +1,45 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { editStatus } from 'mastodon/actions/statuses'; +import { useAppDispatch } from 'mastodon/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + editTitle: { + id: 'confirmations.edit.title', + defaultMessage: 'Overwrite post?', + }, + editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' }, + editMessage: { + id: 'confirmations.edit.message', + defaultMessage: + 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?', + }, +}); + +export const ConfirmEditStatusModal: React.FC< + { + statusId: string; + } & BaseConfirmationModalProps +> = ({ statusId, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + dispatch(editStatus(statusId)); + }, [dispatch, statusId]); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts b/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts new file mode 100644 index 0000000000..912c99a393 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/index.ts @@ -0,0 +1,8 @@ +export { ConfirmationModal } from './confirmation_modal'; +export { ConfirmDeleteStatusModal } from './delete_status'; +export { ConfirmDeleteListModal } from './delete_list'; +export { ConfirmReplyModal } from './reply'; +export { ConfirmEditStatusModal } from './edit_status'; +export { ConfirmUnfollowModal } from './unfollow'; +export { ConfirmClearNotificationsModal } from './clear_notifications'; +export { ConfirmLogOutModal } from './log_out'; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx new file mode 100644 index 0000000000..48d24182ed --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx @@ -0,0 +1,40 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { logOut } from 'mastodon/utils/log_out'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + logoutTitle: { id: 'confirmations.logout.title', defaultMessage: 'Log out?' }, + logoutMessage: { + id: 'confirmations.logout.message', + defaultMessage: 'Are you sure you want to log out?', + }, + logoutConfirm: { + id: 'confirmations.logout.confirm', + defaultMessage: 'Log out', + }, +}); + +export const ConfirmLogOutModal: React.FC = ({ + onClose, +}) => { + const intl = useIntl(); + + const onConfirm = useCallback(() => { + logOut(); + }, []); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx new file mode 100644 index 0000000000..cccd62e4b4 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/reply.tsx @@ -0,0 +1,46 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { replyCompose } from 'mastodon/actions/compose'; +import type { Status } from 'mastodon/models/status'; +import { useAppDispatch } from 'mastodon/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + replyTitle: { + id: 'confirmations.reply.title', + defaultMessage: 'Overwrite post?', + }, + replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, + replyMessage: { + id: 'confirmations.reply.message', + defaultMessage: + 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?', + }, +}); + +export const ConfirmReplyModal: React.FC< + { + status: Status; + } & BaseConfirmationModalProps +> = ({ status, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + dispatch(replyCompose(status)); + }, [dispatch, status]); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/unfollow.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/unfollow.tsx new file mode 100644 index 0000000000..58e39da07b --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/unfollow.tsx @@ -0,0 +1,50 @@ +import { useCallback } from 'react'; + +import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; + +import { unfollowAccount } from 'mastodon/actions/accounts'; +import type { Account } from 'mastodon/models/account'; +import { useAppDispatch } from 'mastodon/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + unfollowTitle: { + id: 'confirmations.unfollow.title', + defaultMessage: 'Unfollow user?', + }, + unfollowConfirm: { + id: 'confirmations.unfollow.confirm', + defaultMessage: 'Unfollow', + }, +}); + +export const ConfirmUnfollowModal: React.FC< + { + account: Account; + } & BaseConfirmationModalProps +> = ({ account, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + dispatch(unfollowAccount(account.id)); + }, [dispatch, account.id]); + + return ( + @{account.acct} }} + /> + } + confirm={intl.formatMessage(messages.unfollowConfirm)} + onConfirm={onConfirm} + onClose={onClose} + /> + ); +}; diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx index 6a71bb2465..3d1380f666 100644 --- a/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx +++ b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; +import { FormattedMessage, injectIntl } from 'react-intl'; import { Link } from 'react-router-dom'; @@ -9,29 +9,15 @@ import { connect } from 'react-redux'; import { openModal } from 'mastodon/actions/modal'; import { disabledAccountId, movedToAccountId, domain } from 'mastodon/initial_state'; -import { logOut } from 'mastodon/utils/log_out'; - -const messages = defineMessages({ - logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, - logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, -}); const mapStateToProps = (state) => ({ disabledAcct: state.getIn(['accounts', disabledAccountId, 'acct']), movedToAcct: movedToAccountId ? state.getIn(['accounts', movedToAccountId, 'acct']) : undefined, }); -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onLogout () { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.logoutMessage), - confirm: intl.formatMessage(messages.logoutConfirm), - closeWhenConfirm: false, - onConfirm: () => logOut(), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' })); }, }); diff --git a/app/javascript/mastodon/features/ui/components/link_footer.jsx b/app/javascript/mastodon/features/ui/components/link_footer.jsx index 08af6fa444..49b21c2e48 100644 --- a/app/javascript/mastodon/features/ui/components/link_footer.jsx +++ b/app/javascript/mastodon/features/ui/components/link_footer.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; +import { FormattedMessage, injectIntl } from 'react-intl'; import { Link } from 'react-router-dom'; @@ -11,24 +11,11 @@ import { openModal } from 'mastodon/actions/modal'; import { identityContextPropShape, withIdentity } from 'mastodon/identity_context'; import { domain, version, source_url, statusPageUrl, profile_directory as profileDirectory } from 'mastodon/initial_state'; import { PERMISSION_INVITE_USERS } from 'mastodon/permissions'; -import { logOut } from 'mastodon/utils/log_out'; -const messages = defineMessages({ - logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, - logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, -}); - -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onLogout () { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.logoutMessage), - confirm: intl.formatMessage(messages.logoutConfirm), - closeWhenConfirm: false, - onConfirm: () => logOut(), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' })); + }, }); diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx index 404b53c742..3e900a0667 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.jsx +++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx @@ -26,7 +26,16 @@ import ActionsModal from './actions_modal'; import AudioModal from './audio_modal'; import { BoostModal } from './boost_modal'; import BundleModalError from './bundle_modal_error'; -import ConfirmationModal from './confirmation_modal'; +import { + ConfirmationModal, + ConfirmDeleteStatusModal, + ConfirmDeleteListModal, + ConfirmReplyModal, + ConfirmEditStatusModal, + ConfirmUnfollowModal, + ConfirmClearNotificationsModal, + ConfirmLogOutModal, +} from './confirmation_modals'; import FocalPointModal from './focal_point_modal'; import ImageModal from './image_modal'; import MediaModal from './media_modal'; @@ -40,6 +49,13 @@ export const MODAL_COMPONENTS = { 'IMAGE': () => Promise.resolve({ default: ImageModal }), 'BOOST': () => Promise.resolve({ default: BoostModal }), 'CONFIRM': () => Promise.resolve({ default: ConfirmationModal }), + 'CONFIRM_DELETE_STATUS': () => Promise.resolve({ default: ConfirmDeleteStatusModal }), + 'CONFIRM_DELETE_LIST': () => Promise.resolve({ default: ConfirmDeleteListModal }), + 'CONFIRM_REPLY': () => Promise.resolve({ default: ConfirmReplyModal }), + 'CONFIRM_EDIT_STATUS': () => Promise.resolve({ default: ConfirmEditStatusModal }), + 'CONFIRM_UNFOLLOW': () => Promise.resolve({ default: ConfirmUnfollowModal }), + 'CONFIRM_CLEAR_NOTIFICATIONS': () => Promise.resolve({ default: ConfirmClearNotificationsModal }), + 'CONFIRM_LOG_OUT': () => Promise.resolve({ default: ConfirmLogOutModal }), 'MUTE': MuteModal, 'BLOCK': BlockModal, 'DOMAIN_BLOCK': DomainBlockModal, diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 60bdfd1d44..de8f2ebfcf 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Content warning (optional)", "confirmation_modal.cancel": "Cancel", "confirmations.block.confirm": "Block", - "confirmations.cancel_follow_request.confirm": "Withdraw request", - "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this post?", + "confirmations.delete.title": "Delete post?", "confirmations.delete_list.confirm": "Delete", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.delete_list.title": "Delete list?", "confirmations.discard_edit_media.confirm": "Discard", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", - "confirmations.domain_block.confirm": "Block server", - "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", "confirmations.edit.confirm": "Edit", "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.edit.title": "Overwrite post?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.logout.title": "Log out?", "confirmations.mute.confirm": "Mute", "confirmations.redraft.confirm": "Delete & redraft", "confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.", + "confirmations.redraft.title": "Delete & redraft post?", "confirmations.reply.confirm": "Reply", "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.reply.title": "Overwrite post?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "confirmations.unfollow.title": "Unfollow user?", "conversation.delete": "Delete conversation", "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", @@ -507,6 +510,7 @@ "notification_requests.title": "Filtered notifications", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.clear_title": "Clear notifications?", "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 58c9b53a2c..c575a033b7 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -6055,6 +6055,25 @@ a.status-card { } } + &__confirmation { + font-size: 14px; + line-height: 20px; + color: $darker-text-color; + + h1 { + font-size: 16px; + line-height: 24px; + color: $primary-text-color; + font-weight: 500; + margin-bottom: 8px; + } + + strong { + font-weight: 700; + color: $primary-text-color; + } + } + &__bullet-points { display: flex; flex-direction: column; @@ -6140,11 +6159,8 @@ a.status-card { } .boost-modal, -.confirmation-modal, .report-modal, .actions-modal, -.mute-modal, -.block-modal, .compare-history-modal { background: lighten($ui-secondary-color, 8%); color: $inverted-text-color; @@ -6166,10 +6182,7 @@ a.status-card { } } -.boost-modal__action-bar, -.confirmation-modal__action-bar, -.mute-modal__action-bar, -.block-modal__action-bar { +.boost-modal__action-bar { display: flex; justify-content: space-between; align-items: center; @@ -6192,16 +6205,6 @@ a.status-card { } } -.mute-modal, -.block-modal { - line-height: 24px; -} - -.mute-modal .react-toggle, -.block-modal .react-toggle { - vertical-align: middle; -} - .report-modal { width: 90vw; max-width: 700px; @@ -6596,34 +6599,6 @@ a.status-card { } } -.confirmation-modal__action-bar, -.mute-modal__action-bar, -.block-modal__action-bar { - .confirmation-modal__secondary-button { - flex-shrink: 1; - } -} - -.confirmation-modal__secondary-button, -.confirmation-modal__cancel-button, -.mute-modal__cancel-button, -.block-modal__cancel-button { - background-color: transparent; - color: $lighter-text-color; - font-size: 14px; - font-weight: 500; - - &:hover, - &:focus, - &:active { - color: darken($lighter-text-color, 4%); - background-color: transparent; - } -} - -.confirmation-modal__container, -.mute-modal__container, -.block-modal__container, .report-modal__target { padding: 30px; font-size: 16px; @@ -6657,31 +6632,10 @@ a.status-card { } } -.confirmation-modal__container, .report-modal__target { text-align: center; } -.block-modal, -.mute-modal { - &__explanation { - margin-top: 20px; - } - - .setting-toggle { - margin-top: 20px; - margin-bottom: 24px; - display: flex; - align-items: center; - - &__label { - color: $inverted-text-color; - margin: 0; - margin-inline-start: 8px; - } - } -} - .report-modal__target { padding: 15px; From 3793c845c9f7e8edf00fb3b90d31f94562d9cc0c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 09:51:37 +0200 Subject: [PATCH 003/306] New Crowdin Translations (automated) (#31154) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/af.json | 2 - app/javascript/mastodon/locales/an.json | 3 - app/javascript/mastodon/locales/ar.json | 4 - app/javascript/mastodon/locales/ast.json | 2 - app/javascript/mastodon/locales/be.json | 4 - app/javascript/mastodon/locales/bg.json | 4 - app/javascript/mastodon/locales/bn.json | 3 - app/javascript/mastodon/locales/br.json | 3 - app/javascript/mastodon/locales/ca.json | 12 +- app/javascript/mastodon/locales/ckb.json | 3 - app/javascript/mastodon/locales/co.json | 1 - app/javascript/mastodon/locales/cs.json | 4 - app/javascript/mastodon/locales/cy.json | 4 - app/javascript/mastodon/locales/da.json | 12 +- app/javascript/mastodon/locales/de.json | 12 +- app/javascript/mastodon/locales/el.json | 4 - app/javascript/mastodon/locales/en-GB.json | 4 - app/javascript/mastodon/locales/eo.json | 3 - app/javascript/mastodon/locales/es-AR.json | 12 +- app/javascript/mastodon/locales/es-MX.json | 12 +- app/javascript/mastodon/locales/es.json | 12 +- app/javascript/mastodon/locales/et.json | 4 - app/javascript/mastodon/locales/eu.json | 14 +- app/javascript/mastodon/locales/fa.json | 3 - app/javascript/mastodon/locales/fi.json | 80 +++-- app/javascript/mastodon/locales/fil.json | 3 - app/javascript/mastodon/locales/fo.json | 12 +- app/javascript/mastodon/locales/fr-CA.json | 12 +- app/javascript/mastodon/locales/fr.json | 12 +- app/javascript/mastodon/locales/fy.json | 4 - app/javascript/mastodon/locales/ga.json | 12 +- app/javascript/mastodon/locales/gd.json | 4 - app/javascript/mastodon/locales/gl.json | 12 +- app/javascript/mastodon/locales/he.json | 4 - app/javascript/mastodon/locales/hi.json | 4 - app/javascript/mastodon/locales/hr.json | 2 - app/javascript/mastodon/locales/hu.json | 12 +- app/javascript/mastodon/locales/hy.json | 2 - app/javascript/mastodon/locales/ia.json | 4 - app/javascript/mastodon/locales/id.json | 4 - app/javascript/mastodon/locales/ie.json | 4 - app/javascript/mastodon/locales/io.json | 3 - app/javascript/mastodon/locales/is.json | 12 +- app/javascript/mastodon/locales/it.json | 4 - app/javascript/mastodon/locales/ja.json | 4 - app/javascript/mastodon/locales/ka.json | 1 - app/javascript/mastodon/locales/kab.json | 1 - app/javascript/mastodon/locales/kk.json | 1 - app/javascript/mastodon/locales/ko.json | 4 - app/javascript/mastodon/locales/ku.json | 3 - app/javascript/mastodon/locales/kw.json | 1 - app/javascript/mastodon/locales/lad.json | 4 - app/javascript/mastodon/locales/lt.json | 18 +- app/javascript/mastodon/locales/lv.json | 3 - app/javascript/mastodon/locales/mk.json | 1 - app/javascript/mastodon/locales/ms.json | 3 - app/javascript/mastodon/locales/my.json | 3 - app/javascript/mastodon/locales/nl.json | 12 +- app/javascript/mastodon/locales/nn.json | 4 - app/javascript/mastodon/locales/no.json | 3 - app/javascript/mastodon/locales/oc.json | 3 - app/javascript/mastodon/locales/pl.json | 12 +- app/javascript/mastodon/locales/pt-BR.json | 12 +- app/javascript/mastodon/locales/pt-PT.json | 12 +- app/javascript/mastodon/locales/ro.json | 3 - app/javascript/mastodon/locales/ru.json | 4 - app/javascript/mastodon/locales/sa.json | 3 - app/javascript/mastodon/locales/sc.json | 279 +++++++++++---- app/javascript/mastodon/locales/sco.json | 3 - app/javascript/mastodon/locales/sk.json | 4 - app/javascript/mastodon/locales/sl.json | 4 - app/javascript/mastodon/locales/sq.json | 4 - app/javascript/mastodon/locales/sr-Latn.json | 4 - app/javascript/mastodon/locales/sr.json | 4 - app/javascript/mastodon/locales/sv.json | 4 - app/javascript/mastodon/locales/ta.json | 1 - app/javascript/mastodon/locales/te.json | 1 - app/javascript/mastodon/locales/th.json | 4 - app/javascript/mastodon/locales/tok.json | 3 - app/javascript/mastodon/locales/tr.json | 4 - app/javascript/mastodon/locales/tt.json | 3 - app/javascript/mastodon/locales/uk.json | 8 +- app/javascript/mastodon/locales/ur.json | 1 - app/javascript/mastodon/locales/uz.json | 3 - app/javascript/mastodon/locales/vi.json | 4 - app/javascript/mastodon/locales/zh-CN.json | 12 +- app/javascript/mastodon/locales/zh-HK.json | 4 - app/javascript/mastodon/locales/zh-TW.json | 12 +- config/locales/activerecord.fi.yml | 2 +- config/locales/activerecord.sc.yml | 2 +- config/locales/devise.fi.yml | 52 +-- config/locales/devise.sc.yml | 4 +- config/locales/doorkeeper.fi.yml | 38 +- config/locales/doorkeeper.sc.yml | 10 +- config/locales/es-MX.yml | 3 + config/locales/es.yml | 3 + config/locales/fi.yml | 357 ++++++++++--------- config/locales/lt.yml | 1 + config/locales/sc.yml | 195 ++++++++-- config/locales/simple_form.fi.yml | 78 ++-- config/locales/simple_form.sc.yml | 6 +- 101 files changed, 891 insertions(+), 688 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 77e15eb2c6..fee553e22d 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -119,8 +119,6 @@ "compose_form.spoiler.unmarked": "Voeg inhoudswaarskuwing by", "confirmation_modal.cancel": "Kanselleer", "confirmations.block.confirm": "Blokkeer", - "confirmations.cancel_follow_request.confirm": "Herroep versoek", - "confirmations.cancel_follow_request.message": "Is jy seker jy wil jou versoek om {name} te volg, terugtrek?", "confirmations.delete.confirm": "Wis uit", "confirmations.delete.message": "Is jy seker jy wil hierdie plasing uitvee?", "confirmations.delete_list.confirm": "Wis uit", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index d8f41b29bd..0757b9e597 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -130,15 +130,12 @@ "compose_form.spoiler.unmarked": "Texto no amagau", "confirmation_modal.cancel": "Cancelar", "confirmations.block.confirm": "Blocar", - "confirmations.cancel_follow_request.confirm": "Retirar solicitut", - "confirmations.cancel_follow_request.message": "Yes seguro que deseyas retirar la tuya solicitut pa seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "Yes seguro que quiers borrar esta publicación?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "Seguro que quiers borrar esta lista permanentment?", "confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.message": "Tiens cambios sin alzar en a descripción u vista previa d'o fichero audiovisual, descartar-los de totz modos?", - "confirmations.domain_block.message": "Yes seguro que quiers blocar lo dominio {domain} entero? En cheneral ye prou, y preferible, fer uns quantos bloqueyos y silenciaus concretos. Los tuyos seguidros d'ixe dominio serán eliminaus.", "confirmations.logout.confirm": "Zarrar sesión", "confirmations.logout.message": "Yes seguro de querer zarrar la sesión?", "confirmations.mute.confirm": "Silenciar", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 9cfda3cbc2..daafb43677 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -167,16 +167,12 @@ "compose_form.spoiler_placeholder": "تحذير المحتوى (اختياري)", "confirmation_modal.cancel": "إلغاء", "confirmations.block.confirm": "حظر", - "confirmations.cancel_follow_request.confirm": "إلغاء الطلب", - "confirmations.cancel_follow_request.message": "متأكد من أنك تريد إلغاء طلب متابعتك لـ {name}؟", "confirmations.delete.confirm": "حذف", "confirmations.delete.message": "هل أنتَ مُتأكدٌ أنك تُريدُ حَذفَ هذا المنشور؟", "confirmations.delete_list.confirm": "حذف", "confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمة بشكلٍ دائم؟", "confirmations.discard_edit_media.confirm": "تجاهل", "confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، أتريد تجاهلها على أي حال؟", - "confirmations.domain_block.confirm": "حظر الخادم", - "confirmations.domain_block.message": "متأكد من أنك تود حظر اسم النطاق {domain} بالكامل ؟ في غالب الأحيان يُستَحسَن كتم أو حظر بعض الحسابات بدلا من حظر نطاق بالكامل.\nلن تتمكن مِن رؤية محتوى هذا النطاق لا على خيوطك العمومية و لا في إشعاراتك. سوف يتم كذلك إزالة كافة متابعيك المنتمين إلى هذا النطاق.", "confirmations.edit.confirm": "تعديل", "confirmations.edit.message": "التعديل في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد تحريرها. متأكد من أنك تريد المواصلة؟", "confirmations.logout.confirm": "خروج", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 883737eb4a..3843ec69dc 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -111,8 +111,6 @@ "compose_form.publish_form": "Artículu nuevu", "confirmation_modal.cancel": "Encaboxar", "confirmations.block.confirm": "Bloquiar", - "confirmations.cancel_follow_request.confirm": "Retirala", - "confirmations.cancel_follow_request.message": "¿De xuru que quies retirar la solicitú pa siguir a {name}?", "confirmations.delete.confirm": "Desaniciar", "confirmations.delete.message": "¿De xuru que quies desaniciar esti artículu?", "confirmations.delete_list.confirm": "Desaniciar", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index e2120d80d9..80af2a76da 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Папярэджанне аб змесціве (неабавязкова)", "confirmation_modal.cancel": "Скасаваць", "confirmations.block.confirm": "Заблакіраваць", - "confirmations.cancel_follow_request.confirm": "Скасаваць запыт", - "confirmations.cancel_follow_request.message": "Сапраўды хочаце скасаваць свой запыт на падпіску на {name}?", "confirmations.delete.confirm": "Выдаліць", "confirmations.delete.message": "Вы ўпэўненыя, што хочаце выдаліць гэты допіс?", "confirmations.delete_list.confirm": "Выдаліць", "confirmations.delete_list.message": "Вы ўпэўненыя, што хочаце беззваротна выдаліць гэты чарнавік?", "confirmations.discard_edit_media.confirm": "Адмяніць", "confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?", - "confirmations.domain_block.confirm": "Заблакіраваць сервер", - "confirmations.domain_block.message": "Вы абсалютна дакладна ўпэўнены, што хочаце заблакіраваць {domain} зусім? У большасці выпадкаў, дастаткова некалькіх мэтавых блакіровак ці ігнараванняў. Вы перастанеце бачыць змесціва з гэтага дамену ва ўсіх стужках і апавяшчэннях. Вашы падпіскі з гэтага дамену будуць выдаленыя.", "confirmations.edit.confirm": "Рэдагаваць", "confirmations.edit.message": "Калі вы зменіце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?", "confirmations.logout.confirm": "Выйсці", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index b2dff17407..2161286c6c 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Предупреждение за съдържание (по избор)", "confirmation_modal.cancel": "Отказ", "confirmations.block.confirm": "Блокиране", - "confirmations.cancel_follow_request.confirm": "Оттегляне на заявката", - "confirmations.cancel_follow_request.message": "Наистина ли искате да оттеглите заявката си за последване на {name}?", "confirmations.delete.confirm": "Изтриване", "confirmations.delete.message": "Наистина ли искате да изтриете публикацията?", "confirmations.delete_list.confirm": "Изтриване", "confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?", "confirmations.discard_edit_media.confirm": "Отхвърляне", "confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?", - "confirmations.domain_block.confirm": "Блокиране на сървър", - "confirmations.domain_block.message": "Наистина ли искате да блокирате целия {domain}? В повечето случаи няколко блокирания или заглушавания са достатъчно и за предпочитане. Няма да виждате съдържание от домейна из публични часови оси или известията си. Вашите последователи от този домейн ще се премахнат.", "confirmations.edit.confirm": "Редактиране", "confirmations.edit.message": "Редактирането сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?", "confirmations.logout.confirm": "Излизане", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 6d64c00a2f..7787c1b9cf 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -146,15 +146,12 @@ "compose_form.spoiler.unmarked": "লেখাটি লুকানো নেই", "confirmation_modal.cancel": "বাতিল করুন", "confirmations.block.confirm": "ব্লক করুন", - "confirmations.cancel_follow_request.confirm": "অনুরোধ বাতিল করুন", - "confirmations.cancel_follow_request.message": "আপনি কি নিশ্চিত যে আপনি {name} কে অনুসরণ করার অনুরোধ প্রত্যাহার করতে চান?", "confirmations.delete.confirm": "মুছে ফেলুন", "confirmations.delete.message": "আপনি কি নিশ্চিত যে এই লেখাটি মুছে ফেলতে চান ?", "confirmations.delete_list.confirm": "মুছে ফেলুন", "confirmations.delete_list.message": "আপনি কি নিশ্চিত যে আপনি এই তালিকাটি স্থায়িভাবে মুছে ফেলতে চান ?", "confirmations.discard_edit_media.confirm": "বাতিল করো", "confirmations.discard_edit_media.message": "মিডিয়া Description বা Preview তে আপনার আপনার অসংরক্ষিত পরিবর্তন আছে, সেগুলো বাতিল করবেন?", - "confirmations.domain_block.message": "আপনি কি সত্যিই সত্যই নিশ্চিত যে আপনি পুরো {domain}'টি ব্লক করতে চান? বেশিরভাগ ক্ষেত্রে কয়েকটি লক্ষ্যযুক্ত ব্লক বা নীরবতা যথেষ্ট এবং পছন্দসই। আপনি কোনও পাবলিক টাইমলাইন বা আপনার বিজ্ঞপ্তিগুলিতে সেই ডোমেন থেকে সামগ্রী দেখতে পাবেন না। সেই ডোমেন থেকে আপনার অনুসরণকারীদের সরানো হবে।", "confirmations.edit.confirm": "সম্পাদন", "confirmations.edit.message": "এখন সম্পাদনা করলে আপনি যে মেসেজ লিখছেন তা overwrite করবে, চালিয়ে যেতে চান?", "confirmations.logout.confirm": "প্রস্থান", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 76cd9d4574..fb90a01cd1 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -159,15 +159,12 @@ "compose_form.spoiler.unmarked": "N'eo ket kuzhet an destenn", "confirmation_modal.cancel": "Nullañ", "confirmations.block.confirm": "Stankañ", - "confirmations.cancel_follow_request.confirm": "Nullañ ar reked", - "confirmations.cancel_follow_request.message": "Ha sur oc'h e fell deoc'h nullañ ho reked evit heuliañ {name} ?", "confirmations.delete.confirm": "Dilemel", "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?", "confirmations.delete_list.confirm": "Dilemel", "confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?", "confirmations.discard_edit_media.confirm": "Nac'hañ", "confirmations.discard_edit_media.message": "Bez ez eus kemmoù n'int ket enrollet e deskrivadur ar media pe ar rakwel, nullañ anezho evelato?", - "confirmations.domain_block.message": "Ha sur oc'h e fell deoc'h berzañ an {domain} a-bezh? Peurvuiañ eo trawalc'h berzañ pe mudañ un nebeud implijer·ezed·ien. Ne welot danvez ebet o tont eus an domani-mañ. Dilamet e vo ar c'houmanantoù war an domani-mañ.", "confirmations.edit.confirm": "Kemmañ", "confirmations.logout.confirm": "Digevreañ", "confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 80c85ce178..f44d60e9c4 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Avís de contingut (opcional)", "confirmation_modal.cancel": "Cancel·la", "confirmations.block.confirm": "Bloca", - "confirmations.cancel_follow_request.confirm": "Retirar la sol·licitud", - "confirmations.cancel_follow_request.message": "Segur que vols retirar la sol·licitud de seguiment de {name}?", "confirmations.delete.confirm": "Elimina", "confirmations.delete.message": "Segur que vols eliminar aquest tut?", + "confirmations.delete.title": "Elimina la publicació?", "confirmations.delete_list.confirm": "Elimina", "confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?", + "confirmations.delete_list.title": "Elimina la llista?", "confirmations.discard_edit_media.confirm": "Descarta", "confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?", - "confirmations.domain_block.confirm": "Bloca el servidor", - "confirmations.domain_block.message": "Segur que vols blocar {domain} del tot? En la majoria dels casos, només amb blocar o silenciar uns pocs comptes n'hi ha prou i és millor. No veuràs el contingut d’aquest domini en cap de les línies de temps ni en les notificacions. S'eliminaran els teus seguidors d’aquest domini.", "confirmations.edit.confirm": "Edita", "confirmations.edit.message": "Editant ara sobreescriuràs el missatge que estàs editant. Segur que vols continuar?", + "confirmations.edit.title": "Sobreescriu la publicació?", "confirmations.logout.confirm": "Tanca la sessió", "confirmations.logout.message": "Segur que vols tancar la sessió?", + "confirmations.logout.title": "Tanca la sessió?", "confirmations.mute.confirm": "Silencia", "confirmations.redraft.confirm": "Esborra i reescriu", "confirmations.redraft.message": "Segur que vols eliminar aquest tut i tornar a escriure'l? Es perdran tots els impulsos i els favorits, i les respostes al tut original quedaran aïllades.", + "confirmations.redraft.title": "Esborra i reescriu la publicació?", "confirmations.reply.confirm": "Respon", "confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?", + "confirmations.reply.title": "Sobreescriu la publicació?", "confirmations.unfollow.confirm": "Deixa de seguir", "confirmations.unfollow.message": "Segur que vols deixar de seguir {name}?", + "confirmations.unfollow.title": "Deixa de seguir l'usuari?", "conversation.delete": "Elimina la conversa", "conversation.mark_as_read": "Marca com a llegida", "conversation.open": "Mostra la conversa", @@ -507,6 +510,7 @@ "notification_requests.title": "Notificacions filtrades", "notifications.clear": "Esborra les notificacions", "notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?", + "notifications.clear_title": "Esborra les notificacions?", "notifications.column_settings.admin.report": "Nous informes:", "notifications.column_settings.admin.sign_up": "Registres nous:", "notifications.column_settings.alert": "Notificacions d'escriptori", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 379706a3e0..3c11ffc715 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -158,15 +158,12 @@ "compose_form.spoiler_placeholder": "ئاگادارکردنەوەی ناوەڕۆک (ئیختیاری)", "confirmation_modal.cancel": "هەڵوەشاندنەوه", "confirmations.block.confirm": "بلۆک", - "confirmations.cancel_follow_request.confirm": "داواکاری کشانەوە", - "confirmations.cancel_follow_request.message": "ئایا دڵنیای کە دەتەوێت داواکارییەکەت بۆ شوێنکەوتنی {ناو} بکشێنیتەوە؟", "confirmations.delete.confirm": "سڕینەوە", "confirmations.delete.message": "ئایا دڵنیایت لەوەی دەتەوێت ئەم توتە بسڕیتەوە?", "confirmations.delete_list.confirm": "سڕینەوە", "confirmations.delete_list.message": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی ئەم لیستە بسڕیتەوە?", "confirmations.discard_edit_media.confirm": "ڕەتکردنەوە", "confirmations.discard_edit_media.message": "گۆڕانکاریت لە وەسف یان پێشبینی میدیادا هەڵنەگیراوە، بەهەر حاڵ فڕێیان بدە؟", - "confirmations.domain_block.message": "ئایا بەڕاستی، بەڕاستی تۆ دەتەوێت هەموو {domain} بلۆک بکەیت؟ لە زۆربەی حاڵەتەکاندا چەند بلۆکێکی ئامانجدار یان بێدەنگەکان پێویست و پەسەندن. تۆ ناوەڕۆک ێک نابینیت لە دۆمەینەکە لە هیچ هێڵی کاتی گشتی یان ئاگانامەکانت. شوێنکەوتوانی تۆ لەو دۆمەینەوە لادەبرێن.", "confirmations.edit.confirm": "دەستکاری", "confirmations.edit.message": "دەستکاری کردنی ئێستا: دەبێتە هۆی نووسینەوەی ئەو پەیامەی، کە ئێستا داتدەڕشت. ئایا دڵنیای، کە دەتەوێت بەردەوام بیت؟", "confirmations.logout.confirm": "چوونە دەرەوە", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 4520663b52..d95213f9c1 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -89,7 +89,6 @@ "confirmations.delete_list.confirm": "Toglie", "confirmations.delete_list.message": "Site sicuru·a che vulete toglie sta lista?", "confirmations.discard_edit_media.confirm": "Scartà", - "confirmations.domain_block.message": "Site veramente sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà. Ùn viderete più nunda da quallà indè e linee pubbliche o e nutificazione. I vostri abbunati da stu duminiu saranu tolti.", "confirmations.logout.confirm": "Scunnettassi", "confirmations.logout.message": "Site sicuru·a che vulete scunnettà vi?", "confirmations.mute.confirm": "Piattà", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 213fe5e530..2201e68aaa 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Upozornění na obsah (nepovinné)", "confirmation_modal.cancel": "Zrušit", "confirmations.block.confirm": "Blokovat", - "confirmations.cancel_follow_request.confirm": "Zrušit žádost", - "confirmations.cancel_follow_request.message": "Opravdu chcete zrušit svou žádost o sledování {name}?", "confirmations.delete.confirm": "Smazat", "confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?", "confirmations.delete_list.confirm": "Smazat", "confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?", "confirmations.discard_edit_media.confirm": "Zahodit", "confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?", - "confirmations.domain_block.confirm": "Blokovat server", - "confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí blokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.", "confirmations.edit.confirm": "Upravit", "confirmations.edit.message": "Editovat teď znamená přepsání zprávy, kterou právě tvoříte. Opravdu chcete pokračovat?", "confirmations.logout.confirm": "Odhlásit se", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index e4c10cc142..cc9d3fd855 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -166,16 +166,12 @@ "compose_form.spoiler_placeholder": "Rhybudd cynnwys (dewisol)", "confirmation_modal.cancel": "Canslo", "confirmations.block.confirm": "Blocio", - "confirmations.cancel_follow_request.confirm": "Tynnu'r cais yn ôl", - "confirmations.cancel_follow_request.message": "Ydych chi'n siŵr eich bod am dynnu'ch cais i ddilyn {name} yn ôl?", "confirmations.delete.confirm": "Dileu", "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?", "confirmations.delete_list.confirm": "Dileu", "confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu'r rhestr hwn am byth?", "confirmations.discard_edit_media.confirm": "Dileu", "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg - eu dileu beth bynnag?", - "confirmations.domain_block.confirm": "Blocio gweinydd", - "confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu dewi pobl penodol yn broses mwy effeithiol. Fyddwch chi ddim yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.", "confirmations.edit.confirm": "Golygu", "confirmations.edit.message": "Bydd golygu nawr yn trosysgrifennu'r neges rydych yn ei ysgrifennu ar hyn o bryd. Ydych chi'n siŵr eich bod eisiau gwneud hyn?", "confirmations.logout.confirm": "Allgofnodi", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 9316884d71..039b088543 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Indholdsadvarsel (valgfri)", "confirmation_modal.cancel": "Afbryd", "confirmations.block.confirm": "Blokér", - "confirmations.cancel_follow_request.confirm": "Annullér anmodning", - "confirmations.cancel_follow_request.message": "Er du sikker på, at anmodningen om at følge {name} skal annulleres?", "confirmations.delete.confirm": "Slet", "confirmations.delete.message": "Er du sikker på, at du vil slette dette indlæg?", + "confirmations.delete.title": "Slet indlæg?", "confirmations.delete_list.confirm": "Slet", "confirmations.delete_list.message": "Er du sikker på, at du vil slette denne liste permanent?", + "confirmations.delete_list.title": "Slet liste?", "confirmations.discard_edit_media.confirm": "Kassér", "confirmations.discard_edit_media.message": "Der er ugemte ændringer i mediebeskrivelsen eller forhåndsvisningen, kassér dem alligevel?", - "confirmations.domain_block.confirm": "Blokér server", - "confirmations.domain_block.message": "Er du fuldstændig sikker på, at du vil blokere hele {domain}-domænet? Oftest vil nogle få målrettede blokeringer eller skjulninger være tilstrækkelige og at foretrække. Du vil ikke se indhold fra dette domæne i nogle offentlige tidslinjer eller i dine notifikationer, og dine følgere herfra fjernes ligeledes.", "confirmations.edit.confirm": "Redigér", "confirmations.edit.message": "Redigeres nu, overskrive den besked, der forfattes pt. Fortsæt alligevel?", + "confirmations.edit.title": "Overskriv indlæg?", "confirmations.logout.confirm": "Log ud", "confirmations.logout.message": "Er du sikker på, at du vil logge ud?", + "confirmations.logout.title": "Log ud?", "confirmations.mute.confirm": "Skjul (mute)", "confirmations.redraft.confirm": "Slet og omformulér", "confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og boosts går tabt, og svar til det oprindelige indlæg mister tilknytningen.", + "confirmations.redraft.title": "Slet og omformulér indlæg?", "confirmations.reply.confirm": "Svar", "confirmations.reply.message": "Hvis du svarer nu, vil det overskrive den besked, du er ved at skrive. Fortsæt alligevel?", + "confirmations.reply.title": "Overskriv indlæg?", "confirmations.unfollow.confirm": "Følg ikke længere", "confirmations.unfollow.message": "Er du sikker på, at du ikke længere vil følge {name}?", + "confirmations.unfollow.title": "Følg ikke længere bruger?", "conversation.delete": "Slet samtale", "conversation.mark_as_read": "Markér som læst", "conversation.open": "Vis samtale", @@ -507,6 +510,7 @@ "notification_requests.title": "Filtrerede notifikationer", "notifications.clear": "Ryd notifikationer", "notifications.clear_confirmation": "Er du sikker på, at du vil rydde alle dine notifikationer permanent?", + "notifications.clear_title": "Ryd notifikationer?", "notifications.column_settings.admin.report": "Nye anmeldelser:", "notifications.column_settings.admin.sign_up": "Nye tilmeldinger:", "notifications.column_settings.alert": "Computernotifikationer", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 3ba058b9a7..78237e45cf 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Inhaltswarnung (optional)", "confirmation_modal.cancel": "Abbrechen", "confirmations.block.confirm": "Blockieren", - "confirmations.cancel_follow_request.confirm": "Anfrage zurückziehen", - "confirmations.cancel_follow_request.message": "Möchtest du deine Anfrage, {name} zu folgen, wirklich zurückziehen?", "confirmations.delete.confirm": "Löschen", "confirmations.delete.message": "Möchtest du diesen Beitrag wirklich löschen?", + "confirmations.delete.title": "Beitrag löschen?", "confirmations.delete_list.confirm": "Löschen", "confirmations.delete_list.message": "Möchtest du diese Liste für immer löschen?", + "confirmations.delete_list.title": "Liste löschen?", "confirmations.discard_edit_media.confirm": "Verwerfen", "confirmations.discard_edit_media.message": "Du hast Änderungen an der Medienbeschreibung oder -vorschau vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?", - "confirmations.domain_block.confirm": "Server blockieren", - "confirmations.domain_block.message": "Möchtest du die gesamte Domain {domain} wirklich blockieren? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.", "confirmations.edit.confirm": "Bearbeiten", "confirmations.edit.message": "Das Bearbeiten überschreibt die Nachricht, die du gerade verfasst. Möchtest du wirklich fortfahren?", + "confirmations.edit.title": "Beitrag überschreiben?", "confirmations.logout.confirm": "Abmelden", "confirmations.logout.message": "Möchtest du dich wirklich abmelden?", + "confirmations.logout.title": "Abmelden?", "confirmations.mute.confirm": "Stummschalten", "confirmations.redraft.confirm": "Löschen und neu erstellen", "confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Favoriten und geteilte Beiträge gehen verloren, und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.", + "confirmations.redraft.title": "Beitrag löschen & neu verfassen?", "confirmations.reply.confirm": "Antworten", "confirmations.reply.message": "Wenn du jetzt darauf antwortest, wird der andere Beitrag, an dem du gerade geschrieben hast, verworfen. Möchtest du wirklich fortfahren?", + "confirmations.reply.title": "Beitrag überschreiben?", "confirmations.unfollow.confirm": "Entfolgen", "confirmations.unfollow.message": "Möchtest du {name} wirklich entfolgen?", + "confirmations.unfollow.title": "Profil entfolgen?", "conversation.delete": "Unterhaltung löschen", "conversation.mark_as_read": "Als gelesen markieren", "conversation.open": "Unterhaltung anzeigen", @@ -507,6 +510,7 @@ "notification_requests.title": "Gefilterte Benachrichtigungen", "notifications.clear": "Benachrichtigungen löschen", "notifications.clear_confirmation": "Möchtest du wirklich alle Benachrichtigungen für immer löschen?", + "notifications.clear_title": "Benachrichtigungen löschen?", "notifications.column_settings.admin.report": "Neue Meldungen:", "notifications.column_settings.admin.sign_up": "Neue Registrierungen:", "notifications.column_settings.alert": "Desktop-Benachrichtigungen", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index cba2525f37..c2eb2ce904 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Προειδοποίηση περιεχομένου (προαιρετική)", "confirmation_modal.cancel": "Άκυρο", "confirmations.block.confirm": "Αποκλεισμός", - "confirmations.cancel_follow_request.confirm": "Απόσυρση αιτήματος", - "confirmations.cancel_follow_request.message": "Είσαι σίγουρος/η ότι θέλεις να αποσύρεις το αίτημά σου να ακολουθείς τον/την {name};", "confirmations.delete.confirm": "Διαγραφή", "confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή τη δημοσίευση;", "confirmations.delete_list.confirm": "Διαγραφή", "confirmations.delete_list.message": "Σίγουρα θες να διαγράψεις οριστικά αυτή τη λίστα;", "confirmations.discard_edit_media.confirm": "Απόρριψη", "confirmations.discard_edit_media.message": "Έχεις μη αποθηκευμένες αλλαγές στην περιγραφή πολυμέσων ή στην προεπισκόπηση, απόρριψη ούτως ή άλλως;", - "confirmations.domain_block.confirm": "Αποκλεισμός διακομιστή", - "confirmations.domain_block.message": "Σίγουρα θες να αποκλείσεις ολόκληρο τον {domain}; Συνήθως μερικοί συγκεκρίμένοι αποκλεισμοί ή σιγάσεις επαρκούν και προτιμούνται. Δεν θα βλέπεις περιεχόμενο από αυτό τον τομέα σε καμία δημόσια ροή ή στις ειδοποιήσεις σου. Όσους ακόλουθους έχεις αυτό αυτό τον τομέα θα αφαιρεθούν.", "confirmations.edit.confirm": "Επεξεργασία", "confirmations.edit.message": "Αν το επεξεργαστείς τώρα θα αντικατασταθεί το μήνυμα που συνθέτεις. Είσαι σίγουρος ότι θέλεις να συνεχίσεις;", "confirmations.logout.confirm": "Αποσύνδεση", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 47214bb383..9e4331c56b 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Content warning (optional)", "confirmation_modal.cancel": "Cancel", "confirmations.block.confirm": "Block", - "confirmations.cancel_follow_request.confirm": "Withdraw request", - "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this post?", "confirmations.delete_list.confirm": "Delete", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.discard_edit_media.confirm": "Discard", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", - "confirmations.domain_block.confirm": "Block server", - "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", "confirmations.edit.confirm": "Edit", "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 211f4ad8d9..de91fb39dc 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -150,15 +150,12 @@ "compose_form.spoiler.unmarked": "Aldoni averton de enhavo", "confirmation_modal.cancel": "Nuligi", "confirmations.block.confirm": "Bloki", - "confirmations.cancel_follow_request.confirm": "Eksigi peton", - "confirmations.cancel_follow_request.message": "Ĉu vi certas ke vi volas eksigi vian peton por sekvi {name}?", "confirmations.delete.confirm": "Forigi", "confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun afiŝon?", "confirmations.delete_list.confirm": "Forigi", "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?", "confirmations.discard_edit_media.confirm": "Forĵeti", "confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭmontro de la plurmedio, ĉu vi forĵetu ilin malgraŭe?", - "confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika templinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.", "confirmations.edit.confirm": "Redakti", "confirmations.edit.message": "Redakti nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?", "confirmations.logout.confirm": "Adiaŭi", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 2e22865493..cbb99ddd6f 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)", "confirmation_modal.cancel": "Cancelar", "confirmations.block.confirm": "Bloquear", - "confirmations.cancel_follow_request.confirm": "Retirar solicitud", - "confirmations.cancel_follow_request.message": "¿Estás seguro que querés retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro que querés eliminar este mensaje?", + "confirmations.delete.title": "¿Eliminar publicación?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?", + "confirmations.delete_list.title": "¿Eliminar lista?", "confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.message": "Tenés cambios sin guardar en la descripción de medios o en la vista previa, ¿querés descartarlos de todos modos?", - "confirmations.domain_block.confirm": "Bloquear servidor", - "confirmations.domain_block.message": "¿Estás completamente seguro que querés bloquear el {domain} entero? En la mayoría de los casos, unos cuantos bloqueos y silenciados puntuales son suficientes y preferibles. No vas a ver contenido de ese dominio en ninguna de tus líneas temporales o en tus notificaciones. Tus seguidores de ese dominio serán quitados.", "confirmations.edit.confirm": "Editar", "confirmations.edit.message": "Editar ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?", + "confirmations.edit.title": "¿Sobrescribir publicación?", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?", + "confirmations.logout.title": "¿Cerrar sesión?", "confirmations.mute.confirm": "Silenciar", "confirmations.redraft.confirm": "Eliminar mensaje original y editarlo", "confirmations.redraft.message": "¿Estás seguro que querés eliminar este mensaje y volver a editarlo? Se perderán las veces marcadas como favorito y sus adhesiones, y las respuestas al mensaje original quedarán huérfanas.", + "confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Responder ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?", + "confirmations.reply.title": "¿Sobrescribir publicación?", "confirmations.unfollow.confirm": "Dejar de seguir", "confirmations.unfollow.message": "¿Estás seguro que querés dejar de seguir a {name}?", + "confirmations.unfollow.title": "¿Dejar de seguir al usuario?", "conversation.delete": "Eliminar conversación", "conversation.mark_as_read": "Marcar como leída", "conversation.open": "Ver conversación", @@ -507,6 +510,7 @@ "notification_requests.title": "Notificaciones filtradas", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?", + "notifications.clear_title": "¿Borrar notificaciones?", "notifications.column_settings.admin.report": "Nuevas denuncias:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 837bbbc2ce..3adc914663 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)", "confirmation_modal.cancel": "Cancelar", "confirmations.block.confirm": "Bloquear", - "confirmations.cancel_follow_request.confirm": "Retirar solicitud", - "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?", + "confirmations.delete.title": "¿Eliminar publicación?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", + "confirmations.delete_list.title": "¿Eliminar lista?", "confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo, ¿deseas descartarlos de cualquier manera?", - "confirmations.domain_block.confirm": "Bloquear servidor", - "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.", "confirmations.edit.confirm": "Editar", "confirmations.edit.message": "Editar sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?", + "confirmations.edit.title": "¿Sobrescribir publicación?", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?", + "confirmations.logout.title": "¿Cerrar sesión?", "confirmations.mute.confirm": "Silenciar", "confirmations.redraft.confirm": "Borrar y volver a borrador", "confirmations.redraft.message": "¿Estás seguro que quieres borrar esta publicación y editarla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán separadas.", + "confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?", + "confirmations.reply.title": "¿Sobrescribir publicación?", "confirmations.unfollow.confirm": "Dejar de seguir", "confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?", + "confirmations.unfollow.title": "¿Dejar de seguir al usuario?", "conversation.delete": "Borrar conversación", "conversation.mark_as_read": "Marcar como leído", "conversation.open": "Ver conversación", @@ -507,6 +510,7 @@ "notification_requests.title": "Notificaciones filtradas", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Seguro de querer borrar permanentemente todas tus notificaciones?", + "notifications.clear_title": "¿Borrar notificaciones?", "notifications.column_settings.admin.report": "Nuevas denuncias:", "notifications.column_settings.admin.sign_up": "Registros nuevos:", "notifications.column_settings.alert": "Notificaciones de escritorio", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index a6cecf1605..8135f9c353 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)", "confirmation_modal.cancel": "Cancelar", "confirmations.block.confirm": "Bloquear", - "confirmations.cancel_follow_request.confirm": "Retirar solicitud", - "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro de que quieres borrar esta publicación?", + "confirmations.delete.title": "¿Eliminar publicación?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", + "confirmations.delete_list.title": "¿Eliminar lista?", "confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo audiovisual, ¿descartarlos de todos modos?", - "confirmations.domain_block.confirm": "Bloquear servidor", - "confirmations.domain_block.message": "¿Seguro que quieres bloquear todo el dominio {domain}? En general, unos cuantos bloqueos y silenciados concretos es suficiente y preferible. No verás contenido del dominio en ninguna cronología pública ni en tus notificaciones. Se eliminarán tus seguidores procedentes de ese dominio.", "confirmations.edit.confirm": "Editar", "confirmations.edit.message": "Editar ahora reemplazará el mensaje que estás escribiendo. ¿Seguro que quieres proceder?", + "confirmations.edit.title": "¿Sobrescribir publicación?", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Seguro que quieres cerrar la sesión?", + "confirmations.logout.title": "¿Cerrar sesión?", "confirmations.mute.confirm": "Silenciar", "confirmations.redraft.confirm": "Borrar y volver a borrador", "confirmations.redraft.message": "¿Estás seguro de querer borrar esta publicación y reescribirla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán sin contexto.", + "confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Seguro que deseas continuar?", + "confirmations.reply.title": "¿Sobrescribir publicación?", "confirmations.unfollow.confirm": "Dejar de seguir", "confirmations.unfollow.message": "¿Seguro que quieres dejar de seguir a {name}?", + "confirmations.unfollow.title": "¿Dejar de seguir al usuario?", "conversation.delete": "Borrar conversación", "conversation.mark_as_read": "Marcar como leído", "conversation.open": "Ver conversación", @@ -507,6 +510,7 @@ "notification_requests.title": "Notificaciones filtradas", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?", + "notifications.clear_title": "¿Borrar notificaciones?", "notifications.column_settings.admin.report": "Nuevos informes:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index b07229adec..4bd997801c 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -166,16 +166,12 @@ "compose_form.spoiler_placeholder": "Sisuhoiatus (valikuline)", "confirmation_modal.cancel": "Katkesta", "confirmations.block.confirm": "Blokeeri", - "confirmations.cancel_follow_request.confirm": "Tühista taotlus", - "confirmations.cancel_follow_request.message": "Oled kindel, et soovid kasutaja {name} jälgimistaotluse tagasi võtta?", "confirmations.delete.confirm": "Kustuta", "confirmations.delete.message": "Oled kindel, et soovid postituse kustutada?", "confirmations.delete_list.confirm": "Kustuta", "confirmations.delete_list.message": "Oled kindel, et soovid selle loetelu pöördumatult kustutada?", "confirmations.discard_edit_media.confirm": "Hülga", "confirmations.discard_edit_media.message": "Sul on salvestamata muudatusi meediakirjelduses või eelvaates, kas hülgad need?", - "confirmations.domain_block.confirm": "Blokeeri server", - "confirmations.domain_block.message": "Oled ikka päris-päris kindel, et soovid blokeerida terve {domain}? Enamikel juhtudel piisab mõnest sihitud blokist või vaigistusest, mis on eelistatavam. Sa ei näe selle domeeni sisu ühelgi avalikul ajajoonel või enda teadetes. Su jälgijad sellest domeenist eemaldatakse.", "confirmations.edit.confirm": "Muuda", "confirmations.edit.message": "Muutes praegu kirjutatakse hetkel loodav sõnum üle. Kas oled kindel, et soovid jätkata?", "confirmations.logout.confirm": "Välju", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index bd1b51ba3e..28c1a06d58 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -166,23 +166,23 @@ "compose_form.spoiler_placeholder": "Edukiaren abisua (aukerakoa)", "confirmation_modal.cancel": "Utzi", "confirmations.block.confirm": "Blokeatu", - "confirmations.cancel_follow_request.confirm": "Baztertu eskaera", - "confirmations.cancel_follow_request.message": "Ziur {name} jarraitzeko eskaera bertan behera utzi nahi duzula?", "confirmations.delete.confirm": "Ezabatu", "confirmations.delete.message": "Ziur bidalketa hau ezabatu nahi duzula?", + "confirmations.delete.title": "Ezabatu bidalketa?", "confirmations.delete_list.confirm": "Ezabatu", "confirmations.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?", + "confirmations.delete_list.title": "Ezabatu zerrenda?", "confirmations.discard_edit_media.confirm": "Baztertu", "confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?", - "confirmations.domain_block.confirm": "Blokeatu zerbitzaria", - "confirmations.domain_block.message": "Ziur, erabat ziur, {domain} domeinu osoa blokeatu nahi duzula? Gehienetan gutxi batzuk blokeatu edo mututzearekin nahikoa da. Ez duzu domeinu horretako edukirik ikusiko denbora lerroetan edo jakinarazpenetan. Domeinu horretako zure jarraitzaileak kenduko dira ere.", "confirmations.edit.confirm": "Editatu", "confirmations.edit.message": "Orain editatzen baduzu, une honetan idazten ari zaren mezua gainidatziko da. Ziur jarraitu nahi duzula?", "confirmations.logout.confirm": "Amaitu saioa", "confirmations.logout.message": "Ziur saioa amaitu nahi duzula?", + "confirmations.logout.title": "Itxi saioa?", "confirmations.mute.confirm": "Mututu", "confirmations.redraft.confirm": "Ezabatu eta berridatzi", "confirmations.redraft.message": "Ziur argitalpen hau ezabatu eta zirriborroa berriro egitea nahi duzula? Gogokoak eta bultzadak galduko dira, eta jatorrizko argitalpenaren erantzunak zurtz geratuko dira.", + "confirmations.redraft.title": "Ezabatu eta berridatzi bidalketa?", "confirmations.reply.confirm": "Erantzun", "confirmations.reply.message": "Orain erantzuteak idazten ari zaren mezua gainidatziko du. Ziur jarraitu nahi duzula?", "confirmations.unfollow.confirm": "Utzi jarraitzeari", @@ -492,9 +492,12 @@ "notification_requests.title": "Iragazitako jakinarazpenak", "notifications.clear": "Garbitu jakinarazpenak", "notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?", + "notifications.clear_title": "Garbitu jakinarazpenak?", "notifications.column_settings.admin.report": "Txosten berriak:", "notifications.column_settings.admin.sign_up": "Izen-emate berriak:", "notifications.column_settings.alert": "Mahaigaineko jakinarazpenak", + "notifications.column_settings.beta.category": "Ezaugarri esperimentalak", + "notifications.column_settings.beta.grouping": "Multzokatu jakinarazpenak", "notifications.column_settings.favourite": "Gogokoak:", "notifications.column_settings.filter_bar.advanced": "Bistaratu kategoria guztiak", "notifications.column_settings.filter_bar.category": "Iragazki-barra bizkorra", @@ -659,8 +662,11 @@ "report_notification.attached_statuses": "{count, plural, one {Bidalketa {count}} other {{count} bidalketa}} erantsita", "report_notification.categories.legal": "Legala", "report_notification.categories.other": "Bestelakoak", + "report_notification.categories.other_sentence": "bestelakoak", "report_notification.categories.spam": "Spam", + "report_notification.categories.spam_sentence": "spama", "report_notification.categories.violation": "Arau haustea", + "report_notification.categories.violation_sentence": "arau haustea", "report_notification.open": "Ireki salaketa", "search.no_recent_searches": "Duela gutxiko bilaketarik ez", "search.placeholder": "Bilatu", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 9dc429f7de..28b4a29cb9 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -158,15 +158,12 @@ "compose_form.spoiler_placeholder": "هشدار محتوا (اختیاری)", "confirmation_modal.cancel": "لغو", "confirmations.block.confirm": "انسداد", - "confirmations.cancel_follow_request.confirm": "رد کردن درخواست", - "confirmations.cancel_follow_request.message": "مطمئنید که می خواهید درخواست پی‌گیری {name} را لغو کنید؟", "confirmations.delete.confirm": "حذف", "confirmations.delete.message": "آیا مطمئنید که می‌خواهید این فرسته را حذف کنید؟", "confirmations.delete_list.confirm": "حذف", "confirmations.delete_list.message": "مطمئنید می‌خواهید این سیاهه را برای همیشه حذف کنید؟", "confirmations.discard_edit_media.confirm": "دور انداختن", "confirmations.discard_edit_media.message": "تغییرات ذخیره نشده‌ای در توضیحات یا پیش‌نمایش رسانه دارید. همگی نادیده گرفته شوند؟", - "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدود کردن یا خموشاندن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ محتوایی را از این دامنه در خط زمانی عمومی یا آگاهی‌هایتان نخواهید دید. پی‌گیرانتان از این دامنه هم برداشته خواهند شد.", "confirmations.edit.confirm": "ویرایش", "confirmations.edit.message": "در صورت ویرایش، پیامی که در حال نوشتنش بودید از بین خواهد رفت. می‌خواهید ادامه دهید؟", "confirmations.logout.confirm": "خروج از حساب", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 5ba77dd72e..9e0db8458c 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -6,7 +6,7 @@ "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä, ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.", "about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.", "about.domain_blocks.silenced.title": "Rajoitettu", - "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.", + "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta eikä vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.", "about.domain_blocks.suspended.title": "Jäädytetty", "about.not_available": "Näitä tietoja ei ole julkaistu tällä palvelimella.", "about.powered_by": "Hajautetun sosiaalisen median tarjoaa {mastodon}", @@ -66,7 +66,7 @@ "account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", "account.unblock": "Kumoa käyttäjän @{name} esto", "account.unblock_domain": "Kumoa verkkotunnuksen {domain} esto", - "account.unblock_short": "Poista esto", + "account.unblock_short": "Kumoa esto", "account.unendorse": "Kumoa suosittelu profiilissasi", "account.unfollow": "Lopeta seuraaminen", "account.unmute": "Poista käyttäjän @{name} mykistys", @@ -82,7 +82,7 @@ "admin.impact_report.instance_followers": "Seuraajat, jotka käyttäjämme menettäisivät", "admin.impact_report.instance_follows": "Seuraajat, jotka heidän käyttäjänsä menettäisivät", "admin.impact_report.title": "Vaikutusten yhteenveto", - "alert.rate_limited.message": "Yritä uudestaan {retry_time, time, medium} jälkeen.", + "alert.rate_limited.message": "Yritä uudelleen {retry_time, time, medium} jälkeen.", "alert.rate_limited.title": "Pyyntömäärää rajoitettu", "alert.unexpected.message": "Tapahtui odottamaton virhe.", "alert.unexpected.title": "Hups!", @@ -103,7 +103,7 @@ "bundle_column_error.error.title": "Voi ei!", "bundle_column_error.network.body": "Sivun lataamisessa tapahtui virhe. Tämä voi johtua tilapäisestä Internet-yhteyden tai tämän palvelimen ongelmasta.", "bundle_column_error.network.title": "Verkkovirhe", - "bundle_column_error.retry": "Yritä uudestaan", + "bundle_column_error.retry": "Yritä uudelleen", "bundle_column_error.return": "Palaa takaisin kotiin", "bundle_column_error.routing.body": "Pyydettyä sivua ei löytynyt. Oletko varma, että osoitepalkin URL-osoite on oikein?", "bundle_column_error.routing.title": "404", @@ -111,7 +111,7 @@ "bundle_modal_error.message": "Jotain meni pieleen komponenttia ladattaessa.", "bundle_modal_error.retry": "Yritä uudelleen", "closed_registrations.other_server_instructions": "Koska Mastodon on hajautettu, voit luoda tilin toiselle palvelimelle ja olla silti vuorovaikutuksessa tämän kanssa.", - "closed_registrations_modal.description": "Tilin luonti palveluun {domain} ei tällä hetkellä ole mahdollista, mutta huomioi, ettei Mastodonin käyttö edellytä juuri kyseisen palvelun tiliä.", + "closed_registrations_modal.description": "Tilin luonti palvelimelle {domain} ei tällä hetkellä ole mahdollista, mutta huomioi, ettei Mastodonin käyttö edellytä juuri kyseisen tuon tiliä.", "closed_registrations_modal.find_another_server": "Etsi toinen palvelin", "closed_registrations_modal.preamble": "Mastodon on hajautettu, joten riippumatta siitä, missä luot tilisi, voit seurata ja olla vuorovaikutuksessa kenen tahansa kanssa tällä palvelimella. Voit jopa isännöidä palvelinta!", "closed_registrations_modal.title": "Rekisteröityminen Mastodoniin", @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Sisältövaroitus (valinnainen)", "confirmation_modal.cancel": "Peruuta", "confirmations.block.confirm": "Estä", - "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö", - "confirmations.cancel_follow_request.message": "Haluatko varmasti perua pyyntösi seurata käyttäjätiliä {name}?", "confirmations.delete.confirm": "Poista", "confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?", + "confirmations.delete.title": "Poistetaanko julkaisu?", "confirmations.delete_list.confirm": "Poista", "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?", + "confirmations.delete_list.title": "Poistetaanko lista?", "confirmations.discard_edit_media.confirm": "Hylkää", "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun. Hylätäänkö ne silti?", - "confirmations.domain_block.confirm": "Estä palvelin", - "confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkkotunnuksen {domain}? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimi. Et näe sisältöä tästä verkkotunnuksesta millään julkisilla aikajanoilla tai ilmoituksissa. Tähän verkkotunnukseen kuuluvat seuraajasi poistetaan.", "confirmations.edit.confirm": "Muokkaa", "confirmations.edit.message": "Jos muokkaat viestiä nyt, se korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?", + "confirmations.edit.title": "Korvataanko julkaisu?", "confirmations.logout.confirm": "Kirjaudu ulos", "confirmations.logout.message": "Haluatko varmasti kirjautua ulos?", + "confirmations.logout.title": "Kirjaudutaanko ulos?", "confirmations.mute.confirm": "Mykistä", "confirmations.redraft.confirm": "Poista ja palauta muokattavaksi", "confirmations.redraft.message": "Haluatko varmasti poistaa julkaisun ja tehdä siitä luonnoksen? Suosikit ja tehostukset menetetään, ja alkuperäisen julkaisun vastaukset jäävät orvoiksi.", + "confirmations.redraft.title": "Poistetaanko julkaisu ja palautetaanko se muokattavaksi?", "confirmations.reply.confirm": "Vastaa", "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?", + "confirmations.reply.title": "Korvataanko julkaisu?", "confirmations.unfollow.confirm": "Lopeta seuraaminen", "confirmations.unfollow.message": "Haluatko varmasti lopettaa profiilin {name} seuraamisen?", + "confirmations.unfollow.title": "Lopetetaanko käyttäjän seuraaminen?", "conversation.delete": "Poista keskustelu", "conversation.mark_as_read": "Merkitse luetuksi", "conversation.open": "Näytä keskustelu", @@ -205,9 +208,9 @@ "disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.", "dismissable_banner.community_timeline": "Nämä ovat tuoreimpia julkaisuja käyttäjiltä, joiden tili on palvelimella {domain}.", "dismissable_banner.dismiss": "Hylkää", - "dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat listauksessa korkeammalle.", - "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat listauksessa korkeammalle.", - "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat listauksessa korkeammalle.", + "dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat korkeammalle sijalle.", + "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat korkeammalle sijalle.", + "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat korkeammalle sijalle.", "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.", "domain_block_modal.block": "Estä palvelin", "domain_block_modal.block_account_instead": "Estä sen sijaan @{name}", @@ -254,7 +257,7 @@ "empty_column.blocks": "Et ole vielä estänyt käyttäjiä.", "empty_column.bookmarked_statuses": "Et ole vielä lisännyt julkaisuja kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!", - "empty_column.direct": "Yksityisiä mainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellaisia, näet ne täällä.", + "empty_column.direct": "Yksityismainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellainen, näet sen tässä.", "empty_column.domain_blocks": "Verkkotunnuksia ei ole vielä estetty.", "empty_column.explore_statuses": "Mikään ei ole nyt suosittua. Tarkista myöhemmin uudelleen!", "empty_column.favourited_statuses": "Sinulla ei ole vielä yhtään suosikkijulkaisua. Kun lisäät sellaisen, näkyy se tässä.", @@ -268,7 +271,7 @@ "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.", "empty_column.notification_requests": "Olet ajan tasalla! Täällä ei ole mitään uutta kerrottavaa. Kun saat uusia ilmoituksia, ne näkyvät täällä asetustesi mukaisesti.", "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.", - "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myös seurata muiden palvelimien käyttäjiä", + "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai seuraa muiden palvelinten käyttäjiä, niin saat sisältöä", "error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.", "error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.", "error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos se ei auta, voi Mastodonin käyttö ehkä onnistua eri selaimella tai natiivisovelluksella.", @@ -378,7 +381,7 @@ "keyboard_shortcuts.column": "Kohdista sarakkeeseen", "keyboard_shortcuts.compose": "Kohdista kirjoituskenttään", "keyboard_shortcuts.description": "Kuvaus", - "keyboard_shortcuts.direct": "Avaa yksityisten mainintojen sarake", + "keyboard_shortcuts.direct": "Avaa yksityismainintojen sarake", "keyboard_shortcuts.down": "Siirry listassa alaspäin", "keyboard_shortcuts.enter": "Avaa julkaisu", "keyboard_shortcuts.favourite": "Lisää julkaisu suosikkeihin", @@ -412,7 +415,7 @@ "lightbox.next": "Seuraava", "lightbox.previous": "Edellinen", "limited_account_hint.action": "Näytä profiili joka tapauksessa", - "limited_account_hint.title": "Palvelimen {domain} valvojat ovat piilottaneet tämän käyttäjätilin.", + "limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.", "link_preview.author": "Julkaissut {name}", "link_preview.more_from_author": "Lisää käyttäjältä {name}", "link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", @@ -428,7 +431,7 @@ "lists.replies_policy.list": "Listan jäsenille", "lists.replies_policy.none": "Ei kellekään", "lists.replies_policy.title": "Näytä vastaukset:", - "lists.search": "Etsi seuraamiesi henkilöiden keskuudesta", + "lists.search": "Hae seuraamistasi henkilöistä", "lists.subheading": "Omat listasi", "load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}", "loading_indicator.label": "Ladataan…", @@ -468,7 +471,7 @@ "navigation_bar.pins": "Kiinnitetyt julkaisut", "navigation_bar.preferences": "Asetukset", "navigation_bar.public_timeline": "Yleinen aikajana", - "navigation_bar.search": "Hae", + "navigation_bar.search": "Haku", "navigation_bar.security": "Turvallisuus", "not_signed_in_indicator.not_signed_in": "Sinun on kirjauduttava sisään käyttääksesi resurssia.", "notification.admin.report": "{name} raportoi käyttäjän {target}", @@ -483,9 +486,9 @@ "notification.mention": "{name} mainitsi sinut", "notification.moderation-warning.learn_more": "Lue lisää", "notification.moderation_warning": "Olet saanut moderointivaroituksen", - "notification.moderation_warning.action_delete_statuses": "Jotkin julkaisusi on poistettu.", + "notification.moderation_warning.action_delete_statuses": "Julkaisujasi on poistettu.", "notification.moderation_warning.action_disable": "Tilisi on poistettu käytöstä.", - "notification.moderation_warning.action_mark_statuses_as_sensitive": "Jotkin julkaisusi on merkitty arkaluonteisiksi.", + "notification.moderation_warning.action_mark_statuses_as_sensitive": "Julkaisujasi on merkitty arkaluonteisiksi.", "notification.moderation_warning.action_none": "Tilisi on saanut moderointivaroituksen.", "notification.moderation_warning.action_sensitive": "Tästä lähtien julkaisusi merkitään arkaluonteisiksi.", "notification.moderation_warning.action_silence": "Tiliäsi on rajoitettu.", @@ -507,7 +510,8 @@ "notification_requests.title": "Suodatetut ilmoitukset", "notifications.clear": "Tyhjennä ilmoitukset", "notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?", - "notifications.column_settings.admin.report": "Uudet ilmoitukset:", + "notifications.clear_title": "Tyhjennetäänkö ilmoitukset?", + "notifications.column_settings.admin.report": "Uudet raportit:", "notifications.column_settings.admin.sign_up": "Uudet rekisteröitymiset:", "notifications.column_settings.alert": "Työpöytäilmoitukset", "notifications.column_settings.beta.category": "Kokeelliset ominaisuudet", @@ -534,12 +538,12 @@ "notifications.filter.mentions": "Maininnat", "notifications.filter.polls": "Äänestyksen tulokset", "notifications.filter.statuses": "Päivitykset henkilöiltä, joita seuraat", - "notifications.grant_permission": "Myönnä lupa.", + "notifications.grant_permission": "Myönnä käyttöoikeus.", "notifications.group": "{count} ilmoitusta", "notifications.mark_as_read": "Merkitse jokainen ilmoitus luetuksi", "notifications.permission_denied": "Työpöytäilmoitukset eivät ole käytettävissä, koska selaimen käyttöoikeuspyyntö on aiemmin evätty", - "notifications.permission_denied_alert": "Työpöytäilmoituksia ei voi ottaa käyttöön, koska selaimen käyttöoikeus on aiemmin estetty", - "notifications.permission_required": "Työpöytäilmoitukset eivät ole käytettävissä, koska siihen tarvittavaa lupaa ei ole myönnetty.", + "notifications.permission_denied_alert": "Työpöytäilmoituksia ei voi ottaa käyttöön, koska selaimen käyttöoikeus on aiemmin evätty", + "notifications.permission_required": "Työpöytäilmoitukset eivät ole käytettävissä, koska siihen tarvittavaa käyttöoikeutta ei ole myönnetty.", "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viimeisimmän päivän aikana} other {# viime päivän aikana}}", "notifications.policy.filter_new_accounts_title": "Uudet tilit", "notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivän}} verran sinua seuranneet", @@ -586,7 +590,7 @@ "onboarding.steps.setup_profile.title": "Mukauta profiiliasi", "onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista", "onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi", - "onboarding.tips.2fa": "Tiesitkö? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeron antoa!", + "onboarding.tips.2fa": "Tiesitkö? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeron luovuttamista!", "onboarding.tips.accounts_from_other_servers": "Tiesitkö? Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjänimen jälkiosassa!", "onboarding.tips.migration": "Tiesitkö? Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!", "onboarding.tips.verification": "Tiesitkö? Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi lisäkenttään. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä asiakirjoja!", @@ -635,24 +639,24 @@ "reply_indicator.poll": "Äänestys", "report.block": "Estä", "report.block_explanation": "Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkee, että olet estänyt hänet.", - "report.categories.legal": "Juridiset tiedot", + "report.categories.legal": "Lakiseikat", "report.categories.other": "Muu", "report.categories.spam": "Roskaposti", "report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen säännöistä", "report.category.subtitle": "Valitse sopivin", "report.category.title": "Kerro meille, miksi tämä {type} pitää raportoida", - "report.category.title_account": "profiilissa", - "report.category.title_status": "julkaisussa", + "report.category.title_account": "profiili", + "report.category.title_status": "julkaisu", "report.close": "Valmis", "report.comment.title": "Onko vielä jotain muuta, mitä meidän pitäisi tietää?", - "report.forward": "Välitä kohteeseen {target}", + "report.forward": "Välitä palvelimelle {target}", "report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?", "report.mute": "Mykistä", "report.mute_explanation": "Et näe hänen julkaisujaan. Hän voi silti seurata sinua ja nähdä julkaisusi. Hän ei tiedä, että hänet on mykistetty.", "report.next": "Seuraava", "report.placeholder": "Lisäkommentit", "report.reasons.dislike": "En pidä siitä", - "report.reasons.dislike_description": "Sisältö on sen tyyppistä, ettet halua nähdä sitä", + "report.reasons.dislike_description": "Sisältö on sellaista, jota et halua nähdä", "report.reasons.legal": "Se on laitonta", "report.reasons.legal_description": "Katsot sisällön rikkovan maasi tai palvelimen kotimaan lakeja", "report.reasons.other": "Jotain muuta", @@ -663,18 +667,18 @@ "report.reasons.violation_description": "Tiedät sisällön rikkovan tiettyjä sääntöjä", "report.rules.subtitle": "Valitse kaikki sopivat", "report.rules.title": "Mitä sääntöjä rikotaan?", - "report.statuses.subtitle": "Valitse kaikki soveltuvat julkaisut", + "report.statuses.subtitle": "Valitse kaikki sopivat", "report.statuses.title": "Onko julkaisuja, jotka tukevat tätä raporttia?", "report.submit": "Lähetä", "report.target": "Raportoidaan {target}", "report.thanks.take_action": "Tässä on vaihtoehtosi hallita näkemääsi Mastodonissa:", - "report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimenpiteisiin käyttäjää @{name} vastaan:", + "report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimiin käyttäjää @{name} kohtaan:", "report.thanks.title": "Etkö halua nähdä tätä?", - "report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.", + "report.thanks.title_actionable": "Kiitos raportista – tutkimme asiaa.", "report.unfollow": "Lopeta käyttäjän @{name} seuraaminen", - "report.unfollow_explanation": "Seuraat tätä tiliä. Estääksesi tilin viestejä näykymästä kotisyötteessäsi, lopeta sen seuraaminen.", + "report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näkisi sen julkaisuja kotisyötteessäsi, lopeta tilin seuraaminen.", "report_notification.attached_statuses": "{count, plural, one {{count} julkaisu} other {{count} julkaisua}} liitteenä", - "report_notification.categories.legal": "Laillinen", + "report_notification.categories.legal": "Lakiseikat", "report_notification.categories.legal_sentence": "laiton sisältö", "report_notification.categories.other": "Muu", "report_notification.categories.other_sentence": "jokin muu", @@ -716,9 +720,9 @@ "sign_in_banner.mastodon_is": "Mastodon on paras tapa pysyä ajan tasalla siitä, mitä ympärillä tapahtuu.", "sign_in_banner.sign_in": "Kirjaudu", "sign_in_banner.sso_redirect": "Kirjaudu tai rekisteröidy", - "status.admin_account": "Avaa tilin @{name} valvontanäkymä", - "status.admin_domain": "Avaa palvelimen {domain} valvontanäkymä", - "status.admin_status": "Avaa julkaisu valvontanäkymässä", + "status.admin_account": "Avaa tilin @{name} moderointinäkymä", + "status.admin_domain": "Avaa palvelimen {domain} moderointinäkymä", + "status.admin_status": "Avaa julkaisu moderointinäkymässä", "status.block": "Estä @{name}", "status.bookmark": "Lisää kirjanmerkki", "status.cancel_reblog_private": "Peru tehostus", diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index b8a2987ef0..1bdcd6f54e 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -112,13 +112,10 @@ "compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman", "confirmation_modal.cancel": "Pagpaliban", "confirmations.block.confirm": "Harangan", - "confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan", - "confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?", "confirmations.delete.message": "Sigurado ka bang gusto mong burahin ang post na ito?", "confirmations.delete_list.confirm": "Tanggalin", "confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?", "confirmations.discard_edit_media.confirm": "Ipagpaliban", - "confirmations.domain_block.confirm": "Harangan ang serbiro", "confirmations.edit.confirm": "Baguhin", "confirmations.reply.confirm": "Tumugon", "conversation.mark_as_read": "Markahan bilang nabasa na", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index b44bc6c5d8..9f1abebad9 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Innihaldsávaring (valfrí)", "confirmation_modal.cancel": "Strika", "confirmations.block.confirm": "Banna", - "confirmations.cancel_follow_request.confirm": "Tak umbønina aftur", - "confirmations.cancel_follow_request.message": "Er tað tilætlað, at tú tekur umbønina at fylgja {name} aftur?", "confirmations.delete.confirm": "Strika", "confirmations.delete.message": "Er tað tilætlað, at tú strikar hetta uppslagið?", + "confirmations.delete.title": "Strika post?", "confirmations.delete_list.confirm": "Strika", "confirmations.delete_list.message": "Ert tú vís/ur í, at tú vilt strika hetta uppslagið?", + "confirmations.delete_list.title": "Strika lista?", "confirmations.discard_edit_media.confirm": "Vraka", "confirmations.discard_edit_media.message": "Tú hevur broytingar í miðlalýsingini ella undansýningini, sum ikki eru goymdar. Vilt tú kortini vraka?", - "confirmations.domain_block.confirm": "Banna ambætara", - "confirmations.domain_block.message": "Ert tú púra, púra vís/ur í, at tú vilt banna øllum {domain}? Í flestu førum er nóg mikið og betri, bert at banna ella doyva onkrum ávísum. Tú fert eingi evni at síggja frá økisnavninum á nakrari almennari tíðarrás ella í tínum fráboðanum. Tínir fylgjarar undir økisnavninum verða eisini strikaðir.", "confirmations.edit.confirm": "Rætta", "confirmations.edit.message": "Rættingar, sum verða gjørdar nú, skriva yvir boðini, sum tú ert í holt við. Ert tú vís/ur í, at tú vilt halda fram?", + "confirmations.edit.title": "Skriva omaná post?", "confirmations.logout.confirm": "Rita út", "confirmations.logout.message": "Ert tú vís/ur í, at tú vilt útrita teg?", + "confirmations.logout.title": "Rita út?", "confirmations.mute.confirm": "Doyv", "confirmations.redraft.confirm": "Sletta og skriva umaftur", "confirmations.redraft.message": "Vilt tú veruliga strika hendan postin og í staðin gera hann til eina nýggja kladdu? Yndisfrámerki og framhevjanir blíva burtur, og svar til upprunapostin missa tilknýtið.", + "confirmations.redraft.title": "Strika & ger nýtt uppskot um post?", "confirmations.reply.confirm": "Svara", "confirmations.reply.message": "Svarar tú nú, verða boðini, sum tú ert í holt við at skriva yvirskrivað. Ert tú vís/ur í, at tú vilt halda fram?", + "confirmations.reply.title": "Skriva omaná post?", "confirmations.unfollow.confirm": "Fylg ikki", "confirmations.unfollow.message": "Ert tú vís/ur í, at tú vil steðga við at fylgja {name}?", + "confirmations.unfollow.title": "Gevst at fylgja brúkara?", "conversation.delete": "Strika samrøðu", "conversation.mark_as_read": "Merk sum lisið", "conversation.open": "Vís samrøðu", @@ -507,6 +510,7 @@ "notification_requests.title": "Sáldaðar fráboðanir", "notifications.clear": "Rudda fráboðanir", "notifications.clear_confirmation": "Ert tú vís/ur í, at tú vilt strika allar tínar fráboðanir?", + "notifications.clear_title": "Rudda fráboðanir?", "notifications.column_settings.admin.report": "Nýggjar fráboðanir:", "notifications.column_settings.admin.sign_up": "Nýggjar tilmeldingar:", "notifications.column_settings.alert": "Skriviborðsfráboðanir", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 94b73bbf18..b4e519303c 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -166,27 +166,30 @@ "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)", "confirmation_modal.cancel": "Annuler", "confirmations.block.confirm": "Bloquer", - "confirmations.cancel_follow_request.confirm": "Retirer cette demande", - "confirmations.cancel_follow_request.message": "Êtes-vous sûr de vouloir retirer votre demande pour suivre {name}?", "confirmations.delete.confirm": "Supprimer", "confirmations.delete.message": "Voulez-vous vraiment supprimer cette publication?", + "confirmations.delete.title": "Supprimer la publication ?", "confirmations.delete_list.confirm": "Supprimer", "confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?", + "confirmations.delete_list.title": "Supprimer la liste ?", "confirmations.discard_edit_media.confirm": "Rejeter", "confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, voulez-vous quand même les supprimer?", - "confirmations.domain_block.confirm": "Bloquer le serveur", - "confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.", "confirmations.edit.confirm": "Éditer", "confirmations.edit.message": "Modifier maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?", + "confirmations.edit.title": "Remplacer le message ?", "confirmations.logout.confirm": "Se déconnecter", "confirmations.logout.message": "Voulez-vous vraiment vous déconnecter?", + "confirmations.logout.title": "Se déconnecter ?", "confirmations.mute.confirm": "Masquer", "confirmations.redraft.confirm": "Supprimer et réécrire", "confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer cette publication pour la réécrire? Ses ses mises en favori et boosts seront perdus et ses réponses seront orphelines.", + "confirmations.redraft.title": "Supprimer et réécrire le message ?", "confirmations.reply.confirm": "Répondre", "confirmations.reply.message": "Répondre maintenant écrasera le message que vous rédigez présentement. Voulez-vous vraiment continuer?", + "confirmations.reply.title": "Remplacer le message ?", "confirmations.unfollow.confirm": "Ne plus suivre", "confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name}?", + "confirmations.unfollow.title": "Se désabonner de l'utilisateur ?", "conversation.delete": "Supprimer cette conversation", "conversation.mark_as_read": "Marquer comme lu", "conversation.open": "Afficher cette conversation", @@ -480,6 +483,7 @@ "notification_requests.title": "Notifications filtrées", "notifications.clear": "Effacer notifications", "notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications?", + "notifications.clear_title": "Effacer les notifications ?", "notifications.column_settings.admin.report": "Nouveaux signalements:", "notifications.column_settings.admin.sign_up": "Nouvelles inscriptions:", "notifications.column_settings.alert": "Notifications navigateur", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index fd256fe716..8aeb59f79f 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -166,27 +166,30 @@ "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)", "confirmation_modal.cancel": "Annuler", "confirmations.block.confirm": "Bloquer", - "confirmations.cancel_follow_request.confirm": "Retirer la demande", - "confirmations.cancel_follow_request.message": "Êtes-vous sûr de vouloir retirer votre demande pour suivre {name} ?", "confirmations.delete.confirm": "Supprimer", "confirmations.delete.message": "Voulez-vous vraiment supprimer ce message ?", + "confirmations.delete.title": "Supprimer la publication ?", "confirmations.delete_list.confirm": "Supprimer", "confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste ?", + "confirmations.delete_list.title": "Supprimer la liste ?", "confirmations.discard_edit_media.confirm": "Rejeter", "confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, les supprimer quand même ?", - "confirmations.domain_block.confirm": "Bloquer le serveur", - "confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.", "confirmations.edit.confirm": "Modifier", "confirmations.edit.message": "Modifier maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?", + "confirmations.edit.title": "Remplacer le message ?", "confirmations.logout.confirm": "Se déconnecter", "confirmations.logout.message": "Voulez-vous vraiment vous déconnecter ?", + "confirmations.logout.title": "Se déconnecter ?", "confirmations.mute.confirm": "Masquer", "confirmations.redraft.confirm": "Supprimer et ré-écrire", "confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer cette publication pour la réécrire ? Ses partages ainsi que ses mises en favori seront perdus et ses réponses seront orphelines.", + "confirmations.redraft.title": "Supprimer et réécrire le message ?", "confirmations.reply.confirm": "Répondre", "confirmations.reply.message": "Répondre maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?", + "confirmations.reply.title": "Remplacer le message ?", "confirmations.unfollow.confirm": "Ne plus suivre", "confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name} ?", + "confirmations.unfollow.title": "Se désabonner de l'utilisateur ?", "conversation.delete": "Supprimer la conversation", "conversation.mark_as_read": "Marquer comme lu", "conversation.open": "Afficher la conversation", @@ -480,6 +483,7 @@ "notification_requests.title": "Notifications filtrées", "notifications.clear": "Effacer les notifications", "notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications ?", + "notifications.clear_title": "Effacer les notifications ?", "notifications.column_settings.admin.report": "Nouveaux signalements :", "notifications.column_settings.admin.sign_up": "Nouvelles inscriptions :", "notifications.column_settings.alert": "Notifications du navigateur", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 49b8931d50..093298f156 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Ynhâldswarskôging (opsjoneel)", "confirmation_modal.cancel": "Annulearje", "confirmations.block.confirm": "Blokkearje", - "confirmations.cancel_follow_request.confirm": "Fersyk annulearje", - "confirmations.cancel_follow_request.message": "Binne jo wis dat jo jo fersyk om {name} te folgjen annulearje wolle?", "confirmations.delete.confirm": "Fuortsmite", "confirmations.delete.message": "Binne jo wis dat jo dit berjocht fuortsmite wolle?", "confirmations.delete_list.confirm": "Fuortsmite", "confirmations.delete_list.message": "Binne jo wis dat jo dizze list foar permanint fuortsmite wolle?", "confirmations.discard_edit_media.confirm": "Fuortsmite", "confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?", - "confirmations.domain_block.confirm": "Server blokkearje", - "confirmations.domain_block.message": "Binne jo echt wis dat jo alles fan {domain} negearje wolle? Yn de measte gefallen is it blokkearjen of negearjen fan in pear spesifike persoanen genôch en better. Jo sille gjin berjochten fan dizze server op iepenbiere tiidlinen sjen of yn jo meldingen. Jo folgers fan dizze server wurde fuortsmiten.", "confirmations.edit.confirm": "Bewurkje", "confirmations.edit.message": "Troch no te bewurkjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?", "confirmations.logout.confirm": "Ofmelde", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 711c97f66c..9f5f8c773f 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Rabhadh ábhair (roghnach)", "confirmation_modal.cancel": "Cealaigh", "confirmations.block.confirm": "Bac", - "confirmations.cancel_follow_request.confirm": "Éirigh as iarratas", - "confirmations.cancel_follow_request.message": "An bhfuil tú cinnte gur mhaith leat éirigh as an iarratas leanta {name}?", "confirmations.delete.confirm": "Scrios", "confirmations.delete.message": "An bhfuil tú cinnte gur mhaith leat an phostáil seo a scriosadh?", + "confirmations.delete.title": "Scrios postáil?", "confirmations.delete_list.confirm": "Scrios", "confirmations.delete_list.message": "An bhfuil tú cinnte gur mhaith leat an liosta seo a scriosadh go buan?", + "confirmations.delete_list.title": "Scrios liosta?", "confirmations.discard_edit_media.confirm": "Faigh réidh de", "confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?", - "confirmations.domain_block.confirm": "Bloc freastalaí", - "confirmations.domain_block.message": "An bhfuil tú iontach cinnte gur mhaith leat bac an t-ainm fearainn {domain} in iomlán? I bhformhór na gcásanna, is leor agus is fearr cúpla baic a cur i bhfeidhm nó cúpla úsáideoirí a balbhú. Ní fheicfidh tú ábhair ón t-ainm fearainn sin in amlíne ar bith, nó i d'fhógraí. Scaoilfear do leantóirí ón ainm fearainn sin.", "confirmations.edit.confirm": "Eagar", "confirmations.edit.message": "Má dhéanann tú eagarthóireacht anois, déanfar an teachtaireacht atá á cumadh agat faoi láthair a fhorscríobh. An bhfuil tú cinnte gur mhaith leat leanúint ar aghaidh?", + "confirmations.edit.title": "Forscríobh postáil?", "confirmations.logout.confirm": "Logáil amach", "confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?", + "confirmations.logout.title": "Logáil Amach?", "confirmations.mute.confirm": "Balbhaigh", "confirmations.redraft.confirm": "Scrios ⁊ athdhréachtaigh", "confirmations.redraft.message": "An bhfuil tú cinnte gur mhaith leat an postáil seo a scriosadh agus é a athdhréachtú? Caillfear ceanáin agus treisithe, agus dílleachtaí freagraí ar an mbunphostála.", + "confirmations.redraft.title": "Scrios & athdhréachtú postáil?", "confirmations.reply.confirm": "Freagair", "confirmations.reply.message": "Scriosfaidh freagra láithreach an teachtaireacht atá a chumadh anois agat. An bhfuil tú cinnte gur mhaith leat leanúint leat?", + "confirmations.reply.title": "Forscríobh postáil?", "confirmations.unfollow.confirm": "Ná lean", "confirmations.unfollow.message": "An bhfuil tú cinnte gur mhaith leat {name} a dhíleanúint?", + "confirmations.unfollow.title": "Dílean ​​an t-úsáideoir?", "conversation.delete": "Scrios comhrá", "conversation.mark_as_read": "Marcáil mar léite", "conversation.open": "Féach ar comhrá", @@ -507,6 +510,7 @@ "notification_requests.title": "Fógraí scagtha", "notifications.clear": "Glan fógraí", "notifications.clear_confirmation": "An bhfuil tú cinnte gur mhaith leat d'fhógraí go léir a ghlanadh go buan?", + "notifications.clear_title": "Glan fógraí?", "notifications.column_settings.admin.report": "Tuairiscí nua:", "notifications.column_settings.admin.sign_up": "Clárúcháin nua:", "notifications.column_settings.alert": "Fógraí deisce", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index f5488cfce4..a4db109348 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -166,16 +166,12 @@ "compose_form.spoiler_placeholder": "Rabhadh susbainte (roghainneil)", "confirmation_modal.cancel": "Sguir dheth", "confirmations.block.confirm": "Bac", - "confirmations.cancel_follow_request.confirm": "Cuir d’ iarrtas dhan dàrna taobh", - "confirmations.cancel_follow_request.message": "A bheil thu cinnteach gu bheil thu airson d’ iarrtas airson {name} a leantainn a chur dhan dàrna taobh?", "confirmations.delete.confirm": "Sguab às", "confirmations.delete.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às?", "confirmations.delete_list.confirm": "Sguab às", "confirmations.delete_list.message": "A bheil thu cinnteach gu bheil thu airson an liosta seo a sguabadh às gu buan?", "confirmations.discard_edit_media.confirm": "Tilg air falbh", "confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?", - "confirmations.domain_block.confirm": "Bac am frithealaiche", - "confirmations.domain_block.message": "A bheil thu cinnteach dha-rìribh gu bheil thu airson an àrainn {domain} a bhacadh uile gu lèir? Mar as trice, foghnaidh gun dèan thu bacadh no mùchadh no dhà gu sònraichte agus bhiodh sin na b’ fheàrr. Chan fhaic thu susbaint on àrainn ud air loidhne-ama phoblach sam bith no am measg nam brathan agad. Thèid an luchd-leantainn agad on àrainn ud a thoirt air falbh.", "confirmations.edit.confirm": "Deasaich", "confirmations.edit.message": "Ma nì thu deasachadh an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.logout.confirm": "Clàraich a-mach", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index d64789b86c..a60fa91504 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Aviso sobre o contido (optativo)", "confirmation_modal.cancel": "Cancelar", "confirmations.block.confirm": "Bloquear", - "confirmations.cancel_follow_request.confirm": "Retirar solicitude", - "confirmations.cancel_follow_request.message": "Tes a certeza de querer retirar a solicitude para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "Tes a certeza de querer eliminar esta publicación?", + "confirmations.delete.title": "Eliminar a publicación?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "Tes a certeza de querer eliminar de xeito permanente esta listaxe?", + "confirmations.delete_list.title": "Eliminar a lista?", "confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.message": "Tes cambios sen gardar para a vista previa ou descrición do multimedia, descartamos os cambios?", - "confirmations.domain_block.confirm": "Bloquear servidor", - "confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. As túas seguidoras deste dominio serán eliminadas.", "confirmations.edit.confirm": "Editar", "confirmations.edit.message": "Ao editar sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?", + "confirmations.edit.title": "Editar a publicación?", "confirmations.logout.confirm": "Pechar sesión", "confirmations.logout.message": "Desexas pechar a sesión?", + "confirmations.logout.title": "Pechar sesión?", "confirmations.mute.confirm": "Acalar", "confirmations.redraft.confirm": "Eliminar e reescribir", "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicación e reescribila? Perderás as promocións e favorecementos, e as respostas á publicación orixinal ficarán orfas.", + "confirmations.redraft.title": "Eliminar e reescribir a publicación?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Ao responder sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?", + "confirmations.reply.title": "Editar a publicación?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "Desexas deixar de seguir a {name}?", + "confirmations.unfollow.title": "Deixar de seguir á usuaria?", "conversation.delete": "Eliminar conversa", "conversation.mark_as_read": "Marcar como lido", "conversation.open": "Ver conversa", @@ -507,6 +510,7 @@ "notification_requests.title": "Notificacións filtradas", "notifications.clear": "Limpar notificacións", "notifications.clear_confirmation": "Tes a certeza de querer limpar de xeito permanente todas as túas notificacións?", + "notifications.clear_title": "Limpar as notificacións?", "notifications.column_settings.admin.report": "Novas denuncias:", "notifications.column_settings.admin.sign_up": "Novas usuarias:", "notifications.column_settings.alert": "Notificacións de escritorio", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 3687df7b87..da90494804 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "אזהרת תוכן (לא חובה)", "confirmation_modal.cancel": "ביטול", "confirmations.block.confirm": "לחסום", - "confirmations.cancel_follow_request.confirm": "ויתור על בקשה", - "confirmations.cancel_follow_request.message": "לבטל את בקשת המעקב אחרי {name}?", "confirmations.delete.confirm": "למחוק", "confirmations.delete.message": "בטוח/ה שאת/ה רוצה למחוק את ההודעה?", "confirmations.delete_list.confirm": "למחוק", "confirmations.delete_list.message": "האם אתם בטוחים שאתם רוצים למחוק את הרשימה לצמיתות?", "confirmations.discard_edit_media.confirm": "השלך", "confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?", - "confirmations.domain_block.confirm": "חסימת שרת", - "confirmations.domain_block.message": "בטוחה שברצונך באמת לחסום את קהילת {domain}? ברב המקרים השתקה וחסימה של מספר משתמשים עשוייה להספיק. לא תראי תוכל מכלל שם המתחם בפידים הציבוריים או בהתראות שלך. העוקבים שלך מהקהילה הזאת יוסרו", "confirmations.edit.confirm": "עריכה", "confirmations.edit.message": "עריכה תדרוס את ההודעה שכבר התחלת לכתוב. האם להמשיך?", "confirmations.logout.confirm": "התנתקות", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 89c71207f0..c2a961b32c 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -166,16 +166,12 @@ "compose_form.spoiler_placeholder": "सामग्री चेतावनी (वैकल्पिक)", "confirmation_modal.cancel": "रद्द करें", "confirmations.block.confirm": "ब्लॉक", - "confirmations.cancel_follow_request.confirm": "रिक्वेस्ट वापस लें", - "confirmations.cancel_follow_request.message": "क्या आप सुनिश्चित है की आप {name} का फॉलो रिक्वेस्ट वापिस लेना चाहते हैं?", "confirmations.delete.confirm": "मिटाए", "confirmations.delete.message": "क्या आप वाकई इस स्टेटस को हटाना चाहते हैं?", "confirmations.delete_list.confirm": "मिटाए", "confirmations.delete_list.message": "क्या आप वाकई इस लिस्ट को हमेशा के लिये मिटाना चाहते हैं?", "confirmations.discard_edit_media.confirm": "डिस्कार्ड", "confirmations.discard_edit_media.message": "लिस्ट में जोड़ें", - "confirmations.domain_block.confirm": "सर्वर ब्लॉक करें", - "confirmations.domain_block.message": "क्या आप वास्तव में, वास्तव में आप पूरे {domain} को ब्लॉक करना चाहते हैं? ज्यादातर मामलों में कुछ लक्षित ब्लॉक या म्यूट पर्याप्त और बेहतर हैं। आप किसी भी सार्वजनिक समय-सीमा या अपनी सूचनाओं में उस डोमेन की सामग्री नहीं देखेंगे। उस डोमेन से आपके फॉलोवर्स को हटा दिया जाएगा।", "confirmations.edit.confirm": "संशोधित करें", "confirmations.edit.message": "अभी संपादन किया तो वो संदेश मिट जायेगा जिसे आप लिख रहे थे। क्या आप जारी रखना चाहते हैं?", "confirmations.logout.confirm": "लॉग आउट करें", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 5d087dae94..5598732465 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -144,14 +144,12 @@ "compose_form.spoiler.unmarked": "Tekst nije skriven", "confirmation_modal.cancel": "Otkaži", "confirmations.block.confirm": "Blokiraj", - "confirmations.cancel_follow_request.confirm": "Povuci zahtjev", "confirmations.delete.confirm": "Obriši", "confirmations.delete.message": "Stvarno želite obrisati ovaj toot?", "confirmations.delete_list.confirm": "Obriši", "confirmations.delete_list.message": "Jeste li sigurni da želite trajno obrisati ovu listu?", "confirmations.discard_edit_media.confirm": "Odbaciti", "confirmations.discard_edit_media.message": "Postoje nespremljene promjene u opisu medija ili u pretpregledu, svejedno ih odbaciti?", - "confirmations.domain_block.message": "Jeste li zaista, zaista sigurni da želite blokirati cijelu domenu {domain}? U većini slučajeva dovoljno je i preferirano nekoliko ciljanih blokiranja ili utišavanja. Nećete vidjeti sadržaj s te domene ni u kojim javnim vremenskim crtama ili Vašim obavijestima. Vaši pratitelji s te domene bit će uklonjeni.", "confirmations.edit.confirm": "Uredi", "confirmations.logout.confirm": "Odjavi se", "confirmations.logout.message": "Jeste li sigurni da se želite odjaviti?", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index fd9ce38eb1..88eeeff952 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Tartalmi figyelmeztetés (opcionális)", "confirmation_modal.cancel": "Mégsem", "confirmations.block.confirm": "Letiltás", - "confirmations.cancel_follow_request.confirm": "Kérés visszavonása", - "confirmations.cancel_follow_request.message": "Biztos, hogy visszavonod a(z) {name} felhasználóra vonatkozó követési kérésedet?", "confirmations.delete.confirm": "Törlés", "confirmations.delete.message": "Biztos, hogy törölni szeretnéd ezt a bejegyzést?", + "confirmations.delete.title": "Törlöd a bejegyzést?", "confirmations.delete_list.confirm": "Törlés", "confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?", + "confirmations.delete_list.title": "Törlöd a listát?", "confirmations.discard_edit_media.confirm": "Elvetés", "confirmations.discard_edit_media.message": "Mentetlen változtatásaid vannak a média leírásában vagy előnézetében, mindenképp elveted?", - "confirmations.domain_block.confirm": "Kiszolgáló letiltása", - "confirmations.domain_block.message": "Biztos, hogy le szeretnéd tiltani a teljes {domain} domaint? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő, és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se az idővonalakon, se az értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.", "confirmations.edit.confirm": "Szerkesztés", "confirmations.edit.message": "Ha most szerkeszted, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?", + "confirmations.edit.title": "Felülírod a bejegyzést?", "confirmations.logout.confirm": "Kijelentkezés", "confirmations.logout.message": "Biztos, hogy kijelentkezel?", + "confirmations.logout.title": "Kijelentkezel?", "confirmations.mute.confirm": "Némítás", "confirmations.redraft.confirm": "Törlés és újraírás", "confirmations.redraft.message": "Biztos, hogy ezt a bejegyzést szeretnéd törölni és újraírni? Minden megtolást és kedvencnek jelölést elvesztesz, az eredetire adott válaszok pedig elárvulnak.", + "confirmations.redraft.title": "Törlöd és újraírod a bejegyzést?", "confirmations.reply.confirm": "Válasz", "confirmations.reply.message": "Ha most válaszolsz, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?", + "confirmations.reply.title": "Felülírod a bejegyzést?", "confirmations.unfollow.confirm": "Követés visszavonása", "confirmations.unfollow.message": "Biztos, hogy vissza szeretnéd vonni {name} követését?", + "confirmations.unfollow.title": "Megszünteted a felhasználó követését?", "conversation.delete": "Beszélgetés törlése", "conversation.mark_as_read": "Megjelölés olvasottként", "conversation.open": "Beszélgetés megtekintése", @@ -507,6 +510,7 @@ "notification_requests.title": "Szűrt értesítések", "notifications.clear": "Értesítések törlése", "notifications.clear_confirmation": "Biztos, hogy véglegesen törölni akarod az összes értesítésed?", + "notifications.clear_title": "Törlöd az értesítéseket?", "notifications.column_settings.admin.report": "Új jelentések:", "notifications.column_settings.admin.sign_up": "Új regisztrálók:", "notifications.column_settings.alert": "Asztali értesítések", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 4a197185e3..e9b9e85ff9 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -121,13 +121,11 @@ "compose_form.spoiler.unmarked": "Տեքստը թաքցուած չէ", "confirmation_modal.cancel": "Չեղարկել", "confirmations.block.confirm": "Արգելափակել", - "confirmations.cancel_follow_request.confirm": "Կասեցնել հայցը", "confirmations.delete.confirm": "Ջնջել", "confirmations.delete.message": "Վստա՞հ ես, որ ուզում ես ջնջել այս գրառումը։", "confirmations.delete_list.confirm": "Ջնջել", "confirmations.delete_list.message": "Վստա՞հ ես, որ ուզում ես մշտապէս ջնջել այս ցանկը։", "confirmations.discard_edit_media.confirm": "Չեղարկել", - "confirmations.domain_block.message": "Հաստատ֊հաստա՞տ վստահ ես, որ ուզում ես արգելափակել ամբողջ {domain} տիրոյթը։ Սովորաբար մի երկու թիրախաւորուած արգելափակում կամ լռեցում բաւական է ու նախընտրելի։", "confirmations.edit.confirm": "Խմբագրել", "confirmations.logout.confirm": "Ելք", "confirmations.logout.message": "Համոզո՞ւած ես, որ ուզում ես դուրս գալ", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 22f9ec7dd5..70e48f6948 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Advertimento de contento (optional)", "confirmation_modal.cancel": "Cancellar", "confirmations.block.confirm": "Blocar", - "confirmations.cancel_follow_request.confirm": "Retirar requesta", - "confirmations.cancel_follow_request.message": "Es tu secur que tu vole retirar tu requesta de sequer {name}?", "confirmations.delete.confirm": "Deler", "confirmations.delete.message": "Es tu secur que tu vole deler iste message?", "confirmations.delete_list.confirm": "Deler", "confirmations.delete_list.message": "Es tu secur que tu vole deler permanentemente iste lista?", "confirmations.discard_edit_media.confirm": "Abandonar", "confirmations.discard_edit_media.message": "Tu ha cambiamentos non salvate in le description o previsualisation del objecto multimedial. Abandonar los?", - "confirmations.domain_block.confirm": "Blocar le servitor", - "confirmations.domain_block.message": "Es tu realmente, absolutemente secur de voler blocar tote le dominio {domain}? In le major parte del casos es preferibile blocar o silentiar alcun personas specific. Si tu bloca tote le dominio, tu non videra alcun contento de ille dominio in alcun chronologia public o in tu notificationes, e tu sequitores de ille dominio essera removite.", "confirmations.edit.confirm": "Modificar", "confirmations.edit.message": "Si tu modifica isto ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?", "confirmations.logout.confirm": "Clauder session", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index e139796bf1..e740fb009c 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -166,16 +166,12 @@ "compose_form.spoiler_placeholder": "Peringatan konten (opsional)", "confirmation_modal.cancel": "Batal", "confirmations.block.confirm": "Blokir", - "confirmations.cancel_follow_request.confirm": "Batalkan permintaan", - "confirmations.cancel_follow_request.message": "Apakah Anda yakin ingin membatalkan permintaan Anda untuk mengikuti {name}?", "confirmations.delete.confirm": "Hapus", "confirmations.delete.message": "Apakah Anda yakin untuk menghapus kiriman ini?", "confirmations.delete_list.confirm": "Hapus", "confirmations.delete_list.message": "Apakah Anda yakin untuk menghapus daftar ini secara permanen?", "confirmations.discard_edit_media.confirm": "Buang", "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan deskripsi atau pratinjau media, buang saja?", - "confirmations.domain_block.confirm": "Blokir server", - "confirmations.domain_block.message": "Apakah Anda benar-benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.", "confirmations.edit.confirm": "Ubah", "confirmations.edit.message": "Mengubah akan menimpa pesan yang sedang anda tulis. Apakah anda yakin ingin melanjutkan?", "confirmations.logout.confirm": "Keluar", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index 3ece43918b..d672b04221 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -166,16 +166,12 @@ "compose_form.spoiler_placeholder": "Advertiment de contenete (optional)", "confirmation_modal.cancel": "Anullar", "confirmations.block.confirm": "Bloccar", - "confirmations.cancel_follow_request.confirm": "Retraer petition", - "confirmations.cancel_follow_request.message": "Esque tu vermen vole retraer tui petition sequer {name}?", "confirmations.delete.confirm": "Deleter", "confirmations.delete.message": "Esque tu vermen vole deleter ti-ci posta?", "confirmations.delete_list.confirm": "Deleter", "confirmations.delete_list.message": "Esque tu vermen vole permanentmen deleter ti-ci liste?", "confirmations.discard_edit_media.confirm": "Forjettar", "confirmations.discard_edit_media.message": "Tu have ínconservat changes al descrition de medie o al previse, forjettar les sin egarda?", - "confirmations.domain_block.confirm": "Bloccar servitor", - "confirmations.domain_block.message": "Esque tu es certissim que tu vole bloccar li tot {domain}? In mult casus, bloccar o silentiar quelc specific contos es suficent e preferibil. Tu ne va vider contenete de ti dominia in quelcunc public témpor-linea o in tui notificationes. Tui sequitores de ti dominia va esser removet.", "confirmations.edit.confirm": "Redacter", "confirmations.edit.message": "Redacter nu va remplazzar li missage quel tu actualmen composi. Esque tu vermen vole proceder?", "confirmations.logout.confirm": "Exear", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 839939687d..6ff957bc80 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -147,15 +147,12 @@ "compose_form.spoiler.unmarked": "Text is not hidden", "confirmation_modal.cancel": "Anulez", "confirmations.block.confirm": "Restriktez", - "confirmations.cancel_follow_request.confirm": "Desendez demando", - "confirmations.cancel_follow_request.message": "Ka vu certe volas desendar vua demando di sequar {name}?", "confirmations.delete.confirm": "Efacez", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Efacez", "confirmations.delete_list.message": "Ka vu certe volas netempale efacar ca listo?", "confirmations.discard_edit_media.confirm": "Efacez", "confirmations.discard_edit_media.message": "Vu havas nesparita chanji di mediodeskript o prevido, vu volas jus efacar?", - "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", "confirmations.edit.confirm": "Modifikez", "confirmations.edit.message": "Modifikar nun remplasos la mesajo quon vu nune skribas. Ka vu certe volas procedar?", "confirmations.logout.confirm": "Ekirez", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 27d23aafd0..f145817c52 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Aðvörun vegna efnis (valkvætt)", "confirmation_modal.cancel": "Hætta við", "confirmations.block.confirm": "Útiloka", - "confirmations.cancel_follow_request.confirm": "Taka beiðni til baka", - "confirmations.cancel_follow_request.message": "Ertu viss um að þú viljir taka til baka beiðnina um að fylgjast með {name}?", "confirmations.delete.confirm": "Eyða", "confirmations.delete.message": "Ertu viss um að þú viljir eyða þessari færslu?", + "confirmations.delete.title": "Eyða færslu?", "confirmations.delete_list.confirm": "Eyða", "confirmations.delete_list.message": "Ertu viss um að þú viljir eyða þessum lista endanlega?", + "confirmations.delete_list.title": "Eyða lista?", "confirmations.discard_edit_media.confirm": "Henda", "confirmations.discard_edit_media.message": "Þú ert með óvistaðar breytingar á lýsingu myndefnis eða forskoðunar, henda þeim samt?", - "confirmations.domain_block.confirm": "Útiloka netþjón", - "confirmations.domain_block.message": "Ertu alveg algjörlega viss um að þú viljir loka á allt {domain}? Í flestum tilfellum er vænlegra að nota færri en markvissari útilokanir eða að þagga niður tiltekna aðila. Þú munt ekki sjá efni frá þessu léni í neinum opinberum tímalínum eða í tilkynningunum þínum. Fylgjendur þínir frá þessu léni verða fjarlægðir.", "confirmations.edit.confirm": "Breyta", "confirmations.edit.message": "Ef þú breytir núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?", + "confirmations.edit.title": "Skrifa yfir færslu?", "confirmations.logout.confirm": "Skrá út", "confirmations.logout.message": "Ertu viss um að þú viljir skrá þig út?", + "confirmations.logout.title": "Skrá út?", "confirmations.mute.confirm": "Þagga", "confirmations.redraft.confirm": "Eyða og endurvinna drög", "confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari færslu og enduvinna drögin? Eftirlæti og endurbirtingar munu glatast og svör við upprunalegu færslunni munu verða munaðarlaus.", + "confirmations.redraft.title": "Eyða og byrja ný drög að færslu?", "confirmations.reply.confirm": "Svara", "confirmations.reply.message": "Ef þú svarar núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?", + "confirmations.reply.title": "Skrifa yfir færslu?", "confirmations.unfollow.confirm": "Hætta að fylgja", "confirmations.unfollow.message": "Ertu viss um að þú viljir hætta að fylgjast með {name}?", + "confirmations.unfollow.title": "Hætta að fylgjast með viðkomandi?", "conversation.delete": "Eyða samtali", "conversation.mark_as_read": "Merkja sem lesið", "conversation.open": "Skoða samtal", @@ -507,6 +510,7 @@ "notification_requests.title": "Síaðar tilkynningar", "notifications.clear": "Hreinsa tilkynningar", "notifications.clear_confirmation": "Ertu viss um að þú viljir endanlega eyða öllum tilkynningunum þínum?", + "notifications.clear_title": "Hreinsa tilkynningar?", "notifications.column_settings.admin.report": "Nýjar kærur:", "notifications.column_settings.admin.sign_up": "Nýjar skráningar:", "notifications.column_settings.alert": "Tilkynningar á skjáborði", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 419b6bcd9f..c8c545922c 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Contenuto sensibile (facoltativo)", "confirmation_modal.cancel": "Annulla", "confirmations.block.confirm": "Blocca", - "confirmations.cancel_follow_request.confirm": "Annulla la richiesta", - "confirmations.cancel_follow_request.message": "Sei sicuro di voler annullare la tua richiesta per seguire {name}?", "confirmations.delete.confirm": "Elimina", "confirmations.delete.message": "Sei sicuro di voler eliminare questo post?", "confirmations.delete_list.confirm": "Elimina", "confirmations.delete_list.message": "Sei sicuro/a di voler eliminare permanentemente questo elenco?", "confirmations.discard_edit_media.confirm": "Scarta", "confirmations.discard_edit_media.message": "Hai delle modifiche non salvate alla descrizione o anteprima del media, scartarle comunque?", - "confirmations.domain_block.confirm": "Blocca il server", - "confirmations.domain_block.message": "Sei davvero sicuro di voler bloccare l'intero {domain}? In gran parte dei casi, è sufficiente e preferibile bloccare o silenziare alcuni profili. Non visualizzerai i contenuti da quel dominio in alcuna cronologia pubblica o tra le tue notifiche. I tuoi seguaci da quel dominio saranno rimossi.", "confirmations.edit.confirm": "Modifica", "confirmations.edit.message": "Modificare ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?", "confirmations.logout.confirm": "Disconnettiti", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 5168c1c0c0..a5b2c5b4d9 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "閲覧注意 (オプション)", "confirmation_modal.cancel": "キャンセル", "confirmations.block.confirm": "ブロック", - "confirmations.cancel_follow_request.confirm": "フォローリクエストを取り消す", - "confirmations.cancel_follow_request.message": "{name}に対するフォローリクエストを取り消しますか?", "confirmations.delete.confirm": "削除", "confirmations.delete.message": "本当に削除しますか?", "confirmations.delete_list.confirm": "削除", "confirmations.delete_list.message": "本当にこのリストを完全に削除しますか?", "confirmations.discard_edit_media.confirm": "破棄", "confirmations.discard_edit_media.message": "メディアの説明またはプレビューに保存されていない変更があります。それでも破棄しますか?", - "confirmations.domain_block.confirm": "サーバーをブロック", - "confirmations.domain_block.message": "本当に{domain}全体を非表示にしますか? 多くの場合は個別にブロックやミュートするだけで充分であり、また好ましいです。公開タイムラインにそのドメインのコンテンツが表示されなくなり、通知も届かなくなります。そのドメインのフォロワーはアンフォローされます。", "confirmations.edit.confirm": "編集", "confirmations.edit.message": "今編集すると現在作成中のメッセージが上書きされます。本当に実行しますか?", "confirmations.logout.confirm": "ログアウト", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index b2e67e143e..d61a29d7a3 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -74,7 +74,6 @@ "confirmations.delete.message": "დარწმუნებული ხართ, გსურთ გააუქმოთ ეს სტატუსი?", "confirmations.delete_list.confirm": "გაუქმება", "confirmations.delete_list.message": "დარწმუნებული ხართ, გსურთ სამუდამოდ გააუქმოთ ეს სია?", - "confirmations.domain_block.message": "ნაღდად, ნაღდად, დარწმუნებული ხართ, გსურთ დაბლოკოთ მთელი {domain}? უმეტეს შემთხვევაში რამდენიმე გამიზნული ბლოკი ან გაჩუმება საკმარისი და უკეთესია. კონტენტს ამ დომენიდან ვერ იხილავთ ვერც ერთ ღია თაიმლაინზე ან თქვენს შეტყობინებებში. ამ დომენიდან არსებული მიმდევრები ამოიშლება.", "confirmations.mute.confirm": "გაჩუმება", "confirmations.redraft.confirm": "გაუქმება და გადანაწილება", "confirmations.unfollow.confirm": "ნუღარ მიჰყვები", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 776b3446a2..ea00b0eb23 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -146,7 +146,6 @@ "confirmations.delete_list.confirm": "Kkes", "confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ umuɣ-agi i lebda?", "confirmations.discard_edit_media.confirm": "Sefsex", - "confirmations.domain_block.confirm": "Sewḥel aqeddac", "confirmations.edit.confirm": "Ẓreg", "confirmations.edit.message": "Abeddel tura ad d-yaru izen-nni i d-tegreḍ akka tura. Tetḥeqqeḍ tebɣiḍ ad tkemmleḍ?", "confirmations.logout.confirm": "Ffeɣ", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 74fb33a91a..fbaa371843 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -107,7 +107,6 @@ "confirmations.delete.message": "Бұл жазбаны өшіресіз бе?", "confirmations.delete_list.confirm": "Өшіру", "confirmations.delete_list.message": "Бұл тізімді жоясыз ба шынымен?", - "confirmations.domain_block.message": "Бұл домендегі {domain} жазбаларды шынымен бұғаттайсыз ба? Кейде үнсіз қылып тастау да жеткілікті.", "confirmations.logout.confirm": "Шығу", "confirmations.logout.message": "Шығатыныңызға сенімдісіз бе?", "confirmations.mute.confirm": "Үнсіз қылу", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 6619cdb2d6..c36ba0c647 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "내용 경고 (선택사항)", "confirmation_modal.cancel": "취소", "confirmations.block.confirm": "차단", - "confirmations.cancel_follow_request.confirm": "요청 삭제", - "confirmations.cancel_follow_request.message": "정말 {name}님에 대한 팔로우 요청을 취소하시겠습니까?", "confirmations.delete.confirm": "삭제", "confirmations.delete.message": "정말로 이 게시물을 삭제하시겠습니까?", "confirmations.delete_list.confirm": "삭제", "confirmations.delete_list.message": "정말로 이 리스트를 영구적으로 삭제하시겠습니까?", "confirmations.discard_edit_media.confirm": "저장 안함", "confirmations.discard_edit_media.message": "미디어 설명이나 미리보기에 대한 저장하지 않은 변경사항이 있습니다. 버리시겠습니까?", - "confirmations.domain_block.confirm": "서버 차단", - "confirmations.domain_block.message": "정말로 {domain} 전체를 차단하시겠습니까? 대부분의 경우 개별 차단이나 뮤트로 충분합니다. 모든 공개 타임라인과 알림에서 해당 도메인에서 작성된 콘텐츠를 보지 못합니다. 해당 도메인에 속한 팔로워와의 관계가 사라집니다.", "confirmations.edit.confirm": "수정", "confirmations.edit.message": "지금 편집하면 작성 중인 메시지를 덮어씁니다. 진행이 확실한가요?", "confirmations.logout.confirm": "로그아웃", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 3821216a9a..3d3c20424c 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -133,15 +133,12 @@ "compose_form.spoiler.unmarked": "Hişyariya naverokê tevlî bike", "confirmation_modal.cancel": "Dev jê berde", "confirmations.block.confirm": "Asteng bike", - "confirmations.cancel_follow_request.confirm": "Daxwazê vekişîne", - "confirmations.cancel_follow_request.message": "Tu dixwazî ​​daxwaza xwe ya şopandina {name} vekşînî?", "confirmations.delete.confirm": "Jê bibe", "confirmations.delete.message": "Ma tu dixwazî vê şandiyê jê bibî?", "confirmations.delete_list.confirm": "Jê bibe", "confirmations.delete_list.message": "Tu ji dil dixwazî vê lîsteyê bi awayekî mayînde jê bibî?", "confirmations.discard_edit_media.confirm": "Biavêje", "confirmations.discard_edit_media.message": "Guhertinên neqedandî di danasîna an pêşdîtina medyayê de hene, wan bi her awayî bavêje?", - "confirmations.domain_block.message": "Tu pê bawerî ku tu dixwazî tevahiya {domain} asteng bikî? Di gelek rewşan de astengkirin an jî bêdengkirin têrê dike û tê hilbijartin. Tu nikarî naveroka vê navperê di demnameyê an jî agahdariyên xwe de bibînî. Şopînerên te yê di vê navperê wê werin jêbirin.", "confirmations.edit.confirm": "Serrast bike", "confirmations.logout.confirm": "Derkeve", "confirmations.logout.message": "Ma tu dixwazî ku derkevî?", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index f59f342cbe..7ebe71b24c 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -88,7 +88,6 @@ "confirmations.delete.message": "Owgh hwi sur a vynnes dilea'n post ma?", "confirmations.delete_list.confirm": "Dilea", "confirmations.delete_list.message": "Owgh hwi sur a vynnes dilea'n rol ma yn fast?", - "confirmations.domain_block.message": "Owgh hwi wir, wir sur a vynnes lettya'n {domain} dhien? Y'n brassa rann a gasow, boghes lettyansow medrys po tawheansow yw lowr ha gwell. Ny wrewgh hwi gweles dalgh a'n worfarth na yn py amserlin boblek pynag po yn agas gwarnyansow. Agas holyoryon an worfarth na a vydh diles.", "confirmations.logout.confirm": "Digelmi", "confirmations.logout.message": "Owgh hwi sur a vynnes digelmi?", "confirmations.mute.confirm": "Tawhe", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index 2dc360f9ed..bbbcee886f 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -164,16 +164,12 @@ "compose_form.spoiler_placeholder": "Avertensya de kontenido (opsyonal)", "confirmation_modal.cancel": "Anula", "confirmations.block.confirm": "Bloka", - "confirmations.cancel_follow_request.confirm": "Anula solisitud", - "confirmations.cancel_follow_request.message": "Estas siguro ke keres anular tu solisitud de segir a {name}?", "confirmations.delete.confirm": "Efasa", "confirmations.delete.message": "Estas siguro ke keres efasar esta publikasyon?", "confirmations.delete_list.confirm": "Efasa", "confirmations.delete_list.message": "Estas siguro ke keres permanentemente efasar esta lista?", "confirmations.discard_edit_media.confirm": "Anula", "confirmations.discard_edit_media.message": "Tienes trokamientos no guadrados en la deskripsion o vista previa. Keres efasarlos entanto?", - "confirmations.domain_block.confirm": "Bloka sirvidor", - "confirmations.domain_block.message": "Estas totalmente siguro ke keres blokar todo el domeno {domain}? En djeneral unos kuantos blokos o silensiamientos son sufisientes i preferavles. No veras kontenido de akel domeno en dinguna linya de tiempo publika ni ent tus avizos. Tus suivantes de akel domeno seran kitados.", "confirmations.edit.confirm": "Edita", "confirmations.edit.message": "Si edites agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?", "confirmations.logout.confirm": "Sal", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 6899274f3e..37c37b63eb 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Turinio įspėjimas (pasirinktinis)", "confirmation_modal.cancel": "Atšaukti", "confirmations.block.confirm": "Blokuoti", - "confirmations.cancel_follow_request.confirm": "Atšaukti prašymą", - "confirmations.cancel_follow_request.message": "Ar tikrai nori atšaukti savo prašymą sekti {name}?", "confirmations.delete.confirm": "Ištrinti", "confirmations.delete.message": "Ar tikrai nori ištrinti šį įrašą?", "confirmations.delete_list.confirm": "Ištrinti", "confirmations.delete_list.message": "Ar tikrai nori visam laikui ištrinti šį sąrašą?", "confirmations.discard_edit_media.confirm": "Atmesti", "confirmations.discard_edit_media.message": "Turi neišsaugotų medijos aprašymo ar peržiūros pakeitimų, vis tiek juos atmesti?", - "confirmations.domain_block.confirm": "Blokuoti serverį", - "confirmations.domain_block.message": "Ar tikrai, tikrai nori užblokuoti visą {domain}? Daugeliu atvejų užtenka kelių tikslinių blokavimų arba nutildymų. Šio domeno turinio nematysi jokiose viešose laiko skalėse ar pranešimuose. Tavo sekėjai iš to domeno bus pašalinti.", "confirmations.edit.confirm": "Redaguoti", "confirmations.edit.message": "Redaguojant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?", "confirmations.logout.confirm": "Atsijungti", @@ -443,6 +439,8 @@ "mute_modal.title": "Nutildyti naudotoją?", "mute_modal.you_wont_see_mentions": "Nematysi įrašus, kuriuose jie paminimi.", "mute_modal.you_wont_see_posts": "Jie vis tiek gali matyti tavo įrašus, bet tu nematysi jų.", + "name_and_others": "{name} ir {count, plural, one {# kitas} few {# kiti} many {# kito} other {# kitų}}", + "name_and_others_with_link": "{name} ir {count, plural, one {# kitas} few {# kiti} many {# kito} other {# kitų}}", "navigation_bar.about": "Apie", "navigation_bar.advanced_interface": "Atidaryti išplėstinę žiniatinklio sąsają", "navigation_bar.blocks": "Užblokuoti naudotojai", @@ -470,6 +468,10 @@ "navigation_bar.security": "Apsauga", "not_signed_in_indicator.not_signed_in": "Norint pasiekti šį išteklį, reikia prisijungti.", "notification.admin.report": "{name} pranešė {target}", + "notification.admin.report_account": "{name} pranešė {count, plural, one {# įrašą} few {# įrašus} many {# įrašo} other {# įrašų}} iš {target} kategorijai {category}", + "notification.admin.report_account_other": "{name} pranešė {count, plural, one {# įrašą} few {# įrašus} many {# įrašo} other {# įrašų}} iš {target}", + "notification.admin.report_statuses": "{name} pranešė {target} kategorijai {category}", + "notification.admin.report_statuses_other": "{name} pranešė {target}", "notification.admin.sign_up": "{name} užsiregistravo", "notification.favourite": "{name} pamėgo tavo įrašą", "notification.follow": "{name} seka tave", @@ -485,6 +487,8 @@ "notification.moderation_warning.action_silence": "Tavo paskyra buvo apribota.", "notification.moderation_warning.action_suspend": "Tavo paskyra buvo sustabdyta.", "notification.own_poll": "Tavo apklausa baigėsi", + "notification.poll": "Baigėsi apklausa, kurioje balsavai", + "notification.private_mention": "{name} privačiai paminėjo tave", "notification.reblog": "{name} pakėlė tavo įrašą", "notification.relationships_severance_event": "Prarasti sąryšiai su {name}", "notification.relationships_severance_event.learn_more": "Sužinoti daugiau", @@ -500,6 +504,8 @@ "notifications.column_settings.admin.report": "Naujos ataskaitos:", "notifications.column_settings.admin.sign_up": "Naujos registracijos:", "notifications.column_settings.alert": "Darbalaukio pranešimai", + "notifications.column_settings.beta.category": "Eksperimentinės funkcijos", + "notifications.column_settings.beta.grouping": "Grupuoti pranešimus", "notifications.column_settings.favourite": "Mėgstami:", "notifications.column_settings.filter_bar.advanced": "Rodyti visas kategorijas", "notifications.column_settings.filter_bar.category": "Spartaus filtro juosta", @@ -660,9 +666,13 @@ "report.unfollow_explanation": "Tu seki šią paskyrą. Jei nori nebematyti jų įrašų savo pagrindiniame sraute, nebesek jų.", "report_notification.attached_statuses": "Pridėti {count, plural, one {{count} įrašas} few {{count} įrašai} many {{count} įrašo} other {{count} įrašų}}", "report_notification.categories.legal": "Teisinės", + "report_notification.categories.legal_sentence": "nelegalus turinys", "report_notification.categories.other": "Kita", + "report_notification.categories.other_sentence": "kita", "report_notification.categories.spam": "Šlamštas", + "report_notification.categories.spam_sentence": "šlamštas", "report_notification.categories.violation": "Taisyklės pažeidimas", + "report_notification.categories.violation_sentence": "taisyklės pažeidimas", "report_notification.open": "Atidaryti ataskaitą", "search.no_recent_searches": "Nėra naujausių paieškų.", "search.placeholder": "Paieška", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index d4623a8b31..42079f222f 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -163,15 +163,12 @@ "compose_form.spoiler_placeholder": "Satura brīdinājums (pēc izvēles)", "confirmation_modal.cancel": "Atcelt", "confirmations.block.confirm": "Bloķēt", - "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu", - "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?", "confirmations.delete.confirm": "Dzēst", "confirmations.delete.message": "Vai tiešām vēlies dzēst šo ierakstu?", "confirmations.delete_list.confirm": "Dzēst", "confirmations.delete_list.message": "Vai tiešām neatgriezeniski izdzēst šo sarakstu?", "confirmations.discard_edit_media.confirm": "Atmest", "confirmations.discard_edit_media.message": "Ir nesaglabātas izmaiņas informācijas nesēja aprakstā vai priekšskatījumā. Vēlies tās atmest tik un tā?", - "confirmations.domain_block.message": "Vai tu tiešām vēlies bloķēt visu domēnu {domain}? Parasti pietiek, ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.", "confirmations.edit.confirm": "Labot", "confirmations.edit.message": "Labošana pārrakstīs ziņojumu, kas šobrīd tiek sastādīts. Vai tiešām turpināt?", "confirmations.logout.confirm": "Iziet", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index a09ad98ebf..b1f3b9fab9 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -84,7 +84,6 @@ "confirmations.delete.message": "Сигурни сте дека го бришите статусот?", "confirmations.delete_list.confirm": "Избриши", "confirmations.delete_list.message": "Дали сте сигурни дека сакате да го избришете списоков?", - "confirmations.domain_block.message": "Дали скроз сте сигурни дека ќе блокирате сѐ од {domain}? Во повеќето случаеви неколку таргетирани блокирања или заќутувања се доволни и предложени. Нема да ја видите содржината од тој домеин во никој јавен времеплов или вашите нотификации. Вашите следбеници од тој домеин ќе бидат остранети.", "confirmations.logout.confirm": "Одјави се", "confirmations.logout.message": "Дали сте сигурни дека сакате да се одјавите?", "confirmations.mute.confirm": "Заќути", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index dc34867106..17af770b9b 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -158,15 +158,12 @@ "compose_form.spoiler_placeholder": "Amaran kandungan (pilihan)", "confirmation_modal.cancel": "Batal", "confirmations.block.confirm": "Sekat", - "confirmations.cancel_follow_request.confirm": "Tarik balik permintaan", - "confirmations.cancel_follow_request.message": "Adakah anda pasti ingin menarik balik permintaan anda untuk mengikut {name}?", "confirmations.delete.confirm": "Padam", "confirmations.delete.message": "Adakah anda pasti anda ingin memadam hantaran ini?", "confirmations.delete_list.confirm": "Padam", "confirmations.delete_list.message": "Adakah anda pasti anda ingin memadam senarai ini secara kekal?", "confirmations.discard_edit_media.confirm": "Singkir", "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?", - "confirmations.domain_block.message": "Adakah anda betul-betul, sungguh-sungguh pasti anda ingin menyekat keseluruhan {domain}? Selalunya, beberapa sekatan atau pembisuan tersasar sudah memadai dan lebih diutamakan. Anda tidak akan nampak kandungan daripada domain tersebut di mana-mana garis masa awam mahupun pemberitahuan anda. Pengikut anda daripada domain tersebut juga akan dibuang.", "confirmations.edit.confirm": "Sunting", "confirmations.edit.message": "Mengedit sekarang akan menimpa mesej yang sedang anda karang. Adakah anda pasti mahu meneruskan?", "confirmations.logout.confirm": "Log keluar", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index cb3ea9723b..cb08d76bd3 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -148,15 +148,12 @@ "compose_form.spoiler.unmarked": "Text is not hidden", "confirmation_modal.cancel": "ပယ်ဖျက်မည်", "confirmations.block.confirm": "ဘလော့မည်", - "confirmations.cancel_follow_request.confirm": "ပန်ကြားချက်ကို ပယ်ဖျက်မည်", - "confirmations.cancel_follow_request.message": "{name} ကို စောင့်ကြည့်ခြင်းအားပယ်ဖျက်ရန် သေချာပါသလား။", "confirmations.delete.confirm": "ဖျက်မည်", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "ဖျက်မည်", "confirmations.delete_list.message": "ဖျက်ရန် သေချာပါသလား?", "confirmations.discard_edit_media.confirm": "ဖယ်ထုတ်ပါ", "confirmations.discard_edit_media.message": "သင်သည် မီဒီယာဖော်ပြချက် သို့မဟုတ် အစမ်းကြည့်ရှုခြင်းတွင် မသိမ်းဆည်းရသေးသော အပြောင်းအလဲများရှိသည်။ မည်သို့ပင်ဖြစ်စေ ဖျက်ပစ်မည်လား။", - "confirmations.domain_block.message": "{domain} တစ်ခုလုံးကို ဘလော့လုပ်ရန် တကယ် သေချာပါသလား? များသောအားဖြင့် အနည်းစုကို ပစ်မှတ်ထား ဘလော့လုပ်ခြင်းသည် လုံလောက်ပါသည်။ ထို ဒိုမိန်းမှ အကြောင်းအရာ တစ်ခုမှ မြင်ရမည်မဟုတ်သည့်အပြင် ထို ဒိုမိန်းတွင်ရှိသော သင်၏ စောင့်ကြည့်သူများပါ ဖယ်ရှားပစ်မည်ဖြစ်သည်။", "confirmations.edit.confirm": "ပြင်ရန်", "confirmations.edit.message": "ယခုပြင်ဆင်ခြင်းတွင် သင်လက်ရှိမက်ဆေ့ချ်ကို ဖျက်ပစ်ပြီး အသစ်ရေးပါမည်။ ရှေ့ဆက်လိုသည်မှာ သေချာပါသလား။", "confirmations.logout.confirm": "အကောင့်မှထွက်မည်", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 027c09280c..100396456d 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Inhoudswaarschuwing (optioneel)", "confirmation_modal.cancel": "Annuleren", "confirmations.block.confirm": "Blokkeren", - "confirmations.cancel_follow_request.confirm": "Verzoek annuleren", - "confirmations.cancel_follow_request.message": "Weet je zeker dat je jouw verzoek om {name} te volgen wilt annuleren?", "confirmations.delete.confirm": "Verwijderen", "confirmations.delete.message": "Weet je het zeker dat je dit bericht wilt verwijderen?", + "confirmations.delete.title": "Bericht verwijderen?", "confirmations.delete_list.confirm": "Verwijderen", "confirmations.delete_list.message": "Weet je zeker dat je deze lijst definitief wilt verwijderen?", + "confirmations.delete_list.title": "Lijst verwijderen?", "confirmations.discard_edit_media.confirm": "Weggooien", "confirmations.discard_edit_media.message": "Je hebt niet-opgeslagen wijzigingen in de mediabeschrijving of voorvertonning, wil je deze toch weggooien?", - "confirmations.domain_block.confirm": "Server blokkeren", - "confirmations.domain_block.message": "Weet je het echt heel erg zeker dat je alles van {domain} wilt blokkeren? In de meeste gevallen is het blokkeren of negeren van een paar specifieke personen voldoende en beter. Je ziet geen berichten van deze server meer op openbare tijdlijnen of in jouw meldingen. Jouw volgers van deze server worden verwijderd.", "confirmations.edit.confirm": "Bewerken", "confirmations.edit.message": "Door nu te reageren overschrijf je het bericht dat je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?", + "confirmations.edit.title": "Bericht overschrijven?", "confirmations.logout.confirm": "Uitloggen", "confirmations.logout.message": "Weet je zeker dat je wilt uitloggen?", + "confirmations.logout.title": "Uitloggen?", "confirmations.mute.confirm": "Negeren", "confirmations.redraft.confirm": "Verwijderen en herschrijven", "confirmations.redraft.message": "Weet je zeker dat je dit bericht wilt verwijderen en herschrijven? Je verliest wel de boosts en favorieten, en de reacties op het originele bericht raak je kwijt.", + "confirmations.redraft.title": "Bericht verwijderen en herschrijven?", "confirmations.reply.confirm": "Reageren", "confirmations.reply.message": "Door nu te reageren overschrijf je het bericht dat je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?", + "confirmations.reply.title": "Bericht overschrijven?", "confirmations.unfollow.confirm": "Ontvolgen", "confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?", + "confirmations.unfollow.title": "Gebruiker ontvolgen?", "conversation.delete": "Gesprek verwijderen", "conversation.mark_as_read": "Als gelezen markeren", "conversation.open": "Gesprek tonen", @@ -507,6 +510,7 @@ "notification_requests.title": "Gefilterde meldingen", "notifications.clear": "Meldingen verwijderen", "notifications.clear_confirmation": "Weet je het zeker dat je al jouw meldingen wilt verwijderen?", + "notifications.clear_title": "Meldingen verwijderen?", "notifications.column_settings.admin.report": "Nieuwe rapportages:", "notifications.column_settings.admin.sign_up": "Nieuwe registraties:", "notifications.column_settings.alert": "Desktopmeldingen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index f5efedb1ae..66c85e64a8 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Innhaldsåtvaring (valfritt)", "confirmation_modal.cancel": "Avbryt", "confirmations.block.confirm": "Blokker", - "confirmations.cancel_follow_request.confirm": "Trekk attende førespurnad", - "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekkje attende førespurnaden din om å fylgje {name}?", "confirmations.delete.confirm": "Slett", "confirmations.delete.message": "Er du sikker på at du vil sletta denne statusen?", "confirmations.delete_list.confirm": "Slett", "confirmations.delete_list.message": "Er du sikker på at du vil sletta denne lista for alltid?", "confirmations.discard_edit_media.confirm": "Forkast", "confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkasta dei likevel?", - "confirmations.domain_block.confirm": "Blokker tenaren", - "confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil skjula heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller dempingar. Du kjem ikkje til å sjå innhald frå domenet i fødererte tidsliner eller i varsla dine. Fylgjarane dine frå domenet vert fjerna.", "confirmations.edit.confirm": "Rediger", "confirmations.edit.message": "Å redigera no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?", "confirmations.logout.confirm": "Logg ut", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index f2476bf14c..0f9e0d5a79 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -158,15 +158,12 @@ "compose_form.spoiler_placeholder": "Innholdsadvarsel (valgfritt)", "confirmation_modal.cancel": "Avbryt", "confirmations.block.confirm": "Blokkèr", - "confirmations.cancel_follow_request.confirm": "Trekk tilbake forespørsel", - "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekke tilbake forespørselen din for å følge {name}?", "confirmations.delete.confirm": "Slett", "confirmations.delete.message": "Er du sikker på at du vil slette dette innlegget?", "confirmations.delete_list.confirm": "Slett", "confirmations.delete_list.message": "Er du sikker på at du vil slette denne listen permanent?", "confirmations.discard_edit_media.confirm": "Forkast", "confirmations.discard_edit_media.message": "Du har ulagrede endringer i mediebeskrivelsen eller i forhåndsvisning, forkast dem likevel?", - "confirmations.domain_block.message": "Er du sikker på at du vil skjule hele domenet {domain}? I de fleste tilfeller er det bedre med målrettet blokkering eller demping.", "confirmations.edit.confirm": "Redigér", "confirmations.edit.message": "Å redigere nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?", "confirmations.logout.confirm": "Logg ut", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index c02c821afc..00701cbdf9 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -135,14 +135,11 @@ "compose_form.spoiler.unmarked": "Lo tèxte es pas rescondut", "confirmation_modal.cancel": "Anullar", "confirmations.block.confirm": "Blocar", - "confirmations.cancel_follow_request.confirm": "Retirar la demandar", - "confirmations.cancel_follow_request.message": "Volètz vertadièrament retirar la demanda de seguiment de {name} ?", "confirmations.delete.confirm": "Escafar", "confirmations.delete.message": "Volètz vertadièrament escafar l’estatut ?", "confirmations.delete_list.confirm": "Suprimir", "confirmations.delete_list.message": "Volètz vertadièrament suprimir aquesta lista per totjorn ?", "confirmations.discard_edit_media.confirm": "Ignorar", - "confirmations.domain_block.message": "Volètz vertadièrament blocar complètament {domain} ? De còps cal pas que blocar o rescondre unas personas solament.\nVeiretz pas cap de contengut d’aquel domeni dins cap de flux public o dins vòstras notificacions. Vòstres seguidors d’aquel domeni seràn levats.", "confirmations.edit.confirm": "Modificar", "confirmations.logout.confirm": "Desconnexion", "confirmations.logout.message": "Volètz vertadièrament vos desconnectar ?", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 75987f5d29..5f8467f23c 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Ostrzeżenie o treści (opcjonalne)", "confirmation_modal.cancel": "Anuluj", "confirmations.block.confirm": "Zablokuj", - "confirmations.cancel_follow_request.confirm": "Wycofaj prośbę", - "confirmations.cancel_follow_request.message": "Czy na pewno chcesz wycofać prośbę o możliwość obserwowania {name}?", "confirmations.delete.confirm": "Usuń", "confirmations.delete.message": "Czy na pewno chcesz usunąć ten wpis?", + "confirmations.delete.title": "Usunąć wpis?", "confirmations.delete_list.confirm": "Usuń", "confirmations.delete_list.message": "Czy na pewno chcesz bezpowrotnie usunąć tą listę?", + "confirmations.delete_list.title": "Usunąć listę?", "confirmations.discard_edit_media.confirm": "Odrzuć", "confirmations.discard_edit_media.message": "Masz niezapisane zmiany w opisie lub podglądzie, odrzucić je mimo to?", - "confirmations.domain_block.confirm": "Blokuj serwer", - "confirmations.domain_block.message": "Czy na pewno chcesz zablokować całą domenę {domain}? Zwykle lepszym rozwiązaniem jest blokada lub wyciszenie kilku użytkowników.", "confirmations.edit.confirm": "Edytuj", "confirmations.edit.message": "Edytowanie wpisu nadpisze wiadomość, którą obecnie piszesz. Czy na pewno chcesz to zrobić?", + "confirmations.edit.title": "Nadpisać wpis?", "confirmations.logout.confirm": "Wyloguj", "confirmations.logout.message": "Czy na pewno chcesz się wylogować?", + "confirmations.logout.title": "Wylogować?", "confirmations.mute.confirm": "Wycisz", "confirmations.redraft.confirm": "Usuń i przeredaguj", "confirmations.redraft.message": "Czy na pewno chcesz usunąć i przeredagować ten wpis? Polubienia i podbicia zostaną utracone, a odpowiedzi do oryginalnego wpisu zostaną osierocone.", + "confirmations.redraft.title": "Usunąć i przeredagować wpis?", "confirmations.reply.confirm": "Odpowiedz", "confirmations.reply.message": "W ten sposób utracisz wpis który obecnie tworzysz. Czy na pewno chcesz to zrobić?", + "confirmations.reply.title": "Nadpisać wpis?", "confirmations.unfollow.confirm": "Przestań obserwować", "confirmations.unfollow.message": "Czy na pewno zamierzasz przestać obserwować {name}?", + "confirmations.unfollow.title": "Przestać obserwować?", "conversation.delete": "Usuń konwersację", "conversation.mark_as_read": "Oznacz jako przeczytane", "conversation.open": "Zobacz konwersację", @@ -506,6 +509,7 @@ "notification_requests.title": "Powiadomienia filtrowane", "notifications.clear": "Wyczyść powiadomienia", "notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?", + "notifications.clear_title": "Wyczyścić powiadomienia?", "notifications.column_settings.admin.report": "Nowe zgłoszenia:", "notifications.column_settings.admin.sign_up": "Nowe rejestracje:", "notifications.column_settings.alert": "Powiadomienia na pulpicie", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 9ebde4e6a4..072cbf82cb 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -166,27 +166,30 @@ "compose_form.spoiler_placeholder": "Aviso de conteúdo (opcional)", "confirmation_modal.cancel": "Cancelar", "confirmations.block.confirm": "Bloquear", - "confirmations.cancel_follow_request.confirm": "Cancelar a solicitação", - "confirmations.cancel_follow_request.message": "Tem certeza de que deseja cancelar seu pedido para seguir {name}?", "confirmations.delete.confirm": "Excluir", "confirmations.delete.message": "Você tem certeza de que deseja excluir este toot?", + "confirmations.delete.title": "Excluir publicação?", "confirmations.delete_list.confirm": "Excluir", "confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?", + "confirmations.delete_list.title": "Excluir lista?", "confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?", - "confirmations.domain_block.confirm": "Servidor de blocos", - "confirmations.domain_block.message": "Você tem certeza de que deseja bloquear tudo de {domain}? Você não verá mais o conteúdo desta instância em nenhuma linha do tempo pública ou nas suas notificações. Seus seguidores desta instância serão removidos.", "confirmations.edit.confirm": "Editar", "confirmations.edit.message": "Editar agora irá substituir a mensagem que está sendo criando. Tem certeza de que deseja continuar?", + "confirmations.edit.title": "Sobrescrever o post?", "confirmations.logout.confirm": "Sair", "confirmations.logout.message": "Você tem certeza de que deseja sair?", + "confirmations.logout.title": "Sair da sessão?", "confirmations.mute.confirm": "Silenciar", "confirmations.redraft.confirm": "Excluir e rascunhar", "confirmations.redraft.message": "Você tem certeza de que quer apagar essa postagem e rascunhá-la? Favoritos e impulsos serão perdidos, e respostas à postagem original ficarão órfãs.", + "confirmations.redraft.title": "Excluir e rascunhar publicação?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Responder agora sobrescreverá o toot que você está compondo. Deseja continuar?", + "confirmations.reply.title": "Sobrescrever o post?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "Você tem certeza de que deseja deixar de seguir {name}?", + "confirmations.unfollow.title": "Deixar de seguir o usuário?", "conversation.delete": "Excluir conversa", "conversation.mark_as_read": "Marcar como lida", "conversation.open": "Ver conversa", @@ -496,6 +499,7 @@ "notification_requests.title": "Notificações filtradas", "notifications.clear": "Limpar notificações", "notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?", + "notifications.clear_title": "Limpar notificações?", "notifications.column_settings.admin.report": "Novas denúncias:", "notifications.column_settings.admin.sign_up": "Novas inscrições:", "notifications.column_settings.alert": "Notificações no computador", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index d492602d22..8cfd373837 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "Aviso de conteúdo (opcional)", "confirmation_modal.cancel": "Cancelar", "confirmations.block.confirm": "Bloquear", - "confirmations.cancel_follow_request.confirm": "Retirar pedido", - "confirmations.cancel_follow_request.message": "Tem a certeza que pretende retirar o pedido para seguir {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "De certeza que quer eliminar esta publicação?", + "confirmations.delete.title": "Eliminar publicação?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "Tens a certeza de que deseja eliminar permanentemente esta lista?", + "confirmations.delete_list.title": "Eliminar lista?", "confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.message": "Tem alterações por guardar na descrição ou pré-visualização do conteúdo. Descartar mesmo assim?", - "confirmations.domain_block.confirm": "Bloquear servidor", - "confirmations.domain_block.message": "De certeza que queres bloquear completamente o domínio {domain}? Na maioria dos casos, silenciar ou bloquear alguns utilizadores é suficiente e é o recomendado. Não irás ver conteúdo daquele domínio em cronologia alguma nem nas tuas notificações. Os teus seguidores daquele domínio serão removidos.", "confirmations.edit.confirm": "Editar", "confirmations.edit.message": "Editar agora irá sobrescrever a mensagem que está a compor. Tem a certeza de que deseja continuar?", + "confirmations.edit.title": "Sobrescrever publicação?", "confirmations.logout.confirm": "Terminar sessão", "confirmations.logout.message": "Tem a certeza de que quer terminar a sessão?", + "confirmations.logout.title": "Terminar sessão?", "confirmations.mute.confirm": "Silenciar", "confirmations.redraft.confirm": "Eliminar & reescrever", "confirmations.redraft.message": "Tem a certeza de que quer eliminar e reescrever esta publicação? Os favoritos e partilhas perder-se-ão e as respostas à publicação original ficarão órfãs.", + "confirmations.redraft.title": "Eliminar e reescrever publicação?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Responder agora irá reescrever a mensagem que está a compor actualmente. Tem a certeza que quer continuar?", + "confirmations.reply.title": "Sobrescrever publicação?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "De certeza que queres deixar de seguir {name}?", + "confirmations.unfollow.title": "Deixar de seguir utilizador?", "conversation.delete": "Eliminar conversa", "conversation.mark_as_read": "Marcar como lida", "conversation.open": "Ver conversa", @@ -507,6 +510,7 @@ "notification_requests.title": "Notificações filtradas", "notifications.clear": "Limpar notificações", "notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?", + "notifications.clear_title": "Limpar notificações?", "notifications.column_settings.admin.report": "Novas denúncias:", "notifications.column_settings.admin.sign_up": "Novas inscrições:", "notifications.column_settings.alert": "Notificações no ambiente de trabalho", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index bbae711269..c4d0535020 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -153,15 +153,12 @@ "compose_form.spoiler_placeholder": "Atenționare de conținut (opțional)", "confirmation_modal.cancel": "Anulează", "confirmations.block.confirm": "Blochează", - "confirmations.cancel_follow_request.confirm": "Retrage cererea", - "confirmations.cancel_follow_request.message": "Sunteți sigur că doriți să retrageți cererea dvs. de urmărire pentru {name}?", "confirmations.delete.confirm": "Elimină", "confirmations.delete.message": "Ești sigur că vrei să elimini această postare?", "confirmations.delete_list.confirm": "Elimină", "confirmations.delete_list.message": "Ești sigur că vrei să elimini definitiv această listă?", "confirmations.discard_edit_media.confirm": "Renunță", "confirmations.discard_edit_media.message": "Ai modificări nesalvate în descrierea sau previzualizarea media, renunți oricum?", - "confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi tot domeniul {domain}? În cele mai multe cazuri, raportarea sau blocarea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea niciun conținut din acest domeniu în vreun flux public sau în vreo notificare. Abonații tăi din acest domeniu vor fi eliminați.", "confirmations.edit.confirm": "Modifică", "confirmations.edit.message": "Editarea acum va suprascrie mesajul pe care îl compuneți în prezent. Sunteți sigur că vreți să continuați?", "confirmations.logout.confirm": "Deconectare", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 971d6c77ca..0915565442 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -166,16 +166,12 @@ "compose_form.spoiler_placeholder": "Предупреждение о контенте (опционально)", "confirmation_modal.cancel": "Отмена", "confirmations.block.confirm": "Заблокировать", - "confirmations.cancel_follow_request.confirm": "Отменить запрос", - "confirmations.cancel_follow_request.message": "Вы уверены, что хотите отозвать свой запрос на подписку {name}?", "confirmations.delete.confirm": "Удалить", "confirmations.delete.message": "Вы уверены, что хотите удалить этот пост?", "confirmations.delete_list.confirm": "Удалить", "confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?", "confirmations.discard_edit_media.confirm": "Отменить", "confirmations.discard_edit_media.message": "У вас есть несохранённые изменения описания мультимедиа или предпросмотра, отменить их?", - "confirmations.domain_block.confirm": "Заблокировать сервер", - "confirmations.domain_block.message": "Вы точно уверены, что хотите заблокировать {domain} полностью? В большинстве случаев нескольких блокировок и игнорирований вполне достаточно. Вы перестанете видеть публичную ленту и уведомления оттуда. Ваши подписчики из этого домена будут удалены.", "confirmations.edit.confirm": "Редактировать", "confirmations.edit.message": "В данный момент, редактирование перезапишет составляемое вами сообщение. Вы уверены, что хотите продолжить?", "confirmations.logout.confirm": "Выйти", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 7f8dae326e..ea18ba2091 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -133,15 +133,12 @@ "compose_form.spoiler.unmarked": "अप्रच्छन्नाक्षरं विद्यते", "confirmation_modal.cancel": "नश्यताम्", "confirmations.block.confirm": "निषेधः", - "confirmations.cancel_follow_request.confirm": "अनुरोधनमपनय", - "confirmations.cancel_follow_request.message": "{name} अनुसरणस्यानुरोधमपनेतुं दृढीकृतं वा?", "confirmations.delete.confirm": "मार्जय", "confirmations.delete.message": "निश्चयेन पत्रमिदं मार्जितुमिच्छसि?", "confirmations.delete_list.confirm": "मार्जय", "confirmations.delete_list.message": "सूचिरियं निश्चयेन स्थायित्वेन च मार्जितुमिच्छसि वा?", "confirmations.discard_edit_media.confirm": "अपास्य", "confirmations.discard_edit_media.message": "माध्यमवर्णनां प्रदर्शनञ्च अरक्षितानि परिवर्तनानि सन्ति, तानि अपासितुमिच्छसि वा?", - "confirmations.domain_block.message": "नूनं निश्चयेनैव विनष्टुमिच्छति पूर्णप्रदेशमेव {domain} ? अधिकांशसन्दर्भेऽस्थायित्वेन निषेधता निःशब्दत्वञ्च पर्याप्तं चयनीयञ्च । न तस्मात् प्रदेशात्सर्वे विषया द्रष्टुमशक्याः किस्यांश्चिदपि सर्वजनिकसमयतालिकायां वा स्वीयसूचनापटले । सर्वेऽनुसर्तारस्ते प्रदेशात् ये सन्ति ते नश्यन्ते ।", "confirmations.edit.confirm": "सम्पादय", "confirmations.edit.message": "सम्पादनमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते। निश्चयेनैवं कर्तव्यम्?", "confirmations.logout.confirm": "बहिर्गम्यताम्", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index f13514fd02..0bba96e74b 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -1,43 +1,60 @@ { "about.blocks": "Serbidores moderados", - "about.contact": "Contatu:", - "about.disclaimer": "Mastodon est software de còdigu lìberu e unu màrchiu de Mastodon gGmbH.", - "about.domain_blocks.no_reason_available": "Rasone no a disponimentu", + "about.contact": "Cuntatu:", + "about.disclaimer": "Mastodon est software de còdighe lìberu e unu màrchiu de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Peruna resone a disponimentu", "about.domain_blocks.preamble": "Mastodon ti permitit de bìdere su cuntenutu de utentes de cale si siat àteru serbidore de su fediversu. Custas sunt etzetziones fatas in custu serbidore ispetzìficu.", - "about.domain_blocks.silenced.explanation": "As a bìere perfilos e contenutos dae custu serbidore sceti chi ddos chircas o detzidas de ddu sighere.", + "about.domain_blocks.silenced.explanation": "As a bìdere profilos e cuntenutos dae custu serbidore isceti chi ddos chircas o detzides de ddu sighire.", "about.domain_blocks.silenced.title": "Limitadu", + "about.domain_blocks.suspended.explanation": "Perunu datu de custu serbidore at a èssere protzessadu, immagasinadu o cuncambiadu; est impossìbile duncas cale si siat interatzione o comunicatzione cun is utentes de custu serbidore.", "about.domain_blocks.suspended.title": "Suspèndidu", + "about.not_available": "Custa informatzione no est istada posta a disponimentu in custu serbidore.", + "about.powered_by": "Rete sotziale detzentralizada impulsada dae {mastodon}", "about.rules": "Règulas de su serbidore", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agiunghe o boga dae is listas", - "account.badges.bot": "Robot", + "account.badges.bot": "Automatizadu", "account.badges.group": "Grupu", "account.block": "Bloca @{name}", "account.block_domain": "Bloca su domìniu {domain}", "account.block_short": "Bloca", "account.blocked": "Blocadu", "account.browse_more_on_origin_server": "Esplora de prus in su profilu originale", - "account.cancel_follow_request": "Withdraw follow request", + "account.cancel_follow_request": "Annulla sa sighidura", + "account.copy": "Còpia su ligòngiu a su profilu", + "account.direct": "Mèntova a @{name} in privadu", "account.disable_notifications": "Non mi notìfiches prus cando @{name} pùblichet messàgios", "account.domain_blocked": "Domìniu blocadu", "account.edit_profile": "Modìfica profilu", "account.enable_notifications": "Notìfica·mi cando @{name} pùblicat messàgios", "account.endorse": "Cussìgia in su profilu tuo", + "account.featured_tags.last_status_never": "Peruna publicatzione", + "account.featured_tags.title": "Etichetas de {name} in evidèntzia", "account.follow": "Sighi", + "account.follow_back": "Sighi tue puru", "account.followers": "Sighiduras", "account.followers.empty": "Nemos sighit ancora custa persone.", + "account.followers_counter": "{count, plural, one {{counter} sighidura} other {{counter} sighiduras}}", "account.following": "Sighende", + "account.following_counter": "{count, plural, one {sighende a {counter}} other {sighende a {counter}}}", "account.follows.empty": "Custa persone non sighit ancora a nemos.", + "account.go_to_profile": "Bae a su profilu", "account.hide_reblogs": "Cua is cumpartziduras de @{name}", "account.in_memoriam": "In memoriam.", "account.joined_short": "At aderidu", + "account.languages": "Muda is idiomas sutiscritos", "account.link_verified_on": "Sa propiedade de custu ligòngiu est istada controllada su {date}", "account.locked_info": "S'istadu de riservadesa de custu contu est istadu cunfiguradu comente blocadu. Sa persone chi tenet sa propiedade revisionat a manu chie dda podet sighire.", "account.media": "Cuntenutu multimediale", "account.mention": "Mèntova a @{name}", + "account.moved_to": "{name} at indicadu chi su contu nou issoro immoe est:", "account.mute": "Pone a @{name} a sa muda", + "account.mute_notifications_short": "Pone is notìficas a sa muda", "account.mute_short": "A sa muda", "account.muted": "A sa muda", + "account.mutual": "Pari-pari", + "account.no_bio": "Peruna descritzione frunida.", + "account.open_original_page": "Aberi sa pàgina originale", "account.posts": "Publicatziones", "account.posts_with_replies": "Publicatziones e rispostas", "account.report": "Signala @{name}", @@ -45,32 +62,54 @@ "account.requested_follow": "{name} at dimandadu de ti sighire", "account.share": "Cumpartzi su profilu de @{name}", "account.show_reblogs": "Ammustra is cumpartziduras de @{name}", + "account.statuses_counter": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}", "account.unblock": "Isbloca a @{name}", "account.unblock_domain": "Isbloca su domìniu {domain}", + "account.unblock_short": "Isbloca", "account.unendorse": "Non cussiges in su profilu", "account.unfollow": "Non sigas prus", "account.unmute": "Torra a ativare a @{name}", + "account.unmute_notifications_short": "Ativa is notìficas", + "account.unmute_short": "Ativa su sonu", "account_note.placeholder": "Incarca pro agiùnghere una nota", + "admin.dashboard.retention.cohort_size": "Utentes noos", + "admin.impact_report.instance_accounts": "Contos de profilu chi custu diat cantzellare", + "admin.impact_report.instance_followers": "Sighiduras chi is utentes nostros diant pèrdere", + "admin.impact_report.instance_follows": "Sighiduras chi is utentes issoro diant pèrdere", "alert.rate_limited.message": "Torra·bi a proare a pustis de {retry_time, time, medium}.", "alert.rate_limited.title": "Màssimu de rechestas barigadu", "alert.unexpected.message": "Ddoe est istada una faddina.", "alert.unexpected.title": "Oh!", "announcement.announcement": "Annùntziu", + "attachments_list.unprocessed": "(non protzessadu)", "audio.hide": "Cua s'àudio", + "block_modal.show_less": "Ammustra·nde prus pagu", + "block_modal.show_more": "Ammustra·nde prus", + "block_modal.they_cant_mention": "Non ti podent mentovare nen sighire.", + "block_modal.they_cant_see_posts": "Non podent bìdere is publicatziones tuas e tue non podes bìdere cussas issoro.", + "block_modal.they_will_know": "Non podent bìdere chi ddos as blocadu.", + "block_modal.title": "Boles blocare s'utente?", + "block_modal.you_wont_see_mentions": "No as a bìdere is publicatziones chi mèntovent custa persone.", "boost_modal.combo": "Podes incarcare {combo} pro brincare custu sa borta chi benit", + "bundle_column_error.copy_stacktrace": "Còpia s'informe de faddina", "bundle_column_error.error.title": "Oh, no!", "bundle_column_error.network.title": "Faddina de connessione", "bundle_column_error.retry": "Torra·bi a proare", + "bundle_column_error.return": "Torra a sa pàgina printzipale", "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Serra", "bundle_modal_error.message": "Faddina in su carrigamentu de custu cumponente.", "bundle_modal_error.retry": "Torra·bi a proare", + "closed_registrations_modal.find_another_server": "Agata un'àteru serbidore", "column.about": "Informatziones", "column.blocks": "Persones blocadas", "column.bookmarks": "Sinnalibros", "column.community": "Lìnia de tempus locale", + "column.direct": "Mentziones privadas", "column.directory": "Nàviga in is profilos", "column.domain_blocks": "Domìnios blocados", + "column.favourites": "Preferidos", + "column.firehose": "Publicatziones in direta", "column.follow_requests": "Rechestas de sighidura", "column.home": "Printzipale", "column.lists": "Listas", @@ -89,31 +128,42 @@ "community.column_settings.local_only": "Isceti locale", "community.column_settings.media_only": "Isceti multimediale", "community.column_settings.remote_only": "Isceti remotu", - "compose.language.change": "Càmbia sa limba", + "compose.language.change": "Càmbia s'idioma", + "compose.language.search": "Chirca idiomas...", + "compose.published.body": "Publicadu.", + "compose.published.open": "Aberi", + "compose.saved.body": "Publicatzione sarvada.", "compose_form.direct_message_warning_learn_more": "Àteras informatziones", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.hashtag_warning": "Custa publicatzione no at a èssere ammustrada in peruna eticheta, dae chi no est pùblica. Isceti is publicatziones pùblicas podent èssere chircadas cun etichetas.", "compose_form.lock_disclaimer": "Su contu tuo no est {locked}. Cale si siat persone ti podet sighire pro bìdere is messàgios tuos chi imbies a sa gente chi ti sighit.", "compose_form.lock_disclaimer.lock": "blocadu", "compose_form.placeholder": "A ite ses pensende?", "compose_form.poll.duration": "Longària de su sondàgiu", + "compose_form.poll.option_placeholder": "Optzione {number}", + "compose_form.poll.single": "Sèbera·nde una", "compose_form.poll.switch_to_multiple": "Muda su sondàgiu pro permìtere multi-optziones", "compose_form.poll.switch_to_single": "Muda su sondàgiu pro permìtere un'optzione isceti", - "compose_form.publish_form": "Publish", + "compose_form.poll.type": "Istile", + "compose_form.publish": "Pùblica", + "compose_form.publish_form": "Publicatzione noa", + "compose_form.reply": "Risponde", + "compose_form.save_changes": "Atualiza", "compose_form.spoiler.marked": "Boga avisu de cuntenutu", "compose_form.spoiler.unmarked": "Agiunghe avisu de cuntenutu", + "compose_form.spoiler_placeholder": "Avisu de cuntenutu (optzionale)", "confirmation_modal.cancel": "Annulla", "confirmations.block.confirm": "Bloca", "confirmations.delete.confirm": "Cantzella", "confirmations.delete.message": "Seguru chi boles cantzellare custa publicatzione?", "confirmations.delete_list.confirm": "Cantzella", "confirmations.delete_list.message": "Seguru chi boles cantzellare custa lista in manera permanente?", - "confirmations.domain_block.message": "Boles de seguru, ma a beru a beru, blocare {domain}? In sa parte manna de is casos, pagos blocos o silentziamentos de persones sunt sufitzientes e preferìbiles. No as a bìdere cuntenutos dae custu domìniu in peruna lìnia de tempus pùblica o in is notìficas tuas. Sa gente chi ti sighit dae cussu domìniu at a èssere bogada.", + "confirmations.discard_edit_media.confirm": "Iscarta", "confirmations.edit.confirm": "Modìfica", "confirmations.logout.confirm": "Essi·nche", "confirmations.logout.message": "Seguru chi boles essire?", "confirmations.mute.confirm": "A sa muda", "confirmations.redraft.confirm": "Cantzella e torra a fàghere", + "confirmations.redraft.message": "Seguru chi boles cantzellare e torrare a fàghere custa publicatzione? As a pèrdere is preferidos e is cumpartziduras, e is rispostas a su messàgiu originale ant a abarrare òrfanas.", "confirmations.reply.confirm": "Risponde", "confirmations.reply.message": "Rispondende immoe as a subrascrìere su messàgiu chi ses iscriende. Seguru chi boles sighire?", "confirmations.unfollow.confirm": "Non sigas prus", @@ -122,22 +172,30 @@ "conversation.mark_as_read": "Signala comente lèghidu", "conversation.open": "Ammustra arresonada", "conversation.with": "Cun {names}", + "copy_icon_button.copied": "Copiadu in punta de billete", + "copypaste.copied": "Copiadu", + "copypaste.copy_to_clipboard": "Còpia in punta de billete", "directory.federated": "Dae unu fediversu connotu", "directory.local": "Isceti dae {domain}", "directory.new_arrivals": "Arribos noos", "directory.recently_active": "Cun atividade dae pagu", "disabled_account_banner.account_settings": "Cunfiguratziones de su contu", - "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", - "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "disabled_account_banner.text": "Su contu tuo {disabledAccount} no est ativu.", + "dismissable_banner.dismiss": "Iscarta", + "domain_block_modal.block": "Bloca su serbidore", + "domain_block_modal.title": "Boles blocare su domìniu?", + "domain_pill.server": "Serbidore", + "domain_pill.username": "Nòmine de utente", "embed.instructions": "Inserta custa publicatzione in su situ web tuo copiende su còdighe de suta.", "embed.preview": "At a aparèssere aici:", "emoji_button.activity": "Atividade", + "emoji_button.clear": "Isbòida", "emoji_button.custom": "Personalizadu", "emoji_button.flags": "Banderas", "emoji_button.food": "Mandigòngiu e bufòngiu", "emoji_button.label": "Inserta un'emoji", "emoji_button.nature": "Natura", - "emoji_button.not_found": "Emojis no!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Perunu emoji agatadu", "emoji_button.objects": "Ogetos", "emoji_button.people": "Gente", "emoji_button.recent": "Impreadu a fitianu", @@ -168,17 +226,43 @@ "errors.unexpected_crash.report_issue": "Sinnala unu problema", "explore.search_results": "Resurtados de sa chirca", "explore.suggested_follows": "Gente", + "explore.title": "Esplora", + "explore.trending_links": "Noas", "explore.trending_statuses": "Publicatziones", "explore.trending_tags": "Etichetas", + "filter_modal.added.expired_title": "Filtru iscadidu.", + "filter_modal.added.review_and_configure_title": "Cunfiguratziones de filtru", + "filter_modal.added.settings_link": "pàgina de cunfiguratzione", + "filter_modal.added.short_explanation": "Custa publicatzione est istada agiunta a sa categoria de filtros imbeniente: {title}.", + "filter_modal.added.title": "Filtru agiuntu!", "filter_modal.select_filter.expired": "iscadidu", + "filter_modal.select_filter.prompt_new": "Categoria noa: {name}", + "filter_modal.select_filter.search": "Chirca o crea", + "filter_modal.select_filter.subtitle": "Imprea una categoria chi esistit giai o crea·nde una", + "filter_modal.select_filter.title": "Filtra custa publicatzione", + "filter_modal.title.status": "Filtra una publicatzione", + "filtered_notifications_banner.mentions": "{count, plural, one {mèntovu} other {mèntovos}}", + "filtered_notifications_banner.pending_requests": "Notìficas dae {count, plural, =0 {nemos} one {una persone} other {# persones}} chi connosches", + "filtered_notifications_banner.title": "Notìficas filtradas", "firehose.all": "Totus", + "firehose.local": "Custu serbidore", + "firehose.remote": "Àteros serbidores", "follow_request.authorize": "Autoriza", "follow_request.reject": "Refuda", "follow_requests.unlocked_explanation": "Fintzas si su contu tuo no est blocadu, su personale de {domain} at pensadu chi forsis bolias revisionare a manu is rechestas de custos contos.", + "follow_suggestions.curated_suggestion": "Sa seletzione de s'iscuadra de traballu", + "follow_suggestions.dismiss": "No ammustres prus", + "follow_suggestions.featured_longer": "Seberadu a manu dae s'iscuadra de {domain}", + "follow_suggestions.friends_of_friends_longer": "Populare intre persones chi sighis", + "follow_suggestions.hints.featured": "Custu profilu est istadu seberadu a manu dae s'iscuadra {domain}.", + "follow_suggestions.view_all": "Ammustra totu", "footer.about": "Informatziones", + "footer.directory": "Diretòriu de profilos", + "footer.get_app": "Otene s'aplicatzione", "footer.invite": "Invita gente", "footer.keyboard_shortcuts": "Incurtzaduras de tecladu", "footer.privacy_policy": "Polìtica de riservadesa", + "footer.source_code": "Ammustra su còdighe de orìgine", "footer.status": "Istadu", "generic.saved": "Sarvadu", "getting_started.heading": "Comente cumintzare", @@ -191,56 +275,64 @@ "hashtag.column_settings.tag_mode.any": "Cale si siat de custos", "hashtag.column_settings.tag_mode.none": "Perunu de custos", "hashtag.column_settings.tag_toggle": "Include etichetas additzionales pro custa colunna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} partetzipante} other {{counter} partetzipantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}} oe", "hashtag.follow": "Sighi su hashtag", + "hashtag.unfollow": "Non sigas prus s'eticheta", "home.column_settings.show_reblogs": "Ammustra is cumpartziduras", "home.column_settings.show_replies": "Ammustra rispostas", "home.hide_announcements": "Cua annùntzios", + "home.pending_critical_update.body": "Atualiza su serbidore Mastodon tuo su prima possìbile.", + "home.pending_critical_update.link": "Ammustra is atualizatziones", + "home.pending_critical_update.title": "Atualizatzione de seguresa crìtica a disponimentu.", "home.show_announcements": "Ammustra annùntzios", - "interaction_modal.description.reply": "Podes arrespondere a custu post con una conta in Mastodon.", + "interaction_modal.description.reply": "Podes rispòndere a custa publicatzione cun unu contu de Mastodon.", "interaction_modal.on_this_server": "In custu serbidore", "interaction_modal.title.follow": "Sighi a {name}", - "interaction_modal.title.reply": "Arresponde a su post de {name}", + "interaction_modal.title.reply": "Risponde a sa publicatzione de {name}", "intervals.full.days": "{number, plural, one {# die} other {# dies}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}", - "keyboard_shortcuts.back": "pro navigare a coa", - "keyboard_shortcuts.blocked": "pro abèrrere sa lista de persones blocadas", - "keyboard_shortcuts.boost": "pro cumpartzire", - "keyboard_shortcuts.column": "pro atzentrare una publicatzione in una de is colunnas", - "keyboard_shortcuts.compose": "pro atzentrare in s'àrea de cumpositzione de testu", + "keyboard_shortcuts.back": "Nàviga a coa", + "keyboard_shortcuts.blocked": "Aberi sa lista de persones blocadas", + "keyboard_shortcuts.boost": "Potèntzia sa publicatzione", + "keyboard_shortcuts.column": "Atzentra sa colunna", + "keyboard_shortcuts.compose": "Atzentra s'àrea de cumpositzione de testu", "keyboard_shortcuts.description": "Descritzione", - "keyboard_shortcuts.direct": "to open direct messages column", - "keyboard_shortcuts.down": "pro mòere in bàsciu in sa lista", - "keyboard_shortcuts.enter": "pro abèrrere una publicatzione", - "keyboard_shortcuts.federated": "pro abèrrere sa lìnia de tempus federada", + "keyboard_shortcuts.direct": "pro abèrrere sa colunna de mèntovos privados", + "keyboard_shortcuts.down": "Move in bàsciu in sa lista", + "keyboard_shortcuts.enter": "Aberi una publicatzione", + "keyboard_shortcuts.favourites": "Aberi sa lista de preferidos", + "keyboard_shortcuts.federated": "Aberi sa lìnia de tempus federada", "keyboard_shortcuts.heading": "Incurtzaduras de tecladu", - "keyboard_shortcuts.home": "pro abèrrere sa lìnia de tempus printzipale", + "keyboard_shortcuts.home": "Aberi sa lìnia de tempus printzipale", "keyboard_shortcuts.hotkey": "Tecla de atzessu diretu", - "keyboard_shortcuts.legend": "pro ammustrare custa didascalia", - "keyboard_shortcuts.local": "pro abèrrere sa lìnia de tempus locale", - "keyboard_shortcuts.mention": "pro mentovare s'atributzione", - "keyboard_shortcuts.muted": "pro abèrrere sa lista de persones a sa muda", - "keyboard_shortcuts.my_profile": "pro abèrrere su profilu tuo", - "keyboard_shortcuts.notifications": "pro abèrrere sa colunna de notificatziones", - "keyboard_shortcuts.open_media": "pro abèrrere elementos multimediales", - "keyboard_shortcuts.pinned": "pro abèrrere sa lista de publicatziones apicadas", - "keyboard_shortcuts.profile": "pro abèrrere su profilu de s'autore", - "keyboard_shortcuts.reply": "pro rispòndere", - "keyboard_shortcuts.requests": "pro abèrrere sa lista de rechestas de sighidura", - "keyboard_shortcuts.search": "pro atzentrare sa chirca", - "keyboard_shortcuts.spoilers": "pro ammustrare/cuare su campu AC", - "keyboard_shortcuts.start": "pro abèrrere sa colunna \"Cumintza\"", - "keyboard_shortcuts.toggle_hidden": "pro ammustrare o cuare testu de is AC", - "keyboard_shortcuts.toggle_sensitivity": "pro ammustrare o cuare elementos multimediales", - "keyboard_shortcuts.toot": "pro cumintzare a iscrìere una publicatzione noa", - "keyboard_shortcuts.unfocus": "pro essire de s'àrea de cumpositzione de testu o de chirca", - "keyboard_shortcuts.up": "pro mòere in susu in sa lista", + "keyboard_shortcuts.legend": "Ammustra custa didascalia", + "keyboard_shortcuts.local": "Aberi sa lìnia de tempus locale", + "keyboard_shortcuts.mention": "Mèntova a s'atributzione", + "keyboard_shortcuts.muted": "Aberi sa lista de persones a sa muda", + "keyboard_shortcuts.my_profile": "Aberi su profilu tuo", + "keyboard_shortcuts.notifications": "Aberi sa colunna de notificatziones", + "keyboard_shortcuts.open_media": "Aberi is elementos multimediales", + "keyboard_shortcuts.pinned": "Aberi sa lista de publicatziones apicadas", + "keyboard_shortcuts.profile": "Aberi su profilu de s'autore", + "keyboard_shortcuts.reply": "Risponde a sa publicatzioe", + "keyboard_shortcuts.requests": "Aberi sa lista de rechestas de sighiduras", + "keyboard_shortcuts.search": "Atzentra sa barra de chirca", + "keyboard_shortcuts.spoilers": "Ammustra/cua su campu AC", + "keyboard_shortcuts.start": "Aberi sa colunna \"Cumintza\"", + "keyboard_shortcuts.toggle_hidden": "Ammustra o cua su testu de is AC", + "keyboard_shortcuts.toggle_sensitivity": "Ammustra/cua elementos multimediales", + "keyboard_shortcuts.toot": "Cumintza a iscrìere una publicatzione noa", + "keyboard_shortcuts.unfocus": "Essi de s'àrea de cumpositzione de testu o de chirca", + "keyboard_shortcuts.up": "Move in susu in sa lista", "lightbox.close": "Serra", "lightbox.compress": "Cumprime sa casella de visualizatzione de is immàgines", "lightbox.expand": "Ismànnia sa casella de visualizatzione de is immàgines", "lightbox.next": "Imbeniente", "lightbox.previous": "Pretzedente", - "limited_account_hint.title": "Custu perfilu dd'ant cuadu is moderadores de {domain}.", + "limited_account_hint.title": "Custu profilu est istadu cuadu dae sa moderatzione de {domain}.", "lists.account.add": "Agiunghe a sa lista", "lists.account.remove": "Boga dae sa lista", "lists.delete": "Cantzella sa lista", @@ -262,8 +354,11 @@ "navigation_bar.bookmarks": "Sinnalibros", "navigation_bar.community_timeline": "Lìnia de tempus locale", "navigation_bar.compose": "Cumpone una publicatzione noa", + "navigation_bar.direct": "Mentziones privadas", "navigation_bar.discover": "Iscoberi", "navigation_bar.domain_blocks": "Domìnios blocados", + "navigation_bar.explore": "Esplora", + "navigation_bar.favourites": "Preferidos", "navigation_bar.filters": "Faeddos a sa muda", "navigation_bar.follow_requests": "Rechestas de sighidura", "navigation_bar.follows_and_followers": "Gente chi sighis e sighiduras", @@ -276,17 +371,42 @@ "navigation_bar.public_timeline": "Lìnia de tempus federada", "navigation_bar.search": "Chirca", "navigation_bar.security": "Seguresa", - "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "not_signed_in_indicator.not_signed_in": "Ti depes identificare pro atzèdere a custa resursa.", + "notification.admin.sign_up": "{name} at aderidu", "notification.favourite": "{name} at marcadu comente a preferidu s'istadu tuo", "notification.follow": "{name} ti sighit", "notification.follow_request": "{name} at dimandadu de ti sighire", "notification.mention": "{name} t'at mentovadu", + "notification.moderation-warning.learn_more": "Àteras informatziones", + "notification.moderation_warning": "T'ant imbiadu un'avisu de moderatzione", + "notification.moderation_warning.action_delete_statuses": "Unas cantas de is publicatziones tuas sunt istadas cantzelladas.", + "notification.moderation_warning.action_disable": "Su contu tuo est istadu disativadu.", + "notification.moderation_warning.action_mark_statuses_as_sensitive": "Unas cantas de is publicatziones tuas sunt istadas marcadas comente sensìbiles.", + "notification.moderation_warning.action_none": "Su contu tuo at retzidu un'avisu de moderatzione.", + "notification.moderation_warning.action_sensitive": "Is publicatziones tuas ant a èssere marcadas comente sensìbiles dae immoe.", + "notification.moderation_warning.action_silence": "Su contu tuo est istadu limitadu.", + "notification.moderation_warning.action_suspend": "Su contu tuo est istadu suspèndidu.", "notification.own_poll": "Sondàgiu acabbadu", + "notification.poll": "Unu sondàgiu in su chi as votadu est acabbadu", + "notification.private_mention": "{name} t'at mentovadu in privadu", "notification.reblog": "{name} at cumpartzidu sa publicatzione tua", + "notification.relationships_severance_event": "Connessiones pèrdidas cun {name}", + "notification.relationships_severance_event.learn_more": "Àteras informatziones", "notification.status": "{name} at publicadu cosa", + "notification.update": "{name} at modificadu una publicatzione", + "notification_requests.accept": "Atzeta", + "notification_requests.dismiss": "Iscarta", + "notification_requests.notifications_from": "Notìficas dae {name}", + "notification_requests.title": "Notìficas filtradas", "notifications.clear": "Lìmpia notìficas", "notifications.clear_confirmation": "Seguru chi boles isboidare in manera permanente totu is notìficas tuas?", + "notifications.column_settings.admin.report": "Informes noos:", "notifications.column_settings.alert": "Notìficas de iscrivania", + "notifications.column_settings.beta.category": "Funtzionalidades isperimentales", + "notifications.column_settings.beta.grouping": "Notìficas de grupu", + "notifications.column_settings.favourite": "Preferidos:", + "notifications.column_settings.filter_bar.advanced": "Ammustra totu is categorias", + "notifications.column_settings.filter_bar.category": "Barra de filtru lestru", "notifications.column_settings.follow": "Sighiduras noas:", "notifications.column_settings.follow_request": "Rechestas noas de sighidura:", "notifications.column_settings.mention": "Mèntovos:", @@ -296,8 +416,12 @@ "notifications.column_settings.show": "Ammustra in sa colunna", "notifications.column_settings.sound": "Reprodue unu sonu", "notifications.column_settings.status": "Publicatziones noas:", + "notifications.column_settings.unread_notifications.category": "Notìficas de lèghere", + "notifications.column_settings.unread_notifications.highlight": "Evidèntzia is notìficas de lèghere", + "notifications.column_settings.update": "Modìficas:", "notifications.filter.all": "Totus", "notifications.filter.boosts": "Cumpartziduras", + "notifications.filter.favourites": "Preferidos", "notifications.filter.follows": "Sighende", "notifications.filter.mentions": "Mèntovos", "notifications.filter.polls": "Resurtados de su sondàgiu", @@ -308,27 +432,23 @@ "notifications.permission_denied": "Is notìficas de iscrivania non sunt a disponimentu pro neghe de rechestas de permissu chi sunt istadas dennegadas in antis", "notifications.permission_denied_alert": "Is notìficas de iscrivania non podent èssere abilitadas, ca su permissu de su navigadore est istadu dennegadu in antis", "notifications.permission_required": "Is notìficas de iscrivania no sunt a disponimentu ca ammancat su permissu rechèdidu.", + "notifications.policy.filter_new_accounts.hint": "Creadu {days, plural, one {erisero} other {in is ùrtimas # dies}}", + "notifications.policy.filter_new_accounts_title": "Contos noos", + "notifications.policy.filter_not_followers_title": "Gente chi non ti sighit", + "notifications.policy.filter_not_following_hint": "Fintzas a cando no donas s'aprovatzione tua", + "notifications.policy.filter_not_following_title": "Gente chi non sighis", "notifications_permission_banner.enable": "Abilita is notìficas de iscrivania", "notifications_permission_banner.how_to_control": "Pro retzire notìficas cando Mastodon no est abertu, abilita is notìficas de iscrivania. Podes controllare cun pretzisione is castas de interatziones chi ingendrant notìficas de iscrivania pro mèdiu de su butone {icon} in subra, cando sunt abilitadas.", "notifications_permission_banner.title": "Non ti perdas mai nudda", - "onboarding.actions.go_to_explore": "See what's trending", - "onboarding.actions.go_to_home": "Go to your home feed", - "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", - "onboarding.follows.title": "Popular on Mastodon", + "onboarding.compose.template": "Salude #Mastodon!", "onboarding.profile.display_name": "Nòmine visìbile", "onboarding.profile.note": "Biografia", - "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", - "onboarding.start.skip": "Want to skip right ahead?", - "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", - "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", - "onboarding.steps.publish_status.body": "Say hello to the world.", - "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", - "onboarding.steps.setup_profile.title": "Customize your profile", - "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", - "onboarding.steps.share_profile.title": "Share your profile", + "onboarding.steps.setup_profile.title": "Personaliza su profilu tuo", + "onboarding.steps.share_profile.title": "Cumpartzi su profilu tuo", "picture_in_picture.restore": "Torra·ddu a ue fiat", "poll.closed": "Serradu", "poll.refresh": "Atualiza", + "poll.reveal": "Ammustra is resurtados", "poll.total_people": "{count, plural, one {# persone} other {# persones}}", "poll.total_votes": "{count, plural, one {# votu} other {# votos}}", "poll.vote": "Vota", @@ -338,20 +458,30 @@ "poll_button.remove_poll": "Cantzella su sondàgiu", "privacy.change": "Modìfica s'istadu de riservadesa", "privacy.public.short": "Pùblicu", + "privacy_policy.last_updated": "Ùrtima atualizatzione: {date}", + "privacy_policy.title": "Polìtica de riservadesa", "recommended": "Cussigiadu", "refresh": "Atualiza", "regeneration_indicator.label": "Carrighende…", "regeneration_indicator.sublabel": "Preparende sa lìnia de tempus printzipale tua.", "relative_time.days": "{number} dies a oe", - "relative_time.full.just_now": "immoe etotu", + "relative_time.full.days": "{number, plural, one {# die} other {# dies}} a oe", + "relative_time.full.hours": "{number, plural, one {# ora} other {# oras}} a immoe", + "relative_time.full.just_now": "immoe immoe", + "relative_time.full.minutes": "{number, plural, one {# minutu} other {# minutos}} a immoe", + "relative_time.full.seconds": "{number, plural, one {# segundu} other {# segundos}} a immoe", "relative_time.hours": "{number} oras a immoe", "relative_time.just_now": "immoe", "relative_time.minutes": "{number} minutos a immoe", "relative_time.seconds": "{number} segundos a immoe", "relative_time.today": "oe", + "reply_indicator.attachments": "{count, plural, one {# alligongiadu} other {# alligongiados}}", "reply_indicator.cancel": "Annulla", + "reply_indicator.poll": "Sondàgiu", "report.block": "Bloca", + "report.categories.legal": "Giurìdicu", "report.categories.other": "Àteru", + "report.categories.spam": "Àliga", "report.category.title_account": "profilu", "report.category.title_status": "publicatzione", "report.close": "Fatu", @@ -360,19 +490,31 @@ "report.mute": "A sa muda", "report.next": "Imbeniente", "report.placeholder": "Cummentos additzionales", + "report.reasons.dislike": "Non mi praghet", + "report.reasons.dislike_description": "Est una cosa chi non boles bìdere", + "report.reasons.legal": "Illegale", + "report.reasons.other": "Un'àtera cosa", + "report.reasons.spam": "Est àliga", "report.submit": "Imbia", "report.target": "Informende de {target}", + "report.unfollow": "Non sigas prus a @{name}", "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached", + "report_notification.categories.legal": "Giurìdicu", + "report_notification.categories.legal_sentence": "cuntenutu illegale", "report_notification.categories.other": "Àteru", + "report_notification.categories.other_sentence": "àteru", + "report_notification.categories.spam": "Àliga", "search.placeholder": "Chirca", "search_popout.user": "utente", "search_results.accounts": "Profilos", "search_results.all": "Totus", "search_results.hashtags": "Etichetas", "search_results.statuses": "Publicatziones", + "server_banner.active_users": "utentes ativos", "server_banner.administered_by": "Amministradu dae:", "server_banner.server_stats": "Istatìsticas de su serbidore:", - "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.create_account": "Crea contu", + "sign_in_banner.sign_in": "Identificatzione", "status.admin_account": "Aberi s'interfache de moderatzione pro @{name}", "status.admin_status": "Aberi custa publicatzione in s'interfache de moderatzione", "status.block": "Bloca a @{name}", @@ -383,8 +525,9 @@ "status.delete": "Cantzella", "status.detailed_status": "Visualizatzione de detàlliu de arresonada", "status.edit": "Modìfica", - "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", + "status.edited_x_times": "Modificadu {count, plural, one {{count} # borta} other {{count} bortas}}", "status.embed": "Afissa", + "status.favourites": "{count, plural, one {preferidu} other {preferidos}}", "status.filtered": "Filtradu", "status.load_more": "Càrriga·nde àteros", "status.media_hidden": "Elementos multimediales cuados", @@ -411,7 +554,7 @@ "status.show_less_all": "Ammustra·nde prus pagu pro totus", "status.show_more": "Ammustra·nde prus", "status.show_more_all": "Ammustra·nde prus pro totus", - "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}", + "status.title.with_attachments": "{user} at publicadu {attachmentCount, plural, one {un'alligongiadu} other {{attachmentCount} alligongiados}}", "status.unmute_conversation": "Torra a ativare s'arresonada", "status.unpin": "Boga dae pitzu de su profilu", "subscribed_languages.save": "Sarva is modìficas", @@ -422,11 +565,11 @@ "time_remaining.minutes": "{number, plural, one {abarrat # minutu} other {abarrant # minutos}}", "time_remaining.moments": "Abarrant pagu momentos", "time_remaining.seconds": "{number, plural, one {abarrat # segundu} other {abarrant # segundos}}", - "timeline_hint.remote_resource_not_displayed": "{resource} dae àteros serbidores non benint ammustrados.", + "timeline_hint.remote_resource_not_displayed": "Is {resource} dae àteros serbidores non benint ammustradas.", "timeline_hint.resources.followers": "Sighiduras", "timeline_hint.resources.follows": "Sighende", "timeline_hint.resources.statuses": "Publicatziones prus betzas", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} persone} other {{counter} persones}} in {days, plural, one {s'ùrtima die} other {{days} is ùrtimas dies}}", "trends.trending_now": "Est tendèntzia immoe", "ui.beforeunload": "S'abbotzu tuo at a èssere pèrdidu si essis dae Mastodon.", "units.short.billion": "{count}Mrd", @@ -437,10 +580,10 @@ "upload_error.limit": "Lìmite de càrriga de archìvios barigadu.", "upload_error.poll": "Non si permitit s'imbiu de archìvios in is sondàgios.", "upload_form.audio_description": "Descritzione pro persones cun pèrdida auditiva", - "upload_form.description": "Descritzione pro persones cun problemas visuales", + "upload_form.description": "Descritzione pro persones cun pèrdida visuale", "upload_form.edit": "Modìfica", "upload_form.thumbnail": "Càmbia sa miniadura", - "upload_form.video_description": "Descritzione pro persones cun pèrdida auditiva o problemas visuales", + "upload_form.video_description": "Descritzione pro persones cun pèrdida auditiva o visuale", "upload_modal.analyzing_picture": "Analizende immàgine…", "upload_modal.apply": "Àplica", "upload_modal.choose_image": "Sèbera un'immàgine", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index 7c4d1db60e..99f474ace5 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -129,15 +129,12 @@ "compose_form.spoiler.unmarked": "Pit on a content warnin", "confirmation_modal.cancel": "Stap", "confirmations.block.confirm": "Dingie", - "confirmations.cancel_follow_request.confirm": "Tak back yer request", - "confirmations.cancel_follow_request.message": "Ye shair thit ye'r wantin tae tak back yer request fir tae follae {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Ye shair thit ye'r wantin tae delete this post?", "confirmations.delete_list.confirm": "Delete", "confirmations.delete_list.message": "Ye shair thit ye'r wantin fir tae delete this post fir ever?", "confirmations.discard_edit_media.confirm": "Fling awa", "confirmations.discard_edit_media.message": "Ye'v chynges tae the media description or preview thit ye'v no saved, fling them awa onie weys?", - "confirmations.domain_block.message": "Ye a hunner percent shair thit ye'r wantin tae dingie the hail {domain}? In maist cases a haunfae tairgtit dingies an wheeshts are eneuch an preferit. Ye wullnae see content fae that domain in onie public timelines or in yer notes. Yer follaers fae that domain wull be taen awa.", "confirmations.logout.confirm": "Log oot", "confirmations.logout.message": "Ye shair thit ye'r wantin tae log oot?", "confirmations.mute.confirm": "Wheesht", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index cff79c6b9b..ee8622029c 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -164,16 +164,12 @@ "compose_form.spoiler_placeholder": "Varovanie o obsahu (voliteľné)", "confirmation_modal.cancel": "Zruš", "confirmations.block.confirm": "Zablokovať", - "confirmations.cancel_follow_request.confirm": "Stiahnuť žiadosť", - "confirmations.cancel_follow_request.message": "Určite chcete stiahnuť svoju žiadosť o sledovanie {name}?", "confirmations.delete.confirm": "Vymazať", "confirmations.delete.message": "Určite chcete tento príspevok vymazať?", "confirmations.delete_list.confirm": "Vymazať", "confirmations.delete_list.message": "Určite chcete tento zoznam trvalo vymazať?", "confirmations.discard_edit_media.confirm": "Zahodiť", "confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?", - "confirmations.domain_block.confirm": "Blokovať server", - "confirmations.domain_block.message": "Určite chcete blokovať celú doménu {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych účtov, čo aj odporúčame. Obsah z tejto domény neuvidíte v žiadnej verejnej časovej osi ani v upozorneniach. Vaši sledujúci pochádzajúci z tejto domény budú odstránení.", "confirmations.edit.confirm": "Upraviť", "confirmations.edit.message": "Úpravou prepíšete príspevok, ktorý máte rozpísaný. Určite chcete pokračovať?", "confirmations.logout.confirm": "Odhlásiť sa", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index b8c995b8d1..4109dfee85 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Opozorilo o vsebini (ni obvezno)", "confirmation_modal.cancel": "Prekliči", "confirmations.block.confirm": "Blokiraj", - "confirmations.cancel_follow_request.confirm": "Umakni zahtevo", - "confirmations.cancel_follow_request.message": "Ali ste prepričani, da želite umakniti svojo zahtevo, da bi sledili {name}?", "confirmations.delete.confirm": "Izbriši", "confirmations.delete.message": "Ali ste prepričani, da želite izbrisati to objavo?", "confirmations.delete_list.confirm": "Izbriši", "confirmations.delete_list.message": "Ali ste prepričani, da želite trajno izbrisati ta seznam?", "confirmations.discard_edit_media.confirm": "Opusti", "confirmations.discard_edit_media.message": "Imate ne shranjene spremembe za medijski opis ali predogled; jih želite kljub temu opustiti?", - "confirmations.domain_block.confirm": "Blokiraj strežnik", - "confirmations.domain_block.message": "Ali ste res, res prepričani, da želite blokirati celotno {domain}? V večini primerov je nekaj ciljnih blokiranj ali utišanj dovolj in boljše. Vsebino iz te domene ne boste videli v javnih časovnicah ali obvestilih. Vaši sledilci iz te domene bodo odstranjeni.", "confirmations.edit.confirm": "Uredi", "confirmations.edit.message": "Urejanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?", "confirmations.logout.confirm": "Odjava", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 6f378b145e..9562757036 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Sinjalizim lënde (opsional)", "confirmation_modal.cancel": "Anuloje", "confirmations.block.confirm": "Bllokoje", - "confirmations.cancel_follow_request.confirm": "Tërhiqeni mbrapsht kërkesën", - "confirmations.cancel_follow_request.message": "Jeni i sigurt se doni të tërhiqni mbrapsht kërkesën tuaj për ndjekje të {name}?", "confirmations.delete.confirm": "Fshije", "confirmations.delete.message": "Jeni i sigurt se doni të fshihet kjo gjendje?", "confirmations.delete_list.confirm": "Fshije", "confirmations.delete_list.message": "Jeni i sigurt se doni të fshihet përgjithmonë kjo listë?", "confirmations.discard_edit_media.confirm": "Hidhe tej", "confirmations.discard_edit_media.message": "Keni ndryshime të paruajtura te përshkrimi ose paraparja e medias, të hidhen tej, sido qoftë?", - "confirmations.domain_block.confirm": "Bllokoje shërbyesin", - "confirmations.domain_block.message": "Jeni i sigurt, shumë i sigurt se doni të bllokohet krejt {domain}? Në shumicën e rasteve, ndoca bllokime ose heshtime me synim të caktuar janë të mjaftueshme dhe të parapëlqyera. S’keni për të parë lëndë nga kjo përkatësi në ndonjë rrjedhë kohore publike, apo te njoftimet tuaja. Ndjekësit tuaj prej asaj përkatësie do të hiqen.", "confirmations.edit.confirm": "Përpunojeni", "confirmations.edit.message": "Përpunimi tani do të sjellë mbishkrim të mesazhit që po hartoni aktualisht. Jeni i sigurt se doni të vazhdohet?", "confirmations.logout.confirm": "Dilni", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 38ff12bdcf..3167f4a815 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Upozorenje o sadržaju (opciono)", "confirmation_modal.cancel": "Otkaži", "confirmations.block.confirm": "Blokiraj", - "confirmations.cancel_follow_request.confirm": "Povuci zahtev", - "confirmations.cancel_follow_request.message": "Da li ste sigurni da želite da povučete zahtev da pratite {name}?", "confirmations.delete.confirm": "Izbriši", "confirmations.delete.message": "Da li ste sigurni da želite da izbrišete ovu objavu?", "confirmations.delete_list.confirm": "Izbriši", "confirmations.delete_list.message": "Da li ste sigurni da želite da trajno izbrišete ovu listu?", "confirmations.discard_edit_media.confirm": "Odbaci", "confirmations.discard_edit_media.message": "Imate nesačuvane promene u opisu ili pregledu medija, da li ipak hoćete da ih odbacite?", - "confirmations.domain_block.confirm": "Blokiraj server", - "confirmations.domain_block.message": "Da li ste zaista sigurni da želite da blokirate ceo domen {domain}? U većini slučajeva, dovoljno je i poželjno nekoliko ciljanih blokiranja ili ignorisanja. Nećete videti sadržaj sa tog domena ni u jednoj javnoj vremenskoj liniji ili u vašim obaveštenjima. Vaši pratioci sa tog domena će biti uklonjeni.", "confirmations.edit.confirm": "Uredi", "confirmations.edit.message": "Uređivanjem će se obrisati poruka koju trenutno sastavljate. Da li ste sigurni da želite da nastavite?", "confirmations.logout.confirm": "Odjava", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 047e8cf3a8..8729fa59dd 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Упозорење о садржају (опционо)", "confirmation_modal.cancel": "Откажи", "confirmations.block.confirm": "Блокирај", - "confirmations.cancel_follow_request.confirm": "Повуци захтев", - "confirmations.cancel_follow_request.message": "Да ли сте сигурни да желите да повучете захтев да пратите {name}?", "confirmations.delete.confirm": "Избриши", "confirmations.delete.message": "Да ли сте сигурни да желите да избришете ову објаву?", "confirmations.delete_list.confirm": "Избриши", "confirmations.delete_list.message": "Да ли сте сигурни да желите да трајно избришете ову листу?", "confirmations.discard_edit_media.confirm": "Одбаци", "confirmations.discard_edit_media.message": "Имате несачуване промене у опису или прегледу медија, да ли ипак хоћете да их одбаците?", - "confirmations.domain_block.confirm": "Блокирај сервер", - "confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, довољно је и пожељно неколико циљаних блокирања или игнорисања. Нећете видети садржај са тог домена ни у једној јавној временској линији или у вашим обавештењима. Ваши пратиоци са тог домена ће бити уклоњени.", "confirmations.edit.confirm": "Уреди", "confirmations.edit.message": "Уређивањем ће се обрисати порука коју тренутно састављате. Да ли сте сигурни да желите да наставите?", "confirmations.logout.confirm": "Одјава", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 53e2dde42e..6ed1742267 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -168,16 +168,12 @@ "compose_form.spoiler_placeholder": "Innehållsvarning (valfritt)", "confirmation_modal.cancel": "Avbryt", "confirmations.block.confirm": "Blockera", - "confirmations.cancel_follow_request.confirm": "Återkalla förfrågan", - "confirmations.cancel_follow_request.message": "Är du säker på att du vill återkalla din begäran om att följa {name}?", "confirmations.delete.confirm": "Radera", "confirmations.delete.message": "Är du säker på att du vill radera detta inlägg?", "confirmations.delete_list.confirm": "Radera", "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", "confirmations.discard_edit_media.confirm": "Kasta", "confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?", - "confirmations.domain_block.confirm": "Blockera server", - "confirmations.domain_block.message": "Är du verkligen, verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer inte se innehåll från den domänen i den allmänna tidslinjen eller i dina aviseringar. Dina följare från den domänen komer att tas bort.", "confirmations.edit.confirm": "Redigera", "confirmations.edit.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?", "confirmations.logout.confirm": "Logga ut", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index bb26986b81..ef3255a7da 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -130,7 +130,6 @@ "confirmations.delete_list.message": "இப்பட்டியலை நிரந்தரமாக நீக்க நிச்சயம் விரும்புகிறீர்களா?", "confirmations.discard_edit_media.confirm": "நிராகரி", "confirmations.discard_edit_media.message": "சேமிக்கப்படாத மாற்றங்கள் ஊடக விளக்கம் அல்லது முன்னோட்டத்தில் உள்ளது. அவற்றை நிராகரிக்கவா?", - "confirmations.domain_block.message": "நீங்கள் முழு {domain} களத்தையும் நிச்சயமாக, நிச்சயமாகத் தடுக்க விரும்புகிறீர்களா? பெரும்பாலும் சில குறிப்பிட்ட பயனர்களைத் தடுப்பதே போதுமானது. முழு களத்தையும் தடுத்தால், அதிலிருந்து வரும் எந்தப் பதிவையும் உங்களால் காண முடியாது, மேலும் அப்பதிவுகள் குறித்த அறிவிப்புகளும் உங்களுக்கு வராது. அந்தக் களத்தில் இருக்கும் பின்தொடர்பவர்கள் உங்கள் பக்கத்திலிருந்து நீக்கப்படுவார்கள்.", "confirmations.logout.confirm": "வெளியேறு", "confirmations.logout.message": "நிச்சயமாக நீங்கள் வெளியேற விரும்புகிறீர்களா?", "confirmations.mute.confirm": "அமைதியாக்கு", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 471890b9a3..d3e1026889 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -73,7 +73,6 @@ "confirmations.delete.message": "మీరు ఖచ్చితంగా ఈ స్టేటస్ ని తొలగించాలనుకుంటున్నారా?", "confirmations.delete_list.confirm": "తొలగించు", "confirmations.delete_list.message": "మీరు ఖచ్చితంగా ఈ జాబితాను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?", - "confirmations.domain_block.message": "మీరు నిజంగా నిజంగా మొత్తం {domain} ని బ్లాక్ చేయాలనుకుంటున్నారా? చాలా సందర్భాలలో కొన్ని లక్ష్యంగా ఉన్న బ్లాక్స్ లేదా మ్యూట్స్ సరిపోతాయి మరియు ఉత్తమమైనవి. మీరు ఆ డొమైన్ నుండి కంటెంట్ను ఏ ప్రజా కాలక్రమాలలో లేదా మీ నోటిఫికేషన్లలో చూడలేరు. ఆ డొమైన్ నుండి మీ అనుచరులు తీసివేయబడతారు.", "confirmations.mute.confirm": "మ్యూట్ చేయి", "confirmations.redraft.confirm": "తొలగించు & తిరగరాయు", "confirmations.reply.confirm": "ప్రత్యుత్తరమివ్వు", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 3591d07d12..508fb15d15 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "คำเตือนเนื้อหา (ไม่จำเป็น)", "confirmation_modal.cancel": "ยกเลิก", "confirmations.block.confirm": "ปิดกั้น", - "confirmations.cancel_follow_request.confirm": "ถอนคำขอ", - "confirmations.cancel_follow_request.message": "คุณแน่ใจหรือไม่ว่าต้องการถอนคำขอเพื่อติดตาม {name} ของคุณ?", "confirmations.delete.confirm": "ลบ", "confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้?", "confirmations.delete_list.confirm": "ลบ", "confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?", "confirmations.discard_edit_media.confirm": "ละทิ้ง", "confirmations.discard_edit_media.message": "คุณมีการเปลี่ยนแปลงคำอธิบายหรือตัวอย่างสื่อที่ยังไม่ได้บันทึก ละทิ้งการเปลี่ยนแปลงเหล่านั้นต่อไป?", - "confirmations.domain_block.confirm": "ปิดกั้นเซิร์ฟเวอร์", - "confirmations.domain_block.message": "คุณแน่ใจจริง ๆ หรือไม่ว่าต้องการปิดกั้นทั้ง {domain}? ในกรณีส่วนใหญ่ การปิดกั้นหรือการซ่อนแบบกำหนดเป้าหมายไม่กี่รายการนั้นเพียงพอและเป็นที่นิยม คุณจะไม่เห็นเนื้อหาจากโดเมนนั้นในเส้นเวลาสาธารณะใด ๆ หรือการแจ้งเตือนของคุณ จะเอาผู้ติดตามของคุณจากโดเมนนั้นออก", "confirmations.edit.confirm": "แก้ไข", "confirmations.edit.message": "การแก้ไขในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?", "confirmations.logout.confirm": "ออกจากระบบ", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index e581978f24..cf76b31f92 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -130,15 +130,12 @@ "compose_form.spoiler.marked": "o weka e toki pi ijo ike ken", "confirmation_modal.cancel": "o pini", "confirmations.block.confirm": "o weka", - "confirmations.cancel_follow_request.confirm": "o weka e wile sina", - "confirmations.cancel_follow_request.message": "sina awen ala awen wile weka e wile kute sina lon {name}?", "confirmations.delete.confirm": "o weka", "confirmations.delete.message": "sina wile ala wile weka e toki ni?", "confirmations.delete_list.confirm": "o weka", "confirmations.delete_list.message": "sina wile ala wile weka e lipu ni?", "confirmations.discard_edit_media.confirm": "o weka", "confirmations.discard_edit_media.message": "toki sitelen anu lukin lili sitelen la ante pi awen ala li lon. sina wile weka e ante ni?", - "confirmations.domain_block.message": "sina wile ala a wile a len e ma {domain} ꞏ ken suli la len jan taso li pona ꞏ len pi ma ni la sina ken ala lukin e ijo pi ma ni lon lipu toki ale anu lukin toki ꞏ len ni la jan kute sina pi ma ni li weka", "confirmations.edit.confirm": "o ante", "confirmations.edit.message": "sina ante e toki sina la toki pali sina li weka. sina wile ala wile e ni?", "confirmations.logout.confirm": "o weka", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index ae7b5ba25d..bb0b96943b 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "İçerik uyarısı (isteğe bağlı)", "confirmation_modal.cancel": "İptal", "confirmations.block.confirm": "Engelle", - "confirmations.cancel_follow_request.confirm": "İsteği geri çek", - "confirmations.cancel_follow_request.message": "{name} kişisini takip etme isteğini geri çekmek istediğinden emin misin?", "confirmations.delete.confirm": "Sil", "confirmations.delete.message": "Bu tootu silmek istediğinden emin misin?", "confirmations.delete_list.confirm": "Sil", "confirmations.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinden emin misin?", "confirmations.discard_edit_media.confirm": "Vazgeç", "confirmations.discard_edit_media.message": "Medya açıklaması veya ön izlemede kaydedilmemiş değişiklikleriniz var, yine de vazgeçmek istiyor musunuz?", - "confirmations.domain_block.confirm": "Sunucuyu engelle", - "confirmations.domain_block.message": "{domain} alanının tamamını engellemek istediğinden gerçekten emin misin? Genellikle hedeflenen birkaç engelleme veya sessize alma yeterlidir ve tercih edilir. Bu alan adından gelen içeriği herhangi bir genel zaman çizelgesinde veya bildirimlerinde görmezsin. Bu alan adındaki takipçilerin kaldırılır.", "confirmations.edit.confirm": "Düzenle", "confirmations.edit.message": "Şimdi düzenlersen şu an oluşturduğun iletinin üzerine yazılır. Devam etmek istediğine emin misin?", "confirmations.logout.confirm": "Oturumu kapat", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index baba3190dc..1c150c99c6 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -132,15 +132,12 @@ "compose_form.spoiler.unmarked": "Text is not hidden", "confirmation_modal.cancel": "Баш тарту", "confirmations.block.confirm": "Блоклау", - "confirmations.cancel_follow_request.confirm": "Сорауны баш тарту", - "confirmations.cancel_follow_request.message": "Сез абонемент соравыгызны кире кайтарырга телисез {name}?", "confirmations.delete.confirm": "Бетерү", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Бетерү", "confirmations.delete_list.message": "Сез бу исемлекне мәңгегә бетерергә телисезме?", "confirmations.discard_edit_media.confirm": "Баш тарту", "confirmations.discard_edit_media.message": "Сезнең медиа тасвирламасында яки алдан карау өчен сакланмаган үзгәрешләр бармы? ", - "confirmations.domain_block.message": "Сез чыннан да барысын да блокларга телисез {domain}? Күпчелек очракта берничә максатлы блоклар яки тавышсызлар җитәрлек һәм өстенлекле. Сез бу доменнан эчтәлекне җәмәгать срокларында яки хәбәрләрегездә күрмәячәксез. Бу доменнан сезнең шәкертләр бетереләчәк.", "confirmations.edit.confirm": "Үзгәртү", "confirmations.logout.confirm": "Чыгу", "confirmations.logout.message": "Сез чыгарга телисезме?", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index b5cd1f7b28..fb9c35e438 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -169,20 +169,19 @@ "compose_form.spoiler_placeholder": "Попередження про вміст (необов'язково)", "confirmation_modal.cancel": "Скасувати", "confirmations.block.confirm": "Заблокувати", - "confirmations.cancel_follow_request.confirm": "Відкликати запит", - "confirmations.cancel_follow_request.message": "Ви дійсно бажаєте відкликати запит на стеження за {name}?", "confirmations.delete.confirm": "Видалити", "confirmations.delete.message": "Ви впевнені, що хочете видалити цей допис?", + "confirmations.delete.title": "Видалити допис?", "confirmations.delete_list.confirm": "Видалити", "confirmations.delete_list.message": "Ви впевнені, що хочете видалити цей список назавжди?", + "confirmations.delete_list.title": "Видалити список?", "confirmations.discard_edit_media.confirm": "Відкинути", "confirmations.discard_edit_media.message": "У вас є незбережені зміни в описі медіа або попереднього перегляду, все одно відкинути їх?", - "confirmations.domain_block.confirm": "Блокувати сервер", - "confirmations.domain_block.message": "Ви точно, точно впевнені, що хочете заблокувати весь домен {domain}? У більшості випадків для нормальної роботи краще заблокувати або приховати лише деяких користувачів. Ви не зможете бачити контент з цього домену у будь-яких стрічках або ваших сповіщеннях. Ваші підписники з цього домену будуть відписані від вас.", "confirmations.edit.confirm": "Змінити", "confirmations.edit.message": "Редагування перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?", "confirmations.logout.confirm": "Вийти", "confirmations.logout.message": "Ви впевнені, що хочете вийти?", + "confirmations.logout.title": "Вийти?", "confirmations.mute.confirm": "Приховати", "confirmations.redraft.confirm": "Видалити та виправити", "confirmations.redraft.message": "Ви впевнені, що хочете видалити цей допис та переписати його? Додавання у вибране та поширення буде втрачено, а відповіді на оригінальний допис залишаться без першоджерела.", @@ -507,6 +506,7 @@ "notification_requests.title": "Відфільтровані сповіщення", "notifications.clear": "Очистити сповіщення", "notifications.clear_confirmation": "Ви впевнені, що хочете назавжди видалити всі сповіщення?", + "notifications.clear_title": "Очистити сповіщення?", "notifications.column_settings.admin.report": "Нові скарги:", "notifications.column_settings.admin.sign_up": "Нові реєстрації:", "notifications.column_settings.alert": "Сповіщення стільниці", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index 3c61846e9c..d82e52ae50 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -126,7 +126,6 @@ "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "ڈیلیٹ", "confirmations.delete_list.message": "کیا آپ واقعی اس فہرست کو مستقل طور پر ڈیلیٹ کرنا چاہتے ہیں؟", - "confirmations.domain_block.message": "کیا آپ واقعی، واقعی یقین رکھتے ہیں کہ آپ پورے {domain} کو بلاک کرنا چاہتے ہیں؟ زیادہ تر معاملات میں چند ٹارگٹیڈ بلاکس یا خاموش کرنا کافی اور افضل ہیں۔ آپ اس ڈومین کا مواد کسی بھی عوامی ٹائم لائنز یا اپنی اطلاعات میں نہیں دیکھیں گے۔ اس ڈومین سے آپ کے پیروکاروں کو ہٹا دیا جائے گا۔", "confirmations.logout.confirm": "لاگ آؤٹ", "confirmations.logout.message": "کیا واقعی آپ لاگ آؤٹ ہونا چاہتے ہیں؟", "confirmations.mute.confirm": "خاموش", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index 90ad67d287..d0bcb90924 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -130,15 +130,12 @@ "compose_form.spoiler.unmarked": "Kontent haqida ogohlantirish qo'shing", "confirmation_modal.cancel": "Bekor qilish", "confirmations.block.confirm": "Bloklash", - "confirmations.cancel_follow_request.confirm": "Bekor qilish", - "confirmations.cancel_follow_request.message": "Haqiqatan ham {name}ga obuna boʻlish soʻrovingizni qaytarib olmoqchimisiz?", "confirmations.delete.confirm": "Oʻchirish", "confirmations.delete.message": "Haqiqatan ham bu postni oʻchirib tashlamoqchimisiz?", "confirmations.delete_list.confirm": "Oʻchirish", "confirmations.delete_list.message": "Haqiqatan ham bu roʻyxatni butunlay oʻchirib tashlamoqchimisiz?", "confirmations.discard_edit_media.confirm": "Bekor qilish", "confirmations.discard_edit_media.message": "Sizda media tavsifi yoki oldindan ko‘rishda saqlanmagan o‘zgarishlar bor, ular baribir bekor qilinsinmi?", - "confirmations.domain_block.message": "Haqiqatan ham, {domain} ni butunlay bloklamoqchimisiz? Ko'pgina hollarda bir nechta maqsadli bloklar yoki ovozni o'chirish etarli va afzaldir. Siz oʻsha domendagi kontentni hech qanday umumiy vaqt jadvallarida yoki bildirishnomalaringizda koʻrmaysiz. Bu domendagi obunachilaringiz olib tashlanadi.", "confirmations.logout.confirm": "Chiqish", "confirmations.logout.message": "Chiqishingizga aminmisiz?", "confirmations.mute.confirm": "Ovozsiz", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 0f2cc996a2..af8008b272 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -169,16 +169,12 @@ "compose_form.spoiler_placeholder": "Nội dung ẩn (tùy chọn)", "confirmation_modal.cancel": "Hủy bỏ", "confirmations.block.confirm": "Chặn", - "confirmations.cancel_follow_request.confirm": "Thu hồi yêu cầu", - "confirmations.cancel_follow_request.message": "Bạn có chắc muốn thu hồi yêu cầu theo dõi của bạn với {name}?", "confirmations.delete.confirm": "Xóa bỏ", "confirmations.delete.message": "Bạn thật sự muốn xóa tút này?", "confirmations.delete_list.confirm": "Xóa bỏ", "confirmations.delete_list.message": "Bạn thật sự muốn xóa vĩnh viễn danh sách này?", "confirmations.discard_edit_media.confirm": "Bỏ qua", "confirmations.discard_edit_media.message": "Bạn chưa lưu thay đổi đối với phần mô tả hoặc bản xem trước của media, vẫn bỏ luôn?", - "confirmations.domain_block.confirm": "Chặn máy chủ", - "confirmations.domain_block.message": "Bạn thật sự muốn ẩn toàn bộ nội dung từ {domain}? Sẽ hợp lý hơn nếu bạn chỉ chặn hoặc ẩn một vài tài khoản cụ thể. Ẩn toàn bộ nội dung từ máy chủ sẽ khiến bạn không còn thấy nội dung từ máy chủ đó ở bất kỳ nơi nào, kể cả thông báo. Người quan tâm bạn từ máy chủ đó cũng sẽ bị xóa luôn.", "confirmations.edit.confirm": "Sửa", "confirmations.edit.message": "Nội dung tút cũ sẽ bị ghi đè, bạn có tiếp tục?", "confirmations.logout.confirm": "Đăng xuất", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index f6c0feecfd..f5b72f0504 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "内容警告 (可选)", "confirmation_modal.cancel": "取消", "confirmations.block.confirm": "屏蔽", - "confirmations.cancel_follow_request.confirm": "撤回请求", - "confirmations.cancel_follow_request.message": "确定撤回关注 {name} 的请求吗?", "confirmations.delete.confirm": "删除", "confirmations.delete.message": "你确定要删除这条嘟文吗?", + "confirmations.delete.title": "删除嘟文?", "confirmations.delete_list.confirm": "删除", "confirmations.delete_list.message": "确定永久删除这个列表吗?", + "confirmations.delete_list.title": "删除列表?", "confirmations.discard_edit_media.confirm": "丢弃", "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍要丢弃吗?", - "confirmations.domain_block.confirm": "屏蔽服务器", - "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,对几个特定的用户进行屏蔽或禁用对他们的消息提醒就足够了。屏蔽后,来自该域名的内容将不再出现在你任何的公共时间轴或通知列表里,你来自该域名下的关注者也将被移除。", "confirmations.edit.confirm": "编辑", "confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?", + "confirmations.edit.title": "覆盖嘟文?", "confirmations.logout.confirm": "退出登录", "confirmations.logout.message": "确定要退出登录吗?", + "confirmations.logout.title": "退出登录?", "confirmations.mute.confirm": "隐藏", "confirmations.redraft.confirm": "删除并重新编辑", "confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。", + "confirmations.redraft.title": "删除并重新嘟文?", "confirmations.reply.confirm": "回复", "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?", + "confirmations.reply.title": "覆盖嘟文?", "confirmations.unfollow.confirm": "取消关注", "confirmations.unfollow.message": "你确定要取消关注 {name} 吗?", + "confirmations.unfollow.title": "取消关注用户?", "conversation.delete": "删除对话", "conversation.mark_as_read": "标记为已读", "conversation.open": "查看对话", @@ -507,6 +510,7 @@ "notification_requests.title": "通知(已过滤)", "notifications.clear": "清空通知列表", "notifications.clear_confirmation": "你确定要永久清空通知列表吗?", + "notifications.clear_title": "清空通知?", "notifications.column_settings.admin.report": "新举报:", "notifications.column_settings.admin.sign_up": "新注册:", "notifications.column_settings.alert": "桌面通知", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 4b717a77da..58a3a33999 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -166,16 +166,12 @@ "compose_form.spoiler_placeholder": "內容警告 (選用)", "confirmation_modal.cancel": "取消", "confirmations.block.confirm": "封鎖", - "confirmations.cancel_follow_request.confirm": "撤回請求", - "confirmations.cancel_follow_request.message": "您確定要撤回追蹤 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", "confirmations.delete.message": "你確定要刪除這文章嗎?", "confirmations.delete_list.confirm": "刪除", "confirmations.delete_list.message": "你確定要永久刪除這列表嗎?", "confirmations.discard_edit_media.confirm": "捨棄", "confirmations.discard_edit_media.message": "您在媒體描述或預覽有尚未儲存的變更。確定要捨棄它們嗎?", - "confirmations.domain_block.confirm": "封鎖伺服器", - "confirmations.domain_block.message": "你真的真的確定要封鎖整個 {domain} ?多數情況下,封鎖或靜音幾個特定目標就已經有效,也是比較建議的做法。若然封鎖全站,你將不會再在這裏看到該站的內容和通知。來自該站的關注者亦會被移除。", "confirmations.edit.confirm": "編輯", "confirmations.edit.message": "現在編輯將會覆蓋你目前正在撰寫的訊息。你確定要繼續嗎?", "confirmations.logout.confirm": "登出", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index dca4cd134a..4cdf640fe1 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -169,27 +169,30 @@ "compose_form.spoiler_placeholder": "內容警告 (可選的)", "confirmation_modal.cancel": "取消", "confirmations.block.confirm": "封鎖", - "confirmations.cancel_follow_request.confirm": "收回跟隨請求", - "confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", "confirmations.delete.message": "您確定要刪除這則嘟文嗎?", + "confirmations.delete.title": "是否刪除該嘟文?", "confirmations.delete_list.confirm": "刪除", "confirmations.delete_list.message": "您確定要永久刪除此列表嗎?", + "confirmations.delete_list.title": "是否刪除該列表?", "confirmations.discard_edit_media.confirm": "捨棄", "confirmations.discard_edit_media.message": "您於媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?", - "confirmations.domain_block.confirm": "封鎖伺服器", - "confirmations.domain_block.message": "您真的非常確定要封鎖整個 {domain} 網域嗎?大部分情況下,封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。", "confirmations.edit.confirm": "編輯", "confirmations.edit.message": "編輯嘟文將覆蓋掉您目前正在撰寫之嘟文內容。您是否仍要繼續?", + "confirmations.edit.title": "是否覆寫該嘟文?", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "您確定要登出嗎?", + "confirmations.logout.title": "您確定要登出嗎?", "confirmations.mute.confirm": "靜音", "confirmations.redraft.confirm": "刪除並重新編輯", "confirmations.redraft.message": "您確定要刪除這則嘟文並重新編輯嗎?您將失去這則嘟文之轉嘟及最愛,且對此嘟文之回覆會變成獨立的嘟文。", + "confirmations.redraft.title": "是否刪除並重新編輯該嘟文?", "confirmations.reply.confirm": "回覆", "confirmations.reply.message": "回覆嘟文將覆蓋掉您目前正在撰寫之嘟文內容。您是否仍要繼續?", + "confirmations.reply.title": "是否覆寫該嘟文?", "confirmations.unfollow.confirm": "取消跟隨", "confirmations.unfollow.message": "您確定要取消跟隨 {name} 嗎?", + "confirmations.unfollow.title": "是否取消跟隨該使用者?", "conversation.delete": "刪除對話", "conversation.mark_as_read": "標記為已讀", "conversation.open": "檢視對話", @@ -507,6 +510,7 @@ "notification_requests.title": "已過濾之通知", "notifications.clear": "清除通知", "notifications.clear_confirmation": "您確定要永久清除您的通知嗎?", + "notifications.clear_title": "是否清除推播通知?", "notifications.column_settings.admin.report": "新檢舉報告:", "notifications.column_settings.admin.sign_up": "新註冊帳號:", "notifications.column_settings.alert": "桌面通知", diff --git a/config/locales/activerecord.fi.yml b/config/locales/activerecord.fi.yml index feb4fbf4c5..b731de6d3c 100644 --- a/config/locales/activerecord.fi.yml +++ b/config/locales/activerecord.fi.yml @@ -28,7 +28,7 @@ fi: doorkeeper/application: attributes: website: - invalid: ei ole kelvollinen verkko-osoite + invalid: ei ole kelvollinen URL-osoite import: attributes: data: diff --git a/config/locales/activerecord.sc.yml b/config/locales/activerecord.sc.yml index aadd00287f..cd474ea542 100644 --- a/config/locales/activerecord.sc.yml +++ b/config/locales/activerecord.sc.yml @@ -24,7 +24,7 @@ sc: status: attributes: reblog: - taken: de s'istadu esistet giai + taken: de sa publicatzione esistet giai user: attributes: email: diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml index 8963bf5a45..f6223fc480 100644 --- a/config/locales/devise.fi.yml +++ b/config/locales/devise.fi.yml @@ -2,9 +2,9 @@ fi: devise: confirmations: - confirmed: Sähköpostiosoitteesi on vahvistettu. - send_instructions: Saat pian sähköpostitse ohjeet sähköpostiosoitteesi vahvistamiseen. Jos et saanut viestiä, tarkista roskapostikansiosi. - send_paranoid_instructions: Jos sähköpostiosoitteesi on tiedossammme, saat pian sähköpostiisi ohjeet sen vahvistamiseen. Jos et saanut viestiä, tarkista roskapostikansiosi. + confirmed: Sähköpostiosoitteesi vahvistus onnistui. + send_instructions: Saat pian sähköpostiisi ohjeet sähköpostiosoitteesi vahvistamiseen. Jos viestiä ei kuulu, tarkista roskapostikansiosi. + send_paranoid_instructions: Jos sähköpostiosoitteesi on tiedossammme, saat pian sähköpostiisi ohjeet sen vahvistamiseen. Jos viestiä ei kuulu, tarkista roskapostikansiosi. failure: already_authenticated: Olet jo kirjautunut sisään. inactive: Tiliäsi ei ole vielä aktivoitu. @@ -14,7 +14,7 @@ fi: not_found_in_database: Virheellinen %{authentication_keys} tai salasana. omniauth_user_creation_failure: Virhe luotaessa tiliä tälle henkilöllisyydelle. pending: Tilisi on vielä tarkistamatta. - timeout: Istuntosi on vanhentunut. Jatkaaksesi käyttöä, kirjaudu uudelleen. + timeout: Istuntosi on vanhentunut. Jatka kirjautumalla uudelleen sisään. unauthenticated: Sinun on kirjauduttava tai rekisteröidyttävä ennen kuin voit jatkaa. unconfirmed: Vahvista sähköpostiosoitteesi, ennen kuin jatkat. mailer: @@ -24,27 +24,27 @@ fi: explanation: Olet luonut käyttäjätilin palvelimelle %{host} tätä sähköpostiosoitetta käyttäen. Olet painalluksen päässä tilin aktivoinnista. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta. explanation_when_pending: Teit hakemuksen kutsusta palvelimelle %{host} tällä sähköpostiosoitteella. Kun olet vahvistanut sähköpostiosoitteesi, tarkistamme hakemuksesi. Voit kirjautua sisään muuttaaksesi hakemuksen sisältöä tai poistaaksesi tilin, mutta et voi käyttää suurinta osaa toiminnallisuudesta ennen kuin hakemuksesi on hyväksytty. Jos hakemuksesi hylätään, tietosi poistetaan eikä sinulta tarvita enempää toimia. Jos sinä et tehnyt hakemusta, voit jättää tämän viestin huomiotta. extra_html: Tutustu myös palvelimen sääntöihin ja palveluehtoihimme. - subject: 'Mastodon: Vahvistusohjeet instanssille %{instance}' + subject: 'Mastodon: vahvistusohjeet palvelimelle %{instance}' title: Vahvista sähköpostiosoite email_changed: explanation: 'Tilin sähköpostiosoitteeksi vaihdetaan:' extra: Jos et vaihtanut sähköpostiosoitettasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä, tai ota yhteys palvelimen ylläpitoon, ellet pääse sisään käyttäjätilillesi. - subject: 'Mastodon: Sähköpostiosoite vaihdettu' + subject: 'Mastodon: sähköpostiosoite vaihdettu' title: Uusi sähköpostiosoite password_change: explanation: Tilisi salasana on vaihdettu. - extra: Ellet vaihtanut salasanaasi, joku muu on todennäköisesti päässyt käyttäjätilillesi. Vaihda salasanasi viipymättä, tai ota yhteys palvelimen ylläpitoon, jos kirjautuminen käyttäjätilillesi ei onnistu. + extra: Jos et vaihtanut salasanaasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä, tai ota yhteys palvelimen ylläpitoon, ellet pääse sisään käyttäjätilillesi. subject: 'Mastodon: salasana vaihdettu' title: Salasana vaihdettu reconfirmation_instructions: explanation: Vahvista uusi sähköpostiosoite, niin muutos astuu voimaan. - extra: Jos et tehnyt muutosta itse, voit jättää tämän viestin huomiotta. Mastodon-tilin sähköpostiosoitetta ei vaihdeta, ennen kuin klikkaat yllä olevaa linkkiä. - subject: 'Mastodon: Vahvista sähköpostiosoite palvelimelle %{instance}' + extra: Jos et tehnyt muutosta itse, voit jättää tämän viestin huomiotta. Mastodon-tilin sähköpostiosoitetta ei vaihdeta, ennen kuin painat edellä olevaa linkkiä. + subject: 'Mastodon: vahvista sähköpostiosoite palvelimelle %{instance}' title: Vahvista sähköpostiosoite reset_password_instructions: action: Vaihda salasana explanation: Pyysit tilillesi uuden salasanan. - extra: Jos et tehnyt pyyntöä itse, voit jättää tämän viestin huomiotta. Salasanaasi ei vaihdeta, ennen kuin klikkaat yllä olevaa linkkiä ja luot uuden salasanan. + extra: Jos et tehnyt pyyntöä itse, voit jättää tämän viestin huomiotta. Salasanaasi ei vaihdeta, ennen kuin painat edellä olevaa linkkiä ja luot uuden salasanan. subject: 'Mastodon: ohjeet salasanan vaihtoon' title: Salasanan vaihto two_factor_disabled: @@ -59,37 +59,37 @@ fi: title: Kaksivaiheinen todennus käytössä two_factor_recovery_codes_changed: explanation: Uudet palautuskoodit on nyt luotu ja vanhat mitätöity. - subject: 'Mastodon: Kaksivaihetodennuksen palautuskoodit luotiin uudelleen' + subject: 'Mastodon: kaksivaiheisen todennuksen palautuskoodit luotiin uudelleen' subtitle: Aiemmat palautuskoodit on mitätöity, ja korvaavat uudet koodit on luotu. title: 2-vaiheisen todennuksen palautuskoodit vaihdettiin unlock_instructions: - subject: 'Mastodon: lukituksen poistamisen ohjeet' + subject: 'Mastodon: ohjeet lukituksen poistoon' webauthn_credential: added: explanation: Seuraava suojausavain on lisätty tilillesi - subject: 'Mastodon: Uusi suojausavain' + subject: 'Mastodon: uusi suojausavain' title: Uusi suojausavain on lisätty deleted: explanation: Seuraava suojausavain on poistettu tililtäsi - subject: 'Mastodon: Suojausavain poistettu' + subject: 'Mastodon: suojausavain poistettu' title: Yksi suojausavaimistasi on poistettu webauthn_disabled: - explanation: Turva-avaimin kirjautuminen tilillesi on kytketty pois käytöstä. + explanation: Suojausavaimella todennus on poissa käytöstä tililläsi. extra: Olet nyt mahdollistanut sisäänkirjautumisen käyttäjätilillesi pelkästään palveluun liitetyn TOTP-sovelluksen luomalla aikarajoitteisella kertatunnusluvulla. - subject: 'Mastodon: Turva-avaintodennus on poistettu käytöstä' + subject: 'Mastodon: suojausavaimella todennus poistettu käytöstä' title: Suojausavaimet poistettu käytöstä webauthn_enabled: - explanation: Turva-avaimella kirjautuminen on otettu käyttöön tilillesi. - extra: Voit nyt kirjautua sisään turva-avaimellasi. - subject: 'Mastodon: Todennus suojausavaimella on otettu käyttöön' + explanation: Suojausavaimella todennus on käytössä tililläsi. + extra: Voit nyt kirjautua sisään suojausavaimellasi. + subject: 'Mastodon: suojausavaimella todennus otettu käyttöön' title: Suojausavaimet käytössä omniauth_callbacks: - failure: Tunnistautuminen lähteestä %{kind} ei onnistunut, koska "%{reason}". + failure: Tunnistautuminen lähteestä %{kind} ei onnistunut, syynä ”%{reason}”. success: Tunnistautuminen tililtä %{kind} onnistui. passwords: no_token: Tälle sivulle pääsee vain salasananvaihtoviestin kautta. Jos tiedät tulevasi sen kautta, varmista, että käytät viestissä mainittua URL-osoitetta kokonaisuudessaan. - send_instructions: Jos sähköpostiosoite on tietokannassamme, siihen lähetetään pian viesti, jossa on linkki salasanan vaihtamiseksi. Mikäli viestiä ei kuulu, tarkista myös roskapostisi. - send_paranoid_instructions: Jos sähköpostiosoite on tietokannassamme, siihen lähetetään pian viesti, jossa on linkki salasanan vaihtamiseksi. Mikäli viestiä ei kuulu, tarkista myös roskapostisi. + send_instructions: Jos sähköpostiosoiteesi on tiedossamme, siihen lähetetään pian viesti, jossa on linkki salasanan vaihtamiseksi. Jos viestiä ei kuulu, tarkista roskapostikansiosi. + send_paranoid_instructions: Jos sähköpostiosoiteesi on tiedossamme, siihen lähetetään pian viesti, jossa on linkki salasanan vaihtamiseksi. Jos viestiä ei kuulu, tarkista roskapostikansiosi. updated: Salasanan vaihto onnistui. Olet nyt kirjautunut sisään. updated_not_active: Salasanan vaihto onnistui. registrations: @@ -98,16 +98,16 @@ fi: signed_up_but_inactive: Rekisteröityminen onnistui. Emme kuitenkaan voi kirjata sinua sisään, sillä käyttäjätiliäsi ei ole vielä aktivoitu. signed_up_but_locked: Rekisteröityminen onnistui. Emme kuitenkaan voi kirjata sinua sisään, sillä käyttäjätilisi on lukittuna. signed_up_but_pending: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Sen avattuasi tarkistamme hakemuksesi, ja ilmoitamme hyväksynnästä. - signed_up_but_unconfirmed: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Aktivoi käyttäjätilisi seuraamalla linkkiä. Mikäli sitä ei kuulu, tarkista myös roskapostisi. - update_needs_confirmation: Tilin päivitys onnistui. Uusi sähköpostiosoite on kuitenkin vahvistettava. Tarkista saapuneet viestisi, ja vahvista uusi sähköpostiosoitteesi vahvistuslinkkiä seuraten. Mikäli viestiä ei kuulu, tarkista myös roskapostisi. + signed_up_but_unconfirmed: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Aktivoi käyttäjätilisi seuraamalla linkkiä. Jos sitä ei kuulu, tarkista roskapostikansiosi. + update_needs_confirmation: Tilin päivitys onnistui. Uusi sähköpostiosoite on kuitenkin vahvistettava. Tarkista saapuneet viestisi, ja vahvista uusi sähköpostiosoitteesi vahvistuslinkkiä seuraten. Jos viestiä ei kuulu, tarkista myös roskapostikansiosi. updated: Käyttäjätilisi tietojen päivittäminen onnistui. sessions: already_signed_out: Uloskirjautuminen onnistui. signed_in: Sisäänkirjautuminen onnistui. signed_out: Uloskirjautuminen onnistui. unlocks: - send_instructions: Saat pian sähköpostitse ohjeet tilin lukituksen poistoon. Jos et saanut viestiä, tarkista roskapostikansio. - send_paranoid_instructions: Jos tili on olemassa, saat pian sähköpostitse ohjeet tilin lukituksen poistoon. Jos et saanut viestiä, tarkista roskapostikansio. + send_instructions: Saat pian sähköpostiisi ohjeet tilin lukituksen poistoon. Jos viestiä ei kuulu, tarkista roskapostikansiosi. + send_paranoid_instructions: Jos tili on olemassa, saat pian sähköpostiisi ohjeet tilin lukituksen poistoon. Jos viestiä ei kuulu, tarkista roskapostikansiosi. unlocked: Tilisi lukituksen poisto onnistui. Jatka kirjautumalla sisään. errors: messages: diff --git a/config/locales/devise.sc.yml b/config/locales/devise.sc.yml index 5486371a4c..dde8fd229e 100644 --- a/config/locales/devise.sc.yml +++ b/config/locales/devise.sc.yml @@ -14,7 +14,7 @@ sc: not_found_in_database: "%{authentication_keys} o crae non vàlida." pending: Su contu tuo est ancora in revisione. timeout: Sa sessione tua est iscadida. Torra·bi a intrare pro sighire. - unauthenticated: Tocat a ti autenticare o ti registrare prima de sighire. + unauthenticated: Ti depes identificare o registrare prima de sighire. unconfirmed: Depes cunfirmare s'indiritzu tuo de posta eletrònica prima de sighire. mailer: confirmation_instructions: @@ -74,7 +74,7 @@ sc: subject: 'Mastodon: Autenticatzione cun sa crae de seguresa ativada' title: Craes de seguresa abilitadas omniauth_callbacks: - failure: Faddina in s'autenticatzione dae %{kind}, ca "%{reason}". + failure: 'Faddina in s''autenticatzione dae %{kind}; resone: "%{reason}".' success: Autenticatzione curreta dae su contu de %{kind}. passwords: no_token: No podes intrare a custa pàgina sena passare dae unu messàgiu de posta eletrònica pro resetare sa crae. Si benes dae su messàgiu de posta pro resetare sa crae, faghe in modu de impreare s'URL intreu chi t'ant donadu. diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml index b028c10a82..3aae89f6ca 100644 --- a/config/locales/doorkeeper.fi.yml +++ b/config/locales/doorkeeper.fi.yml @@ -4,7 +4,7 @@ fi: attributes: doorkeeper/application: name: Sovelluksen nimi - redirect_uri: Uudelleenohjauksen URI + redirect_uri: Uudelleenohjaus-URI scopes: Oikeudet website: Sovelluksen verkkosivusto errors: @@ -12,10 +12,10 @@ fi: doorkeeper/application: attributes: redirect_uri: - fragment_present: ei voi sisältää osia. + fragment_present: ei voi sisältää ankkuria (#). invalid_uri: on oltava kelvollinen URI. relative_uri: on oltava täysi URI. - secured_uri: on oltava HTTPS/SSL-URI. + secured_uri: on oltava HTTPS-/SSL-URI. doorkeeper: applications: buttons: @@ -48,10 +48,10 @@ fi: title: Uusi sovellus show: actions: Toiminnot - application_id: Ohjelman tunnus + application_id: Asiakasohjelman tunnus callback_urls: Takaisinkutsu-URL:t scopes: Oikeudet - secret: Ohjelman salaisuus + secret: Asiakasohjelman salaisuus title: 'Sovellus: %{name}' authorizations: buttons: @@ -67,7 +67,7 @@ fi: title: Kopioi tämä valtuutuskoodi ja liitä se sovellukseen. authorized_applications: buttons: - revoke: Hylkää + revoke: Poista confirmations: revoke: Oletko varma? index: @@ -77,17 +77,17 @@ fi: never_used: Ei käytetty scopes: Oikeudet superapp: Sisäinen - title: Valtuutetut sovellukset + title: Valtuuttamasi sovellukset errors: messages: access_denied: Resurssin omistaja tai valtuutuspalvelin hylkäsi pyynnön. credential_flow_not_configured: Resurssin omistajan salasanatietojen luku epäonnistui, koska asetusta Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu. - invalid_client: Asiakasohjelman valtuutus epäonnistui, koska asiakas on tuntematon, asiakkaan valtuutus ei ollut mukana tai valtuutustapaa ei tueta. - invalid_grant: Valtuutuslupa on virheellinen, umpeutunut, peruttu, valtuutuspyynnössä käytettyä uudelleenohjaus-URI:tä vastaamaton tai myönnetty toiselle asiakkaalle. + invalid_client: Asiakasohjelman todennus epäonnistui, koska asiakas on tuntematon, asiakkaan todennus ei ollut mukana tai todennustapaa ei tueta. + invalid_grant: Valtuutuslupa on virheellinen, vanhentunut, peruttu, valtuutuspyynnössä käytettyä uudelleenohjaus-URI:tä vastaamaton tai myönnetty toiselle asiakkaalle. invalid_redirect_uri: Uudelleenohjaus-URI on virheellinen. invalid_request: missing_param: 'Vaadittu parametri puuttuu: %{value}.' - request_not_authorized: Pyyntö on hyväksyttävä. Vaadittu parametri pyynnön hyväksymiseksi puuttuu tai on virheellinen. + request_not_authorized: Pyyntö on valtuutettava. Vaadittu parametri pyynnön valtuuttamiseksi puuttuu tai on virheellinen. unknown: Pyynnöstä puuttuu vaadittu parametri, se sisältää tukemattoman parametriarvon tai on muulla tavoin väärin muotoiltu. invalid_resource_owner: Annetut resurssin omistajan tunnnukset ovat virheelliset, tai resurssin omistajaa ei löydy invalid_scope: Pyydetyt oikeudet ovat virheellisiä, tuntemattomia tai väärin muotoiltuja. @@ -139,7 +139,7 @@ fi: push: Puskuilmoitukset reports: Raportit search: Hae - statuses: Viestit + statuses: Julkaisut layouts: admin: nav: @@ -157,17 +157,17 @@ fi: admin:read:ip_blocks: lue arkaluonteisia tietoja kaikista estetyistä IP-osoitteista admin:read:reports: lue arkaluonteisia tietoja kaikista raporteista ja raportoiduista tileistä admin:write: muokkaa kaikkia palvelimen tietoja - admin:write:accounts: suorita valvontatoimia tileille - admin:write:canonical_email_blocks: suorita valvontatoimia estetyille kanonisille sähköpostiosoitteille - admin:write:domain_allows: suorita valvontatoimia sallituille verkkotunnuksille - admin:write:domain_blocks: suorita valvontatoimia estetyille verkkotunnuksille - admin:write:email_domain_blocks: suorita valvontatoimia estetyille sähköpostiverkkotunnuksille - admin:write:ip_blocks: suorita valvontatoimia estetyille IP-osoitteille - admin:write:reports: suorita valvontatoimia raporteille + admin:write:accounts: suorita moderointitoimia tileille + admin:write:canonical_email_blocks: suorita moderointitoimia estetyille kanonisille sähköpostiosoitteille + admin:write:domain_allows: suorita moderointitoimia sallituille verkkotunnuksille + admin:write:domain_blocks: suorita moderointitoimia estetyille verkkotunnuksille + admin:write:email_domain_blocks: suorita moderointitoimia estetyille sähköpostiverkkotunnuksille + admin:write:ip_blocks: suorita moderointitoimia estetyille IP-osoitteille + admin:write:reports: suorita moderointitoimia raporteille crypto: käytä päästä päähän -salausta follow: muokkaa tilin suhteita profile: lue vain tilisi profiilitietoja - push: vastaanota puskuilmoituksiasi + push: vastaanota puskuilmoituksesi read: lue kaikkia tilin tietoja read:accounts: katso tilien tietoja read:blocks: katso estojasi diff --git a/config/locales/doorkeeper.sc.yml b/config/locales/doorkeeper.sc.yml index 297d6bd8f0..4c18e46197 100644 --- a/config/locales/doorkeeper.sc.yml +++ b/config/locales/doorkeeper.sc.yml @@ -110,10 +110,11 @@ sc: accounts: Contos bookmarks: Sinnalibros conversations: Arresonadas + favourites: Preferidos filters: Filtros follows: Sighende lists: Listas - media: Allegados multimediales + media: Elementos multimediales alligongiados notifications: Notìficas push: Notìficas push reports: Informes @@ -139,6 +140,7 @@ sc: read:accounts: bìdere is informatziones in su contu read:blocks: bìdere is blocos tuos read:bookmarks: bìdere is sinnalibros tuos + read:favourites: bide is preferidos tuos read:filters: bìdere is filtros tuos read:follows: bìdere is sighiduras tuas read:lists: bìdere is listas tuas @@ -146,11 +148,11 @@ sc: read:notifications: bìdere is notìficas tuas read:reports: bìdere is sinnalatziones tuas read:search: chircare a nòmine tuo - read:statuses: bìdere totu is istados + read:statuses: bide totu is publicatziones write: modificare totu is datos de su contu tuo write:accounts: modificare su profilu tuo write:blocks: blocare contos e domìnios - write:bookmarks: agiùnghere is istados a is sinnalibros + write:bookmarks: agiunghe is publicatziones a is sinnalibros write:filters: creare filtros write:follows: sighire persones write:lists: creare listas @@ -158,4 +160,4 @@ sc: write:mutes: pònnere persones e arresonadas a sa muda write:notifications: isboidare is notìficas tuas write:reports: sinnalare àteras persones - write:statuses: publicare istados + write:statuses: pùblica diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 22531d2403..f39de2b27b 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -471,6 +471,9 @@ es-MX: title: Recomendaciones de cuentas unsuppress: Restaurar recomendaciones de cuentas instances: + audit_log: + title: Registros de auditoría recientes + view_all: Ver registros de auditoría completos availability: description_html: one: Si el envío al dominio falla %{count} día sin éxito, no se harán más intentos de entrega a menos que se reciba un envío desde el dominio. diff --git a/config/locales/es.yml b/config/locales/es.yml index 567526fe8b..fbee73ed2a 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -471,6 +471,9 @@ es: title: Recomendaciones de cuentas unsuppress: Restaurar recomendaciones de cuentas instances: + audit_log: + title: Registros de auditoría recientes + view_all: Ver registros de auditoría completos availability: description_html: one: Si el envío al dominio falla %{count} día sin éxito, no se harán más intentos de entrega a menos que se reciba un envío desde el dominio. diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 25604d6a1c..344d6b84ca 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -12,7 +12,7 @@ fi: one: seuraaja other: seuraajaa following: seurattu(a) - instance_actor_flash: Tämä tili on virtuaalinen toimija, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään liittoutumistarkoituksiin, eikä sitä tule jäädyttää. + instance_actor_flash: Tämä tili on virtuaalinen toimija, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään federointitarkoituksiin, eikä sitä tule jäädyttää. last_active: viimeksi aktiivinen link_verified_on: Tämän linkin omistus on tarkastettu %{date} nothing_here: Täällä ei ole mitään! @@ -24,12 +24,12 @@ fi: posts_tab_heading: Julkaisut admin: account_actions: - action: Suorita toimenpide - title: Suorita valvontatoimi käyttäjälle %{acct} + action: Suorita toimi + title: Suorita moderointitoimi käyttäjälle %{acct} account_moderation_notes: create: Jätä muistiinpano - created_msg: Valvontamuistiinpanon luonti onnistui! - destroyed_msg: Valvontamuistiinpanon poisto onnistui! + created_msg: Moderointimuistiinpanon luonti onnistui! + destroyed_msg: Moderointimuistiinpanon poisto onnistui! accounts: add_email_domain_block: Estä sähköpostiverkkotunnus approve: Hyväksy @@ -38,14 +38,14 @@ fi: avatar: Profiilikuva by_domain: Verkkotunnus change_email: - changed_msg: Sähköpostin vaihto onnistui! + changed_msg: Sähköpostiosoitteen vaihto onnistui! current_email: Nykyinen sähköposti label: Vaihda sähköposti new_email: Uusi sähköposti submit: Vaihda sähköposti title: Vaihda käyttäjän %{username} sähköposti-osoite change_role: - changed_msg: Rooli vaihdettu onnistuneesti! + changed_msg: Roolin vaihto onnistui! label: Vaihda roolia no_role: Ei roolia title: Vaihda käyttäjän %{username} roolia @@ -58,18 +58,18 @@ fi: demote: Alenna destroyed_msg: Käyttäjän %{username} tiedot ovat nyt jonossa poistettavaksi välittömästi disable: Poista käytöstä - disable_sign_in_token_auth: Poista sähköpostitunnuksen todennus käytöstä + disable_sign_in_token_auth: Poista sähköpostitunnuksella todennus käytöstä disable_two_factor_authentication: Poista 2FA käytöstä disabled: Poistettu käytöstä display_name: Näyttönimi domain: Verkkotunnus edit: Muokkaa - email: Sähköposti + email: Sähköpostiosoite email_status: Sähköpostin tila enable: Ota käyttöön - enable_sign_in_token_auth: Ota sähköpostitunnuksen todennus käyttöön + enable_sign_in_token_auth: Ota sähköpostitunnuksella todennus käyttöön enabled: Käytössä - enabled_msg: Käyttäjän %{username} tili palautettu onnistuneesti käyttöön + enabled_msg: Käyttäjän %{username} tilin jäädytys kumottiin onnistuneesti followers: Seuraajat follows: Seuratut header: Otsakekuva @@ -87,23 +87,23 @@ fi: media_attachments: Medialiitteet memorialize: Muuta muistosivuksi memorialized: Muutettu muistotiliksi - memorialized_msg: Käyttäjän %{username} tili muutettu onnistuneesti muistotiliksi + memorialized_msg: Käyttäjän %{username} tili muutettiin muistotiliksi onnistuneesti moderation: active: Aktiivinen all: Kaikki disabled: Ei käytössä - pending: Odottavat + pending: Odottaa silenced: Rajoitettu suspended: Jäädytetty - title: Valvonta - moderation_notes: Valvontamuistiinpanot + title: Moderointi + moderation_notes: Moderointimuistiinpanot most_recent_activity: Viimeisin toiminta most_recent_ip: Viimeisin IP no_account_selected: Tilejä ei muutettu, koska yhtään ei ollut valittuna no_limits_imposed: Rajoituksia ei ole asetettu - no_role_assigned: Roolia ei ole määritetty + no_role_assigned: Roolia ei määritetty not_subscribed: Ei tilaaja - pending: Odottaa tarkistusta + pending: Odottaa tarkastusta perform_full_suspension: Jäädytä previous_strikes: Aiemmat varoitukset previous_strikes_description_html: @@ -114,19 +114,19 @@ fi: public: Julkinen push_subscription_expires: PuSH-tilaus vanhenee redownload: Päivitä profiilikuva - redownloaded_msg: Käyttäjän %{username} profiilin päivittäminen alkuperästä onnistui + redownloaded_msg: Käyttäjän %{username} profiili päivitettiin alkuperästä onnistuneesti reject: Hylkää rejected_msg: Käyttäjän %{username} rekisteröitymishakemus hylättiin remote_suspension_irreversible: Tämän tilin tiedot on poistettu peruuttamattomasti. remote_suspension_reversible_hint_html: Tili on jäädytetty omalla palvelimellaan, ja kaikki tiedot poistetaan %{date}. Sitä ennen etäpalvelin voi palauttaa tilin ongelmitta. Jos haluat poistaa kaikki tilin tiedot heti, onnistuu se alta. remove_avatar: Poista profiilikuva remove_header: Poista otsakekuva - removed_avatar_msg: Käyttäjän %{username} avatar-kuva poistettu onnistuneesti + removed_avatar_msg: Käyttäjän %{username} avatar-kuva poistettiin onnistuneesti removed_header_msg: Käyttäjän %{username} otsakekuva poistettiin onnistuneesti resend_confirmation: already_confirmed: Tämä käyttäjä on jo vahvistettu send: Lähetä vahvistuslinkki uudelleen - success: Vahvistuslinkki on lähetetty! + success: Vahvistuslinkin lähetys onnistui! reset: Palauta reset_password: Palauta salasana resubscribe: Tilaa uudelleen @@ -154,25 +154,25 @@ fi: suspension_irreversible: Tämän tilin tiedot on poistettu peruuttamattomasti. Voit kumota tilin jäädytyksen, jolloin siitä tulee käyttökelpoinen, mutta toiminto ei palauta sillä aiemmin olleita tietoja. suspension_reversible_hint_html: Tili on jäädytetty, ja tiedot poistetaan kokonaan %{date}. Siihen asti tili voidaan palauttaa ongelmitta. Jos haluat poistaa kaikki tilin tiedot heti, onnistuu se alta. title: Tilit - unblock_email: Poista sähköpostiosoitteen esto + unblock_email: Kumoa sähköpostiosoitteen esto unblocked_email_msg: Käyttäjän %{username} sähköpostiosoitteen esto kumottiin unconfirmed_email: Sähköpostia ei vahvistettu undo_sensitized: Kumoa pakotus arkaluonteiseksi undo_silenced: Kumoa rajoitus undo_suspension: Peru jäähy - unsilenced_msg: Tilin %{username} rajoituksen kumoaminen onnistui + unsilenced_msg: Tilin %{username} rajoitus kumottiin onnistuneesti unsubscribe: Lopeta tilaus - unsuspended_msg: Tilin %{username} jäädytyksen kumoaminen onnistui + unsuspended_msg: Tilin %{username} jäädytys kumottiin onnistuneesti username: Käyttäjänimi view_domain: Näytä verkkotunnuksen yhteenveto warn: Varoita web: Verkko - whitelisted: Sallittu liittoutua + whitelisted: Salli federointi action_logs: action_types: approve_appeal: Hyväksy valitus approve_user: Hyväksy käyttäjä - assigned_to_self_report: Määritä raportti + assigned_to_self_report: Ota raportti käsiteltäväksi change_email_user: Vaihda sähköposti käyttäjälle change_role_user: Muuta käyttäjän roolia confirm_user: Vahvista käyttäjä @@ -200,25 +200,25 @@ fi: destroy_user_role: Hävitä rooli disable_2fa_user: Poista kaksivaiheinen tunnistautuminen käytöstä disable_custom_emoji: Poista mukautettu emoji käytöstä - disable_sign_in_token_auth_user: Estä käyttäjältä sähköpostitunnuksen todennus + disable_sign_in_token_auth_user: Estä käyttäjältä sähköpostitunnuksella todennus disable_user: Poista tili käytöstä enable_custom_emoji: Käytä mukautettuja emojeita - enable_sign_in_token_auth_user: Salli käyttäjälle sähköpostitunnuksen todennus + enable_sign_in_token_auth_user: Salli käyttäjälle sähköpostitunnuksella todennuksen enable_user: Ota tili käyttöön memorialize_account: Muuta muistotiliksi promote_user: Käyttäjä ylennetty reject_appeal: Hylkää valitus reject_user: Hylkää käyttäjä remove_avatar_user: Profiilikuvan poisto - reopen_report: Uudelleenavaa raportti + reopen_report: Avaa raportti uudelleen resend_user: Lähetä vahvistusviesti uudelleen reset_password_user: Nollaa salasana resolve_report: Selvitä raportti sensitive_account: Pakotus arkaluonteiseksi tiliksi silence_account: Rajoita tiliä suspend_account: Jäädytä tili - unassigned_report: Peruuta raportin määritys - unblock_email_account: Poista sähköpostiosoitteen esto + unassigned_report: Poista raportti käsittelystä + unblock_email_account: Kumoa sähköpostiosoitteen esto unsensitive_account: Kumoa pakotus arkaluonteiseksi tiliksi unsilence_account: Kumoa tilin rajoitus unsuspend_account: Kumoa tilin jäädytys @@ -230,9 +230,9 @@ fi: update_status: Päivitä julkaisu update_user_role: Päivitä rooli actions: - approve_appeal_html: "%{name} hyväksyi valvontapäätöksen valituksen käyttäjältä %{target}" + approve_appeal_html: "%{name} hyväksyi käyttäjän %{target} valituksen moderointipäätöksestä" approve_user_html: "%{name} hyväksyi käyttäjän rekisteröitymisen kohteesta %{target}" - assigned_to_self_report_html: "%{name} otti raportin %{target} tehtäväkseen" + assigned_to_self_report_html: "%{name} otti raportin %{target} käsiteltäväkseen" change_email_user_html: "%{name} vaihtoi käyttäjän %{target} sähköpostiosoitteen" change_role_user_html: "%{name} muutti käyttäjän %{target} roolia" confirm_user_html: "%{name} vahvisti käyttäjän %{target} sähköpostiosoitteen" @@ -240,7 +240,7 @@ fi: create_announcement_html: "%{name} loi uuden tiedotteen %{target}" create_canonical_email_block_html: "%{name} esti sähköpostin tiivisteellä %{target}" create_custom_emoji_html: "%{name} lähetti uuden emojin %{target}" - create_domain_allow_html: "%{name} salli liittoutumisen verkkotunnuksen %{target} kanssa" + create_domain_allow_html: "%{name} salli federoinnin verkkotunnuksen %{target} kanssa" create_domain_block_html: "%{name} esti verkkotunnuksen %{target}" create_email_domain_block_html: "%{name} esti sähköpostiverkkotunnuksen %{target}" create_ip_block_html: "%{name} loi IP-säännön %{target}" @@ -248,11 +248,11 @@ fi: create_user_role_html: "%{name} loi roolin %{target}" demote_user_html: "%{name} alensi käyttäjän %{target}" destroy_announcement_html: "%{name} poisti tiedotteen %{target}" - destroy_canonical_email_block_html: "%{name} poisti sähköpostin eston tiivisteellä %{target}" + destroy_canonical_email_block_html: "%{name} kumosi sähköpostin eston tiivisteellä %{target}" destroy_custom_emoji_html: "%{name} poisti emojin %{target}" - destroy_domain_allow_html: "%{name} kielsi liittoutumisen verkkotunnuksen %{target} kanssa" - destroy_domain_block_html: "%{name} poisti verkkotunnuksen %{target} eston" - destroy_email_domain_block_html: "%{name} poisti sähköpostiverkkotunnuksen %{target} eston" + destroy_domain_allow_html: "%{name} kielsi federoinnin verkkotunnuksen %{target} kanssa" + destroy_domain_block_html: "%{name} kumosi verkkotunnuksen %{target} eston" + destroy_email_domain_block_html: "%{name} kumosi sähköpostiverkkotunnuksen %{target} eston" destroy_instance_html: "%{name} tyhjensi verkkotunnuksen %{target}" destroy_ip_block_html: "%{name} poisti IP-säännön %{target}" destroy_status_html: "%{name} poisti käyttäjän %{target} julkaisun" @@ -260,14 +260,14 @@ fi: destroy_user_role_html: "%{name} poisti roolin %{target}" disable_2fa_user_html: "%{name} poisti käyttäjältä %{target} vaatimuksen kaksivaiheisen todentamiseen" disable_custom_emoji_html: "%{name} poisti käytöstä emojin %{target}" - disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksen %{target} todennuksen käytöstä" + disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksella todennuksen käytöstä tililtä %{target}" disable_user_html: "%{name} poisti kirjautumisen käyttäjältä %{target}" enable_custom_emoji_html: "%{name} otti käyttöön emojin %{target}" - enable_sign_in_token_auth_user_html: "%{name} otti todennuksen sähköpostivaltuutuksella käyttöön käyttäjälle %{target}" + enable_sign_in_token_auth_user_html: "%{name} otti sähköpostitunnuksella todennuksen käyttöön tilille %{target}" enable_user_html: "%{name} otti kirjautumisen käyttöön käyttäjälle %{target}" memorialize_account_html: "%{name} muutti käyttäjän %{target} tilin muistosivuksi" promote_user_html: "%{name} ylensi käyttäjän %{target}" - reject_appeal_html: "%{name} hylkäsi valvontapäätöksen valituksen käyttäjältä %{target}" + reject_appeal_html: "%{name} hylkäsi käyttäjän %{target} valituksen moderointipäätöksestä" reject_user_html: "%{name} hylkäsi käyttäjän rekisteröitymisen kohteesta %{target}" remove_avatar_user_html: "%{name} poisti käyttäjän %{target} profiilikuvan" reopen_report_html: "%{name} avasi uudelleen raportin %{target}" @@ -277,8 +277,8 @@ fi: sensitive_account_html: "%{name} merkitsi käyttäjän %{target} median arkaluonteiseksi" silence_account_html: "%{name} rajoitti käyttäjän %{target} tiliä" suspend_account_html: "%{name} jäädytti käyttäjän %{target} tilin" - unassigned_report_html: "%{name} peruutti raportin määrityksen %{target}" - unblock_email_account_html: "%{name} poisti käyttäjän %{target} sähköpostiosoitteen eston" + unassigned_report_html: "%{name} poisti raportin käsittelystä %{target}" + unblock_email_account_html: "%{name} kumosi käyttäjän %{target} sähköpostiosoitteen eston" unsensitive_account_html: "%{name} kumosi käyttäjän %{target} median arkaluonteisuusmerkinnän" unsilence_account_html: "%{name} kumosi käyttäjän %{target} rajoituksen" unsuspend_account_html: "%{name} kumosi käyttäjän %{target} tilin jäädytyksen" @@ -291,12 +291,12 @@ fi: update_user_role_html: "%{name} muutti roolia %{target}" deleted_account: poisti tilin empty: Lokeja ei löytynyt. - filter_by_action: Suodata tapahtuman mukaan + filter_by_action: Suodata toimen mukaan filter_by_user: Suodata käyttäjän mukaan title: Tarkastusloki unavailable_instance: "(verkkotunnus ei saatavilla)" announcements: - destroyed_msg: Tiedote poistettu onnistuneesti! + destroyed_msg: Tiedotteen poisto onnistui! edit: title: Muokkaa tiedotetta empty: Tiedotteita ei löytynyt. @@ -305,18 +305,18 @@ fi: create: Luo tiedote title: Uusi tiedote publish: Julkaise - published_msg: Tiedote julkaistu onnistuneesti! + published_msg: Tiedotteen julkaisu onnistui! scheduled_for: Ajoitettu %{time} scheduled_msg: Tiedotteen julkaisu ajoitettu! title: Tiedotteet unpublish: Lopeta julkaisu - unpublished_msg: Tiedotteen julkaisu lopetettu onnistuneesti! - updated_msg: Tiedote päivitetty onnistuneesti! + unpublished_msg: Tiedotteen julkaisun lopetus onnistui! + updated_msg: Tiedotteen päivitys onnistui! critical_update_pending: Kriittinen päivitys odottaa custom_emojis: assign_category: Aseta luokka by_domain: Verkkotunnus - copied_msg: Emojin paikallisen kopion luonti onnistui + copied_msg: Emojista luotiin paikallinen kopio onnistuneesti copy: Kopioi copy_failed_msg: Emojista ei voitu tehdä paikallista kopiota create_new_category: Luo uusi luokka @@ -325,11 +325,11 @@ fi: destroyed_msg: Emojon poisto onnistui! disable: Poista käytöstä disabled: Ei käytössä - disabled_msg: Emojin käytöstäpoisto onnistui + disabled_msg: Emoji poistettiin käytöstä onnistuneesti emoji: Emoji enable: Ota käyttöön enabled: Käytössä - enabled_msg: Emojin käyttöönotto onnistui + enabled_msg: Emoji otettiin käyttöön onnistuneesti image_hint: PNG tai GIF, enintään %{size} list: Lisää listalle listed: Listalla @@ -369,7 +369,7 @@ fi: software: Ohjelmisto sources: Rekisteröitymislähteet space: Tilankäyttö - title: Hallintapaneeli + title: Koontinäyttö top_languages: Aktiivisimmat kielet top_servers: Aktiivisimmat palvelimet website: Sivusto @@ -378,12 +378,12 @@ fi: empty: Valituksia ei löytynyt. title: Valitukset domain_allows: - add_new: Salli liittoutuminen tämän verkkotunnuksen kanssa - created_msg: Verkkotunnuksen on onnistuneesti sallittu liittoutua - destroyed_msg: Verkkotunnusta on kielletty liittoutumasta + add_new: Salli federointi tämän verkkotunnuksen kanssa + created_msg: Verkkotunnuksen kanssa federointi on onnistuneesti sallittu + destroyed_msg: Verkkotunnuksen kanssa federointi on kielletty export: Vie import: Tuo - undo: Kiellä liittoutuminen tämän verkkotunnuksen kanssa + undo: Kiellä federointi tämän verkkotunnuksen kanssa domain_blocks: add_new: Lisää uusi verkkotunnuksen esto confirm_suspension: @@ -391,7 +391,7 @@ fi: confirm: Jäädytä permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai suhteita. preamble_html: Olet jäädyttämässä verkkotunnuksen %{domain} aliverkkotunnuksineen. - remove_all_data: Tämä toiminto poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän palvelun tileiltä. + remove_all_data: Tämä poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän verkkotunnuksen tileiltä. stop_communication: Palvelimesi lopettaa viestinnän näiden palvelinten kanssa. title: Vahvista verkkotunnuksen %{domain} esto undo_relationships: Tämä kumoaa näiden palvelimien ja sinun tilien välisen seurannan. @@ -400,12 +400,12 @@ fi: domain: Verkkotunnus edit: Muokkaa verkkotunnuksen estoa existing_domain_block: Olet jo asettanut tiukemmat rajoitukset käyttäjälle %{name}. - existing_domain_block_html: Olet jo asettanut tiukemmat rajoitukset käyttäjälle %{name}, joten sinun täytyy poistaa sen esto ensin. + existing_domain_block_html: Olet jo asettanut tiukemmat rajoitukset käyttäjälle %{name}, joten sinun täytyy kumota sen esto ensin. export: Vie import: Tuo new: create: Luo esto - hint: Verkkotunnuksen esto ei estä tilien lisäämistä tietokantaan, mutta se soveltaa näihin tileihin takautuvasti ja automaattisesti tiettyjä valvontatoimia. + hint: Verkkotunnuksen esto ei estä tilien lisäämistä tietokantaan, mutta se soveltaa näihin tileihin takautuvasti ja automaattisesti tiettyjä moderointitoimia. severity: desc_html: Valinta Rajoita piilottaa tässä verkkotunnuksessa sijaitsevien tilien julkaisut kaikilta, jotka eivät seuraa näitä tilejä. Valinta Jäädytä poistaa palvelimeltasi kaikkien tässä verkkotunnuksessa sijaitsevien tilien sisällön, median ja profiilitiedot. Käytä valintaa Ei mitään, jos haluat vain hylätä mediatiedostot. noop: Ei mitään @@ -413,17 +413,17 @@ fi: suspend: Jäädytä title: Uusi verkkotunnuksen esto no_domain_block_selected: Verkkotunnusten estoja ei muutettu, koska yhtään ei ollut valittuna - not_permitted: Nykyiset käyttöoikeutesi eivät kata tätä toimintoa - obfuscate: Peitä verkkotunnuksen nimi + not_permitted: Sinulla ei ole oikeutta suorittaa tätä toimintoa + obfuscate: Peitä verkkotunnus obfuscate_hint: Peitä verkkotunnus osittain luettelossa, jos julkinen verkkotunnusten rajoitusluettelo on käytössä private_comment: Yksityinen kommentti - private_comment_hint: Kommentoi tätä verkkotunnuksen rajoitusta, valvojien sisäiseen käyttöön. + private_comment_hint: Kommentoi tätä verkkotunnuksen rajoitusta, moderaattorien sisäiseen käyttöön. public_comment: Julkinen kommentti public_comment_hint: Kommentoi tätä verkkotunnuksen rajoitusta suurelle yleisölle, jos julkinen verkkotunnusten rajoitusluettelo on käytössä. reject_media: Hylkää mediatiedostot reject_media_hint: Poistaa paikallisesti tallennetut mediatiedostot eikä lataa niitä enää jatkossa. Ei merkitystä jäähyn kohdalla reject_reports: Hylkää raportit - reject_reports_hint: Ohita kaikki tästä verkkotunnuksesta tulevat raportit. Erottamisen kannalta ei merkitystä + reject_reports_hint: Ohita kaikki tästä verkkotunnuksesta tulevat raportit. Ei vaikuta jäädytyksiin undo: Peru verkkotunnuksen esto view: Näytä verkkotunnuksen esto email_domain_blocks: @@ -432,7 +432,7 @@ fi: attempts_over_week: one: "%{count} yritystä viimeisen viikon aikana" other: "%{count} rekisteröitymisyritystä viimeisen viikon aikana" - created_msg: Sähköpostiverkkotunnus estetty onnistuneesti + created_msg: Sähköpostiverkkotunnus estettiin onnistuneesti delete: Poista dns: types: @@ -440,12 +440,12 @@ fi: domain: Verkkotunnus new: create: Lisää verkkotunnus - resolve: Ratkaise verkkotunnus + resolve: Selvitä verkkotunnus title: Estä uusi sähköpostiverkkotunnus no_email_domain_block_selected: Sähköpostin verkkotunnuksia ei muutettu, koska yhtään ei ollut valittuna not_permitted: Ei sallittu resolved_dns_records_hint_html: Verkkotunnuksen nimi määräytyy seuraaviin MX-verkkotunnuksiin, jotka ovat viime kädessä vastuussa sähköpostin vastaanottamisesta. MX-verkkotunnuksen estäminen estää rekisteröitymisen mistä tahansa sähköpostiosoitteesta, joka käyttää samaa MX-verkkotunnusta, vaikka näkyvä verkkotunnuksen nimi olisikin erilainen. Varo estämästä suuria sähköpostin palveluntarjoajia. - resolved_through_html: Ratkaistu %{domain} kautta + resolved_through_html: Ratkaistu verkkotunnuksen %{domain} kautta title: Estetyt sähköpostiverkkotunnukset export_domain_allows: new: @@ -476,8 +476,8 @@ fi: view_all: Näytä kaikki tarkastuslokit availability: description_html: - one: Jos toimitus verkkotunnukseen epäonnistuu %{count} päivä ilman onnistumista, uusia yrityksiä ei tehdä ennen kuin toimitus alkaen verkkotunnukselta on vastaanotettu. - other: Jos toimitus verkkotunnukselle, epäonnistuu %{count} eri päivänä ilman onnistumista, uusia yrityksiä ei tehdä ennen kuin toimitus alkaen verkkotunnuselta on vastaanotettu. + one: Jos toimitus verkkotunnukseen epäonnistuu %{count} päivän ajan, sitä ei yritetä uudelleen ennen kuin verkkotunnuksesta vastaanotetaan toimitus. + other: Jos toimitus verkkotunnukseen epäonnistuu %{count} päivän ajan, sitä ei yritetä uudelleen ennen kuin verkkotunnuksesta vastaanotetaan toimitus. failure_threshold_reached: Epäonnistumisen kynnys saavutettu %{date}. failures_recorded: one: Epäonnistuneita yrityksiä %{count} päivässä. @@ -521,7 +521,7 @@ fi: delivery_available: Toimitus on saatavilla delivery_error_days: Toimitusvirheen päivät delivery_error_hint: Jos toimitus ei ole mahdollista %{count} päivän aikana, se merkitään automaattisesti toimittamattomaksi. - destroyed_msg: Tiedot %{domain} on nyt jonossa välitöntä poistoa varten. + destroyed_msg: Palvelimelta %{domain} peräisin olevat tiedot ovat nyt jonossa poistattaviksi. empty: Verkkotunnuksia ei löytynyt. known_accounts: one: "%{count} tunnettu tili" @@ -529,12 +529,12 @@ fi: moderation: all: Kaikki limited: Rajoitettu - title: Valvonta + title: Moderointi private_comment: Yksityinen kommentti public_comment: Julkinen kommentti purge: Tyhjennä purge_description_html: Jos uskot, että tämä verkkotunnus on offline-tilassa tarkoituksella, voit poistaa kaikki verkkotunnuksen tilitietueet ja niihin liittyvät tiedot tallennustilastasi. Tämä voi kestää jonkin aikaa. - title: Liittoutuminen + title: Federointi total_blocked_by_us: Estämämme total_followed_by_them: Heidän seuraama total_followed_by_us: Meidän seuraama @@ -552,7 +552,7 @@ fi: title: Kutsut ip_blocks: add_new: Luo sääntö - created_msg: Lisätty uusi IP-sääntö onnistuneesti + created_msg: Uusi IP-sääntö lisättiin onnistuneesti delete: Poista expires_in: '1209600': 2 viikkoa @@ -570,7 +570,7 @@ fi: relays: add_new: Lisää uusi välittäjä delete: Poista - description_html: "Liittoutumisvälittäjä on välityspalvelin, joka siirtää suuria määriä julkisia julkaisuja siihen liittyneiden palvelinten välillä. Se voi auttaa pieniä ja keskisuuria palvelimia löytämään fediversumin sisältöä, mikä muutoin vaatisi paikallisia käyttäjiä seuraamaan etäpalvalinten käyttäjiä manuaalisesti." + description_html: "Federoinninvälittäjä on välityspalvelin, joka siirtää suuria määriä julkisia julkaisuja siihen liittyneiden palvelinten välillä. Se voi auttaa pieniä ja keskisuuria palvelimia löytämään fediversumin sisältöä, mikä muutoin vaatisi paikallisia käyttäjiä seuraamaan etäpalvalinten käyttäjiä manuaalisesti." disable: Poista käytöstä disabled: Poissa käytöstä enable: Ota käyttöön @@ -584,8 +584,8 @@ fi: status: Tila title: Välittäjät report_notes: - created_msg: Muistiinpano lisätty raporttiin onnistuneesti! - destroyed_msg: Muistiinpano poistettu raportista onnistuneesti! + created_msg: Muistiinpanon lisäys raporttiin onnistui! + destroyed_msg: Muistiinpanon poisto raportista onnistui! reports: account: notes: @@ -598,17 +598,17 @@ fi: mark_as_sensitive_description_html: Raportoitujen julkaisujen media merkitään arkaluonteiseksi ja kirjataan varoitus, joka auttaa suhtautumaan vakavammin saman tilin tuleviin rikkomuksiin. other_description_html: Katso lisää vaihtoehtoja tilin käytöksen hallitsemiseksi ja raportoidulle tilille kohdistuvan viestinnän mukauttamiseksi. resolve_description_html: Ilmoitettua tiliä kohtaan ei ryhdytä toimiin, varoitusta ei kirjata ja raportti suljetaan. - silence_description_html: Tili näkyy vain niille, jotka jo seuraavat sitä tai etsivät sen manuaalisesti, mikä rajoittaa merkittävästi sen tavoitettavuutta. Voidaan perua milloin vain. Sulkee kaikki tilin vastaiset raportit. - suspend_description_html: Tili ja mikään sen sisältö eivät ole käytettävissä, ja lopulta ne poistetaan, ja vuorovaikutus tilin kanssa on mahdotonta. Peruttavissa 30 päivän ajan. Sulkee kaikki tämän tilin vastaiset raportit. + silence_description_html: Tili näkyy vain niille, jotka jo seuraavat sitä tai etsivät sen manuaalisesti, mikä rajoittaa merkittävästi sen tavoitettavuutta. Voidaan perua milloin vain. Sulkee kaikki tiliin kohdistuvat raportit. + suspend_description_html: Tili ja mikään sen sisältö eivät ole käytettävissä, ja lopulta ne poistetaan ja vuorovaikutus tilin kanssa on mahdotonta. Peruttavissa 30 päivän ajan. Sulkee kaikki tiliin kohdistuvat raportit. actions_description_html: Päätä, mihin toimiin ryhdyt tämän raportin ratkaisemiseksi. Jos ryhdyt rangaistustoimeen ilmoitettua tiliä kohtaan, hänelle lähetetään sähköposti-ilmoitus, paitsi jos Roskaposti-luokka on valittuna. - actions_description_remote_html: Päätä, mihin toimiin ryhdyt tämän raportin ratkaisemiseksi. Tämä vaikuttaa vain siihen, miten palvelimesi kommunikoi tämän etätilin kanssa ja käsittelee sen sisältöä. + actions_description_remote_html: Päätä, mihin toimiin ryhdyt tämän raportin ratkaisemiseksi. Tämä vaikuttaa vain siihen, miten sinun palvelimesi viestii tämän etätilin kanssa ja käsittelee sen sisältöä. add_to_report: Lisää raporttiin already_suspended_badges: local: Jäädytetty jo tällä palvelimella remote: Jäädytetty jo tällä palvelimella are_you_sure: Oletko varma? - assign_to_self: Ota tehtäväksi - assigned: Määritetty valvoja + assign_to_self: Ota käsiteltäväkseni + assigned: Määritetty moderaattori by_target_domain: Raportoidun tilin verkkotunnus cancel: Peruuta category: Luokka @@ -617,12 +617,12 @@ fi: none: Ei mitään comment_description_html: 'Antaakseen lisätietoja %{name} kirjoitti:' confirm: Vahvista - confirm_action: Vahvista valvontatoimi käyttäjää @%{acct} kohtaan + confirm_action: Vahvista moderointitoimi käyttäjää @%{acct} kohtaan created_at: Raportoitu delete_and_resolve: Poista julkaisut forwarded: Välitetty forwarded_replies_explanation: Tämä raportti on etäkäyttäjältä ja koskee etäsisältöä. Se on välitetty sinulle, koska raportoitu sisältö on vastaus jollekin käyttäjällesi. - forwarded_to: Välitetty %{domain} + forwarded_to: Välitetty palvelimelle %{domain} mark_as_resolved: Merkitse ratkaistuksi mark_as_sensitive: Merkitse arkaluonteiseksi mark_as_unresolved: Merkitse ratkaisemattomaksi @@ -632,19 +632,20 @@ fi: create_and_resolve: Ratkaise ja lisää muistiinpano create_and_unresolve: Avaa uudelleen ja lisää muistiinpano delete: Poista - placeholder: Kuvaile mitä toimia on tehty tai muita päivityksiä tähän raporttiin… + placeholder: Kuvaile tehtyjä toimia tai lisää muita käyttäjään liittyviä merkintöjä... title: Muistiinpanot - notes_description_html: Tarkastele ja jätä muistiinpanoja muille valvojille ja itsellesi tulevaisuuteen - processed_msg: 'Raportti #%{id} käsitelty' - quick_actions_description_html: 'Suorita nopea toiminto tai vieritä alas nähdäksesi raportoitu sisältö:' - remote_user_placeholder: etäkäyttäjä instanssista %{instance} - reopen: Avaa raportti uudestaan + notes_description_html: Tarkastele ja jätä muistiinpanoja muille moderaattoreille ja itsellesi tulevaisuuteen + processed_msg: Raportin nro %{id} käsittely onnistui + quick_actions_description_html: 'Suorita pikatoiminto tai vieritä alas nähdäksesi raportoitu sisältö:' + remote_user_placeholder: etäkäyttäjä palvelimelta %{instance} + reopen: Avaa raportti uudelleen report: Raportti nro %{id} reported_account: Raportoitu tili reported_by: Raportoinut + reported_with_application: Raportoitu sovelluksella resolved: Ratkaistut - resolved_msg: Raportti onnistuneesti ratkaistu! - skip_to_actions: Siirry toimintoihin + resolved_msg: Raportin ratkaisu onnistui! + skip_to_actions: Siirry toimiin status: Tila statuses: Raportoitu sisältö statuses_description_html: Loukkaava sisältö mainitaan raportoidun tilin yhteydessä @@ -659,17 +660,17 @@ fi: mark_as_sensitive_html: Merkitse loukkaavien julkaisujen media arkaluonteiseksi silence_html: Rajoita merkittävästi käyttäjän @%{acct} tavoitettavuutta tekemällä profiilista ja sen sisällöstä näkyviä vain niille, jotka jo seuraavat tiliä tai etsivät sen manuaalisesti suspend_html: Jäädytä @%{acct}, jolloin hänen profiilinsa ja sisältönsä ei ole käytettävissä ja hänen kanssaan on mahdotonta olla vuorovaikutuksessa - close_report: 'Merkitse raportti #%{id} selvitetyksi' + close_report: Merkitse raportti nro %{id} ratkaistuksi close_reports_html: Merkitse kaikki käyttäjään @%{acct} kohdistuvat raportit ratkaistuiksi delete_data_html: Poista käyttäjän @%{acct} profiili ja sen sisältö 30 päivän kuluttua, ellei jäädytystä sillä välin kumota preview_preamble_html: "@%{acct} saa varoituksen, jonka sisältö on seuraava:" - record_strike_html: Tallenna varoitus @%{acct} vastaan, joka auttaa sinua selvittämään tulevia rikkomuksia tältä tililtä + record_strike_html: Kirjaa käyttäjään @%{acct} kohdistuva varoitus, joka auttaa suhtautumaan vakavammin tämän tilin tuleviin rikkomuksiin send_email_html: Lähetä käyttäjälle @%{acct} varoitus sähköpostitse - warning_placeholder: Valinnaiset lisäperustelut valvontatoimelle. + warning_placeholder: Valinnaiset lisäperustelut moderointitoimelle. target_origin: Raportoidun tilin alkuperä title: Raportit - unassign: Määrittämätön - unknown_action_msg: 'Tuntematon toiminto: %{action}' + unassign: Poista käsittelystä + unknown_action_msg: 'Tuntematon toimi: %{action}' unresolved: Ratkaisemattomat updated_at: Päivitetty view_profile: Näytä profiili @@ -682,10 +683,10 @@ fi: administration: Ylläpito devops: DevOps invites: Kutsut - moderation: Valvonta + moderation: Moderointi special: Erityistä delete: Poista - description_html: "Käyttäjärooleilla voit muokata, mihin toimintoihin ja alueisiin käyttäjäsi pääsevät käsiksi." + description_html: "Käyttäjärooleilla voit mukauttaa, mihin Mastodonin toimintoihin ja alueisiin käyttäjäsi pääsevät käsiksi." edit: Muokkaa roolia ”%{name}” everyone: Oletuskäyttöoikeudet everyone_full_description_html: Tämä on perusrooli, joka vaikuttaa kaikkiin käyttäjiin, jopa ilman määrättyä roolia. Kaikki muut roolit perivät sen käyttöoikeudet. @@ -702,17 +703,17 @@ fi: manage_announcements: Hallita tiedotteita manage_announcements_description: Sallii käyttäjien hallita tiedotteita palvelimella manage_appeals: Hallita valituksia - manage_appeals_description: Sallii käyttäjien tarkistaa valvontatoimia koskevia valituksia + manage_appeals_description: Sallii käyttäjien tarkistaa moderointitoimiin kohdistuvia valituksia manage_blocks: Hallita estoja manage_blocks_description: Sallii käyttäjien estää sähköpostipalveluntarjoajia ja IP-osoitteita manage_custom_emojis: Hallita mukautettuja emojeita manage_custom_emojis_description: Sallii käyttäjien hallita mukautettuja emojeita palvelimella - manage_federation: Hallita liittoutumista - manage_federation_description: Sallii käyttäjien estää tai sallia liittoutuminen muiden verkkotunnusten kanssa ja hallita toimitusta + manage_federation: Hallita federointia + manage_federation_description: Sallii käyttäjien estää tai sallia federointi muiden verkkotunnusten kanssa ja hallita toimitusta manage_invites: Hallita kutsuja - manage_invites_description: Sallii käyttäjien selata ja poistaa kutsulinkkejä käytöstä + manage_invites_description: Sallii käyttäjien selata kutsulinkkejä ja poistaa niitä käytöstä manage_reports: Hallita raportteja - manage_reports_description: Sallii käyttäjien tarkistaa raportteja ja suorittaa valvontatoimia niitä vastaan + manage_reports_description: Sallii käyttäjien tarkistaa raportteja ja suorittaa moderointitoimia niiden perusteella manage_roles: Hallita rooleja manage_roles_description: Sallii käyttäjien hallita ja määrittää rooleja heidän alapuolellaan manage_rules: Hallita sääntöjä @@ -724,13 +725,13 @@ fi: manage_user_access: Hallita käyttäjäoikeuksia manage_user_access_description: Sallii käyttäjien poistaa muiden käyttäjien kaksivaiheinen todennus käytöstä, vaihtaa heidän sähköpostiosoitteensa ja nollata heidän salasanansa manage_users: Hallita käyttäjiä - manage_users_description: Sallii käyttäjien tarkastella muiden käyttäjien tietoja ja suorittaa valvontatoimia heitä kohtaan + manage_users_description: Sallii käyttäjien tarkastella muiden käyttäjien tietoja ja suorittaa moderointitoimia heitä kohtaan manage_webhooks: Hallita webhookeja manage_webhooks_description: Sallii käyttäjien luoda webhookeja hallinnollisiin tapahtumiin view_audit_log: Katsoa tarkastuslokia view_audit_log_description: Sallii käyttäjien nähdä palvelimen hallinnollisten toimien historian view_dashboard: Katsoa koontinäyttöä - view_dashboard_description: Sallii käyttäjien käyttää kojelautaa ja erilaisia mittareita + view_dashboard_description: Sallii käyttäjille pääsyn koontinäyttöön ja erilaisiin mittareihin view_devops: DevOps view_devops_description: Sallii käyttäjille pääsyn Sidekiq- ja pgHero-hallintapaneeleihin title: Roolit @@ -744,17 +745,17 @@ fi: settings: about: manage_rules: Hallitse palvelimen sääntöjä - preamble: Anna perusteellista tietoa siitä, miten palvelinta käytetään, valvotaan ja rahoitetaan. + preamble: Kerro syventävästi siitä, kuinka palvelinta käytetään, moderoidaan ja rahoitetaan. rules_hint: On olemassa erityinen alue sääntöjä, joita käyttäjien odotetaan noudattavan. title: Tietoja appearance: preamble: Mukauta Mastodonin selainkäyttöliittymää. title: Ulkoasu branding: - preamble: Palvelimesi brändäys erottaa sen muista verkon palvelimista. Nämä tiedot voivat näkyä monissa eri ympäristöissä, kuten Mastodonin selainkäyttöliittymässä, natiivisovelluksissa, linkkien esikatseluissa muilla sivustoilla, viestintäsovelluksissa ja niin edelleen. Siksi nämä tiedot kannattaa pitää selkeinä, lyhyinä ja ytimekkäinä. + preamble: Palvelimesi brändäys erottaa sen muista verkon palvelimista. Nämä tiedot voivat näkyä monissa eri ympäristöissä, kuten Mastodonin selainkäyttöliittymässä, natiivisovelluksissa, linkkien esikatseluissa muilla sivustoilla, viestintäsovelluksissa ja niin edelleen. Siksi nämä tiedot kannattaa pitää selvinä, lyhyinä ja ytimekkäinä. title: Brändäys captcha_enabled: - desc_html: Tämä perustuu ulkoisiin skripteihin hCaptchasta, mikä voi olla turvallisuus- ja yksityisyysongelma. Lisäksi tämä voi tehdä rekisteröinnin ihmisille huomattavasti (erityisesti vammaisten) helpommaksi. Harkitse vaihtoehtoisia toimenpiteitä, kuten hyväksymisperusteista tai kutsupohjaista rekisteröintiä. + desc_html: Tämä perustuu ulkoisiin hCaptchan skripteihin, mikä voi olla turvallisuus- ja yksityisyysongelma. Lisäksi tämä voi tehdä rekisteröitymisprosessista joillekin (erityisesti vammaisille) ihmisille huomattavasti vähemmän saavutettavan. Harkitse siksi vaihtoehtoisia toimia, kuten hyväksymis- tai kutsuperusteista rekisteröitymistä. title: Vaadi uusia käyttäjiä vahvistaamaan tilinsä ratkaisemalla CAPTCHA-vahvistus content_retention: danger_zone: Vaaravyöhyke @@ -777,9 +778,9 @@ fi: disabled: Ei kenellekkään users: Kirjautuneille paikallisille käyttäjille registrations: - moderation_recommandation: Varmista, että sinulla on riittävä ja toimintavalmis joukko moderaattoreita, ennen kuin vapautat rekisteröitymismenettelyn kaikille! + moderation_recommandation: Varmista, että sinulla on riittävä ja toimintavalmis joukko moderaattoreita, ennen kuin avaat rekisteröitymisen kaikille! preamble: Määritä, kuka voi luoda tilin palvelimellesi. - title: Rekisteröityminen + title: Rekisteröinnit registrations_mode: modes: approved: Rekisteröityminen vaatii hyväksynnän @@ -787,14 +788,14 @@ fi: open: Kaikki voivat rekisteröityä warning_hint: Suosittelemme käyttämään asetusta ”Rekisteröityminen vaatii hyväksynnän”, ellet ole varma siitä, että moderaattorit ovat valmiina käsittelemään roskapostia ja haittarekisteröitymisiä oikea-aikaisesti. security: - authorized_fetch: Vaadi todennus liittoutuvilta palvelimilta - authorized_fetch_hint: Todennuksen vaatiminen liittoutuvilta palvelimilta mahdollistaa sekä käyttäjä- että palvelintason estojen tiukemman valvonnan. Tämä tapahtuu kuitenkin suorituskyvyn kustannuksella, vähentää vastauksiesi tavoittavuutta ja voi aiheuttaa yhteensopivuusongelmia joidenkin liittoutuvien palvelujen kanssa. Tämä ei myöskään estä omistautuneita toimijoita hakemasta julkisia julkaisujasi ja tilejäsi. + authorized_fetch: Vaadi todennus federoivilta palvelimilta + authorized_fetch_hint: Todennuksen vaatiminen federoivilta palvelimilta mahdollistaa sekä käyttäjä- että palvelintason estojen tiukemman valvonnan. Tämä tapahtuu kuitenkin suorituskyvyn kustannuksella, vähentää vastauksiesi tavoittavuutta ja voi aiheuttaa yhteensopivuusongelmia joidenkin federoivien palvelujen kanssa. Tämä ei myöskään estä asialleen omistautuneita toimijoita hakemasta julkisia julkaisujasi ja tilejäsi. authorized_fetch_overridden_hint: Et voi tällä hetkellä muuttaa tätä asetusta, koska se on ohitettu ympäristömuuttujalla. - federation_authentication: Liittoutumisen todentamisen täytäntöönpano + federation_authentication: Federoinnin todennuksen valvonta title: Palvelimen asetukset site_uploads: delete: Poista ladattu tiedosto - destroyed_msg: Sivuston lataus onnistuneesti poistettu! + destroyed_msg: Sivustolatauksen poisto onnistui! software_updates: critical_update: Kriittinen – päivitä viivyttelemättä description: On suositeltavaa pitää Mastodon-asennus ajantasaisena ja siten hyödyntää uusimpia korjauksia sekä ominaisuuksia. Lisäksi joskus on ratkaisevan tärkeää päivittää Mastodon ajoissa tietoturvaongelmien välttämiseksi. Näistä syistä Mastodon tarkistaa päivitykset 30 minuutin välein, ja ilmoittaa sinulle sähköposti-ilmoitusasetustesi mukaisesti. @@ -841,9 +842,9 @@ fi: sensitive: "%{name} merkitsi käyttäjän %{target} tilin arkaluonteiseksi" silence: "%{name} rajoitti käyttäjän %{target} tiliä" suspend: "%{name} jäädytti käyttäjän %{target} tilin" - appeal_approved: Valitti + appeal_approved: Valittanut appeal_pending: Valitus vireillä - appeal_rejected: Vetoomus hylättiin + appeal_rejected: Valitus hylätty system_checks: database_schema_check: message_html: Tietokannan siirto on vireillä. Suorita ne varmistaaksesi, että sovellus toimii odotetulla tavalla @@ -885,7 +886,7 @@ fi: message_html: "Objektivarastosi on määritetty virheellisesti, ja käyttäjiesi yksityisyys on vaarassa." tags: review: Tarkista tila - updated_msg: Aihetunnisteen asetukset päivitetty onnistuneesti + updated_msg: Aihetunnisteiden asetusten päivitys onnistui title: Ylläpito trends: allow: Salli @@ -907,7 +908,7 @@ fi: usage_comparison: Jaettu %{today} kertaa tänään verrattuna eilen %{yesterday} not_allowed_to_trend: Ei saa trendata only_allowed: Vain sallittu - pending_review: Odottaa tarkistusta + pending_review: Odottaa tarkastusta preview_card_providers: allowed: Tämän julkaisijan linkit voivat trendata description_html: Nämä ovat verkkotunnuksia, joiden linkkejä jaetaan usein palvelimellasi. Linkit eivät trendaa julkisesti, ellei linkin verkkotunnusta ole hyväksytty. Hyväksyntäsi (tai hylkäys) ulottuu aliverkkotunnuksiin. @@ -938,12 +939,12 @@ fi: listable: Voidaan ehdottaa no_tag_selected: Tunnisteita ei muutettu, koska yhtään ei ollut valittuna not_listable: Ei tulla ehdottamaan - not_trendable: Ei näy trendien alla + not_trendable: Ei näy trendeissä not_usable: Ei voida käyttää peaked_on_and_decaying: Saavutti huipun %{date}, nyt hiipuu title: Suositut aihetunnisteet - trendable: Voi näkyä trendien alla - trending_rank: 'Suosittua #%{rank}' + trendable: Voi näkyä trendeissä + trending_rank: Suosittu, sijalla %{rank} usable: Voidaan käyttää usage_comparison: Käytetty %{today} kertaa tänään, verrattuna %{yesterday} eiliseen used_by_over_week: @@ -979,33 +980,33 @@ fi: webhook: Webhook admin_mailer: auto_close_registrations: - body: Palvelimen %{instance} moderaattorit eivät ole olleet viime aikoina aktiivisia. Tästä syystä rekisteröitymismenettely on automaattisesti vaihdettu erillishyväksyntöjä edellyttäväksi. Näin vähennetään riskiä palvelimen %{instance} käyttöön haitallisten toimijoiden alustana. Voit koska tahansa palauttaa käyttöön vapaat rekisteröitymiset. + body: Palvelimen %{instance} moderaattorit eivät ole olleet viime aikoina aktiivisia. Tästä syystä rekisteröitymismenettely on automaattisesti vaihdettu erillishyväksyntöjä edellyttäväksi. Näin vähennetään riskiä palvelimen %{instance} käyttöön haitallisten toimijoiden alustana. Voit milloin tahansa palauttaa käyttöön vapaat rekisteröitymiset. subject: Rekisteröitymiset palvelimelle %{instance} on automaattisesti vaihdettu vaatimaan hyväksyntää new_appeal: actions: delete_statuses: poistaa hänen julkaisunsa - disable: jäädyttää heidän tilinsä + disable: jäädyttää hänen tilinsä mark_statuses_as_sensitive: merkitä hänen julkaisunsa arkaluonteisiksi none: varoitus - sensitive: merkitä heidän tilinsä arkaluonteiseksi + sensitive: merkitä hänen tilinsä arkaluonteiseksi silence: rajoittaa hänen tiliään suspend: jäädyttää hänen tilinsä - body: "%{target} valittaa valvojan %{action_taken_by} päätöksestä %{date}, joka oli %{type}. Hän kirjoitti:" - next_steps: Voit hyväksyä valituksen, jolloin valvontapäätös kumoutuu, tai sivuuttaa sen. - subject: "%{username} valittaa valvontapäätöksestä, joka koskee instanssia %{instance}" + body: "%{target} valittaa moderaattorin %{action_taken_by} päätöksestä %{date}, joka oli %{type}. Hän kirjoitti:" + next_steps: Voit hyväksyä valituksen, jolloin moderointipäätös kumoutuu, tai sivuuttaa sen. + subject: "%{username} valittaa palvelinta %{instance} koskevasta moderointipäätöksestä" new_critical_software_updates: body: Mastodonin uusia kriittisen tärkeitä versioita on julkaistu, joten saatat haluta päivittää niin pian kuin mahdollista! - subject: Kriittisiä Mastodon-päivityksiä on saatavilla instanssille %{instance}! + subject: Palvelimelle %{instance} on saatavilla kriittisiä Mastodon-päivityksiä! new_pending_account: body: Uuden tilin tiedot ovat alla. Voit hyväksyä tai hylätä tämän hakemuksen. - subject: Uusi tili tarkastettavana instanssissa %{instance} (%{username}) + subject: Uusi tili tarkastettavana palvelimella %{instance} (%{username}) new_report: body: "%{reporter} on raportoinut kohteen %{target}" - body_remote: Joku palvelimelta %{domain} raportoi käyttäjän %{target} - subject: Uusi raportti instanssista %{instance} (nro %{id}) + body_remote: Joku palvelimelta %{domain} raportoi kohteen %{target} + subject: Uusi raportti palvelimesta %{instance} (nro %{id}) new_software_updates: body: Uusia Mastodon-versioita on julkaistu, joten saatat haluta päivittää! - subject: Uusia Mastodon-versioita ovat saatavilla instanssille %{instance}! + subject: Palvelimelle %{instance} ovat saatavilla uusia Mastodon-versioita! new_trends: body: 'Seuraavat kohteet on tarkistettava ennen kuin ne voidaan näyttää julkisesti:' new_trending_links: @@ -1014,11 +1015,11 @@ fi: title: Suositut julkaisut new_trending_tags: title: Suositut aihetunnisteet - subject: Uusia trendejä tarkistettavaksi instanssissa %{instance} + subject: Palvelimella %{instance} on uusia trendejä tarkistettavaksi aliases: add_new: Luo alias - created_msg: Uusi alias luotiin onnistuneesti. Voit nyt aloittaa siirron vanhasta tilistä. - deleted_msg: Alias poistettiin onnistuneesti. Siirtyminen tuolta tililtä tähän ei ole enää mahdollista. + created_msg: Uusi alias luotiin onnistuneesti. Voit nyt aloittaa muuton vanhasta tilistä. + deleted_msg: Alias poistettiin onnistuneesti. Muuttaminen tuolta tililtä tähän ei ole enää mahdollista. empty: Sinulla ei ole aliaksia. hint_html: Jos haluat muuttaa toiselta tililtä tälle tilille, voit luoda tässä aliaksen, mitä vaaditaan ennen kuin voit edetä siirtämään seuraajat vanhalta tililtä tälle tilille. Tänä toiminto on itsessään vaaraton ja kumottavissa. Tilin muuttaminen aloitetaan vanhalta tililtä. remove: Poista aliaksen linkitys @@ -1035,7 +1036,7 @@ fi: sensitive_content: Arkaluonteinen sisältö application_mailer: notification_preferences: Muuta sähköpostiasetuksia - salutation: "%{name}," + salutation: "%{name}" settings: 'Muuta sähköpostiasetuksia: %{link}' unsubscribe: Lopeta tilaus view: 'Näytä:' @@ -1045,10 +1046,10 @@ fi: created: Sovelluksen luonti onnistui destroyed: Sovelluksen poisto onnistui logout: Kirjaudu ulos - regenerate_token: Luo pääsytunnus uudelleen - token_regenerated: Pääsytunnuksen uudelleenluonti onnistui - warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille! - your_token: Pääsytunnus + regenerate_token: Luo uusi käyttöoikeustunnus + token_regenerated: Uuden käyttöoikeustunnuksen luonti onnistui + warning: Ole varovainen näiden tietojen kanssa. Älä koskaan jaa niitä muille! + your_token: Käyttöoikeustunnus auth: apply_for_account: Pyydä tiliä captcha_confirmation: @@ -1056,7 +1057,7 @@ fi: hint_html: Vielä yksi juttu! Meidän on vahvistettava, että olet ihminen (tämän avulla pidämme roskapostin poissa!). Ratkaise alla oleva CAPTCHA-vahvistus ja paina "Jatka". title: Turvatarkastus confirmations: - awaiting_review: Sähköpostiosoitteesi on vahvistettu! Seuraavaksi palvelimen %{domain} ylläpito tarkistaa rekisteröitymisesi, ja saat lopuksi ilmoituksen sähköpostitse, jos tilisi hyväksytään! + awaiting_review: Sähköpostiosoitteesi on vahvistettu! Seuraavaksi palvelimen %{domain} ylläpito tarkastaa rekisteröitymisesi, ja saat lopuksi ilmoituksen sähköpostitse, jos tilisi hyväksytään! awaiting_review_title: Rekisteröitymisesi on tarkistettavana clicking_this_link: napsauttaa tätä linkkiä login_link: kirjautumalla sisään @@ -1099,9 +1100,9 @@ fi: rules: accept: Hyväksy back: Takaisin - invited_by: 'Seuraavalta käyttäjältä vastaanottamasi kutsun ansiosta voit liittyä palvelimelle %{domain}:' - preamble: Palvelimen %{domain} valvojat määrittävät ja valvovat sääntöjä. - preamble_invited: Ennen kuin jatkat, ota huomioon palvelimen %{domain} valvojien asettamat perussäännöt. + invited_by: 'Voit liittyä palvelimelle %{domain} kutsulla, jonka sait seuraavalta käyttäjältä:' + preamble: Palvelimen %{domain} moderaattorit määrittävät ja valvovat sääntöjä. + preamble_invited: Ennen kuin jatkat ota huomioon palvelimen %{domain} moderaattorien asettamat perussäännöt. title: Joitakin perussääntöjä. title_invited: Sinut on kutsuttu. security: Tunnukset @@ -1110,15 +1111,15 @@ fi: email_below_hint_html: Tarkista roskapostikansiosi tai pyydä uusi viesti. Voit korjata sähköpostiosoitteesi, jos se oli väärin. email_settings_hint_html: Napsauta lähettämäämme linkkiä vahvistaaksesi osoitteen %{email}. Odotamme täällä. link_not_received: Etkö saanut linkkiä? - new_confirmation_instructions_sent: Saat uuden vahvistuslinkin sisältävän sähköpostiviestin muutamassa minuutissa! + new_confirmation_instructions_sent: Saat pian uuden vahvistuslinkin sisältävän sähköpostiviestin! title: Tarkista sähköpostilaatikkosi sign_in: preamble_html: Kirjaudu %{domain}-tunnuksellasi. Jos tilisi sijaitsee eri palvelimella, et voi kirjautua tässä. title: Kirjaudu palvelimelle %{domain} sign_up: - manual_review: Palvelimen %{domain} valvojat tarkistavat rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja miksi haluat luoda käyttäjätilin palvelimelle %{domain}. + manual_review: Palvelimen %{domain} ylläpito tarkastaa rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja siitä, miksi haluat luoda käyttäjätilin palvelimelle %{domain}. preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia henkilöitä riippumatta siitä, missä heidän tilinsä on. - title: Otetaan sinulle käyttöön %{domain}. + title: Otetaan %{domain} käyttöösi. status: account_status: Tilin tila confirming: Odotetaan sähköpostivahvistuksen valmistumista. @@ -1126,7 +1127,7 @@ fi: pending: Hakemuksesi odottaa palvelimen ylläpidon tarkastusta. Tämä voi kestää jonkin aikaa. Saat sähköpostiviestin, jos hakemuksesi hyväksytään. redirecting_to: Tilisi ei ole aktiivinen, koska se ohjaa tällä hetkellä tilille %{acct}. self_destruct: Koska %{domain} sulkeutuu, voit käyttää tiliäsi vain rajoitetusti. - view_strikes: Näytä tiliäsi koskevia aiempia varoituksia + view_strikes: Näytä aiemmat tiliäsi koskevat varoitukset too_fast: Lomake lähetettiin liian nopeasti, yritä uudelleen. use_security_key: Käytä suojausavainta challenge: @@ -1171,13 +1172,13 @@ fi: email_reconfirmation_html: Jos et saa vahvistuksen sähköpostia, niin voit pyytää sitä uudelleen irreversible: Et voi palauttaa tiliäsi tai aktivoida sitä uudelleen more_details_html: Lisätietoja saat tietosuojakäytännöstämme. - username_available: Käyttäjänimesi tulee saataville uudestaan - username_unavailable: Käyttäjänimesi ei tule saataville enää uudestaan + username_available: Käyttäjänimesi tulee saataville uudelleen + username_unavailable: Käyttäjänimesi ei tule saataville enää uudelleen disputes: strikes: action_taken: Tehty toimi - appeal: Vetoomus - appeal_approved: Tähän valitukseen on haettu muutosta, eikä se ole enää voimassa + appeal: Valitus + appeal_approved: Tähän varoitukseen haettiin onnistuneesti muutosta, eikä se ole enää voimassa appeal_rejected: Valitus on hylätty appeal_submitted_at: Valitus lähetetty appealed_msg: Valituksesi on lähetetty. Jos se hyväksytään, sinulle ilmoitetaan. @@ -1186,10 +1187,10 @@ fi: approve_appeal: Hyväksy valitus associated_report: Liittyvä raportti created_at: Päivätty - description_html: Nämä ovat tiliäsi koskevia toimia ja varoituksia, jotka instanssin %{instance} ylläpito on lähettänyt sinulle. + description_html: Nämä ovat tiliisi kohdistuvia toimia sekä varoituksia, jotka palvelimen %{instance} ylläpito on lähettänyt sinulle. recipient: Osoitettu reject_appeal: Hylkää valitus - status: 'Julkaisu #%{id}' + status: Julkaisu nro %{id} status_removed: Julkaisu on jo poistettu järjestelmästä title: "%{action} alkaen %{date}" title_actions: @@ -1204,7 +1205,7 @@ fi: your_appeal_pending: Olet lähettänyt valituksen your_appeal_rejected: Valituksesi on hylätty domain_validator: - invalid_domain: ei ole kelvollinen toimialueen nimi + invalid_domain: ei ole kelvollinen verkkotunnus edit_profile: basic_information: Perustiedot hint_html: "Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä. Ihmiset seuraavat sinua takaisin ja ovat kanssasi vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva." @@ -1350,7 +1351,7 @@ fi: scheduled: Ajoitettu unconfirmed: Varmistamaton status: Tila - success: Tietojen lähettäminen onnistui, ja ne käsitellään kohtapuoliin + success: Tietojen lähettäminen onnistui, ja ne käsitellään aivan pian time_started: Aloitettu titles: blocking: Tuodaan estettyjä tilejä @@ -1389,7 +1390,7 @@ fi: one: kertakäyttöinen other: "%{count} käyttökertaa" max_uses_prompt: Ei rajoitusta - prompt: Luo linkkejä ja jaa niiden avulla muille pääsyoikeus tähän instanssiin + prompt: Luo linkkejä ja jaa niiden avulla muille pääsyoikeus tälle palvelimelle table: expires_at: Vanhenee uses: Käytetty @@ -1460,11 +1461,11 @@ fi: other_data: Muita tietoja ei siirretä automaattisesti redirect: Nykyisen tilisi profiili päivitetään ohjaushuomautuksella ja suljetaan pois hauista moderation: - title: Valvonta + title: Moderointi move_handler: carry_blocks_over_text: Tämä käyttäjä siirtyi paikasta %{acct}, jonka olit estänyt. carry_mutes_over_text: Tämä käyttäjä siirtyi tililtä %{acct}, jonka olet mykistänyt. - copy_account_note_text: 'Tämä käyttäjä siirtyi paikasta %{acct}, tässä olivat aiemmat muistiinpanosi niistä:' + copy_account_note_text: 'Tämä käyttäjä siirtyi tililtä %{acct}. Nämä olivat muistiinpanosi hänestä:' navigation: toggle_menu: Avaa/sulje valikko notification_mailer: @@ -1535,7 +1536,7 @@ fi: duplicate_options: sisältää kaksoiskappaleita duration_too_long: on liian kaukana tulevaisuudessa duration_too_short: on liian aikainen - expired: Äänestys on jo loppunut + expired: Äänestys on jo päättynyt invalid_choice: Valittua äänestysvaihtoehtoa ei ole over_character_limit: voi olla enintään %{max} merkkiä self_vote: Et voi äänestää omissa äänestyksissäsi @@ -1551,7 +1552,7 @@ fi: privacy_hint_html: Määritä, kuinka paljon muita avustavia tietoja haluat paljastaa. Käyttäjät löytävät kiinnostavia profiileja ja hienoja sovelluksia, kun he selaavat toisten seuraamia käyttäjiä ja kun he näkevät, millä sovelluksilla nämä julkaisevat. Saatat kuitenkin haluta piilottaa nämä tiedot. reach: Tavoittavuus reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seuraamissuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen? - search: Hae + search: Haku search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että ihmiset löytävät sinut julkisten julkaisujesi perusteella? Haluatko, että ihmiset Mastodonin ulkopuolella löytävät profiilisi tehdessään hakuja verkossa? Otathan huomioon, ettei julkisten tietojen täyttä kaikista hakukoneista poisjäämistä voi taata. title: Yksityisyys ja tavoittavuus privacy_policy: @@ -1668,7 +1669,7 @@ fi: relationships: Seuratut ja seuraajat severed_relationships: Katkenneet seurantasuhteet statuses_cleanup: Autom. julkaisujen poisto - strikes: Valvontavaroitukset + strikes: Moderointivaroitukset two_factor_authentication: Kaksivaiheinen todennus webauthn_authentication: Suojausavaimet severed_relationships: @@ -1679,7 +1680,7 @@ fi: user_domain_block: Estit käyttäjän %{target_name} lost_followers: Menetetyt seuraajat lost_follows: Menetetyt seuratut - preamble: Voit menettää seurattusi ja seuraajasi, kun estät verkkotunnuksen tai kun valvojasi päättävät jäädyttää etäpalvelimen. Kun näin tapahtuu, voit ladata luetteloita katkenneista seurantasuhteista, jotta voit tarkastella niitä ja mahdollisesti viedä ne toiselle palvelimelle. + preamble: Voit menettää seurattusi ja seuraajasi, kun estät verkkotunnuksen tai kun moderaattorisi päättävät jäädyttää etäpalvelimen. Kun näin tapahtuu, voit ladata luetteloita katkenneista seurantasuhteista, jotta voit tarkastella niitä ja mahdollisesti viedä ne toiselle palvelimelle. purged: Palvelimesi ylläpitäjät ovat tyhjentäneet tämän palvelimen tiedot. type: Tapahtuma statuses: @@ -1789,12 +1790,12 @@ fi: two_factor_authentication: add: Lisää disable: Poista 2FA käytöstä - disabled_success: Kaksivaiheinen todennus on poistettu käytöstä + disabled_success: Kaksivaiheisen todennuksen käytöstäpoisto onnistui edit: Muokkaa enabled: Kaksivaiheinen todennus käytössä enabled_success: Kaksivaiheisen todennuksen käyttöönotto onnistui generate_recovery_codes: Luo palautuskoodit - lost_recovery_codes: Palautuskoodien avulla voit käyttää tiliä, jos menetät puhelimesi. Jos olet hukannut palautuskoodisi, voit luoda uudet tästä. Vanhat palautuskoodit poistetaan käytöstä. + lost_recovery_codes: Palautuskoodien avulla voit käyttää tiliä, jos menetät puhelimesi. Jos olet hukannut palautuskoodisi, voit luoda uudet tästä. Vanhat palautuskoodit poistuvat käytöstä. methods: Kaksivaiheisen todennuksen menetelmät otp: Todennussovellus recovery_codes: Ota palautuskoodit talteen @@ -1804,14 +1805,14 @@ fi: user_mailer: appeal_approved: action: Tilin asetukset - explanation: Valitus tiliäsi koskevasta varoituksesta %{strike_date} jonka lähetit %{appeal_date} on hyväksytty. Tilisi on jälleen hyvässä kunnossa. + explanation: "%{appeal_date} lähettämäsi valitus tiliisi kohdistuvasta varoituksesta %{strike_date} on hyväksytty. Tilisi on jälleen hyvässä kunnossa." subject: Valituksesi %{date} on hyväksytty subtitle: Tilisi on jälleen normaalissa tilassa. title: Valitus hyväksytty appeal_rejected: - explanation: Valitus tiliäsi koskevasta varoituksesta %{strike_date} jonka lähetit %{appeal_date} on hylätty. - subject: Valituksesi %{date} on hylätty - subtitle: Vetoomuksesi on hylätty. + explanation: "%{appeal_date} lähettämäsi valitus tiliisi kohdistuvasta varoituksesta %{strike_date} on hylätty." + subject: "%{date} lähettämäsi valitus on hylätty" + subtitle: Valituksesi on hylätty. title: Valitus hylätty backup_ready: explanation: Olet pyytänyt täyden varmuuskopion Mastodon-tilistäsi. @@ -1820,10 +1821,10 @@ fi: title: Arkiston tallennus failed_2fa: details: 'Sisäänkirjautumispyrkimyksen yksityiskohtaiset tiedot:' - explanation: Joku on yrittänyt kirjautua tilillesi antaen väärän toisen todennustunnisteen. + explanation: Joku on yrittänyt kirjautua tilillesi mutta antoi väärän toisen todennustunnisteen. further_actions_html: Jos se et ollut sinä, suosittelemme, että %{action} välittömästi, sillä se on saattanut vaarantua. subject: Kaksivaiheisen todennuksen virhe - title: Kaksivaiheisen kirjautumisen toinen vaihe epäonnistui + title: Kaksivaiheisen todennuksen toinen vaihe epäonnistui suspicious_sign_in: change_password: vaihda salasanasi details: 'Tässä on tiedot kirjautumisesta:' @@ -1833,14 +1834,14 @@ fi: title: Uusi kirjautuminen warning: appeal: Lähetä valitus - appeal_description: Jos uskot, että tämä on virhe, voit hakea muutosta instanssin %{instance} ylläpidolta. + appeal_description: Jos uskot, että tämä on virhe, voit hakea muutosta palvelimen %{instance} ylläpidolta. categories: spam: Roskaposti violation: Sisältö rikkoo seuraavia yhteisön sääntöjä explanation: - delete_statuses: Joidenkin julkaisuistasi on havaittu rikkovan ainakin yhtä yhteisön sääntöä, joten instanssin %{instance} valvojat ovat poistaneet ne. + delete_statuses: Joidenkin julkaisuistasi on havaittu rikkovan ainakin yhtä yhteisön sääntöä, joten palvelimen %{instance} moderaattorit ovat poistaneet ne. disable: Et voi enää käyttää tiliäsi, mutta profiilisi ja muut tiedot pysyvät muuttumattomina. Voit pyytää varmuuskopiota tiedoistasi, vaihtaa tilin asetuksia tai poistaa tilisi. - mark_statuses_as_sensitive: Palvelimen %{instance} valvojat ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että ihmisten täytyy napauttaa mediaa ennen kuin sen esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi, kun julkaiset tulevaisuudessa. + mark_statuses_as_sensitive: Palvelimen %{instance} moderaattorit ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että ihmisten täytyy napauttaa mediaa ennen kuin sen esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi, kun julkaiset tulevaisuudessa. sensitive: Tästä lähtien kaikki ladatut mediatiedostot merkitään arkaluonteisiksi ja piilotetaan napsautusvaroituksen taakse. silence: Voit edelleen käyttää tiliäsi, mutta vain sinua jo seuraavat käyttäjät näkevät julkaisusi tällä palvelimella ja sinut voidaan sulkea pois eri löytämisominaisuuksista. Toiset voivat kuitenkin edelleen seurata sinua manuaalisesti. suspend: Et voi enää käyttää tiliäsi, eivätkä profiilisi ja muut tiedot ole enää käytettävissä. Voit silti kirjautua sisään pyytääksesi tietojesi varmuuskopiota, kunnes tiedot on poistettu kokonaan noin 30 päivän kuluttua. Säilytämme kuitenkin joitain perustietoja, jotka estävät sinua kiertämästä jäädytystä. @@ -1870,7 +1871,7 @@ fi: checklist_subtitle: 'Näin pääset alkuun tällä uudella sosiaalisella alustalla:' checklist_title: Tervetulon tarkistuslista edit_profile_action: Mukauta - edit_profile_step: Tehosta vuorovaikutuksiasi kattavin profiilitiedoin. + edit_profile_step: Täydentämällä profiilisi tietoja tehostat vuorovaikutteisuutta. edit_profile_title: Mukauta profiiliasi explanation: Näillä vinkeillä pääset alkuun feature_action: Lue lisää @@ -1891,7 +1892,7 @@ fi: hashtags_recent_count: one: "%{people} henkilö viimeisen 2 päivän aikana" other: "%{people} henkilöä viimeisen 2 päivän aikana" - hashtags_subtitle: Tutki, mikä on ollut suosittua 2 edeltävän päivän jälkeen + hashtags_subtitle: Tutki, mikä on ollut suosittua viimeisenä 2 päivänä hashtags_title: Suositut aihetunnisteet hashtags_view_more: Näytä lisää suosittuja aihetunnisteita post_action: Kirjoita @@ -1915,20 +1916,20 @@ fi: extra_instructions_html: Vinkki: Verkkosivustollasi oleva linkki voi olla myös näkymätön. Olennainen osuus on rel="me", joka estää toiseksi henkilöksi tekeytymisen verkkosivustoilla, joilla on käyttäjien luomaa sisältöä. Voit käyttää jopa link-elementtiä sivun head-osassa elementin a sijaan, mutta HTML:n pitää olla käytettävissä ilman JavaScript-koodin suorittamista. here_is_how: Näin voit tehdä sen hint_html: "Henkilöllisyyden vahvistaminen on Mastodonissa jokaisen käyttäjän ulottuvilla. Se perustuu avoimiin standardeihin ja on maksutonta nyt ja aina. Tarvitset vain henkilökohtaisen verkkosivuston, jonka perusteella sinut voidaan tunnistaa. Kun teet linkin tuolle verkkosivulle profiilistasi, tarkistamme, että verkkosivustolla on linkki takaisin profiiliisi, ja näytämme profiilissasi visuaalisen ilmaisimen." - instructions_html: Kopioi ja liitä alla oleva koodi verkkosivustosi HTML-lähdekoodiin. Lisää sitten verkkosivustosi osoite johonkin profiilisi lisäkentistä ”Muokkaa profiilia” -välilehdellä ja tallenna muutokset. + instructions_html: Kopioi ja liitä seuraava koodi verkkosivustosi HTML-lähdekoodiin. Lisää sitten verkkosivustosi osoite johonkin profiilisi lisäkentistä ”Muokkaa profiilia” -välilehdellä ja tallenna muutokset. verification: Vahvistus verified_links: Vahvistetut linkkisi webauthn_credentials: add: Lisää uusi suojausavain create: error: Suojausavaimen lisäämisessä oli ongelma. Yritä uudelleen. - success: Suojausavaimesi lisääminen onnistui. + success: Suojausavaimesi lisäys onnistui. delete: Poista delete_confirmation: Haluatko varmasti poistaa tämän suojausavaimen? - description_html: Jos otat suojausavaimen todennuksen käyttöön, kirjautuminen edellyttää jonkin suojausavaimen käyttämistä. + description_html: Jos otat suojausavaimella todennuksen käyttöön, kirjautuminen edellyttää jonkin suojausavaimesi käyttämistä. destroy: error: Suojausavaimen poistamisessa oli ongelma. Yritä uudelleen. - success: Suojausavaimesi poistaminen onnistui. + success: Suojausavaimesi poisto onnistui. invalid_credential: Virheellinen suojausavain nickname_hint: Anna uuden suojausaivaimesi lempinimi not_enabled: Et ole vielä ottanut WebAuthn-ohjelmaa käyttöön diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 1e717b6c20..eaeada4d1d 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -523,6 +523,7 @@ lt: report: 'Skundas #%{id}' reported_account: Reportuota paskyra reported_by: Skundas sukurtas + reported_with_application: Pranešta su programėle resolved: Išspręsta resolved_msg: Skundas sėkmingai įšspręstas! status: Statusas diff --git a/config/locales/sc.yml b/config/locales/sc.yml index 449d8d9c7f..6f4fd6eb30 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -118,7 +118,7 @@ sc: search_same_ip: Àteras persones cun sa pròpiu IP security: Seguresa sensitive: Sensìbile - sensitized: marcadu comente a sensìbile + sensitized: Marcadu comente sensìbile shared_inbox_url: URL de intrada cumpartzida show: created_reports: Informes creados @@ -127,13 +127,13 @@ sc: silenced: Limitadas statuses: Tuts subscribe: Sutascrie·ti - suspend: Suspensione + suspend: Suspende suspended: Suspèndidu suspension_irreversible: Is datos de custu contu sunt istados cantzellados in manera irreversìbile. Podes bogare sa suspensione a su contu pro chi si potzat impreare, ma no at a recuperare datu perunu de is chi teniat in antis. suspension_reversible_hint_html: Su contu est istadu suspèndidu, e is datos ant a èssere cantzelladu de su totu su %{date}. Finas a tando, su contu si podet ripristinare sena efetu malu perunu. Si boles cantzellare totu is datos de su contu immediatamente ddu podes fàghere inoghe in bassu. title: Contos unconfirmed_email: Posta eletrònica sena cunfirmare - undo_sensitized: Boga sa marcadura comente "sensìbile" + undo_sensitized: Boga sa marcadura comente sensìbile undo_silenced: Non pòngias a sa muda undo_suspension: Iscontza sa suspensione unsilenced_msg: As bogadu is lìmites a su contu de %{username} @@ -280,36 +280,44 @@ sc: updated_msg: Emoji atualizadu upload: Càrriga dashboard: - media_storage: Immagasinamentu + active_users: utentes ativos + interactions: interatziones + media_storage: Immagasinamentu multimèdia + new_users: utentes noos + opened_reports: informes abertos software: Programmas space: Impreu de ispàtziu title: Pannellu + website: Situ web domain_allows: add_new: Permite sa federatzione cun domìniu created_msg: Sa federatzione cun su domìniu est istada permìtida destroyed_msg: Sa federatzione cun su domìniu no est istada permìtida - import: Importatzione + export: Esporta + import: Importa undo: Non permitas sa federatzione cun su domìniu domain_blocks: add_new: Agiunghe blocu de domìniu nou confirm_suspension: cancel: Annulla - confirm: Suspensione + confirm: Suspende + title: Cunfirma su blocu de domìniu de %{domain} created_msg: Protzessende su blocu de domìniu destroyed_msg: Su blocu de domìniu est istadu iscontzadu domain: Domìniu edit: Modìfica su blocu de su domìniu existing_domain_block_html: As giai impostu lìmites prus astrintos a %{name}, ddu dias dèpere isblocare prima. - import: Importatzione + export: Esporta + import: Importa new: create: Crea unu blocu hint: Su blocu de domìniu no at a impedire sa creatzione de contos noos in sa base de datos, ma ant a èssere aplicados in manera retroativa mètodos de moderatzione ispetzìficos subra custos contos. severity: noop: Perunu - silence: A sa muda + silence: Lìmita suspend: Suspensione title: Blocu de domìniu nou - not_permitted: Non tenes su permissu de fàghere custa atzione + not_permitted: Non tenes permissu pro fàghere custa atzione obfuscate: Cua su nòmine de domìniu obfuscate_hint: Cua una parte de su nòmine de domìniu in sa lista si sa visualizatzione de sa lista de domìnios limitados est ativa private_comment: Cummentu privadu @@ -330,7 +338,16 @@ sc: new: create: Agiunghe unu domìniu title: Bloca su domìniu de posta eletrònica nou + not_permitted: Non permìtidu title: Domìnios de posta eletrònica blocados + export_domain_allows: + no_file: Perunu archìviu seletzionadu + export_domain_blocks: + import: + title: Importa blocos de domìniu + new: + title: Importa blocos de domìniu + no_file: Perunu archìviu seletzionadu follow_recommendations: description_html: "Is cussìgios de sighiduras agiudant a is persones noas a agatare deretu cuntenutu interessante. Si una persone at interagidu cun pagu gente e non podet retzire cussìgios de sighiduras personalizados, custos contos ant a èssere ammustrados. Ant a èssere torrados a carculare dae un'ammisturu de contos cun is pertzentuales de cumpromissu prus artos e su nùmeru prus artu de sighiduras pro un'idioma ispetzìficu." language: Pro idioma @@ -341,15 +358,22 @@ sc: unsuppress: Recùpera su cussìgiu de sighidura instances: back_to_all: Totus - back_to_limited: Limitadu + back_to_limited: Limitadas back_to_warning: Atentzione by_domain: Domìniu content_policies: + comment: Apuntu internu policies: + reject_media: Refuda elementos multimediales reject_reports: Refuda informes - silence: A sa muda - suspend: Suspensione + silence: Lìmita + suspend: Suspende + policy: Polìtica + reason: Resone pùblica + title: Polìticas de cuntenutu dashboard: + instance_accounts_dimension: Contos prus sighidos + instance_accounts_measure: contos sarvados instance_reports_measure: informes a subra de àtere delivery: all: Totus @@ -426,10 +450,12 @@ sc: assigned: Moderatzione assignada by_target_domain: Domìniu de su contu signaladu cancel: Annulla + category: Categoria comment: none: Perunu confirm: Cunfirma created_at: Sinnaladu + delete_and_resolve: Cantzella publicatziones forwarded: Torradu a imbiare forwarded_to: Torradu a imbiare a %{domain} mark_as_resolved: Marca comente a isòrvidu @@ -442,12 +468,14 @@ sc: create_and_unresolve: Torra a abèrrere cun una nota delete: Cantzella placeholder: Descrie is atziones chi as pigadu o cale si siat àtera atualizatzione de importu... + title: Notas reopen: Torra a abèrrere s'informe report: 'Informe #%{id}' reported_account: Contu sinnaladu reported_by: Sinnaladu dae resolved: Isòrvidu resolved_msg: Informe isòrvidu. + skip_to_actions: Brinca a is atziones status: Istadu title: Informes unassign: Boga s'assignatzione @@ -455,13 +483,18 @@ sc: updated_at: Atualizadu view_profile: Visualiza profilu roles: + assigned_users: + one: "%{count} utente" + other: "%{count} utentes" categories: administration: Amministratzione invites: Invitos moderation: Moderatzione + special: Ispetziale delete: Cantzella privileges: administrator: Amministratzione + invite_users: Invita gente rules: add_new: Agiunghe règula delete: Cantzella @@ -481,7 +514,8 @@ sc: discovery: follow_recommendations: Cussìgios de sighidura profile_directory: Diretòriu de profilos - public_timelines: Lìnias de tempos pùblicas + public_timelines: Lìnias de tempus pùblicas + publish_statistics: Pùblica istatìsticas title: Iscoberta trends: Tendèntzias domain_blocks: @@ -495,19 +529,32 @@ sc: approved: Aprovatzione rechesta pro si registrare none: Nemos si podet registrare open: Chie si siat si podet registrare + title: Cunfiguratziones de su serbidore site_uploads: delete: Cantzella s'archìviu carrigadu destroyed_msg: Càrriga de su situ cantzellada. software_updates: documentation_link: Àteras informatziones + title: Atualizatziones a disponimentu + type: Casta + version: Versione statuses: + account: Autore application: Aplicatzione back_to_account: Torra a sa pàgina de su contu deleted: Cantzelladu + favourites: Preferidos + language: Idioma media: title: Elementos multimediales + metadata: Metadatos no_status_selected: Perunu istadu est istadu mudadu dae chi non nd'as seletzionadu + open: Aberi sa publicatzione + original_status: Publicatzione originale + status_changed: Publicatzione modificada title: Istados de su contu + trending: Populares + visibility: Visibilidade with_media: Cun elementos multimediales strikes: actions: @@ -515,7 +562,7 @@ sc: suspend: "%{name} at suspèndidu su contu de %{target}" system_checks: database_schema_check: - message_html: Ddoe at tràmudas de base de datos in suspesu. Pone·ddas in esecutzione pro ti assegurare chi s'aplicatzione funtzionet comente si tocat + message_html: Ddoe at tràmudas de bases de datos in suspesu. Pone·ddas in esecutzione pro ti assegurare chi s'aplicatzione funtzionet comente si tocat rules_check: action: Gesti is règulas de su serbidore message_html: No as cunfiguradu peruna règula de su serbidore. @@ -527,6 +574,12 @@ sc: title: Amministratzione trends: pending_review: De revisionare + rejected: Refudadas + statuses: + allow: Permite sa publicatzione + allow_account: Permite a s'autore + disallow: Non permitas sa publicatzione + disallow_account: Non permitas a s'autore tags: title: Etichetas de tendèntzia title: Tendèntzias @@ -541,8 +594,17 @@ sc: disabled: Disativadu enable: Ativa enabled: Ativu + events: Eventos status: Istadu admin_mailer: + new_appeal: + actions: + delete_statuses: cantzellare is publicatziones issoro + mark_statuses_as_sensitive: marcare is publicatziones issoro comente sensìbiles + none: un'avisu + sensitive: marcare su contu issoro comente sensìbile + silence: limitare su contu issoro + suspend: suspèndere su contu issoro new_pending_account: body: Is detàllios de su contu nou sunt a suta. Podes aprovare o refudare custa rechesta. subject: Contu nou de revisionare in %{instance} (%{username}) @@ -551,6 +613,10 @@ sc: body_remote: Una persone de su domìniu %{domain} at sinnaladu %{target} subject: Informe nou pro %{instance} (#%{id}) new_trends: + new_trending_links: + title: Ligòngios populares + new_trending_statuses: + title: Publicatziones populares new_trending_tags: title: Etichetas de tendèntzia aliases: @@ -588,8 +654,11 @@ sc: warning: Dae cara a custos datos. Non ddos cumpartzas mai cun nemos! your_token: S'identificadore tuo de atzessu auth: + apply_for_account: Pedi unu contu confirmations: + clicking_this_link: incarchende custu ligòngiu login_link: intra + welcome_title: Ti donamus su benebènnidu, %{name}! delete_account: Cantzella su contu delete_account_html: Si boles cantzellare su contu, ddu podes fàghere inoghe. T'amus a dimandare una cunfirmatzione. description: @@ -601,21 +670,32 @@ sc: invalid_reset_password_token: Su còdighe de autorizatzione pro resetare sa crae no est vàlidu o est iscadidu. Dimanda·nde un'àteru. link_to_otp: Inserta unu còdighe a duas fases dae su telèfono tuo o unu còdighe de recùperu link_to_webauth: Imprea su dispositivu tuo de crae de seguresa + log_in_with: Intra cun login: Intra logout: Essi migrate_account: Moe a unu contu diferente migrate_account_html: Si boles torrare a indiritzare custu contu a un'àteru, ddu as a pòdere fàghere inoghe. or_log_in_with: O intra cun + progress: + confirm: Cunfirma s'indiritzu de posta eletrònica + details: Is detàllios tuos + review: Sa revisione nostra + rules: Atzeta is règulas providers: cas: CAS saml: SAML register: Registru registration_closed: "%{instance} no atzetat àteras persones" + resend_confirmation: Torra a imbiare su ligòngiu de cunfirmatzione reset_password: Reseta sa crae rules: + accept: Atzeta back: A coa + title_invited: As retzidu un'invitu. security: Seguresa set_new_password: Cunfigura una crae noa + setup: + link_not_received: No as retzidu su ligòngiu? status: account_status: Istadu de su contu confirming: Isetende chi sa posta eletrònica siat cumpletada. @@ -670,11 +750,15 @@ sc: username_unavailable: Su nòmine de utente tuo no at a abarrare a disponimentu disputes: strikes: + status_removed: Sa publicatzione est giai istada cantzellada de su sistema + title: "%{action} de sa data imbeniente: %{date}" title_actions: + delete_statuses: Cantzelladura de publicatziones none: Atentzione domain_validator: invalid_domain: no est unu nòmine de domìniu vàlidu edit_profile: + basic_information: Informatzione bàsica other: Àteru errors: '400': Sa dimanda chi as imbiadu non fiat vàlida o non fiat curreta. @@ -720,15 +804,36 @@ sc: public: Lìnias de tempos pùblicas thread: Arresonadas edit: + add_keyword: Agiunghe paràulas crae + keywords: Paràulas crae + statuses: Publicatziones individuales title: Modìfica filtru errors: invalid_context: Cuntestu mancante o non vàlidu index: delete: Cantzella empty: Non tenes perunu filtru. + expires_in: Iscadit in %{distance} + expires_on: Iscadit su %{date} + keywords: + one: "%{count} paràula crae" + other: "%{count} paràulas crae" + statuses: + one: "%{count} publicatzione" + other: "%{count} publicatziones" + statuses_long: + one: "%{count} publicatzione individuale cuada" + other: "%{count} publicatziones individuales cuadas" title: Filtros new: + save: Sarva filtru nou title: Agiunghe unu filtru nou + statuses: + back_to_filter: Torra a su filtru + batch: + remove: Boga dae su filtru + index: + title: Publicatziones filtradas generic: all: Totus cancel: Annulla @@ -736,6 +841,7 @@ sc: confirm: Cunfirma copy: Còpia delete: Cantzella + deselect: Boga sa seletzione none: Perunu order_by: Òrdina pro save_changes: Sarva is modìficas @@ -745,7 +851,12 @@ sc: other: Calicuna cosa ancora no est andende. Bide is %{count} faddinas in bàsciu imports: errors: + empty: Archìviu CSV bòidu over_rows_processing_limit: cuntenet prus de %{count} filas + too_large: S'archìviu est tropu mannu + failures: Faddinas + imported: Importadu + mismatched_types_warning: Forsis as seletzionadu unu tipu chi no est curretu pro s'importatzione. modes: merge: Uni merge_long: Mantene is registros chi esistint e agiunghe·nde àteros @@ -836,8 +947,8 @@ sc: copy_account_note_text: 'Custa persone s''est tramudada dae %{acct}, custas sunt is notas antepostas tuas chi ddi pertocant:' notification_mailer: favourite: - body: "%{name} at marcadu comente a preferidu s'istadu tuo:" - subject: "%{name} at marcadu comente a preferidu s'istadu tuo" + body: "%{name} at marcadu comente preferida sa publicatzione tua:" + subject: "%{name} at marcadu comente preferida sa publicatzione tua" title: Preferidu nou follow: body: "%{name} t'est sighende!" @@ -904,7 +1015,10 @@ sc: posting_defaults: Valores predefinidos de publicatzione public_timelines: Lìnias de tempos pùblicas privacy: + privacy: Riservadesa search: Chirca + privacy_policy: + title: Polìtica de riservadesa reactions: errors: limit_reached: Lìmite de reatziones diferentes cròmpidu @@ -928,8 +1042,13 @@ sc: status: Istadu de su contu remote_follow: missing_resource: Impossìbile agatare sa rechesta de indiritzamentu URL pro su contu tuo + rss: + content_warning: 'Avisu de cuntenutu:' + descriptions: + account: Publicatziones pùblicas dae @%{acct} + tag: 'Publicatziones pùblicas etichetadas cun #%{hashtag}' scheduled_statuses: - over_daily_limit: As superadu su lìmite de %{limit} tuts programmados pro cudda die + over_daily_limit: As superadu su lìmite de %{limit} publicatziones programmadas pro cudda die over_total_limit: As superadu su lìmite de %{limit} tuts programmados too_soon: Sa data programmada depet èssere benidora sessions: @@ -937,11 +1056,13 @@ sc: browser: Navigadore browsers: alipay: Alipay + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron firefox: Firefox generic: Navigadore disconnotu + huawei_browser: Navigadore Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navigadore Nokia S40 Ovi @@ -950,19 +1071,25 @@ sc: phantom_js: PhantomJS qq: QQ Browser safari: Safari + uc_browser: Navigadore UC + unknown_browser: Navigadore disconnotu weibo: Weibo current_session: Sessione atuale + date: Data description: "%{browser} de %{platform}" explanation: Custos sunt is navigadores web de is chi ses intradu in su contu tuo de Mastodon. ip: IP platforms: adobe_air: Adobe Air android: Android + blackberry: BlackBerry chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS + unknown_platform: Prataforma disconnota windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -984,8 +1111,9 @@ sc: import: Importatzione import_and_export: Importatzione e esportatzione migrate: Tràmuda de contu + notifications: Notìficas tràmite posta eletrònica preferences: Preferèntzias - profile: Profilu + profile: Profilu pùblicu relationships: Gente chi sighis e sighiduras two_factor_authentication: Autenticatzione de duos fatores webauthn_authentication: Craes de seguresa @@ -1034,6 +1162,7 @@ sc: unlisted: Esclùidu de sa lista unlisted_long: Podet èssere bidu dae chie si siat, però non podet èssere ammustradu in lìnias de tempus pùblicas statuses_cleanup: + exceptions: Etzetziones min_age: '1209600': 2 chidas '15778476': 6 meses @@ -1055,6 +1184,8 @@ sc: formats: default: "%d %b %Y, %H:%M" month: "%b %Y" + time: "%H:%M" + with_time_zone: "%d %b, %Y, %H:%M %Z" two_factor_authentication: add: Agiunghe disable: Disativa 2FA @@ -1071,23 +1202,47 @@ sc: recovery_instructions_html: Si una die as a pèrdere s'atzessu a su telèfonu tuo, as a pòdere impreare unu de is còdighes de recùperu inoghe in suta pro recuperare s'atzessu a su contu tuo. Cunserva is còdighes in manera segura. Pro esèmpiu, ddos dias pòdere imprentare e archiviare in paris a àteros documentos de importu. webauthn: Craes de seguresa user_mailer: + appeal_approved: + action: Cunfiguratziones de su contu backup_ready: subject: S'archìviu tuo est prontu pro èssere iscarrigadu title: Collida dae s'archìviu + suspicious_sign_in: + change_password: muda sa crae + details: 'Custos sunt is detàllios de s''identificatzione:' warning: + categories: + spam: Àliga reason: 'Resone:' + statuses: 'Publicatziones tzitadas:' subject: disable: Su contu tuo %{acct} est istadu cungeladu none: Avisu pro %{acct} silence: Su contu tuo %{acct} est istadu limitadu suspend: Su contu tuo %{acct} est istadu suspèndidu title: + delete_statuses: Publicatziones cantzelladas disable: Contu congeladu + mark_statuses_as_sensitive: Publicatziones marcadas comente sensìbiles none: Atentzione + sensitive: Contu marcadu comente sensìbile silence: Contu limitadu suspend: Contu suspèndidu welcome: + apps_ios_action: Iscàrriga·dda dae sa butega de aplicatziones + apps_step: Iscàrriga is aplicatziones ufitziales nostras. + apps_title: Aplicatziones de Mastodon + edit_profile_action: Personaliza + edit_profile_title: Personaliza su profilu tuo explanation: Inoghe ddoe at una paja de impòsitos pro cumintzare + feature_action: Àteras informatziones + follow_action: Sighi + follow_title: Personaliza s'ischermu printzipale + post_action: Iscrie + post_title: Pùblica pro sa primu borta + share_action: Cumpartzi + share_title: Cumpartzi su profilu tuo de Mastodon + sign_in_action: Intra subject: Ti donamus su benebènnidu a Mastodon title: Ti donamus su benebènnidu, %{name}! users: @@ -1101,13 +1256,13 @@ sc: webauthn_credentials: add: Agiunghe una crae de seguresa noa create: - error: Ddoe at àpidu unu problema cun s'agiunta de sa crae de seguresa tua. Torra a proare. + error: Ddoe est istadu unu problema cun s'agiunta de sa crae de seguresa tua. Torra a proare. success: Sa crae de seguresa tua est istada agiunta. delete: Cantzella delete_confirmation: Seguru chi boles cantzellare custa crae de seguresa? description_html: Si permites s'autenticatzione cun crae de seguresa, as a tènnere bisòngiu de impreare una de is craes de seguresa tuas pro ti identificare. destroy: - error: Ddoe at àpidu unu problema cun sa cantzelladura de sa crae de seguresa tua. Torra a proare. + error: Ddoe est istadu unu problema cun sa cantzelladura de sa crae de seguresa tua. Torra a proare. success: Sa crae de seguresa tua est istada cantzellada. invalid_credential: Crae de seguresa non vàlida nickname_hint: Inserta su nomìngiu de sa crae de seguresa tua noa diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index de099a21be..a59368ca4e 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -9,25 +9,25 @@ fi: indexable: Julkiset julkaisusi voivat näkyä hakutuloksissa Mastodonissa. Ihmiset, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta. note: 'Voit @mainita muita käyttäjiä tai #aihetunnisteita.' show_collections: Käyttäjät voivat selata seurattujasi ja seuraajiasi. Käyttäjät, joita seuraat, näkevät joka tapauksessa, että seuraat heitä. - unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntää. Poista valinta, jos haluat tarkistaa ja hyväksyä tai hylätä vastaanottamasi seuraamispyynnöt. + unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntääsi. Poista valinta, jos haluat tarkistaa sekä hyväksyä tai hylätä vastaanottamasi seuraamispyynnöt. account_alias: - acct: Määrittele sen tilin käyttäjänimi@verkkotunnus, josta haluat siirtyä + acct: Määrittele sen tilin käyttäjänimi@verkkotunnus, josta haluat muuttaa account_migration: - acct: Määrittele sen tilin käyttäjänimi@verkkotunnus, johon haluat siirtyä + acct: Määrittele sen tilin käyttäjänimi@verkkotunnus, jonne haluat muuttaa account_warning_preset: text: Voit käyttää julkaisun syntaksia, kuten URL-osoitteita, aihetunnisteita ja mainintoja title: Valinnainen. Ei näy vastaanottajalle admin_account_action: - include_statuses: Käyttäjä näkee, mitkä julkaisut johtivat valvontatoimeen tai varoitukseen + include_statuses: Käyttäjä näkee, mitkä julkaisut johtivat moderointitoimeen tai -varoitukseen send_email_notification: Käyttäjä saa selvityksen siitä, mitä hänen tililleen tapahtui text_html: Valinnainen. Voit käyttää julkaisun syntaksia. Voit lisätä varoitusasetuksia säästääksesi aikaa type_html: Valitse mitä teet käyttäjälle %{acct} types: disable: Estä käyttäjää käyttämästä tiliään, mutta älä poista tai piilota sen sisältöä. - none: Käytä tätä lähettääksesi varoituksen käyttäjälle käynnistämättä mitään muita toimintoja. + none: Käytä tätä lähettääksesi varoitus käyttäjälle käynnistämättä mitään muita toimia. sensitive: Pakota kaikki tämän käyttäjän mediatiedostot arkaluonteisiksi. - silence: Estä käyttäjää lähettämästä viestejä julkisesti, piilota hänen viestinsä ja ilmoituksensa ihmisiltä, jotka eivät seuraa häntä. Sulkee kaikki tämän tilin raportit. - suspend: Estä kaikki vuorovaikutus tältä -tai tälle tilille ja poista sen kaikki sisältö. Päätös voidaan peruuttaa 30 päivän aikana. Sulkee kaikki raportit tätä tiliä vasten. + silence: Estä käyttäjää lähettämästä julkaisuja, joiden näkyvyys on julkinen, sekä piilota hänen julkaisunsa ja häneen liittyvät ilmoitukset niiltä, jotka eivät seuraa häntä. Sulkee kaikki tiliin kohdistuvat raportit. + suspend: Estä kaikki vuorovaikutus tältä tililtä ja tälle tilille sekä poista kaikki sen sisältö. Peruttavissa 30 päivän ajan. Sulkee kaikki tiliin kohdistuvat raportit. warning_preset_id: Valinnainen. Voit silti lisätä mukautetun tekstin esiasetuksen loppuun announcement: all_day: Kun valittu, vain valittu aikaväli näytetään @@ -40,7 +40,7 @@ fi: defaults: autofollow: Henkilöt, jotka rekisteröityvät kutsun kautta, seuraavat sinua automaattisesti avatar: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px - bot: Tämä tili suorittaa enimmäkseen automaattisia toimintoja eikä sitä ehkä valvota + bot: Ilmaise muille, että tili suorittaa enimmäkseen automaattisia toimia eikä sitä valvota context: Ainakin yksi konteksti, jossa suodattimen pitäisi olla voimassa current_password: Turvallisuussyistä kirjoita nykyisen tilin salasana current_username: Vahvista kirjoittamalla nykyisen tilin käyttäjänimi @@ -52,7 +52,7 @@ fi: locale: Käyttöliittymän, sähköpostien ja puskuilmoitusten kieli password: Käytä vähintään 8 merkkiä phrase: Täsmää riippumatta tekstin aakkoslajista tai julkaisun sisältövaroituksesta - scopes: Mihin sovellusliittymiin sovellus pääsee käsiksi. Jos valitset ylätason laajuuden, sinun ei tarvitse valita yksittäisiä. + scopes: Mihin ohjelmointirajapintoihin sovellus pääsee käsiksi. Jos valitset ylätason 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_sensitive: Arkaluonteinen media piilotetaan oletusarvoisesti, ja se voidaan näyttää yhdellä napsautuksella @@ -64,10 +64,10 @@ fi: username: Voit käyttää kirjaimia, numeroita ja alaviivoja whole_word: Kun avainsana tai -fraasi on täysin aakkosnumeerinen, suodatin aktivoituu vain sen täysvastineille domain_allow: - domain: Tämä verkkotunnus voi noutaa tietoja tältä palvelimelta ja sieltä saapuvat tiedot käsitellään ja tallennetaan + domain: Tämä verkkotunnus voi noutaa tietoja tältä palvelimelta, ja sieltä saapuvat tiedot käsitellään ja tallennetaan email_domain_block: domain: Tämä voi olla verkkotunnus, joka näkyy sähköpostiosoitteessa tai sen käyttämässä MX-tietueessa. Ne tarkistetaan rekisteröitymisen yhteydessä. - with_dns_records: Annetun verkkotunnuksen DNS-tietueet yritetään ratkaista ja tulokset myös estetään + with_dns_records: Annetun verkkotunnuksen DNS-tietueet yritetään selvittää ja myös tulokset estetään featured_tag: name: 'Tässä muutamia hiljattain käyttämiäsi aihetunnisteita:' filters: @@ -78,29 +78,29 @@ fi: form_admin_settings: activity_api_enabled: Paikallisesti julkaistujen julkaisujen, aktiivisten käyttäjien ja rekisteröitymisten viikoittainen määrä app_icon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen mobiililaitteiden sovelluskuvakkeen omalla kuvakkeella. - backups_retention_period: Käyttäjillä on mahdollisuus arkistoida julkaisujaan myöhemmin ladattaviksi. Kun arvo on positiivinen, nämä arkistot poistuvat automaattisesti, kun määritetty määrä päiviä on kulunut. - bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seuraamissuosituslistojen alkuun. + backups_retention_period: Käyttäjillä on mahdollisuus arkistoida julkaisujaan myöhemmin ladattaviksi. Kun kentän arvo on positiivinen, nämä arkistot poistuvat automaattisesti, kun määritetty määrä päiviä on kulunut. + bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seuraamissuositusten alkuun. closed_registrations_message: Näkyy, kun rekisteröityminen on suljettu - content_cache_retention_period: Kaikki muiden palvelinten julkaisut (mukaan lukien tehostukset ja vastaukset) poistuvat, kun määritetty määrä päiviä on kulunut, ottamatta huomioon paikallisen käyttäjän vuorovaikutusta näiden julkaisujen kanssa. Sisältää julkaisut, jotka paikallinen käyttäjä on merkinnyt kirjanmerkiksi tai suosikiksi. Myös yksityiset maininnat eri palvelinten käyttäjien välillä menetetään, eikä niitä voi palauttaa. Tämä asetus on tarkoitettu käytettäväksi erityistapauksissa ja rikkoo monia käyttäjien odotuksia, kun sitä käytetään yleistarkoituksiin. - custom_css: Voit käyttää mukautettuja tyylejä Mastodonin verkkoversiossa. + content_cache_retention_period: Kaikki muiden palvelinten julkaisut (mukaan lukien tehostukset ja vastaukset) poistuvat, kun määritetty määrä päiviä on kulunut, lukuun ottamatta paikallisen käyttäjän vuorovaikutusta näiden julkaisujen kanssa. Tämä sisältää julkaisut, jotka paikallinen käyttäjä on merkinnyt kirjanmerkiksi tai suosikiksi. Myös yksityismaininnat eri palvelinten käyttäjien välillä menetetään, eikä niitä voi palauttaa. Tämä asetus on tarkoitettu käytettäväksi erityistapauksissa ja rikkoo monia käyttäjien odotuksia, kun sitä sovelletaan yleiskäyttöön. + custom_css: Voit käyttää mukautettuja tyylejä Mastodonin selainversiossa. favicon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen Mastodonin sivustokuvakkeen (favicon) haluamallasi kuvakkeella. mascot: Ohittaa kuvituksen edistyneessä selainkäyttöliittymässä. - media_cache_retention_period: Käyttäjien tekemien julkaisujen mediatiedostot ovat välimuistissa palvelimellasi. Kun arvo on positiivinen, media poistuu, kun määritetty määrä päiviä on kulunut. Jos mediaa pyydetään sen poistamisen jälkeen, se ladataan uudelleen, jos lähdesisältö on vielä saatavilla. Koska linkkien esikatselun kyselyitä kolmansien osapuolien sivustoille on rajoitettu, on suositeltavaa asettaa tämä arvo vähintään 14 päivään, tai linkkien kortteja ei päivitetä pyynnöstä ennen tätä ajankohtaa. - peers_api_enabled: Luettelo verkkotunnuksista, jotka tämä palvelin on kohdannut fediversumissa. Se ei kerro, oletko liitossa tietyn palvelimen kanssa, vaan että palvelimesi on ylipäätään tietoinen siitä. Tätä tietoa käytetään palveluissa, jotka keräävät tilastoja federoinnista yleisellä tasolla. - profile_directory: Profiilihakemisto lueteloi kaikki käyttäjät, jotka ovat ilmoittaneet olevansa löydettävissä. + media_cache_retention_period: Etäkäyttäjien tekemien julkaisujen mediatiedostot ovat välimuistissa palvelimellasi. Kun kentän arvo on positiivinen, media poistuu, kun määritetty määrä päiviä on kulunut. Jos mediaa pyydetään sen poistamisen jälkeen, se ladataan uudelleen, jos lähdesisältö on vielä saatavilla. Koska linkkien esikatselun kyselyitä kolmansien osapuolien sivustoille on rajoitettu, on suositeltavaa asettaa tämä arvo vähintään 14 päivään, tai linkkien kortteja ei päivitetä pyynnöstä ennen tätä ajankohtaa. + peers_api_enabled: Luettelo verkkotunnuksista, jotka tämä palvelin on kohdannut fediversumissa. Se ei kerro, federoitko tietyn palvelimen kanssa, vaan että palvelimesi on ylipäätään tietoinen siitä. Tätä tietoa käytetään palveluissa, jotka keräävät tilastoja federoinnista yleisellä tasolla. + profile_directory: Profiilihakemisto luetteloi kaikki käyttäjät, jotka ovat valinneet olla löydettävissä. require_invite_text: Kun rekisteröityminen vaatii manuaalisen hyväksynnän, tee ”Miksi haluat liittyä?” -tekstikentästä pakollinen vapaaehtoisen sijaan - site_contact_email: Kuinka ihmiset voivat tavoittaa sinut oikeudellisissa tai tukikysymyksissä. + site_contact_email: Miten ihmiset voivat tavoittaa sinut oikeus- tai tukikysymyksissä. site_contact_username: Miten ihmiset voivat tavoittaa sinut Mastodonissa. site_extended_description: Kaikki lisätiedot, jotka voivat olla hyödyllisiä kävijöille ja käyttäjille. Voidaan jäsentää Markdown-syntaksilla. - site_short_description: Lyhyt kuvaus auttaa yksilöimään palvelimesi. Kuka sitä johtaa, kenelle se on tarkoitettu? + site_short_description: Lyhyt kuvaus, joka auttaa yksilöimään palvelimesi. Kuka sitä johtaa, ja keille se on tarkoitettu? site_terms: Käytä omaa tietosuojakäytäntöä tai jätä tyhjäksi, jos haluat käyttää oletusta. Voidaan jäsentää Markdown-syntaksilla. - site_title: Kuinka ihmiset voivat viitata palvelimeen sen verkkotunnuksen lisäksi. - status_page_url: URL-osoite sivulle, jonka kautta tämän palvelimen tila voidaan ongelmatilanteissa tarkastaa + site_title: Miten ihmiset voivat viitata palvelimeesi sen verkkotunnuksen lisäksi. + status_page_url: URL-osoite sivulle, josta tämän palvelimen tilan voi ongelmatilanteissa tarkistaa theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät. - thumbnail: Noin 2:1 kuva näytetään palvelimen tietojen rinnalla. + thumbnail: Noin 2:1 kuva näkyy palvelimen tietojen ohessa. timeline_preview: Uloskirjautuneet vierailijat voivat selata uusimpia julkisia julkaisuja, jotka ovat saatavilla palvelimella. - trendable_by_default: Ohita suositun sisällön manuaalinen tarkistus. Yksittäisiä kohteita voidaan edelleen poistaa jälkikäteen. - trends: Trendit osoittavat, mitkä julkaisut, aihetunnisteet ja uutiset ovat saamassa vetoa palvelimellasi. + trendable_by_default: Ohita suositun sisällön manuaalinen tarkastus. Yksittäisiä kohteita voidaan edelleen poistaa jälkikäteen. + trends: Trendit osoittavat, mitkä julkaisut, aihetunnisteet ja uutiset keräävät huomiota palvelimellasi. trends_as_landing_page: Näytä vierailijoille ja uloskirjautuneille käyttäjille suosittua sisältöä palvelimen kuvauksen sijaan. Edellyttää, että trendit on otettu käyttöön. form_challenge: current_password: Olet menossa suojatulle alueelle @@ -110,7 +110,7 @@ fi: text: Tämä auttaa meitä arvioimaan hakemustasi ip_block: comment: Valinnainen. Muista miksi lisäsit tämän säännön. - expires_in: IP-osoitteet ovat rajallinen resurssi – joskus niitä jaetaan, ja ne vaihtavat usein omistajaa. Niinpä epämääräisiä IP-lohkoja ei suositella. + expires_in: IP-osoitteet ovat rajallinen resurssi – joskus niitä jaetaan eteenpäin, ja ne vaihtavat usein omistajaa. Niinpä epämääräisiä IP-lohkoja ei suositella. ip: Kirjoita IPv4- tai IPv6-osoite. Voit estää kokonaisia IP-osoitealueita CIDR-syntaksin avulla. Varo lukitsemasta itseäsi ulos! severities: no_access: Estä pääsy kaikkiin resursseihin @@ -129,14 +129,14 @@ fi: tag: name: Voit esimerkiksi vaihtaa suur- ja pienaakkosten kesken helppolukuistaaksesi tekstiäsi user: - chosen_languages: Jos valitset kieliä oheisesta listauksesta, vain niidenkieliset julkaisut näkyvät julkisilla aikajanoilla sinulle + chosen_languages: Jos valitset kieliä oheisesta luettelosta, vain niidenkieliset julkaisut näkyvät sinulle julkisilla aikajanoilla role: Rooli vaikuttaa käyttäjän käyttöoikeuksiin user_role: color: Väri, jota käytetään roolille kaikkialla käyttöliittymässä, RGB-heksadesimaalimuodossa highlighted: Tämä tekee roolista julkisesti näkyvän name: Roolin julkinen nimi, jos rooli on asetettu näytettäväksi merkkinä permissions_as_keys: Käyttäjillä, joilla on tämä rooli, on käyttöoikeus... - position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimintoja voidaan suorittaa vain rooleille, joiden prioriteetti on pienempi + position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimia voidaan suorittaa vain rooleilla, joiden prioriteetti on pienempi webhook: events: Valitse lähetettävät tapahtumat template: Luo oma JSON-hyötykuorma käyttäen muuttujien interpolointia. Jätä kenttä tyhjäksi käyttääksesi vakio-JSON-kuormaa. @@ -234,7 +234,7 @@ fi: username_or_email: Käyttäjänimi tai sähköpostiosoite whole_word: Koko sana email_domain_block: - with_dns_records: Sisällytä toimialueen MX-tietueet ja IP-osoitteet + with_dns_records: Sisällytä verkkotunnuksen MX-tietueet ja IP-osoitteet featured_tag: name: Aihetunniste filters: @@ -250,15 +250,15 @@ fi: content_cache_retention_period: Etäsisällön säilytysaika custom_css: Mukautettu CSS favicon: Suosikkikuvake - mascot: Mukautettu maskotti (vanhentunut ominaisuus) - media_cache_retention_period: Mediasisältövälimuistin säilytysaika + mascot: Mukautettu maskotti (vanhentunut) + media_cache_retention_period: Mediasisällön välimuistin säilytysaika peers_api_enabled: Julkaise löydettyjen palvelinten luettelo ohjelmointirajapinnassa profile_directory: Ota profiilihakemisto käyttöön registrations_mode: Kuka voi rekisteröityä require_invite_text: Vaadi syy liittyä show_domain_blocks: Näytä verkkotunnusten estot show_domain_blocks_rationale: Näytä, miksi verkkotunnukset on estetty - site_contact_email: Ota yhteys sähköpostitse + site_contact_email: Yhteyshenkilön sähköpostiosoite site_contact_username: Yhteyshenkilön käyttäjänimi site_extended_description: Laajennettu kuvaus site_short_description: Palvelimen kuvaus @@ -268,9 +268,9 @@ fi: theme: Oletusteema thumbnail: Palvelimen pienoiskuva timeline_preview: Salli todentamaton pääsy julkisille aikajanoille - trendable_by_default: Salli suositun sisällön koonti ilman ennakkotarkastusta + trendable_by_default: Salli trendit ilman ennakkotarkastusta trends: Ota trendit käyttöön - trends_as_landing_page: Käytä suosittua sisältöä aloitussivuna + trends_as_landing_page: Käytä trendejä aloitussivuna interactions: must_be_follower: Estä ilmoitukset käyttäjiltä, jotka eivät seuraa sinua must_be_following: Estä ilmoitukset käyttäjiltä, joita et seuraa @@ -288,22 +288,22 @@ fi: sign_up_requires_approval: Rajoita rekisteröitymisiä severity: Sääntö notification_emails: - appeal: Joku valittaa valvojan päätöksestä + appeal: Joku valittaa moderaattorin päätöksestä digest: Lähetä koosteviestejä sähköpostitse favourite: Joku lisäsi julkaisusi suosikkeihinsa follow: Joku seurasi sinua follow_request: Joku pyysi saada seurata sinua mention: Joku mainitsi sinut - pending_account: Uusi tili tarvitsee tarkistusta + pending_account: Uusi tili tarvitsee tarkistuksen reblog: Joku tehosti julkaisuasi - report: Uusi raportti on lähetetty + report: Uusi raportti lähetettiin software_updates: all: Ilmoita kaikista päivityksistä critical: Ilmoita vain kriittisistä päivityksistä label: Uusi Mastodon-versio on saatavilla none: Älä koskaan ilmoita päivityksistä (ei suositeltu) patch: Ilmoita virhekorjauspäivityksistä - trending_tag: Uusi trendi vaatii tarkistusta + trending_tag: Uusi trendi vaatii tarkastuksen rule: hint: Lisätietoja text: Sääntö @@ -337,5 +337,5 @@ fi: text: vaadittu tieto title: sessions: - webauthn: Käytä yhtä turva-avaimistasi kirjautuaksesi sisään + webauthn: Käytä yhtä suojausavaimistasi kirjautuaksesi sisään 'yes': Kyllä diff --git a/config/locales/simple_form.sc.yml b/config/locales/simple_form.sc.yml index 792619e6c7..84ed5c4115 100644 --- a/config/locales/simple_form.sc.yml +++ b/config/locales/simple_form.sc.yml @@ -52,7 +52,7 @@ sc: email_domain_block: with_dns_records: S'at a fàghere unu tentativu de risòlvere is registros DNS de su domìniu e fintzas is risultados ant a èssere blocados form_admin_settings: - activity_api_enabled: Nùmeru de tuts publicados in locale, utentes ativos e registros noos in perìodos chidajolos + activity_api_enabled: Nùmeru de publicatziones in locale, utentes ativos e registros noos in perìodos chidajolos form_challenge: current_password: Ses intrende in un'àrea segura imports: @@ -191,12 +191,12 @@ sc: severity: Règula notification_emails: digest: Imbia lìteras eletrònicas de resumu - favourite: Una persone at postu s'istadu tuo in is preferidos suos + favourite: Una persone at postu sa publicatzione tua in is preferidos follow: Una persone t'at incumentzadu a sighire follow_request: Una persone at pedidu de ti sighire mention: Una persone t'at mentovadu pending_account: Unu contu nou tenet bisòngiu de una revisione - reblog: Una persone at cumpartzidu s'istadu tuo + reblog: Una persone at potentziadu sa publicatzione tua report: Imbiu de un'informe nou rule: text: Règula From 693d9b03ed37f5d74cae66dd8bfece4447cb973f Mon Sep 17 00:00:00 2001 From: Emelia Smith Date: Fri, 26 Jul 2024 10:53:10 +0200 Subject: [PATCH 004/306] Enable OAuth PKCE Extension (#31129) --- app/lib/oauth_pre_authorization_extension.rb | 13 ++ app/presenters/oauth_metadata_presenter.rb | 5 + app/serializers/oauth_metadata_serializer.rb | 1 + app/views/oauth/authorizations/new.html.haml | 4 + config/application.rb | 1 + config/locales/doorkeeper.en.yml | 1 + db/migrate/20240724181224_enable_pkce.rb | 8 ++ db/schema.rb | 4 +- .../oauth/authorizations_controller_spec.rb | 130 +++++++++++++++++- .../well_known/oauth_metadata_spec.rb | 3 + 10 files changed, 164 insertions(+), 6 deletions(-) create mode 100644 app/lib/oauth_pre_authorization_extension.rb create mode 100644 db/migrate/20240724181224_enable_pkce.rb diff --git a/app/lib/oauth_pre_authorization_extension.rb b/app/lib/oauth_pre_authorization_extension.rb new file mode 100644 index 0000000000..1885e0823d --- /dev/null +++ b/app/lib/oauth_pre_authorization_extension.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module OauthPreAuthorizationExtension + extend ActiveSupport::Concern + + included do + validate :code_challenge_method_s256, error: Doorkeeper::Errors::InvalidCodeChallengeMethod + end + + def validate_code_challenge_method_s256 + code_challenge.blank? || code_challenge_method == 'S256' + end +end diff --git a/app/presenters/oauth_metadata_presenter.rb b/app/presenters/oauth_metadata_presenter.rb index 546503bfcc..1e4d25165c 100644 --- a/app/presenters/oauth_metadata_presenter.rb +++ b/app/presenters/oauth_metadata_presenter.rb @@ -7,6 +7,7 @@ class OauthMetadataPresenter < ActiveModelSerializers::Model :revocation_endpoint, :scopes_supported, :response_types_supported, :response_modes_supported, :grant_types_supported, :token_endpoint_auth_methods_supported, + :code_challenge_methods_supported, :service_documentation, :app_registration_endpoint def issuer @@ -59,6 +60,10 @@ class OauthMetadataPresenter < ActiveModelSerializers::Model %w(client_secret_basic client_secret_post) end + def code_challenge_methods_supported + %w(S256) + end + private def doorkeeper diff --git a/app/serializers/oauth_metadata_serializer.rb b/app/serializers/oauth_metadata_serializer.rb index 5f3dc7b87e..2afb4208fb 100644 --- a/app/serializers/oauth_metadata_serializer.rb +++ b/app/serializers/oauth_metadata_serializer.rb @@ -5,5 +5,6 @@ class OauthMetadataSerializer < ActiveModel::Serializer :revocation_endpoint, :scopes_supported, :response_types_supported, :response_modes_supported, :grant_types_supported, :token_endpoint_auth_methods_supported, + :code_challenge_methods_supported, :service_documentation, :app_registration_endpoint end diff --git a/app/views/oauth/authorizations/new.html.haml b/app/views/oauth/authorizations/new.html.haml index c50c224cce..d4563b2f01 100644 --- a/app/views/oauth/authorizations/new.html.haml +++ b/app/views/oauth/authorizations/new.html.haml @@ -26,6 +26,8 @@ value: @pre_auth.client.uid = form.hidden_field :redirect_uri, value: @pre_auth.redirect_uri + = form.hidden_field :code_challenge, value: @pre_auth.code_challenge + = form.hidden_field :code_challenge_method, value: @pre_auth.code_challenge_method = form.hidden_field :state, value: @pre_auth.state = form.hidden_field :response_type, @@ -40,6 +42,8 @@ value: @pre_auth.client.uid = form.hidden_field :redirect_uri, value: @pre_auth.redirect_uri + = form.hidden_field :code_challenge, value: @pre_auth.code_challenge + = form.hidden_field :code_challenge_method, value: @pre_auth.code_challenge_method = form.hidden_field :state, value: @pre_auth.state = form.hidden_field :response_type, diff --git a/config/application.rb b/config/application.rb index 5aca74fd1c..3c62a49228 100644 --- a/config/application.rb +++ b/config/application.rb @@ -118,6 +118,7 @@ module Mastodon Doorkeeper::Application.include ApplicationExtension Doorkeeper::AccessGrant.include AccessGrantExtension Doorkeeper::AccessToken.include AccessTokenExtension + Doorkeeper::OAuth::PreAuthorization.include OauthPreAuthorizationExtension Devise::FailureApp.include AbstractController::Callbacks Devise::FailureApp.include Localized end diff --git a/config/locales/doorkeeper.en.yml b/config/locales/doorkeeper.en.yml index b623cc7135..e28f6a7966 100644 --- a/config/locales/doorkeeper.en.yml +++ b/config/locales/doorkeeper.en.yml @@ -83,6 +83,7 @@ en: access_denied: The resource owner or authorization server denied the request. credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured. invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method. + invalid_code_challenge_method: The code challenge method must be S256, plain is unsupported. invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. invalid_redirect_uri: The redirect uri included is not valid. invalid_request: diff --git a/db/migrate/20240724181224_enable_pkce.rb b/db/migrate/20240724181224_enable_pkce.rb new file mode 100644 index 0000000000..4816f58f07 --- /dev/null +++ b/db/migrate/20240724181224_enable_pkce.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +class EnablePkce < ActiveRecord::Migration[7.1] + def change + add_column :oauth_access_grants, :code_challenge, :string, null: true + add_column :oauth_access_grants, :code_challenge_method, :string, null: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 453f1f7b89..d4796079ca 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2024_07_13_171909) do +ActiveRecord::Schema[7.1].define(version: 2024_07_24_181224) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -739,6 +739,8 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_13_171909) do t.string "scopes" t.bigint "application_id", null: false t.bigint "resource_owner_id", null: false + t.string "code_challenge" + t.string "code_challenge_method" t.index ["resource_owner_id"], name: "index_oauth_access_grants_on_resource_owner_id" t.index ["token"], name: "index_oauth_access_grants_on_token", unique: true end diff --git a/spec/controllers/oauth/authorizations_controller_spec.rb b/spec/controllers/oauth/authorizations_controller_spec.rb index 9b3ae251e6..3908ef8db0 100644 --- a/spec/controllers/oauth/authorizations_controller_spec.rb +++ b/spec/controllers/oauth/authorizations_controller_spec.rb @@ -12,6 +12,26 @@ RSpec.describe Oauth::AuthorizationsController do get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read' } end + def body + Nokogiri::Slop(response.body) + end + + def error_message + body.at_css('.form-container .flash-message').text + end + + shared_examples 'shows authorize and deny buttons' do + it 'gives options to authorize and deny' do + subject + + authorize_button = body.at_css('.oauth-prompt button[type="submit"]:not(.negative)') + deny_button = body.at_css('.oauth-prompt button[type="submit"].negative') + + expect(authorize_button).to be_present + expect(deny_button).to be_present + end + end + shared_examples 'stores location for user' do it 'stores location for user' do subject @@ -36,10 +56,7 @@ RSpec.describe Oauth::AuthorizationsController do expect(response.headers['Cache-Control']).to include('private, no-store') end - it 'gives options to authorize and deny' do - subject - expect(response.body).to match(/Authorize/) - end + include_examples 'shows authorize and deny buttons' include_examples 'stores location for user' @@ -61,7 +78,110 @@ RSpec.describe Oauth::AuthorizationsController do it 'does not redirect to callback with force_login=true' do get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read', force_login: 'true' } - expect(response.body).to match(/Authorize/) + + authorize_button = body.at_css('.oauth-prompt button[type="submit"]:not(.negative)') + deny_button = body.at_css('.oauth-prompt button[type="submit"].negative') + + expect(authorize_button).to be_present + expect(deny_button).to be_present + end + end + + # The tests in this context ensures that requests without PKCE parameters + # still work; In the future we likely want to force usage of PKCE for + # security reasons, as per: + # + # https://www.ietf.org/archive/id/draft-ietf-oauth-security-topics-27.html#section-2.1.1-9 + context 'when not using PKCE' do + subject do + get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read' } + end + + it 'returns http success' do + subject + expect(response).to have_http_status(200) + end + + it 'does not include the PKCE values in the response' do + subject + + code_challenge_input = body.at_css('.oauth-prompt input[name=code_challenge]') + code_challenge_method_input = body.at_css('.oauth-prompt input[name=code_challenge_method]') + + expect(code_challenge_input).to be_present + expect(code_challenge_method_input).to be_present + + expect(code_challenge_input.attr('value')).to be_nil + expect(code_challenge_method_input.attr('value')).to be_nil + end + + include_examples 'shows authorize and deny buttons' + end + + context 'when using PKCE' do + subject do + get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read', code_challenge_method: pkce_code_challenge_method, code_challenge: pkce_code_challenge } + end + + let(:pkce_code_challenge) { SecureRandom.hex(32) } + let(:pkce_code_challenge_method) { 'S256' } + + context 'when using S256 code challenge method' do + it 'returns http success' do + subject + expect(response).to have_http_status(200) + end + + it 'includes the PKCE values in the response' do + subject + + code_challenge_input = body.at_css('.oauth-prompt input[name=code_challenge]') + code_challenge_method_input = body.at_css('.oauth-prompt input[name=code_challenge_method]') + + expect(code_challenge_input).to be_present + expect(code_challenge_method_input).to be_present + + expect(code_challenge_input.attr('value')).to eq pkce_code_challenge + expect(code_challenge_method_input.attr('value')).to eq pkce_code_challenge_method + end + + include_examples 'shows authorize and deny buttons' + end + + context 'when using plain code challenge method' do + subject do + get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read', code_challenge_method: pkce_code_challenge_method, code_challenge: pkce_code_challenge } + end + + let(:pkce_code_challenge_method) { 'plain' } + + it 'returns http success' do + subject + expect(response).to have_http_status(400) + end + + it 'does not include the PKCE values in the response' do + subject + + code_challenge_input = body.at_css('.oauth-prompt input[name=code_challenge]') + code_challenge_method_input = body.at_css('.oauth-prompt input[name=code_challenge_method]') + + expect(code_challenge_input).to_not be_present + expect(code_challenge_method_input).to_not be_present + end + + it 'does not include the authorize button' do + subject + + authorize_button = body.at_css('.oauth-prompt button[type="submit"]') + + expect(authorize_button).to_not be_present + end + + it 'includes an error message' do + subject + expect(error_message).to match I18n.t('doorkeeper.errors.messages.invalid_code_challenge_method') + end end end end diff --git a/spec/requests/well_known/oauth_metadata_spec.rb b/spec/requests/well_known/oauth_metadata_spec.rb index 3350d59315..9d2d202286 100644 --- a/spec/requests/well_known/oauth_metadata_spec.rb +++ b/spec/requests/well_known/oauth_metadata_spec.rb @@ -29,7 +29,10 @@ describe 'The /.well-known/oauth-authorization-server request' do revocation_endpoint: oauth_revoke_url(protocol: protocol), scopes_supported: Doorkeeper.configuration.scopes.map(&:to_s), response_types_supported: Doorkeeper.configuration.authorization_response_types, + response_modes_supported: Doorkeeper.configuration.authorization_response_flows.flat_map(&:response_mode_matches).uniq, + token_endpoint_auth_methods_supported: %w(client_secret_basic client_secret_post), grant_types_supported: grant_types_supported, + code_challenge_methods_supported: ['S256'], # non-standard extension: app_registration_endpoint: api_v1_apps_url(protocol: protocol) ) From c091fa71052690deab98f41dec42096935f0f94e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 11:27:48 +0200 Subject: [PATCH 005/306] chore(deps): update devdependencies (non-major) (#31096) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 85 ++++++++++++++++++++++--------------------------------- 1 file changed, 34 insertions(+), 51 deletions(-) diff --git a/yarn.lock b/yarn.lock index c62945dd97..692787093a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1598,7 +1598,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.6.3, @csstools/css-parser-algorithms@npm:^2.7.1": +"@csstools/css-parser-algorithms@npm:^2.7.1": version: 2.7.1 resolution: "@csstools/css-parser-algorithms@npm:2.7.1" peerDependencies: @@ -1607,14 +1607,14 @@ __metadata: languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.3.1, @csstools/css-tokenizer@npm:^2.4.1": +"@csstools/css-tokenizer@npm:^2.4.1": version: 2.4.1 resolution: "@csstools/css-tokenizer@npm:2.4.1" checksum: 10c0/fe71cee85ec7372da07083d088b6a704f43e5d3d2d8071c4b8a86fae60408b559a218a43f8625bf2f0be5c7f90c8f3ad20a1aae1921119a1c02b51c310cc2b6b languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.11, @csstools/media-query-list-parser@npm:^2.1.13": +"@csstools/media-query-list-parser@npm:^2.1.13": version: 2.1.13 resolution: "@csstools/media-query-list-parser@npm:2.1.13" peerDependencies: @@ -3372,8 +3372,8 @@ __metadata: linkType: hard "@testing-library/dom@npm:^10.2.0": - version: 10.3.1 - resolution: "@testing-library/dom@npm:10.3.1" + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" dependencies: "@babel/code-frame": "npm:^7.10.4" "@babel/runtime": "npm:^7.12.5" @@ -3383,13 +3383,13 @@ __metadata: dom-accessibility-api: "npm:^0.5.9" lz-string: "npm:^1.5.0" pretty-format: "npm:^27.0.2" - checksum: 10c0/e898475cd4932225c2962bf9f94353d7d88462c8912881af8e9866cee714c967b21badb0895ec8626123759cddc6663bc40300b1d1bf789957a603086eda6329 + checksum: 10c0/0352487720ecd433400671e773df0b84b8268fb3fe8e527cdfd7c11b1365b398b4e0eddba6e7e0c85e8d615f48257753283fccec41f6b986fd6c85f15eb5f84f languageName: node linkType: hard "@testing-library/jest-dom@npm:^6.0.0": - version: 6.4.6 - resolution: "@testing-library/jest-dom@npm:6.4.6" + version: 6.4.8 + resolution: "@testing-library/jest-dom@npm:6.4.8" dependencies: "@adobe/css-tools": "npm:^4.4.0" "@babel/runtime": "npm:^7.9.2" @@ -3399,24 +3399,7 @@ __metadata: dom-accessibility-api: "npm:^0.6.3" lodash: "npm:^4.17.21" redent: "npm:^3.0.0" - peerDependencies: - "@jest/globals": ">= 28" - "@types/bun": "*" - "@types/jest": ">= 28" - jest: ">= 28" - vitest: ">= 0.32" - peerDependenciesMeta: - "@jest/globals": - optional: true - "@types/bun": - optional: true - "@types/jest": - optional: true - jest: - optional: true - vitest: - optional: true - checksum: 10c0/8f369c1d27f8128b3794c6b9af5f5b794a47af4670819756e9f4e7cf69e277b30e8b89c548277a279918f648c85c6c7874f1a867e52edd4edb0629a2cf377daa + checksum: 10c0/8eececcac1ec7728c038b9d9eabfc8b8dcf4dc1e997c959450bff16d946e3344275862b84bfe0e1d1beb3817368e782464816aca47ab5c94f0ebf66db71df55d languageName: node linkType: hard @@ -6959,15 +6942,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:~4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.4": + version: 4.3.5 + resolution: "debug@npm:4.3.5" dependencies: ms: "npm:2.1.2" peerDependenciesMeta: supports-color: optional: true - checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 + checksum: 10c0/082c375a2bdc4f4469c99f325ff458adad62a3fc2c482d59923c260cb08152f34e2659f72b3767db8bb2f21ca81a60a42d1019605a412132d7b9f59363a005cc languageName: node linkType: hard @@ -9543,11 +9526,11 @@ __metadata: linkType: hard "husky@npm:^9.0.11": - version: 9.0.11 - resolution: "husky@npm:9.0.11" + version: 9.1.2 + resolution: "husky@npm:9.1.2" bin: - husky: bin.mjs - checksum: 10c0/2c787dcf74a837fc9a4fea7da907509d4bd9a289f4ea10ecc9d86279e4d4542b0f5f6443a619bccae19e265f2677172cc2b86aae5c932a35a330cc227d914605 + husky: bin.js + checksum: 10c0/7e25c31ef98ac35d357147005d6e5d87db2abca7297e7c5aac931de3699acd32a3f1a9f8e53f101daeab818f0cfe9d18fa7e34f7cf5c9c4437c3665123456dea languageName: node linkType: hard @@ -11314,10 +11297,10 @@ __metadata: languageName: node linkType: hard -"known-css-properties@npm:^0.31.0": - version: 0.31.0 - resolution: "known-css-properties@npm:0.31.0" - checksum: 10c0/8e643cbed32d7733278ba215c43dfc38fc7e77d391f66b81f07228af97d69ce2cebba03a9bc1ac859479e162aea812e258b30f4c93cb7b7adfd0622a141d36da +"known-css-properties@npm:^0.34.0": + version: 0.34.0 + resolution: "known-css-properties@npm:0.34.0" + checksum: 10c0/8549969f02b1858554e89faf4548ece37625d0d21b42e8d54fa53184e68e1512ef2531bb15941575ad816361ab7447b598c1b18c1b96ce0a868333d1a68f2e2c languageName: node linkType: hard @@ -13166,8 +13149,8 @@ __metadata: linkType: hard "pino-pretty@npm:^11.0.0": - version: 11.2.1 - resolution: "pino-pretty@npm:11.2.1" + version: 11.2.2 + resolution: "pino-pretty@npm:11.2.2" dependencies: colorette: "npm:^2.0.7" dateformat: "npm:^4.6.3" @@ -13185,7 +13168,7 @@ __metadata: strip-json-comments: "npm:^3.1.1" bin: pino-pretty: bin.js - checksum: 10c0/6c7f15b5bf8a007c8b7157eae445675b13cd95097ffa512d5ebd661f9e7abd328fa27592b25708756a09f098f87cb03ca81837518cd725c16e3f801129b941d4 + checksum: 10c0/3ce1769907886a5584f6c8123d9bc987712ad10a375797733a0fe95a238df587dac8e2b709bab291c4e30d41b0cf65808c708c96f8eb98b2778b6df60afa7e66 languageName: node linkType: hard @@ -14044,7 +14027,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.2.15, postcss@npm:^8.4.24, postcss@npm:^8.4.38": +"postcss@npm:^8.2.15, postcss@npm:^8.4.24, postcss@npm:^8.4.39": version: 8.4.40 resolution: "postcss@npm:8.4.40" dependencies: @@ -16629,12 +16612,12 @@ __metadata: linkType: hard "stylelint@npm:^16.0.2": - version: 16.6.1 - resolution: "stylelint@npm:16.6.1" + version: 16.7.0 + resolution: "stylelint@npm:16.7.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.6.3" - "@csstools/css-tokenizer": "npm:^2.3.1" - "@csstools/media-query-list-parser": "npm:^2.1.11" + "@csstools/css-parser-algorithms": "npm:^2.7.1" + "@csstools/css-tokenizer": "npm:^2.4.1" + "@csstools/media-query-list-parser": "npm:^2.1.13" "@csstools/selector-specificity": "npm:^3.1.1" "@dual-bundle/import-meta-resolve": "npm:^4.1.0" balanced-match: "npm:^2.0.0" @@ -16642,7 +16625,7 @@ __metadata: cosmiconfig: "npm:^9.0.0" css-functions-list: "npm:^3.2.2" css-tree: "npm:^2.3.1" - debug: "npm:^4.3.4" + debug: "npm:^4.3.5" fast-glob: "npm:^3.3.2" fastest-levenshtein: "npm:^1.0.16" file-entry-cache: "npm:^9.0.0" @@ -16653,13 +16636,13 @@ __metadata: ignore: "npm:^5.3.1" imurmurhash: "npm:^0.1.4" is-plain-object: "npm:^5.0.0" - known-css-properties: "npm:^0.31.0" + known-css-properties: "npm:^0.34.0" mathml-tag-names: "npm:^2.1.3" meow: "npm:^13.2.0" micromatch: "npm:^4.0.7" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.1" - postcss: "npm:^8.4.38" + postcss: "npm:^8.4.39" postcss-resolve-nested-selector: "npm:^0.1.1" postcss-safe-parser: "npm:^7.0.0" postcss-selector-parser: "npm:^6.1.0" @@ -16673,7 +16656,7 @@ __metadata: write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 10c0/8dc9b0024d6fb109380a142171ab8a134c3863aa8b8736f0083310a0d05f173dcda5680f29267697dfa0aaeb2f08aef4ef113e4bb4f8582fcfdd97f35be51d71 + checksum: 10c0/98cb36037684433d991a0c507bbf8155309e96470177487f493e66de098631e5303b235470fc5c8086cd98013385b669c4e3cb68ad01421b898e1da6848e5d78 languageName: node linkType: hard From dfd43869c9180d4f4ebfc26ebce30f468a8f5422 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Fri, 26 Jul 2024 11:36:54 +0200 Subject: [PATCH 006/306] Decrease count of filtered notifications when notification requests are accepted or dismissed (#31149) --- .../mastodon/actions/notification_policies.ts | 6 +++++ .../mastodon/actions/notifications.js | 15 +++++++++++-- .../mastodon/reducers/notification_policy.ts | 22 +++++++++++++------ 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/app/javascript/mastodon/actions/notification_policies.ts b/app/javascript/mastodon/actions/notification_policies.ts index fcc9919c49..b182bcf699 100644 --- a/app/javascript/mastodon/actions/notification_policies.ts +++ b/app/javascript/mastodon/actions/notification_policies.ts @@ -1,3 +1,5 @@ +import { createAction } from '@reduxjs/toolkit'; + import { apiGetNotificationPolicy, apiUpdateNotificationsPolicy, @@ -14,3 +16,7 @@ export const updateNotificationsPolicy = createDataLoadingThunk( 'notificationPolicy/update', (policy: Partial) => apiUpdateNotificationsPolicy(policy), ); + +export const decreasePendingNotificationsCount = createAction( + 'notificationPolicy/decreasePendingNotificationCount', +); diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index 7e4320c27b..48afb003ad 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -18,6 +18,7 @@ import { importFetchedStatuses, } from './importer'; import { submitMarkers } from './markers'; +import { decreasePendingNotificationsCount } from './notification_policies'; import { notificationsUpdate } from "./notifications_typed"; import { register as registerPushNotifications } from './push_notifications'; import { saveSettings } from './settings'; @@ -84,6 +85,12 @@ const fetchRelatedRelationships = (dispatch, notifications) => { } }; +const selectNotificationCountForRequest = (state, id) => { + const requests = state.getIn(['notificationRequests', 'items']); + const thisRequest = requests.find(request => request.get('id') === id); + return thisRequest ? thisRequest.get('notifications_count') : 0; +}; + export const loadPending = () => ({ type: NOTIFICATIONS_LOAD_PENDING, }); @@ -433,11 +440,13 @@ export const fetchNotificationRequestFail = (id, error) => ({ error, }); -export const acceptNotificationRequest = id => (dispatch) => { +export const acceptNotificationRequest = (id) => (dispatch, getState) => { + const count = selectNotificationCountForRequest(getState(), id); dispatch(acceptNotificationRequestRequest(id)); api().post(`/api/v1/notifications/requests/${id}/accept`).then(() => { dispatch(acceptNotificationRequestSuccess(id)); + dispatch(decreasePendingNotificationsCount(count)); }).catch(err => { dispatch(acceptNotificationRequestFail(id, err)); }); @@ -459,11 +468,13 @@ export const acceptNotificationRequestFail = (id, error) => ({ error, }); -export const dismissNotificationRequest = id => (dispatch) => { +export const dismissNotificationRequest = (id) => (dispatch, getState) => { + const count = selectNotificationCountForRequest(getState(), id); dispatch(dismissNotificationRequestRequest(id)); api().post(`/api/v1/notifications/requests/${id}/dismiss`).then(() =>{ dispatch(dismissNotificationRequestSuccess(id)); + dispatch(decreasePendingNotificationsCount(count)); }).catch(err => { dispatch(dismissNotificationRequestFail(id, err)); }); diff --git a/app/javascript/mastodon/reducers/notification_policy.ts b/app/javascript/mastodon/reducers/notification_policy.ts index ab111066cc..ed912dde5d 100644 --- a/app/javascript/mastodon/reducers/notification_policy.ts +++ b/app/javascript/mastodon/reducers/notification_policy.ts @@ -2,17 +2,25 @@ import { createReducer, isAnyOf } from '@reduxjs/toolkit'; import { fetchNotificationPolicy, + decreasePendingNotificationsCount, updateNotificationsPolicy, } from 'mastodon/actions/notification_policies'; import type { NotificationPolicy } from 'mastodon/models/notification_policy'; export const notificationPolicyReducer = createReducer(null, (builder) => { - builder.addMatcher( - isAnyOf( - fetchNotificationPolicy.fulfilled, - updateNotificationsPolicy.fulfilled, - ), - (_state, action) => action.payload, - ); + builder + .addCase(decreasePendingNotificationsCount, (state, action) => { + if (state) { + state.summary.pending_notifications_count -= action.payload; + state.summary.pending_requests_count -= 1; + } + }) + .addMatcher( + isAnyOf( + fetchNotificationPolicy.fulfilled, + updateNotificationsPolicy.fulfilled, + ), + (_state, action) => action.payload, + ); }); From b120792f2752d358ea8142ab3f91f2ed93652fce Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Fri, 26 Jul 2024 09:13:56 -0500 Subject: [PATCH 007/306] Adjust ffmpeg version detection in admin panel (#31130) Co-authored-by: Claire --- .../admin/metrics/dimension/software_versions_dimension.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb index a260a66e2a..71d6c63fb5 100644 --- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb +++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb @@ -98,7 +98,8 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim end def ffmpeg_version - version = `ffmpeg -version`.match(/ffmpeg version ([\d\.]+)/)[1] + version_output = Terrapin::CommandLine.new(Rails.configuration.x.ffprobe_binary, '-show_program_version -v 0 -of json').run + version = Oj.load(version_output, mode: :strict, symbol_keys: true).dig(:program_version, :version) { key: 'ffmpeg', @@ -106,7 +107,7 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim value: version, human_value: version, } - rescue Errno::ENOENT + rescue Terrapin::CommandNotFoundError, Terrapin::ExitStatusError, Oj::ParseError nil end From dd5379271410219de0806bb33e7cdfa427ea6988 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Fri, 26 Jul 2024 16:53:49 +0200 Subject: [PATCH 008/306] Move UI tests from controller to system spec (#31158) --- .../oauth/authorizations_controller_spec.rb | 128 +----------------- spec/system/oauth_spec.rb | 86 +++++++++++- 2 files changed, 82 insertions(+), 132 deletions(-) diff --git a/spec/controllers/oauth/authorizations_controller_spec.rb b/spec/controllers/oauth/authorizations_controller_spec.rb index 3908ef8db0..9bb520211c 100644 --- a/spec/controllers/oauth/authorizations_controller_spec.rb +++ b/spec/controllers/oauth/authorizations_controller_spec.rb @@ -3,8 +3,6 @@ require 'rails_helper' RSpec.describe Oauth::AuthorizationsController do - render_views - let(:app) { Doorkeeper::Application.create!(name: 'test', redirect_uri: 'http://localhost/', scopes: 'read') } describe 'GET #new' do @@ -12,26 +10,6 @@ RSpec.describe Oauth::AuthorizationsController do get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read' } end - def body - Nokogiri::Slop(response.body) - end - - def error_message - body.at_css('.form-container .flash-message').text - end - - shared_examples 'shows authorize and deny buttons' do - it 'gives options to authorize and deny' do - subject - - authorize_button = body.at_css('.oauth-prompt button[type="submit"]:not(.negative)') - deny_button = body.at_css('.oauth-prompt button[type="submit"].negative') - - expect(authorize_button).to be_present - expect(deny_button).to be_present - end - end - shared_examples 'stores location for user' do it 'stores location for user' do subject @@ -56,8 +34,6 @@ RSpec.describe Oauth::AuthorizationsController do expect(response.headers['Cache-Control']).to include('private, no-store') end - include_examples 'shows authorize and deny buttons' - include_examples 'stores location for user' context 'when app is already authorized' do @@ -79,109 +55,7 @@ RSpec.describe Oauth::AuthorizationsController do it 'does not redirect to callback with force_login=true' do get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read', force_login: 'true' } - authorize_button = body.at_css('.oauth-prompt button[type="submit"]:not(.negative)') - deny_button = body.at_css('.oauth-prompt button[type="submit"].negative') - - expect(authorize_button).to be_present - expect(deny_button).to be_present - end - end - - # The tests in this context ensures that requests without PKCE parameters - # still work; In the future we likely want to force usage of PKCE for - # security reasons, as per: - # - # https://www.ietf.org/archive/id/draft-ietf-oauth-security-topics-27.html#section-2.1.1-9 - context 'when not using PKCE' do - subject do - get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read' } - end - - it 'returns http success' do - subject - expect(response).to have_http_status(200) - end - - it 'does not include the PKCE values in the response' do - subject - - code_challenge_input = body.at_css('.oauth-prompt input[name=code_challenge]') - code_challenge_method_input = body.at_css('.oauth-prompt input[name=code_challenge_method]') - - expect(code_challenge_input).to be_present - expect(code_challenge_method_input).to be_present - - expect(code_challenge_input.attr('value')).to be_nil - expect(code_challenge_method_input.attr('value')).to be_nil - end - - include_examples 'shows authorize and deny buttons' - end - - context 'when using PKCE' do - subject do - get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read', code_challenge_method: pkce_code_challenge_method, code_challenge: pkce_code_challenge } - end - - let(:pkce_code_challenge) { SecureRandom.hex(32) } - let(:pkce_code_challenge_method) { 'S256' } - - context 'when using S256 code challenge method' do - it 'returns http success' do - subject - expect(response).to have_http_status(200) - end - - it 'includes the PKCE values in the response' do - subject - - code_challenge_input = body.at_css('.oauth-prompt input[name=code_challenge]') - code_challenge_method_input = body.at_css('.oauth-prompt input[name=code_challenge_method]') - - expect(code_challenge_input).to be_present - expect(code_challenge_method_input).to be_present - - expect(code_challenge_input.attr('value')).to eq pkce_code_challenge - expect(code_challenge_method_input.attr('value')).to eq pkce_code_challenge_method - end - - include_examples 'shows authorize and deny buttons' - end - - context 'when using plain code challenge method' do - subject do - get :new, params: { client_id: app.uid, response_type: 'code', redirect_uri: 'http://localhost/', scope: 'read', code_challenge_method: pkce_code_challenge_method, code_challenge: pkce_code_challenge } - end - - let(:pkce_code_challenge_method) { 'plain' } - - it 'returns http success' do - subject - expect(response).to have_http_status(400) - end - - it 'does not include the PKCE values in the response' do - subject - - code_challenge_input = body.at_css('.oauth-prompt input[name=code_challenge]') - code_challenge_method_input = body.at_css('.oauth-prompt input[name=code_challenge_method]') - - expect(code_challenge_input).to_not be_present - expect(code_challenge_method_input).to_not be_present - end - - it 'does not include the authorize button' do - subject - - authorize_button = body.at_css('.oauth-prompt button[type="submit"]') - - expect(authorize_button).to_not be_present - end - - it 'includes an error message' do - subject - expect(error_message).to match I18n.t('doorkeeper.errors.messages.invalid_code_challenge_method') - end + expect(response).to have_http_status(:success) end end end diff --git a/spec/system/oauth_spec.rb b/spec/system/oauth_spec.rb index 1c9aca3114..42ff4a48ac 100644 --- a/spec/system/oauth_spec.rb +++ b/spec/system/oauth_spec.rb @@ -2,8 +2,13 @@ require 'rails_helper' -describe 'Using OAuth from an external app', :js, :streaming do +describe 'Using OAuth from an external app' do + subject { visit "/oauth/authorize?#{params.to_query}" } + let(:client_app) { Doorkeeper::Application.create!(name: 'test', redirect_uri: about_url(host: Rails.application.config.x.local_domain), scopes: 'read') } + let(:params) do + { client_id: client_app.uid, response_type: 'code', redirect_uri: client_app.redirect_uri, scope: 'read' } + end context 'when the user is already logged in' do let!(:user) { Fabricate(:user) } @@ -14,8 +19,7 @@ describe 'Using OAuth from an external app', :js, :streaming do end it 'when accepting the authorization request' do - params = { client_id: client_app.uid, response_type: 'code', redirect_uri: client_app.redirect_uri, scope: 'read' } - visit "/oauth/authorize?#{params.to_query}" + subject # It presents the user with an authorization page expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize')) @@ -29,8 +33,7 @@ describe 'Using OAuth from an external app', :js, :streaming do end it 'when rejecting the authorization request' do - params = { client_id: client_app.uid, response_type: 'code', redirect_uri: client_app.redirect_uri, scope: 'read' } - visit "/oauth/authorize?#{params.to_query}" + subject # It presents the user with an authorization page expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.deny')) @@ -42,6 +45,79 @@ describe 'Using OAuth from an external app', :js, :streaming do # It does not grant the app access to the account expect(Doorkeeper::AccessGrant.exists?(application: client_app, resource_owner_id: user.id)).to be false end + + # The tests in this context ensures that requests without PKCE parameters + # still work; In the future we likely want to force usage of PKCE for + # security reasons, as per: + # + # https://www.ietf.org/archive/id/draft-ietf-oauth-security-topics-27.html#section-2.1.1-9 + context 'when not using PKCE' do + it 'does not include the PKCE values in the hidden inputs' do + subject + + code_challenge_inputs = all('.oauth-prompt input[name=code_challenge]', visible: false) + code_challenge_method_inputs = all('.oauth-prompt input[name=code_challenge_method]', visible: false) + + expect(code_challenge_inputs).to_not be_empty + expect(code_challenge_method_inputs).to_not be_empty + + (code_challenge_inputs.to_a + code_challenge_method_inputs.to_a).each do |input| + expect(input.value).to be_nil + end + end + end + + context 'when using PKCE' do + let(:params) do + { client_id: client_app.uid, response_type: 'code', redirect_uri: client_app.redirect_uri, scope: 'read', code_challenge_method: pkce_code_challenge_method, code_challenge: pkce_code_challenge } + end + let(:pkce_code_challenge) { SecureRandom.hex(32) } + let(:pkce_code_challenge_method) { 'S256' } + + context 'when using S256 code challenge method' do + it 'includes the PKCE values in the hidden inputs' do + subject + + code_challenge_inputs = all('.oauth-prompt input[name=code_challenge]', visible: false) + code_challenge_method_inputs = all('.oauth-prompt input[name=code_challenge_method]', visible: false) + + expect(code_challenge_inputs).to_not be_empty + expect(code_challenge_method_inputs).to_not be_empty + + code_challenge_inputs.each do |input| + expect(input.value).to eq pkce_code_challenge + end + code_challenge_method_inputs.each do |input| + expect(input.value).to eq pkce_code_challenge_method + end + end + end + + context 'when using plain code challenge method' do + let(:pkce_code_challenge_method) { 'plain' } + + it 'does not include the PKCE values in the response' do + subject + + expect(page).to have_no_css('.oauth-prompt input[name=code_challenge]') + expect(page).to have_no_css('.oauth-prompt input[name=code_challenge_method]') + end + + it 'does not include the authorize button' do + subject + + expect(page).to have_no_css('.oauth-prompt button[type="submit"]') + end + + it 'includes an error message' do + subject + + within '.form-container .flash-message' do + expect(page).to have_content(I18n.t('doorkeeper.errors.messages.invalid_code_challenge_method')) + end + end + end + end end context 'when the user is not already logged in' do From 14bc73e94cb40b10404468bb6bda75af2c9995a6 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 25 Jul 2024 19:05:54 +0200 Subject: [PATCH 009/306] [Glitch] Change design of confirmation modals in web UI Port 8818748b9023acd84f42bf887e361d9244521df4 to glitch-soc Co-authored-by: Renaud Chaput Signed-off-by: Claire --- .../flavours/glitch/components/domain.tsx | 14 +-- .../glitch/components/follow_button.tsx | 24 +---- .../glitch/containers/account_container.jsx | 21 ++--- .../glitch/containers/domain_container.jsx | 36 -------- .../glitch/containers/status_container.js | 50 ++--------- .../containers/header_container.jsx | 19 +--- .../compose/components/action_bar.jsx | 15 +--- .../glitch/features/compose/index.jsx | 15 +--- .../components/conversation.jsx | 13 +-- .../directory/components/account_card.tsx | 52 ++--------- .../glitch/features/domain_blocks/index.jsx | 5 +- .../glitch/features/list_timeline/index.jsx | 23 +---- .../containers/column_settings_container.js | 16 +--- .../picture_in_picture/components/footer.jsx | 14 +-- .../containers/detailed_status_container.js | 31 +------ .../flavours/glitch/features/status/index.jsx | 38 +++----- .../ui/components/confirmation_modal.jsx | 83 ------------------ .../clear_notifications.tsx | 46 ++++++++++ .../confirmation_modal.tsx | 87 +++++++++++++++++++ .../confirmation_modals/delete_list.tsx | 58 +++++++++++++ .../confirmation_modals/delete_status.tsx | 67 ++++++++++++++ .../confirmation_modals/edit_status.tsx | 45 ++++++++++ .../components/confirmation_modals/index.ts | 8 ++ .../confirmation_modals/log_out.tsx | 40 +++++++++ .../components/confirmation_modals/reply.tsx | 46 ++++++++++ .../confirmation_modals/unfollow.tsx | 50 +++++++++++ .../ui/components/disabled_account_banner.jsx | 20 +---- .../features/ui/components/link_footer.jsx | 21 +---- .../features/ui/components/modal_root.jsx | 18 +++- .../flavours/glitch/locales/en.json | 4 - .../flavours/glitch/styles/components.scss | 87 +++++-------------- 31 files changed, 554 insertions(+), 512 deletions(-) delete mode 100644 app/javascript/flavours/glitch/containers/domain_container.jsx delete mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/clear_notifications.tsx create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/confirmation_modal.tsx create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/delete_list.tsx create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/delete_status.tsx create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/edit_status.tsx create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/index.ts create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/log_out.tsx create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/reply.tsx create mode 100644 app/javascript/flavours/glitch/features/ui/components/confirmation_modals/unfollow.tsx diff --git a/app/javascript/flavours/glitch/components/domain.tsx b/app/javascript/flavours/glitch/components/domain.tsx index ed5e8e7e4c..e3eec2bd9b 100644 --- a/app/javascript/flavours/glitch/components/domain.tsx +++ b/app/javascript/flavours/glitch/components/domain.tsx @@ -3,6 +3,8 @@ import { useCallback } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import LockOpenIcon from '@/material-icons/400-24px/lock_open.svg?react'; +import { unblockDomain } from 'flavours/glitch/actions/domain_blocks'; +import { useAppDispatch } from 'flavours/glitch/store'; import { IconButton } from './icon_button'; @@ -13,17 +15,15 @@ const messages = defineMessages({ }, }); -interface Props { +export const Domain: React.FC<{ domain: string; - onUnblockDomain: (domain: string) => void; -} - -export const Domain: React.FC = ({ domain, onUnblockDomain }) => { +}> = ({ domain }) => { const intl = useIntl(); + const dispatch = useAppDispatch(); const handleDomainUnblock = useCallback(() => { - onUnblockDomain(domain); - }, [domain, onUnblockDomain]); + dispatch(unblockDomain(domain)); + }, [dispatch, domain]); return (
diff --git a/app/javascript/flavours/glitch/components/follow_button.tsx b/app/javascript/flavours/glitch/components/follow_button.tsx index a6b2064703..a27872c1aa 100644 --- a/app/javascript/flavours/glitch/components/follow_button.tsx +++ b/app/javascript/flavours/glitch/components/follow_button.tsx @@ -1,12 +1,11 @@ import { useCallback, useEffect } from 'react'; -import { useIntl, defineMessages, FormattedMessage } from 'react-intl'; +import { useIntl, defineMessages } from 'react-intl'; import { useIdentity } from '@/flavours/glitch/identity_context'; import { fetchRelationships, followAccount, - unfollowAccount, } from 'flavours/glitch/actions/accounts'; import { openModal } from 'flavours/glitch/actions/modal'; import { Button } from 'flavours/glitch/components/button'; @@ -59,29 +58,14 @@ export const FollowButton: React.FC<{ if (accountId === me) { return; - } else if (relationship.following || relationship.requested) { + } else if (account && (relationship.following || relationship.requested)) { dispatch( - openModal({ - modalType: 'CONFIRM', - modalProps: { - message: ( - @{account?.acct} }} - /> - ), - confirm: intl.formatMessage(messages.unfollow), - onConfirm: () => { - dispatch(unfollowAccount(accountId)); - }, - }, - }), + openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } }), ); } else { dispatch(followAccount(accountId)); } - }, [dispatch, intl, accountId, relationship, account, signedIn]); + }, [dispatch, accountId, relationship, account, signedIn]); let label; diff --git a/app/javascript/flavours/glitch/containers/account_container.jsx b/app/javascript/flavours/glitch/containers/account_container.jsx index f171fcc2fe..7fd186b657 100644 --- a/app/javascript/flavours/glitch/containers/account_container.jsx +++ b/app/javascript/flavours/glitch/containers/account_container.jsx @@ -1,24 +1,20 @@ -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; +import { openModal } from 'flavours/glitch/actions/modal'; + import { followAccount, - unfollowAccount, blockAccount, unblockAccount, muteAccount, unmuteAccount, } from '../actions/accounts'; -import { openModal } from '../actions/modal'; import { initMuteModal } from '../actions/mutes'; import Account from '../components/account'; import { makeGetAccount } from '../selectors'; -const messages = defineMessages({ - unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, -}); - const makeMapStateToProps = () => { const getAccount = makeGetAccount(); @@ -29,18 +25,11 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onFollow (account) { if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: @{account.get('acct')} }} />, - confirm: intl.formatMessage(messages.unfollowConfirm), - onConfirm: () => dispatch(unfollowAccount(account.get('id'))), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } })); } else { dispatch(followAccount(account.get('id'))); } diff --git a/app/javascript/flavours/glitch/containers/domain_container.jsx b/app/javascript/flavours/glitch/containers/domain_container.jsx deleted file mode 100644 index c719a5775c..0000000000 --- a/app/javascript/flavours/glitch/containers/domain_container.jsx +++ /dev/null @@ -1,36 +0,0 @@ -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; - -import { connect } from 'react-redux'; - -import { blockDomain, unblockDomain } from '../actions/domain_blocks'; -import { openModal } from '../actions/modal'; -import { Domain } from '../components/domain'; - -const messages = defineMessages({ - blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' }, -}); - -const makeMapStateToProps = () => { - const mapStateToProps = () => ({}); - - return mapStateToProps; -}; - -const mapDispatchToProps = (dispatch, { intl }) => ({ - onBlockDomain (domain) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: {domain} }} />, - confirm: intl.formatMessage(messages.blockDomainConfirm), - onConfirm: () => dispatch(blockDomain(domain)), - }, - })); - }, - - onUnblockDomain (domain) { - dispatch(unblockDomain(domain)); - }, -}); - -export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Domain)); diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index 955adc5fa7..116a3455f7 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -1,5 +1,3 @@ -import { defineMessages, injectIntl } from 'react-intl'; - import { connect } from 'react-redux'; import { initBlockModal } from 'flavours/glitch/actions/blocks'; @@ -19,7 +17,6 @@ import { pin, unpin, } from 'flavours/glitch/actions/interactions'; -import { changeLocalSetting } from 'flavours/glitch/actions/local_settings'; import { openModal } from 'flavours/glitch/actions/modal'; import { initMuteModal } from 'flavours/glitch/actions/mutes'; import { deployPictureInPicture } from 'flavours/glitch/actions/picture_in_picture'; @@ -39,21 +36,6 @@ import { makeGetStatus, makeGetPictureInPicture } from 'flavours/glitch/selector import { showAlertForError } from '../actions/alerts'; -const messages = defineMessages({ - deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, - deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' }, - redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' }, - redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, - editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' }, - editMessage: { id: 'confirmations.edit.message', defaultMessage: 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, - unfilterConfirm: { id: 'confirmations.unfilter.confirm', defaultMessage: 'Show' }, - author: { id: 'confirmations.unfilter.author', defaultMessage: 'Author' }, - matchingFilters: { id: 'confirmations.unfilter.filters', defaultMessage: 'Matching {count, plural, one {filter} other {filters}}' }, - editFilter: { id: 'confirmations.unfilter.edit_filter', defaultMessage: 'Edit filter' }, -}); - const makeMapStateToProps = () => { const getStatus = makeGetStatus(); const getPictureInPicture = makeGetPictureInPicture(); @@ -88,22 +70,14 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ +const mapDispatchToProps = (dispatch, { contextType }) => ({ onReply (status) { dispatch((_, getState) => { let state = getState(); if (state.getIn(['local_settings', 'confirm_before_clearing_draft']) && state.getIn(['compose', 'text']).trim().length !== 0) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onDoNotAsk: () => dispatch(changeLocalSetting(['confirm_before_clearing_draft'], false)), - onConfirm: () => dispatch(replyCompose(status)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } })); } else { dispatch(replyCompose(status)); } @@ -148,14 +122,7 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ if (!deleteModal) { dispatch(deleteStatus(status.get('id'), withRedraft)); } else { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage), - confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm), - onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } })); } }, @@ -163,14 +130,7 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ dispatch((_, getState) => { let state = getState(); if (state.getIn(['compose', 'text']).trim().length !== 0) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.editMessage), - confirm: intl.formatMessage(messages.editConfirm), - onConfirm: () => dispatch(editStatus(status.get('id'))), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_EDIT_STATUS', modalProps: { statusId: status.get('id') } })); } else { dispatch(editStatus(status.get('id'))); } @@ -257,4 +217,4 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ }); -export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Status)); +export default connect(makeMapStateToProps, mapDispatchToProps)(Status); diff --git a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.jsx b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.jsx index ba1241d829..3ceb201e2f 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.jsx +++ b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.jsx @@ -1,10 +1,9 @@ -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import { followAccount, - unfollowAccount, unblockAccount, unmuteAccount, pinAccount, @@ -22,11 +21,6 @@ import { initReport } from '../../../actions/reports'; import { makeGetAccount, getAccountHidden } from '../../../selectors'; import Header from '../components/header'; -const messages = defineMessages({ - unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, - blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' }, -}); - const makeMapStateToProps = () => { const getAccount = makeGetAccount(); @@ -39,18 +33,11 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onFollow (account) { if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: @{account.get('acct')} }} />, - confirm: intl.formatMessage(messages.unfollowConfirm), - onConfirm: () => dispatch(unfollowAccount(account.get('id'))), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } })); } else { dispatch(followAccount(account.get('id'))); } diff --git a/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx b/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx index 7fda25ded5..43c2899373 100644 --- a/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx @@ -7,7 +7,6 @@ import { useDispatch } from 'react-redux'; import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react'; import { openModal } from 'flavours/glitch/actions/modal'; import DropdownMenuContainer from 'flavours/glitch/containers/dropdown_menu_container'; -import { logOut } from 'flavours/glitch/utils/log_out'; const messages = defineMessages({ edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, @@ -23,8 +22,6 @@ const messages = defineMessages({ filters: { id: 'navigation_bar.filters', defaultMessage: 'Muted words' }, logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' }, bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' }, - logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, - logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, }); export const ActionBar = () => { @@ -32,16 +29,8 @@ export const ActionBar = () => { const intl = useIntl(); const handleLogoutClick = useCallback(() => { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.logoutMessage), - confirm: intl.formatMessage(messages.logoutConfirm), - closeWhenConfirm: false, - onConfirm: () => logOut(), - }, - })); - }, [dispatch, intl]); + dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' })); + }, [dispatch]); let menu = []; diff --git a/app/javascript/flavours/glitch/features/compose/index.jsx b/app/javascript/flavours/glitch/features/compose/index.jsx index b59fafe048..f9a763ef8b 100644 --- a/app/javascript/flavours/glitch/features/compose/index.jsx +++ b/app/javascript/flavours/glitch/features/compose/index.jsx @@ -24,7 +24,6 @@ import { Icon } from 'flavours/glitch/components/icon'; import glitchedElephant1 from 'flavours/glitch/images/mbstobon-ui-0.png'; import glitchedElephant2 from 'flavours/glitch/images/mbstobon-ui-1.png'; import glitchedElephant3 from 'flavours/glitch/images/mbstobon-ui-2.png'; -import { logOut } from 'flavours/glitch/utils/log_out'; import elephantUIPlane from '../../../../images/elephant_ui_plane.svg'; import { changeComposing, mountCompose, unmountCompose } from '../../actions/compose'; @@ -45,8 +44,6 @@ const messages = defineMessages({ settings: { id: 'navigation_bar.app_settings', defaultMessage: 'App settings' }, logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' }, compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new post' }, - logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, - logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, }); const mapStateToProps = (state, ownProps) => ({ @@ -88,20 +85,12 @@ class Compose extends PureComponent { } handleLogoutClick = e => { - const { dispatch, intl } = this.props; + const { dispatch } = this.props; e.preventDefault(); e.stopPropagation(); - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.logoutMessage), - confirm: intl.formatMessage(messages.logoutConfirm), - closeWhenConfirm: false, - onConfirm: () => logOut(), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' })); return false; }; diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx b/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx index 2c70f48a37..50b2a9d5ab 100644 --- a/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx +++ b/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx @@ -37,8 +37,6 @@ const messages = defineMessages({ delete: { id: 'conversation.delete', defaultMessage: 'Delete conversation' }, muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute conversation' }, unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, }); const getAccounts = createSelector( @@ -121,19 +119,12 @@ export const Conversation = ({ conversation, scrollKey, onMoveUp, onMoveDown }) let state = getState(); if (state.getIn(['compose', 'text']).trim().length !== 0) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: () => dispatch(replyCompose(lastStatus)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status: lastStatus } })); } else { dispatch(replyCompose(lastStatus)); } }); - }, [dispatch, lastStatus, intl]); + }, [dispatch, lastStatus]); const handleDelete = useCallback(() => { dispatch(deleteConversation(id)); diff --git a/app/javascript/flavours/glitch/features/directory/components/account_card.tsx b/app/javascript/flavours/glitch/features/directory/components/account_card.tsx index 907dbba9fd..8afb9f59d5 100644 --- a/app/javascript/flavours/glitch/features/directory/components/account_card.tsx +++ b/app/javascript/flavours/glitch/features/directory/components/account_card.tsx @@ -7,7 +7,6 @@ import classNames from 'classnames'; import { followAccount, - unfollowAccount, unblockAccount, unmuteAccount, } from 'flavours/glitch/actions/accounts'; @@ -29,20 +28,12 @@ const messages = defineMessages({ id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request', }, - cancelFollowRequestConfirm: { - id: 'confirmations.cancel_follow_request.confirm', - defaultMessage: 'Withdraw request', - }, requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request', }, unblock: { id: 'account.unblock_short', defaultMessage: 'Unblock' }, unmute: { id: 'account.unmute_short', defaultMessage: 'Unmute' }, - unfollowConfirm: { - id: 'confirmations.unfollow.confirm', - defaultMessage: 'Unfollow', - }, edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, }); @@ -89,48 +80,17 @@ export const AccountCard: React.FC<{ accountId: string }> = ({ accountId }) => { const handleFollow = useCallback(() => { if (!account) return; - if (account.getIn(['relationship', 'following'])) { + if ( + account.getIn(['relationship', 'following']) || + account.getIn(['relationship', 'requested']) + ) { dispatch( - openModal({ - modalType: 'CONFIRM', - modalProps: { - message: ( - @{account.get('acct')} }} - /> - ), - confirm: intl.formatMessage(messages.unfollowConfirm), - onConfirm: () => { - dispatch(unfollowAccount(account.get('id'))); - }, - }, - }), - ); - } else if (account.getIn(['relationship', 'requested'])) { - dispatch( - openModal({ - modalType: 'CONFIRM', - modalProps: { - message: ( - @{account.get('acct')} }} - /> - ), - confirm: intl.formatMessage(messages.cancelFollowRequestConfirm), - onConfirm: () => { - dispatch(unfollowAccount(account.get('id'))); - }, - }, - }), + openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } }), ); } else { dispatch(followAccount(account.get('id'))); } - }, [account, dispatch, intl]); + }, [account, dispatch]); const handleBlock = useCallback(() => { if (account?.relationship?.blocking) { diff --git a/app/javascript/flavours/glitch/features/domain_blocks/index.jsx b/app/javascript/flavours/glitch/features/domain_blocks/index.jsx index 964eada9c1..67ee801cbf 100644 --- a/app/javascript/flavours/glitch/features/domain_blocks/index.jsx +++ b/app/javascript/flavours/glitch/features/domain_blocks/index.jsx @@ -11,16 +11,15 @@ import { connect } from 'react-redux'; import { debounce } from 'lodash'; import BlockIcon from '@/material-icons/400-24px/block-fill.svg?react'; +import { Domain } from 'flavours/glitch/components/domain'; import { fetchDomainBlocks, expandDomainBlocks } from '../../actions/domain_blocks'; import { LoadingIndicator } from '../../components/loading_indicator'; import ScrollableList from '../../components/scrollable_list'; -import DomainContainer from '../../containers/domain_container'; import Column from '../ui/components/column'; const messages = defineMessages({ heading: { id: 'column.domain_blocks', defaultMessage: 'Blocked domains' }, - unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' }, }); const mapStateToProps = state => ({ @@ -70,7 +69,7 @@ class Blocks extends ImmutablePureComponent { bindToDocument={!multiColumn} > {domains.map(domain => - , + , )} diff --git a/app/javascript/flavours/glitch/features/list_timeline/index.jsx b/app/javascript/flavours/glitch/features/list_timeline/index.jsx index 08ce97f1ba..122e43669d 100644 --- a/app/javascript/flavours/glitch/features/list_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/list_timeline/index.jsx @@ -15,7 +15,7 @@ import DeleteIcon from '@/material-icons/400-24px/delete.svg?react'; import EditIcon from '@/material-icons/400-24px/edit.svg?react'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; -import { fetchList, deleteList, updateList } from 'flavours/glitch/actions/lists'; +import { fetchList, updateList } from 'flavours/glitch/actions/lists'; import { openModal } from 'flavours/glitch/actions/modal'; import { connectListStream } from 'flavours/glitch/actions/streaming'; import { expandListTimeline } from 'flavours/glitch/actions/timelines'; @@ -29,8 +29,6 @@ import StatusListContainer from 'flavours/glitch/features/ui/containers/status_l import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router'; const messages = defineMessages({ - deleteMessage: { id: 'confirmations.delete_list.message', defaultMessage: 'Are you sure you want to permanently delete this list?' }, - deleteConfirm: { id: 'confirmations.delete_list.confirm', defaultMessage: 'Delete' }, followed: { id: 'lists.replies_policy.followed', defaultMessage: 'Any followed user' }, none: { id: 'lists.replies_policy.none', defaultMessage: 'No one' }, list: { id: 'lists.replies_policy.list', defaultMessage: 'Members of the list' }, @@ -125,25 +123,10 @@ class ListTimeline extends PureComponent { }; handleDeleteClick = () => { - const { dispatch, columnId, intl } = this.props; + const { dispatch, columnId } = this.props; const { id } = this.props.params; - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.deleteMessage), - confirm: intl.formatMessage(messages.deleteConfirm), - onConfirm: () => { - dispatch(deleteList(id)); - - if (columnId) { - dispatch(removeColumn(columnId)); - } else { - this.props.history.push('/lists'); - } - }, - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_DELETE_LIST', modalProps: { listId: id, columnId } })); }; handleRepliesPolicyChange = ({ target }) => { diff --git a/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js b/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js index 55dcd4226c..1212a88b38 100644 --- a/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js +++ b/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js @@ -2,11 +2,10 @@ import { defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; +import { openModal } from 'flavours/glitch/actions/modal'; import { initializeNotifications } from 'flavours/glitch/actions/notifications_migration'; import { showAlert } from '../../../actions/alerts'; -import { openModal } from '../../../actions/modal'; -import { clearNotifications } from '../../../actions/notification_groups'; import { updateNotificationsPolicy } from '../../../actions/notification_policies'; import { setFilter, requestBrowserPermission } from '../../../actions/notifications'; import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications'; @@ -14,8 +13,6 @@ import { changeSetting } from '../../../actions/settings'; import ColumnSettings from '../components/column_settings'; const messages = defineMessages({ - clearMessage: { id: 'notifications.clear_confirmation', defaultMessage: 'Are you sure you want to permanently clear all your notifications?' }, - clearConfirm: { id: 'notifications.clear', defaultMessage: 'Clear notifications' }, permissionDenied: { id: 'notifications.permission_denied_alert', defaultMessage: 'Desktop notifications can\'t be enabled, as browser permission has been denied before' }, }); @@ -31,7 +28,7 @@ const mapStateToProps = state => ({ notificationPolicy: state.notificationPolicy, }); -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onChange (path, checked) { if (path[0] === 'push') { @@ -70,14 +67,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }, onClear () { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.clearMessage), - confirm: intl.formatMessage(messages.clearConfirm), - onConfirm: () => dispatch(clearNotifications()), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_CLEAR_NOTIFICATIONS' })); }, onRequestNotificationPermission () { diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx b/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx index 3e26d84069..b57f882a74 100644 --- a/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx +++ b/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx @@ -31,8 +31,6 @@ const messages = defineMessages({ cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' }, cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' }, favourite: { id: 'status.favourite', defaultMessage: 'Favorite' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, open: { id: 'status.open', defaultMessage: 'Expand this status' }, }); @@ -73,19 +71,13 @@ class Footer extends ImmutablePureComponent { }; handleReplyClick = () => { - const { dispatch, askReplyConfirmation, status, intl } = this.props; + const { dispatch, askReplyConfirmation, status, onClose } = this.props; const { signedIn } = this.props.identity; if (signedIn) { if (askReplyConfirmation) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: this._performReply, - }, - })); + onClose(true); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } })); } else { this._performReply(); } diff --git a/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js b/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js index 1c9e3ccce1..34bde2fc6e 100644 --- a/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js +++ b/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js @@ -1,4 +1,4 @@ -import { defineMessages, injectIntl } from 'react-intl'; +import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; @@ -27,15 +27,6 @@ import { deleteModal } from '../../../initial_state'; import { makeGetStatus } from '../../../selectors'; import DetailedStatus from '../components/detailed_status'; -const messages = defineMessages({ - deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, - deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' }, - redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' }, - redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, -}); - const makeMapStateToProps = () => { const getStatus = makeGetStatus(); @@ -48,20 +39,13 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onReply (status) { dispatch((_, getState) => { let state = getState(); if (state.getIn(['compose', 'text']).trim().length !== 0) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: () => dispatch(replyCompose(status)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } })); } else { dispatch(replyCompose(status)); } @@ -98,14 +82,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ if (!deleteModal) { dispatch(deleteStatus(status.get('id'), withRedraft)); } else { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage), - confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm), - onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } })); } }, diff --git a/app/javascript/flavours/glitch/features/status/index.jsx b/app/javascript/flavours/glitch/features/status/index.jsx index 2fca4b61b6..5bc99c6614 100644 --- a/app/javascript/flavours/glitch/features/status/index.jsx +++ b/app/javascript/flavours/glitch/features/status/index.jsx @@ -39,7 +39,6 @@ import { pin, unpin, } from '../../actions/interactions'; -import { changeLocalSetting } from '../../actions/local_settings'; import { openModal } from '../../actions/modal'; import { initMuteModal } from '../../actions/mutes'; import { initReport } from '../../actions/reports'; @@ -67,16 +66,10 @@ import DetailedStatus from './components/detailed_status'; const messages = defineMessages({ - deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, - deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' }, - redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' }, - redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.' }, revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' }, hideAll: { id: 'status.show_less_all', defaultMessage: 'Show less for all' }, statusTitleWithAttachments: { id: 'status.title.with_attachments', defaultMessage: '{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}' }, detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' }, - replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, - replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, tootHeading: { id: 'account.posts_with_replies', defaultMessage: 'Posts and replies' }, }); @@ -294,20 +287,12 @@ class Status extends ImmutablePureComponent { }; handleReplyClick = (status) => { - const { askReplyConfirmation, dispatch, intl } = this.props; + const { askReplyConfirmation, dispatch } = this.props; const { signedIn } = this.props.identity; if (signedIn) { if (askReplyConfirmation) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onDoNotAsk: () => dispatch(changeLocalSetting(['confirm_before_clearing_draft'], false)), - onConfirm: () => dispatch(replyCompose(status)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } })); } else { dispatch(replyCompose(status)); } @@ -350,24 +335,23 @@ class Status extends ImmutablePureComponent { }; handleDeleteClick = (status, withRedraft = false) => { - const { dispatch, intl } = this.props; + const { dispatch } = this.props; if (!deleteModal) { dispatch(deleteStatus(status.get('id'), withRedraft)); } else { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage), - confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm), - onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } })); } }; handleEditClick = (status) => { - this.props.dispatch(editStatus(status.get('id'))); + const { dispatch, askReplyConfirmation } = this.props; + + if (askReplyConfirmation) { + dispatch(openModal({ modalType: 'CONFIRM_EDIT_STATUS', modalProps: { statusId: status.get('id') } })); + } else { + dispatch(editStatus(status.get('id'))); + } }; handleDirectClick = (account) => { diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx deleted file mode 100644 index 51a501595b..0000000000 --- a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx +++ /dev/null @@ -1,83 +0,0 @@ -import PropTypes from 'prop-types'; -import { PureComponent } from 'react'; - -import { injectIntl, FormattedMessage } from 'react-intl'; - -import { Button } from '../../../components/button'; - -class ConfirmationModal extends PureComponent { - - static propTypes = { - message: PropTypes.node.isRequired, - confirm: PropTypes.string.isRequired, - onClose: PropTypes.func.isRequired, - onConfirm: PropTypes.func.isRequired, - secondary: PropTypes.string, - onSecondary: PropTypes.func, - closeWhenConfirm: PropTypes.bool, - onDoNotAsk: PropTypes.func, - intl: PropTypes.object.isRequired, - }; - - static defaultProps = { - closeWhenConfirm: true, - }; - - handleClick = () => { - if (this.props.closeWhenConfirm) { - this.props.onClose(); - } - this.props.onConfirm(); - if (this.props.onDoNotAsk && this.doNotAskCheckbox.checked) { - this.props.onDoNotAsk(); - } - }; - - handleSecondary = () => { - this.props.onClose(); - this.props.onSecondary(); - }; - - handleCancel = () => { - this.props.onClose(); - }; - - setDoNotAskRef = (c) => { - this.doNotAskCheckbox = c; - }; - - render () { - const { message, confirm, secondary, onDoNotAsk } = this.props; - - return ( -
-
- {message} -
- -
- { onDoNotAsk && ( -
- - -
- )} -
- - {secondary !== undefined && ( -
-
-
- ); - } - -} - -export default injectIntl(ConfirmationModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/clear_notifications.tsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/clear_notifications.tsx new file mode 100644 index 0000000000..6560446289 --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/clear_notifications.tsx @@ -0,0 +1,46 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { clearNotifications } from 'flavours/glitch/actions/notification_groups'; +import { useAppDispatch } from 'flavours/glitch/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + clearTitle: { + id: 'notifications.clear_title', + defaultMessage: 'Clear notifications?', + }, + clearMessage: { + id: 'notifications.clear_confirmation', + defaultMessage: + 'Are you sure you want to permanently clear all your notifications?', + }, + clearConfirm: { + id: 'notifications.clear', + defaultMessage: 'Clear notifications', + }, +}); + +export const ConfirmClearNotificationsModal: React.FC< + BaseConfirmationModalProps +> = ({ onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + void dispatch(clearNotifications()); + }, [dispatch]); + + return ( + + ); +}; diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/confirmation_modal.tsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/confirmation_modal.tsx new file mode 100644 index 0000000000..429850ef32 --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/confirmation_modal.tsx @@ -0,0 +1,87 @@ +import { useCallback } from 'react'; + +import { FormattedMessage, defineMessages } from 'react-intl'; + +import { Button } from 'flavours/glitch/components/button'; + +export interface BaseConfirmationModalProps { + onClose: () => void; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars -- keep the message around while we find a place to show it +const messages = defineMessages({ + doNotAskAgain: { + id: 'confirmation_modal.do_not_ask_again', + defaultMessage: 'Do not ask for confirmation again', + }, +}); + +export const ConfirmationModal: React.FC< + { + title: React.ReactNode; + message: React.ReactNode; + confirm: React.ReactNode; + secondary?: React.ReactNode; + onSecondary?: () => void; + onConfirm: () => void; + closeWhenConfirm?: boolean; + } & BaseConfirmationModalProps +> = ({ + title, + message, + confirm, + onClose, + onConfirm, + secondary, + onSecondary, + closeWhenConfirm = true, +}) => { + const handleClick = useCallback(() => { + if (closeWhenConfirm) { + onClose(); + } + + onConfirm(); + }, [onClose, onConfirm, closeWhenConfirm]); + + const handleSecondary = useCallback(() => { + onClose(); + onSecondary?.(); + }, [onClose, onSecondary]); + + const handleCancel = useCallback(() => { + onClose(); + }, [onClose]); + + return ( +
+
+
+

{title}

+

{message}

+
+
+ +
+
+ {secondary && ( + <> + + +
+ + )} + + + + +
+
+
+ ); +}; diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/delete_list.tsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/delete_list.tsx new file mode 100644 index 0000000000..948b6c83da --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/delete_list.tsx @@ -0,0 +1,58 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { useHistory } from 'react-router'; + +import { removeColumn } from 'flavours/glitch/actions/columns'; +import { deleteList } from 'flavours/glitch/actions/lists'; +import { useAppDispatch } from 'flavours/glitch/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + deleteListTitle: { + id: 'confirmations.delete_list.title', + defaultMessage: 'Delete list?', + }, + deleteListMessage: { + id: 'confirmations.delete_list.message', + defaultMessage: 'Are you sure you want to permanently delete this list?', + }, + deleteListConfirm: { + id: 'confirmations.delete_list.confirm', + defaultMessage: 'Delete', + }, +}); + +export const ConfirmDeleteListModal: React.FC< + { + listId: string; + columnId: string; + } & BaseConfirmationModalProps +> = ({ listId, columnId, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + const history = useHistory(); + + const onConfirm = useCallback(() => { + dispatch(deleteList(listId)); + + if (columnId) { + dispatch(removeColumn(columnId)); + } else { + history.push('/lists'); + } + }, [dispatch, history, columnId, listId]); + + return ( + + ); +}; diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/delete_status.tsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/delete_status.tsx new file mode 100644 index 0000000000..e86cec10c0 --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/delete_status.tsx @@ -0,0 +1,67 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { deleteStatus } from 'flavours/glitch/actions/statuses'; +import { useAppDispatch } from 'flavours/glitch/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + deleteAndRedraftTitle: { + id: 'confirmations.redraft.title', + defaultMessage: 'Delete & redraft post?', + }, + deleteAndRedraftMessage: { + id: 'confirmations.redraft.message', + defaultMessage: + 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.', + }, + deleteAndRedraftConfirm: { + id: 'confirmations.redraft.confirm', + defaultMessage: 'Delete & redraft', + }, + deleteTitle: { + id: 'confirmations.delete.title', + defaultMessage: 'Delete post?', + }, + deleteMessage: { + id: 'confirmations.delete.message', + defaultMessage: 'Are you sure you want to delete this status?', + }, + deleteConfirm: { + id: 'confirmations.delete.confirm', + defaultMessage: 'Delete', + }, +}); + +export const ConfirmDeleteStatusModal: React.FC< + { + statusId: string; + withRedraft: boolean; + } & BaseConfirmationModalProps +> = ({ statusId, withRedraft, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + dispatch(deleteStatus(statusId, withRedraft)); + }, [dispatch, statusId, withRedraft]); + + return ( + + ); +}; diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/edit_status.tsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/edit_status.tsx new file mode 100644 index 0000000000..4a7e56c2a1 --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/edit_status.tsx @@ -0,0 +1,45 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { editStatus } from 'flavours/glitch/actions/statuses'; +import { useAppDispatch } from 'flavours/glitch/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + editTitle: { + id: 'confirmations.edit.title', + defaultMessage: 'Overwrite post?', + }, + editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' }, + editMessage: { + id: 'confirmations.edit.message', + defaultMessage: + 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?', + }, +}); + +export const ConfirmEditStatusModal: React.FC< + { + statusId: string; + } & BaseConfirmationModalProps +> = ({ statusId, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + dispatch(editStatus(statusId)); + }, [dispatch, statusId]); + + return ( + + ); +}; diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/index.ts b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/index.ts new file mode 100644 index 0000000000..912c99a393 --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/index.ts @@ -0,0 +1,8 @@ +export { ConfirmationModal } from './confirmation_modal'; +export { ConfirmDeleteStatusModal } from './delete_status'; +export { ConfirmDeleteListModal } from './delete_list'; +export { ConfirmReplyModal } from './reply'; +export { ConfirmEditStatusModal } from './edit_status'; +export { ConfirmUnfollowModal } from './unfollow'; +export { ConfirmClearNotificationsModal } from './clear_notifications'; +export { ConfirmLogOutModal } from './log_out'; diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/log_out.tsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/log_out.tsx new file mode 100644 index 0000000000..ac9439461f --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/log_out.tsx @@ -0,0 +1,40 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { logOut } from 'flavours/glitch/utils/log_out'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + logoutTitle: { id: 'confirmations.logout.title', defaultMessage: 'Log out?' }, + logoutMessage: { + id: 'confirmations.logout.message', + defaultMessage: 'Are you sure you want to log out?', + }, + logoutConfirm: { + id: 'confirmations.logout.confirm', + defaultMessage: 'Log out', + }, +}); + +export const ConfirmLogOutModal: React.FC = ({ + onClose, +}) => { + const intl = useIntl(); + + const onConfirm = useCallback(() => { + logOut(); + }, []); + + return ( + + ); +}; diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/reply.tsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/reply.tsx new file mode 100644 index 0000000000..415a453954 --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/reply.tsx @@ -0,0 +1,46 @@ +import { useCallback } from 'react'; + +import { defineMessages, useIntl } from 'react-intl'; + +import { replyCompose } from 'flavours/glitch/actions/compose'; +import type { Status } from 'flavours/glitch/models/status'; +import { useAppDispatch } from 'flavours/glitch/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + replyTitle: { + id: 'confirmations.reply.title', + defaultMessage: 'Overwrite post?', + }, + replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, + replyMessage: { + id: 'confirmations.reply.message', + defaultMessage: + 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?', + }, +}); + +export const ConfirmReplyModal: React.FC< + { + status: Status; + } & BaseConfirmationModalProps +> = ({ status, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + dispatch(replyCompose(status)); + }, [dispatch, status]); + + return ( + + ); +}; diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/unfollow.tsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/unfollow.tsx new file mode 100644 index 0000000000..fe6f5e362d --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modals/unfollow.tsx @@ -0,0 +1,50 @@ +import { useCallback } from 'react'; + +import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; + +import { unfollowAccount } from 'flavours/glitch/actions/accounts'; +import type { Account } from 'flavours/glitch/models/account'; +import { useAppDispatch } from 'flavours/glitch/store'; + +import type { BaseConfirmationModalProps } from './confirmation_modal'; +import { ConfirmationModal } from './confirmation_modal'; + +const messages = defineMessages({ + unfollowTitle: { + id: 'confirmations.unfollow.title', + defaultMessage: 'Unfollow user?', + }, + unfollowConfirm: { + id: 'confirmations.unfollow.confirm', + defaultMessage: 'Unfollow', + }, +}); + +export const ConfirmUnfollowModal: React.FC< + { + account: Account; + } & BaseConfirmationModalProps +> = ({ account, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onConfirm = useCallback(() => { + dispatch(unfollowAccount(account.id)); + }, [dispatch, account.id]); + + return ( + @{account.acct} }} + /> + } + confirm={intl.formatMessage(messages.unfollowConfirm)} + onConfirm={onConfirm} + onClose={onClose} + /> + ); +}; diff --git a/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx b/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx index 396127829b..7a19983a9c 100644 --- a/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; +import { FormattedMessage, injectIntl } from 'react-intl'; import { Link } from 'react-router-dom'; @@ -9,29 +9,15 @@ import { connect } from 'react-redux'; import { openModal } from 'flavours/glitch/actions/modal'; import { disabledAccountId, movedToAccountId, domain } from 'flavours/glitch/initial_state'; -import { logOut } from 'flavours/glitch/utils/log_out'; - -const messages = defineMessages({ - logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, - logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, -}); const mapStateToProps = (state) => ({ disabledAcct: state.getIn(['accounts', disabledAccountId, 'acct']), movedToAcct: movedToAccountId ? state.getIn(['accounts', movedToAccountId, 'acct']) : undefined, }); -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onLogout () { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.logoutMessage), - confirm: intl.formatMessage(messages.logoutConfirm), - closeWhenConfirm: false, - onConfirm: () => logOut(), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' })); }, }); diff --git a/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx b/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx index 7c0ece465f..fb07f9e549 100644 --- a/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; +import { FormattedMessage, injectIntl } from 'react-intl'; import { Link } from 'react-router-dom'; @@ -11,24 +11,11 @@ import { openModal } from 'flavours/glitch/actions/modal'; import { identityContextPropShape, withIdentity } from 'flavours/glitch/identity_context'; import { domain, version, source_url, statusPageUrl, profile_directory as profileDirectory } from 'flavours/glitch/initial_state'; import { PERMISSION_INVITE_USERS } from 'flavours/glitch/permissions'; -import { logOut } from 'flavours/glitch/utils/log_out'; -const messages = defineMessages({ - logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, - logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, -}); - -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch) => ({ onLogout () { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: intl.formatMessage(messages.logoutMessage), - confirm: intl.formatMessage(messages.logoutConfirm), - closeWhenConfirm: false, - onConfirm: () => logOut(), - }, - })); + dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' })); + }, }); diff --git a/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx b/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx index 063316ef1b..0bc393f7e8 100644 --- a/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx @@ -28,7 +28,16 @@ import ActionsModal from './actions_modal'; import AudioModal from './audio_modal'; import { BoostModal } from './boost_modal'; import BundleModalError from './bundle_modal_error'; -import ConfirmationModal from './confirmation_modal'; +import { + ConfirmationModal, + ConfirmDeleteStatusModal, + ConfirmDeleteListModal, + ConfirmReplyModal, + ConfirmEditStatusModal, + ConfirmUnfollowModal, + ConfirmClearNotificationsModal, + ConfirmLogOutModal, +} from './confirmation_modals'; import DeprecatedSettingsModal from './deprecated_settings_modal'; import DoodleModal from './doodle_modal'; import FavouriteModal from './favourite_modal'; @@ -47,6 +56,13 @@ export const MODAL_COMPONENTS = { 'FAVOURITE': () => Promise.resolve({ default: FavouriteModal }), 'DOODLE': () => Promise.resolve({ default: DoodleModal }), 'CONFIRM': () => Promise.resolve({ default: ConfirmationModal }), + 'CONFIRM_DELETE_STATUS': () => Promise.resolve({ default: ConfirmDeleteStatusModal }), + 'CONFIRM_DELETE_LIST': () => Promise.resolve({ default: ConfirmDeleteListModal }), + 'CONFIRM_REPLY': () => Promise.resolve({ default: ConfirmReplyModal }), + 'CONFIRM_EDIT_STATUS': () => Promise.resolve({ default: ConfirmEditStatusModal }), + 'CONFIRM_UNFOLLOW': () => Promise.resolve({ default: ConfirmUnfollowModal }), + 'CONFIRM_CLEAR_NOTIFICATIONS': () => Promise.resolve({ default: ConfirmClearNotificationsModal }), + 'CONFIRM_LOG_OUT': () => Promise.resolve({ default: ConfirmLogOutModal }), 'MUTE': MuteModal, 'BLOCK': BlockModal, 'DOMAIN_BLOCK': DomainBlockModal, diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json index 5ab92732ce..02e44932f8 100644 --- a/app/javascript/flavours/glitch/locales/en.json +++ b/app/javascript/flavours/glitch/locales/en.json @@ -34,10 +34,6 @@ "confirmations.missing_media_description.confirm": "Send anyway", "confirmations.missing_media_description.edit": "Edit media", "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", "direct.group_by_conversations": "Group by conversation", "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", "favourite_modal.combo": "You can press {combo} to skip this next time", diff --git a/app/javascript/flavours/glitch/styles/components.scss b/app/javascript/flavours/glitch/styles/components.scss index aa96ef6b20..35342a1da4 100644 --- a/app/javascript/flavours/glitch/styles/components.scss +++ b/app/javascript/flavours/glitch/styles/components.scss @@ -6523,6 +6523,25 @@ a.status-card { } } + &__confirmation { + font-size: 14px; + line-height: 20px; + color: $darker-text-color; + + h1 { + font-size: 16px; + line-height: 24px; + color: $primary-text-color; + font-weight: 500; + margin-bottom: 8px; + } + + strong { + font-weight: 700; + color: $primary-text-color; + } + } + &__bullet-points { display: flex; flex-direction: column; @@ -6609,11 +6628,8 @@ a.status-card { .doodle-modal, .boost-modal, -.confirmation-modal, .report-modal, .actions-modal, -.mute-modal, -.block-modal, .compare-history-modal { background: lighten($ui-secondary-color, 8%); color: $inverted-text-color; @@ -6648,10 +6664,7 @@ a.status-card { } .doodle-modal__action-bar, -.boost-modal__action-bar, -.confirmation-modal__action-bar, -.mute-modal__action-bar, -.block-modal__action-bar { +.boost-modal__action-bar { display: flex; justify-content: space-between; align-items: center; @@ -6674,16 +6687,6 @@ a.status-card { } } -.mute-modal, -.block-modal { - line-height: 24px; -} - -.mute-modal .react-toggle, -.block-modal .react-toggle { - vertical-align: middle; -} - .report-modal { width: 90vw; max-width: 700px; @@ -7078,31 +7081,7 @@ a.status-card { } } -.confirmation-modal__action-bar, -.mute-modal__action-bar, -.block-modal__action-bar { - .confirmation-modal__secondary-button { - flex-shrink: 1; - } -} - -.confirmation-modal__secondary-button, -.confirmation-modal__cancel-button, -.mute-modal__cancel-button, -.block-modal__cancel-button { - background-color: transparent; - color: $lighter-text-color; - font-size: 14px; - font-weight: 500; - - &:hover, - &:focus, - &:active { - color: darken($lighter-text-color, 4%); - background-color: transparent; - } -} - +// TODO .confirmation-modal__do_not_ask_again { padding-inline-start: 20px; padding-inline-end: 20px; @@ -7115,9 +7094,6 @@ a.status-card { } } -.confirmation-modal__container, -.mute-modal__container, -.block-modal__container, .report-modal__target { padding: 30px; font-size: 16px; @@ -7151,31 +7127,10 @@ a.status-card { } } -.confirmation-modal__container, .report-modal__target { text-align: center; } -.block-modal, -.mute-modal { - &__explanation { - margin-top: 20px; - } - - .setting-toggle { - margin-top: 20px; - margin-bottom: 24px; - display: flex; - align-items: center; - - &__label { - color: $inverted-text-color; - margin: 0; - margin-inline-start: 8px; - } - } -} - .report-modal__target { padding: 15px; From 0e18e1ba31034ac103c7a7b5acd0e7cd299ed062 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Fri, 26 Jul 2024 11:36:54 +0200 Subject: [PATCH 010/306] [Glitch] Decrease count of filtered notifications when notification requests are accepted or dismissed Port dfd43869c9180d4f4ebfc26ebce30f468a8f5422 to glitch-soc Signed-off-by: Claire --- .../glitch/actions/notification_policies.ts | 6 +++++ .../flavours/glitch/actions/notifications.js | 15 +++++++++++-- .../glitch/reducers/notification_policy.ts | 22 +++++++++++++------ 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/notification_policies.ts b/app/javascript/flavours/glitch/actions/notification_policies.ts index 76452de324..65b9882d3b 100644 --- a/app/javascript/flavours/glitch/actions/notification_policies.ts +++ b/app/javascript/flavours/glitch/actions/notification_policies.ts @@ -1,3 +1,5 @@ +import { createAction } from '@reduxjs/toolkit'; + import { apiGetNotificationPolicy, apiUpdateNotificationsPolicy, @@ -14,3 +16,7 @@ export const updateNotificationsPolicy = createDataLoadingThunk( 'notificationPolicy/update', (policy: Partial) => apiUpdateNotificationsPolicy(policy), ); + +export const decreasePendingNotificationsCount = createAction( + 'notificationPolicy/decreasePendingNotificationCount', +); diff --git a/app/javascript/flavours/glitch/actions/notifications.js b/app/javascript/flavours/glitch/actions/notifications.js index 7a97e71bdd..fc879dce64 100644 --- a/app/javascript/flavours/glitch/actions/notifications.js +++ b/app/javascript/flavours/glitch/actions/notifications.js @@ -18,6 +18,7 @@ import { importFetchedStatuses, } from './importer'; import { submitMarkers } from './markers'; +import { decreasePendingNotificationsCount } from './notification_policies'; import { notificationsUpdate } from "./notifications_typed"; import { register as registerPushNotifications } from './push_notifications'; import { saveSettings } from './settings'; @@ -96,6 +97,12 @@ const fetchRelatedRelationships = (dispatch, notifications) => { } }; +const selectNotificationCountForRequest = (state, id) => { + const requests = state.getIn(['notificationRequests', 'items']); + const thisRequest = requests.find(request => request.get('id') === id); + return thisRequest ? thisRequest.get('notifications_count') : 0; +}; + export const loadPending = () => ({ type: NOTIFICATIONS_LOAD_PENDING, }); @@ -521,11 +528,13 @@ export const fetchNotificationRequestFail = (id, error) => ({ error, }); -export const acceptNotificationRequest = id => (dispatch) => { +export const acceptNotificationRequest = (id) => (dispatch, getState) => { + const count = selectNotificationCountForRequest(getState(), id); dispatch(acceptNotificationRequestRequest(id)); api().post(`/api/v1/notifications/requests/${id}/accept`).then(() => { dispatch(acceptNotificationRequestSuccess(id)); + dispatch(decreasePendingNotificationsCount(count)); }).catch(err => { dispatch(acceptNotificationRequestFail(id, err)); }); @@ -547,11 +556,13 @@ export const acceptNotificationRequestFail = (id, error) => ({ error, }); -export const dismissNotificationRequest = id => (dispatch) => { +export const dismissNotificationRequest = (id) => (dispatch, getState) => { + const count = selectNotificationCountForRequest(getState(), id); dispatch(dismissNotificationRequestRequest(id)); api().post(`/api/v1/notifications/requests/${id}/dismiss`).then(() =>{ dispatch(dismissNotificationRequestSuccess(id)); + dispatch(decreasePendingNotificationsCount(count)); }).catch(err => { dispatch(dismissNotificationRequestFail(id, err)); }); diff --git a/app/javascript/flavours/glitch/reducers/notification_policy.ts b/app/javascript/flavours/glitch/reducers/notification_policy.ts index 2d5450ce44..0ec68f8950 100644 --- a/app/javascript/flavours/glitch/reducers/notification_policy.ts +++ b/app/javascript/flavours/glitch/reducers/notification_policy.ts @@ -2,17 +2,25 @@ import { createReducer, isAnyOf } from '@reduxjs/toolkit'; import { fetchNotificationPolicy, + decreasePendingNotificationsCount, updateNotificationsPolicy, } from 'flavours/glitch/actions/notification_policies'; import type { NotificationPolicy } from 'flavours/glitch/models/notification_policy'; export const notificationPolicyReducer = createReducer(null, (builder) => { - builder.addMatcher( - isAnyOf( - fetchNotificationPolicy.fulfilled, - updateNotificationsPolicy.fulfilled, - ), - (_state, action) => action.payload, - ); + builder + .addCase(decreasePendingNotificationsCount, (state, action) => { + if (state) { + state.summary.pending_notifications_count -= action.payload; + state.summary.pending_requests_count -= 1; + } + }) + .addMatcher( + isAnyOf( + fetchNotificationPolicy.fulfilled, + updateNotificationsPolicy.fulfilled, + ), + (_state, action) => action.payload, + ); }); From 90d6297191ddf5ebd9e290d9725df96cfda00681 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 10:06:12 +0200 Subject: [PATCH 011/306] chore(deps): update eslint (non-major) (#31188) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 218 ++++++++++++++++++++++++--------------------------- 2 files changed, 102 insertions(+), 118 deletions(-) diff --git a/package.json b/package.json index 385b8fb5b4..18983b43e3 100644 --- a/package.json +++ b/package.json @@ -180,7 +180,7 @@ "eslint-plugin-import": "~2.29.0", "eslint-plugin-jsdoc": "^48.0.0", "eslint-plugin-jsx-a11y": "~6.9.0", - "eslint-plugin-promise": "~6.4.0", + "eslint-plugin-promise": "~6.6.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "husky": "^9.0.11", diff --git a/yarn.lock b/yarn.lock index 692787093a..d71e73b09a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2153,17 +2153,14 @@ __metadata: languageName: node linkType: hard -"@es-joy/jsdoccomment@npm:~0.43.1": - version: 0.43.1 - resolution: "@es-joy/jsdoccomment@npm:0.43.1" +"@es-joy/jsdoccomment@npm:~0.46.0": + version: 0.46.0 + resolution: "@es-joy/jsdoccomment@npm:0.46.0" dependencies: - "@types/eslint": "npm:^8.56.5" - "@types/estree": "npm:^1.0.5" - "@typescript-eslint/types": "npm:^7.2.0" comment-parser: "npm:1.4.1" - esquery: "npm:^1.5.0" + esquery: "npm:^1.6.0" jsdoc-type-pratt-parser: "npm:~4.0.0" - checksum: 10c0/2a4842b0e37eb937d55e3028ab2cd7ece7097e1f8c878bb9e28c3309371844688c2869d25bb949e2664c9ba63e388ea09b769c9f42f77515d328ec40e6fcfed1 + checksum: 10c0/a7a67936ebf6d9aaf74af018c3ac744769af3552b05ad9b88fca96b2ffdca16e724b0ff497f53634ec4cca81e98d8c471b6b6bde0fa5b725af4222ad9a0707f0 languageName: node linkType: hard @@ -2845,7 +2842,7 @@ __metadata: eslint-plugin-import: "npm:~2.29.0" eslint-plugin-jsdoc: "npm:^48.0.0" eslint-plugin-jsx-a11y: "npm:~6.9.0" - eslint-plugin-promise: "npm:~6.4.0" + eslint-plugin-promise: "npm:~6.6.0" eslint-plugin-react: "npm:^7.33.2" eslint-plugin-react-hooks: "npm:^4.6.0" file-loader: "npm:^6.2.0" @@ -3538,7 +3535,7 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:7 || 8, @types/eslint@npm:^8.56.5": +"@types/eslint@npm:7 || 8": version: 8.56.10 resolution: "@types/eslint@npm:8.56.10" dependencies: @@ -3548,7 +3545,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": +"@types/estree@npm:*, @types/estree@npm:^1.0.0": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d @@ -4125,14 +4122,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.14.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.14.1" + version: 7.17.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.17.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.14.1" - "@typescript-eslint/type-utils": "npm:7.14.1" - "@typescript-eslint/utils": "npm:7.14.1" - "@typescript-eslint/visitor-keys": "npm:7.14.1" + "@typescript-eslint/scope-manager": "npm:7.17.0" + "@typescript-eslint/type-utils": "npm:7.17.0" + "@typescript-eslint/utils": "npm:7.17.0" + "@typescript-eslint/visitor-keys": "npm:7.17.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -4143,25 +4140,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/7c2b9b98a38d78326b0ff7348fe001203eda10817ca7834a7a01f492ae7c2508469bbafaa933208d6459f8ff6685277685983cf6f6843e556a6ab2aa5c05080c + checksum: 10c0/654d589531ae45b8ca8f3969e785926b2544100a985968d86c828e2a1ff50331250e19c8b4af83a4ba17847a0047479662eb317e4ad94f6279cac03acd5cda5a languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.14.1 - resolution: "@typescript-eslint/parser@npm:7.14.1" + version: 7.17.0 + resolution: "@typescript-eslint/parser@npm:7.17.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.14.1" - "@typescript-eslint/types": "npm:7.14.1" - "@typescript-eslint/typescript-estree": "npm:7.14.1" - "@typescript-eslint/visitor-keys": "npm:7.14.1" + "@typescript-eslint/scope-manager": "npm:7.17.0" + "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/typescript-estree": "npm:7.17.0" + "@typescript-eslint/visitor-keys": "npm:7.17.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/db3169d4852685cfb27db741c557f58a3e52104bfacc7621beb7c94ec36ac2a08d4e410ac86745db52f482fbfc87e99fa0a26c1d7a10d37a215cce85e1661f0e + checksum: 10c0/0cf6922412517b4c005609b035119ddd2798e1b6e74e1bccd487aa53119d27067cfd89311f00b8e96b2b044a0fb7373418a16552be86079879158b260c397418 languageName: node linkType: hard @@ -4175,22 +4172,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/scope-manager@npm:7.14.1" +"@typescript-eslint/scope-manager@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/scope-manager@npm:7.17.0" dependencies: - "@typescript-eslint/types": "npm:7.14.1" - "@typescript-eslint/visitor-keys": "npm:7.14.1" - checksum: 10c0/f8c05a0d6f8de4cc19b90a4da308817c66e53f36f7ec48f6cc23e93c7399bc418643d8135933aaf5fc013199cbef0e1ea4223f5147db5ca401b239eaf087011e + "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/visitor-keys": "npm:7.17.0" + checksum: 10c0/e1a693e19dc855fe6d04b46c6c205019bfc937eda5f8b255393f8267ebddd282165568336e37b04aab544b155a807784b9c4a92129dfc7c1eef5a9e9fe052685 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/type-utils@npm:7.14.1" +"@typescript-eslint/type-utils@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/type-utils@npm:7.17.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.14.1" - "@typescript-eslint/utils": "npm:7.14.1" + "@typescript-eslint/typescript-estree": "npm:7.17.0" + "@typescript-eslint/utils": "npm:7.17.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -4198,7 +4195,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/bd1c4a8db6273e24156fb10da2cbeb52b4eb03f819da193d4b6bd5a95db3b5524c6fe00d088308d8855b9ae60a3b82afa3a06e89982a09a8573561da960758fd + checksum: 10c0/b415cf37c0922cded78735c5049cb5a5b0065e1c0ce4a81ca2a26422763ccacca8945efa45480f40530f2ec414a14d35a88a6798258aa889f7a9cf4ca4a240cd languageName: node linkType: hard @@ -4209,10 +4206,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.14.1, @typescript-eslint/types@npm:^7.2.0": - version: 7.14.1 - resolution: "@typescript-eslint/types@npm:7.14.1" - checksum: 10c0/5b7bda83c47a9b386482e63447c6b0ed7bd4e82eb43f11a180c6e2f3d2e7a2828f57bcbed82196ad761c49e363cccf4c81a89f1fc976e9f5f0a79dcc928fa2d2 +"@typescript-eslint/types@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/types@npm:7.17.0" + checksum: 10c0/8f734294d432b37c534f17eb2befdfe43b76874d09118d6adf7e308e5a586e9e11b7021abe4f6692a6e6226de58a15b3cfe1300939556ce1c908d9af627b7400 languageName: node linkType: hard @@ -4235,12 +4232,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.14.1" +"@typescript-eslint/typescript-estree@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.17.0" dependencies: - "@typescript-eslint/types": "npm:7.14.1" - "@typescript-eslint/visitor-keys": "npm:7.14.1" + "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/visitor-keys": "npm:7.17.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -4250,21 +4247,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a8da9bcc4de3334a225424946abd99374de05c42098455419224bc0f46bb1b66115f8bd6ae268461294b90943ed4a407bcd255c0fa60eb76ba4cdc5fc7c20855 + checksum: 10c0/10967823ce00c9f8cd4a8b56bed3524c098e38cc0e27aaa49ffd8fad4e671c00226bf0330ba858948750b88dc55527ebeb62c74be8a30bac18a106d6c033ab59 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/utils@npm:7.14.1" +"@typescript-eslint/utils@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/utils@npm:7.17.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.14.1" - "@typescript-eslint/types": "npm:7.14.1" - "@typescript-eslint/typescript-estree": "npm:7.14.1" + "@typescript-eslint/scope-manager": "npm:7.17.0" + "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/typescript-estree": "npm:7.17.0" peerDependencies: eslint: ^8.56.0 - checksum: 10c0/c7f635a3c2c6c085e1d51a52088e55cad9d7e1257b1f60378e5eeb6eb0871db027d42747e9ef60a2f557cf9dd68b2ce014d488d795db8f771506290b164b0e5a + checksum: 10c0/1f3e22820b3ab3e47809c45e576614ad4a965f5c8634856eca5c70981386b9351a77fb172ba32345e7c5667479cf9526c673699dd38dccd0616ad6db21704e72 languageName: node linkType: hard @@ -4295,13 +4292,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.14.1" +"@typescript-eslint/visitor-keys@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.17.0" dependencies: - "@typescript-eslint/types": "npm:7.14.1" + "@typescript-eslint/types": "npm:7.17.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/39ac489990fcfdcee442f27658431a0eb44ccf694f701a45df2a108c47cea9582e0955bff0d449047549149385f72895a5d7e6c1622ece1fe32594b7cecb85f3 + checksum: 10c0/fa6b339d51fc3710288bb2ffaa46d639551d77965cc42c36f96c4f43aed663ff12972e8a28652a280f6ce20b7a92dc2aea14b2b4049012799be2fc2d3cbb2c60 languageName: node linkType: hard @@ -4962,18 +4959,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.toreversed@npm:^1.1.2": - version: 1.1.2 - resolution: "array.prototype.toreversed@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - checksum: 10c0/2b7627ea85eae1e80ecce665a500cc0f3355ac83ee4a1a727562c7c2a1d5f1c0b4dd7b65c468ec6867207e452ba01256910a2c0b41486bfdd11acf875a7a3435 - languageName: node - linkType: hard - "array.prototype.tosorted@npm:^1.1.4": version: 1.1.4 resolution: "array.prototype.tosorted@npm:1.1.4" @@ -7931,22 +7916,22 @@ __metadata: linkType: hard "eslint-plugin-jsdoc@npm:^48.0.0": - version: 48.5.0 - resolution: "eslint-plugin-jsdoc@npm:48.5.0" + version: 48.8.3 + resolution: "eslint-plugin-jsdoc@npm:48.8.3" dependencies: - "@es-joy/jsdoccomment": "npm:~0.43.1" + "@es-joy/jsdoccomment": "npm:~0.46.0" are-docs-informative: "npm:^0.0.2" comment-parser: "npm:1.4.1" - debug: "npm:^4.3.4" + debug: "npm:^4.3.5" escape-string-regexp: "npm:^4.0.0" - esquery: "npm:^1.5.0" - parse-imports: "npm:^2.1.0" - semver: "npm:^7.6.2" + esquery: "npm:^1.6.0" + parse-imports: "npm:^2.1.1" + semver: "npm:^7.6.3" spdx-expression-parse: "npm:^4.0.0" - synckit: "npm:^0.9.0" + synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/1c5eb83df06cb228e44ad2c9da5b31987347a45b99d9e7a68957d178487a81603ad3c4c7db1ecba7e8a62d7ae20d9de1aec18a8cf2aa0e9169731cec54f78ab7 + checksum: 10c0/78d893614b188617de5a03d8163406455e3b739fd7b86192eb05a29cf8e7f06909a6f6a1b9dc2acd31e5ae2bccd94600eaea247d277f58c3c946c0fdb36a57f7 languageName: node linkType: hard @@ -7976,12 +7961,12 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-promise@npm:~6.4.0": - version: 6.4.0 - resolution: "eslint-plugin-promise@npm:6.4.0" +"eslint-plugin-promise@npm:~6.6.0": + version: 6.6.0 + resolution: "eslint-plugin-promise@npm:6.6.0" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/5d07be976504f92d1d91756b0b0588a4c65e379af2520dd77c8655203085c0ab43e24d4698d1ac4b50926430cd8eb81cd1cc4c3653aae8386c805577bdf57b6c + checksum: 10c0/93a667dbc9ff15c4d586b0d40a31c7828314cbbb31b2b9a75802aa4ef536e9457bb3e1a89b384b07aa336dd61b315ae8b0aadc0870210378023dd018819b59b3 languageName: node linkType: hard @@ -7995,30 +7980,30 @@ __metadata: linkType: hard "eslint-plugin-react@npm:^7.33.2": - version: 7.34.3 - resolution: "eslint-plugin-react@npm:7.34.3" + version: 7.35.0 + resolution: "eslint-plugin-react@npm:7.35.0" dependencies: array-includes: "npm:^3.1.8" array.prototype.findlast: "npm:^1.2.5" array.prototype.flatmap: "npm:^1.3.2" - array.prototype.toreversed: "npm:^1.1.2" array.prototype.tosorted: "npm:^1.1.4" doctrine: "npm:^2.1.0" es-iterator-helpers: "npm:^1.0.19" estraverse: "npm:^5.3.0" + hasown: "npm:^2.0.2" jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" minimatch: "npm:^3.1.2" object.entries: "npm:^1.1.8" object.fromentries: "npm:^2.0.8" - object.hasown: "npm:^1.1.4" object.values: "npm:^1.2.0" prop-types: "npm:^15.8.1" resolve: "npm:^2.0.0-next.5" semver: "npm:^6.3.1" string.prototype.matchall: "npm:^4.0.11" + string.prototype.repeat: "npm:^1.0.0" peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 10c0/60717e32c9948e2b4ddc53dac7c4b62c68fc7129c3249079191c941c08ebe7d1f4793d65182922d19427c2a6634e05231a7b74ceee34169afdfd0e43d4a43d26 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 10c0/eedcc33de4b2cda91d56ae517a4f771a0c76da9c1e26c95543969012871381e11d4d6cffdf6fa8423036585c289eb3500f3f93fb1d314fb2624e0aa1e463305e languageName: node linkType: hard @@ -8118,12 +8103,12 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.2, esquery@npm:^1.5.0": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" +"esquery@npm:^1.4.2, esquery@npm:^1.6.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: "npm:^5.1.0" - checksum: 10c0/a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213 + checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2 languageName: node linkType: hard @@ -12518,17 +12503,6 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.1.4": - version: 1.1.4 - resolution: "object.hasown@npm:1.1.4" - dependencies: - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/f23187b08d874ef1aea060118c8259eb7f99f93c15a50771d710569534119062b90e087b92952b2d0fb1bb8914d61fb0b43c57fb06f622aaad538fe6868ab987 - languageName: node - linkType: hard - "object.pick@npm:^1.3.0": version: 1.3.0 resolution: "object.pick@npm:1.3.0" @@ -12774,13 +12748,13 @@ __metadata: languageName: node linkType: hard -"parse-imports@npm:^2.1.0": - version: 2.1.0 - resolution: "parse-imports@npm:2.1.0" +"parse-imports@npm:^2.1.1": + version: 2.1.1 + resolution: "parse-imports@npm:2.1.1" dependencies: es-module-lexer: "npm:^1.5.3" slashes: "npm:^3.0.12" - checksum: 10c0/18ef58008868d2d09e472bb540d63efc7cc27f2c33607e5d09c256ece7a30062cac292bda96d820438e94f3dbf558c85e4b084c10d238baa858796794e6cf628 + checksum: 10c0/c9bb0b4e1823f84f034d2d7bd2b37415b1715a5c963fda14968c706186b48b02c10e97d04bce042b9dcd679b42f29c391ea120799ddf581c7f54786edd99e3a9 languageName: node linkType: hard @@ -15574,12 +15548,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2": - version: 7.6.2 - resolution: "semver@npm:7.6.2" +"semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c + checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf languageName: node linkType: hard @@ -16365,6 +16339,16 @@ __metadata: languageName: node linkType: hard +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: "npm:^1.1.3" + es-abstract: "npm:^1.17.5" + checksum: 10c0/94c7978566cffa1327d470fd924366438af9b04b497c43a9805e476e2e908aa37a1fd34cc0911156c17556dab62159d12c7b92b3cc304c3e1281fe4c8e668f40 + languageName: node + linkType: hard + "string.prototype.trim@npm:^1.2.9": version: 1.2.9 resolution: "string.prototype.trim@npm:1.2.9" @@ -16788,13 +16772,13 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.9.0": - version: 0.9.0 - resolution: "synckit@npm:0.9.0" +"synckit@npm:^0.9.1": + version: 0.9.1 + resolution: "synckit@npm:0.9.1" dependencies: "@pkgr/core": "npm:^0.1.0" tslib: "npm:^2.6.2" - checksum: 10c0/b5c1e7c03fefe3d36a9ab4e71dd21859cb32be4138712c31a893382a568fd00efc59ede8f521dd7e53d43a2fea92bdf717e987ea9ed6ad94f97ef28d71d0ba2f + checksum: 10c0/d8b89e1bf30ba3ffb469d8418c836ad9c0c062bf47028406b4d06548bc66af97155ea2303b96c93bf5c7c0f0d66153a6fbd6924c76521b434e6a9898982abc2e languageName: node linkType: hard From cefd8b54848d111c4a6ad8366ed2951768311be2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 08:06:53 +0000 Subject: [PATCH 012/306] chore(deps): update dependency husky to v9.1.3 (#31185) 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 d71e73b09a..8a65f7672f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9511,11 +9511,11 @@ __metadata: linkType: hard "husky@npm:^9.0.11": - version: 9.1.2 - resolution: "husky@npm:9.1.2" + version: 9.1.3 + resolution: "husky@npm:9.1.3" bin: husky: bin.js - checksum: 10c0/7e25c31ef98ac35d357147005d6e5d87db2abca7297e7c5aac931de3699acd32a3f1a9f8e53f101daeab818f0cfe9d18fa7e34f7cf5c9c4437c3665123456dea + checksum: 10c0/3fb8657ff97f529dab0b9a0afa6b818ec604f60c39abc13e8e3f4263ea30a3aa6fff7a1b625b8a53700899ce0ea2f5f656981c46b8f1837cfd84ddb6da883fb2 languageName: node linkType: hard From 4cc634dc4454148b918b27057703ccfab8950a47 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 10:07:28 +0200 Subject: [PATCH 013/306] fix(deps): update dependency use-debounce to v10.0.2 (#31177) 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 8a65f7672f..2c90f719e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17519,11 +17519,11 @@ __metadata: linkType: hard "use-debounce@npm:^10.0.0": - version: 10.0.1 - resolution: "use-debounce@npm:10.0.1" + version: 10.0.2 + resolution: "use-debounce@npm:10.0.2" peerDependencies: react: ">=16.8.0" - checksum: 10c0/377a11814a708f5c392f465cbbe2d119a8a2635c8226cc5e30eba397c4436f8e8234385d069467b369d105ed0d3be733c6a08d8ae1004017c6d6f58f4d4c24d8 + checksum: 10c0/2d992108557a0ad3e59bc35028c0dbc6ad12088a08d992fd52aad3881dd24663606fe71f7fd925327fb98599c6252bfa4c143649351d48e6243d7a3332594fd6 languageName: node linkType: hard From 37f57184824e8ca688314bfdb34e359fc36f0a43 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 08:08:07 +0000 Subject: [PATCH 014/306] chore(deps): update dependency sanitize to v6.1.2 (#31172) 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 31e317e819..60d8362432 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -451,7 +451,7 @@ GEM net-smtp (0.5.0) net-protocol nio4r (2.7.3) - nokogiri (1.16.6) + nokogiri (1.16.7) mini_portile2 (~> 2.8.2) racc (~> 1.4) nsa (0.3.0) @@ -775,7 +775,7 @@ GEM fugit (~> 1.1, >= 1.1.6) safety_net_attestation (0.4.0) jwt (~> 2.0) - sanitize (6.1.1) + sanitize (6.1.2) crass (~> 1.0.2) nokogiri (>= 1.12.0) scenic (1.8.0) From 848a5ca53d47d335cf74e82c584c36dce701172a Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Mon, 29 Jul 2024 03:10:23 -0500 Subject: [PATCH 015/306] Follow up tweaking of admin UI changes (#31168) --- app/javascript/styles/mastodon-light/diff.scss | 10 ---------- app/javascript/styles/mastodon/admin.scss | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 635bab5460..0ad8e1028e 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -298,12 +298,6 @@ html { .directory__tag > div { background: $white; border: 1px solid var(--background-border-color); - - @media screen and (max-width: $no-gap-breakpoint) { - border-left: 0; - border-right: 0; - border-top: 0; - } } .picture-in-picture-placeholder { @@ -318,10 +312,6 @@ html { &:focus { background: $ui-base-color; } - - @media screen and (max-width: $no-gap-breakpoint) { - border: 0; - } } .batch-table { diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 7420a6fc59..810f59b9a5 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -1,6 +1,6 @@ @use 'sass:math'; -$no-columns-breakpoint: 600px; +$no-columns-breakpoint: 890px; $sidebar-width: 300px; $content-width: 840px; From ec5a860924183f1f21d73c6660b9fff197b889cb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 10:24:15 +0200 Subject: [PATCH 016/306] New Crowdin Translations (automated) (#31169) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/bg.json | 8 ++++ app/javascript/mastodon/locales/ca.json | 16 +++---- app/javascript/mastodon/locales/cy.json | 27 ++++++++++- app/javascript/mastodon/locales/de.json | 2 +- app/javascript/mastodon/locales/es-AR.json | 10 ++-- app/javascript/mastodon/locales/fi.json | 40 ++++++++-------- app/javascript/mastodon/locales/he.json | 10 +++- app/javascript/mastodon/locales/ia.json | 6 +++ app/javascript/mastodon/locales/it.json | 8 ++++ app/javascript/mastodon/locales/kab.json | 2 + app/javascript/mastodon/locales/lt.json | 8 ++++ app/javascript/mastodon/locales/sk.json | 12 +++++ app/javascript/mastodon/locales/sq.json | 8 ++++ app/javascript/mastodon/locales/sv.json | 18 ++++++++ app/javascript/mastodon/locales/tr.json | 8 ++++ app/javascript/mastodon/locales/uk.json | 4 ++ app/javascript/mastodon/locales/vi.json | 8 ++++ config/locales/bg.yml | 5 +- config/locales/cy.yml | 2 + config/locales/devise.fi.yml | 8 ++-- config/locales/doorkeeper.bg.yml | 1 + config/locales/doorkeeper.ca.yml | 1 + config/locales/doorkeeper.cy.yml | 1 + config/locales/doorkeeper.da.yml | 1 + config/locales/doorkeeper.de.yml | 1 + config/locales/doorkeeper.es-AR.yml | 1 + config/locales/doorkeeper.es-MX.yml | 1 + config/locales/doorkeeper.es.yml | 1 + config/locales/doorkeeper.fi.yml | 3 +- config/locales/doorkeeper.fo.yml | 1 + config/locales/doorkeeper.ga.yml | 1 + config/locales/doorkeeper.is.yml | 1 + config/locales/doorkeeper.it.yml | 1 + config/locales/doorkeeper.lt.yml | 1 + config/locales/doorkeeper.nl.yml | 1 + config/locales/doorkeeper.pl.yml | 1 + config/locales/doorkeeper.pt-PT.yml | 1 + config/locales/doorkeeper.sq.yml | 1 + config/locales/doorkeeper.sv.yml | 1 + config/locales/doorkeeper.tr.yml | 1 + config/locales/doorkeeper.uk.yml | 1 + config/locales/doorkeeper.vi.yml | 1 + config/locales/doorkeeper.zh-CN.yml | 1 + config/locales/doorkeeper.zh-TW.yml | 1 + config/locales/fi.yml | 54 +++++++++++----------- config/locales/lt.yml | 7 ++- config/locales/simple_form.cy.yml | 1 + config/locales/simple_form.fi.yml | 4 +- config/locales/simple_form.sv.yml | 1 + config/locales/sv.yml | 4 ++ 50 files changed, 234 insertions(+), 73 deletions(-) diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 2161286c6c..b83286bf90 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "Блокиране", "confirmations.delete.confirm": "Изтриване", "confirmations.delete.message": "Наистина ли искате да изтриете публикацията?", + "confirmations.delete.title": "Изтривате ли публикацията?", "confirmations.delete_list.confirm": "Изтриване", "confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?", + "confirmations.delete_list.title": "Изтривате ли списъка?", "confirmations.discard_edit_media.confirm": "Отхвърляне", "confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?", "confirmations.edit.confirm": "Редактиране", "confirmations.edit.message": "Редактирането сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?", + "confirmations.edit.title": "Презаписвате ли публикацията?", "confirmations.logout.confirm": "Излизане", "confirmations.logout.message": "Наистина ли искате да излезете?", + "confirmations.logout.title": "Излизате ли от системата?", "confirmations.mute.confirm": "Заглушаване", "confirmations.redraft.confirm": "Изтриване и преработване", "confirmations.redraft.message": "Наистина ли искате да изтриете тази публикация и да я направите чернова? Означаванията като любими и подсилванията ще се изгубят, а и отговорите към първоначалната публикация ще осиротеят.", + "confirmations.redraft.title": "Изтривате и преработвате ли публикацията?", "confirmations.reply.confirm": "Отговор", "confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?", + "confirmations.reply.title": "Презаписвате ли публикацията?", "confirmations.unfollow.confirm": "Без следване", "confirmations.unfollow.message": "Наистина ли искате да не следвате {name}?", + "confirmations.unfollow.title": "Спирате ли да следвате потребителя?", "conversation.delete": "Изтриване на разговора", "conversation.mark_as_read": "Маркиране като прочетено", "conversation.open": "Преглед на разговора", @@ -503,6 +510,7 @@ "notification_requests.title": "Филтрирани известия", "notifications.clear": "Изчистване на известията", "notifications.clear_confirmation": "Наистина ли искате да изчистите завинаги всичките си известия?", + "notifications.clear_title": "Изчиствате ли известията?", "notifications.column_settings.admin.report": "Нови доклади:", "notifications.column_settings.admin.sign_up": "Нови регистрации:", "notifications.column_settings.alert": "Известия на работния плот", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index f44d60e9c4..164a2cdb3a 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -171,28 +171,28 @@ "confirmations.block.confirm": "Bloca", "confirmations.delete.confirm": "Elimina", "confirmations.delete.message": "Segur que vols eliminar aquest tut?", - "confirmations.delete.title": "Elimina la publicació?", + "confirmations.delete.title": "Eliminar la publicació?", "confirmations.delete_list.confirm": "Elimina", "confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?", - "confirmations.delete_list.title": "Elimina la llista?", + "confirmations.delete_list.title": "Eliminar la llista?", "confirmations.discard_edit_media.confirm": "Descarta", "confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?", "confirmations.edit.confirm": "Edita", "confirmations.edit.message": "Editant ara sobreescriuràs el missatge que estàs editant. Segur que vols continuar?", - "confirmations.edit.title": "Sobreescriu la publicació?", + "confirmations.edit.title": "Sobreescriure la publicació?", "confirmations.logout.confirm": "Tanca la sessió", "confirmations.logout.message": "Segur que vols tancar la sessió?", - "confirmations.logout.title": "Tanca la sessió?", + "confirmations.logout.title": "Tancar la sessió?", "confirmations.mute.confirm": "Silencia", "confirmations.redraft.confirm": "Esborra i reescriu", "confirmations.redraft.message": "Segur que vols eliminar aquest tut i tornar a escriure'l? Es perdran tots els impulsos i els favorits, i les respostes al tut original quedaran aïllades.", - "confirmations.redraft.title": "Esborra i reescriu la publicació?", + "confirmations.redraft.title": "Esborrar i reescriure la publicació?", "confirmations.reply.confirm": "Respon", "confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?", - "confirmations.reply.title": "Sobreescriu la publicació?", + "confirmations.reply.title": "Sobreescriure la publicació?", "confirmations.unfollow.confirm": "Deixa de seguir", "confirmations.unfollow.message": "Segur que vols deixar de seguir {name}?", - "confirmations.unfollow.title": "Deixa de seguir l'usuari?", + "confirmations.unfollow.title": "Deixar de seguir l'usuari?", "conversation.delete": "Elimina la conversa", "conversation.mark_as_read": "Marca com a llegida", "conversation.open": "Mostra la conversa", @@ -510,7 +510,7 @@ "notification_requests.title": "Notificacions filtrades", "notifications.clear": "Esborra les notificacions", "notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?", - "notifications.clear_title": "Esborra les notificacions?", + "notifications.clear_title": "Esborrar les notificacions?", "notifications.column_settings.admin.report": "Nous informes:", "notifications.column_settings.admin.sign_up": "Registres nous:", "notifications.column_settings.alert": "Notificacions d'escriptori", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index cc9d3fd855..828896678b 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -9,7 +9,7 @@ "about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.", "about.domain_blocks.suspended.title": "Ataliwyd", "about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.", - "about.powered_by": "Cyfrwng cymdeithasol datganoledig sy'n cael ei yrru gan {mastodon}", + "about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}", "about.rules": "Rheolau'r gweinydd", "account.account_note_header": "Nodyn", "account.add_or_remove_from_list": "Ychwanegu neu Ddileu o'r rhestrau", @@ -35,7 +35,9 @@ "account.follow_back": "Dilyn yn ôl", "account.followers": "Dilynwyr", "account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.", + "account.followers_counter": "{count, plural, one {{counter} dilynwr} two {{counter} ddilynwr} other {{counter} dilynwyr}}", "account.following": "Yn dilyn", + "account.following_counter": "{count, plural, one {Yn dilyn {counter}} other {Yn dilyn {counter}}}", "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.", "account.go_to_profile": "Mynd i'r proffil", "account.hide_reblogs": "Cuddio hybiau gan @{name}", @@ -61,6 +63,7 @@ "account.requested_follow": "Mae {name} wedi gwneud cais i'ch dilyn", "account.share": "Rhannwch broffil @{name}", "account.show_reblogs": "Dangos hybiau gan @{name}", + "account.statuses_counter": "{count, plural, one {{counter} post} two {{counter} bost} few {{counter} phost} many {{counter} post} other {{counter} post}}", "account.unblock": "Dadflocio @{name}", "account.unblock_domain": "Dadflocio parth {domain}", "account.unblock_short": "Dadflocio", @@ -168,21 +171,28 @@ "confirmations.block.confirm": "Blocio", "confirmations.delete.confirm": "Dileu", "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?", + "confirmations.delete.title": "Dileu post?", "confirmations.delete_list.confirm": "Dileu", "confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu'r rhestr hwn am byth?", + "confirmations.delete_list.title": "Dileu rhestr?", "confirmations.discard_edit_media.confirm": "Dileu", "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg - eu dileu beth bynnag?", "confirmations.edit.confirm": "Golygu", "confirmations.edit.message": "Bydd golygu nawr yn trosysgrifennu'r neges rydych yn ei ysgrifennu ar hyn o bryd. Ydych chi'n siŵr eich bod eisiau gwneud hyn?", + "confirmations.edit.title": "Trosysgrifo post?", "confirmations.logout.confirm": "Allgofnodi", "confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?", + "confirmations.logout.title": "Allgofnodi?", "confirmations.mute.confirm": "Tewi", "confirmations.redraft.confirm": "Dileu ac ailddrafftio", "confirmations.redraft.message": "Ydych chi'n siŵr eich bod am ddileu'r postiad hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd atebion i'r post gwreiddiol yn mynd yn amddifad.", + "confirmations.redraft.title": "Dileu & ailddraftio post?", "confirmations.reply.confirm": "Ateb", "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n siŵr eich bod am barhau?", + "confirmations.reply.title": "Trosysgrifo post?", "confirmations.unfollow.confirm": "Dad-ddilyn", "confirmations.unfollow.message": "Ydych chi'n siŵr eich bod am ddad-ddilyn {name}?", + "confirmations.unfollow.title": "Dad-ddilyn defnyddiwr?", "conversation.delete": "Dileu sgwrs", "conversation.mark_as_read": "Nodi fel wedi'i ddarllen", "conversation.open": "Gweld sgwrs", @@ -408,6 +418,7 @@ "limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan gymedrolwyr {domain}.", "link_preview.author": "Gan {name}", "link_preview.more_from_author": "Mwy gan {name}", + "link_preview.shares": "{count, plural, one {{counter} post} two {{counter} bost} few {{counter} phost} many {{counter} post} other {{counter} post}}", "lists.account.add": "Ychwanegu at restr", "lists.account.remove": "Tynnu o'r rhestr", "lists.delete": "Dileu rhestr", @@ -435,6 +446,8 @@ "mute_modal.title": "Tewi defnyddiwr?", "mute_modal.you_wont_see_mentions": "Welwch chi ddim postiadau sy'n sôn amdanyn nhw.", "mute_modal.you_wont_see_posts": "Gallan nhw weld eich postiadau o hyd, ond fyddwch chi ddim yn gweld eu rhai hwy.", + "name_and_others": "{name} a(c) {count, plural, one {# arall} other {# eraill}}", + "name_and_others_with_link": "{name} a{count, plural, zero {}one {c # arall} two { # eraill} few { # eraill} many { # eraill} other { # eraill}}", "navigation_bar.about": "Ynghylch", "navigation_bar.advanced_interface": "Agor mewn rhyngwyneb gwe uwch", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio", @@ -462,6 +475,9 @@ "navigation_bar.security": "Diogelwch", "not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.", "notification.admin.report": "Adroddwyd ar {name} {target}", + "notification.admin.report_account_other": "Adroddodd {name} {count, plural, one {un post} two {# bost} few {# phost} other {# post}} gan {target}", + "notification.admin.report_statuses": "Adroddodd {name} {target} ar gyfer {category}", + "notification.admin.report_statuses_other": "Adroddodd {name} {target}", "notification.admin.sign_up": "Cofrestrodd {name}", "notification.favourite": "Hoffodd {name} eich postiad", "notification.follow": "Dilynodd {name} chi", @@ -477,6 +493,8 @@ "notification.moderation_warning.action_silence": "Mae eich cyfrif wedi'i gyfyngu.", "notification.moderation_warning.action_suspend": "Mae eich cyfrif wedi'i hatal.", "notification.own_poll": "Mae eich pleidlais wedi dod i ben", + "notification.poll": "Mae arolwg y gwnaethoch bleidleisio ynddo wedi dod i ben", + "notification.private_mention": "Mae {name} wedi eich crybwyll yn breifat", "notification.reblog": "Hybodd {name} eich post", "notification.relationships_severance_event": "Wedi colli cysylltiad â {name}", "notification.relationships_severance_event.account_suspension": "Mae gweinyddwr o {from} wedi atal {target}, sy'n golygu na allwch dderbyn diweddariadau ganddynt mwyach na rhyngweithio â nhw.", @@ -491,9 +509,12 @@ "notification_requests.title": "Hysbysiadau wedi'u hidlo", "notifications.clear": "Clirio hysbysiadau", "notifications.clear_confirmation": "Ydych chi'n siŵr eich bod am glirio'ch holl hysbysiadau am byth?", + "notifications.clear_title": "Clirio hysbysiadau?", "notifications.column_settings.admin.report": "Adroddiadau newydd:", "notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:", "notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith", + "notifications.column_settings.beta.category": "Nodweddion arbrofol", + "notifications.column_settings.beta.grouping": "Grŵpio hysbysiadau", "notifications.column_settings.favourite": "Ffefrynnau:", "notifications.column_settings.filter_bar.advanced": "Dangos pob categori", "notifications.column_settings.filter_bar.category": "Bar hidlo cyflym", @@ -657,9 +678,13 @@ "report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.", "report_notification.attached_statuses": "{count, plural, one {{count} postiad} arall {{count} postiad}} atodwyd", "report_notification.categories.legal": "Cyfreithiol", + "report_notification.categories.legal_sentence": "cynnwys anghyfreithlon", "report_notification.categories.other": "Arall", + "report_notification.categories.other_sentence": "arall", "report_notification.categories.spam": "Sbam", + "report_notification.categories.spam_sentence": "sbam", "report_notification.categories.violation": "Torri rheol", + "report_notification.categories.violation_sentence": "torri rheolau", "report_notification.open": "Agor adroddiad", "search.no_recent_searches": "Does dim chwiliadau diweddar", "search.placeholder": "Chwilio", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 78237e45cf..a4c277b8a8 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -186,7 +186,7 @@ "confirmations.mute.confirm": "Stummschalten", "confirmations.redraft.confirm": "Löschen und neu erstellen", "confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Favoriten und geteilte Beiträge gehen verloren, und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.", - "confirmations.redraft.title": "Beitrag löschen & neu verfassen?", + "confirmations.redraft.title": "Beitrag löschen und neu erstellen?", "confirmations.reply.confirm": "Antworten", "confirmations.reply.message": "Wenn du jetzt darauf antwortest, wird der andere Beitrag, an dem du gerade geschrieben hast, verworfen. Möchtest du wirklich fortfahren?", "confirmations.reply.title": "Beitrag überschreiben?", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index cbb99ddd6f..791f66e507 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -171,7 +171,7 @@ "confirmations.block.confirm": "Bloquear", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro que querés eliminar este mensaje?", - "confirmations.delete.title": "¿Eliminar publicación?", + "confirmations.delete.title": "¿Eliminar mensaje?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?", "confirmations.delete_list.title": "¿Eliminar lista?", @@ -179,17 +179,17 @@ "confirmations.discard_edit_media.message": "Tenés cambios sin guardar en la descripción de medios o en la vista previa, ¿querés descartarlos de todos modos?", "confirmations.edit.confirm": "Editar", "confirmations.edit.message": "Editar ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?", - "confirmations.edit.title": "¿Sobrescribir publicación?", + "confirmations.edit.title": "¿Sobrescribir mensaje?", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?", "confirmations.logout.title": "¿Cerrar sesión?", "confirmations.mute.confirm": "Silenciar", "confirmations.redraft.confirm": "Eliminar mensaje original y editarlo", "confirmations.redraft.message": "¿Estás seguro que querés eliminar este mensaje y volver a editarlo? Se perderán las veces marcadas como favorito y sus adhesiones, y las respuestas al mensaje original quedarán huérfanas.", - "confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?", + "confirmations.redraft.title": "¿Eliminar y volver a redactar mensaje?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Responder ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?", - "confirmations.reply.title": "¿Sobrescribir publicación?", + "confirmations.reply.title": "¿Sobrescribir mensaje?", "confirmations.unfollow.confirm": "Dejar de seguir", "confirmations.unfollow.message": "¿Estás seguro que querés dejar de seguir a {name}?", "confirmations.unfollow.title": "¿Dejar de seguir al usuario?", @@ -510,7 +510,7 @@ "notification_requests.title": "Notificaciones filtradas", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?", - "notifications.clear_title": "¿Borrar notificaciones?", + "notifications.clear_title": "¿Limpiar notificaciones?", "notifications.column_settings.admin.report": "Nuevas denuncias:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 9e0db8458c..fc1d252325 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -59,7 +59,7 @@ "account.posts": "Julkaisut", "account.posts_with_replies": "Julkaisut ja vastaukset", "account.report": "Raportoi @{name}", - "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö napsauttamalla", + "account.requested": "Odottaa hyväksyntää. Peruuta seurantapyyntö napsauttamalla", "account.requested_follow": "{name} on pyytänyt lupaa seurata sinua", "account.share": "Jaa käyttäjän @{name} profiili", "account.show_reblogs": "Näytä käyttäjän @{name} tehostukset", @@ -96,7 +96,7 @@ "block_modal.they_cant_see_posts": "Hän ei voi enää nähdä julkaisujasi, etkä sinä voi nähdä hänen.", "block_modal.they_will_know": "Hän voi nähdä, että hänet on estetty.", "block_modal.title": "Estetäänkö käyttäjä?", - "block_modal.you_wont_see_mentions": "Et tule enää näkemään julkaisuja, joissa hänet mainitaan.", + "block_modal.you_wont_see_mentions": "Et näe enää julkaisuja, joissa hänet mainitaan.", "boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}", "bundle_column_error.copy_stacktrace": "Kopioi virheraportti", "bundle_column_error.error.body": "Pyydettyä sivua ei voitu hahmontaa. Se voi johtua virheestä koodissamme tai selaimen yhteensopivuudessa.", @@ -111,7 +111,7 @@ "bundle_modal_error.message": "Jotain meni pieleen komponenttia ladattaessa.", "bundle_modal_error.retry": "Yritä uudelleen", "closed_registrations.other_server_instructions": "Koska Mastodon on hajautettu, voit luoda tilin toiselle palvelimelle ja olla silti vuorovaikutuksessa tämän kanssa.", - "closed_registrations_modal.description": "Tilin luonti palvelimelle {domain} ei tällä hetkellä ole mahdollista, mutta huomioi, ettei Mastodonin käyttö edellytä juuri kyseisen tuon tiliä.", + "closed_registrations_modal.description": "Tilin luonti palvelimelle {domain} ei tällä hetkellä ole mahdollista, mutta ota huomioon, ettei Mastodonin käyttö edellytä juuri kyseisen palvelimen tiliä.", "closed_registrations_modal.find_another_server": "Etsi toinen palvelin", "closed_registrations_modal.preamble": "Mastodon on hajautettu, joten riippumatta siitä, missä luot tilisi, voit seurata ja olla vuorovaikutuksessa kenen tahansa kanssa tällä palvelimella. Voit jopa isännöidä palvelinta!", "closed_registrations_modal.title": "Rekisteröityminen Mastodoniin", @@ -124,7 +124,7 @@ "column.domain_blocks": "Estetyt verkkotunnukset", "column.favourites": "Suosikit", "column.firehose": "Livesyötteet", - "column.follow_requests": "Seuraamispyynnöt", + "column.follow_requests": "Seurantapyynnöt", "column.home": "Koti", "column.lists": "Listat", "column.mutes": "Mykistetyt käyttäjät", @@ -216,7 +216,7 @@ "domain_block_modal.block_account_instead": "Estä sen sijaan @{name}", "domain_block_modal.they_can_interact_with_old_posts": "Ihmiset tältä palvelimelta eivät voi olla vuorovaikutuksessa vanhojen julkaisujesi kanssa.", "domain_block_modal.they_cant_follow": "Kukaan tältä palvelimelta ei voi seurata sinua.", - "domain_block_modal.they_wont_know": "Hän ei saa ilmoitusta tulleensa estetyksi.", + "domain_block_modal.they_wont_know": "Hän ei saa tietää tulleensa estetyksi.", "domain_block_modal.title": "Estetäänkö verkkotunnus?", "domain_block_modal.you_will_lose_followers": "Kaikki seuraajasi tältä palvelimelta poistetaan.", "domain_block_modal.you_wont_see_posts": "Et enää näe julkaisuja etkä ilmoituksia tämän palvelimen käyttäjiltä.", @@ -257,12 +257,12 @@ "empty_column.blocks": "Et ole vielä estänyt käyttäjiä.", "empty_column.bookmarked_statuses": "Et ole vielä lisännyt julkaisuja kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!", - "empty_column.direct": "Yksityismainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellainen, näet sen tässä.", + "empty_column.direct": "Yksityismainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellaisia, näet ne täällä.", "empty_column.domain_blocks": "Verkkotunnuksia ei ole vielä estetty.", "empty_column.explore_statuses": "Mikään ei ole nyt suosittua. Tarkista myöhemmin uudelleen!", "empty_column.favourited_statuses": "Sinulla ei ole vielä yhtään suosikkijulkaisua. Kun lisäät sellaisen, näkyy se tässä.", "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä julkaisua suosikkeihinsa. Kun joku tekee niin, tulee hän tähän näkyviin.", - "empty_column.follow_requests": "Et ole vielä vastaanottanut seuraamispyyntöjä. Saamasi pyynnöt näkyvät täällä.", + "empty_column.follow_requests": "Et ole vielä vastaanottanut seurantapyyntöjä. Saamasi pyynnöt näkyvät täällä.", "empty_column.followed_tags": "Et seuraa vielä yhtäkään aihetunnistetta. Kun alat seurata, ne tulevat tähän näkyviin.", "empty_column.hashtag": "Tällä aihetunnisteella ei löydy vielä sisältöä.", "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.", @@ -308,7 +308,7 @@ "firehose.remote": "Muut palvelimet", "follow_request.authorize": "Valtuuta", "follow_request.reject": "Hylkää", - "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.", + "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seurantapyynnöt erikseen.", "follow_suggestions.curated_suggestion": "Ehdotus ylläpidolta", "follow_suggestions.dismiss": "Älä näytä uudelleen", "follow_suggestions.featured_longer": "Palvelimen {domain} tiimin poimintoja", @@ -400,7 +400,7 @@ "keyboard_shortcuts.pinned": "Avaa kiinnitettyjen julkaisujen luettelo", "keyboard_shortcuts.profile": "Avaa kirjoittajan profiili", "keyboard_shortcuts.reply": "Vastaa julkaisuun", - "keyboard_shortcuts.requests": "Avaa seuraamispyyntöjen luettelo", + "keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo", "keyboard_shortcuts.search": "Kohdista hakukenttään", "keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä", "keyboard_shortcuts.start": "Avaa Näin pääset alkuun -sarake", @@ -417,7 +417,7 @@ "limited_account_hint.action": "Näytä profiili joka tapauksessa", "limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.", "link_preview.author": "Julkaissut {name}", - "link_preview.more_from_author": "Lisää käyttäjältä {name}", + "link_preview.more_from_author": "Lisää tekijältä {name}", "link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", "lists.account.add": "Lisää listalle", "lists.account.remove": "Poista listalta", @@ -439,12 +439,12 @@ "moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä, koska teit siirron tiliin {movedToAccount}.", "mute_modal.hide_from_notifications": "Piilota ilmoituksista", "mute_modal.hide_options": "Piilota vaihtoehdot", - "mute_modal.indefinite": "Kunnes perun häntä koskevan mykistyksen", + "mute_modal.indefinite": "Kunnes kumoan häntä koskevan mykistyksen", "mute_modal.show_options": "Näytä vaihtoehdot", "mute_modal.they_can_mention_and_follow": "Hän voi mainita sinut ja seurata sinua, mutta sinä et näe häntä.", - "mute_modal.they_wont_know": "Hän ei saa ilmoitusta tulleensa mykistetyksi.", + "mute_modal.they_wont_know": "Hän ei saa tietää tulleensa mykistetyksi.", "mute_modal.title": "Mykistetäänkö käyttäjä?", - "mute_modal.you_wont_see_mentions": "Et tule enää näkemään julkaisuja, joissa hänet mainitaan.", + "mute_modal.you_wont_see_mentions": "Et näe enää julkaisuja, joissa hänet mainitaan.", "mute_modal.you_wont_see_posts": "Hän voi yhä nähdä julkaisusi, mutta sinä et näe hänen.", "name_and_others": "{name} ja {count, plural, one {# muu} other {# muuta}}", "name_and_others_with_link": "{name} ja {count, plural, one {# muu} other {# muuta}}", @@ -460,7 +460,7 @@ "navigation_bar.explore": "Selaa", "navigation_bar.favourites": "Suosikit", "navigation_bar.filters": "Mykistetyt sanat", - "navigation_bar.follow_requests": "Seuraamispyynnöt", + "navigation_bar.follow_requests": "Seurantapyynnöt", "navigation_bar.followed_tags": "Seuratut aihetunnisteet", "navigation_bar.follows_and_followers": "Seuratut ja seuraajat", "navigation_bar.lists": "Listat", @@ -482,7 +482,7 @@ "notification.admin.sign_up": "{name} rekisteröityi", "notification.favourite": "{name} lisäsi julkaisusi suosikkeihinsa", "notification.follow": "{name} seurasi sinua", - "notification.follow_request": "{name} on pyytänyt lupaa saada seurata sinua", + "notification.follow_request": "{name} on pyytänyt lupaa seurata sinua", "notification.mention": "{name} mainitsi sinut", "notification.moderation-warning.learn_more": "Lue lisää", "notification.moderation_warning": "Olet saanut moderointivaroituksen", @@ -520,7 +520,7 @@ "notifications.column_settings.filter_bar.advanced": "Näytä kaikki luokat", "notifications.column_settings.filter_bar.category": "Pikasuodatuspalkki", "notifications.column_settings.follow": "Uudet seuraajat:", - "notifications.column_settings.follow_request": "Uudet seuraamispyynnöt:", + "notifications.column_settings.follow_request": "Uudet seurantapyynnöt:", "notifications.column_settings.mention": "Maininnat:", "notifications.column_settings.poll": "Äänestyksen tulokset:", "notifications.column_settings.push": "Puskuilmoitukset", @@ -544,11 +544,11 @@ "notifications.permission_denied": "Työpöytäilmoitukset eivät ole käytettävissä, koska selaimen käyttöoikeuspyyntö on aiemmin evätty", "notifications.permission_denied_alert": "Työpöytäilmoituksia ei voi ottaa käyttöön, koska selaimen käyttöoikeus on aiemmin evätty", "notifications.permission_required": "Työpöytäilmoitukset eivät ole käytettävissä, koska siihen tarvittavaa käyttöoikeutta ei ole myönnetty.", - "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viimeisimmän päivän aikana} other {# viime päivän aikana}}", + "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viime päivänä} other {viimeisenä # päivänä}}", "notifications.policy.filter_new_accounts_title": "Uudet tilit", - "notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivän}} verran sinua seuranneet", + "notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivää}} sinua seuranneet", "notifications.policy.filter_not_followers_title": "Henkilöt, jotka eivät seuraa sinua", - "notifications.policy.filter_not_following_hint": "Kunnes hyväksyt ne omin käsin", + "notifications.policy.filter_not_following_hint": "Kunnes hyväksyt ne manuaalisesti", "notifications.policy.filter_not_following_title": "Henkilöt, joita et seuraa", "notifications.policy.filter_private_mentions_hint": "Suodatetaan, ellei se vastaa omaan mainintaasi tai ellet seuraa lähettäjää", "notifications.policy.filter_private_mentions_title": "Ei-toivotut yksityismaininnat", @@ -716,7 +716,7 @@ "server_banner.is_one_of_many": "{domain} on yksi monista itsenäisistä Mastodon-palvelimista, joiden välityksellä voit toimia fediversumissa.", "server_banner.server_stats": "Palvelimen tilastot:", "sign_in_banner.create_account": "Luo tili", - "sign_in_banner.follow_anyone": "Seuraa kenen tahansa julkaisuja fediversumissa ja näe ne kaikki aikajärjestyksessä. Ei algoritmeja, mainoksia tai klikkausten kalastelua.", + "sign_in_banner.follow_anyone": "Seuraa kenen tahansa julkaisuja fediversumissa ja näe ne kaikki aikajärjestyksessä. Ei algoritmeja, mainoksia eikä klikkausten kalastelua.", "sign_in_banner.mastodon_is": "Mastodon on paras tapa pysyä ajan tasalla siitä, mitä ympärillä tapahtuu.", "sign_in_banner.sign_in": "Kirjaudu", "sign_in_banner.sso_redirect": "Kirjaudu tai rekisteröidy", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index da90494804..eedbc35ff5 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -1,5 +1,5 @@ { - "about.blocks": "שרתים מוגבלים", + "about.blocks": "שרתים שנחסמו על ידי המנהלים", "about.contact": "יצירת קשר:", "about.disclaimer": "מסטודון היא תוכנת קוד פתוח חינמית וסימן מסחרי של Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "הסיבה אינה זמינה", @@ -171,21 +171,28 @@ "confirmations.block.confirm": "לחסום", "confirmations.delete.confirm": "למחוק", "confirmations.delete.message": "בטוח/ה שאת/ה רוצה למחוק את ההודעה?", + "confirmations.delete.title": "למחוק הודעה?", "confirmations.delete_list.confirm": "למחוק", "confirmations.delete_list.message": "האם אתם בטוחים שאתם רוצים למחוק את הרשימה לצמיתות?", + "confirmations.delete_list.title": "למחוק רשימה?", "confirmations.discard_edit_media.confirm": "השלך", "confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?", "confirmations.edit.confirm": "עריכה", "confirmations.edit.message": "עריכה תדרוס את ההודעה שכבר התחלת לכתוב. האם להמשיך?", + "confirmations.edit.title": "לבצע החלפת תוכן?", "confirmations.logout.confirm": "התנתקות", "confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?", + "confirmations.logout.title": "להתנתק?", "confirmations.mute.confirm": "להשתיק", "confirmations.redraft.confirm": "מחיקה ועריכה מחדש", "confirmations.redraft.message": "למחוק ולהתחיל טיוטה חדשה? חיבובים והדהודים יאבדו, ותגובות להודעה המקורית ישארו יתומות.", + "confirmations.redraft.title": "מחיקה ועריכה מחדש?", "confirmations.reply.confirm": "תגובה", "confirmations.reply.message": "תגובה עכשיו תמחק את ההודעה שכבר התחלת לכתוב. להמשיך?", + "confirmations.reply.title": "לבצע החלפת תוכן?", "confirmations.unfollow.confirm": "הפסקת מעקב", "confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?", + "confirmations.unfollow.title": "לבטל מעקב אחר המשתמש.ת?", "conversation.delete": "מחיקת שיחה", "conversation.mark_as_read": "סמן כנקרא", "conversation.open": "צפו בשיחה", @@ -503,6 +510,7 @@ "notification_requests.title": "התראות מסוננות", "notifications.clear": "הסרת התראות", "notifications.clear_confirmation": "להסיר את כל ההתראות לצמיתות ? ", + "notifications.clear_title": "לנקות התראות?", "notifications.column_settings.admin.report": "דו\"חות חדשים", "notifications.column_settings.admin.sign_up": "הרשמות חדשות:", "notifications.column_settings.alert": "התראות לשולחן העבודה", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 70e48f6948..f8253865ae 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -171,21 +171,26 @@ "confirmations.block.confirm": "Blocar", "confirmations.delete.confirm": "Deler", "confirmations.delete.message": "Es tu secur que tu vole deler iste message?", + "confirmations.delete.title": "Deler message?", "confirmations.delete_list.confirm": "Deler", "confirmations.delete_list.message": "Es tu secur que tu vole deler permanentemente iste lista?", + "confirmations.delete_list.title": "Deler lista?", "confirmations.discard_edit_media.confirm": "Abandonar", "confirmations.discard_edit_media.message": "Tu ha cambiamentos non salvate in le description o previsualisation del objecto multimedial. Abandonar los?", "confirmations.edit.confirm": "Modificar", "confirmations.edit.message": "Si tu modifica isto ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?", "confirmations.logout.confirm": "Clauder session", "confirmations.logout.message": "Es tu secur que tu vole clauder le session?", + "confirmations.logout.title": "Clauder session?", "confirmations.mute.confirm": "Silentiar", "confirmations.redraft.confirm": "Deler e rescriber", "confirmations.redraft.message": "Es tu secur de voler deler iste message e rescriber lo? Le favorites e le impulsos essera perdite, e le responsas al message original essera orphanate.", + "confirmations.redraft.title": "Deler e rescriber le message?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Si tu responde ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?", "confirmations.unfollow.confirm": "Non plus sequer", "confirmations.unfollow.message": "Es tu secur que tu vole cessar de sequer {name}?", + "confirmations.unfollow.title": "Cessar de sequer le usator?", "conversation.delete": "Deler conversation", "conversation.mark_as_read": "Marcar como legite", "conversation.open": "Vider conversation", @@ -497,6 +502,7 @@ "notification_requests.title": "Notificationes filtrate", "notifications.clear": "Rader notificationes", "notifications.clear_confirmation": "Es tu secur que tu vole rader permanentemente tote tu notificationes?", + "notifications.clear_title": "Rader le notificationes?", "notifications.column_settings.admin.report": "Nove reportos:", "notifications.column_settings.admin.sign_up": "Nove inscriptiones:", "notifications.column_settings.alert": "Notificationes de scriptorio", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index c8c545922c..6e37961e12 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "Blocca", "confirmations.delete.confirm": "Elimina", "confirmations.delete.message": "Sei sicuro di voler eliminare questo post?", + "confirmations.delete.title": "Eliminare il post?", "confirmations.delete_list.confirm": "Elimina", "confirmations.delete_list.message": "Sei sicuro/a di voler eliminare permanentemente questo elenco?", + "confirmations.delete_list.title": "Eliminare la lista?", "confirmations.discard_edit_media.confirm": "Scarta", "confirmations.discard_edit_media.message": "Hai delle modifiche non salvate alla descrizione o anteprima del media, scartarle comunque?", "confirmations.edit.confirm": "Modifica", "confirmations.edit.message": "Modificare ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?", + "confirmations.edit.title": "Sovrascrivere il post?", "confirmations.logout.confirm": "Disconnettiti", "confirmations.logout.message": "Sei sicuro di volerti disconnettere?", + "confirmations.logout.title": "Uscire?", "confirmations.mute.confirm": "Silenzia", "confirmations.redraft.confirm": "Elimina e riscrivi", "confirmations.redraft.message": "Sei sicuro di voler eliminare questo post e riscriverlo? I preferiti e i boost andranno persi e le risposte al post originale non saranno più collegate.", + "confirmations.redraft.title": "Eliminare e riformulare il post?", "confirmations.reply.confirm": "Rispondi", "confirmations.reply.message": "Rispondere ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?", + "confirmations.reply.title": "Sovrascrivere il post?", "confirmations.unfollow.confirm": "Smetti di seguire", "confirmations.unfollow.message": "Sei sicuro di voler smettere di seguire {name}?", + "confirmations.unfollow.title": "Smettere di seguire l'utente?", "conversation.delete": "Elimina conversazione", "conversation.mark_as_read": "Segna come letto", "conversation.open": "Visualizza conversazione", @@ -503,6 +510,7 @@ "notification_requests.title": "Notifiche filtrate", "notifications.clear": "Cancella le notifiche", "notifications.clear_confirmation": "Sei sicuro di voler cancellare permanentemente tutte le tue notifiche?", + "notifications.clear_title": "Cancellare le notifiche?", "notifications.column_settings.admin.report": "Nuove segnalazioni:", "notifications.column_settings.admin.sign_up": "Nuove iscrizioni:", "notifications.column_settings.alert": "Notifiche desktop", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index ea00b0eb23..b8fd039b8d 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -235,6 +235,8 @@ "follow_request.authorize": "Ssireg", "follow_request.reject": "Agi", "follow_suggestions.dismiss": "Dayen ur t-id-skan ara", + "follow_suggestions.featured_longer": "Yettwafraned s ufus sɣur agraw n {domain}", + "follow_suggestions.hints.featured": "Amaɣnu-a ifren-it-id wegraw n {domain} s ufus.", "follow_suggestions.popular_suggestion_longer": "Yettwassen deg {domain}", "follow_suggestions.view_all": "Wali-ten akk", "follow_suggestions.who_to_follow": "Ad tḍefreḍ?", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 37c37b63eb..04d2c3c8e4 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "Blokuoti", "confirmations.delete.confirm": "Ištrinti", "confirmations.delete.message": "Ar tikrai nori ištrinti šį įrašą?", + "confirmations.delete.title": "Ištrinti įrašą?", "confirmations.delete_list.confirm": "Ištrinti", "confirmations.delete_list.message": "Ar tikrai nori visam laikui ištrinti šį sąrašą?", + "confirmations.delete_list.title": "Ištrinti sąrašą?", "confirmations.discard_edit_media.confirm": "Atmesti", "confirmations.discard_edit_media.message": "Turi neišsaugotų medijos aprašymo ar peržiūros pakeitimų, vis tiek juos atmesti?", "confirmations.edit.confirm": "Redaguoti", "confirmations.edit.message": "Redaguojant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?", + "confirmations.edit.title": "Perrašyti įrašą?", "confirmations.logout.confirm": "Atsijungti", "confirmations.logout.message": "Ar tikrai nori atsijungti?", + "confirmations.logout.title": "Atsijungti?", "confirmations.mute.confirm": "Nutildyti", "confirmations.redraft.confirm": "Ištrinti ir perrašyti", "confirmations.redraft.message": "Ar tikrai nori ištrinti šį įrašą ir parašyti jį iš naujo? Bus prarastos mėgstamai ir pakėlimai, o atsakymai į originalinį įrašą taps liekamojais.", + "confirmations.redraft.title": "Ištrinti ir iš naujo parengti įrašą?", "confirmations.reply.confirm": "Atsakyti", "confirmations.reply.message": "Atsakant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?", + "confirmations.reply.title": "Perrašyti įrašą?", "confirmations.unfollow.confirm": "Nebesekti", "confirmations.unfollow.message": "Ar tikrai nori nebesekti {name}?", + "confirmations.unfollow.title": "Nebesekti naudotoją?", "conversation.delete": "Ištrinti pokalbį", "conversation.mark_as_read": "Žymėti kaip skaitytą", "conversation.open": "Peržiūrėti pokalbį", @@ -501,6 +508,7 @@ "notification_requests.title": "Filtruojami pranešimai", "notifications.clear": "Išvalyti pranešimus", "notifications.clear_confirmation": "Ar tikrai nori visam laikui išvalyti visus pranešimus?", + "notifications.clear_title": "Valyti pranešimus?", "notifications.column_settings.admin.report": "Naujos ataskaitos:", "notifications.column_settings.admin.sign_up": "Naujos registracijos:", "notifications.column_settings.alert": "Darbalaukio pranešimai", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index ee8622029c..e10d423a0f 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -166,21 +166,28 @@ "confirmations.block.confirm": "Zablokovať", "confirmations.delete.confirm": "Vymazať", "confirmations.delete.message": "Určite chcete tento príspevok vymazať?", + "confirmations.delete.title": "Vymazať príspevok?", "confirmations.delete_list.confirm": "Vymazať", "confirmations.delete_list.message": "Určite chcete tento zoznam trvalo vymazať?", + "confirmations.delete_list.title": "Vymazať zoznam?", "confirmations.discard_edit_media.confirm": "Zahodiť", "confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?", "confirmations.edit.confirm": "Upraviť", "confirmations.edit.message": "Úpravou prepíšete príspevok, ktorý máte rozpísaný. Určite chcete pokračovať?", + "confirmations.edit.title": "Prepísať príspevok?", "confirmations.logout.confirm": "Odhlásiť sa", "confirmations.logout.message": "Určite sa chcete odhlásiť?", + "confirmations.logout.title": "Odhlásiť sa?", "confirmations.mute.confirm": "Stíšiť", "confirmations.redraft.confirm": "Vymazať a prepísať", "confirmations.redraft.message": "Určite chcete tento príspevok vymazať a prepísať? Prídete o jeho zdieľania a ohviezdičkovania a odpovede na pôvodný príspevok budú odlúčené.", + "confirmations.redraft.title": "Vymazať a prepísať príspevok?", "confirmations.reply.confirm": "Odpovedať", "confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?", + "confirmations.reply.title": "Prepísať príspevok?", "confirmations.unfollow.confirm": "Prestať sledovať", "confirmations.unfollow.message": "Určite chcete prestať sledovať {name}?", + "confirmations.unfollow.title": "Prestať sledovať užívateľa?", "conversation.delete": "Vymazať konverzáciu", "conversation.mark_as_read": "Označiť ako prečítanú", "conversation.open": "Zobraziť konverzáciu", @@ -202,7 +209,12 @@ "dismissable_banner.public_timeline": "Toto sú najnovšie verejné príspevky od účtov na sociálnej sieti, ktoré sú sledované účtami z {domain}.", "domain_block_modal.block": "Blokovať server", "domain_block_modal.block_account_instead": "Namiesto toho zablokuj @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Ľudia z tohto servera môžu interaktovať s tvojimi starými príspevkami.", + "domain_block_modal.they_cant_follow": "Nikto z tohoto servera ťa nemôže nasledovať.", + "domain_block_modal.they_wont_know": "Nebude vedieť, že bol/a zablokovaný/á.", "domain_block_modal.title": "Blokovať doménu?", + "domain_block_modal.you_will_lose_followers": "Všetci tvoji nasledovatelia z tohto servera budú odstránení.", + "domain_block_modal.you_wont_see_posts": "Neuvidíš príspevky, ani oboznámenia od užívateľov na tomto serveri.", "domain_pill.server": "Server", "domain_pill.their_server": "Ich digitálny domov, kde žijú všetky ich príspevky.", "domain_pill.username": "Používateľské meno", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 9562757036..279bc09715 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "Bllokoje", "confirmations.delete.confirm": "Fshije", "confirmations.delete.message": "Jeni i sigurt se doni të fshihet kjo gjendje?", + "confirmations.delete.title": "Të fshihet postimi?", "confirmations.delete_list.confirm": "Fshije", "confirmations.delete_list.message": "Jeni i sigurt se doni të fshihet përgjithmonë kjo listë?", + "confirmations.delete_list.title": "Të fshihet lista?", "confirmations.discard_edit_media.confirm": "Hidhe tej", "confirmations.discard_edit_media.message": "Keni ndryshime të paruajtura te përshkrimi ose paraparja e medias, të hidhen tej, sido qoftë?", "confirmations.edit.confirm": "Përpunojeni", "confirmations.edit.message": "Përpunimi tani do të sjellë mbishkrim të mesazhit që po hartoni aktualisht. Jeni i sigurt se doni të vazhdohet?", + "confirmations.edit.title": "Të mbishkruhet postimi?", "confirmations.logout.confirm": "Dilni", "confirmations.logout.message": "Jeni i sigurt se doni të dilet?", + "confirmations.logout.title": "Të dilet?", "confirmations.mute.confirm": "Heshtoje", "confirmations.redraft.confirm": "Fshijeni & rihartojeni", "confirmations.redraft.message": "Jeni i sigurt se doni të fshihet kjo gjendje dhe të rihartohet? Të parapëlqyerit dhe përforcimet do të humbin, ndërsa përgjigjet te postimi origjinal do të bëhen jetime.", + "confirmations.redraft.title": "Të fshihet & riharothet postimi?", "confirmations.reply.confirm": "Përgjigjuni", "confirmations.reply.message": "Po të përgjigjeni tani, mesazhi që po hartoni, do të mbishkruhet. Jeni i sigurt se doni të vazhdohet më tej?", + "confirmations.reply.title": "Të mbishkruhet postimi?", "confirmations.unfollow.confirm": "Resht së ndjekuri", "confirmations.unfollow.message": "Jeni i sigurt se doni të mos ndiqet më {name}?", + "confirmations.unfollow.title": "Të ndalet ndjekja e përdoruesit?", "conversation.delete": "Fshije bisedën", "conversation.mark_as_read": "Vëri shenjë si të lexuar", "conversation.open": "Shfaq bisedën", @@ -503,6 +510,7 @@ "notification_requests.title": "Njoftime të filtruar", "notifications.clear": "Spastroji njoftimet", "notifications.clear_confirmation": "Jeni i sigurt se doni të spastrohen përgjithmonë krejt njoftimet tuaja?", + "notifications.clear_title": "Të spastrohen njoftimet?", "notifications.column_settings.admin.report": "Raportime të reja:", "notifications.column_settings.admin.sign_up": "Regjistrime të reja:", "notifications.column_settings.alert": "Njoftime desktopi", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 6ed1742267..096de0f42e 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -37,6 +37,7 @@ "account.followers.empty": "Ingen följer denna användare än.", "account.followers_counter": "{count, plural, one {{counter} följare} other {{counter} följare}}", "account.following": "Följer", + "account.following_counter": "{count, plural, one {{counter} följer} other {{counter} följer}}", "account.follows.empty": "Denna användare följer inte någon än.", "account.go_to_profile": "Gå till profilen", "account.hide_reblogs": "Dölj boostar från @{name}", @@ -170,21 +171,28 @@ "confirmations.block.confirm": "Blockera", "confirmations.delete.confirm": "Radera", "confirmations.delete.message": "Är du säker på att du vill radera detta inlägg?", + "confirmations.delete.title": "Ta bort inlägg?", "confirmations.delete_list.confirm": "Radera", "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", + "confirmations.delete_list.title": "Ta bort listan?", "confirmations.discard_edit_media.confirm": "Kasta", "confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?", "confirmations.edit.confirm": "Redigera", "confirmations.edit.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?", + "confirmations.edit.title": "Skriva över inlägg?", "confirmations.logout.confirm": "Logga ut", "confirmations.logout.message": "Är du säker på att du vill logga ut?", + "confirmations.logout.title": "Logga ut?", "confirmations.mute.confirm": "Tysta", "confirmations.redraft.confirm": "Radera & gör om", "confirmations.redraft.message": "Är du säker på att du vill radera detta inlägg och göra om det? Favoritmarkeringar, boostar och svar till det ursprungliga inlägget kommer förlora sitt sammanhang.", + "confirmations.redraft.title": "Ta bort & gör om inlägget?", "confirmations.reply.confirm": "Svara", "confirmations.reply.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?", + "confirmations.reply.title": "Skriva över inlägget?", "confirmations.unfollow.confirm": "Avfölj", "confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?", + "confirmations.unfollow.title": "Avfölj %s?", "conversation.delete": "Radera konversation", "conversation.mark_as_read": "Markera som läst", "conversation.open": "Visa konversation", @@ -467,6 +475,9 @@ "navigation_bar.security": "Säkerhet", "not_signed_in_indicator.not_signed_in": "Du behöver logga in för att få åtkomst till denna resurs.", "notification.admin.report": "{name} rapporterade {target}", + "notification.admin.report_account": "{name} rapporterade {count, plural, one {ett inlägg} other {# inlägg}} från {target} för {category}", + "notification.admin.report_account_other": "{name} rapporterade {count, plural, one {ett inlägg} other {# inlägg}} från {target}", + "notification.admin.report_statuses": "{name} rapporterade {target} för {category}", "notification.admin.report_statuses_other": "{name} rapporterade {target}", "notification.admin.sign_up": "{name} registrerade sig", "notification.favourite": "{name} favoritmarkerade ditt inlägg", @@ -483,6 +494,7 @@ "notification.moderation_warning.action_silence": "Ditt konto har begränsats.", "notification.moderation_warning.action_suspend": "Ditt konto har stängts av.", "notification.own_poll": "Din röstning har avslutats", + "notification.poll": "En enkät som du röstat i har avslutats", "notification.private_mention": "{name} nämnde dig privat", "notification.reblog": "{name} boostade ditt inlägg", "notification.relationships_severance_event": "Förlorade kontakter med {name}", @@ -498,10 +510,12 @@ "notification_requests.title": "Filtrerade meddelanden", "notifications.clear": "Rensa aviseringar", "notifications.clear_confirmation": "Är du säker på att du vill rensa alla dina aviseringar permanent?", + "notifications.clear_title": "Rensa aviseringar?", "notifications.column_settings.admin.report": "Nya rapporter:", "notifications.column_settings.admin.sign_up": "Nya registreringar:", "notifications.column_settings.alert": "Skrivbordsaviseringar", "notifications.column_settings.beta.category": "Experimentella funktioner", + "notifications.column_settings.beta.grouping": "Gruppera notifikationer", "notifications.column_settings.favourite": "Favoriter:", "notifications.column_settings.filter_bar.advanced": "Visa alla kategorier", "notifications.column_settings.filter_bar.category": "Snabbfilter", @@ -665,6 +679,7 @@ "report.unfollow_explanation": "Du följer detta konto. Avfölj hen för att inte se hens inlägg i ditt hemflöde.", "report_notification.attached_statuses": "bifogade {count, plural, one {{count} inlägg} other {{count} inlägg}}", "report_notification.categories.legal": "Rättsligt", + "report_notification.categories.legal_sentence": "olagligt innehåll", "report_notification.categories.other": "Övrigt", "report_notification.categories.other_sentence": "övrigt", "report_notification.categories.spam": "Skräppost", @@ -698,8 +713,11 @@ "server_banner.about_active_users": "Personer som använt denna server de senaste 30 dagarna (månatligt aktiva användare)", "server_banner.active_users": "aktiva användare", "server_banner.administered_by": "Administrerad av:", + "server_banner.is_one_of_many": "{domain} är en av de många oberoende Mastodon-servrar som du kan använda för att delta i Fediversen.", "server_banner.server_stats": "Serverstatistik:", "sign_in_banner.create_account": "Skapa konto", + "sign_in_banner.follow_anyone": "Följ vem som helst över Fediverse och se allt i kronologisk ordning. Inga algoritmer, inga annonser och inga klickbeten i sikte.", + "sign_in_banner.mastodon_is": "Mastodon är det bästa sättet att hänga med i vad som händer.", "sign_in_banner.sign_in": "Logga in", "sign_in_banner.sso_redirect": "Logga in eller registrera dig", "status.admin_account": "Öppet modereringsgränssnitt för @{name}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index bb0b96943b..1bb22da225 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "Engelle", "confirmations.delete.confirm": "Sil", "confirmations.delete.message": "Bu tootu silmek istediğinden emin misin?", + "confirmations.delete.title": "Gönderiyi sil?", "confirmations.delete_list.confirm": "Sil", "confirmations.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinden emin misin?", + "confirmations.delete_list.title": "Listeyi sil?", "confirmations.discard_edit_media.confirm": "Vazgeç", "confirmations.discard_edit_media.message": "Medya açıklaması veya ön izlemede kaydedilmemiş değişiklikleriniz var, yine de vazgeçmek istiyor musunuz?", "confirmations.edit.confirm": "Düzenle", "confirmations.edit.message": "Şimdi düzenlersen şu an oluşturduğun iletinin üzerine yazılır. Devam etmek istediğine emin misin?", + "confirmations.edit.title": "Gönderinin üzerine yaz?", "confirmations.logout.confirm": "Oturumu kapat", "confirmations.logout.message": "Oturumu kapatmak istediğinden emin misin?", + "confirmations.logout.title": "Oturumu kapat?", "confirmations.mute.confirm": "Sessize al", "confirmations.redraft.confirm": "Sil Düzenle ve yeniden paylaş", "confirmations.redraft.message": "Bu gönderiyi silip taslak haline getirmek istediğinize emin misiniz? Mevcut favoriler ve boostlar silinecek ve gönderiye verilen yanıtlar başıboş kalacak.", + "confirmations.redraft.title": "Gönderiyi sil veya taslağa dönüştür?", "confirmations.reply.confirm": "Yanıtla", "confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğun mesajın üzerine yazılır. Devam etmek istediğine emin misin?", + "confirmations.reply.title": "Gönderinin üzerine yaz?", "confirmations.unfollow.confirm": "Takibi bırak", "confirmations.unfollow.message": "{name} adlı kullanıcıyı takibi bırakmak istediğinden emin misin?", + "confirmations.unfollow.title": "Kullanıcıyı takipten çık?", "conversation.delete": "Sohbeti sil", "conversation.mark_as_read": "Okundu olarak işaretle", "conversation.open": "Sohbeti görüntüle", @@ -503,6 +510,7 @@ "notification_requests.title": "Filtrelenmiş bildirimler", "notifications.clear": "Bildirimleri temizle", "notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?", + "notifications.clear_title": "Bildirimleri temizle?", "notifications.column_settings.admin.report": "Yeni bildirimler:", "notifications.column_settings.admin.sign_up": "Yeni kayıtlar:", "notifications.column_settings.alert": "Masaüstü bildirimleri", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index fb9c35e438..dd91e0e77a 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -179,16 +179,20 @@ "confirmations.discard_edit_media.message": "У вас є незбережені зміни в описі медіа або попереднього перегляду, все одно відкинути їх?", "confirmations.edit.confirm": "Змінити", "confirmations.edit.message": "Редагування перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?", + "confirmations.edit.title": "Перезаписати допис?", "confirmations.logout.confirm": "Вийти", "confirmations.logout.message": "Ви впевнені, що хочете вийти?", "confirmations.logout.title": "Вийти?", "confirmations.mute.confirm": "Приховати", "confirmations.redraft.confirm": "Видалити та виправити", "confirmations.redraft.message": "Ви впевнені, що хочете видалити цей допис та переписати його? Додавання у вибране та поширення буде втрачено, а відповіді на оригінальний допис залишаться без першоджерела.", + "confirmations.redraft.title": "Видалити та переробити допис?", "confirmations.reply.confirm": "Відповісти", "confirmations.reply.message": "Нова відповідь перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?", + "confirmations.reply.title": "Перезаписати допис?", "confirmations.unfollow.confirm": "Відписатися", "confirmations.unfollow.message": "Ви впевнені, що хочете відписатися від {name}?", + "confirmations.unfollow.title": "Відписатися від користувача?", "conversation.delete": "Видалити бесіду", "conversation.mark_as_read": "Позначити як прочитане", "conversation.open": "Переглянути бесіду", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index af8008b272..3001675498 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "Chặn", "confirmations.delete.confirm": "Xóa bỏ", "confirmations.delete.message": "Bạn thật sự muốn xóa tút này?", + "confirmations.delete.title": "Xóa tút?", "confirmations.delete_list.confirm": "Xóa bỏ", "confirmations.delete_list.message": "Bạn thật sự muốn xóa vĩnh viễn danh sách này?", + "confirmations.delete_list.title": "Xóa danh sách?", "confirmations.discard_edit_media.confirm": "Bỏ qua", "confirmations.discard_edit_media.message": "Bạn chưa lưu thay đổi đối với phần mô tả hoặc bản xem trước của media, vẫn bỏ luôn?", "confirmations.edit.confirm": "Sửa", "confirmations.edit.message": "Nội dung tút cũ sẽ bị ghi đè, bạn có tiếp tục?", + "confirmations.edit.title": "Viết đè lên tút cũ?", "confirmations.logout.confirm": "Đăng xuất", "confirmations.logout.message": "Bạn có thật sự muốn thoát?", + "confirmations.logout.title": "Đăng xuất?", "confirmations.mute.confirm": "Ẩn", "confirmations.redraft.confirm": "Xóa & viết lại", "confirmations.redraft.message": "Bạn thật sự muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và đăng lại của tút, cũng như những trả lời sẽ không còn nội dung gốc.", + "confirmations.redraft.title": "Xóa & viết lại?", "confirmations.reply.confirm": "Trả lời", "confirmations.reply.message": "Nội dung bạn đang soạn thảo sẽ bị ghi đè, bạn có tiếp tục?", + "confirmations.reply.title": "Viết đè lên tút cũ?", "confirmations.unfollow.confirm": "Bỏ theo dõi", "confirmations.unfollow.message": "Bạn thật sự muốn bỏ theo dõi {name}?", + "confirmations.unfollow.title": "Bỏ theo dõi?", "conversation.delete": "Xóa tin nhắn này", "conversation.mark_as_read": "Đánh dấu là đã đọc", "conversation.open": "Xem toàn bộ tin nhắn", @@ -503,6 +510,7 @@ "notification_requests.title": "Thông báo đã lọc", "notifications.clear": "Xóa hết thông báo", "notifications.clear_confirmation": "Bạn thật sự muốn xóa vĩnh viễn tất cả thông báo của mình?", + "notifications.clear_title": "Xóa hết thông báo?", "notifications.column_settings.admin.report": "Báo cáo mới:", "notifications.column_settings.admin.sign_up": "Người mới tham gia:", "notifications.column_settings.alert": "Báo trên máy tính", diff --git a/config/locales/bg.yml b/config/locales/bg.yml index c0abc3c845..fdaab7ac2a 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -12,7 +12,7 @@ bg: one: Последовател other: Последователи following: Следва - instance_actor_flash: Акаунтът е виртуално действащо лице, представляващо сървъра, а не отделен потребител. Използва се за федерацията и не бива да се спира. + instance_actor_flash: Акаунтът е виртуално действащо лице, представляващо сървъра, а не отделен потребител. Използва се за целите на федериране и не бива да се спира. last_active: последна дейност link_verified_on: Собствеността върху тази връзка е проверена на %{date} nothing_here: Тук няма нищо! @@ -471,6 +471,9 @@ bg: title: Препоръки за следване unsuppress: Възстановяване на препоръките за следване instances: + audit_log: + title: Скорошни одитни дневници + view_all: Преглед на пълните одитни дневници availability: description_html: one: Ако доставянето до домейна не е успешно за %{count} ден, няма да има последващи опити, докато не се получи доставка от домейна. diff --git a/config/locales/cy.yml b/config/locales/cy.yml index cd48b3e3b0..5f1b0b4bce 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -238,6 +238,7 @@ cy: update_custom_emoji: Diweddaru Emoji Addasedig update_domain_block: Diweddaru'r Blocio Parth update_ip_block: Diweddaru rheol IP + update_report: Diweddaru Adroddiad update_status: Diweddaru Postiad update_user_role: Diweddaru Rôl actions: @@ -686,6 +687,7 @@ cy: report: 'Adroddiad #%{id}' reported_account: Cyfrif wedi ei adrodd reported_by: Adroddwyd gan + reported_with_application: Adroddwyd gydag ap resolved: Wedi ei ddatrys resolved_msg: Llwyddwyd i ddatrys yr adroddiad! skip_to_actions: Mynd i gamau gweithredu diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml index f6223fc480..61d58981d8 100644 --- a/config/locales/devise.fi.yml +++ b/config/locales/devise.fi.yml @@ -51,7 +51,7 @@ fi: explanation: Sisäänkirjautuminen on nyt mahdollista pelkällä sähköpostiosoitteella ja salasanalla. subject: 'Mastodon: kaksivaiheinen todennus poistettu käytöstä' subtitle: Kaksivaiheinen todennus on poistettu käytöstä tililtäsi. - title: 2-vaiheinen todennus pois käytöstä + title: Kaksivaiheinen todennus poissa käytöstä two_factor_enabled: explanation: Sisäänkirjautuminen edellyttää liitetyn TOTP-sovelluksen luomaa aikarajattua kertatunnuslukua. subject: 'Mastodon: kaksivaiheinen todennus otettu käyttöön' @@ -61,7 +61,7 @@ fi: explanation: Uudet palautuskoodit on nyt luotu ja vanhat mitätöity. subject: 'Mastodon: kaksivaiheisen todennuksen palautuskoodit luotiin uudelleen' subtitle: Aiemmat palautuskoodit on mitätöity, ja korvaavat uudet koodit on luotu. - title: 2-vaiheisen todennuksen palautuskoodit vaihdettiin + title: Kaksivaiheisen todennuksen palautuskoodit vaihdettiin unlock_instructions: subject: 'Mastodon: ohjeet lukituksen poistoon' webauthn_credential: @@ -84,8 +84,8 @@ fi: subject: 'Mastodon: suojausavaimella todennus otettu käyttöön' title: Suojausavaimet käytössä omniauth_callbacks: - failure: Tunnistautuminen lähteestä %{kind} ei onnistunut, syynä ”%{reason}”. - success: Tunnistautuminen tililtä %{kind} onnistui. + failure: Todentaminen lähteestä %{kind} ei onnistunut, syynä ”%{reason}”. + success: Todentaminen tililtä %{kind} onnistui. passwords: no_token: Tälle sivulle pääsee vain salasananvaihtoviestin kautta. Jos tiedät tulevasi sen kautta, varmista, että käytät viestissä mainittua URL-osoitetta kokonaisuudessaan. send_instructions: Jos sähköpostiosoiteesi on tiedossamme, siihen lähetetään pian viesti, jossa on linkki salasanan vaihtamiseksi. Jos viestiä ei kuulu, tarkista roskapostikansiosi. diff --git a/config/locales/doorkeeper.bg.yml b/config/locales/doorkeeper.bg.yml index dd53661827..a1ef177854 100644 --- a/config/locales/doorkeeper.bg.yml +++ b/config/locales/doorkeeper.bg.yml @@ -83,6 +83,7 @@ bg: access_denied: Заявката беше отказана от собственика на ресурса или от сървъра за упълномощаване. credential_flow_not_configured: Resource Owner Password Credentials предизвика грешка, заради това, че настройките за Doorkeeper.configure.resource_owner_from_credentials липсват. invalid_client: Удостоверяването на клиента предизвика грешка, поради непознат клиент, липсващо клиентско удостоверяване, или заради това, че методът на удостоверяване не се поддържа. + invalid_code_challenge_method: Методът на предизвикателството на кода трябва да е S256, обикновен не се поддържа. invalid_grant: Предоставеното удостоверение за достъп е невалидно, изтекло, отхвърлено, не съвпада с пренасочващото URI, използвано в заявката за удостоверение, или е бил издадено от друг клиент. invalid_redirect_uri: Включеният пренасочващ Uri е невалиден. invalid_request: diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index 0323656dab..85a09b5b43 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -83,6 +83,7 @@ ca: access_denied: El propietari del recurs o servidor d'autorizació ha denegat la petició. credential_flow_not_configured: Les credencials de contrasenya del propietari del recurs han fallat degut a que Doorkeeper.configure.resource_owner_from_credentials està sense configurar. invalid_client: La autentificació del client ha fallat perquè és un client desconegut o no està inclòsa l'autentificació del client o el mètode d'autenticació no està confirmat. + invalid_code_challenge_method: El mètode de desafiament de codi ha de ser S256, no es permet que sigui pla. invalid_grant: La concessió d'autorizació oferta és invàlida, ha vençut, s'ha revocat, no coincideix amb l'URI de redirecció utilizada en la petició d'autorizació, o fou emesa per a un altre client. invalid_redirect_uri: L'uri de redirecció inclòsa no és vàlida. invalid_request: diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml index e023bc0603..f15d74d721 100644 --- a/config/locales/doorkeeper.cy.yml +++ b/config/locales/doorkeeper.cy.yml @@ -83,6 +83,7 @@ cy: access_denied: Mae perchennog yr adnodd neu'r gweinydd awdurdodi wedi atal y cais. credential_flow_not_configured: Llif meini prawf cyfrinair perchennog yr adnodd wedi methu achos fod Doorkeeper.configure.resource_owner_from_credentials heb ei ffurfweddu. invalid_client: Methodd dilysu cleient oherwydd cleient anhysbys, dim dilysiad cleient wedi'i gynnwys, neu ddull dilysu heb ei gefnogi. + invalid_code_challenge_method: Rhaid i'r dull herio cod fod yn S256, nid oes cefnogaeth i'r plaen. invalid_grant: Mae'r grant awdurdodi ar yr amod yn annilys, wedi dod i ben, wedi'i ddirymu, nid yw'n cyfateb i'r URI ailgyfeirio a ddefnyddiwyd yn y cais am awdurdodiad, neu wedi'i roi i gleient arall. invalid_redirect_uri: Nid yw'r uri ailgyfeirio a gynhwysir yn ddilys. invalid_request: diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml index d462f43d3b..cd11dcf4e3 100644 --- a/config/locales/doorkeeper.da.yml +++ b/config/locales/doorkeeper.da.yml @@ -83,6 +83,7 @@ da: access_denied: Ressourceejeren eller godkendelsesserveren afviste anmodningen. credential_flow_not_configured: Ressourceejeradgangskodeakkreditiver-flow mislykkedes grundet ikke-opsat Doorkeeper.configure.resource_owner_from_credentials. invalid_client: Klientgodkendelse mislykkedes grundet en ukendt klient, ingen inkluderet klientgodkendelse eller uunderstøttet godkendelsesmetode. + invalid_code_challenge_method: Kodeudfordringsmetoden skal være S256, simpel (plain) er uunderstøttet. invalid_grant: Den leverede godkendelse er ugyldig, udløbet, ophævet, matcher ikke omdirigerings-URI'en brugt i godkendelsesanmodningen eller er udstedt til en anden klient. invalid_redirect_uri: Inkluderede ormdirigerings-URI er ugyldig. invalid_request: diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index f303aa23a2..b29d668b2e 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -83,6 +83,7 @@ de: access_denied: Diese Anfrage wurde von den Inhaber*innen oder durch den Autorisierungsserver abgelehnt. credential_flow_not_configured: Das Konto konnte nicht gefunden werden, da Doorkeeper.configure.resource_owner_from_credentials nicht konfiguriert ist. invalid_client: 'Client-Authentisierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.' + invalid_code_challenge_method: Die Code-Challenge-Methode muss „S256“ sein, „plain“ wird nicht unterstützt. invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen oder einem anderen Client ausgestellt, oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein. invalid_redirect_uri: Der beigefügte Weiterleitungs-URI ist ungültig. invalid_request: diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml index 0b04696b6a..91f4191247 100644 --- a/config/locales/doorkeeper.es-AR.yml +++ b/config/locales/doorkeeper.es-AR.yml @@ -83,6 +83,7 @@ es-AR: access_denied: El propietario del recurso o servidor de autorización denegó la petición. credential_flow_not_configured: Las credenciales de contraseña del propietario del recurso fallaron debido a que "Doorkeeper.configure.resource_owner_from_credentials" está sin configurar. invalid_client: La autenticación del cliente falló debido a que es un cliente desconocido, o no está incluída la autenticación del cliente, o el método de autenticación no está soportado. + invalid_code_challenge_method: El método de desafío de código debe ser S256, «plain» no está soportado. invalid_grant: La concesión de autorización ofrecida no es válida, venció, se revocó, no coincide con la dirección web de redireccionamiento usada en la petición de autorización, o fue emitida para otro cliente. invalid_redirect_uri: La dirección web de redireccionamiento incluida no es válida. invalid_request: diff --git a/config/locales/doorkeeper.es-MX.yml b/config/locales/doorkeeper.es-MX.yml index 54386c4c33..b5987676d2 100644 --- a/config/locales/doorkeeper.es-MX.yml +++ b/config/locales/doorkeeper.es-MX.yml @@ -83,6 +83,7 @@ es-MX: access_denied: El propietario del recurso o servidor de autorización denegó la petición. credential_flow_not_configured: Las credenciales de contraseña del propietario del recurso falló debido a que Doorkeeper.configure.resource_owner_from_credentials está sin configurar. invalid_client: La autentificación del cliente falló ya que es un cliente desconocido, no está incluída la autentificación del cliente o el método de autentificación no es compatible. + invalid_code_challenge_method: El método de desafío de código debe ser S256, «plain» no está soportado. invalid_grant: La concesión de autorización ofrecida es inválida, venció, se revocó, no coincide con la URI de redirección utilizada en la petición de autorización, o fue emitida para otro cliente. invalid_redirect_uri: La URI de redirección incluida no es válida. invalid_request: diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index 9be036a1d4..b3c7ccddd4 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -83,6 +83,7 @@ es: access_denied: El propietario del recurso o servidor de autorización denegó la petición. credential_flow_not_configured: Las credenciales de contraseña del propietario del recurso falló debido a que Doorkeeper.configure.resource_owner_from_credentials está sin configurar. invalid_client: La autentificación del cliente falló debido o a que es un cliente desconocido o no está incluída la autentificación del cliente o el método de autentificación no está confirmado. + invalid_code_challenge_method: El método de desafío de código debe ser S256, «plain» no está soportado. invalid_grant: La concesión de autorización ofrecida es inválida, venció, se revocó, no coincide con la URI de redirección utilizada en la petición de autorización, o fue emitida para otro cliente. invalid_redirect_uri: La URI de redirección incluida no es válida. invalid_request: diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml index 3aae89f6ca..ecd2fab690 100644 --- a/config/locales/doorkeeper.fi.yml +++ b/config/locales/doorkeeper.fi.yml @@ -83,6 +83,7 @@ fi: access_denied: Resurssin omistaja tai valtuutuspalvelin hylkäsi pyynnön. credential_flow_not_configured: Resurssin omistajan salasanatietojen luku epäonnistui, koska asetusta Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu. invalid_client: Asiakasohjelman todennus epäonnistui, koska asiakas on tuntematon, asiakkaan todennus ei ollut mukana tai todennustapaa ei tueta. + invalid_code_challenge_method: Koodihaastemenetelmän tulee olla S256 – selväkielistä ei tueta. invalid_grant: Valtuutuslupa on virheellinen, vanhentunut, peruttu, valtuutuspyynnössä käytettyä uudelleenohjaus-URI:tä vastaamaton tai myönnetty toiselle asiakkaalle. invalid_redirect_uri: Uudelleenohjaus-URI on virheellinen. invalid_request: @@ -165,7 +166,7 @@ fi: admin:write:ip_blocks: suorita moderointitoimia estetyille IP-osoitteille admin:write:reports: suorita moderointitoimia raporteille crypto: käytä päästä päähän -salausta - follow: muokkaa tilin suhteita + follow: muokkaa tilin seurantasuhteita profile: lue vain tilisi profiilitietoja push: vastaanota puskuilmoituksesi read: lue kaikkia tilin tietoja diff --git a/config/locales/doorkeeper.fo.yml b/config/locales/doorkeeper.fo.yml index bd9457b620..29f8cd3387 100644 --- a/config/locales/doorkeeper.fo.yml +++ b/config/locales/doorkeeper.fo.yml @@ -83,6 +83,7 @@ fo: access_denied: Tilfarseigarin ella váttanarambætarin noktaðu umbønina. credential_flow_not_configured: Resource Owner Password Credentials floymurin eydnaðist ikki. Orsøkin var, at Doorkeeper.configure.resource_owner_from_credentials var ikki sett upp. invalid_client: Viðskiftaraváttan miseydnaðist. Orsøkin var ein ókendur viðskiftari, at eingin viðskiftaraváttan var við ella at váttanarmannagongdin er ókend. + invalid_code_challenge_method: Koduavbjóðingarmetodan má vera S256, einfalt format riggar ikki. invalid_grant: Veitta váttanarheimildin er antin ógildug, útgingin, tikin aftur, samsvarar ikki við endursendingar-URI'ið, sum bleiv brúkt í váttanarumbønini ella var flýggjað øðrum viðskiftara. invalid_redirect_uri: Endursendingar-URI'ið, sum var viðheft, er ógyldugt. invalid_request: diff --git a/config/locales/doorkeeper.ga.yml b/config/locales/doorkeeper.ga.yml index 09857768e3..95c3c4d223 100644 --- a/config/locales/doorkeeper.ga.yml +++ b/config/locales/doorkeeper.ga.yml @@ -83,6 +83,7 @@ ga: access_denied: Shéan úinéir na hacmhainne nó an freastalaí údaraithe an t-iarratas. credential_flow_not_configured: Theip ar shreabhadh Dintiúir Pasfhocal Úinéir Acmhainne toisc go raibh Doorkeeper.configure.resource_owner_from_credentials díchumraithe. invalid_client: Theip ar fhíordheimhniú cliant de bharr cliant anaithnid, níl fíordheimhniú cliant san áireamh, nó modh fíordheimhnithe nach dtacaítear leis. + invalid_code_challenge_method: Ní mór gur S256 an modh dúshlán cód, ach ní thacaítear leis. invalid_grant: Tá an deonú údaraithe ar choinníoll neamhbhailí, imithe in éag, cúlghairthe, nach ionann é agus an URI atreoraithe a úsáideadh san iarratas ar údarú, nó gur eisíodh é chuig cliant eile. invalid_redirect_uri: Níl an uri atreoraithe atá san áireamh bailí. invalid_request: diff --git a/config/locales/doorkeeper.is.yml b/config/locales/doorkeeper.is.yml index 84a4d38954..01093f4429 100644 --- a/config/locales/doorkeeper.is.yml +++ b/config/locales/doorkeeper.is.yml @@ -83,6 +83,7 @@ is: access_denied: Eigandi tilfangs eða auðkenningarþjónn höfnuðu beininni. credential_flow_not_configured: Flæði á lykilorðsauðkennum eiganda tilfangs (Resource Owner) brást vegna þess að Doorkeeper.configure.resource_owner_from_credentials er óskilgreint. invalid_client: Auðkenning á biðlara brást vegna þess að biðlarinn er óþekktur, að auðkenning biðlarans fylgdi ekki með, eða að notuð var óstudd auðkenningaraðferð. + invalid_code_challenge_method: Aðferð við ráðningu kóðans verður að vera í S256, hreinn texti er ekki studdur. invalid_grant: Uppgefin auðkenningarheimild er ógild, útrunnin, afturkölluð, samsvarar ekki endurbirtingarslóðinni í auðkenningarbeiðninni, eða var gefin út til annars biðlara. invalid_redirect_uri: Endurbeiningarslóðin sem fylgdi er ekki gild. invalid_request: diff --git a/config/locales/doorkeeper.it.yml b/config/locales/doorkeeper.it.yml index f5df14deac..9654cb2a20 100644 --- a/config/locales/doorkeeper.it.yml +++ b/config/locales/doorkeeper.it.yml @@ -83,6 +83,7 @@ it: access_denied: Il proprietario della risorsa o il server d'autorizzazione ha negato la richiesta. credential_flow_not_configured: Il processo delle Credenziali Password del Proprietario della Risorsa è fallito a causa della mancata configurazione di Doorkeeper.configure.resource_owner_from_credentials. invalid_client: Autenticazione del client fallita a causa di un client sconosciuto, di nessun'autenticazione del client inclusa o di un metodo d'autenticazione non supportato. + invalid_code_challenge_method: Il metodo di verifica del codice deve essere S256, semplice non è supportato. invalid_grant: L'autorizzazione fornita non è valida, è scaduta, è stata revocata, non corrisponde all'URI di reindirizzamento utilizzato nella richiesta d'autorizzazione o è stata emessa a un altro client. invalid_redirect_uri: L'uri di reindirizzamento incluso non è valido. invalid_request: diff --git a/config/locales/doorkeeper.lt.yml b/config/locales/doorkeeper.lt.yml index 38bb17ad13..d04e4c9f2c 100644 --- a/config/locales/doorkeeper.lt.yml +++ b/config/locales/doorkeeper.lt.yml @@ -83,6 +83,7 @@ lt: access_denied: Išteklių savininkas (-ė) arba įgaliojimų serveris atmetė užklausą. credential_flow_not_configured: Išteklių savininko slaptažodžio kredencialų srautas nepavyko, nes Doorkeeper.configure.resource_owner_from_credentials nėra nesukonfigūruotas. invalid_client: Kliento tapatybės nustatymas nepavyko dėl nežinomo kliento, neįtraukto kliento tapatybės nustatymo arba nepalaikomo tapatybės nustatymo metodo. + invalid_code_challenge_method: Kodo iššūkio būdas turi būti S256. Paprastas nepalaikomas. invalid_grant: Pateiktas įgaliojimas yra netinkamas, pasibaigęs, panaikintas, neatitinka įgaliojimo užklausoje naudoto nukreipimo URI arba buvo išduotas kitam klientui. invalid_redirect_uri: Nukreipimo uri įtrauktas yra netinkamas. invalid_request: diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml index 0a3d8fd081..f75cc04eab 100644 --- a/config/locales/doorkeeper.nl.yml +++ b/config/locales/doorkeeper.nl.yml @@ -83,6 +83,7 @@ nl: access_denied: De resource-eigenaar of autorisatie-server weigerde het verzoek. credential_flow_not_configured: De wachtwoordgegevens-flow van de resource-eigenaar is mislukt omdat Doorkeeper.configure.resource_owner_from_credentials niet is ingesteld. invalid_client: Clientverificatie is mislukt door een onbekende client, ontbrekende client-authenticatie of een niet ondersteunde authenticatie-methode. + invalid_code_challenge_method: De code-uitdagingsmethode moet S256 zijn, eenvoudig wordt niet ondersteund. invalid_grant: De verstrekte autorisatie is ongeldig, verlopen, ingetrokken, komt niet overeen met de redirect-URI die is opgegeven of werd uitgegeven aan een andere client. invalid_redirect_uri: De opgegeven redirect-URI is ongeldig. invalid_request: diff --git a/config/locales/doorkeeper.pl.yml b/config/locales/doorkeeper.pl.yml index a18a86e979..bf2da6f808 100644 --- a/config/locales/doorkeeper.pl.yml +++ b/config/locales/doorkeeper.pl.yml @@ -83,6 +83,7 @@ pl: access_denied: Właściciel zasobu lub serwer autoryzujący odrzuciły żądanie. credential_flow_not_configured: Ścieżka "Resource Owner Password Credentials" zakończyła się błędem, ponieważ Doorkeeper.configure.resource_owner_from_credentials nie został skonfigurowany. invalid_client: Autoryzacja klienta nie powiodła się z powodu nieznanego klienta, braku uwierzytelnienia klienta, lub niewspieranej metody uwierzytelniania. + invalid_code_challenge_method: Metodą wyzwania kodowego musi być S256, plain jest nieobsługiwany. invalid_grant: Grant uwierzytelnienia jest niepoprawny, przeterminowany, unieważniony, nie pasuje do URI przekierowwania użytego w żądaniu uwierzytelnienia, lub został wystawiony przez innego klienta. invalid_redirect_uri: URI przekierowania jest nieprawidłowy. invalid_request: diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml index f03cee6b3a..30ea62d9eb 100644 --- a/config/locales/doorkeeper.pt-PT.yml +++ b/config/locales/doorkeeper.pt-PT.yml @@ -83,6 +83,7 @@ pt-PT: access_denied: O proprietário do recurso ou servidor de autorização negou o pedido. credential_flow_not_configured: As credenciais da palavra-passe do proprietário do recurso falhou devido a que Doorkeeper.configure.resource_owner_from_credentials não foram configuradas. invalid_client: Autenticação do cliente falhou por causa de um cliente desconhecido, nenhum cliente de autenticação incluído ou método de autenticação não suportado. + invalid_code_challenge_method: O método de validação do código tem de ser S256, o método simples não é suportado. invalid_grant: A concessão de autorização fornecida é inválida, expirou, foi revogada, não corresponde à URI de redirecionamento usada no pedido de autorização ou foi emitida para outro cliente. invalid_redirect_uri: A URI de redirecionamento incluída não é válida. invalid_request: diff --git a/config/locales/doorkeeper.sq.yml b/config/locales/doorkeeper.sq.yml index de34154067..651f90b3b4 100644 --- a/config/locales/doorkeeper.sq.yml +++ b/config/locales/doorkeeper.sq.yml @@ -83,6 +83,7 @@ sq: access_denied: I zoti i burimit ose shërbyesi i autorizimit e hodhi poshtë kërkesën. credential_flow_not_configured: Rrjedha për Kredenciale Fjalëkalimi të të Zotit të Burimit dështoi për shkak se Doorkeeper.configure.resource_owner_from_credentials është i paformësuar. invalid_client: Mirëfilltësimi i klientit dështoi për shkak klienti të panjohur, mospërfshirjeje mirëfilltësimi klienti, ose metode të pambuluar mirëfilltësimi. + invalid_code_challenge_method: Metoda me kod duhet të jetë e llojit S256, e thjeshta nuk mbulohet. invalid_grant: Autorizimi i dhënë është i pavlefshëm, ka skaduar, është shfuqizuar, s’përputhet me URI-n e ridrejtimit të përdorur te kërkesa e autorizimit, ose është emetuar për klient tjetër. invalid_redirect_uri: URI e ridrejtimit s’është e vlefshme. invalid_request: diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index b46c16d4de..83927d1097 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -83,6 +83,7 @@ sv: access_denied: Resursägaren eller behörighetsservern nekade begäran. credential_flow_not_configured: Resurs Ägare Lösenord Credentials flöde misslyckades på grund av att Doorkeeper.configure.resource_owner_from_credentials är okonfigurerad. invalid_client: Klientautentisering misslyckades på grund av okänd klient, ingen klientautentisering inkluderad eller icke godkänd autentiseringsmetod. + invalid_code_challenge_method: Kodutmaningsmetoden måste vara S256, en slät stöds inte. invalid_grant: Det beviljade godkännandetillskottet är ogiltigt, upphört, återkallat, matchar inte den omdirigering URI som användes i auktorisationsförfrågan eller har utfärdats till en annan klient. invalid_redirect_uri: Den omdirigerade uri är inte giltig. invalid_request: diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml index 330449b1b5..41996d9603 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -83,6 +83,7 @@ tr: access_denied: Kaynak sahibi veya yetkilendirme sunucusu isteği reddetti. credential_flow_not_configured: Kaynak Sahibi Parolası Kimlik Bilgileri akışı Doorkeeper.configure.resource_owner_from_credentials 'ın yapılandırılmamış olması nedeniyle başarısız oldu. invalid_client: İstemcinin kimlik doğrulaması bilinmeyen istemci, istemci kimlik doğrulamasının dahil olmaması veya desteklenmeyen kimlik doğrulama yöntemi nedeniyle başarısız oldu. + invalid_code_challenge_method: Kod zorluk metodu S256 olmalı, düz yöntem desteklenmiyor. invalid_grant: Sağlanan yetkilendirme izni geçersiz, süresi dolmuş, iptal edilmiş, yetkilendirme isteğinde kullanılan yönlendirme URL'siyle eşleşmiyor veya başka bir istemciye verilmiş. invalid_redirect_uri: Dahil edilmiş yönlendirme uri'si geçersiz. invalid_request: diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml index ca54fcb65a..55b91fd69d 100644 --- a/config/locales/doorkeeper.uk.yml +++ b/config/locales/doorkeeper.uk.yml @@ -83,6 +83,7 @@ uk: access_denied: Власник ресурсу або сервер авторизації відхилив Ваш запит. credential_flow_not_configured: Не вдалося перевірити парольні дані клієнту через неналаштований параметр Doorkeeper.configure.resource_owner_from_credentials. invalid_client: Не вдалося аутентифікувати клієнта (клієнт невідомий, аутентифікацію клієнта не увімкнено, або непідтримуваний метод аутентифікації). + invalid_code_challenge_method: Метод виклику коду повинен бути S256, простий не підтримується. invalid_grant: Наданий санкціонований дозвіл недійсний, прострочений, анульований, не відповідає URI перенаправлення, що використовується в запиті авторизації, або був виданий іншому клієнту. invalid_redirect_uri: Включений uri перенаправлення не є дійсним. invalid_request: diff --git a/config/locales/doorkeeper.vi.yml b/config/locales/doorkeeper.vi.yml index d0bdd2cc7b..5837961737 100644 --- a/config/locales/doorkeeper.vi.yml +++ b/config/locales/doorkeeper.vi.yml @@ -83,6 +83,7 @@ vi: access_denied: Chủ sở hữu tài nguyên hoặc máy chủ đã từ chối yêu cầu. credential_flow_not_configured: Resource Owner Password Credentials không thành công do Doorkeeper.configure.resource_owner_from_credentials không được định cấu hình. invalid_client: Xác minh ứng dụng khách không thành công do máy khách mơ hồ, không bao gồm xác thực ứng dụng khách hoặc phương thức xác thực không được hỗ trợ. + invalid_code_challenge_method: Phương pháp thử thách mã phải là S256, phương pháp plain không được hỗ trợ. invalid_grant: Yêu cầu không hợp lệ, hết hạn, bị gỡ hoặc không khớp với tài khoản đã cấp phép. Hoặc xung đột với ứng dụng khác. invalid_redirect_uri: URL chuyển hướng không hợp lệ. invalid_request: diff --git a/config/locales/doorkeeper.zh-CN.yml b/config/locales/doorkeeper.zh-CN.yml index 18477bc845..36bbe2b874 100644 --- a/config/locales/doorkeeper.zh-CN.yml +++ b/config/locales/doorkeeper.zh-CN.yml @@ -83,6 +83,7 @@ zh-CN: access_denied: 资源所有者或验证服务器拒绝了此请求 credential_flow_not_configured: 由于 Doorkeeper.configure.resource_owner_from_credentials 尚未配置,应用验证授权流程失败。 invalid_client: 由于应用信息未知、未提交认证信息或使用了不支持的认证方式,认证失败 + invalid_code_challenge_method: 代码验证方法必须是 S256,不支持明文。 invalid_grant: 授权方式无效、过期或已被撤销、与授权请求中的回调地址不一致,或使用了其他应用的回调地址 invalid_redirect_uri: 无效的登录回调地址 invalid_request: diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml index d12651a648..1a4c62fdbf 100644 --- a/config/locales/doorkeeper.zh-TW.yml +++ b/config/locales/doorkeeper.zh-TW.yml @@ -83,6 +83,7 @@ zh-TW: access_denied: 資源持有者或授權伺服器拒絕請求。 credential_flow_not_configured: 因為 Doorkeeper.configure.resource_owner_from_credentials 未設定,所以資源持有者密碼認證程序失敗。 invalid_client: 用戶端驗證失敗,可能是因為未知的用戶端程式、未包含用戶端驗證、或使用了不支援的認證方法。 + invalid_code_challenge_method: code challenge 方式必須為 S256 (SHA256),不支援 plain 方式。 invalid_grant: 授權申請不正確、逾期、已被註銷、與授權請求內的重新導向 URI 不符、或屬於別的用戶端程式。 invalid_redirect_uri: 包含的重新導向 URI 是不正確的。 invalid_request: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 344d6b84ca..0aa38ed923 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -59,7 +59,7 @@ fi: destroyed_msg: Käyttäjän %{username} tiedot ovat nyt jonossa poistettavaksi välittömästi disable: Poista käytöstä disable_sign_in_token_auth: Poista sähköpostitunnuksella todennus käytöstä - disable_two_factor_authentication: Poista 2FA käytöstä + disable_two_factor_authentication: Poista kaksivaiheinen todennus käytöstä disabled: Poistettu käytöstä display_name: Näyttönimi domain: Verkkotunnus @@ -137,7 +137,7 @@ fi: security: Turvallisuus security_measures: only_password: Vain salasana - password_and_2fa: Salasana ja kaksivaiheinen tunnistautuminen + password_and_2fa: Salasana ja kaksivaiheinen todennus sensitive: Pakota arkaluonteiseksi sensitized: Merkitty arkaluonteiseksi shared_inbox_url: Jaetun saapuvan postilaatikon osoite @@ -159,7 +159,7 @@ fi: unconfirmed_email: Sähköpostia ei vahvistettu undo_sensitized: Kumoa pakotus arkaluonteiseksi undo_silenced: Kumoa rajoitus - undo_suspension: Peru jäähy + undo_suspension: Kumoa jäädytys unsilenced_msg: Tilin %{username} rajoitus kumottiin onnistuneesti unsubscribe: Lopeta tilaus unsuspended_msg: Tilin %{username} jäädytys kumottiin onnistuneesti @@ -198,23 +198,23 @@ fi: destroy_status: Poista julkaisu destroy_unavailable_domain: Poista ei-saatavilla oleva verkkotunnus destroy_user_role: Hävitä rooli - disable_2fa_user: Poista kaksivaiheinen tunnistautuminen käytöstä + disable_2fa_user: Poista kaksivaiheinen todennus käytöstä disable_custom_emoji: Poista mukautettu emoji käytöstä - disable_sign_in_token_auth_user: Estä käyttäjältä sähköpostitunnuksella todennus + disable_sign_in_token_auth_user: Poista sähköpostitunnuksella todennus käytöstä käyttäjältä disable_user: Poista tili käytöstä - enable_custom_emoji: Käytä mukautettuja emojeita + enable_custom_emoji: Ota mukautetut emojit käyttöön enable_sign_in_token_auth_user: Salli käyttäjälle sähköpostitunnuksella todennuksen enable_user: Ota tili käyttöön memorialize_account: Muuta muistotiliksi - promote_user: Käyttäjä ylennetty + promote_user: Ylennä käyttäjä reject_appeal: Hylkää valitus reject_user: Hylkää käyttäjä - remove_avatar_user: Profiilikuvan poisto + remove_avatar_user: Poista profiilikuva reopen_report: Avaa raportti uudelleen resend_user: Lähetä vahvistusviesti uudelleen reset_password_user: Nollaa salasana resolve_report: Selvitä raportti - sensitive_account: Pakotus arkaluonteiseksi tiliksi + sensitive_account: Pakota arkaluonteiseksi tiliksi silence_account: Rajoita tiliä suspend_account: Jäädytä tili unassigned_report: Poista raportti käsittelystä @@ -262,7 +262,7 @@ fi: disable_custom_emoji_html: "%{name} poisti käytöstä emojin %{target}" disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksella todennuksen käytöstä tililtä %{target}" disable_user_html: "%{name} poisti kirjautumisen käyttäjältä %{target}" - enable_custom_emoji_html: "%{name} otti käyttöön emojin %{target}" + enable_custom_emoji_html: "%{name} otti emojin %{target} käyttöön" enable_sign_in_token_auth_user_html: "%{name} otti sähköpostitunnuksella todennuksen käyttöön tilille %{target}" enable_user_html: "%{name} otti kirjautumisen käyttöön käyttäjälle %{target}" memorialize_account_html: "%{name} muutti käyttäjän %{target} tilin muistosivuksi" @@ -389,14 +389,14 @@ fi: confirm_suspension: cancel: Peruuta confirm: Jäädytä - permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai suhteita. + permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai seurantasuhteita. preamble_html: Olet jäädyttämässä verkkotunnuksen %{domain} aliverkkotunnuksineen. remove_all_data: Tämä poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän verkkotunnuksen tileiltä. stop_communication: Palvelimesi lopettaa viestinnän näiden palvelinten kanssa. title: Vahvista verkkotunnuksen %{domain} esto - undo_relationships: Tämä kumoaa näiden palvelimien ja sinun tilien välisen seurannan. + undo_relationships: Tämä kumoaa näiden palvelinten ja sinun palvelimesi tilien väliset seurantasuhteet. created_msg: Verkkotunnuksen estoa käsitellään - destroyed_msg: Verkkotunnuksen esto on peruttu + destroyed_msg: Verkkotunnuksen esto on kumottu domain: Verkkotunnus edit: Muokkaa verkkotunnuksen estoa existing_domain_block: Olet jo asettanut tiukemmat rajoitukset käyttäjälle %{name}. @@ -424,7 +424,7 @@ fi: reject_media_hint: Poistaa paikallisesti tallennetut mediatiedostot eikä lataa niitä enää jatkossa. Ei merkitystä jäähyn kohdalla reject_reports: Hylkää raportit reject_reports_hint: Ohita kaikki tästä verkkotunnuksesta tulevat raportit. Ei vaikuta jäädytyksiin - undo: Peru verkkotunnuksen esto + undo: Kumoa verkkotunnuksen esto view: Näytä verkkotunnuksen esto email_domain_blocks: add_new: Lisää uusi @@ -454,7 +454,7 @@ fi: export_domain_blocks: import: description_html: Olet tuomassa verkkotunnusten estoluetteloa. Tarkista luettelo huolella – etenkin, jos et ole laatinut sitä itse. - existing_relationships_warning: Olemassa olevat seuraussuhteet + existing_relationships_warning: Olemassa olevat seurantasuhteet private_comment_description_html: 'Seurataksesi tuotujen estojen alkuperää lisätään estojen yhteyteen seuraava yksityinen kommentti: %{comment}' private_comment_template: Tuotu lähteestä %{source} %{date} title: Tuo verkkotunnusten estoja @@ -566,7 +566,7 @@ fi: no_ip_block_selected: IP-sääntöjä ei muutettu, koska yhtään ei ollut valittuna title: IP-säännöt relationships: - title: "%{acct}n suhteet" + title: Tilin %{acct} seurantasuhteet relays: add_new: Lisää uusi välittäjä delete: Poista @@ -1418,7 +1418,7 @@ fi: notification_emails: favourite: sähköposti-ilmoituksia suosikkeihin lisäämisistä follow: sähköposti-ilmoituksia seuraamisista - follow_request: sähköposti-ilmoituksia seuraamispyynnöistä + follow_request: sähköposti-ilmoituksia seurantapyynnöistä mention: sähköposti-ilmoituksia maininnoista reblog: sähköposti-ilmoituksia tehostuksista resubscribe_html: Jos olet perunut tilauksen erehdyksessä, voit tilata ilmoitusviestejä uudelleen sähköposti-ilmoitusten asetuksista. @@ -1439,7 +1439,7 @@ fi: missing_also_known_as: ei ole tämän tilin alias move_to_self: ei voi olla nykyinen tili not_found: ei voitu löytää - on_cooldown: Sinä olet jäähyllä + on_cooldown: Olet jäähyllä followers_count: Seuraajat muuton aikana incoming_migrations: Muutto toiselta tililtä incoming_migrations_html: Muuttaaksesi toisesta tilistä tähän, sinun täytyy ensin luoda tilin alias. @@ -1483,10 +1483,10 @@ fi: subject: "%{name} seuraa nyt sinua" title: Uusi seuraaja follow_request: - action: Hallitse seuraamispyyntöjä - body: "%{name} haluaa seurata sinua" + action: Hallitse seurantapyyntöjä + body: "%{name} on pyytänyt lupaa seurata sinua" subject: 'Odottava seuraamispyyntö: %{name}' - title: Uusi seuraamispyyntö + title: Uusi seurantapyyntö mention: action: Vastaa body: "%{name} mainitsi sinut:" @@ -1580,7 +1580,7 @@ fi: moved: Muuttaneet mutual: Seuraatte toisianne primary: Ensisijaiset - relationship: Suhde + relationship: Seurantasuhde remove_selected_domains: Poista kaikki seuraajat valituista verkkotunnuksista remove_selected_followers: Poista valitut seuraajat remove_selected_follows: Lopeta valittujen käyttäjien seuraaminen @@ -1789,7 +1789,7 @@ fi: too_many_requests: Käännöspalvelulle on hiljattain esitetty liian monta pyyntöä. two_factor_authentication: add: Lisää - disable: Poista 2FA käytöstä + disable: Poista kaksivaiheinen todennus käytöstä disabled_success: Kaksivaiheisen todennuksen käytöstäpoisto onnistui edit: Muokkaa enabled: Kaksivaiheinen todennus käytössä @@ -1875,7 +1875,7 @@ fi: edit_profile_title: Mukauta profiiliasi explanation: Näillä vinkeillä pääset alkuun feature_action: Lue lisää - feature_audience: Mastodon tarjoaa sinulle ainutlaatuisen mahdollisuuden hallita yleisöäsi ilman välikäsiä. Omassa infrastruktuurissasi toimiva Mastodon on täysin hallinnassasi, ja mahdollistaa sinun seurata mitä tahansa Mastodon-palvelimia sekä niin ikään olla seurattu niiltä päin. + feature_audience: Mastodon tarjoaa sinulle ainutlaatuisen mahdollisuuden hallita yleisöäsi ilman välikäsiä. Omassa infrastruktuurissasi toimiva Mastodon on täysin hallinnassasi ja antaa sinun seurata ja tulla seuratuksi miltä tahansa verkon Mastodon-palvelimelta. feature_audience_title: Rakenna yleisöäsi luottavaisin mielin feature_control: Tiedät itse parhaiten, mitä haluat nähdä kotisyötteessäsi. Ei algoritmeja eikä mainoksia tuhlaamassa aikaasi. Seuraa yhdellä tilillä ketä tahansa, miltä tahansa Mastodon-palvelimelta, vastaanota heidän julkaisunsa aikajärjestyksessä ja tee omasta internetin nurkastasi hieman enemmän omanlaisesi. feature_control_title: Pidä aikajanasi hallussasi @@ -1884,14 +1884,14 @@ fi: feature_moderation: Mastodon palauttaa päätöksenteon käsiisi. Jokainen palvelin luo omat sääntönsä ja määräyksensä, joita valvotaan paikallisesti eikä ylhäältä alas kuten kaupallisessa sosiaalisessa mediassa, mikä tekee siitä joustavimman vastaamaan eri ihmisryhmien tarpeisiin. Liity palvelimelle, jonka säännöt sopivat sinulle, tai ylläpidä omaa palvelinta. feature_moderation_title: Moderointi juuri kuten sen pitäisi olla follow_action: Seuraa - follow_step: Mastodon perustuu sinua kiinnostavien henkilöjen julkaisujen seuraamiseen. + follow_step: Mastodonissa on kyse kiinnostavien ihmisten seuraamisesta. follow_title: Mukauta kotisyötettäsi follows_subtitle: Seuraa tunnettuja tilejä follows_title: Seurantaehdotuksia follows_view_more: Näytä lisää seurattavia henkilöitä hashtags_recent_count: - one: "%{people} henkilö viimeisen 2 päivän aikana" - other: "%{people} henkilöä viimeisen 2 päivän aikana" + one: "%{people} henkilö viimeisenä 2 päivänä" + other: "%{people} henkilöä viimeisenä 2 päivänä" hashtags_subtitle: Tutki, mikä on ollut suosittua viimeisenä 2 päivänä hashtags_title: Suositut aihetunnisteet hashtags_view_more: Näytä lisää suosittuja aihetunnisteita diff --git a/config/locales/lt.yml b/config/locales/lt.yml index eaeada4d1d..f8bbda2e96 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -348,7 +348,7 @@ lt: shortcode_hint: Bent du ženklai, tik raidiniai skaitmeniniai ženklai bei akcentai(_) title: Asmeniniai jaustukai uncategorized: Be kategorijos - unlist: Išbraukti iš sąrašo + 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! @@ -446,6 +446,9 @@ lt: import: description_html: Netrukus importuosi domenų blokavimų sąrašą. Labai atidžiai peržiūrėk šį sąrašą, ypač jei ne tu jį sudarei. instances: + audit_log: + title: Naujausi audito žurnalai + view_all: Peržiūrėti visus audito žurnalus availability: title: Prieinamumas warning: Paskutinis bandymas prisijungti prie šio serverio buvo nesėkmingas @@ -1101,7 +1104,7 @@ lt: private_long: rodyti tik sekėjams public: Vieša public_long: visi gali matyti - unlisted: Neįtrauktas į sąrašus + unlisted: Neįtrauktas į sąrašą unlisted_long: matyti gali visi, bet nėra išvardyti į viešąsias laiko skales 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/simple_form.cy.yml b/config/locales/simple_form.cy.yml index cd5bc1add7..64c67a1463 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -211,6 +211,7 @@ cy: setting_default_privacy: Preifatrwydd cyhoeddi setting_default_sensitive: Marcio cyfryngau fel eu bod yn sensitif bob tro setting_delete_modal: Dangos deialog cadarnhau cyn dileu postiad + setting_disable_hover_cards: Analluogi rhagolwg proffil ar lusgo setting_disable_swiping: Analluogi cynigion llusgo setting_display_media: Dangos cyfryngau setting_display_media_default: Rhagosodiad diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index a59368ca4e..80e08234f3 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -9,7 +9,7 @@ fi: indexable: Julkiset julkaisusi voivat näkyä hakutuloksissa Mastodonissa. Ihmiset, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta. note: 'Voit @mainita muita käyttäjiä tai #aihetunnisteita.' show_collections: Käyttäjät voivat selata seurattujasi ja seuraajiasi. Käyttäjät, joita seuraat, näkevät joka tapauksessa, että seuraat heitä. - unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntääsi. Poista valinta, jos haluat tarkistaa sekä hyväksyä tai hylätä vastaanottamasi seuraamispyynnöt. + unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntääsi. Poista valinta, jos haluat tarkistaa sekä hyväksyä tai hylätä vastaanottamasi seurantapyynnöt. account_alias: acct: Määrittele sen tilin käyttäjänimi@verkkotunnus, josta haluat muuttaa account_migration: @@ -292,7 +292,7 @@ fi: digest: Lähetä koosteviestejä sähköpostitse favourite: Joku lisäsi julkaisusi suosikkeihinsa follow: Joku seurasi sinua - follow_request: Joku pyysi saada seurata sinua + follow_request: Joku pyysi lupaa seurata sinua mention: Joku mainitsi sinut pending_account: Uusi tili tarvitsee tarkistuksen reblog: Joku tehosti julkaisuasi diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index 2281e4b4ab..1e1aee5246 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -211,6 +211,7 @@ sv: setting_default_privacy: Inläggsintegritet setting_default_sensitive: Markera alltid media som känsligt setting_delete_modal: Visa bekräftelsedialog innan radering av inlägg + setting_disable_hover_cards: Inaktivera profilförhandsgranskning vid hovring setting_disable_swiping: Inaktivera svepande rörelser setting_display_media: Mediavisning setting_display_media_default: Standard diff --git a/config/locales/sv.yml b/config/locales/sv.yml index de2664f8b5..72eefe5632 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -471,6 +471,9 @@ sv: title: Följ rekommendationer unsuppress: Återställ följrekommendation instances: + audit_log: + title: Senaste revisionsloggar + view_all: Visa fullständiga revisionssloggar availability: description_html: one: Om leveranser till domänen misslyckas i %{count} dag kommer inga ytterligare leveransförsök att göras förrän en leverans från domänen tas emot. @@ -639,6 +642,7 @@ sv: report: 'Rapport #%{id}' reported_account: Anmält konto reported_by: Anmäld av + reported_with_application: Rapporterat med applikation resolved: Löst resolved_msg: Anmälan har lösts framgångsrikt! skip_to_actions: Hoppa till åtgärder From 6ad477d146552bf8ee5415ad2bc629f1bbef188b Mon Sep 17 00:00:00 2001 From: kyori19 Date: Mon, 29 Jul 2024 17:27:11 +0900 Subject: [PATCH 017/306] Fix Codespaces startup fails due to Corepack download prompt (#31189) --- .devcontainer/codespaces/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/codespaces/devcontainer.json b/.devcontainer/codespaces/devcontainer.json index d2358657f6..8acffec825 100644 --- a/.devcontainer/codespaces/devcontainer.json +++ b/.devcontainer/codespaces/devcontainer.json @@ -39,7 +39,7 @@ }, "onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", - "postCreateCommand": "bin/setup", + "postCreateCommand": "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 bin/setup", "waitFor": "postCreateCommand", "customizations": { From 95eadabe4419a6c50ad836289f97a75d152a8f36 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 29 Jul 2024 04:31:42 -0400 Subject: [PATCH 018/306] Extrude `fill_in_auth_details` method to `ProfileStories` spec support module (#31163) --- spec/support/stories/profile_stories.rb | 10 +++++++--- spec/system/log_in_spec.rb | 12 +++--------- spec/system/oauth_spec.rb | 8 ++------ 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/spec/support/stories/profile_stories.rb b/spec/support/stories/profile_stories.rb index f5fc9a441f..07eaaca9fb 100644 --- a/spec/support/stories/profile_stories.rb +++ b/spec/support/stories/profile_stories.rb @@ -3,6 +3,12 @@ module ProfileStories attr_reader :bob, :alice, :alice_bio + def fill_in_auth_details(email, password) + fill_in 'user_email', with: email + fill_in 'user_password', with: password + click_on I18n.t('auth.login') + end + def as_a_registered_user @bob = Fabricate( :user, @@ -16,9 +22,7 @@ module ProfileStories def as_a_logged_in_user as_a_registered_user visit new_user_session_path - fill_in 'user_email', with: email - fill_in 'user_password', with: password - click_on I18n.t('auth.login') + fill_in_auth_details(email, password) end def as_a_logged_in_admin diff --git a/spec/system/log_in_spec.rb b/spec/system/log_in_spec.rb index c64e19d2b7..8a73c42d2e 100644 --- a/spec/system/log_in_spec.rb +++ b/spec/system/log_in_spec.rb @@ -17,17 +17,13 @@ describe 'Log in' do end it 'A valid email and password user is able to log in' do - fill_in 'user_email', with: email - fill_in 'user_password', with: password - click_on I18n.t('auth.login') + fill_in_auth_details(email, password) expect(subject).to have_css('div.app-holder') end it 'A invalid email and password user is not able to log in' do - fill_in 'user_email', with: 'invalid_email' - fill_in 'user_password', with: 'invalid_password' - click_on I18n.t('auth.login') + fill_in_auth_details('invalid_email', 'invalid_password') expect(subject).to have_css('.flash-message', text: failure_message('invalid')) end @@ -36,9 +32,7 @@ describe 'Log in' do let(:confirmed_at) { nil } it 'A unconfirmed user is able to log in' do - fill_in 'user_email', with: email - fill_in 'user_password', with: password - click_on I18n.t('auth.login') + fill_in_auth_details(email, password) expect(subject).to have_css('div.admin-wrapper') end diff --git a/spec/system/oauth_spec.rb b/spec/system/oauth_spec.rb index 42ff4a48ac..5d06f6111c 100644 --- a/spec/system/oauth_spec.rb +++ b/spec/system/oauth_spec.rb @@ -3,6 +3,8 @@ require 'rails_helper' describe 'Using OAuth from an external app' do + include ProfileStories + subject { visit "/oauth/authorize?#{params.to_query}" } let(:client_app) { Doorkeeper::Application.create!(name: 'test', redirect_uri: about_url(host: Rails.application.config.x.local_domain), scopes: 'read') } @@ -246,12 +248,6 @@ describe 'Using OAuth from an external app' do private - def fill_in_auth_details(email, password) - fill_in 'user_email', with: email - fill_in 'user_password', with: password - click_on I18n.t('auth.login') - end - def fill_in_otp_details(value) fill_in 'user_otp_attempt', with: value click_on I18n.t('auth.login') From 8edd77a7552875abafb76ea7703364b76311c57a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 09:07:22 +0000 Subject: [PATCH 019/306] chore(deps): update dependency typescript to v5.5.4 (#31186) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2c90f719e2..f050110cd6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17265,22 +17265,22 @@ __metadata: linkType: hard "typescript@npm:5, typescript@npm:^5.0.4": - version: 5.5.3 - resolution: "typescript@npm:5.5.3" + version: 5.5.4 + resolution: "typescript@npm:5.5.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/f52c71ccbc7080b034b9d3b72051d563601a4815bf3e39ded188e6ce60813f75dbedf11ad15dd4d32a12996a9ed8c7155b46c93a9b9c9bad1049766fe614bbdd + checksum: 10c0/422be60f89e661eab29ac488c974b6cc0a660fb2228003b297c3d10c32c90f3bcffc1009b43876a082515a3c376b1eefcce823d6e78982e6878408b9a923199c languageName: node linkType: hard "typescript@patch:typescript@npm%3A5#optional!builtin, typescript@patch:typescript@npm%3A^5.0.4#optional!builtin": - version: 5.5.3 - resolution: "typescript@patch:typescript@npm%3A5.5.3#optional!builtin::version=5.5.3&hash=379a07" + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/911c7811d61f57f07df79c4a35f56a0f426a65426a020e5fcd792f66559f399017205f5f10255329ab5a3d8c2d1f1d19530aeceffda70758a521fae1d469432e + checksum: 10c0/73409d7b9196a5a1217b3aaad929bf76294d3ce7d6e9766dd880ece296ee91cf7d7db6b16c6c6c630ee5096eccde726c0ef17c7dfa52b01a243e57ae1f09ef07 languageName: node linkType: hard From 91fbd5b422625bdf30b9ce6655378db7f804e510 Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Mon, 29 Jul 2024 09:32:29 -0500 Subject: [PATCH 020/306] Adjust magick version detection in admin panel (#30845) --- .../metrics/dimension/software_versions_dimension.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb index 71d6c63fb5..84ffc41d74 100644 --- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb +++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb @@ -85,7 +85,14 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim def imagemagick_version return if Rails.configuration.x.use_vips - version = `convert -version`.match(/Version: ImageMagick ([\d\.]+)/)[1] + imagemagick_binary = Paperclip.options[:is_windows] ? 'magick convert' : 'convert' + + version_output = Terrapin::CommandLine.new(imagemagick_binary, '-version').run + version_match = version_output.match(/Version: ImageMagick (\S+)/)[1].strip + + return nil unless version_match + + version = version_match { key: 'imagemagick', @@ -93,7 +100,7 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim value: version, human_value: version, } - rescue Errno::ENOENT + rescue Terrapin::CommandNotFoundError, Terrapin::ExitStatusError, Paperclip::Errors::CommandNotFoundError, Paperclip::Errors::CommandFailedError nil end From 6d2ed0dcba69329062234687645a9b6f4c705344 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 17:00:01 +0200 Subject: [PATCH 021/306] chore(deps): update dependency pg to v1.5.7 (#31176) 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 60d8362432..1cf7f8d769 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -589,7 +589,7 @@ GEM parslet (2.0.0) pastel (0.8.0) tty-color (~> 0.5) - pg (1.5.6) + pg (1.5.7) pghero (3.6.0) activerecord (>= 6.1) premailer (1.23.0) From c40e48116993e9a0b1701c40eded924dd496d5a7 Mon Sep 17 00:00:00 2001 From: Emelia Smith Date: Mon, 29 Jul 2024 17:49:44 +0200 Subject: [PATCH 022/306] Implement UI for Admin Search of Hashtags (#30880) --- app/controllers/admin/tags_controller.rb | 18 ++++- app/helpers/admin/tags_helper.rb | 15 ++++ app/javascript/styles/mastodon/accounts.scss | 4 + app/javascript/styles/mastodon/tables.scss | 4 + app/models/admin/tag_filter.rb | 74 +++++++++++++++++++ app/models/tag.rb | 9 ++- app/views/admin/tags/_tag.html.haml | 27 +++++++ app/views/admin/tags/index.html.haml | 39 ++++++++++ app/views/admin/tags/show.html.haml | 7 +- app/views/admin/trends/tags/_tag.html.haml | 4 +- config/locales/en.yml | 16 ++++ config/locales/simple_form.en.yml | 2 +- config/navigation.rb | 3 +- config/routes/admin.rb | 2 +- .../controllers/admin/tags_controller_spec.rb | 37 ++++++++++ spec/models/admin/tag_filter_spec.rb | 36 +++++++++ spec/models/tag_spec.rb | 30 ++++++++ 17 files changed, 316 insertions(+), 11 deletions(-) create mode 100644 app/helpers/admin/tags_helper.rb create mode 100644 app/models/admin/tag_filter.rb create mode 100644 app/views/admin/tags/_tag.html.haml create mode 100644 app/views/admin/tags/index.html.haml create mode 100644 spec/models/admin/tag_filter_spec.rb diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb index 4f727c398a..4759d15bc4 100644 --- a/app/controllers/admin/tags_controller.rb +++ b/app/controllers/admin/tags_controller.rb @@ -2,7 +2,15 @@ module Admin class TagsController < BaseController - before_action :set_tag + before_action :set_tag, except: [:index] + + PER_PAGE = 20 + + def index + authorize :tag, :index? + + @tags = filtered_tags.page(params[:page]).per(PER_PAGE) + end def show authorize @tag, :show? @@ -31,5 +39,13 @@ module Admin def tag_params params.require(:tag).permit(:name, :display_name, :trendable, :usable, :listable) end + + def filtered_tags + TagFilter.new(filter_params.with_defaults(order: 'newest')).results + end + + def filter_params + params.slice(:page, *TagFilter::KEYS).permit(:page, *TagFilter::KEYS) + end end end diff --git a/app/helpers/admin/tags_helper.rb b/app/helpers/admin/tags_helper.rb new file mode 100644 index 0000000000..eb928a6db2 --- /dev/null +++ b/app/helpers/admin/tags_helper.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Admin::TagsHelper + def admin_tags_moderation_options + [ + [t('admin.tags.moderation.reviewed'), 'reviewed'], + [t('admin.tags.moderation.review_requested'), 'review_requested'], + [t('admin.tags.moderation.unreviewed'), 'unreviewed'], + [t('admin.tags.moderation.trendable'), 'trendable'], + [t('admin.tags.moderation.not_trendable'), 'not_trendable'], + [t('admin.tags.moderation.usable'), 'usable'], + [t('admin.tags.moderation.not_usable'), 'not_usable'], + ] + end +end diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss index e63601fa9f..894332acb5 100644 --- a/app/javascript/styles/mastodon/accounts.scss +++ b/app/javascript/styles/mastodon/accounts.scss @@ -350,6 +350,10 @@ color: $primary-text-color; font-weight: 700; } + + .warning-hint { + font-weight: normal !important; + } } &__body { diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss index eab7937150..65f42d0467 100644 --- a/app/javascript/styles/mastodon/tables.scss +++ b/app/javascript/styles/mastodon/tables.scss @@ -286,6 +286,10 @@ a.table-action-link { padding: 0; } + &--padded { + padding: 12px 16px 16px; + } + &--with-image { display: flex; align-items: center; diff --git a/app/models/admin/tag_filter.rb b/app/models/admin/tag_filter.rb new file mode 100644 index 0000000000..6149c52175 --- /dev/null +++ b/app/models/admin/tag_filter.rb @@ -0,0 +1,74 @@ +# frozen_string_literal: true + +class Admin::TagFilter + KEYS = %i( + status + name + order + ).freeze + + attr_reader :params + + def initialize(params) + @params = params.to_h.symbolize_keys + end + + def results + scope = Tag.reorder(nil) + + params.each do |key, value| + next if key == :page + + scope.merge!(scope_for(key, value)) if value.present? + end + + scope + end + + private + + def scope_for(key, value) + case key + when :status + status_scope(value) + when :name + Tag.search_for(value.to_s.strip, params[:limit], params[:offset], exclude_unlistable: false) + when :order + order_scope(value) + else + raise Mastodon::InvalidParameterError, "Unknown filter: #{key}" + end + end + + def status_scope(value) + case value.to_s + when 'reviewed' + Tag.reviewed + when 'review_requested' + Tag.pending_review + when 'unreviewed' + Tag.unreviewed + when 'trendable' + Tag.trendable + when 'not_trendable' + Tag.not_trendable + when 'usable' + Tag.usable + when 'not_usable' + Tag.not_usable + else + raise Mastodon::InvalidParameterError, "Unknown status: #{value}" + end + end + + def order_scope(value) + case value.to_s + when 'newest' + Tag.order(created_at: :desc) + when 'oldest' + Tag.order(created_at: :asc) + else + raise Mastodon::InvalidParameterError, "Unknown order: #{value}" + end + end +end diff --git a/app/models/tag.rb b/app/models/tag.rb index dd1cb3027d..9006e1f25d 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -52,6 +52,7 @@ class Tag < ApplicationRecord scope :unreviewed, -> { where(reviewed_at: nil) } scope :pending_review, -> { unreviewed.where.not(requested_review_at: nil) } scope :usable, -> { where(usable: [true, nil]) } + scope :not_usable, -> { where(usable: false) } scope :listable, -> { where(listable: [true, nil]) } scope :trendable, -> { Setting.trendable_by_default ? where(trendable: [true, nil]) : where(trendable: true) } scope :not_trendable, -> { where(trendable: false) } @@ -74,6 +75,10 @@ class Tag < ApplicationRecord attributes['display_name'] || name end + def formatted_name + "##{display_name}" + end + def usable boolean_with_default('usable', true) end @@ -132,8 +137,10 @@ class Tag < ApplicationRecord def search_for(term, limit = 5, offset = 0, options = {}) stripped_term = term.strip + options.reverse_merge!({ exclude_unlistable: true, exclude_unreviewed: false }) - query = Tag.listable.matches_name(stripped_term) + query = Tag.matches_name(stripped_term) + query = query.merge(Tag.listable) if options[:exclude_unlistable] query = query.merge(matching_name(stripped_term).or(where.not(reviewed_at: nil))) if options[:exclude_unreviewed] query.order(Arel.sql('length(name) ASC, name ASC')) diff --git a/app/views/admin/tags/_tag.html.haml b/app/views/admin/tags/_tag.html.haml new file mode 100644 index 0000000000..322eee0407 --- /dev/null +++ b/app/views/admin/tags/_tag.html.haml @@ -0,0 +1,27 @@ +.batch-table__row{ class: [!tag.requires_review? && !tag.usable? && 'batch-table__row--muted'] } + .batch-table__row__content.batch-table__row__content--padded.pending-account + .pending-account__header + %strong + = link_to tag.formatted_name, admin_tag_path(tag.id) + + %br/ + + - if tag.usable? + = t('admin.tags.moderation.usable') + - else + = t('admin.tags.moderation.not_usable') + + · + - if tag.trendable? + = t('admin.tags.moderation.trendable') + - else + = t('admin.tags.moderation.not_trendable') + + - if tag.requested_review? || tag.requires_review? + · + - if tag.requested_review? + %span.negative-hint + = t('admin.tags.moderation.review_requested') + - else + %span.warning-hint + = t('admin.tags.moderation.pending_review') diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml new file mode 100644 index 0000000000..8d76d8ffa7 --- /dev/null +++ b/app/views/admin/tags/index.html.haml @@ -0,0 +1,39 @@ +- content_for :page_title do + = t('admin.tags.title') + += form_with url: admin_tags_url, method: :get, class: :simple_form do |form| + .filters + .filter-subset.filter-subset--with-select + %strong= t('admin.tags.moderation.title') + .input.select.optional + = form.select :status, + options_for_select(admin_tags_moderation_options, params[:status]), + prompt: t('generic.all') + + .filter-subset.filter-subset--with-select + %strong= t 'generic.order_by' + .input.select + = form.select :order, + options_for_select([[t('admin.tags.newest'), 'newest'], [t('admin.tags.oldest'), 'oldest']], params[:order]) + + .fields-group + .input.string.optional + = form.text_field :name, + value: params[:name], + class: 'string optional', + placeholder: t('admin.tags.name') + + .actions + %button.button= t('admin.tags.search') + = link_to t('admin.tags.reset'), admin_tags_path, class: 'button negative' + +%hr.spacer/ + +.batch-table + .batch-table__body + - if @tags.empty? + = nothing_here 'nothing-here--under-tabs' + - else + = render partial: 'tag', collection: @tags + += paginate @tags diff --git a/app/views/admin/tags/show.html.haml b/app/views/admin/tags/show.html.haml index f2d87b54b0..f6155575ae 100644 --- a/app/views/admin/tags/show.html.haml +++ b/app/views/admin/tags/show.html.haml @@ -1,12 +1,13 @@ - content_for :page_title do - = "##{@tag.display_name}" + = @tag.formatted_name -- if current_user.can?(:view_dashboard) - - content_for :heading_actions do +- content_for :heading_actions do + - if current_user.can?(:view_dashboard) = l(@time_period.first) = ' - ' = l(@time_period.last) +- if current_user.can?(:view_dashboard) .dashboard .dashboard__item = react_admin_component :counter, diff --git a/app/views/admin/trends/tags/_tag.html.haml b/app/views/admin/trends/tags/_tag.html.haml index 8cc0d713b9..b1e714a912 100644 --- a/app/views/admin/trends/tags/_tag.html.haml +++ b/app/views/admin/trends/tags/_tag.html.haml @@ -4,9 +4,7 @@ .batch-table__row__content.pending-account .pending-account__header - = link_to admin_tag_path(tag.id) do - = material_symbol 'tag' - = tag.display_name + = link_to tag.formatted_name, admin_tag_path(tag.id) %br/ diff --git a/config/locales/en.yml b/config/locales/en.yml index 322183f4ce..aab8db1815 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -885,7 +885,23 @@ en: action: Check here for more information message_html: "Your object storage is misconfigured. The privacy of your users is at risk." tags: + moderation: + not_trendable: Not trendable + not_usable: Not usable + pending_review: Pending review + review_requested: Review requested + reviewed: Reviewed + title: Status + trendable: Trendable + unreviewed: Unreviewed + usable: Usable + name: Name + newest: Newest + oldest: Oldest + reset: Reset review: Review status + search: Search + title: Hashtags updated_msg: Hashtag settings updated successfully title: Administration trends: diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 6bc7c6ac52..fee3a6151a 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -314,7 +314,7 @@ en: listable: Allow this hashtag to appear in searches and suggestions name: Hashtag trendable: Allow this hashtag to appear under trends - usable: Allow posts to use this hashtag + usable: Allow posts to use this hashtag locally user: role: Role time_zone: Time zone diff --git a/config/navigation.rb b/config/navigation.rb index c1dd81501c..f006f39a54 100644 --- a/config/navigation.rb +++ b/config/navigation.rb @@ -40,13 +40,14 @@ SimpleNavigation::Configuration.run do |navigation| n.item :trends, safe_join([fa_icon('fire fw'), t('admin.trends.title')]), admin_trends_statuses_path, if: -> { current_user.can?(:manage_taxonomies) && !self_destruct } do |s| s.item :statuses, safe_join([fa_icon('comments-o fw'), t('admin.trends.statuses.title')]), admin_trends_statuses_path, highlights_on: %r{/admin/trends/statuses} - s.item :tags, safe_join([fa_icon('hashtag fw'), t('admin.trends.tags.title')]), admin_trends_tags_path, highlights_on: %r{/admin/tags|/admin/trends/tags} + s.item :tags, safe_join([fa_icon('hashtag fw'), t('admin.trends.tags.title')]), admin_trends_tags_path, highlights_on: %r{/admin/trends/tags} s.item :links, safe_join([fa_icon('newspaper-o fw'), t('admin.trends.links.title')]), admin_trends_links_path, highlights_on: %r{/admin/trends/links} end n.item :moderation, safe_join([fa_icon('gavel fw'), t('moderation.title')]), nil, if: -> { current_user.can?(:manage_reports, :view_audit_log, :manage_users, :manage_invites, :manage_taxonomies, :manage_federation, :manage_blocks) && !self_destruct } do |s| s.item :reports, safe_join([fa_icon('flag fw'), t('admin.reports.title')]), admin_reports_path, highlights_on: %r{/admin/reports|admin/report_notes}, if: -> { current_user.can?(:manage_reports) } s.item :accounts, safe_join([fa_icon('users fw'), t('admin.accounts.title')]), admin_accounts_path(origin: 'local'), highlights_on: %r{/admin/accounts|admin/account_moderation_notes|/admin/pending_accounts|/admin/disputes|/admin/users}, if: -> { current_user.can?(:manage_users) } + s.item :tags, safe_join([fa_icon('hashtag fw'), t('admin.tags.title')]), admin_tags_path, highlights_on: %r{/admin/tags}, if: -> { current_user.can?(:manage_taxonomies) } s.item :invites, safe_join([fa_icon('user-plus fw'), t('admin.invites.title')]), admin_invites_path, if: -> { current_user.can?(:manage_invites) } s.item :follow_recommendations, safe_join([fa_icon('user-plus fw'), t('admin.follow_recommendations.title')]), admin_follow_recommendations_path, highlights_on: %r{/admin/follow_recommendations}, if: -> { current_user.can?(:manage_taxonomies) } s.item :instances, safe_join([fa_icon('cloud fw'), t('admin.instances.title')]), admin_instances_path(limited: limited_federation_mode? ? nil : '1'), highlights_on: %r{/admin/instances|/admin/domain_blocks|/admin/domain_allows}, if: -> { current_user.can?(:manage_federation) } diff --git a/config/routes/admin.rb b/config/routes/admin.rb index 207cb0580d..50c4c10594 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -163,7 +163,7 @@ namespace :admin do resources :roles, except: [:show] resources :account_moderation_notes, only: [:create, :destroy] resource :follow_recommendations, only: [:show, :update] - resources :tags, only: [:show, :update] + resources :tags, only: [:index, :show, :update] namespace :trends do resources :links, only: [:index] do diff --git a/spec/controllers/admin/tags_controller_spec.rb b/spec/controllers/admin/tags_controller_spec.rb index 4e06adaca6..1df2bc4003 100644 --- a/spec/controllers/admin/tags_controller_spec.rb +++ b/spec/controllers/admin/tags_controller_spec.rb @@ -9,6 +9,43 @@ RSpec.describe Admin::TagsController do sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')) end + describe 'GET #index' do + before do + Fabricate(:tag) + + tag_filter = instance_double(Admin::TagFilter, results: Tag.all) + allow(Admin::TagFilter).to receive(:new).and_return(tag_filter) + end + + let(:params) { { order: 'newest' } } + + it 'returns http success' do + get :index + + expect(response).to have_http_status(200) + expect(response).to render_template(:index) + + expect(Admin::TagFilter) + .to have_received(:new) + .with(hash_including(params)) + end + + describe 'with filters' do + let(:params) { { order: 'newest', name: 'test' } } + + it 'returns http success' do + get :index, params: { name: 'test' } + + expect(response).to have_http_status(200) + expect(response).to render_template(:index) + + expect(Admin::TagFilter) + .to have_received(:new) + .with(hash_including(params)) + end + end + end + describe 'GET #show' do let!(:tag) { Fabricate(:tag) } diff --git a/spec/models/admin/tag_filter_spec.rb b/spec/models/admin/tag_filter_spec.rb new file mode 100644 index 0000000000..21dc28affb --- /dev/null +++ b/spec/models/admin/tag_filter_spec.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::TagFilter do + describe 'with invalid params' do + it 'raises with key error' do + filter = described_class.new(wrong: true) + + expect { filter.results }.to raise_error(/wrong/) + end + + it 'raises with status scope error' do + filter = described_class.new(status: 'unknown') + + expect { filter.results }.to raise_error(/Unknown status: unknown/) + end + + it 'raises with order value error' do + filter = described_class.new(order: 'unknown') + + expect { filter.results }.to raise_error(/Unknown order: unknown/) + end + end + + describe '#results' do + let(:listable_tag) { Fabricate(:tag, name: 'test1', listable: true) } + let(:not_listable_tag) { Fabricate(:tag, name: 'test2', listable: false) } + + it 'returns tags filtered by name' do + filter = described_class.new(name: 'test') + + expect(filter.results).to eq([listable_tag, not_listable_tag]) + end + end +end diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb index a3cae4a339..ff0a055113 100644 --- a/spec/models/tag_spec.rb +++ b/spec/models/tag_spec.rb @@ -112,6 +112,18 @@ RSpec.describe Tag do end end + describe '#formatted_name' do + it 'returns name with a proceeding hash symbol' do + tag = Fabricate(:tag, name: 'foo') + expect(tag.formatted_name).to eq '#foo' + end + + it 'returns display_name with a proceeding hash symbol, if display name present' do + tag = Fabricate(:tag, name: 'foobar', display_name: 'FooBar') + expect(tag.formatted_name).to eq '#FooBar' + end + end + describe '.recently_used' do let(:account) { Fabricate(:account) } let(:other_person_status) { Fabricate(:status) } @@ -240,5 +252,23 @@ RSpec.describe Tag do expect(results).to eq [tag, similar_tag] end + + it 'finds only listable tags' do + tag = Fabricate(:tag, name: 'match') + _miss_tag = Fabricate(:tag, name: 'matchunlisted', listable: false) + + results = described_class.search_for('match') + + expect(results).to eq [tag] + end + + it 'finds non-listable tags as well via option' do + tag = Fabricate(:tag, name: 'match') + unlisted_tag = Fabricate(:tag, name: 'matchunlisted', listable: false) + + results = described_class.search_for('match', 5, 0, exclude_unlistable: false) + + expect(results).to eq [tag, unlisted_tag] + end end end From 1229d2907a4a7ee09ee42cd24043d74561507e0a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 18:00:55 +0200 Subject: [PATCH 023/306] chore(deps): update docker/dockerfile docker tag to v1.9 (#31187) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- streaming/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 758db9bcc9..bc7cd3b682 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.8 +# syntax=docker/dockerfile:1.9 # This file is designed for production server deployment, not local development work # For a containerized local dev environment, see: https://github.com/mastodon/mastodon/blob/main/README.md#docker diff --git a/streaming/Dockerfile b/streaming/Dockerfile index d9f7615fa8..938f1655d1 100644 --- a/streaming/Dockerfile +++ b/streaming/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.8 +# syntax=docker/dockerfile:1.9 # Please see https://docs.docker.com/engine/reference/builder for information about # the extended buildx capabilities used in this file. From 7e33583daaeff838c649a2720858017e9bea1d22 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 29 Jul 2024 13:19:05 -0400 Subject: [PATCH 024/306] Dont run crowdin upload workflow on forks (#31195) --- .github/workflows/crowdin-upload.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml index 4c9d7b096b..c1da4088e9 100644 --- a/.github/workflows/crowdin-upload.yml +++ b/.github/workflows/crowdin-upload.yml @@ -19,6 +19,7 @@ on: jobs: upload-translations: runs-on: ubuntu-latest + if: github.repository == 'mastodon/mastodon' steps: - name: Checkout From eae81d32544d4433f7b46b7a527304757fa8183a Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Mon, 29 Jul 2024 03:10:23 -0500 Subject: [PATCH 025/306] [Glitch] Follow up tweaking of admin UI changes Port 848a5ca53d47d335cf74e82c584c36dce701172a to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/admin.scss | 2 +- .../flavours/glitch/styles/mastodon-light/diff.scss | 10 ---------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss index f4289a9ac3..110d5f249d 100644 --- a/app/javascript/flavours/glitch/styles/admin.scss +++ b/app/javascript/flavours/glitch/styles/admin.scss @@ -1,6 +1,6 @@ @use 'sass:math'; -$no-columns-breakpoint: 600px; +$no-columns-breakpoint: 890px; $sidebar-width: 300px; $content-width: 840px; diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss index b7d508cdcc..e97b40d3f7 100644 --- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss +++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss @@ -298,12 +298,6 @@ html { .directory__tag > div { background: $white; border: 1px solid var(--background-border-color); - - @media screen and (max-width: $no-gap-breakpoint) { - border-left: 0; - border-right: 0; - border-top: 0; - } } .picture-in-picture-placeholder { @@ -318,10 +312,6 @@ html { &:focus { background: $ui-base-color; } - - @media screen and (max-width: $no-gap-breakpoint) { - border: 0; - } } .batch-table { From ceb7972e6e6ae709f1d3f6cc9ff3a19d61873d71 Mon Sep 17 00:00:00 2001 From: Emelia Smith Date: Mon, 29 Jul 2024 17:49:44 +0200 Subject: [PATCH 026/306] [Glitch] Implement UI for Admin Search of Hashtags Port SCSS changes from c40e48116993e9a0b1701c40eded924dd496d5a7 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/accounts.scss | 4 ++++ app/javascript/flavours/glitch/styles/tables.scss | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/app/javascript/flavours/glitch/styles/accounts.scss b/app/javascript/flavours/glitch/styles/accounts.scss index eba786ff9f..719d21fa81 100644 --- a/app/javascript/flavours/glitch/styles/accounts.scss +++ b/app/javascript/flavours/glitch/styles/accounts.scss @@ -359,6 +359,10 @@ color: $primary-text-color; font-weight: 700; } + + .warning-hint { + font-weight: normal !important; + } } &__body { diff --git a/app/javascript/flavours/glitch/styles/tables.scss b/app/javascript/flavours/glitch/styles/tables.scss index caebb952b8..dd73f6e205 100644 --- a/app/javascript/flavours/glitch/styles/tables.scss +++ b/app/javascript/flavours/glitch/styles/tables.scss @@ -286,6 +286,10 @@ a.table-action-link { padding: 0; } + &--padded { + padding: 12px 16px 16px; + } + &--with-image { display: flex; align-items: center; From e1f7ca7cedd22ecf402abe484aefacaa93f994ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:00:33 +0200 Subject: [PATCH 027/306] chore(deps): update dependency json-ld to v3.3.2 (#31205) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1cf7f8d769..5022270270 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -357,13 +357,14 @@ GEM aes_key_wrap bindata httpclient - json-ld (3.3.1) + json-ld (3.3.2) htmlentities (~> 4.3) json-canonicalization (~> 1.0) link_header (~> 0.0, >= 0.0.8) multi_json (~> 1.15) rack (>= 2.2, < 4) rdf (~> 3.3) + rexml (~> 3.2) json-ld-preloaded (3.3.0) json-ld (~> 3.3) rdf (~> 3.3) @@ -675,8 +676,9 @@ GEM zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.2.1) - rdf (3.3.1) + rdf (3.3.2) bcp47_spec (~> 0.2) + bigdecimal (~> 3.1, >= 3.1.5) link_header (~> 0.0, >= 0.0.8) rdf-normalize (0.7.0) rdf (~> 3.3) From 7d11a6c9b0e75868f803c11d97957359e3e2d218 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:15:40 +0200 Subject: [PATCH 028/306] New Crowdin Translations (automated) (#31206) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/fi.json | 20 +++++++-------- app/javascript/mastodon/locales/th.json | 8 ++++++ config/locales/bg.yml | 16 ++++++++++++ config/locales/da.yml | 16 ++++++++++++ config/locales/de.yml | 20 +++++++++++++-- config/locales/doorkeeper.nl.yml | 2 +- config/locales/doorkeeper.th.yml | 1 + config/locales/fi.yml | 34 ++++++++++++++++++------- config/locales/fo.yml | 16 ++++++++++++ config/locales/gl.yml | 16 ++++++++++++ config/locales/hu.yml | 16 ++++++++++++ config/locales/ia.yml | 3 +++ config/locales/is.yml | 16 ++++++++++++ config/locales/lt.yml | 17 +++++++++++++ config/locales/nl.yml | 16 ++++++++++++ config/locales/pl.yml | 16 ++++++++++++ config/locales/simple_form.an.yml | 1 - config/locales/simple_form.ar.yml | 1 - config/locales/simple_form.ast.yml | 1 - config/locales/simple_form.be.yml | 1 - config/locales/simple_form.bg.yml | 2 +- config/locales/simple_form.br.yml | 1 - config/locales/simple_form.ca.yml | 1 - config/locales/simple_form.ckb.yml | 1 - config/locales/simple_form.co.yml | 1 - config/locales/simple_form.cs.yml | 1 - config/locales/simple_form.cy.yml | 1 - config/locales/simple_form.da.yml | 2 +- config/locales/simple_form.de.yml | 2 +- config/locales/simple_form.el.yml | 1 - config/locales/simple_form.en-GB.yml | 1 - config/locales/simple_form.eo.yml | 1 - config/locales/simple_form.es-AR.yml | 1 - config/locales/simple_form.es-MX.yml | 1 - config/locales/simple_form.es.yml | 1 - config/locales/simple_form.et.yml | 1 - config/locales/simple_form.eu.yml | 1 - config/locales/simple_form.fa.yml | 1 - config/locales/simple_form.fi.yml | 10 ++++---- config/locales/simple_form.fo.yml | 2 +- config/locales/simple_form.fr-CA.yml | 1 - config/locales/simple_form.fr.yml | 1 - config/locales/simple_form.fy.yml | 1 - config/locales/simple_form.ga.yml | 1 - config/locales/simple_form.gd.yml | 1 - config/locales/simple_form.gl.yml | 2 +- config/locales/simple_form.he.yml | 1 - config/locales/simple_form.hu.yml | 2 +- config/locales/simple_form.hy.yml | 1 - config/locales/simple_form.ia.yml | 1 - config/locales/simple_form.id.yml | 1 - config/locales/simple_form.ie.yml | 1 - config/locales/simple_form.io.yml | 1 - config/locales/simple_form.is.yml | 2 +- config/locales/simple_form.it.yml | 1 - config/locales/simple_form.ja.yml | 1 - config/locales/simple_form.kk.yml | 1 - config/locales/simple_form.ko.yml | 1 - config/locales/simple_form.ku.yml | 1 - config/locales/simple_form.lad.yml | 1 - config/locales/simple_form.lt.yml | 2 +- config/locales/simple_form.lv.yml | 1 - config/locales/simple_form.ms.yml | 1 - config/locales/simple_form.my.yml | 1 - config/locales/simple_form.nl.yml | 2 +- config/locales/simple_form.nn.yml | 1 - config/locales/simple_form.no.yml | 1 - config/locales/simple_form.oc.yml | 1 - config/locales/simple_form.pl.yml | 2 +- config/locales/simple_form.pt-BR.yml | 1 - config/locales/simple_form.pt-PT.yml | 1 - config/locales/simple_form.ro.yml | 1 - config/locales/simple_form.ru.yml | 1 - config/locales/simple_form.sc.yml | 1 - config/locales/simple_form.sco.yml | 1 - config/locales/simple_form.si.yml | 1 - config/locales/simple_form.sk.yml | 1 - config/locales/simple_form.sl.yml | 1 - config/locales/simple_form.sq.yml | 1 - config/locales/simple_form.sr-Latn.yml | 1 - config/locales/simple_form.sr.yml | 1 - config/locales/simple_form.sv.yml | 1 - config/locales/simple_form.th.yml | 1 - config/locales/simple_form.tr.yml | 1 - config/locales/simple_form.uk.yml | 1 - config/locales/simple_form.vi.yml | 1 - config/locales/simple_form.zh-CN.yml | 1 - config/locales/simple_form.zh-HK.yml | 1 - config/locales/zh-TW.yml | 16 ++++++++++++ 89 files changed, 242 insertions(+), 98 deletions(-) diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index fc1d252325..c1cdb68462 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -223,14 +223,14 @@ "domain_pill.activitypub_lets_connect": "Sen avulla voit muodostaa yhteyden ja olla vuorovaikutuksessa ihmisten kanssa, ei vain Mastodonissa vaan myös muissa sosiaalisissa sovelluksissa.", "domain_pill.activitypub_like_language": "ActivityPub on kuin kieli, jota Mastodon puhuu muiden sosiaalisten verkostojen kanssa.", "domain_pill.server": "Palvelin", - "domain_pill.their_handle": "Hänen käyttäjänimensä:", + "domain_pill.their_handle": "Hänen käyttäjätunnuksensa:", "domain_pill.their_server": "Hänen digitaalinen kotinsa, jossa kaikki hänen julkaisunsa sijaitsevat.", "domain_pill.their_username": "Hänen yksilöllinen tunnisteensa omalla palvelimellaan. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.", "domain_pill.username": "Käyttäjänimi", - "domain_pill.whats_in_a_handle": "Mitä käyttäjänimessä on?", + "domain_pill.whats_in_a_handle": "Mitä käyttäjätunnuksessa on?", "domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa ihmisten kanssa läpi sosiaalisen verkon, joka koostuu .", "domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, ihmiset voivat olla vaikutuksessa kanssasi läpi sosiaalisen verkon, joka koostuu .", - "domain_pill.your_handle": "Käyttäjänimesi:", + "domain_pill.your_handle": "Käyttäjätunnuksesi:", "domain_pill.your_server": "Digitaalinen kotisi, jossa kaikki julkaisusi sijaitsevat. Etkö pidä tästä? Siirry palvelimelta toiselle milloin tahansa ja tuo myös seuraajasi mukanasi.", "domain_pill.your_username": "Yksilöllinen tunnisteesi tällä palvelimella. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", @@ -357,7 +357,7 @@ "home.pending_critical_update.link": "Tutustu päivityssisältöihin", "home.pending_critical_update.title": "Kriittinen tietoturvapäivitys saatavilla!", "home.show_announcements": "Näytä tiedotteet", - "interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä tämän julkaisun suosikkeihisi osoittaaksesi kirjoittajalle arvostavasi sitä ja tallentaaksesi sen tulevaa käyttöä varten.", + "interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä tämän julkaisun suosikkeihisi osoittaaksesi tekijälle arvostavasi sitä ja tallentaaksesi sen tulevaa käyttöä varten.", "interaction_modal.description.follow": "Mastodon-tilillä voit seurata käyttäjää {name} saadaksesi hänen julkaisunsa kotisyötteeseesi.", "interaction_modal.description.reblog": "Mastodon-tilillä voit tehostaa tätä julkaisua jakaaksesi sen seuraajiesi kanssa.", "interaction_modal.description.reply": "Mastodon-tilillä voit vastata tähän julkaisuun.", @@ -367,7 +367,7 @@ "interaction_modal.on_another_server": "Toisella palvelimella", "interaction_modal.on_this_server": "Tällä palvelimella", "interaction_modal.sign_in": "Et ole kirjautunut tälle palvelimelle. Millä palvelimella tilisi sijaitsee?", - "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista, etsi tervetulosähköposti saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)", + "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista palvelintasi, etsi tervetulosähköposti saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)", "interaction_modal.title.favourite": "Lisää käyttäjän {name} julkaisu suosikkeihin", "interaction_modal.title.follow": "Seuraa käyttäjää {name}", "interaction_modal.title.reblog": "Tehosta käyttäjän {name} julkaisua", @@ -392,13 +392,13 @@ "keyboard_shortcuts.hotkey": "Pikanäppäin", "keyboard_shortcuts.legend": "Näytä tämä ohje", "keyboard_shortcuts.local": "Avaa paikallinen aikajana", - "keyboard_shortcuts.mention": "Mainitse julkaisija", + "keyboard_shortcuts.mention": "Mainitse tekijä", "keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo", "keyboard_shortcuts.my_profile": "Avaa profiilisi", "keyboard_shortcuts.notifications": "Avaa ilmoitussarake", "keyboard_shortcuts.open_media": "Avaa media", "keyboard_shortcuts.pinned": "Avaa kiinnitettyjen julkaisujen luettelo", - "keyboard_shortcuts.profile": "Avaa kirjoittajan profiili", + "keyboard_shortcuts.profile": "Avaa tekijän profiili", "keyboard_shortcuts.reply": "Vastaa julkaisuun", "keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo", "keyboard_shortcuts.search": "Kohdista hakukenttään", @@ -591,7 +591,7 @@ "onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista", "onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi", "onboarding.tips.2fa": "Tiesitkö? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeron luovuttamista!", - "onboarding.tips.accounts_from_other_servers": "Tiesitkö? Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjänimen jälkiosassa!", + "onboarding.tips.accounts_from_other_servers": "Tiesitkö? Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjätunnuksen jälkiosassa!", "onboarding.tips.migration": "Tiesitkö? Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!", "onboarding.tips.verification": "Tiesitkö? Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi lisäkenttään. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä asiakirjoja!", "password_confirmation.exceeds_maxlength": "Salasanan vahvistus ylittää salasanan enimmäispituuden", @@ -727,7 +727,7 @@ "status.bookmark": "Lisää kirjanmerkki", "status.cancel_reblog_private": "Peru tehostus", "status.cannot_reblog": "Tätä julkaisua ei voi tehostaa", - "status.copy": "Kopioi julkaisun linkki", + "status.copy": "Kopioi linkki julkaisuun", "status.delete": "Poista", "status.detailed_status": "Yksityiskohtainen keskustelunäkymä", "status.direct": "Mainitse @{name} yksityisesti", @@ -821,7 +821,7 @@ "upload_modal.preview_label": "Esikatselu ({ratio})", "upload_progress.label": "Tallennetaan...", "upload_progress.processing": "Käsitellään…", - "username.taken": "Käyttäjänimi on jo varattu. Kokeile toista", + "username.taken": "Tämä käyttäjänimi on jo käytössä. Kokeile toista", "video.close": "Sulje video", "video.download": "Lataa tiedosto", "video.exit_fullscreen": "Poistu koko näytön tilasta", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 508fb15d15..99300b86db 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "ปิดกั้น", "confirmations.delete.confirm": "ลบ", "confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้?", + "confirmations.delete.title": "ลบโพสต์?", "confirmations.delete_list.confirm": "ลบ", "confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?", + "confirmations.delete_list.title": "ลบรายการ?", "confirmations.discard_edit_media.confirm": "ละทิ้ง", "confirmations.discard_edit_media.message": "คุณมีการเปลี่ยนแปลงคำอธิบายหรือตัวอย่างสื่อที่ยังไม่ได้บันทึก ละทิ้งการเปลี่ยนแปลงเหล่านั้นต่อไป?", "confirmations.edit.confirm": "แก้ไข", "confirmations.edit.message": "การแก้ไขในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?", + "confirmations.edit.title": "เขียนทับโพสต์?", "confirmations.logout.confirm": "ออกจากระบบ", "confirmations.logout.message": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ?", + "confirmations.logout.title": "ออกจากระบบ?", "confirmations.mute.confirm": "ซ่อน", "confirmations.redraft.confirm": "ลบแล้วร่างใหม่", "confirmations.redraft.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้แล้วร่างโพสต์ใหม่? รายการโปรดและการดันจะสูญหาย และการตอบกลับโพสต์ดั้งเดิมจะไม่มีความเกี่ยวพัน", + "confirmations.redraft.title": "ลบแล้วร่างโพสต์ใหม่?", "confirmations.reply.confirm": "ตอบกลับ", "confirmations.reply.message": "การตอบกลับในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?", + "confirmations.reply.title": "เขียนทับโพสต์?", "confirmations.unfollow.confirm": "เลิกติดตาม", "confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?", + "confirmations.unfollow.title": "เลิกติดตามผู้ใช้?", "conversation.delete": "ลบการสนทนา", "conversation.mark_as_read": "ทำเครื่องหมายว่าอ่านแล้ว", "conversation.open": "ดูการสนทนา", @@ -503,6 +510,7 @@ "notification_requests.title": "การแจ้งเตือนที่กรองอยู่", "notifications.clear": "ล้างการแจ้งเตือน", "notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?", + "notifications.clear_title": "ล้างการแจ้งเตือน?", "notifications.column_settings.admin.report": "รายงานใหม่:", "notifications.column_settings.admin.sign_up": "การลงทะเบียนใหม่:", "notifications.column_settings.alert": "การแจ้งเตือนบนเดสก์ท็อป", diff --git a/config/locales/bg.yml b/config/locales/bg.yml index fdaab7ac2a..c71fab2177 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -885,7 +885,23 @@ bg: action: Щракнете тук за повече информация message_html: "Вашето съхранение на предмети е погрешно конфигурирано. Поверителността на потребителите ви е изложена на риск." tags: + moderation: + not_trendable: Не изгряващо + not_usable: Не употребимо + pending_review: Чака се преглед + review_requested: Иска се преглед + reviewed: Прегледано + title: Състояние + trendable: Изгряващо + unreviewed: Непрегледано + usable: Употребимо + name: Име + newest: Най-нови + oldest: Най-стари + reset: Нулиране review: Преглед на състояние + search: Търсене + title: Хаштагове updated_msg: Успешно осъвременени настройки на хаштага title: Администрация trends: diff --git a/config/locales/da.yml b/config/locales/da.yml index e699d9e8ad..004aea520a 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -884,7 +884,23 @@ da: action: Tjek her for flere oplysninger message_html: "Objektlageret er fejlopsat. Brugernes fortrolighed er i fare." tags: + moderation: + not_trendable: Ikke trendegnet + not_usable: Ikke brugbar + pending_review: Afventer revision + review_requested: Revision anmodet + reviewed: Revideret + title: Status + trendable: Trendegnet + unreviewed: Urevideret + usable: Brugbar + name: Navn + newest: Seneste + oldest: Ældste + reset: Nulstil review: Revisionsstatus + search: Søg + title: Hashtags updated_msg: Hashtag-indstillinger opdateret title: Administration trends: diff --git a/config/locales/de.yml b/config/locales/de.yml index 33df545385..b133cf94bc 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -151,7 +151,7 @@ de: subscribe: Abonnieren suspend: Sperren suspended: Gesperrt - suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto entsperren, um es wieder nutzbar zu machen, aber es wird keine Daten wiederherstellen, die es davor hatte. + suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto entsperren, um es wieder zu verwenden, aber es wird keine Daten wiederherstellen, die es davor hatte. suspension_reversible_hint_html: Das Konto wurde gesperrt und die Daten werden am %{date} vollständig gelöscht. Bis dahin kann das Konto ohne irgendwelche negativen Auswirkungen wiederhergestellt werden. Wenn du alle Daten des Kontos sofort entfernen möchtest, kannst du das nachfolgend tun. title: Konten unblock_email: E-Mail-Adresse entsperren @@ -885,7 +885,23 @@ de: action: Für weitere Informationen hier klicken message_html: "Die Konfiguration deines Objektspeichers ist fehlerhaft. Die Privatsphäre deiner Benutzer*innen ist gefährdet." tags: + moderation: + not_trendable: Nicht trendfähig + not_usable: Nicht verwendbar + pending_review: Überprüfung ausstehend + review_requested: Überprüfung angefordert + reviewed: Überprüft + title: Status + trendable: Trendfähig + unreviewed: Ungeprüft + usable: Verwendbar + name: Name + newest: Neueste + oldest: Älteste + reset: Zurücksetzen review: Prüfstatus + search: Suchen + title: Hashtags updated_msg: Hashtag-Einstellungen erfolgreich aktualisiert title: Administration trends: @@ -1455,7 +1471,7 @@ de: backreference_required: Das neue Konto muss zuerst auf das alte Konto verweisen before: 'Bevor du fortfährst, lies bitte diese Hinweise sorgfältig durch:' cooldown: Nach dem Umzug wird es eine Weile dauern, bis du erneut umziehen darfst - disabled_account: Dein altes Konto ist nur noch eingeschränkt nutzbar. Du kannst jedoch deine Daten exportieren und das Konto wieder reaktivieren. + disabled_account: Dein altes Konto ist nur noch eingeschränkt verwendbar. Du kannst jedoch deine Daten exportieren und das Konto wieder reaktivieren. followers: Alle Follower werden vom alten zum neuen Konto übertragen only_redirect_html: Alternativ kannst du auch nur eine Weiterleitung zu deinem neuen Konto einrichten, ohne die Follower zu übertragen. other_data: Keine anderen Daten werden automatisch zum neuen Konto übertragen diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml index f75cc04eab..65ef826d38 100644 --- a/config/locales/doorkeeper.nl.yml +++ b/config/locales/doorkeeper.nl.yml @@ -83,7 +83,7 @@ nl: access_denied: De resource-eigenaar of autorisatie-server weigerde het verzoek. credential_flow_not_configured: De wachtwoordgegevens-flow van de resource-eigenaar is mislukt omdat Doorkeeper.configure.resource_owner_from_credentials niet is ingesteld. invalid_client: Clientverificatie is mislukt door een onbekende client, ontbrekende client-authenticatie of een niet ondersteunde authenticatie-methode. - invalid_code_challenge_method: De code-uitdagingsmethode moet S256 zijn, eenvoudig wordt niet ondersteund. + invalid_code_challenge_method: De code challenge method moet S256 zijn, plain wordt niet ondersteund. invalid_grant: De verstrekte autorisatie is ongeldig, verlopen, ingetrokken, komt niet overeen met de redirect-URI die is opgegeven of werd uitgegeven aan een andere client. invalid_redirect_uri: De opgegeven redirect-URI is ongeldig. invalid_request: diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml index b0d0549d1d..3735386ba3 100644 --- a/config/locales/doorkeeper.th.yml +++ b/config/locales/doorkeeper.th.yml @@ -83,6 +83,7 @@ th: access_denied: เจ้าของทรัพยากรหรือเซิร์ฟเวอร์การอนุญาตปฏิเสธคำขอ credential_flow_not_configured: โฟลว์ข้อมูลประจำตัวรหัสผ่านเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_from_credentials invalid_client: การรับรองความถูกต้องไคลเอ็นต์ล้มเหลวเนื่องจากไคลเอ็นต์ที่ไม่รู้จัก ไม่ได้รวมการรับรองความถูกต้องไคลเอ็นต์ หรือวิธีการรับรองความถูกต้องที่ไม่รองรับ + invalid_code_challenge_method: วิธีการทดสอบรหัสต้องเป็น S256 ไม่รองรับแบบธรรมดา invalid_grant: การให้การรับรองความถูกต้องที่ให้มาไม่ถูกต้อง หมดอายุแล้ว เพิกถอนแล้ว ไม่ตรงกับ URI การเปลี่ยนเส้นทางที่ใช้ในคำขอการรับรองความถูกต้อง หรือออกให้ไคลเอ็นต์อื่น invalid_redirect_uri: URI การเปลี่ยนเส้นทางที่รวมอยู่ไม่ถูกต้อง invalid_request: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 0aa38ed923..8e05e4ae34 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -463,13 +463,13 @@ fi: title: Tuo verkkotunnusten estoja no_file: Yhtäkään tiedostoa ei ole valittu follow_recommendations: - description_html: "Seuraamissuositukset auttavat uusia käyttäjiä löytämään nopeasti kiinnostavaa sisältöä. Kun käyttäjä ei ole ollut tarpeeksi vuorovaikutuksessa muiden kanssa, jotta hänelle olisi muodostunut henkilökohtaisia seuraamissuosituksia, suositellaan niiden sijaan näitä tilejä. Ne lasketaan päivittäin uudelleen yhdistelmästä tilejä, jotka ovat viime aikoina olleet aktiivisimmin sitoutuneita ja joilla on suurimmat paikalliset seuraajamäärät tietyllä kielellä." + description_html: "Seurantasuositukset auttavat uusia käyttäjiä löytämään nopeasti kiinnostavaa sisältöä. Kun käyttäjä ei ole ollut tarpeeksi vuorovaikutuksessa muiden kanssa, jotta hänelle olisi muodostunut henkilökohtaisia seuraamissuosituksia, suositellaan niiden sijaan näitä tilejä. Ne lasketaan päivittäin uudelleen yhdistelmästä tilejä, jotka ovat viime aikoina olleet aktiivisimmin sitoutuneita ja joilla on suurimmat paikalliset seuraajamäärät tietyllä kielellä." language: Kielelle status: Tila - suppress: Hylkää seuraamissuositus + suppress: Hylkää seurantasuositus suppressed: Hylätty - title: Seuraamissuositukset - unsuppress: Palauta seuraamissuositus + title: Seurantasuositukset + unsuppress: Palauta seurantasuositus instances: audit_log: title: Viimeaikaiset tarkastuslokit @@ -765,7 +765,7 @@ fi: desc_html: Vaikuttaa kaikkiin käyttäjiin, jotka eivät ole muuttaneet tätä asetusta itse title: Jätä käyttäjät oletusarvoisesti hakukoneindeksoinnin ulkopuolelle discovery: - follow_recommendations: Seuraamissuositukset + follow_recommendations: Seurantasuositukset preamble: Mielenkiintoisen sisällön esille tuominen auttaa saamaan uusia käyttäjiä, jotka eivät ehkä tunne ketään Mastodonista. Määrittele, kuinka erilaiset löytämisominaisuudet toimivat palvelimellasi. profile_directory: Profiilihakemisto public_timelines: Julkiset aikajanat @@ -885,7 +885,23 @@ fi: action: Katso täältä lisätietoja message_html: "Objektivarastosi on määritetty virheellisesti, ja käyttäjiesi yksityisyys on vaarassa." tags: + moderation: + not_trendable: Ei trendattava + not_usable: Ei käytettävissä + pending_review: Odottaa tarkastusta + review_requested: Tarkastus pyydetty + reviewed: Tarkastettu + title: Tila + trendable: Trendattava + unreviewed: Tarkastamaton + usable: Käytettävissä + name: Nimi + newest: Uusin + oldest: Vanhin + reset: Tyhjennä review: Tarkista tila + search: Hae + title: Aihetunnisteet updated_msg: Aihetunnisteiden asetusten päivitys onnistui title: Ylläpito trends: @@ -918,7 +934,7 @@ fi: statuses: allow: Salli julkaisu allow_account: Salli tekijä - description_html: Nämä ovat julkaisuja, joita palvelimesi tietää jaettavan ja lisättävän suosikkeihin paljon tällä hetkellä. Listaus voi auttaa uusia ja palaavia käyttäjiäsi löytämään lisää seurattavia. Julkaisut eivät näy julkisesti ennen kuin hyväksyt niiden julkaisijan ja julkaisija sallii tilinsä ehdottamisen. Voit myös sallia tai hylätä yksittäisiä julkaisuja. + description_html: Nämä ovat julkaisuja, joita palvelimesi tietää jaettavan ja lisättävän suosikkeihin paljon tällä hetkellä. Listaus voi auttaa uusia ja palaavia käyttäjiäsi löytämään lisää seurattavia. Julkaisut eivät näy julkisesti ennen kuin hyväksyt niiden tekijän ja tekijä sallii tilinsä ehdottamisen. Voit myös sallia tai hylätä yksittäisiä julkaisuja. disallow: Kiellä julkaisu disallow_account: Estä tekijä no_status_selected: Suosittuja julkaisuja ei muutettu, koska yhtään ei ollut valittuna @@ -1227,7 +1243,7 @@ fi: noscript_html: Käyttääksesi Mastodonin verkkosovellusta, ota JavaScript käyttöön. Vaihtoehtoisesti voit kokeilla käyttämällesi alustalle kehitettyjä Mastodonin natiivisovelluksia. existing_username_validator: not_found: paikallista käyttäjää ei löydy kyseisellä käyttäjänimellä - not_found_multiple: "%{usernames} ei löytynyt" + not_found_multiple: käyttäjänimiä %{usernames} ei löytynyt exports: archive_takeout: date: Päiväys @@ -1265,7 +1281,7 @@ fi: deprecated_api_multiple_keywords: Näitä parametreja ei voi muuttaa tästä sovelluksesta, koska ne koskevat useampaa kuin yhtä suodattimen avainsanaa. Käytä uudempaa sovellusta tai selainkäyttöliittymää. invalid_context: Ei sisältöä tai se on virheellinen index: - contexts: Suodattaa kontektissa %{contexts} + contexts: Suodattaa kontekstissa %{contexts} delete: Poista empty: Sinulla ei ole suodattimia. expires_in: Vanhenee %{distance} @@ -1551,7 +1567,7 @@ fi: privacy: Yksityisyys privacy_hint_html: Määritä, kuinka paljon muita avustavia tietoja haluat paljastaa. Käyttäjät löytävät kiinnostavia profiileja ja hienoja sovelluksia, kun he selaavat toisten seuraamia käyttäjiä ja kun he näkevät, millä sovelluksilla nämä julkaisevat. Saatat kuitenkin haluta piilottaa nämä tiedot. reach: Tavoittavuus - reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seuraamissuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen? + reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seurantasuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen? search: Haku search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että ihmiset löytävät sinut julkisten julkaisujesi perusteella? Haluatko, että ihmiset Mastodonin ulkopuolella löytävät profiilisi tehdessään hakuja verkossa? Otathan huomioon, ettei julkisten tietojen täyttä kaikista hakukoneista poisjäämistä voi taata. title: Yksityisyys ja tavoittavuus diff --git a/config/locales/fo.yml b/config/locales/fo.yml index b483a321a9..74b37c759e 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -885,7 +885,23 @@ fo: action: Kekka her fyri at fáa fleiri upplýsingar message_html: "Objekt-goymslan hjá tær er skeivt uppsett. Privatlívið hjá brúkarunum hjá tær er í vanda." tags: + moderation: + not_trendable: Ikki rákbært + not_usable: Kann ikki brúkast + pending_review: Viðgerð í gongd + review_requested: Viðgerð umbiðin + reviewed: Viðgjørt + title: Støða + trendable: Rákbært + unreviewed: Ikki viðgjørt + usable: Ónýtiligt + name: Navn + newest: Nýggjasta/u + oldest: Elsta/u + reset: Endurstilla review: Eftirkanna støðu + search: Leita + title: Frámerki updated_msg: Frámerkjastillingar dagførdar title: Umsiting trends: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 45ae60008c..d6c00d205c 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -885,7 +885,23 @@ gl: action: Mira aquí para máis información message_html: "A almacenaxe de obxectos está mal configurada. A privacidade das usuarias está en risco." tags: + moderation: + not_trendable: Non permitir en voga + not_usable: Non utilizable + pending_review: Pendente de revisión + review_requested: Revisión solicitada + reviewed: Revisada + title: Estado + trendable: Permitir en voga + unreviewed: Sen revisar + usable: Utilizable + name: Nome + newest: Máis recente + oldest: Máis antiga + reset: Restabelecer review: Estado de revisión + search: Buscar + title: Cancelos updated_msg: Actualizaronse os axustes dos cancelos title: Administración trends: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 695b3786f2..e4f5c1b847 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -885,7 +885,23 @@ hu: action: Itt találsz több információt message_html: "Az objektumtárolód félre van konfigurálva. Kockázat merül fel a felhasználóid adatainak biztonságával kapcsolatban." tags: + moderation: + not_trendable: Nem lehet felkapott + not_usable: Nem használható + pending_review: Ellenőrzésre vár + review_requested: Ellenőrzés kérve + reviewed: Ellenőrizve + title: Állapot + trendable: Lehet felkapott + unreviewed: Nem ellenőrzött + usable: Használható + name: Név + newest: Legújabb + oldest: Legrégebbi + reset: Visszaállítás review: Engedélyezés állapota + search: Keresés + title: Hashtagek updated_msg: A hashtag beállításokat sikeresen frissítettük title: Karbantartás trends: diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 101d1ecc81..964230d5a5 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -882,7 +882,10 @@ ia: action: Consulta hic pro plus information message_html: "Tu immagazinage de objectos es mal configurate. Le confidentialitate de tu usatores es in risco." tags: + name: Nomine review: Revide le stato + search: Cercar + title: Hashtags updated_msg: Parametros de hashtag actualisate con successo title: Administration trends: diff --git a/config/locales/is.yml b/config/locales/is.yml index b008e284dd..4aa05fb10c 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -887,7 +887,23 @@ is: action: Skoðaðu hér til að fá frekari upplýsingar message_html: "Gagnageymslan þín er ekki rétt stillt. Friðhelgi notendanna þinna gæti verið í hættu." tags: + moderation: + not_trendable: Getur ekki orðið vinsælt + not_usable: Ekki nothæft + pending_review: Bíður eftir yfirferð + review_requested: Beðið um yfirferð + reviewed: Yfirfarið + title: Staða + trendable: Getur orðið vinsælt + unreviewed: Óyfirfarið + usable: Nothæft + name: Nafn + newest: Nýjast + oldest: Elsta + reset: Endurstilla review: Yfirfara stöðufærslu + search: Leita + title: Myllumerki updated_msg: Það tókst að uppfæra stillingar myllumerkja title: Stjórnendur trends: diff --git a/config/locales/lt.yml b/config/locales/lt.yml index f8bbda2e96..5e18751e09 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -611,6 +611,23 @@ lt: message_html: Tavo Elasticsearch klasteris turi tik vieną mazgą, ES_PRESET turėtų būti nustatyta į single_node_cluster. elasticsearch_running_check: message_html: Nepavyko prijungti prie Elasticsearch. Patikrink, ar ji veikia, arba išjunk viso teksto paiešką. + tags: + moderation: + not_trendable: Netendencinga + not_usable: Nenaudojama + pending_review: Laukiama peržiūros + review_requested: Paprašyta peržiūros + reviewed: Peržiūrėta + title: Statusas + trendable: Tendencinga + unreviewed: Neperžiūrėta + usable: Naudojama + name: Pavadinimas + newest: Naujausias + oldest: Seniausias + reset: Atkurti + search: Paieška + title: Saitažodžiai title: Administracija trends: allow: Leisti diff --git a/config/locales/nl.yml b/config/locales/nl.yml index b23b4e10af..da1684e8a9 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -885,7 +885,23 @@ nl: action: Klik hier voor meer informatie message_html: "Jouw objectopslag is verkeerd geconfigureerd. De privacy van je gebruikers is in gevaar." tags: + moderation: + not_trendable: Niet trendbaar + not_usable: Niet bruikbaar + pending_review: In afwachting van beoordeling + review_requested: Beoordeling aangevraagd + reviewed: Beoordeeld + title: Status + trendable: Trendbaar + unreviewed: Onbeoordeeld + usable: Bruikbaar + name: Naam + newest: Nieuwste + oldest: Oudste + reset: Opnieuw review: Status beoordelen + search: Zoeken + title: Hashtags updated_msg: Instellingen hashtag succesvol bijgewerkt title: Beheer trends: diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 8a2dab5b99..1477396999 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -913,7 +913,23 @@ pl: action: Kliknij tutaj, aby dowiedzieć się więcej message_html: "Pamięć obiektu jest nieprawidłowa. Prywatność twoich użytkowników jest zagrożona." tags: + moderation: + not_trendable: Nie mogą trendować + not_usable: Nieużywalne + pending_review: Oczekuje na przejrzenie + review_requested: Prośba o przejrzenie + reviewed: Przejrzane + title: Status + trendable: Mogą trendować + unreviewed: Nieprzejrzane + usable: Używalne + name: Nazwa + newest: Najnowsze + oldest: Najstarsze + reset: Resetuj review: Stan przeglądu + search: Szukaj + title: Hashtagi updated_msg: Pomyślnie uaktualniono ustawienia hashtagów title: Administracja trends: diff --git a/config/locales/simple_form.an.yml b/config/locales/simple_form.an.yml index e409c39ae1..7119aadba2 100644 --- a/config/locales/simple_form.an.yml +++ b/config/locales/simple_form.an.yml @@ -271,7 +271,6 @@ an: listable: Permitir que esta etiqueta amaneixca en as busquedas y en o directorio d'o perfil name: Etiqueta trendable: Permitir que esta etiqueta amaneixca baixo tendencias - usable: Permitir a las publicacions usar esta etiqueta user: role: Rol user_role: diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 370667d48e..744da9d055 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -311,7 +311,6 @@ ar: listable: اسمح لهذا الوسم بالظهور في البحث وفي دليل الصفحات التعريفية name: الوسم trendable: السماح لهذه الكلمة المفتاحية بالظهور تحت المتداوَلة - usable: اسمح للمنشورات استخدام هذا الوسم user: role: الدور time_zone: النطاق الزمني diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml index c222c9aef5..5e3f1af89a 100644 --- a/config/locales/simple_form.ast.yml +++ b/config/locales/simple_form.ast.yml @@ -180,7 +180,6 @@ ast: listable: Permitir qu'esta etiqueta apaeza nes busques y nes suxerencies name: Etiqueta trendable: Permitir qu'esta etiqueta apaeza nes tendencies - usable: Permitir que los artículos usen esta etiqueta user: role: Rol time_zone: Fusu horariu diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index 101d40f117..fca41d3fe3 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -311,7 +311,6 @@ be: listable: Дазволіць паказ хэштэгу ў пошуку і ў каталозе профіляў name: Хэштэг trendable: Дазволіць паказ гэтага хэштэга ў трэндах - usable: Дазволіць выкарыстанне хэштэгу ў допісах user: role: Роля time_zone: Часавы пояс diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 564f72e8c2..333ab25c82 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -314,7 +314,7 @@ bg: listable: Позволяване на хаштага да се появява при търсене и предложения name: Хаштаг trendable: Показване на хаштага да се появява под нашумели - usable: Позволяване на публикациите да употребяват този хаштаг + usable: Позволяване на публикациите да употребяват този хаштаг локално user: role: Роля time_zone: Часова зона diff --git a/config/locales/simple_form.br.yml b/config/locales/simple_form.br.yml index 196711aee9..f4d442cfda 100644 --- a/config/locales/simple_form.br.yml +++ b/config/locales/simple_form.br.yml @@ -72,7 +72,6 @@ br: tag: name: Hashtag trendable: Aotren an hashtag-mañ da zont war wel dindan tuadurioù - usable: Aotren an embannadurioù da implijout an hashtag-mañ user: role: Roll time_zone: Gwerzhid eur diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 2e0199d7fd..7b1c67d392 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -314,7 +314,6 @@ ca: listable: Permet que aquesta etiqueta aparegui en les cerques i en el directori de perfils name: Etiqueta trendable: Permet que aquesta etiqueta aparegui en les tendències - usable: Permet als tuts emprar aquesta etiqueta user: role: Rol time_zone: Zona horària diff --git a/config/locales/simple_form.ckb.yml b/config/locales/simple_form.ckb.yml index 3c1d8315e3..cfadea034d 100644 --- a/config/locales/simple_form.ckb.yml +++ b/config/locales/simple_form.ckb.yml @@ -182,7 +182,6 @@ ckb: listable: ڕیگەبدە ئەم هاشتاگە لە پێرستی هەڵبژاردەی بەکارهێنەران و پەڕەی گەڕان نیشان بدرێت name: هەشتاگ trendable: ڕێگەبدە ئەم هەشتاگە لە نووسراوەی بەرچاوکراو نیسان بدرێت - usable: ڕێگەبدە بە توتەکان بۆ بەکارهێنانی ئەم هەشتاگە 'no': نە recommended: پێشنیارکراوە required: diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml index dfec033469..06c993f406 100644 --- a/config/locales/simple_form.co.yml +++ b/config/locales/simple_form.co.yml @@ -186,7 +186,6 @@ co: listable: Auturizà stu hashtag à esse vistu nant'à l'annuariu di i prufili name: Hashtag trendable: Auturizà stu hashtag à esse vistu in e tendenze - usable: Auturizà i statuti à utilizà stu hashtag 'no': Nò recommended: Ricumandati required: diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index f8422102f1..5a1bd3c883 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -311,7 +311,6 @@ cs: listable: Povolit zobrazení tohoto hashtagu ve vyhledávání a návrzích name: Hashtag trendable: Povolit zobrazení tohoto hashtagu mezi populárními - usable: Povolit používat tento hashtag v příspěvcích user: role: Role time_zone: Časové pásmo diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index 64c67a1463..611223ea66 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -314,7 +314,6 @@ cy: listable: Caniatáu i'r hashnod hwn ymddangos mewn chwiliadau ac awgrymiadau name: Hashnod trendable: Caniatáu i'r hashnod hwn ymddangos o dan bynciau llosg - usable: Caniatáu i bostiadau ddefnyddio'r hashnod hwn user: role: Rôl time_zone: Cylchfa amser diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 9e949d1683..5763885ac4 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -314,7 +314,7 @@ da: listable: Tillad visning af dette hashtag i søgninger og forslag name: Hashtag trendable: Tillad visning af dette hashtag under trends - usable: Tillad indlæg at benytte dette hashtag + usable: Tillad indlæg at benytte dette hashtag lokalt user: role: Rolle time_zone: Tidszone diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 332d951395..fb7bda9489 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -314,7 +314,7 @@ de: listable: Erlaube, dass dieser Hashtag in Suchen und Empfehlungen erscheint name: Hashtag trendable: Erlaube, dass dieser Hashtag in den Trends erscheint - usable: Erlaube, dass dieser Hashtag in Beiträgen erscheint + usable: Beiträge dürfen diesen Hashtag lokal verwenden user: role: Rolle time_zone: Zeitzone diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 29b9f59e14..af93f65fec 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -276,7 +276,6 @@ el: listable: Εμφάνιση αυτής της ετικέτας στο δημόσιο κατάλογο name: Ετικέτα trendable: Εμφάνιση της ετικέτας στις τάσεις - usable: Χρήση της ετικέτας σε τουτ user: role: Ρόλος user_role: diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml index c1f2a015e9..606b9a4d40 100644 --- a/config/locales/simple_form.en-GB.yml +++ b/config/locales/simple_form.en-GB.yml @@ -314,7 +314,6 @@ en-GB: listable: Allow this hashtag to appear in searches and suggestions name: Hashtag trendable: Allow this hashtag to appear under trends - usable: Allow posts to use this hashtag user: role: Role time_zone: Time Zone diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml index 021be93b5d..3b51c15908 100644 --- a/config/locales/simple_form.eo.yml +++ b/config/locales/simple_form.eo.yml @@ -303,7 +303,6 @@ eo: listable: Permesi ĉi tiun kradvorton aperi en serĉoj kaj sugestoj name: Kradvorto trendable: Permesi al ĉi tiu kradvorto aperi en furoraĵoj - usable: Permesi mesaĝojn uzi ĉi tiun kradvorton user: role: Rolo time_zone: Horzono diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index 71d9726b07..a1dbeea916 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -314,7 +314,6 @@ es-AR: listable: Permitir que esta etiqueta aparezca en las búsquedas y en las sugerencias name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias - usable: Permitir a los mensajes usar esta etiqueta user: role: Rol time_zone: Zona horaria diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index 730e9b265b..43dd38ac7c 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -314,7 +314,6 @@ es-MX: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias - usable: Permitir a los toots usar esta etiqueta user: role: Rol time_zone: Zona horaria diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index f2d91349ad..1e7401d0e2 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -314,7 +314,6 @@ es: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias - usable: Permitir a las publicaciones usar esta etiqueta user: role: Rol time_zone: Zona horaria diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 4dd74e68a3..74660921d2 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -311,7 +311,6 @@ et: listable: Luba sellel sildil ilmuda profiilide kataloogis name: Silt trendable: Luba sellel sildil trendida - usable: Luba postitustel seda silti kasutada user: role: Roll time_zone: Ajavöönd diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index 8c467bc9bf..c7e2667cad 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -311,7 +311,6 @@ eu: listable: Baimendu traola hau bilaketetan agertzea eta profilen direktorioan name: Traola trendable: Baimendu traola hau joeretan agertzea - usable: Baimendu tootek traola hau erabiltzea user: role: Rola time_zone: Ordu zona diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml index dd1c56e3bd..0610f7fced 100644 --- a/config/locales/simple_form.fa.yml +++ b/config/locales/simple_form.fa.yml @@ -286,7 +286,6 @@ fa: listable: اجازه به این برچسب برای ظاهر شدن در جست‌وجوها و پیشنهادها name: برچسب trendable: بگذارید که این برچسب در موضوعات پرطرفدار دیده شود - usable: بگذارید که این برچسب در فرسته‌ها به کار بروند user: role: نقش time_zone: منطقهٔ زمانی diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 80e08234f3..a6004cee35 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -73,13 +73,13 @@ fi: filters: action: Valitse, mikä toiminto suoritetaan, kun julkaisu vastaa suodatinta actions: - hide: Piilota suodatettu sisältö kokonaan ja käyttäydy ikään kuin sitä ei olisi olemassa + hide: Piilota suodatettu sisältö kokonaan, ikään kuin sitä ei olisi olemassa warn: Piilota suodatettu sisältö varoituksen taakse, jossa mainitaan suodattimen nimi form_admin_settings: activity_api_enabled: Paikallisesti julkaistujen julkaisujen, aktiivisten käyttäjien ja rekisteröitymisten viikoittainen määrä app_icon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen mobiililaitteiden sovelluskuvakkeen omalla kuvakkeella. backups_retention_period: Käyttäjillä on mahdollisuus arkistoida julkaisujaan myöhemmin ladattaviksi. Kun kentän arvo on positiivinen, nämä arkistot poistuvat automaattisesti, kun määritetty määrä päiviä on kulunut. - bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seuraamissuositusten alkuun. + bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seurantasuositusten alkuun. closed_registrations_message: Näkyy, kun rekisteröityminen on suljettu content_cache_retention_period: Kaikki muiden palvelinten julkaisut (mukaan lukien tehostukset ja vastaukset) poistuvat, kun määritetty määrä päiviä on kulunut, lukuun ottamatta paikallisen käyttäjän vuorovaikutusta näiden julkaisujen kanssa. Tämä sisältää julkaisut, jotka paikallinen käyttäjä on merkinnyt kirjanmerkiksi tai suosikiksi. Myös yksityismaininnat eri palvelinten käyttäjien välillä menetetään, eikä niitä voi palauttaa. Tämä asetus on tarkoitettu käytettäväksi erityistapauksissa ja rikkoo monia käyttäjien odotuksia, kun sitä sovelletaan yleiskäyttöön. custom_css: Voit käyttää mukautettuja tyylejä Mastodonin selainversiossa. @@ -151,9 +151,9 @@ fi: show_collections: Näytä seuratut ja seuraajat profiilissa unlocked: Hyväksy uudet seuraajat automaattisesti account_alias: - acct: Vanhan tilin käyttäjänimi + acct: Vanhan tilin käyttäjätunnus account_migration: - acct: Uuden tilin käyttäjänimi + acct: Uuden tilin käyttäjätunnus account_warning_preset: text: Esimääritetty teksti title: Nimi @@ -314,7 +314,7 @@ fi: listable: Salli tämän aihetunnisteen näkyä hauissa ja ehdotuksissa name: Aihetunniste trendable: Salli tämän aihetunnisteen näkyä trendeissä - usable: Salli julkaisujen käyttää tätä aihetunnistetta + usable: Salli julkaisujen käyttää tätä aihetunnistetta paikallisesti user: role: Rooli time_zone: Aikavyöhyke diff --git a/config/locales/simple_form.fo.yml b/config/locales/simple_form.fo.yml index b334d4f034..ecd8402680 100644 --- a/config/locales/simple_form.fo.yml +++ b/config/locales/simple_form.fo.yml @@ -314,7 +314,7 @@ fo: listable: Loyva hesum tvíkrossið, at verða vístur í leitingum og uppskotum name: Tvíkrossur trendable: Loyv hesum frámerki at síggjast undir rákum - usable: Loyva uppsløgum at brúka hendan tvíkross + usable: Loyv postum at brúka hetta frámerki lokalt user: role: Leiklutur time_zone: Tíðarsona diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml index 4b3f53e222..5edffb49d4 100644 --- a/config/locales/simple_form.fr-CA.yml +++ b/config/locales/simple_form.fr-CA.yml @@ -305,7 +305,6 @@ fr-CA: listable: Autoriser ce hashtag à apparaître dans les recherches et dans l’annuaire des profils name: Mot-clic trendable: Autoriser ce hashtag à apparaitre dans les tendances - usable: Autoriser les messages à utiliser ce hashtag user: role: Rôle time_zone: Fuseau horaire diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 476f197f41..9694b00b48 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -305,7 +305,6 @@ fr: listable: Autoriser ce hashtag à apparaître dans les recherches et dans l’annuaire des profils name: Hashtag trendable: Autoriser ce hashtag à apparaitre dans les tendances - usable: Autoriser les messages à utiliser ce hashtag user: role: Rôle time_zone: Fuseau horaire diff --git a/config/locales/simple_form.fy.yml b/config/locales/simple_form.fy.yml index 64e5dd68da..bde97237f6 100644 --- a/config/locales/simple_form.fy.yml +++ b/config/locales/simple_form.fy.yml @@ -314,7 +314,6 @@ fy: listable: Tastean dat dizze hashtag yn sykopdrachten en oanrekommandaasjes te sjen is name: Hashtag trendable: Goedkarre dat dizze hashtag ûnder trends te sjen is - usable: Tastean dat dizze hashtag yn berjochten brûkt wurde mei user: role: Rol time_zone: Tiidsône diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml index 2effe1a10c..60faa07f27 100644 --- a/config/locales/simple_form.ga.yml +++ b/config/locales/simple_form.ga.yml @@ -314,7 +314,6 @@ ga: listable: Lig don hashchlib seo a bheith le feiceáil i gcuardach agus i moltaí name: Haischlib trendable: Lig don haischlib seo a bheith le feiceáil faoi threochtaí - usable: Lig do phostálacha an hashchlib seo a úsáid user: role: Ról time_zone: Crios ama diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 8a36f73dc1..946320aa04 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -305,7 +305,6 @@ gd: listable: Faodaidh an taga hais seo nochdadh ann an toraidhean luirg ’s am measg nam molaidhean name: Taga hais trendable: Faodaidh an taga hais seo nochdadh am measg nan treandaichean - usable: Faodaidh postaichean an taga hais seo a chleachdadh user: role: Dreuchd time_zone: Roinn-tìde diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index 57bf31b42d..a7074af0f9 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -314,7 +314,7 @@ gl: listable: Permitir que este cancelo apareza en buscas e no directorio de perfil name: Cancelo trendable: Permitir que este cancelo apareza en tendencias - usable: Permitir que as publicacións utilicen este cancelo + usable: Permitir que as publicacións usen este cancelo localmente user: role: Rol time_zone: Fuso horario diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index f79ddb9b34..edc3cc8f38 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -314,7 +314,6 @@ he: listable: הרשה/י לתגית זו להופיע בחיפושים והצעות name: תגית trendable: הרשה/י לתגית זו להופיע תחת נושאים חמים - usable: הרשה/י להודעות להכיל תגית זו user: role: תפקיד time_zone: אזור זמן diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index 518a82ec16..512e13d3af 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -314,7 +314,7 @@ hu: listable: A hashtag megjelenhet a profiladatbázisban name: Hashtag trendable: A hashtag megjelenhet a felkapottak között - usable: Bejegyzések használhatják ezt a hashtaget + usable: A helyi bejegyzések használhatják ezt a hashtaget user: role: Szerep time_zone: Időzóna diff --git a/config/locales/simple_form.hy.yml b/config/locales/simple_form.hy.yml index 0525f2d6fc..36185f73e4 100644 --- a/config/locales/simple_form.hy.yml +++ b/config/locales/simple_form.hy.yml @@ -187,7 +187,6 @@ hy: listable: Թոյլատրել, որ այս պիտակը յայտնուի որոնումների եւ հաշուի մատեանում name: Պիտակ trendable: Թոյլատրել, որ այս պիտակը յայտնուի թրենդներում - usable: Թոյլատրել գրառումներին օգտագործել այս պիտակը 'no': Ոչ recommended: Խորհուրդ է տրվում required: diff --git a/config/locales/simple_form.ia.yml b/config/locales/simple_form.ia.yml index bee2454cf0..00226aee90 100644 --- a/config/locales/simple_form.ia.yml +++ b/config/locales/simple_form.ia.yml @@ -313,7 +313,6 @@ ia: listable: Permitter a iste hashtag apparer in le recercas e suggestiones name: Hashtag trendable: Permitter a iste hashtag de sub tendentias - usable: Permitter al messages usar iste hashtag user: role: Rolo time_zone: Fuso horari diff --git a/config/locales/simple_form.id.yml b/config/locales/simple_form.id.yml index 1f493435e8..99f4372cc1 100644 --- a/config/locales/simple_form.id.yml +++ b/config/locales/simple_form.id.yml @@ -268,7 +268,6 @@ id: listable: Izinkan tagar ini muncul di penelusuran dan di direktori profil name: Tagar trendable: Izinkan tagar ini muncul di bawah tren - usable: Izinkan toot memakai tagar ini user: role: Peran user_role: diff --git a/config/locales/simple_form.ie.yml b/config/locales/simple_form.ie.yml index 2b995e7efa..0828139a43 100644 --- a/config/locales/simple_form.ie.yml +++ b/config/locales/simple_form.ie.yml @@ -311,7 +311,6 @@ ie: listable: Permisser que ti hashtag apari in serchas e suggestiones name: Hashtag trendable: Permisse que ti-ci hashtag apari sub tendenties - usable: Permisser que postas usa ti hashtag user: role: Rol time_zone: Zone temporal diff --git a/config/locales/simple_form.io.yml b/config/locales/simple_form.io.yml index 81f298249e..4de7475b2e 100644 --- a/config/locales/simple_form.io.yml +++ b/config/locales/simple_form.io.yml @@ -300,7 +300,6 @@ io: listable: Permisez ca hashtago aparar en trovaji e sugestaji name: Hashtago trendable: Permisez ca hashtago aparar che tendenci - usable: Permisez posti uzar ca hashtago user: role: Rolo time_zone: Klokozono diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index 9e28ef9be6..a7e2083f4d 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -314,7 +314,7 @@ is: listable: Leyfa þessu myllumerki að birtast í leitum og í persónusniðamöppunni name: Myllumerki trendable: Leyfa þessu myllumerki að birtast undir vinsælu efni - usable: Leyfa færslum að nota þetta myllumerki + usable: Leyfa færslum að nota þetta myllumerki staðvært user: role: Hlutverk time_zone: Tímabelti diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index eddc86b4e1..b0f7ef7a6b 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -314,7 +314,6 @@ it: listable: Permetti a questo hashtag di apparire nella directory dei profili name: Hashtag trendable: Permetti a questo hashtag di apparire nelle tendenze - usable: Permetti ai post di usare questo hashtag user: role: Ruolo time_zone: Fuso orario diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index a4bd956508..7f4a9daeff 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -314,7 +314,6 @@ ja: listable: 検索とディレクトリへの使用を許可する name: ハッシュタグ trendable: トレンドへの表示を許可する - usable: 投稿への使用を許可する user: role: ロール time_zone: タイムゾーン diff --git a/config/locales/simple_form.kk.yml b/config/locales/simple_form.kk.yml index 5c1854d188..e6ba46fdf8 100644 --- a/config/locales/simple_form.kk.yml +++ b/config/locales/simple_form.kk.yml @@ -86,7 +86,6 @@ kk: listable: Бұл хештегті барлық жерде көрсетуге рұқсат бер name: Хэштег trendable: Хештегті трендтерде көрсетуге рұқсат бер - usable: Бұл хештегті қолдануға рұқсат бер 'no': Жоқ recommended: Рекоменделген required: diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index b94b4b3d40..b2ff68c5dd 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -314,7 +314,6 @@ ko: listable: 이 해시태그가 검색과 추천에 보여지도록 허용 name: 해시태그 trendable: 이 해시태그가 유행에 나타날 수 있도록 허용 - usable: 이 해시태그를 게시물에 사용 가능하도록 허용 user: role: 역할 time_zone: 시간대 diff --git a/config/locales/simple_form.ku.yml b/config/locales/simple_form.ku.yml index 0c4f872131..96e047d937 100644 --- a/config/locales/simple_form.ku.yml +++ b/config/locales/simple_form.ku.yml @@ -267,7 +267,6 @@ ku: listable: Bihêle ku ev hashtag werê xuyakirin di lêgerîn û pêşniyaran de name: Hashtag trendable: Bihêle ku ev hashtag werê xuyakirin di bin rojevê de - usable: Bihêle ku şandî ev hashtag bi kar bînin user: role: Rol user_role: diff --git a/config/locales/simple_form.lad.yml b/config/locales/simple_form.lad.yml index 65647a77db..f7093ff73b 100644 --- a/config/locales/simple_form.lad.yml +++ b/config/locales/simple_form.lad.yml @@ -306,7 +306,6 @@ lad: listable: Permite ke esta etiketa apareska en bushkedas i sujestyones name: Etiketa trendable: Permite ke esta etiketa apareska en trendes - usable: Permite ke publikasyones uzen esta etiketa user: role: Rolo time_zone: Zona de tiempo diff --git a/config/locales/simple_form.lt.yml b/config/locales/simple_form.lt.yml index b31803409b..02f0360938 100644 --- a/config/locales/simple_form.lt.yml +++ b/config/locales/simple_form.lt.yml @@ -208,7 +208,7 @@ lt: listable: Leisti šį saitažodį rodyti paieškose ir pasiūlymuose name: Saitažodis trendable: Leisti šį saitažodį rodyti pagal trendus - usable: Leisti įrašams naudoti šį saitažodį + usable: Leisti įrašams naudoti šį saitažodį vietoje user: role: Vaidmuo time_zone: Laiko juosta diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml index 017acd0a53..eedae998e4 100644 --- a/config/locales/simple_form.lv.yml +++ b/config/locales/simple_form.lv.yml @@ -309,7 +309,6 @@ lv: listable: Atļaut šim tēmturim parādīties meklējumos un ieteikumos name: Tēmturis trendable: Atļaut šim tēmturim parādīties zem tendencēm - usable: Atļaut lietot ziņās šo tēmturi user: role: Loma time_zone: Laika josla diff --git a/config/locales/simple_form.ms.yml b/config/locales/simple_form.ms.yml index ae375149eb..da00e2dc2b 100644 --- a/config/locales/simple_form.ms.yml +++ b/config/locales/simple_form.ms.yml @@ -301,7 +301,6 @@ ms: listable: Benarkan hashtag ini muncul dalam carian dan cadangan name: Tanda pagar trendable: Benarkan hashtag ini muncul di bawah aliran - usable: Benarkan siaran untuk menggunakan tanda pagar ini user: role: Peranan time_zone: Zon masa diff --git a/config/locales/simple_form.my.yml b/config/locales/simple_form.my.yml index 20c862ab27..a44635edd4 100644 --- a/config/locales/simple_form.my.yml +++ b/config/locales/simple_form.my.yml @@ -301,7 +301,6 @@ my: listable: ရှာဖွေမှုများနှင့် အကြံပြုချက်များတွင် ဤ hashtag ပေါ်လာစေရန် ခွင့်ပြုပါ name: Hashtag trendable: ခေတ်စားနေသောအကြောင်းအရာများအောက်တွင် ဤ hashtag ပေါ်လာစေရန် ခွင့်ပြုပါ - usable: ပို့စ်များကို ဤ hashtag သုံးခွင့်ပြုပါ user: role: အခန်းကဏ္ဍ time_zone: အချိန်ဇုန် diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 5633193406..91ee9bc3e3 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -314,7 +314,7 @@ nl: listable: Toestaan dat deze hashtag in zoekopdrachten en aanbevelingen te zien valt name: Hashtag trendable: Goedkeuren dat deze hashtag onder trends te zien valt - usable: Toestaan dat deze hashtag in berichten gebruikt mag worden + usable: Berichten toestaan deze hashtag lokaal te gebruiken user: role: Rol time_zone: Tijdzone diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml index c9075a89c2..f7551cc313 100644 --- a/config/locales/simple_form.nn.yml +++ b/config/locales/simple_form.nn.yml @@ -314,7 +314,6 @@ nn: listable: Tillat denne emneknaggen å synast i søk og i profilmappa name: Emneknagg trendable: Tillat denne emneknaggen til å synast under trendar - usable: Gje tut lov til å nytta denne emneknaggen user: role: Rolle time_zone: Tidssone diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml index de3788aa42..82de0adb7b 100644 --- a/config/locales/simple_form.no.yml +++ b/config/locales/simple_form.no.yml @@ -303,7 +303,6 @@ listable: Tillat denne emneknaggen å vises i søk og på profilmappen name: Emneknagg trendable: Tillat denne emneknaggen til å vises under trender - usable: Tillat innlegg å bruke denne emneknaggen user: role: Rolle time_zone: Tidssone diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml index ba9c260e47..05b0508a51 100644 --- a/config/locales/simple_form.oc.yml +++ b/config/locales/simple_form.oc.yml @@ -217,7 +217,6 @@ oc: listable: Permetre a aquesta etiqueta d’aparéisser a las recèrcas e a l’annuari de perfils name: Etiqueta trendable: Permetre a aquesta etiqueta d’aparéisser a las tendéncias - usable: Permetre als tuts d’utilizar aquesta etiqueta user: role: Ròtle user_role: diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 39e1814195..1a9051b951 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -314,7 +314,7 @@ pl: listable: Pozwól, aby ten hashtag pojawiał się w wynikach wyszukiwania i katalogu profilów name: Hasztag trendable: Pozwól na wyświetlanie tego hashtagu w „Na czasie” - usable: Pozwól na umieszczanie tego hashtagu we wpisach + usable: Pozwól na umieszczanie tego hashtagu w lokalnych wpisach user: role: Rola time_zone: Strefa czasowa diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 77a0d8cd6f..fc3c09cf1d 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -311,7 +311,6 @@ pt-BR: listable: Permitir que esta hashtag apareça em pesquisas e sugestões name: Hashtag trendable: Permitir que esta hashtag fique em alta - usable: Permitir que toots usem esta hashtag user: role: Cargo time_zone: Fuso horário diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index ef7dfd00a8..a1a2bc657c 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -314,7 +314,6 @@ pt-PT: listable: Permitir que esta etiqueta apareça em pesquisas e no diretório de perfis name: Etiqueta trendable: Permitir que esta etiqueta apareça em alta - usable: Permitir que as publicações usem esta etiqueta user: role: Cargo time_zone: Fuso horário diff --git a/config/locales/simple_form.ro.yml b/config/locales/simple_form.ro.yml index 5df411b951..458638ddec 100644 --- a/config/locales/simple_form.ro.yml +++ b/config/locales/simple_form.ro.yml @@ -177,7 +177,6 @@ ro: tag: listable: Permite acestui hashtag să apară în căutări și în directorul de profil trendable: Permite acestui hashtag să apară sub tendințe - usable: Permite postărilor să folosească acest hashtag 'no': Nu recommended: Recomandat required: diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml index a050b5a529..de0d631ae6 100644 --- a/config/locales/simple_form.ru.yml +++ b/config/locales/simple_form.ru.yml @@ -301,7 +301,6 @@ ru: listable: Разрешить показ хэштега в поиске или в каталоге профилей name: Хэштег trendable: Разрешить показ хэштега в трендах - usable: Разрешить использовать этот хэштег в постах user: role: Роль time_zone: Часовой пояс diff --git a/config/locales/simple_form.sc.yml b/config/locales/simple_form.sc.yml index 84ed5c4115..fc53103950 100644 --- a/config/locales/simple_form.sc.yml +++ b/config/locales/simple_form.sc.yml @@ -204,7 +204,6 @@ sc: listable: Permite a custa eticheta de apàrrere in is chircas e in sa cartella de is profilos name: Eticheta trendable: Permite a custa eticheta de apàrrere in is tendèntzias - usable: Permite a is tuts de impreare custa eticheta user_role: name: Nòmine permissions_as_keys: Permissos diff --git a/config/locales/simple_form.sco.yml b/config/locales/simple_form.sco.yml index f9dc4ba291..9fc6fd57db 100644 --- a/config/locales/simple_form.sco.yml +++ b/config/locales/simple_form.sco.yml @@ -265,7 +265,6 @@ sco: listable: Alloo this hashtag tae appear in seirches an suggestions name: Hashtag trendable: Alloo this hashtag fir tae appear unner trends - usable: Alloo posts fir tae uise this hashtag user: role: Role user_role: diff --git a/config/locales/simple_form.si.yml b/config/locales/simple_form.si.yml index a81ba27bb9..41658c76ac 100644 --- a/config/locales/simple_form.si.yml +++ b/config/locales/simple_form.si.yml @@ -207,7 +207,6 @@ si: listable: මෙම හැෂ් ටැගය සෙවීම් සහ යෝජනා වල දිස් වීමට ඉඩ දෙන්න name: හෑෂ් ටැගය trendable: මෙම හැෂ් ටැගය ප්‍රවණතා යටතේ දිස් වීමට ඉඩ දෙන්න - usable: ලිපි සඳහා මෙම පූරක අනන්‍යනය භාවිතයට ඉඩදෙන්න user: role: භූමිකාව time_zone: වේලා කලාපය diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml index 71bd25d6df..fa15a6e3f7 100644 --- a/config/locales/simple_form.sk.yml +++ b/config/locales/simple_form.sk.yml @@ -165,7 +165,6 @@ sk: listable: Povoľ zobrazovanie tohto haštagu v návrhoch vyhľadávaní name: Haštag trendable: Povoľ zobrazovanie tohto haštagu medzi trendujúcimi - usable: Povoľ používanie tohto haštagu v príspevkoch 'no': Nie recommended: Odporúčané required: diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml index a937f17206..b558a62fc8 100644 --- a/config/locales/simple_form.sl.yml +++ b/config/locales/simple_form.sl.yml @@ -314,7 +314,6 @@ sl: listable: Dovoli, da se ta ključnik pojavi v iskanjih in predlogih name: Ključnik trendable: Dovoli, da se ta ključnik pojavi med trendi - usable: Dovoli, da objave uporabljajo ta ključnik user: role: Vloga time_zone: Časovni pas diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index 4236d7dce2..912e0bda82 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -314,7 +314,6 @@ sq: listable: Lejoje këtë hashtag të shfaqet në kërkime dhe në drejtori profilesh name: Hashtag trendable: Lejoje këtë hashtag të shfaqet në prirje - usable: Lejoji mesazhet të përdorin këtë hashtag user: role: Rol time_zone: Zonë kohore diff --git a/config/locales/simple_form.sr-Latn.yml b/config/locales/simple_form.sr-Latn.yml index 40b710b078..e163de2f80 100644 --- a/config/locales/simple_form.sr-Latn.yml +++ b/config/locales/simple_form.sr-Latn.yml @@ -314,7 +314,6 @@ sr-Latn: listable: Dozvoli da se ova heš oznaka pojavljuje u pretragama i predlozima name: Heš oznaka trendable: Dozvoli da se ova heš oznaka pojavi u okviru trendova - usable: Dozvoli objavama da koriste ovu heš oznaku user: role: Uloga time_zone: Vremenska zona diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index c0a9ac2d89..d7142390c9 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -314,7 +314,6 @@ sr: listable: Дозволи да се ова хеш ознака појављује у претрагама и предлозима name: Хеш ознака trendable: Дозволи да се ова хеш ознака појави у оквиру трендова - usable: Дозволи објавама да користе ову хеш ознаку user: role: Улога time_zone: Временска зона diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index 1e1aee5246..b0b974d742 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -314,7 +314,6 @@ sv: listable: Tillåt denna hashtagg att visas i sökningar och förslag name: Hashtagg trendable: Tillåt denna hashtagg att visas under trender - usable: Tillåt inlägg att använda denna hashtagg user: role: Roll time_zone: Tidszon diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index c72112645b..387f74e742 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -314,7 +314,6 @@ th: listable: อนุญาตให้แฮชแท็กนี้ปรากฏในการค้นหาและข้อเสนอแนะ name: แฮชแท็ก trendable: อนุญาตให้แฮชแท็กนี้ปรากฏภายใต้แนวโน้ม - usable: อนุญาตให้โพสต์ใช้แฮชแท็กนี้ user: role: บทบาท time_zone: โซนเวลา diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index f098bfd3ca..2cc2c1788e 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -314,7 +314,6 @@ tr: listable: Bu etiketin aramalarda ve profil dizininde görünmesine izin ver name: Etiket trendable: Bu etiketin gündem altında görünmesine izin ver - usable: Gönderilerin bu etiketi kullanmasına izin ver user: role: Rol time_zone: Zaman dilimi diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index 2f494534ea..45478849b2 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -314,7 +314,6 @@ uk: listable: Дозволити появу цього хештеґа у каталозі пошуку і пропозицій name: Хештеґ trendable: Дозволити появу цього хештеґа у списку популярних хештеґів - usable: Дозволити дописам використовувати цей хештег user: role: Роль time_zone: Часовий пояс diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index c45da47137..2310d1e329 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -314,7 +314,6 @@ vi: listable: Cho phép xuất hiện trong tìm kiếm và đề xuất name: Hashtag trendable: Cho phép hashtag này lên xu hướng - usable: Cho phép dùng trong tút user: role: Vai trò time_zone: Múi giờ diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index ab440e04f4..58334471a3 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -314,7 +314,6 @@ zh-CN: listable: 允许这个话题标签在用户目录中显示 name: 话题标签 trendable: 允许在热门下显示此话题 - usable: 允许嘟文使用此话题标签 user: role: 角色 time_zone: 时区 diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml index 0e2ee81db7..6a7cd5a247 100644 --- a/config/locales/simple_form.zh-HK.yml +++ b/config/locales/simple_form.zh-HK.yml @@ -309,7 +309,6 @@ zh-HK: listable: 允許此主題標籤在搜尋及個人檔案目錄中顯示 name: 主題標籤 trendable: 允許此主題標籤在趨勢下顯示 - usable: 允許文章使用此主題標籤 user: role: 角色 time_zone: 時區 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 388fe35d84..ef2da39f30 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -873,7 +873,23 @@ zh-TW: action: 檢查這裡以取得更多資訊 message_html: "您的物件資料儲存空間 (object storage) 設定錯誤。您的使用者隱私正暴露於風險之中。" tags: + moderation: + not_trendable: 無法作為熱門趨勢 + not_usable: 無法使用 + pending_review: 等待審核中 + review_requested: 需要審核 + reviewed: 已審核 + title: 狀態 + trendable: 可作為熱門趨勢 + unreviewed: 待審核 + usable: 可以使用 + name: 名稱 + newest: 最新 + oldest: 最舊 + reset: 重設 review: 審核嘟文 + search: 搜尋 + title: 主題標籤 updated_msg: 成功更新主題標籤設定 title: 管理介面 trends: From 2ce99c51dd37ace101ff43a701c51bd7778a3666 Mon Sep 17 00:00:00 2001 From: Tim Rogers Date: Tue, 30 Jul 2024 03:18:00 -0500 Subject: [PATCH 029/306] Fixed Rails route covering %40-encoded profile URL paths to not 404 (#31184) --- config/routes.rb | 6 +- spec/routing/accounts_routing_spec.rb | 101 ++++++++++++++++++++++++++ 2 files changed, 106 insertions(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 93bdb95969..3ac619519d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -142,7 +142,11 @@ Rails.application.routes.draw do resource :inbox, only: [:create], module: :activitypub - get '/:encoded_at(*path)', to: redirect('/@%{path}'), constraints: { encoded_at: /%40/ } + constraints(encoded_path: /%40.*/) do + get '/:encoded_path', to: redirect { |params| + "/#{params[:encoded_path].gsub('%40', '@')}" + } + end constraints(username: %r{[^@/.]+}) do with_options to: 'accounts#show' do diff --git a/spec/routing/accounts_routing_spec.rb b/spec/routing/accounts_routing_spec.rb index 8b2c124fd2..588855943e 100644 --- a/spec/routing/accounts_routing_spec.rb +++ b/spec/routing/accounts_routing_spec.rb @@ -47,6 +47,61 @@ describe 'Routes under accounts/' do end end + context 'with local username encoded at' do + include RSpec::Rails::RequestExampleGroup + let(:username) { 'alice' } + + it 'routes /%40:username' do + get "/%40#{username}" + expect(response).to redirect_to("/@#{username}") + end + + it 'routes /%40:username.json' do + get("/%40#{username}.json") + expect(response).to redirect_to("/@#{username}.json") + end + + it 'routes /%40:username.rss' do + get("/%40#{username}.rss") + expect(response).to redirect_to("/@#{username}.rss") + end + + it 'routes /%40:username/:id' do + get("/%40#{username}/123") + expect(response).to redirect_to("/@#{username}/123") + end + + it 'routes /%40:username/:id/embed' do + get("/%40#{username}/123/embed") + expect(response).to redirect_to("/@#{username}/123/embed") + end + + it 'routes /%40:username/following' do + get("/%40#{username}/following") + expect(response).to redirect_to("/@#{username}/following") + end + + it 'routes /%40:username/followers' do + get("/%40#{username}/followers") + expect(response).to redirect_to("/@#{username}/followers") + end + + it 'routes /%40:username/with_replies' do + get("/%40#{username}/with_replies") + expect(response).to redirect_to("/@#{username}/with_replies") + end + + it 'routes /%40:username/media' do + get("/%40#{username}/media") + expect(response).to redirect_to("/@#{username}/media") + end + + it 'routes /%40:username/tagged/:tag' do + get("/%40#{username}/tagged/foo") + expect(response).to redirect_to("/@#{username}/tagged/foo") + end + end + context 'with remote username' do let(:username) { 'alice@example.com' } @@ -82,4 +137,50 @@ describe 'Routes under accounts/' do expect(get("/@#{username}/tagged/foo")).to route_to('home#index', username_with_domain: username, any: 'tagged/foo') end end + + context 'with remote username encoded at' do + include RSpec::Rails::RequestExampleGroup + let(:username) { 'alice%40example.com' } + let(:username_decoded) { 'alice@example.com' } + + it 'routes /%40:username' do + get("/%40#{username}") + expect(response).to redirect_to("/@#{username_decoded}") + end + + it 'routes /%40:username/:id' do + get("/%40#{username}/123") + expect(response).to redirect_to("/@#{username_decoded}/123") + end + + it 'routes /%40:username/:id/embed' do + get("/%40#{username}/123/embed") + expect(response).to redirect_to("/@#{username_decoded}/123/embed") + end + + it 'routes /%40:username/following' do + get("/%40#{username}/following") + expect(response).to redirect_to("/@#{username_decoded}/following") + end + + it 'routes /%40:username/followers' do + get("/%40#{username}/followers") + expect(response).to redirect_to("/@#{username_decoded}/followers") + end + + it 'routes /%40:username/with_replies' do + get("/%40#{username}/with_replies") + expect(response).to redirect_to("/@#{username_decoded}/with_replies") + end + + it 'routes /%40:username/media' do + get("/%40#{username}/media") + expect(response).to redirect_to("/@#{username_decoded}/media") + end + + it 'routes /%40:username/tagged/:tag' do + get("/%40#{username}/tagged/foo") + expect(response).to redirect_to("/@#{username_decoded}/tagged/foo") + end + end end From 598ae4f2da86029b1c3c3e35e64b89873037b598 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 30 Jul 2024 10:39:11 +0200 Subject: [PATCH 030/306] Add endpoints for unread notifications count (#31191) --- app/controllers/api/base_controller.rb | 4 +- .../api/v1/notifications_controller.rb | 14 ++++ .../api/v2_alpha/notifications_controller.rb | 14 ++++ config/routes/api.rb | 2 + spec/requests/api/v1/notifications_spec.rb | 77 +++++++++++++++++++ .../api/v2_alpha/notifications_spec.rb | 77 +++++++++++++++++++ 6 files changed, 186 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index c1a5e43f88..0980e0ebbc 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -30,10 +30,10 @@ class Api::BaseController < ApplicationController protected - def limit_param(default_limit) + def limit_param(default_limit, max_limit = nil) return default_limit unless params[:limit] - [params[:limit].to_i.abs, default_limit * 2].min + [params[:limit].to_i.abs, max_limit || (default_limit * 2)].min end def params_slice(*keys) diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb index 1d0aa10d2e..13919b400d 100644 --- a/app/controllers/api/v1/notifications_controller.rb +++ b/app/controllers/api/v1/notifications_controller.rb @@ -7,6 +7,8 @@ class Api::V1::NotificationsController < Api::BaseController after_action :insert_pagination_headers, only: :index DEFAULT_NOTIFICATIONS_LIMIT = 40 + DEFAULT_NOTIFICATIONS_COUNT_LIMIT = 100 + MAX_NOTIFICATIONS_COUNT_LIMIT = 1_000 def index with_read_replica do @@ -17,6 +19,14 @@ class Api::V1::NotificationsController < Api::BaseController render json: @notifications, each_serializer: REST::NotificationSerializer, relationships: @relationships end + def unread_count + limit = limit_param(DEFAULT_NOTIFICATIONS_COUNT_LIMIT, MAX_NOTIFICATIONS_COUNT_LIMIT) + + with_read_replica do + render json: { count: browserable_account_notifications.paginate_by_min_id(limit, notification_marker&.last_read_id).count } + end + end + def show @notification = current_account.notifications.without_suspended.find(params[:id]) render json: @notification, serializer: REST::NotificationSerializer @@ -54,6 +64,10 @@ class Api::V1::NotificationsController < Api::BaseController ) end + def notification_marker + current_user.markers.find_by(timeline: 'notifications') + end + def target_statuses_from_notifications @notifications.reject { |notification| notification.target_status.nil? }.map(&:target_status) end diff --git a/app/controllers/api/v2_alpha/notifications_controller.rb b/app/controllers/api/v2_alpha/notifications_controller.rb index 83d40a0886..d1126baaf4 100644 --- a/app/controllers/api/v2_alpha/notifications_controller.rb +++ b/app/controllers/api/v2_alpha/notifications_controller.rb @@ -7,6 +7,8 @@ class Api::V2Alpha::NotificationsController < Api::BaseController after_action :insert_pagination_headers, only: :index DEFAULT_NOTIFICATIONS_LIMIT = 40 + DEFAULT_NOTIFICATIONS_COUNT_LIMIT = 100 + MAX_NOTIFICATIONS_COUNT_LIMIT = 1_000 def index with_read_replica do @@ -35,6 +37,14 @@ class Api::V2Alpha::NotificationsController < Api::BaseController end end + def unread_count + limit = limit_param(DEFAULT_NOTIFICATIONS_COUNT_LIMIT, MAX_NOTIFICATIONS_COUNT_LIMIT) + + with_read_replica do + render json: { count: browserable_account_notifications.paginate_groups_by_min_id(limit, min_id: notification_marker&.last_read_id).count } + end + end + def show @notification = current_account.notifications.without_suspended.find_by!(group_key: params[:id]) render json: NotificationGroup.from_notification(@notification), serializer: REST::NotificationGroupSerializer @@ -92,6 +102,10 @@ class Api::V2Alpha::NotificationsController < Api::BaseController ) end + def notification_marker + current_user.markers.find_by(timeline: 'notifications') + end + def target_statuses_from_notifications @notifications.filter_map(&:target_status) end diff --git a/config/routes/api.rb b/config/routes/api.rb index 9011916697..e488bb9187 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -167,6 +167,7 @@ namespace :api, format: false do resources :notifications, only: [:index, :show] do collection do post :clear + get :unread_count end member do @@ -336,6 +337,7 @@ namespace :api, format: false do resources :notifications, only: [:index, :show] do collection do post :clear + get :unread_count end member do diff --git a/spec/requests/api/v1/notifications_spec.rb b/spec/requests/api/v1/notifications_spec.rb index c9034c17dc..3d1e8a4787 100644 --- a/spec/requests/api/v1/notifications_spec.rb +++ b/spec/requests/api/v1/notifications_spec.rb @@ -8,6 +8,83 @@ RSpec.describe 'Notifications' do let(:scopes) { 'read:notifications write:notifications' } let(:headers) { { 'Authorization' => "Bearer #{token.token}" } } + describe 'GET /api/v1/notifications/unread_count', :inline_jobs do + subject do + get '/api/v1/notifications/unread_count', headers: headers, params: params + end + + let(:params) { {} } + + before do + first_status = PostStatusService.new.call(user.account, text: 'Test') + ReblogService.new.call(Fabricate(:account), first_status) + PostStatusService.new.call(Fabricate(:account), text: 'Hello @alice') + FavouriteService.new.call(Fabricate(:account), first_status) + FavouriteService.new.call(Fabricate(:account), first_status) + FollowService.new.call(Fabricate(:account), user.account) + end + + it_behaves_like 'forbidden for wrong scope', 'write write:notifications' + + context 'with no options' do + it 'returns expected notifications count' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq 5 + end + end + + context 'with a read marker' do + before do + id = user.account.notifications.browserable.order(id: :desc).offset(2).first.id + user.markers.create!(timeline: 'notifications', last_read_id: id) + end + + it 'returns expected notifications count' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq 2 + end + end + + context 'with exclude_types param' do + let(:params) { { exclude_types: %w(mention) } } + + it 'returns expected notifications count' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq 4 + end + end + + context 'with a user-provided limit' do + let(:params) { { limit: 2 } } + + it 'returns a capped value' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq 2 + end + end + + context 'when there are more notifications than the limit' do + before do + stub_const('Api::V1::NotificationsController::DEFAULT_NOTIFICATIONS_COUNT_LIMIT', 2) + end + + it 'returns a capped value' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq Api::V1::NotificationsController::DEFAULT_NOTIFICATIONS_COUNT_LIMIT + end + end + end + describe 'GET /api/v1/notifications', :inline_jobs do subject do get '/api/v1/notifications', headers: headers, params: params diff --git a/spec/requests/api/v2_alpha/notifications_spec.rb b/spec/requests/api/v2_alpha/notifications_spec.rb index 104651ebe3..381987e7e7 100644 --- a/spec/requests/api/v2_alpha/notifications_spec.rb +++ b/spec/requests/api/v2_alpha/notifications_spec.rb @@ -8,6 +8,83 @@ RSpec.describe 'Notifications' do let(:scopes) { 'read:notifications write:notifications' } let(:headers) { { 'Authorization' => "Bearer #{token.token}" } } + describe 'GET /api/v2_alpha/notifications/unread_count', :inline_jobs do + subject do + get '/api/v2_alpha/notifications/unread_count', headers: headers, params: params + end + + let(:params) { {} } + + before do + first_status = PostStatusService.new.call(user.account, text: 'Test') + ReblogService.new.call(Fabricate(:account), first_status) + PostStatusService.new.call(Fabricate(:account), text: 'Hello @alice') + FavouriteService.new.call(Fabricate(:account), first_status) + FavouriteService.new.call(Fabricate(:account), first_status) + FollowService.new.call(Fabricate(:account), user.account) + end + + it_behaves_like 'forbidden for wrong scope', 'write write:notifications' + + context 'with no options' do + it 'returns expected notifications count' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq 4 + end + end + + context 'with a read marker' do + before do + id = user.account.notifications.browserable.order(id: :desc).offset(2).first.id + user.markers.create!(timeline: 'notifications', last_read_id: id) + end + + it 'returns expected notifications count' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq 2 + end + end + + context 'with exclude_types param' do + let(:params) { { exclude_types: %w(mention) } } + + it 'returns expected notifications count' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq 3 + end + end + + context 'with a user-provided limit' do + let(:params) { { limit: 2 } } + + it 'returns a capped value' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq 2 + end + end + + context 'when there are more notifications than the limit' do + before do + stub_const('Api::V2Alpha::NotificationsController::DEFAULT_NOTIFICATIONS_COUNT_LIMIT', 2) + end + + it 'returns a capped value' do + subject + + expect(response).to have_http_status(200) + expect(body_as_json[:count]).to eq Api::V2Alpha::NotificationsController::DEFAULT_NOTIFICATIONS_COUNT_LIMIT + end + end + end + describe 'GET /api/v2_alpha/notifications', :inline_jobs do subject do get '/api/v2_alpha/notifications', headers: headers, params: params From 4eab6aef95554d74237fcdbe13c986373a643739 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 30 Jul 2024 23:40:42 +0200 Subject: [PATCH 031/306] Change User-Agent to use Mastodon as the product, and http.rb as platform details (#31192) --- lib/mastodon/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 96ad409281..fd05dac7b9 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -65,7 +65,7 @@ module Mastodon end def user_agent - @user_agent ||= "#{HTTP::Request::USER_AGENT} (Mastodon/#{Version}; +http#{Rails.configuration.x.use_https ? 's' : ''}://#{Rails.configuration.x.web_domain}/)" + @user_agent ||= "Mastodon/#{Version} (#{HTTP::Request::USER_AGENT}; +http#{Rails.configuration.x.use_https ? 's' : ''}://#{Rails.configuration.x.web_domain}/)" end end end From fd1bade13524f281ec93b03e3a2b6ae5435ffa5c Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 31 Jul 2024 09:52:59 +0200 Subject: [PATCH 032/306] Fix inconsistent dismiss icon for notification requests (#31220) --- app/javascript/mastodon/features/notifications/request.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/notifications/request.jsx b/app/javascript/mastodon/features/notifications/request.jsx index 09bef3beab..7cba946165 100644 --- a/app/javascript/mastodon/features/notifications/request.jsx +++ b/app/javascript/mastodon/features/notifications/request.jsx @@ -7,9 +7,9 @@ import { Helmet } from 'react-helmet'; import { useSelector, useDispatch } from 'react-redux'; +import DeleteIcon from '@/material-icons/400-24px/delete.svg?react'; import DoneIcon from '@/material-icons/400-24px/done.svg?react'; import InventoryIcon from '@/material-icons/400-24px/inventory_2.svg?react'; -import VolumeOffIcon from '@/material-icons/400-24px/volume_off.svg?react'; import { fetchNotificationRequest, fetchNotificationsForRequest, expandNotificationsForRequest, acceptNotificationRequest, dismissNotificationRequest } from 'mastodon/actions/notifications'; import Column from 'mastodon/components/column'; import ColumnHeader from 'mastodon/components/column_header'; @@ -101,7 +101,7 @@ export const NotificationRequest = ({ multiColumn, params: { id } }) => { showBackButton extraButton={!removed && ( <> - + )} From 66a16bf49cf7729d8d2fac866832b12f8dec42a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:01:07 +0200 Subject: [PATCH 033/306] chore(deps): update dependency opentelemetry-instrumentation-active_job to v0.7.4 (#31218) 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 5022270270..ba8673bbf8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -517,7 +517,7 @@ GEM opentelemetry-api (~> 1.0) opentelemetry-instrumentation-active_support (~> 0.1) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-active_job (0.7.3) + opentelemetry-instrumentation-active_job (0.7.4) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) opentelemetry-instrumentation-active_model_serializers (0.20.2) From 520ff042480ac4772fb84d02677fc7c6825816a9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 08:09:49 +0000 Subject: [PATCH 034/306] New Crowdin Translations (automated) (#31219) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/fi.json | 32 ++++---- app/javascript/mastodon/locales/zh-CN.json | 24 +++--- config/locales/ca.yml | 16 ++++ config/locales/es-AR.yml | 18 +++- config/locales/fi.yml | 96 +++++++++++----------- config/locales/hi.yml | 17 ++++ config/locales/it.yml | 16 ++++ config/locales/pt-PT.yml | 16 ++++ config/locales/simple_form.ca.yml | 1 + config/locales/simple_form.es-AR.yml | 1 + config/locales/simple_form.fi.yml | 10 +-- config/locales/simple_form.hi.yml | 5 ++ config/locales/simple_form.it.yml | 1 + config/locales/simple_form.pt-PT.yml | 1 + config/locales/simple_form.ru.yml | 1 + config/locales/simple_form.sq.yml | 1 + config/locales/simple_form.vi.yml | 1 + config/locales/simple_form.zh-CN.yml | 1 + config/locales/sq.yml | 14 ++++ config/locales/sv.yml | 5 ++ config/locales/vi.yml | 16 ++++ config/locales/zh-CN.yml | 16 ++++ 22 files changed, 227 insertions(+), 82 deletions(-) diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index c1cdb68462..168472326c 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -1,6 +1,6 @@ { "about.blocks": "Moderoidut palvelimet", - "about.contact": "Ota yhteys:", + "about.contact": "Yhteydenotto:", "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.", "about.domain_blocks.no_reason_available": "Syy ei ole tiedossa", "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä, ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.", @@ -45,7 +45,7 @@ "account.joined_short": "Liittynyt", "account.languages": "Vaihda tilattuja kieliä", "account.link_verified_on": "Linkin omistus tarkistettiin {date}", - "account.locked_info": "Tilin yksityisyystilaksi on määritetty lukittu ja tilin omistaja arvioi erikseen, kuka voi seurata häntä.", + "account.locked_info": "Tilin yksityisyystilaksi on määritetty lukittu. Tilin omistaja arvioi erikseen, kuka voi seurata häntä.", "account.media": "Media", "account.mention": "Mainitse @{name}", "account.moved_to": "{name} on ilmoittanut uudeksi tilikseen", @@ -119,7 +119,7 @@ "column.blocks": "Estetyt käyttäjät", "column.bookmarks": "Kirjanmerkit", "column.community": "Paikallinen aikajana", - "column.direct": "Yksityiset maininnat", + "column.direct": "Yksityismaininnat", "column.directory": "Selaa profiileja", "column.domain_blocks": "Estetyt verkkotunnukset", "column.favourites": "Suosikit", @@ -246,7 +246,7 @@ "emoji_button.objects": "Esineet", "emoji_button.people": "Ihmiset", "emoji_button.recent": "Usein käytetyt", - "emoji_button.search": "Etsi...", + "emoji_button.search": "Hae...", "emoji_button.search_results": "Hakutulokset", "emoji_button.symbols": "Symbolit", "emoji_button.travel": "Matkailu ja paikat", @@ -544,13 +544,13 @@ "notifications.permission_denied": "Työpöytäilmoitukset eivät ole käytettävissä, koska selaimen käyttöoikeuspyyntö on aiemmin evätty", "notifications.permission_denied_alert": "Työpöytäilmoituksia ei voi ottaa käyttöön, koska selaimen käyttöoikeus on aiemmin evätty", "notifications.permission_required": "Työpöytäilmoitukset eivät ole käytettävissä, koska siihen tarvittavaa käyttöoikeutta ei ole myönnetty.", - "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viime päivänä} other {viimeisenä # päivänä}}", + "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viime päivän} other {viimeisen # päivän}} aikana", "notifications.policy.filter_new_accounts_title": "Uudet tilit", "notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivää}} sinua seuranneet", "notifications.policy.filter_not_followers_title": "Henkilöt, jotka eivät seuraa sinua", - "notifications.policy.filter_not_following_hint": "Kunnes hyväksyt ne manuaalisesti", + "notifications.policy.filter_not_following_hint": "Kunnes hyväksyt heidät manuaalisesti", "notifications.policy.filter_not_following_title": "Henkilöt, joita et seuraa", - "notifications.policy.filter_private_mentions_hint": "Suodatetaan, ellei se vastaa omaan mainintaasi tai ellet seuraa lähettäjää", + "notifications.policy.filter_private_mentions_hint": "Suodatetaan, ellei se ole vastaus omaan mainintaasi tai ellet seuraa lähettäjää", "notifications.policy.filter_private_mentions_title": "Ei-toivotut yksityismaininnat", "notifications.policy.title": "Suodata ilmoitukset pois kohteesta…", "notifications_permission_banner.enable": "Ota työpöytäilmoitukset käyttöön", @@ -573,8 +573,8 @@ "onboarding.profile.note_hint": "Voit @mainita muita käyttäjiä tai #aihetunnisteita…", "onboarding.profile.save_and_continue": "Tallenna ja jatka", "onboarding.profile.title": "Profiilin määritys", - "onboarding.profile.upload_avatar": "Lataa profiilikuva", - "onboarding.profile.upload_header": "Lataa profiilin otsakekuva", + "onboarding.profile.upload_avatar": "Lähetä profiilikuva", + "onboarding.profile.upload_header": "Lähetä profiilin otsakekuva", "onboarding.share.lead": "Kerro ihmisille, kuinka he voivat löytää sinut Mastodonista!", "onboarding.share.message": "Olen {username} #Mastodon⁠issa! Seuraa minua osoitteessa {url}", "onboarding.share.next_steps": "Mahdolliset seuraavat vaiheet:", @@ -614,10 +614,10 @@ "privacy.private.short": "Seuraajat", "privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella", "privacy.public.short": "Julkinen", - "privacy.unlisted.additional": "Tämä on muutoin kuin julkinen julkaisu, mutta sitä ei näytetä livesyöte-, aihetunniste- tai selailunäkymissä eikä Mastodon-hakutuloksissakaan, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.", + "privacy.unlisted.additional": "Tämä toimii muuten kuin julkinen, mutta julkaisut eivät näy livesyöte-, aihetunniste- tai selausnäkymissä eivätkä Mastodonin hakutuloksissa, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.", "privacy.unlisted.long": "Vähemmän algoritmiperusteista sisältöä", "privacy.unlisted.short": "Vaivihkaisesti julkinen", - "privacy_policy.last_updated": "Viimeksi päivitetty {date}", + "privacy_policy.last_updated": "Päivitetty viimeksi {date}", "privacy_policy.title": "Tietosuojakäytäntö", "recommended": "Suositeltu", "refresh": "Päivitä", @@ -692,7 +692,7 @@ "search.quick_action.account_search": "Profiilit haulla {x}", "search.quick_action.go_to_account": "Siirry profiiliin {x}", "search.quick_action.go_to_hashtag": "Siirry aihetunnisteeseen {x}", - "search.quick_action.open_url": "Avaa verkko-osoite Mastodonissa", + "search.quick_action.open_url": "Avaa URL-osoite Mastodonissa", "search.quick_action.status_search": "Julkaisut haulla {x}", "search.search_or_paste": "Hae tai liitä URL-osoite", "search_popout.full_text_search_disabled_message": "Ei saatavilla palvelimella {domain}.", @@ -800,10 +800,10 @@ "units.short.billion": "{count} mrd.", "units.short.million": "{count} milj.", "units.short.thousand": "{count} t.", - "upload_area.title": "Lataa raahaamalla ja pudottamalla tähän", + "upload_area.title": "Lähetä raahaamalla ja pudottamalla tähän", "upload_button.label": "Lisää kuvia, video tai äänitiedosto", - "upload_error.limit": "Tiedostolatauksien rajoitus ylitetty.", - "upload_error.poll": "Tiedostojen lisääminen ei ole sallittua kyselyjen ohessa.", + "upload_error.limit": "Tiedostolähetysten rajoitus ylitetty.", + "upload_error.poll": "Tiedostojen lisääminen äänestysten oheen ei ole sallittua.", "upload_form.audio_description": "Kuvaile sisältöä kuuroille ja kuulorajoitteisille", "upload_form.description": "Kuvaile sisältöä sokeille ja näkörajoitteisille", "upload_form.edit": "Muokkaa", @@ -819,7 +819,7 @@ "upload_modal.hint": "Napsauta tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.", "upload_modal.preparing_ocr": "Valmistellaan tekstintunnistusta…", "upload_modal.preview_label": "Esikatselu ({ratio})", - "upload_progress.label": "Tallennetaan...", + "upload_progress.label": "Lähetetään...", "upload_progress.processing": "Käsitellään…", "username.taken": "Tämä käyttäjänimi on jo käytössä. Kokeile toista", "video.close": "Sulje video", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index f5b72f0504..6e6d6d5d37 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -1,12 +1,12 @@ { - "about.blocks": "服务器被限制", + "about.blocks": "受限服务器", "about.contact": "联系方式:", "about.disclaimer": "Mastodon 是自由的开源软件,商标由 Mastodon gGmbH 持有。", "about.domain_blocks.no_reason_available": "原因不可用", "about.domain_blocks.preamble": "通常来说,在 Mastodon 上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但其中一些在本服务器上被设置为例外。", "about.domain_blocks.silenced.explanation": "除非明确地搜索并关注对方,否则你不会看到来自此服务器的用户信息与内容。", - "about.domain_blocks.silenced.title": "已隐藏", - "about.domain_blocks.suspended.explanation": "此服务器的数据将不会被处理、存储或者交换,本站也将无法和来自此服务器的用户互动或者交流。", + "about.domain_blocks.silenced.title": "访问受限", + "about.domain_blocks.suspended.explanation": "不处理、存储或交换来自本服务器的任何数据,不可能与本服务器上的用户进行任何交互或通信。", "about.domain_blocks.suspended.title": "已封禁", "about.not_available": "此信息在当前服务器尚不可用。", "about.powered_by": "由 {mastodon} 驱动的去中心化社交媒体", @@ -63,7 +63,7 @@ "account.requested_follow": "{name} 已经向你发送了关注请求", "account.share": "分享 @{name} 的个人资料页", "account.show_reblogs": "显示来自 @{name} 的转嘟", - "account.statuses_counter": "{count, plural, other {{counter} 嘟文}}", + "account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}", "account.unblock": "取消屏蔽 @{name}", "account.unblock_domain": "取消屏蔽 {domain} 域名", "account.unblock_short": "取消屏蔽", @@ -81,7 +81,7 @@ "admin.impact_report.instance_accounts": "将要删除的账户资料", "admin.impact_report.instance_followers": "本实例用户即将丢失的关注者", "admin.impact_report.instance_follows": "对方实例用户将会丢失的关注者", - "admin.impact_report.title": "影响摘要", + "admin.impact_report.title": "权重一览", "alert.rate_limited.message": "请在 {retry_time, time, medium} 后重试。", "alert.rate_limited.title": "频率受限", "alert.unexpected.message": "发生了意外错误。", @@ -89,14 +89,14 @@ "announcement.announcement": "公告", "attachments_list.unprocessed": "(未处理)", "audio.hide": "隐藏音频", - "block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重您的决定。然而,无法保证对方一定遵从,因为某些服务器可能会以不同的方式处理屏蔽操作。公开嘟文仍然可能对未登录用户可见。", - "block_modal.show_less": "显示更少", - "block_modal.show_more": "显示更多", + "block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重您的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。", + "block_modal.show_less": "隐藏", + "block_modal.show_more": "展开", "block_modal.they_cant_mention": "他们不能提及或关注你。", - "block_modal.they_cant_see_posts": "他们看不到你的嘟文,你也看不到他们的嘟文。", - "block_modal.they_will_know": "他们可以看到他们被屏蔽。", - "block_modal.title": "屏蔽用户?", - "block_modal.you_wont_see_mentions": "你不会看到提及他们的嘟文。", + "block_modal.they_cant_see_posts": "嘟文将被设置为互相不可见。", + "block_modal.they_will_know": "他们将会获知他们被屏蔽。", + "block_modal.title": "屏蔽该用户?", + "block_modal.you_wont_see_mentions": "你将无法看到提及他们的嘟文。", "boost_modal.combo": "下次按住 {combo} 即可跳过此提示", "bundle_column_error.copy_stacktrace": "复制错误报告", "bundle_column_error.error.body": "请求的页面无法渲染,可能是代码出现错误或浏览器存在兼容性问题。", diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 321afb4dcb..f3fd91d11f 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -885,7 +885,23 @@ ca: action: Consulta aquí per a més informació message_html: "El teu emagatzamatge d'objectes no està ben configurat. La privacitat dels teus usuaris està en risc." tags: + moderation: + not_trendable: No pot ser en tendència + not_usable: No es pot fer servir + pending_review: Pendent de revisió + review_requested: Revisió demanada + reviewed: Revisada + title: Estat + trendable: Pot ser tendència + unreviewed: No revisada + usable: Es pot fer servir + name: Nom + newest: Més nous + oldest: Més vells + reset: Restableix review: Revisar l'estat + search: Cerca + title: Etiquetes updated_msg: Ajustaments d'etiquetes actualitzats amb èxit title: Administració trends: diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 35dc9a348d..8ebe203560 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -642,7 +642,7 @@ es-AR: report: 'Denuncia #%{id}' reported_account: Cuenta denunciada reported_by: Denunciada por - reported_with_application: Informado a través de la aplicación + reported_with_application: Denunciado con aplicación resolved: Resueltas resolved_msg: "¡Denuncia exitosamente resuelta!" skip_to_actions: Ir directamente a las acciones @@ -885,7 +885,23 @@ es-AR: action: Revisá acá para más información message_html: "El almacenamiento de tu objeto está mal configurado. La privacidad de tus usuarios está en riesgo." tags: + moderation: + not_trendable: No disponible para tendencia + not_usable: No disponible para uso + pending_review: Revisión pendiente + review_requested: Revisión solicitada + reviewed: Revisada + title: Estado + trendable: Disponible para tendencia + unreviewed: No revisada + usable: Disponible para uso + name: Nombre + newest: Lo más reciente + oldest: Lo más antiguo + reset: Restablecer review: Estado de revisión + search: Buscar + title: Etiquetas updated_msg: La configuración de la etiqueta se actualizó exitosamente title: Administración trends: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 8e05e4ae34..f3cb791e60 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -101,7 +101,7 @@ fi: most_recent_ip: Viimeisin IP no_account_selected: Tilejä ei muutettu, koska yhtään ei ollut valittuna no_limits_imposed: Rajoituksia ei ole asetettu - no_role_assigned: Roolia ei määritetty + no_role_assigned: Roolia ei asetettu not_subscribed: Ei tilaaja pending: Odottaa tarkastusta perform_full_suspension: Jäädytä @@ -173,8 +173,8 @@ fi: approve_appeal: Hyväksy valitus approve_user: Hyväksy käyttäjä assigned_to_self_report: Ota raportti käsiteltäväksi - change_email_user: Vaihda sähköposti käyttäjälle - change_role_user: Muuta käyttäjän roolia + change_email_user: Vaihda käyttäjän sähköpostiosoite + change_role_user: Vaihda käyttäjän roolia confirm_user: Vahvista käyttäjä create_account_warning: Luo varoitus create_announcement: Luo tiedote @@ -231,44 +231,44 @@ fi: update_user_role: Päivitä rooli actions: approve_appeal_html: "%{name} hyväksyi käyttäjän %{target} valituksen moderointipäätöksestä" - approve_user_html: "%{name} hyväksyi käyttäjän rekisteröitymisen kohteesta %{target}" + approve_user_html: "%{name} hyväksyi käyttäjän %{target} rekisteröitymisen" assigned_to_self_report_html: "%{name} otti raportin %{target} käsiteltäväkseen" change_email_user_html: "%{name} vaihtoi käyttäjän %{target} sähköpostiosoitteen" change_role_user_html: "%{name} muutti käyttäjän %{target} roolia" confirm_user_html: "%{name} vahvisti käyttäjän %{target} sähköpostiosoitteen" create_account_warning_html: "%{name} lähetti varoituksen käyttäjälle %{target}" create_announcement_html: "%{name} loi uuden tiedotteen %{target}" - create_canonical_email_block_html: "%{name} esti sähköpostin tiivisteellä %{target}" + create_canonical_email_block_html: "%{name} esti sähköpostiosoitteen tiivisteellä %{target}" create_custom_emoji_html: "%{name} lähetti uuden emojin %{target}" create_domain_allow_html: "%{name} salli federoinnin verkkotunnuksen %{target} kanssa" create_domain_block_html: "%{name} esti verkkotunnuksen %{target}" create_email_domain_block_html: "%{name} esti sähköpostiverkkotunnuksen %{target}" - create_ip_block_html: "%{name} loi IP-säännön %{target}" + create_ip_block_html: "%{name} loi säännön IP-osoitteelle %{target}" create_unavailable_domain_html: "%{name} pysäytti toimituksen verkkotunnukseen %{target}" create_user_role_html: "%{name} loi roolin %{target}" demote_user_html: "%{name} alensi käyttäjän %{target}" destroy_announcement_html: "%{name} poisti tiedotteen %{target}" - destroy_canonical_email_block_html: "%{name} kumosi sähköpostin eston tiivisteellä %{target}" + destroy_canonical_email_block_html: "%{name} kumosi sähköpostiosoitteen eston tiivisteellä %{target}" destroy_custom_emoji_html: "%{name} poisti emojin %{target}" destroy_domain_allow_html: "%{name} kielsi federoinnin verkkotunnuksen %{target} kanssa" destroy_domain_block_html: "%{name} kumosi verkkotunnuksen %{target} eston" destroy_email_domain_block_html: "%{name} kumosi sähköpostiverkkotunnuksen %{target} eston" destroy_instance_html: "%{name} tyhjensi verkkotunnuksen %{target}" - destroy_ip_block_html: "%{name} poisti IP-säännön %{target}" + destroy_ip_block_html: "%{name} poisti säännön IP-osoitteelta %{target}" destroy_status_html: "%{name} poisti käyttäjän %{target} julkaisun" destroy_unavailable_domain_html: "%{name} jatkoi toimitusta verkkotunnukseen %{target}" destroy_user_role_html: "%{name} poisti roolin %{target}" - disable_2fa_user_html: "%{name} poisti käyttäjältä %{target} vaatimuksen kaksivaiheisen todentamiseen" - disable_custom_emoji_html: "%{name} poisti käytöstä emojin %{target}" - disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksella todennuksen käytöstä tililtä %{target}" - disable_user_html: "%{name} poisti kirjautumisen käyttäjältä %{target}" + disable_2fa_user_html: "%{name} poisti käyttäjältä %{target} vaatimuksen kaksivaiheiseen todentamiseen" + disable_custom_emoji_html: "%{name} poisti emojin %{target} käytöstä" + disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksella todennuksen käytöstä käyttäjältä %{target}" + disable_user_html: "%{name} poisti kirjautumisen käytöstä käyttäjältä %{target}" enable_custom_emoji_html: "%{name} otti emojin %{target} käyttöön" - enable_sign_in_token_auth_user_html: "%{name} otti sähköpostitunnuksella todennuksen käyttöön tilille %{target}" + enable_sign_in_token_auth_user_html: "%{name} otti sähköpostitunnuksella todennuksen käyttöön käyttäjälle %{target}" enable_user_html: "%{name} otti kirjautumisen käyttöön käyttäjälle %{target}" memorialize_account_html: "%{name} muutti käyttäjän %{target} tilin muistosivuksi" promote_user_html: "%{name} ylensi käyttäjän %{target}" reject_appeal_html: "%{name} hylkäsi käyttäjän %{target} valituksen moderointipäätöksestä" - reject_user_html: "%{name} hylkäsi käyttäjän rekisteröitymisen kohteesta %{target}" + reject_user_html: "%{name} hylkäsi käyttäjän %{target} rekisteröitymisen" remove_avatar_user_html: "%{name} poisti käyttäjän %{target} profiilikuvan" reopen_report_html: "%{name} avasi uudelleen raportin %{target}" resend_user_html: "%{name} lähetti vahvistussähköpostiviestin uudelleen käyttäjälle %{target}" @@ -277,7 +277,7 @@ fi: sensitive_account_html: "%{name} merkitsi käyttäjän %{target} median arkaluonteiseksi" silence_account_html: "%{name} rajoitti käyttäjän %{target} tiliä" suspend_account_html: "%{name} jäädytti käyttäjän %{target} tilin" - unassigned_report_html: "%{name} poisti raportin käsittelystä %{target}" + unassigned_report_html: "%{name} poisti raportin %{target} käsittelystä" unblock_email_account_html: "%{name} kumosi käyttäjän %{target} sähköpostiosoitteen eston" unsensitive_account_html: "%{name} kumosi käyttäjän %{target} median arkaluonteisuusmerkinnän" unsilence_account_html: "%{name} kumosi käyttäjän %{target} rajoituksen" @@ -476,15 +476,15 @@ fi: view_all: Näytä kaikki tarkastuslokit availability: description_html: - one: Jos toimitus verkkotunnukseen epäonnistuu %{count} päivän ajan, sitä ei yritetä uudelleen ennen kuin verkkotunnuksesta vastaanotetaan toimitus. - other: Jos toimitus verkkotunnukseen epäonnistuu %{count} päivän ajan, sitä ei yritetä uudelleen ennen kuin verkkotunnuksesta vastaanotetaan toimitus. - failure_threshold_reached: Epäonnistumisen kynnys saavutettu %{date}. + one: Jos toimitus verkkotunnukseen epäonnistuu päivän ajan, sitä ei yritetä uudelleen ennen kuin verkkotunnuksesta vastaanotetaan toimitus. + other: Jos toimitus verkkotunnukseen epäonnistuu %{count} päivän ajan, sitä ei yritetä uudelleen ennen kuin verkkotunnuksesta vastaanotetaan toimitus. + failure_threshold_reached: Epäonnistumisten yläraja saavutettu %{date}. failures_recorded: - one: Epäonnistuneita yrityksiä %{count} päivässä. - other: Epäonnistuneita yrityksiä %{count} päivää. - no_failures_recorded: Ei epäonnistumisia kirjattu. + one: Epäonnistuneita yrityksiä %{count} päivänä. + other: Epäonnistuneita yrityksiä %{count} päivänä. + no_failures_recorded: Epäonnistumisia ei kirjattu. title: Saatavuus - warning: Viimeisin yritys yhdistää yhteys tähän palvelimeen on epäonnistunut + warning: Viimeisin yritys yhdistää tähän palvelimeen epäonnistui back_to_all: Kaikki back_to_limited: Rajoitettu back_to_warning: Varoitus @@ -492,24 +492,24 @@ fi: confirm_purge: Haluatko varmasti poistaa pysyvästi tämän verkkotunnuksen tiedot? content_policies: comment: Sisäinen muistiinpano - description_html: Voit määrittää sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnuksien tileihin. + description_html: Voit määrittää sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnusten tileihin. limited_federation_mode_description_html: Voit valita sallitaanko federointi tällä verkkotunnuksella. policies: reject_media: Hylkää media reject_reports: Hylkää raportit silence: Rajoita suspend: Jäädytä - policy: Käytännöt + policy: Käytäntö reason: Julkinen syy - title: Sisällön toimintatavat + title: Sisältökäytännöt dashboard: instance_accounts_dimension: Seuratuimmat tilit instance_accounts_measure: tallennetut tilit instance_followers_measure: seuraajamme siellä instance_follows_measure: heidän seuraajansa täällä instance_languages_dimension: Suosituimmat kielet - instance_media_attachments_measure: tallennetut median liitteet - instance_reports_measure: niitä koskevat raportit + instance_media_attachments_measure: tallennetut medialiitteet + instance_reports_measure: heitä koskevat raportit instance_statuses_measure: tallennetut julkaisut delivery: all: Kaikki @@ -520,7 +520,7 @@ fi: unavailable: Ei saatavilla delivery_available: Toimitus on saatavilla delivery_error_days: Toimitusvirheen päivät - delivery_error_hint: Jos toimitus ei ole mahdollista %{count} päivän aikana, se merkitään automaattisesti toimittamattomaksi. + delivery_error_hint: Jos toimitus ei ole mahdollista %{count} päivään, se merkitään automaattisesti toimituskelvottomaksi. destroyed_msg: Palvelimelta %{domain} peräisin olevat tiedot ovat nyt jonossa poistattaviksi. empty: Verkkotunnuksia ei löytynyt. known_accounts: @@ -533,14 +533,14 @@ fi: private_comment: Yksityinen kommentti public_comment: Julkinen kommentti purge: Tyhjennä - purge_description_html: Jos uskot, että tämä verkkotunnus on offline-tilassa tarkoituksella, voit poistaa kaikki verkkotunnuksen tilitietueet ja niihin liittyvät tiedot tallennustilastasi. Tämä voi kestää jonkin aikaa. + purge_description_html: Jos uskot, että tämä verkkotunnus on yhteydettömässä tilassa tarkoituksella, voit poistaa kaikki verkkotunnuksen tilitietueet ja niihin liittyvät tiedot tallennustilastasi. Tämä voi kestää jonkin aikaa. title: Federointi total_blocked_by_us: Estämämme total_followed_by_them: Heidän seuraama total_followed_by_us: Meidän seuraama - total_reported: Niitä koskevat raportit + total_reported: Heitä koskevat raportit total_storage: Medialiitteet - totals_time_period_hint_html: Alla näkyvät yhteenlasketut tiedot sisältävät koko ajan. + totals_time_period_hint_html: Seuraavassa näkyvät määrät sisältävät tiedot koko ajalta. unknown_instance: Tällä palvelimella ei tällä hetkellä ole tähän verkkotunnukseen liittyviä tietueita. invites: deactivate_all: Poista kaikki käytöstä @@ -689,7 +689,7 @@ fi: description_html: "Käyttäjärooleilla voit mukauttaa, mihin Mastodonin toimintoihin ja alueisiin käyttäjäsi pääsevät käsiksi." edit: Muokkaa roolia ”%{name}” everyone: Oletuskäyttöoikeudet - everyone_full_description_html: Tämä on perusrooli, joka vaikuttaa kaikkiin käyttäjiin, jopa ilman määrättyä roolia. Kaikki muut roolit perivät sen käyttöoikeudet. + everyone_full_description_html: Tämä on perusrooli, joka vaikuttaa kaikkiin käyttäjiin, jopa ilman asetettua roolia. Kaikki muut roolit perivät sen käyttöoikeudet. permissions_count: one: "%{count} käyttöoikeus" other: "%{count} käyttöoikeutta" @@ -794,7 +794,7 @@ fi: federation_authentication: Federoinnin todennuksen valvonta title: Palvelimen asetukset site_uploads: - delete: Poista ladattu tiedosto + delete: Poista lähetetty tiedosto destroyed_msg: Sivustolatauksen poisto onnistui! software_updates: critical_update: Kriittinen – päivitä viivyttelemättä @@ -851,7 +851,7 @@ fi: elasticsearch_health_red: message_html: Elasticsearch-klusteri on vikatilassa (punainen tila), joten hakuominaisuudet eivät ole käytettävissä elasticsearch_health_yellow: - message_html: Elasticsearch-klusteri on häiriötilassa (keltainen tila), joten suosittelemme tutkimaan syyn + message_html: Elasticsearch-klusteri on vikatilassa (keltainen tila), joten suosittelemme tutkimaan syyn elasticsearch_index_mismatch: message_html: Elasticsearch-indeksin sidokset ovat vanhentuneet. Suorita tootctl search deploy --only=%{value} elasticsearch_preset: @@ -863,10 +863,10 @@ fi: elasticsearch_reset_chewy: message_html: Elasticsearch-järjestelmäindeksi on vanhentunut asetusmuutoksen vuoksi. Suorita tootctl search deploy --reset-chewy päivittääksesi sen. elasticsearch_running_check: - message_html: Ei saatu yhteyttä Elasticsearchiin. Tarkista, että se on käynnissä tai poista kokotekstihaku käytöstä + message_html: Elasticsearchiin ei saatu yhteyttä. Tarkista, että se on käynnissä, tai poista kokotekstihaku käytöstä elasticsearch_version_check: message_html: 'Yhteensopimaton Elasticsearch-versio: %{value}' - version_comparison: Elasticsearch %{running_version} on käynnissä, kun %{required_version} vaaditaan + version_comparison: Käynnissä on Elasticsearch %{running_version}, kun vaaditaan %{required_version} rules_check: action: Hallitse palvelimen sääntöjä message_html: Et ole määrittänyt lainkaan palvelimen sääntöjä. @@ -879,11 +879,11 @@ fi: action: Näytä saatavilla olevat päivitykset message_html: Mastodonin virhekorjauspäivitys on saatavilla. upload_check_privacy_error: - action: Katso täältä lisätietoja - message_html: "Verkkopalvelimesi on määritetty väärin. Käyttäjiesi yksityisyys on vaarassa." + action: Katso lisätietoja täältä + message_html: "Verkkopalvelimesi on määritetty väärin. Käyttäjiesi tietosuoja on vaarassa." upload_check_privacy_error_object_storage: - action: Katso täältä lisätietoja - message_html: "Objektivarastosi on määritetty virheellisesti, ja käyttäjiesi yksityisyys on vaarassa." + action: Katso lisätietoja täältä + message_html: "Oliovarastosi on määritetty virheellisesti. Käyttäjiesi tietosuoja on vaarassa." tags: moderation: not_trendable: Ei trendattava @@ -1070,7 +1070,7 @@ fi: apply_for_account: Pyydä tiliä captcha_confirmation: help_html: Jos kohtaat ongelmia CAPTCHAn ratkaisemisessa, voit pyytää meiltä apua osoitteella %{email}. - hint_html: Vielä yksi juttu! Meidän on vahvistettava, että olet ihminen (tämän avulla pidämme roskapostin poissa!). Ratkaise alla oleva CAPTCHA-vahvistus ja paina "Jatka". + hint_html: Vielä yksi asia! Meidän on vahvistettava, että olet ihminen (tämän avulla pidämme roskapostin poissa!). Ratkaise alla oleva CAPTCHA-vahvistus ja paina ”Jatka”. title: Turvatarkastus confirmations: awaiting_review: Sähköpostiosoitteesi on vahvistettu! Seuraavaksi palvelimen %{domain} ylläpito tarkastaa rekisteröitymisesi, ja saat lopuksi ilmoituksen sähköpostitse, jos tilisi hyväksytään! @@ -1100,7 +1100,7 @@ fi: migrate_account: Muuta toiseen tiliin migrate_account_html: Jos haluat ohjata tämän tilin toiseen, voit asettaa toisen tilin tästä. or_log_in_with: Tai käytä kirjautumiseen - privacy_policy_agreement_html: Olen lukenut ja hyväksynyt tietosuojakäytännön + privacy_policy_agreement_html: Olen lukenut ja hyväksyn tietosuojakäytännön progress: confirm: Vahvista sähköpostiosoite details: Omat tietosi @@ -1187,7 +1187,7 @@ fi: email_contact_html: Jos ei saavu perille, voit pyytää apua sähköpostilla %{email} email_reconfirmation_html: Jos et saa vahvistuksen sähköpostia, niin voit pyytää sitä uudelleen irreversible: Et voi palauttaa tiliäsi tai aktivoida sitä uudelleen - more_details_html: Lisätietoja saat tietosuojakäytännöstämme. + more_details_html: Tarkempia tietoja saat tietosuojakäytännöstämme. username_available: Käyttäjänimesi tulee saataville uudelleen username_unavailable: Käyttäjänimesi ei tule saataville enää uudelleen disputes: @@ -1312,8 +1312,8 @@ fi: one: "%{count} kohde tällä sivulla on valittu." other: Kaikki %{count} kohdetta tällä sivulla on valittu. all_matching_items_selected_html: - one: "%{count} kohde, joka vastaa hakuasi." - other: Kaikki %{count} hakuasi vastaavaa kohdetta. + one: "%{count} hakuasi vastaava kohde on valittuna." + other: Kaikki %{count} hakuasi vastaavat kohteet ovat valittuina. cancel: Peruuta changes_saved_msg: Muutosten tallennus onnistui! confirm: Vahvista @@ -1324,7 +1324,7 @@ fi: order_by: Järjestys save_changes: Tallenna muutokset select_all_matching_items: - one: Valitse %{count} kohde, joka vastaa hakuasi. + one: Valitse %{count} hakuasi vastaava kohde. other: Valitse kaikki %{count} hakuasi vastaavaa kohdetta. today: tänään validation_errors: @@ -1475,7 +1475,7 @@ fi: followers: Tämä toiminto siirtää kaikki seuraajat nykyisestä tilistä uudelle tilille only_redirect_html: Vaihtoehtoisesti voit asettaa vain ohjauksen profiiliisi. other_data: Muita tietoja ei siirretä automaattisesti - redirect: Nykyisen tilisi profiili päivitetään ohjaushuomautuksella ja suljetaan pois hauista + redirect: Nykyisen tilisi profiili päivitetään uudelleenohjaushuomautuksella ja suljetaan pois hauista moderation: title: Moderointi move_handler: @@ -1858,7 +1858,7 @@ fi: delete_statuses: Joidenkin julkaisuistasi on havaittu rikkovan ainakin yhtä yhteisön sääntöä, joten palvelimen %{instance} moderaattorit ovat poistaneet ne. disable: Et voi enää käyttää tiliäsi, mutta profiilisi ja muut tiedot pysyvät muuttumattomina. Voit pyytää varmuuskopiota tiedoistasi, vaihtaa tilin asetuksia tai poistaa tilisi. mark_statuses_as_sensitive: Palvelimen %{instance} moderaattorit ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että ihmisten täytyy napauttaa mediaa ennen kuin sen esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi, kun julkaiset tulevaisuudessa. - sensitive: Tästä lähtien kaikki ladatut mediatiedostot merkitään arkaluonteisiksi ja piilotetaan napsautusvaroituksen taakse. + sensitive: Tästä lähtien kaikki lähetetyt mediatiedostot merkitään arkaluonteisiksi ja piilotetaan napsautusvaroituksen taakse. silence: Voit edelleen käyttää tiliäsi, mutta vain sinua jo seuraavat käyttäjät näkevät julkaisusi tällä palvelimella ja sinut voidaan sulkea pois eri löytämisominaisuuksista. Toiset voivat kuitenkin edelleen seurata sinua manuaalisesti. suspend: Et voi enää käyttää tiliäsi, eivätkä profiilisi ja muut tiedot ole enää käytettävissä. Voit silti kirjautua sisään pyytääksesi tietojesi varmuuskopiota, kunnes tiedot on poistettu kokonaan noin 30 päivän kuluttua. Säilytämme kuitenkin joitain perustietoja, jotka estävät sinua kiertämästä jäädytystä. reason: 'Syy:' diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 0bfc30027a..d6a8e3cc35 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -40,6 +40,23 @@ hi: upload_check_privacy_error_object_storage: action: अधिक जानकारी हेतु यहां क्लिक करें। message_html: " आपके वेब सर्वर का कन्फिगरेशन सही नहीं है। उपयोगकर्ताओं की निजता खतरे में है। " + tags: + moderation: + not_trendable: ट्रेंड नहीं किया जाएगा + not_usable: उपयोगी नहीं + pending_review: लंबित समीक्षा + review_requested: समीक्षा की मांग की गई + reviewed: समीक्षित + title: स्टेटस + trendable: चर्चा में + unreviewed: गैर समीक्षित + usable: उपयुक्त + name: नाम + newest: नवीनतम + oldest: सबसे पुराने + reset: पुनः नियत करें + search: खोजें + title: हैशटैग redirects: prompt: अगर आपको इस लिंक पर भरोसा है तो आगे बढ़ने के लिए इसे क्लिक करें title: आप इस %{instance} को छोड़ने वाले हैं diff --git a/config/locales/it.yml b/config/locales/it.yml index 02c21ac312..d552d08a45 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -885,7 +885,23 @@ it: action: Controlla qui per maggiori informazioni message_html: "La tua archiviazione oggetti è mal configurata. La privacy dei tuoi utenti è a rischio." tags: + moderation: + not_trendable: Non di tendenza + not_usable: Non utilizzabile + pending_review: In attesa di revisione + review_requested: Revisione richiesta + reviewed: Controllato + title: Stato + trendable: Di tendenza + unreviewed: Non revisionato + usable: Utilizzabile + name: Nome + newest: Più recenti + oldest: Più vecchio + reset: Ripristina review: Esamina status + search: Cerca + title: Hashtag updated_msg: Impostazioni hashtag aggiornate con successo title: Amministrazione trends: diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index b0db0709c1..ed6a8a4028 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -885,7 +885,23 @@ pt-PT: action: Verifique aqui para mais informações message_html: "O seu armazenamento de objetos está mal configurado. A privacidade dos seus utilizadores está em risco." tags: + moderation: + not_trendable: Não pode ser tendência + not_usable: Não utilizável + pending_review: Pendente de revisão + review_requested: Revisão solicitada + reviewed: Revista + title: Estado + trendable: Pode ser tendência + unreviewed: Não revista + usable: Utilizável + name: Nome + newest: Mais recente + oldest: Mais antiga + reset: Repor review: Estado da revisão + search: Pesquisar + title: Hashtags updated_msg: 'Definições de #etiquetas correctamente actualizadas' title: Administração trends: diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 7b1c67d392..4daf657234 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -314,6 +314,7 @@ ca: listable: Permet que aquesta etiqueta aparegui en les cerques i en el directori de perfils name: Etiqueta trendable: Permet que aquesta etiqueta aparegui en les tendències + usable: Permet a les publicacions emprar aquesta etiqueta localment user: role: Rol time_zone: Zona horària diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index a1dbeea916..e26af5b0c6 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -314,6 +314,7 @@ es-AR: listable: Permitir que esta etiqueta aparezca en las búsquedas y en las sugerencias name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias + usable: Permitir que los mensajes usen esta etiqueta localmente user: role: Rol time_zone: Zona horaria diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index a6004cee35..ddbd1dd289 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -77,13 +77,13 @@ fi: warn: Piilota suodatettu sisältö varoituksen taakse, jossa mainitaan suodattimen nimi form_admin_settings: activity_api_enabled: Paikallisesti julkaistujen julkaisujen, aktiivisten käyttäjien ja rekisteröitymisten viikoittainen määrä - app_icon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen mobiililaitteiden sovelluskuvakkeen omalla kuvakkeella. + app_icon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen mobiililaitteiden sovelluskuvakkeen haluamallasi kuvakkeella. backups_retention_period: Käyttäjillä on mahdollisuus arkistoida julkaisujaan myöhemmin ladattaviksi. Kun kentän arvo on positiivinen, nämä arkistot poistuvat automaattisesti, kun määritetty määrä päiviä on kulunut. bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seurantasuositusten alkuun. closed_registrations_message: Näkyy, kun rekisteröityminen on suljettu content_cache_retention_period: Kaikki muiden palvelinten julkaisut (mukaan lukien tehostukset ja vastaukset) poistuvat, kun määritetty määrä päiviä on kulunut, lukuun ottamatta paikallisen käyttäjän vuorovaikutusta näiden julkaisujen kanssa. Tämä sisältää julkaisut, jotka paikallinen käyttäjä on merkinnyt kirjanmerkiksi tai suosikiksi. Myös yksityismaininnat eri palvelinten käyttäjien välillä menetetään, eikä niitä voi palauttaa. Tämä asetus on tarkoitettu käytettäväksi erityistapauksissa ja rikkoo monia käyttäjien odotuksia, kun sitä sovelletaan yleiskäyttöön. custom_css: Voit käyttää mukautettuja tyylejä Mastodonin selainversiossa. - favicon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen Mastodonin sivustokuvakkeen (favicon) haluamallasi kuvakkeella. + favicon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen Mastodonin sivustokuvakkeen haluamallasi kuvakkeella. mascot: Ohittaa kuvituksen edistyneessä selainkäyttöliittymässä. media_cache_retention_period: Etäkäyttäjien tekemien julkaisujen mediatiedostot ovat välimuistissa palvelimellasi. Kun kentän arvo on positiivinen, media poistuu, kun määritetty määrä päiviä on kulunut. Jos mediaa pyydetään sen poistamisen jälkeen, se ladataan uudelleen, jos lähdesisältö on vielä saatavilla. Koska linkkien esikatselun kyselyitä kolmansien osapuolien sivustoille on rajoitettu, on suositeltavaa asettaa tämä arvo vähintään 14 päivään, tai linkkien kortteja ei päivitetä pyynnöstä ennen tätä ajankohtaa. peers_api_enabled: Luettelo verkkotunnuksista, jotka tämä palvelin on kohdannut fediversumissa. Se ei kerro, federoitko tietyn palvelimen kanssa, vaan että palvelimesi on ylipäätään tietoinen siitä. Tätä tietoa käytetään palveluissa, jotka keräävät tilastoja federoinnista yleisellä tasolla. @@ -109,14 +109,14 @@ fi: invite_request: text: Tämä auttaa meitä arvioimaan hakemustasi ip_block: - comment: Valinnainen. Muista miksi lisäsit tämän säännön. + comment: Valinnainen. Muista, miksi lisäsit tämän säännön. expires_in: IP-osoitteet ovat rajallinen resurssi – joskus niitä jaetaan eteenpäin, ja ne vaihtavat usein omistajaa. Niinpä epämääräisiä IP-lohkoja ei suositella. ip: Kirjoita IPv4- tai IPv6-osoite. Voit estää kokonaisia IP-osoitealueita CIDR-syntaksin avulla. Varo lukitsemasta itseäsi ulos! severities: no_access: Estä pääsy kaikkiin resursseihin sign_up_block: Uudet rekisteröitymiset eivät ole mahdollisia sign_up_requires_approval: Uudet rekisteröitymiset edellyttävät hyväksyntääsi - severity: Valitse, mitä tapahtuu tämän IP-osoitteen pyynnöille + severity: Valitse, mitä tapahtuu tästä IP-osoitteesta tuleville pyynnöille rule: hint: Vapaaehtoinen. Anna yksityiskohtaisempia tietoja säännöstä text: Kuvaile sääntöä tai edellytystä palvelimesi käyttäjille. Suosi tiivistä, yksinkertaista ilmaisua @@ -249,7 +249,7 @@ fi: closed_registrations_message: Mukautettu viesti, kun rekisteröityminen ei ole saatavilla content_cache_retention_period: Etäsisällön säilytysaika custom_css: Mukautettu CSS - favicon: Suosikkikuvake + favicon: Sivustokuvake mascot: Mukautettu maskotti (vanhentunut) media_cache_retention_period: Mediasisällön välimuistin säilytysaika peers_api_enabled: Julkaise löydettyjen palvelinten luettelo ohjelmointirajapinnassa diff --git a/config/locales/simple_form.hi.yml b/config/locales/simple_form.hi.yml index d758a5b535..51c0868cdb 100644 --- a/config/locales/simple_form.hi.yml +++ b/config/locales/simple_form.hi.yml @@ -1 +1,6 @@ +--- hi: + simple_form: + labels: + tag: + usable: पोस्ट को ये हैशटैग स्थानीय उपयोग करने दें diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index b0f7ef7a6b..ea175e2bf5 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -314,6 +314,7 @@ it: listable: Permetti a questo hashtag di apparire nella directory dei profili name: Hashtag trendable: Permetti a questo hashtag di apparire nelle tendenze + usable: Permetti ai post di utilizzare questo hashtag localmente user: role: Ruolo time_zone: Fuso orario diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index a1a2bc657c..a76076a5cb 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -314,6 +314,7 @@ pt-PT: listable: Permitir que esta etiqueta apareça em pesquisas e no diretório de perfis name: Etiqueta trendable: Permitir que esta etiqueta apareça em alta + usable: Permitir que as publicações usem esta hashtag localmente user: role: Cargo time_zone: Fuso horário diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml index de0d631ae6..c2effdcb88 100644 --- a/config/locales/simple_form.ru.yml +++ b/config/locales/simple_form.ru.yml @@ -203,6 +203,7 @@ ru: setting_default_privacy: Видимость постов setting_default_sensitive: Всегда отмечать медиафайлы как «деликатного характера» setting_delete_modal: Всегда спрашивать перед удалении поста + setting_disable_hover_cards: Отключить предпросмотр профиля при наведении setting_disable_swiping: Отключить анимацию смахивания setting_display_media: Отображение медиафайлов setting_display_media_default: По умолчанию diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index 912e0bda82..8b00751d98 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -314,6 +314,7 @@ sq: listable: Lejoje këtë hashtag të shfaqet në kërkime dhe në drejtori profilesh name: Hashtag trendable: Lejoje këtë hashtag të shfaqet në prirje + usable: Lejoji postimet të përdorin lokalisht këtë hashtag user: role: Rol time_zone: Zonë kohore diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 2310d1e329..7954bb1e6f 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -314,6 +314,7 @@ vi: listable: Cho phép xuất hiện trong tìm kiếm và đề xuất name: Hashtag trendable: Cho phép hashtag này lên xu hướng + usable: Cho phép dùng hashtag này khi soạn tút user: role: Vai trò time_zone: Múi giờ diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 58334471a3..d059adf0e6 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -314,6 +314,7 @@ zh-CN: listable: 允许这个话题标签在用户目录中显示 name: 话题标签 trendable: 允许在热门下显示此话题 + usable: 允许本站嘟文使用此话题标签 user: role: 角色 time_zone: 时区 diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 7ba5bf6570..92e182cfda 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -880,7 +880,21 @@ sq: action: Për më tepër hollësi, shihni këtu message_html: "Depozita juaj e objekteve është e formësuar keq. Privatësia e përdoruesve tuaj është në rrezik." tags: + moderation: + not_usable: Të papërdorshme + pending_review: Në pritje të shqyrtimit + review_requested: U kërkua shqyrtim + reviewed: Shqyrtuar + title: Gjendje + unreviewed: Të pashqyrtuar + usable: Të përdorshëm + name: Emër + newest: Më të rejat + oldest: Më të vjetrat + reset: Riktheje te parazgjedhjet review: Gjendje rishikimi + search: Kërkim + title: Hashtag-ë updated_msg: Rregullimet për hashtag-ët u përditësuan me sukses title: Administrim trends: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 72eefe5632..8054c11355 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -885,7 +885,12 @@ sv: action: Kolla här för mer information message_html: "Din objektlagring är felkonfigurerad. Sekretessen för dina användare är i riskzonen." tags: + moderation: + title: Status + name: Namn + reset: Återställ review: Granskningsstatus + search: Sök updated_msg: Hashtagg-inställningarna har uppdaterats title: Administration trends: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index b44ba15a77..dacaafd768 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -871,7 +871,23 @@ vi: action: Nhấn vào đây để biết thêm thông tin message_html: "Lưu trữ đối tượng của bạn bị cấu hình sai. Có nguy cơ ảnh hưởng bảo mật của người dùng." tags: + moderation: + not_trendable: Không xu hướng + not_usable: Không được dùng + pending_review: Chờ duyệt + review_requested: Yêu cầu duyệt + reviewed: Đã duyệt + title: Trạng thái + trendable: Có thể xu hướng + unreviewed: Chưa duyệt + usable: Có thể dùng + name: Tên + newest: Mới nhất + oldest: Cũ nhất + reset: Đặt lại review: Phê duyệt + search: Tìm kiếm + title: Hashtag updated_msg: Hashtag đã được cập nhật thành công title: Quản trị trends: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 50921b07d8..f08142719a 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -871,7 +871,23 @@ zh-CN: action: 点击这里查看更多信息 message_html: "您的对象存储空间配置错误,您用户的隐私处于危险中。" tags: + moderation: + not_trendable: 不在趋势中显示 + not_usable: 不可用 + pending_review: 待审核 + review_requested: 已请求审核 + reviewed: 已审核 + title: 状态 + trendable: 可在趋势中显示 + unreviewed: 未审核 + usable: 可用 + name: 名称 + newest: 最新 + oldest: 最早 + reset: 重置 review: 审核状态 + search: 搜索 + title: 话题标签 updated_msg: 话题标签设置更新成功 title: 管理 trends: From 288961bbb99b626128e4bc222deb4f749922edb8 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 31 Jul 2024 12:26:43 +0200 Subject: [PATCH 035/306] Change private mention icon for consistency in grouped notifications (#31223) --- .../notifications_v2/components/notification_mention.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_mention.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_mention.tsx index 8c584f0ce1..f8d646b07e 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_mention.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_mention.tsx @@ -1,5 +1,6 @@ import { FormattedMessage } from 'react-intl'; +import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react'; import ReplyIcon from '@/material-icons/400-24px/reply-fill.svg?react'; import type { StatusVisibility } from 'mastodon/api_types/statuses'; import type { NotificationGroupMention } from 'mastodon/models/notification_group'; @@ -39,7 +40,7 @@ export const NotificationMention: React.FC<{ return ( Date: Wed, 31 Jul 2024 12:50:13 +0200 Subject: [PATCH 036/306] Change grouped notifications API shape (take 2) (#31214) --- .../api/v2_alpha/notifications_controller.rb | 6 ++++-- .../mastodon/actions/notification_groups.ts | 12 +++++------ app/javascript/mastodon/api/notifications.ts | 13 +++++++++--- .../mastodon/api_types/notifications.ts | 8 ++++++- .../mastodon/models/notification_group.ts | 5 ++--- .../grouped_notifications_presenter.rb | 21 +++++++++++++++++++ .../dedup_notification_group_serializer.rb | 7 +++++++ .../rest/notification_group_serializer.rb | 12 +++++++++-- .../api/v2_alpha/notifications_spec.rb | 6 +++--- 9 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 app/presenters/grouped_notifications_presenter.rb create mode 100644 app/serializers/rest/dedup_notification_group_serializer.rb diff --git a/app/controllers/api/v2_alpha/notifications_controller.rb b/app/controllers/api/v2_alpha/notifications_controller.rb index d1126baaf4..837499e898 100644 --- a/app/controllers/api/v2_alpha/notifications_controller.rb +++ b/app/controllers/api/v2_alpha/notifications_controller.rb @@ -33,7 +33,8 @@ class Api::V2Alpha::NotificationsController < Api::BaseController 'app.notification_grouping.status.unique_count' => statuses.uniq.size ) - render json: @grouped_notifications, each_serializer: REST::NotificationGroupSerializer, relationships: @relationships, group_metadata: @group_metadata + presenter = GroupedNotificationsPresenter.new(@grouped_notifications) + render json: presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, group_metadata: @group_metadata end end @@ -47,7 +48,8 @@ class Api::V2Alpha::NotificationsController < Api::BaseController def show @notification = current_account.notifications.without_suspended.find_by!(group_key: params[:id]) - render json: NotificationGroup.from_notification(@notification), serializer: REST::NotificationGroupSerializer + presenter = GroupedNotificationsPresenter.new([NotificationGroup.from_notification(@notification)]) + render json: presenter, serializer: REST::DedupNotificationGroupSerializer end def clear diff --git a/app/javascript/mastodon/actions/notification_groups.ts b/app/javascript/mastodon/actions/notification_groups.ts index 8fdec6e48b..fc5807c8c0 100644 --- a/app/javascript/mastodon/actions/notification_groups.ts +++ b/app/javascript/mastodon/actions/notification_groups.ts @@ -38,10 +38,6 @@ function dispatchAssociatedRecords( const fetchedStatuses: ApiStatusJSON[] = []; notifications.forEach((notification) => { - if ('sample_accounts' in notification) { - fetchedAccounts.push(...notification.sample_accounts); - } - if (notification.type === 'admin.report') { fetchedAccounts.push(notification.report.target_account); } @@ -75,7 +71,9 @@ export const fetchNotifications = createDataLoadingThunk( : excludeAllTypesExcept(activeFilter), }); }, - ({ notifications }, { dispatch }) => { + ({ notifications, accounts, statuses }, { dispatch }) => { + dispatch(importFetchedAccounts(accounts)); + dispatch(importFetchedStatuses(statuses)); dispatchAssociatedRecords(dispatch, notifications); const payload: (ApiNotificationGroupJSON | NotificationGap)[] = notifications; @@ -95,7 +93,9 @@ export const fetchNotificationsGap = createDataLoadingThunk( async (params: { gap: NotificationGap }) => apiFetchNotifications({ max_id: params.gap.maxId }), - ({ notifications }, { dispatch }) => { + ({ notifications, accounts, statuses }, { dispatch }) => { + dispatch(importFetchedAccounts(accounts)); + dispatch(importFetchedStatuses(statuses)); dispatchAssociatedRecords(dispatch, notifications); return { notifications }; diff --git a/app/javascript/mastodon/api/notifications.ts b/app/javascript/mastodon/api/notifications.ts index c1ab6f70ca..ed187da5ec 100644 --- a/app/javascript/mastodon/api/notifications.ts +++ b/app/javascript/mastodon/api/notifications.ts @@ -1,17 +1,24 @@ import api, { apiRequest, getLinks } from 'mastodon/api'; -import type { ApiNotificationGroupJSON } from 'mastodon/api_types/notifications'; +import type { ApiNotificationGroupsResultJSON } from 'mastodon/api_types/notifications'; export const apiFetchNotifications = async (params?: { exclude_types?: string[]; max_id?: string; }) => { - const response = await api().request({ + const response = await api().request({ method: 'GET', url: '/api/v2_alpha/notifications', params, }); - return { notifications: response.data, links: getLinks(response) }; + const { statuses, accounts, notification_groups } = response.data; + + return { + statuses, + accounts, + notifications: notification_groups, + links: getLinks(response), + }; }; export const apiClearNotifications = () => diff --git a/app/javascript/mastodon/api_types/notifications.ts b/app/javascript/mastodon/api_types/notifications.ts index d7cbbca73b..fba0b7941b 100644 --- a/app/javascript/mastodon/api_types/notifications.ts +++ b/app/javascript/mastodon/api_types/notifications.ts @@ -51,7 +51,7 @@ export interface BaseNotificationGroupJSON { group_key: string; notifications_count: number; type: NotificationType; - sample_accounts: ApiAccountJSON[]; + sample_account_ids: string[]; latest_page_notification_at: string; // FIXME: This will only be present if the notification group is returned in a paginated list, not requested directly most_recent_notification_id: string; page_min_id?: string; @@ -143,3 +143,9 @@ export type ApiNotificationGroupJSON = | AccountRelationshipSeveranceNotificationGroupJSON | NotificationGroupWithStatusJSON | ModerationWarningNotificationGroupJSON; + +export interface ApiNotificationGroupsResultJSON { + accounts: ApiAccountJSON[]; + statuses: ApiStatusJSON[]; + notification_groups: ApiNotificationGroupJSON[]; +} diff --git a/app/javascript/mastodon/models/notification_group.ts b/app/javascript/mastodon/models/notification_group.ts index 5fe1e6f2e4..330bba88a8 100644 --- a/app/javascript/mastodon/models/notification_group.ts +++ b/app/javascript/mastodon/models/notification_group.ts @@ -14,7 +14,7 @@ import type { ApiReportJSON } from 'mastodon/api_types/reports'; export const NOTIFICATIONS_GROUP_MAX_AVATARS = 8; interface BaseNotificationGroup - extends Omit { + extends Omit { sampleAccountIds: string[]; } @@ -115,8 +115,7 @@ function createAccountRelationshipSeveranceEventFromJSON( export function createNotificationGroupFromJSON( groupJson: ApiNotificationGroupJSON, ): NotificationGroup { - const { sample_accounts, ...group } = groupJson; - const sampleAccountIds = sample_accounts.map((account) => account.id); + const { sample_account_ids: sampleAccountIds, ...group } = groupJson; switch (group.type) { case 'favourite': diff --git a/app/presenters/grouped_notifications_presenter.rb b/app/presenters/grouped_notifications_presenter.rb new file mode 100644 index 0000000000..f01acfd41c --- /dev/null +++ b/app/presenters/grouped_notifications_presenter.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class GroupedNotificationsPresenter < ActiveModelSerializers::Model + def initialize(grouped_notifications) + super() + + @grouped_notifications = grouped_notifications + end + + def notification_groups + @grouped_notifications + end + + def statuses + @grouped_notifications.filter_map(&:target_status).uniq(&:id) + end + + def accounts + @grouped_notifications.flat_map(&:sample_accounts).uniq(&:id) + end +end diff --git a/app/serializers/rest/dedup_notification_group_serializer.rb b/app/serializers/rest/dedup_notification_group_serializer.rb new file mode 100644 index 0000000000..fd0c6b3c41 --- /dev/null +++ b/app/serializers/rest/dedup_notification_group_serializer.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class REST::DedupNotificationGroupSerializer < ActiveModel::Serializer + has_many :accounts, serializer: REST::AccountSerializer + has_many :statuses, serializer: REST::StatusSerializer + has_many :notification_groups, serializer: REST::NotificationGroupSerializer +end diff --git a/app/serializers/rest/notification_group_serializer.rb b/app/serializers/rest/notification_group_serializer.rb index 749f717754..b855f1cba9 100644 --- a/app/serializers/rest/notification_group_serializer.rb +++ b/app/serializers/rest/notification_group_serializer.rb @@ -8,12 +8,20 @@ class REST::NotificationGroupSerializer < ActiveModel::Serializer attribute :page_max_id, if: :paginated? attribute :latest_page_notification_at, if: :paginated? - has_many :sample_accounts, serializer: REST::AccountSerializer - belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer + attribute :sample_account_ids + attribute :status_id, if: :status_type? belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer belongs_to :account_relationship_severance_event, key: :event, if: :relationship_severance_event?, serializer: REST::AccountRelationshipSeveranceEventSerializer belongs_to :account_warning, key: :moderation_warning, if: :moderation_warning_event?, serializer: REST::AccountWarningSerializer + def sample_account_ids + object.sample_accounts.pluck(:id).map(&:to_s) + end + + def status_id + object.target_status&.id&.to_s + end + def status_type? [:favourite, :reblog, :status, :mention, :poll, :update].include?(object.type) end diff --git a/spec/requests/api/v2_alpha/notifications_spec.rb b/spec/requests/api/v2_alpha/notifications_spec.rb index 381987e7e7..fc1daef43f 100644 --- a/spec/requests/api/v2_alpha/notifications_spec.rb +++ b/spec/requests/api/v2_alpha/notifications_spec.rb @@ -135,7 +135,7 @@ RSpec.describe 'Notifications' do expect(response).to have_http_status(200) expect(body_json_types.uniq).to eq ['mention'] - expect(body_as_json[0][:page_min_id]).to_not be_nil + expect(body_as_json.dig(:notification_groups, 0, :page_min_id)).to_not be_nil end end @@ -147,7 +147,7 @@ RSpec.describe 'Notifications' do notifications = user.account.notifications - expect(body_as_json.size) + expect(body_as_json[:notification_groups].size) .to eq(params[:limit]) expect(response) @@ -161,7 +161,7 @@ RSpec.describe 'Notifications' do end def body_json_types - body_as_json.pluck(:type) + body_as_json[:notification_groups].pluck(:type) end end From 2c1e75727dbf84cc0c3590a0a8e53d28640b37d0 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 31 Jul 2024 14:36:08 +0200 Subject: [PATCH 037/306] Change filtered notification banner design to take up less space (#31222) --- .../filtered_notifications_banner.tsx | 11 ++------- app/javascript/mastodon/locales/en.json | 3 +-- .../styles/mastodon/components.scss | 23 ++++--------------- 3 files changed, 7 insertions(+), 30 deletions(-) diff --git a/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.tsx b/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.tsx index be1ea2c556..9f93d25c56 100644 --- a/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.tsx +++ b/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.tsx @@ -49,21 +49,14 @@ export const FilteredNotificationsBanner: React.FC = () => {
-
- {toCappedNumber(policy.summary.pending_notifications_count)} -
- + {toCappedNumber(policy.summary.pending_notifications_count)}
); diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index de8f2ebfcf..c9484a1432 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", "filter_modal.select_filter.title": "Filter this post", "filter_modal.title.status": "Filter a post", - "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentions}}", - "filtered_notifications_banner.pending_requests": "Notifications from {count, plural, =0 {no one} one {one person} other {# people}} you may know", + "filtered_notifications_banner.pending_requests": "From {count, plural, =0 {no one} one {one person} other {# people}} you may know", "filtered_notifications_banner.title": "Filtered notifications", "firehose.all": "All", "firehose.local": "This server", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index c575a033b7..e64ebbad4b 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -10171,25 +10171,10 @@ noscript { } &__badge { - display: flex; - align-items: center; - border-radius: 999px; - background: var(--background-border-color); - color: $darker-text-color; - padding: 4px; - padding-inline-end: 8px; - gap: 6px; - font-weight: 500; - font-size: 11px; - line-height: 16px; - word-break: keep-all; - - &__badge { - background: $ui-button-background-color; - color: $white; - border-radius: 100px; - padding: 2px 8px; - } + background: $ui-button-background-color; + color: $white; + border-radius: 100px; + padding: 2px 8px; } } From a50c8e951f03a8eb53957ad1c3703155b223ed24 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 31 Jul 2024 15:23:08 +0200 Subject: [PATCH 038/306] Fix issue with grouped notifications UI due to recent API change (#31224) --- app/javascript/mastodon/api_types/notifications.ts | 2 +- app/javascript/mastodon/models/notification_group.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/api_types/notifications.ts b/app/javascript/mastodon/api_types/notifications.ts index fba0b7941b..ed73ceda6b 100644 --- a/app/javascript/mastodon/api_types/notifications.ts +++ b/app/javascript/mastodon/api_types/notifications.ts @@ -60,7 +60,7 @@ export interface BaseNotificationGroupJSON { interface NotificationGroupWithStatusJSON extends BaseNotificationGroupJSON { type: NotificationWithStatusType; - status: ApiStatusJSON; + status_id: string; } interface NotificationWithStatusJSON extends BaseNotificationJSON { diff --git a/app/javascript/mastodon/models/notification_group.ts b/app/javascript/mastodon/models/notification_group.ts index 330bba88a8..76034e644e 100644 --- a/app/javascript/mastodon/models/notification_group.ts +++ b/app/javascript/mastodon/models/notification_group.ts @@ -124,9 +124,9 @@ export function createNotificationGroupFromJSON( case 'mention': case 'poll': case 'update': { - const { status, ...groupWithoutStatus } = group; + const { status_id: statusId, ...groupWithoutStatus } = group; return { - statusId: status.id, + statusId, sampleAccountIds, ...groupWithoutStatus, }; From 2be70ae7dcf0b2482b71437fa4b818fecdf4b419 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 31 Jul 2024 09:52:59 +0200 Subject: [PATCH 039/306] [Glitch] Fix inconsistent dismiss icon for notification requests Port a50c8e951f03a8eb53957ad1c3703155b223ed24 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/notifications/request.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/features/notifications/request.jsx b/app/javascript/flavours/glitch/features/notifications/request.jsx index 4a6a189b8f..b95533aa36 100644 --- a/app/javascript/flavours/glitch/features/notifications/request.jsx +++ b/app/javascript/flavours/glitch/features/notifications/request.jsx @@ -7,9 +7,9 @@ import { Helmet } from 'react-helmet'; import { useSelector, useDispatch } from 'react-redux'; +import DeleteIcon from '@/material-icons/400-24px/delete.svg?react'; import DoneIcon from '@/material-icons/400-24px/done.svg?react'; import InventoryIcon from '@/material-icons/400-24px/inventory_2.svg?react'; -import VolumeOffIcon from '@/material-icons/400-24px/volume_off.svg?react'; import { fetchNotificationRequest, fetchNotificationsForRequest, expandNotificationsForRequest, acceptNotificationRequest, dismissNotificationRequest } from 'flavours/glitch/actions/notifications'; import Column from 'flavours/glitch/components/column'; import ColumnHeader from 'flavours/glitch/components/column_header'; @@ -101,7 +101,7 @@ export const NotificationRequest = ({ multiColumn, params: { id } }) => { showBackButton extraButton={!removed && ( <> - + )} From de1ef5b4701bcdf4c0b4802787e41ec560c613b8 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 31 Jul 2024 12:26:43 +0200 Subject: [PATCH 040/306] [Glitch] Change private mention icon for consistency in grouped notifications Port 288961bbb99b626128e4bc222deb4f749922edb8 to glitch-soc Signed-off-by: Claire --- .../notifications_v2/components/notification_mention.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/features/notifications_v2/components/notification_mention.tsx b/app/javascript/flavours/glitch/features/notifications_v2/components/notification_mention.tsx index 8d2d5a6282..2868cddde0 100644 --- a/app/javascript/flavours/glitch/features/notifications_v2/components/notification_mention.tsx +++ b/app/javascript/flavours/glitch/features/notifications_v2/components/notification_mention.tsx @@ -1,5 +1,6 @@ import { FormattedMessage } from 'react-intl'; +import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react'; import ReplyIcon from '@/material-icons/400-24px/reply-fill.svg?react'; import type { StatusVisibility } from 'flavours/glitch/api_types/statuses'; import type { NotificationGroupMention } from 'flavours/glitch/models/notification_group'; @@ -39,7 +40,7 @@ export const NotificationMention: React.FC<{ return ( Date: Wed, 31 Jul 2024 12:50:13 +0200 Subject: [PATCH 041/306] [Glitch] Change grouped notifications API shape (take 2) Port front-end changes from 549ab089eed07ee3ad90288ee5e134b4cfdc1e76 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/actions/notification_groups.ts | 12 ++++++------ app/javascript/flavours/glitch/api/notifications.ts | 13 ++++++++++--- .../flavours/glitch/api_types/notifications.ts | 8 +++++++- .../flavours/glitch/models/notification_group.ts | 5 ++--- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/notification_groups.ts b/app/javascript/flavours/glitch/actions/notification_groups.ts index 3f6d14a978..e034792275 100644 --- a/app/javascript/flavours/glitch/actions/notification_groups.ts +++ b/app/javascript/flavours/glitch/actions/notification_groups.ts @@ -38,10 +38,6 @@ function dispatchAssociatedRecords( const fetchedStatuses: ApiStatusJSON[] = []; notifications.forEach((notification) => { - if ('sample_accounts' in notification) { - fetchedAccounts.push(...notification.sample_accounts); - } - if (notification.type === 'admin.report') { fetchedAccounts.push(notification.report.target_account); } @@ -75,7 +71,9 @@ export const fetchNotifications = createDataLoadingThunk( : excludeAllTypesExcept(activeFilter), }); }, - ({ notifications }, { dispatch }) => { + ({ notifications, accounts, statuses }, { dispatch }) => { + dispatch(importFetchedAccounts(accounts)); + dispatch(importFetchedStatuses(statuses)); dispatchAssociatedRecords(dispatch, notifications); const payload: (ApiNotificationGroupJSON | NotificationGap)[] = notifications; @@ -95,7 +93,9 @@ export const fetchNotificationsGap = createDataLoadingThunk( async (params: { gap: NotificationGap }) => apiFetchNotifications({ max_id: params.gap.maxId }), - ({ notifications }, { dispatch }) => { + ({ notifications, accounts, statuses }, { dispatch }) => { + dispatch(importFetchedAccounts(accounts)); + dispatch(importFetchedStatuses(statuses)); dispatchAssociatedRecords(dispatch, notifications); return { notifications }; diff --git a/app/javascript/flavours/glitch/api/notifications.ts b/app/javascript/flavours/glitch/api/notifications.ts index fe71878822..781f4b1dde 100644 --- a/app/javascript/flavours/glitch/api/notifications.ts +++ b/app/javascript/flavours/glitch/api/notifications.ts @@ -1,17 +1,24 @@ import api, { apiRequest, getLinks } from 'flavours/glitch/api'; -import type { ApiNotificationGroupJSON } from 'flavours/glitch/api_types/notifications'; +import type { ApiNotificationGroupsResultJSON } from 'flavours/glitch/api_types/notifications'; export const apiFetchNotifications = async (params?: { exclude_types?: string[]; max_id?: string; }) => { - const response = await api().request({ + const response = await api().request({ method: 'GET', url: '/api/v2_alpha/notifications', params, }); - return { notifications: response.data, links: getLinks(response) }; + const { statuses, accounts, notification_groups } = response.data; + + return { + statuses, + accounts, + notifications: notification_groups, + links: getLinks(response), + }; }; export const apiClearNotifications = () => diff --git a/app/javascript/flavours/glitch/api_types/notifications.ts b/app/javascript/flavours/glitch/api_types/notifications.ts index ea37556d8d..3e0d43bb23 100644 --- a/app/javascript/flavours/glitch/api_types/notifications.ts +++ b/app/javascript/flavours/glitch/api_types/notifications.ts @@ -51,7 +51,7 @@ export interface BaseNotificationGroupJSON { group_key: string; notifications_count: number; type: NotificationType; - sample_accounts: ApiAccountJSON[]; + sample_account_ids: string[]; latest_page_notification_at: string; // FIXME: This will only be present if the notification group is returned in a paginated list, not requested directly most_recent_notification_id: string; page_min_id?: string; @@ -143,3 +143,9 @@ export type ApiNotificationGroupJSON = | AccountRelationshipSeveranceNotificationGroupJSON | NotificationGroupWithStatusJSON | ModerationWarningNotificationGroupJSON; + +export interface ApiNotificationGroupsResultJSON { + accounts: ApiAccountJSON[]; + statuses: ApiStatusJSON[]; + notification_groups: ApiNotificationGroupJSON[]; +} diff --git a/app/javascript/flavours/glitch/models/notification_group.ts b/app/javascript/flavours/glitch/models/notification_group.ts index 6c8b8eb6e3..448487915d 100644 --- a/app/javascript/flavours/glitch/models/notification_group.ts +++ b/app/javascript/flavours/glitch/models/notification_group.ts @@ -14,7 +14,7 @@ import type { ApiReportJSON } from 'flavours/glitch/api_types/reports'; export const NOTIFICATIONS_GROUP_MAX_AVATARS = 8; interface BaseNotificationGroup - extends Omit { + extends Omit { sampleAccountIds: string[]; } @@ -115,8 +115,7 @@ function createAccountRelationshipSeveranceEventFromJSON( export function createNotificationGroupFromJSON( groupJson: ApiNotificationGroupJSON, ): NotificationGroup { - const { sample_accounts, ...group } = groupJson; - const sampleAccountIds = sample_accounts.map((account) => account.id); + const { sample_account_ids: sampleAccountIds, ...group } = groupJson; switch (group.type) { case 'favourite': From de8a31f7df1a79f722182c7eb1f3b0faf5786b3f Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 31 Jul 2024 14:36:08 +0200 Subject: [PATCH 042/306] [Glitch] Change filtered notification banner design to take up less space Port 2c1e75727dbf84cc0c3590a0a8e53d28640b37d0 to glitch-soc Signed-off-by: Claire --- .../filtered_notifications_banner.tsx | 11 ++------- .../flavours/glitch/styles/components.scss | 23 ++++--------------- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/app/javascript/flavours/glitch/features/notifications/components/filtered_notifications_banner.tsx b/app/javascript/flavours/glitch/features/notifications/components/filtered_notifications_banner.tsx index 2be6ac8466..8aaa486b19 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/filtered_notifications_banner.tsx +++ b/app/javascript/flavours/glitch/features/notifications/components/filtered_notifications_banner.tsx @@ -49,21 +49,14 @@ export const FilteredNotificationsBanner: React.FC = () => {
-
- {toCappedNumber(policy.summary.pending_notifications_count)} -
- + {toCappedNumber(policy.summary.pending_notifications_count)}
); diff --git a/app/javascript/flavours/glitch/styles/components.scss b/app/javascript/flavours/glitch/styles/components.scss index 35342a1da4..1983050338 100644 --- a/app/javascript/flavours/glitch/styles/components.scss +++ b/app/javascript/flavours/glitch/styles/components.scss @@ -10730,25 +10730,10 @@ noscript { } &__badge { - display: flex; - align-items: center; - border-radius: 999px; - background: var(--background-border-color); - color: $darker-text-color; - padding: 4px; - padding-inline-end: 8px; - gap: 6px; - font-weight: 500; - font-size: 11px; - line-height: 16px; - word-break: keep-all; - - &__badge { - background: $ui-button-background-color; - color: $white; - border-radius: 100px; - padding: 2px 8px; - } + background: $ui-button-background-color; + color: $white; + border-radius: 100px; + padding: 2px 8px; } } From 49ad1475fba20876761a3725a7405299877607b4 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 31 Jul 2024 15:23:08 +0200 Subject: [PATCH 043/306] [Glitch] Fix issue with grouped notifications UI due to recent API change Port a50c8e951f03a8eb53957ad1c3703155b223ed24 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/api_types/notifications.ts | 2 +- app/javascript/flavours/glitch/models/notification_group.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/api_types/notifications.ts b/app/javascript/flavours/glitch/api_types/notifications.ts index 3e0d43bb23..09dc8efe31 100644 --- a/app/javascript/flavours/glitch/api_types/notifications.ts +++ b/app/javascript/flavours/glitch/api_types/notifications.ts @@ -60,7 +60,7 @@ export interface BaseNotificationGroupJSON { interface NotificationGroupWithStatusJSON extends BaseNotificationGroupJSON { type: NotificationWithStatusType; - status: ApiStatusJSON; + status_id: string; } interface NotificationWithStatusJSON extends BaseNotificationJSON { diff --git a/app/javascript/flavours/glitch/models/notification_group.ts b/app/javascript/flavours/glitch/models/notification_group.ts index 448487915d..b29ad35249 100644 --- a/app/javascript/flavours/glitch/models/notification_group.ts +++ b/app/javascript/flavours/glitch/models/notification_group.ts @@ -124,9 +124,9 @@ export function createNotificationGroupFromJSON( case 'mention': case 'poll': case 'update': { - const { status, ...groupWithoutStatus } = group; + const { status_id: statusId, ...groupWithoutStatus } = group; return { - statusId: status.id, + statusId, sampleAccountIds, ...groupWithoutStatus, }; From f6dc8ae8e39cbc626b001cd1026a6fa2de8f4215 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Aug 2024 09:41:32 +0200 Subject: [PATCH 044/306] Fix handling of long display names in notification requests (#31225) --- app/javascript/styles/mastodon/components.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index e64ebbad4b..cba6a5aa38 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -10215,6 +10215,12 @@ noscript { letter-spacing: 0.5px; line-height: 24px; color: $secondary-text-color; + + bdi { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } } .filtered-notifications-banner__badge { From 06c3a41fafacd8de16004409c47e4eaa354d26dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2024 11:13:10 +0200 Subject: [PATCH 045/306] chore(deps): update dependency rubocop to v1.65.1 (#31239) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ba8673bbf8..49bd446d9b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -614,7 +614,7 @@ GEM pundit (2.3.2) activesupport (>= 3.0.0) raabro (1.4.0) - racc (1.8.0) + racc (1.8.1) rack (2.2.9) rack-attack (6.7.0) rack (>= 1.0, < 4) @@ -698,7 +698,7 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.2) + rexml (3.3.4) strscan rotp (6.3.0) rouge (4.2.1) @@ -735,7 +735,7 @@ GEM rspec-mocks (~> 3.0) sidekiq (>= 5, < 8) rspec-support (3.13.1) - rubocop (1.65.0) + rubocop (1.65.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) From 4853a2badaef7916c90e2fc546c9d7551ce8a706 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Thu, 1 Aug 2024 11:14:24 +0200 Subject: [PATCH 046/306] Add Accept-Language header when fetching preview card (#31232) --- app/services/fetch_link_card_service.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index adabb1096e..49b8205574 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -45,7 +45,13 @@ class FetchLinkCardService < BaseService def html return @html if defined?(@html) - @html = Request.new(:get, @url).add_headers('Accept' => 'text/html', 'User-Agent' => "#{Mastodon::Version.user_agent} Bot").perform do |res| + headers = { + 'Accept' => 'text/html', + 'Accept-Language' => "#{I18n.default_locale}, *;q=0.5", + 'User-Agent' => "#{Mastodon::Version.user_agent} Bot", + } + + @html = Request.new(:get, @url).add_headers(headers).perform do |res| next unless res.code == 200 && res.mime_type == 'text/html' # We follow redirects, and ideally we want to save the preview card for From 584b1524dd64a3fb4daa4ffb80f38c522972bade Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2024 11:27:24 +0200 Subject: [PATCH 047/306] New Crowdin Translations (automated) (#31237) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 2 - app/javascript/mastodon/locales/be.json | 2 - app/javascript/mastodon/locales/bg.json | 3 +- app/javascript/mastodon/locales/br.json | 1 - app/javascript/mastodon/locales/ca.json | 3 +- app/javascript/mastodon/locales/cs.json | 2 - app/javascript/mastodon/locales/cy.json | 2 - app/javascript/mastodon/locales/da.json | 3 +- app/javascript/mastodon/locales/de.json | 3 +- app/javascript/mastodon/locales/el.json | 2 - app/javascript/mastodon/locales/en-GB.json | 2 - app/javascript/mastodon/locales/es-AR.json | 3 +- app/javascript/mastodon/locales/es-MX.json | 2 - app/javascript/mastodon/locales/es.json | 2 - app/javascript/mastodon/locales/et.json | 2 - app/javascript/mastodon/locales/eu.json | 2 - app/javascript/mastodon/locales/fi.json | 53 ++-- 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/fy.json | 2 - app/javascript/mastodon/locales/ga.json | 2 - app/javascript/mastodon/locales/gd.json | 2 - app/javascript/mastodon/locales/gl.json | 3 +- app/javascript/mastodon/locales/he.json | 3 +- app/javascript/mastodon/locales/hu.json | 2 - app/javascript/mastodon/locales/ia.json | 2 - app/javascript/mastodon/locales/ie.json | 2 - app/javascript/mastodon/locales/is.json | 3 +- app/javascript/mastodon/locales/it.json | 3 +- app/javascript/mastodon/locales/ja.json | 2 - app/javascript/mastodon/locales/ko.json | 10 +- app/javascript/mastodon/locales/la.json | 1 - app/javascript/mastodon/locales/lad.json | 1 - app/javascript/mastodon/locales/lt.json | 2 - app/javascript/mastodon/locales/lv.json | 1 - app/javascript/mastodon/locales/nl.json | 3 +- app/javascript/mastodon/locales/nn.json | 3 +- app/javascript/mastodon/locales/pl.json | 3 +- app/javascript/mastodon/locales/pt-BR.json | 2 - app/javascript/mastodon/locales/pt-PT.json | 3 +- app/javascript/mastodon/locales/ru.json | 2 - app/javascript/mastodon/locales/sc.json | 2 - app/javascript/mastodon/locales/sk.json | 1 - 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 | 2 - app/javascript/mastodon/locales/th.json | 2 - app/javascript/mastodon/locales/tr.json | 2 - app/javascript/mastodon/locales/uk.json | 2 - app/javascript/mastodon/locales/vi.json | 3 +- app/javascript/mastodon/locales/zh-CN.json | 3 +- app/javascript/mastodon/locales/zh-HK.json | 2 - app/javascript/mastodon/locales/zh-TW.json | 3 +- config/locales/activerecord.fi.yml | 6 +- config/locales/doorkeeper.fi.yml | 16 +- config/locales/doorkeeper.he.yml | 1 + config/locales/doorkeeper.ko.yml | 1 + config/locales/es-MX.yml | 16 ++ config/locales/es.yml | 16 ++ config/locales/fi.yml | 286 +++++++++---------- config/locales/ga.yml | 16 ++ config/locales/he.yml | 16 ++ config/locales/ko.yml | 16 ++ config/locales/simple_form.es-MX.yml | 1 + config/locales/simple_form.es.yml | 1 + config/locales/simple_form.fi.yml | 22 +- config/locales/simple_form.ga.yml | 1 + config/locales/simple_form.he.yml | 1 + config/locales/simple_form.ko.yml | 1 + 72 files changed, 302 insertions(+), 295 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index daafb43677..5cfd587e08 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -291,8 +291,6 @@ "filter_modal.select_filter.subtitle": "استخدم فئة موجودة أو قم بإنشاء فئة جديدة", "filter_modal.select_filter.title": "تصفية هذا المنشور", "filter_modal.title.status": "تصفية منشور", - "filtered_notifications_banner.mentions": "{count, plural, one {إشارة} two {إشارتين} few {# إشارات} other {# إشارة}}", - "filtered_notifications_banner.pending_requests": "إشعارات من {count, plural, zero {}=0 {لا أحد} one {شخص واحد قد تعرفه} two {شخصين قد تعرفهما} few {# أشخاص قد تعرفهم} many {# شخص قد تعرفهم} other {# شخص قد تعرفهم}}", "filtered_notifications_banner.title": "الإشعارات المصفاة", "firehose.all": "الكل", "firehose.local": "هذا الخادم", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 80af2a76da..bb59001273 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -293,8 +293,6 @@ "filter_modal.select_filter.subtitle": "Скарыстайцеся існуючай катэгорыяй або стварыце новую", "filter_modal.select_filter.title": "Фільтраваць гэты допіс", "filter_modal.title.status": "Фільтраваць допіс", - "filtered_notifications_banner.mentions": "{count, plural, one {згадванне} few {згадванні} many {згадванняў} other {згадвання}}", - "filtered_notifications_banner.pending_requests": "Апавяшчэнні ад {count, plural, =0 {# людзей якіх} one {# чалавека якіх} few {# чалавек якіх} many {# людзей якіх} other {# чалавека якіх}} вы магчыма ведаеце", "filtered_notifications_banner.title": "Адфільтраваныя апавяшчэнні", "firehose.all": "Усе", "firehose.local": "Гэты сервер", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index b83286bf90..657341d253 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Изберете съществуваща категория или създайте нова", "filter_modal.select_filter.title": "Филтриране на публ.", "filter_modal.title.status": "Филтриране на публ.", - "filtered_notifications_banner.mentions": "{count, plural, one {споменаване} other {споменавания}}", - "filtered_notifications_banner.pending_requests": "Известията от {count, plural, =0 {никого, когото може да познавате} one {едно лице, което може да познавате} other {# души, които може да познавате}}", + "filtered_notifications_banner.pending_requests": "От {count, plural, =0 {никого, когото може да познавате} one {едно лице, което може да познавате} other {# души, които може да познавате}}", "filtered_notifications_banner.title": "Филтрирани известия", "firehose.all": "Всичко", "firehose.local": "Този сървър", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index fb90a01cd1..b38f436316 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -252,7 +252,6 @@ "filter_modal.select_filter.subtitle": "Implijout ur rummad a zo anezhañ pe krouiñ unan nevez", "filter_modal.select_filter.title": "Silañ an toud-mañ", "filter_modal.title.status": "Silañ un toud", - "filtered_notifications_banner.mentions": "{count, plural, one {meneg} two {veneg} few {meneg} other {a venegoù}}", "firehose.all": "Pep tra", "firehose.local": "Ar servijer-mañ", "firehose.remote": "Servijerioù all", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 164a2cdb3a..6b79a8efec 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Usa una categoria existent o crea'n una de nova", "filter_modal.select_filter.title": "Filtra aquest tut", "filter_modal.title.status": "Filtra un tut", - "filtered_notifications_banner.mentions": "{count, plural, one {menció} other {mencions}}", - "filtered_notifications_banner.pending_requests": "Notificacions {count, plural, =0 {de ningú} one {d'una persona} other {de # persones}} que potser coneixes", + "filtered_notifications_banner.pending_requests": "Des {count, plural, =0 {de ningú} one {d'una persona} other {de # persones}} que potser coneixes", "filtered_notifications_banner.title": "Notificacions filtrades", "firehose.all": "Tots", "firehose.local": "Aquest servidor", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 2201e68aaa..a5c90befe3 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -293,8 +293,6 @@ "filter_modal.select_filter.subtitle": "Použít existující kategorii nebo vytvořit novou kategorii", "filter_modal.select_filter.title": "Filtrovat tento příspěvek", "filter_modal.title.status": "Filtrovat příspěvek", - "filtered_notifications_banner.mentions": "{count, plural, one {zmínka} few {zmínky} many {zmínek} other {zmínek}}", - "filtered_notifications_banner.pending_requests": "Oznámení od {count, plural, =0 {nikoho} one {jednoho člověka, kterého znáte} few {# lidí, které znáte} many {# lidí, které znáte} other {# lidí, které znáte}}", "filtered_notifications_banner.title": "Filtrovaná oznámení", "firehose.all": "Vše", "firehose.local": "Tento server", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 828896678b..45fdbfef3a 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëu un newydd", "filter_modal.select_filter.title": "Hidlo'r postiad hwn", "filter_modal.title.status": "Hidlo postiad", - "filtered_notifications_banner.mentions": "{count, plural, one {crybwylliad} other {crybwylliad}}", - "filtered_notifications_banner.pending_requests": "Hysbysiadau gan {count, plural, =0 {neb} one {un person} other {# person}} efallai y gwyddoch amdanyn nhw", "filtered_notifications_banner.title": "Hysbysiadau wedi'u hidlo", "firehose.all": "Popeth", "firehose.local": "Gweinydd hwn", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 039b088543..42deb4f425 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Vælg en eksisterende kategori eller opret en ny", "filter_modal.select_filter.title": "Filtrér dette indlæg", "filter_modal.title.status": "Filtrér et indlæg", - "filtered_notifications_banner.mentions": "{count, plural, one {omtale} other {omtaler}}", - "filtered_notifications_banner.pending_requests": "Notifikationer fra {count, plural, =0 {ingen} one {én person} other {# personer}} du måske kender", + "filtered_notifications_banner.pending_requests": "Fra {count, plural, =0 {ingen} one {én person} other {# personer}}, man måske kender", "filtered_notifications_banner.title": "Filtrerede notifikationer", "firehose.all": "Alle", "firehose.local": "Denne server", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index a4c277b8a8..d718135494 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Einem vorhandenen Filter hinzufügen oder einen neuen erstellen", "filter_modal.select_filter.title": "Diesen Beitrag filtern", "filter_modal.title.status": "Beitrag per Filter ausblenden", - "filtered_notifications_banner.mentions": "{count, plural, one {Erwähnung} other {Erwähnungen}}", - "filtered_notifications_banner.pending_requests": "Benachrichtigungen von {count, plural, =0 {keinem Profil, das du möglicherweise kennst} one {einem Profil, das du möglicherweise kennst} other {# Profilen, die du möglicherweise kennst}}", + "filtered_notifications_banner.pending_requests": "Von {count, plural, =0 {keinem, den} one {einer Person, die} other {# Personen, die}} du möglicherweise kennst", "filtered_notifications_banner.title": "Gefilterte Benachrichtigungen", "firehose.all": "Alles", "firehose.local": "Dieser Server", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index c2eb2ce904..3b181b42a6 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -293,8 +293,6 @@ "filter_modal.select_filter.subtitle": "Χρησιμοποιήστε μια υπάρχουσα κατηγορία ή δημιουργήστε μια νέα", "filter_modal.select_filter.title": "Φιλτράρισμα αυτής της ανάρτησης", "filter_modal.title.status": "Φιλτράρισμα μιας ανάρτησης", - "filtered_notifications_banner.mentions": "{count, plural, one {επισήμανση} other {επισημάνσεις}}", - "filtered_notifications_banner.pending_requests": "Ειδοποιήσεις από {count, plural, =0 {κανένα} one {ένα άτομο} other {# άτομα}} που μπορεί να ξέρεις", "filtered_notifications_banner.title": "Φιλτραρισμένες ειδοποιήσεις", "firehose.all": "Όλα", "firehose.local": "Αυτός ο διακομιστής", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 9e4331c56b..eaf4f9465b 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -293,8 +293,6 @@ "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", "filter_modal.select_filter.title": "Filter this post", "filter_modal.title.status": "Filter a post", - "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentions}}", - "filtered_notifications_banner.pending_requests": "Notifications from {count, plural, =0 {no one} one {one person} other {# people}} you may know", "filtered_notifications_banner.title": "Filtered notifications", "firehose.all": "All", "firehose.local": "This server", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 791f66e507..9a5405edbe 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", "filter_modal.select_filter.title": "Filtrar este mensaje", "filter_modal.title.status": "Filtrar un mensaje", - "filtered_notifications_banner.mentions": "{count, plural, one {mención} other {menciones}}", - "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer", + "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer", "filtered_notifications_banner.title": "Notificaciones filtradas", "firehose.all": "Todos", "firehose.local": "Este servidor", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 3adc914663..869def31a6 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", "filter_modal.select_filter.title": "Filtrar esta publicación", "filter_modal.title.status": "Filtrar una publicación", - "filtered_notifications_banner.mentions": "{count, plural, one {mención} other {menciones}}", - "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer", "filtered_notifications_banner.title": "Notificaciones filtradas", "firehose.all": "Todas", "firehose.local": "Este servidor", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 8135f9c353..41dd71c386 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", "filter_modal.select_filter.title": "Filtrar esta publicación", "filter_modal.title.status": "Filtrar una publicación", - "filtered_notifications_banner.mentions": "{count, plural, one {mención} other {menciones}}", - "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer", "filtered_notifications_banner.title": "Notificaciones filtradas", "firehose.all": "Todas", "firehose.local": "Este servidor", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 4bd997801c..7369a89c46 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -290,8 +290,6 @@ "filter_modal.select_filter.subtitle": "Kasuta olemasolevat kategooriat või loo uus", "filter_modal.select_filter.title": "Filtreeri seda postitust", "filter_modal.title.status": "Postituse filtreerimine", - "filtered_notifications_banner.mentions": "{count, plural, one {mainimine} other {mainimist}}", - "filtered_notifications_banner.pending_requests": "Teateid {count, plural, =0 {mitte üheltki} one {ühelt} other {#}} inimeselt, keda võid teada", "filtered_notifications_banner.title": "Filtreeritud teavitused", "firehose.all": "Kõik", "firehose.local": "See server", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 28c1a06d58..a4b502ccc0 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -294,8 +294,6 @@ "filter_modal.select_filter.subtitle": "Hautatu lehendik dagoen kategoria bat edo sortu berria", "filter_modal.select_filter.title": "Iragazi bidalketa hau", "filter_modal.title.status": "Iragazi bidalketa bat", - "filtered_notifications_banner.mentions": "{count, plural, one {aipamen} other {aipamen}}", - "filtered_notifications_banner.pending_requests": "Ezagutu {count, plural, =0 {dezakezun inoren} one {dezakezun pertsona baten} other {ditzakezun # pertsonen}} jakinarazpenak", "filtered_notifications_banner.title": "Iragazitako jakinarazpenak", "firehose.all": "Guztiak", "firehose.local": "Zerbitzari hau", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 168472326c..fc331809e7 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -19,7 +19,7 @@ "account.block_domain": "Estä verkkotunnus {domain}", "account.block_short": "Estä", "account.blocked": "Estetty", - "account.browse_more_on_origin_server": "Selaile kattavampaa alkuperäprofiilia", + "account.browse_more_on_origin_server": "Selaa lisää alkuperäisessä profiilissa", "account.cancel_follow_request": "Peruuta seurantapyyntö", "account.copy": "Kopioi linkki profiiliin", "account.direct": "Mainitse @{name} yksityisesti", @@ -30,7 +30,7 @@ "account.endorse": "Suosittele profiilissasi", "account.featured_tags.last_status_at": "Viimeisin julkaisu {date}", "account.featured_tags.last_status_never": "Ei julkaisuja", - "account.featured_tags.title": "Käyttäjän {name} esillä pidettävät aihetunnisteet", + "account.featured_tags.title": "{name} pitää esillä aihetunnisteita", "account.follow": "Seuraa", "account.follow_back": "Seuraa takaisin", "account.followers": "Seuraajat", @@ -68,14 +68,14 @@ "account.unblock_domain": "Kumoa verkkotunnuksen {domain} esto", "account.unblock_short": "Kumoa esto", "account.unendorse": "Kumoa suosittelu profiilissasi", - "account.unfollow": "Lopeta seuraaminen", + "account.unfollow": "Älä seuraa", "account.unmute": "Poista käyttäjän @{name} mykistys", "account.unmute_notifications_short": "Poista ilmoitusten mykistys", "account.unmute_short": "Poista mykistys", "account_note.placeholder": "Lisää muistiinpano napsauttamalla", - "admin.dashboard.daily_retention": "Käyttäjien pysyvyys rekisteröitymisen jälkeen päivittäin", - "admin.dashboard.monthly_retention": "Käyttäjien pysyvyys rekisteröitymisen jälkeen kuukausittain", - "admin.dashboard.retention.average": "Keskiarvo", + "admin.dashboard.daily_retention": "Käyttäjien pysyvyys päivittäin rekisteröitymisen jälkeen", + "admin.dashboard.monthly_retention": "Käyttäjien pysyvyys kuukausittain rekisteröitymisen jälkeen", + "admin.dashboard.retention.average": "Keskimäärin", "admin.dashboard.retention.cohort": "Rekisteröitymis-kk.", "admin.dashboard.retention.cohort_size": "Uusia käyttäjiä", "admin.impact_report.instance_accounts": "Tilien profiilit, jotka tämä poistaisi", @@ -200,7 +200,7 @@ "copy_icon_button.copied": "Sisältö kopioitiin leikepöydälle", "copypaste.copied": "Kopioitu", "copypaste.copy_to_clipboard": "Kopioi leikepöydälle", - "directory.federated": "Koko tunnettu fediversumi", + "directory.federated": "Tunnetusta fediversumista", "directory.local": "Vain palvelimelta {domain}", "directory.new_arrivals": "Äskettäin saapuneet", "directory.recently_active": "Hiljattain aktiiviset", @@ -214,7 +214,7 @@ "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.", "domain_block_modal.block": "Estä palvelin", "domain_block_modal.block_account_instead": "Estä sen sijaan @{name}", - "domain_block_modal.they_can_interact_with_old_posts": "Ihmiset tältä palvelimelta eivät voi olla vuorovaikutuksessa vanhojen julkaisujesi kanssa.", + "domain_block_modal.they_can_interact_with_old_posts": "Tämän palvelimen käyttäjät eivät voi olla vuorovaikutuksessa vanhojen julkaisujesi kanssa.", "domain_block_modal.they_cant_follow": "Kukaan tältä palvelimelta ei voi seurata sinua.", "domain_block_modal.they_wont_know": "Hän ei saa tietää tulleensa estetyksi.", "domain_block_modal.title": "Estetäänkö verkkotunnus?", @@ -228,8 +228,8 @@ "domain_pill.their_username": "Hänen yksilöllinen tunnisteensa omalla palvelimellaan. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.", "domain_pill.username": "Käyttäjänimi", "domain_pill.whats_in_a_handle": "Mitä käyttäjätunnuksessa on?", - "domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa ihmisten kanssa läpi sosiaalisen verkon, joka koostuu .", - "domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, ihmiset voivat olla vaikutuksessa kanssasi läpi sosiaalisen verkon, joka koostuu .", + "domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa ihmisten kanssa kaikkialla sosiaalisessa verkossa, joka koostuu .", + "domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, ihmiset voivat olla vaikutuksessa kanssasi kaikkialla sosiaalisessa verkossa, joka koostuu .", "domain_pill.your_handle": "Käyttäjätunnuksesi:", "domain_pill.your_server": "Digitaalinen kotisi, jossa kaikki julkaisusi sijaitsevat. Etkö pidä tästä? Siirry palvelimelta toiselle milloin tahansa ja tuo myös seuraajasi mukanasi.", "domain_pill.your_username": "Yksilöllinen tunnisteesi tällä palvelimella. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.", @@ -265,12 +265,12 @@ "empty_column.follow_requests": "Et ole vielä vastaanottanut seurantapyyntöjä. Saamasi pyynnöt näkyvät täällä.", "empty_column.followed_tags": "Et seuraa vielä yhtäkään aihetunnistetta. Kun alat seurata, ne tulevat tähän näkyviin.", "empty_column.hashtag": "Tällä aihetunnisteella ei löydy vielä sisältöä.", - "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.", + "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia käyttäjiä, niin näet enemmän sisältöä.", "empty_column.list": "Tällä listalla ei ole vielä mitään. Kun tämän listan jäsenet lähettävät uusia julkaisuja, ne näkyvät tässä.", "empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.", "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.", "empty_column.notification_requests": "Olet ajan tasalla! Täällä ei ole mitään uutta kerrottavaa. Kun saat uusia ilmoituksia, ne näkyvät täällä asetustesi mukaisesti.", - "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.", + "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun muut ovat vuorovaikutuksessa kanssasi, näet sen täällä.", "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai seuraa muiden palvelinten käyttäjiä, niin saat sisältöä", "error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.", "error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.", @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Käytä olemassa olevaa luokkaa tai luo uusi", "filter_modal.select_filter.title": "Suodata tämä julkaisu", "filter_modal.title.status": "Suodata julkaisu", - "filtered_notifications_banner.mentions": "{count, plural, one {maininta} other {mainintaa}}", - "filtered_notifications_banner.pending_requests": "Ilmoituksia {count, plural, =0 {ei ole} one {1 henkilöltä} other {# henkilöltä}}, jonka saatat tuntea", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Ei keneltäkään} one {Yhdeltä henkilöltä} other {# henkilöltä}}, jonka saatat tuntea", "filtered_notifications_banner.title": "Suodatetut ilmoitukset", "firehose.all": "Kaikki", "firehose.local": "Tämä palvelin", @@ -312,9 +311,9 @@ "follow_suggestions.curated_suggestion": "Ehdotus ylläpidolta", "follow_suggestions.dismiss": "Älä näytä uudelleen", "follow_suggestions.featured_longer": "Palvelimen {domain} tiimin poimintoja", - "follow_suggestions.friends_of_friends_longer": "Suosittu seuraamiesi ihmisten keskuudessa", + "follow_suggestions.friends_of_friends_longer": "Suosittu seuraamiesi käyttäjien joukossa", "follow_suggestions.hints.featured": "Tämän profiilin on valinnut palvelimen {domain} tiimi.", - "follow_suggestions.hints.friends_of_friends": "Seuraamasi käyttäjät suosivat tätä profiilia.", + "follow_suggestions.hints.friends_of_friends": "Tämä profiili on suosittu seuraamiesi käyttäjien joukossa.", "follow_suggestions.hints.most_followed": "Tämä profiili on palvelimen {domain} seuratuimpia.", "follow_suggestions.hints.most_interactions": "Tämä profiili on viime aikoina saanut paljon huomiota palvelimella {domain}.", "follow_suggestions.hints.similar_to_recently_followed": "Tämä profiili on samankaltainen kuin profiilit, joita olet viimeksi seurannut.", @@ -431,7 +430,7 @@ "lists.replies_policy.list": "Listan jäsenille", "lists.replies_policy.none": "Ei kellekään", "lists.replies_policy.title": "Näytä vastaukset:", - "lists.search": "Hae seuraamistasi henkilöistä", + "lists.search": "Hae seuraamistasi käyttäjistä", "lists.subheading": "Omat listasi", "load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}", "loading_indicator.label": "Ladataan…", @@ -501,7 +500,7 @@ "notification.relationships_severance_event.account_suspension": "Palvelimen {from} ylläpitäjä on jäädyttänyt palvelimen {target} vuorovaikutuksen. Enää et voi siis vastaanottaa päivityksiä heiltä tai olla yhteyksissä heidän kanssaan.", "notification.relationships_severance_event.domain_block": "Palvelimen {from} ylläpitäjä on estänyt palvelimen {target} vuorovaikutuksen – mukaan lukien {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.", "notification.relationships_severance_event.learn_more": "Lue lisää", - "notification.relationships_severance_event.user_domain_block": "Olet estänyt palvelimen {target}, mikä poisti {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.", + "notification.relationships_severance_event.user_domain_block": "Olet estänyt verkkotunnuksen {target}, mikä poisti {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.", "notification.status": "{name} julkaisi juuri", "notification.update": "{name} muokkasi julkaisua", "notification_requests.accept": "Hyväksy", @@ -534,10 +533,10 @@ "notifications.filter.all": "Kaikki", "notifications.filter.boosts": "Tehostukset", "notifications.filter.favourites": "Suosikit", - "notifications.filter.follows": "Seuraa", + "notifications.filter.follows": "Seuratut", "notifications.filter.mentions": "Maininnat", "notifications.filter.polls": "Äänestyksen tulokset", - "notifications.filter.statuses": "Päivitykset henkilöiltä, joita seuraat", + "notifications.filter.statuses": "Päivitykset seuraamiltasi käyttäjiltä", "notifications.grant_permission": "Myönnä käyttöoikeus.", "notifications.group": "{count} ilmoitusta", "notifications.mark_as_read": "Merkitse jokainen ilmoitus luetuksi", @@ -547,9 +546,9 @@ "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viime päivän} other {viimeisen # päivän}} aikana", "notifications.policy.filter_new_accounts_title": "Uudet tilit", "notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivää}} sinua seuranneet", - "notifications.policy.filter_not_followers_title": "Henkilöt, jotka eivät seuraa sinua", + "notifications.policy.filter_not_followers_title": "Käyttäjät, jotka eivät seuraa sinua", "notifications.policy.filter_not_following_hint": "Kunnes hyväksyt heidät manuaalisesti", - "notifications.policy.filter_not_following_title": "Henkilöt, joita et seuraa", + "notifications.policy.filter_not_following_title": "Käyttäjät, joita et seuraa", "notifications.policy.filter_private_mentions_hint": "Suodatetaan, ellei se ole vastaus omaan mainintaasi tai ellet seuraa lähettäjää", "notifications.policy.filter_private_mentions_title": "Ei-toivotut yksityismaininnat", "notifications.policy.title": "Suodata ilmoitukset pois kohteesta…", @@ -619,7 +618,7 @@ "privacy.unlisted.short": "Vaivihkaisesti julkinen", "privacy_policy.last_updated": "Päivitetty viimeksi {date}", "privacy_policy.title": "Tietosuojakäytäntö", - "recommended": "Suositeltu", + "recommended": "Suositellaan", "refresh": "Päivitä", "regeneration_indicator.label": "Ladataan…", "regeneration_indicator.sublabel": "Kotisyötettäsi valmistellaan!", @@ -790,10 +789,10 @@ "time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä", "time_remaining.moments": "Hetkiä jäljellä", "time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä", - "timeline_hint.remote_resource_not_displayed": "Muiden palvelinten {resource}-tietoa ei näytetä täällä.", - "timeline_hint.resources.followers": "Seuraajat", - "timeline_hint.resources.follows": "seurattua", - "timeline_hint.resources.statuses": "Vanhemmat julkaisut", + "timeline_hint.remote_resource_not_displayed": "Muiden palvelinten {resource} eivät näy tässä.", + "timeline_hint.resources.followers": "seuraajat", + "timeline_hint.resources.follows": "seuratut", + "timeline_hint.resources.statuses": "vanhemmat julkaisut", "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} {days, plural, one {viime päivänä} other {viimeisenä {days} päivänä}}", "trends.trending_now": "Suosittua nyt", "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 9f1abebad9..3907051468 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Brúka ein verandi bólk ella skapa ein nýggjan", "filter_modal.select_filter.title": "Filtrera hendan postin", "filter_modal.title.status": "Filtrera ein post", - "filtered_notifications_banner.mentions": "{count, plural, one {umrøða} other {umrøður}}", - "filtered_notifications_banner.pending_requests": "Fráboðanir frá {count, plural, =0 {ongum} one {einum persóni} other {# persónum}}, sum tú kanska kennir", "filtered_notifications_banner.title": "Sáldaðar fráboðanir", "firehose.all": "Allar", "firehose.local": "Hesin ambætarin", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index b4e519303c..ad442df778 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -297,7 +297,6 @@ "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle", "filter_modal.select_filter.title": "Filtrer cette publication", "filter_modal.title.status": "Filtrer une publication", - "filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {d’une personne} other {de # personnes}} que vous pouvez connaitre", "filtered_notifications_banner.title": "Notifications filtrées", "firehose.all": "Tout", "firehose.local": "Ce serveur", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 8aeb59f79f..b849ab8f87 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -297,7 +297,6 @@ "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle", "filter_modal.select_filter.title": "Filtrer ce message", "filter_modal.title.status": "Filtrer un message", - "filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {d’une personne} other {de # personnes}} que vous pouvez connaitre", "filtered_notifications_banner.title": "Notifications filtrées", "firehose.all": "Tout", "firehose.local": "Ce serveur", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 093298f156..3045def028 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -290,8 +290,6 @@ "filter_modal.select_filter.subtitle": "In besteande kategory brûke of in nije oanmeitsje", "filter_modal.select_filter.title": "Dit berjocht filterje", "filter_modal.title.status": "In berjocht filterje", - "filtered_notifications_banner.mentions": "{count, plural, one {fermelding} other {fermeldingen}}", - "filtered_notifications_banner.pending_requests": "Meldingen fan {count, plural, =0 {net ien} one {ien persoan} other {# minsken}} dy’t jo miskien kenne", "filtered_notifications_banner.title": "Filtere meldingen", "firehose.all": "Alles", "firehose.local": "Dizze server", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 9f5f8c773f..3880ab0daa 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Bain úsáid as catagóir reatha nó cruthaigh ceann nua", "filter_modal.select_filter.title": "Déan scagadh ar an bpostáil seo", "filter_modal.title.status": "Déan scagadh ar phostáil", - "filtered_notifications_banner.mentions": "{count, plural, one {tagairt} other {tagairtí}}", - "filtered_notifications_banner.pending_requests": "Fógraí ó {count, plural, =0 {duine ar bith} one {duine amháin} two {# daoine} few {# daoine} many {# daoine} other {# daoine}} b'fhéidir go mbeadh a fhios agat", "filtered_notifications_banner.title": "Fógraí scagtha", "firehose.all": "Gach", "firehose.local": "An freastalaí seo", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index a4db109348..846c96b2d6 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -290,8 +290,6 @@ "filter_modal.select_filter.subtitle": "Cleachd roinn-seòrsa a tha ann no cruthaich tè ùr", "filter_modal.select_filter.title": "Criathraich am post seo", "filter_modal.title.status": "Criathraich post", - "filtered_notifications_banner.mentions": "{count, plural, one {iomradh} two {iomradh} few {iomraidhean} other {iomradh}}", - "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Chan eil brath ann o dhaoine} one {Tha brathan ann o # neach} two {Tha brathan ann o # neach} few {Tha brathan ann o # daoine} other {Tha brathan ann o # duine}} air a bheil thu eòlach ’s dòcha", "filtered_notifications_banner.title": "Brathan criathraichte", "firehose.all": "Na h-uile", "firehose.local": "Am frithealaiche seo", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index a60fa91504..ddbf6fa273 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Usar unha categoría existente ou crear unha nova", "filter_modal.select_filter.title": "Filtrar esta publicación", "filter_modal.title.status": "Filtrar unha publicación", - "filtered_notifications_banner.mentions": "{count, plural, one {mención} other {mencións}}", - "filtered_notifications_banner.pending_requests": "Notificacións de {count, plural, =0 {ninguén} one {unha persoa} other {# persoas}} que poderías coñecer", + "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {ninguén} one {unha persoa} other {# persoas}} que igual coñeces", "filtered_notifications_banner.title": "Notificacións filtradas", "firehose.all": "Todo", "firehose.local": "Este servidor", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index eedbc35ff5..0734a9b022 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "שימוש בקטגורייה קיימת או יצירת אחת חדשה", "filter_modal.select_filter.title": "סינון ההודעה הזו", "filter_modal.title.status": "סנן הודעה", - "filtered_notifications_banner.mentions": "{count, plural, one {איזכור} other {איזכורים} two {איזכוריים}}", - "filtered_notifications_banner.pending_requests": "{count, plural,=0 {אין התראות ממשתמשים ה}one {התראה אחת ממישהו/מישהי ה}two {יש התראותיים ממשתמשים }other {יש # התראות ממשתמשים }}מוכרים לך", + "filtered_notifications_banner.pending_requests": "{count, plural,=0 {אין בקשות ממשתמשים }one {בקשה אחת ממישהו/מישהי }two {יש בקשותיים ממשתמשים }other {יש # בקשות ממשתמשים }}שאולי מוכרים לך", "filtered_notifications_banner.title": "התראות מסוננות", "firehose.all": "הכל", "firehose.local": "שרת זה", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 88eeeff952..967efd8d0c 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Válassz egy meglévő kategóriát, vagy hozz létre egy újat", "filter_modal.select_filter.title": "E bejegyzés szűrése", "filter_modal.title.status": "Egy bejegyzés szűrése", - "filtered_notifications_banner.mentions": "{count, plural, one {említés} other {említés}}", - "filtered_notifications_banner.pending_requests": "Értesítések {count, plural, =0 {nincsenek} one {egy valósztínűleg ismerős személytől} other {# valószínűleg ismerős személytől}}", "filtered_notifications_banner.title": "Szűrt értesítések", "firehose.all": "Összes", "firehose.local": "Ez a kiszolgáló", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index f8253865ae..60838c3a5d 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -298,8 +298,6 @@ "filter_modal.select_filter.subtitle": "Usa un categoria existente o crea un nove", "filter_modal.select_filter.title": "Filtrar iste message", "filter_modal.title.status": "Filtrar un message", - "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentiones}}", - "filtered_notifications_banner.pending_requests": "Notificationes ab {count, plural, =0 {nemo} one {un persona} other {# personas}} tu poterea cognoscer", "filtered_notifications_banner.title": "Notificationes filtrate", "firehose.all": "Toto", "firehose.local": "Iste servitor", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index d672b04221..27519b4776 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -290,8 +290,6 @@ "filter_modal.select_filter.subtitle": "Usar un existent categorie o crear nov", "filter_modal.select_filter.title": "Filtrar ti-ci posta", "filter_modal.title.status": "Filtrar un posta", - "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentiones}}", - "filtered_notifications_banner.pending_requests": "Notificationes de {count, plural, =0 {nequi} one {un person} other {# persones}} quel tu possibilmen conosse", "filtered_notifications_banner.title": "Filtrat notificationes", "firehose.all": "Omno", "firehose.local": "Ti-ci servitor", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index f145817c52..99d2d98faf 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Notaðu fyrirliggjandi flokk eða útbúðu nýjan", "filter_modal.select_filter.title": "Sía þessa færslu", "filter_modal.title.status": "Sía færslu", - "filtered_notifications_banner.mentions": "{count, plural, one {tilvísun} other {tilvísanir}}", - "filtered_notifications_banner.pending_requests": "Tilkynningar frá {count, plural, =0 {engum} one {einum aðila} other {# aðilum}} sem þú gætir þekkt", + "filtered_notifications_banner.pending_requests": "Frá {count, plural, =0 {engum} one {einum aðila} other {# manns}} sem þú gætir þekkt", "filtered_notifications_banner.title": "Síaðar tilkynningar", "firehose.all": "Allt", "firehose.local": "þessum netþjóni", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 6e37961e12..b3194e6a10 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Usa una categoria esistente o creane una nuova", "filter_modal.select_filter.title": "Filtra questo post", "filter_modal.title.status": "Filtra un post", - "filtered_notifications_banner.mentions": "{count, plural, one {menzione} other {menzioni}}", - "filtered_notifications_banner.pending_requests": "Notifiche da {count, plural, =0 {nessuno} one {una persona} other {# persone}} che potresti conoscere", + "filtered_notifications_banner.pending_requests": "Da {count, plural, =0 {nessuno} one {una persona} other {# persone}} che potresti conoscere", "filtered_notifications_banner.title": "Notifiche filtrate", "firehose.all": "Tutto", "firehose.local": "Questo server", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index a5b2c5b4d9..77a5018430 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -293,8 +293,6 @@ "filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します", "filter_modal.select_filter.title": "この投稿をフィルターする", "filter_modal.title.status": "投稿をフィルターする", - "filtered_notifications_banner.mentions": "{count, plural, one {メンション} other {メンション}}", - "filtered_notifications_banner.pending_requests": "{count, plural, =0 {通知がブロックされているアカウントはありません} other {#アカウントからの通知がブロックされています}}", "filtered_notifications_banner.title": "保留中の通知", "firehose.all": "すべて", "firehose.local": "このサーバー", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index c36ba0c647..4f70e3bcf2 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "차단", "confirmations.delete.confirm": "삭제", "confirmations.delete.message": "정말로 이 게시물을 삭제하시겠습니까?", + "confirmations.delete.title": "게시물을 삭제할까요?", "confirmations.delete_list.confirm": "삭제", "confirmations.delete_list.message": "정말로 이 리스트를 영구적으로 삭제하시겠습니까?", + "confirmations.delete_list.title": "리스트를 삭제할까요?", "confirmations.discard_edit_media.confirm": "저장 안함", "confirmations.discard_edit_media.message": "미디어 설명이나 미리보기에 대한 저장하지 않은 변경사항이 있습니다. 버리시겠습니까?", "confirmations.edit.confirm": "수정", "confirmations.edit.message": "지금 편집하면 작성 중인 메시지를 덮어씁니다. 진행이 확실한가요?", + "confirmations.edit.title": "게시물을 덮어쓸까요?", "confirmations.logout.confirm": "로그아웃", "confirmations.logout.message": "정말로 로그아웃 하시겠습니까?", + "confirmations.logout.title": "로그아웃 할까요?", "confirmations.mute.confirm": "뮤트", "confirmations.redraft.confirm": "삭제하고 다시 쓰기", "confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.", + "confirmations.redraft.title": "삭제하고 다시 작성할까요?", "confirmations.reply.confirm": "답글", "confirmations.reply.message": "지금 답장하면 작성 중인 메시지를 덮어쓰게 됩니다. 정말 진행합니까?", + "confirmations.reply.title": "게시물을 덮어쓸까요?", "confirmations.unfollow.confirm": "팔로우 해제", "confirmations.unfollow.message": "정말로 {name} 님을 팔로우 해제하시겠습니까?", + "confirmations.unfollow.title": "사용자를 언팔로우 할까요?", "conversation.delete": "대화 삭제", "conversation.mark_as_read": "읽은 상태로 표시", "conversation.open": "대화 보기", @@ -293,8 +300,6 @@ "filter_modal.select_filter.subtitle": "기존의 카테고리를 사용하거나 새로 하나를 만듧니다", "filter_modal.select_filter.title": "이 게시물을 필터", "filter_modal.title.status": "게시물 필터", - "filtered_notifications_banner.mentions": "{count, plural, other {멘션}}", - "filtered_notifications_banner.pending_requests": "알 수도 있는 {count, plural, =0 {0 명} one {한 명} other {# 명}}의 사람들로부터의 알림", "filtered_notifications_banner.title": "걸러진 알림", "firehose.all": "모두", "firehose.local": "이 서버", @@ -495,6 +500,7 @@ "notification_requests.title": "걸러진 알림", "notifications.clear": "알림 비우기", "notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?", + "notifications.clear_title": "알림을 모두 지울까요?", "notifications.column_settings.admin.report": "새 신고:", "notifications.column_settings.admin.sign_up": "새로운 가입:", "notifications.column_settings.alert": "데스크탑 알림", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index e35e7112be..1e2d54396a 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -82,7 +82,6 @@ "empty_column.notification_requests": "Omnia clara sunt! Nihil hic est. Cum novās notificātiōnēs accipīs, hic secundum tua praecepta apparebunt.", "empty_column.notifications": "Nōn adhūc habēs ullo notificātiōnēs. Cum aliī tē interagunt, hīc videbis.", "explore.trending_statuses": "Contributa", - "filtered_notifications_banner.mentions": "{count, plural, one {mentiō} other {mentiōnēs}}", "firehose.all": "Omnis", "footer.about": "De", "generic.saved": "Servavit", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index bbbcee886f..96ca615e21 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -278,7 +278,6 @@ "filter_modal.select_filter.subtitle": "Kulanea una kategoria egzistente o kriya mueva", "filter_modal.select_filter.title": "Filtra esta publikasyon", "filter_modal.title.status": "Filtra una publikasyon", - "filtered_notifications_banner.pending_requests": "Avizos de {count, plural, =0 {dingun} one {una persona} other {# personas}} ke puedes koneser", "filtered_notifications_banner.title": "Avizos filtrados", "firehose.all": "Todo", "firehose.local": "Este sirvidor", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 04d2c3c8e4..2d3626ff9a 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Naudok esamą kategoriją arba sukurk naują.", "filter_modal.select_filter.title": "Filtruoti šį įrašą", "filter_modal.title.status": "Filtruoti įrašą", - "filtered_notifications_banner.mentions": "{count, plural, one {paminėjimas} few {paminėjimai} many {paminėjimo} other {paminėjimų}}", - "filtered_notifications_banner.pending_requests": "Pranešimai iš {count, plural, =0 {nė vieno} one {vienos žmogaus} few {# žmonių} many {# žmonių} other {# žmonių}}, kuriuos galbūt pažįsti", "filtered_notifications_banner.title": "Filtruojami pranešimai", "firehose.all": "Visi", "firehose.local": "Šis serveris", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 42079f222f..86ed6262a9 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -268,7 +268,6 @@ "filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu", "filter_modal.select_filter.title": "Filtrēt šo ziņu", "filter_modal.title.status": "Filtrēt ziņu", - "filtered_notifications_banner.pending_requests": "Paziņojumi no {count, plural, =0 {neviena} one {viena cilvēka} other {# cilvēkiem}}, ko Tu varētu zināt", "firehose.all": "Visi", "firehose.local": "Šis serveris", "firehose.remote": "Citi serveri", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 100396456d..803070a094 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Een bestaande categorie gebruiken of een nieuwe aanmaken", "filter_modal.select_filter.title": "Dit bericht filteren", "filter_modal.title.status": "Een bericht filteren", - "filtered_notifications_banner.mentions": "{count, plural, one {vermelding} other {vermeldingen}}", - "filtered_notifications_banner.pending_requests": "Meldingen van {count, plural, =0 {niemand} one {één persoon} other {# mensen}} die je misschien kent", + "filtered_notifications_banner.pending_requests": "Van {count, plural, =0 {niemand} one {een persoon} other {# personen}} die je mogelijk kent", "filtered_notifications_banner.title": "Gefilterde meldingen", "firehose.all": "Alles", "firehose.local": "Deze server", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 66c85e64a8..26973f830f 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -293,8 +293,7 @@ "filter_modal.select_filter.subtitle": "Bruk ein eksisterande kategori eller opprett ein ny", "filter_modal.select_filter.title": "Filtrer dette innlegget", "filter_modal.title.status": "Filtrer eit innlegg", - "filtered_notifications_banner.mentions": "{count, plural, one {omtale} other {omtaler}}", - "filtered_notifications_banner.pending_requests": "Varsel frå {count, plural, =0 {ingen} one {ein person} other {# folk}} du kanskje kjenner", + "filtered_notifications_banner.pending_requests": "Frå {count, plural, =0 {ingen} one {éin person} other {# personar}} du kanskje kjenner", "filtered_notifications_banner.title": "Filtrerte varslingar", "firehose.all": "Alle", "firehose.local": "Denne tenaren", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 5f8467f23c..efd2d2c156 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Użyj istniejącej kategorii lub utwórz nową", "filter_modal.select_filter.title": "Filtruj ten wpis", "filter_modal.title.status": "Filtruj wpis", - "filtered_notifications_banner.mentions": "{count, plural, one {wzmianka} few {wzmianki} other {wzmianek}}", - "filtered_notifications_banner.pending_requests": "Powiadomienia od {count, plural, =0 {żadnej osoby którą możesz znać} one {# osoby którą możesz znać} other {# osób które możesz znać}}", + "filtered_notifications_banner.pending_requests": "Od {count, plural, =0 {żadnej osoby którą możesz znać} one {# osoby którą możesz znać} other {# osób które możesz znać}}", "filtered_notifications_banner.title": "Powiadomienia filtrowane", "firehose.all": "Wszystko", "firehose.local": "Ten serwer", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 072cbf82cb..3f831dba25 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -297,8 +297,6 @@ "filter_modal.select_filter.subtitle": "Use uma categoria existente ou crie uma nova", "filter_modal.select_filter.title": "Filtrar esta publicação", "filter_modal.title.status": "Filtrar uma publicação", - "filtered_notifications_banner.mentions": "{count, plural, one {menção} other {menções}}", - "filtered_notifications_banner.pending_requests": "Notificações de {count, plural, =0 {no one} one {one person} other {# people}} que você talvez conheça", "filtered_notifications_banner.title": "Notificações filtradas", "firehose.all": "Tudo", "firehose.local": "Este servidor", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 8cfd373837..42b9e7c9ec 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Utilize uma categoria existente ou crie uma nova", "filter_modal.select_filter.title": "Filtrar esta publicação", "filter_modal.title.status": "Filtrar uma publicação", - "filtered_notifications_banner.mentions": "{count, plural, one {menção} other {menções}}", - "filtered_notifications_banner.pending_requests": "Notificações de {count, plural, =0 {ninguém} one {uma pessoa} other {# pessoas}} que talvez conheça", + "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {ninguém} one {uma pessoa} other {# pessoas}} que pode conhecer", "filtered_notifications_banner.title": "Notificações filtradas", "firehose.all": "Todas", "firehose.local": "Este servidor", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 0915565442..61395c17ab 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -290,8 +290,6 @@ "filter_modal.select_filter.subtitle": "Используйте существующую категорию или создайте новую", "filter_modal.select_filter.title": "Фильтровать этот пост", "filter_modal.title.status": "Фильтровать пост", - "filtered_notifications_banner.mentions": "{count, plural, one {упоминание} other {упоминания}}", - "filtered_notifications_banner.pending_requests": "Уведомления от {count, plural, =0 {никого} one {# человека} other {# других людей, с кем вы можете быть знакомы}}", "filtered_notifications_banner.title": "Отфильтрованные уведомления", "firehose.all": "Все", "firehose.local": "Текущий сервер", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 0bba96e74b..050e1e6fae 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -241,8 +241,6 @@ "filter_modal.select_filter.subtitle": "Imprea una categoria chi esistit giai o crea·nde una", "filter_modal.select_filter.title": "Filtra custa publicatzione", "filter_modal.title.status": "Filtra una publicatzione", - "filtered_notifications_banner.mentions": "{count, plural, one {mèntovu} other {mèntovos}}", - "filtered_notifications_banner.pending_requests": "Notìficas dae {count, plural, =0 {nemos} one {una persone} other {# persones}} chi connosches", "filtered_notifications_banner.title": "Notìficas filtradas", "firehose.all": "Totus", "firehose.local": "Custu serbidore", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index e10d423a0f..2127ab2efb 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -285,7 +285,6 @@ "filter_modal.select_filter.subtitle": "Použite existujúcu kategóriu alebo vytvorte novú", "filter_modal.select_filter.title": "Filtrovanie tohto príspevku", "filter_modal.title.status": "Filtrovanie príspevku", - "filtered_notifications_banner.pending_requests": "Oboznámenia od {count, plural, =0 {nikoho} one {jedného človeka} other {# ľudí}} čo môžeš poznať", "filtered_notifications_banner.title": "Filtrované oznámenia", "firehose.all": "Všetko", "firehose.local": "Tento server", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 4109dfee85..77bd899ad8 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -293,8 +293,6 @@ "filter_modal.select_filter.subtitle": "Uporabite obstoječo kategorijo ali ustvarite novo", "filter_modal.select_filter.title": "Filtriraj to objavo", "filter_modal.title.status": "Filtrirajte objavo", - "filtered_notifications_banner.mentions": "{count, plural, one {omemba} two {omembi} few {omembe} other {omemb}}", - "filtered_notifications_banner.pending_requests": "Obvestila od {count, plural, =0 {nikogar, ki bi ga} one {# človeka, ki bi ga} two {# ljudi, ki bi ju} few {# ljudi, ki bi jih} other {# ljudi, ki bi jih}} lahko poznali", "filtered_notifications_banner.title": "Filtrirana obvestila", "firehose.all": "Vse", "firehose.local": "Ta strežnik", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 279bc09715..a9a98e239d 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Përdorni një kategori ekzistuese, ose krijoni një të re", "filter_modal.select_filter.title": "Filtroje këtë postim", "filter_modal.title.status": "Filtroni një postim", - "filtered_notifications_banner.mentions": "{count, plural, one {përmendje} other {përmendje}}", - "filtered_notifications_banner.pending_requests": "Njoftime prej {count, plural, =0 {askujt} one {një personi} other {# vetësh}} që mund të njihni", "filtered_notifications_banner.title": "Njoftime të filtruar", "firehose.all": "Krejt", "firehose.local": "Këtë shërbyes", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 3167f4a815..a58376af04 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -293,8 +293,6 @@ "filter_modal.select_filter.subtitle": "Koristite postojeću kategoriju ili kreirajte novu", "filter_modal.select_filter.title": "Filtriraj ovu objavu", "filter_modal.title.status": "Filtriraj objavu", - "filtered_notifications_banner.mentions": "{count, plural, one {pominjanje} few {pominjanja} other {pominjanja}}", - "filtered_notifications_banner.pending_requests": "Obaveštenja od {count, plural, =0 {nikoga koga možda poznajete} one {# osobe koju možda poznajete} few {# osobe koje možda poznajete} other {# osoba koje možda poznajete}}", "filtered_notifications_banner.title": "Filtrirana obaveštenja", "firehose.all": "Sve", "firehose.local": "Ovaj server", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 8729fa59dd..2c9948299d 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -293,8 +293,6 @@ "filter_modal.select_filter.subtitle": "Користите постојећу категорију или креирајте нову", "filter_modal.select_filter.title": "Филтрирај ову објаву", "filter_modal.title.status": "Филтрирај објаву", - "filtered_notifications_banner.mentions": "{count, plural, one {помињање} few {помињања} other {помињања}}", - "filtered_notifications_banner.pending_requests": "Обавештења од {count, plural, =0 {никога кога можда познајете} one {# особе коју можда познајете} few {# особе које можда познајете} other {# особа које можда познајете}}", "filtered_notifications_banner.title": "Филтрирана обавештења", "firehose.all": "Све", "firehose.local": "Овај сервер", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 096de0f42e..b3f70cf2ed 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Använd en befintlig kategori eller skapa en ny", "filter_modal.select_filter.title": "Filtrera detta inlägg", "filter_modal.title.status": "Filtrera ett inlägg", - "filtered_notifications_banner.mentions": "{count, plural, one {omnämning} other {omnämnanden}}", - "filtered_notifications_banner.pending_requests": "Aviseringar från {count, plural, =0 {ingen} one {en person} other {# personer}} du kanske känner", "filtered_notifications_banner.title": "Filtrerade aviseringar", "firehose.all": "Allt", "firehose.local": "Denna server", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 99300b86db..b4d259f174 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "ใช้หมวดหมู่ที่มีอยู่หรือสร้างหมวดหมู่ใหม่", "filter_modal.select_filter.title": "กรองโพสต์นี้", "filter_modal.title.status": "กรองโพสต์", - "filtered_notifications_banner.mentions": "{count, plural, other {การกล่าวถึง}}", - "filtered_notifications_banner.pending_requests": "การแจ้งเตือนจาก {count, plural, =0 {ไม่มีใคร} other {# คน}} ที่คุณอาจรู้จัก", "filtered_notifications_banner.title": "การแจ้งเตือนที่กรองอยู่", "firehose.all": "ทั้งหมด", "firehose.local": "เซิร์ฟเวอร์นี้", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 1bb22da225..3b8238fe06 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Mevcut bir kategoriyi kullan veya yeni bir tane oluştur", "filter_modal.select_filter.title": "Bu gönderiyi süzgeçle", "filter_modal.title.status": "Bir gönderi süzgeçle", - "filtered_notifications_banner.mentions": "{count, plural, one {bahsetme} other {bahsetme}}", - "filtered_notifications_banner.pending_requests": "Bildiğiniz {count, plural, =0 {hiç kimseden} one {bir kişiden} other {# kişiden}} bildirim", "filtered_notifications_banner.title": "Filtrelenmiş bildirimler", "firehose.all": "Tümü", "firehose.local": "Bu sunucu", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index dd91e0e77a..9535f1f445 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -300,8 +300,6 @@ "filter_modal.select_filter.subtitle": "Використати наявну категорію або створити нову", "filter_modal.select_filter.title": "Фільтрувати цей допис", "filter_modal.title.status": "Фільтрувати допис", - "filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentions}}", - "filtered_notifications_banner.pending_requests": "Сповіщення від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати", "filtered_notifications_banner.title": "Відфільтровані сповіщення", "firehose.all": "Всі", "firehose.local": "Цей сервер", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 3001675498..a3cec8185d 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "Sử dụng một danh mục hiện có hoặc tạo một danh mục mới", "filter_modal.select_filter.title": "Lọc tút này", "filter_modal.title.status": "Lọc một tút", - "filtered_notifications_banner.mentions": "{count, plural, other {lượt nhắc}}", - "filtered_notifications_banner.pending_requests": "Thông báo từ {count, plural, =0 {không ai} other {# người}} bạn có thể biết", + "filtered_notifications_banner.pending_requests": "Từ {count, plural, =0 {không ai} other {# người}} bạn có thể biết", "filtered_notifications_banner.title": "Thông báo đã lọc", "firehose.all": "Toàn bộ", "firehose.local": "Máy chủ này", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 6e6d6d5d37..1095502fb9 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "使用一个已存在类别,或创建一个新类别", "filter_modal.select_filter.title": "过滤此嘟文", "filter_modal.title.status": "过滤一条嘟文", - "filtered_notifications_banner.mentions": "{count, plural, other {提及}}", - "filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}的通知", + "filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}", "filtered_notifications_banner.title": "通知(已过滤)", "firehose.all": "全部", "firehose.local": "此服务器", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 58a3a33999..f5a7c31a21 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -290,8 +290,6 @@ "filter_modal.select_filter.subtitle": "使用既有類別,或創建一個新類別", "filter_modal.select_filter.title": "過濾此帖文", "filter_modal.title.status": "過濾一則帖文", - "filtered_notifications_banner.mentions": "{count, plural, one {則提及} other {則提及}}", - "filtered_notifications_banner.pending_requests": "來自 {count, plural, =0 {0 位} other {# 位}}你可能認識的人的通知", "filtered_notifications_banner.title": "已過濾之通知", "firehose.all": "全部", "firehose.local": "本伺服器", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 4cdf640fe1..bd4f89169f 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -300,8 +300,7 @@ "filter_modal.select_filter.subtitle": "使用既有的類別或是新增", "filter_modal.select_filter.title": "過濾此嘟文", "filter_modal.title.status": "過濾一則嘟文", - "filtered_notifications_banner.mentions": "{count, plural, other {# 則提及}}", - "filtered_notifications_banner.pending_requests": "來自您可能認識的 {count, plural, =0 {0 人} other {# 人}} 之通知", + "filtered_notifications_banner.pending_requests": "來自您可能認識的 {count, plural, =0 {0 人} other {# 人}}", "filtered_notifications_banner.title": "已過濾之通知", "firehose.all": "全部", "firehose.local": "本站", diff --git a/config/locales/activerecord.fi.yml b/config/locales/activerecord.fi.yml index b731de6d3c..9da69b7dbd 100644 --- a/config/locales/activerecord.fi.yml +++ b/config/locales/activerecord.fi.yml @@ -40,15 +40,15 @@ fi: user: attributes: email: - blocked: käyttää kiellettyä sähköpostipalvelun tarjoajaa + blocked: käyttää kiellettyä sähköpostipalveluntarjoajaa unreachable: ei näytä olevan olemassa role_id: elevated: ei voi olla korkeampi kuin nykyinen roolisi user_role: attributes: permissions_as_keys: - dangerous: sisältää oikeuksia, jotka eivät ole turvallisia perusroolille - elevated: ei voi sisältää oikeuksia, joita nykyisellä roolillasi ei ole + dangerous: sisällytä käyttöoikeuksia, jotka eivät ole turvallisia perusroolille + elevated: ei voi sisältää käyttöoikeuksia, joita nykyisellä roolillasi ei ole own_role: ei voi muuttaa nykyisellä roolillasi position: elevated: ei voi olla korkeampi kuin nykyinen roolisi diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml index ecd2fab690..ce8aef4a9f 100644 --- a/config/locales/doorkeeper.fi.yml +++ b/config/locales/doorkeeper.fi.yml @@ -31,7 +31,7 @@ fi: form: error: Hupsis! Tarkista, ettei lomakkeessasi ole virheitä help: - native_redirect_uri: Käytä %{native_redirect_uri} paikallisiin testeihin + native_redirect_uri: Käytä tunnistetta %{native_redirect_uri} paikallisiin testeihin redirect_uri: Lisää jokainen URI omalle rivilleen scopes: Erota oikeudet välilyönneillä. Jätä kenttä tyhjäksi, jos haluat käyttää oletusoikeuksia. index: @@ -43,7 +43,7 @@ fi: new: Uusi sovellus scopes: Oikeudet show: Näytä - title: Omat sovellukset + title: Omat sovelluksesi new: title: Uusi sovellus show: @@ -60,7 +60,7 @@ fi: error: title: Tapahtui virhe new: - prompt_html: "%{client_name} pyytää lupaa käyttää tiliäsi. Se on kolmannen osapuolen sovellus. Jos et luota siihen, älä valtuuta sitä." + prompt_html: "%{client_name} pyytää oikeutta käyttää tiliäsi. Se on kolmannen osapuolen sovellus. Jos et luota siihen, älä valtuuta sitä." review_permissions: Tarkista käyttöoikeudet title: Valtuutus vaaditaan show: @@ -75,7 +75,7 @@ fi: description_html: Nämä sovellukset voivat käyttää tiliäsi ohjelmointirajapinnan kautta. Jos tässä on sovelluksia, joita et tunnista, tai sovellus toimii väärin, voit peruuttaa sen käyttöoikeuden. last_used_at: Käytetty viimeksi %{date} never_used: Ei käytetty - scopes: Oikeudet + scopes: Käyttöoikeudet superapp: Sisäinen title: Valtuuttamasi sovellukset errors: @@ -130,8 +130,8 @@ fi: crypto: Päästä päähän -salaus favourites: Suosikit filters: Suodattimet - follow: Seuraamiset, mykistykset ja estot - follows: Seuraa + follow: Seuratut, mykistykset ja estot + follows: Seuratut lists: Listat media: Medialiitteet mutes: Mykistykset @@ -169,7 +169,7 @@ fi: follow: muokkaa tilin seurantasuhteita profile: lue vain tilisi profiilitietoja push: vastaanota puskuilmoituksesi - read: lue kaikkia tilin tietoja + read: lue kaikkia tilisi tietoja read:accounts: katso tilien tietoja read:blocks: katso estojasi read:bookmarks: katso kirjanmerkkejäsi @@ -187,7 +187,7 @@ fi: write:blocks: estä tilejä ja verkkotunnuksia write:bookmarks: lisää julkaisuja kirjanmerkkeihin write:conversations: mykistä ja poista keskusteluja - write:favourites: suosikkijulkaisut + write:favourites: lisää julkaisuja suosikkeihin write:filters: luo suodattimia write:follows: seuraa käyttäjiä write:lists: luo listoja diff --git a/config/locales/doorkeeper.he.yml b/config/locales/doorkeeper.he.yml index 7a664c486e..16a8fc94cf 100644 --- a/config/locales/doorkeeper.he.yml +++ b/config/locales/doorkeeper.he.yml @@ -83,6 +83,7 @@ he: access_denied: בעלי המשאב או שרת ההרשאה דחו את הבקשה. credential_flow_not_configured: התהליך "Resource Owner Password Credentials" נכשל בשל חוסר בתצורת Doorkeeper.configure.resource_owner_from_credentials. invalid_client: הרשאת הלקוח נכשלה עקב לקוח שאינו ידוע, חוסר בהרשאת לקוח או שיטת הרשאה שאינה נתמכת. + invalid_code_challenge_method: הצופן חייב להיות בשיטת S256, לא תומכים בבלתי מוצפן. invalid_grant: חוזה ההרשאה המצורף אינו חוקי, אינו תקף, מבוטל, או שאינו מתאים לקישורית ההפניה שבשימוש על ידי בקשת ההרשאה, או שהופק על ידי לקוח אחר. invalid_redirect_uri: קישורית ההפניה המצורפת אינה חוקית. invalid_request: diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 7ec357bf9f..f35333f1df 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -83,6 +83,7 @@ ko: access_denied: 리소스 소유자 또는 인증 서버가 요청을 거부했습니다. credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials의 설정이 되어있지 않아 리소스 소유자 암호 자격증명이 실패하였습니다. invalid_client: 클라이언트를 확인할 수 없기 때문에 인증이 실패하였습니다. 클라이언트 자격 증명이 포함되지 않았거나 지원되지 않는 메소드입니다. + invalid_code_challenge_method: 코드 챌린지는 S256이어야 합니다. 평문은 지원되지 않습니다. invalid_grant: 제공된 권한 부여가 잘못되거나, 만료되었거나, 취소되었거나, 권한 부여 요청에 사용된 리디렉션 URI가 일치하지 않거나, 다른 클라이언트에 지정되었습니다. invalid_redirect_uri: 리디렉션 URI가 올바르지 않습니다 invalid_request: diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index f39de2b27b..1623d11026 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -885,7 +885,23 @@ es-MX: action: Para más información aquí message_html: "Su almacenamiento no está configurado. Está en riesgo la privacidad de sus usuarios." tags: + moderation: + not_trendable: No puede ser tendencia + not_usable: No disponible + pending_review: Pendientes de revisión + review_requested: Revisión solicitada + reviewed: Revisada + title: Estado + trendable: Puede ser tendencia + unreviewed: Sin revisar + usable: Disponible + name: Nombre + newest: Más reciente + oldest: Menos reciente + reset: Reiniciar review: Estado de revisión + search: Buscar + title: Etiquetas updated_msg: Hashtags actualizados exitosamente title: Administración trends: diff --git a/config/locales/es.yml b/config/locales/es.yml index fbee73ed2a..9e3689557a 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -885,7 +885,23 @@ es: action: Haga clic aquí para obtener más información message_html: "El almacenamiento de su objeto está mal configurado. La privacidad de sus usuarios está en riesgo." tags: + moderation: + not_trendable: No puede ser tendencia + not_usable: No disponible + pending_review: Pendientes de revisión + review_requested: Revisión solicitada + reviewed: Revisada + title: Estado + trendable: Puede ser tendencia + unreviewed: Sin revisar + usable: Disponible + name: Nombre + newest: Más reciente + oldest: Menos reciente + reset: Reiniciar review: Estado de revisión + search: Buscar + title: Etiquetas updated_msg: Hashtags actualizados exitosamente title: Administración trends: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index f3cb791e60..a9a8f19950 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -39,16 +39,16 @@ fi: by_domain: Verkkotunnus change_email: changed_msg: Sähköpostiosoitteen vaihto onnistui! - current_email: Nykyinen sähköposti - label: Vaihda sähköposti - new_email: Uusi sähköposti - submit: Vaihda sähköposti + current_email: Nykyinen sähköpostiosoite + label: Vaihda sähköpostiosoite + new_email: Uusi sähköpostiosoite + submit: Vaihda sähköpostiosoite title: Vaihda käyttäjän %{username} sähköposti-osoite change_role: changed_msg: Roolin vaihto onnistui! - label: Vaihda roolia + label: Vaihda rooli no_role: Ei roolia - title: Vaihda käyttäjän %{username} roolia + title: Vaihda käyttäjän %{username} rooli confirm: Vahvista confirmed: Vahvistettu confirming: Vahvistetaan @@ -57,23 +57,23 @@ fi: deleted: Poistettu demote: Alenna destroyed_msg: Käyttäjän %{username} tiedot ovat nyt jonossa poistettavaksi välittömästi - disable: Poista käytöstä + disable: Jäädytä disable_sign_in_token_auth: Poista sähköpostitunnuksella todennus käytöstä disable_two_factor_authentication: Poista kaksivaiheinen todennus käytöstä - disabled: Poistettu käytöstä + disabled: Jäädytetty display_name: Näyttönimi domain: Verkkotunnus edit: Muokkaa email: Sähköpostiosoite - email_status: Sähköpostin tila - enable: Ota käyttöön + email_status: Sähköpostiosoitteen tila + enable: Kumoa jäädytys enable_sign_in_token_auth: Ota sähköpostitunnuksella todennus käyttöön enabled: Käytössä enabled_msg: Käyttäjän %{username} tilin jäädytys kumottiin onnistuneesti followers: Seuraajat follows: Seuratut header: Otsakekuva - inbox_url: Saapuvan postilaatikon osoite + inbox_url: Postilaatikon osoite invite_request_text: Syitä liittymiseen invited_by: Kutsuja ip: IP-osoite @@ -86,21 +86,21 @@ fi: login_status: Sisäänkirjautumisen tila media_attachments: Medialiitteet memorialize: Muuta muistosivuksi - memorialized: Muutettu muistotiliksi - memorialized_msg: Käyttäjän %{username} tili muutettiin muistotiliksi onnistuneesti + memorialized: Muutettu muistosivuksi + memorialized_msg: Käyttäjän %{username} tili muutettiin muistosivuksi onnistuneesti moderation: - active: Aktiivinen + active: Aktiiviset all: Kaikki - disabled: Ei käytössä - pending: Odottaa - silenced: Rajoitettu - suspended: Jäädytetty + disabled: Eivät käytössä + pending: Odottavat + silenced: Rajoitetut + suspended: Jäädytetyt title: Moderointi moderation_notes: Moderointimuistiinpanot most_recent_activity: Viimeisin toiminta - most_recent_ip: Viimeisin IP + most_recent_ip: Viimeisin IP-osoite no_account_selected: Tilejä ei muutettu, koska yhtään ei ollut valittuna - no_limits_imposed: Rajoituksia ei ole asetettu + no_limits_imposed: Ei asetettuja rajoituksia no_role_assigned: Roolia ei asetettu not_subscribed: Ei tilaaja pending: Odottaa tarkastusta @@ -113,7 +113,7 @@ fi: protocol: Protokolla public: Julkinen push_subscription_expires: PuSH-tilaus vanhenee - redownload: Päivitä profiilikuva + redownload: Päivitä profiili redownloaded_msg: Käyttäjän %{username} profiili päivitettiin alkuperästä onnistuneesti reject: Hylkää rejected_msg: Käyttäjän %{username} rekisteröitymishakemus hylättiin @@ -132,7 +132,7 @@ fi: resubscribe: Tilaa uudelleen role: Rooli search: Hae - search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostin verkkotunnus + search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostiverkkotunnus search_same_ip: Muut käyttäjät, joilla on sama IP-osoite security: Turvallisuus security_measures: @@ -140,7 +140,7 @@ fi: password_and_2fa: Salasana ja kaksivaiheinen todennus sensitive: Pakota arkaluonteiseksi sensitized: Merkitty arkaluonteiseksi - shared_inbox_url: Jaetun saapuvan postilaatikon osoite + shared_inbox_url: Jaetun postilaatikon osoite show: created_reports: Tämän tilin luomat raportit targeted_reports: Tästä tilistä tehdyt raportit @@ -156,7 +156,7 @@ fi: title: Tilit unblock_email: Kumoa sähköpostiosoitteen esto unblocked_email_msg: Käyttäjän %{username} sähköpostiosoitteen esto kumottiin - unconfirmed_email: Sähköpostia ei vahvistettu + unconfirmed_email: Vahvistamaton sähköpostiosoite undo_sensitized: Kumoa pakotus arkaluonteiseksi undo_silenced: Kumoa rajoitus undo_suspension: Kumoa jäädytys @@ -174,11 +174,11 @@ fi: approve_user: Hyväksy käyttäjä assigned_to_self_report: Ota raportti käsiteltäväksi change_email_user: Vaihda käyttäjän sähköpostiosoite - change_role_user: Vaihda käyttäjän roolia + change_role_user: Vaihda käyttäjän rooli confirm_user: Vahvista käyttäjä create_account_warning: Luo varoitus create_announcement: Luo tiedote - create_canonical_email_block: Luo sähköpostin esto + create_canonical_email_block: Luo sähköpostiosoitteen esto create_custom_emoji: Luo mukautettu emoji create_domain_allow: Luo verkkotunnuksen salliminen create_domain_block: Luo verkkotunnuksen esto @@ -188,7 +188,7 @@ fi: create_user_role: Luo rooli demote_user: Alenna käyttäjä destroy_announcement: Poista tiedote - destroy_canonical_email_block: Poista sähköpostin esto + destroy_canonical_email_block: Poista sähköpostiosoitteen esto destroy_custom_emoji: Poista mukautettu emoji destroy_domain_allow: Poista verkkotunnuksen salliminen destroy_domain_block: Poista verkkotunnuksen esto @@ -202,8 +202,8 @@ fi: disable_custom_emoji: Poista mukautettu emoji käytöstä disable_sign_in_token_auth_user: Poista sähköpostitunnuksella todennus käytöstä käyttäjältä disable_user: Poista tili käytöstä - enable_custom_emoji: Ota mukautetut emojit käyttöön - enable_sign_in_token_auth_user: Salli käyttäjälle sähköpostitunnuksella todennuksen + enable_custom_emoji: Ota mukautettu emoji käyttöön + enable_sign_in_token_auth_user: Salli käyttäjälle sähköpostitunnuksella todennus enable_user: Ota tili käyttöön memorialize_account: Muuta muistotiliksi promote_user: Ylennä käyttäjä @@ -212,7 +212,7 @@ fi: remove_avatar_user: Poista profiilikuva reopen_report: Avaa raportti uudelleen resend_user: Lähetä vahvistusviesti uudelleen - reset_password_user: Nollaa salasana + reset_password_user: Palauta salasana resolve_report: Selvitä raportti sensitive_account: Pakota arkaluonteiseksi tiliksi silence_account: Rajoita tiliä @@ -234,11 +234,11 @@ fi: approve_user_html: "%{name} hyväksyi käyttäjän %{target} rekisteröitymisen" assigned_to_self_report_html: "%{name} otti raportin %{target} käsiteltäväkseen" change_email_user_html: "%{name} vaihtoi käyttäjän %{target} sähköpostiosoitteen" - change_role_user_html: "%{name} muutti käyttäjän %{target} roolia" + change_role_user_html: "%{name} vaihtoi käyttäjän %{target} roolin" confirm_user_html: "%{name} vahvisti käyttäjän %{target} sähköpostiosoitteen" create_account_warning_html: "%{name} lähetti varoituksen käyttäjälle %{target}" create_announcement_html: "%{name} loi uuden tiedotteen %{target}" - create_canonical_email_block_html: "%{name} esti sähköpostiosoitteen tiivisteellä %{target}" + create_canonical_email_block_html: "%{name} esti tiivistettä %{target} vastaavan sähköpostiosoitteen" create_custom_emoji_html: "%{name} lähetti uuden emojin %{target}" create_domain_allow_html: "%{name} salli federoinnin verkkotunnuksen %{target} kanssa" create_domain_block_html: "%{name} esti verkkotunnuksen %{target}" @@ -248,7 +248,7 @@ fi: create_user_role_html: "%{name} loi roolin %{target}" demote_user_html: "%{name} alensi käyttäjän %{target}" destroy_announcement_html: "%{name} poisti tiedotteen %{target}" - destroy_canonical_email_block_html: "%{name} kumosi sähköpostiosoitteen eston tiivisteellä %{target}" + destroy_canonical_email_block_html: "%{name} kumosi eston tiivistettä %{target} vastaavalta sähköpostiosoitteelta" destroy_custom_emoji_html: "%{name} poisti emojin %{target}" destroy_domain_allow_html: "%{name} kielsi federoinnin verkkotunnuksen %{target} kanssa" destroy_domain_block_html: "%{name} kumosi verkkotunnuksen %{target} eston" @@ -280,12 +280,12 @@ fi: unassigned_report_html: "%{name} poisti raportin %{target} käsittelystä" unblock_email_account_html: "%{name} kumosi käyttäjän %{target} sähköpostiosoitteen eston" unsensitive_account_html: "%{name} kumosi käyttäjän %{target} median arkaluonteisuusmerkinnän" - unsilence_account_html: "%{name} kumosi käyttäjän %{target} rajoituksen" + unsilence_account_html: "%{name} kumosi käyttäjän %{target} tilin rajoituksen" unsuspend_account_html: "%{name} kumosi käyttäjän %{target} tilin jäädytyksen" update_announcement_html: "%{name} päivitti tiedotteen %{target}" update_custom_emoji_html: "%{name} päivitti emojin %{target}" update_domain_block_html: "%{name} päivitti verkkotunnuksen %{target} eston" - update_ip_block_html: "%{name} muutti sääntöä IP-osoitteelle %{target}" + update_ip_block_html: "%{name} muutti IP-osoitteen %{target} sääntöä" update_report_html: "%{name} päivitti raportin %{target}" update_status_html: "%{name} päivitti käyttäjän %{target} julkaisun" update_user_role_html: "%{name} muutti roolia %{target}" @@ -322,7 +322,7 @@ fi: create_new_category: Luo uusi luokka created_msg: Emojin luonti onnistui! delete: Poista - destroyed_msg: Emojon poisto onnistui! + destroyed_msg: Emojon hävitys onnistui! disable: Poista käytöstä disabled: Ei käytössä disabled_msg: Emoji poistettiin käytöstä onnistuneesti @@ -339,7 +339,7 @@ fi: not_permitted: Sinulla ei ole oikeutta suorittaa tätä toimintoa overwrite: Korvaa shortcode: Lyhennekoodi - shortcode_hint: Vähintään kaksi merkkiä, vain kirjaimia, numeroita ja alaviivoja + shortcode_hint: Vähintään 2 merkkiä, vain kirjaimia, numeroita ja alaviivoja title: Mukautetut emojit uncategorized: Luokittelemattomat unlist: Poista listalta @@ -354,8 +354,8 @@ fi: new_users: uudet käyttäjät opened_reports: avatut raportit pending_appeals_html: - one: "%{count} vireillä oleva valitus" - other: "%{count} vireillä olevaa valitusta" + one: "%{count} odottava valitus" + other: "%{count} odottavaa valitusta" pending_reports_html: one: "%{count} odottava raportti" other: "%{count} odottavaa raporttia" @@ -421,7 +421,7 @@ fi: public_comment: Julkinen kommentti public_comment_hint: Kommentoi tätä verkkotunnuksen rajoitusta suurelle yleisölle, jos julkinen verkkotunnusten rajoitusluettelo on käytössä. reject_media: Hylkää mediatiedostot - reject_media_hint: Poistaa paikallisesti tallennetut mediatiedostot eikä lataa niitä enää jatkossa. Ei merkitystä jäähyn kohdalla + reject_media_hint: Poistaa paikallisesti tallennetut mediatiedostot eikä lataa niitä enää jatkossa. Ei vaikuta jäädytyksiin reject_reports: Hylkää raportit reject_reports_hint: Ohita kaikki tästä verkkotunnuksesta tulevat raportit. Ei vaikuta jäädytyksiin undo: Kumoa verkkotunnuksen esto @@ -430,7 +430,7 @@ fi: add_new: Lisää uusi allow_registrations_with_approval: Salli rekisteröitymiset hyväksynnällä attempts_over_week: - one: "%{count} yritystä viimeisen viikon aikana" + one: "%{count} rekisteröitymisyritys viimeisen viikon aikana" other: "%{count} rekisteröitymisyritystä viimeisen viikon aikana" created_msg: Sähköpostiverkkotunnus estettiin onnistuneesti delete: Poista @@ -455,7 +455,7 @@ fi: import: description_html: Olet tuomassa verkkotunnusten estoluetteloa. Tarkista luettelo huolella – etenkin, jos et ole laatinut sitä itse. existing_relationships_warning: Olemassa olevat seurantasuhteet - private_comment_description_html: 'Seurataksesi tuotujen estojen alkuperää lisätään estojen yhteyteen seuraava yksityinen kommentti: %{comment}' + private_comment_description_html: 'Seurataksesi tuotujen estojen alkuperää estojen yhteyteen lisätään seuraava yksityinen kommentti: %{comment}' private_comment_template: Tuotu lähteestä %{source} %{date} title: Tuo verkkotunnusten estoja invalid_domain_block: 'Yksi tai useampi verkkotunnuksen esto ohitettiin seuraavien virheiden vuoksi: %{error}' @@ -467,7 +467,7 @@ fi: language: Kielelle status: Tila suppress: Hylkää seurantasuositus - suppressed: Hylätty + suppressed: Hylätyt title: Seurantasuositukset unsuppress: Palauta seurantasuositus instances: @@ -482,7 +482,7 @@ fi: failures_recorded: one: Epäonnistuneita yrityksiä %{count} päivänä. other: Epäonnistuneita yrityksiä %{count} päivänä. - no_failures_recorded: Epäonnistumisia ei kirjattu. + no_failures_recorded: Ei kirjattuja epäonnistumisia. title: Saatavuus warning: Viimeisin yritys yhdistää tähän palvelimeen epäonnistui back_to_all: Kaikki @@ -492,7 +492,7 @@ fi: confirm_purge: Haluatko varmasti poistaa pysyvästi tämän verkkotunnuksen tiedot? content_policies: comment: Sisäinen muistiinpano - description_html: Voit määrittää sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnusten tileihin. + description_html: Voit määritellä sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnusten tileihin. limited_federation_mode_description_html: Voit valita sallitaanko federointi tällä verkkotunnuksella. policies: reject_media: Hylkää media @@ -514,10 +514,10 @@ fi: delivery: all: Kaikki clear: Tyhjennä toimitusvirheet - failing: Epäonnistuminen + failing: Epäonnistuneet restart: Käynnistä toimitus uudelleen stop: Lopeta toimitus - unavailable: Ei saatavilla + unavailable: Eivät saatavilla delivery_available: Toimitus on saatavilla delivery_error_days: Toimitusvirheen päivät delivery_error_hint: Jos toimitus ei ole mahdollista %{count} päivään, se merkitään automaattisesti toimituskelvottomaksi. @@ -528,7 +528,7 @@ fi: other: "%{count} tunnettua tiliä" moderation: all: Kaikki - limited: Rajoitettu + limited: Rajoitetut title: Moderointi private_comment: Yksityinen kommentti public_comment: Julkinen kommentti @@ -547,8 +547,8 @@ fi: filter: all: Kaikki available: Saatavilla - expired: Vanhentunut - title: Suodata + expired: Vanhentuneet + title: Suodatus title: Kutsut ip_blocks: add_new: Luo sääntö @@ -580,7 +580,7 @@ fi: pending: Odotetaan välittäjän hyväksyntää save_and_enable: Tallenna ja ota käyttöön setup: Määritä yhteys välittäjään - signatures_not_enabled: Välittäjät eivät toimi oikein, kun turvallinen tai rajoitettu federaatio -tila on käytössä + signatures_not_enabled: Välittäjät eivät välttämättä toimi oikein, kun turvallinen tai rajoitetun federoinnin tila on käytössä status: Tila title: Välittäjät report_notes: @@ -686,7 +686,7 @@ fi: moderation: Moderointi special: Erityistä delete: Poista - description_html: "Käyttäjärooleilla voit mukauttaa, mihin Mastodonin toimintoihin ja alueisiin käyttäjäsi pääsevät käsiksi." + description_html: "Käyttäjärooleilla voit mukauttaa, mihin Mastodonin toimintoihin ja alueisiin käyttäjäsi on pääsy." edit: Muokkaa roolia ”%{name}” everyone: Oletuskäyttöoikeudet everyone_full_description_html: Tämä on perusrooli, joka vaikuttaa kaikkiin käyttäjiin, jopa ilman asetettua roolia. Kaikki muut roolit perivät sen käyttöoikeudet. @@ -701,7 +701,7 @@ fi: invite_users: Kutsua käyttäjiä invite_users_description: Sallii käyttäjien kutsua uusia ihmisiä palvelimelle manage_announcements: Hallita tiedotteita - manage_announcements_description: Sallii käyttäjien hallita tiedotteita palvelimella + manage_announcements_description: Sallii käyttäjien hallita palvelimen tiedotteita manage_appeals: Hallita valituksia manage_appeals_description: Sallii käyttäjien tarkistaa moderointitoimiin kohdistuvia valituksia manage_blocks: Hallita estoja @@ -723,7 +723,7 @@ fi: manage_taxonomies: Hallita luokittelua manage_taxonomies_description: Sallii käyttäjien tarkistaa suositun sisällön ja päivittää aihetunnisteiden asetuksia manage_user_access: Hallita käyttäjäoikeuksia - manage_user_access_description: Sallii käyttäjien poistaa muiden käyttäjien kaksivaiheinen todennus käytöstä, vaihtaa heidän sähköpostiosoitteensa ja nollata heidän salasanansa + manage_user_access_description: Sallii käyttäjien poistaa muiden käyttäjien kaksivaiheinen todennus käytöstä, vaihtaa heidän sähköpostiosoitteensa ja palauttaa heidän salasanansa manage_users: Hallita käyttäjiä manage_users_description: Sallii käyttäjien tarkastella muiden käyttäjien tietoja ja suorittaa moderointitoimia heitä kohtaan manage_webhooks: Hallita webhookeja @@ -760,7 +760,7 @@ fi: content_retention: danger_zone: Vaaravyöhyke preamble: Määritä, miten käyttäjän luoma sisältö tallennetaan Mastodoniin. - title: Sisällön säilyttäminen + title: Sisällön säilytys default_noindex: desc_html: Vaikuttaa kaikkiin käyttäjiin, jotka eivät ole muuttaneet tätä asetusta itse title: Jätä käyttäjät oletusarvoisesti hakukoneindeksoinnin ulkopuolelle @@ -771,7 +771,7 @@ fi: public_timelines: Julkiset aikajanat publish_discovered_servers: Julkaise löydetyt palvelimet publish_statistics: Julkaise tilastot - title: Löytäminen + title: Löydettävyys trends: Trendit domain_blocks: all: Kaikille @@ -780,7 +780,7 @@ fi: registrations: moderation_recommandation: Varmista, että sinulla on riittävä ja toimintavalmis joukko moderaattoreita, ennen kuin avaat rekisteröitymisen kaikille! preamble: Määritä, kuka voi luoda tilin palvelimellesi. - title: Rekisteröinnit + title: Rekisteröityminen registrations_mode: modes: approved: Rekisteröityminen vaatii hyväksynnän @@ -869,7 +869,7 @@ fi: version_comparison: Käynnissä on Elasticsearch %{running_version}, kun vaaditaan %{required_version} rules_check: action: Hallitse palvelimen sääntöjä - message_html: Et ole määrittänyt lainkaan palvelimen sääntöjä. + message_html: Et ole määritellyt palvelimen sääntöjä lainkaan. sidekiq_process_check: message_html: Ei ole Sidekiq-prosessia käynnissä jonossa %{value}. Tarkista Sidekiq-asetukset software_version_critical_check: @@ -898,76 +898,76 @@ fi: name: Nimi newest: Uusin oldest: Vanhin - reset: Tyhjennä - review: Tarkista tila + reset: Palauta + review: Tarkastuksen tila search: Hae title: Aihetunnisteet updated_msg: Aihetunnisteiden asetusten päivitys onnistui title: Ylläpito trends: allow: Salli - approved: Hyväksytty - disallow: Estä + approved: Hyväksytyt + disallow: Kiellä links: allow: Salli linkki allow_provider: Salli julkaisija - description_html: Nämä ovat linkkejä, joita jaetaan tällä hetkellä paljon tileillä, joilta palvelimesi näkee viestejä. Se voi auttaa käyttäjiäsi saamaan selville, mitä maailmassa tapahtuu. Linkkejä ei näytetä julkisesti, ennen kuin hyväksyt julkaisijan. Voit myös sallia tai hylätä yksittäiset linkit. - disallow: Hylkää linkki - disallow_provider: Estä julkaisija + description_html: Näitä linkkejä jaetaan parhaillaan paljon tileillä, joiden julkaisuja palvelimesi näkee. Luettelo voi auttaa käyttäjiäsi saamaan selville, mitä maailmassa tapahtuu. Linkit eivät näy julkisesti ennen kuin hyväksyt julkaisijan. Voit myös sallia tai hylätä yksittäisiä linkkejä. + disallow: Kiellä linkki + disallow_provider: Kiellä julkaisija no_link_selected: Linkkejä ei muutettu, koska yhtään ei ollut valittuna publishers: no_publisher_selected: Julkaisijoita ei muutettu, koska yhtään ei ollut valittuna shared_by_over_week: - one: Yksi henkilö jakanut viimeisen viikon aikana + one: Jakanut yksi henkilö viimeisen viikon aikana other: Jakanut %{count} henkilöä viimeisen viikon aikana title: Suositut linkit - usage_comparison: Jaettu %{today} kertaa tänään verrattuna eilen %{yesterday} + usage_comparison: Jaettu tänään %{today} kertaa verrattuna eilisen %{yesterday} kertaan not_allowed_to_trend: Ei saa trendata - only_allowed: Vain sallittu + only_allowed: Vain sallitut pending_review: Odottaa tarkastusta preview_card_providers: - allowed: Tämän julkaisijan linkit voivat trendata - description_html: Nämä ovat verkkotunnuksia, joiden linkkejä jaetaan usein palvelimellasi. Linkit eivät trendaa julkisesti, ellei linkin verkkotunnusta ole hyväksytty. Hyväksyntäsi (tai hylkäys) ulottuu aliverkkotunnuksiin. - rejected: Tämän julkaisijan linkit eivät voi trendata + allowed: Tämän julkaisijan lähettämät linkit voivat trendata + description_html: Näistä verkkotunnuksista lähetettyjä linkkejä jaetaan usein palvelimellasi. Linkit eivät trendaa julkisesti, ellei linkin verkkotunnusta ole hyväksytty. Hyväksyntäsi (tai hylkäyksesi) ulottuu aliverkkotunnuksiin. + rejected: Tämän julkaisijan lähettämät linkit eivät voi trendata title: Julkaisijat - rejected: Hylätty + rejected: Hylätyt statuses: allow: Salli julkaisu allow_account: Salli tekijä - description_html: Nämä ovat julkaisuja, joita palvelimesi tietää jaettavan ja lisättävän suosikkeihin paljon tällä hetkellä. Listaus voi auttaa uusia ja palaavia käyttäjiäsi löytämään lisää seurattavia. Julkaisut eivät näy julkisesti ennen kuin hyväksyt niiden tekijän ja tekijä sallii tilinsä ehdottamisen. Voit myös sallia tai hylätä yksittäisiä julkaisuja. + description_html: Näitä julkaisuja palvelimesi tietää parhaillaan jaettavan ja lisättävän suosikkeihin paljon. Luettelo voi auttaa uusia ja palaavia käyttäjiäsi löytämään lisää seurattavia. Julkaisut eivät näy julkisesti ennen kuin hyväksyt niiden tekijän ja tekijä sallii tilinsä ehdottamisen. Voit myös sallia tai hylätä yksittäisiä julkaisuja. disallow: Kiellä julkaisu - disallow_account: Estä tekijä + disallow_account: Kiellä tekijä no_status_selected: Suosittuja julkaisuja ei muutettu, koska yhtään ei ollut valittuna not_discoverable: Tekijä ei ole ilmoittanut olevansa löydettävissä shared_by: one: Jaettu tai lisätty suosikkeihin kerran - other: Jaettu tai merkitty suosikiksi %{friendly_count} kertaa + other: Jaettu tai lisätty suosikkeihin %{friendly_count} kertaa title: Suositut julkaisut tags: current_score: Nykyinen tulos %{score} dashboard: - tag_accounts_measure: uniikit käyttötarkoitukset + tag_accounts_measure: uniikit käyttökerrat tag_languages_dimension: Suosituimmat kielet tag_servers_dimension: Suosituimmat palvelimet tag_servers_measure: eri palvelimet - tag_uses_measure: käyttökerrat - description_html: Nämä ovat aihetunnisteita, jotka näkyvät tällä hetkellä monissa julkaisuissa, jotka palvelimesi näkee. Tämä voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten tällä hetkellä. Mitään aihetunnisteita ei näytetä julkisesti, ennen kuin hyväksyt ne. - listable: Voidaan ehdottaa + tag_uses_measure: käyttökerrat yhteensä + description_html: Nämä aihetunnisteet näkyvät parhaillaan monissa julkaisuissa, jotka palvelimesi näkee. Tämä luettelo voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten juuri nyt. Mitkään aihetunnisteet ei näy julkisesti ennen kuin hyväksyt ne. + listable: Voi ehdottaa no_tag_selected: Tunnisteita ei muutettu, koska yhtään ei ollut valittuna - not_listable: Ei tulla ehdottamaan + not_listable: Ei ehdoteta not_trendable: Ei näy trendeissä - not_usable: Ei voida käyttää + not_usable: Ei voi käyttää peaked_on_and_decaying: Saavutti huipun %{date}, nyt hiipuu title: Suositut aihetunnisteet trendable: Voi näkyä trendeissä trending_rank: Suosittu, sijalla %{rank} - usable: Voidaan käyttää - usage_comparison: Käytetty %{today} kertaa tänään, verrattuna %{yesterday} eiliseen + usable: Voi käyttää + usage_comparison: Käytetty tänään %{today} kertaa, verrattuna elisen %{yesterday} kertaan used_by_over_week: - one: Yhden henkilön käyttämä viime viikon aikana + one: Käyttänyt yksi henkilö viimeisen viikon aikana other: Käyttänyt %{count} henkilöä viimeisen viikon aikana title: Trendit - trending: Suosittua + trending: Trendaus warning_presets: add_new: Lisää uusi delete: Poista @@ -979,7 +979,7 @@ fi: delete: Poista description_html: "Webhookin avulla Mastodon voi puskea sovellukseesi reaaliaikaisia ilmoituksia valituista tapahtumista, jotta sovelluksesi voi laukaista reaktioita automaattisesti." disable: Poista käytöstä - disabled: Pois käytöstä + disabled: Poissa käytöstä edit: Muokkaa päätepistettä empty: Et ole vielä määrittänyt webhook-päätepisteitä. enable: Ota käyttöön @@ -989,8 +989,8 @@ fi: other: "%{count} aktivoitua tapahtumaa" events: Tapahtumat new: Uusi webhook - rotate_secret: Vaihda salaus - secret: Salainen tunnus + rotate_secret: Vaihda salaisuus + secret: Allekirjoituksen salaisuus status: Tila title: Webhookit webhook: Webhook @@ -1037,14 +1037,14 @@ fi: created_msg: Uusi alias luotiin onnistuneesti. Voit nyt aloittaa muuton vanhasta tilistä. deleted_msg: Alias poistettiin onnistuneesti. Muuttaminen tuolta tililtä tähän ei ole enää mahdollista. empty: Sinulla ei ole aliaksia. - hint_html: Jos haluat muuttaa toiselta tililtä tälle tilille, voit luoda tässä aliaksen, mitä vaaditaan ennen kuin voit edetä siirtämään seuraajat vanhalta tililtä tälle tilille. Tänä toiminto on itsessään vaaraton ja kumottavissa. Tilin muuttaminen aloitetaan vanhalta tililtä. + hint_html: Jos haluat muuttaa toisesta tilistä tähän tiliin, voit luoda tässä aliaksen, mitä vaaditaan ennen kuin voit edetä siirtämään seuraajasi vanhalta tililtä tälle tilille. Tänä toiminto on itsessään vaaraton ja kumottavissa. Tilin muuttaminen aloitetaan vanhalta tililtä. remove: Poista aliaksen linkitys appearance: advanced_web_interface: Edistynyt selainkäyttöliittymä advanced_web_interface_hint: 'Jos haluat hyödyntää näytön koko leveyttä, edistyneen selainkäyttöliittymän avulla voit määrittää useita erilaisia sarakkeita, niin näet kerralla niin paljon tietoa kuin haluat: kotisyöte, ilmoitukset, yleinen aikajana, mikä tahansa määrä listoja ja aihetunnisteita.' animations_and_accessibility: Animaatiot ja saavutettavuus confirmation_dialogs: Vahvistusvalinnat - discovery: Löytäminen + discovery: Löydettävyys localization: body: Mastodonin ovat kääntäneet vapaaehtoiset. guide_link: https://crowdin.com/project/mastodon @@ -1121,7 +1121,7 @@ fi: preamble_invited: Ennen kuin jatkat ota huomioon palvelimen %{domain} moderaattorien asettamat perussäännöt. title: Joitakin perussääntöjä. title_invited: Sinut on kutsuttu. - security: Tunnukset + security: Turvallisuus set_new_password: Aseta uusi salasana setup: email_below_hint_html: Tarkista roskapostikansiosi tai pyydä uusi viesti. Voit korjata sähköpostiosoitteesi, jos se oli väärin. @@ -1181,12 +1181,12 @@ fi: success_msg: Tilin poisto onnistui warning: before: 'Ennen kuin etenet, lue nämä huomautukset huolellisesti:' - caches: Muiden palvelimien välimuistiin tallentamaa sisältöä voi vielä löytyä + caches: Muiden palvelinten välimuistiinsa tallentamaa sisältöä voi säilyä data_removal: Julkaisusi ja muut tietosi poistetaan pysyvästi email_change_html: Voit muuttaa sähköpostiosoitettasi poistamatta tiliäsi email_contact_html: Jos ei saavu perille, voit pyytää apua sähköpostilla %{email} email_reconfirmation_html: Jos et saa vahvistuksen sähköpostia, niin voit pyytää sitä uudelleen - irreversible: Et voi palauttaa tiliäsi tai aktivoida sitä uudelleen + irreversible: Et voi palauttaa tiliäsi etkä aktivoida sitä uudelleen more_details_html: Tarkempia tietoja saat tietosuojakäytännöstämme. username_available: Käyttäjänimesi tulee saataville uudelleen username_unavailable: Käyttäjänimesi ei tule saataville enää uudelleen @@ -1228,7 +1228,7 @@ fi: other: Muut errors: '400': Lähettämäsi pyyntö oli virheellinen tai muotoiltu virheellisesti. - '403': Sinulla ei ole lupaa nähdä tätä sivua. + '403': Sinulla ei ole oikeutta nähdä tätä sivua. '404': Etsimääsi sivua ei ole olemassa. '406': Tämä sivu ei ole saatavilla pyydetyssä muodossa. '410': Etsimääsi sivua ei ole enää olemassa. @@ -1257,13 +1257,13 @@ fi: csv: CSV domain_blocks: Verkkotunnusten estot lists: Listat - mutes: Mykistetyt - storage: Media-arkisto + mutes: Mykistykset + storage: Mediatiedostot featured_tags: add_new: Lisää uusi errors: - limit: Pidät jo esillä aihetunnisteiden enimmäismäärää - hint_html: "Pidä tärkeimpiä aihetunnisteitasi esillä profiilissasi. Erinomainen työkalu, jolla pidät kirjaa luovista teoksistasi ja pitkäaikaisista projekteistasi. Esillä pitämäsi aihetunnisteet ovat näyttävällä paikalla profiilissasi ja mahdollistavat nopean pääsyn omiin julkaisuihisi." + limit: Pidät esillä jo aihetunnisteiden enimmäismäärää + hint_html: "Pidä tärkeimpiä aihetunnisteitasi esillä profiilissasi. Erinomainen työkalu, jolla pidät kirjaa luovista teoksistasi ja pitkäaikaisista projekteistasi. Esillä pitämäsi aihetunnisteet ovat näyttävällä paikalla profiilissasi ja mahdollistavat nopean pääsyn julkaisuihisi." filters: contexts: account: Profiilit @@ -1354,16 +1354,16 @@ fi: muting_html: Olet aikeissa korvata mykistettyjen tilien luettelosi kaikkiaan %{total_items} tilillä tiedostosta %{filename}. preambles: blocking_html: Olet aikeissa estää kaikkiaan %{total_items} tiliä tiedostosta %{filename}. - bookmarks_html: Olet lisäämässä kaikkiaan %{total_items} julkaisua tiedostosta %{filename}kirjanmerkkeihisi. + bookmarks_html: Olet aikeissa lisätä kaikkiaan %{total_items} julkaisua tiedostosta %{filename}kirjanmerkkeihisi. domain_blocking_html: Olet aikeissa estää kaikkiaan %{total_items} verkkotunnusta tiedostosta %{filename}. following_html: Olet aikeissa seurata kaikkiaan %{total_items} tiliä tiedostosta %{filename}. - lists_html: Olet lisäämässä listoihisi kaikkiaan %{total_items} tiliä tiedostosta %{filename}. Uusia listoja luodaan, jos sopivaa kohdelistaa ei ole olemassa. + lists_html: Olet aikeissa lisätä listoihisi kaikkiaan %{total_items} tiliä tiedostosta %{filename}. Uusia listoja luodaan, jos sopivaa kohdelistaa ei ole olemassa. muting_html: Olet aikeissa mykistää kaikkiaan %{total_items} tiliä tiedostosta %{filename}. preface: Voit tuoda toiselta palvelimelta viemiäsi tietoja, kuten seuraamiesi tai estämiesi henkilöiden luettelon. recent_imports: Viimeksi tuotu states: finished: Valmis - in_progress: Toiminto käynnissä + in_progress: Käynnissä scheduled: Ajoitettu unconfirmed: Varmistamaton status: Tila @@ -1376,7 +1376,7 @@ fi: following: Tuodaan seurattuja tilejä lists: Tuodaan listoja muting: Tuodaan mykistettyjä tilejä - type: Tuonnin tyyppi + type: Tuontityyppi type_groups: constructive: Seuratut ja kirjanmerkit destructive: Estot ja mykistykset @@ -1409,21 +1409,21 @@ fi: prompt: Luo linkkejä ja jaa niiden avulla muille pääsyoikeus tälle palvelimelle table: expires_at: Vanhenee - uses: Käytetty + uses: Käyttökertoja title: Kutsu ihmisiä lists: errors: limit: Sinulla on enimmäismäärä listoja login_activities: authentication_methods: - otp: kaksivaiheisen todennuksen sovellus - password: salasana - sign_in_token: sähköpostin turvakoodi - webauthn: suojausavaimet - description_html: Jos näet toimintaa, jota et tunnista, harkitse salasanan vaihtamista ja kaksivaiheisen todennuksen ottamista käyttöön. + otp: kaksivaiheisen todennuksen sovelluksella + password: salasanalla + sign_in_token: sähköpostin suojauskoodilla + webauthn: suojausavaimella + description_html: Jos näet toimintaa, jota et tunnista, harkitse salasanan vaihtamista ja kaksivaiheisen todennuksen käyttöön ottamista. empty: Todennushistoriaa ei ole saatavilla - failed_sign_in_html: Kirjautumisyritys epäonnistui %{method} - %{ip} (%{browser}) - successful_sign_in_html: Kirjautuminen onnistui %{method} - %{ip} (%{browser}) + failed_sign_in_html: Epäonnistunut kirjautumisyritys %{method} IP-osoitteesta %{ip} (%{browser}) + successful_sign_in_html: Onnistunut kirjautuminen %{method} IP-osoitteesta %{ip} (%{browser}) title: Todennushistoria mail_subscriptions: unsubscribe: @@ -1457,7 +1457,7 @@ fi: not_found: ei voitu löytää on_cooldown: Olet jäähyllä followers_count: Seuraajat muuton aikana - incoming_migrations: Muutto toiselta tililtä + incoming_migrations: Muutto toisesta tilistä incoming_migrations_html: Muuttaaksesi toisesta tilistä tähän, sinun täytyy ensin luoda tilin alias. moved_msg: Tilisi ohjaa nyt kohteeseen %{acct} ja seuraajiasi siirretään. not_redirecting: Tilisi ei ohjaa tällä hetkellä mihinkään muuhun tiliin. @@ -1468,11 +1468,11 @@ fi: redirecting_to: 'Tilisi uudelleenohjaa nyt kohteeseen: %{acct}.' set_redirect: Aseta uudelleenohjaus warning: - backreference_required: Uusi tili on ensin määritettävä viittaamaan tähän tiliin + backreference_required: Uusi tili on ensin määritettävä viittaamaan takaisin tähän tiliin before: 'Ennen kuin etenet, lue nämä huomautukset huolellisesti:' - cooldown: Muuton jälkeen on odotusaika, jonka aikana et pysty enää muuttamaan - disabled_account: Nykyinen tilisi ei ole täysin käytettävissä tämän jälkeen. Sinulla on kuitenkin pääsy tietojen vientiin ja uudelleenaktivointiin. - followers: Tämä toiminto siirtää kaikki seuraajat nykyisestä tilistä uudelle tilille + cooldown: Muuton jälkeen on odotusaika, jonka aikana et voi muuttaa uudelleen + disabled_account: Nykyinen tilisi ei ole täysin käytettävissä tämän jälkeen. Sinulla on kuitenkin pääsy tietojen vientiin ja tilin uudelleenaktivointiin. + followers: Tämä toiminto siirtää kaikki seuraajasi nykyiseltä tililtä uudelle tilille only_redirect_html: Vaihtoehtoisesti voit asettaa vain ohjauksen profiiliisi. other_data: Muita tietoja ei siirretä automaattisesti redirect: Nykyisen tilisi profiili päivitetään uudelleenohjaushuomautuksella ja suljetaan pois hauista @@ -1593,7 +1593,7 @@ fi: invited: Kutsutut last_active: Viimeksi aktiiviset most_recent: Viimeisimmät - moved: Muuttaneet + moved: Muuttanut mutual: Seuraatte toisianne primary: Ensisijaiset relationship: Seurantasuhde @@ -1625,41 +1625,41 @@ fi: alipay: Alipay blackberry: BlackBerry chrome: Chrome - edge: Microsoft Edge + edge: Edge electron: Electron firefox: Firefox - generic: Tuntematon selain + generic: tuntematon selain huawei_browser: Huawei-selain ie: Internet Explorer micro_messenger: MicroMessenger - nokia: Nokia S40 Ovi -selain + nokia: Nokia S40:n Ovi-selain opera: Opera otter: Otter phantom_js: PhantomJS qq: QQ Browser safari: Safari uc_browser: UC Browser - unknown_browser: Tuntematon selain + unknown_browser: tuntematon selain weibo: Weibo current_session: Nykyinen istunto date: Päiväys - description: "%{browser} alustalla %{platform}" - explanation: Nämä verkkoselaimet ovat tällä hetkellä kirjautuneena Mastodon-tilillesi. + description: "%{browser} %{platform}" + explanation: Nämä verkkoselaimet ovat parhaillaan kirjautuneena Mastodon-tilillesi. ip: IP-osoite platforms: - adobe_air: Adobe AIR - android: Android - blackberry: BlackBerry - chrome_os: ChromeOS - firefox_os: Firefox OS - ios: iOS - kai_os: KaiOS - linux: Linux - mac: macOS - unknown_platform: Tuntematon alusta - windows: Windows - windows_mobile: Windows Mobile - windows_phone: Windows Phone + adobe_air: alustalla Adobe Air + android: alustalla Android + blackberry: alustalla BlackBerry + chrome_os: alustalla ChromeOS + firefox_os: alustalla Firefox OS + ios: alustalla iOS + kai_os: alustalla KaiOS + linux: alustalla Linux + mac: alustalla macOS + unknown_platform: tuntemattomalla alustalla + windows: alustalla Windows + windows_mobile: alustalla Windows Mobile + windows_phone: alustalla Windows Phone revoke: Hylkää revoke_success: Istunnon hylkäys onnistui title: Istunnot @@ -1676,9 +1676,9 @@ fi: edit_profile: Muokkaa profiilia export: Vie tietoja featured_tags: Esillä pidettävät aihetunnisteet - import: Tuo + import: Tuo tietoja import_and_export: Tuonti ja vienti - migrate: Tilin muutto muualle + migrate: Tilin muutto toisaalle notifications: Sähköposti-ilmoitukset preferences: Ominaisuudet profile: Julkinen profiili @@ -1748,9 +1748,9 @@ fi: unlisted_long: Kaikki voivat nähdä, mutta ei näytetä julkisilla aikajanoilla statuses_cleanup: enabled: Poista vanhat julkaisut automaattisesti - enabled_hint: Poistaa julkaisusi automaattisesti, kun ne saavuttavat valitun ikärajan, ellei jokin alla olevista poikkeuksista tule kyseeseen + enabled_hint: Poistaa julkaisusi automaattisesti, kun ne saavuttavat valitun ikäkynnyksen, ellei jokin alla olevista poikkeuksista tule kyseeseen exceptions: Poikkeukset - explanation: Koska julkaisujen poistaminen on raskas toimi, se tapahtuu hitaasti ajan mittaan, kun palvelin ei ole muutoin ruuhkainen. Siksi viestejäsi voi poistua vasta tovi sen jälkeen, kun ne ovat saavuttaneet ikärajan. + explanation: Koska julkaisujen poistaminen on raskas toimi, se tapahtuu hitaasti ajan mittaan, kun palvelin ei ole muutoin ruuhkainen. Siksi viestejäsi voi poistua vasta tovi sen jälkeen, kun ne ovat saavuttaneet ikäkynnyksen. ignore_favs: Ohita suosikit ignore_reblogs: Ohita tehostukset interaction_exceptions: Vuorovaikutuksiin perustuvat poikkeukset @@ -1776,9 +1776,9 @@ fi: '604800': 1 viikko '63113904': 2 vuotta '7889238': 3 kuukautta - min_age_label: Ikäraja + min_age_label: Ikäkynnys min_favs: Säilytä julkaisut, joilla on suosikiksi lisäyksiä vähintään - min_favs_hint: Ei poista julkaisujasi, joita on lisätty suosikeihin vähintään näin monta kertaa. Jätä tyhjäksi, jos haluat poistaa julkaisuja riippumatta suosikkeihin lisäysmääristä + min_favs_hint: Ei poista julkaisujasi, joita on lisätty suosikeihin vähintään näin monta kertaa. Jätä tyhjäksi, jos haluat poistaa julkaisuja riippumatta niiden suosikkeihin lisäämisen määrästä min_reblogs: Säilytä julkaisut, joilla on tehostuksia vähintään min_reblogs_hint: Ei poista julkaisujasi, joita on tehostettu vähintään näin monta kertaa. Jätä tyhjäksi, jos haluat poistaa julkaisuja riippumatta niiden tehostusten määrästä stream_entries: @@ -1808,10 +1808,10 @@ fi: disable: Poista kaksivaiheinen todennus käytöstä disabled_success: Kaksivaiheisen todennuksen käytöstäpoisto onnistui edit: Muokkaa - enabled: Kaksivaiheinen todennus käytössä + enabled: Kaksivaiheinen todennus on käytössä enabled_success: Kaksivaiheisen todennuksen käyttöönotto onnistui generate_recovery_codes: Luo palautuskoodit - lost_recovery_codes: Palautuskoodien avulla voit käyttää tiliä, jos menetät puhelimesi. Jos olet hukannut palautuskoodisi, voit luoda uudet tästä. Vanhat palautuskoodit poistuvat käytöstä. + lost_recovery_codes: Palautuskoodien avulla saat jälleen pääsyn tilillesi, jos menetät puhelimesi. Jos olet hukannut palautuskoodisi, voit luoda uudet tästä. Vanhat palautuskoodit poistuvat käytöstä. methods: Kaksivaiheisen todennuksen menetelmät otp: Todennussovellus recovery_codes: Ota palautuskoodit talteen diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 57162e2ed1..0de8a2fede 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -927,7 +927,23 @@ ga: action: Seiceáil anseo le haghaidh tuilleadh eolais message_html: "Tá do stór oibiachtaí míchumraithe. Tá príobháideacht d'úsáideoirí i mbaol." tags: + moderation: + not_trendable: Ní trendable + not_usable: Ní inúsáidte + pending_review: Athbhreithniú ar feitheamh + review_requested: Athbhreithniú iarrtha + reviewed: Athbhreithnithe + title: Stádas + trendable: Treocht + unreviewed: Gan athbhreithniú + usable: Inúsáidte + name: Ainm + newest: Is nuaí + oldest: Is sine + reset: Athshocraigh review: Stádas athbhreithnithe + search: Cuardach + title: Haischlibeanna updated_msg: D'éirigh le socruithe hashtag a nuashonrú title: Riar trends: diff --git a/config/locales/he.yml b/config/locales/he.yml index 5a9571da75..8e09bed939 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -913,7 +913,23 @@ he: action: למידע נוסף message_html: "שרות אחסון הענן שלך אינו מוגדר כראוי. פרטיות המשתמשות והמשתמשים שלך בסכנה." tags: + moderation: + not_trendable: לא מזוהה כאופנתי + not_usable: בלתי שמיש + pending_review: ממתינים לסקירה + review_requested: התבקשה סקירה + reviewed: נסקר + title: מצב + trendable: ניתן לאפיון כאופנה + unreviewed: לא נסקר + usable: שמיש + name: שם + newest: החדש ביותר + oldest: הישן ביותר + reset: איפוס review: סקירת מצב + search: חיפוש + title: תגיות updated_msg: הגדרות תגיות עודכנו בהצלחה title: ניהול trends: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 4a1afee842..18fe9cf992 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -872,7 +872,23 @@ ko: action: 더 많은 정보를 보려면 여기를 확인하세요 message_html: "오브젝트 스토리지가 잘못 설정되어 있습니다. 사용자의 개인정보가 위험한 상태입니다." tags: + moderation: + not_trendable: 유행에 오를 수 없음 + not_usable: 사용 불가 + pending_review: 심사 대기 + review_requested: 검토 요청 + reviewed: 검토함 + title: 게시물 + trendable: 유행에 오를 수 있음 + unreviewed: 검토되지 않음 + usable: 사용 가능 + name: 이름 + newest: 최신 + oldest: 오래된 순 + reset: 초기화 review: 심사 상태 + search: 검색 + title: 해시태그 updated_msg: 해시태그 설정이 성공적으로 갱신되었습니다 title: 관리 trends: diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index 43dd38ac7c..b2c26020da 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -314,6 +314,7 @@ es-MX: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias + usable: Permitir a las publicacions usar esta etiqueta localmente user: role: Rol time_zone: Zona horaria diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 1e7401d0e2..0e6cc47e36 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -314,6 +314,7 @@ es: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias + usable: Permitir a las publicacions usar esta etiqueta localmente user: role: Rol time_zone: Zona horaria diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index ddbd1dd289..fa1fd49b38 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -30,7 +30,7 @@ fi: suspend: Estä kaikki vuorovaikutus tältä tililtä ja tälle tilille sekä poista kaikki sen sisältö. Peruttavissa 30 päivän ajan. Sulkee kaikki tiliin kohdistuvat raportit. warning_preset_id: Valinnainen. Voit silti lisätä mukautetun tekstin esiasetuksen loppuun announcement: - all_day: Kun valittu, vain valittu aikaväli näytetään + all_day: Kun valittuna, vain aikavälin päivät näytetään ends_at: Valinnainen. Tiedote poistetaan automaattisesti tällä hetkellä scheduled_at: Jätä tyhjäksi julkaistaksesi tiedotteen heti starts_at: Valinnainen. Jos tiedotteesi on sidottu tiettyyn aikaväliin @@ -45,14 +45,14 @@ fi: current_password: Turvallisuussyistä kirjoita nykyisen tilin salasana current_username: Vahvista kirjoittamalla nykyisen tilin käyttäjänimi digest: Lähetetään vain pitkän poissaolon jälkeen ja vain, jos olet saanut suoria viestejä poissaolosi aikana - email: Sinulle lähetetään vahvistussähköposti + email: Sinulle lähetetään vahvistusviesti header: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px inbox_url: Kopioi URL-osoite haluamasi välittäjän etusivulta - irreversible: Suodatetut julkaisut katoavat lopullisesti, vaikka suodatin poistettaisiin myöhemmin + irreversible: Suodatetut julkaisut katoavat peruuttamattomasti, vaikka suodatin poistettaisiin myöhemmin locale: Käyttöliittymän, sähköpostien ja puskuilmoitusten kieli - password: Käytä vähintään 8 merkkiä + password: Käytä vähintään 8:aa merkkiä phrase: Täsmää riippumatta tekstin aakkoslajista tai julkaisun sisältövaroituksesta - scopes: Mihin ohjelmointirajapintoihin sovellus pääsee käsiksi. Jos valitset ylätason oikeuden, sinun ei tarvitse valita yksittäisiä. + 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_sensitive: Arkaluonteinen media piilotetaan oletusarvoisesti, ja se voidaan näyttää yhdellä napsautuksella @@ -84,7 +84,7 @@ fi: content_cache_retention_period: Kaikki muiden palvelinten julkaisut (mukaan lukien tehostukset ja vastaukset) poistuvat, kun määritetty määrä päiviä on kulunut, lukuun ottamatta paikallisen käyttäjän vuorovaikutusta näiden julkaisujen kanssa. Tämä sisältää julkaisut, jotka paikallinen käyttäjä on merkinnyt kirjanmerkiksi tai suosikiksi. Myös yksityismaininnat eri palvelinten käyttäjien välillä menetetään, eikä niitä voi palauttaa. Tämä asetus on tarkoitettu käytettäväksi erityistapauksissa ja rikkoo monia käyttäjien odotuksia, kun sitä sovelletaan yleiskäyttöön. custom_css: Voit käyttää mukautettuja tyylejä Mastodonin selainversiossa. favicon: WEBP, PNG, GIF tai JPG. Korvaa oletusarvoisen Mastodonin sivustokuvakkeen haluamallasi kuvakkeella. - mascot: Ohittaa kuvituksen edistyneessä selainkäyttöliittymässä. + mascot: Korvaa kuvituksen edistyneessä selainkäyttöliittymässä. media_cache_retention_period: Etäkäyttäjien tekemien julkaisujen mediatiedostot ovat välimuistissa palvelimellasi. Kun kentän arvo on positiivinen, media poistuu, kun määritetty määrä päiviä on kulunut. Jos mediaa pyydetään sen poistamisen jälkeen, se ladataan uudelleen, jos lähdesisältö on vielä saatavilla. Koska linkkien esikatselun kyselyitä kolmansien osapuolien sivustoille on rajoitettu, on suositeltavaa asettaa tämä arvo vähintään 14 päivään, tai linkkien kortteja ei päivitetä pyynnöstä ennen tätä ajankohtaa. peers_api_enabled: Luettelo verkkotunnuksista, jotka tämä palvelin on kohdannut fediversumissa. Se ei kerro, federoitko tietyn palvelimen kanssa, vaan että palvelimesi on ylipäätään tietoinen siitä. Tätä tietoa käytetään palveluissa, jotka keräävät tilastoja federoinnista yleisellä tasolla. profile_directory: Profiilihakemisto luetteloi kaikki käyttäjät, jotka ovat valinneet olla löydettävissä. @@ -201,7 +201,7 @@ fi: note: Elämäkerta otp_attempt: Kaksivaiheisen todennuksen tunnusluku password: Salasana - phrase: Avainsana tai -fraasi + phrase: Avainsana tai fraasi setting_advanced_layout: Ota edistynyt selainkäyttöliittymä käyttöön setting_aggregate_reblogs: Ryhmitä tehostukset aikajanoilla setting_always_send_emails: Lähetä sähköposti-ilmoitukset aina @@ -255,7 +255,7 @@ fi: peers_api_enabled: Julkaise löydettyjen palvelinten luettelo ohjelmointirajapinnassa profile_directory: Ota profiilihakemisto käyttöön registrations_mode: Kuka voi rekisteröityä - require_invite_text: Vaadi syy liittyä + require_invite_text: Vaadi liittymissyy show_domain_blocks: Näytä verkkotunnusten estot show_domain_blocks_rationale: Näytä, miksi verkkotunnukset on estetty site_contact_email: Yhteyshenkilön sähköpostiosoite @@ -311,7 +311,7 @@ fi: indexable: Sisällytä profiilisivu hakukoneisiin show_application: Näytä, mistä sovelluksesta lähetit julkaisun tag: - listable: Salli tämän aihetunnisteen näkyä hauissa ja ehdotuksissa + listable: Salli tämän aihetunnisteen näkyä hakutuloksissa ja ehdotuksissa name: Aihetunniste trendable: Salli tämän aihetunnisteen näkyä trendeissä usable: Salli julkaisujen käyttää tätä aihetunnistetta paikallisesti @@ -322,7 +322,7 @@ fi: color: Merkin väri highlighted: Näytä rooli merkkinä käyttäjäprofiileissa name: Nimi - permissions_as_keys: Oikeudet + permissions_as_keys: Käyttöoikeudet position: Prioriteetti webhook: events: Käytössä olevat tapahtumat @@ -331,7 +331,7 @@ fi: 'no': Ei not_recommended: Ei suositella overridden: Ohitettu - recommended: Suositeltu + recommended: Suositellaan required: mark: "*" text: vaadittu tieto diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml index 60faa07f27..15ea3094b2 100644 --- a/config/locales/simple_form.ga.yml +++ b/config/locales/simple_form.ga.yml @@ -314,6 +314,7 @@ ga: listable: Lig don hashchlib seo a bheith le feiceáil i gcuardach agus i moltaí name: Haischlib trendable: Lig don haischlib seo a bheith le feiceáil faoi threochtaí + usable: Lig do phostálacha an hashchlib seo a úsáid go háitiúil user: role: Ról time_zone: Crios ama diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index edc3cc8f38..95a334bb3a 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -314,6 +314,7 @@ he: listable: הרשה/י לתגית זו להופיע בחיפושים והצעות name: תגית trendable: הרשה/י לתגית זו להופיע תחת נושאים חמים + usable: הרשה/י להודעות להכיל תגית זו באופן מקומי user: role: תפקיד time_zone: אזור זמן diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index b2ff68c5dd..5fa3aee6c4 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -314,6 +314,7 @@ ko: listable: 이 해시태그가 검색과 추천에 보여지도록 허용 name: 해시태그 trendable: 이 해시태그가 유행에 나타날 수 있도록 허용 + usable: 이 해시태그를 로컬 게시물에서 사용 가능하도록 허용 user: role: 역할 time_zone: 시간대 From da5b45a573808d345839507cf024c8be73b1d610 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Aug 2024 14:36:54 +0200 Subject: [PATCH 048/306] Add endpoints to accept and dismiss multiple notification requests at once (#31242) --- .../v1/notifications/requests_controller.rb | 17 +++++++++- config/routes/api.rb | 5 +++ .../api/v1/notifications/requests_spec.rb | 33 +++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/notifications/requests_controller.rb b/app/controllers/api/v1/notifications/requests_controller.rb index 9ae80c28ed..b4207147c8 100644 --- a/app/controllers/api/v1/notifications/requests_controller.rb +++ b/app/controllers/api/v1/notifications/requests_controller.rb @@ -5,7 +5,8 @@ class Api::V1::Notifications::RequestsController < Api::BaseController before_action -> { doorkeeper_authorize! :write, :'write:notifications' }, except: :index before_action :require_user! - before_action :set_request, except: :index + before_action :set_request, only: [:show, :accept, :dismiss] + before_action :set_requests, only: [:accept_bulk, :dismiss_bulk] after_action :insert_pagination_headers, only: :index @@ -32,6 +33,16 @@ class Api::V1::Notifications::RequestsController < Api::BaseController render_empty end + def accept_bulk + @requests.each { |request| AcceptNotificationRequestService.new.call(request) } + render_empty + end + + def dismiss_bulk + @requests.each(&:destroy!) + render_empty + end + private def load_requests @@ -53,6 +64,10 @@ class Api::V1::Notifications::RequestsController < Api::BaseController @request = NotificationRequest.where(account: current_account).find(params[:id]) end + def set_requests + @requests = NotificationRequest.where(account: current_account, id: Array(params[:id]).uniq.map(&:to_i)) + end + def next_path api_v1_notifications_requests_url pagination_params(max_id: pagination_max_id) unless @requests.empty? end diff --git a/config/routes/api.rb b/config/routes/api.rb index e488bb9187..fa74c025b4 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -155,6 +155,11 @@ namespace :api, format: false do namespace :notifications do resources :requests, only: [:index, :show] do + collection do + post :accept, to: 'requests#accept_bulk' + post :dismiss, to: 'requests#dismiss_bulk' + end + member do post :accept post :dismiss diff --git a/spec/requests/api/v1/notifications/requests_spec.rb b/spec/requests/api/v1/notifications/requests_spec.rb index d3a9753246..e1fe17426a 100644 --- a/spec/requests/api/v1/notifications/requests_spec.rb +++ b/spec/requests/api/v1/notifications/requests_spec.rb @@ -87,4 +87,37 @@ RSpec.describe 'Requests' do end end end + + describe 'POST /api/v1/notifications/requests/accept' do + subject do + post '/api/v1/notifications/requests/accept', params: { id: [notification_request.id] }, headers: headers + end + + let!(:notification_request) { Fabricate(:notification_request, account: user.account) } + + it_behaves_like 'forbidden for wrong scope', 'read read:notifications' + + it 'returns http success and creates notification permission', :aggregate_failures do + subject + + expect(NotificationPermission.find_by(account: notification_request.account, from_account: notification_request.from_account)).to_not be_nil + expect(response).to have_http_status(200) + end + end + + describe 'POST /api/v1/notifications/requests/dismiss' do + subject do + post '/api/v1/notifications/requests/dismiss', params: { id: [notification_request.id] }, headers: headers + end + + let!(:notification_request) { Fabricate(:notification_request, account: user.account) } + + it_behaves_like 'forbidden for wrong scope', 'read read:notifications' + + it 'returns http success and destroys the notification request', :aggregate_failures do + expect { subject }.to change(NotificationRequest, :count).by(-1) + + expect(response).to have_http_status(200) + end + end end From afdfeb585640af53cf7e9c63d82aa56ca8bae1e4 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Aug 2024 22:50:36 +0200 Subject: [PATCH 049/306] Fix click event handling when clicking outside of an open dropdown menu (#31251) --- app/javascript/mastodon/components/dropdown_menu.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/mastodon/components/dropdown_menu.jsx b/app/javascript/mastodon/components/dropdown_menu.jsx index 524dbb927b..49951cfb5f 100644 --- a/app/javascript/mastodon/components/dropdown_menu.jsx +++ b/app/javascript/mastodon/components/dropdown_menu.jsx @@ -39,6 +39,7 @@ class DropdownMenu extends PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); e.stopPropagation(); + e.preventDefault(); } }; From d19edc4c4ab0d700efa70f0df4981ec9931aca22 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:53:41 +0200 Subject: [PATCH 050/306] fix(deps): update dependency axios to v1.7.3 (#31248) 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 f050110cd6..b10c375f70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5142,13 +5142,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0": - version: 1.7.2 - resolution: "axios@npm:1.7.2" + version: 1.7.3 + resolution: "axios@npm:1.7.3" dependencies: follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.0" proxy-from-env: "npm:^1.1.0" - checksum: 10c0/cbd47ce380fe045313364e740bb03b936420b8b5558c7ea36a4563db1258c658f05e40feb5ddd41f6633fdd96d37ac2a76f884dad599c5b0224b4c451b3fa7ae + checksum: 10c0/a18cbe559203efa05fb1fec2d1898e23bf6329bd2575784ee32aa11b5bbe1d54b9f472c49a261294125519cf62aa4fe5ef6e647bb7482eafc15bffe15ab314ce languageName: node linkType: hard From f55099fea3f25a42d2ed3733caa8402d9a0a3f10 Mon Sep 17 00:00:00 2001 From: Emelia Smith Date: Fri, 2 Aug 2024 08:54:48 +0200 Subject: [PATCH 051/306] Increase maximum page size for Admin Domain Management APIs (#31253) --- app/controllers/api/v1/admin/domain_allows_controller.rb | 5 +++-- app/controllers/api/v1/admin/domain_blocks_controller.rb | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/api/v1/admin/domain_allows_controller.rb b/app/controllers/api/v1/admin/domain_allows_controller.rb index 0cd5aebd53..24f68aa1bd 100644 --- a/app/controllers/api/v1/admin/domain_allows_controller.rb +++ b/app/controllers/api/v1/admin/domain_allows_controller.rb @@ -5,6 +5,7 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController include AccountableConcern LIMIT = 100 + MAX_LIMIT = 500 before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:domain_allows' }, only: [:index, :show] before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:domain_allows' }, except: [:index, :show] @@ -47,7 +48,7 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController private def set_domain_allows - @domain_allows = DomainAllow.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) + @domain_allows = DomainAllow.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT, MAX_LIMIT), params_slice(:max_id, :since_id, :min_id)) end def set_domain_allow @@ -67,7 +68,7 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController end def records_continue? - @domain_allows.size == limit_param(LIMIT) + @domain_allows.size == limit_param(LIMIT, MAX_LIMIT) end def resource_params diff --git a/app/controllers/api/v1/admin/domain_blocks_controller.rb b/app/controllers/api/v1/admin/domain_blocks_controller.rb index 28d91ef93c..b44ae2ae2a 100644 --- a/app/controllers/api/v1/admin/domain_blocks_controller.rb +++ b/app/controllers/api/v1/admin/domain_blocks_controller.rb @@ -5,6 +5,7 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController include AccountableConcern LIMIT = 100 + MAX_LIMIT = 500 before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:domain_blocks' }, only: [:index, :show] before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:domain_blocks' }, except: [:index, :show] @@ -59,7 +60,7 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController end def set_domain_blocks - @domain_blocks = DomainBlock.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) + @domain_blocks = DomainBlock.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT, MAX_LIMIT), params_slice(:max_id, :since_id, :min_id)) end def set_domain_block @@ -83,7 +84,7 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController end def records_continue? - @domain_blocks.size == limit_param(LIMIT) + @domain_blocks.size == limit_param(LIMIT, MAX_LIMIT) end def resource_params From 74900195353313f83bbf8fa9e55e67890792c0e7 Mon Sep 17 00:00:00 2001 From: Emelia Smith Date: Fri, 2 Aug 2024 08:56:09 +0200 Subject: [PATCH 052/306] Fix support for IPv6 redis connections in streaming (#31229) --- streaming/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/streaming/index.js b/streaming/index.js index dd9ea0c7f6..8f66362178 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -248,6 +248,10 @@ const redisConfigFromEnv = (env) => { const redisParams = { host: env.REDIS_HOST || '127.0.0.1', port: redisPort, + // Force support for both IPv6 and IPv4, by default ioredis sets this to 4, + // only allowing IPv4 connections: + // https://github.com/redis/ioredis/issues/1576 + family: 0, db: redisDatabase, password: env.REDIS_PASSWORD || undefined, }; From caeae25b558e733d887b0f7cf6420a28d331068e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 07:01:04 +0000 Subject: [PATCH 053/306] New Crowdin Translations (automated) (#31261) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ca.json | 2 +- app/javascript/mastodon/locales/es-MX.json | 1 + app/javascript/mastodon/locales/es.json | 1 + app/javascript/mastodon/locales/fi.json | 10 +++--- app/javascript/mastodon/locales/fo.json | 1 + app/javascript/mastodon/locales/ga.json | 1 + app/javascript/mastodon/locales/gd.json | 41 ++++++++++++++++++++++ app/javascript/mastodon/locales/hu.json | 1 + app/javascript/mastodon/locales/ko.json | 17 ++++++++- app/javascript/mastodon/locales/sq.json | 1 + app/javascript/mastodon/locales/zh-HK.json | 2 ++ config/locales/doorkeeper.gd.yml | 3 ++ config/locales/fi.yml | 16 ++++----- config/locales/gd.yml | 25 +++++++++++++ config/locales/ko.yml | 1 + config/locales/simple_form.gd.yml | 10 ++++++ config/locales/zh-HK.yml | 2 +- 17 files changed, 119 insertions(+), 16 deletions(-) diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 6b79a8efec..2ef926054e 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -300,7 +300,7 @@ "filter_modal.select_filter.subtitle": "Usa una categoria existent o crea'n una de nova", "filter_modal.select_filter.title": "Filtra aquest tut", "filter_modal.title.status": "Filtra un tut", - "filtered_notifications_banner.pending_requests": "Des {count, plural, =0 {de ningú} one {d'una persona} other {de # persones}} que potser coneixes", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {De ningú} one {D'una persona} other {De # persones}} que potser coneixes", "filtered_notifications_banner.title": "Notificacions filtrades", "firehose.all": "Tots", "firehose.local": "Aquest servidor", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 869def31a6..7fe0ae1ba1 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", "filter_modal.select_filter.title": "Filtrar esta publicación", "filter_modal.title.status": "Filtrar una publicación", + "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {nadie} one {una persona} other {# personas}} que puede que conozcas", "filtered_notifications_banner.title": "Notificaciones filtradas", "firehose.all": "Todas", "firehose.local": "Este servidor", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 41dd71c386..3fb1cdf094 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", "filter_modal.select_filter.title": "Filtrar esta publicación", "filter_modal.title.status": "Filtrar una publicación", + "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {nadie} one {una persona} other {# personas}} que puede que conozcas", "filtered_notifications_banner.title": "Notificaciones filtradas", "firehose.all": "Todas", "firehose.local": "Este servidor", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index fc331809e7..168c2de410 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -30,7 +30,7 @@ "account.endorse": "Suosittele profiilissasi", "account.featured_tags.last_status_at": "Viimeisin julkaisu {date}", "account.featured_tags.last_status_never": "Ei julkaisuja", - "account.featured_tags.title": "{name} pitää esillä aihetunnisteita", + "account.featured_tags.title": "Käyttäjän {name} esille nostamat aihetunnisteet", "account.follow": "Seuraa", "account.follow_back": "Seuraa takaisin", "account.followers": "Seuraajat", @@ -211,7 +211,7 @@ "dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat korkeammalle sijalle.", "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat korkeammalle sijalle.", "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat korkeammalle sijalle.", - "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.", + "dismissable_banner.public_timeline": "Nämä ovat tuoreimpia julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.", "domain_block_modal.block": "Estä palvelin", "domain_block_modal.block_account_instead": "Estä sen sijaan @{name}", "domain_block_modal.they_can_interact_with_old_posts": "Tämän palvelimen käyttäjät eivät voi olla vuorovaikutuksessa vanhojen julkaisujesi kanssa.", @@ -300,7 +300,7 @@ "filter_modal.select_filter.subtitle": "Käytä olemassa olevaa luokkaa tai luo uusi", "filter_modal.select_filter.title": "Suodata tämä julkaisu", "filter_modal.title.status": "Suodata julkaisu", - "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Ei keneltäkään} one {Yhdeltä henkilöltä} other {# henkilöltä}}, jonka saatat tuntea", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Ei keneltäkään, jonka} one {1 käyttäjältä, jonka} other {# käyttäjältä, jotka}} saatat tuntea", "filtered_notifications_banner.title": "Suodatetut ilmoitukset", "firehose.all": "Kaikki", "firehose.local": "Tämä palvelin", @@ -366,7 +366,7 @@ "interaction_modal.on_another_server": "Toisella palvelimella", "interaction_modal.on_this_server": "Tällä palvelimella", "interaction_modal.sign_in": "Et ole kirjautunut tälle palvelimelle. Millä palvelimella tilisi sijaitsee?", - "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista palvelintasi, etsi tervetulosähköposti saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)", + "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista palvelintasi, etsi tervetulosähköposti saapuneista viesteistäsi. Voit syöttää myös koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)", "interaction_modal.title.favourite": "Lisää käyttäjän {name} julkaisu suosikkeihin", "interaction_modal.title.follow": "Seuraa käyttäjää {name}", "interaction_modal.title.reblog": "Tehosta käyttäjän {name} julkaisua", @@ -533,7 +533,7 @@ "notifications.filter.all": "Kaikki", "notifications.filter.boosts": "Tehostukset", "notifications.filter.favourites": "Suosikit", - "notifications.filter.follows": "Seuratut", + "notifications.filter.follows": "Seuraamiset", "notifications.filter.mentions": "Maininnat", "notifications.filter.polls": "Äänestyksen tulokset", "notifications.filter.statuses": "Päivitykset seuraamiltasi käyttäjiltä", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 3907051468..a9004ea189 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Brúka ein verandi bólk ella skapa ein nýggjan", "filter_modal.select_filter.title": "Filtrera hendan postin", "filter_modal.title.status": "Filtrera ein post", + "filtered_notifications_banner.pending_requests": "Frá {count, plural, =0 {ongum} one {einum persóni} other {# persónum}}, sum tú kanska kennir", "filtered_notifications_banner.title": "Sáldaðar fráboðanir", "firehose.all": "Allar", "firehose.local": "Hesin ambætarin", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 3880ab0daa..44bc62c755 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Bain úsáid as catagóir reatha nó cruthaigh ceann nua", "filter_modal.select_filter.title": "Déan scagadh ar an bpostáil seo", "filter_modal.title.status": "Déan scagadh ar phostáil", + "filtered_notifications_banner.pending_requests": "Ó {count, plural, =0 {duine ar bith} one {duine amháin} two {# daoine} few {# daoine} many {# daoine} other {# daoine}} b’fhéidir go bhfuil aithne agat orthu", "filtered_notifications_banner.title": "Fógraí scagtha", "firehose.all": "Gach", "firehose.local": "An freastalaí seo", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 846c96b2d6..440654b0db 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -35,7 +35,9 @@ "account.follow_back": "Lean air ais", "account.followers": "Luchd-leantainn", "account.followers.empty": "Chan eil neach sam bith a’ leantainn air a’ chleachdaiche seo fhathast.", + "account.followers_counter": "{count, plural, one {{counter} neach-leantainn} other {{counter} luchd-leantainn}}", "account.following": "A’ leantainn", + "account.following_counter": "{count, plural, one {Tha {counter} a’ leantainn} other {Tha {counter} a’ leantainn}}", "account.follows.empty": "Chan eil an cleachdaiche seo a’ leantainn neach sam bith fhathast.", "account.go_to_profile": "Tadhail air a’ phròifil", "account.hide_reblogs": "Falaich na brosnachaidhean o @{name}", @@ -61,6 +63,7 @@ "account.requested_follow": "Dh’iarr {name} ’gad leantainn", "account.share": "Co-roinn a’ phròifil aig @{name}", "account.show_reblogs": "Seall na brosnachaidhean o @{name}", + "account.statuses_counter": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", "account.unblock": "Dì-bhac @{name}", "account.unblock_domain": "Dì-bhac an àrainn {domain}", "account.unblock_short": "Dì-bhac", @@ -168,21 +171,28 @@ "confirmations.block.confirm": "Bac", "confirmations.delete.confirm": "Sguab às", "confirmations.delete.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às?", + "confirmations.delete.title": "A bheil thu airson am post a sguabadh às?", "confirmations.delete_list.confirm": "Sguab às", "confirmations.delete_list.message": "A bheil thu cinnteach gu bheil thu airson an liosta seo a sguabadh às gu buan?", + "confirmations.delete_list.title": "A bheil thu airson an liosta a sguabadh às?", "confirmations.discard_edit_media.confirm": "Tilg air falbh", "confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?", "confirmations.edit.confirm": "Deasaich", "confirmations.edit.message": "Ma nì thu deasachadh an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", + "confirmations.edit.title": "A bheil thu airson sgrìobhadh thairis air a’ phost?", "confirmations.logout.confirm": "Clàraich a-mach", "confirmations.logout.message": "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?", + "confirmations.logout.title": "A bheil thu airson clàradh a-mach?", "confirmations.mute.confirm": "Mùch", "confirmations.redraft.confirm": "Sguab às ⁊ dèan dreachd ùr", "confirmations.redraft.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às agus dreachd ùr a thòiseachadh? Caillidh tu gach annsachd is brosnachadh air agus thèid freagairtean dhan phost thùsail ’nan dìlleachdanan.", + "confirmations.redraft.title": "A bheil thu airson am post a sguabadh às ⁊ dreachd ùr a dhèanamh dheth?", "confirmations.reply.confirm": "Freagair", "confirmations.reply.message": "Ma bheir thu freagairt an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", + "confirmations.reply.title": "A bheil thu airson sgrìobhadh thairis air a’ phost?", "confirmations.unfollow.confirm": "Na lean tuilleadh", "confirmations.unfollow.message": "A bheil thu cinnteach nach eil thu airson {name} a leantainn tuilleadh?", + "confirmations.unfollow.title": "A bheil thu airson sgur de leantainn a chleachdaiche?", "conversation.delete": "Sguab às an còmhradh", "conversation.mark_as_read": "Cuir comharra gun deach a leughadh", "conversation.open": "Seall an còmhradh", @@ -290,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Cleachd roinn-seòrsa a tha ann no cruthaich tè ùr", "filter_modal.select_filter.title": "Criathraich am post seo", "filter_modal.title.status": "Criathraich post", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Chan eil gin ann} one {O # neach} two {O # neach} few {O # daoine} other {O # duine}} air a bheil thu eòlach ’s dòcha", "filtered_notifications_banner.title": "Brathan criathraichte", "firehose.all": "Na h-uile", "firehose.local": "Am frithealaiche seo", @@ -299,6 +310,7 @@ "follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.", "follow_suggestions.curated_suggestion": "Roghainn an sgioba", "follow_suggestions.dismiss": "Na seall seo a-rithist", + "follow_suggestions.featured_longer": "Chaidh a thaghadh a làmh leis an sgioba aig {domain}", "follow_suggestions.friends_of_friends_longer": "Fèill mhòr am measg nan daoine a leanas tu", "follow_suggestions.hints.featured": "Chaidh a’ phròifil seo a thaghadh le sgioba {domain} a làimh.", "follow_suggestions.hints.friends_of_friends": "Tha fèill mhòr air a’ phròifil seo am measg nan daoine a leanas tu.", @@ -308,6 +320,7 @@ "follow_suggestions.personalized_suggestion": "Moladh pearsanaichte", "follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhòr", "follow_suggestions.popular_suggestion_longer": "Fèill mhòr air {domain}", + "follow_suggestions.similar_to_recently_followed_longer": "Tha e coltach ri pròifilean a lean thu o chionn goirid", "follow_suggestions.view_all": "Seall na h-uile", "follow_suggestions.who_to_follow": "Molaidhean leantainn", "followed_tags": "Tagaichean hais ’gan leantainn", @@ -403,6 +416,8 @@ "limited_account_hint.action": "Seall a’ phròifil co-dhiù", "limited_account_hint.title": "Chaidh a’ phròifil seo fhalach le maoir {domain}.", "link_preview.author": "Le {name}", + "link_preview.more_from_author": "Barrachd le {name}", + "link_preview.shares": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", "lists.account.add": "Cuir ris an liosta", "lists.account.remove": "Thoir air falbh on liosta", "lists.delete": "Sguab às an liosta", @@ -430,6 +445,8 @@ "mute_modal.title": "A bheil thu airson an cleachdaiche a mhùchadh?", "mute_modal.you_wont_see_mentions": "Chan fhaic thu na postaichean a bheir iomradh orra.", "mute_modal.you_wont_see_posts": "Chì iad na postaichean agad fhathast ach chan fhaic thu na postaichean aca-san.", + "name_and_others": "{name} ’s {count, plural, one {# eile} other {# eile}}", + "name_and_others_with_link": "{name} ’s {count, plural, one {# eile} other {# eile}}", "navigation_bar.about": "Mu dhèidhinn", "navigation_bar.advanced_interface": "Fosgail san eadar-aghaidh-lìn adhartach", "navigation_bar.blocks": "Cleachdaichean bacte", @@ -457,13 +474,27 @@ "navigation_bar.security": "Tèarainteachd", "not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.", "notification.admin.report": "Rinn {name} gearan mu {target}", + "notification.admin.report_account": "Rinn {name} gearan mu {count, plural, one {# phost} two {# phost} few {# postaichean} other {# post}} le {target} air adhbhar {category}", + "notification.admin.report_account_other": "Rinn {name} gearan mu {count, plural, one {# phost} two {# phost} few {# postaichean} other {# post}} le {target}", + "notification.admin.report_statuses": "Rinn {name} gearan mu {target} air adhbhar {category}", + "notification.admin.report_statuses_other": "Rinn {name} gearan mu {target}", "notification.admin.sign_up": "Chlàraich {name}", "notification.favourite": "Is annsa le {name} am post agad", "notification.follow": "Tha {name} ’gad leantainn a-nis", "notification.follow_request": "Dh’iarr {name} ’gad leantainn", "notification.mention": "Thug {name} iomradh ort", "notification.moderation-warning.learn_more": "Barrachd fiosrachaidh", + "notification.moderation_warning": "Fhuair thu rabhadh on mhaorsainneachd", + "notification.moderation_warning.action_delete_statuses": "Chaidh cuid dhe na postaichean agad a thoirt air falbh.", + "notification.moderation_warning.action_disable": "Chaidh an cunntas agad a chur à comas.", + "notification.moderation_warning.action_mark_statuses_as_sensitive": "Chaidh comharra a chur ri cuid dhe na postaichean agad gu bheil iad frionasach.", + "notification.moderation_warning.action_none": "Fhuair an cunntas agad rabhadh on mhaorsainneachd.", + "notification.moderation_warning.action_sensitive": "Thèid comharra na frionasachd a chur ris na postaichean agad o seo a-mach.", + "notification.moderation_warning.action_silence": "Chaidh an cunntas agad a chuingeachadh.", + "notification.moderation_warning.action_suspend": "Chaidh an cunntas agad a chur à rèim.", "notification.own_poll": "Thàinig an cunntas-bheachd agad gu crìoch", + "notification.poll": "Thàinig cunntas-bheachd sa bhòt thu gu crìoch", + "notification.private_mention": "Thug {name} iomradh ort gu prìobhaideach", "notification.reblog": "Bhrosnaich {name} am post agad", "notification.relationships_severance_event": "Chaill thu dàimhean le {name}", "notification.relationships_severance_event.account_suspension": "Chuir rianaire aig {from} {target} à rèim agus is ciall dha sin nach fhaigh thu naidheachdan uapa ’s nach urrainn dhut conaltradh leotha.", @@ -478,9 +509,12 @@ "notification_requests.title": "Brathan criathraichte", "notifications.clear": "Falamhaich na brathan", "notifications.clear_confirmation": "A bheil thu cinnteach gu bheil thu airson na brathan uile agad fhalamhachadh gu buan?", + "notifications.clear_title": "A bheil thu airson na brathan fhalamhachadh?", "notifications.column_settings.admin.report": "Gearanan ùra:", "notifications.column_settings.admin.sign_up": "Clàraidhean ùra:", "notifications.column_settings.alert": "Brathan deasga", + "notifications.column_settings.beta.category": "Gleusan deuchainneil", + "notifications.column_settings.beta.grouping": "Buidhnich na brathan", "notifications.column_settings.favourite": "Annsachdan:", "notifications.column_settings.filter_bar.advanced": "Seall a h-uile roinn-seòrsa", "notifications.column_settings.filter_bar.category": "Bàr-criathraidh luath", @@ -644,9 +678,13 @@ "report.unfollow_explanation": "Tha thu a’ leantainn a’ chunntais seo. Sgur dhen leantainn ach nach fhaic thu na puist aca nad dhachaigh.", "report_notification.attached_statuses": "Tha {count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}} ceangailte ris", "report_notification.categories.legal": "Laghail", + "report_notification.categories.legal_sentence": "susbaint mhì-laghail", "report_notification.categories.other": "Eile", + "report_notification.categories.other_sentence": "eile", "report_notification.categories.spam": "Spama", + "report_notification.categories.spam_sentence": "spama", "report_notification.categories.violation": "Briseadh riaghailte", + "report_notification.categories.violation_sentence": "briseadh riaghailte", "report_notification.open": "Fosgail an gearan", "search.no_recent_searches": "Cha do rinn thu lorg o chionn goirid", "search.placeholder": "Lorg", @@ -674,8 +712,11 @@ "server_banner.about_active_users": "Daoine a chleachd am frithealaiche seo rè an 30 latha mu dheireadh (Cleachdaichean gnìomhach gach mìos)", "server_banner.active_users": "cleachdaichean gnìomhach", "server_banner.administered_by": "Rianachd le:", + "server_banner.is_one_of_many": "Is {domain} fear de dh’iomadh frithealaiche Mastodon neo-eisimeileach as urrainn dhut cleachdadh airson pàirt a ghabhail sa cho-shaoghal.", "server_banner.server_stats": "Stadastaireachd an fhrithealaiche:", "sign_in_banner.create_account": "Cruthaich cunntas", + "sign_in_banner.follow_anyone": "Lean duine sam bith air a’ cho-shaoghal agus faic a h-uile càil a-rèir an ama. Chan eil sgeul air algairimean, sanasachd no clickbait.", + "sign_in_banner.mastodon_is": "Is Mastodon an dòigh as fheàrr airson sùil a chumail air na tha a’ dol.", "sign_in_banner.sign_in": "Clàraich a-steach", "sign_in_banner.sso_redirect": "Clàraich a-steach no clàraich leinn", "status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 967efd8d0c..9e9a3cd251 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Válassz egy meglévő kategóriát, vagy hozz létre egy újat", "filter_modal.select_filter.title": "E bejegyzés szűrése", "filter_modal.title.status": "Egy bejegyzés szűrése", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {senkitől} one {egy valószínűleg ismerős személytől} other {# valószínűleg ismerős személytől}}", "filtered_notifications_banner.title": "Szűrt értesítések", "firehose.all": "Összes", "firehose.local": "Ez a kiszolgáló", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 4f70e3bcf2..a9b634dbae 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "기존의 카테고리를 사용하거나 새로 하나를 만듧니다", "filter_modal.select_filter.title": "이 게시물을 필터", "filter_modal.title.status": "게시물 필터", + "filtered_notifications_banner.pending_requests": "알 수도 있는 {count, plural, =0 {0 명} one {한 명} other {# 명}}의 사람들로부터", "filtered_notifications_banner.title": "걸러진 알림", "firehose.all": "모두", "firehose.local": "이 서버", @@ -444,6 +445,8 @@ "mute_modal.title": "사용자를 뮤트할까요?", "mute_modal.you_wont_see_mentions": "그를 멘션하는 게시물을 더는 보지 않게 됩니다.", "mute_modal.you_wont_see_posts": "내가 작성한 게시물을 볼 수는 있지만, 나는 그가 작성한 것을 보지 않게 됩니다.", + "name_and_others": "{name} 외 {count, plural, other {# 명}}", + "name_and_others_with_link": "{name} 외 {count, plural, other {# 명}}", "navigation_bar.about": "정보", "navigation_bar.advanced_interface": "고급 웹 인터페이스에서 열기", "navigation_bar.blocks": "차단한 사용자", @@ -471,6 +474,10 @@ "navigation_bar.security": "보안", "not_signed_in_indicator.not_signed_in": "이 정보에 접근하려면 로그인을 해야 합니다.", "notification.admin.report": "{name} 님이 {target}를 신고했습니다", + "notification.admin.report_account": "{name} 님이 {target}의 게시물 {count, plural, other {# 개}}를 {category}로 신고했습니다", + "notification.admin.report_account_other": "{name} 님이 {target}의 게시물 {count, plural, other {# 개}}를 신고했습니다", + "notification.admin.report_statuses": "{name} 님이 {target}을 {category}로 신고했습니다", + "notification.admin.report_statuses_other": "{name} 님이 {target}을 신고했습니다", "notification.admin.sign_up": "{name} 님이 가입했습니다", "notification.favourite": "{name} 님이 내 게시물을 좋아합니다", "notification.follow": "{name} 님이 나를 팔로우했습니다", @@ -486,6 +493,8 @@ "notification.moderation_warning.action_silence": "계정이 제한되었습니다.", "notification.moderation_warning.action_suspend": "계정이 정지되었습니다.", "notification.own_poll": "설문을 마침", + "notification.poll": "참여한 투표가 끝났습니다", + "notification.private_mention": "{name} 님이 나를 개인적으로 멘션했습니다", "notification.reblog": "{name} 님이 부스트했습니다", "notification.relationships_severance_event": "{name} 님과의 연결이 끊어졌습니다", "notification.relationships_severance_event.account_suspension": "{from}의 관리자가 {target}를 정지시켰기 때문에 그들과 더이상 상호작용 할 수 없고 정보를 받아볼 수 없습니다.", @@ -504,6 +513,8 @@ "notifications.column_settings.admin.report": "새 신고:", "notifications.column_settings.admin.sign_up": "새로운 가입:", "notifications.column_settings.alert": "데스크탑 알림", + "notifications.column_settings.beta.category": "실험적인 기능", + "notifications.column_settings.beta.grouping": "알림 그룹화", "notifications.column_settings.favourite": "좋아요:", "notifications.column_settings.filter_bar.advanced": "모든 범주 표시", "notifications.column_settings.filter_bar.category": "빠른 필터 막대", @@ -667,9 +678,13 @@ "report.unfollow_explanation": "이 계정을 팔로우하고 있습니다. 홈 피드에서 더 이상 게시물을 받아 보지 않으려면 팔로우를 해제하십시오.", "report_notification.attached_statuses": "{count}개의 게시물 첨부됨", "report_notification.categories.legal": "법령", + "report_notification.categories.legal_sentence": "불법적인 내용", "report_notification.categories.other": "기타", + "report_notification.categories.other_sentence": "기타", "report_notification.categories.spam": "스팸", + "report_notification.categories.spam_sentence": "스팸", "report_notification.categories.violation": "규칙 위반", + "report_notification.categories.violation_sentence": "규칙 위반", "report_notification.open": "신고 열기", "search.no_recent_searches": "최근 검색 기록이 없습니다", "search.placeholder": "검색", @@ -761,7 +776,7 @@ "status.title.with_attachments": "{user} 님이 {attachmentCount, plural, one {첨부파일} other {{attachmentCount}개의 첨부파일}}과 함께 게시함", "status.translate": "번역", "status.translated_from_with": "{provider}에 의해 {lang}에서 번역됨", - "status.uncached_media_warning": "마리보기 허용되지 않음", + "status.uncached_media_warning": "미리보기를 사용할 수 없습니다", "status.unmute_conversation": "이 대화의 뮤트 해제하기", "status.unpin": "고정 해제", "subscribed_languages.lead": "변경 후에는 선택한 언어들로 작성된 게시물들만 홈 타임라인과 리스트 타임라인에 나타나게 됩니다. 아무 것도 선택하지 않으면 모든 언어로 작성된 게시물을 받아봅니다.", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index a9a98e239d..078092b50a 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Përdorni një kategori ekzistuese, ose krijoni një të re", "filter_modal.select_filter.title": "Filtroje këtë postim", "filter_modal.title.status": "Filtroni një postim", + "filtered_notifications_banner.pending_requests": "Nga {count, plural, =0 {askush} one {një person} other {# vetë}} që mund të njihni", "filtered_notifications_banner.title": "Njoftime të filtruar", "firehose.all": "Krejt", "firehose.local": "Këtë shërbyes", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index f5a7c31a21..389b5c4a3a 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -168,6 +168,7 @@ "confirmations.block.confirm": "封鎖", "confirmations.delete.confirm": "刪除", "confirmations.delete.message": "你確定要刪除這文章嗎?", + "confirmations.delete.title": "刪除帖文?", "confirmations.delete_list.confirm": "刪除", "confirmations.delete_list.message": "你確定要永久刪除這列表嗎?", "confirmations.discard_edit_media.confirm": "捨棄", @@ -176,6 +177,7 @@ "confirmations.edit.message": "現在編輯將會覆蓋你目前正在撰寫的訊息。你確定要繼續嗎?", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "確定要登出嗎?", + "confirmations.logout.title": "登出?", "confirmations.mute.confirm": "靜音", "confirmations.redraft.confirm": "刪除並編輯", "confirmations.redraft.message": "你確定要移除並重新起草這篇帖文嗎?你將會失去最愛和轉推,而回覆也會與原始帖文斷開連接。", diff --git a/config/locales/doorkeeper.gd.yml b/config/locales/doorkeeper.gd.yml index 4db4497b4e..1db1a90f80 100644 --- a/config/locales/doorkeeper.gd.yml +++ b/config/locales/doorkeeper.gd.yml @@ -83,6 +83,7 @@ gd: access_denied: Dhiùlt sealbhadair a’ ghoireis no am frithealaiche ùghdarrachaidh an t-iarrtas. credential_flow_not_configured: Dh’fhàillig le sruth cruthachadh teisteas facail-fhaire do shealbhadair a’ ghoireis ri linn Doorkeeper.configure.resource_owner_from_credentials gun rèiteachadh. invalid_client: Dh’fhàillig le dearbhadh a’ chliant ri linn cliant nach aithne dhuinn, dearbhadh cliant nach deach gabhail a-staigh no dòigh dearbhaidh ris nach cuirear taic. + invalid_code_challenge_method: Feumaidh an dòigh an dùbhlain a bhith na S256, chan eil taic ri plain. invalid_grant: Chan eil an t-ùghdarrachadh a chaidh a thoirt seachad dligheach, dh’fhalbh an ùine air, chaidh a chùl-ghairm no chan eil e a-rèir URI an ath-stiùiridh a chaidh a chleachdadh san iarrtas ùghdarrachaidh no chaidh fhoillseachadh le cliant eile. invalid_redirect_uri: Chan eil an URI ath-stiùiridh a chaidh a ghabhail a-staigh dligheach. invalid_request: @@ -135,6 +136,7 @@ gd: media: Ceanglachain mheadhanan mutes: Mùchaidhean notifications: Brathan + profile: A’ phròifil Mastodon agad push: Brathan putaidh reports: Gearanan search: Lorg @@ -165,6 +167,7 @@ gd: admin:write:reports: gnìomhan na maorsainneachd air gearanan crypto: cleachdadh crioptachaidh o cheann gu ceann follow: atharrachadh dàimhean chunntasan + profile: leughadh fiosrachadh pròifil a’ chunntais agad a-mhàin push: faighinn nam brathan putaidh agad read: leughadh dàta sam bith a’ cunntais agad read:accounts: sealltainn fiosrachadh nan cunntasan diff --git a/config/locales/fi.yml b/config/locales/fi.yml index a9a8f19950..d90de587b7 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -775,7 +775,7 @@ fi: trends: Trendit domain_blocks: all: Kaikille - disabled: Ei kenellekkään + disabled: Ei kenellekään users: Kirjautuneille paikallisille käyttäjille registrations: moderation_recommandation: Varmista, että sinulla on riittävä ja toimintavalmis joukko moderaattoreita, ennen kuin avaat rekisteröitymisen kaikille! @@ -896,8 +896,8 @@ fi: unreviewed: Tarkastamaton usable: Käytettävissä name: Nimi - newest: Uusin - oldest: Vanhin + newest: Uusimmat + oldest: Vanhimmat reset: Palauta review: Tarkastuksen tila search: Hae @@ -1130,7 +1130,7 @@ fi: new_confirmation_instructions_sent: Saat pian uuden vahvistuslinkin sisältävän sähköpostiviestin! title: Tarkista sähköpostilaatikkosi sign_in: - preamble_html: Kirjaudu %{domain}-tunnuksellasi. Jos tilisi sijaitsee eri palvelimella, et voi kirjautua tässä. + preamble_html: Kirjaudu %{domain}-tunnuksellasi. Jos tilisi on eri palvelimella, et voi kirjautua tässä. title: Kirjaudu palvelimelle %{domain} sign_up: manual_review: Palvelimen %{domain} ylläpito tarkastaa rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja siitä, miksi haluat luoda käyttäjätilin palvelimelle %{domain}. @@ -1262,8 +1262,8 @@ fi: featured_tags: add_new: Lisää uusi errors: - limit: Pidät esillä jo aihetunnisteiden enimmäismäärää - hint_html: "Pidä tärkeimpiä aihetunnisteitasi esillä profiilissasi. Erinomainen työkalu, jolla pidät kirjaa luovista teoksistasi ja pitkäaikaisista projekteistasi. Esillä pitämäsi aihetunnisteet ovat näyttävällä paikalla profiilissasi ja mahdollistavat nopean pääsyn julkaisuihisi." + limit: Olet nostanut esille jo enimmäismäärän aihetunnisteita + hint_html: "Nosta tärkeimmät aihetunnisteesi esille profiilissasi. Erinomainen työkalu, jolla pidät kirjaa luovista teoksistasi ja pitkäaikaisista projekteistasi. Esille nostamasi aihetunnisteet ovat näyttävällä paikalla profiilissasi ja mahdollistavat nopean pääsyn julkaisuihisi." filters: contexts: account: Profiilit @@ -1593,7 +1593,7 @@ fi: invited: Kutsutut last_active: Viimeksi aktiiviset most_recent: Viimeisimmät - moved: Muuttanut + moved: Muuttaneet mutual: Seuraatte toisianne primary: Ensisijaiset relationship: Seurantasuhde @@ -1675,7 +1675,7 @@ fi: development: Kehitys edit_profile: Muokkaa profiilia export: Vie tietoja - featured_tags: Esillä pidettävät aihetunnisteet + featured_tags: Esille nostetut aihetunnisteet import: Tuo tietoja import_and_export: Tuonti ja vienti migrate: Tilin muutto toisaalle diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 52b25e2854..b9f0260f52 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -232,6 +232,7 @@ gd: update_custom_emoji: Ùraich an t-Emoji gnàthaichte update_domain_block: Ùraich bacadh na h-àrainne update_ip_block: Ùraich an riaghailt IP + update_report: Ùraich an gearan update_status: Ùraich am post update_user_role: Ùraich an dreuchd actions: @@ -291,6 +292,7 @@ gd: update_custom_emoji_html: Dh’ùraich %{name} an Emoji %{target} update_domain_block_html: Dh’ùraich %{name} bacadh na h-àrainne %{target} update_ip_block_html: Sguab %{name} às riaghailt dhan IP %{target} + 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} deleted_account: chaidh an cunntas a sguabadh às @@ -298,6 +300,7 @@ gd: filter_by_action: Criathraich a-rèir gnìomha filter_by_user: Criathraich a-rèir cleachdaiche title: Sgrùd an loga + unavailable_instance: "(chan eil ainm na h-àrainn ri fhaighinn)" announcements: destroyed_msg: Chaidh am brath-fios a sguabadh às! edit: @@ -484,6 +487,9 @@ gd: title: Molaidhean leantainn unsuppress: Aisig am moladh leantainn instances: + audit_log: + title: Logaichean sgrùdaidh o chionn goirid + view_all: Seall na logaichean sgrùdaidh slàna availability: description_html: few: Ma dh’fhàilligeas an lìbhrigeadh dhan àrainn fad %{count} làithean, chan fheuch sinn a-rithist leis an lìbhrigeadh ach às dèidh lìbhrigeadh fhaighinn on àrainn ud fhèin. @@ -660,6 +666,7 @@ gd: report: 'Gearan air #%{id}' reported_account: Cunntas mun a chaidh a ghearan reported_by: Chaidh gearan a dhèanamh le + reported_with_application: Chaidh an gearan a dhèanamh le aplacaid resolved: Air fhuasgladh resolved_msg: Chaidh an gearan fhuasgladh! skip_to_actions: Geàrr leum dha na gnìomhan @@ -779,6 +786,7 @@ gd: desc_html: Tha seo an eisimeil air sgriobtaichean hCaptcha on taobh a-muigh a dh’fhaodadh a bhith ’na dhragh tèarainteachd ’s prìobhaideachd. A bharrachd air sin, nì seo an clàradh mòran nas do-ruigsinn no chuid (gu h-àraidh an fheadhainn air a bheil ciorram). Air na h-adhbharan sin, beachdaich air dòighean eile mar clàradh stèidhichte air aontachadh no cuireadh. title: Iarr air cleachdaichean ùra gum fuasgail iad CAPTCHA gus an cunntas aca a dhearbhadh content_retention: + danger_zone: Earrann chunnartach preamble: Stiùirich mar a tha susbaint an luchd-cleachdaidh ’ga stòradh ann am Mastodon. title: Glèidheadh na susbaint default_noindex: @@ -905,7 +913,23 @@ gd: action: Thoir sùil an-seo airson barrachd fiosrachaidh message_html: "Chaidh stòras nan oibseactan agad a dhroch-rèiteachadh. Tha prìobhaideachd an luchd-cleachdaidh agad fo chunnart." tags: + moderation: + not_trendable: Chan fhaod a threandadh + not_usable: Cha ghabh a chleachdadh + pending_review: A’ feitheamh air lèirmheas + review_requested: Chaidh lèirmheas iarraidh + reviewed: Chaidh lèirmheas a dhèanamh air + title: Staid + trendable: Faodaidh a threandadh + unreviewed: Gun lèirmheas + usable: Gabhaidh a chleachdadh + name: Ainm + newest: As ùire + oldest: As sine + reset: Ath-shuidhich review: Dèan lèirmheas air an staid + search: Lorg + title: Tagaichean hais updated_msg: Chaidh roghainnean an taga hais ùrachadh title: Rianachd trends: @@ -983,6 +1007,7 @@ gd: delete: Sguab às edit_preset: Deasaich rabhadh ro-shuidhichte empty: Cha do mhìnich thu ro-sheataichean rabhaidhean fhathast. + title: Ro-sheataichean rabhaidhean webhooks: add_new: Cuir puing-dheiridh ris delete: Sguab às diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 18fe9cf992..4d21a7dd3d 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -632,6 +632,7 @@ ko: report: '신고 #%{id}' reported_account: 신고 대상 계정 reported_by: 신고자 + reported_with_application: 신고에 사용된 앱 resolved: 해결 resolved_msg: 신고를 잘 해결했습니다! skip_to_actions: 작업으로 건너뛰기 diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 946320aa04..4375feb492 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -77,10 +77,15 @@ gd: warn: Falaich an t-susbaint chriathraichte air cùlaibh rabhaidh a dh’innseas tiotal na criathraige form_admin_settings: activity_api_enabled: Cunntasan nam postaichean a chaidh fhoillseachadh gu h-ionadail, nan cleachdaichean gnìomhach ’s nan clàraidhean ùra an am bucaidean seachdaineil + app_icon: WEBP, PNG, GIF no JPG. Tar-àithnidh seo ìomhaigheag bhunaiteach na h-aplacaid air uidheaman mobile le ìomhaigheag ghnàthaichte. + backups_retention_period: "’S urrainn do chleachdaichean tasg-lannan dhe na postaichean aca a gintinn airson an luchdadh a-nuas an uairsin. Nuair a bhios luach dearbh air, thèid na tasg-lannan a sguabadh às on stòras agad gu fèin-obrachail às dèidh an àireamh de làithean a shònraich thu." bootstrap_timeline_accounts: Thèid na cunntasan seo a phrìneachadh air bàrr nam molaidhean leantainn dhan luchd-cleachdaidh ùr. closed_registrations_message: Thèid seo a shealltainn nuair a bhios an clàradh dùinte + content_cache_retention_period: Thèid a h-uile post o fhrithealaiche sam bith eile (a’ gabhail a-staigh brosnachaidhean is freagairtean) a sguabadh às às dèidh na h-àireimh de làithean a shònraich thu ’s gun diù a chon air eadar-ghabhail ionadail air na postaichean ud. Gabhaidh seo a-steach na postaichean a chuir cleachdaiche ionadail ris na h-annsachdan aca no comharran-lìn riutha. Thèid iomraidhean prìobhaideach eadar cleachdaichean o ionstansan diofraichte air chall cuideachd agus cha ghabh an aiseag idir. Tha an roghainn seo do dh’ionstansan sònraichte a-mhàin agus briseadh e dùilean an luchd-cleachdaidh nuair a rachadh a chleachdadh gu coitcheann. custom_css: "’S urrainn dhut stoidhlean gnàthaichte a chur an sàs air an tionndadh-lìn de Mhastodon." + favicon: WEBP, PNG, GIF no JPG. Tar-àithnidh seo favicon bunaiteach Mhastodon le ìomhaigheag ghnàthaichte. mascot: Tar-àithnidh seo an sgead-dhealbh san eadar-aghaidh-lìn adhartach. + media_cache_retention_period: Thèid faidhlichean meadhain o phostaichean a chruthaich cleachdaichean cèine a chur ri tasgadan an fhrithealaiche agad. Nuair a shuidhicheas tu seo air luach dearbh, thèid na meadhanan a sguabadh às às dèidh na h-àireimh de làithean a shònraich thu. Ma tha dàta meadhain ga iarraidh às dèidh a sguabaidh às, thèid a luchdadh a-nuas a-rithist ma tha susbaint an tùis ri fhaighinn fhathast. Ri linn cuingeachaidhean air mar a cheasnaicheas cairtean ro-sheallaidh làraichean threas-phàrtaidhean, mholamaid gun suidhich thu an luach seo air 14 làithean ar a char as giorra no cha dèid an ùrachadh nuair a thèid an iarraidh ron àm sin. peers_api_enabled: Seo liosta de dh’ainmean àrainne ris an do thachair am frithealaiche seo sa cho-shaoghal. Chan eil dàta sam bith ’ga ghabhail a-staigh an-seo mu a bheil thu co-naisgte ri frithealaiche sònraichte gus nach eil ach dìreach gu bheil am frithealaiche agad eòlach air. Thèid seo a chleachdadh le seirbheisean a chruinnicheas stadastaireachd air a’ cho-nasgadh san fharsaingeachd. profile_directory: Seallaidh eòlaire nam pròifil liosta dhen luchd-cleachdaidh a dh’aontaich gun gabh an rùrachadh. require_invite_text: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil @@ -206,6 +211,7 @@ gd: setting_default_privacy: Prìobhaideachd postaidh 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 + setting_disable_hover_cards: Na ro-sheall pròifil nuair a dh’fhanas mi os a cionn setting_disable_swiping: Cuir gluasadan grad-shlaighdidh à comas setting_display_media: Sealltainn nam meadhanan setting_display_media_default: Bun-roghainn @@ -237,10 +243,13 @@ gd: warn: Falaich le rabhadh form_admin_settings: activity_api_enabled: Foillsich agragaid dhen stadastaireachd mu ghnìomhachd nan cleachdaichean san API + app_icon: Ìomhaigheag na h-aplacaid backups_retention_period: Ùine glèidhidh aig tasg-lannan an luchd-cleachdaidh bootstrap_timeline_accounts: Mol na cunntasan seo do chleachdaichean ùra an-còmhnaidh closed_registrations_message: Teachdaireachd ghnàthaichte nuair nach eil clàradh ri fhaighinn + content_cache_retention_period: Ùine glèidhidh aig susbaint chèin custom_css: CSS gnàthaichte + favicon: Favicon mascot: Suaichnean gnàthaichte (dìleabach) media_cache_retention_period: Ùine glèidhidh aig tasgadan nam meadhanan peers_api_enabled: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API @@ -305,6 +314,7 @@ gd: listable: Faodaidh an taga hais seo nochdadh ann an toraidhean luirg ’s am measg nam molaidhean name: Taga hais trendable: Faodaidh an taga hais seo nochdadh am measg nan treandaichean + usable: Faodaidh postaichean an taga hais seo a chleachdadh gu h-ionadail user: role: Dreuchd time_zone: Roinn-tìde diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index ddc6571e6d..6ec0b09834 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1739,7 +1739,7 @@ zh-HK: system: 自動(使用系統主題) time: formats: - default: "%Y年%-m月%d日 %H:%M" + default: "%Y年%b月%d日 %H:%M" month: "%b %Y" time: "%H:%M" with_time_zone: "%b %d, %Y, %H:%M %Z" From 6a27a8c3e74d08ae8d3477ae0a40c1b2e2995e4b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 12:01:41 +0200 Subject: [PATCH 054/306] fix(deps): update babel monorepo (#31167) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 359 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 185 insertions(+), 174 deletions(-) diff --git a/yarn.lock b/yarn.lock index b10c375f70..bdd3bd9837 100644 --- a/yarn.lock +++ b/yarn.lock @@ -52,45 +52,45 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/compat-data@npm:7.24.8" - checksum: 10c0/7f465e9d8e44c5b516eeb3001362a3cd9a6df51dd90d3ac9868e1e7fa631ac57fc781cec6700110d4f555ba37fe59c4a71927b445106fe0062e79e79ffe11091 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/compat-data@npm:7.25.2" + checksum: 10c0/5bf1f14d6e5f0d37c19543e99209ff4a94bb97915e1ce01e5334a144aa08cd56b6e62ece8135dac77e126723d63d4d4b96fc603a12c43b88c28f4b5e070270c5 languageName: node linkType: hard "@babel/core@npm:^7.10.4, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.22.1, @babel/core@npm:^7.24.4": - version: 7.24.9 - resolution: "@babel/core@npm:7.24.9" + version: 7.25.2 + resolution: "@babel/core@npm:7.25.2" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.24.9" - "@babel/helper-compilation-targets": "npm:^7.24.8" - "@babel/helper-module-transforms": "npm:^7.24.9" - "@babel/helpers": "npm:^7.24.8" - "@babel/parser": "npm:^7.24.8" - "@babel/template": "npm:^7.24.7" - "@babel/traverse": "npm:^7.24.8" - "@babel/types": "npm:^7.24.9" + "@babel/generator": "npm:^7.25.0" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-module-transforms": "npm:^7.25.2" + "@babel/helpers": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.2" + "@babel/types": "npm:^7.25.2" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/e104ec6efbf099f55184933e9ab078eb5821c792ddfef3e9c6561986ec4ff103f5c11e3d7d6e5e8929e50e2c58db1cc80e5b6f14b530335b6622095ec4b4124c + checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 languageName: node linkType: hard -"@babel/generator@npm:^7.24.8, @babel/generator@npm:^7.24.9, @babel/generator@npm:^7.7.2": - version: 7.24.9 - resolution: "@babel/generator@npm:7.24.9" +"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.7.2": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" dependencies: - "@babel/types": "npm:^7.24.9" + "@babel/types": "npm:^7.25.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^2.5.1" - checksum: 10c0/cd1f7edce7717462546c349e15289d1267a3ed627c6f6583fbf51e78eacacc6500ec2f0024f08f1cc7138989e575635b931acf4549f9e728017a22176a9ea6b6 + checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 languageName: node linkType: hard @@ -123,16 +123,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-compilation-targets@npm:7.24.8" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8, @babel/helper-compilation-targets@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-compilation-targets@npm:7.25.2" dependencies: - "@babel/compat-data": "npm:^7.24.8" + "@babel/compat-data": "npm:^7.25.2" "@babel/helper-validator-option": "npm:^7.24.8" browserslist: "npm:^4.23.1" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/2885c44ef6aaf82b7e4352b30089bb09fbe08ed5ec24eb452c2bdc3c021e2a65ab412f74b3d67ec1398da0356c730b33a2ceca1d67d34c85080d31ca6efa9aec + checksum: 10c0/de10e986b5322c9f807350467dc845ec59df9e596a5926a3b5edbb4710d8e3b8009d4396690e70b88c3844fe8ec4042d61436dd4b92d1f5f75655cf43ab07e99 languageName: node linkType: hard @@ -155,16 +155,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7, @babel/helper-create-regexp-features-plugin@npm:^7.25.0": + version: 7.25.2 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.24.7" regexpu-core: "npm:^5.3.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/ed611a7eb0c71843f9cdc471eeb38767972229f9225f7aaa90d124d7ee0062cf6908fd53ee9c34f731394c429594f06049a7738a71d342e0191d4047b2fc0ac2 + checksum: 10c0/85a7e3639c118856fb1113f54fb7e3bf7698171ddfd0cd6fccccd5426b3727bc1434fe7f69090441dcde327feef9de917e00d35e47ab820047057518dd675317 languageName: node linkType: hard @@ -202,22 +202,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-hoist-variables@npm:7.24.7" +"@babel/helper-member-expression-to-functions@npm:^7.24.7, @babel/helper-member-expression-to-functions@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/19ee37563bbd1219f9d98991ad0e9abef77803ee5945fd85aa7aa62a67c69efca9a801696a1b58dda27f211e878b3327789e6fd2a6f6c725ccefe36774b5ce95 - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/9638c1d33cf6aba028461ccd3db6061c76ff863ca0d5013dd9a088bf841f2f77c46956493f9da18355c16759449d23b74cc1de4da357ade5c5c34c858f840f0a + "@babel/traverse": "npm:^7.24.8" + "@babel/types": "npm:^7.24.8" + checksum: 10c0/7e14a5acc91f6cd26305a4441b82eb6f616bd70b096a4d2099a968f16b26d50207eec0b9ebfc466fefd62bd91587ac3be878117cdfec819b7151911183cb0e5a languageName: node linkType: hard @@ -231,18 +222,17 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.24.9": - version: 7.24.9 - resolution: "@babel/helper-module-transforms@npm:7.24.9" +"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.0, @babel/helper-module-transforms@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-module-transforms@npm:7.25.2" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" "@babel/helper-module-imports": "npm:^7.24.7" "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-split-export-declaration": "npm:^7.24.7" "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.2" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/e27bca43bc113731ee4f2b33a4c5bf9c7eebf4d64487b814c305cbd5feb272c29fcd3d79634ba03131ade171e5972bc7ede8dbc83ba0deb02f1e62d318c87770 + checksum: 10c0/adaa15970ace0aee5934b5a633789b5795b6229c6a9cf3e09a7e80aa33e478675eee807006a862aa9aa517935d81f88a6db8a9f5936e3a2a40ec75f8062bc329 languageName: node linkType: hard @@ -262,29 +252,29 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" +"@babel/helper-remap-async-to-generator@npm:^7.24.7, @babel/helper-remap-async-to-generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-wrap-function": "npm:^7.24.7" + "@babel/helper-wrap-function": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/4e7fa2cdcbc488e41c27066c16e562857ef3c5c2bfe70d2f1e32e9ee7546b17c3fc1c20d05bf2a7f1c291bd9e7a0a219f6a9fa387209013294be79a26fcfe64d + checksum: 10c0/0d17b5f7bb6a607edc9cc62fff8056dd9f341bf2f919884f97b99170d143022a5e7ae57922c4891e4fc360ad291e708d2f8cd8989f1d3cd7a17600159984f5a6 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-replace-supers@npm:7.24.7" +"@babel/helper-replace-supers@npm:^7.24.7, @babel/helper-replace-supers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-replace-supers@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-member-expression-to-functions": "npm:^7.24.7" + "@babel/helper-member-expression-to-functions": "npm:^7.24.8" "@babel/helper-optimise-call-expression": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.0" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/0e133bb03371dee78e519c334a09c08e1493103a239d9628db0132dfaac3fc16380479ca3c590d278a9b71b624030a338c18ebbfe6d430ebb2e4653775c4b3e3 + checksum: 10c0/b4b6650ab3d56c39a259367cd97f8df2f21c9cebb3716fea7bca40a150f8847bfb82f481e98927c7c6579b48a977b5a8f77318a1c6aeb497f41ecd6dbc3fdfef languageName: node linkType: hard @@ -338,25 +328,24 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-wrap-function@npm:7.24.7" +"@babel/helper-wrap-function@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-wrap-function@npm:7.25.0" dependencies: - "@babel/helper-function-name": "npm:^7.24.7" - "@babel/template": "npm:^7.24.7" - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/d5689f031bf0eb38c0d7fad6b7e320ddef4bfbdf08d12d7d76ef41b7ca365a32721e74cb5ed5a9a9ec634bc20f9b7a27314fa6fb08f1576b8f6d8330fcea6f47 + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/d54601a98384c191cbc1ff07b03a19e288ef8d5c6bfafe270b2a303d96e7304eb296002921ed464cc1b105a547d1db146eb86b0be617924dee1ba1b379cdc216 languageName: node linkType: hard -"@babel/helpers@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helpers@npm:7.24.8" +"@babel/helpers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helpers@npm:7.25.0" dependencies: - "@babel/template": "npm:^7.24.7" - "@babel/types": "npm:^7.24.8" - checksum: 10c0/42b8939b0a0bf72d6df9721973eb0fd7cd48f42641c5c9c740916397faa586255c06d36c6e6a7e091860723096281c620f6ffaee0011a3bb254a6f5475d89a12 + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/b7fe007fc4194268abf70aa3810365085e290e6528dcb9fbbf7a765d43c74b6369ce0f99c5ccd2d44c413853099daa449c9a0123f0b212ac8d18643f2e8174b8 languageName: node linkType: hard @@ -372,35 +361,48 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/parser@npm:7.24.8" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": "npm:^7.25.2" bin: parser: ./bin/babel-parser.js - checksum: 10c0/ce69671de8fa6f649abf849be262707ac700b573b8b1ce1893c66cc6cd76aeb1294a19e8c290b0eadeb2f47d3f413a2e57a281804ffbe76bfb9fa50194cf3c52 + checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.3" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/394c30e2b708ad385fa1219528e039066a1f1cb40f47986f283878848fd354c745e6397f588b4e5a046ee8d64bfdf4c208e4c3dfbdcfb2fd34315ec67c64e7af + checksum: 10c0/814b4d3f102e7556a5053d1acf57ef601cfcff39a2c81b8cdc6a5c842e3cb9838f5925d1466a5f1e6416e74c9c83586a3c07fbd7fb8610a396c2becdf9ae5790 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.8" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/a36307428ecc1a01b00cf90812335eed1575d13f211ab24fe4d0c55c28a2fcbd4135f142efabc3b277b2a8e09ee05df594a1272353f061b63829495b5dcfdb96 + checksum: 10c0/9645a1f47b3750acadb1353c02e71cc712d072aafe5ce115ed3a886bc14c5d9200cfb0b5b5e60e813baa549b800cf798f8714019fd246c699053cf68c428e426 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ed1ce1c90cac46c01825339fd0f2a96fa071b016fb819d8dfaf8e96300eae30e74870cb47e4dc80d4ce2fb287869f102878b4f3b35bc927fec8b1d0d76bcf612 languageName: node linkType: hard @@ -417,15 +419,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.0" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/2b52a73e444f6adc73f927b623e53a4cf64397170dd1071268536df1b3db1e02131418c8dc91351af48837a6298212118f4a72d5407f8005cf9a732370a315b0 + checksum: 10c0/45988025537a9d4a27b610fd696a18fd9ba9336621a69b4fb40560eeb10c79657f85c92a37f30c7c8fb29c22970eea0b373315795a891f1a05549a6cfe5a6bfe languageName: node linkType: hard @@ -681,17 +683,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-remap-async-to-generator": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-remap-async-to-generator": "npm:^7.25.0" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/traverse": "npm:^7.25.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6b5e33ae66dce0afce9b06d8dace6fa052528e60f7622aa6cfd3e71bd372ca5079d426e78336ca564bc0d5f37acbcda1b21f4fe656fcb642f1a93a697ab39742 + checksum: 10c0/5348c3a33d16e0d62f13482c6fa432185ba096d58880b08d42450f7db662d6b03e6149d495c8620897dcd3da35061068cbd6c09da7d0ec95743e55a788809e4e languageName: node linkType: hard @@ -719,14 +721,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7" +"@babel/plugin-transform-block-scoping@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.8" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/dcbc5e385c0ca5fb5736b1c720c90755cffe9f91d8c854f82e61e59217dd3f6c91b3633eeee4b55a89d3f59e5275d0f5b0b1b1363d4fa70c49c468b55aa87700 + checksum: 10c0/382931c75a5d0ea560387e76cb57b03461300527e4784efcb2fb62f36c1eb0ab331327b6034def256baa0cad9050925a61f9c0d56261b6afd6a29c3065fb0bd4 languageName: node linkType: hard @@ -755,21 +757,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-classes@npm:7.24.8" +"@babel/plugin-transform-classes@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-classes@npm:7.25.0" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.24.7" "@babel/helper-compilation-targets": "npm:^7.24.8" - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-function-name": "npm:^7.24.7" "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-replace-supers": "npm:^7.24.7" - "@babel/helper-split-export-declaration": "npm:^7.24.7" + "@babel/helper-replace-supers": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4423da0f747bdb6aab1995d98a74533fa679f637ec20706810dd57fb4ba2b1885ec8cae6a0b2c3f69f27165de6ff6aa2da9c4061c893848736a8267d0c653079 + checksum: 10c0/4451dccf8a7979427ae042afe381233f30764a8072faf0de1337a4fc297c6d7cb40df9e28931ac096e5b56392d0cd97d3ce10aee68288150a8701624d362a791 languageName: node linkType: hard @@ -819,6 +819,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/1c9b57ddd9b33696e88911d0e7975e1573ebc46219c4b30eb1dc746cbb71aedfac6f6dab7fdfdec54dd58f31468bf6ab56b157661ea4ffe58f906d71f89544c8 + languageName: node + linkType: hard + "@babel/plugin-transform-dynamic-import@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" @@ -867,16 +879,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-function-name@npm:7.24.7" +"@babel/plugin-transform-function-name@npm:^7.25.1": + version: 7.25.1 + resolution: "@babel/plugin-transform-function-name@npm:7.25.1" dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.7" - "@babel/helper-function-name": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3e9642428d6952851850d89ea9307d55946528d18973784d0e2f04a651b23bd9924dd8a2641c824b483bd4ab1223bab1d2f6a1106a939998f7ced512cb60ac5b + checksum: 10c0/e74912174d5e33d1418b840443c2e226a7b76cc017c1ed20ee30a566e4f1794d4a123be03180da046241576e8b692731807ba1f52608922acf1cb2cb6957593f languageName: node linkType: hard @@ -892,14 +904,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-literals@npm:7.24.7" +"@babel/plugin-transform-literals@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/plugin-transform-literals@npm:7.25.2" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.8" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9f3f6f3831929cd2a977748c07addf9944d5cccb50bd3a24a58beb54f91f00d6cacd3d7831d13ffe1ad6f8aba0aefd7bca5aec65d63b77f39c62ad1f2d484a3e + checksum: 10c0/0796883217b0885d37e7f6d350773be349e469a812b6bf11ccf862a6edf65103d3e7c849529d65381b441685c12e756751d8c2489a0fd3f8139bb5ef93185f58 languageName: node linkType: hard @@ -951,17 +963,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" dependencies: - "@babel/helper-hoist-variables": "npm:^7.24.7" - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.24.8" "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e2a795e0a6baafe26f4a74010622212ddd873170742d673f450e0097f8d984f6e6a95eb8ce41b05071ee9790c4be088b33801aaab3f78ee202c567634e52a331 + checksum: 10c0/fca6198da71237e4bb1274b3b67a0c81d56013c9535361242b6bfa87d70a9597854aadb45d4d8203369be4a655e158be2a5d20af0040b1f8d1bfc47db3ad7b68 languageName: node linkType: hard @@ -1352,17 +1364,18 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.22.4": - version: 7.24.8 - resolution: "@babel/preset-env@npm:7.24.8" + version: 7.25.3 + resolution: "@babel/preset-env@npm:7.25.3" dependencies: - "@babel/compat-data": "npm:^7.24.8" - "@babel/helper-compilation-targets": "npm:^7.24.8" + "@babel/compat-data": "npm:^7.25.2" + "@babel/helper-compilation-targets": "npm:^7.25.2" "@babel/helper-plugin-utils": "npm:^7.24.8" "@babel/helper-validator-option": "npm:^7.24.8" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.0" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.0" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/plugin-syntax-class-properties": "npm:^7.12.13" @@ -1383,29 +1396,30 @@ __metadata: "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.0" "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.24.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.0" "@babel/plugin-transform-class-properties": "npm:^7.24.7" "@babel/plugin-transform-class-static-block": "npm:^7.24.7" - "@babel/plugin-transform-classes": "npm:^7.24.8" + "@babel/plugin-transform-classes": "npm:^7.25.0" "@babel/plugin-transform-computed-properties": "npm:^7.24.7" "@babel/plugin-transform-destructuring": "npm:^7.24.8" "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.0" "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.24.7" + "@babel/plugin-transform-function-name": "npm:^7.25.1" "@babel/plugin-transform-json-strings": "npm:^7.24.7" - "@babel/plugin-transform-literals": "npm:^7.24.7" + "@babel/plugin-transform-literals": "npm:^7.25.2" "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" "@babel/plugin-transform-modules-amd": "npm:^7.24.7" "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" - "@babel/plugin-transform-modules-systemjs": "npm:^7.24.7" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.0" "@babel/plugin-transform-modules-umd": "npm:^7.24.7" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" "@babel/plugin-transform-new-target": "npm:^7.24.7" @@ -1438,7 +1452,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a6f29498ec58989845a61f9c10b1b4e80586f1810a33db461d597cdb0ad2cd847381a993038b09f727512a08b2c1a33a330a5d4e6d65463ee98a1b4302d52ec6 + checksum: 10c0/9287dc2e296fe2aa3367d84c2a799db17c9d1e48bba86525f47c6f51f5ba2e2cce454f45f4ae2ef928f9077c0640b04556b55b94835675ceeca94a0c5133205e languageName: node linkType: hard @@ -1503,51 +1517,48 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.22.3, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.24.8 - resolution: "@babel/runtime@npm:7.24.8" + version: 7.25.0 + resolution: "@babel/runtime@npm:7.25.0" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/f24b30af6b3ecae19165b3b032f9bc37b2d1769677bd63b69a6f81061967cfc847aa822518402ea6616b1d301d7eb46986b99c9f69cdb5880834fca2e6b34881 + checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d languageName: node linkType: hard -"@babel/template@npm:^7.24.7, @babel/template@npm:^7.3.3": - version: 7.24.7 - resolution: "@babel/template@npm:7.24.7" +"@babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.3.3": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" dependencies: "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/95b0b3ee80fcef685b7f4426f5713a855ea2cd5ac4da829b213f8fb5afe48a2a14683c2ea04d446dbc7f711c33c5cd4a965ef34dcbe5bc387c9e966b67877ae3 + "@babel/parser": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b languageName: node linkType: hard -"@babel/traverse@npm:7, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/traverse@npm:7.24.8" +"@babel/traverse@npm:7, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/traverse@npm:7.25.3" dependencies: "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.24.8" - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-function-name": "npm:^7.24.7" - "@babel/helper-hoist-variables": "npm:^7.24.7" - "@babel/helper-split-export-declaration": "npm:^7.24.7" - "@babel/parser": "npm:^7.24.8" - "@babel/types": "npm:^7.24.8" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.2" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/67a5cc35824455cdb54fb9e196a44b3186283e29018a9c2331f51763921e18e891b3c60c283615a27540ec8eb4c8b89f41c237b91f732a7aa518b2eb7a0d434d + checksum: 10c0/4c8a1966fa90b53a783a4afd2fcdaa6ab1a912e6621dca9fcc6633e80ccb9491620e88caf73b537da4e16cefd537b548c87d7087868d5b0066414dea375c0e9b languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.24.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.24.9 - resolution: "@babel/types@npm:7.24.9" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.25.2 + resolution: "@babel/types@npm:7.25.2" dependencies: "@babel/helper-string-parser": "npm:^7.24.8" "@babel/helper-validator-identifier": "npm:^7.24.7" to-fast-properties: "npm:^2.0.0" - checksum: 10c0/4970b3481cab39c5c3fdb7c28c834df5c7049f3c7f43baeafe121bb05270ebf0da7c65b097abf314877f213baa591109c82204f30d66cdd46c22ece4a2f32415 + checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864 languageName: node linkType: hard From 2a704add90a9853db357711e41605bb6b12cec19 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 2 Aug 2024 12:39:12 +0200 Subject: [PATCH 055/306] Fix status processing failing halfway when a remote post has a malformed `replies` attribute (#31246) --- app/lib/activitypub/activity/create.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 5d700b4961..d539ce41a0 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -336,13 +336,15 @@ class ActivityPub::Activity::Create < ActivityPub::Activity def fetch_replies(status) collection = @object['replies'] - return if collection.nil? + return if collection.blank? replies = ActivityPub::FetchRepliesService.new.call(status, collection, allow_synchronous_requests: false, request_id: @options[:request_id]) return unless replies.nil? uri = value_or_id(collection) ActivityPub::FetchRepliesWorker.perform_async(status.id, uri, { 'request_id' => @options[:request_id] }) unless uri.nil? + rescue => e + Rails.logger.warn "Error fetching replies: #{e}" end def conversation_from_uri(uri) From bb3941f885beee3843742edd31d67901c6ba0995 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 2 Aug 2024 15:15:18 +0200 Subject: [PATCH 056/306] Change `DropdownMenu` component's `items` prop type (#31263) --- app/javascript/mastodon/components/dropdown_menu.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/dropdown_menu.jsx b/app/javascript/mastodon/components/dropdown_menu.jsx index 49951cfb5f..d731a8e2d1 100644 --- a/app/javascript/mastodon/components/dropdown_menu.jsx +++ b/app/javascript/mastodon/components/dropdown_menu.jsx @@ -20,7 +20,7 @@ let id = 0; class DropdownMenu extends PureComponent { static propTypes = { - items: PropTypes.oneOfType([PropTypes.array, ImmutablePropTypes.list]).isRequired, + items: PropTypes.array.isRequired, loading: PropTypes.bool, scrollable: PropTypes.bool, onClose: PropTypes.func.isRequired, @@ -165,7 +165,7 @@ class Dropdown extends PureComponent { children: PropTypes.node, icon: PropTypes.string, iconComponent: PropTypes.func, - items: PropTypes.oneOfType([PropTypes.array, ImmutablePropTypes.list]), + items: PropTypes.array.isRequired, loading: PropTypes.bool, size: PropTypes.number, title: PropTypes.string, From 99c446b7cf6dc1ade27ba2658ce1812442ebffbc Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Fri, 2 Aug 2024 15:17:36 +0200 Subject: [PATCH 057/306] Change PostCSS config to allow logical properties (#31264) --- package.json | 1 - postcss.config.js | 9 +++++++-- yarn.lock | 3 +-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 18983b43e3..27edd7dc27 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,6 @@ "@svgr/webpack": "^5.5.0", "arrow-key-navigation": "^1.2.0", "async-mutex": "^0.5.0", - "autoprefixer": "^10.4.14", "axios": "^1.4.0", "babel-loader": "^8.3.0", "babel-plugin-formatjs": "^10.5.1", diff --git a/postcss.config.js b/postcss.config.js index 63aeafb36d..ddcbbbeeec 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,8 +1,13 @@ +const postcssPresetEnv = require('postcss-preset-env'); + /** @type {import('postcss-load-config').Config} */ const config = ({ env }) => ({ plugins: [ - require('postcss-preset-env'), - require('autoprefixer'), + postcssPresetEnv({ + features: { + 'logical-properties-and-values': false + } + }), env === 'production' ? require('cssnano') : '', ], }); diff --git a/yarn.lock b/yarn.lock index bdd3bd9837..d7adb6b640 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2825,7 +2825,6 @@ __metadata: "@typescript-eslint/parser": "npm:^7.0.0" arrow-key-navigation: "npm:^1.2.0" async-mutex: "npm:^0.5.0" - autoprefixer: "npm:^10.4.14" axios: "npm:^1.4.0" babel-jest: "npm:^29.5.0" babel-loader: "npm:^8.3.0" @@ -5118,7 +5117,7 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:^10.4.14, autoprefixer@npm:^10.4.19": +"autoprefixer@npm:^10.4.19": version: 10.4.19 resolution: "autoprefixer@npm:10.4.19" dependencies: From cc453f222146bf1d48af3edbdc6396e856e81893 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Fri, 2 Aug 2024 15:18:19 +0200 Subject: [PATCH 058/306] Change the filtered notification count to be in the account avatar (#31262) --- app/javascript/mastodon/components/avatar.tsx | 12 +++++++++ .../components/notification_request.jsx | 3 +-- app/javascript/styles/mastodon/_mixins.scss | 13 --------- .../styles/mastodon/components.scss | 27 ++++++++++++++++--- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/app/javascript/mastodon/components/avatar.tsx b/app/javascript/mastodon/components/avatar.tsx index 8f866a3c65..8b16296c2c 100644 --- a/app/javascript/mastodon/components/avatar.tsx +++ b/app/javascript/mastodon/components/avatar.tsx @@ -11,6 +11,8 @@ interface Props { style?: React.CSSProperties; inline?: boolean; animate?: boolean; + counter?: number | string; + counterBorderColor?: string; } export const Avatar: React.FC = ({ @@ -19,6 +21,8 @@ export const Avatar: React.FC = ({ size = 20, inline = false, style: styleFromParent, + counter, + counterBorderColor, }) => { const { hovering, handleMouseEnter, handleMouseLeave } = useHovering(animate); @@ -43,6 +47,14 @@ export const Avatar: React.FC = ({ style={style} > {src && } + {counter && ( +
+ {counter} +
+ )}
); }; diff --git a/app/javascript/mastodon/features/notifications/components/notification_request.jsx b/app/javascript/mastodon/features/notifications/components/notification_request.jsx index 3a77ef4e2e..fc96bd2ee7 100644 --- a/app/javascript/mastodon/features/notifications/components/notification_request.jsx +++ b/app/javascript/mastodon/features/notifications/components/notification_request.jsx @@ -38,12 +38,11 @@ export const NotificationRequest = ({ id, accountId, notificationsCount }) => { return (
- +
- {toCappedNumber(notificationsCount)}
@{account?.get('acct')} diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss index d7f8586dd2..899b494e54 100644 --- a/app/javascript/styles/mastodon/_mixins.scss +++ b/app/javascript/styles/mastodon/_mixins.scss @@ -1,16 +1,3 @@ -@mixin avatar-radius { - border-radius: 4px; - background: transparent no-repeat; - background-position: 50%; - background-clip: padding-box; -} - -@mixin avatar-size($size: 48px) { - width: $size; - height: $size; - background-size: $size $size; -} - @mixin search-input { outline: 0; box-sizing: border-box; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index cba6a5aa38..3c1ec28163 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1980,17 +1980,15 @@ body > [data-popper-placement] { } .account__avatar { - @include avatar-radius; - display: block; position: relative; - overflow: hidden; img { display: block; width: 100%; height: 100%; object-fit: cover; + border-radius: 4px; } &-inline { @@ -2027,6 +2025,29 @@ body > [data-popper-placement] { font-size: 15px; } } + + &__counter { + $height: 16px; + $h-padding: 5px; + + position: absolute; + bottom: -3px; + inset-inline-end: -3px; + padding-left: $h-padding; + padding-right: $h-padding; + height: $height; + border-radius: $height; + min-width: $height - 2 * $h-padding; // to ensure that it is never narrower than a circle + line-height: $height + 1px; // to visually center the numbers + background-color: $ui-button-background-color; + color: $white; + border-width: 1px; + border-style: solid; + border-color: var(--background-color); + font-size: 11px; + font-weight: 500; + text-align: center; + } } a .account__avatar { From 2ec1181ee5c409dd6d2f89cdf04e983e84fce9ab Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 2 Aug 2024 15:55:31 +0200 Subject: [PATCH 059/306] Fix contrast between background and form elements on some pages (#31266) --- app/controllers/auth/confirmations_controller.rb | 5 ----- app/controllers/auth/passwords_controller.rb | 5 ----- app/controllers/auth/registrations_controller.rb | 2 +- app/controllers/auth/sessions_controller.rb | 6 ------ app/controllers/auth/setup_controller.rb | 5 ----- .../concerns/auth/two_factor_authentication_concern.rb | 1 - app/controllers/concerns/challengable_concern.rb | 1 - app/controllers/mail_subscriptions_controller.rb | 5 ----- app/javascript/styles/mastodon/basics.scss | 8 -------- 9 files changed, 1 insertion(+), 37 deletions(-) diff --git a/app/controllers/auth/confirmations_controller.rb b/app/controllers/auth/confirmations_controller.rb index 7ca7be5f8e..bf5c84ccf4 100644 --- a/app/controllers/auth/confirmations_controller.rb +++ b/app/controllers/auth/confirmations_controller.rb @@ -5,7 +5,6 @@ class Auth::ConfirmationsController < Devise::ConfirmationsController layout 'auth' - before_action :set_body_classes before_action :set_confirmation_user!, only: [:show, :confirm_captcha] before_action :redirect_confirmed_user, if: :signed_in_confirmed_user? @@ -73,10 +72,6 @@ class Auth::ConfirmationsController < Devise::ConfirmationsController user_signed_in? && current_user.confirmed? && current_user.unconfirmed_email.blank? end - def set_body_classes - @body_classes = 'lighter' - end - def after_resending_confirmation_instructions_path_for(_resource_name) if user_signed_in? if current_user.confirmed? && current_user.approved? diff --git a/app/controllers/auth/passwords_controller.rb b/app/controllers/auth/passwords_controller.rb index de001f062b..7c1ff59671 100644 --- a/app/controllers/auth/passwords_controller.rb +++ b/app/controllers/auth/passwords_controller.rb @@ -3,7 +3,6 @@ class Auth::PasswordsController < Devise::PasswordsController skip_before_action :check_self_destruct! before_action :redirect_invalid_reset_token, only: :edit, unless: :reset_password_token_is_valid? - before_action :set_body_classes layout 'auth' @@ -24,10 +23,6 @@ class Auth::PasswordsController < Devise::PasswordsController redirect_to new_password_path(resource_name) end - def set_body_classes - @body_classes = 'lighter' - end - def reset_password_token_is_valid? resource_class.with_reset_password_token(params[:reset_password_token]).present? end diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index e5a2ac0270..c12960934e 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -105,7 +105,7 @@ class Auth::RegistrationsController < Devise::RegistrationsController private def set_body_classes - @body_classes = %w(edit update).include?(action_name) ? 'admin' : 'lighter' + @body_classes = 'admin' if %w(edit update).include?(action_name) end def set_invite diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index 6ed7b2baac..6210e4dbf9 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -16,8 +16,6 @@ class Auth::SessionsController < Devise::SessionsController include Auth::TwoFactorAuthenticationConcern - before_action :set_body_classes - content_security_policy only: :new do |p| p.form_action(false) end @@ -103,10 +101,6 @@ class Auth::SessionsController < Devise::SessionsController private - def set_body_classes - @body_classes = 'lighter' - end - def home_paths(resource) paths = [about_path, '/explore'] diff --git a/app/controllers/auth/setup_controller.rb b/app/controllers/auth/setup_controller.rb index 40916d2887..ad872dc607 100644 --- a/app/controllers/auth/setup_controller.rb +++ b/app/controllers/auth/setup_controller.rb @@ -5,7 +5,6 @@ class Auth::SetupController < ApplicationController before_action :authenticate_user! before_action :require_unconfirmed_or_pending! - before_action :set_body_classes before_action :set_user skip_before_action :require_functional! @@ -35,10 +34,6 @@ class Auth::SetupController < ApplicationController @user = current_user end - def set_body_classes - @body_classes = 'lighter' - end - def user_params params.require(:user).permit(:email) end diff --git a/app/controllers/concerns/auth/two_factor_authentication_concern.rb b/app/controllers/concerns/auth/two_factor_authentication_concern.rb index 404164751a..0fb11428dc 100644 --- a/app/controllers/concerns/auth/two_factor_authentication_concern.rb +++ b/app/controllers/concerns/auth/two_factor_authentication_concern.rb @@ -83,7 +83,6 @@ module Auth::TwoFactorAuthenticationConcern def prompt_for_two_factor(user) register_attempt_in_session(user) - @body_classes = 'lighter' @webauthn_enabled = user.webauthn_enabled? @scheme_type = if user.webauthn_enabled? && user_params[:otp_attempt].blank? 'webauthn' diff --git a/app/controllers/concerns/challengable_concern.rb b/app/controllers/concerns/challengable_concern.rb index 09874fb405..c8d1a0bef7 100644 --- a/app/controllers/concerns/challengable_concern.rb +++ b/app/controllers/concerns/challengable_concern.rb @@ -42,7 +42,6 @@ module ChallengableConcern end def render_challenge - @body_classes = 'lighter' render 'auth/challenges/new', layout: 'auth' end diff --git a/app/controllers/mail_subscriptions_controller.rb b/app/controllers/mail_subscriptions_controller.rb index 1caeaaacf4..34df75f63a 100644 --- a/app/controllers/mail_subscriptions_controller.rb +++ b/app/controllers/mail_subscriptions_controller.rb @@ -5,7 +5,6 @@ class MailSubscriptionsController < ApplicationController skip_before_action :require_functional! - before_action :set_body_classes before_action :set_user before_action :set_type @@ -25,10 +24,6 @@ class MailSubscriptionsController < ApplicationController not_found unless @user end - def set_body_classes - @body_classes = 'lighter' - end - def set_type @type = email_type_from_param end diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss index 456e042c53..1f961cb9e1 100644 --- a/app/javascript/styles/mastodon/basics.scss +++ b/app/javascript/styles/mastodon/basics.scss @@ -66,10 +66,6 @@ body { } } - &.lighter { - background: $ui-base-color; - } - &.with-modals { overflow-x: hidden; overflow-y: scroll; @@ -109,7 +105,6 @@ body { } &.embed { - background: lighten($ui-base-color, 4%); margin: 0; padding-bottom: 0; @@ -122,15 +117,12 @@ body { } &.admin { - background: var(--background-color); padding: 0; } &.error { position: absolute; text-align: center; - color: $darker-text-color; - background: $ui-base-color; width: 100%; height: 100%; padding: 0; From ad95c98054574080ac5d15584b3018d1db836531 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 2 Aug 2024 16:59:37 +0200 Subject: [PATCH 060/306] Further de-emphasize filtered notifications banner and add setting to minimize it (#31250) --- .../components/checkbox_with_label.jsx | 31 ---- .../components/checkbox_with_label.tsx | 40 +++++ .../components/column_settings.jsx | 48 +----- .../filtered_notifications_banner.tsx | 60 +++++++- .../components/policy_controls.tsx | 141 ++++++++++++++++++ .../containers/column_settings_container.js | 8 - .../mastodon/features/notifications/index.jsx | 34 +++-- .../features/notifications/requests.jsx | 40 ++++- .../features/notifications_v2/index.tsx | 30 ++-- app/javascript/mastodon/locales/en.json | 2 + app/javascript/mastodon/reducers/settings.js | 1 + app/javascript/mastodon/selectors/settings.ts | 5 + 12 files changed, 321 insertions(+), 119 deletions(-) delete mode 100644 app/javascript/mastodon/features/notifications/components/checkbox_with_label.jsx create mode 100644 app/javascript/mastodon/features/notifications/components/checkbox_with_label.tsx create mode 100644 app/javascript/mastodon/features/notifications/components/policy_controls.tsx diff --git a/app/javascript/mastodon/features/notifications/components/checkbox_with_label.jsx b/app/javascript/mastodon/features/notifications/components/checkbox_with_label.jsx deleted file mode 100644 index 5a7bb2307b..0000000000 --- a/app/javascript/mastodon/features/notifications/components/checkbox_with_label.jsx +++ /dev/null @@ -1,31 +0,0 @@ -import PropTypes from 'prop-types'; -import { useCallback } from 'react'; - -import Toggle from 'react-toggle'; - -export const CheckboxWithLabel = ({ checked, disabled, children, onChange }) => { - const handleChange = useCallback(({ target }) => { - onChange(target.checked); - }, [onChange]); - - return ( - - ); -}; - -CheckboxWithLabel.propTypes = { - checked: PropTypes.bool, - disabled: PropTypes.bool, - children: PropTypes.children, - onChange: PropTypes.func, -}; diff --git a/app/javascript/mastodon/features/notifications/components/checkbox_with_label.tsx b/app/javascript/mastodon/features/notifications/components/checkbox_with_label.tsx new file mode 100644 index 0000000000..9922bc6c7c --- /dev/null +++ b/app/javascript/mastodon/features/notifications/components/checkbox_with_label.tsx @@ -0,0 +1,40 @@ +import type { PropsWithChildren } from 'react'; +import { useCallback } from 'react'; + +import Toggle from 'react-toggle'; + +interface Props { + checked: boolean; + disabled?: boolean; + onChange: (checked: boolean) => void; +} + +export const CheckboxWithLabel: React.FC> = ({ + checked, + disabled, + children, + onChange, +}) => { + const handleChange = useCallback( + ({ target }: React.ChangeEvent) => { + onChange(target.checked); + }, + [onChange], + ); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.jsx b/app/javascript/mastodon/features/notifications/components/column_settings.jsx index d35e62f8f9..d511c5365f 100644 --- a/app/javascript/mastodon/features/notifications/components/column_settings.jsx +++ b/app/javascript/mastodon/features/notifications/components/column_settings.jsx @@ -8,9 +8,9 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { identityContextPropShape, withIdentity } from 'mastodon/identity_context'; import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_REPORTS } from 'mastodon/permissions'; -import { CheckboxWithLabel } from './checkbox_with_label'; import ClearColumnButton from './clear_column_button'; import GrantPermissionButton from './grant_permission_button'; +import { PolicyControls } from './policy_controls'; import SettingToggle from './setting_toggle'; class ColumnSettings extends PureComponent { @@ -24,32 +24,14 @@ class ColumnSettings extends PureComponent { alertsEnabled: PropTypes.bool, browserSupport: PropTypes.bool, browserPermission: PropTypes.string, - notificationPolicy: PropTypes.object.isRequired, - onChangePolicy: PropTypes.func.isRequired, }; onPushChange = (path, checked) => { this.props.onChange(['push', ...path], checked); }; - handleFilterNotFollowing = checked => { - this.props.onChangePolicy('filter_not_following', checked); - }; - - handleFilterNotFollowers = checked => { - this.props.onChangePolicy('filter_not_followers', checked); - }; - - handleFilterNewAccounts = checked => { - this.props.onChangePolicy('filter_new_accounts', checked); - }; - - handleFilterPrivateMentions = checked => { - this.props.onChangePolicy('filter_private_mentions', checked); - }; - render () { - const { settings, pushSettings, onChange, onClear, alertsEnabled, browserSupport, browserPermission, onRequestNotificationPermission, notificationPolicy } = this.props; + const { settings, pushSettings, onChange, onClear, alertsEnabled, browserSupport, browserPermission, onRequestNotificationPermission } = this.props; const filterAdvancedStr = ; const unreadMarkersShowStr = ; @@ -79,31 +61,7 @@ class ColumnSettings extends PureComponent { )} -
-

- -
- - - - - - - - - - - - - - - - - - - -
-
+

diff --git a/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.tsx b/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.tsx index 9f93d25c56..d9e60d48cd 100644 --- a/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.tsx +++ b/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.tsx @@ -1,18 +1,62 @@ -import { useEffect } from 'react'; +import { useCallback, useEffect } from 'react'; -import { FormattedMessage } from 'react-intl'; +import { FormattedMessage, useIntl, defineMessages } from 'react-intl'; -import { Link } from 'react-router-dom'; +import { Link, useHistory } from 'react-router-dom'; import InventoryIcon from '@/material-icons/400-24px/inventory_2.svg?react'; import { fetchNotificationPolicy } from 'mastodon/actions/notification_policies'; import { Icon } from 'mastodon/components/icon'; +import { selectSettingsNotificationsMinimizeFilteredBanner } from 'mastodon/selectors/settings'; import { useAppSelector, useAppDispatch } from 'mastodon/store'; -import { toCappedNumber } from 'mastodon/utils/numbers'; + +const messages = defineMessages({ + filteredNotifications: { + id: 'notification_requests.title', + defaultMessage: 'Filtered notifications', + }, +}); + +export const FilteredNotificationsIconButton: React.FC<{ + className?: string; +}> = ({ className }) => { + const intl = useIntl(); + const history = useHistory(); + const policy = useAppSelector((state) => state.notificationPolicy); + const minimizeSetting = useAppSelector( + selectSettingsNotificationsMinimizeFilteredBanner, + ); + + const handleClick = useCallback(() => { + history.push('/notifications/requests'); + }, [history]); + + if (policy === null || policy.summary.pending_notifications_count === 0) { + return null; + } + + if (!minimizeSetting) { + return null; + } + + return ( + + ); +}; export const FilteredNotificationsBanner: React.FC = () => { const dispatch = useAppDispatch(); const policy = useAppSelector((state) => state.notificationPolicy); + const minimizeSetting = useAppSelector( + selectSettingsNotificationsMinimizeFilteredBanner, + ); useEffect(() => { void dispatch(fetchNotificationPolicy()); @@ -30,6 +74,10 @@ export const FilteredNotificationsBanner: React.FC = () => { return null; } + if (minimizeSetting) { + return null; + } + return ( { />

- -
- {toCappedNumber(policy.summary.pending_notifications_count)} -
); }; diff --git a/app/javascript/mastodon/features/notifications/components/policy_controls.tsx b/app/javascript/mastodon/features/notifications/components/policy_controls.tsx new file mode 100644 index 0000000000..1647bf6b45 --- /dev/null +++ b/app/javascript/mastodon/features/notifications/components/policy_controls.tsx @@ -0,0 +1,141 @@ +import { useCallback } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import { updateNotificationsPolicy } from 'mastodon/actions/notification_policies'; +import { useAppSelector, useAppDispatch } from 'mastodon/store'; + +import { CheckboxWithLabel } from './checkbox_with_label'; + +export const PolicyControls: React.FC = () => { + const dispatch = useAppDispatch(); + + const notificationPolicy = useAppSelector( + (state) => state.notificationPolicy, + ); + + const handleFilterNotFollowing = useCallback( + (checked: boolean) => { + void dispatch( + updateNotificationsPolicy({ filter_not_following: checked }), + ); + }, + [dispatch], + ); + + const handleFilterNotFollowers = useCallback( + (checked: boolean) => { + void dispatch( + updateNotificationsPolicy({ filter_not_followers: checked }), + ); + }, + [dispatch], + ); + + const handleFilterNewAccounts = useCallback( + (checked: boolean) => { + void dispatch( + updateNotificationsPolicy({ filter_new_accounts: checked }), + ); + }, + [dispatch], + ); + + const handleFilterPrivateMentions = useCallback( + (checked: boolean) => { + void dispatch( + updateNotificationsPolicy({ filter_private_mentions: checked }), + ); + }, + [dispatch], + ); + + if (!notificationPolicy) return null; + + return ( +
+

+ +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ ); +}; diff --git a/app/javascript/mastodon/features/notifications/containers/column_settings_container.js b/app/javascript/mastodon/features/notifications/containers/column_settings_container.js index 21dbb2aa90..8bcc7ab4ef 100644 --- a/app/javascript/mastodon/features/notifications/containers/column_settings_container.js +++ b/app/javascript/mastodon/features/notifications/containers/column_settings_container.js @@ -6,7 +6,6 @@ import { openModal } from 'mastodon/actions/modal'; import { initializeNotifications } from 'mastodon/actions/notifications_migration'; import { showAlert } from '../../../actions/alerts'; -import { updateNotificationsPolicy } from '../../../actions/notification_policies'; import { setFilter, requestBrowserPermission } from '../../../actions/notifications'; import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications'; import { changeSetting } from '../../../actions/settings'; @@ -25,7 +24,6 @@ const mapStateToProps = state => ({ alertsEnabled: state.getIn(['settings', 'notifications', 'alerts']).includes(true), browserSupport: state.getIn(['notifications', 'browserSupport']), browserPermission: state.getIn(['notifications', 'browserPermission']), - notificationPolicy: state.notificationPolicy, }); const mapDispatchToProps = (dispatch) => ({ @@ -74,12 +72,6 @@ const mapDispatchToProps = (dispatch) => ({ dispatch(requestBrowserPermission()); }, - onChangePolicy (param, checked) { - dispatch(updateNotificationsPolicy({ - [param]: checked, - })); - }, - }); export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(ColumnSettings)); diff --git a/app/javascript/mastodon/features/notifications/index.jsx b/app/javascript/mastodon/features/notifications/index.jsx index f5ebe6fe91..cefbd544b0 100644 --- a/app/javascript/mastodon/features/notifications/index.jsx +++ b/app/javascript/mastodon/features/notifications/index.jsx @@ -34,7 +34,10 @@ import ColumnHeader from '../../components/column_header'; import { LoadGap } from '../../components/load_gap'; import ScrollableList from '../../components/scrollable_list'; -import { FilteredNotificationsBanner } from './components/filtered_notifications_banner'; +import { + FilteredNotificationsBanner, + FilteredNotificationsIconButton, +} from './components/filtered_notifications_banner'; import NotificationsPermissionBanner from './components/notifications_permission_banner'; import ColumnSettingsContainer from './containers/column_settings_container'; import FilterBarContainer from './containers/filter_bar_container'; @@ -255,20 +258,21 @@ class Notifications extends PureComponent { scrollContainer = ; } - let extraButton = null; - - if (canMarkAsRead) { - extraButton = ( - - ); - } + const extraButton = ( + <> + + {canMarkAsRead && ( + + )} + + ); return ( diff --git a/app/javascript/mastodon/features/notifications/requests.jsx b/app/javascript/mastodon/features/notifications/requests.jsx index 2d10c6a06c..66db35b588 100644 --- a/app/javascript/mastodon/features/notifications/requests.jsx +++ b/app/javascript/mastodon/features/notifications/requests.jsx @@ -9,16 +9,52 @@ import { useSelector, useDispatch } from 'react-redux'; import InventoryIcon from '@/material-icons/400-24px/inventory_2.svg?react'; import { fetchNotificationRequests, expandNotificationRequests } from 'mastodon/actions/notifications'; +import { changeSetting } from 'mastodon/actions/settings'; import Column from 'mastodon/components/column'; import ColumnHeader from 'mastodon/components/column_header'; import ScrollableList from 'mastodon/components/scrollable_list'; import { NotificationRequest } from './components/notification_request'; +import { PolicyControls } from './components/policy_controls'; +import SettingToggle from './components/setting_toggle'; const messages = defineMessages({ title: { id: 'notification_requests.title', defaultMessage: 'Filtered notifications' }, + maximize: { id: 'notification_requests.maximize', defaultMessage: 'Maximize' } }); +const ColumnSettings = () => { + const dispatch = useDispatch(); + const settings = useSelector((state) => state.settings.get('notifications')); + + const onChange = useCallback( + (key, checked) => { + dispatch(changeSetting(['notifications', ...key], checked)); + }, + [dispatch], + ); + + return ( +
+
+
+ + } + /> +
+
+ + +
+ ); +}; + export const NotificationRequests = ({ multiColumn }) => { const columnRef = useRef(); const intl = useIntl(); @@ -48,7 +84,9 @@ export const NotificationRequests = ({ multiColumn }) => { onClick={handleHeaderClick} multiColumn={multiColumn} showBackButton - /> + > + + ); - const extraButton = canMarkAsRead ? ( - - ) : null; + const extraButton = ( + <> + + {canMarkAsRead && ( + + )} + + ); return ( 'dismissPermissionBanner', ])) as boolean; +export const selectSettingsNotificationsMinimizeFilteredBanner = ( + state: RootState, +) => + state.settings.getIn(['notifications', 'minimizeFilteredBanner']) as boolean; + /* eslint-enable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access */ From 80d315826f4476aea96c68bb86e19aa872d3db1e Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Aug 2024 09:41:32 +0200 Subject: [PATCH 061/306] [Glitch] Fix handling of long display names in notification requests Port f6dc8ae8e39cbc626b001cd1026a6fa2de8f4215 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/components.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/javascript/flavours/glitch/styles/components.scss b/app/javascript/flavours/glitch/styles/components.scss index 1983050338..08c7bf4eb0 100644 --- a/app/javascript/flavours/glitch/styles/components.scss +++ b/app/javascript/flavours/glitch/styles/components.scss @@ -10774,6 +10774,12 @@ noscript { letter-spacing: 0.5px; line-height: 24px; color: $secondary-text-color; + + bdi { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } } .filtered-notifications-banner__badge { From 7946d986a771262ac9fb4b23d04ab6db3d65adf9 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Aug 2024 22:50:36 +0200 Subject: [PATCH 062/306] [Glitch] Fix click event handling when clicking outside of an open dropdown menu Port afdfeb585640af53cf7e9c63d82aa56ca8bae1e4 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/components/dropdown_menu.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/flavours/glitch/components/dropdown_menu.jsx b/app/javascript/flavours/glitch/components/dropdown_menu.jsx index 26c828fd64..204d6fb0fb 100644 --- a/app/javascript/flavours/glitch/components/dropdown_menu.jsx +++ b/app/javascript/flavours/glitch/components/dropdown_menu.jsx @@ -39,6 +39,7 @@ class DropdownMenu extends PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); e.stopPropagation(); + e.preventDefault(); } }; From a51cdd6b6dd7e5f7a8ef1ce0497c2943970e88a0 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 2 Aug 2024 15:15:18 +0200 Subject: [PATCH 063/306] [Glitch] Change `DropdownMenu` component's `items` prop type Port bb3941f885beee3843742edd31d67901c6ba0995 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/components/dropdown_menu.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/components/dropdown_menu.jsx b/app/javascript/flavours/glitch/components/dropdown_menu.jsx index 204d6fb0fb..051ae6299a 100644 --- a/app/javascript/flavours/glitch/components/dropdown_menu.jsx +++ b/app/javascript/flavours/glitch/components/dropdown_menu.jsx @@ -20,7 +20,7 @@ let id = 0; class DropdownMenu extends PureComponent { static propTypes = { - items: PropTypes.oneOfType([PropTypes.array, ImmutablePropTypes.list]).isRequired, + items: PropTypes.array.isRequired, loading: PropTypes.bool, scrollable: PropTypes.bool, onClose: PropTypes.func.isRequired, @@ -165,7 +165,7 @@ class Dropdown extends PureComponent { children: PropTypes.node, icon: PropTypes.string, iconComponent: PropTypes.func, - items: PropTypes.oneOfType([PropTypes.array, ImmutablePropTypes.list]), + items: PropTypes.array.isRequired, loading: PropTypes.bool, size: PropTypes.number, title: PropTypes.string, From 61f5f5c4d1d7397ab4348bf634c3a8366054a7a1 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Fri, 2 Aug 2024 15:18:19 +0200 Subject: [PATCH 064/306] [Glitch] Change the filtered notification count to be in the account avatar Port cc453f222146bf1d48af3edbdc6396e856e81893 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/components/avatar.tsx | 14 ++++++++- .../components/notification_request.jsx | 3 +- .../flavours/glitch/styles/_mixins.scss | 12 -------- .../flavours/glitch/styles/accounts.scss | 4 --- .../flavours/glitch/styles/components.scss | 29 +++++++++++++++---- .../flavours/glitch/styles/containers.scss | 8 ++--- 6 files changed, 40 insertions(+), 30 deletions(-) diff --git a/app/javascript/flavours/glitch/components/avatar.tsx b/app/javascript/flavours/glitch/components/avatar.tsx index c45c26981f..c8bf388d26 100644 --- a/app/javascript/flavours/glitch/components/avatar.tsx +++ b/app/javascript/flavours/glitch/components/avatar.tsx @@ -11,6 +11,8 @@ interface Props { style?: React.CSSProperties; inline?: boolean; animate?: boolean; + counter?: number | string; + counterBorderColor?: string; } export const Avatar: React.FC = ({ @@ -19,6 +21,8 @@ export const Avatar: React.FC = ({ size = 20, inline = false, style: styleFromParent, + counter, + counterBorderColor, }) => { const { hovering, handleMouseEnter, handleMouseLeave } = useHovering(animate); @@ -43,7 +47,15 @@ export const Avatar: React.FC = ({ style={style} data-avatar-of={account && `@${account.get('acct')}`} > - {src && {account?.get('acct')}} + {src && } + {counter && ( +
+ {counter} +
+ )}
); }; diff --git a/app/javascript/flavours/glitch/features/notifications/components/notification_request.jsx b/app/javascript/flavours/glitch/features/notifications/components/notification_request.jsx index 6c9e2980de..3b32955348 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/notification_request.jsx +++ b/app/javascript/flavours/glitch/features/notifications/components/notification_request.jsx @@ -38,12 +38,11 @@ export const NotificationRequest = ({ id, accountId, notificationsCount }) => { return (
- +
- {toCappedNumber(notificationsCount)}
@{account?.get('acct')} diff --git a/app/javascript/flavours/glitch/styles/_mixins.scss b/app/javascript/flavours/glitch/styles/_mixins.scss index a59bb2d441..444d2e0160 100644 --- a/app/javascript/flavours/glitch/styles/_mixins.scss +++ b/app/javascript/flavours/glitch/styles/_mixins.scss @@ -1,15 +1,3 @@ -@mixin avatar-radius() { - border-radius: $ui-avatar-border-size; - background-position: 50%; - background-clip: padding-box; -} - -@mixin avatar-size($size: 48px) { - width: $size; - height: $size; - background-size: $size $size; -} - @mixin fullwidth-gallery { &.full-width { margin-left: -14px; diff --git a/app/javascript/flavours/glitch/styles/accounts.scss b/app/javascript/flavours/glitch/styles/accounts.scss index 719d21fa81..aa0d739e29 100644 --- a/app/javascript/flavours/glitch/styles/accounts.scss +++ b/app/javascript/flavours/glitch/styles/accounts.scss @@ -49,8 +49,6 @@ flex: 0 0 auto; width: 48px; height: 48px; - @include avatar-size(48px); - padding-top: 2px; img { @@ -59,8 +57,6 @@ display: block; margin: 0; border-radius: 4px; - @include avatar-radius; - background: darken($ui-base-color, 8%); object-fit: cover; } diff --git a/app/javascript/flavours/glitch/styles/components.scss b/app/javascript/flavours/glitch/styles/components.scss index 08c7bf4eb0..6506151b28 100644 --- a/app/javascript/flavours/glitch/styles/components.scss +++ b/app/javascript/flavours/glitch/styles/components.scss @@ -2162,17 +2162,15 @@ body > [data-popper-placement] { } .account__avatar { - @include avatar-radius; - display: block; position: relative; - overflow: hidden; img { display: block; width: 100%; height: 100%; object-fit: cover; + border-radius: 4px; } &-inline { @@ -2182,8 +2180,6 @@ body > [data-popper-placement] { } &-composite { - @include avatar-radius; - overflow: hidden; position: relative; @@ -2210,6 +2206,29 @@ body > [data-popper-placement] { font-size: 15px; } } + + &__counter { + $height: 16px; + $h-padding: 5px; + + position: absolute; + bottom: -3px; + inset-inline-end: -3px; + padding-left: $h-padding; + padding-right: $h-padding; + height: $height; + border-radius: $height; + min-width: $height - 2 * $h-padding; // to ensure that it is never narrower than a circle + line-height: $height + 1px; // to visually center the numbers + background-color: $ui-button-background-color; + color: $white; + border-width: 1px; + border-style: solid; + border-color: var(--background-color); + font-size: 11px; + font-weight: 500; + text-align: center; + } } a .account__avatar { diff --git a/app/javascript/flavours/glitch/styles/containers.scss b/app/javascript/flavours/glitch/styles/containers.scss index 5330b5a20a..9363e428b3 100644 --- a/app/javascript/flavours/glitch/styles/containers.scss +++ b/app/javascript/flavours/glitch/styles/containers.scss @@ -72,12 +72,9 @@ } .avatar { - width: 40px; - height: 40px; + width: 48px; + height: 48px; flex: 0 0 auto; - @include avatar-size(40px); - - margin-inline-end: 10px; img { width: 100%; @@ -85,7 +82,6 @@ display: block; margin: 0; border-radius: 4px; - @include avatar-radius; } } From f2736715e494dbed28a9a4da0c516661a35aa37b Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 2 Aug 2024 15:55:31 +0200 Subject: [PATCH 065/306] [Glitch] Fix contrast between background and form elements on some pages Port 2ec1181ee5c409dd6d2f89cdf04e983e84fce9ab to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/basics.scss | 8 -------- 1 file changed, 8 deletions(-) diff --git a/app/javascript/flavours/glitch/styles/basics.scss b/app/javascript/flavours/glitch/styles/basics.scss index e59dba3b65..2223893336 100644 --- a/app/javascript/flavours/glitch/styles/basics.scss +++ b/app/javascript/flavours/glitch/styles/basics.scss @@ -66,10 +66,6 @@ body { } } - &.lighter { - background: $ui-base-color; - } - &.with-modals { overflow-x: hidden; overflow-y: scroll; @@ -109,7 +105,6 @@ body { } &.embed { - background: lighten($ui-base-color, 4%); margin: 0; padding-bottom: 0; @@ -122,15 +117,12 @@ body { } &.admin { - background: var(--background-color); padding: 0; } &.error { position: absolute; text-align: center; - color: $darker-text-color; - background: $ui-base-color; width: 100%; height: 100%; padding: 0; From 096f622496e8ed163fffb6ca30ecde6b873e1f8c Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 2 Aug 2024 16:59:37 +0200 Subject: [PATCH 066/306] [Glitch] Further de-emphasize filtered notifications banner and add setting to minimize it Port ad95c98054574080ac5d15584b3018d1db836531 to glitch-soc Signed-off-by: Claire --- .../components/checkbox_with_label.jsx | 31 ---- .../components/checkbox_with_label.tsx | 40 +++++ .../components/column_settings.jsx | 48 +----- .../filtered_notifications_banner.tsx | 60 +++++++- .../components/policy_controls.tsx | 141 ++++++++++++++++++ .../containers/column_settings_container.js | 8 - .../glitch/features/notifications/index.jsx | 9 +- .../features/notifications/requests.jsx | 40 ++++- .../features/notifications_v2/index.tsx | 30 ++-- .../flavours/glitch/reducers/settings.js | 1 + .../flavours/glitch/selectors/settings.ts | 5 + 11 files changed, 307 insertions(+), 106 deletions(-) delete mode 100644 app/javascript/flavours/glitch/features/notifications/components/checkbox_with_label.jsx create mode 100644 app/javascript/flavours/glitch/features/notifications/components/checkbox_with_label.tsx create mode 100644 app/javascript/flavours/glitch/features/notifications/components/policy_controls.tsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/checkbox_with_label.jsx b/app/javascript/flavours/glitch/features/notifications/components/checkbox_with_label.jsx deleted file mode 100644 index 5a7bb2307b..0000000000 --- a/app/javascript/flavours/glitch/features/notifications/components/checkbox_with_label.jsx +++ /dev/null @@ -1,31 +0,0 @@ -import PropTypes from 'prop-types'; -import { useCallback } from 'react'; - -import Toggle from 'react-toggle'; - -export const CheckboxWithLabel = ({ checked, disabled, children, onChange }) => { - const handleChange = useCallback(({ target }) => { - onChange(target.checked); - }, [onChange]); - - return ( - - ); -}; - -CheckboxWithLabel.propTypes = { - checked: PropTypes.bool, - disabled: PropTypes.bool, - children: PropTypes.children, - onChange: PropTypes.func, -}; diff --git a/app/javascript/flavours/glitch/features/notifications/components/checkbox_with_label.tsx b/app/javascript/flavours/glitch/features/notifications/components/checkbox_with_label.tsx new file mode 100644 index 0000000000..9922bc6c7c --- /dev/null +++ b/app/javascript/flavours/glitch/features/notifications/components/checkbox_with_label.tsx @@ -0,0 +1,40 @@ +import type { PropsWithChildren } from 'react'; +import { useCallback } from 'react'; + +import Toggle from 'react-toggle'; + +interface Props { + checked: boolean; + disabled?: boolean; + onChange: (checked: boolean) => void; +} + +export const CheckboxWithLabel: React.FC> = ({ + checked, + disabled, + children, + onChange, +}) => { + const handleChange = useCallback( + ({ target }: React.ChangeEvent) => { + onChange(target.checked); + }, + [onChange], + ); + + return ( + + ); +}; diff --git a/app/javascript/flavours/glitch/features/notifications/components/column_settings.jsx b/app/javascript/flavours/glitch/features/notifications/components/column_settings.jsx index 3423517227..e38a24884a 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/column_settings.jsx +++ b/app/javascript/flavours/glitch/features/notifications/components/column_settings.jsx @@ -8,10 +8,10 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { identityContextPropShape, withIdentity } from 'flavours/glitch/identity_context'; import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_REPORTS } from 'flavours/glitch/permissions'; -import { CheckboxWithLabel } from './checkbox_with_label'; import ClearColumnButton from './clear_column_button'; import GrantPermissionButton from './grant_permission_button'; import PillBarButton from './pill_bar_button'; +import { PolicyControls } from './policy_controls'; import SettingToggle from './setting_toggle'; class ColumnSettings extends PureComponent { @@ -25,32 +25,14 @@ class ColumnSettings extends PureComponent { alertsEnabled: PropTypes.bool, browserSupport: PropTypes.bool, browserPermission: PropTypes.string, - notificationPolicy: PropTypes.object.isRequired, - onChangePolicy: PropTypes.func.isRequired, }; onPushChange = (path, checked) => { this.props.onChange(['push', ...path], checked); }; - handleFilterNotFollowing = checked => { - this.props.onChangePolicy('filter_not_following', checked); - }; - - handleFilterNotFollowers = checked => { - this.props.onChangePolicy('filter_not_followers', checked); - }; - - handleFilterNewAccounts = checked => { - this.props.onChangePolicy('filter_new_accounts', checked); - }; - - handleFilterPrivateMentions = checked => { - this.props.onChangePolicy('filter_private_mentions', checked); - }; - render () { - const { settings, pushSettings, onChange, onClear, alertsEnabled, browserSupport, browserPermission, onRequestNotificationPermission, notificationPolicy } = this.props; + const { settings, pushSettings, onChange, onClear, alertsEnabled, browserSupport, browserPermission, onRequestNotificationPermission } = this.props; const unreadMarkersShowStr = ; const groupingShowStr = ; @@ -81,31 +63,7 @@ class ColumnSettings extends PureComponent { )} -
-

- -
- - - - - - - - - - - - - - - - - - - -
-
+

diff --git a/app/javascript/flavours/glitch/features/notifications/components/filtered_notifications_banner.tsx b/app/javascript/flavours/glitch/features/notifications/components/filtered_notifications_banner.tsx index 8aaa486b19..f4413a8c17 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/filtered_notifications_banner.tsx +++ b/app/javascript/flavours/glitch/features/notifications/components/filtered_notifications_banner.tsx @@ -1,18 +1,62 @@ -import { useEffect } from 'react'; +import { useCallback, useEffect } from 'react'; -import { FormattedMessage } from 'react-intl'; +import { FormattedMessage, useIntl, defineMessages } from 'react-intl'; -import { Link } from 'react-router-dom'; +import { Link, useHistory } from 'react-router-dom'; import InventoryIcon from '@/material-icons/400-24px/inventory_2.svg?react'; import { fetchNotificationPolicy } from 'flavours/glitch/actions/notification_policies'; import { Icon } from 'flavours/glitch/components/icon'; +import { selectSettingsNotificationsMinimizeFilteredBanner } from 'flavours/glitch/selectors/settings'; import { useAppSelector, useAppDispatch } from 'flavours/glitch/store'; -import { toCappedNumber } from 'flavours/glitch/utils/numbers'; + +const messages = defineMessages({ + filteredNotifications: { + id: 'notification_requests.title', + defaultMessage: 'Filtered notifications', + }, +}); + +export const FilteredNotificationsIconButton: React.FC<{ + className?: string; +}> = ({ className }) => { + const intl = useIntl(); + const history = useHistory(); + const policy = useAppSelector((state) => state.notificationPolicy); + const minimizeSetting = useAppSelector( + selectSettingsNotificationsMinimizeFilteredBanner, + ); + + const handleClick = useCallback(() => { + history.push('/notifications/requests'); + }, [history]); + + if (policy === null || policy.summary.pending_notifications_count === 0) { + return null; + } + + if (!minimizeSetting) { + return null; + } + + return ( + + ); +}; export const FilteredNotificationsBanner: React.FC = () => { const dispatch = useAppDispatch(); const policy = useAppSelector((state) => state.notificationPolicy); + const minimizeSetting = useAppSelector( + selectSettingsNotificationsMinimizeFilteredBanner, + ); useEffect(() => { void dispatch(fetchNotificationPolicy()); @@ -30,6 +74,10 @@ export const FilteredNotificationsBanner: React.FC = () => { return null; } + if (minimizeSetting) { + return null; + } + return ( { />
- -
- {toCappedNumber(policy.summary.pending_notifications_count)} -
); }; diff --git a/app/javascript/flavours/glitch/features/notifications/components/policy_controls.tsx b/app/javascript/flavours/glitch/features/notifications/components/policy_controls.tsx new file mode 100644 index 0000000000..58eff3fbcf --- /dev/null +++ b/app/javascript/flavours/glitch/features/notifications/components/policy_controls.tsx @@ -0,0 +1,141 @@ +import { useCallback } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import { updateNotificationsPolicy } from 'flavours/glitch/actions/notification_policies'; +import { useAppSelector, useAppDispatch } from 'flavours/glitch/store'; + +import { CheckboxWithLabel } from './checkbox_with_label'; + +export const PolicyControls: React.FC = () => { + const dispatch = useAppDispatch(); + + const notificationPolicy = useAppSelector( + (state) => state.notificationPolicy, + ); + + const handleFilterNotFollowing = useCallback( + (checked: boolean) => { + void dispatch( + updateNotificationsPolicy({ filter_not_following: checked }), + ); + }, + [dispatch], + ); + + const handleFilterNotFollowers = useCallback( + (checked: boolean) => { + void dispatch( + updateNotificationsPolicy({ filter_not_followers: checked }), + ); + }, + [dispatch], + ); + + const handleFilterNewAccounts = useCallback( + (checked: boolean) => { + void dispatch( + updateNotificationsPolicy({ filter_new_accounts: checked }), + ); + }, + [dispatch], + ); + + const handleFilterPrivateMentions = useCallback( + (checked: boolean) => { + void dispatch( + updateNotificationsPolicy({ filter_private_mentions: checked }), + ); + }, + [dispatch], + ); + + if (!notificationPolicy) return null; + + return ( +
+

+ +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ ); +}; diff --git a/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js b/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js index 1212a88b38..3c4c4b30ca 100644 --- a/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js +++ b/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js @@ -6,7 +6,6 @@ import { openModal } from 'flavours/glitch/actions/modal'; import { initializeNotifications } from 'flavours/glitch/actions/notifications_migration'; import { showAlert } from '../../../actions/alerts'; -import { updateNotificationsPolicy } from '../../../actions/notification_policies'; import { setFilter, requestBrowserPermission } from '../../../actions/notifications'; import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications'; import { changeSetting } from '../../../actions/settings'; @@ -25,7 +24,6 @@ const mapStateToProps = state => ({ alertsEnabled: state.getIn(['settings', 'notifications', 'alerts']).includes(true), browserSupport: state.getIn(['notifications', 'browserSupport']), browserPermission: state.getIn(['notifications', 'browserPermission']), - notificationPolicy: state.notificationPolicy, }); const mapDispatchToProps = (dispatch) => ({ @@ -74,12 +72,6 @@ const mapDispatchToProps = (dispatch) => ({ dispatch(requestBrowserPermission()); }, - onChangePolicy (param, checked) { - dispatch(updateNotificationsPolicy({ - [param]: checked, - })); - }, - }); export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(ColumnSettings)); diff --git a/app/javascript/flavours/glitch/features/notifications/index.jsx b/app/javascript/flavours/glitch/features/notifications/index.jsx index 2d3d437756..b3b133411a 100644 --- a/app/javascript/flavours/glitch/features/notifications/index.jsx +++ b/app/javascript/flavours/glitch/features/notifications/index.jsx @@ -38,7 +38,10 @@ import { LoadGap } from '../../components/load_gap'; import ScrollableList from '../../components/scrollable_list'; import NotificationPurgeButtonsContainer from '../../containers/notification_purge_buttons_container'; -import { FilteredNotificationsBanner } from './components/filtered_notifications_banner'; +import { + FilteredNotificationsBanner, + FilteredNotificationsIconButton, +} from './components/filtered_notifications_banner'; import NotificationsPermissionBanner from './components/notifications_permission_banner'; import ColumnSettingsContainer from './containers/column_settings_container'; import FilterBarContainer from './containers/filter_bar_container'; @@ -290,7 +293,9 @@ class Notifications extends PureComponent { scrollContainer = ; } - const extraButtons = []; + const extraButtons = [ + , + ]; if (canMarkAsRead) { extraButtons.push( diff --git a/app/javascript/flavours/glitch/features/notifications/requests.jsx b/app/javascript/flavours/glitch/features/notifications/requests.jsx index d7a07da152..3df8bc2616 100644 --- a/app/javascript/flavours/glitch/features/notifications/requests.jsx +++ b/app/javascript/flavours/glitch/features/notifications/requests.jsx @@ -9,16 +9,52 @@ import { useSelector, useDispatch } from 'react-redux'; import InventoryIcon from '@/material-icons/400-24px/inventory_2.svg?react'; import { fetchNotificationRequests, expandNotificationRequests } from 'flavours/glitch/actions/notifications'; +import { changeSetting } from 'flavours/glitch/actions/settings'; import Column from 'flavours/glitch/components/column'; import ColumnHeader from 'flavours/glitch/components/column_header'; import ScrollableList from 'flavours/glitch/components/scrollable_list'; import { NotificationRequest } from './components/notification_request'; +import { PolicyControls } from './components/policy_controls'; +import SettingToggle from './components/setting_toggle'; const messages = defineMessages({ title: { id: 'notification_requests.title', defaultMessage: 'Filtered notifications' }, + maximize: { id: 'notification_requests.maximize', defaultMessage: 'Maximize' } }); +const ColumnSettings = () => { + const dispatch = useDispatch(); + const settings = useSelector((state) => state.settings.get('notifications')); + + const onChange = useCallback( + (key, checked) => { + dispatch(changeSetting(['notifications', ...key], checked)); + }, + [dispatch], + ); + + return ( +
+
+
+ + } + /> +
+
+ + +
+ ); +}; + export const NotificationRequests = ({ multiColumn }) => { const columnRef = useRef(); const intl = useIntl(); @@ -48,7 +84,9 @@ export const NotificationRequests = ({ multiColumn }) => { onClick={handleHeaderClick} multiColumn={multiColumn} showBackButton - /> + > + + ); - const extraButton = canMarkAsRead ? ( - - ) : null; + const extraButton = ( + <> + + {canMarkAsRead && ( + + )} + + ); return ( 'dismissPermissionBanner', ])) as boolean; +export const selectSettingsNotificationsMinimizeFilteredBanner = ( + state: RootState, +) => + state.settings.getIn(['notifications', 'minimizeFilteredBanner']) as boolean; + /* eslint-enable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access */ From 19f4aa11472eb5bedd97e0541a48126078715193 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Fri, 2 Aug 2024 21:55:13 +0200 Subject: [PATCH 067/306] Fix typo in english message (filtred => filtered) (#31273) --- app/javascript/mastodon/features/notifications/requests.jsx | 2 +- app/javascript/mastodon/locales/en.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/notifications/requests.jsx b/app/javascript/mastodon/features/notifications/requests.jsx index 66db35b588..2fe8dc2b6c 100644 --- a/app/javascript/mastodon/features/notifications/requests.jsx +++ b/app/javascript/mastodon/features/notifications/requests.jsx @@ -44,7 +44,7 @@ const ColumnSettings = () => { settingPath={['minimizeFilteredBanner']} onChange={onChange} label={ - + } />
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index d5494cadd3..e9a1d1899f 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -506,7 +506,7 @@ "notification_requests.accept": "Accept", "notification_requests.dismiss": "Dismiss", "notification_requests.maximize": "Maximize", - "notification_requests.minimize_banner": "Minimize filtred notifications banner", + "notification_requests.minimize_banner": "Minimize filtered notifications banner", "notification_requests.notifications_from": "Notifications from {name}", "notification_requests.title": "Filtered notifications", "notifications.clear": "Clear notifications", From 3d6e8d68344cb6b8604d2321705c83f2eebf8add Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Sun, 4 Aug 2024 10:57:46 +0200 Subject: [PATCH 068/306] Disable irrelevant fields unless cleanup is enabled (#26562) --- app/javascript/entrypoints/public.tsx | 36 +++++++++++++++++++++++ app/views/statuses_cleanup/show.html.haml | 9 ++++++ 2 files changed, 45 insertions(+) diff --git a/app/javascript/entrypoints/public.tsx b/app/javascript/entrypoints/public.tsx index 149c1d28d0..b06675c2ee 100644 --- a/app/javascript/entrypoints/public.tsx +++ b/app/javascript/entrypoints/public.tsx @@ -431,6 +431,42 @@ Rails.delegate(document, 'img.custom-emoji', 'mouseout', ({ target }) => { target.src = target.dataset.static; }); +const setInputDisabled = ( + input: HTMLInputElement | HTMLSelectElement, + disabled: boolean, +) => { + input.disabled = disabled; + + const wrapper = input.closest('.with_label'); + if (wrapper) { + wrapper.classList.toggle('disabled', input.disabled); + + const hidden = + input.type === 'checkbox' && + wrapper.querySelector('input[type=hidden][value="0"]'); + if (hidden) { + hidden.disabled = input.disabled; + } + } +}; + +Rails.delegate( + document, + '#account_statuses_cleanup_policy_enabled', + 'change', + ({ target }) => { + if (!(target instanceof HTMLInputElement) || !target.form) return; + + target.form + .querySelectorAll< + HTMLInputElement | HTMLSelectElement + >('input:not([type=hidden], #account_statuses_cleanup_policy_enabled), select') + .forEach((input) => { + setInputDisabled(input, !target.checked); + }); + }, +); + // Empty the honeypot fields in JS in case something like an extension // automatically filled them. Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => { diff --git a/app/views/statuses_cleanup/show.html.haml b/app/views/statuses_cleanup/show.html.haml index 07e833537e..78ed6a4fc4 100644 --- a/app/views/statuses_cleanup/show.html.haml +++ b/app/views/statuses_cleanup/show.html.haml @@ -14,6 +14,7 @@ wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group = f.input :min_status_age, + disabled: !@policy.enabled?, collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i), hint: false, include_blank: false, @@ -28,11 +29,13 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group = f.input :keep_pinned, + disabled: !@policy.enabled?, hint: t('statuses_cleanup.keep_pinned_hint'), label: t('statuses_cleanup.keep_pinned'), wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group = f.input :keep_direct, + disabled: !@policy.enabled?, hint: t('statuses_cleanup.keep_direct_hint'), label: t('statuses_cleanup.keep_direct'), wrapper: :with_label @@ -40,11 +43,13 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group = f.input :keep_self_fav, + disabled: !@policy.enabled?, hint: t('statuses_cleanup.keep_self_fav_hint'), label: t('statuses_cleanup.keep_self_fav'), wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group = f.input :keep_self_bookmark, + disabled: !@policy.enabled?, hint: t('statuses_cleanup.keep_self_bookmark_hint'), label: t('statuses_cleanup.keep_self_bookmark'), wrapper: :with_label @@ -52,11 +57,13 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group = f.input :keep_polls, + disabled: !@policy.enabled?, hint: t('statuses_cleanup.keep_polls_hint'), label: t('statuses_cleanup.keep_polls'), wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group = f.input :keep_media, + disabled: !@policy.enabled?, hint: t('statuses_cleanup.keep_media_hint'), label: t('statuses_cleanup.keep_media'), wrapper: :with_label @@ -66,12 +73,14 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group = f.input :min_favs, + disabled: !@policy.enabled?, hint: t('statuses_cleanup.min_favs_hint'), input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') }, label: t('statuses_cleanup.min_favs'), wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group = f.input :min_reblogs, + disabled: !@policy.enabled?, hint: t('statuses_cleanup.min_reblogs_hint'), input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') }, label: t('statuses_cleanup.min_reblogs'), From b6c1b8f7480d87340a128c593ad267e4b5501beb Mon Sep 17 00:00:00 2001 From: Valtteri Laitinen Date: Sun, 4 Aug 2024 18:13:15 +0300 Subject: [PATCH 069/306] Fix missing border around tab/filter bar (#31286) --- 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 3c1ec28163..1bd113814c 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -7354,7 +7354,7 @@ a.status-card { display: flex; flex-shrink: 0; - @media screen and (max-width: $no-gap-breakpoint) { + @media screen and (max-width: $no-gap-breakpoint - 1px) { border-right: 0; border-left: 0; } From 315308b10cf1d6431053c1553a2f0b596471f039 Mon Sep 17 00:00:00 2001 From: Valtteri Laitinen Date: Sun, 4 Aug 2024 18:14:11 +0300 Subject: [PATCH 070/306] Fix duplicate border around search results (#31284) --- app/javascript/styles/mastodon/components.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 1bd113814c..583b5d4c5a 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -3086,6 +3086,11 @@ $ui-header-logo-wordmark-width: 99px; .explore__search-header { display: flex; } + + .explore__search-results { + border: 0; + border-radius: 0; + } } .icon-with-badge { From 3fec1baefdeb7da5685e109fabaf56a3575201bb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 08:28:22 +0200 Subject: [PATCH 071/306] chore(deps): update devdependencies (non-major) (#31294) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 170 +++++++++++++++++++++++++++++------------------------- 1 file changed, 93 insertions(+), 77 deletions(-) diff --git a/yarn.lock b/yarn.lock index d7adb6b640..0c6f7fdb83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4677,12 +4677,12 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^6.2.0": - version: 6.2.0 - resolution: "ansi-escapes@npm:6.2.0" +"ansi-escapes@npm:^7.0.0": + version: 7.0.0 + resolution: "ansi-escapes@npm:7.0.0" dependencies: - type-fest: "npm:^3.0.0" - checksum: 10c0/3eec75deedd8b10192c5f98e4cd9715cc3ff268d33fc463c24b7d22446668bfcd4ad1803993ea89c0f51f88b5a3399572bacb7c8cb1a067fc86e189c5f3b0c7e + environment: "npm:^1.0.0" + checksum: 10c0/86e51e36fabef18c9c004af0a280573e828900641cea35134a124d2715e0c5a473494ab4ce396614505da77638ae290ff72dd8002d9747d2ee53f5d6bbe336be languageName: node linkType: hard @@ -6034,12 +6034,12 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-cursor@npm:4.0.0" +"cli-cursor@npm:^5.0.0": + version: 5.0.0 + resolution: "cli-cursor@npm:5.0.0" dependencies: - restore-cursor: "npm:^4.0.0" - checksum: 10c0/e776e8c3c6727300d0539b0d25160b2bb56aed1a63942753ba1826b012f337a6f4b7ace3548402e4f2f13b5e16bfd751be672c44b203205e7eca8be94afec42c + restore-cursor: "npm:^5.0.0" + checksum: 10c0/7ec62f69b79f6734ab209a3e4dbdc8af7422d44d360a7cb1efa8a0887bbe466a6e625650c466fe4359aee44dbe2dc0b6994b583d40a05d0808a5cb193641d220 languageName: node linkType: hard @@ -6937,15 +6937,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.4": - version: 4.3.5 - resolution: "debug@npm:4.3.5" +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.6, debug@npm:~4.3.6": + version: 4.3.6 + resolution: "debug@npm:4.3.6" dependencies: ms: "npm:2.1.2" peerDependenciesMeta: supports-color: optional: true - checksum: 10c0/082c375a2bdc4f4469c99f325ff458adad62a3fc2c482d59923c260cb08152f34e2659f72b3767db8bb2f21ca81a60a42d1019605a412132d7b9f59363a005cc + checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285 languageName: node linkType: hard @@ -7577,6 +7577,13 @@ __metadata: languageName: node linkType: hard +"environment@npm:^1.0.0": + version: 1.1.0 + resolution: "environment@npm:1.1.0" + checksum: 10c0/fb26434b0b581ab397039e51ff3c92b34924a98b2039dcb47e41b7bca577b9dbf134a8eadb364415c74464b682e2d3afe1a4c0eb9873dc44ea814c5d3103331d + languageName: node + linkType: hard + "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -9521,11 +9528,11 @@ __metadata: linkType: hard "husky@npm:^9.0.11": - version: 9.1.3 - resolution: "husky@npm:9.1.3" + version: 9.1.4 + resolution: "husky@npm:9.1.4" bin: husky: bin.js - checksum: 10c0/3fb8657ff97f529dab0b9a0afa6b818ec604f60c39abc13e8e3f4263ea30a3aa6fff7a1b625b8a53700899ce0ea2f5f656981c46b8f1837cfd84ddb6da883fb2 + checksum: 10c0/f5185003bef9ad9ec3f40e821963e4c12409b993fdcab89e3d660bed7d8c9d8bfd399f05222e27e0ead6589601fb1bb08d1a589c51751a4ab0547ead3429b8de languageName: node linkType: hard @@ -11332,7 +11339,7 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:^3.1.2, lilconfig@npm:~3.1.1": +"lilconfig@npm:^3.1.2, lilconfig@npm:~3.1.2": version: 3.1.2 resolution: "lilconfig@npm:3.1.2" checksum: 10c0/f059630b1a9bddaeba83059db00c672b64dc14074e9f232adce32b38ca1b5686ab737eb665c5ba3c32f147f0002b4bee7311ad0386a9b98547b5623e87071fbe @@ -11347,36 +11354,36 @@ __metadata: linkType: hard "lint-staged@npm:^15.0.0": - version: 15.2.7 - resolution: "lint-staged@npm:15.2.7" + version: 15.2.8 + resolution: "lint-staged@npm:15.2.8" dependencies: chalk: "npm:~5.3.0" commander: "npm:~12.1.0" - debug: "npm:~4.3.4" + debug: "npm:~4.3.6" execa: "npm:~8.0.1" - lilconfig: "npm:~3.1.1" - listr2: "npm:~8.2.1" + lilconfig: "npm:~3.1.2" + listr2: "npm:~8.2.4" micromatch: "npm:~4.0.7" pidtree: "npm:~0.6.0" string-argv: "npm:~0.3.2" - yaml: "npm:~2.4.2" + yaml: "npm:~2.5.0" bin: lint-staged: bin/lint-staged.js - checksum: 10c0/c14399f9782ae222a1748144254f24b5b9afc816dc8840bd02d50f523c6582796ff18410767eb1a73cf1a83bc6e492dea7b1c4f0912bf3e434c068221f13c878 + checksum: 10c0/7d43f11f493d27951c746b4c077fed16ba954c0517cf2fd999034e9e7bf86fde506a797b23531a56a1fde4c24846e0f6583ce6db3bdfd42e92335b1aab367737 languageName: node linkType: hard -"listr2@npm:~8.2.1": - version: 8.2.1 - resolution: "listr2@npm:8.2.1" +"listr2@npm:~8.2.4": + version: 8.2.4 + resolution: "listr2@npm:8.2.4" dependencies: cli-truncate: "npm:^4.0.0" colorette: "npm:^2.0.20" eventemitter3: "npm:^5.0.1" - log-update: "npm:^6.0.0" - rfdc: "npm:^1.3.1" + log-update: "npm:^6.1.0" + rfdc: "npm:^1.4.1" wrap-ansi: "npm:^9.0.0" - checksum: 10c0/ac32cba8e5c79bcf0dbbb43c2fcc73e47902320c1fa1891074fefb3aa3dfaeef9c76348da22909f65334ba9bee1140bfc903e2f0c64427dd08ef4ba8f6b1dbd0 + checksum: 10c0/df5b129e9767de1997973cec6103cd4bd6fc3b3367685b7c23048d12b61d5b7e44fecd8a3d3534c0e1c963bd5ac43ca501d14712f46fa101050037be323a5c16 languageName: node linkType: hard @@ -11544,16 +11551,16 @@ __metadata: languageName: node linkType: hard -"log-update@npm:^6.0.0": - version: 6.0.0 - resolution: "log-update@npm:6.0.0" +"log-update@npm:^6.1.0": + version: 6.1.0 + resolution: "log-update@npm:6.1.0" dependencies: - ansi-escapes: "npm:^6.2.0" - cli-cursor: "npm:^4.0.0" - slice-ansi: "npm:^7.0.0" + ansi-escapes: "npm:^7.0.0" + cli-cursor: "npm:^5.0.0" + slice-ansi: "npm:^7.1.0" strip-ansi: "npm:^7.1.0" wrap-ansi: "npm:^9.0.0" - checksum: 10c0/e0b3c3401ef49ce3eb17e2f83d644765e4f7988498fc1344eaa4f31ab30e510dcc469a7fb64dc01bd1c8d9237d917598fa677a9818705fb3774c10f6e9d4b27c + checksum: 10c0/4b350c0a83d7753fea34dcac6cd797d1dc9603291565de009baa4aa91c0447eab0d3815a05c8ec9ac04fdfffb43c82adcdb03ec1fceafd8518e1a8c1cff4ff89 languageName: node linkType: hard @@ -11909,6 +11916,13 @@ __metadata: languageName: node linkType: hard +"mimic-function@npm:^5.0.0": + version: 5.0.1 + resolution: "mimic-function@npm:5.0.1" + checksum: 10c0/f3d9464dd1816ecf6bdf2aec6ba32c0728022039d992f178237d8e289b48764fee4131319e72eedd4f7f094e22ded0af836c3187a7edc4595d28dd74368fd81d + languageName: node + linkType: hard + "min-indent@npm:^1.0.0": version: 1.0.1 resolution: "min-indent@npm:1.0.1" @@ -12572,7 +12586,7 @@ __metadata: languageName: node linkType: hard -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": +"onetime@npm:^5.1.2": version: 5.1.2 resolution: "onetime@npm:5.1.2" dependencies: @@ -12590,6 +12604,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^7.0.0": + version: 7.0.0 + resolution: "onetime@npm:7.0.0" + dependencies: + mimic-function: "npm:^5.0.0" + checksum: 10c0/5cb9179d74b63f52a196a2e7037ba2b9a893245a5532d3f44360012005c9cadb60851d56716ebff18a6f47129dab7168022445df47c2aff3b276d92585ed1221 + languageName: node + linkType: hard + "opencollective-postinstall@npm:^2.0.2": version: 2.0.3 resolution: "opencollective-postinstall@npm:2.0.3" @@ -13935,10 +13958,10 @@ __metadata: languageName: node linkType: hard -"postcss-resolve-nested-selector@npm:^0.1.1": - version: 0.1.1 - resolution: "postcss-resolve-nested-selector@npm:0.1.1" - checksum: 10c0/e86412064c5d805fbee20f4e851395304102addd7d583b6a991adaa5616e8d5f45549864eb6292d4cf15075cd261c289f069acdf6a2556689fc44fe72bcb306e +"postcss-resolve-nested-selector@npm:^0.1.1, postcss-resolve-nested-selector@npm:^0.1.4": + version: 0.1.4 + resolution: "postcss-resolve-nested-selector@npm:0.1.4" + checksum: 10c0/c265c35ddd474968bc4efbe4027e33f28910ef3931ffae9c448878d7c02735aeeea6d33aa6f89902e4c111e6fe87f2cc2aa72dcb3ac242d58809f1f932baa2b6 languageName: node linkType: hard @@ -13971,13 +13994,13 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.16, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0": - version: 6.1.0 - resolution: "postcss-selector-parser@npm:6.1.0" +"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.16, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.1": + version: 6.1.1 + resolution: "postcss-selector-parser@npm:6.1.1" dependencies: cssesc: "npm:^3.0.0" util-deprecate: "npm:^1.0.2" - checksum: 10c0/91e9c6434772506bc7f318699dd9d19d32178b52dfa05bed24cb0babbdab54f8fb765d9920f01ac548be0a642aab56bce493811406ceb00ae182bbb53754c473 + checksum: 10c0/5608765e033fee35d448e1f607ffbaa750eb86901824a8bc4a911ea8bc137cb82f29239330787427c5d3695afd90d8721e190f211dbbf733e25033d8b3100763 languageName: node linkType: hard @@ -14011,7 +14034,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.2.15, postcss@npm:^8.4.24, postcss@npm:^8.4.39": +"postcss@npm:^8.2.15, postcss@npm:^8.4.24, postcss@npm:^8.4.40": version: 8.4.40 resolution: "postcss@npm:8.4.40" dependencies: @@ -15244,13 +15267,13 @@ __metadata: languageName: node linkType: hard -"restore-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "restore-cursor@npm:4.0.0" +"restore-cursor@npm:^5.0.0": + version: 5.1.0 + resolution: "restore-cursor@npm:5.1.0" dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 10c0/6f7da8c5e422ac26aa38354870b1afac09963572cf2879443540449068cb43476e9cbccf6f8de3e0171e0d6f7f533c2bc1a0a008003c9a525bbc098e89041318 + onetime: "npm:^7.0.0" + signal-exit: "npm:^4.1.0" + checksum: 10c0/c2ba89131eea791d1b25205bdfdc86699767e2b88dee2a590b1a6caa51737deac8bad0260a5ded2f7c074b7db2f3a626bcf1fcf3cdf35974cbeea5e2e6764f60 languageName: node linkType: hard @@ -15275,10 +15298,10 @@ __metadata: languageName: node linkType: hard -"rfdc@npm:^1.3.1": - version: 1.3.1 - resolution: "rfdc@npm:1.3.1" - checksum: 10c0/69f65e3ed30970f8055fac9fbbef9ce578800ca19554eab1dcbffe73a4b8aef536bc4248313889cf25e3b4e38b212c721eabe30856575bf2b2bc3d90f8ba93ef +"rfdc@npm:^1.4.1": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7 languageName: node linkType: hard @@ -15838,7 +15861,7 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^7.0.0": +"slice-ansi@npm:^7.1.0": version: 7.1.0 resolution: "slice-ansi@npm:7.1.0" dependencies: @@ -16606,8 +16629,8 @@ __metadata: linkType: hard "stylelint@npm:^16.0.2": - version: 16.7.0 - resolution: "stylelint@npm:16.7.0" + version: 16.8.1 + resolution: "stylelint@npm:16.8.1" dependencies: "@csstools/css-parser-algorithms": "npm:^2.7.1" "@csstools/css-tokenizer": "npm:^2.4.1" @@ -16619,7 +16642,7 @@ __metadata: cosmiconfig: "npm:^9.0.0" css-functions-list: "npm:^3.2.2" css-tree: "npm:^2.3.1" - debug: "npm:^4.3.5" + debug: "npm:^4.3.6" fast-glob: "npm:^3.3.2" fastest-levenshtein: "npm:^1.0.16" file-entry-cache: "npm:^9.0.0" @@ -16636,10 +16659,10 @@ __metadata: micromatch: "npm:^4.0.7" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.1" - postcss: "npm:^8.4.39" - postcss-resolve-nested-selector: "npm:^0.1.1" + postcss: "npm:^8.4.40" + postcss-resolve-nested-selector: "npm:^0.1.4" postcss-safe-parser: "npm:^7.0.0" - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^6.1.1" postcss-value-parser: "npm:^4.2.0" resolve-from: "npm:^5.0.0" string-width: "npm:^4.2.3" @@ -16650,7 +16673,7 @@ __metadata: write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 10c0/98cb36037684433d991a0c507bbf8155309e96470177487f493e66de098631e5303b235470fc5c8086cd98013385b669c4e3cb68ad01421b898e1da6848e5d78 + checksum: 10c0/7bc6b0193f83420b2170026078b427d7fb22a07d3345fc99a16241625a572f2fc3e1fa1999e54c01cc2b15bd59d135715c2b140b089c17aa7f4e377ded1fc1b5 languageName: node linkType: hard @@ -17205,13 +17228,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^3.0.0": - version: 3.13.1 - resolution: "type-fest@npm:3.13.1" - checksum: 10c0/547d22186f73a8c04590b70dcf63baff390078c75ea8acd366bbd510fd0646e348bd1970e47ecf795b7cff0b41d26e9c475c1fedd6ef5c45c82075fbf916b629 - languageName: node - linkType: hard - "type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" @@ -18577,12 +18593,12 @@ __metadata: languageName: node linkType: hard -"yaml@npm:~2.4.2": - version: 2.4.2 - resolution: "yaml@npm:2.4.2" +"yaml@npm:~2.5.0": + version: 2.5.0 + resolution: "yaml@npm:2.5.0" bin: yaml: bin.mjs - checksum: 10c0/280ddb2e43ffa7d91a95738e80c8f33e860749cdc25aa6d9e4d350a28e174fd7e494e4aa023108aaee41388e451e3dc1292261d8f022aabcf90df9c63d647549 + checksum: 10c0/771a1df083c8217cf04ef49f87244ae2dd7d7457094425e793b8f056159f167602ce172aa32d6bca21f787d24ec724aee3cecde938f6643564117bd151452631 languageName: node linkType: hard From e99c0e61ea12233904aeb4a0581d14b7ae4ce619 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 06:29:03 +0000 Subject: [PATCH 072/306] chore(deps): update dependency @types/ws to v8.5.12 (#31293) 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 0c6f7fdb83..59345e05a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4107,11 +4107,11 @@ __metadata: linkType: hard "@types/ws@npm:^8.5.9": - version: 8.5.11 - resolution: "@types/ws@npm:8.5.11" + version: 8.5.12 + resolution: "@types/ws@npm:8.5.12" dependencies: "@types/node": "npm:*" - checksum: 10c0/50bd2e1a12659fa024a97d7e8c267fbf2a2c2251f1edf2057aa7dfc99682f5c025a188df9e27414675c78d3b189346a3567e1e4c218ad79a9d2b0f1f2b860c3a + checksum: 10c0/3fd77c9e4e05c24ce42bfc7647f7506b08c40a40fe2aea236ef6d4e96fc7cb4006a81ed1b28ec9c457e177a74a72924f4768b7b4652680b42dfd52bc380e15f9 languageName: node linkType: hard From f33049ffe43edf8886a4d549d506dd13ee06c36f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 08:29:38 +0200 Subject: [PATCH 073/306] chore(deps): update dependency ffmpeg to v7.0.2 (#31289) 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 bc7cd3b682..a0af1eda6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -211,7 +211,7 @@ FROM build AS ffmpeg # ffmpeg version to compile, change with [--build-arg FFMPEG_VERSION="7.0.x"] # renovate: datasource=repology depName=ffmpeg packageName=openpkg_current/ffmpeg -ARG FFMPEG_VERSION=7.0.1 +ARG FFMPEG_VERSION=7.0.2 # ffmpeg download URL, change with [--build-arg FFMPEG_URL="https://ffmpeg.org/releases"] ARG FFMPEG_URL=https://ffmpeg.org/releases From 3a368933b400c8fb6d49749efd6674c22c9a34e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 09:11:57 +0200 Subject: [PATCH 074/306] fix(deps): update dependency core-js to v3.38.0 (#31290) 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 59345e05a1..8afa819f5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6388,9 +6388,9 @@ __metadata: linkType: hard "core-js@npm:^3.30.2": - version: 3.37.1 - resolution: "core-js@npm:3.37.1" - checksum: 10c0/440eb51a7a39128a320225fe349f870a3641b96c9ecd26470227db730ef8c161ea298eaea621db66ec0ff622a85299efb4e23afebf889c0a1748616102307675 + version: 3.38.0 + resolution: "core-js@npm:3.38.0" + checksum: 10c0/3218ae19bfe0c6560663012cbd3e7f3dc1b36d50fc71e8c365f3b119185e8a35ac4e8bb9698ae510b3c201ef93f40bdc29f9215716ccf31aca28f77969bb4ed0 languageName: node linkType: hard From 176d1feadf26e635f3b3e83da3d688f002b9c342 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 09:12:47 +0200 Subject: [PATCH 075/306] chore(deps): update yarn to v4.4.0 (#31274) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- streaming/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 27edd7dc27..e9ded52a3d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@mastodon/mastodon", "license": "AGPL-3.0-or-later", - "packageManager": "yarn@4.3.1", + "packageManager": "yarn@4.4.0", "engines": { "node": ">=18" }, diff --git a/streaming/package.json b/streaming/package.json index 1ee738c332..4f44927831 100644 --- a/streaming/package.json +++ b/streaming/package.json @@ -1,7 +1,7 @@ { "name": "@mastodon/streaming", "license": "AGPL-3.0-or-later", - "packageManager": "yarn@4.3.1", + "packageManager": "yarn@4.4.0", "engines": { "node": ">=18" }, From 9e440bee195f7107fb7b7ec9371ab360dcb6de67 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 09:13:00 +0200 Subject: [PATCH 076/306] chore(deps): update dependency aws-sdk-s3 to v1.157.0 (#31252) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 49bd446d9b..093f15339c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -100,8 +100,8 @@ GEM attr_required (1.0.2) awrence (1.2.1) aws-eventstream (1.3.0) - aws-partitions (1.950.0) - aws-sdk-core (3.201.0) + aws-partitions (1.961.0) + aws-sdk-core (3.201.3) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) @@ -109,11 +109,11 @@ GEM aws-sdk-kms (1.88.0) aws-sdk-core (~> 3, >= 3.201.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.156.0) + aws-sdk-s3 (1.157.0) aws-sdk-core (~> 3, >= 3.201.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) - aws-sigv4 (1.8.0) + aws-sigv4 (1.9.1) aws-eventstream (~> 1, >= 1.0.2) azure-storage-blob (2.0.3) azure-storage-common (~> 2.0) From 29d6310b806c3d8d940396250bd8af080d6437b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 09:13:14 +0200 Subject: [PATCH 077/306] chore(deps): update dependency sidekiq-scheduler to v5.0.6 (#31245) 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 093f15339c..c3b5ab9150 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -796,7 +796,7 @@ GEM redis (>= 4.5.0, < 5) sidekiq-bulk (0.2.0) sidekiq - sidekiq-scheduler (5.0.5) + sidekiq-scheduler (5.0.6) rufus-scheduler (~> 3.2) sidekiq (>= 6, < 8) tilt (>= 1.4.0, < 3) From 02c22228790bec1cbce527edd711fbf995078578 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 07:13:47 +0000 Subject: [PATCH 078/306] fix(deps): update dependency postcss-preset-env to v10 (#31279) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 845 +++++++++++++++++++++++++++------------------------ 2 files changed, 441 insertions(+), 406 deletions(-) diff --git a/package.json b/package.json index e9ded52a3d..26ee3570a9 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "path-complete-extname": "^1.0.0", "postcss": "^8.4.24", "postcss-loader": "^4.3.0", - "postcss-preset-env": "^9.5.2", + "postcss-preset-env": "^10.0.0", "prop-types": "^15.8.1", "punycode": "^2.3.0", "react": "^18.2.0", diff --git a/yarn.lock b/yarn.lock index 8afa819f5c..9786925f65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1569,13 +1569,13 @@ __metadata: languageName: node linkType: hard -"@csstools/cascade-layer-name-parser@npm:^1.0.13": - version: 1.0.13 - resolution: "@csstools/cascade-layer-name-parser@npm:1.0.13" +"@csstools/cascade-layer-name-parser@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/cascade-layer-name-parser@npm:2.0.0" peerDependencies: - "@csstools/css-parser-algorithms": ^2.7.1 - "@csstools/css-tokenizer": ^2.4.1 - checksum: 10c0/a6412fc8601af1baadc8195934aa668d3476e799891c9d0883390f31ec8678e9b565ac14d919bec633bbc086657ac12aa4cd852c718851a2d34517ee6856ff8e + "@csstools/css-parser-algorithms": ^3.0.0 + "@csstools/css-tokenizer": ^3.0.0 + checksum: 10c0/11de0c4abad1316a6b29a2c4f7966fc39af5cbcd0a542d92cbcca8a8173d472f3d577175fc097bebf793158936193a74829a035e1cb2abccbe056473a3076d89 languageName: node linkType: hard @@ -1586,26 +1586,26 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^1.2.4": - version: 1.2.4 - resolution: "@csstools/css-calc@npm:1.2.4" +"@csstools/css-calc@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/css-calc@npm:2.0.0" peerDependencies: - "@csstools/css-parser-algorithms": ^2.7.1 - "@csstools/css-tokenizer": ^2.4.1 - checksum: 10c0/6233746eb642797b7fbc2cf6e7651e95700b294e78e3c29e8730c3236bb92cf62903efb6e54639e8f877683c40646e137c95e615c4450809b21b61a6192888ca + "@csstools/css-parser-algorithms": ^3.0.0 + "@csstools/css-tokenizer": ^3.0.0 + checksum: 10c0/441f8fafaa4f87302b85e2c46bc8a3efb388e0357f0db5c45438fe99c5660afeb524332a0a3339574fdd26392e65f8db9c7ab6db3361726f1702987e8522c531 languageName: node linkType: hard -"@csstools/css-color-parser@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/css-color-parser@npm:2.0.4" +"@csstools/css-color-parser@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/css-color-parser@npm:3.0.0" dependencies: "@csstools/color-helpers": "npm:^4.2.1" - "@csstools/css-calc": "npm:^1.2.4" + "@csstools/css-calc": "npm:^2.0.0" peerDependencies: - "@csstools/css-parser-algorithms": ^2.7.1 - "@csstools/css-tokenizer": ^2.4.1 - checksum: 10c0/e009a2f34b6c328daad54262deb86b71c6a7a9a1da1db8ad39cf719641e1a728ed8ddbd23613d519d26deee33b89ba12cb15a6928718c1b3cc5e24ac1ed02f47 + "@csstools/css-parser-algorithms": ^3.0.0 + "@csstools/css-tokenizer": ^3.0.0 + checksum: 10c0/9b56ba3b56691d2133f1d9b881131bfd9745024a79f825284109adac05578e15ae3eed0e99c98db162932d69770fc970b5b005996c32cdf7167af3418da263c3 languageName: node linkType: hard @@ -1618,6 +1618,15 @@ __metadata: languageName: node linkType: hard +"@csstools/css-parser-algorithms@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/css-parser-algorithms@npm:3.0.0" + peerDependencies: + "@csstools/css-tokenizer": ^3.0.0 + checksum: 10c0/ffa06c9d883e6bbb6198c98b5a395abe9847ff63ae41db54d75812e52764f550b36625fdb427c9a4ea6dfd71362aa98194ccd63afad0e521f6f3470c7515d241 + languageName: node + linkType: hard + "@csstools/css-tokenizer@npm:^2.4.1": version: 2.4.1 resolution: "@csstools/css-tokenizer@npm:2.4.1" @@ -1625,6 +1634,13 @@ __metadata: languageName: node linkType: hard +"@csstools/css-tokenizer@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/css-tokenizer@npm:3.0.0" + checksum: 10c0/6d0f3e44bfb4b309bc4e260e6399163653f5715b16ebf1f2907ec98a2b31e9b2de94c09012b6d291c6f4229cc2a521e4f66594cac1b6276a4eb205e8e23e446b + languageName: node + linkType: hard + "@csstools/media-query-list-parser@npm:^2.1.13": version: 2.1.13 resolution: "@csstools/media-query-list-parser@npm:2.1.13" @@ -1635,383 +1651,393 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-cascade-layers@npm:^4.0.6": - version: 4.0.6 - resolution: "@csstools/postcss-cascade-layers@npm:4.0.6" - dependencies: - "@csstools/selector-specificity": "npm:^3.1.1" - postcss-selector-parser: "npm:^6.0.13" +"@csstools/media-query-list-parser@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/media-query-list-parser@npm:3.0.0" peerDependencies: - postcss: ^8.4 - checksum: 10c0/134019e9b3f71de39034658e2a284f549883745a309f774d8d272871f9e65680e0981c893766537a8a56ed7f41dba2d0f9fc3cb4fa4057c227bc193976a2ec79 + "@csstools/css-parser-algorithms": ^3.0.0 + "@csstools/css-tokenizer": ^3.0.0 + checksum: 10c0/0a83ab7cba4fec5543c5abf3f7145ab5742c44e0ed3349d41787739a1bd897a8cf27f35f3bc714d1d02a44b2a34f28b3b82ce6d0cb6b9c4fbb679dc034f8a152 languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^3.0.19": - version: 3.0.19 - resolution: "@csstools/postcss-color-function@npm:3.0.19" +"@csstools/postcss-cascade-layers@npm:^5.0.0": + version: 5.0.0 + resolution: "@csstools/postcss-cascade-layers@npm:5.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/selector-specificity": "npm:^4.0.0" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/067e33d7dfc32b56fe63d4f97464a3eaf27dde720961e44feab6076bd2c172dd4c1bad16aa37a922dcbba470756bd6a13e728d9e71eab6937d48d83873cd1879 + checksum: 10c0/b608c69c12671682676598e451dcd79bfc6f5030a4e17b4d1bf9659e531f1daf03526be023f9aafdc952ecc87c87b04f379a763309e3eadb2140572cd4aa5b60 languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^2.0.19": - version: 2.0.19 - resolution: "@csstools/postcss-color-mix-function@npm:2.0.19" +"@csstools/postcss-color-function@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-color-function@npm:4.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e967d93672a065806dc78da0153f8b4f5087f7c3ddfe361eba4942780760d47b317124913c9b0dda7f9bfff1253f77d1b6debd8a6a2aa3a6c80e263101da5e8c + checksum: 10c0/ff0c0c44f5d17bc5e7ea287eff9c10ca334a84d086998a6b243a209f1795d32ba872357935f4176e5206b88dc8d2a204f452c13bc940540b7122e9e807511ac6 languageName: node linkType: hard -"@csstools/postcss-content-alt-text@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-content-alt-text@npm:1.0.0" +"@csstools/postcss-color-mix-function@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0c2c64857ac652989d00c3d2ba49d0cd1cc245193cba6724d2f5841aa990ee6a07267cfebc6fabde6a6246616df60373006d17c5ea9b904129fbfd826dc10a8d + checksum: 10c0/120e96581834b2363df1fb653959dc243d93c01bcd70bf2e34418c20cd418a75f8b4e2e81da6955345619dcbb246e7d023f395521522bacb455583c15f61c677 languageName: node linkType: hard -"@csstools/postcss-exponential-functions@npm:^1.0.9": - version: 1.0.9 - resolution: "@csstools/postcss-exponential-functions@npm:1.0.9" +"@csstools/postcss-content-alt-text@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/postcss-content-alt-text@npm:2.0.0" dependencies: - "@csstools/css-calc": "npm:^1.2.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/eaec29ef6ec201786c606176235dced4af1922d5ac56c6b0993ad2e7d87464a32702d9b28cae9a76e8527f741b50cbc31d4c646f45d02dc69d520f241b3e7878 + checksum: 10c0/978e99425f1b5420c55282f51de65646b910f9d60621f5ad7adb7a2dace26c68dc384cd4798604e2c5d8bcd1e635a20474a6ea044a7e9b449d068d6db77a2738 languageName: node linkType: hard -"@csstools/postcss-font-format-keywords@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-font-format-keywords@npm:3.0.2" +"@csstools/postcss-exponential-functions@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/postcss-exponential-functions@npm:2.0.0" dependencies: - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-calc": "npm:^2.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + peerDependencies: + postcss: ^8.4 + checksum: 10c0/a5ccd4fb5b6f6f370bf07ef8f918658ef4d9865a92d9866f57edfe7479c6a486701520cbe0efb8f39af9b78eda0819d8663554e9797b8bdcadc2291733bf6b3f + languageName: node + linkType: hard + +"@csstools/postcss-font-format-keywords@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-font-format-keywords@npm:4.0.0" + dependencies: + "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/1b9bf031ce1a00fef1fae0b1ad614eddc6bb4c036ecad47e065c99063ba3d2f6ab8e47f9db02a6fbe8b75b0e02a075a7a80480d4296918970ba9e8d36f07a523 + checksum: 10c0/eb794fb95fefcac75e606d185255e601636af177866a317b0c6b6c375055e7240be53918229fd8d4bba00df01bedd2256bdac2b0ad4a4c2ec64f9d27cd6ff639 languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^1.0.11": - version: 1.0.11 - resolution: "@csstools/postcss-gamut-mapping@npm:1.0.11" +"@csstools/postcss-gamut-mapping@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/29e755013f1d1de34eb62a931ed410d2830ca3dfc81476cb3c72d9d3260b85a9adedc51aa548550c6e308f3f9640c489e6953db40e9cac9835d0421d5b14ef1f + checksum: 10c0/be1d7f4c96f3bbcb69ed4ccc2ff406a884ae7129e6542ab6800782fbfe4e077159352409961f2da8054ec9fabbf6ed211288f1004c96632a1f6b10bef332d880 languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^4.0.20": - version: 4.0.20 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:4.0.20" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.0": + version: 5.0.0 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/6588825a72a1471e2d6036c8cf7dbad2bf05f369d96dbdd68ff5ce7ff91803b8ee1146f5f1bf6f3ab6299944549da872914664c3f9e8ae5a31847f76f0085c74 + checksum: 10c0/04e29fd877a499b9570665aea5b23cd70635b538dd903b9f9706ddd85a2d9c93445aea4b6b7dbcf8986ab58b45bb502ec5060044d945096d0af2eb6cebadb88e languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^3.0.18": - version: 3.0.18 - resolution: "@csstools/postcss-hwb-function@npm:3.0.18" +"@csstools/postcss-hwb-function@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-hwb-function@npm:4.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e9d76b0b2f9c54920124ca1804b49e3f5b26e003729418b5ef4b340ff1baa4779da1c02be618888fdbcc2d0747182352efbbd3ffe128e2417928c35c25443789 + checksum: 10c0/1aff69ca364417ac2b7ef1c737f88567f441bfd54d93d7b635e0ad605c61edcc2282bc0e2df73c83d1c6a24487e0acec34a4585d27d5f6027402aaea71696190 languageName: node linkType: hard -"@csstools/postcss-ic-unit@npm:^3.0.7": - version: 3.0.7 - resolution: "@csstools/postcss-ic-unit@npm:3.0.7" +"@csstools/postcss-ic-unit@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-ic-unit@npm:4.0.0" dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/2add905b75860c64d7174886fecfc76d86e3818f42f003f4bbfc0604cc7f0f31c6dbd1651e6b9512fea876190d80033578ae49e813b64b17c8cf3b1f03d8e146 + checksum: 10c0/6f94ec31002a245768a30d240c432b8712af4d9ea76a62403e16d4e0afb5be7636348a2d4619046ed29aa7726f88a0c191ca41c96d7ab0f3da940025c91b056e languageName: node linkType: hard -"@csstools/postcss-initial@npm:^1.0.1": - version: 1.0.1 - resolution: "@csstools/postcss-initial@npm:1.0.1" +"@csstools/postcss-initial@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/postcss-initial@npm:2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/5d21c7c611d90a4b6758ba5be5e38d8d9eea9499c62797c4f5e01fbc9ccc2c68daf1c201850efe70ffa4ff9e979e7dea80b854b8793768550879562881aa6f9f + checksum: 10c0/44c443cba84cc66367f2082bf20db06c8437338c02c244c38798c5bf5342932d89fed0dd13e4409f084ecf7fce47ae6394e9a7a006fd98a973decfa24ab1eb04 languageName: node linkType: hard -"@csstools/postcss-is-pseudo-class@npm:^4.0.8": - version: 4.0.8 - resolution: "@csstools/postcss-is-pseudo-class@npm:4.0.8" +"@csstools/postcss-is-pseudo-class@npm:^5.0.0": + version: 5.0.0 + resolution: "@csstools/postcss-is-pseudo-class@npm:5.0.0" dependencies: - "@csstools/selector-specificity": "npm:^3.1.1" - postcss-selector-parser: "npm:^6.0.13" + "@csstools/selector-specificity": "npm:^4.0.0" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/82f191571c3e0973354a54ef15feeb17f9408b4abbefad19fc0f087683b1212fc854cdf09a47324267dd47be4c5cb47d63b8d083695a67c3f8f3e53df3d561f6 + checksum: 10c0/738eb84728b24bfe19ca06ccf6ff773a423552df2f31c87704ce79da4abfd2ccf2a45d5d6d3e11e71e42cc3d92eb35a856209b9cd6116c879acf15ac75454683 languageName: node linkType: hard -"@csstools/postcss-light-dark-function@npm:^1.0.8": - version: 1.0.8 - resolution: "@csstools/postcss-light-dark-function@npm:1.0.8" +"@csstools/postcss-light-dark-function@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/postcss-light-dark-function@npm:2.0.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/78fa6d799d38f14af1b32b534eedbec9478033e1fbc5a4e820f2421e865673d010b69b391546686ceb408ead64d79bb4eba2a4fb1fc9f0de70ff21e3ff8477c6 + checksum: 10c0/d0eb1e04854c4ae425c6aff51ce9d0db90e9457aea3307d3ed916f500d2b5a3314a25d3487ea893e7b006a34c0d155462566d6066c8c54baec33eb104891c6db languageName: node linkType: hard -"@csstools/postcss-logical-float-and-clear@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/postcss-logical-float-and-clear@npm:2.0.1" +"@csstools/postcss-logical-float-and-clear@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/postcss-logical-float-and-clear@npm:3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/92d9184bf8a159753a5872463dcfde580abd9b935e2a59f7ebe601cd14d9871f2f9f4dc18d8bbe251e7d8a3e446e302d9d99bf408d9cabbd9a6323825f5e833d + checksum: 10c0/71a20e8c37877bf68ae615d7bb93fc11b4f8da8be8b1dc1a6e0fc69e27f189712ed71436b8ed51fa69fdb98b8e6718df2b5f42f246c4d39badaf0e43020fcfd4 languageName: node linkType: hard -"@csstools/postcss-logical-overflow@npm:^1.0.1": - version: 1.0.1 - resolution: "@csstools/postcss-logical-overflow@npm:1.0.1" +"@csstools/postcss-logical-overflow@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/postcss-logical-overflow@npm:2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/a8f5b1fdaf4ce7b1665407dac2f2e0c0ea11195e6873cfc714d9cd206489170fd91fc172b337330baf60191206f60579e235264f0dc7fee750ccd27ffe02c163 + checksum: 10c0/0e103343d3ff8b34eef01b02355c5e010d272fd12d149a242026bb13ab1577b7f3a11fd4514be9342d96f73d61dac1f093a9bd36ece591753ed09a84eb7fca0a languageName: node linkType: hard -"@csstools/postcss-logical-overscroll-behavior@npm:^1.0.1": - version: 1.0.1 - resolution: "@csstools/postcss-logical-overscroll-behavior@npm:1.0.1" +"@csstools/postcss-logical-overscroll-behavior@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/postcss-logical-overscroll-behavior@npm:2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/9485502bd9235276525351818d6cc11544ac1b270bb4f527f3fac32fe98ac66269366c34cdb8f61920b10ff9aac5824935004a5927490a5febca77eb41226604 + checksum: 10c0/1649601bb26f04d760fb5ebc42cdf414fa2a380b8ec22fe1c117f664c286665a786bd7bbda01b7e7567eaf3cc018a4f36a5c9805f6751cc497da223e0ffe9524 languageName: node linkType: hard -"@csstools/postcss-logical-resize@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/postcss-logical-resize@npm:2.0.1" +"@csstools/postcss-logical-resize@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/postcss-logical-resize@npm:3.0.0" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/18f7e19ea465a15b334d8231b9ed98b630c74a6c2a6c52884437b852065f7b55bb1282cdbbdc1136aade479e996605b01799ab0ab771e2c47fd78d966ed33162 + checksum: 10c0/4f12efcaf5468ff359bb3f32f0f66034b9acc9b3ac21fcd2f30a1c8998fc653ebac0091f35c8b7e8dbfe6ccf595aee67f9b06a67adf45a8844e49a82d98b4386 languageName: node linkType: hard -"@csstools/postcss-logical-viewport-units@npm:^2.0.11": - version: 2.0.11 - resolution: "@csstools/postcss-logical-viewport-units@npm:2.0.11" +"@csstools/postcss-logical-viewport-units@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/postcss-logical-viewport-units@npm:3.0.0" dependencies: - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/20207e9b7fc3ab52df5fcd06fde71fca4fd22bd6bd451cfc2ec6ea69994708b7fc5381e203dc4367293a8de00b1eca7a3ebe89cfa9b933d2f2cb8e3ac4d5aa86 + checksum: 10c0/d474f3b8b3949516ad431c8297eb26ad7ba8829dc323c1a99c25be79af0fa16eef43ddd4d980ea97a676599c5587b4b2afd44c9a1055cf3573bfb2090ecbbd5c languageName: node linkType: hard -"@csstools/postcss-media-minmax@npm:^1.1.8": - version: 1.1.8 - resolution: "@csstools/postcss-media-minmax@npm:1.1.8" +"@csstools/postcss-media-minmax@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/postcss-media-minmax@npm:2.0.0" dependencies: - "@csstools/css-calc": "npm:^1.2.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/media-query-list-parser": "npm:^2.1.13" + "@csstools/css-calc": "npm:^2.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/media-query-list-parser": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/7d666905282c7a89387dbce84f3429bad04870e0de264c5b1ce3e6f042b8eb72d585a18b2d7ac5e1a8c7f6785892da3cc7f6ea0b48069b06e9d383bdbc149b4a + checksum: 10c0/30f8cde005ae5d3750f8d2d62a26570381e306a2a4c3fdeef2ad48febbefd389c65ea471914b69ae8772a4abbd11cd52a78ecdb5d8929ed553ca1d5731f212a2 languageName: node linkType: hard -"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^2.0.11": - version: 2.0.11 - resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:2.0.11" +"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/media-query-list-parser": "npm:^2.1.13" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/media-query-list-parser": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b4023a1951b7661196332852ce714a4e2fb4f1a67164ec0944e28a009b389e59c67e9de790920fcd082b122276414dd39c12ae12a4566e59e1bbcc794560a870 + checksum: 10c0/c7af426e44c4ca2c7cb48c2f54bd8b5e4531d4d7a568011c367038956789bf47bab996fa062f767e255229de3598fb89abdb85011872158c885a4d3ace142509 languageName: node linkType: hard -"@csstools/postcss-nested-calc@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-nested-calc@npm:3.0.2" +"@csstools/postcss-nested-calc@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-nested-calc@npm:4.0.0" dependencies: - "@csstools/utilities": "npm:^1.0.0" + "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/3e24cf641170f9090f0dce088f6dae09ed9a0f38af1bdaa369ecc791a94cce54d7a02a0634f661a97fae24e04f1601c21d753593de018c80ad4236d36144b975 + checksum: 10c0/fb61512fa4909bdf0ee32a23e771145086c445f2208a737b52093c8adfab7362c56d3aeaf2a6e33ffcec067e99a07219775465d2fbb1a3ac30cdcfb278b218b7 languageName: node linkType: hard -"@csstools/postcss-normalize-display-values@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-normalize-display-values@npm:3.0.2" +"@csstools/postcss-normalize-display-values@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-normalize-display-values@npm:4.0.0" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/a20e2f4c213a5ec6e004c2ba76b543d3288a39aae21b3198b06a57df0d2c7916111d2cd70dcb0e8c6ca1cf1b01751e88fd2fe9abbc070e1efab1a4e54dcdbbbe + checksum: 10c0/d3a3a362b532163bd791f97348ef28b7a43baf01987c7702b06285e751cdc5ea3e3a2553f088260515b4d28263d5c475923d4d4780ecb4078ec66dff50c9e638 languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^3.0.19": - version: 3.0.19 - resolution: "@csstools/postcss-oklab-function@npm:3.0.19" +"@csstools/postcss-oklab-function@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-oklab-function@npm:4.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/2909f76ba408c9f60b61c479994c96200b0e1d3dbf524d5ae6dc5ca1e21d38caf974595e0d071c3900dbe3568376928085dd811aa24ea3e715bcd9de26fb0fa9 + checksum: 10c0/9e228049645e6a6baa77d6e7e35b3862f3e2e4836fbf2de43fa246d91f0efa36e7f18eae3f2b224c61e72628aaf14d4bff86c555fb06378d5e05e71dca92f9ec languageName: node linkType: hard -"@csstools/postcss-progressive-custom-properties@npm:^3.3.0": - version: 3.3.0 - resolution: "@csstools/postcss-progressive-custom-properties@npm:3.3.0" +"@csstools/postcss-progressive-custom-properties@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-progressive-custom-properties@npm:4.0.0" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/6c9987d65049a70b5090dcfe42fde9ab2b3cb88911a81bb6651ed81c8baf99502ff2cbec0cb3e022426fa994b558b4bf33fd791ccdcdf683dde75b4865d34f39 + checksum: 10c0/517e5e0b1525667ea1c4469bb2af52995934b9ab3165bba33e3bfdfac63b20bb51c878da582d805957dc0291e396e5a540cac18d1220a08190d98d5463d26ce2 languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^2.0.19": - version: 2.0.19 - resolution: "@csstools/postcss-relative-color-syntax@npm:2.0.19" +"@csstools/postcss-relative-color-syntax@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f0aff764f4889ff664b6fa94ddfa5a22daf39354aa2d2ac0eab893eb3ed841b7d2a72131393334d6a5379445fc80f92ab5bd63d4dc3b43746bc7c9055da46591 + checksum: 10c0/d7ae180d746bd9778d8b9f74f8d644f4c6a98b29659423d4ee2b48f461e90a3e30b44dcf44a181ade083b6c6d1b0346b7b3e62fe67fdeaba59a13f050a19c7d1 languageName: node linkType: hard -"@csstools/postcss-scope-pseudo-class@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/postcss-scope-pseudo-class@npm:3.0.1" +"@csstools/postcss-scope-pseudo-class@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-scope-pseudo-class@npm:4.0.0" dependencies: - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/489c5469951277b810754ba02e9f6c42196e03f2203b908181a81747bf1dcaa7b194c8c0f5c7dcb6b7276d08f2573a71bd7df4f2251c034ef1b92968c7070285 + checksum: 10c0/a6f562df1417c6f257c0fec95babf4cea99a25622573a2dbcfb416e2fcb8e1e53561127f5e7277d19fcb2a4603bdbc64dd6a4c416429623503c604050c99229a languageName: node linkType: hard -"@csstools/postcss-stepped-value-functions@npm:^3.0.10": - version: 3.0.10 - resolution: "@csstools/postcss-stepped-value-functions@npm:3.0.10" +"@csstools/postcss-stepped-value-functions@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.0" dependencies: - "@csstools/css-calc": "npm:^1.2.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" + "@csstools/css-calc": "npm:^2.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f9ebe50fb884d002aa40070196a827816f635b891fd2147ae5ddf1ad6df5bddbb50783d6786897bb3dffa33052565e38289392040cf4454aaa179ab00353117d + checksum: 10c0/02d9b99921a69838d5df7cc2703f381e8e18d14ac5a4bd8b8b24ff80bc9657ff70b1997cdbfd9c2f1985a5d07478a0e97d1617760519450c5475cc1d8159e788 languageName: node linkType: hard -"@csstools/postcss-text-decoration-shorthand@npm:^3.0.7": - version: 3.0.7 - resolution: "@csstools/postcss-text-decoration-shorthand@npm:3.0.7" +"@csstools/postcss-text-decoration-shorthand@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-text-decoration-shorthand@npm:4.0.0" dependencies: "@csstools/color-helpers": "npm:^4.2.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/072b9893ca2409aa16e53e84747d7b7e13071ce19738a0800a139bf71b535e439958d9093df2b85f83eee2e0c44bc22a14bf3a39b5a7508bca9e747a12273d02 + checksum: 10c0/dedc98134648d5306e795e4176b2c39a578a237669562e7d934d0b0ac7411d37bab4065c8b0adfc075b57250daba62f045b86c79286b5f9be55502acef0d88c6 languageName: node linkType: hard -"@csstools/postcss-trigonometric-functions@npm:^3.0.10": - version: 3.0.10 - resolution: "@csstools/postcss-trigonometric-functions@npm:3.0.10" +"@csstools/postcss-trigonometric-functions@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.0" dependencies: - "@csstools/css-calc": "npm:^1.2.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" + "@csstools/css-calc": "npm:^2.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/31adcc66510d9788ccb0669d2761517a6135b13692007d8e4334bc0e8d3515dfecfbdcd04e060d0c09a0f5fc2f12db92221b9d53e92b65b044c89cde9a3424cb + checksum: 10c0/3a53d6724f068511d02a2de3b39e76bf99d622614e1c79b3d2c2eace2f0d36d865288dc2c4a1368fee8db38be7973803504400b2752cd5a1200f825ddc27b253 languageName: node linkType: hard -"@csstools/postcss-unset-value@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/postcss-unset-value@npm:3.0.1" +"@csstools/postcss-unset-value@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/postcss-unset-value@npm:4.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/5032c3125eada0a3a77d0867644cf994e28b789aaa40e990e7eebcdf5a9ed9f36b30e0904827044cea39849c9a9a19c90e82d3ca655550d82a7530872b3b6ff8 + checksum: 10c0/8424ac700ded5bf59d49310335896f10c069e2c3fc6a676b5d13ca5a6fb78689b948f50494df875da284c4c76651deb005eafba70d87e693274628c5a685abfa languageName: node linkType: hard -"@csstools/selector-resolve-nested@npm:^1.1.0": - version: 1.1.0 - resolution: "@csstools/selector-resolve-nested@npm:1.1.0" +"@csstools/selector-resolve-nested@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/selector-resolve-nested@npm:2.0.0" peerDependencies: - postcss-selector-parser: ^6.0.13 - checksum: 10c0/3a53b14e048d48b8900c1cf30442ab5eec1a1087c74ce41459c4dcd42ad7d363c9327890ba7aed25288d09c206d9565178bae126b25cdc3e1170a1d55e763c77 + postcss-selector-parser: ^6.1.0 + checksum: 10c0/10516fd1db5e0a3963063caa57d24eeb1d1f69fcb63f0b5aec5d7a44f8b36ff07b1eded3012e8a9b92fc1f484e1a5a9def0cf57d788aa7f944ee79877837cc77 languageName: node linkType: hard @@ -2024,12 +2050,21 @@ __metadata: languageName: node linkType: hard -"@csstools/utilities@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/utilities@npm:1.0.0" +"@csstools/selector-specificity@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/selector-specificity@npm:4.0.0" + peerDependencies: + postcss-selector-parser: ^6.1.0 + checksum: 10c0/6f4d4ecfdcd37f950100de8ffe0b4c1b1cc8c004aab2c2ebaa5c3e2bca2412d15b17d4628435f47a62d2c56db41bcbf985cb9c69e74b89964d48e421e93e75ba + languageName: node + linkType: hard + +"@csstools/utilities@npm:^2.0.0": + version: 2.0.0 + resolution: "@csstools/utilities@npm:2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/2ac10895e0a1f9e1fc9c092197c8595a09f632552791af91219f38c55bb39083fb44b74a6a7de9112492cf24a2fe66d20c955a2b4aff041d5c017d87bbebc0f2 + checksum: 10c0/be5c31437b726928f64cd4bb3e47f5b90bfd2e2a69a8eaabd8e89cc6c0977e4f0f7ee48de50c8ed8b07e04e3956a02293247e0da3236d521fb2e836f88f65822 languageName: node linkType: hard @@ -2877,7 +2912,7 @@ __metadata: path-complete-extname: "npm:^1.0.0" postcss: "npm:^8.4.24" postcss-loader: "npm:^4.3.0" - postcss-preset-env: "npm:^9.5.2" + postcss-preset-env: "npm:^10.0.0" prettier: "npm:^3.3.3" prop-types: "npm:^15.8.1" punycode: "npm:^2.3.0" @@ -6557,14 +6592,14 @@ __metadata: languageName: node linkType: hard -"css-blank-pseudo@npm:^6.0.2": - version: 6.0.2 - resolution: "css-blank-pseudo@npm:6.0.2" +"css-blank-pseudo@npm:^7.0.0": + version: 7.0.0 + resolution: "css-blank-pseudo@npm:7.0.0" dependencies: - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/609303551c2a518ca23ed12fed43945ca4f7af04140da68a5536f5dc9d42f33412c13ac3fe5c616d7401a9e13a23d80b4cfa87149a45f94b244d8067bb11f3dd + checksum: 10c0/74c6c0af773a8d2c8c5a53bcfc2b2c06f9c3fd4a8bd756b7aafc102b91a1060b179a4f0aa21475b54685b62bfd9724fee90778dd992b42e0cd3ea3698132af92 languageName: node linkType: hard @@ -6584,16 +6619,16 @@ __metadata: languageName: node linkType: hard -"css-has-pseudo@npm:^6.0.5": - version: 6.0.5 - resolution: "css-has-pseudo@npm:6.0.5" +"css-has-pseudo@npm:^7.0.0": + version: 7.0.0 + resolution: "css-has-pseudo@npm:7.0.0" dependencies: - "@csstools/selector-specificity": "npm:^3.1.1" - postcss-selector-parser: "npm:^6.0.13" + "@csstools/selector-specificity": "npm:^4.0.0" + postcss-selector-parser: "npm:^6.1.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/946930b7e699d6dbcb8426ebcd593228ee0e2143a148fb2399111ea4c9ed8d6eb3447e944251f1be44ae987d5ab16e450b0b006ca197f318c2a3760ba431fbb9 + checksum: 10c0/2c72602ca9bcdb3afe2cce3b014e7dd17548658904c17560042ebf4bd6727b1ed8706961b1f44bff43bbdb8dc932c30a0b29f536c353df858e300e68e163b872 languageName: node linkType: hard @@ -6617,12 +6652,12 @@ __metadata: languageName: node linkType: hard -"css-prefers-color-scheme@npm:^9.0.1": - version: 9.0.1 - resolution: "css-prefers-color-scheme@npm:9.0.1" +"css-prefers-color-scheme@npm:^10.0.0": + version: 10.0.0 + resolution: "css-prefers-color-scheme@npm:10.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b94da00d84c4ebb56eb8fce96d4fdb20d2e622a7cd8cd6d7b87d1d2b718a55ce88bccc9d871771bfe77c5107de06132ba87190e3656f049e45f19f652d50136c + checksum: 10c0/a66c727bb2455328b18862f720819fc98ff5c1486b69f758bdb5c66f46cc6d484f9fc0bfa4f00f2693c5da6707ad136ca789496982f713ade693f08af624930e languageName: node linkType: hard @@ -13257,14 +13292,14 @@ __metadata: languageName: node linkType: hard -"postcss-attribute-case-insensitive@npm:^6.0.3": - version: 6.0.3 - resolution: "postcss-attribute-case-insensitive@npm:6.0.3" +"postcss-attribute-case-insensitive@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-attribute-case-insensitive@npm:7.0.0" dependencies: - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/6161a625356db17ea23daa50797e23fa830a15629fa45e7438b5ac72a389f81ba51088503c5893a941d34d287857882867199584c5f03bf7762258c74570f456 + checksum: 10c0/ce2a96bc29f59a6113953f1f72bfa2d4d34e54b194ff4d49aad0d548aa738835afaf479f22060a2605952b842f63aeae278b44e41f8f3a05731df28d08e2df97 languageName: node linkType: hard @@ -13291,42 +13326,42 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^6.0.14": - version: 6.0.14 - resolution: "postcss-color-functional-notation@npm:6.0.14" +"postcss-color-functional-notation@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-color-functional-notation@npm:7.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/fdc5188e19c3923da32fe08d50e55d0b3ca1cedf99f46331baa0a4bbd73a1fc6b4447b0346ab16049032b56ab84b98b4758a0ede7c237637e35a4cc60caac141 + checksum: 10c0/6afe7b681a16783a27fa9600db348f995dfdbc9c945f6cdcec94ee2419e09cfd1c6e533264b830207f130e19ae18ff689ad9b48bced338f27f898eaecd61f844 languageName: node linkType: hard -"postcss-color-hex-alpha@npm:^9.0.4": - version: 9.0.4 - resolution: "postcss-color-hex-alpha@npm:9.0.4" +"postcss-color-hex-alpha@npm:^10.0.0": + version: 10.0.0 + resolution: "postcss-color-hex-alpha@npm:10.0.0" dependencies: - "@csstools/utilities": "npm:^1.0.0" + "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/57b5cfe17e0b659d5444f267c485462b8b25f6ab087b810c7dd44662af4828e1e8f9c4a9169b8635a4755509ca7c0f3463c2e96444764c4e6ff9f4036aad05e5 + checksum: 10c0/8a6dcb27403d04b55d6de88bf3074622bcea537fc4436bbcb346e92289c4d17059444e2e6c3554c325e7a777bb4cdc711e764a83123b4000aec211052e957d5b languageName: node linkType: hard -"postcss-color-rebeccapurple@npm:^9.0.3": - version: 9.0.3 - resolution: "postcss-color-rebeccapurple@npm:9.0.3" +"postcss-color-rebeccapurple@npm:^10.0.0": + version: 10.0.0 + resolution: "postcss-color-rebeccapurple@npm:10.0.0" dependencies: - "@csstools/utilities": "npm:^1.0.0" + "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/ab36d29df23dd475a2a540101427640ef9c7936bbf941816e8582caea05feced26c65f795a849e2ad17469cee6682d1bbccd2f8ab0da07fe91efcc0649568038 + checksum: 10c0/308e33f76f2b48c1c2121d4502fc053e869f3415898de7d30314353df680e79b37497e7b628e3447edc1049091da3672f7d891e45604f238598e846e06b893ed languageName: node linkType: hard @@ -13356,57 +13391,57 @@ __metadata: languageName: node linkType: hard -"postcss-custom-media@npm:^10.0.8": - version: 10.0.8 - resolution: "postcss-custom-media@npm:10.0.8" +"postcss-custom-media@npm:^11.0.0": + version: 11.0.0 + resolution: "postcss-custom-media@npm:11.0.0" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^1.0.13" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/media-query-list-parser": "npm:^2.1.13" + "@csstools/cascade-layer-name-parser": "npm:^2.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/media-query-list-parser": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/673ca0058a2f2357a83b33ce00bbeee7cda92621c08472fa55d7ac7ae56f5f8f979132528d537f2dedf715d35a8f9b14b2f0ab6b45423d49e2554c19aab3c827 + checksum: 10c0/99e58454453581a1a4f5b7eae5cf6504c445e45d48035f09857603437fe80de06a216d0dad6036d32d14108b490e82a0845e1b4e0ec5114f752b325e388f0f1c languageName: node linkType: hard -"postcss-custom-properties@npm:^13.3.12": - version: 13.3.12 - resolution: "postcss-custom-properties@npm:13.3.12" +"postcss-custom-properties@npm:^14.0.0": + version: 14.0.0 + resolution: "postcss-custom-properties@npm:14.0.0" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^1.0.13" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/cascade-layer-name-parser": "npm:^2.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/6af9f6ac94a6ac887749cd38d4586349f6aca29269ebfdb837019a3ba0130032f0ff4899b431b5c348f4ac79a7b16fb7300a256514a6a68e32a63489c18a70e7 + checksum: 10c0/f587e2f3026fa7ceb63dd111674848b97dc452f9e75a6480b4b87611a4705dd97e5ae5247e7d34888aecd95b4e50706170c93f57f14f05fb352135d2decdc00f languageName: node linkType: hard -"postcss-custom-selectors@npm:^7.1.12": - version: 7.1.12 - resolution: "postcss-custom-selectors@npm:7.1.12" +"postcss-custom-selectors@npm:^8.0.0": + version: 8.0.0 + resolution: "postcss-custom-selectors@npm:8.0.0" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^1.0.13" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" + "@csstools/cascade-layer-name-parser": "npm:^2.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/78a7930e4f97c42b544f00c06272264432d47f9df777684b57673bb971b7ab49d5d6fb9289a5a869125e7e50dcd0cad65cf8846501253084b73a42ffab41b2c5 + checksum: 10c0/efc9ce0e9c92f298b9196e1cf240ef0e15f88bb3f90f441beecd05756e31628b27a56dcb176f696d3d34c8d4d879c0eb70d1cb62b44c55e01ebd2a653b8a9e94 languageName: node linkType: hard -"postcss-dir-pseudo-class@npm:^8.0.1": - version: 8.0.1 - resolution: "postcss-dir-pseudo-class@npm:8.0.1" +"postcss-dir-pseudo-class@npm:^9.0.0": + version: 9.0.0 + resolution: "postcss-dir-pseudo-class@npm:9.0.0" dependencies: - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/8c096e096b09e4041818bd2edf5581b5172375621f5eeca013633166ea100ab98e71bf60fccd92fa20cfa7b55c57598605a1655c6bcbe54a80728a7d4e36859e + checksum: 10c0/debae71bf508c0e494ebb1892ce6b3c1c4eeb6b23231180151a93920a12fec771815510cdec54db54605e090ae56af9f07c68ef6a61260d0c837adc719f9e1e4 languageName: node linkType: hard @@ -13448,38 +13483,38 @@ __metadata: languageName: node linkType: hard -"postcss-double-position-gradients@npm:^5.0.7": - version: 5.0.7 - resolution: "postcss-double-position-gradients@npm:5.0.7" +"postcss-double-position-gradients@npm:^6.0.0": + version: 6.0.0 + resolution: "postcss-double-position-gradients@npm:6.0.0" dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/52d96a34aa3e2e251edeaa2d4c2dd106c687f7910ec18266693656c0edd003384b927c855cecac07f52b5c7bdccd140abdc7e27082ce4c3755e3a966206a2cb9 + checksum: 10c0/7a0e119df1b4af59d169b1a9dfc563275ce29b4ae5e6a6c90be29a7a59272ebc55bf3b2ed05a962f73b03194f7a88f6fe738e65c1659d43351fbdc705cc951ad languageName: node linkType: hard -"postcss-focus-visible@npm:^9.0.1": - version: 9.0.1 - resolution: "postcss-focus-visible@npm:9.0.1" +"postcss-focus-visible@npm:^10.0.0": + version: 10.0.0 + resolution: "postcss-focus-visible@npm:10.0.0" dependencies: - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b8eb14ef51df62969559a7b2b4a4b6313a802fc2de225de293ad484ed6528833fc6bb7574aad5fabe7eeb27e8cd62663c2d547b25ff058d31c06d3d066abd904 + checksum: 10c0/b86b825bac597092b300127c2686c0669ce0766165716ecda42f298f21ca69dda721e44917732cbcb2611a4ab650f1231bf8c5d4d07c9daefef815329251ae8a languageName: node linkType: hard -"postcss-focus-within@npm:^8.0.1": - version: 8.0.1 - resolution: "postcss-focus-within@npm:8.0.1" +"postcss-focus-within@npm:^9.0.0": + version: 9.0.0 + resolution: "postcss-focus-within@npm:9.0.0" dependencies: - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/cb0380d89f3b9313345dbea65c78c7ad16a6e6ab2ba9e90451d5b14f05ee691a0cdf458376368061327182e031644da21eee7e6e9ae508d195f083e0a20c0502 + checksum: 10c0/1d6f1b4f4d12e23a2824f394652d520942f00fd582d3016c933a492fe0ba38aaf26bc1855576878aaeaeda1d6fc38da39bb51e8e6470c50ef03f3ea9a286b3d1 languageName: node linkType: hard @@ -13492,39 +13527,39 @@ __metadata: languageName: node linkType: hard -"postcss-gap-properties@npm:^5.0.1": - version: 5.0.1 - resolution: "postcss-gap-properties@npm:5.0.1" +"postcss-gap-properties@npm:^6.0.0": + version: 6.0.0 + resolution: "postcss-gap-properties@npm:6.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/3b28c38819add37a2fc7decd7e3bdda1cab1de861af228abfb3e4310d87786eff4572a693bec6cea1c435bcd3dd0bb58bc9a58f1dde3a1c7def9feaf800762b8 + checksum: 10c0/4e07e0d3927d0e65d67eaf047ac39e08d39cb1bf74e16e10c7df7f0d01b184a77ea59f63fd5691b5ed6df159970b972db28cb784d883e26e981137696460897d languageName: node linkType: hard -"postcss-image-set-function@npm:^6.0.3": - version: 6.0.3 - resolution: "postcss-image-set-function@npm:6.0.3" +"postcss-image-set-function@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-image-set-function@npm:7.0.0" dependencies: - "@csstools/utilities": "npm:^1.0.0" + "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b35ce25aeca95f7abc5e5820f2398588150f5be02209054d714e870ae2fa01a8482fd10600fe1f847add898c39690275a60a5999f83f6bed6c66be9b0444b704 + checksum: 10c0/913fd9492f00122aa0c2550fb0d72130428cbe1e6465bc65e8fe71e9deb10ac0c01d7caceb68b560da759139e8cbc6c90ed22dfe6cf34949af49bb86bcbf4d3a languageName: node linkType: hard -"postcss-lab-function@npm:^6.0.19": - version: 6.0.19 - resolution: "postcss-lab-function@npm:6.0.19" +"postcss-lab-function@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-lab-function@npm:7.0.0" dependencies: - "@csstools/css-color-parser": "npm:^2.0.4" - "@csstools/css-parser-algorithms": "npm:^2.7.1" - "@csstools/css-tokenizer": "npm:^2.4.1" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/utilities": "npm:^1.0.0" + "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.0" + "@csstools/css-tokenizer": "npm:^3.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/d9a91fb57dcbe967260df86e22ca335a5444f1f34d128fa7b5dbf2522772f2138ad708f1f20f0a59035d66ed736e82972ca7f1b669a157534a17ee8898af1921 + checksum: 10c0/f3647bcdd8d6140631b97276ecf51f40df2c7564610262a20c608c37c8ab79bf6e02888419dc657afc4720a7378e3ad19f4fdf811a69363424160d548ac68daf languageName: node linkType: hard @@ -13544,14 +13579,14 @@ __metadata: languageName: node linkType: hard -"postcss-logical@npm:^7.0.1": - version: 7.0.1 - resolution: "postcss-logical@npm:7.0.1" +"postcss-logical@npm:^8.0.0": + version: 8.0.0 + resolution: "postcss-logical@npm:8.0.0" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/66a06b5d3cb31181dd76c80286addd219205066a4a8c216076869fc54769ee0011cdaa8063e1b2c19c114cdc5ad12a2e2e8b730f6971960dc77d55f25f290223 + checksum: 10c0/2caa04e45227ab9dec728416ccde47514e1c347ee72aac58e13ecee3bc7fbc8b53e3fe4f1e2e4396432feb1d54e70a1f06ec5a74d60e84bafff05ab82f196475 languageName: node linkType: hard @@ -13681,16 +13716,16 @@ __metadata: languageName: node linkType: hard -"postcss-nesting@npm:^12.1.5": - version: 12.1.5 - resolution: "postcss-nesting@npm:12.1.5" +"postcss-nesting@npm:^13.0.0": + version: 13.0.0 + resolution: "postcss-nesting@npm:13.0.0" dependencies: - "@csstools/selector-resolve-nested": "npm:^1.1.0" - "@csstools/selector-specificity": "npm:^3.1.1" + "@csstools/selector-resolve-nested": "npm:^2.0.0" + "@csstools/selector-specificity": "npm:^4.0.0" postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/8f049fe24dccb186707e065ffb697f9f0633a03b0e1139e9c24656f3d2158a738a51c7b1f405b48fdb8b4f19515ad4ad9d3cd4ec9d9fe1dd4e5f18729bf8e589 + checksum: 10c0/b82a3c7010f7c6097bd3f3fe6c03f3f3af9a63a58e255f120dadd506a0ea9444aeeaba994f2a3fa34fb26e666dc72032edf5786c5fbdade790b02ad07d91ef95 languageName: node linkType: hard @@ -13813,14 +13848,14 @@ __metadata: languageName: node linkType: hard -"postcss-overflow-shorthand@npm:^5.0.1": - version: 5.0.1 - resolution: "postcss-overflow-shorthand@npm:5.0.1" +"postcss-overflow-shorthand@npm:^6.0.0": + version: 6.0.0 + resolution: "postcss-overflow-shorthand@npm:6.0.0" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/328407adffae084c096b3ea2c03037f0083a0000cae744872bb1168fdd317eef12bb049cdfef749343c3ed65b4275dc6eefe577d99cbc78e3617cb36d07e8717 + checksum: 10c0/6598321b2ed0b68461135395bba9c7f76a4672617770df1e8487f459bc975f4ded6c3d37b6f72a44f4f77f7b6789e0c6f927e66dbbf1bcde1537167dbea39968 languageName: node linkType: hard @@ -13833,96 +13868,96 @@ __metadata: languageName: node linkType: hard -"postcss-place@npm:^9.0.1": - version: 9.0.1 - resolution: "postcss-place@npm:9.0.1" +"postcss-place@npm:^10.0.0": + version: 10.0.0 + resolution: "postcss-place@npm:10.0.0" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/d0fb5b0416fd15d5ac7da5fcc1829b9b78c5a90caba5bd045052c6ac0467910cbbeb2fff6c5257190affa656be27168c94ff339f86c0b7df54f9bea04bcadba7 + checksum: 10c0/ebb13deaac7648ba6042622375a31f78fbcc5209b7d196e478debbdf94525963fe621c932f4737a5b6b3d487af3b5ed6d059ed6193fdcbff6d3d5b150886ccc1 languageName: node linkType: hard -"postcss-preset-env@npm:^9.5.2": - version: 9.6.0 - resolution: "postcss-preset-env@npm:9.6.0" +"postcss-preset-env@npm:^10.0.0": + version: 10.0.0 + resolution: "postcss-preset-env@npm:10.0.0" dependencies: - "@csstools/postcss-cascade-layers": "npm:^4.0.6" - "@csstools/postcss-color-function": "npm:^3.0.19" - "@csstools/postcss-color-mix-function": "npm:^2.0.19" - "@csstools/postcss-content-alt-text": "npm:^1.0.0" - "@csstools/postcss-exponential-functions": "npm:^1.0.9" - "@csstools/postcss-font-format-keywords": "npm:^3.0.2" - "@csstools/postcss-gamut-mapping": "npm:^1.0.11" - "@csstools/postcss-gradients-interpolation-method": "npm:^4.0.20" - "@csstools/postcss-hwb-function": "npm:^3.0.18" - "@csstools/postcss-ic-unit": "npm:^3.0.7" - "@csstools/postcss-initial": "npm:^1.0.1" - "@csstools/postcss-is-pseudo-class": "npm:^4.0.8" - "@csstools/postcss-light-dark-function": "npm:^1.0.8" - "@csstools/postcss-logical-float-and-clear": "npm:^2.0.1" - "@csstools/postcss-logical-overflow": "npm:^1.0.1" - "@csstools/postcss-logical-overscroll-behavior": "npm:^1.0.1" - "@csstools/postcss-logical-resize": "npm:^2.0.1" - "@csstools/postcss-logical-viewport-units": "npm:^2.0.11" - "@csstools/postcss-media-minmax": "npm:^1.1.8" - "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^2.0.11" - "@csstools/postcss-nested-calc": "npm:^3.0.2" - "@csstools/postcss-normalize-display-values": "npm:^3.0.2" - "@csstools/postcss-oklab-function": "npm:^3.0.19" - "@csstools/postcss-progressive-custom-properties": "npm:^3.3.0" - "@csstools/postcss-relative-color-syntax": "npm:^2.0.19" - "@csstools/postcss-scope-pseudo-class": "npm:^3.0.1" - "@csstools/postcss-stepped-value-functions": "npm:^3.0.10" - "@csstools/postcss-text-decoration-shorthand": "npm:^3.0.7" - "@csstools/postcss-trigonometric-functions": "npm:^3.0.10" - "@csstools/postcss-unset-value": "npm:^3.0.1" + "@csstools/postcss-cascade-layers": "npm:^5.0.0" + "@csstools/postcss-color-function": "npm:^4.0.0" + "@csstools/postcss-color-mix-function": "npm:^3.0.0" + "@csstools/postcss-content-alt-text": "npm:^2.0.0" + "@csstools/postcss-exponential-functions": "npm:^2.0.0" + "@csstools/postcss-font-format-keywords": "npm:^4.0.0" + "@csstools/postcss-gamut-mapping": "npm:^2.0.0" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.0" + "@csstools/postcss-hwb-function": "npm:^4.0.0" + "@csstools/postcss-ic-unit": "npm:^4.0.0" + "@csstools/postcss-initial": "npm:^2.0.0" + "@csstools/postcss-is-pseudo-class": "npm:^5.0.0" + "@csstools/postcss-light-dark-function": "npm:^2.0.0" + "@csstools/postcss-logical-float-and-clear": "npm:^3.0.0" + "@csstools/postcss-logical-overflow": "npm:^2.0.0" + "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" + "@csstools/postcss-logical-resize": "npm:^3.0.0" + "@csstools/postcss-logical-viewport-units": "npm:^3.0.0" + "@csstools/postcss-media-minmax": "npm:^2.0.0" + "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.0" + "@csstools/postcss-nested-calc": "npm:^4.0.0" + "@csstools/postcss-normalize-display-values": "npm:^4.0.0" + "@csstools/postcss-oklab-function": "npm:^4.0.0" + "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.0" + "@csstools/postcss-scope-pseudo-class": "npm:^4.0.0" + "@csstools/postcss-stepped-value-functions": "npm:^4.0.0" + "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.0" + "@csstools/postcss-trigonometric-functions": "npm:^4.0.0" + "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" browserslist: "npm:^4.23.1" - css-blank-pseudo: "npm:^6.0.2" - css-has-pseudo: "npm:^6.0.5" - css-prefers-color-scheme: "npm:^9.0.1" + css-blank-pseudo: "npm:^7.0.0" + css-has-pseudo: "npm:^7.0.0" + css-prefers-color-scheme: "npm:^10.0.0" cssdb: "npm:^8.1.0" - postcss-attribute-case-insensitive: "npm:^6.0.3" + postcss-attribute-case-insensitive: "npm:^7.0.0" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^6.0.14" - postcss-color-hex-alpha: "npm:^9.0.4" - postcss-color-rebeccapurple: "npm:^9.0.3" - postcss-custom-media: "npm:^10.0.8" - postcss-custom-properties: "npm:^13.3.12" - postcss-custom-selectors: "npm:^7.1.12" - postcss-dir-pseudo-class: "npm:^8.0.1" - postcss-double-position-gradients: "npm:^5.0.7" - postcss-focus-visible: "npm:^9.0.1" - postcss-focus-within: "npm:^8.0.1" + postcss-color-functional-notation: "npm:^7.0.0" + postcss-color-hex-alpha: "npm:^10.0.0" + postcss-color-rebeccapurple: "npm:^10.0.0" + postcss-custom-media: "npm:^11.0.0" + postcss-custom-properties: "npm:^14.0.0" + postcss-custom-selectors: "npm:^8.0.0" + postcss-dir-pseudo-class: "npm:^9.0.0" + postcss-double-position-gradients: "npm:^6.0.0" + postcss-focus-visible: "npm:^10.0.0" + postcss-focus-within: "npm:^9.0.0" postcss-font-variant: "npm:^5.0.0" - postcss-gap-properties: "npm:^5.0.1" - postcss-image-set-function: "npm:^6.0.3" - postcss-lab-function: "npm:^6.0.19" - postcss-logical: "npm:^7.0.1" - postcss-nesting: "npm:^12.1.5" + postcss-gap-properties: "npm:^6.0.0" + postcss-image-set-function: "npm:^7.0.0" + postcss-lab-function: "npm:^7.0.0" + postcss-logical: "npm:^8.0.0" + postcss-nesting: "npm:^13.0.0" postcss-opacity-percentage: "npm:^2.0.0" - postcss-overflow-shorthand: "npm:^5.0.1" + postcss-overflow-shorthand: "npm:^6.0.0" postcss-page-break: "npm:^3.0.4" - postcss-place: "npm:^9.0.1" - postcss-pseudo-class-any-link: "npm:^9.0.2" + postcss-place: "npm:^10.0.0" + postcss-pseudo-class-any-link: "npm:^10.0.0" postcss-replace-overflow-wrap: "npm:^4.0.0" - postcss-selector-not: "npm:^7.0.2" + postcss-selector-not: "npm:^8.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/caa91ba4d3b897d43ab2669b3edf40b24ef32c88e23b113be8956412e64b28deed6ba229c331848fcbc0d143bfde155173fb1e1ada9ccae5037b2ee8f7e554b7 + checksum: 10c0/0b61c44233ee7fd17e32912ce028edc19998f30183f1ff2186523c4f9eac4a2a36513af31670e13ceb05f2146c4549a0b870ba0de0e3a08e77a9d57d8de72654 languageName: node linkType: hard -"postcss-pseudo-class-any-link@npm:^9.0.2": - version: 9.0.2 - resolution: "postcss-pseudo-class-any-link@npm:9.0.2" +"postcss-pseudo-class-any-link@npm:^10.0.0": + version: 10.0.0 + resolution: "postcss-pseudo-class-any-link@npm:10.0.0" dependencies: - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/cc2cb455a793b1f5dc0ac290e02296eafb317d9ce987dc9f2102027e22f265299666dbd1e78f1d7836fce549dead73f41e24251c08a2dd0cf482f3cc43cf7909 + checksum: 10c0/8357716e0ba0f01c70dba65a1efd268f610249ac2fbd41833e5e87dc19ffa7911c8d5e234d0d7c77d94ba6cdfa04fe7f0f98461c34f64cdbb59abd9737ab7d32 languageName: node linkType: hard @@ -13983,14 +14018,14 @@ __metadata: languageName: node linkType: hard -"postcss-selector-not@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-selector-not@npm:7.0.2" +"postcss-selector-not@npm:^8.0.0": + version: 8.0.0 + resolution: "postcss-selector-not@npm:8.0.0" dependencies: - postcss-selector-parser: "npm:^6.0.13" + postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/624b6e516d37d43406ff1414b3413fe7a5dc34eccadd6a6082fe7df13c5c2fab3e244af33ff0916f9be0a4f7db91d1c22102f5166d7a6e6595e7c00e11e20281 + checksum: 10c0/677f2cd9d0cd481d276663b57001b2ba96db94ad5bba397f277e53d560ccb074b27c21792deff44720a9f2d96da85fa34f438bb1d33198305b5866b35f1a4708 languageName: node linkType: hard From a1eaf12d63422f227dfe5f486253abdcb51d279d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 07:14:05 +0000 Subject: [PATCH 079/306] chore(deps): update dependency fog-core to '<= 2.5.0' (#31267) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index de9bc45f32..cf930dadb6 100644 --- a/Gemfile +++ b/Gemfile @@ -16,7 +16,7 @@ gem 'pghero' gem 'aws-sdk-s3', '~> 1.123', require: false gem 'blurhash', '~> 0.1' -gem 'fog-core', '<= 2.4.0' +gem 'fog-core', '<= 2.5.0' gem 'fog-openstack', '~> 1.0', require: false gem 'kt-paperclip', '~> 7.2' gem 'md-paperclip-azure', '~> 2.2', require: false diff --git a/Gemfile.lock b/Gemfile.lock index c3b5ab9150..e1382732cb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -229,7 +229,7 @@ GEM erubi (1.13.0) et-orbi (1.2.11) tzinfo - excon (0.110.0) + excon (0.111.0) fabrication (2.31.0) faker (3.4.2) i18n (>= 1.8.11, < 2) @@ -269,7 +269,7 @@ GEM flatware-rspec (2.3.2) flatware (= 2.3.2) rspec (>= 3.6) - fog-core (2.4.0) + fog-core (2.5.0) builder excon (~> 0.71) formatador (>= 0.2, < 2.0) @@ -429,7 +429,7 @@ GEM memory_profiler (1.0.2) mime-types (3.5.2) mime-types-data (~> 3.2015) - mime-types-data (3.2024.0604) + mime-types-data (3.2024.0702) mini_mime (1.1.5) mini_portile2 (2.8.7) minitest (5.24.1) @@ -945,7 +945,7 @@ DEPENDENCIES fast_blank (~> 1.0) fastimage flatware-rspec - fog-core (<= 2.4.0) + fog-core (<= 2.5.0) fog-openstack (~> 1.0) fuubar (~> 2.5) haml-rails (~> 2.0) From cb56a6dc7efa06c4a9c974fc60a4825d5cc89e1d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 07:43:04 +0000 Subject: [PATCH 080/306] New Crowdin Translations (automated) (#31276) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 34 ++++++++++- app/javascript/mastodon/locales/bg.json | 2 + app/javascript/mastodon/locales/ca.json | 2 + app/javascript/mastodon/locales/cs.json | 16 +++++ app/javascript/mastodon/locales/cy.json | 6 +- app/javascript/mastodon/locales/da.json | 2 + app/javascript/mastodon/locales/de.json | 4 +- app/javascript/mastodon/locales/es-AR.json | 2 + app/javascript/mastodon/locales/fa.json | 26 ++++++++ app/javascript/mastodon/locales/fi.json | 48 ++++++++------- app/javascript/mastodon/locales/fo.json | 1 + app/javascript/mastodon/locales/gl.json | 2 + app/javascript/mastodon/locales/he.json | 2 + app/javascript/mastodon/locales/hu.json | 4 +- app/javascript/mastodon/locales/is.json | 2 + app/javascript/mastodon/locales/it.json | 2 + app/javascript/mastodon/locales/ja.json | 2 + app/javascript/mastodon/locales/nl.json | 2 + app/javascript/mastodon/locales/pa.json | 3 + app/javascript/mastodon/locales/pl.json | 2 + app/javascript/mastodon/locales/pt-PT.json | 2 + app/javascript/mastodon/locales/ry.json | 1 + app/javascript/mastodon/locales/sk.json | 5 ++ app/javascript/mastodon/locales/sq.json | 2 + app/javascript/mastodon/locales/tr.json | 3 + app/javascript/mastodon/locales/uk.json | 13 ++-- app/javascript/mastodon/locales/vi.json | 2 + app/javascript/mastodon/locales/zh-CN.json | 32 +++++----- app/javascript/mastodon/locales/zh-TW.json | 2 + config/locales/be.yml | 22 +++++++ config/locales/cs.yml | 21 +++++++ config/locales/cy.yml | 23 ++++++- config/locales/da.yml | 1 + config/locales/de.yml | 2 +- config/locales/doorkeeper.be.yml | 1 + config/locales/doorkeeper.hu.yml | 11 ++-- config/locales/fi.yml | 70 +++++++++++----------- config/locales/ia.yml | 3 + config/locales/simple_form.be.yml | 4 ++ config/locales/simple_form.cs.yml | 2 + config/locales/simple_form.cy.yml | 1 + config/locales/simple_form.es-MX.yml | 2 +- config/locales/simple_form.es.yml | 2 +- config/locales/simple_form.fi.yml | 24 ++++---- config/locales/simple_form.tr.yml | 1 + config/locales/simple_form.uk.yml | 8 +-- config/locales/tr.yml | 16 +++++ config/locales/uk.yml | 2 +- 48 files changed, 331 insertions(+), 111 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index bb59001273..58aff7da44 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "Заблакіраваць", "confirmations.delete.confirm": "Выдаліць", "confirmations.delete.message": "Вы ўпэўненыя, што хочаце выдаліць гэты допіс?", + "confirmations.delete.title": "Выдаліць допіс?", "confirmations.delete_list.confirm": "Выдаліць", "confirmations.delete_list.message": "Вы ўпэўненыя, што хочаце беззваротна выдаліць гэты чарнавік?", + "confirmations.delete_list.title": "Выдаліць спіс?", "confirmations.discard_edit_media.confirm": "Адмяніць", "confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?", "confirmations.edit.confirm": "Рэдагаваць", "confirmations.edit.message": "Калі вы зменіце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?", + "confirmations.edit.title": "Замяніць допіс?", "confirmations.logout.confirm": "Выйсці", "confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?", + "confirmations.logout.title": "Выйсці?", "confirmations.mute.confirm": "Ігнараваць", "confirmations.redraft.confirm": "Выдаліць і перапісаць", "confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.", + "confirmations.redraft.title": "Выдаліць і перапісаць допіс?", "confirmations.reply.confirm": "Адказаць", "confirmations.reply.message": "Калі вы адкажаце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?", + "confirmations.reply.title": "Замяніць допіс?", "confirmations.unfollow.confirm": "Адпісацца", "confirmations.unfollow.message": "Вы ўпэўненыя, што хочаце адпісацца ад {name}?", + "confirmations.unfollow.title": "Адпісацца ад карыстальніка?", "conversation.delete": "Выдаліць размову", "conversation.mark_as_read": "Адзначыць прачытаным", "conversation.open": "Прагледзець размову", @@ -293,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Скарыстайцеся існуючай катэгорыяй або стварыце новую", "filter_modal.select_filter.title": "Фільтраваць гэты допіс", "filter_modal.title.status": "Фільтраваць допіс", + "filtered_notifications_banner.pending_requests": "Ад {count, plural, =0 {# людзей якіх} one {# чалавека якіх} few {# чалавек якіх} many {# людзей якіх} other {# чалавека якіх}} вы магчыма ведаеце", "filtered_notifications_banner.title": "Адфільтраваныя апавяшчэнні", "firehose.all": "Усе", "firehose.local": "Гэты сервер", @@ -341,7 +349,7 @@ "hashtag.follow": "Падпісацца на хэштэг", "hashtag.unfollow": "Адпісацца ад хэштэга", "hashtags.and_other": "…і яшчэ {count, plural, other {#}}", - "home.column_settings.show_reblogs": "Паказаць пашырэнні", + "home.column_settings.show_reblogs": "Паказваць пашырэнні", "home.column_settings.show_replies": "Паказваць адказы", "home.hide_announcements": "Схаваць аб'явы", "home.pending_critical_update.body": "Калі ласка, абнавіце свой сервер Mastodon як мага хутчэй!", @@ -437,6 +445,8 @@ "mute_modal.title": "Ігнараваць карыстальніка?", "mute_modal.you_wont_see_mentions": "Вы не ўбачыце паведамленняў са згадваннем карыстальніка.", "mute_modal.you_wont_see_posts": "Карыстальнік па-ранейшаму будзе бачыць вашыя паведамленні, але вы не будзеце паведамленні карыстальніка.", + "name_and_others": "{name} і {count, plural, one {# іншы} many {# іншых} other {# іншых}}", + "name_and_others_with_link": "{name} і {count, plural, one {# іншы} many {# іншых} other {# іншых}}", "navigation_bar.about": "Пра нас", "navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе", "navigation_bar.blocks": "Заблакіраваныя карыстальнікі", @@ -464,6 +474,10 @@ "navigation_bar.security": "Бяспека", "not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.", "notification.admin.report": "{name} паскардзіўся на {target}", + "notification.admin.report_account": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target} з прычыны {category}", + "notification.admin.report_account_other": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target}", + "notification.admin.report_statuses": "{name} паскардзіўся на {target} з прычыны {category}", + "notification.admin.report_statuses_other": "{name} паскардзіўся на {target}", "notification.admin.sign_up": "{name} зарэгістраваўся", "notification.favourite": "Ваш допіс упадабаны {name}", "notification.follow": "{name} падпісаўся на вас", @@ -479,6 +493,8 @@ "notification.moderation_warning.action_silence": "Ваш уліковы запіс быў абмежаваны.", "notification.moderation_warning.action_suspend": "Ваш уліковы запіс быў прыпынены.", "notification.own_poll": "Ваша апытанне скончылася", + "notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася", + "notification.private_mention": "{name} згадаў вас асабіста", "notification.reblog": "{name} пашырыў ваш допіс", "notification.relationships_severance_event": "Страціў сувязь з {name}", "notification.relationships_severance_event.account_suspension": "Адміністратар з {from} прыпыніў працу {target}, што азначае, што вы больш не можаце атрымліваць ад іх абнаўлення ці ўзаемадзейнічаць з імі.", @@ -489,13 +505,18 @@ "notification.update": "Допіс {name} адрэдагаваны", "notification_requests.accept": "Прыняць", "notification_requests.dismiss": "Адхіліць", + "notification_requests.maximize": "Разгарнуць", + "notification_requests.minimize_banner": "Згарнуць банер адфільтраваных апавяшчэнняў", "notification_requests.notifications_from": "Апавяшчэнні ад {name}", "notification_requests.title": "Адфільтраваныя апавяшчэнні", "notifications.clear": "Ачысціць апавяшчэнні", "notifications.clear_confirmation": "Вы ўпэўнены, што жадаеце назаўсёды сцерці ўсё паведамленні?", + "notifications.clear_title": "Ачысціць апавяшчэнні?", "notifications.column_settings.admin.report": "Новыя скаргі:", "notifications.column_settings.admin.sign_up": "Новыя ўваходы:", "notifications.column_settings.alert": "Апавяшчэнні на працоўным стале", + "notifications.column_settings.beta.category": "Эксперыментальныя функцыі", + "notifications.column_settings.beta.grouping": "Групаваць апавяшчэннi", "notifications.column_settings.favourite": "Упадабанае:", "notifications.column_settings.filter_bar.advanced": "Паказаць усе катэгорыі", "notifications.column_settings.filter_bar.category": "Панэль хуткай фільтрацыі", @@ -659,9 +680,13 @@ "report.unfollow_explanation": "Вы падпісаныя на гэты ўліковы запіс. Каб не бачыць допісы з яго ў вашай стужцы, адпішыцеся.", "report_notification.attached_statuses": "{count, plural, one {{count} допіс прымацаваны} few {{count} допісы прымацаваны} many {{count} допісаў прымацавана} other {{count} допісу прымацавана}}", "report_notification.categories.legal": "Права", + "report_notification.categories.legal_sentence": "нелегальнае змесціва", "report_notification.categories.other": "Іншае", + "report_notification.categories.other_sentence": "іншае", "report_notification.categories.spam": "Спам", + "report_notification.categories.spam_sentence": "спам", "report_notification.categories.violation": "Парушэнне правілаў", + "report_notification.categories.violation_sentence": "парушэнне правілаў", "report_notification.open": "Адкрыць скаргу", "search.no_recent_searches": "Гісторыя пошуку пустая", "search.placeholder": "Пошук", @@ -689,8 +714,11 @@ "server_banner.about_active_users": "Людзі, якія карыстаюцца гэтым сервера на працягу апошніх 30 дзён (Штомесячна Актыўныя Карыстальнікі)", "server_banner.active_users": "актыўныя карыстальнікі", "server_banner.administered_by": "Адміністратар:", + "server_banner.is_one_of_many": "{domain} - гэта адзін з многіх незалежных сервераў Mastodon, якія вы можаце выкарыстоўваць для ўдзелу ў fediverse.", "server_banner.server_stats": "Статыстыка сервера:", "sign_in_banner.create_account": "Стварыць уліковы запіс", + "sign_in_banner.follow_anyone": "Сачыце за кім заўгодна ва ўсім fediverse і глядзіце ўсё ў храналагічным парадку. Ніякіх алгарытмаў, рэкламы або клікбэйту.", + "sign_in_banner.mastodon_is": "Mastodon - лепшы спосаб быць у курсе ўсяго, што адбываецца.", "sign_in_banner.sign_in": "Увайсці", "sign_in_banner.sso_redirect": "Уваход ці рэгістрацыя", "status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}", @@ -765,8 +793,8 @@ "time_remaining.seconds": "{number, plural, one {засталася # секунда} few {засталося # секунды} many {засталося # секунд} other {засталося # секунды}}", "timeline_hint.remote_resource_not_displayed": "{resource} з іншых сервераў не адлюстроўваецца.", "timeline_hint.resources.followers": "Падпісчыкі", - "timeline_hint.resources.follows": "Падпісаны на", - "timeline_hint.resources.statuses": "Старэйшыя допісы", + "timeline_hint.resources.follows": "Падпіскі", + "timeline_hint.resources.statuses": "Старыя допісы", "trends.counter_by_accounts": "{count, plural, one {{counter} чалавек} few {{counter} чалавекі} many {{counter} людзей} other {{counter} чалавек}} за {days, plural, one {{days} апошні дзень} few {{days} апошнія дні} many {{days} апошніх дзён} other {{days} апошніх дзён}}", "trends.trending_now": "Актуальнае", "ui.beforeunload": "Ваш чарнавік знішчыцца калі вы пакінеце Mastodon.", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 657341d253..9858130668 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -505,6 +505,8 @@ "notification.update": "{name} промени публикация", "notification_requests.accept": "Приемам", "notification_requests.dismiss": "Отхвърлям", + "notification_requests.maximize": "Максимизиране", + "notification_requests.minimize_banner": "Минимизиране на банера за филтрирани известия", "notification_requests.notifications_from": "Известия от {name}", "notification_requests.title": "Филтрирани известия", "notifications.clear": "Изчистване на известията", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 2ef926054e..b52f597711 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -505,6 +505,8 @@ "notification.update": "{name} ha editat un tut", "notification_requests.accept": "Accepta", "notification_requests.dismiss": "Ignora", + "notification_requests.maximize": "Maximitza", + "notification_requests.minimize_banner": "Minimitza el bàner de notificacions filtrades", "notification_requests.notifications_from": "Notificacions de {name}", "notification_requests.title": "Notificacions filtrades", "notifications.clear": "Esborra les notificacions", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index a5c90befe3..2afbbfb673 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -171,21 +171,28 @@ "confirmations.block.confirm": "Blokovat", "confirmations.delete.confirm": "Smazat", "confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?", + "confirmations.delete.title": "Smazat příspěvek?", "confirmations.delete_list.confirm": "Smazat", "confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?", + "confirmations.delete_list.title": "Smazat seznam?", "confirmations.discard_edit_media.confirm": "Zahodit", "confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?", "confirmations.edit.confirm": "Upravit", "confirmations.edit.message": "Editovat teď znamená přepsání zprávy, kterou právě tvoříte. Opravdu chcete pokračovat?", + "confirmations.edit.title": "Přepsat příspěvek?", "confirmations.logout.confirm": "Odhlásit se", "confirmations.logout.message": "Opravdu se chcete odhlásit?", + "confirmations.logout.title": "Odhlásit se?", "confirmations.mute.confirm": "Skrýt", "confirmations.redraft.confirm": "Smazat a přepsat", "confirmations.redraft.message": "Jste si jistí, že chcete odstranit tento příspěvek a vytvořit z něj koncept? Oblíbené a boosty budou ztraceny a odpovědi na původní příspěvek ztratí kontext.", + "confirmations.redraft.title": "Smazat a přepracovat příspěvek na koncept?", "confirmations.reply.confirm": "Odpovědět", "confirmations.reply.message": "Odpověď přepíše vaši rozepsanou zprávu. Opravdu chcete pokračovat?", + "confirmations.reply.title": "Přepsat příspěvek?", "confirmations.unfollow.confirm": "Přestat sledovat", "confirmations.unfollow.message": "Opravdu chcete {name} přestat sledovat?", + "confirmations.unfollow.title": "Přestat sledovat uživatele?", "conversation.delete": "Smazat konverzaci", "conversation.mark_as_read": "Označit jako přečtené", "conversation.open": "Zobrazit konverzaci", @@ -479,6 +486,7 @@ "notification.moderation_warning.action_silence": "Váš účet byl omezen.", "notification.moderation_warning.action_suspend": "Váš účet byl pozastaven.", "notification.own_poll": "Vaše anketa skončila", + "notification.poll": "Anketa, ve které jste hlasovali, skončila", "notification.reblog": "Uživatel {name} boostnul váš příspěvek", "notification.relationships_severance_event": "Kontakt ztracen s {name}", "notification.relationships_severance_event.account_suspension": "Administrátor z {from} pozastavil {target}, což znamená, že již od nich nemůžete přijímat aktualizace nebo s nimi interagovat.", @@ -489,13 +497,17 @@ "notification.update": "Uživatel {name} upravil příspěvek", "notification_requests.accept": "Přijmout", "notification_requests.dismiss": "Zamítnout", + "notification_requests.maximize": "Maximalizovat", + "notification_requests.minimize_banner": "Minimalizovat banner filtrovaných oznámení", "notification_requests.notifications_from": "Oznámení od {name}", "notification_requests.title": "Vyfiltrovaná oznámení", "notifications.clear": "Vyčistit oznámení", "notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?", + "notifications.clear_title": "Vyčistit oznámení?", "notifications.column_settings.admin.report": "Nová hlášení:", "notifications.column_settings.admin.sign_up": "Nové registrace:", "notifications.column_settings.alert": "Oznámení na počítači", + "notifications.column_settings.beta.category": "Experimentální funkce", "notifications.column_settings.favourite": "Oblíbené:", "notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie", "notifications.column_settings.filter_bar.category": "Panel rychlého filtrování", @@ -659,9 +671,13 @@ "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.", "report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}", "report_notification.categories.legal": "Právní ustanovení", + "report_notification.categories.legal_sentence": "nezákonný obsah", "report_notification.categories.other": "Ostatní", + "report_notification.categories.other_sentence": "další", "report_notification.categories.spam": "Spam", + "report_notification.categories.spam_sentence": "spam", "report_notification.categories.violation": "Porušení pravidla", + "report_notification.categories.violation_sentence": "porušení pravidla", "report_notification.open": "Otevřít hlášení", "search.no_recent_searches": "Žádná nedávná vyhledávání", "search.placeholder": "Hledat", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 45fdbfef3a..a5f81aad70 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -3,7 +3,7 @@ "about.contact": "Cysylltwch â:", "about.disclaimer": "Mae Mastodon yn feddalwedd cod agored rhydd ac o dan hawlfraint Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Nid yw'r rheswm ar gael", - "about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.", + "about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffedysawd a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.", "about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.", "about.domain_blocks.silenced.title": "Cyfyngedig", "about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.", @@ -503,6 +503,7 @@ "notification.update": "Golygodd {name} bostiad", "notification_requests.accept": "Derbyn", "notification_requests.dismiss": "Cau", + "notification_requests.maximize": "Mwyhau", "notification_requests.notifications_from": "Hysbysiadau gan {name}", "notification_requests.title": "Hysbysiadau wedi'u hidlo", "notifications.clear": "Clirio hysbysiadau", @@ -710,8 +711,11 @@ "server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)", "server_banner.active_users": "defnyddwyr gweithredol", "server_banner.administered_by": "Gweinyddir gan:", + "server_banner.is_one_of_many": "Mae {domain} yn un o'r nifer o weinyddion Mastodon annibynnol y gallwch eu defnyddio i gymryd rhan yn y ffedysawd.", "server_banner.server_stats": "Ystadegau'r gweinydd:", "sign_in_banner.create_account": "Creu cyfrif", + "sign_in_banner.follow_anyone": "Dilynwch unrhyw un ar draws y ffedysawd a gweld y cyfan mewn trefn gronolegol. Dim algorithmau, hysbysebion, na straeon er mwyn cliciadau yn y golwg.", + "sign_in_banner.mastodon_is": "Mastodon yw'r ffordd orau o gadw i fyny â'r hyn sy'n digwydd.", "sign_in_banner.sign_in": "Mewngofnodi", "sign_in_banner.sso_redirect": "Mewngofnodi neu Gofrestru", "status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 42deb4f425..2ad5bdc965 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -505,6 +505,8 @@ "notification.update": "{name} redigerede et indlæg", "notification_requests.accept": "Acceptér", "notification_requests.dismiss": "Afvis", + "notification_requests.maximize": "Maksimér", + "notification_requests.minimize_banner": "Minimér filtrerede notifikationsbanner", "notification_requests.notifications_from": "Notifikationer fra {name}", "notification_requests.title": "Filtrerede notifikationer", "notifications.clear": "Ryd notifikationer", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index d718135494..52a2cf2b9b 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -505,6 +505,8 @@ "notification.update": "{name} bearbeitete einen Beitrag", "notification_requests.accept": "Akzeptieren", "notification_requests.dismiss": "Ablehnen", + "notification_requests.maximize": "Maximieren", + "notification_requests.minimize_banner": "Banner für gefilterte Benachrichtigungen minimieren", "notification_requests.notifications_from": "Benachrichtigungen von {name}", "notification_requests.title": "Gefilterte Benachrichtigungen", "notifications.clear": "Benachrichtigungen löschen", @@ -687,7 +689,7 @@ "report_notification.categories.violation_sentence": "Regelverletzung", "report_notification.open": "Meldung öffnen", "search.no_recent_searches": "Keine früheren Suchanfragen", - "search.placeholder": "Suche", + "search.placeholder": "Suchen", "search.quick_action.account_search": "Profile passend zu {x}", "search.quick_action.go_to_account": "Profil {x} aufrufen", "search.quick_action.go_to_hashtag": "Hashtag {x} aufrufen", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 9a5405edbe..2a86e789a4 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -505,6 +505,8 @@ "notification.update": "{name} editó un mensaje", "notification_requests.accept": "Aceptar", "notification_requests.dismiss": "Descartar", + "notification_requests.maximize": "Maximizar", + "notification_requests.minimize_banner": "Minimizar la barra de notificaciones filtradas", "notification_requests.notifications_from": "Notificaciones de {name}", "notification_requests.title": "Notificaciones filtradas", "notifications.clear": "Limpiar notificaciones", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 28b4a29cb9..414e453fa3 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -86,6 +86,10 @@ "announcement.announcement": "اعلامیه", "attachments_list.unprocessed": "(پردازش نشده)", "audio.hide": "نهفتن صدا", + "block_modal.show_less": "نمایش کم‌تر", + "block_modal.show_more": "نمایش بیش‌تر", + "block_modal.title": "انسداد کاربر؟", + "block_modal.you_wont_see_mentions": "فرسته‌هایی که از اون نام برده را نخواهید دید.", "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", "bundle_column_error.copy_stacktrace": "رونوشت از گزارش خطا", "bundle_column_error.error.body": "صفحهٔ درخواستی نتوانست پرداخت شود. ممکن است به خاطر اشکالی در کدمان یا مشکل سازگاری مرورگر باشد.", @@ -160,21 +164,28 @@ "confirmations.block.confirm": "انسداد", "confirmations.delete.confirm": "حذف", "confirmations.delete.message": "آیا مطمئنید که می‌خواهید این فرسته را حذف کنید؟", + "confirmations.delete.title": "حذف فرسته؟", "confirmations.delete_list.confirm": "حذف", "confirmations.delete_list.message": "مطمئنید می‌خواهید این سیاهه را برای همیشه حذف کنید؟", + "confirmations.delete_list.title": "حذف سیاهه؟", "confirmations.discard_edit_media.confirm": "دور انداختن", "confirmations.discard_edit_media.message": "تغییرات ذخیره نشده‌ای در توضیحات یا پیش‌نمایش رسانه دارید. همگی نادیده گرفته شوند؟", "confirmations.edit.confirm": "ویرایش", "confirmations.edit.message": "در صورت ویرایش، پیامی که در حال نوشتنش بودید از بین خواهد رفت. می‌خواهید ادامه دهید؟", + "confirmations.edit.title": "رونویسی فرسته؟", "confirmations.logout.confirm": "خروج از حساب", "confirmations.logout.message": "مطمئنید می‌خواهید خارج شوید؟", + "confirmations.logout.title": "خروج؟", "confirmations.mute.confirm": "خموش", "confirmations.redraft.confirm": "حذف و بازنویسی", "confirmations.redraft.message": "مطمئنید که می‌خواهید این فرسته را حذف کنید و از نو بنویسید؟ با این کار تقویت‌ها و پسندهایش از دست رفته و پاسخ‌ها به آن بی‌مرجع می‌شود.", + "confirmations.redraft.title": "حذف و پیش‌نویسی دوبارهٔ فرسته؟", "confirmations.reply.confirm": "پاسخ", "confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. می‌خواهید ادامه دهید؟", + "confirmations.reply.title": "رونویسی فرسته؟", "confirmations.unfollow.confirm": "پی‌نگرفتن", "confirmations.unfollow.message": "مطمئنید که می‌خواهید به پی‌گیری از {name} پایان دهید؟", + "confirmations.unfollow.title": "ناپی‌گیری کاربر؟", "conversation.delete": "حذف گفتگو", "conversation.mark_as_read": "علامت‌گذاری به عنوان خوانده شده", "conversation.open": "دیدن گفتگو", @@ -194,6 +205,10 @@ "dismissable_banner.explore_statuses": "هم‌اکنون این فرسته‌ها از این کارساز و دیگر کارسازهای شبکهٔ نامتمرکز داغ شده‌اند.", "dismissable_banner.explore_tags": "هم‌اکنون این برچسب‌ها بین افراد این کارساز و دیگر کارسازهای شبکهٔ نامتمرکز داغ شده‌اند.", "dismissable_banner.public_timeline": "این‌ها جدیدترین فرسته‌های عمومی از افرادی روی وب اجتماعیند که اعضای {domain} پی می‌گیرندشان.", + "domain_block_modal.block": "انسداد کارساز", + "domain_block_modal.title": "انسداد دامنه؟", + "domain_pill.server": "کارساز", + "domain_pill.username": "نام کاربری", "embed.instructions": "جاسازی این فرسته روی پایگاهتان با رونوشت کردن کد زیر.", "embed.preview": "این گونه دیده خواهد شد:", "emoji_button.activity": "فعالیت", @@ -388,6 +403,8 @@ "loading_indicator.label": "در حال بارگذاری…", "media_gallery.toggle_visible": "{number, plural, one {نهفتن تصویر} other {نهفتن تصاویر}}", "moved_to_account_banner.text": "حسابتان {disabledAccount} اکنون از کار افتاده؛ چرا که به {movedToAccount} منتقل شدید.", + "mute_modal.show_options": "نمایش گزینه‌ها", + "mute_modal.title": "خموشی کاربر؟", "navigation_bar.about": "درباره", "navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته", "navigation_bar.blocks": "کاربران مسدود شده", @@ -420,15 +437,21 @@ "notification.follow": "‫{name}‬ پی‌گیرتان شد", "notification.follow_request": "{name} درخواست پی‌گیریتان را داد", "notification.mention": "‫{name}‬ به شما اشاره کرد", + "notification.moderation-warning.learn_more": "بیشتر بدانید", "notification.own_poll": "نظرسنجیتان پایان یافت", "notification.reblog": "‫{name}‬ فرسته‌تان را تقویت کرد", + "notification.relationships_severance_event.learn_more": "بیشتر بدانید", "notification.status": "{name} چیزی فرستاد", "notification.update": "{name} فرسته‌ای را ویرایش کرد", + "notification_requests.accept": "پذیرش", + "notification_requests.dismiss": "دورانداختن", + "notification_requests.maximize": "بیشنه", "notifications.clear": "پاک‌سازی آگاهی‌ها", "notifications.clear_confirmation": "مطمئنید می‌خواهید همهٔ آگاهی‌هایتان را برای همیشه پاک کنید؟", "notifications.column_settings.admin.report": "گزارش‌های جدید:", "notifications.column_settings.admin.sign_up": "ثبت نام‌های جدید:", "notifications.column_settings.alert": "آگاهی‌های میزکار", + "notifications.column_settings.beta.category": "ویژگی‌های آزمایشی", "notifications.column_settings.favourite": "برگزیده‌ها:", "notifications.column_settings.follow": "پی‌گیرندگان جدید:", "notifications.column_settings.follow_request": "درخواست‌های جدید پی‌گیری:", @@ -583,8 +606,11 @@ "report.unfollow_explanation": "شما این حساب را پی‌گرفته‌اید، برای اینکه دیگر فرسته‌هایش را در خوراک خانه‌تان نبینید؛ آن را پی‌نگیرید.", "report_notification.attached_statuses": "{count, plural, one {{count} فرسته} other {{count} فرسته}} پیوست شده", "report_notification.categories.legal": "قانونی", + "report_notification.categories.legal_sentence": "محتوای غیرقانونی", "report_notification.categories.other": "دیگر", + "report_notification.categories.other_sentence": "دیگر", "report_notification.categories.spam": "هرزنامه", + "report_notification.categories.spam_sentence": "هرزنامه", "report_notification.categories.violation": "تخطّی از قانون", "report_notification.open": "گشودن گزارش", "search.no_recent_searches": "جست‌وجوی اخیری نیست", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 168c2de410..ae1ccc0a3c 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -3,7 +3,7 @@ "about.contact": "Yhteydenotto:", "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.", "about.domain_blocks.no_reason_available": "Syy ei ole tiedossa", - "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä, ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.", + "about.domain_blocks.preamble": "Mastodonin avulla voi yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.", "about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.", "about.domain_blocks.silenced.title": "Rajoitettu", "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta eikä vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.", @@ -30,7 +30,7 @@ "account.endorse": "Suosittele profiilissasi", "account.featured_tags.last_status_at": "Viimeisin julkaisu {date}", "account.featured_tags.last_status_never": "Ei julkaisuja", - "account.featured_tags.title": "Käyttäjän {name} esille nostamat aihetunnisteet", + "account.featured_tags.title": "Käyttäjän {name} suosittelemat aihetunnisteet", "account.follow": "Seuraa", "account.follow_back": "Seuraa takaisin", "account.followers": "Seuraajat", @@ -143,7 +143,7 @@ "community.column_settings.media_only": "Vain media", "community.column_settings.remote_only": "Vain etätilit", "compose.language.change": "Vaihda kieli", - "compose.language.search": "Hae kieliä...", + "compose.language.search": "Hae kieliä…", "compose.published.body": "Julkaisu lähetetty.", "compose.published.open": "Avaa", "compose.saved.body": "Julkaisu tallennettu.", @@ -228,8 +228,8 @@ "domain_pill.their_username": "Hänen yksilöllinen tunnisteensa omalla palvelimellaan. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.", "domain_pill.username": "Käyttäjänimi", "domain_pill.whats_in_a_handle": "Mitä käyttäjätunnuksessa on?", - "domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa ihmisten kanssa kaikkialla sosiaalisessa verkossa, joka koostuu .", - "domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, ihmiset voivat olla vaikutuksessa kanssasi kaikkialla sosiaalisessa verkossa, joka koostuu .", + "domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa käyttäjien kanssa kaikkialla sosiaalisessa verkossa, joka koostuu .", + "domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, käyttäjät voivat olla vaikutuksessa kanssasi kaikkialla sosiaalisessa verkossa, joka koostuu .", "domain_pill.your_handle": "Käyttäjätunnuksesi:", "domain_pill.your_server": "Digitaalinen kotisi, jossa kaikki julkaisusi sijaitsevat. Etkö pidä tästä? Siirry palvelimelta toiselle milloin tahansa ja tuo myös seuraajasi mukanasi.", "domain_pill.your_username": "Yksilöllinen tunnisteesi tällä palvelimella. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.", @@ -246,7 +246,7 @@ "emoji_button.objects": "Esineet", "emoji_button.people": "Ihmiset", "emoji_button.recent": "Usein käytetyt", - "emoji_button.search": "Hae...", + "emoji_button.search": "Hae…", "emoji_button.search_results": "Hakutulokset", "emoji_button.symbols": "Symbolit", "emoji_button.travel": "Matkailu ja paikat", @@ -279,7 +279,7 @@ "errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle", "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta", "explore.search_results": "Hakutulokset", - "explore.suggested_follows": "Henkilöt", + "explore.suggested_follows": "Käyttäjät", "explore.title": "Selaa", "explore.trending_links": "Uutiset", "explore.trending_statuses": "Julkaisut", @@ -381,7 +381,7 @@ "keyboard_shortcuts.compose": "Kohdista kirjoituskenttään", "keyboard_shortcuts.description": "Kuvaus", "keyboard_shortcuts.direct": "Avaa yksityismainintojen sarake", - "keyboard_shortcuts.down": "Siirry listassa alaspäin", + "keyboard_shortcuts.down": "Siirry luettelossa eteenpäin", "keyboard_shortcuts.enter": "Avaa julkaisu", "keyboard_shortcuts.favourite": "Lisää julkaisu suosikkeihin", "keyboard_shortcuts.favourites": "Avaa suosikkiluettelo", @@ -401,13 +401,13 @@ "keyboard_shortcuts.reply": "Vastaa julkaisuun", "keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo", "keyboard_shortcuts.search": "Kohdista hakukenttään", - "keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä", + "keyboard_shortcuts.spoilers": "Näytä tai piilota sisältövaroituskenttä", "keyboard_shortcuts.start": "Avaa Näin pääset alkuun -sarake", - "keyboard_shortcuts.toggle_hidden": "Näytä/piilota sisältövaroituksella merkitty teksti", - "keyboard_shortcuts.toggle_sensitivity": "Näytä/piilota media", + "keyboard_shortcuts.toggle_hidden": "Näytä tai piilota sisältövaroituksella merkitty teksti", + "keyboard_shortcuts.toggle_sensitivity": "Näytä tai piilota media", "keyboard_shortcuts.toot": "Luo uusi julkaisu", - "keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä", - "keyboard_shortcuts.up": "Siirry listassa ylöspäin", + "keyboard_shortcuts.unfocus": "Poistu kirjoitus- tai hakukentästä", + "keyboard_shortcuts.up": "Siirry luettelossa taaksepäin", "lightbox.close": "Sulje", "lightbox.compress": "Tiivis kuvankatselunäkymä", "lightbox.expand": "Laajennettu kuvankatselunäkymä", @@ -415,7 +415,7 @@ "lightbox.previous": "Edellinen", "limited_account_hint.action": "Näytä profiili joka tapauksessa", "limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.", - "link_preview.author": "Julkaissut {name}", + "link_preview.author": "Tehnyt {name}", "link_preview.more_from_author": "Lisää tekijältä {name}", "link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", "lists.account.add": "Lisää listalle", @@ -453,7 +453,7 @@ "navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.community_timeline": "Paikallinen aikajana", "navigation_bar.compose": "Luo uusi julkaisu", - "navigation_bar.direct": "Yksityiset maininnat", + "navigation_bar.direct": "Yksityismaininnat", "navigation_bar.discover": "Löydä uutta", "navigation_bar.domain_blocks": "Estetyt verkkotunnukset", "navigation_bar.explore": "Selaa", @@ -505,6 +505,8 @@ "notification.update": "{name} muokkasi julkaisua", "notification_requests.accept": "Hyväksy", "notification_requests.dismiss": "Hylkää", + "notification_requests.maximize": "Suurenna", + "notification_requests.minimize_banner": "Pienennä suodatettujen ilmoitusten palkki", "notification_requests.notifications_from": "Ilmoitukset käyttäjältä {name}", "notification_requests.title": "Suodatetut ilmoitukset", "notifications.clear": "Tyhjennä ilmoitukset", @@ -581,7 +583,7 @@ "onboarding.start.lead": "Uusi Mastodon-tilisi on nyt valmiina käyttöön. Kyseessä on ainutlaatuinen, hajautettu sosiaalisen median alusta, jolla sinä itse – algoritmin sijaan – määrität käyttökokemuksesi. Näin hyödyt Mastodonista eniten:", "onboarding.start.skip": "Haluatko hypätä suoraan eteenpäin ilman alkuunpääsyohjeistuksia?", "onboarding.start.title": "Olet tehnyt sen!", - "onboarding.steps.follow_people.body": "Mastodon perustuu sinua kiinnostavien henkilöjen julkaisujen seuraamiseen.", + "onboarding.steps.follow_people.body": "Mastodonissa on kyse kiinnostavien käyttäjien seuraamisesta.", "onboarding.steps.follow_people.title": "Mukauta kotisyötettäsi", "onboarding.steps.publish_status.body": "Tervehdi maailmaa sanoin, kuvin tai äänestyksin {emoji}", "onboarding.steps.publish_status.title": "Laadi ensimmäinen julkaisusi", @@ -596,10 +598,10 @@ "password_confirmation.exceeds_maxlength": "Salasanan vahvistus ylittää salasanan enimmäispituuden", "password_confirmation.mismatching": "Salasanan vahvistus ei täsmää", "picture_in_picture.restore": "Laita se takaisin", - "poll.closed": "Suljettu", + "poll.closed": "Päättynyt", "poll.refresh": "Päivitä", "poll.reveal": "Näytä tulokset", - "poll.total_people": "{count, plural, one {# henkilö} other {# henkilöä}}", + "poll.total_people": "{count, plural, one {# käyttäjä} other {# käyttäjää}}", "poll.total_votes": "{count, plural, one {# ääni} other {# ääntä}}", "poll.vote": "Äänestä", "poll.voted": "Äänestit tätä vastausta", @@ -608,7 +610,7 @@ "poll_button.remove_poll": "Poista äänestys", "privacy.change": "Muuta julkaisun näkyvyyttä", "privacy.direct.long": "Kaikki tässä julkaisussa mainitut", - "privacy.direct.short": "Tietyt henkilöt", + "privacy.direct.short": "Tietyt käyttäjät", "privacy.private.long": "Vain seuraajasi", "privacy.private.short": "Seuraajat", "privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella", @@ -730,7 +732,7 @@ "status.delete": "Poista", "status.detailed_status": "Yksityiskohtainen keskustelunäkymä", "status.direct": "Mainitse @{name} yksityisesti", - "status.direct_indicator": "Yksityinen maininta", + "status.direct_indicator": "Yksityismaininta", "status.edit": "Muokkaa", "status.edited": "Viimeksi muokattu {date}", "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}", @@ -781,7 +783,7 @@ "status.unpin": "Irrota profiilista", "subscribed_languages.lead": "Vain valituilla kielillä kirjoitetut julkaisut näkyvät koti- ja lista-aikajanoillasi muutoksen jälkeen. Älä valitse mitään, jos haluat nähdä julkaisuja kaikilla kielillä.", "subscribed_languages.save": "Tallenna muutokset", - "subscribed_languages.target": "Vaihda tilatut kielet {target}", + "subscribed_languages.target": "Vaihda tilattuja kieliä käyttäjältä {target}", "tabs_bar.home": "Koti", "tabs_bar.notifications": "Ilmoitukset", "time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä", @@ -793,7 +795,7 @@ "timeline_hint.resources.followers": "seuraajat", "timeline_hint.resources.follows": "seuratut", "timeline_hint.resources.statuses": "vanhemmat julkaisut", - "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} {days, plural, one {viime päivänä} other {viimeisenä {days} päivänä}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} käyttäjä} other {{counter} käyttäjää}} {days, plural, one {viime päivänä} other {viimeisenä {days} päivänä}}", "trends.trending_now": "Suosittua nyt", "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.", "units.short.billion": "{count} mrd.", @@ -818,7 +820,7 @@ "upload_modal.hint": "Napsauta tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.", "upload_modal.preparing_ocr": "Valmistellaan tekstintunnistusta…", "upload_modal.preview_label": "Esikatselu ({ratio})", - "upload_progress.label": "Lähetetään...", + "upload_progress.label": "Lähetetään…", "upload_progress.processing": "Käsitellään…", "username.taken": "Tämä käyttäjänimi on jo käytössä. Kokeile toista", "video.close": "Sulje video", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index a9004ea189..5f7062b11a 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -505,6 +505,7 @@ "notification.update": "{name} rættaði ein post", "notification_requests.accept": "Góðtak", "notification_requests.dismiss": "Avvís", + "notification_requests.maximize": "Mesta", "notification_requests.notifications_from": "Fráboðanir frá {name}", "notification_requests.title": "Sáldaðar fráboðanir", "notifications.clear": "Rudda fráboðanir", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index ddbf6fa273..137130e9e9 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -505,6 +505,8 @@ "notification.update": "{name} editou unha publicación", "notification_requests.accept": "Aceptar", "notification_requests.dismiss": "Desbotar", + "notification_requests.maximize": "Maximizar", + "notification_requests.minimize_banner": "Minimizar o anuncio de notificacións filtradas", "notification_requests.notifications_from": "Notificacións de {name}", "notification_requests.title": "Notificacións filtradas", "notifications.clear": "Limpar notificacións", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 0734a9b022..a1f718d24f 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -505,6 +505,8 @@ "notification.update": "{name} ערכו הודעה", "notification_requests.accept": "לקבל", "notification_requests.dismiss": "לבטל", + "notification_requests.maximize": "הגדלה למקסימום", + "notification_requests.minimize_banner": "להקטין את כותרת ההודעות המפולטרות", "notification_requests.notifications_from": "התראות מ־ {name}", "notification_requests.title": "התראות מסוננות", "notifications.clear": "הסרת התראות", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 9e9a3cd251..4acff61740 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -160,7 +160,7 @@ "compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra", "compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra", "compose_form.poll.type": "Stílus", - "compose_form.publish": "Bejegyzés", + "compose_form.publish": "Közzététel", "compose_form.publish_form": "Új bejegyzés", "compose_form.reply": "Válasz", "compose_form.save_changes": "Frissítés", @@ -505,6 +505,8 @@ "notification.update": "{name} szerkesztett egy bejegyzést", "notification_requests.accept": "Elfogadás", "notification_requests.dismiss": "Elvetés", + "notification_requests.maximize": "Maximalizálás", + "notification_requests.minimize_banner": "Szűrt értesítések sávjának minimalizálása", "notification_requests.notifications_from": "{name} értesítései", "notification_requests.title": "Szűrt értesítések", "notifications.clear": "Értesítések törlése", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 99d2d98faf..a38e56714a 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -505,6 +505,8 @@ "notification.update": "{name} breytti færslu", "notification_requests.accept": "Samþykkja", "notification_requests.dismiss": "Afgreiða", + "notification_requests.maximize": "Hámarka", + "notification_requests.minimize_banner": "Minnka borða með síuðum tilkynningum", "notification_requests.notifications_from": "Tilkynningar frá {name}", "notification_requests.title": "Síaðar tilkynningar", "notifications.clear": "Hreinsa tilkynningar", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index b3194e6a10..b317e9e64c 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -505,6 +505,8 @@ "notification.update": "{name} ha modificato un post", "notification_requests.accept": "Accetta", "notification_requests.dismiss": "Ignora", + "notification_requests.maximize": "Ingrandisci", + "notification_requests.minimize_banner": "Riduci al minimo il banner delle notifiche filtrate", "notification_requests.notifications_from": "Notifiche da {name}", "notification_requests.title": "Notifiche filtrate", "notifications.clear": "Cancella le notifiche", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 77a5018430..9a1ef03efc 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -293,6 +293,7 @@ "filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します", "filter_modal.select_filter.title": "この投稿をフィルターする", "filter_modal.title.status": "投稿をフィルターする", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {すべて完了しました} other {#人の通知がブロックされています}}", "filtered_notifications_banner.title": "保留中の通知", "firehose.all": "すべて", "firehose.local": "このサーバー", @@ -489,6 +490,7 @@ "notification.update": "{name}さんが投稿を編集しました", "notification_requests.accept": "受け入れる", "notification_requests.dismiss": "無視", + "notification_requests.minimize_banner": "「保留中の通知」のバナーを最小化する", "notification_requests.notifications_from": "{name}からの通知", "notification_requests.title": "保留中の通知", "notifications.clear": "通知を消去", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 803070a094..dd5a931b6f 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -505,6 +505,8 @@ "notification.update": "{name} heeft een bericht bewerkt", "notification_requests.accept": "Accepteren", "notification_requests.dismiss": "Afwijzen", + "notification_requests.maximize": "Maximaliseer", + "notification_requests.minimize_banner": "Banner met gefilterde meldingen minimaliseren", "notification_requests.notifications_from": "Meldingen van {name}", "notification_requests.title": "Gefilterde meldingen", "notifications.clear": "Meldingen verwijderen", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 3828ff887e..feca55fad4 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -29,6 +29,9 @@ "account.follows.empty": "ਇਹ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਕਿਸੇ ਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।", "account.go_to_profile": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਜਾਓ", "account.media": "ਮੀਡੀਆ", + "account.mute": "{name} ਨੂੰ ਮੌਨ ਕਰੋ", + "account.mute_notifications_short": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਮੌਨ ਕਰੋ", + "account.mute_short": "ਮੌਨ ਕਰੋ", "account.muted": "ਮੌਨ ਕੀਤੀਆਂ", "account.mutual": "ਸਾਂਝੇ", "account.no_bio": "ਕੋਈ ਵਰਣਨ ਨਹੀਂ ਦਿੱਤਾ।", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index efd2d2c156..2136d3fa82 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -504,6 +504,8 @@ "notification.update": "{name} edytował(a) post", "notification_requests.accept": "Akceptuj", "notification_requests.dismiss": "Odrzuć", + "notification_requests.maximize": "Zmaksymalizuj", + "notification_requests.minimize_banner": "Zminimalizuj baner powiadomień filtrowanych", "notification_requests.notifications_from": "Powiadomienia od {name}", "notification_requests.title": "Powiadomienia filtrowane", "notifications.clear": "Wyczyść powiadomienia", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 42b9e7c9ec..a4340f95d5 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -505,6 +505,8 @@ "notification.update": "{name} editou uma publicação", "notification_requests.accept": "Aceitar", "notification_requests.dismiss": "Descartar", + "notification_requests.maximize": "Maximizar", + "notification_requests.minimize_banner": "Minimizar o cabeçalho das notificações filtradas", "notification_requests.notifications_from": "Notificações de {name}", "notification_requests.title": "Notificações filtradas", "notifications.clear": "Limpar notificações", diff --git a/app/javascript/mastodon/locales/ry.json b/app/javascript/mastodon/locales/ry.json index 4f2e2410ef..cbd9e3d928 100644 --- a/app/javascript/mastodon/locales/ry.json +++ b/app/javascript/mastodon/locales/ry.json @@ -129,6 +129,7 @@ "compose.language.change": "Поміняти язык", "compose.language.search": "Глядати языкы...", "compose.published.body": "Пост опубликованый.", + "compose.published.open": "Удкрыти", "compose.saved.body": "Пост усокоченый.", "compose_form.direct_message_warning_learn_more": "Читайте бульше", "compose_form.encryption_warning": "Публикації на Mastodon не шіфрувут ся. Не шырьте чутливу інформацію через Mastodon.", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 2127ab2efb..57cfd25bf7 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -449,12 +449,14 @@ "navigation_bar.security": "Zabezpečenie", "not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, prihláste sa.", "notification.admin.report": "Účet {name} nahlásil {target}", + "notification.admin.report_statuses_other": "{name} nahlásil/a {target}", "notification.admin.sign_up": "Nová registráciu účtu {name}", "notification.favourite": "{name} hviezdičkuje váš príspevok", "notification.follow": "{name} vás sleduje", "notification.follow_request": "{name} vás žiada sledovať", "notification.mention": "{name} vás spomína", "notification.moderation-warning.learn_more": "Zisti viac", + "notification.moderation_warning.action_delete_statuses": "Niektoré z tvojich príspevkov boli odstránené.", "notification.moderation_warning.action_disable": "Tvoj účet bol vypnutý.", "notification.moderation_warning.action_silence": "Tvoj účet bol obmedzený.", "notification.moderation_warning.action_suspend": "Tvoj účet bol pozastavený.", @@ -471,6 +473,7 @@ "notification_requests.title": "Filtrované oboznámenia", "notifications.clear": "Vyčistiť upozornenia", "notifications.clear_confirmation": "Určite chcete nenávratne odstrániť všetky svoje upozornenia?", + "notifications.clear_title": "Vyčistiť upozornenia?", "notifications.column_settings.admin.report": "Nové hlásenia:", "notifications.column_settings.admin.sign_up": "Nové registrácie:", "notifications.column_settings.alert": "Upozornenia na ploche", @@ -632,7 +635,9 @@ "report.unfollow_explanation": "Tento účet sledujete. Ak už nechcete vidieť jeho príspevky vo svojom domovskom kanáli, prestaňte ho sledovať.", "report_notification.attached_statuses": "{count, plural, one {{count} príspevok} few {{count} príspevky} other {{count} príspevkov}} ako príloha", "report_notification.categories.legal": "Právne", + "report_notification.categories.legal_sentence": "nelegálny obsah", "report_notification.categories.other": "Ostatné", + "report_notification.categories.other_sentence": "ostatné", "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Porušenie pravidla", "report_notification.open": "Otvoriť hlásenie", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 078092b50a..e7b79c08bb 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -505,6 +505,8 @@ "notification.update": "{name} përpunoi një postim", "notification_requests.accept": "Pranoje", "notification_requests.dismiss": "Hidhe tej", + "notification_requests.maximize": "Maksimizoje", + "notification_requests.minimize_banner": "Minimizo banderolë njoftimesh të filtruara", "notification_requests.notifications_from": "Njoftime prej {name}", "notification_requests.title": "Njoftime të filtruar", "notifications.clear": "Spastroji njoftimet", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 3b8238fe06..198ee75eb8 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Mevcut bir kategoriyi kullan veya yeni bir tane oluştur", "filter_modal.select_filter.title": "Bu gönderiyi süzgeçle", "filter_modal.title.status": "Bir gönderi süzgeçle", + "filtered_notifications_banner.pending_requests": "Bildiğiniz {count, plural, =0 {hiç kimseden} one {bir kişiden} other {# kişiden}}", "filtered_notifications_banner.title": "Filtrelenmiş bildirimler", "firehose.all": "Tümü", "firehose.local": "Bu sunucu", @@ -504,6 +505,8 @@ "notification.update": "{name} bir gönderiyi düzenledi", "notification_requests.accept": "Onayla", "notification_requests.dismiss": "Yoksay", + "notification_requests.maximize": "Büyüt", + "notification_requests.minimize_banner": "Filtrelenmiş bildirimler başlığını küçült", "notification_requests.notifications_from": "{name} bildirimleri", "notification_requests.title": "Filtrelenmiş bildirimler", "notifications.clear": "Bildirimleri temizle", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 9535f1f445..a1c674caa1 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -300,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Використати наявну категорію або створити нову", "filter_modal.select_filter.title": "Фільтрувати цей допис", "filter_modal.title.status": "Фільтрувати допис", + "filtered_notifications_banner.pending_requests": "Від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати", "filtered_notifications_banner.title": "Відфільтровані сповіщення", "firehose.all": "Всі", "firehose.local": "Цей сервер", @@ -473,10 +474,10 @@ "navigation_bar.security": "Безпека", "not_signed_in_indicator.not_signed_in": "Ви повинні увійти, щоб отримати доступ до цього ресурсу.", "notification.admin.report": "Скарга від {name} на {target}", - "notification.admin.report_account": "{name} повідомив(ла) про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target} в категорії {category}", - "notification.admin.report_account_other": "{name} повідомив(ла) про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target}", - "notification.admin.report_statuses": "{name} повідомив(ла) про {target} в категорії {category}", - "notification.admin.report_statuses_other": "{name} повідомив(ла) про {target}", + "notification.admin.report_account": "{name} повідомляє про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target} в категорії {category}", + "notification.admin.report_account_other": "{name} повідомляє про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target}", + "notification.admin.report_statuses": "{name} повідомляє про {target} в категорії {category}", + "notification.admin.report_statuses_other": "{name} повідомляє про {target}", "notification.admin.sign_up": "{name} приєдналися", "notification.favourite": "Ваш допис сподобався {name}", "notification.follow": "{name} підписалися на вас", @@ -493,7 +494,7 @@ "notification.moderation_warning.action_suspend": "Ваш обліковий запис було заблоковано.", "notification.own_poll": "Ваше опитування завершилося", "notification.poll": "Опитування, в якому ви проголосували, завершено", - "notification.private_mention": "{name} приватно згадав(ла) вас", + "notification.private_mention": "{name} приватно згадує вас", "notification.reblog": "{name} поширює ваш допис", "notification.relationships_severance_event": "Втрачено з'єднання з {name}", "notification.relationships_severance_event.account_suspension": "Адміністратор з {from} призупинив {target}, що означає, що ви більше не можете отримувати оновлення від них або взаємодіяти з ними.", @@ -504,6 +505,8 @@ "notification.update": "{name} змінює допис", "notification_requests.accept": "Прийняти", "notification_requests.dismiss": "Відхилити", + "notification_requests.maximize": "Розгорнути", + "notification_requests.minimize_banner": "Мінімізувати відфільтрований банер сповіщень", "notification_requests.notifications_from": "Сповіщення від {name}", "notification_requests.title": "Відфільтровані сповіщення", "notifications.clear": "Очистити сповіщення", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index a3cec8185d..0f5eeebd07 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -505,6 +505,8 @@ "notification.update": "{name} đã sửa tút", "notification_requests.accept": "Chấp nhận", "notification_requests.dismiss": "Bỏ qua", + "notification_requests.maximize": "Tối đa", + "notification_requests.minimize_banner": "Tinh giản banner lọc thông báo", "notification_requests.notifications_from": "Thông báo từ {name}", "notification_requests.title": "Thông báo đã lọc", "notifications.clear": "Xóa hết thông báo", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 1095502fb9..53fe9b9853 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -1,12 +1,12 @@ { - "about.blocks": "受限服务器", + "about.blocks": "被限制的服务器", "about.contact": "联系方式:", "about.disclaimer": "Mastodon 是自由的开源软件,商标由 Mastodon gGmbH 持有。", "about.domain_blocks.no_reason_available": "原因不可用", "about.domain_blocks.preamble": "通常来说,在 Mastodon 上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但其中一些在本服务器上被设置为例外。", "about.domain_blocks.silenced.explanation": "除非明确地搜索并关注对方,否则你不会看到来自此服务器的用户信息与内容。", - "about.domain_blocks.silenced.title": "访问受限", - "about.domain_blocks.suspended.explanation": "不处理、存储或交换来自本服务器的任何数据,不可能与本服务器上的用户进行任何交互或通信。", + "about.domain_blocks.silenced.title": "已隐藏", + "about.domain_blocks.suspended.explanation": "此服务器的数据将不会被处理、存储或者交换,本站也将无法和来自此服务器的用户互动或者交流。", "about.domain_blocks.suspended.title": "已封禁", "about.not_available": "此信息在当前服务器尚不可用。", "about.powered_by": "由 {mastodon} 驱动的去中心化社交媒体", @@ -81,7 +81,7 @@ "admin.impact_report.instance_accounts": "将要删除的账户资料", "admin.impact_report.instance_followers": "本实例用户即将丢失的关注者", "admin.impact_report.instance_follows": "对方实例用户将会丢失的关注者", - "admin.impact_report.title": "权重一览", + "admin.impact_report.title": "影响摘要", "alert.rate_limited.message": "请在 {retry_time, time, medium} 后重试。", "alert.rate_limited.title": "频率受限", "alert.unexpected.message": "发生了意外错误。", @@ -91,10 +91,10 @@ "audio.hide": "隐藏音频", "block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重您的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。", "block_modal.show_less": "隐藏", - "block_modal.show_more": "展开", + "block_modal.show_more": "显示更多", "block_modal.they_cant_mention": "他们不能提及或关注你。", - "block_modal.they_cant_see_posts": "嘟文将被设置为互相不可见。", - "block_modal.they_will_know": "他们将会获知他们被屏蔽。", + "block_modal.they_cant_see_posts": "他们看不到你的嘟文,你也看不到他们的嘟文。", + "block_modal.they_will_know": "他们将能看到他们被屏蔽。", "block_modal.title": "屏蔽该用户?", "block_modal.you_wont_see_mentions": "你将无法看到提及他们的嘟文。", "boost_modal.combo": "下次按住 {combo} 即可跳过此提示", @@ -171,28 +171,28 @@ "confirmations.block.confirm": "屏蔽", "confirmations.delete.confirm": "删除", "confirmations.delete.message": "你确定要删除这条嘟文吗?", - "confirmations.delete.title": "删除嘟文?", + "confirmations.delete.title": "确认删除嘟文?", "confirmations.delete_list.confirm": "删除", "confirmations.delete_list.message": "确定永久删除这个列表吗?", - "confirmations.delete_list.title": "删除列表?", + "confirmations.delete_list.title": "确认删除列表?", "confirmations.discard_edit_media.confirm": "丢弃", "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍要丢弃吗?", "confirmations.edit.confirm": "编辑", "confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?", - "confirmations.edit.title": "覆盖嘟文?", + "confirmations.edit.title": "确认覆盖嘟文?", "confirmations.logout.confirm": "退出登录", "confirmations.logout.message": "确定要退出登录吗?", - "confirmations.logout.title": "退出登录?", + "confirmations.logout.title": "是否退出登录?", "confirmations.mute.confirm": "隐藏", "confirmations.redraft.confirm": "删除并重新编辑", "confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。", - "confirmations.redraft.title": "删除并重新嘟文?", + "confirmations.redraft.title": "是否删除并重新编辑嘟文?", "confirmations.reply.confirm": "回复", "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?", - "confirmations.reply.title": "覆盖嘟文?", + "confirmations.reply.title": "确认覆盖嘟文?", "confirmations.unfollow.confirm": "取消关注", "confirmations.unfollow.message": "你确定要取消关注 {name} 吗?", - "confirmations.unfollow.title": "取消关注用户?", + "confirmations.unfollow.title": "是否取消关注用户?", "conversation.delete": "删除对话", "conversation.mark_as_read": "标记为已读", "conversation.open": "查看对话", @@ -505,11 +505,13 @@ "notification.update": "{name} 编辑了嘟文", "notification_requests.accept": "接受", "notification_requests.dismiss": "拒绝", + "notification_requests.maximize": "最大化", + "notification_requests.minimize_banner": "最小化被过滤通知的横幅", "notification_requests.notifications_from": "来自 {name} 的通知", "notification_requests.title": "通知(已过滤)", "notifications.clear": "清空通知列表", "notifications.clear_confirmation": "你确定要永久清空通知列表吗?", - "notifications.clear_title": "清空通知?", + "notifications.clear_title": "是否清空通知?", "notifications.column_settings.admin.report": "新举报:", "notifications.column_settings.admin.sign_up": "新注册:", "notifications.column_settings.alert": "桌面通知", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index bd4f89169f..8be00b273a 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -505,6 +505,8 @@ "notification.update": "{name} 已編輯嘟文", "notification_requests.accept": "接受", "notification_requests.dismiss": "關閉", + "notification_requests.maximize": "最大化", + "notification_requests.minimize_banner": "最小化已過濾通知橫幅", "notification_requests.notifications_from": "來自 {name} 之通知", "notification_requests.title": "已過濾之通知", "notifications.clear": "清除通知", diff --git a/config/locales/be.yml b/config/locales/be.yml index a14ba3d224..2e3d6558dc 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -232,6 +232,7 @@ be: update_custom_emoji: Абнавіць адвольныя эмодзі update_domain_block: Актуалізаваць блакіроўку дамена update_ip_block: Абнавіць IP правіла + update_report: Абнавіць скаргу update_status: Абнавіць допіс update_user_role: Абнавіць ролю actions: @@ -299,6 +300,7 @@ be: filter_by_action: Фільтраваць па дзеянню filter_by_user: Адфільтраваць па карыстальніку title: Аўдыт + unavailable_instance: "(імя дамена недаступнае)" announcements: destroyed_msg: Аб'ява паспяхова выдалена! edit: @@ -485,6 +487,9 @@ be: title: Рэкамендацыі падпісак unsuppress: Аднавіць рэкамендацыі падпісак instances: + audit_log: + title: Нядаўнія журналы аўдыту + view_all: Праглядзець поўныя журналы аўдыту availability: description_html: few: Калі дастаўка на дамен не атрымоўваецца праз %{count} іншыя дні, далейшыя спробы дастаўкі не будуць зроблены, пакуль не будзе атрымана дастаўка з дамена. @@ -661,6 +666,7 @@ be: report: 'Скарга #%{id}' reported_account: Уліковы запіс парушальніка reported_by: Адпраўнік скаргі + reported_with_application: Паведамлена праз праграму resolved: Вырашана resolved_msg: Скарга была паспяхова вырашана! skip_to_actions: Прапусціць дзеянні @@ -907,7 +913,23 @@ be: action: Для падрабязнасцей націсніце тут message_html: "Ваша сховішча не наладжана. Прыватнасць карыстальнікаў пад пагрозай." tags: + moderation: + not_trendable: Не ў трэндзе + not_usable: Непрыгодныя + pending_review: Чакае праверкі + review_requested: Патрабуюць прагледжвання + reviewed: Прагледжаныя + title: Стан + trendable: У трэндзе + unreviewed: Непрагледжаныя + usable: Прыгодныя + name: Назва + newest: Спачатку новыя + oldest: Спачатку старыя + reset: Скінуць review: Стан праверкі + search: Пошук + title: Хэштэгі updated_msg: Налады хэштэгаў паспяхова змененыя title: Адміністрацыя trends: diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 7e0aaaeefb..9046769a21 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -232,6 +232,7 @@ cs: update_custom_emoji: Aktualizovat vlastní emoji update_domain_block: Změnit blokaci domény update_ip_block: Aktualizovat pravidlo IP + update_report: Upravit hlášení update_status: Aktualizovat Příspěvek update_user_role: Aktualizovat roli actions: @@ -486,6 +487,9 @@ cs: title: Doporučená sledování unsuppress: Obnovit doporučení sledování instances: + audit_log: + title: Nedávné protokoly auditu + view_all: Zobrazit úplné protokoly auditu availability: description_html: few: Pokud doručování na doménu selže ve %{count} různých dnech, nebudou činěny žádné další pokusy o doručení, dokud nedorazí doručení od domény. @@ -662,6 +666,7 @@ cs: report: 'Hlášení #%{id}' reported_account: Nahlášený účet reported_by: Nahlášeno uživatelem + reported_with_application: Nahlášeno aplikací resolved: Vyřešeno resolved_msg: Hlášení úspěšně vyřešeno! skip_to_actions: Přeskočit k akcím @@ -908,7 +913,23 @@ cs: action: Pro více informací se podívejte zde message_html: "Váš object storage je špatně nakonfigurován. Soukromí vašich uživatelů je ohroženo." tags: + moderation: + not_trendable: Netrendovatelné + not_usable: Nepoužitelné + pending_review: Čeká na posouzení + review_requested: Posouzení vyžádáno + reviewed: Posouzené + title: Stav + trendable: Trendovatelné + unreviewed: Neposouzené + usable: Použitelné + name: Název + newest: Nejnovější + oldest: Nejstarší + reset: Resetovat review: Stav posouzení + search: Hledat + title: Hashtagy updated_msg: Nastavení hashtagů bylo úspěšně aktualizováno title: Administrace trends: diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 5f1b0b4bce..5b26322be3 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -17,11 +17,11 @@ cy: zero: Dilynwyr following: Yn dilyn instance_actor_flash: Mae'r cyfrif hwn yn actor rhithwir sy'n cael ei ddefnyddio i gynrychioli'r gweinydd ei hun ac nid unrhyw ddefnyddiwr unigol. Fe'i defnyddir at ddibenion ffederasiwn ac ni ddylid ei atal. - last_active: y diweddaraf + last_active: gweithgar ddiwethaf link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date} nothing_here: Does dim byd yma! pin_errors: - following: Rhaid i chi fod yn dilyn yn barod y person rydych am ei gymeradwyo + following: Rhaid i chi fod yn dilyn y person rydych am ei gymeradwyo, yn barod. posts: few: Postiadau many: Postiadau @@ -503,6 +503,9 @@ cy: title: Dilyn yr argymhellion unsuppress: Adfer argymhelliad dilyn instances: + audit_log: + title: Cofnodion Archwilio Diweddar + view_all: Gweld y cofnodion archwilio llawn availability: description_html: few: Os bydd anfon i'r parth yn methu ar %{count} o ddiwrnodau gwahanol heb lwyddo, ni fydd unrhyw ymdrechion dosbarthu pellach yn cael eu gwneud oni bai y bydd danfoniad yn cael ei dderbyn o'r parth. @@ -938,7 +941,23 @@ cy: action: Ewch yma am fwy o wybodaeth message_html: "Mae eich storfa gwrthrychau wedi'i cham ffurfweddu. Mae preifatrwydd eich defnyddwyr mewn perygl." tags: + moderation: + not_trendable: Ddim yn dueddol + not_usable: Ddim yn ddefnyddiadwy + pending_review: O dan ystyriaeth + review_requested: Gofynnwyd am adolygiad + reviewed: Adolygwyd + title: Statws + trendable: Tueddadwy + unreviewed: Heb ei adolygu + usable: Defnyddiadwy + name: Enw + newest: Mwyaf newydd + oldest: Hynaf + reset: Ailosod review: Adolygu statws + search: Chwilio + title: Hashnodau updated_msg: Gosodiadau hashnodau wedi'i diweddaru'n llwyddiannus title: Gweinyddiaeth trends: diff --git a/config/locales/da.yml b/config/locales/da.yml index 004aea520a..90a669ccb9 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -642,6 +642,7 @@ da: report: 'Anmeldelse #%{id}' reported_account: Anmeldt konto reported_by: Anmeldt af + reported_with_application: Rapporteret via applikation resolved: Løst resolved_msg: Anmeldelse løst! skip_to_actions: Overspring til foranstaltninger diff --git a/config/locales/de.yml b/config/locales/de.yml index b133cf94bc..1e6d291068 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1130,7 +1130,7 @@ de: new_confirmation_instructions_sent: In wenigen Minuten wirst du eine neue E-Mail mit dem Bestätigungslink erhalten! title: Überprüfe dein E-Mail-Postfach sign_in: - preamble_html: Melde dich mit deinen Zugangsdaten für %{domain} an. Solltest du dein Konto auf einem anderen Server registriert haben, ist eine Anmeldung hier nicht möglich. + preamble_html: Melde dich mit deinen Zugangsdaten für %{domain} an. Falls dein Konto auf einem anderen Server erstellt wurde, ist eine Anmeldung hier nicht möglich. title: Bei %{domain} anmelden sign_up: manual_review: Registrierungen für den Server %{domain} werden manuell durch unsere Moderator*innen überprüft. Um uns dabei zu unterstützen, schreibe etwas über dich und sage uns, weshalb du ein Konto auf %{domain} anlegen möchtest. diff --git a/config/locales/doorkeeper.be.yml b/config/locales/doorkeeper.be.yml index f4faed1f09..75f9930e1a 100644 --- a/config/locales/doorkeeper.be.yml +++ b/config/locales/doorkeeper.be.yml @@ -83,6 +83,7 @@ be: access_denied: Уласнік рэсурсу або сэрвер аўтарызацыі адхіліў ваш запыт. credential_flow_not_configured: Resource Owner Password Credentials flow не прайшоў з-за таго, што ўласцівасць Doorkeeper.configure.resource_owner_from_credentials была не вызначана. invalid_client: Збой аўтэнтыфікацыі кліента з-за невядомага кліента, адсутнасці аўтэнтыфікацыі кліента або метаду аўтэнтыфікацыі, які не падтрымліваецца. + invalid_code_challenge_method: Метад праверкі кода павінен быць S256, просты тэкст не падтрымліваецца. invalid_grant: Прадастаўлены дазвол на аўтарызацыю несапраўдны, пратэрмінованы, быў адкліканы, не адпавядае URI перанакіравання, які выкарыстоўваецца ў запыце аўтарызацыі або быў выдадзены іншаму кліенту. invalid_redirect_uri: Прадстаўлены URI перанакіравання не сапраўдны. invalid_request: diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml index b2e51a47c1..b3cd00f4be 100644 --- a/config/locales/doorkeeper.hu.yml +++ b/config/locales/doorkeeper.hu.yml @@ -20,7 +20,7 @@ hu: applications: buttons: authorize: Hitelesítés - cancel: Mégsem + cancel: Mégse destroy: Törlés edit: Szerkesztés submit: Elküldés @@ -51,20 +51,20 @@ hu: application_id: Ügyfélkulcs callback_urls: Visszahívási URL-ek scopes: Hatáskörök - secret: Ügyfél titkos kulcs + secret: Ügyféltitok title: 'Alkalmazás: %{name}' authorizations: buttons: - authorize: Hitelesítés + authorize: Engedélyezés deny: Tiltás error: title: Hiba történt new: prompt_html: "%{client_name} szeretné elérni a fiókodat. Ez egy harmadik féltől származó alkalmazás. Ha nem bízol meg benne, ne addj felhatalmazást neki." review_permissions: Jogosultságok áttekintése - title: Hitelesítés szükséges + title: Engedélyezés szükséges show: - title: Másold le ezt az engedélyező kódot és írd be az alkalmazásba. + title: Másold le ezt az engedélyezési kódot és írd be az alkalmazásba. authorized_applications: buttons: revoke: Visszavonás @@ -83,6 +83,7 @@ hu: access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést. credential_flow_not_configured: Az erőforrás tulajdonos jelszóadatainak átadása megszakadt, mert a Doorkeeper.configure.resource_owner_from_credentials beállítatlan. invalid_client: A kliens hitelesítése megszakadt, mert ismeretlen a kliens, a kliens nem küldött hitelesítést, vagy a hitelesítés módja nem támogatott. + invalid_code_challenge_method: A kódkihívási módszernek S256-nak kell lennie, az egyszerű kód nem támogatott. invalid_grant: A biztosított hitelesítés érvénytelen, lejárt, visszavont, vagy nem egyezik a hitelesítési kérésben használt URI-val, vagy más kliensnek címezték. invalid_redirect_uri: Az átirányító URI nem valós. invalid_request: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index d90de587b7..28906f9dbf 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -17,7 +17,7 @@ fi: link_verified_on: Tämän linkin omistus on tarkastettu %{date} nothing_here: Täällä ei ole mitään! pin_errors: - following: Sinun täytyy seurata henkilöä jota haluat tukea + following: Sinun täytyy seurata käyttäjää, jota haluat tukea posts: one: Julkaisu other: viestiä @@ -632,7 +632,7 @@ fi: create_and_resolve: Ratkaise ja lisää muistiinpano create_and_unresolve: Avaa uudelleen ja lisää muistiinpano delete: Poista - placeholder: Kuvaile tehtyjä toimia tai lisää muita käyttäjään liittyviä merkintöjä... + placeholder: Kuvaile tehtyjä toimia tai lisää muita käyttäjään liittyviä merkintöjä… title: Muistiinpanot notes_description_html: Tarkastele ja jätä muistiinpanoja muille moderaattoreille ja itsellesi tulevaisuuteen processed_msg: Raportin nro %{id} käsittely onnistui @@ -771,7 +771,7 @@ fi: public_timelines: Julkiset aikajanat publish_discovered_servers: Julkaise löydetyt palvelimet publish_statistics: Julkaise tilastot - title: Löydettävyys + title: Löytäminen trends: Trendit domain_blocks: all: Kaikille @@ -838,7 +838,7 @@ fi: delete_statuses: "%{name} poisti käyttäjän %{target} julkaisut" disable: "%{name} jäädytti %{target} tilin" mark_statuses_as_sensitive: "%{name} merkitsi käyttäjän %{target} julkaisut arkaluonteisiksi" - none: "%{name} lähetti varoituksen henkilölle %{target}" + none: "%{name} lähetti varoituksen käyttäjälle %{target}" sensitive: "%{name} merkitsi käyttäjän %{target} tilin arkaluonteiseksi" silence: "%{name} rajoitti käyttäjän %{target} tiliä" suspend: "%{name} jäädytti käyttäjän %{target} tilin" @@ -918,8 +918,8 @@ fi: publishers: no_publisher_selected: Julkaisijoita ei muutettu, koska yhtään ei ollut valittuna shared_by_over_week: - one: Jakanut yksi henkilö viimeisen viikon aikana - other: Jakanut %{count} henkilöä viimeisen viikon aikana + one: Jakanut yksi käyttäjä viimeisen viikon aikana + other: Jakanut %{count} käyttäjää viimeisen viikon aikana title: Suositut linkit usage_comparison: Jaettu tänään %{today} kertaa verrattuna eilisen %{yesterday} kertaan not_allowed_to_trend: Ei saa trendata @@ -951,7 +951,7 @@ fi: tag_servers_dimension: Suosituimmat palvelimet tag_servers_measure: eri palvelimet tag_uses_measure: käyttökerrat yhteensä - description_html: Nämä aihetunnisteet näkyvät parhaillaan monissa julkaisuissa, jotka palvelimesi näkee. Tämä luettelo voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten juuri nyt. Mitkään aihetunnisteet ei näy julkisesti ennen kuin hyväksyt ne. + description_html: Nämä aihetunnisteet näkyvät parhaillaan monissa julkaisuissa, jotka palvelimesi näkee. Tämä luettelo voi auttaa käyttäjiäsi selvittämään, mistä puhutaan eniten juuri nyt. Mitkään aihetunnisteet ei näy julkisesti ennen kuin hyväksyt ne. listable: Voi ehdottaa no_tag_selected: Tunnisteita ei muutettu, koska yhtään ei ollut valittuna not_listable: Ei ehdoteta @@ -964,8 +964,8 @@ fi: usable: Voi käyttää usage_comparison: Käytetty tänään %{today} kertaa, verrattuna elisen %{yesterday} kertaan used_by_over_week: - one: Käyttänyt yksi henkilö viimeisen viikon aikana - other: Käyttänyt %{count} henkilöä viimeisen viikon aikana + one: Käyttänyt yksi käyttäjä viimeisen viikon aikana + other: Käyttänyt %{count} käyttäjää viimeisen viikon aikana title: Trendit trending: Trendaus warning_presets: @@ -1043,8 +1043,8 @@ fi: advanced_web_interface: Edistynyt selainkäyttöliittymä advanced_web_interface_hint: 'Jos haluat hyödyntää näytön koko leveyttä, edistyneen selainkäyttöliittymän avulla voit määrittää useita erilaisia sarakkeita, niin näet kerralla niin paljon tietoa kuin haluat: kotisyöte, ilmoitukset, yleinen aikajana, mikä tahansa määrä listoja ja aihetunnisteita.' animations_and_accessibility: Animaatiot ja saavutettavuus - confirmation_dialogs: Vahvistusvalinnat - discovery: Löydettävyys + confirmation_dialogs: Vahvistusikkunat + discovery: Löytäminen localization: body: Mastodonin ovat kääntäneet vapaaehtoiset. guide_link: https://crowdin.com/project/mastodon @@ -1092,7 +1092,7 @@ fi: dont_have_your_security_key: Eikö sinulla ole suojausavainta? forgot_password: Unohditko salasanasi? invalid_reset_password_token: Salasanan palautustunnus on virheellinen tai vanhentunut. Pyydä uusi. - link_to_otp: Syötä puhelimesi kaksivaiheisen todennuksen koodi tai palautuskoodi + link_to_otp: Syötä kaksivaiheisen todennuksen tunnusluku puhelimestasi tai palautuskoodi link_to_webauth: Käytä suojausavaintasi log_in_with: Kirjaudu käyttäen login: Kirjaudu sisään @@ -1134,7 +1134,7 @@ fi: title: Kirjaudu palvelimelle %{domain} sign_up: manual_review: Palvelimen %{domain} ylläpito tarkastaa rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja siitä, miksi haluat luoda käyttäjätilin palvelimelle %{domain}. - preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia henkilöitä riippumatta siitä, missä heidän tilinsä on. + preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia käyttäjiä riippumatta siitä, missä heidän tilinsä on. title: Otetaan %{domain} käyttöösi. status: account_status: Tilin tila @@ -1224,7 +1224,7 @@ fi: invalid_domain: ei ole kelvollinen verkkotunnus edit_profile: basic_information: Perustiedot - hint_html: "Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä. Ihmiset seuraavat sinua takaisin ja ovat kanssasi vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva." + hint_html: "Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä. Sinua seurataan takaisin ja kanssasi ollaan vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva." other: Muut errors: '400': Lähettämäsi pyyntö oli virheellinen tai muotoiltu virheellisesti. @@ -1249,7 +1249,7 @@ fi: date: Päiväys download: Lataa arkisto hint_html: Voit pyytää arkistoa omista julkaisuista ja mediasta. Viedyt tiedot ovat ActivityPub-muodossa, ja ne voi lukea millä tahansa yhteensopivalla ohjelmalla. Voit pyytää arkistoa 7 päivän välein. - in_progress: Arkistoa kootaan... + in_progress: Arkistoa kootaan… request: Pyydä arkisto size: Koko blocks: Estot @@ -1262,8 +1262,8 @@ fi: featured_tags: add_new: Lisää uusi errors: - limit: Olet nostanut esille jo enimmäismäärän aihetunnisteita - hint_html: "Nosta tärkeimmät aihetunnisteesi esille profiilissasi. Erinomainen työkalu, jolla pidät kirjaa luovista teoksistasi ja pitkäaikaisista projekteistasi. Esille nostamasi aihetunnisteet ovat näyttävällä paikalla profiilissasi ja mahdollistavat nopean pääsyn julkaisuihisi." + limit: Suosittelet jo aihetunnisteiden enimmäismäärää + hint_html: "Suosittele tärkeimpiä aihetunnisteitasi profiilissasi. Erinomainen työkalu, jolla pidät kirjaa luovista teoksistasi ja pitkäaikaisista projekteistasi. Suosittelemasi aihetunnisteet ovat näyttävällä paikalla profiilissasi ja mahdollistavat nopean pääsyn julkaisuihisi." filters: contexts: account: Profiilit @@ -1359,7 +1359,7 @@ fi: following_html: Olet aikeissa seurata kaikkiaan %{total_items} tiliä tiedostosta %{filename}. lists_html: Olet aikeissa lisätä listoihisi kaikkiaan %{total_items} tiliä tiedostosta %{filename}. Uusia listoja luodaan, jos sopivaa kohdelistaa ei ole olemassa. muting_html: Olet aikeissa mykistää kaikkiaan %{total_items} tiliä tiedostosta %{filename}. - preface: Voit tuoda toiselta palvelimelta viemiäsi tietoja, kuten seuraamiesi tai estämiesi henkilöiden luettelon. + preface: Voit tuoda toiselta palvelimelta viemiäsi tietoja, kuten seuraamiesi tai estämiesi käyttäjien luettelon. recent_imports: Viimeksi tuotu states: finished: Valmis @@ -1386,7 +1386,7 @@ fi: domain_blocking: Verkkotunnusten estoluettelo following: Seurattujen luettelo lists: Listat - muting: Mykistettyjen luettelo + muting: Mykistysluettelo upload: Lähetä invites: delete: Poista käytöstä @@ -1480,7 +1480,7 @@ fi: title: Moderointi move_handler: carry_blocks_over_text: Tämä käyttäjä siirtyi paikasta %{acct}, jonka olit estänyt. - carry_mutes_over_text: Tämä käyttäjä siirtyi tililtä %{acct}, jonka olet mykistänyt. + carry_mutes_over_text: Tämä käyttäjä muutti tilistä %{acct}, jonka olet mykistänyt. copy_account_note_text: 'Tämä käyttäjä siirtyi tililtä %{acct}. Nämä olivat muistiinpanosi hänestä:' navigation: toggle_menu: Avaa/sulje valikko @@ -1569,7 +1569,7 @@ fi: reach: Tavoittavuus reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seurantasuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen? search: Haku - search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että ihmiset löytävät sinut julkisten julkaisujesi perusteella? Haluatko, että ihmiset Mastodonin ulkopuolella löytävät profiilisi tehdessään hakuja verkossa? Otathan huomioon, ettei julkisten tietojen täyttä kaikista hakukoneista poisjäämistä voi taata. + search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että sinut löydetään julkisten julkaisujesi perusteella? Haluatko, että Mastodonin ulkopuoliset ihmiset löytävät profiilisi tehdessään hakuja verkossa? Otathan huomioon, ettei julkisten tietojen täyttä kaikista hakukoneista poisjäämistä voi taata. title: Yksityisyys ja tavoittavuus privacy_policy: title: Tietosuojakäytäntö @@ -1675,16 +1675,16 @@ fi: development: Kehitys edit_profile: Muokkaa profiilia export: Vie tietoja - featured_tags: Esille nostetut aihetunnisteet + featured_tags: Suositellut aihetunnisteet import: Tuo tietoja import_and_export: Tuonti ja vienti migrate: Tilin muutto toisaalle notifications: Sähköposti-ilmoitukset - preferences: Ominaisuudet + preferences: Asetukset profile: Julkinen profiili relationships: Seuratut ja seuraajat - severed_relationships: Katkenneet seurantasuhteet - statuses_cleanup: Autom. julkaisujen poisto + severed_relationships: Katkenneet suhteet + statuses_cleanup: Julkaisujen automaattipoisto strikes: Moderointivaroitukset two_factor_authentication: Kaksivaiheinen todennus webauthn_authentication: Suojausavaimet @@ -1729,8 +1729,8 @@ fi: reblog: Tehostusta ei voi kiinnittää poll: total_people: - one: "%{count} henkilö" - other: "%{count} henkilöä" + one: "%{count} käyttäjä" + other: "%{count} käyttäjää" total_votes: one: "%{count} ääni" other: "%{count} ääntä" @@ -1750,7 +1750,7 @@ fi: enabled: Poista vanhat julkaisut automaattisesti enabled_hint: Poistaa julkaisusi automaattisesti, kun ne saavuttavat valitun ikäkynnyksen, ellei jokin alla olevista poikkeuksista tule kyseeseen exceptions: Poikkeukset - explanation: Koska julkaisujen poistaminen on raskas toimi, se tapahtuu hitaasti ajan mittaan, kun palvelin ei ole muutoin ruuhkainen. Siksi viestejäsi voi poistua vasta tovi sen jälkeen, kun ne ovat saavuttaneet ikäkynnyksen. + explanation: Koska julkaisujen poistaminen on raskas toimi, se tapahtuu hitaasti aikaa myöten silloin kun palvelin ei ole muutoin ruuhkainen. Siksi viestejäsi voi poistua vasta tovi sen jälkeen kun ne ovat ylittäneet ikäkynnyksen. ignore_favs: Ohita suosikit ignore_reblogs: Ohita tehostukset interaction_exceptions: Vuorovaikutuksiin perustuvat poikkeukset @@ -1857,7 +1857,7 @@ fi: explanation: delete_statuses: Joidenkin julkaisuistasi on havaittu rikkovan ainakin yhtä yhteisön sääntöä, joten palvelimen %{instance} moderaattorit ovat poistaneet ne. disable: Et voi enää käyttää tiliäsi, mutta profiilisi ja muut tiedot pysyvät muuttumattomina. Voit pyytää varmuuskopiota tiedoistasi, vaihtaa tilin asetuksia tai poistaa tilisi. - mark_statuses_as_sensitive: Palvelimen %{instance} moderaattorit ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että ihmisten täytyy napauttaa mediaa ennen kuin sen esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi, kun julkaiset tulevaisuudessa. + mark_statuses_as_sensitive: Palvelimen %{instance} moderaattorit ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että mediaa täytyy napauttaa ennen kuin sen esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi, kun julkaiset tulevaisuudessa. sensitive: Tästä lähtien kaikki lähetetyt mediatiedostot merkitään arkaluonteisiksi ja piilotetaan napsautusvaroituksen taakse. silence: Voit edelleen käyttää tiliäsi, mutta vain sinua jo seuraavat käyttäjät näkevät julkaisusi tällä palvelimella ja sinut voidaan sulkea pois eri löytämisominaisuuksista. Toiset voivat kuitenkin edelleen seurata sinua manuaalisesti. suspend: Et voi enää käyttää tiliäsi, eivätkä profiilisi ja muut tiedot ole enää käytettävissä. Voit silti kirjautua sisään pyytääksesi tietojesi varmuuskopiota, kunnes tiedot on poistettu kokonaan noin 30 päivän kuluttua. Säilytämme kuitenkin joitain perustietoja, jotka estävät sinua kiertämästä jäädytystä. @@ -1900,14 +1900,14 @@ fi: feature_moderation: Mastodon palauttaa päätöksenteon käsiisi. Jokainen palvelin luo omat sääntönsä ja määräyksensä, joita valvotaan paikallisesti eikä ylhäältä alas kuten kaupallisessa sosiaalisessa mediassa, mikä tekee siitä joustavimman vastaamaan eri ihmisryhmien tarpeisiin. Liity palvelimelle, jonka säännöt sopivat sinulle, tai ylläpidä omaa palvelinta. feature_moderation_title: Moderointi juuri kuten sen pitäisi olla follow_action: Seuraa - follow_step: Mastodonissa on kyse kiinnostavien ihmisten seuraamisesta. + follow_step: Mastodonissa on kyse kiinnostavien käyttäjien seuraamisesta. follow_title: Mukauta kotisyötettäsi follows_subtitle: Seuraa tunnettuja tilejä follows_title: Seurantaehdotuksia - follows_view_more: Näytä lisää seurattavia henkilöitä + follows_view_more: Näytä lisää seurattavia käyttäjiä hashtags_recent_count: - one: "%{people} henkilö viimeisenä 2 päivänä" - other: "%{people} henkilöä viimeisenä 2 päivänä" + one: "%{people} käyttäjä viimeisenä 2 päivänä" + other: "%{people} käyttäjää viimeisenä 2 päivänä" hashtags_subtitle: Tutki, mikä on ollut suosittua viimeisenä 2 päivänä hashtags_title: Suositut aihetunnisteet hashtags_view_more: Näytä lisää suosittuja aihetunnisteita @@ -1921,9 +1921,9 @@ fi: subject: Tervetuloa Mastodoniin title: Tervetuloa mukaan, %{name}! users: - follow_limit_reached: Et voi seurata yli %{limit} henkilöä + follow_limit_reached: Et voi seurata yli %{limit} käyttäjää go_to_sso_account_settings: Avaa identiteettitarjoajasi tiliasetukset - invalid_otp_token: Virheellinen kaksivaiheisen todentamisen koodi + invalid_otp_token: Virheellinen kaksivaiheisen todennuksen koodi otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyden osoitteeseen %{email} rate_limited: Liian monta todennusyritystä – yritä uudelleen myöhemmin. seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 964230d5a5..9d8e00cb7e 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -882,6 +882,9 @@ ia: action: Consulta hic pro plus information message_html: "Tu immagazinage de objectos es mal configurate. Le confidentialitate de tu usatores es in risco." tags: + moderation: + pending_review: Attende revision + title: Stato name: Nomine review: Revide le stato search: Cercar diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index fca41d3fe3..a50db22987 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -211,6 +211,7 @@ be: setting_default_privacy: Прыватнасць допісаў setting_default_sensitive: Заўсёды пазначаць кантэнт як далікатны setting_delete_modal: Паказваць акно пацвярджэння перад выдаленнем допісу + setting_disable_hover_cards: Адключыць перадпрагляд профілю пры навядзенні setting_disable_swiping: Адключыць прагортванні setting_display_media: Адлюстраванне медыя setting_display_media_default: Перадвызначана @@ -242,11 +243,13 @@ be: warn: Схаваць з папярэджаннем form_admin_settings: activity_api_enabled: Апублікаваць зводную статыстыку аб актыўнасці карыстальнікаў API + app_icon: Значок праграмы backups_retention_period: Працягласць захавання архіву карыстальніка bootstrap_timeline_accounts: Заўсёды раіць гэтыя ўліковыя запісы новым карыстальнікам closed_registrations_message: Уласнае паведамленне, калі рэгістрацыя немагчымая content_cache_retention_period: Перыяд захоўвання выдаленага змесціва custom_css: CSS карыстальніка + favicon: Значок сайта mascot: Уласны маскот(спадчына) media_cache_retention_period: Працягласць захавання кэшу для медыя peers_api_enabled: Апублікаваць спіс знойдзеных сервераў у API @@ -311,6 +314,7 @@ be: listable: Дазволіць паказ хэштэгу ў пошуку і ў каталозе профіляў name: Хэштэг trendable: Дазволіць паказ гэтага хэштэга ў трэндах + usable: Дазволіць допісам выкарыстоўваць гэты хэштэг лакальна user: role: Роля time_zone: Часавы пояс diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index 5a1bd3c883..d4d370ff5b 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -242,11 +242,13 @@ cs: warn: Skrýt s varováním form_admin_settings: activity_api_enabled: Zveřejnit souhrnné statistiky o aktivitě uživatele v API + app_icon: Ikona aplikace backups_retention_period: Doba uchovávání archivu uživatelů bootstrap_timeline_accounts: Vždy doporučovat tyto účty novým uživatelům closed_registrations_message: Vlastní zpráva, když přihlášení není k dispozici content_cache_retention_period: Doba uchovávání vzdáleného obsahu custom_css: Vlastní CSS + favicon: Favicon mascot: Vlastní maskot (zastaralé) media_cache_retention_period: Doba uchovávání mezipaměti médií peers_api_enabled: Zveřejnit seznam nalezených serverů v API diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index 611223ea66..22545a776a 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -314,6 +314,7 @@ cy: listable: Caniatáu i'r hashnod hwn ymddangos mewn chwiliadau ac awgrymiadau name: Hashnod trendable: Caniatáu i'r hashnod hwn ymddangos o dan bynciau llosg + usable: Caniatáu i bostiadau ddefnyddio'r hashnod hwn yn lleol user: role: Rôl time_zone: Cylchfa amser diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index b2c26020da..733a5c2769 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -314,7 +314,7 @@ es-MX: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias - usable: Permitir a las publicacions usar esta etiqueta localmente + usable: Permitir a las publicaciones usar esta etiqueta localmente user: role: Rol time_zone: Zona horaria diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 0e6cc47e36..02f0562d28 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -314,7 +314,7 @@ es: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias - usable: Permitir a las publicacions usar esta etiqueta localmente + usable: Permitir a las publicaciones usar esta etiqueta localmente user: role: Rol time_zone: Zona horaria diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index fa1fd49b38..c20ff9fa5f 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -6,7 +6,7 @@ fi: discoverable: Julkisia julkaisujasi ja profiiliasi voidaan pitää esillä tai suositella Mastodonin eri alueilla ja profiiliasi voidaan ehdottaa toisille käyttäjille. display_name: Koko nimesi tai lempinimesi. fields: Verkkosivustosi, pronominisi, ikäsi ja mitä ikinä haluatkaan ilmoittaa. - indexable: Julkiset julkaisusi voivat näkyä hakutuloksissa Mastodonissa. Ihmiset, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta. + indexable: Julkiset julkaisusi voivat näkyä Mastodonin hakutuloksissa. Käyttäjät, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta. note: 'Voit @mainita muita käyttäjiä tai #aihetunnisteita.' show_collections: Käyttäjät voivat selata seurattujasi ja seuraajiasi. Käyttäjät, joita seuraat, näkevät joka tapauksessa, että seuraat heitä. unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntääsi. Poista valinta, jos haluat tarkistaa sekä hyväksyä tai hylätä vastaanottamasi seurantapyynnöt. @@ -38,7 +38,7 @@ fi: appeal: text: Voit valittaa varoituksesta vain kerran defaults: - autofollow: Henkilöt, jotka rekisteröityvät kutsun kautta, seuraavat sinua automaattisesti + autofollow: Kutsun kautta rekisteröityvät käyttäjät seuraavat sinua automaattisesti avatar: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px bot: Ilmaise muille, että tili suorittaa enimmäkseen automaattisia toimia eikä sitä valvota context: Ainakin yksi konteksti, jossa suodattimen pitäisi olla voimassa @@ -49,14 +49,14 @@ fi: header: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px inbox_url: Kopioi URL-osoite haluamasi välittäjän etusivulta irreversible: Suodatetut julkaisut katoavat peruuttamattomasti, vaikka suodatin poistettaisiin myöhemmin - locale: Käyttöliittymän, sähköpostien ja puskuilmoitusten kieli + locale: Käyttöliittymän, sähköpostiviestien ja puskuilmoitusten kieli password: Käytä vähintään 8:aa merkkiä phrase: Täsmää riippumatta tekstin aakkoslajista tai julkaisun sisältövaroituksesta 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_sensitive: Arkaluonteinen media piilotetaan oletusarvoisesti, ja se voidaan näyttää yhdellä napsautuksella - setting_display_media_default: Piilota arkaluonteiseksi merkitty media + setting_display_media_default: Piilota arkaluonteiseksi merkitty mediasisältö setting_display_media_hide_all: Piilota mediasisältö aina setting_display_media_show_all: Näytä mediasisältö aina setting_use_blurhash: Liukuvärit perustuvat piilotettujen kuvien väreihin mutta sumentavat yksityiskohdat @@ -89,12 +89,12 @@ fi: peers_api_enabled: Luettelo verkkotunnuksista, jotka tämä palvelin on kohdannut fediversumissa. Se ei kerro, federoitko tietyn palvelimen kanssa, vaan että palvelimesi on ylipäätään tietoinen siitä. Tätä tietoa käytetään palveluissa, jotka keräävät tilastoja federoinnista yleisellä tasolla. profile_directory: Profiilihakemisto luetteloi kaikki käyttäjät, jotka ovat valinneet olla löydettävissä. require_invite_text: Kun rekisteröityminen vaatii manuaalisen hyväksynnän, tee ”Miksi haluat liittyä?” -tekstikentästä pakollinen vapaaehtoisen sijaan - site_contact_email: Miten ihmiset voivat tavoittaa sinut oikeus- tai tukikysymyksissä. - site_contact_username: Miten ihmiset voivat tavoittaa sinut Mastodonissa. + site_contact_email: Miten sinut voi tavoittaa oikeus- tai tukikysymyksissä. + site_contact_username: Miten sinut voi tavoittaa Mastodonissa. site_extended_description: Kaikki lisätiedot, jotka voivat olla hyödyllisiä kävijöille ja käyttäjille. Voidaan jäsentää Markdown-syntaksilla. site_short_description: Lyhyt kuvaus, joka auttaa yksilöimään palvelimesi. Kuka sitä johtaa, ja keille se on tarkoitettu? site_terms: Käytä omaa tietosuojakäytäntöä tai jätä tyhjäksi, jos haluat käyttää oletusta. Voidaan jäsentää Markdown-syntaksilla. - site_title: Miten ihmiset voivat viitata palvelimeesi sen verkkotunnuksen lisäksi. + site_title: Miten palvelimeesi voi viitata sen verkkotunnuksen lisäksi. status_page_url: URL-osoite sivulle, josta tämän palvelimen tilan voi ongelmatilanteissa tarkistaa theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät. thumbnail: Noin 2:1 kuva näkyy palvelimen tietojen ohessa. @@ -121,7 +121,7 @@ fi: hint: Vapaaehtoinen. Anna yksityiskohtaisempia tietoja säännöstä text: Kuvaile sääntöä tai edellytystä palvelimesi käyttäjille. Suosi tiivistä, yksinkertaista ilmaisua sessions: - otp: 'Näppäile mobiilisovelluksessa näkyvä kaksivaiheisen todennuksen tunnusluku, tai käytä tarvittaessa palautuskoodia:' + otp: 'Näppäile mobiilisovelluksessa näkyvä kaksivaiheisen todennuksen tunnusluku tai käytä tarvittaessa palautuskoodia:' webauthn: Jos kyseessä on USB-avain, muista laittaa se paikalleen ja tarvittaessa napauttaa sitä. settings: indexable: Profiilisi voi näkyä Googlen, Bingin ja muiden hakukoneiden hakutuloksissa. @@ -135,7 +135,7 @@ fi: color: Väri, jota käytetään roolille kaikkialla käyttöliittymässä, RGB-heksadesimaalimuodossa highlighted: Tämä tekee roolista julkisesti näkyvän name: Roolin julkinen nimi, jos rooli on asetettu näytettäväksi merkkinä - permissions_as_keys: Käyttäjillä, joilla on tämä rooli, on käyttöoikeus... + permissions_as_keys: Käyttäjillä, joilla on tämä rooli, on käyttöoikeus… position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimia voidaan suorittaa vain rooleilla, joiden prioriteetti on pienempi webhook: events: Valitse lähetettävät tapahtumat @@ -213,7 +213,7 @@ fi: setting_delete_modal: Kysy vahvistusta ennen julkaisun poistamista setting_disable_hover_cards: Poista käytöstä profiilin esikatselu osoitettaessa setting_disable_swiping: Poista pyyhkäisyeleet käytöstä - setting_display_media: Median näyttäminen + setting_display_media: Median näkyminen setting_display_media_default: Oletus setting_display_media_hide_all: Piilota kaikki setting_display_media_show_all: Näytä kaikki @@ -224,7 +224,7 @@ fi: setting_theme: Sivuston teema setting_trends: Näytä päivän trendit setting_unfollow_modal: Kysy vahvistusta ennen seuraamisen lopettamista - setting_use_blurhash: Käytä värikästä liukusävytystä piilotetulle medialle + setting_use_blurhash: Käytä värikästä liukusävytystä piilotetulle mediasisällölle setting_use_pending_items: Hidas tila severity: Vakavuus sign_in_token_attempt: Turvakoodi @@ -294,7 +294,7 @@ fi: follow: Joku seurasi sinua follow_request: Joku pyysi lupaa seurata sinua mention: Joku mainitsi sinut - pending_account: Uusi tili tarvitsee tarkistuksen + pending_account: Uusi tili tarvitsee tarkastuksen reblog: Joku tehosti julkaisuasi report: Uusi raportti lähetettiin software_updates: diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 2cc2c1788e..b07a79d3eb 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -314,6 +314,7 @@ tr: listable: Bu etiketin aramalarda ve profil dizininde görünmesine izin ver name: Etiket trendable: Bu etiketin gündem altında görünmesine izin ver + usable: Gönderilerin yerelde bu etiketi kullanmasına izin ver user: role: Rol time_zone: Zaman dilimi diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index 45478849b2..7d7f0fc765 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -77,13 +77,13 @@ uk: warn: Сховати відфільтрований вміст за попередженням, у якому вказано заголовок фільтра form_admin_settings: activity_api_enabled: Кількість локальних опублікованих дописів, активних і нових користувачів у тижневих розрізах - app_icon: WEBP, PNG, GIF або JPG. Замінює іконку програми за замовчуванням на мобільних пристроях на власну іконку. + app_icon: WEBP, PNG, GIF або JPG. Замінює типову піктограму застосунку на мобільних пристроях на власну. backups_retention_period: Користувачі мають можливість створювати архіви своїх дописів, щоб завантажити їх пізніше. Якщо встановлено додатне значення, ці архіви будуть автоматично видалені з вашого сховища через вказану кількість днів. bootstrap_timeline_accounts: Ці облікові записи будуть закріплені в топі пропозицій для нових користувачів. closed_registrations_message: Показується, коли реєстрація закрита content_cache_retention_period: Усі дописи з інших серверів (включно з коментарями та відповідями) будуть видалені через певну кількість днів, незважаючи на будь-яку локальну взаємодію користувачів з цими дописами. Сюди входять дописи, які локальний користувач позначив як закладки або вибране. Приватні згадки між користувачами з різних інстанцій також будуть втрачені і не підлягатимуть відновленню. Використання цього параметра призначено для екземплярів спеціального призначення і порушує багато очікувань користувачів, якщо його застосовано для загального використання. custom_css: Ви можете застосувати користувацькі стилі у вебверсії Mastodon. - favicon: WEBP, PNG, GIF або JPG. Замінює стандартну піктограму Mastodon на власну піктограму. + favicon: WEBP, PNG, GIF або JPG. Замінює стандартну піктограму Mastodon на власну. mascot: Змінює ілюстрацію в розширеному вебінтерфейсі. media_cache_retention_period: Медіафайли з дописів віддалених користувачів кешуються на вашому сервері. Якщо встановлено додатне значення, медіа буде видалено через вказану кількість днів. Якщо медіа-дані будуть запитані після видалення, вони будуть завантажені повторно, якщо вихідний вміст все ще доступний. Через обмеження на частоту опитування карток попереднього перегляду посилань на сторонніх сайтах, рекомендується встановити це значення не менше 14 днів, інакше картки попереднього перегляду посилань не будуть оновлюватися на вимогу раніше цього часу. peers_api_enabled: Список доменів імен цього сервера з'явився у федівсесвіті. Сюди не входять дані чи ви пов'язані федерацією з цим сервером, а лише відомості, що вашому серверу відомо про нього. Його використовують служби, які збирають загальну статистику про федерації. @@ -243,13 +243,13 @@ uk: warn: Сховати за попередженням form_admin_settings: activity_api_enabled: Публікація агрегованої статистики про активність користувачів - app_icon: Значок застосунку + app_icon: Піктограма застосунку backups_retention_period: Період утримання архіву користувача bootstrap_timeline_accounts: Завжди рекомендувати новим користувачам ці облікові записи closed_registrations_message: Показуване повідомлення, якщо реєстрація недоступна content_cache_retention_period: Період збереження віддаленого вмісту custom_css: Користувацький CSS - favicon: Значок сайту + favicon: Піктограма сайту mascot: Користувацький символ (застарілий) media_cache_retention_period: Період збереження кешу медіа peers_api_enabled: Опублікувати список знайдених серверів у API diff --git a/config/locales/tr.yml b/config/locales/tr.yml index f561781e59..dac16917f5 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -885,7 +885,23 @@ tr: action: Daha fazla bilgi için buraya göz atın message_html: "Nesne depolamanız hatalı yapılandırılmış. Kullanıcılarınızın gizliliği tehlikede." tags: + moderation: + not_trendable: Öne çıkarılamaz + not_usable: Kullanılamaz + pending_review: İnceleme bekliyor + review_requested: İnceleme istendi + reviewed: İncelendi + title: Durum + trendable: Öne çıkarılabilir + unreviewed: İncelenmemiş + usable: Kullanılabilir + name: Ad + newest: En yeni + oldest: En eski + reset: Sıfırla review: Durumu gözden geçir + search: Ara + title: Etiketler updated_msg: Etiket ayarları başarıyla güncellendi title: Yönetim trends: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 31ce3e6b79..e7aa5e4084 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -292,7 +292,7 @@ uk: update_custom_emoji_html: "%{name} оновлює емодзі %{target}" update_domain_block_html: "%{name} оновлює блокування домену для %{target}" update_ip_block_html: "%{name} змінює правило для IP %{target}" - update_report_html: "%{name} оновлений звіт %{target}" + update_report_html: "%{name} оновлює звіт %{target}" update_status_html: "%{name} оновлює допис %{target}" update_user_role_html: "%{name} змінює роль %{target}" deleted_account: видалений обліковий запис From 656373817ef10b6d988a0d69259839ed29ced632 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 13:30:35 +0200 Subject: [PATCH 081/306] chore(deps): update dependency bootsnap to v1.18.4 (#31297) 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 e1382732cb..699e2f83e1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -135,7 +135,7 @@ GEM binding_of_caller (1.0.1) debug_inspector (>= 1.2.0) blurhash (0.1.7) - bootsnap (1.18.3) + bootsnap (1.18.4) msgpack (~> 1.2) brakeman (6.1.2) racc From c01a6a6eeb055c594df9b846d60afe05465b56f3 Mon Sep 17 00:00:00 2001 From: Valtteri Laitinen Date: Mon, 5 Aug 2024 14:35:16 +0300 Subject: [PATCH 082/306] Improve look of verified header fields in profile (#31275) --- 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 583b5d4c5a..fa25a08150 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -8081,16 +8081,17 @@ noscript { .verified { border: 1px solid rgba($valid-value-color, 0.5); margin-top: -1px; + margin-inline: -1px; &:first-child { border-top-left-radius: 4px; border-top-right-radius: 4px; - margin-top: 0; } &:last-child { border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; + margin-bottom: -1px; } dt, From 97b9e8befd7355af7a2a2905a16f5f0527f0b48c Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Tue, 6 Aug 2024 08:53:59 +0200 Subject: [PATCH 083/306] Add account notes to hover cards (#31300) --- .../components/hover_card_account.tsx | 18 ++++++++++++++++++ .../account/components/account_note.jsx | 2 +- app/javascript/mastodon/locales/en.json | 2 +- .../styles/mastodon/components.scss | 19 +++++++++++++++++++ 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/hover_card_account.tsx b/app/javascript/mastodon/components/hover_card_account.tsx index 8933e14a98..05033e4ac7 100644 --- a/app/javascript/mastodon/components/hover_card_account.tsx +++ b/app/javascript/mastodon/components/hover_card_account.tsx @@ -1,5 +1,7 @@ import { useEffect, forwardRef } from 'react'; +import { FormattedMessage } from 'react-intl'; + import classNames from 'classnames'; import { Link } from 'react-router-dom'; @@ -25,6 +27,11 @@ export const HoverCardAccount = forwardRef< accountId ? state.accounts.get(accountId) : undefined, ); + const note = useAppSelector( + (state) => + state.relationships.getIn([accountId, 'note']) as string | undefined, + ); + useEffect(() => { if (accountId && !account) { dispatch(fetchAccount(accountId)); @@ -53,6 +60,17 @@ export const HoverCardAccount = forwardRef< className='hover-card__bio' /> + {note && note.length > 0 && ( +
+
+ +
+
{note}
+
+ )}
diff --git a/app/javascript/mastodon/features/account/components/account_note.jsx b/app/javascript/mastodon/features/account/components/account_note.jsx index 272a4ee312..e736e7ad64 100644 --- a/app/javascript/mastodon/features/account/components/account_note.jsx +++ b/app/javascript/mastodon/features/account/components/account_note.jsx @@ -151,7 +151,7 @@ class AccountNote extends ImmutablePureComponent { return (