mirror of
https://github.com/glitch-soc/mastodon
synced 2025-04-24 15:24:51 +00:00
Merge commit 'a296facdea884cc828999c9f9be0f4bc83afe68d' into glitch-soc/merge-upstream
This commit is contained in:
commit
80f7175379
116 changed files with 537 additions and 405 deletions
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -102,7 +102,7 @@ export interface HashtagProps {
|
|||
description?: React.ReactNode;
|
||||
history?: number[];
|
||||
name: string;
|
||||
people: number;
|
||||
people?: number;
|
||||
to: string;
|
||||
uses?: number;
|
||||
withGraph?: boolean;
|
||||
|
|
|
@ -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>
|
||||
);
|
||||
|
|
43
app/javascript/mastodon/components/remote_hint.tsx
Normal file
43
app/javascript/mastodon/components/remote_hint.tsx
Normal 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> }}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
);
|
||||
};
|
|
@ -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 });
|
||||
|
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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>;
|
||||
};
|
|
@ -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)
|
||||
}
|
||||
/>
|
||||
);
|
||||
};
|
156
app/javascript/mastodon/features/account_featured/index.tsx
Normal file
156
app/javascript/mastodon/features/account_featured/index.tsx
Normal 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;
|
|
@ -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}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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} />
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
|
|
37
app/javascript/mastodon/hooks/useAccountId.ts
Normal file
37
app/javascript/mastodon/hooks/useAccountId.ts
Normal 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;
|
||||
}
|
20
app/javascript/mastodon/hooks/useAccountVisibility.ts
Normal file
20
app/javascript/mastodon/hooks/useAccountVisibility.ts
Normal 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,
|
||||
};
|
||||
}
|
|
@ -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.",
|
||||
|
|
|
@ -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": "مُتابِعون",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "Падпісчыкі",
|
||||
|
|
|
@ -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": "Последователи",
|
||||
|
|
|
@ -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": "অনুসরণকারী",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "شوێنکەوتووان",
|
||||
|
|
|
@ -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í",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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": "Ακόλουθοι",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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á!",
|
||||
|
|
|
@ -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í!",
|
||||
|
|
|
@ -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í!",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "پیگیرندگان",
|
||||
|
|
|
@ -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ä.",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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í",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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í!",
|
||||
|
|
|
@ -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": "עוקבים",
|
||||
|
|
|
@ -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": "फॉलोवर",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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": "フォロワー",
|
||||
|
|
|
@ -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": "Бұл қолданушыға әлі ешкім жазылмаған.",
|
||||
|
|
|
@ -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": "팔로워",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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:",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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}",
|
||||
|
|
|
@ -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": "अनुयायी",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "ဤသူကို စောင့်ကြည့်သူ မရှိသေးပါ။",
|
||||
|
|
|
@ -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í ê",
|
||||
|
|
|
@ -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": "फलोअरहरु",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "Подписчики",
|
||||
|
|
|
@ -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": "Пудписникы",
|
||||
|
|
|
@ -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": "नाऽनुसर्तारो वर्तन्ते",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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.",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "Пратиоци",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "ผู้ติดตาม",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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!",
|
||||
|
|
|
@ -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
Loading…
Add table
Reference in a new issue