diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 1647b5de9e..29709fee83 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by # `rubocop --auto-gen-config --auto-gen-only-exclude --no-offense-counts --no-auto-gen-timestamp` -# using RuboCop version 1.75.1. +# using RuboCop version 1.75.2. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new @@ -58,12 +58,6 @@ Style/FormatStringToken: Style/GuardClause: Enabled: false -# This cop supports unsafe autocorrection (--autocorrect-all). -Style/HashTransformValues: - Exclude: - - 'app/serializers/rest/web_push_subscription_serializer.rb' - - 'app/services/import_service.rb' - # Configuration parameters: AllowedMethods. # AllowedMethods: respond_to_missing? Style/OptionalBooleanParameter: diff --git a/Gemfile.lock b/Gemfile.lock index 86cfaa3132..1ed4b71318 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -201,7 +201,7 @@ GEM domain_name (0.6.20240107) doorkeeper (5.8.2) railties (>= 5) - dotenv (3.1.7) + dotenv (3.1.8) drb (2.2.1) elasticsearch (7.17.11) elasticsearch-api (= 7.17.11) diff --git a/app/javascript/mastodon/components/dropdown_menu.tsx b/app/javascript/mastodon/components/dropdown_menu.tsx index a5d2deaae1..fc3e9e1321 100644 --- a/app/javascript/mastodon/components/dropdown_menu.tsx +++ b/app/javascript/mastodon/components/dropdown_menu.tsx @@ -354,6 +354,28 @@ export const Dropdown = ({ dispatch(closeDropdownMenu({ id: currentId })); }, [dispatch, currentId]); + const handleItemClick = useCallback( + (e: React.MouseEvent | React.KeyboardEvent) => { + const i = Number(e.currentTarget.getAttribute('data-index')); + const item = items?.[i]; + + handleClose(); + + if (!item) { + return; + } + + if (typeof onItemClick === 'function') { + e.preventDefault(); + onItemClick(item, i); + } else if (isActionItem(item)) { + e.preventDefault(); + item.action(); + } + }, + [handleClose, onItemClick, items], + ); + const handleClick = useCallback( (e: React.MouseEvent | React.KeyboardEvent) => { const { type } = e; @@ -374,7 +396,7 @@ export const Dropdown = ({ modalProps: { status, actions: items, - onClick: onItemClick, + onClick: handleItemClick, }, }), ); @@ -394,7 +416,7 @@ export const Dropdown = ({ currentId, scrollKey, onOpen, - onItemClick, + handleItemClick, open, status, items, @@ -434,28 +456,6 @@ export const Dropdown = ({ [handleClick], ); - const handleItemClick = useCallback( - (e: React.MouseEvent | React.KeyboardEvent) => { - const i = Number(e.currentTarget.getAttribute('data-index')); - const item = items?.[i]; - - handleClose(); - - if (!item) { - return; - } - - if (typeof onItemClick === 'function') { - e.preventDefault(); - onItemClick(item, i); - } else if (isActionItem(item)) { - e.preventDefault(); - item.action(); - } - }, - [handleClose, onItemClick, items], - ); - useEffect(() => { return () => { if (currentId === openDropdownId) { diff --git a/app/javascript/mastodon/components/hashtag.tsx b/app/javascript/mastodon/components/hashtag.tsx index 1fe41e1e8b..346c95183f 100644 --- a/app/javascript/mastodon/components/hashtag.tsx +++ b/app/javascript/mastodon/components/hashtag.tsx @@ -102,7 +102,7 @@ export interface HashtagProps { description?: React.ReactNode; history?: number[]; name: string; - people: number; + people?: number; to: string; uses?: number; withGraph?: boolean; diff --git a/app/javascript/mastodon/components/navigation_portal.tsx b/app/javascript/mastodon/components/navigation_portal.tsx index 08f91ce18a..d3ac8baa6e 100644 --- a/app/javascript/mastodon/components/navigation_portal.tsx +++ b/app/javascript/mastodon/components/navigation_portal.tsx @@ -1,25 +1,6 @@ -import { Switch, Route } from 'react-router-dom'; - -import AccountNavigation from 'mastodon/features/account/navigation'; import Trends from 'mastodon/features/getting_started/containers/trends_container'; import { showTrends } from 'mastodon/initial_state'; -const DefaultNavigation: React.FC = () => (showTrends ? : null); - export const NavigationPortal: React.FC = () => ( -
- - - - - - - - - -
+
{showTrends && }
); diff --git a/app/javascript/mastodon/components/remote_hint.tsx b/app/javascript/mastodon/components/remote_hint.tsx new file mode 100644 index 0000000000..772aa805db --- /dev/null +++ b/app/javascript/mastodon/components/remote_hint.tsx @@ -0,0 +1,43 @@ +import { FormattedMessage } from 'react-intl'; + +import { useAppSelector } from 'mastodon/store'; + +import { TimelineHint } from './timeline_hint'; + +interface RemoteHintProps { + accountId?: string; +} + +export const RemoteHint: React.FC = ({ accountId }) => { + const account = useAppSelector((state) => + accountId ? state.accounts.get(accountId) : undefined, + ); + const domain = account?.acct ? account.acct.split('@')[1] : undefined; + if ( + !account || + !account.url || + account.acct !== account.username || + !domain + ) { + return null; + } + + return ( + + } + label={ + {domain} }} + /> + } + /> + ); +}; diff --git a/app/javascript/mastodon/components/status_action_bar.jsx b/app/javascript/mastodon/components/status_action_bar.jsx index 344524f8be..25116d19b0 100644 --- a/app/javascript/mastodon/components/status_action_bar.jsx +++ b/app/javascript/mastodon/components/status_action_bar.jsx @@ -274,10 +274,9 @@ class StatusActionBar extends ImmutablePureComponent { if (writtenByMe && pinnableStatus) { menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick }); + menu.push(null); } - menu.push(null); - if (writtenByMe || withDismiss) { menu.push({ text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), action: this.handleConversationMuteClick }); menu.push(null); diff --git a/app/javascript/mastodon/features/account/components/featured_tags.jsx b/app/javascript/mastodon/features/account/components/featured_tags.jsx deleted file mode 100644 index 56a9efac02..0000000000 --- a/app/javascript/mastodon/features/account/components/featured_tags.jsx +++ /dev/null @@ -1,51 +0,0 @@ -import PropTypes from 'prop-types'; - -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; - -import ImmutablePropTypes from 'react-immutable-proptypes'; -import ImmutablePureComponent from 'react-immutable-pure-component'; - -import { Hashtag } from 'mastodon/components/hashtag'; - -const messages = defineMessages({ - lastStatusAt: { id: 'account.featured_tags.last_status_at', defaultMessage: 'Last post on {date}' }, - empty: { id: 'account.featured_tags.last_status_never', defaultMessage: 'No posts' }, -}); - -class FeaturedTags extends ImmutablePureComponent { - - static propTypes = { - account: ImmutablePropTypes.record, - featuredTags: ImmutablePropTypes.list, - tagged: PropTypes.string, - intl: PropTypes.object.isRequired, - }; - - render () { - const { account, featuredTags, intl } = this.props; - - if (!account || account.get('suspended') || featuredTags.isEmpty()) { - return null; - } - - return ( -
-

}} />

- - {featuredTags.take(3).map(featuredTag => ( - 0) ? intl.formatMessage(messages.lastStatusAt, { date: intl.formatDate(featuredTag.get('last_status_at'), { month: 'short', day: '2-digit' }) }) : intl.formatMessage(messages.empty)} - /> - ))} -
- ); - } - -} - -export default injectIntl(FeaturedTags); diff --git a/app/javascript/mastodon/features/account/containers/featured_tags_container.js b/app/javascript/mastodon/features/account/containers/featured_tags_container.js deleted file mode 100644 index 726c805f78..0000000000 --- a/app/javascript/mastodon/features/account/containers/featured_tags_container.js +++ /dev/null @@ -1,17 +0,0 @@ -import { List as ImmutableList } from 'immutable'; -import { connect } from 'react-redux'; - -import { makeGetAccount } from 'mastodon/selectors'; - -import FeaturedTags from '../components/featured_tags'; - -const mapStateToProps = () => { - const getAccount = makeGetAccount(); - - return (state, { accountId }) => ({ - account: getAccount(state, accountId), - featuredTags: state.getIn(['user_lists', 'featured_tags', accountId, 'items'], ImmutableList()), - }); -}; - -export default connect(mapStateToProps)(FeaturedTags); diff --git a/app/javascript/mastodon/features/account/navigation.jsx b/app/javascript/mastodon/features/account/navigation.jsx deleted file mode 100644 index aa78135de2..0000000000 --- a/app/javascript/mastodon/features/account/navigation.jsx +++ /dev/null @@ -1,52 +0,0 @@ -import PropTypes from 'prop-types'; -import { PureComponent } from 'react'; - -import { connect } from 'react-redux'; - -import FeaturedTags from 'mastodon/features/account/containers/featured_tags_container'; -import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; - -const mapStateToProps = (state, { match: { params: { acct } } }) => { - const accountId = state.getIn(['accounts_map', normalizeForLookup(acct)]); - - if (!accountId) { - return { - isLoading: true, - }; - } - - return { - accountId, - isLoading: false, - }; -}; - -class AccountNavigation extends PureComponent { - - static propTypes = { - match: PropTypes.shape({ - params: PropTypes.shape({ - acct: PropTypes.string, - tagged: PropTypes.string, - }).isRequired, - }).isRequired, - - accountId: PropTypes.string, - isLoading: PropTypes.bool, - }; - - render () { - const { accountId, isLoading, match: { params: { tagged } } } = this.props; - - if (isLoading) { - return null; - } - - return ( - - ); - } - -} - -export default connect(mapStateToProps)(AccountNavigation); diff --git a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx new file mode 100644 index 0000000000..9dd8ffdfe0 --- /dev/null +++ b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx @@ -0,0 +1,50 @@ +import { FormattedMessage } from 'react-intl'; + +import { LimitedAccountHint } from 'mastodon/features/account_timeline/components/limited_account_hint'; + +interface EmptyMessageProps { + suspended: boolean; + hidden: boolean; + blockedBy: boolean; + accountId?: string; +} + +export const EmptyMessage: React.FC = ({ + accountId, + suspended, + hidden, + blockedBy, +}) => { + if (!accountId) { + return null; + } + + let message: React.ReactNode = null; + + if (suspended) { + message = ( + + ); + } else if (hidden) { + message = ; + } else if (blockedBy) { + message = ( + + ); + } else { + message = ( + + ); + } + + return
{message}
; +}; diff --git a/app/javascript/mastodon/features/account_featured/components/featured_tag.tsx b/app/javascript/mastodon/features/account_featured/components/featured_tag.tsx new file mode 100644 index 0000000000..7b476ba01d --- /dev/null +++ b/app/javascript/mastodon/features/account_featured/components/featured_tag.tsx @@ -0,0 +1,51 @@ +import { defineMessages, useIntl } from 'react-intl'; + +import type { Map as ImmutableMap } from 'immutable'; + +import { Hashtag } from 'mastodon/components/hashtag'; + +export type TagMap = ImmutableMap< + 'id' | 'name' | 'url' | 'statuses_count' | 'last_status_at' | 'accountId', + string | null +>; + +interface FeaturedTagProps { + tag: TagMap; + account: string; +} + +const messages = defineMessages({ + lastStatusAt: { + id: 'account.featured_tags.last_status_at', + defaultMessage: 'Last post on {date}', + }, + empty: { + id: 'account.featured_tags.last_status_never', + defaultMessage: 'No posts', + }, +}); + +export const FeaturedTag: React.FC = ({ tag, account }) => { + const intl = useIntl(); + const name = tag.get('name') ?? ''; + const count = Number.parseInt(tag.get('statuses_count') ?? ''); + return ( + 0 + ? intl.formatMessage(messages.lastStatusAt, { + date: intl.formatDate(tag.get('last_status_at') ?? '', { + month: 'short', + day: '2-digit', + }), + }) + : intl.formatMessage(messages.empty) + } + /> + ); +}; diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx new file mode 100644 index 0000000000..70e411f61a --- /dev/null +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -0,0 +1,156 @@ +import { useEffect } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import { useParams } from 'react-router'; + +import type { Map as ImmutableMap } from 'immutable'; +import { List as ImmutableList } from 'immutable'; + +import { fetchFeaturedTags } from 'mastodon/actions/featured_tags'; +import { expandAccountFeaturedTimeline } from 'mastodon/actions/timelines'; +import { ColumnBackButton } from 'mastodon/components/column_back_button'; +import { LoadingIndicator } from 'mastodon/components/loading_indicator'; +import { RemoteHint } from 'mastodon/components/remote_hint'; +import StatusContainer from 'mastodon/containers/status_container'; +import { useAccountId } from 'mastodon/hooks/useAccountId'; +import { useAccountVisibility } from 'mastodon/hooks/useAccountVisibility'; +import { useAppDispatch, useAppSelector } from 'mastodon/store'; + +import { AccountHeader } from '../account_timeline/components/account_header'; +import Column from '../ui/components/column'; + +import { EmptyMessage } from './components/empty_message'; +import { FeaturedTag } from './components/featured_tag'; +import type { TagMap } from './components/featured_tag'; + +interface Params { + acct?: string; + id?: string; +} + +const AccountFeatured = () => { + const accountId = useAccountId(); + const { suspended, blockedBy, hidden } = useAccountVisibility(accountId); + const forceEmptyState = suspended || blockedBy || hidden; + const { acct = '' } = useParams(); + + const dispatch = useAppDispatch(); + + useEffect(() => { + if (accountId) { + void dispatch(expandAccountFeaturedTimeline(accountId)); + dispatch(fetchFeaturedTags(accountId)); + } + }, [accountId, dispatch]); + + const isLoading = useAppSelector( + (state) => + !accountId || + !!(state.timelines as ImmutableMap).getIn([ + `account:${accountId}:pinned`, + 'isLoading', + ]) || + !!state.user_lists.getIn(['featured_tags', accountId, 'isLoading']), + ); + const featuredTags = useAppSelector( + (state) => + state.user_lists.getIn( + ['featured_tags', accountId, 'items'], + ImmutableList(), + ) as ImmutableList, + ); + const featuredStatusIds = useAppSelector( + (state) => + (state.timelines as ImmutableMap).getIn( + [`account:${accountId}:pinned`, 'items'], + ImmutableList(), + ) as ImmutableList, + ); + + if (isLoading) { + return ( + +
+ +
+
+ ); + } + + if (featuredStatusIds.isEmpty() && featuredTags.isEmpty()) { + return ( + + + ); + } + + return ( + + + +
+ {accountId && ( + + )} + {!featuredTags.isEmpty() && ( + <> +

+ +

+ {featuredTags.map((tag) => ( + + ))} + + )} + {!featuredStatusIds.isEmpty() && ( + <> +

+ +

+ {featuredStatusIds.map((statusId) => ( + + ))} + + )} + +
+
+ ); +}; + +const AccountFeaturedWrapper = ({ + children, + accountId, +}: React.PropsWithChildren<{ accountId?: string }>) => { + return ( + + +
+ {accountId && } + {children} +
+
+ ); +}; + +// eslint-disable-next-line import/no-default-export +export default AccountFeatured; diff --git a/app/javascript/mastodon/features/account_gallery/index.tsx b/app/javascript/mastodon/features/account_gallery/index.tsx index 60afdadc81..0027329c93 100644 --- a/app/javascript/mastodon/features/account_gallery/index.tsx +++ b/app/javascript/mastodon/features/account_gallery/index.tsx @@ -2,25 +2,22 @@ import { useEffect, useCallback } from 'react'; import { FormattedMessage } from 'react-intl'; -import { useParams } from 'react-router-dom'; - import { createSelector } from '@reduxjs/toolkit'; import type { Map as ImmutableMap } from 'immutable'; import { List as ImmutableList } from 'immutable'; -import { lookupAccount, fetchAccount } from 'mastodon/actions/accounts'; import { openModal } from 'mastodon/actions/modal'; import { expandAccountMediaTimeline } from 'mastodon/actions/timelines'; import { ColumnBackButton } from 'mastodon/components/column_back_button'; +import { RemoteHint } from 'mastodon/components/remote_hint'; import ScrollableList from 'mastodon/components/scrollable_list'; -import { TimelineHint } from 'mastodon/components/timeline_hint'; import { AccountHeader } from 'mastodon/features/account_timeline/components/account_header'; import { LimitedAccountHint } from 'mastodon/features/account_timeline/components/limited_account_hint'; import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error'; import Column from 'mastodon/features/ui/components/column'; +import { useAccountId } from 'mastodon/hooks/useAccountId'; +import { useAccountVisibility } from 'mastodon/hooks/useAccountVisibility'; import type { MediaAttachment } from 'mastodon/models/media_attachment'; -import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; -import { getAccountHidden } from 'mastodon/selectors/accounts'; import type { RootState } from 'mastodon/store'; import { useAppSelector, useAppDispatch } from 'mastodon/store'; @@ -56,53 +53,11 @@ const getAccountGallery = createSelector( }, ); -interface Params { - acct?: string; - id?: string; -} - -const RemoteHint: React.FC<{ - accountId: string; -}> = ({ accountId }) => { - const account = useAppSelector((state) => state.accounts.get(accountId)); - const acct = account?.acct; - const url = account?.url; - const domain = acct ? acct.split('@')[1] : undefined; - - if (!url) { - return null; - } - - return ( - - } - label={ - {domain} }} - /> - } - /> - ); -}; - export const AccountGallery: React.FC<{ multiColumn: boolean; }> = ({ multiColumn }) => { - const { acct, id } = useParams(); const dispatch = useAppDispatch(); - const accountId = useAppSelector( - (state) => - id ?? - (state.accounts_map.get(normalizeForLookup(acct)) as string | undefined), - ); + const accountId = useAccountId(); const attachments = useAppSelector((state) => accountId ? getAccountGallery(state, accountId) @@ -123,33 +78,15 @@ export const AccountGallery: React.FC<{ const account = useAppSelector((state) => accountId ? state.accounts.get(accountId) : undefined, ); - const blockedBy = useAppSelector( - (state) => - state.relationships.getIn([accountId, 'blocked_by'], false) as boolean, - ); - const suspended = useAppSelector( - (state) => state.accounts.getIn([accountId, 'suspended'], false) as boolean, - ); const isAccount = !!account; - const remote = account?.acct !== account?.username; - const hidden = useAppSelector((state) => - accountId ? getAccountHidden(state, accountId) : false, - ); + + const { suspended, blockedBy, hidden } = useAccountVisibility(accountId); + const maxId = attachments.last()?.getIn(['status', 'id']) as | string | undefined; useEffect(() => { - if (!accountId) { - dispatch(lookupAccount(acct)); - } - }, [dispatch, accountId, acct]); - - useEffect(() => { - if (accountId && !isAccount) { - dispatch(fetchAccount(accountId)); - } - if (accountId && isAccount) { void dispatch(expandAccountMediaTimeline(accountId)); } @@ -233,7 +170,7 @@ export const AccountGallery: React.FC<{ defaultMessage='Profile unavailable' /> ); - } else if (remote && attachments.isEmpty()) { + } else if (attachments.isEmpty()) { emptyMessage = ; } else { emptyMessage = ( @@ -259,7 +196,7 @@ export const AccountGallery: React.FC<{ ) } alwaysPrepend - append={remote && accountId && } + append={accountId && } scrollKey='account_gallery' isLoading={isLoading} hasMore={!forceEmptyState && hasMore} diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index ca12834528..c8fb3d2ae7 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -956,6 +956,9 @@ export const AccountHeader: React.FC<{ {!(hideTabs || hidden) && (
+ + + diff --git a/app/javascript/mastodon/features/account_timeline/index.jsx b/app/javascript/mastodon/features/account_timeline/index.jsx index 886191e668..a5223275b3 100644 --- a/app/javascript/mastodon/features/account_timeline/index.jsx +++ b/app/javascript/mastodon/features/account_timeline/index.jsx @@ -7,12 +7,10 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { connect } from 'react-redux'; -import { TimelineHint } from 'mastodon/components/timeline_hint'; import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error'; import { me } from 'mastodon/initial_state'; import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; import { getAccountHidden } from 'mastodon/selectors/accounts'; -import { useAppSelector } from 'mastodon/store'; import { lookupAccount, fetchAccount } from '../../actions/accounts'; import { fetchFeaturedTags } from '../../actions/featured_tags'; @@ -21,6 +19,7 @@ import { ColumnBackButton } from '../../components/column_back_button'; import { LoadingIndicator } from '../../components/loading_indicator'; import StatusList from '../../components/status_list'; import Column from '../ui/components/column'; +import { RemoteHint } from 'mastodon/components/remote_hint'; import { AccountHeader } from './components/account_header'; import { LimitedAccountHint } from './components/limited_account_hint'; @@ -47,11 +46,8 @@ const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = fa return { accountId, - remote: !!(state.getIn(['accounts', accountId, 'acct']) !== state.getIn(['accounts', accountId, 'username'])), - remoteUrl: state.getIn(['accounts', accountId, 'url']), isAccount: !!state.getIn(['accounts', accountId]), statusIds: state.getIn(['timelines', `account:${path}`, 'items'], emptyList), - featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned${tagged ? `:${tagged}` : ''}`, 'items'], emptyList), isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']), hasMore: state.getIn(['timelines', `account:${path}`, 'hasMore']), suspended: state.getIn(['accounts', accountId, 'suspended'], false), @@ -60,24 +56,6 @@ const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = fa }; }; -const RemoteHint = ({ accountId, url }) => { - const acct = useAppSelector(state => state.accounts.get(accountId)?.acct); - const domain = acct ? acct.split('@')[1] : undefined; - - return ( - } - label={{domain} }} />} - /> - ); -}; - -RemoteHint.propTypes = { - url: PropTypes.string.isRequired, - accountId: PropTypes.string.isRequired, -}; - class AccountTimeline extends ImmutablePureComponent { static propTypes = { @@ -89,7 +67,6 @@ class AccountTimeline extends ImmutablePureComponent { accountId: PropTypes.string, dispatch: PropTypes.func.isRequired, statusIds: ImmutablePropTypes.list, - featuredStatusIds: ImmutablePropTypes.list, isLoading: PropTypes.bool, hasMore: PropTypes.bool, withReplies: PropTypes.bool, @@ -97,8 +74,6 @@ class AccountTimeline extends ImmutablePureComponent { isAccount: PropTypes.bool, suspended: PropTypes.bool, hidden: PropTypes.bool, - remote: PropTypes.bool, - remoteUrl: PropTypes.string, multiColumn: PropTypes.bool, }; @@ -161,7 +136,7 @@ class AccountTimeline extends ImmutablePureComponent { }; render () { - const { accountId, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props; + const { accountId, statusIds, isLoading, hasMore, blockedBy, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props; if (isLoading && statusIds.isEmpty()) { return ( @@ -191,8 +166,6 @@ class AccountTimeline extends ImmutablePureComponent { emptyMessage = ; } - const remoteMessage = remote ? : null; - return ( @@ -200,10 +173,9 @@ class AccountTimeline extends ImmutablePureComponent { } alwaysPrepend - append={remoteMessage} + append={} scrollKey='account_timeline' statusIds={forceEmptyState ? emptyList : statusIds} - featuredStatusIds={featuredStatusIds} isLoading={isLoading} hasMore={!forceEmptyState && hasMore} onLoadMore={this.handleLoadMore} diff --git a/app/javascript/mastodon/features/notifications/components/notification_request.jsx b/app/javascript/mastodon/features/notifications/components/notification_request.jsx index 9c9365d088..381bb1153f 100644 --- a/app/javascript/mastodon/features/notifications/components/notification_request.jsx +++ b/app/javascript/mastodon/features/notifications/components/notification_request.jsx @@ -105,11 +105,10 @@ export const NotificationRequest = ({ id, accountId, notificationsCount, checked
-
diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx index a1cb8212d2..bb9720c17f 100644 --- a/app/javascript/mastodon/features/ui/index.jsx +++ b/app/javascript/mastodon/features/ui/index.jsx @@ -73,6 +73,7 @@ import { About, PrivacyPolicy, TermsOfService, + AccountFeatured, } from './util/async-components'; import { ColumnsContextProvider } from './util/columns_context'; import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers'; @@ -236,6 +237,7 @@ class SwitchingColumnsArea extends PureComponent { + diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js index 8c3b342778..ec493ae283 100644 --- a/app/javascript/mastodon/features/ui/util/async-components.js +++ b/app/javascript/mastodon/features/ui/util/async-components.js @@ -66,6 +66,10 @@ export function AccountGallery () { return import(/* webpackChunkName: "features/account_gallery" */'../../account_gallery'); } +export function AccountFeatured() { + return import(/* webpackChunkName: "features/account_featured" */'../../account_featured'); +} + export function Followers () { return import(/* webpackChunkName: "features/followers" */'../../followers'); } diff --git a/app/javascript/mastodon/hooks/useAccountId.ts b/app/javascript/mastodon/hooks/useAccountId.ts new file mode 100644 index 0000000000..1cc819ca59 --- /dev/null +++ b/app/javascript/mastodon/hooks/useAccountId.ts @@ -0,0 +1,37 @@ +import { useEffect } from 'react'; + +import { useParams } from 'react-router'; + +import { fetchAccount, lookupAccount } from 'mastodon/actions/accounts'; +import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; +import { useAppDispatch, useAppSelector } from 'mastodon/store'; + +interface Params { + acct?: string; + id?: string; +} + +export function useAccountId() { + const { acct, id } = useParams(); + const accountId = useAppSelector( + (state) => + id ?? + (state.accounts_map.get(normalizeForLookup(acct)) as string | undefined), + ); + + const account = useAppSelector((state) => + accountId ? state.accounts.get(accountId) : undefined, + ); + const isAccount = !!account; + + const dispatch = useAppDispatch(); + useEffect(() => { + if (!accountId) { + dispatch(lookupAccount(acct)); + } else if (!isAccount) { + dispatch(fetchAccount(accountId)); + } + }, [dispatch, accountId, acct, isAccount]); + + return accountId; +} diff --git a/app/javascript/mastodon/hooks/useAccountVisibility.ts b/app/javascript/mastodon/hooks/useAccountVisibility.ts new file mode 100644 index 0000000000..55651af5a0 --- /dev/null +++ b/app/javascript/mastodon/hooks/useAccountVisibility.ts @@ -0,0 +1,20 @@ +import { getAccountHidden } from 'mastodon/selectors/accounts'; +import { useAppSelector } from 'mastodon/store'; + +export function useAccountVisibility(accountId?: string) { + const blockedBy = useAppSelector( + (state) => !!state.relationships.getIn([accountId, 'blocked_by'], false), + ); + const suspended = useAppSelector( + (state) => !!state.accounts.getIn([accountId, 'suspended'], false), + ); + const hidden = useAppSelector((state) => + accountId ? Boolean(getAccountHidden(state, accountId)) : false, + ); + + return { + blockedBy, + suspended, + hidden, + }; +} diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index 605c86f73e..49b6f41eac 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -25,7 +25,6 @@ "account.endorse": "Amostrar en perfil", "account.featured_tags.last_status_at": "Zaguera publicación lo {date}", "account.featured_tags.last_status_never": "Sin publicacions", - "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Encara no sigue dengún a este usuario.", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index fc8e559dfc..326dd8fbc5 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -29,7 +29,6 @@ "account.endorse": "أوصِ به على صفحتك الشخصية", "account.featured_tags.last_status_at": "آخر منشور في {date}", "account.featured_tags.last_status_never": "لا توجد رسائل", - "account.featured_tags.title": "وسوم {name} المميَّزة", "account.follow": "متابعة", "account.follow_back": "تابعه بالمثل", "account.followers": "مُتابِعون", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index d43a0276dc..5edce9a4d8 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -27,7 +27,6 @@ "account.enable_notifications": "Avisame cuando @{name} espublice artículos", "account.endorse": "Destacar nel perfil", "account.featured_tags.last_status_never": "Nun hai nenguna publicación", - "account.featured_tags.title": "Etiquetes destacaes de: {name}", "account.follow": "Siguir", "account.follow_back": "Siguir tamién", "account.followers": "Siguidores", diff --git a/app/javascript/mastodon/locales/az.json b/app/javascript/mastodon/locales/az.json index 6a52c706b4..550312f31d 100644 --- a/app/javascript/mastodon/locales/az.json +++ b/app/javascript/mastodon/locales/az.json @@ -29,7 +29,6 @@ "account.endorse": "Profildə seçilmişlərə əlavə et", "account.featured_tags.last_status_at": "Son paylaşım {date} tarixində olub", "account.featured_tags.last_status_never": "Paylaşım yoxdur", - "account.featured_tags.title": "{name} istifadəçisinin seçilmiş heşteqləri", "account.follow": "İzlə", "account.follow_back": "Sən də izlə", "account.followers": "İzləyicilər", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 6c6e10270f..9011fdfd63 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -29,7 +29,6 @@ "account.endorse": "Паказваць у профілі", "account.featured_tags.last_status_at": "Апошні допіс ад {date}", "account.featured_tags.last_status_never": "Няма допісаў", - "account.featured_tags.title": "Тэгі, выбраныя {name}", "account.follow": "Падпісацца", "account.follow_back": "Падпісацца ў адказ", "account.followers": "Падпісчыкі", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index bf5a5b1016..5c032755ff 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -29,7 +29,6 @@ "account.endorse": "Представи в профила", "account.featured_tags.last_status_at": "Последна публикация на {date}", "account.featured_tags.last_status_never": "Няма публикации", - "account.featured_tags.title": "Главни хаштагове на {name}", "account.follow": "Последване", "account.follow_back": "Последване взаимно", "account.followers": "Последователи", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index ed2b06289f..ec0f4eb447 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -29,7 +29,6 @@ "account.endorse": "প্রোফাইলে ফিচার করুন", "account.featured_tags.last_status_at": "{date} এ সর্বশেষ পোস্ট", "account.featured_tags.last_status_never": "কোনো পোস্ট নেই", - "account.featured_tags.title": "{name} এর ফিচার করা Hashtag সমূহ", "account.follow": "অনুসরণ", "account.follow_back": "তাকে অনুসরণ করো", "account.followers": "অনুসরণকারী", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index fad38721b0..51e3723d19 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -28,7 +28,6 @@ "account.endorse": "Lakaat war-wel war ar profil", "account.featured_tags.last_status_at": "Toud diwezhañ : {date}", "account.featured_tags.last_status_never": "Embannadur ebet", - "account.featured_tags.title": "Hashtagoù pennañ {name}", "account.follow": "Heuliañ", "account.follow_back": "Heuliañ d'ho tro", "account.followers": "Tud koumanantet", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index a282796a50..d6ebbbc1d8 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -29,7 +29,6 @@ "account.endorse": "Recomana en el perfil", "account.featured_tags.last_status_at": "Darrer tut el {date}", "account.featured_tags.last_status_never": "No hi ha tuts", - "account.featured_tags.title": "etiquetes destacades de {name}", "account.follow": "Segueix", "account.follow_back": "Segueix tu també", "account.followers": "Seguidors", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 765eacd080..31f2dbbc11 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -28,7 +28,6 @@ "account.endorse": "ناساندن لە پرۆفایل", "account.featured_tags.last_status_at": "دوایین پۆست لە {date}", "account.featured_tags.last_status_never": "هیچ پۆستێک نییە", - "account.featured_tags.title": "هاشتاگە تایبەتەکانی {name}", "account.follow": "بەدواداچوون", "account.follow_back": "فۆڵۆو بکەنەوە", "account.followers": "شوێنکەوتووان", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 503dc7714d..25657f9cbf 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -29,7 +29,6 @@ "account.endorse": "Zvýraznit na profilu", "account.featured_tags.last_status_at": "Poslední příspěvek {date}", "account.featured_tags.last_status_never": "Žádné příspěvky", - "account.featured_tags.title": "Hlavní hashtagy uživatele {name}", "account.follow": "Sledovat", "account.follow_back": "Také sledovat", "account.followers": "Sledující", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 27ecc6e8eb..3bf10be7fb 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -27,9 +27,11 @@ "account.edit_profile": "Golygu proffil", "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio", "account.endorse": "Dangos ar fy mhroffil", + "account.featured": "Dethol", + "account.featured.hashtags": "Hashnodau", + "account.featured.posts": "Postiadau", "account.featured_tags.last_status_at": "Y postiad olaf ar {date}", "account.featured_tags.last_status_never": "Dim postiadau", - "account.featured_tags.title": "Prif hashnodau {name}", "account.follow": "Dilyn", "account.follow_back": "Dilyn nôl", "account.followers": "Dilynwyr", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Canlyniadau chwilio", "emoji_button.symbols": "Symbolau", "emoji_button.travel": "Teithio a Llefydd", + "empty_column.account_featured": "Mae'r rhestr hon yn wag", "empty_column.account_hides_collections": "Mae'r defnyddiwr wedi dewis i beidio rhannu'r wybodaeth yma", "empty_column.account_suspended": "Cyfrif wedi'i atal", "empty_column.account_timeline": "Dim postiadau yma!", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index d8695c194c..b72e40eaf7 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -27,9 +27,11 @@ "account.edit_profile": "Redigér profil", "account.enable_notifications": "Advisér mig, når @{name} poster", "account.endorse": "Fremhæv på profil", + "account.featured": "Fremhævet", + "account.featured.hashtags": "Hashtags", + "account.featured.posts": "Indlæg", "account.featured_tags.last_status_at": "Seneste indlæg {date}", "account.featured_tags.last_status_never": "Ingen indlæg", - "account.featured_tags.title": "{name}s fremhævede etiketter", "account.follow": "Følg", "account.follow_back": "Følg tilbage", "account.followers": "Følgere", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Søgeresultater", "emoji_button.symbols": "Symboler", "emoji_button.travel": "Rejser og steder", + "empty_column.account_featured": "Denne liste er tom", "empty_column.account_hides_collections": "Brugeren har valgt ikke at gøre denne information tilgængelig", "empty_column.account_suspended": "Konto suspenderet", "empty_column.account_timeline": "Ingen indlæg her!", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 6a14858d11..943c5ae8b2 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -27,9 +27,11 @@ "account.edit_profile": "Profil bearbeiten", "account.enable_notifications": "Benachrichtige mich wenn @{name} etwas postet", "account.endorse": "Im Profil empfehlen", + "account.featured": "Empfohlen", + "account.featured.hashtags": "Hashtags", + "account.featured.posts": "Beiträge", "account.featured_tags.last_status_at": "Letzter Beitrag am {date}", "account.featured_tags.last_status_never": "Keine Beiträge", - "account.featured_tags.title": "Von {name} vorgestellte Hashtags", "account.follow": "Folgen", "account.follow_back": "Ebenfalls folgen", "account.followers": "Follower", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Suchergebnisse", "emoji_button.symbols": "Symbole", "emoji_button.travel": "Reisen & Orte", + "empty_column.account_featured": "Diese Liste ist leer", "empty_column.account_hides_collections": "Das Konto hat sich dazu entschieden, diese Information nicht zu veröffentlichen", "empty_column.account_suspended": "Konto gesperrt", "empty_column.account_timeline": "Keine Beiträge vorhanden!", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 1918c4371e..0b9e42cbe9 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -29,7 +29,6 @@ "account.endorse": "Προβολή στο προφίλ", "account.featured_tags.last_status_at": "Τελευταία ανάρτηση στις {date}", "account.featured_tags.last_status_never": "Καμία ανάρτηση", - "account.featured_tags.title": "προβεβλημένες ετικέτες του/της {name}", "account.follow": "Ακολούθησε", "account.follow_back": "Ακολούθησε και εσύ", "account.followers": "Ακόλουθοι", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 2f461cd19d..b46d02baa9 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -29,7 +29,6 @@ "account.endorse": "Feature on profile", "account.featured_tags.last_status_at": "Last post on {date}", "account.featured_tags.last_status_never": "No posts", - "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.follow_back": "Follow back", "account.followers": "Followers", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index ebd5412cf2..0a0f043b4d 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -27,9 +27,11 @@ "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured": "Featured", + "account.featured.hashtags": "Hashtags", + "account.featured.posts": "Posts", "account.featured_tags.last_status_at": "Last post on {date}", "account.featured_tags.last_status_never": "No posts", - "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.follow_back": "Follow back", "account.followers": "Followers", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Search results", "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", + "empty_column.account_featured": "This list is empty", "empty_column.account_hides_collections": "This user has chosen to not make this information available", "empty_column.account_suspended": "Account suspended", "empty_column.account_timeline": "No posts here!", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 207fa5b955..1d360e59d7 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -27,9 +27,10 @@ "account.edit_profile": "Redakti la profilon", "account.enable_notifications": "Sciigu min kiam @{name} afiŝos", "account.endorse": "Prezenti ĉe via profilo", + "account.featured.hashtags": "Kradvortoj", + "account.featured.posts": "Afiŝoj", "account.featured_tags.last_status_at": "Lasta afîŝo je {date}", "account.featured_tags.last_status_never": "Neniu afiŝo", - "account.featured_tags.title": "Rekomendataj kradvortoj de {name}", "account.follow": "Sekvi", "account.follow_back": "Sekvu reen", "account.followers": "Sekvantoj", @@ -294,6 +295,7 @@ "emoji_button.search_results": "Serĉaj rezultoj", "emoji_button.symbols": "Simboloj", "emoji_button.travel": "Vojaĝoj kaj lokoj", + "empty_column.account_featured": "Ĉi tiu listo estas malplena", "empty_column.account_hides_collections": "Ĉi tiu uzanto elektis ne disponebligi ĉi tiu informon", "empty_column.account_suspended": "Konto suspendita", "empty_column.account_timeline": "Neniuj afiŝoj ĉi tie!", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 2eb96dd5bd..cc694ebfe7 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -27,9 +27,11 @@ "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} envíe mensajes", "account.endorse": "Destacar en el perfil", + "account.featured": "Destacados", + "account.featured.hashtags": "Etiquetas", + "account.featured.posts": "Mensajes", "account.featured_tags.last_status_at": "Último mensaje: {date}", "account.featured_tags.last_status_never": "Sin mensajes", - "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.follow_back": "Seguir", "account.followers": "Seguidores", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Resultados de búsqueda", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viajes y lugares", + "empty_column.account_featured": "Esta lista está vacía", "empty_column.account_hides_collections": "Este usuario eligió no publicar esta información", "empty_column.account_suspended": "Cuenta suspendida", "empty_column.account_timeline": "¡No hay mensajes acá!", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 929f962e6a..45b002ce0f 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -27,9 +27,11 @@ "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Destacar en mi perfil", + "account.featured": "Destacado", + "account.featured.hashtags": "Etiquetas", + "account.featured.posts": "Publicaciones", "account.featured_tags.last_status_at": "Última publicación el {date}", "account.featured_tags.last_status_never": "Sin publicaciones", - "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.follow_back": "Seguir también", "account.followers": "Seguidores", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Resultados de búsqueda", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viajes y lugares", + "empty_column.account_featured": "Esta lista está vacía", "empty_column.account_hides_collections": "Este usuario ha elegido no hacer disponible esta información", "empty_column.account_suspended": "Cuenta suspendida", "empty_column.account_timeline": "¡No hay publicaciones aquí!", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index be6a0f95ee..2575d901f5 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -27,9 +27,11 @@ "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Destacar en el perfil", + "account.featured": "Destacado", + "account.featured.hashtags": "Etiquetas", + "account.featured.posts": "Publicaciones", "account.featured_tags.last_status_at": "Última publicación el {date}", "account.featured_tags.last_status_never": "Sin publicaciones", - "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.follow_back": "Seguir también", "account.followers": "Seguidores", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Resultados de búsqueda", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viajes y lugares", + "empty_column.account_featured": "Esta lista está vacía", "empty_column.account_hides_collections": "Este usuario ha decidido no mostrar esta información", "empty_column.account_suspended": "Cuenta suspendida", "empty_column.account_timeline": "¡No hay publicaciones aquí!", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index d2fb81bee6..3e0610126e 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -29,7 +29,6 @@ "account.endorse": "Too profiilil esile", "account.featured_tags.last_status_at": "Viimane postitus {date}", "account.featured_tags.last_status_never": "Postitusi pole", - "account.featured_tags.title": "{name} esiletõstetud sildid", "account.follow": "Jälgi", "account.follow_back": "Jälgi vastu", "account.followers": "Jälgijad", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 5507e7f343..0c73c9f540 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -29,7 +29,6 @@ "account.endorse": "Nabarmendu profilean", "account.featured_tags.last_status_at": "Azken bidalketa {date} datan", "account.featured_tags.last_status_never": "Bidalketarik ez", - "account.featured_tags.title": "{name} erabiltzailearen nabarmendutako traolak", "account.follow": "Jarraitu", "account.follow_back": "Jarraitu bueltan", "account.followers": "Jarraitzaileak", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 27f0bf4e9a..3e31eb8a15 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -29,7 +29,6 @@ "account.endorse": "معرّفی در نمایه", "account.featured_tags.last_status_at": "آخرین فرسته در {date}", "account.featured_tags.last_status_never": "بدون فرسته", - "account.featured_tags.title": "برچسب‌های برگزیدهٔ {name}", "account.follow": "پی‌گرفتن", "account.follow_back": "دنبال کردن متقابل", "account.followers": "پی‌گیرندگان", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 53df277b70..b33e9f6163 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -27,9 +27,10 @@ "account.edit_profile": "Muokkaa profiilia", "account.enable_notifications": "Ilmoita minulle, kun @{name} julkaisee", "account.endorse": "Suosittele profiilissasi", + "account.featured.hashtags": "Aihetunnisteet", + "account.featured.posts": "Julkaisut", "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} suosittelemat aihetunnisteet", "account.follow": "Seuraa", "account.follow_back": "Seuraa takaisin", "account.followers": "Seuraajat", @@ -294,6 +295,7 @@ "emoji_button.search_results": "Hakutulokset", "emoji_button.symbols": "Symbolit", "emoji_button.travel": "Matkailu ja paikat", + "empty_column.account_featured": "Tämä lista on tyhjä", "empty_column.account_hides_collections": "Käyttäjä on päättänyt pitää nämä tiedot yksityisinä", "empty_column.account_suspended": "Tili jäädytetty", "empty_column.account_timeline": "Ei viestejä täällä.", diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index 4c33ac01a1..c13d0a8afe 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -29,7 +29,6 @@ "account.endorse": "I-tampok sa profile", "account.featured_tags.last_status_at": "Huling post noong {date}", "account.featured_tags.last_status_never": "Walang mga post", - "account.featured_tags.title": "Nakatampok na hashtag ni {name}", "account.follow": "Sundan", "account.follow_back": "Sundan pabalik", "account.followers": "Mga tagasunod", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 636d32729c..82939adcce 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -27,9 +27,11 @@ "account.edit_profile": "Broyt vanga", "account.enable_notifications": "Boða mær frá, tá @{name} skrivar", "account.endorse": "Víst á vangamyndini", + "account.featured": "Tikin fram", + "account.featured.hashtags": "Frámerki", + "account.featured.posts": "Postar", "account.featured_tags.last_status_at": "Seinasta strongur skrivaður {date}", "account.featured_tags.last_status_never": "Einki uppslag", - "account.featured_tags.title": "Tvíkrossar hjá {name}", "account.follow": "Fylg", "account.follow_back": "Fylg aftur", "account.followers": "Fylgjarar", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Leitiúrslit", "emoji_button.symbols": "Ímyndir", "emoji_button.travel": "Ferðing og støð", + "empty_column.account_featured": "Hesin listin er tómur", "empty_column.account_hides_collections": "Hesin brúkarin hevur valt, at hesar upplýsingarnar ikki skulu vera tøkar", "empty_column.account_suspended": "Kontan gjørd óvirkin", "empty_column.account_timeline": "Einki uppslag her!", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index dd497adbbb..ad71d98ff8 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -29,7 +29,6 @@ "account.endorse": "Inclure sur profil", "account.featured_tags.last_status_at": "Dernière publication {date}", "account.featured_tags.last_status_never": "Aucune publication", - "account.featured_tags.title": "Hashtags inclus de {name}", "account.follow": "Suivre", "account.follow_back": "Suivre en retour", "account.followers": "abonné·e·s", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 5b76cbfde6..de653eec8f 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -29,7 +29,6 @@ "account.endorse": "Recommander sur votre profil", "account.featured_tags.last_status_at": "Dernier message le {date}", "account.featured_tags.last_status_never": "Aucun message", - "account.featured_tags.title": "Les hashtags en vedette de {name}", "account.follow": "Suivre", "account.follow_back": "Suivre en retour", "account.followers": "Abonné·e·s", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 46da3ea09d..e3c3222868 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -29,7 +29,6 @@ "account.endorse": "Op profyl werjaan", "account.featured_tags.last_status_at": "Lêste berjocht op {date}", "account.featured_tags.last_status_never": "Gjin berjochten", - "account.featured_tags.title": "Utljochte hashtags fan {name}", "account.follow": "Folgje", "account.follow_back": "Weromfolgje", "account.followers": "Folgers", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index cd0d58da4a..5935b39e2d 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -29,7 +29,6 @@ "account.endorse": "Cuir ar an phróifíl mar ghné", "account.featured_tags.last_status_at": "Postáil is déanaí ar {date}", "account.featured_tags.last_status_never": "Gan aon phoist", - "account.featured_tags.title": "Haischlib faoi thrácht {name}", "account.follow": "Lean", "account.follow_back": "Leanúint ar ais", "account.followers": "Leantóirí", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 69aa5f69ef..f295db0b43 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -29,7 +29,6 @@ "account.endorse": "Brosnaich air a’ phròifil", "account.featured_tags.last_status_at": "Am post mu dheireadh {date}", "account.featured_tags.last_status_never": "Gun phost", - "account.featured_tags.title": "Na tagaichean hais brosnaichte aig {name}", "account.follow": "Lean", "account.follow_back": "Lean air ais", "account.followers": "Luchd-leantainn", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 6eb5457043..57e7b5ee5a 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -27,9 +27,11 @@ "account.edit_profile": "Editar perfil", "account.enable_notifications": "Noficarme cando @{name} publique", "account.endorse": "Amosar no perfil", + "account.featured": "Destacado", + "account.featured.hashtags": "Cancelos", + "account.featured.posts": "Publicacións", "account.featured_tags.last_status_at": "Última publicación o {date}", "account.featured_tags.last_status_never": "Sen publicacións", - "account.featured_tags.title": "Cancelos destacados de {name}", "account.follow": "Seguir", "account.follow_back": "Seguir tamén", "account.followers": "Seguidoras", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Resultados da procura", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viaxes e Lugares", + "empty_column.account_featured": "A lista está baleira", "empty_column.account_hides_collections": "A usuaria decideu non facer pública esta información", "empty_column.account_suspended": "Conta suspendida", "empty_column.account_timeline": "Non hai publicacións aquí!", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index f5c6e66f9b..89d36dc962 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -29,7 +29,6 @@ "account.endorse": "קדם את החשבון בפרופיל", "account.featured_tags.last_status_at": "חצרוץ אחרון בתאריך {date}", "account.featured_tags.last_status_never": "אין חצרוצים", - "account.featured_tags.title": "התגיות המועדפות של {name}", "account.follow": "לעקוב", "account.follow_back": "לעקוב בחזרה", "account.followers": "עוקבים", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 10c5356719..a3eec9544c 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -28,7 +28,6 @@ "account.endorse": "प्रोफ़ाइल पर दिखाए", "account.featured_tags.last_status_at": "{date} का अंतिम पोस्ट", "account.featured_tags.last_status_never": "कोई पोस्ट नहीं है", - "account.featured_tags.title": "{name} के चुनिंदा हैशटैग", "account.follow": "फॉलो करें", "account.follow_back": "फॉलो करें", "account.followers": "फॉलोवर", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 092647bd31..38807b28b2 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -28,7 +28,6 @@ "account.endorse": "Istakni na profilu", "account.featured_tags.last_status_at": "Zadnji post {date}", "account.featured_tags.last_status_never": "Nema postova", - "account.featured_tags.title": "Istaknuti hashtagovi {name}", "account.follow": "Prati", "account.follow_back": "Slijedi natrag", "account.followers": "Pratitelji", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 2caba889e3..826dca6137 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -27,9 +27,11 @@ "account.edit_profile": "Profil szerkesztése", "account.enable_notifications": "Figyelmeztessen, ha @{name} bejegyzést tesz közzé", "account.endorse": "Kiemelés a profilodon", + "account.featured": "Kiemelt", + "account.featured.hashtags": "Hashtagek", + "account.featured.posts": "Bejegyzések", "account.featured_tags.last_status_at": "Legutolsó bejegyzés ideje: {date}", "account.featured_tags.last_status_never": "Nincs bejegyzés", - "account.featured_tags.title": "{name} kiemelt hashtagjei", "account.follow": "Követés", "account.follow_back": "Viszontkövetés", "account.followers": "Követő", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Keresési találatok", "emoji_button.symbols": "Szimbólumok", "emoji_button.travel": "Utazás és helyek", + "empty_column.account_featured": "Ez a lista üres", "empty_column.account_hides_collections": "Ez a felhasználó úgy döntött, hogy nem teszi elérhetővé ezt az információt.", "empty_column.account_suspended": "Fiók felfüggesztve", "empty_column.account_timeline": "Itt nincs bejegyzés!", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index d4706dbf8c..7f4f66796e 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -29,7 +29,6 @@ "account.endorse": "Evidentiar sur le profilo", "account.featured_tags.last_status_at": "Ultime message publicate le {date}", "account.featured_tags.last_status_never": "Necun message", - "account.featured_tags.title": "Hashtags eminente de {name}", "account.follow": "Sequer", "account.follow_back": "Sequer in retorno", "account.followers": "Sequitores", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index f4724b6f4f..102e547d40 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -29,7 +29,6 @@ "account.endorse": "Tampilkan di profil", "account.featured_tags.last_status_at": "Kiriman terakhir pada {date}", "account.featured_tags.last_status_never": "Tidak ada kiriman", - "account.featured_tags.title": "Tagar {name} yang difiturkan", "account.follow": "Ikuti", "account.follow_back": "Ikuti balik", "account.followers": "Pengikut", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index ba5ad494ce..7cd463727f 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -28,7 +28,6 @@ "account.endorse": "Recomandar sur profil", "account.featured_tags.last_status_at": "Ultim posta ye {date}", "account.featured_tags.last_status_never": "Null postas", - "account.featured_tags.title": "Recomandat hashtags de {name}", "account.follow": "Sequer", "account.follow_back": "Sequer reciprocmen", "account.followers": "Sequitores", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 21723e10b8..596ca4c3fe 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -29,7 +29,6 @@ "account.endorse": "Traito di profilo", "account.featured_tags.last_status_at": "Antea posto ye {date}", "account.featured_tags.last_status_never": "Nula posti", - "account.featured_tags.title": "Ekstaca gretvorti di {name}", "account.follow": "Sequar", "account.follow_back": "Anke sequez", "account.followers": "Sequanti", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index db257927fc..5f956c71f6 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -27,9 +27,11 @@ "account.edit_profile": "Breyta notandasniði", "account.enable_notifications": "Láta mig vita þegar @{name} sendir inn", "account.endorse": "Birta á notandasniði", + "account.featured": "Með aukið vægi", + "account.featured.hashtags": "Myllumerki", + "account.featured.posts": "Færslur", "account.featured_tags.last_status_at": "Síðasta færsla þann {date}", "account.featured_tags.last_status_never": "Engar færslur", - "account.featured_tags.title": "Myllumerki hjá {name} með aukið vægi", "account.follow": "Fylgjast með", "account.follow_back": "Fylgjast með til baka", "account.followers": "Fylgjendur", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Leitarniðurstöður", "emoji_button.symbols": "Tákn", "emoji_button.travel": "Ferðalög og staðir", + "empty_column.account_featured": "Þessi listi er tómur", "empty_column.account_hides_collections": "Notandinn hefur valið að gera ekki tiltækar þessar upplýsingar", "empty_column.account_suspended": "Notandaaðgangur í frysti", "empty_column.account_timeline": "Engar færslur hér!", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 99cb78716f..36770c675f 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -27,9 +27,11 @@ "account.edit_profile": "Modifica profilo", "account.enable_notifications": "Avvisami quando @{name} pubblica un post", "account.endorse": "In evidenza sul profilo", + "account.featured": "In primo piano", + "account.featured.hashtags": "Hashtag", + "account.featured.posts": "Post", "account.featured_tags.last_status_at": "Ultimo post il {date}", "account.featured_tags.last_status_never": "Nessun post", - "account.featured_tags.title": "Hashtag in evidenza di {name}", "account.follow": "Segui", "account.follow_back": "Segui a tua volta", "account.followers": "Follower", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Risultati della ricerca", "emoji_button.symbols": "Simboli", "emoji_button.travel": "Viaggi & Luoghi", + "empty_column.account_featured": "Questa lista è vuota", "empty_column.account_hides_collections": "Questo utente ha scelto di non rendere disponibili queste informazioni", "empty_column.account_suspended": "Profilo sospeso", "empty_column.account_timeline": "Nessun post qui!", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index ab9a5ce64c..847c479b23 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -29,7 +29,6 @@ "account.endorse": "プロフィールで紹介する", "account.featured_tags.last_status_at": "最終投稿 {date}", "account.featured_tags.last_status_never": "投稿がありません", - "account.featured_tags.title": "{name}の注目ハッシュタグ", "account.follow": "フォロー", "account.follow_back": "フォローバック", "account.followers": "フォロワー", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 120e2415b5..adc3cdc230 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -25,7 +25,6 @@ "account.enable_notifications": "@{name} постары туралы ескерту", "account.endorse": "Профильде ұсыну", "account.featured_tags.last_status_never": "Пост жоқ", - "account.featured_tags.title": "{name} таңдаулы хэштегтері", "account.follow": "Жазылу", "account.followers": "Жазылушы", "account.followers.empty": "Бұл қолданушыға әлі ешкім жазылмаған.", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 76f94fb43f..be6e4be7e1 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -29,7 +29,6 @@ "account.endorse": "프로필에 추천하기", "account.featured_tags.last_status_at": "{date}에 마지막으로 게시", "account.featured_tags.last_status_never": "게시물 없음", - "account.featured_tags.title": "{name} 님의 추천 해시태그", "account.follow": "팔로우", "account.follow_back": "맞팔로우", "account.followers": "팔로워", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index f867908f37..23ee9fc932 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -29,7 +29,6 @@ "account.endorse": "Taybetiyên li ser profîl", "account.featured_tags.last_status_at": "Şandiya dawî di {date} de", "account.featured_tags.last_status_never": "Şandî tune ne", - "account.featured_tags.title": "{name}'s hashtagên taybet", "account.follow": "Bişopîne", "account.follow_back": "Bişopîne", "account.followers": "Şopîner", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index f422230cb8..c6e5d85c07 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -23,7 +23,6 @@ "account.domain_blocked": "Dominium impeditum", "account.edit_profile": "Recolere notionem", "account.featured_tags.last_status_never": "Nulla contributa", - "account.featured_tags.title": "Hashtag notātī {name}", "account.followers_counter": "{count, plural, one {{counter} sectator} other {{counter} sectatores}}", "account.following_counter": "{count, plural, one {{counter} sectans} other {{counter} sectans}}", "account.moved_to": "{name} significavit eum suam rationem novam nunc esse:", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index d9d941f8e8..f67ef676ad 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -29,7 +29,6 @@ "account.endorse": "Avalia en profil", "account.featured_tags.last_status_at": "Ultima publikasyon de {date}", "account.featured_tags.last_status_never": "No ay publikasyones", - "account.featured_tags.title": "Etiketas avaliadas de {name}", "account.follow": "Sige", "account.follow_back": "Sige tamyen", "account.followers": "Suivantes", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index f112bc73d9..7110e809c1 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -29,7 +29,6 @@ "account.endorse": "Rodyti profilyje", "account.featured_tags.last_status_at": "Paskutinis įrašas {date}", "account.featured_tags.last_status_never": "Nėra įrašų", - "account.featured_tags.title": "{name} rodomi saitažodžiai", "account.follow": "Sekti", "account.follow_back": "Sekti atgal", "account.followers": "Sekėjai", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 203b321574..27760c59ff 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -29,7 +29,6 @@ "account.endorse": "Izcelts profilā", "account.featured_tags.last_status_at": "Beidzamā ziņa {date}", "account.featured_tags.last_status_never": "Ierakstu nav", - "account.featured_tags.title": "{name} izceltie tēmturi", "account.follow": "Sekot", "account.follow_back": "Sekot atpakaļ", "account.followers": "Sekotāji", @@ -54,7 +53,7 @@ "account.muted": "Apklusināts", "account.mutual": "Abpusēji", "account.no_bio": "Apraksts nav sniegts.", - "account.open_original_page": "Atvērt oriģinālo lapu", + "account.open_original_page": "Atvērt pirmavota lapu", "account.posts": "Ieraksti", "account.posts_with_replies": "Ieraksti un atbildes", "account.report": "Sūdzēties par @{name}", @@ -214,7 +213,7 @@ "confirmations.missing_alt_text.secondary": "Vienalga iesūtīt", "confirmations.mute.confirm": "Apklusināt", "confirmations.redraft.confirm": "Dzēst un pārrakstīt", - "confirmations.redraft.message": "Vai tiešām vēlies dzēst šo ziņu un no jauna noformēt to? Izlase un pastiprinājumi tiks zaudēti, un atbildes uz sākotnējo ziņu tiks atstātas bez autoratlīdzības.", + "confirmations.redraft.message": "Vai tiešām vēlies izdzēst šo ierakstu un veidot jaunu tā uzmetumu? Pievienošana izlasēs un pastiprinājumi tiks zaudēti, un sākotnējā ieraksta atbildes paliks bez saiknes ar to.", "confirmations.redraft.title": "Dzēst un rakstīt vēlreiz?", "confirmations.reply.confirm": "Atbildēt", "confirmations.reply.message": "Tūlītēja atbildēšana pārrakstīs pašlaik sastādīto ziņu. Vai tiešām turpināt?", @@ -597,7 +596,7 @@ "report.close": "Darīts", "report.comment.title": "Vai, tavuprāt, mums vēl būtu kas jāzina?", "report.forward": "Pārsūtīt {target}", - "report.forward_hint": "Konts ir no cita servera. Vai nosūtīt anonimizētu sūdzības kopiju arī tam?", + "report.forward_hint": "Konts ir no cita servera. Vai nosūtīt anonimizētu ziņojuma kopiju arī tur?", "report.mute": "Apklusināt", "report.mute_explanation": "Tu neredzēsi viņu ierakstus. Viņi joprojām var Tev sekot un redzēt Tavus ierakstus un nezinās, ka viņi ir apklusināti.", "report.next": "Tālāk", @@ -692,7 +691,7 @@ "status.pinned": "Piesprausts ieraksts", "status.read_more": "Lasīt vairāk", "status.reblog": "Pastiprināt", - "status.reblog_private": "Pastiprināt, nemainot redzamību", + "status.reblog_private": "Pastiprināt ar sākotnējo redzamību", "status.reblogged_by": "{name} pastiprināja", "status.reblogs": "{count, plural, zero {pastiprinājumu} one {pastiprinājums} other {pastiprinājumi}}", "status.reblogs.empty": "Neviens šo ierakstu vēl nav pastiprinājis. Kad būs, tie parādīsies šeit.", @@ -706,7 +705,7 @@ "status.share": "Kopīgot", "status.show_less_all": "Rādīt mazāk visiem", "status.show_more_all": "Rādīt vairāk visiem", - "status.show_original": "Rādīt oriģinālu", + "status.show_original": "Rādīt pirmavotu", "status.title.with_attachments": "{user} publicējis {attachmentCount, plural, one {pielikumu} other {{attachmentCount} pielikumus}}", "status.translate": "Tulkot", "status.translated_from_with": "Tulkots no {lang} izmantojot {provider}", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 94f9aef261..919a34532f 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -28,7 +28,6 @@ "account.endorse": "प्रोफाइलवरील वैशिष्ट्य", "account.featured_tags.last_status_at": "शेवटचे पोस्ट {date} रोजी", "account.featured_tags.last_status_never": "पोस्ट नाहीत", - "account.featured_tags.title": "{name} चे वैशिष्ट्यीकृत हॅशटॅग", "account.follow": "अनुयायी व्हा", "account.follow_back": "आपणही अनुसरण करा", "account.followers": "अनुयायी", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index af80cc20cf..f6a34116e8 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -29,7 +29,6 @@ "account.endorse": "Tampilkan di profil", "account.featured_tags.last_status_at": "Hantaran terakhir pada {date}", "account.featured_tags.last_status_never": "Tiada hantaran", - "account.featured_tags.title": "Tanda pagar pilihan {name}", "account.follow": "Ikuti", "account.follow_back": "Ikut balik", "account.followers": "Pengikut", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 51cba22153..362537edeb 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -28,7 +28,6 @@ "account.endorse": "အကောင့်ပရိုဖိုင်တွင်ဖော်ပြပါ", "account.featured_tags.last_status_at": "နောက်ဆုံးပို့စ်ကို {date} တွင် တင်ခဲ့သည်။", "account.featured_tags.last_status_never": "ပို့စ်တင်ထားခြင်းမရှိပါ", - "account.featured_tags.title": "ဖော်ပြထားသောဟက်ရှ်တက်ခ်များ", "account.follow": "စောင့်ကြည့်", "account.followers": "စောင့်ကြည့်သူများ", "account.followers.empty": "ဤသူကို စောင့်ကြည့်သူ မရှိသေးပါ။", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index 268dbfa2b7..1ae348871f 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -29,7 +29,6 @@ "account.endorse": "用個人資料推薦對方", "account.featured_tags.last_status_at": "頂kái tī {date} Po文", "account.featured_tags.last_status_never": "無PO文", - "account.featured_tags.title": "{name} ê推薦hashtag", "account.follow": "跟tuè", "account.follow_back": "Tuè tńg去", "account.followers": "跟tuè lí ê", diff --git a/app/javascript/mastodon/locales/ne.json b/app/javascript/mastodon/locales/ne.json index 696f9fbed8..af2c922cbd 100644 --- a/app/javascript/mastodon/locales/ne.json +++ b/app/javascript/mastodon/locales/ne.json @@ -25,7 +25,6 @@ "account.enable_notifications": "@{name} ले पोस्ट गर्दा मलाई सूचित गर्नुहोस्", "account.endorse": "प्रोफाइलमा फिचर गर्नुहोस्", "account.featured_tags.last_status_never": "कुनै पोस्ट छैन", - "account.featured_tags.title": "{name}का विशेष ह्यासट्यागहरू", "account.follow": "फलो गर्नुहोस", "account.follow_back": "फलो ब्याक गर्नुहोस्", "account.followers": "फलोअरहरु", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index a4af036527..e22b7b3774 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -27,9 +27,11 @@ "account.edit_profile": "Profiel bewerken", "account.enable_notifications": "Geef een melding wanneer @{name} een bericht plaatst", "account.endorse": "Op profiel weergeven", + "account.featured": "Uitgelicht", + "account.featured.hashtags": "Hashtags", + "account.featured.posts": "Berichten", "account.featured_tags.last_status_at": "Laatste bericht op {date}", "account.featured_tags.last_status_never": "Geen berichten", - "account.featured_tags.title": "Uitgelichte hashtags van {name}", "account.follow": "Volgen", "account.follow_back": "Terugvolgen", "account.followers": "Volgers", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Zoekresultaten", "emoji_button.symbols": "Symbolen", "emoji_button.travel": "Reizen en locaties", + "empty_column.account_featured": "Deze lijst is leeg", "empty_column.account_hides_collections": "Deze gebruiker heeft ervoor gekozen deze informatie niet beschikbaar te maken", "empty_column.account_suspended": "Account opgeschort", "empty_column.account_timeline": "Hier zijn geen berichten!", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 4e0e96d974..ab867017a9 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -27,9 +27,11 @@ "account.edit_profile": "Rediger profil", "account.enable_notifications": "Varsle meg når @{name} skriv innlegg", "account.endorse": "Vis på profilen", + "account.featured": "Utvald", + "account.featured.hashtags": "Emneknaggar", + "account.featured.posts": "Innlegg", "account.featured_tags.last_status_at": "Sist nytta {date}", "account.featured_tags.last_status_never": "Ingen innlegg", - "account.featured_tags.title": "{name} sine framheva emneknaggar", "account.follow": "Fylg", "account.follow_back": "Fylg tilbake", "account.followers": "Fylgjarar", @@ -293,6 +295,7 @@ "emoji_button.search_results": "Søkeresultat", "emoji_button.symbols": "Symbol", "emoji_button.travel": "Reise & stader", + "empty_column.account_featured": "Denne lista er tom", "empty_column.account_hides_collections": "Denne brukaren har valt å ikkje gjere denne informasjonen tilgjengeleg", "empty_column.account_suspended": "Kontoen er utestengd", "empty_column.account_timeline": "Ingen tut her!", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 584132ffe6..a18ccdc0dc 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -29,7 +29,6 @@ "account.endorse": "Vis frem på profilen", "account.featured_tags.last_status_at": "Siste innlegg {date}", "account.featured_tags.last_status_never": "Ingen Innlegg", - "account.featured_tags.title": "{name} sine fremhevede emneknagger", "account.follow": "Følg", "account.follow_back": "Følg tilbake", "account.followers": "Følgere", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 616f8a64af..74ae8fad4d 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -26,7 +26,6 @@ "account.endorse": "Mostrar pel perfil", "account.featured_tags.last_status_at": "Darrièra publicacion lo {date}", "account.featured_tags.last_status_never": "Cap de publicacion", - "account.featured_tags.title": "Etiquetas en avant de {name}", "account.follow": "Sègre", "account.follow_back": "Sègre en retorn", "account.followers": "Seguidors", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index c6b2a5d412..ed827bcf29 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -29,7 +29,6 @@ "account.endorse": "Wyróżnij na profilu", "account.featured_tags.last_status_at": "Ostatni post {date}", "account.featured_tags.last_status_never": "Brak postów", - "account.featured_tags.title": "Polecane hasztagi {name}", "account.follow": "Obserwuj", "account.follow_back": "Również obserwuj", "account.followers": "Obserwujący", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 5279159d79..55cfeea582 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -29,7 +29,6 @@ "account.endorse": "Recomendar", "account.featured_tags.last_status_at": "Última publicação em {date}", "account.featured_tags.last_status_never": "Sem publicações", - "account.featured_tags.title": "Hashtags em destaque de {name}", "account.follow": "Seguir", "account.follow_back": "Seguir de volta", "account.followers": "Seguidores", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 32af518415..87c9e5846a 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -29,7 +29,6 @@ "account.endorse": "Destacar no perfil", "account.featured_tags.last_status_at": "Última publicação em {date}", "account.featured_tags.last_status_never": "Sem publicações", - "account.featured_tags.title": "Etiquetas destacadas por {name}", "account.follow": "Seguir", "account.follow_back": "Seguir também", "account.followers": "Seguidores", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 56d577f3f0..8fec42bbd0 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -29,7 +29,6 @@ "account.endorse": "Promovează pe profil", "account.featured_tags.last_status_at": "Ultima postare pe {date}", "account.featured_tags.last_status_never": "Fără postări", - "account.featured_tags.title": "Haștagurile recomandate de {name}", "account.follow": "Urmărește", "account.follow_back": "Urmăreşte înapoi", "account.followers": "Urmăritori", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 15ae4b9e0a..6763a354f3 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -27,9 +27,9 @@ "account.edit_profile": "Редактировать", "account.enable_notifications": "Уведомлять о постах от @{name}", "account.endorse": "Рекомендовать в профиле", + "account.featured": "Избранное", "account.featured_tags.last_status_at": "Последний пост {date}", "account.featured_tags.last_status_never": "Нет постов", - "account.featured_tags.title": "Избранные хэштеги {name}", "account.follow": "Подписаться", "account.follow_back": "Подписаться в ответ", "account.followers": "Подписчики", diff --git a/app/javascript/mastodon/locales/ry.json b/app/javascript/mastodon/locales/ry.json index 8fd083efc3..ed9751634e 100644 --- a/app/javascript/mastodon/locales/ry.json +++ b/app/javascript/mastodon/locales/ry.json @@ -28,7 +28,6 @@ "account.endorse": "Указовати на профілови", "account.featured_tags.last_status_at": "Датум послідньої публикації {date}", "account.featured_tags.last_status_never": "Ниє публикацій", - "account.featured_tags.title": "Ублюблені гештеґы {name}", "account.follow": "Пудписати ся", "account.follow_back": "Пудписати ся тоже", "account.followers": "Пудписникы", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 1ecc057023..ce88bda740 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -26,7 +26,6 @@ "account.endorse": "व्यक्तिगतविवरणे वैशिष्ट्यम्", "account.featured_tags.last_status_at": "{date} दिने गतस्थापनम्", "account.featured_tags.last_status_never": "न पत्रम्", - "account.featured_tags.title": "{name} इत्यस्य विशेषहैस्टैगः", "account.follow": "अनुस्रियताम्", "account.followers": "अनुसर्तारः", "account.followers.empty": "नाऽनुसर्तारो वर्तन्ते", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index c885078a73..79ef6f6ef5 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -29,7 +29,6 @@ "account.endorse": "Cussìgia in su profilu tuo", "account.featured_tags.last_status_at": "Ùrtima publicatzione in su {date}", "account.featured_tags.last_status_never": "Peruna publicatzione", - "account.featured_tags.title": "Etichetas de {name} in evidèntzia", "account.follow": "Sighi", "account.follow_back": "Sighi tue puru", "account.followers": "Sighiduras", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index 5960fb7760..872a61a8a2 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -25,7 +25,6 @@ "account.endorse": "Shaw oan profile", "account.featured_tags.last_status_at": "Last post oan {date}", "account.featured_tags.last_status_never": "Nae posts", - "account.featured_tags.title": "{name}'s hielichtit hashtags", "account.follow": "Follae", "account.followers": "Follaers", "account.followers.empty": "Naebody follaes this uiser yit.", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index d6aff6b56c..57fc3be484 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -29,7 +29,6 @@ "account.endorse": "Zobraziť na vlastnom profile", "account.featured_tags.last_status_at": "Posledný príspevok dňa {date}", "account.featured_tags.last_status_never": "Žiadne príspevky", - "account.featured_tags.title": "Odporúčané hashtagy účtu {name}", "account.follow": "Sledovať", "account.follow_back": "Sledovať späť", "account.followers": "Sledovatelia", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index e6c0b67427..eef20456de 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -29,7 +29,6 @@ "account.endorse": "Izpostavi v profilu", "account.featured_tags.last_status_at": "Zadnja objava {date}", "account.featured_tags.last_status_never": "Ni objav", - "account.featured_tags.title": "Izpostavljeni ključniki osebe {name}", "account.follow": "Sledi", "account.follow_back": "Sledi nazaj", "account.followers": "Sledilci", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index a80b3df80d..bb1668b2ef 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -27,9 +27,11 @@ "account.edit_profile": "Përpunoni profilin", "account.enable_notifications": "Njoftomë, kur poston @{name}", "account.endorse": "Pasqyrojeni në profil", + "account.featured": "Të zgjedhur", + "account.featured.hashtags": "Hashtag-ë", + "account.featured.posts": "Postime", "account.featured_tags.last_status_at": "Postimi i fundit më {date}", "account.featured_tags.last_status_never": "Pa postime", - "account.featured_tags.title": "Hashtagë të zgjedhur të {name}", "account.follow": "Ndiqeni", "account.follow_back": "Ndiqe gjithashtu", "account.followers": "Ndjekës", @@ -289,6 +291,7 @@ "emoji_button.search_results": "Përfundime kërkimi", "emoji_button.symbols": "Simbole", "emoji_button.travel": "Udhëtime & Vende", + "empty_column.account_featured": "Kjo listë është e zbrazët", "empty_column.account_hides_collections": "Ky përdorues ka zgjedhur të mos e japë këtë informacion", "empty_column.account_suspended": "Llogaria u pezullua", "empty_column.account_timeline": "S’ka mesazhe këtu!", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 3d077cbe22..2d00533e0e 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -28,7 +28,6 @@ "account.endorse": "Istakni na profilu", "account.featured_tags.last_status_at": "Poslednja objava {date}", "account.featured_tags.last_status_never": "Nema objava", - "account.featured_tags.title": "Istaknute heš oznake korisnika {name}", "account.follow": "Prati", "account.follow_back": "Uzvrati praćenje", "account.followers": "Pratioci", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 43c57b3e25..af323bed27 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -28,7 +28,6 @@ "account.endorse": "Истакни на профилу", "account.featured_tags.last_status_at": "Последња објава {date}", "account.featured_tags.last_status_never": "Нема објава", - "account.featured_tags.title": "Истакнуте хеш ознаке корисника {name}", "account.follow": "Прати", "account.follow_back": "Узврати праћење", "account.followers": "Пратиоци", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 1e2e9c585b..c23a645135 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -29,7 +29,6 @@ "account.endorse": "Visa på profil", "account.featured_tags.last_status_at": "Senaste inlägg den {date}", "account.featured_tags.last_status_never": "Inga inlägg", - "account.featured_tags.title": "{name}s utvalda hashtaggar", "account.follow": "Följ", "account.follow_back": "Följ tillbaka", "account.followers": "Följare", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index d9e607f856..429d0db428 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -29,7 +29,6 @@ "account.endorse": "แสดงในโปรไฟล์", "account.featured_tags.last_status_at": "โพสต์ล่าสุดเมื่อ {date}", "account.featured_tags.last_status_never": "ไม่มีโพสต์", - "account.featured_tags.title": "แฮชแท็กที่น่าสนใจของ {name}", "account.follow": "ติดตาม", "account.follow_back": "ติดตามกลับ", "account.followers": "ผู้ติดตาม", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index 59dd34eb5c..08ce6fd324 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -29,7 +29,6 @@ "account.endorse": "lipu jan la o suli e ni", "account.featured_tags.last_status_at": "sitelen pini pi jan ni li lon tenpo {date}", "account.featured_tags.last_status_never": "toki ala li lon", - "account.featured_tags.title": "{name} la kulupu ni pi toki suli li pona", "account.follow": "o kute", "account.follow_back": "jan ni li kute e sina. o kute", "account.followers": "jan kute", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index a33317ac9c..fa5a84dd68 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -27,9 +27,11 @@ "account.edit_profile": "Profili düzenle", "account.enable_notifications": "@{name} kişisinin gönderi bildirimlerini aç", "account.endorse": "Profilimde öne çıkar", + "account.featured": "Öne çıkan", + "account.featured.hashtags": "Etiketler", + "account.featured.posts": "Gönderiler", "account.featured_tags.last_status_at": "Son gönderinin tarihi {date}", "account.featured_tags.last_status_never": "Gönderi yok", - "account.featured_tags.title": "{name} kişisinin öne çıkan etiketleri", "account.follow": "Takip et", "account.follow_back": "Geri takip et", "account.followers": "Takipçi", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Arama sonuçları", "emoji_button.symbols": "Semboller", "emoji_button.travel": "Seyahat ve Yerler", + "empty_column.account_featured": "Bu liste boş", "empty_column.account_hides_collections": "Bu kullanıcı bu bilgiyi sağlamayı tercih etmemiştir", "empty_column.account_suspended": "Hesap askıya alındı", "empty_column.account_timeline": "Burada hiç gönderi yok!", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 602d676361..ee50180ced 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -27,7 +27,6 @@ "account.endorse": "Профильдә тәкъдим итү", "account.featured_tags.last_status_at": "Соңгы хәбәр {date}", "account.featured_tags.last_status_never": "Хәбәрләр юк", - "account.featured_tags.title": "{name} тәкъдим ителгән хэштеглар", "account.follow": "Язылу", "account.followers": "Язылучы", "account.followers.empty": "Әле беркем дә язылмаган.", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index eb7931f02c..b995713c52 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -27,9 +27,11 @@ "account.edit_profile": "Редагувати профіль", "account.enable_notifications": "Повідомляти мене про дописи @{name}", "account.endorse": "Рекомендувати у моєму профілі", + "account.featured": "Рекомендоване", + "account.featured.hashtags": "Хештеги", + "account.featured.posts": "Дописи", "account.featured_tags.last_status_at": "Останній допис {date}", "account.featured_tags.last_status_never": "Немає дописів", - "account.featured_tags.title": "{name} виділяє хештеґи", "account.follow": "Підписатися", "account.follow_back": "Стежити також", "account.followers": "Підписники", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Результати пошуку", "emoji_button.symbols": "Символи", "emoji_button.travel": "Подорожі та місця", + "empty_column.account_featured": "Список порожній", "empty_column.account_hides_collections": "Цей користувач вирішив не робити цю інформацію доступною", "empty_column.account_suspended": "Обліковий запис заблоковано", "empty_column.account_timeline": "Тут немає дописів!", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index cd50b512b4..e28ad93828 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -22,7 +22,6 @@ "account.endorse": "مشکص پر نمایاں کریں", "account.featured_tags.last_status_at": "آخری پوسٹ {date} کو", "account.featured_tags.last_status_never": "کوئی مراسلہ نہیں", - "account.featured_tags.title": "{name} کے نمایاں ہیش ٹیگز", "account.follow": "پیروی کریں", "account.follow_back": "اکاؤنٹ کو فالو بیک ", "account.followers": "پیروکار", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index e58ab35444..6dd350651d 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -25,7 +25,6 @@ "account.endorse": "Profildagi xususiyat", "account.featured_tags.last_status_at": "Oxirgi post: {date}", "account.featured_tags.last_status_never": "Habarlar yo'q", - "account.featured_tags.title": "{name} ning taniqli hashtaglari", "account.follow": "Obuna bo‘lish", "account.followers": "Obunachilar", "account.followers.empty": "Bu foydalanuvchini hali hech kim kuzatmaydi.", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 21a7e5da47..a608b3ed85 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -27,9 +27,11 @@ "account.edit_profile": "Sửa hồ sơ", "account.enable_notifications": "Nhận thông báo khi @{name} đăng tút", "account.endorse": "Tôn vinh người này", + "account.featured": "Nổi bật", + "account.featured.hashtags": "Hashtag", + "account.featured.posts": "Tút", "account.featured_tags.last_status_at": "Tút gần nhất {date}", "account.featured_tags.last_status_never": "Chưa có tút", - "account.featured_tags.title": "Hashtag của {name}", "account.follow": "Theo dõi", "account.follow_back": "Theo dõi lại", "account.followers": "Người theo dõi", @@ -294,6 +296,7 @@ "emoji_button.search_results": "Kết quả tìm kiếm", "emoji_button.symbols": "Biểu tượng", "emoji_button.travel": "Du lịch", + "empty_column.account_featured": "Danh sách trống", "empty_column.account_hides_collections": "Người này đã chọn ẩn thông tin", "empty_column.account_suspended": "Tài khoản vô hiệu hóa", "empty_column.account_timeline": "Chưa có tút nào!", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 050e1308b6..48f12d241a 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -29,7 +29,6 @@ "account.endorse": "在个人资料中推荐此用户", "account.featured_tags.last_status_at": "上次发言于 {date}", "account.featured_tags.last_status_never": "暂无嘟文", - "account.featured_tags.title": "{name} 的精选标签", "account.follow": "关注", "account.follow_back": "回关", "account.followers": "关注者", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index d6ffb2b6bf..493d06b672 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -29,7 +29,6 @@ "account.endorse": "在個人檔案中推薦對方", "account.featured_tags.last_status_at": "上次帖文於 {date}", "account.featured_tags.last_status_never": "暫無文章", - "account.featured_tags.title": "{name} 的精選標籤", "account.follow": "關注", "account.follow_back": "追蹤對方", "account.followers": "追蹤者", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index f2b8665e49..3bb8ed4cbc 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -27,9 +27,11 @@ "account.edit_profile": "編輯個人檔案", "account.enable_notifications": "當 @{name} 嘟文時通知我", "account.endorse": "於個人檔案推薦對方", + "account.featured": "精選內容", + "account.featured.hashtags": "主題標籤", + "account.featured.posts": "嘟文", "account.featured_tags.last_status_at": "上次嘟文於 {date}", "account.featured_tags.last_status_never": "沒有嘟文", - "account.featured_tags.title": "{name} 的推薦主題標籤", "account.follow": "跟隨", "account.follow_back": "跟隨回去", "account.followers": "跟隨者", @@ -294,6 +296,7 @@ "emoji_button.search_results": "搜尋結果", "emoji_button.symbols": "符號", "emoji_button.travel": "旅遊與地點", + "empty_column.account_featured": "此列表為空", "empty_column.account_hides_collections": "這位使用者選擇不提供此資訊", "empty_column.account_suspended": "帳號已被停權", "empty_column.account_timeline": "這裡還沒有嘟文!", diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index 73468c04fe..330dcd93d0 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -491,9 +491,9 @@ export const composeReducer = (state = initialState, action) => { if (action.status.get('poll')) { map.set('poll', ImmutableMap({ - options: action.status.getIn(['poll', 'options']).map(x => x.get('title')), - multiple: action.status.getIn(['poll', 'multiple']), - expires_in: expiresInFromExpiresAt(action.status.getIn(['poll', 'expires_at'])), + options: ImmutableList(action.status.get('poll').options.map(x => x.title)), + multiple: action.status.get('poll').multiple, + expires_in: expiresInFromExpiresAt(action.status.get('poll').expires_at), })); } }); @@ -520,9 +520,9 @@ export const composeReducer = (state = initialState, action) => { if (action.status.get('poll')) { map.set('poll', ImmutableMap({ - options: action.status.getIn(['poll', 'options']).map(x => x.get('title')), - multiple: action.status.getIn(['poll', 'multiple']), - expires_in: expiresInFromExpiresAt(action.status.getIn(['poll', 'expires_at'])), + options: ImmutableList(action.status.get('poll').options.map(x => x.title)), + multiple: action.status.get('poll').multiple, + expires_in: expiresInFromExpiresAt(action.status.get('poll').expires_at), })); } }); diff --git a/app/serializers/rest/web_push_subscription_serializer.rb b/app/serializers/rest/web_push_subscription_serializer.rb index 4cb980bb93..01825a3bb0 100644 --- a/app/serializers/rest/web_push_subscription_serializer.rb +++ b/app/serializers/rest/web_push_subscription_serializer.rb @@ -6,7 +6,7 @@ class REST::WebPushSubscriptionSerializer < ActiveModel::Serializer delegate :standard, to: :object def alerts - (object.data&.dig('alerts') || {}).each_with_object({}) { |(k, v), h| h[k] = ActiveModel::Type::Boolean.new.cast(v) } + (object.data&.dig('alerts') || {}).transform_values { |v| ActiveModel::Type::Boolean.new.cast(v) } end def server_key diff --git a/app/views/admin/announcements/previews/show.html.haml b/app/views/admin/announcements/previews/show.html.haml index fdfbf598b5..54d5d45ed6 100644 --- a/app/views/admin/announcements/previews/show.html.haml +++ b/app/views/admin/announcements/previews/show.html.haml @@ -7,6 +7,8 @@ = material_symbol 'chevron_left' = t('admin.announcements.back') +.flash-message.info= t('admin.announcements.preview.disclaimer') + %p.lead = t('admin.announcements.preview.explanation_html', count: @user_count, display_count: number_with_delimiter(@user_count)) diff --git a/config/locales/en.yml b/config/locales/en.yml index 4c5e1466f7..f0e1f86c4e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -319,6 +319,7 @@ en: create: Create announcement title: New announcement preview: + disclaimer: As users cannot opt out of them, email notifications should be limited to important announcements such as personal data breach or server closure notifications. explanation_html: 'The email will be sent to %{display_count} users. The following text will be included in the e-mail:' title: Preview announcement notification publish: Publish diff --git a/config/locales/lv.yml b/config/locales/lv.yml index fad8a2609e..2bb5abf2de 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -19,10 +19,10 @@ lv: pin_errors: following: Tev ir jāseko personai, kuru vēlies atbalstīt posts: - one: Ziņa - other: Ziņas - zero: Ziņu - posts_tab_heading: Ziņas + one: Ieraksts + other: Ieraksti + zero: Ierakstu + posts_tab_heading: Ieraksti self_follow_error: Nav ļauts sekot savam kontam admin: account_actions: @@ -120,7 +120,7 @@ lv: public: Publisks push_subscription_expires: PuSH abonements beidzas redownload: Atsvaidzināt profilu - redownloaded_msg: "%{username} profils sekmīgi atsvaidzināts no izcelsmes" + redownloaded_msg: "%{username} profils sekmīgi atsvaidzināts no pirmavota" reject: Noraidīt rejected_msg: "%{username} reģistrēšanās pieteikums sekmīgi noraidīts" remote_suspension_irreversible: Šī konta dati ir neatgriezeniski dzēsti. @@ -152,7 +152,7 @@ lv: targeted_reports: Ziņojuši citi silence: Ierobežot silenced: Ierobežots - statuses: Ziņas + statuses: Ieraksti strikes: Iepriekšējie streiki subscribe: Abonēt suspend: Apturēt @@ -176,7 +176,7 @@ lv: whitelisted: Atļauts federācijai action_logs: action_types: - approve_appeal: Apstiprināt Apelāciju + approve_appeal: Apstiprināt pārsūdzību approve_user: Apstiprināt lietotāju assigned_to_self_report: Piešķirt Pārskatu change_email_user: Mainīt lietotāja e-pasta adresi @@ -218,11 +218,11 @@ lv: memorialize_account: Saglabāt Kontu Piemiņai promote_user: Izceltt Lietotāju publish_terms_of_service: Publicēt pakalpojuma izmantošanas noteikumus - reject_appeal: Noraidīt Apelāciju + reject_appeal: Noraidīt pārsūdzību reject_user: Noraidīt lietotāju remove_avatar_user: Noņemt profila attēlu reopen_report: Atkārtoti Atvērt Ziņojumu - resend_user: Atkārtoti nosūtīt Apstiprinājuma Pastu + resend_user: Atkārtoti nosūtīt apstiprinājuma e-pasta ziņojumu reset_password_user: Atiestatīt Paroli resolve_report: Atrisināt Ziņojumu sensitive_account: Uzspiesti atzimēt kontu kā jūtīgu @@ -241,7 +241,7 @@ lv: update_status: Atjaunināt ziņu update_user_role: Atjaunināt lomu actions: - approve_appeal_html: "%{name} apstiprināja satura pārraudzības lēmuma iebildumu no %{target}" + approve_appeal_html: "%{name} apstiprināja satura pārraudzības lēmuma pārsūdzību no %{target}" approve_user_html: "%{name} apstiprināja reģistrēšanos no %{target}" assigned_to_self_report_html: "%{name} piešķīra pārskatu %{target} sev" change_email_user_html: "%{name} nomainīja lietotāja %{target} e-pasta adresi" @@ -277,7 +277,7 @@ lv: memorialize_account_html: "%{name} pārvērta %{target} kontu par atmiņas lapu" promote_user_html: "%{name} paaugstināja lietotāju %{target}" publish_terms_of_service_html: "%{name} padarīja pieejamus pakalpojuma izmantošanas noteikumu atjauninājumus" - reject_appeal_html: "%{name} noraidīja satura pārraudzības lēmuma iebildumu no %{target}" + reject_appeal_html: "%{name} noraidīja satura pārraudzības lēmuma pārsūdzību no %{target}" reject_user_html: "%{name} noraidīja reģistrēšanos no %{target}" remove_avatar_user_html: "%{name} noņēma %{target} profila attēlu" reopen_report_html: "%{name} atkārtoti atvēra ziņojumu %{target}" @@ -560,7 +560,7 @@ lv: instance_languages_dimension: Populārākās valodas instance_media_attachments_measure: saglabātie multivides pielikumi instance_reports_measure: ziņojumi par viņiem - instance_statuses_measure: saglabātās ziņas + instance_statuses_measure: saglabātie ieraksti delivery: all: Visas clear: Notīrīt piegādes kļūdas @@ -625,7 +625,7 @@ lv: disable: Atspējot disabled: Atspējots enable: Iespējot - enable_hint: Kad tas būs iespējots, tavs serveris abonēs visas publiskās ziņas no šī releja un sāks tam sūtīt šī servera publiskās ziņas. + enable_hint: Tiklīdz iespējots, serveris abonēs visus šī releja publiskos ierakstus un sāks tam sūtīt šī iservera publiskos ierakstus. enabled: Iespējots inbox_url: Releja URL pending: Gaida apstiprinājumu no releja @@ -709,7 +709,7 @@ lv: silence_html: 'Jūs gatavojaties ierobežot @%{acct} kontu. Tas:' suspend_html: 'Jūs gatavojaties apturēt @%{acct} kontu. Tas:' actions: - delete_html: Noņemt aizskarošās ziņas + delete_html: Noņemt aizskarošos ierakstus mark_as_sensitive_html: Atzīmēt aizskarošo ierakstu informācijas nesējus kā jūtīgus silence_html: Ievērojami ierobežo @%{acct} sasniedzamību, padarot viņa profilu un saturu redzamu tikai cilvēkiem, kas jau seko tam vai pašrocīgi uzmeklē profilu suspend_html: Apturēt @%{acct}, padarot viņu profilu un saturu nepieejamu un neiespējamu mijiedarbību ar @@ -720,7 +720,7 @@ lv: record_strike_html: Ierakstiet brīdinājumu pret @%{acct}, lai palīdzētu jums izvērst turpmākus pārkāpumus no šī konta send_email_html: Nosūtīt @%{acct} brīdinājuma e-pasta ziņojumu warning_placeholder: Izvēles papildu pamatojums satura pārraudzības darbībai. - target_origin: Ziņotā konta izcelsme + target_origin: Konta, par kuru ziņots, izcelsme title: Ziņojumi unassign: Atsaukt unknown_action_msg: 'Nezināms konts: %{action}' @@ -882,12 +882,12 @@ lv: title: Multivide metadata: Metadati no_history: Šis ieraksts nav bijis labots - no_status_selected: Neviena ziņa netika mainīta, jo neviena netika atlasīta + no_status_selected: Neviens ieraksts netika mainīts, jo nekas netika atlasīts open: Atvērt ziņu - original_status: Oriģinālā ziņa + original_status: Sākotnējais ieraksts reblogs: Reblogi replied_to_html: Atbildēja %{acct_link} - status_changed: Ziņa mainīta + status_changed: Ieraksts izmainīts status_title: Publicēja @%{name} title: Konta ieraksti - @%{name} trending: Aktuāli @@ -1983,6 +1983,7 @@ lv: action: Konta iestatījumi explanation: Pārsūdzība par brīdinājumu Tavam kontam %{strike_date}, ko iesniedzi %{appeal_date}, ir apstiprināta. Tavs konts atkal ir labā stāvoklī. subject: Tava %{date} iesniegtā pārsūdzība tika apstiprināta + subtitle: Tavs konts atkal ir labā stāvoklī. title: Apelācija apstiprināta appeal_rejected: explanation: Pārsūdzība par brīdinājumu Tavam kontam %{strike_date}, ko iesniedzi %{appeal_date}, tika noraidīta. @@ -2010,6 +2011,7 @@ lv: terms_of_service_changed: agreement: Ar %{domain} izmantošanas tuprināšanu tiek piekrists šiem noteikumiem. Ja ir iebildumi pret atjauninātajiem noteikumiem, savu piekrišanu var atcelt jebkurā laikā ar sava konta izdzēšanu. changelog: 'Šeit īsumā ir aprakstīts, ko šis atjauninājums nozīmē:' + description: 'Šis e-pasta ziņojums tika saņemts, jo mēs veicam dažas izmaiņas savos pakalpojuma izmantošanas noteikumos %{domain}. Šie atjauninājumi stāsies spēkā %{date}. Mēs aicinām pārskatīt pilnus atjauninātos noteikumus šeit:' sign_off: "%{domain} komanda" subject: Mūsu pakalpojuma izmantošanas noteikumu atjauninājumi subtitle: Mainās %{domain} pakalpojuma izmantošanas noteikumi diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 8c06332695..1f01f622f5 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -498,6 +498,7 @@ ru: fasp: providers: sign_in: + status: Пост follow_recommendations: description_html: "Следуйте рекомендациям, чтобы помочь новым пользователям быстро находить интересный контент. Если пользователь не взаимодействовал с другими в достаточной степени, чтобы сформировать персонализированные рекомендации, вместо этого рекомендуется использовать эти учетные записи. Они пересчитываются на ежедневной основе на основе комбинации аккаунтов с наибольшим количеством недавних взаимодействий и наибольшим количеством местных подписчиков для данного языка." language: Для языка diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml index 0c362b0a30..287ce36a5d 100644 --- a/config/locales/simple_form.lv.yml +++ b/config/locales/simple_form.lv.yml @@ -25,7 +25,7 @@ lv: type_html: Izvēlies, ko darīt ar %{acct} types: disable: Neļauj lietotājam izmantot savu kontu, bet neizdzēs vai neslēp tā saturu. - none: Izmanto šo, lai nosūtītu lietotājam brīdinājumu, neradot nekādas citas darbības. + none: Šis ir izmantojams, lai nosūtītu lietotājam brīdinājumu bez jebkādu citu darbību izraisīšanas. sensitive: Visus šī lietotāja informācijas nesēju pielikumus uzspiesti atzīmēt kā jūtīgus. silence: Neļaut lietotājam veikt ierakstus ar publisku redzamību, paslēpt viņa ierakstus un paziņojumus no cilvēkiem, kas tam neseko. Tiek aizvērti visi ziņojumi par šo kontu. suspend: Novērs jebkādu mijiedarbību no šī konta vai uz to un dzēs tā saturu. Atgriežams 30 dienu laikā. Tiek aizvērti visi šī konta pārskati. @@ -45,8 +45,8 @@ lv: context: Viens vai vairāki konteksti, kur jāpiemēro filtrs current_password: Drošības nolūkos, lūdzu, ievadi pašreizējā konta paroli current_username: Lai apstiprinātu, lūdzu, ievadi pašreizējā konta paroli - digest: Tiek nosūtīts tikai pēc ilgstošas bezdarbības un tikai tad, ja savas prombūtnes laikā esi saņēmis jebkādas personīgas ziņas - email: Tev tiks nosūtīts apstiprinājuma e-pasts + digest: Tiek nosūtīts tikai pēc ilgstošas bezdarbības un tikai tad, ja savas prombūtnes laikā saņēmi jebkādas personīgas ziņas + email: Tev tiks nosūtīts apstiprinājuma e-pasta ziņojums header: WEBP, PNG, GIF vai JPG. Ne vairāk kā %{size}. Tiks samazināts līdz %{dimensions}px inbox_url: Nokopē URL no tā releja sākumlapas, kuru vēlies izmantot irreversible: Filtrētās ziņas neatgriezeniski pazudīs, pat ja filtrs vēlāk tiks noņemts @@ -125,7 +125,7 @@ lv: hint: Izvēles. Sniedz vairāk informācijas par noteikumu text: Jāapraksta nosacījums vai prasība šī servera lietotājiem. Jāmēģina to veidot īsu un vienkāršu sessions: - otp: 'Jāievada tālruņa lietotnes izveidots divpakāpju kods vai jāizmanto viens no saviem atkopes kodie:' + otp: 'Jāievada tālruņa lietotnes izveidots divpakāpju kods vai jāizmanto viens no saviem atkopes kodiem:' webauthn: Ja tā ir USB atslēga, noteikti ievieto to un, ja nepieciešams, pieskaries tai. settings: indexable: Tava profila lapa var tikt parādīta Google, Bing un citu meklēšanas dzinēju rezultātos. @@ -213,7 +213,7 @@ lv: max_uses: Maksimālais lietojumu skaits new_password: Jauna parole note: Par sevi - otp_attempt: Divfaktoru kods + otp_attempt: Divpakāpju kods password: Parole phrase: Atslēgvārds vai frāze setting_advanced_layout: Iespējot paplašināto tīmekļa saskarni diff --git a/config/routes.rb b/config/routes.rb index 5b130c517b..2fff44851e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -129,6 +129,7 @@ Rails.application.routes.draw do constraints(username: %r{[^@/.]+}) do with_options to: 'accounts#show' do get '/@:username', as: :short_account + get '/@:username/featured' get '/@:username/with_replies', as: :short_account_with_replies get '/@:username/media', as: :short_account_media get '/@:username/tagged/:tag', as: :short_account_tag diff --git a/yarn.lock b/yarn.lock index fdf4b0e4e3..307ea2a913 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7688,9 +7688,9 @@ __metadata: linkType: hard "dotenv@npm:^16.0.3": - version: 16.4.7 - resolution: "dotenv@npm:16.4.7" - checksum: 10c0/be9f597e36a8daf834452daa1f4cc30e5375a5968f98f46d89b16b983c567398a330580c88395069a77473943c06b877d1ca25b4afafcdd6d4adb549e8293462 + version: 16.5.0 + resolution: "dotenv@npm:16.5.0" + checksum: 10c0/5bc94c919fbd955bf0ba44d33922a1e93d1078e64a1db5c30faeded1d996e7a83c55332cb8ea4fae5a9ca4d0be44cbceb95c5811e70f9f095298df09d1997dd9 languageName: node linkType: hard