Merge commit 'a296facdea884cc828999c9f9be0f4bc83afe68d' into glitch-soc/merge-upstream

This commit is contained in:
Claire 2025-04-11 19:14:53 +02:00
commit 80f7175379
116 changed files with 537 additions and 405 deletions

View file

@ -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:

View file

@ -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)

View file

@ -354,6 +354,28 @@ export const Dropdown = <Item = MenuItem,>({
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 = <Item = MenuItem,>({
modalProps: {
status,
actions: items,
onClick: onItemClick,
onClick: handleItemClick,
},
}),
);
@ -394,7 +416,7 @@ export const Dropdown = <Item = MenuItem,>({
currentId,
scrollKey,
onOpen,
onItemClick,
handleItemClick,
open,
status,
items,
@ -434,28 +456,6 @@ export const Dropdown = <Item = MenuItem,>({
[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) {

View file

@ -102,7 +102,7 @@ export interface HashtagProps {
description?: React.ReactNode;
history?: number[];
name: string;
people: number;
people?: number;
to: string;
uses?: number;
withGraph?: boolean;

View file

@ -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 ? <Trends /> : null);
export const NavigationPortal: React.FC = () => (
<div className='navigation-panel__portal'>
<Switch>
<Route path='/@:acct' exact component={AccountNavigation} />
<Route
path='/@:acct/tagged/:tagged?'
exact
component={AccountNavigation}
/>
<Route path='/@:acct/with_replies' exact component={AccountNavigation} />
<Route path='/@:acct/followers' exact component={AccountNavigation} />
<Route path='/@:acct/following' exact component={AccountNavigation} />
<Route path='/@:acct/media' exact component={AccountNavigation} />
<Route component={DefaultNavigation} />
</Switch>
</div>
<div className='navigation-panel__portal'>{showTrends && <Trends />}</div>
);

View file

@ -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<RemoteHintProps> = ({ 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 (
<TimelineHint
url={account.url}
message={
<FormattedMessage
id='hints.profiles.posts_may_be_missing'
defaultMessage='Some posts from this profile may be missing.'
/>
}
label={
<FormattedMessage
id='hints.profiles.see_more_posts'
defaultMessage='See more posts on {domain}'
values={{ domain: <strong>{domain}</strong> }}
/>
}
/>
);
};

View file

@ -274,9 +274,8 @@ 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);
}
if (writtenByMe || withDismiss) {
menu.push({ text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), action: this.handleConversationMuteClick });

View file

@ -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 (
<div className='getting-started__trends'>
<h4><FormattedMessage id='account.featured_tags.title' defaultMessage="{name}'s featured hashtags" values={{ name: <bdi dangerouslySetInnerHTML={{ __html: account.get('display_name_html') }} /> }} /></h4>
{featuredTags.take(3).map(featuredTag => (
<Hashtag
key={featuredTag.get('name')}
name={featuredTag.get('name')}
to={`/@${account.get('acct')}/tagged/${featuredTag.get('name')}`}
uses={featuredTag.get('statuses_count') * 1}
withGraph={false}
description={((featuredTag.get('statuses_count') * 1) > 0) ? intl.formatMessage(messages.lastStatusAt, { date: intl.formatDate(featuredTag.get('last_status_at'), { month: 'short', day: '2-digit' }) }) : intl.formatMessage(messages.empty)}
/>
))}
</div>
);
}
}
export default injectIntl(FeaturedTags);

View file

@ -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);

View file

@ -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 (
<FeaturedTags accountId={accountId} tagged={tagged} />
);
}
}
export default connect(mapStateToProps)(AccountNavigation);

View file

@ -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<EmptyMessageProps> = ({
accountId,
suspended,
hidden,
blockedBy,
}) => {
if (!accountId) {
return null;
}
let message: React.ReactNode = null;
if (suspended) {
message = (
<FormattedMessage
id='empty_column.account_suspended'
defaultMessage='Account suspended'
/>
);
} else if (hidden) {
message = <LimitedAccountHint accountId={accountId} />;
} else if (blockedBy) {
message = (
<FormattedMessage
id='empty_column.account_unavailable'
defaultMessage='Profile unavailable'
/>
);
} else {
message = (
<FormattedMessage
id='empty_column.account_featured'
defaultMessage='This list is empty'
/>
);
}
return <div className='empty-column-indicator'>{message}</div>;
};

View file

@ -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<FeaturedTagProps> = ({ tag, account }) => {
const intl = useIntl();
const name = tag.get('name') ?? '';
const count = Number.parseInt(tag.get('statuses_count') ?? '');
return (
<Hashtag
key={name}
name={name}
to={`/@${account}/tagged/${name}`}
uses={count}
withGraph={false}
description={
count > 0
? intl.formatMessage(messages.lastStatusAt, {
date: intl.formatDate(tag.get('last_status_at') ?? '', {
month: 'short',
day: '2-digit',
}),
})
: intl.formatMessage(messages.empty)
}
/>
);
};

View file

@ -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<Params>();
const dispatch = useAppDispatch();
useEffect(() => {
if (accountId) {
void dispatch(expandAccountFeaturedTimeline(accountId));
dispatch(fetchFeaturedTags(accountId));
}
}, [accountId, dispatch]);
const isLoading = useAppSelector(
(state) =>
!accountId ||
!!(state.timelines as ImmutableMap<string, unknown>).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<TagMap>,
);
const featuredStatusIds = useAppSelector(
(state) =>
(state.timelines as ImmutableMap<string, unknown>).getIn(
[`account:${accountId}:pinned`, 'items'],
ImmutableList(),
) as ImmutableList<string>,
);
if (isLoading) {
return (
<AccountFeaturedWrapper accountId={accountId}>
<div className='scrollable__append'>
<LoadingIndicator />
</div>
</AccountFeaturedWrapper>
);
}
if (featuredStatusIds.isEmpty() && featuredTags.isEmpty()) {
return (
<AccountFeaturedWrapper accountId={accountId}>
<EmptyMessage
blockedBy={blockedBy}
hidden={hidden}
suspended={suspended}
accountId={accountId}
/>
<RemoteHint accountId={accountId} />
</AccountFeaturedWrapper>
);
}
return (
<Column>
<ColumnBackButton />
<div className='scrollable scrollable--flex'>
{accountId && (
<AccountHeader accountId={accountId} hideTabs={forceEmptyState} />
)}
{!featuredTags.isEmpty() && (
<>
<h4 className='column-subheading'>
<FormattedMessage
id='account.featured.hashtags'
defaultMessage='Hashtags'
/>
</h4>
{featuredTags.map((tag) => (
<FeaturedTag key={tag.get('id')} tag={tag} account={acct} />
))}
</>
)}
{!featuredStatusIds.isEmpty() && (
<>
<h4 className='column-subheading'>
<FormattedMessage
id='account.featured.posts'
defaultMessage='Posts'
/>
</h4>
{featuredStatusIds.map((statusId) => (
<StatusContainer
key={`f-${statusId}`}
// @ts-expect-error inferred props are wrong
id={statusId}
contextType='account'
/>
))}
</>
)}
<RemoteHint accountId={accountId} />
</div>
</Column>
);
};
const AccountFeaturedWrapper = ({
children,
accountId,
}: React.PropsWithChildren<{ accountId?: string }>) => {
return (
<Column>
<ColumnBackButton />
<div className='scrollable scrollable--flex'>
{accountId && <AccountHeader accountId={accountId} />}
{children}
</div>
</Column>
);
};
// eslint-disable-next-line import/no-default-export
export default AccountFeatured;

View file

@ -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 (
<TimelineHint
url={url}
message={
<FormattedMessage
id='hints.profiles.posts_may_be_missing'
defaultMessage='Some posts from this profile may be missing.'
/>
}
label={
<FormattedMessage
id='hints.profiles.see_more_posts'
defaultMessage='See more posts on {domain}'
values={{ domain: <strong>{domain}</strong> }}
/>
}
/>
);
};
export const AccountGallery: React.FC<{
multiColumn: boolean;
}> = ({ multiColumn }) => {
const { acct, id } = useParams<Params>();
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 = <RemoteHint accountId={accountId} />;
} else {
emptyMessage = (
@ -259,7 +196,7 @@ export const AccountGallery: React.FC<{
)
}
alwaysPrepend
append={remote && accountId && <RemoteHint accountId={accountId} />}
append={accountId && <RemoteHint accountId={accountId} />}
scrollKey='account_gallery'
isLoading={isLoading}
hasMore={!forceEmptyState && hasMore}

View file

@ -956,6 +956,9 @@ export const AccountHeader: React.FC<{
{!(hideTabs || hidden) && (
<div className='account__section-headline'>
<NavLink exact to={`/@${account.acct}/featured`}>
<FormattedMessage id='account.featured' defaultMessage='Featured' />
</NavLink>
<NavLink exact to={`/@${account.acct}`}>
<FormattedMessage id='account.posts' defaultMessage='Posts' />
</NavLink>

View file

@ -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 (
<TimelineHint
url={url}
message={<FormattedMessage id='hints.profiles.posts_may_be_missing' defaultMessage='Some posts from this profile may be missing.' />}
label={<FormattedMessage id='hints.profiles.see_more_posts' defaultMessage='See more posts on {domain}' values={{ domain: <strong>{domain}</strong> }} />}
/>
);
};
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 = <FormattedMessage id='empty_column.account_timeline' defaultMessage='No posts found' />;
}
const remoteMessage = remote ? <RemoteHint accountId={accountId} url={remoteUrl} /> : null;
return (
<Column>
<ColumnBackButton />
@ -200,10 +173,9 @@ class AccountTimeline extends ImmutablePureComponent {
<StatusList
prepend={<AccountHeader accountId={this.props.accountId} hideTabs={forceEmptyState} tagged={this.props.params.tagged} />}
alwaysPrepend
append={remoteMessage}
append={<RemoteHint accountId={accountId} />}
scrollKey='account_timeline'
statusIds={forceEmptyState ? emptyList : statusIds}
featuredStatusIds={featuredStatusIds}
isLoading={isLoading}
hasMore={!forceEmptyState && hasMore}
onLoadMore={this.handleLoadMore}

View file

@ -105,11 +105,10 @@ export const NotificationRequest = ({ id, accountId, notificationsCount, checked
<div className='notification-request__actions'>
<IconButton iconComponent={DeleteIcon} onClick={handleDismiss} title={intl.formatMessage(messages.dismiss)} />
<DropdownMenuContainer
<Dropdown
items={menu}
icons='ellipsis-h'
icon='ellipsis-h'
iconComponent={MoreHorizIcon}
direction='right'
title={intl.formatMessage(messages.more)}
/>
</div>

View file

@ -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 {
<WrappedRoute path={['/publish', '/statuses/new']} component={Compose} content={children} />
<WrappedRoute path={['/@:acct', '/accounts/:id']} exact component={AccountTimeline} content={children} />
<WrappedRoute path={['/@:acct/featured', '/accounts/:id/featured']} component={AccountFeatured} content={children} />
<WrappedRoute path='/@:acct/tagged/:tagged?' exact component={AccountTimeline} content={children} />
<WrappedRoute path={['/@:acct/with_replies', '/accounts/:id/with_replies']} component={AccountTimeline} content={children} componentParams={{ withReplies: true }} />
<WrappedRoute path={['/accounts/:id/followers', '/users/:acct/followers', '/@:acct/followers']} component={Followers} content={children} />

View file

@ -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');
}

View file

@ -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<Params>();
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;
}

View file

@ -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,
};
}

View file

@ -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.",

View file

@ -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": "مُتابِعون",

View file

@ -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",

View file

@ -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",

View file

@ -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": "Падпісчыкі",

View file

@ -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": "Последователи",

View file

@ -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": "অনুসরণকারী",

View file

@ -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",

View file

@ -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",

View file

@ -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": "شوێنکەوتووان",

View file

@ -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í",

View file

@ -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!",

View file

@ -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!",

View file

@ -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!",

View file

@ -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": "Ακόλουθοι",

View file

@ -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",

View file

@ -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!",

View file

@ -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!",

View file

@ -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á!",

View file

@ -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í!",

View file

@ -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í!",

View file

@ -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",

View file

@ -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",

View file

@ -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": "پی‌گیرندگان",

View file

@ -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ä.",

View file

@ -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",

View file

@ -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!",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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í",

View file

@ -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",

View file

@ -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í!",

View file

@ -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": "עוקבים",

View file

@ -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": "फॉलोवर",

View file

@ -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",

View file

@ -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!",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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!",

View file

@ -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!",

View file

@ -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": "フォロワー",

View file

@ -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": "Бұл қолданушыға әлі ешкім жазылмаған.",

View file

@ -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": "팔로워",

View file

@ -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",

View file

@ -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:",

View file

@ -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",

View file

@ -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",

View file

@ -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}",

View file

@ -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": "अनुयायी",

View file

@ -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",

View file

@ -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": "ဤသူကို စောင့်ကြည့်သူ မရှိသေးပါ။",

View file

@ -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í ê",

View file

@ -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": "फलोअरहरु",

View file

@ -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!",

View file

@ -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!",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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": "Подписчики",

View file

@ -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": "Пудписникы",

View file

@ -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": "नाऽनुसर्तारो वर्तन्ते",

View file

@ -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",

View file

@ -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.",

View file

@ -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",

View file

@ -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",

View file

@ -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": "Ska mesazhe këtu!",

View file

@ -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",

View file

@ -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": "Пратиоци",

View file

@ -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",

View file

@ -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": "ผู้ติดตาม",

View file

@ -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",

View file

@ -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!",

View file

@ -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": "Әле беркем дә язылмаган.",

Some files were not shown because too many files have changed in this diff Show more