mirror of
https://github.com/mastodon/mastodon.git
synced 2025-09-05 17:31:12 +00:00
Merge branch 'main' into feature/require-mfa-by-admin
This commit is contained in:
commit
e259a67151
|
@ -243,6 +243,10 @@ module ApplicationHelper
|
|||
tag.input(type: :text, maxlength: 999, spellcheck: false, readonly: true, **options)
|
||||
end
|
||||
|
||||
def recent_tag_users(tag)
|
||||
tag.statuses.public_visibility.joins(:account).merge(Account.without_suspended.without_silenced).includes(:account).limit(3).map(&:account)
|
||||
end
|
||||
|
||||
def recent_tag_usage(tag)
|
||||
people = tag.history.aggregate(2.days.ago.to_date..Time.zone.today).accounts
|
||||
I18n.t 'user_mailer.welcome.hashtags_recent_count', people: number_with_delimiter(people), count: people
|
||||
|
|
|
@ -97,12 +97,17 @@ export const ensureComposeIsVisible = (getState) => {
|
|||
};
|
||||
|
||||
export function setComposeToStatus(status, text, spoiler_text) {
|
||||
return{
|
||||
type: COMPOSE_SET_STATUS,
|
||||
status,
|
||||
text,
|
||||
spoiler_text,
|
||||
};
|
||||
return (dispatch, getState) => {
|
||||
const maxOptions = getState().server.getIn(['server', 'configuration', 'polls', 'max_options']);
|
||||
|
||||
dispatch({
|
||||
type: COMPOSE_SET_STATUS,
|
||||
status,
|
||||
text,
|
||||
spoiler_text,
|
||||
maxOptions,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export function changeCompose(text) {
|
||||
|
@ -216,6 +221,7 @@ export function submitCompose(successCallback) {
|
|||
});
|
||||
}
|
||||
|
||||
const visibility = getState().getIn(['compose', 'privacy']);
|
||||
api().request({
|
||||
url: statusId === null ? '/api/v1/statuses' : `/api/v1/statuses/${statusId}`,
|
||||
method: statusId === null ? 'post' : 'put',
|
||||
|
@ -226,11 +232,11 @@ export function submitCompose(successCallback) {
|
|||
media_attributes,
|
||||
sensitive: getState().getIn(['compose', 'sensitive']),
|
||||
spoiler_text: getState().getIn(['compose', 'spoiler']) ? getState().getIn(['compose', 'spoiler_text'], '') : '',
|
||||
visibility: getState().getIn(['compose', 'privacy']),
|
||||
visibility: visibility,
|
||||
poll: getState().getIn(['compose', 'poll'], null),
|
||||
language: getState().getIn(['compose', 'language']),
|
||||
quoted_status_id: getState().getIn(['compose', 'quoted_status_id']),
|
||||
quote_approval_policy: getState().getIn(['compose', 'quote_policy']),
|
||||
quote_approval_policy: visibility === 'private' || visibility === 'direct' ? 'nobody' : getState().getIn(['compose', 'quote_policy']),
|
||||
},
|
||||
headers: {
|
||||
'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey']),
|
||||
|
|
|
@ -2,11 +2,12 @@ import {
|
|||
apiReblog,
|
||||
apiUnreblog,
|
||||
apiRevokeQuote,
|
||||
apiGetQuotes,
|
||||
} from 'mastodon/api/interactions';
|
||||
import type { StatusVisibility } from 'mastodon/models/status';
|
||||
import { createDataLoadingThunk } from 'mastodon/store/typed_functions';
|
||||
|
||||
import { importFetchedStatus } from './importer';
|
||||
import { importFetchedStatus, importFetchedStatuses } from './importer';
|
||||
|
||||
export const reblog = createDataLoadingThunk(
|
||||
'status/reblog',
|
||||
|
@ -53,3 +54,19 @@ export const revokeQuote = createDataLoadingThunk(
|
|||
return discardLoadData;
|
||||
},
|
||||
);
|
||||
|
||||
export const fetchQuotes = createDataLoadingThunk(
|
||||
'status/fetch_quotes',
|
||||
async ({ statusId, next }: { statusId: string; next?: string }) => {
|
||||
const { links, statuses } = await apiGetQuotes(statusId, next);
|
||||
|
||||
return {
|
||||
links,
|
||||
statuses,
|
||||
replace: !next,
|
||||
};
|
||||
},
|
||||
(payload, { dispatch }) => {
|
||||
dispatch(importFetchedStatuses(payload.statuses));
|
||||
},
|
||||
);
|
||||
|
|
|
@ -30,9 +30,20 @@ import { importFetchedAccounts, importFetchedStatuses } from './importer';
|
|||
import { NOTIFICATIONS_FILTER_SET } from './notifications';
|
||||
import { saveSettings } from './settings';
|
||||
|
||||
function notificationTypeForFilter(type: NotificationType) {
|
||||
if (type === 'quoted_update') return 'update';
|
||||
else return type;
|
||||
}
|
||||
|
||||
function notificationTypeForQuickFilter(type: NotificationType) {
|
||||
if (type === 'quoted_update') return 'update';
|
||||
else if (type === 'quote') return 'mention';
|
||||
else return type;
|
||||
}
|
||||
|
||||
function excludeAllTypesExcept(filter: string) {
|
||||
return allNotificationTypes.filter(
|
||||
(item) => item !== filter && !(item === 'quote' && filter === 'mention'),
|
||||
(item) => notificationTypeForQuickFilter(item) !== filter,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -157,16 +168,17 @@ export const processNewNotificationForGroups = createAppAsyncThunk(
|
|||
|
||||
const showInColumn =
|
||||
activeFilter === 'all'
|
||||
? notificationShows[notification.type] !== false
|
||||
: activeFilter === notification.type ||
|
||||
(activeFilter === 'mention' && notification.type === 'quote');
|
||||
? notificationShows[notificationTypeForFilter(notification.type)] !==
|
||||
false
|
||||
: activeFilter === notificationTypeForQuickFilter(notification.type);
|
||||
|
||||
if (!showInColumn) return;
|
||||
|
||||
if (
|
||||
(notification.type === 'mention' ||
|
||||
notification.type === 'quote' ||
|
||||
notification.type === 'update' ||
|
||||
notification.type === 'quote') &&
|
||||
notification.type === 'quoted_update') &&
|
||||
notification.status?.filtered
|
||||
) {
|
||||
const filters = notification.status.filtered.filter((result) =>
|
||||
|
|
|
@ -31,7 +31,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
|
|||
|
||||
let filtered = false;
|
||||
|
||||
if (['mention', 'status', 'quote'].includes(notification.type) && notification.status.filtered) {
|
||||
if (['mention', 'quote', 'status'].includes(notification.type) && notification.status.filtered) {
|
||||
const filters = notification.status.filtered.filter(result => result.filter.context.includes('notifications'));
|
||||
|
||||
if (filters.some(result => result.filter.filter_action === 'hide')) {
|
||||
|
|
|
@ -3,7 +3,7 @@ import { browserHistory } from 'mastodon/components/router';
|
|||
import api from '../api';
|
||||
|
||||
import { ensureComposeIsVisible, setComposeToStatus } from './compose';
|
||||
import { importFetchedStatus, importFetchedStatuses, importFetchedAccount } from './importer';
|
||||
import { importFetchedStatus, importFetchedAccount } from './importer';
|
||||
import { fetchContext } from './statuses_typed';
|
||||
import { deleteFromTimelines } from './timelines';
|
||||
|
||||
|
@ -48,7 +48,18 @@ export function fetchStatusRequest(id, skipLoading) {
|
|||
};
|
||||
}
|
||||
|
||||
export function fetchStatus(id, forceFetch = false, alsoFetchContext = true) {
|
||||
/**
|
||||
* @param {string} id
|
||||
* @param {Object} [options]
|
||||
* @param {boolean} [options.forceFetch]
|
||||
* @param {boolean} [options.alsoFetchContext]
|
||||
* @param {string | null | undefined} [options.parentQuotePostId]
|
||||
*/
|
||||
export function fetchStatus(id, {
|
||||
forceFetch = false,
|
||||
alsoFetchContext = true,
|
||||
parentQuotePostId,
|
||||
} = {}) {
|
||||
return (dispatch, getState) => {
|
||||
const skipLoading = !forceFetch && getState().getIn(['statuses', id], null) !== null;
|
||||
|
||||
|
@ -66,7 +77,7 @@ export function fetchStatus(id, forceFetch = false, alsoFetchContext = true) {
|
|||
dispatch(importFetchedStatus(response.data));
|
||||
dispatch(fetchStatusSuccess(skipLoading));
|
||||
}).catch(error => {
|
||||
dispatch(fetchStatusFail(id, error, skipLoading));
|
||||
dispatch(fetchStatusFail(id, error, skipLoading, parentQuotePostId));
|
||||
});
|
||||
};
|
||||
}
|
||||
|
@ -78,21 +89,27 @@ export function fetchStatusSuccess(skipLoading) {
|
|||
};
|
||||
}
|
||||
|
||||
export function fetchStatusFail(id, error, skipLoading) {
|
||||
export function fetchStatusFail(id, error, skipLoading, parentQuotePostId) {
|
||||
return {
|
||||
type: STATUS_FETCH_FAIL,
|
||||
id,
|
||||
error,
|
||||
parentQuotePostId,
|
||||
skipLoading,
|
||||
skipAlert: true,
|
||||
};
|
||||
}
|
||||
|
||||
export function redraft(status, raw_text) {
|
||||
return {
|
||||
type: REDRAFT,
|
||||
status,
|
||||
raw_text,
|
||||
return (dispatch, getState) => {
|
||||
const maxOptions = getState().server.getIn(['server', 'configuration', 'polls', 'max_options']);
|
||||
|
||||
dispatch({
|
||||
type: REDRAFT,
|
||||
status,
|
||||
raw_text,
|
||||
maxOptions,
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -1,15 +1,28 @@
|
|||
import { apiRequestPost } from 'mastodon/api';
|
||||
import type { Status, StatusVisibility } from 'mastodon/models/status';
|
||||
import api, { apiRequestPost, getLinks } from 'mastodon/api';
|
||||
import type { ApiStatusJSON } from 'mastodon/api_types/statuses';
|
||||
import type { StatusVisibility } from 'mastodon/models/status';
|
||||
|
||||
export const apiReblog = (statusId: string, visibility: StatusVisibility) =>
|
||||
apiRequestPost<{ reblog: Status }>(`v1/statuses/${statusId}/reblog`, {
|
||||
apiRequestPost<{ reblog: ApiStatusJSON }>(`v1/statuses/${statusId}/reblog`, {
|
||||
visibility,
|
||||
});
|
||||
|
||||
export const apiUnreblog = (statusId: string) =>
|
||||
apiRequestPost<Status>(`v1/statuses/${statusId}/unreblog`);
|
||||
apiRequestPost<ApiStatusJSON>(`v1/statuses/${statusId}/unreblog`);
|
||||
|
||||
export const apiRevokeQuote = (quotedStatusId: string, statusId: string) =>
|
||||
apiRequestPost<Status>(
|
||||
apiRequestPost<ApiStatusJSON>(
|
||||
`v1/statuses/${quotedStatusId}/quotes/${statusId}/revoke`,
|
||||
);
|
||||
|
||||
export const apiGetQuotes = async (statusId: string, url?: string) => {
|
||||
const response = await api().request<ApiStatusJSON[]>({
|
||||
method: 'GET',
|
||||
url: url ?? `/api/v1/statuses/${statusId}/quotes`,
|
||||
});
|
||||
|
||||
return {
|
||||
statuses: response.data,
|
||||
links: getLinks(response),
|
||||
};
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@ import type { ApiReportJSON } from './reports';
|
|||
import type { ApiStatusJSON } from './statuses';
|
||||
|
||||
// See app/model/notification.rb
|
||||
export const allNotificationTypes = [
|
||||
export const allNotificationTypes: NotificationType[] = [
|
||||
'follow',
|
||||
'follow_request',
|
||||
'favourite',
|
||||
|
@ -31,7 +31,8 @@ export type NotificationWithStatusType =
|
|||
| 'mention'
|
||||
| 'quote'
|
||||
| 'poll'
|
||||
| 'update';
|
||||
| 'update'
|
||||
| 'quoted_update';
|
||||
|
||||
export type NotificationType =
|
||||
| NotificationWithStatusType
|
||||
|
|
|
@ -96,6 +96,7 @@ export interface ApiStatusJSON {
|
|||
replies_count: number;
|
||||
reblogs_count: number;
|
||||
favorites_count: number;
|
||||
quotes_count: number;
|
||||
edited_at?: string;
|
||||
|
||||
favorited?: boolean;
|
||||
|
|
|
@ -46,6 +46,14 @@ const messages = defineMessages({
|
|||
id: 'status.cannot_quote',
|
||||
defaultMessage: 'Author has disabled quoting on this post',
|
||||
},
|
||||
quote_followers_only: {
|
||||
id: 'status.quote_followers_only',
|
||||
defaultMessage: 'Only followers can quote this post',
|
||||
},
|
||||
quote_manual_review: {
|
||||
id: 'status.quote_manual_review',
|
||||
defaultMessage: 'Author will manually review',
|
||||
},
|
||||
quote_private: {
|
||||
id: 'status.quote_private',
|
||||
defaultMessage: 'Private posts cannot be quoted',
|
||||
|
@ -63,6 +71,10 @@ const messages = defineMessages({
|
|||
id: 'status.cannot_reblog',
|
||||
defaultMessage: 'This post cannot be boosted',
|
||||
},
|
||||
request_quote: {
|
||||
id: 'status.request_quote',
|
||||
defaultMessage: 'Request to quote',
|
||||
},
|
||||
});
|
||||
|
||||
interface ReblogButtonProps {
|
||||
|
@ -79,13 +91,21 @@ export const StatusReblogButton: FC<ReblogButtonProps> = ({
|
|||
const statusState = useAppSelector((state) =>
|
||||
selectStatusState(state, status),
|
||||
);
|
||||
const { isLoggedIn, isReblogged, isReblogAllowed, isQuoteAllowed } =
|
||||
statusState;
|
||||
const {
|
||||
isLoggedIn,
|
||||
isReblogged,
|
||||
isReblogAllowed,
|
||||
isQuoteAutomaticallyAccepted,
|
||||
isQuoteManuallyAccepted,
|
||||
} = statusState;
|
||||
const { iconComponent } = useMemo(
|
||||
() => reblogIconText(statusState),
|
||||
[statusState],
|
||||
);
|
||||
const disabled = !isQuoteAllowed && !isReblogAllowed;
|
||||
const disabled =
|
||||
!isQuoteAutomaticallyAccepted &&
|
||||
!isQuoteManuallyAccepted &&
|
||||
!isReblogAllowed;
|
||||
|
||||
const dispatch = useAppDispatch();
|
||||
const statusId = status.get('id') as string;
|
||||
|
@ -160,7 +180,12 @@ export const StatusReblogButton: FC<ReblogButtonProps> = ({
|
|||
)}
|
||||
icon='retweet'
|
||||
iconComponent={iconComponent}
|
||||
counter={counters ? (status.get('reblogs_count') as number) : undefined}
|
||||
counter={
|
||||
counters
|
||||
? (status.get('reblogs_count') as number) +
|
||||
(status.get('quotes_count') as number)
|
||||
: undefined
|
||||
}
|
||||
active={isReblogged}
|
||||
/>
|
||||
</Dropdown>
|
||||
|
@ -283,7 +308,12 @@ export const LegacyReblogButton: FC<ReblogButtonProps> = ({
|
|||
icon='retweet'
|
||||
iconComponent={iconComponent}
|
||||
onClick={!disabled ? handleClick : undefined}
|
||||
counter={counters ? (status.get('reblogs_count') as number) : undefined}
|
||||
counter={
|
||||
counters
|
||||
? (status.get('reblogs_count') as number) +
|
||||
(status.get('quotes_count') as number)
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
@ -310,9 +340,15 @@ const selectStatusState = createAppSelector(
|
|||
status.get('visibility') === 'private',
|
||||
isReblogged: !!status.get('reblogged'),
|
||||
isReblogAllowed: isPublic || isMineAndPrivate,
|
||||
isQuoteAllowed:
|
||||
isQuoteAutomaticallyAccepted:
|
||||
status.getIn(['quote_approval', 'current_user']) === 'automatic' &&
|
||||
(isPublic || isMineAndPrivate),
|
||||
isQuoteManuallyAccepted:
|
||||
status.getIn(['quote_approval', 'current_user']) === 'manual' &&
|
||||
(isPublic || isMineAndPrivate),
|
||||
isQuoteFollowersOnly:
|
||||
status.getIn(['quote_approval', 'automatic', 0]) === 'followers' ||
|
||||
status.getIn(['quote_approval', 'manual', 0]) === 'followers',
|
||||
};
|
||||
},
|
||||
);
|
||||
|
@ -354,7 +390,9 @@ function reblogIconText({
|
|||
|
||||
function quoteIconText({
|
||||
isMine,
|
||||
isQuoteAllowed,
|
||||
isQuoteAutomaticallyAccepted,
|
||||
isQuoteManuallyAccepted,
|
||||
isQuoteFollowersOnly,
|
||||
isPublic,
|
||||
}: StatusState): IconText {
|
||||
const iconText: IconText = {
|
||||
|
@ -362,12 +400,22 @@ function quoteIconText({
|
|||
iconComponent: FormatQuote,
|
||||
};
|
||||
|
||||
if (!isQuoteAllowed || (!isPublic && !isMine)) {
|
||||
iconText.meta = !isQuoteAllowed
|
||||
? messages.quote_cannot
|
||||
: messages.quote_private;
|
||||
iconText.iconComponent = FormatQuoteOff;
|
||||
if (!isPublic && !isMine) {
|
||||
iconText.disabled = true;
|
||||
iconText.iconComponent = FormatQuoteOff;
|
||||
iconText.meta = messages.quote_private;
|
||||
} else if (isQuoteAutomaticallyAccepted) {
|
||||
iconText.title = messages.quote;
|
||||
} else if (isQuoteManuallyAccepted) {
|
||||
iconText.title = messages.request_quote;
|
||||
iconText.meta = messages.quote_manual_review;
|
||||
} else {
|
||||
iconText.disabled = true;
|
||||
iconText.iconComponent = FormatQuoteOff;
|
||||
iconText.meta = isQuoteFollowersOnly
|
||||
? messages.quote_followers_only
|
||||
: messages.quote_cannot;
|
||||
}
|
||||
|
||||
return iconText;
|
||||
}
|
||||
|
|
|
@ -32,9 +32,7 @@ const QuoteWrapper: React.FC<{
|
|||
);
|
||||
};
|
||||
|
||||
const NestedQuoteLink: React.FC<{
|
||||
status: Status;
|
||||
}> = ({ status }) => {
|
||||
const NestedQuoteLink: React.FC<{ status: Status }> = ({ status }) => {
|
||||
const accountId = status.get('account') as string;
|
||||
const account = useAppSelector((state) =>
|
||||
accountId ? state.accounts.get(accountId) : undefined,
|
||||
|
@ -66,6 +64,7 @@ type GetStatusSelector = (
|
|||
interface QuotedStatusProps {
|
||||
quote: QuoteMap;
|
||||
contextType?: string;
|
||||
parentQuotePostId?: string | null;
|
||||
variant?: 'full' | 'link';
|
||||
nestingLevel?: number;
|
||||
onQuoteCancel?: () => void; // Used for composer.
|
||||
|
@ -74,22 +73,35 @@ interface QuotedStatusProps {
|
|||
export const QuotedStatus: React.FC<QuotedStatusProps> = ({
|
||||
quote,
|
||||
contextType,
|
||||
parentQuotePostId,
|
||||
nestingLevel = 1,
|
||||
variant = 'full',
|
||||
onQuoteCancel,
|
||||
}) => {
|
||||
const dispatch = useAppDispatch();
|
||||
const quoteState = useAppSelector((state) =>
|
||||
parentQuotePostId
|
||||
? state.statuses.getIn([parentQuotePostId, 'quote', 'state'])
|
||||
: quote.get('state'),
|
||||
);
|
||||
|
||||
const quotedStatusId = quote.get('quoted_status');
|
||||
const quoteState = quote.get('state');
|
||||
const status = useAppSelector((state) =>
|
||||
quotedStatusId ? state.statuses.get(quotedStatusId) : undefined,
|
||||
);
|
||||
|
||||
const shouldLoadQuote = !status?.get('isLoading') && quoteState !== 'deleted';
|
||||
|
||||
useEffect(() => {
|
||||
if (!status && quotedStatusId) {
|
||||
dispatch(fetchStatus(quotedStatusId));
|
||||
if (shouldLoadQuote && quotedStatusId) {
|
||||
dispatch(
|
||||
fetchStatus(quotedStatusId, {
|
||||
parentQuotePostId,
|
||||
alsoFetchContext: false,
|
||||
}),
|
||||
);
|
||||
}
|
||||
}, [status, quotedStatusId, dispatch]);
|
||||
}, [shouldLoadQuote, quotedStatusId, parentQuotePostId, dispatch]);
|
||||
|
||||
// In order to find out whether the quoted post should be completely hidden
|
||||
// due to a matching filter, we run it through the selector used by `status_container`.
|
||||
|
@ -174,6 +186,7 @@ export const QuotedStatus: React.FC<QuotedStatusProps> = ({
|
|||
{canRenderChildQuote && (
|
||||
<QuotedStatus
|
||||
quote={childQuote}
|
||||
parentQuotePostId={quotedStatusId}
|
||||
contextType={contextType}
|
||||
variant={
|
||||
nestingLevel === MAX_QUOTE_POSTS_NESTING_LEVEL ? 'link' : 'full'
|
||||
|
@ -209,7 +222,11 @@ export const StatusQuoteManager = (props: StatusQuoteManagerProps) => {
|
|||
if (quote) {
|
||||
return (
|
||||
<StatusContainer {...props}>
|
||||
<QuotedStatus quote={quote} contextType={props.contextType} />
|
||||
<QuotedStatus
|
||||
quote={quote}
|
||||
parentQuotePostId={status?.get('id') as string}
|
||||
contextType={props.contextType}
|
||||
/>
|
||||
</StatusContainer>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ const messages = defineMessages({
|
|||
reblog: { id: 'notification.reblog', defaultMessage: '{name} boosted your post' },
|
||||
status: { id: 'notification.status', defaultMessage: '{name} just posted' },
|
||||
update: { id: 'notification.update', defaultMessage: '{name} edited a post' },
|
||||
quoted_update: { id: 'notification.quoted_update', defaultMessage: '{name} edited a post you have quoted' },
|
||||
adminSignUp: { id: 'notification.admin.sign_up', defaultMessage: '{name} signed up' },
|
||||
adminReport: { id: 'notification.admin.report', defaultMessage: '{name} reported {target}' },
|
||||
relationshipsSevered: { id: 'notification.relationships_severance_event', defaultMessage: 'Lost connections with {name}' },
|
||||
|
@ -336,6 +337,41 @@ class Notification extends ImmutablePureComponent {
|
|||
);
|
||||
}
|
||||
|
||||
renderQuotedUpdate (notification, link) {
|
||||
const { intl, unread, status } = this.props;
|
||||
|
||||
if (!status) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<Hotkeys handlers={this.getHandlers()}>
|
||||
<div className={classNames('notification notification-update focusable', { unread })} tabIndex={0} aria-label={notificationForScreenReader(intl, intl.formatMessage(messages.update, { name: notification.getIn(['account', 'acct']) }), notification.get('created_at'))}>
|
||||
<div className='notification__message'>
|
||||
<Icon id='pencil' icon={EditIcon} />
|
||||
|
||||
<span title={notification.get('created_at')}>
|
||||
<FormattedMessage id='notification.quoted_update' defaultMessage='{name} edited a post you have quoted' values={{ name: link }} />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<StatusQuoteManager
|
||||
id={notification.get('status')}
|
||||
account={notification.get('account')}
|
||||
contextType='notifications'
|
||||
muted
|
||||
withDismiss
|
||||
hidden={this.props.hidden}
|
||||
getScrollPosition={this.props.getScrollPosition}
|
||||
updateScrollBottom={this.props.updateScrollBottom}
|
||||
cachedMediaWidth={this.props.cachedMediaWidth}
|
||||
cacheMediaWidth={this.props.cacheMediaWidth}
|
||||
/>
|
||||
</div>
|
||||
</Hotkeys>
|
||||
);
|
||||
}
|
||||
|
||||
renderPoll (notification, account) {
|
||||
const { intl, unread, status } = this.props;
|
||||
const ownPoll = me === account.get('id');
|
||||
|
@ -492,6 +528,8 @@ class Notification extends ImmutablePureComponent {
|
|||
return this.renderStatus(notification, link);
|
||||
case 'update':
|
||||
return this.renderUpdate(notification, link);
|
||||
case 'quoted_update':
|
||||
return this.renderQuotedUpdate(notification, link);
|
||||
case 'poll':
|
||||
return this.renderPoll(notification, account);
|
||||
case 'severed_relationships':
|
||||
|
|
|
@ -16,6 +16,7 @@ import { NotificationMention } from './notification_mention';
|
|||
import { NotificationModerationWarning } from './notification_moderation_warning';
|
||||
import { NotificationPoll } from './notification_poll';
|
||||
import { NotificationQuote } from './notification_quote';
|
||||
import { NotificationQuotedUpdate } from './notification_quoted_update';
|
||||
import { NotificationReblog } from './notification_reblog';
|
||||
import { NotificationSeveredRelationships } from './notification_severed_relationships';
|
||||
import { NotificationStatus } from './notification_status';
|
||||
|
@ -115,6 +116,14 @@ export const NotificationGroup: React.FC<{
|
|||
<NotificationUpdate unread={unread} notification={notificationGroup} />
|
||||
);
|
||||
break;
|
||||
case 'quoted_update':
|
||||
content = (
|
||||
<NotificationQuotedUpdate
|
||||
unread={unread}
|
||||
notification={notificationGroup}
|
||||
/>
|
||||
);
|
||||
break;
|
||||
case 'admin.sign_up':
|
||||
content = (
|
||||
<NotificationAdminSignUp
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import EditIcon from '@/material-icons/400-24px/edit.svg?react';
|
||||
import type { NotificationGroupQuotedUpdate } from 'mastodon/models/notification_group';
|
||||
|
||||
import type { LabelRenderer } from './notification_group_with_status';
|
||||
import { NotificationWithStatus } from './notification_with_status';
|
||||
|
||||
const labelRenderer: LabelRenderer = (displayedName) => (
|
||||
<FormattedMessage
|
||||
id='notification.quoted_update'
|
||||
defaultMessage='{name} edited a post you have quoted'
|
||||
values={{ name: displayedName }}
|
||||
/>
|
||||
);
|
||||
|
||||
export const NotificationQuotedUpdate: React.FC<{
|
||||
notification: NotificationGroupQuotedUpdate;
|
||||
unread: boolean;
|
||||
}> = ({ notification, unread }) => (
|
||||
<NotificationWithStatus
|
||||
type='update'
|
||||
icon={EditIcon}
|
||||
iconId='edit'
|
||||
accountIds={notification.sampleAccountIds}
|
||||
count={notification.notifications_count}
|
||||
statusId={notification.statusId}
|
||||
labelRenderer={labelRenderer}
|
||||
unread={unread}
|
||||
/>
|
||||
);
|
|
@ -233,7 +233,10 @@ export const Footer: React.FC<{
|
|||
icon='retweet'
|
||||
iconComponent={reblogIconComponent}
|
||||
onClick={handleReblogClick}
|
||||
counter={status.get('reblogs_count') as number}
|
||||
counter={
|
||||
(status.get('reblogs_count') as number) +
|
||||
(status.get('quotes_count') as number)
|
||||
}
|
||||
/>
|
||||
|
||||
<IconButton
|
||||
|
|
113
app/javascript/mastodon/features/quotes/index.tsx
Normal file
113
app/javascript/mastodon/features/quotes/index.tsx
Normal file
|
@ -0,0 +1,113 @@
|
|||
import { useCallback, useEffect } from 'react';
|
||||
|
||||
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
|
||||
|
||||
import { Helmet } from 'react-helmet';
|
||||
|
||||
import { List as ImmutableList } from 'immutable';
|
||||
|
||||
import RefreshIcon from '@/material-icons/400-24px/refresh.svg?react';
|
||||
import { fetchQuotes } from 'mastodon/actions/interactions_typed';
|
||||
import { ColumnHeader } from 'mastodon/components/column_header';
|
||||
import { Icon } from 'mastodon/components/icon';
|
||||
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
|
||||
import StatusList from 'mastodon/components/status_list';
|
||||
import { useAppDispatch, useAppSelector } from 'mastodon/store';
|
||||
|
||||
import Column from '../ui/components/column';
|
||||
|
||||
const messages = defineMessages({
|
||||
refresh: { id: 'refresh', defaultMessage: 'Refresh' },
|
||||
});
|
||||
|
||||
const emptyList = ImmutableList();
|
||||
|
||||
export const Quotes: React.FC<{
|
||||
multiColumn?: boolean;
|
||||
params?: { statusId: string };
|
||||
}> = ({ multiColumn, params }) => {
|
||||
const intl = useIntl();
|
||||
const dispatch = useAppDispatch();
|
||||
|
||||
const statusId = params?.statusId;
|
||||
|
||||
const isCorrectStatusId: boolean = useAppSelector(
|
||||
(state) => state.status_lists.getIn(['quotes', 'statusId']) === statusId,
|
||||
);
|
||||
const statusIds = useAppSelector((state) =>
|
||||
state.status_lists.getIn(['quotes', 'items'], emptyList),
|
||||
);
|
||||
const nextUrl = useAppSelector(
|
||||
(state) =>
|
||||
state.status_lists.getIn(['quotes', 'next']) as string | undefined,
|
||||
);
|
||||
const isLoading = useAppSelector((state) =>
|
||||
state.status_lists.getIn(['quotes', 'isLoading'], true),
|
||||
);
|
||||
const hasMore = !!nextUrl;
|
||||
|
||||
useEffect(() => {
|
||||
if (statusId) void dispatch(fetchQuotes({ statusId }));
|
||||
}, [dispatch, statusId]);
|
||||
|
||||
const handleLoadMore = useCallback(() => {
|
||||
if (statusId && isCorrectStatusId && nextUrl)
|
||||
void dispatch(fetchQuotes({ statusId, next: nextUrl }));
|
||||
}, [dispatch, statusId, isCorrectStatusId, nextUrl]);
|
||||
|
||||
const handleRefresh = useCallback(() => {
|
||||
if (statusId) void dispatch(fetchQuotes({ statusId }));
|
||||
}, [dispatch, statusId]);
|
||||
|
||||
if (!statusIds || !isCorrectStatusId) {
|
||||
return (
|
||||
<Column>
|
||||
<LoadingIndicator />
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
||||
const emptyMessage = (
|
||||
<FormattedMessage
|
||||
id='status.quotes.empty'
|
||||
defaultMessage='No one has quoted this post yet. When someone does, it will show up here.'
|
||||
/>
|
||||
);
|
||||
|
||||
return (
|
||||
<Column bindToDocument={!multiColumn}>
|
||||
<ColumnHeader
|
||||
showBackButton
|
||||
multiColumn={multiColumn}
|
||||
extraButton={
|
||||
<button
|
||||
type='button'
|
||||
className='column-header__button'
|
||||
title={intl.formatMessage(messages.refresh)}
|
||||
aria-label={intl.formatMessage(messages.refresh)}
|
||||
onClick={handleRefresh}
|
||||
>
|
||||
<Icon id='refresh' icon={RefreshIcon} />
|
||||
</button>
|
||||
}
|
||||
/>
|
||||
|
||||
<StatusList
|
||||
scrollKey='quotes_timeline'
|
||||
statusIds={statusIds}
|
||||
onLoadMore={handleLoadMore}
|
||||
hasMore={hasMore}
|
||||
isLoading={isLoading}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
|
||||
<Helmet>
|
||||
<meta name='robots' content='noindex' />
|
||||
</Helmet>
|
||||
</Column>
|
||||
);
|
||||
};
|
||||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default Quotes;
|
|
@ -32,7 +32,7 @@ const Embed: React.FC<{ id: string }> = ({ id }) => {
|
|||
const dispatchRenderSignal = useRenderSignal();
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(fetchStatus(id, false, false));
|
||||
dispatch(fetchStatus(id, { alsoFetchContext: false }));
|
||||
}, [dispatch, id]);
|
||||
|
||||
const handleToggleHidden = useCallback(() => {
|
||||
|
|
|
@ -31,6 +31,7 @@ import { VisibilityIcon } from 'mastodon/components/visibility_icon';
|
|||
import { Audio } from 'mastodon/features/audio';
|
||||
import scheduleIdleTask from 'mastodon/features/ui/util/schedule_idle_task';
|
||||
import { Video } from 'mastodon/features/video';
|
||||
import { me } from 'mastodon/initial_state';
|
||||
|
||||
import Card from './card';
|
||||
|
||||
|
@ -127,6 +128,7 @@ export const DetailedStatus: React.FC<{
|
|||
let media;
|
||||
let applicationLink;
|
||||
let reblogLink;
|
||||
let quotesLink;
|
||||
let attachmentAspectRatio;
|
||||
|
||||
if (properStatus.get('media_attachments').getIn([0, 'type']) === 'video') {
|
||||
|
@ -279,6 +281,39 @@ export const DetailedStatus: React.FC<{
|
|||
);
|
||||
}
|
||||
|
||||
if (['private', 'direct'].includes(status.get('visibility') as string)) {
|
||||
quotesLink = '';
|
||||
} else if (status.getIn(['account', 'id']) === me) {
|
||||
quotesLink = (
|
||||
<Link
|
||||
to={`/@${status.getIn(['account', 'acct'])}/${status.get('id')}/quotes`}
|
||||
className='detailed-status__link'
|
||||
>
|
||||
<span className='detailed-status__quotes'>
|
||||
<AnimatedNumber value={status.get('quotes_count')} />
|
||||
</span>
|
||||
<FormattedMessage
|
||||
id='status.quotes'
|
||||
defaultMessage='{count, plural, one {quote} other {quotes}}'
|
||||
values={{ count: status.get('quotes_count') }}
|
||||
/>
|
||||
</Link>
|
||||
);
|
||||
} else {
|
||||
quotesLink = (
|
||||
<span className='detailed-status__link'>
|
||||
<span className='detailed-status__quotes'>
|
||||
<AnimatedNumber value={status.get('quotes_count')} />
|
||||
</span>
|
||||
<FormattedMessage
|
||||
id='status.quotes'
|
||||
defaultMessage='{count, plural, one {quote} other {quotes}}'
|
||||
values={{ count: status.get('quotes_count') }}
|
||||
/>
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
||||
const favouriteLink = (
|
||||
<Link
|
||||
to={`/@${status.getIn(['account', 'acct'])}/${status.get('id')}/favourites`}
|
||||
|
@ -381,7 +416,10 @@ export const DetailedStatus: React.FC<{
|
|||
{hashtagBar}
|
||||
|
||||
{status.get('quote') && (
|
||||
<QuotedStatus quote={status.get('quote')} />
|
||||
<QuotedStatus
|
||||
quote={status.get('quote')}
|
||||
parentQuotePostId={status.get('id')}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
|
@ -420,6 +458,8 @@ export const DetailedStatus: React.FC<{
|
|||
<div className='detailed-status__meta__line'>
|
||||
{reblogLink}
|
||||
{reblogLink && <>·</>}
|
||||
{quotesLink}
|
||||
{quotesLink && <>·</>}
|
||||
{favouriteLink}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -38,7 +38,7 @@ class FilterModal extends ImmutablePureComponent {
|
|||
|
||||
handleSuccess = () => {
|
||||
const { dispatch, statusId } = this.props;
|
||||
dispatch(fetchStatus(statusId, true));
|
||||
dispatch(fetchStatus(statusId, {forceFetch: true}));
|
||||
this.setState({ isSubmitting: false, isSubmitted: true, step: 'submitted' });
|
||||
};
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ const messages = defineMessages({
|
|||
},
|
||||
quoteNobody: {
|
||||
id: 'visibility_modal.quote_nobody',
|
||||
defaultMessage: 'No one',
|
||||
defaultMessage: 'Just me',
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -253,7 +253,7 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
|||
items={quoteItems}
|
||||
onChange={handleQuotePolicyChange}
|
||||
classPrefix='visibility-dropdown'
|
||||
current={quotePolicy}
|
||||
current={disableQuotePolicy ? 'nobody' : quotePolicy}
|
||||
title={intl.formatMessage(messages.buttonTitle)}
|
||||
disabled={disableQuotePolicy}
|
||||
id={quoteDropdownId}
|
||||
|
@ -302,7 +302,7 @@ const QuotePolicyHelper: FC<{
|
|||
<p className='visibility-dropdown__helper'>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.private_quoting'
|
||||
defaultMessage="Follower-only posts can't be quoted."
|
||||
defaultMessage="Follower-only posts authored on Mastodon can't be quoted by others."
|
||||
/>
|
||||
</p>
|
||||
);
|
||||
|
@ -313,7 +313,7 @@ const QuotePolicyHelper: FC<{
|
|||
<p className='visibility-dropdown__helper'>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.direct_quoting'
|
||||
defaultMessage="Private mentions can't be quoted."
|
||||
defaultMessage="Private mentions authored on Mastodon can't be quoted by others."
|
||||
/>
|
||||
</p>
|
||||
);
|
||||
|
|
|
@ -75,6 +75,7 @@ import {
|
|||
PrivacyPolicy,
|
||||
TermsOfService,
|
||||
AccountFeatured,
|
||||
Quotes,
|
||||
} from './util/async-components';
|
||||
import { ColumnsContextProvider } from './util/columns_context';
|
||||
import { focusColumn, getFocusedItemIndex, focusItemSibling } from './util/focusUtils';
|
||||
|
@ -209,6 +210,7 @@ class SwitchingColumnsArea extends PureComponent {
|
|||
<WrappedRoute path='/@:acct/:statusId' exact component={Status} content={children} />
|
||||
<WrappedRoute path='/@:acct/:statusId/reblogs' component={Reblogs} content={children} />
|
||||
<WrappedRoute path='/@:acct/:statusId/favourites' component={Favourites} content={children} />
|
||||
<WrappedRoute path='/@:acct/:statusId/quotes' component={Quotes} content={children} />
|
||||
|
||||
{/* Legacy routes, cannot be easily factored with other routes because they share a param name */}
|
||||
<WrappedRoute path='/timelines/tag/:id' component={HashtagTimeline} content={children} />
|
||||
|
|
|
@ -86,6 +86,10 @@ export function Favourites () {
|
|||
return import('../../favourites');
|
||||
}
|
||||
|
||||
export function Quotes () {
|
||||
return import('../../quotes');
|
||||
}
|
||||
|
||||
export function FollowRequests () {
|
||||
return import('../../follow_requests');
|
||||
}
|
||||
|
|
|
@ -946,14 +946,11 @@
|
|||
"video.volume_up": "Həcmi artır",
|
||||
"visibility_modal.button_title": "Görünməni ayarla",
|
||||
"visibility_modal.header": "Görünmə və qarşılıqlı əlaqə",
|
||||
"visibility_modal.helper.direct_quoting": "Şəxsi adçəkmələr, sitat gətirilə bilməz.",
|
||||
"visibility_modal.helper.privacy_editing": "Dərc edilən göndərişlərin görünməsi dəyişdirilə bilməz.",
|
||||
"visibility_modal.helper.private_quoting": "Yalnız izləyicilərə xas göndərişlər, sitat gətirilə bilməz.",
|
||||
"visibility_modal.helper.unlisted_quoting": "İnsanlar sizdən sitat gətirdiyi zaman, onların göndərişləri də trend zaman xəttindən gizlədiləcək.",
|
||||
"visibility_modal.instructions": "Bu göndərişlə kimin əlaqə qura biləcəyini idarə edin. Qlobal ayarlar <link>Tərcihlər > Digər</link> bölməsinin altında tapıla bilər.",
|
||||
"visibility_modal.privacy_label": "Gizlilik",
|
||||
"visibility_modal.quote_followers": "Yalnız izləyicilər",
|
||||
"visibility_modal.quote_label": "Kimin sitat gətirə biləcəyini dəyişdir",
|
||||
"visibility_modal.quote_nobody": "Heç kim",
|
||||
"visibility_modal.quote_public": "Hər kəs"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Адкрыць хатнюю храналагічную стужку",
|
||||
"keyboard_shortcuts.hotkey": "Спалучэнне клавіш",
|
||||
"keyboard_shortcuts.legend": "Паказаць легенду",
|
||||
"keyboard_shortcuts.load_more": "Навесці на кнопку \"Загрузіць болей\"",
|
||||
"keyboard_shortcuts.local": "Адкрыць хатнюю храналагічную стужку",
|
||||
"keyboard_shortcuts.mention": "Згадаць аўтара",
|
||||
"keyboard_shortcuts.muted": "Адкрыць спіс ігнараваных карыстальнікаў",
|
||||
|
@ -738,11 +739,18 @@
|
|||
"privacy.private.short": "Падпісчыкі",
|
||||
"privacy.public.long": "Усе, хто ёсць і каго няма ў Mastodon",
|
||||
"privacy.public.short": "Публічны",
|
||||
"privacy.quote.anyone": "{visibility}, усе могуць цытаваць",
|
||||
"privacy.quote.disabled": "{visibility}, цытаты адключаныя",
|
||||
"privacy.quote.limited": "{visibility}, абмежаваныя цытаты",
|
||||
"privacy.unlisted.additional": "Паводзіць сябе гэтак жа, як і публічны, за выключэннем таго, што допіс не будзе адлюстроўвацца ў жывой стужцы, хэштэгах, аглядзе або ў пошуку Mastodon, нават калі Вы ўключылі бачнасць у пошуку ў наладах.",
|
||||
"privacy.unlisted.long": "Менш фанфар ад алгарытмаў",
|
||||
"privacy.unlisted.short": "Ціхі публічны",
|
||||
"privacy_policy.last_updated": "Адноўлена {date}",
|
||||
"privacy_policy.title": "Палітыка канфідэнцыйнасці",
|
||||
"quote_error.poll": "Нельга цытаваць з апытаннямі.",
|
||||
"quote_error.quote": "За раз дазволена рабіць толькі адну цытату.",
|
||||
"quote_error.unauthorized": "Вы не ўвайшлі, каб цытаваць гэты допіс.",
|
||||
"quote_error.upload": "Нельга цытаваць з медыя далучэннямі.",
|
||||
"recommended": "Рэкамендаванае",
|
||||
"refresh": "Абнавiць",
|
||||
"regeneration_indicator.please_stand_by": "Пачакайце.",
|
||||
|
@ -944,6 +952,7 @@
|
|||
"upload_button.label": "Дадаць выяву, відэа- ці аўдыяфайл",
|
||||
"upload_error.limit": "Перавышана колькасць файлаў.",
|
||||
"upload_error.poll": "Немагчыма прымацаваць файл да апытання.",
|
||||
"upload_error.quote": "Нельга запампоўваць файл пры цытаванні.",
|
||||
"upload_form.drag_and_drop.instructions": "Каб абраць медыя ўлажэнне, націсніце прабел ці Enter. Падчас перасоўвання выкарыстоўвайце кнопкі са стрэлкамі, каб пасунуць медыя далучэнне ў любым напрамку. Націсніце прабел ці Enter зноў, каб перасунуць медыя далучэнне ў новае месца, або Escape для адмены.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Перасоўванне адмененае. Медыя ўлажэнне {item} на месцы.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Медыя ўлажэнне {item} на месцы.",
|
||||
|
@ -969,14 +978,12 @@
|
|||
"video.volume_up": "Павялічыць гучнасць",
|
||||
"visibility_modal.button_title": "Вызначыць бачнасць",
|
||||
"visibility_modal.header": "Бачнасць і ўзаемадзеянне",
|
||||
"visibility_modal.helper.direct_quoting": "Прыватныя згадванні нельга цытаваць.",
|
||||
"visibility_modal.helper.privacy_editing": "Апублікаваным допісам нельга змяняць бачнасць.",
|
||||
"visibility_modal.helper.private_quoting": "Допісы для падпісчыкаў нельга цытаваць.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Калі людзі працытуюць Вас, іх допіс таксама будзе схаваны ад стужкі трэндаў.",
|
||||
"visibility_modal.instructions": "Кантралюйце, хто можа ўзаемадзейнічаць з Вашым допісам. Глабальныя налады можна знайсці ў <link>Налады > Іншае</link>.",
|
||||
"visibility_modal.privacy_label": "Прыватнасць",
|
||||
"visibility_modal.quote_followers": "Толькі падпісчыкі",
|
||||
"visibility_modal.quote_label": "Змяніць, хто можа цытаваць",
|
||||
"visibility_modal.quote_nobody": "Ніхто",
|
||||
"visibility_modal.quote_public": "Усе"
|
||||
"visibility_modal.quote_public": "Усе",
|
||||
"visibility_modal.save": "Захаваць"
|
||||
}
|
||||
|
|
|
@ -952,12 +952,10 @@
|
|||
"video.volume_up": "Увеличаване на звука",
|
||||
"visibility_modal.button_title": "Задаване на видимост",
|
||||
"visibility_modal.header": "Видимост и взаимодействие",
|
||||
"visibility_modal.helper.direct_quoting": "Частни споменавания не може да се цитират.",
|
||||
"visibility_modal.helper.privacy_editing": "Публикуваните публикации не може да променят видимостта си.",
|
||||
"visibility_modal.instructions": "Управлявайте кой може да взаимодейства с тази публикация. Глобалните настройки може да се намерят под <link>Предпочитания> Друго</link>.",
|
||||
"visibility_modal.privacy_label": "Поверителност",
|
||||
"visibility_modal.quote_followers": "Само последователи",
|
||||
"visibility_modal.quote_label": "Промяна кой може да цитира",
|
||||
"visibility_modal.quote_nobody": "Никого",
|
||||
"visibility_modal.quote_public": "Някой"
|
||||
}
|
||||
|
|
|
@ -640,6 +640,5 @@
|
|||
"video.play": "Lenn",
|
||||
"visibility_modal.privacy_label": "Prevezded",
|
||||
"visibility_modal.quote_followers": "Tud koumanantet hepken",
|
||||
"visibility_modal.quote_nobody": "Den ebet",
|
||||
"visibility_modal.quote_public": "Pep den"
|
||||
}
|
||||
|
|
|
@ -968,14 +968,12 @@
|
|||
"video.volume_up": "Apuja el volum",
|
||||
"visibility_modal.button_title": "Establiu la visibilitat",
|
||||
"visibility_modal.header": "Visibilitat i interacció",
|
||||
"visibility_modal.helper.direct_quoting": "No es poden citar les mencions privades.",
|
||||
"visibility_modal.helper.privacy_editing": "No es pot canviar la visibilitat de les publicacions ja fetes.",
|
||||
"visibility_modal.helper.private_quoting": "No es poden citar les publicacions només per a seguidors.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quan la gent et citi les seves publicacions estaran amagades de les línies de temps de tendències.",
|
||||
"visibility_modal.instructions": "Controleu qui pot interactuar amb aquesta publicació. La configuració global es troba a <link>Preferències>Altres</link>.",
|
||||
"visibility_modal.privacy_label": "Privacitat",
|
||||
"visibility_modal.quote_followers": "Només seguidors",
|
||||
"visibility_modal.quote_label": "Canvieu qui us pot citar",
|
||||
"visibility_modal.quote_nobody": "Ningú",
|
||||
"visibility_modal.quote_public": "Qualsevol"
|
||||
"visibility_modal.quote_public": "Qualsevol",
|
||||
"visibility_modal.save": "Desa"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Otevřít domovskou časovou osu",
|
||||
"keyboard_shortcuts.hotkey": "Klávesová zkratka",
|
||||
"keyboard_shortcuts.legend": "Zobrazit tuto legendu",
|
||||
"keyboard_shortcuts.load_more": "Zvýraznit tlačítko „Načíst více“",
|
||||
"keyboard_shortcuts.local": "Otevřít místní časovou osu",
|
||||
"keyboard_shortcuts.mention": "Zmínit autora",
|
||||
"keyboard_shortcuts.muted": "Otevřít seznam skrytých uživatelů",
|
||||
|
@ -738,11 +739,17 @@
|
|||
"privacy.private.short": "Sledující",
|
||||
"privacy.public.long": "Kdokoliv na Mastodonu i mimo něj",
|
||||
"privacy.public.short": "Veřejné",
|
||||
"privacy.quote.anyone": "{visibility}, kdokoliv může citovat",
|
||||
"privacy.quote.disabled": "{visibility}, citování je zakázáno",
|
||||
"privacy.quote.limited": "{visibility}, citování je omezené",
|
||||
"privacy.unlisted.additional": "Chová se stejně jako veřejný, až na to, že se příspěvek neobjeví v živých kanálech nebo hashtazích, v objevování nebo vyhledávání na Mastodonu, a to i když je účet nastaven tak, aby se zde všude tyto příspěvky zobrazovaly.",
|
||||
"privacy.unlisted.long": "Méně algoritmických fanfár",
|
||||
"privacy.unlisted.short": "Ztišené veřejné",
|
||||
"privacy_policy.last_updated": "Naposledy aktualizováno {date}",
|
||||
"privacy_policy.title": "Zásady ochrany osobních údajů",
|
||||
"quote_error.poll": "Citování není u dotazníků povoleno.",
|
||||
"quote_error.unauthorized": "Nemáte oprávnění citovat tento příspěvek.",
|
||||
"quote_error.upload": "Není povoleno citovat s přílohami.",
|
||||
"recommended": "Doporučeno",
|
||||
"refresh": "Obnovit",
|
||||
"regeneration_indicator.please_stand_by": "Počkej prosím.",
|
||||
|
@ -944,6 +951,7 @@
|
|||
"upload_button.label": "Přidat obrázky, video nebo audio soubor",
|
||||
"upload_error.limit": "Byl překročen limit nahraných souborů.",
|
||||
"upload_error.poll": "Nahrávání souborů není povoleno s anketami.",
|
||||
"upload_error.quote": "Nahrávání souboru není povoleno s citacemi.",
|
||||
"upload_form.drag_and_drop.instructions": "Chcete-li zvednout přílohu, stiskněte mezerník nebo enter. Při přetažení použijte klávesnicové šipky k přesunutí mediální přílohy v libovolném směru. Stiskněte mezerník nebo enter pro vložení přílohy do nové pozice, nebo stiskněte Esc pro ukončení.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Přetažení bylo zrušeno. Příloha {item} byla vrácena.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Příloha {item} byla vrácena.",
|
||||
|
@ -969,14 +977,12 @@
|
|||
"video.volume_up": "Zvýšit hlasitost",
|
||||
"visibility_modal.button_title": "Nastavit viditelnost",
|
||||
"visibility_modal.header": "Viditelnost a interakce",
|
||||
"visibility_modal.helper.direct_quoting": "Soukromé zmínky nemohou být citovány.",
|
||||
"visibility_modal.helper.privacy_editing": "Publikované příspěvky nemohou změnit svou viditelnost.",
|
||||
"visibility_modal.helper.private_quoting": "Nelze citovat příspěvky, které jsou pouze pro sledující.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Když vás lidé citují, jejich příspěvek bude v časové ose populárních příspěvků také skryt.",
|
||||
"visibility_modal.instructions": "Kontrolujte, kdo může interagovat s tímto příspěvkem. Globální nastavení můžete najít pod <link>Nastavení > Ostatní</link>.",
|
||||
"visibility_modal.privacy_label": "Soukromí",
|
||||
"visibility_modal.quote_followers": "Pouze sledující",
|
||||
"visibility_modal.quote_label": "Změňte, kdo může citovat",
|
||||
"visibility_modal.quote_nobody": "Nikdo",
|
||||
"visibility_modal.quote_public": "Kdokoliv"
|
||||
"visibility_modal.quote_public": "Kdokoliv",
|
||||
"visibility_modal.save": "Uložit"
|
||||
}
|
||||
|
|
|
@ -964,14 +964,11 @@
|
|||
"video.volume_up": "Lefel sain i fyny",
|
||||
"visibility_modal.button_title": "Gosod gwelededd",
|
||||
"visibility_modal.header": "Gwelededd a rhyngweithio",
|
||||
"visibility_modal.helper.direct_quoting": "Does dim modd dyfynnu crybwylliadau preifat.",
|
||||
"visibility_modal.helper.privacy_editing": "Does dim modd newid gwelededd postiadau wedi'u cyhoeddi.",
|
||||
"visibility_modal.helper.private_quoting": "Does dim modd dyfynnu postiadau dilynwyr yn unig.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Pan fydd pobl yn eich dyfynnu, bydd eu postiad hefyd yn cael ei guddio rhag llinellau amser sy'n trendio.",
|
||||
"visibility_modal.instructions": "Rheolwch bwy all ryngweithio â'r postiad hwn. Mae modd dod o hyd i osodiadau eang o dan <link>Dewisiadau > Arall</link>.",
|
||||
"visibility_modal.privacy_label": "Preifatrwydd",
|
||||
"visibility_modal.quote_followers": "Dilynwyr yn unig",
|
||||
"visibility_modal.quote_label": "Newid pwy all ddyfynnu",
|
||||
"visibility_modal.quote_nobody": "Neb",
|
||||
"visibility_modal.quote_public": "Pawb"
|
||||
}
|
||||
|
|
|
@ -292,7 +292,7 @@
|
|||
"domain_pill.your_handle": "Dit handle:",
|
||||
"domain_pill.your_server": "Dit digitale hjem, hvor alle dine indlæg lever. Synes ikke om den her server? Du kan til enhver tid rykke over på en anden server og beholde dine følgere.",
|
||||
"domain_pill.your_username": "Din entydige identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.",
|
||||
"dropdown.empty": "Vælg en indstillingsmulighed",
|
||||
"dropdown.empty": "Vælg en indstilling",
|
||||
"embed.instructions": "Indlejr dette indlæg på din hjemmeside ved at kopiere nedenstående kode.",
|
||||
"embed.preview": "Sådan kommer det til at se ud:",
|
||||
"emoji_button.activity": "Aktivitet",
|
||||
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Åbn hjem-tidslinje",
|
||||
"keyboard_shortcuts.hotkey": "Hurtigtast",
|
||||
"keyboard_shortcuts.legend": "Vis dette symbol",
|
||||
"keyboard_shortcuts.load_more": "Fokusér knappen \"Indlæs flere\"",
|
||||
"keyboard_shortcuts.local": "Åbn lokal tidslinje",
|
||||
"keyboard_shortcuts.mention": "Omtal forfatter",
|
||||
"keyboard_shortcuts.muted": "Åbn listen over skjulte brugere",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Din konto er suspenderet.",
|
||||
"notification.own_poll": "Din afstemning er afsluttet",
|
||||
"notification.poll": "En afstemning, hvori du har stemt, er slut",
|
||||
"notification.quoted_update": "{name} redigerede et indlæg, man har citeret",
|
||||
"notification.reblog": "{name} fremhævede dit indlæg",
|
||||
"notification.reblog.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> fremhævede dit indlæg",
|
||||
"notification.relationships_severance_event": "Mistede forbindelser med {name}",
|
||||
|
@ -738,12 +740,18 @@
|
|||
"privacy.private.short": "Følgere",
|
||||
"privacy.public.long": "Alle på og udenfor Mastodon",
|
||||
"privacy.public.short": "Offentlig",
|
||||
"privacy.quote.anyone": "{visibility}, alle kan citere",
|
||||
"privacy.quote.disabled": "{visibility}, citering deaktiveret",
|
||||
"privacy.quote.limited": "{visibility}, citering begrænset",
|
||||
"privacy.unlisted.additional": "Dette svarer til offentlig, bortset fra at indlægget ikke vises i live-feeds eller hashtags, udforsk eller Mastodon-søgning, selvom du har tilvalgt dette for kontoen.",
|
||||
"privacy.unlisted.long": "Færre algoritmiske fanfarer",
|
||||
"privacy.unlisted.short": "Offentlig (stille)",
|
||||
"privacy_policy.last_updated": "Senest opdateret {date}",
|
||||
"privacy_policy.title": "Privatlivspolitik",
|
||||
"quote_error.unauthorized": "Du er ikke autoriseret til at citere dette indlæg.",
|
||||
"quote_error.poll": "Citering ikke tilladt i afstemninger.",
|
||||
"quote_error.quote": "Kun ét citat ad gangen er tilladt.",
|
||||
"quote_error.unauthorized": "Man har ikke tilladelse til at citere dette indlæg.",
|
||||
"quote_error.upload": "Citering ikke tilladt ved medievedhæftninger.",
|
||||
"recommended": "Anbefalet",
|
||||
"refresh": "Genindlæs",
|
||||
"regeneration_indicator.please_stand_by": "Vent venligst.",
|
||||
|
@ -893,6 +901,7 @@
|
|||
"status.quote_policy_change": "Ændr hvem der kan citere",
|
||||
"status.quote_post_author": "Citerede et indlæg fra @{name}",
|
||||
"status.quote_private": "Private indlæg kan ikke citeres",
|
||||
"status.quotes": "{count, plural, one {citat} other {citater}}",
|
||||
"status.read_more": "Læs mere",
|
||||
"status.reblog": "Fremhæv",
|
||||
"status.reblog_private": "Fremhæv med oprindelig synlighed",
|
||||
|
@ -945,6 +954,7 @@
|
|||
"upload_button.label": "Tilføj billed-, video- eller lydfil(er)",
|
||||
"upload_error.limit": "Grænse for filupload nået.",
|
||||
"upload_error.poll": "Filupload ikke tilladt for afstemninger.",
|
||||
"upload_error.quote": "Fil-upload ikke tilladt i citater.",
|
||||
"upload_form.drag_and_drop.instructions": "For at opsamle en medievedhæftning, tryk på Mellemrum eller Retur. Mens der trækkes, benyt piletasterne til at flytte medievedhæftningen i en given retning. Tryk på Mellemrum eller Retur igen for at slippe medievedhæftningen på den nye position, eller tryk på Escape for at afbryde.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Træk blev afbrudt. Medievedhæftningen {item} blev sluppet.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Medievedhæftningen {item} er sluppet.",
|
||||
|
@ -970,14 +980,15 @@
|
|||
"video.volume_up": "Lydstyrke op",
|
||||
"visibility_modal.button_title": "Indstil synlighed",
|
||||
"visibility_modal.header": "Synlighed og interaktion",
|
||||
"visibility_modal.helper.direct_quoting": "Private omtaler kan ikke citeres.",
|
||||
"visibility_modal.helper.direct_quoting": "Private omtaler forfattet på Mastodon kan ikke citeres af andre.",
|
||||
"visibility_modal.helper.privacy_editing": "Publicerede indlægs synlighed kan ikke ændres.",
|
||||
"visibility_modal.helper.private_quoting": "Indlæg kun for følgere kan ikke citeres.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Når man citeres af andre, skjules deres indlæg også på tendenstidslinjer.",
|
||||
"visibility_modal.helper.private_quoting": "Kun-følger indlæg forfattet på Mastodon kan ikke citeres af andre.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Når folk citerer dig, vil deres indlæg også blive skjult fra trendtidslinjer.",
|
||||
"visibility_modal.instructions": "Styr, hvem der kan interagere med dette indlæg. Globale indstillinger findes under <link>Præferencer > Andet</link>.",
|
||||
"visibility_modal.privacy_label": "Fortrolighed",
|
||||
"visibility_modal.quote_followers": "Kun følgere",
|
||||
"visibility_modal.quote_label": "Ændr hvem der kan citere",
|
||||
"visibility_modal.quote_nobody": "Ingen",
|
||||
"visibility_modal.quote_public": "Alle"
|
||||
"visibility_modal.quote_nobody": "Kun en selv",
|
||||
"visibility_modal.quote_public": "Alle",
|
||||
"visibility_modal.save": "Gem"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Startseite öffnen",
|
||||
"keyboard_shortcuts.hotkey": "Tastenkürzel",
|
||||
"keyboard_shortcuts.legend": "Tastenkombinationen anzeigen",
|
||||
"keyboard_shortcuts.load_more": "Schaltfläche „Mehr laden“ fokussieren",
|
||||
"keyboard_shortcuts.local": "Lokale Timeline öffnen",
|
||||
"keyboard_shortcuts.mention": "Profil erwähnen",
|
||||
"keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Dein Konto wurde gesperrt.",
|
||||
"notification.own_poll": "Deine Umfrage ist beendet",
|
||||
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
|
||||
"notification.quoted_update": "{name} bearbeitete einen von dir zitierten Beitrag",
|
||||
"notification.reblog": "{name} teilte deinen Beitrag",
|
||||
"notification.reblog.name_and_others_with_link": "{name} und <a>{count, plural, one {# weiteres Profil} other {# weitere Profile}}</a> teilten deinen Beitrag",
|
||||
"notification.relationships_severance_event": "Verbindungen mit {name} verloren",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Ändern, wer zitieren darf",
|
||||
"status.quote_post_author": "Zitierte einen Beitrag von @{name}",
|
||||
"status.quote_private": "Private Beiträge können nicht zitiert werden",
|
||||
"status.quotes": "{count, plural, one {Mal zitiert} other {Mal zitiert}}",
|
||||
"status.read_more": "Gesamten Beitrag anschauen",
|
||||
"status.reblog": "Teilen",
|
||||
"status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Lauter",
|
||||
"visibility_modal.button_title": "Sichtbarkeit festlegen",
|
||||
"visibility_modal.header": "Sichtbarkeit und Interaktion",
|
||||
"visibility_modal.helper.direct_quoting": "Private Erwähnungen können nicht zitiert werden.",
|
||||
"visibility_modal.helper.direct_quoting": "Private Erwähnungen, die auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.",
|
||||
"visibility_modal.helper.privacy_editing": "Die Sichtbarkeit bereits veröffentlichter Beiträge kann nachträglich nicht mehr geändert werden.",
|
||||
"visibility_modal.helper.private_quoting": "Beiträge, die nur für deine Follower bestimmt sind, können nicht zitiert werden.",
|
||||
"visibility_modal.helper.private_quoting": "Beiträge, die nur für deine Follower bestimmt sind und auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Sollten dich andere zitieren, werden ihre zitierten Beiträge ebenfalls nicht in den Trends und öffentlichen Timelines angezeigt.",
|
||||
"visibility_modal.instructions": "Bestimme, wer mit diesem Beitrag interagieren darf. Allgemeingültige Einstellungen findest du unter <link>Einstellungen > Erweitert</link>.",
|
||||
"visibility_modal.privacy_label": "Datenschutz",
|
||||
"visibility_modal.quote_followers": "Nur Follower",
|
||||
"visibility_modal.quote_label": "Ändern, wer zitieren darf",
|
||||
"visibility_modal.quote_nobody": "Niemand",
|
||||
"visibility_modal.quote_public": "Alle"
|
||||
"visibility_modal.quote_nobody": "Nur von mir",
|
||||
"visibility_modal.quote_public": "Alle",
|
||||
"visibility_modal.save": "Speichern"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Άνοιγμα ροής αρχικής σελίδας",
|
||||
"keyboard_shortcuts.hotkey": "Συντόμευση",
|
||||
"keyboard_shortcuts.legend": "Εμφάνιση αυτού του οδηγού",
|
||||
"keyboard_shortcuts.load_more": "Εστίαση στο κουμπί \"Φόρτωση περισσότερων\"",
|
||||
"keyboard_shortcuts.local": "Άνοιγμα τοπικής ροής",
|
||||
"keyboard_shortcuts.mention": "Επισήμανση συγγραφέα",
|
||||
"keyboard_shortcuts.muted": "Άνοιγμα λίστας αποσιωπημένων χρηστών",
|
||||
|
@ -977,14 +978,12 @@
|
|||
"video.volume_up": "Αύξηση έντασης",
|
||||
"visibility_modal.button_title": "Ορισμός ορατότητας",
|
||||
"visibility_modal.header": "Ορατότητα και αλληλεπίδραση",
|
||||
"visibility_modal.helper.direct_quoting": "Ιδιωτικές επισημάνσεις δεν μπορούν να παρατεθούν.",
|
||||
"visibility_modal.helper.privacy_editing": "Δημοσιευμένες αναρτήσεις δεν μπορούν να αλλάξουν την ορατότητά τους.",
|
||||
"visibility_modal.helper.private_quoting": "Οι αναρτήσεις μόνο για ακολούθους δεν μπορούν να παρατεθούν.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Όταν οι άνθρωποι σας παραθέτουν, η ανάρτηση τους θα είναι επίσης κρυμμένη από τα δημοφιλή χρονοδιαγράμματα.",
|
||||
"visibility_modal.instructions": "Ελέγξτε ποιός μπορεί να αλληλεπιδράσει με αυτή την ανάρτηση. Οι καθολικές ρυθμίσεις μπορούν να βρεθούν κάτω από <link>Προτιμήσεις > Άλλα</link>.",
|
||||
"visibility_modal.privacy_label": "Απόρρητο",
|
||||
"visibility_modal.quote_followers": "Μόνο ακόλουθοι",
|
||||
"visibility_modal.quote_label": "Αλλάξτε ποιός μπορεί να κάνει παράθεση",
|
||||
"visibility_modal.quote_nobody": "Κανένας",
|
||||
"visibility_modal.quote_public": "Οποιοσδήποτε"
|
||||
"visibility_modal.quote_public": "Οποιοσδήποτε",
|
||||
"visibility_modal.save": "Αποθήκευση"
|
||||
}
|
||||
|
|
|
@ -620,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Your account has been suspended.",
|
||||
"notification.own_poll": "Your poll has ended",
|
||||
"notification.poll": "A poll you voted in has ended",
|
||||
"notification.quoted_update": "{name} edited a post you have quoted",
|
||||
"notification.reblog": "{name} boosted your post",
|
||||
"notification.reblog.name_and_others_with_link": "{name} and <a>{count, plural, one {# other} other {# others}}</a> boosted your post",
|
||||
"notification.relationships_severance_event": "Lost connections with {name}",
|
||||
|
@ -897,9 +898,13 @@
|
|||
"status.quote_error.pending_approval": "Post pending",
|
||||
"status.quote_error.pending_approval_popout.body": "Quotes shared across the Fediverse may take time to display, as different servers have different protocols.",
|
||||
"status.quote_error.pending_approval_popout.title": "Pending quote? Remain calm",
|
||||
"status.quote_followers_only": "Only followers can quote this post",
|
||||
"status.quote_manual_review": "Author will manually review",
|
||||
"status.quote_policy_change": "Change who can quote",
|
||||
"status.quote_post_author": "Quoted a post by @{name}",
|
||||
"status.quote_private": "Private posts cannot be quoted",
|
||||
"status.quotes": "{count, plural, one {quote} other {quotes}}",
|
||||
"status.quotes.empty": "No one has quoted this post yet. When someone does, it will show up here.",
|
||||
"status.read_more": "Read more",
|
||||
"status.reblog": "Boost",
|
||||
"status.reblog_private": "Boost with original visibility",
|
||||
|
@ -914,6 +919,7 @@
|
|||
"status.reply": "Reply",
|
||||
"status.replyAll": "Reply to thread",
|
||||
"status.report": "Report @{name}",
|
||||
"status.request_quote": "Request to quote",
|
||||
"status.revoke_quote": "Remove my post from @{name}’s post",
|
||||
"status.sensitive_warning": "Sensitive content",
|
||||
"status.share": "Share",
|
||||
|
@ -978,15 +984,15 @@
|
|||
"video.volume_up": "Volume up",
|
||||
"visibility_modal.button_title": "Set visibility",
|
||||
"visibility_modal.header": "Visibility and interaction",
|
||||
"visibility_modal.helper.direct_quoting": "Private mentions can't be quoted.",
|
||||
"visibility_modal.helper.direct_quoting": "Private mentions authored on Mastodon can't be quoted by others.",
|
||||
"visibility_modal.helper.privacy_editing": "Published posts cannot change their visibility.",
|
||||
"visibility_modal.helper.private_quoting": "Follower-only posts can't be quoted.",
|
||||
"visibility_modal.helper.private_quoting": "Follower-only posts authored on Mastodon can't be quoted by others.",
|
||||
"visibility_modal.helper.unlisted_quoting": "When people quote you, their post will also be hidden from trending timelines.",
|
||||
"visibility_modal.instructions": "Control who can interact with this post. Global settings can be found under <link>Preferences > Other</link>.",
|
||||
"visibility_modal.privacy_label": "Privacy",
|
||||
"visibility_modal.quote_followers": "Followers only",
|
||||
"visibility_modal.quote_label": "Change who can quote",
|
||||
"visibility_modal.quote_nobody": "No one",
|
||||
"visibility_modal.quote_nobody": "Just me",
|
||||
"visibility_modal.quote_public": "Anyone",
|
||||
"visibility_modal.save": "Save"
|
||||
}
|
||||
|
|
|
@ -730,6 +730,7 @@
|
|||
"privacy.unlisted.short": "Diskrete publika",
|
||||
"privacy_policy.last_updated": "Laste ĝisdatigita en {date}",
|
||||
"privacy_policy.title": "Politiko de privateco",
|
||||
"quote_error.quote": "Nur unu citaĵo samtempe estas permesita.",
|
||||
"recommended": "Rekomendita",
|
||||
"refresh": "Refreŝigu",
|
||||
"regeneration_indicator.please_stand_by": "Bonvolu atendi.",
|
||||
|
@ -878,6 +879,7 @@
|
|||
"status.quote_policy_change": "Ŝanĝi kiu povas citi",
|
||||
"status.quote_post_author": "Citis afiŝon de @{name}",
|
||||
"status.quote_private": "Privataj afiŝoj ne povas esti cititaj",
|
||||
"status.quotes": "{count, plural,one {citaĵo} other {citaĵoj}}",
|
||||
"status.read_more": "Legi pli",
|
||||
"status.reblog": "Diskonigi",
|
||||
"status.reblog_private": "Diskonigi kun la sama videbleco",
|
||||
|
@ -930,6 +932,7 @@
|
|||
"upload_button.label": "Aldonu bildojn, filmeton aŭ sondosieron",
|
||||
"upload_error.limit": "Limo de dosiera alŝutado transpasita.",
|
||||
"upload_error.poll": "Alŝuto de dosiero ne permesita kun balotenketo.",
|
||||
"upload_error.quote": "Ne estas permesita alŝuto de dosieroj kun citaĵoj.",
|
||||
"upload_form.drag_and_drop.instructions": "Por preni amaskomunikilaron aldonaĵon, premu spacoklavon aŭ enen-klavon. Dum trenado, uzu la sagoklavojn por movi la amaskomunikilaron aldonaĵon en iu ajn direkto. Premu spacoklavon aŭ enen-klavon denove por faligi la amaskomunikilaron aldonaĵon en ĝia nova pozicio, aŭ premu eskapan klavon por nuligi.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Trenado estis nuligita. Amaskomunikila aldonaĵo {item} estis forigita.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Amaskomunikila aldonaĵo {item} estis forigita.",
|
||||
|
@ -955,13 +958,12 @@
|
|||
"video.volume_up": "Laŭteco pliigi",
|
||||
"visibility_modal.button_title": "Agordu videblon",
|
||||
"visibility_modal.header": "Videblo kaj interago",
|
||||
"visibility_modal.helper.direct_quoting": "Privataj mencioj ne povas esti cititaj.",
|
||||
"visibility_modal.helper.privacy_editing": "Publikigitaj afiŝoj ne povas ŝanĝi sian videblon.",
|
||||
"visibility_modal.helper.private_quoting": "Afiŝoj nur por sekvantoj ne povas esti cititaj.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj.",
|
||||
"visibility_modal.privacy_label": "Privateco",
|
||||
"visibility_modal.quote_followers": "Nur sekvantoj",
|
||||
"visibility_modal.quote_label": "Ŝanĝi kiu povas citi",
|
||||
"visibility_modal.quote_nobody": "Neniu",
|
||||
"visibility_modal.quote_public": "Iu ajn"
|
||||
"visibility_modal.quote_nobody": "Nur mi",
|
||||
"visibility_modal.quote_public": "Iu ajn",
|
||||
"visibility_modal.save": "Konservi"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Abrir línea temporal principal",
|
||||
"keyboard_shortcuts.hotkey": "Atajo",
|
||||
"keyboard_shortcuts.legend": "Mostrar este texto",
|
||||
"keyboard_shortcuts.load_more": "Focalizar el botón «Cargar más»",
|
||||
"keyboard_shortcuts.local": "Abrirlínea temporal local",
|
||||
"keyboard_shortcuts.mention": "Mencionar al autor",
|
||||
"keyboard_shortcuts.muted": "Abrir lista de usuarios silenciados",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Tu cuenta fue suspendida.",
|
||||
"notification.own_poll": "Tu encuesta finalizó",
|
||||
"notification.poll": "Finalizó una encuesta en la que votaste",
|
||||
"notification.quoted_update": "{name} editó un mensaje que citaste",
|
||||
"notification.reblog": "{name} adhirió a tu mensaje",
|
||||
"notification.reblog.name_and_others_with_link": "{name} y <a>{count, plural, one {# cuenta más} other {# cuentas más}}</a> marcaron tu mensaje como favorito",
|
||||
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
|
||||
|
@ -741,7 +743,7 @@
|
|||
"privacy.quote.anyone": "{visibility}, todos pueden citar",
|
||||
"privacy.quote.disabled": "{visibility}, citas deshabilitadas",
|
||||
"privacy.quote.limited": "{visibility}, citas limitadas",
|
||||
"privacy.unlisted.additional": "Esto se comporta exactamente igual que con la configuración de privacidad de mensaje \"Público\", excepto que el mensaje no aparecerá en los líneas temporales en vivo, ni en las etiquetas, ni en la línea temporal \"Explorá\", ni en la búsqueda de Mastodon; incluso si optaste por hacer tu cuenta visible.",
|
||||
"privacy.unlisted.additional": "Esto se comporta exactamente igual que con la configuración de privacidad de mensaje «Público», excepto que el mensaje no aparecerá en las líneas temporales en vivo, ni en las etiquetas, ni en la línea temporal «Explorá», ni en la búsqueda de Mastodon; incluso si optaste por hacer tu cuenta visible.",
|
||||
"privacy.unlisted.long": "Menos fanfarrias algorítmicas",
|
||||
"privacy.unlisted.short": "Público silencioso",
|
||||
"privacy_policy.last_updated": "Última actualización: {date}",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Cambiá quién puede citar",
|
||||
"status.quote_post_author": "Se citó un mensaje de @{name}",
|
||||
"status.quote_private": "No se pueden citar los mensajes privados",
|
||||
"status.quotes": "{count, plural, one {# voto} other {# votos}}",
|
||||
"status.read_more": "Leé más",
|
||||
"status.reblog": "Adherir",
|
||||
"status.reblog_private": "Adherir a la audiencia original",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Subir volumen",
|
||||
"visibility_modal.button_title": "Establecer visibilidad",
|
||||
"visibility_modal.header": "Visibilidad e interacción",
|
||||
"visibility_modal.helper.direct_quoting": "No se pueden citar las menciones privadas.",
|
||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas redactadas en Mastodon no pueden ser citadas por otras cuentas.",
|
||||
"visibility_modal.helper.privacy_editing": "No se puede cambiar la visibilidad a los mensajes ya enviados.",
|
||||
"visibility_modal.helper.private_quoting": "No se pueden citar los mensajes destinados solo a seguidores.",
|
||||
"visibility_modal.helper.private_quoting": "Los mensajes solo para seguidores redactados en Mastodon no pueden ser citados por otras cuentas.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Cuando otras cuentas te citen, sus publicaciones también se ocultarán de las líneas temporales de tendencias.",
|
||||
"visibility_modal.instructions": "Controlá quién puede interactuar con este mensaje. Los ajustes globales se pueden encontrar en <link>«Configuración» > «Otras opciones»</link>.",
|
||||
"visibility_modal.privacy_label": "Privacidad",
|
||||
"visibility_modal.quote_followers": "Solo para seguidores",
|
||||
"visibility_modal.quote_label": "Cambiá quién puede citar",
|
||||
"visibility_modal.quote_nobody": "Ninguna cuenta",
|
||||
"visibility_modal.quote_public": "Cualquier cuenta"
|
||||
"visibility_modal.quote_nobody": "Solo yo",
|
||||
"visibility_modal.quote_public": "Cualquier cuenta",
|
||||
"visibility_modal.save": "Guardar"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Abrir cronología principal",
|
||||
"keyboard_shortcuts.hotkey": "Tecla de acceso rápido",
|
||||
"keyboard_shortcuts.legend": "Mostrar esta leyenda",
|
||||
"keyboard_shortcuts.load_more": "Enfoque en el botón \"Cargar más\"",
|
||||
"keyboard_shortcuts.local": "Abrir cronología local",
|
||||
"keyboard_shortcuts.mention": "Mencionar al autor",
|
||||
"keyboard_shortcuts.muted": "Abrir la lista de usuarios silenciados",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Tu cuenta ha sido suspendida.",
|
||||
"notification.own_poll": "Tu encuesta ha terminado",
|
||||
"notification.poll": "Una encuesta en la que has votado ha terminado",
|
||||
"notification.quoted_update": "{name} editó una publicación que has citado",
|
||||
"notification.reblog": "{name} ha impulsado tu publicación",
|
||||
"notification.reblog.name_and_others_with_link": "{name} y <a>{count, plural, one {# otro} other {# otros}}</a> impulsaron tu publicación",
|
||||
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
|
||||
|
@ -739,16 +741,16 @@
|
|||
"privacy.public.long": "Cualquiera dentro y fuera de Mastodon",
|
||||
"privacy.public.short": "Público",
|
||||
"privacy.quote.anyone": "{visibility}, cualquiera puede citar",
|
||||
"privacy.quote.disabled": "{visibility}, citas deshabilitadas",
|
||||
"privacy.quote.disabled": "{visibility}, citas desactivadas",
|
||||
"privacy.quote.limited": "{visibility}, citas limitadas",
|
||||
"privacy.unlisted.additional": "Esto se comporta exactamente igual que el público, excepto que el post no aparecerá en las cronologías en directo o en las etiquetas, la exploración o busquedas en Mastodon, incluso si está optado por activar la cuenta de usuario.",
|
||||
"privacy.unlisted.long": "Menos fanfares algorítmicos",
|
||||
"privacy.unlisted.short": "Público silencioso",
|
||||
"privacy_policy.last_updated": "Actualizado por última vez {date}",
|
||||
"privacy_policy.title": "Política de Privacidad",
|
||||
"quote_error.poll": "No es posible citar encuestas.",
|
||||
"quote_error.poll": "No se permite citar encuestas.",
|
||||
"quote_error.quote": "Solo se permite una cita a la vez.",
|
||||
"quote_error.unauthorized": "No tienes permiso para citar esta publicación.",
|
||||
"quote_error.unauthorized": "No estás autorizado a citar esta publicación.",
|
||||
"quote_error.upload": "No se permite citar con archivos multimedia.",
|
||||
"recommended": "Recomendado",
|
||||
"refresh": "Actualizar",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Cambia quién puede citarte",
|
||||
"status.quote_post_author": "Ha citado una publicación de @{name}",
|
||||
"status.quote_private": "Las publicaciones privadas no pueden citarse",
|
||||
"status.quotes": "{count, plural,one {cita} other {citas}}",
|
||||
"status.read_more": "Leer más",
|
||||
"status.reblog": "Impulsar",
|
||||
"status.reblog_private": "Implusar a la audiencia original",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Subir el volumen",
|
||||
"visibility_modal.button_title": "Establece la visibilidad",
|
||||
"visibility_modal.header": "Visibilidad e interacción",
|
||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas no pueden citarse.",
|
||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas creadas en Mastodon no pueden ser citadas por otros.",
|
||||
"visibility_modal.helper.privacy_editing": "Las publicaciones ya enviadas no pueden cambiar su visibilidad.",
|
||||
"visibility_modal.helper.private_quoting": "Las publicaciones para seguidores no pueden citarse.",
|
||||
"visibility_modal.helper.private_quoting": "Las publicaciones solo para seguidores creadas en Mastodon no pueden ser citadas por otros.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Cuando las personas te citen, sus publicaciones también se ocultarán de las cronologías de tendencias.",
|
||||
"visibility_modal.instructions": "Controla quién puede interactuar con esta publicación. La configuración global se encuentra en <link>Preferencias > Otros</link>.",
|
||||
"visibility_modal.privacy_label": "Privacidad",
|
||||
"visibility_modal.quote_followers": "Solo seguidores",
|
||||
"visibility_modal.quote_label": "Cambia quién puede citarte",
|
||||
"visibility_modal.quote_nobody": "Nadie",
|
||||
"visibility_modal.quote_public": "Cualquiera"
|
||||
"visibility_modal.quote_nobody": "Solo yo",
|
||||
"visibility_modal.quote_public": "Cualquiera",
|
||||
"visibility_modal.save": "Guardar"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Abrir cronología principal",
|
||||
"keyboard_shortcuts.hotkey": "Tecla rápida",
|
||||
"keyboard_shortcuts.legend": "Mostrar esta leyenda",
|
||||
"keyboard_shortcuts.load_more": "Poner el foco en el botón \"Cargar más\"",
|
||||
"keyboard_shortcuts.local": "Abrir cronología local",
|
||||
"keyboard_shortcuts.mention": "Mencionar autor",
|
||||
"keyboard_shortcuts.muted": "Abrir lista de usuarios silenciados",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Tu cuenta ha sido suspendida.",
|
||||
"notification.own_poll": "Tu encuesta ha terminado",
|
||||
"notification.poll": "Una encuesta ha terminado",
|
||||
"notification.quoted_update": "{name} editó una publicación que has citado",
|
||||
"notification.reblog": "{name} ha impulsado tu publicación",
|
||||
"notification.reblog.name_and_others_with_link": "{name} y <a>{count, plural, one {# más} other {# más}}</a> impulsaron tu publicación",
|
||||
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Cambia quién puede citarte",
|
||||
"status.quote_post_author": "Ha citado una publicación de @{name}",
|
||||
"status.quote_private": "Las publicaciones privadas no pueden ser citadas",
|
||||
"status.quotes": "{count, plural,one {cita} other {citas}}",
|
||||
"status.read_more": "Leer más",
|
||||
"status.reblog": "Impulsar",
|
||||
"status.reblog_private": "Impulsar a la audiencia original",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Subir volumen",
|
||||
"visibility_modal.button_title": "Configura la visibilidad",
|
||||
"visibility_modal.header": "Visibilidad e interacciones",
|
||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas no se pueden citar.",
|
||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas publicadas en Mastodon no pueden ser citadas por otros usuarios.",
|
||||
"visibility_modal.helper.privacy_editing": "Una vez publicada, no se puede cambiar su visibilidad.",
|
||||
"visibility_modal.helper.private_quoting": "Las publicaciones para seguidores no pueden citarse.",
|
||||
"visibility_modal.helper.private_quoting": "Las publicaciones solo para seguidores hechas en Mastodon no pueden ser citadas por otros usuarios.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Cuando la gente te cite, su publicación tampoco se mostrará en las cronologías públicas.",
|
||||
"visibility_modal.instructions": "Controla quién puede interactuar con esta publicación. Puedes encontrar los ajustes globales en <link>Preferencias > Otros</link>.",
|
||||
"visibility_modal.privacy_label": "Privacidad",
|
||||
"visibility_modal.quote_followers": "Sólo seguidores",
|
||||
"visibility_modal.quote_label": "Cambia quién puede citarte",
|
||||
"visibility_modal.quote_nobody": "Nadie",
|
||||
"visibility_modal.quote_public": "Cualquiera"
|
||||
"visibility_modal.quote_nobody": "Solo yo",
|
||||
"visibility_modal.quote_public": "Cualquiera",
|
||||
"visibility_modal.save": "Guardar"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Ava kodu ajajoon",
|
||||
"keyboard_shortcuts.hotkey": "Kiirklahv",
|
||||
"keyboard_shortcuts.legend": "Kuva see legend",
|
||||
"keyboard_shortcuts.load_more": "Fookus „Laadi veel“ nupule",
|
||||
"keyboard_shortcuts.local": "Ava kohalik ajajoon",
|
||||
"keyboard_shortcuts.mention": "Maini autorit",
|
||||
"keyboard_shortcuts.muted": "Ava vaigistatud kasutajate loetelu",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Su konto on peatatud.",
|
||||
"notification.own_poll": "Su küsitlus on lõppenud",
|
||||
"notification.poll": "Hääletus, millel osalesid, on lõppenud",
|
||||
"notification.quoted_update": "{name} on muutnud sinu poolt tsiteeritud postitust",
|
||||
"notification.reblog": "{name} jagas edasi postitust",
|
||||
"notification.reblog.name_and_others_with_link": "{name} ja <a>{count, plural, one {# veel} other {# teist}}</a> jagas su postitust",
|
||||
"notification.relationships_severance_event": "Kadunud ühendus kasutajaga {name}",
|
||||
|
@ -879,7 +881,7 @@
|
|||
"status.filter": "Filtreeri seda postitust",
|
||||
"status.history.created": "{name} lõi {date}",
|
||||
"status.history.edited": "{name} muutis {date}",
|
||||
"status.load_more": "Lae rohkem",
|
||||
"status.load_more": "Laadi veel",
|
||||
"status.media.open": "Avamiseks klõpsa",
|
||||
"status.media.show": "Näitamiseks klõpsa",
|
||||
"status.media_hidden": "Meedia peidetud",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Muuda neid, kes võivad tsiteerida",
|
||||
"status.quote_post_author": "Tsiteeris kasutaja @{name} postitust",
|
||||
"status.quote_private": "Otsepostituste tsiteerimine pole võimalik",
|
||||
"status.quotes": "{count, plural, one {# tsiteerimine} other {# tsiteerimist}}",
|
||||
"status.read_more": "Loe veel",
|
||||
"status.reblog": "Jaga",
|
||||
"status.reblog_private": "Jaga algse nähtavusega",
|
||||
|
@ -947,12 +950,12 @@
|
|||
"units.short.billion": "{count} mld",
|
||||
"units.short.million": "{count} mln",
|
||||
"units.short.thousand": "{count} tuh",
|
||||
"upload_area.title": "Lohista & aseta üleslaadimiseks",
|
||||
"upload_button.label": "Lisa meedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "Faili üleslaadimise limiit ületatud.",
|
||||
"upload_area.title": "Lohista ja aseta üleslaadimiseks",
|
||||
"upload_button.label": "Lisa pilte, üks video- või helifail",
|
||||
"upload_error.limit": "Faili üleslaadimise piir ületatud.",
|
||||
"upload_error.poll": "Küsitlustes pole faili üleslaadimine lubatud.",
|
||||
"upload_error.quote": "Tsiteerimisel pole faili üleslaadimine lubatud.",
|
||||
"upload_form.drag_and_drop.instructions": "Vajuta tühikut või enterit, et tõsta manus. Lohistamise ajal kasuta nooleklahve, et manust liigutada teatud suunas. Vajuta tühikut või enterit uuesti, et paigutada manus oma uuele kohale, või escape tühistamiseks.",
|
||||
"upload_form.drag_and_drop.instructions": "Manuse valimiseks vajuta tühikut või sisestusklahvi. Lohistamise ajal kasuta nooleklahve, et manust liigutada teatud suunas. Vajuta tühikut või enterit uuesti, et paigutada manus oma uuele kohale, või escape tühistamiseks.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Lohistamine tühistati. Manus {item} on asetatud.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Manus {item} on asetatud.",
|
||||
"upload_form.drag_and_drop.on_drag_over": "Manus {item} on liigutatud.",
|
||||
|
@ -962,7 +965,7 @@
|
|||
"upload_progress.processing": "Töötlen…",
|
||||
"username.taken": "See kasutajanimi on juba kasutusel. Proovi teist",
|
||||
"video.close": "Sulge video",
|
||||
"video.download": "Faili allalaadimine",
|
||||
"video.download": "Laadi fail alla",
|
||||
"video.exit_fullscreen": "Välju täisekraanist",
|
||||
"video.expand": "Suurenda video",
|
||||
"video.fullscreen": "Täisekraan",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Heli valjemaks",
|
||||
"visibility_modal.button_title": "Muuda nähtavust",
|
||||
"visibility_modal.header": "Nähtavus ja kasutus",
|
||||
"visibility_modal.helper.direct_quoting": "Otsepostituste, kus on mainimisi, tsiteerimine pole võimalik.",
|
||||
"visibility_modal.helper.direct_quoting": "Ainult mainituile mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.",
|
||||
"visibility_modal.helper.privacy_editing": "Avaldatud postitused ei saa muuta oma nähtavust.",
|
||||
"visibility_modal.helper.private_quoting": "Vaid jälgijatele mõeldud postitusi ei saa tsiteerida.",
|
||||
"visibility_modal.helper.private_quoting": "Ainult jälgijatele mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Kui teised kasutajad sind tsiteerivad, siis nende postitused peidetakse ajajoonelt, mis näitavad populaarsust koguvaid postitusi.",
|
||||
"visibility_modal.instructions": "Halda seda, kes võivad antud postitust kasutada. Üldised seadistused leiduvad siin: <link>Eelistused > Muu</link>.",
|
||||
"visibility_modal.privacy_label": "Privaatsus",
|
||||
"visibility_modal.quote_followers": "Ainult jälgijad",
|
||||
"visibility_modal.quote_label": "Muuda seda, kes võivad tsiteerida",
|
||||
"visibility_modal.quote_nobody": "Mitte keegi",
|
||||
"visibility_modal.quote_public": "Kõik"
|
||||
"visibility_modal.quote_nobody": "Ainult mina",
|
||||
"visibility_modal.quote_public": "Kõik",
|
||||
"visibility_modal.save": "Salvesta"
|
||||
}
|
||||
|
|
|
@ -880,6 +880,7 @@
|
|||
"status.mute_conversation": "خموشاندن گفتوگو",
|
||||
"status.open": "گسترش این فرسته",
|
||||
"status.pin": "سنجاق به نمایه",
|
||||
"status.quote": "نقلقول",
|
||||
"status.quote.cancel": "لغو نقل",
|
||||
"status.quote_error.filtered": "نهفته بنا بر یکی از پالایههایتان",
|
||||
"status.quote_error.not_available": "فرسته در دسترس نیست",
|
||||
|
@ -965,14 +966,11 @@
|
|||
"video.volume_up": "افزایش حجم صدا",
|
||||
"visibility_modal.button_title": "تنظیم نمایانی",
|
||||
"visibility_modal.header": "نمایانی و برهمکنش",
|
||||
"visibility_modal.helper.direct_quoting": "نامبریهای خصوصی قابل نقل نیستند.",
|
||||
"visibility_modal.helper.privacy_editing": "نمیتوان نمایانی فرستههای منتشر شده را تغییر داد.",
|
||||
"visibility_modal.helper.private_quoting": "فرستههای فقط برای پیگیرندگان نمیتوانند نقل شوند.",
|
||||
"visibility_modal.helper.unlisted_quoting": "هنگامی که افراد نقلتان میکنند فرستهشان هم از خطزمانیهای داغ پنهان خواهد بود.",
|
||||
"visibility_modal.instructions": "واپایش کسانی که میتوانند با این فرسته برهمکنش داشته باشند. تنظیمات سراسری میتواند در <link>ترجیحات > دیگر</link> پیدا شود.",
|
||||
"visibility_modal.privacy_label": "محرمانگی",
|
||||
"visibility_modal.quote_followers": "فقط پیگیرندگان",
|
||||
"visibility_modal.quote_label": "تغییر کسانی که میتوانند نقل کنند",
|
||||
"visibility_modal.quote_nobody": "هیچکس",
|
||||
"visibility_modal.quote_public": "هرکسی"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Avaa kotiaikajana",
|
||||
"keyboard_shortcuts.hotkey": "Pikanäppäin",
|
||||
"keyboard_shortcuts.legend": "Näytä tämä ohje",
|
||||
"keyboard_shortcuts.load_more": "Kohdista ”Lataa lisää” -painikkeeseen",
|
||||
"keyboard_shortcuts.local": "Avaa paikallinen aikajana",
|
||||
"keyboard_shortcuts.mention": "Mainitse tekijä",
|
||||
"keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Tilisi on jäädytetty.",
|
||||
"notification.own_poll": "Äänestyksesi on päättynyt",
|
||||
"notification.poll": "Äänestys, johon osallistuit, on päättynyt",
|
||||
"notification.quoted_update": "{name} muokkasi lainaamaasi julkaisua",
|
||||
"notification.reblog": "{name} tehosti julkaisuasi",
|
||||
"notification.reblog.name_and_others_with_link": "{name} ja <a>{count, plural, one {# muu} other {# muuta}}</a> tehostivat julkaisuasi",
|
||||
"notification.relationships_severance_event": "Menetettiin yhteydet palvelimeen {name}",
|
||||
|
@ -738,11 +740,18 @@
|
|||
"privacy.private.short": "Seuraajat",
|
||||
"privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella",
|
||||
"privacy.public.short": "Julkinen",
|
||||
"privacy.quote.anyone": "{visibility}, kuka vain voi lainata",
|
||||
"privacy.quote.disabled": "{visibility}, lainaukset poissa käytöstä",
|
||||
"privacy.quote.limited": "{visibility}, lainauksia rajoitettu",
|
||||
"privacy.unlisted.additional": "Tämä toimii muuten kuin julkinen, mutta julkaisut eivät näy livesyöte-, aihetunniste- tai selausnäkymissä eivätkä Mastodonin hakutuloksissa, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.",
|
||||
"privacy.unlisted.long": "Vähemmän algoritmiperusteista sisältöä",
|
||||
"privacy.unlisted.short": "Vaivihkaisesti julkinen",
|
||||
"privacy_policy.last_updated": "Päivitetty viimeksi {date}",
|
||||
"privacy_policy.title": "Tietosuojakäytäntö",
|
||||
"quote_error.poll": "Äänestysten lainaaminen ei ole sallittua.",
|
||||
"quote_error.quote": "Vain yksi lainaus kerrallaan on sallittu.",
|
||||
"quote_error.unauthorized": "Sinulla ei ole valtuuksia lainata tätä julkaisua.",
|
||||
"quote_error.upload": "Medialiitteiden lainaaminen ei ole sallittua.",
|
||||
"recommended": "Suositellaan",
|
||||
"refresh": "Päivitä",
|
||||
"regeneration_indicator.please_stand_by": "Ole valmiina.",
|
||||
|
@ -892,6 +901,7 @@
|
|||
"status.quote_policy_change": "Vaihda, kuka voi lainata",
|
||||
"status.quote_post_author": "Lainaa käyttäjän @{name} julkaisua",
|
||||
"status.quote_private": "Yksityisiä julkaisuja ei voi lainata",
|
||||
"status.quotes": "{count, plural, one {lainaus} other {lainausta}}",
|
||||
"status.read_more": "Näytä enemmän",
|
||||
"status.reblog": "Tehosta",
|
||||
"status.reblog_private": "Tehosta alkuperäiselle yleisölle",
|
||||
|
@ -944,6 +954,7 @@
|
|||
"upload_button.label": "Lisää kuvia, video tai äänitiedosto",
|
||||
"upload_error.limit": "Tiedostolähetysten rajoitus ylitetty.",
|
||||
"upload_error.poll": "Tiedostojen lisääminen äänestysten oheen ei ole sallittua.",
|
||||
"upload_error.quote": "Tiedostojen lähettäminen ei ole sallittua lainauksissa.",
|
||||
"upload_form.drag_and_drop.instructions": "Valitse medialiite painamalla välilyöntiä tai enteriä. Vetäessäsi käytä nuolinäppäimiä siirtääksesi medialiitettä vastaavaan suuntaan. Paina välilyöntiä tai enteriä uudelleen pudottaaksesi medialiitteen uuteen kohtaansa, tai peru siirto painamalla escape-näppäintä.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Veto peruttiin. Medialiitettä {item} ei siirretty.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Medialiite {item} pudotettiin.",
|
||||
|
@ -969,14 +980,15 @@
|
|||
"video.volume_up": "Lisää äänenvoimakkuutta",
|
||||
"visibility_modal.button_title": "Aseta näkyvyys",
|
||||
"visibility_modal.header": "Näkyvyys ja vuorovaikutus",
|
||||
"visibility_modal.helper.direct_quoting": "Yksityismainintoja ei voi lainata.",
|
||||
"visibility_modal.helper.direct_quoting": "Muut eivät voi lainata Mastodonissa kirjoitettuja yksityismainintoja.",
|
||||
"visibility_modal.helper.privacy_editing": "Lähetettyjen julkaisujen näkyvyyttä ei voi vaihtaa.",
|
||||
"visibility_modal.helper.private_quoting": "Vain seuraajille tarkoitettuja julkaisuja ei voi lainata.",
|
||||
"visibility_modal.helper.private_quoting": "Muut eivät voi lainata Mastodonissa kirjoitettuja, vain seuraajille tarkoitettuja julkaisuja.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Kun ihmiset lainaavat sinua, myös heidän julkaisunsa piilotetaan suosittujen julkaisujen aikajanoilta.",
|
||||
"visibility_modal.instructions": "Hallitse, kuka voi olla vuorovaikutuksessa tämän julkaisun kanssa. Yleiset asetukset sijaitsevat kohdassa <link>Asetukset > Muut</link>.",
|
||||
"visibility_modal.privacy_label": "Yksityisyys",
|
||||
"visibility_modal.quote_followers": "Vain seuraajat",
|
||||
"visibility_modal.quote_label": "Vaihda, kuka voi lainata",
|
||||
"visibility_modal.quote_nobody": "Ei kukaan",
|
||||
"visibility_modal.quote_public": "Kuka tahansa"
|
||||
"visibility_modal.quote_nobody": "Vain minä",
|
||||
"visibility_modal.quote_public": "Kuka tahansa",
|
||||
"visibility_modal.save": "Tallenna"
|
||||
}
|
||||
|
|
|
@ -132,12 +132,14 @@
|
|||
"compose_form.reply": "Tumugon",
|
||||
"compose_form.spoiler.marked": "Tanggalin ang babala sa nilalaman",
|
||||
"compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman",
|
||||
"compose_form.spoiler_placeholder": "Babala sa nilalaman (hindi kinailangan)",
|
||||
"confirmation_modal.cancel": "Pagpaliban",
|
||||
"confirmations.block.confirm": "Harangan",
|
||||
"confirmations.delete.message": "Sigurado ka bang gusto mong burahin ang post na ito?",
|
||||
"confirmations.delete_list.confirm": "Tanggalin",
|
||||
"confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?",
|
||||
"confirmations.discard_edit_media.confirm": "Ipagpaliban",
|
||||
"content_warning.hide": "Itago ang post",
|
||||
"content_warning.show_more": "Magpakita ng higit pa",
|
||||
"conversation.mark_as_read": "Markahan bilang nabasa na",
|
||||
"conversation.open": "Tingnan ang pag-uusap",
|
||||
|
@ -260,6 +262,8 @@
|
|||
"notification.mentioned_you": "Binanggit ka ni {name}",
|
||||
"notification.moderation-warning.learn_more": "Matuto nang higit pa",
|
||||
"notification.moderation_warning": "Mayroong kang natanggap na babala sa pagtitimpi",
|
||||
"notification.reblog": "Pinalakas ang iyong post ni {name}",
|
||||
"notification.reblog.name_and_others_with_link": "Pinalakas ang iyong post ni/ng {name} at <a>{count, plural,one {# iba pa} other {# na iba pa}}</a>",
|
||||
"notification.relationships_severance_event.learn_more": "Matuto nang higit pa",
|
||||
"notification_requests.accept": "Tanggapin",
|
||||
"notification_requests.maximize": "Palakihin",
|
||||
|
@ -347,6 +351,7 @@
|
|||
"search_results.see_all": "Ipakita lahat",
|
||||
"server_banner.server_stats": "Katayuan ng serbiro:",
|
||||
"status.block": "Harangan si @{name}",
|
||||
"status.cannot_reblog": "Hindi maaring mapalakas ang post na ito",
|
||||
"status.delete": "Tanggalin",
|
||||
"status.direct": "Palihim na banggitin si/ang @{name}",
|
||||
"status.direct_indicator": "Palihim na banggit",
|
||||
|
@ -359,6 +364,7 @@
|
|||
"status.mention": "Banggitin ang/si @{name}",
|
||||
"status.more": "Higit pa",
|
||||
"status.read_more": "Basahin ang higit pa",
|
||||
"status.reblogged_by": "Pinapalakas ni/ng {name}",
|
||||
"status.reblogs.empty": "Wala pang nagpalakas ng post na ito. Kung may sinumang nagpalakas, makikita sila rito.",
|
||||
"status.remove_favourite": "Tanggalin sa mga paborito",
|
||||
"status.reply": "Tumugon",
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Lat heimatíðarlinju upp",
|
||||
"keyboard_shortcuts.hotkey": "Snarknappur",
|
||||
"keyboard_shortcuts.legend": "Vís henda tekstin",
|
||||
"keyboard_shortcuts.load_more": "Fokusera á \"Tak meira niður\" knøttin",
|
||||
"keyboard_shortcuts.local": "Lat lokala tíðarlinju upp",
|
||||
"keyboard_shortcuts.mention": "Nevn rithøvund",
|
||||
"keyboard_shortcuts.muted": "Lat upp lista við doyvdum brúkarum",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Konta tín er ógildað.",
|
||||
"notification.own_poll": "Tín atkvøðugreiðsla er endað",
|
||||
"notification.poll": "Ein atkvøðugreiðsla, har tú atkvøddi, er endað",
|
||||
"notification.quoted_update": "{name} rættaði ein post, sum tú hevur siterað",
|
||||
"notification.reblog": "{name} lyfti tín post",
|
||||
"notification.reblog.name_and_others_with_link": "{name} og <a>{count, plural, one {# annar/onnur} other {# onnur}}</a> framhevjaðu tín post",
|
||||
"notification.relationships_severance_event": "Mist sambond við {name}",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Broyt hvør kann sitera",
|
||||
"status.quote_post_author": "Siteraði ein post hjá @{name}",
|
||||
"status.quote_private": "Privatir postar kunnu ikki siterast",
|
||||
"status.quotes": "{count, plural, one {sitat} other {sitat}}",
|
||||
"status.read_more": "Les meira",
|
||||
"status.reblog": "Stimbra",
|
||||
"status.reblog_private": "Stimbra við upprunasýni",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Øk um ljóðstyrki",
|
||||
"visibility_modal.button_title": "Set sýni",
|
||||
"visibility_modal.header": "Sýni og samvirkni",
|
||||
"visibility_modal.helper.direct_quoting": "Privatar umrøður kunnu ikki siterast.",
|
||||
"visibility_modal.helper.direct_quoting": "Privatar umrøður, sum eru skrivaðar á Mastodon, kunnu ikki siterast av øðrum.",
|
||||
"visibility_modal.helper.privacy_editing": "Útgivnir postar kunnnu ikki broyta sýni.",
|
||||
"visibility_modal.helper.private_quoting": "Postar, sum einans eru fyri fylgjarar, kunnu ikki siterast.",
|
||||
"visibility_modal.helper.private_quoting": "Postar, sum einans eru fyri fylgjarar á Mastodon, kunnu ikki siterast av øðrum.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Tá fólk sitera teg, so vera teirra postar eisini fjaldir frá tíðarlinjum við ráki.",
|
||||
"visibility_modal.instructions": "Stýr, hvør kann virka saman við hesum postinum. Globalar stillingar finnast undir <link>Stilingar > Onnur</link>.",
|
||||
"visibility_modal.privacy_label": "Privatlív",
|
||||
"visibility_modal.quote_followers": "Einans fylgjarar",
|
||||
"visibility_modal.quote_label": "Broyt hvør kann sitera",
|
||||
"visibility_modal.quote_nobody": "Eingin",
|
||||
"visibility_modal.quote_public": "Ein og hvør"
|
||||
"visibility_modal.quote_nobody": "Bara eg",
|
||||
"visibility_modal.quote_public": "Ein og hvør",
|
||||
"visibility_modal.save": "Goym"
|
||||
}
|
||||
|
|
|
@ -969,14 +969,11 @@
|
|||
"video.volume_up": "Toirt suas",
|
||||
"visibility_modal.button_title": "Socraigh infheictheacht",
|
||||
"visibility_modal.header": "Infheictheacht agus idirghníomhaíocht",
|
||||
"visibility_modal.helper.direct_quoting": "Ní féidir lua a thabhairt ar luanna príobháideacha.",
|
||||
"visibility_modal.helper.privacy_editing": "Ní féidir infheictheacht postálacha foilsithe a athrú.",
|
||||
"visibility_modal.helper.private_quoting": "Ní féidir poist atá dírithe ar leanúna amháin a lua.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Nuair a luann daoine thú, beidh a bpost i bhfolach ó amlínte treochta freisin.",
|
||||
"visibility_modal.instructions": "Rialú cé a fhéadfaidh idirghníomhú leis an bpost seo. Is féidir socruithe domhanda a fháil faoi <link>Sainroghanna > Eile</link>.",
|
||||
"visibility_modal.privacy_label": "Príobháideacht",
|
||||
"visibility_modal.quote_followers": "Leantóirí amháin",
|
||||
"visibility_modal.quote_label": "Athraigh cé a fhéadann luachan a thabhairt",
|
||||
"visibility_modal.quote_nobody": "Níl aon duine",
|
||||
"visibility_modal.quote_public": "Aon duine"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Para abrir a cronoloxía inicial",
|
||||
"keyboard_shortcuts.hotkey": "Tecla de atallo",
|
||||
"keyboard_shortcuts.legend": "Para amosar esta lenda",
|
||||
"keyboard_shortcuts.load_more": "Foco no botón \"Cargar máis\"",
|
||||
"keyboard_shortcuts.local": "Para abrir a cronoloxía local",
|
||||
"keyboard_shortcuts.mention": "Para mencionar a autora",
|
||||
"keyboard_shortcuts.muted": "Abrir lista de usuarias acaladas",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "A túa conta foi suspendida.",
|
||||
"notification.own_poll": "A túa enquisa rematou",
|
||||
"notification.poll": "Rematou a enquisa na que votaches",
|
||||
"notification.quoted_update": "{name} editou unha publicación que citaches",
|
||||
"notification.reblog": "{name} compartiu a túa publicación",
|
||||
"notification.reblog.name_and_others_with_link": "{name} e <a>{count, plural, one {# máis} other {# máis}}</a> promoveron a túa publicación",
|
||||
"notification.relationships_severance_event": "Relacións perdidas con {name}",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Cambia quen pode citarte",
|
||||
"status.quote_post_author": "Citou unha publicación de @{name}",
|
||||
"status.quote_private": "As publicacións privadas non se poden citar",
|
||||
"status.quotes": "{count, plural, one {cita} other {citas}}",
|
||||
"status.read_more": "Ler máis",
|
||||
"status.reblog": "Promover",
|
||||
"status.reblog_private": "Compartir coa audiencia orixinal",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Subir volume",
|
||||
"visibility_modal.button_title": "Establece a visibilidade",
|
||||
"visibility_modal.header": "Visibilidade e interaccións",
|
||||
"visibility_modal.helper.direct_quoting": "A mencións privadas non se poden citar.",
|
||||
"visibility_modal.helper.direct_quoting": "As mencións privadas creadas con Mastodon non poden ser citadas.",
|
||||
"visibility_modal.helper.privacy_editing": "Non se pode cambiar a visibilidade das publicacións xa publicadas.",
|
||||
"visibility_modal.helper.private_quoting": "As publicacións só para seguidoras non se poden citar.",
|
||||
"visibility_modal.helper.private_quoting": "As publicacións só para seguidoras creadas con Mastodon non poden ser citadas.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Cando alguén te cite, a súa publicación non aparecerá nas cronoloxías de popularidade.",
|
||||
"visibility_modal.instructions": "Controla quen pode interactuar con esta publicación. Os axustes xerais están en <link>Preferencias > Outros</link>.",
|
||||
"visibility_modal.privacy_label": "Privacidade",
|
||||
"visibility_modal.quote_followers": "Só para seguidoras",
|
||||
"visibility_modal.quote_label": "Cambia quen pode citarte",
|
||||
"visibility_modal.quote_nobody": "Ninguén",
|
||||
"visibility_modal.quote_public": "Calquera"
|
||||
"visibility_modal.quote_nobody": "Só para min",
|
||||
"visibility_modal.quote_public": "Calquera",
|
||||
"visibility_modal.save": "Gardar"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "פתיחת ציר זמן אישי",
|
||||
"keyboard_shortcuts.hotkey": "מקש קיצור",
|
||||
"keyboard_shortcuts.legend": "הצגת מקרא",
|
||||
"keyboard_shortcuts.load_more": "התמקדות בכפתור \"טען עוד\"",
|
||||
"keyboard_shortcuts.local": "פתיחת ציר זמן קהילתי",
|
||||
"keyboard_shortcuts.mention": "לאזכר את המחבר.ת",
|
||||
"keyboard_shortcuts.muted": "פתיחת רשימת משתמשים מושתקים",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "חשבונך הושעה.",
|
||||
"notification.own_poll": "הסקר שלך הסתיים",
|
||||
"notification.poll": "סקר שהצבעת בו הסתיים",
|
||||
"notification.quoted_update": "{name} ערך הודעה שהשתמשת בה בציטוט",
|
||||
"notification.reblog": "הודעתך הודהדה על ידי {name}",
|
||||
"notification.reblog.name_and_others_with_link": "{name} ועוד <a>{count, plural,one {אחד נוסף}other {# נוספים}}</a> הדהדו את הודעתך",
|
||||
"notification.relationships_severance_event": "אבד הקשר עם {name}",
|
||||
|
@ -738,11 +740,18 @@
|
|||
"privacy.private.short": "עוקבים",
|
||||
"privacy.public.long": "כל הגולשים, מחוברים למסטודון או לא",
|
||||
"privacy.public.short": "פומבי",
|
||||
"privacy.quote.anyone": "{visibility}, הציטוט מותר לכל",
|
||||
"privacy.quote.disabled": "{visibility}, האפשרות לציטוט מכובה",
|
||||
"privacy.quote.limited": "{visibility}, האפשרות לציטוט מוגבלת",
|
||||
"privacy.unlisted.additional": "ההתנהגות דומה להודעה ציבורית, מלבד שההודעה לא תופיע בפיד החי המקומי או בתגיות, תגליות או חיפוש מסטודון, אפילו אם ביקשת שהחשבון כולו יהיה פומבי.",
|
||||
"privacy.unlisted.long": "פחות חשיפה לאלגוריתמים",
|
||||
"privacy.unlisted.short": "ציבורי שקט",
|
||||
"privacy_policy.last_updated": "עודכן לאחרונה {date}",
|
||||
"privacy_policy.title": "מדיניות פרטיות",
|
||||
"quote_error.poll": "לא ניתן לכלול משאל כאשר מחברים הודעת ציטוט.",
|
||||
"quote_error.quote": "רק ציטוט אחד מותר בכל הודעה.",
|
||||
"quote_error.unauthorized": "אין לך הרשאה לצטט את ההודעה הזו.",
|
||||
"quote_error.upload": "ציטוט הכולל מדיה אינו אפשרי.",
|
||||
"recommended": "מומלץ",
|
||||
"refresh": "רענון",
|
||||
"regeneration_indicator.please_stand_by": "נא להמתין.",
|
||||
|
@ -872,7 +881,7 @@
|
|||
"status.filter": "סנן הודעה זו",
|
||||
"status.history.created": "{name} יצר/ה {date}",
|
||||
"status.history.edited": "{name} ערך/ה {date}",
|
||||
"status.load_more": "עוד",
|
||||
"status.load_more": "טען עוד",
|
||||
"status.media.open": "לחץ לפתיחה",
|
||||
"status.media.show": "לחץ להצגה",
|
||||
"status.media_hidden": "מדיה מוסתרת",
|
||||
|
@ -892,6 +901,7 @@
|
|||
"status.quote_policy_change": "הגדרת הרשאה לציטוט הודעותיך",
|
||||
"status.quote_post_author": "ההודעה צוטטה על ידי @{name}",
|
||||
"status.quote_private": "הודעות פרטיות לא ניתנות לציטוט",
|
||||
"status.quotes": "{count, plural,one {ציטוט}other {ציטוטים}}",
|
||||
"status.read_more": "לקרוא עוד",
|
||||
"status.reblog": "הדהוד",
|
||||
"status.reblog_private": "להדהד ברמת הנראות המקורית",
|
||||
|
@ -944,6 +954,7 @@
|
|||
"upload_button.label": "הוספת מדיה",
|
||||
"upload_error.limit": "קובץ להעלאה חורג מנפח מותר.",
|
||||
"upload_error.poll": "לא ניתן להעלות קובץ עם סקר.",
|
||||
"upload_error.quote": "לא ניתן להעלות קובץ כאשר מחברים הודעת ציטוט.",
|
||||
"upload_form.drag_and_drop.instructions": "כדי לבחור קובץ מוצמד, יש ללחוץ על מקש רווח או אנטר. בעת הגרירה, השתמשו במקשי החיצים כדי להזיז את הקובץ המוצמד בכל כיוון. לחצו רווח או אנטר בשנית כדי לעזוב את הקובץ במקומו החדש, או לחצו אסקייפ לביטול.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "הגרירה בוטלה. קובץ המדיה {item} נעזב.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "קובץ המדיה {item} נעזב.",
|
||||
|
@ -969,14 +980,15 @@
|
|||
"video.volume_up": "הגברת עוצמת שמע",
|
||||
"visibility_modal.button_title": "בחירת רמת חשיפה",
|
||||
"visibility_modal.header": "חשיפה והידוּד (אינטראקציה)",
|
||||
"visibility_modal.helper.direct_quoting": "הודעות פרטיות לא ניתנות לציטוט.",
|
||||
"visibility_modal.helper.direct_quoting": "איזכורים פרטיים שנוצרו במסטודון חסומים מציטוט על ידי אחרים.",
|
||||
"visibility_modal.helper.privacy_editing": "לא ניתן לשנות את דרגת החשיפה של הודעות שפורסמו.",
|
||||
"visibility_modal.helper.private_quoting": "לא ניתן לצטט הודעות שחשופות לעוקבים בלבד.",
|
||||
"visibility_modal.helper.private_quoting": "הודעות לעוקבים־בלבד שנוצרו במסטודון חסומות מציטוט על ידי אחרים.",
|
||||
"visibility_modal.helper.unlisted_quoting": "כאשר אחרים מצטטים אותך, ההודעות שלהם יוסתרו גם מ\"נושאים חמים\".",
|
||||
"visibility_modal.instructions": "שליטה בהרשאה להידוּד (תגובות וציטוטים) עם הודעה זו. הגדרות ברירת המחדל ניתן למצוא תחת <link>העדפות > אחרים</link>.",
|
||||
"visibility_modal.privacy_label": "פרטיות",
|
||||
"visibility_modal.quote_followers": "לעוקבים בלבד",
|
||||
"visibility_modal.quote_label": "הגדרת הרשאה לציטוט הודעותיך",
|
||||
"visibility_modal.quote_nobody": "אף אחד",
|
||||
"visibility_modal.quote_public": "כולם"
|
||||
"visibility_modal.quote_nobody": "רק אני",
|
||||
"visibility_modal.quote_public": "כולם",
|
||||
"visibility_modal.save": "שמירה"
|
||||
}
|
||||
|
|
|
@ -972,14 +972,11 @@
|
|||
"video.volume_up": "Hangerő fel",
|
||||
"visibility_modal.button_title": "Láthatóság beállítása",
|
||||
"visibility_modal.header": "Láthatóság és interakció",
|
||||
"visibility_modal.helper.direct_quoting": "A privát említések nem idézhetőek.",
|
||||
"visibility_modal.helper.privacy_editing": "A közzétett bejegyzések láthatósága nem módosítható.",
|
||||
"visibility_modal.helper.private_quoting": "A csak követőknek szánt bejegyzéseket nem lehet idézni.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Amikor idéznek tőled, a bejegyzésük rejtve lesz a felkapott bejegyzések hírfolyamain is.",
|
||||
"visibility_modal.instructions": "Döntsd el, hogy ki léphet interakcióba a bejegyzéssel. A globális beállítások a <link>Beállítások > Egyéb</link> alatt találhatóak.",
|
||||
"visibility_modal.privacy_label": "Adatvédelem",
|
||||
"visibility_modal.quote_followers": "Csak követőknek",
|
||||
"visibility_modal.quote_label": "Módosítás, hogy kik idézhetnek",
|
||||
"visibility_modal.quote_nobody": "Senki",
|
||||
"visibility_modal.quote_public": "Bárki"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Aperir le chronologia de initio",
|
||||
"keyboard_shortcuts.hotkey": "Clave accelerator",
|
||||
"keyboard_shortcuts.legend": "Monstrar iste legenda",
|
||||
"keyboard_shortcuts.load_more": "Focalisar le button “Cargar plus”",
|
||||
"keyboard_shortcuts.local": "Aperir le chronologia local",
|
||||
"keyboard_shortcuts.mention": "Mentionar le autor",
|
||||
"keyboard_shortcuts.muted": "Aperir lista de usatores silentiate",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Tu conto ha essite suspendite.",
|
||||
"notification.own_poll": "Tu sondage ha finite",
|
||||
"notification.poll": "Un sondage in le qual tu ha votate ha finite",
|
||||
"notification.quoted_update": "{name} ha modificate un message que tu ha citate",
|
||||
"notification.reblog": "{name} ha impulsate tu message",
|
||||
"notification.reblog.name_and_others_with_link": "{name} e <a>{count, plural, one {# altere} other {# alteres}}</a> ha impulsate tu message",
|
||||
"notification.relationships_severance_event": "Connexiones perdite con {name}",
|
||||
|
@ -738,11 +740,18 @@
|
|||
"privacy.private.short": "Sequitores",
|
||||
"privacy.public.long": "Quicunque, sur Mastodon o non",
|
||||
"privacy.public.short": "Public",
|
||||
"privacy.quote.anyone": "{visibility}, omnes pote citar",
|
||||
"privacy.quote.disabled": "{visibility}, citation disactivate",
|
||||
"privacy.quote.limited": "{visibility}, citation limitate",
|
||||
"privacy.unlisted.additional": "Isto es exactemente como public, excepte que le message non apparera in fluxos in directo, in hashtags, in Explorar, o in le recerca de Mastodon, mesmo si tu ha optate pro render tote le conto discoperibile.",
|
||||
"privacy.unlisted.long": "Minus fanfares algorithmic",
|
||||
"privacy.unlisted.short": "Public, non listate",
|
||||
"privacy_policy.last_updated": "Ultime actualisation {date}",
|
||||
"privacy_policy.title": "Politica de confidentialitate",
|
||||
"quote_error.poll": "Non es permittite citar sondages.",
|
||||
"quote_error.quote": "Solmente un citation al vice es permittite.",
|
||||
"quote_error.unauthorized": "Tu non es autorisate a citar iste message.",
|
||||
"quote_error.upload": "Non es permittite citar con annexos multimedial.",
|
||||
"recommended": "Recommendate",
|
||||
"refresh": "Refrescar",
|
||||
"regeneration_indicator.please_stand_by": "Un momento, per favor.",
|
||||
|
@ -849,9 +858,11 @@
|
|||
"status.admin_account": "Aperir le interfacie de moderation pro @{name}",
|
||||
"status.admin_domain": "Aperir le interfacie de moderation pro {domain}",
|
||||
"status.admin_status": "Aperir iste message in le interfacie de moderation",
|
||||
"status.all_disabled": "Impulso e citation es disactivate",
|
||||
"status.block": "Blocar @{name}",
|
||||
"status.bookmark": "Adder al marcapaginas",
|
||||
"status.cancel_reblog_private": "Disfacer impulso",
|
||||
"status.cannot_quote": "Le autor ha disactivate le citation de iste message",
|
||||
"status.cannot_reblog": "Iste message non pote esser impulsate",
|
||||
"status.context.load_new_replies": "Nove responsas disponibile",
|
||||
"status.context.loading": "Cercante plus responsas",
|
||||
|
@ -880,6 +891,7 @@
|
|||
"status.mute_conversation": "Silentiar conversation",
|
||||
"status.open": "Expander iste message",
|
||||
"status.pin": "Fixar sur profilo",
|
||||
"status.quote": "Citar",
|
||||
"status.quote.cancel": "Cancellar le citation",
|
||||
"status.quote_error.filtered": "Celate a causa de un de tu filtros",
|
||||
"status.quote_error.not_available": "Message indisponibile",
|
||||
|
@ -888,6 +900,8 @@
|
|||
"status.quote_error.pending_approval_popout.title": "Citation pendente? Resta calme",
|
||||
"status.quote_policy_change": "Cambiar qui pote citar",
|
||||
"status.quote_post_author": "Ha citate un message de @{name}",
|
||||
"status.quote_private": "Le messages private non pote esser citate",
|
||||
"status.quotes": "{count, plural, one {citation} other {citationes}}",
|
||||
"status.read_more": "Leger plus",
|
||||
"status.reblog": "Impulsar",
|
||||
"status.reblog_private": "Impulsar con visibilitate original",
|
||||
|
@ -897,8 +911,8 @@
|
|||
"status.redraft": "Deler e reconciper",
|
||||
"status.remove_bookmark": "Remover marcapagina",
|
||||
"status.remove_favourite": "Remover del favoritos",
|
||||
"status.replied_in_thread": "Respondite in le discussion",
|
||||
"status.replied_to": "Respondite a {name}",
|
||||
"status.replied_in_thread": "Responsa in discussion",
|
||||
"status.replied_to": "Responsa a {name}",
|
||||
"status.reply": "Responder",
|
||||
"status.replyAll": "Responder al discussion",
|
||||
"status.report": "Reportar @{name}",
|
||||
|
@ -940,6 +954,7 @@
|
|||
"upload_button.label": "Adde imagines, un video o un file de audio",
|
||||
"upload_error.limit": "Limite de incargamento de files excedite.",
|
||||
"upload_error.poll": "Incargamento de files non permittite con sondages.",
|
||||
"upload_error.quote": "Non es permittite incargar files con citationes.",
|
||||
"upload_form.drag_and_drop.instructions": "Pro prender un annexo multimedial, preme sur le barra de spatios o Enter. Trahente lo, usa le claves de flecha pro displaciar le annexo multimedial in un certe direction. Preme le barra de spatios o Enter de novo pro deponer le annexo multimedial in su nove position, o preme sur Escape pro cancellar.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Le displaciamento ha essite cancellate. Le annexo multimedial {item} ha essite deponite.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Le annexo multimedial {item} ha essite deponite.",
|
||||
|
@ -965,14 +980,15 @@
|
|||
"video.volume_up": "Augmentar le volumine",
|
||||
"visibility_modal.button_title": "Definir visibilitate",
|
||||
"visibility_modal.header": "Visibilitate e interaction",
|
||||
"visibility_modal.helper.direct_quoting": "Le mentiones private non pote esser citate.",
|
||||
"visibility_modal.helper.direct_quoting": "Le mentiones private scribite sur Mastodon non pote esser citate per alteres.",
|
||||
"visibility_modal.helper.privacy_editing": "Le messages ja publicate non pote cambiar de visibilitate.",
|
||||
"visibility_modal.helper.private_quoting": "Le messages reservate al sequitores non pote esser citate.",
|
||||
"visibility_modal.helper.private_quoting": "Le messages limitate al sequitores scribite sur Mastodon non pote esser citate per alteres.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quando un persona te cita, su message essera tamben celate del chronologia \"In tendentia\".",
|
||||
"visibility_modal.instructions": "Controla qui pote interager con iste message. Le parametros global se trova sub <link>Preferentias > Alteres</link>.",
|
||||
"visibility_modal.privacy_label": "Confidentialitate",
|
||||
"visibility_modal.quote_followers": "Solmente sequitores",
|
||||
"visibility_modal.quote_label": "Cambiar qui pote citar",
|
||||
"visibility_modal.quote_nobody": "Necuno",
|
||||
"visibility_modal.quote_public": "Omnes"
|
||||
"visibility_modal.quote_nobody": "Solo io",
|
||||
"visibility_modal.quote_public": "Omnes",
|
||||
"visibility_modal.save": "Salvar"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Opna heimatímalínu",
|
||||
"keyboard_shortcuts.hotkey": "Flýtilykill",
|
||||
"keyboard_shortcuts.legend": "Birta þessa skýringu",
|
||||
"keyboard_shortcuts.load_more": "Gera \"Hlaða inn meiru\"-hnappinn virkan",
|
||||
"keyboard_shortcuts.local": "Opna staðværa tímalínu",
|
||||
"keyboard_shortcuts.mention": "Minnast á höfund",
|
||||
"keyboard_shortcuts.muted": "Opna lista yfir þaggaða notendur",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Notandaaðgangurinn þinn hefur verið settur í frysti.",
|
||||
"notification.own_poll": "Könnuninni þinni er lokið",
|
||||
"notification.poll": "Könnun sem þú greiddir atkvæði í er lokið",
|
||||
"notification.quoted_update": "{name} breytti færslu sem þú hefur vitnað í",
|
||||
"notification.reblog": "{name} endurbirti færsluna þína",
|
||||
"notification.reblog.name_and_others_with_link": "{name} og <a>{count, plural, one {# í viðbót hefur} other {# í viðbót hafa}}</a> endurbirt færsluna þína",
|
||||
"notification.relationships_severance_event": "Missti tengingar við {name}",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Breyttu því hver getur tilvitnað",
|
||||
"status.quote_post_author": "Vitnaði í færslu frá @{name}",
|
||||
"status.quote_private": "Ekki er hægt að vitna í einkafærslur",
|
||||
"status.quotes": "{count, plural, one {tilvitnun} other {tilvitnanir}}",
|
||||
"status.read_more": "Lesa meira",
|
||||
"status.reblog": "Endurbirting",
|
||||
"status.reblog_private": "Endurbirta til upphaflegra lesenda",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Hækka hljóðstyrk",
|
||||
"visibility_modal.button_title": "Stilla sýnileika",
|
||||
"visibility_modal.header": "Sýnileiki og gagnvirkni",
|
||||
"visibility_modal.helper.direct_quoting": "Ekki er hægt að vitna í einkaspjall.",
|
||||
"visibility_modal.helper.direct_quoting": "Ekki er hægt að vitna í einkaspjall sem skrifað er á Mastodon.",
|
||||
"visibility_modal.helper.privacy_editing": "Ekki er hægt að breyta sýnileika birtra færslna.",
|
||||
"visibility_modal.helper.private_quoting": "Ekki er hægt að vitna í færslur sem eingöngu eru til fylgjenda.",
|
||||
"visibility_modal.helper.private_quoting": "Ekki er hægt að vitna í færslur einungis til fylgjenda sem skrifaðar eru á Mastodon.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Þegar fólk vitnar í þig verða færslurnar þeirr einnig faldar á vinsældatímalínum.",
|
||||
"visibility_modal.instructions": "Stýrðu hverjir geta átt við þessa færslu. Víðværar stillingar finnast undir <link>Kjörstillingar > Annað</link>.",
|
||||
"visibility_modal.privacy_label": "Persónuvernd",
|
||||
"visibility_modal.quote_followers": "Einungis fylgjendur",
|
||||
"visibility_modal.quote_label": "Breyttu því hver getur tilvitnað",
|
||||
"visibility_modal.quote_nobody": "Enginn",
|
||||
"visibility_modal.quote_public": "Hver sem er"
|
||||
"visibility_modal.quote_nobody": "Bara ég",
|
||||
"visibility_modal.quote_public": "Hver sem er",
|
||||
"visibility_modal.save": "Vista"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Apre la cronologia domestica",
|
||||
"keyboard_shortcuts.hotkey": "Tasto di scelta rapida",
|
||||
"keyboard_shortcuts.legend": "Mostra questa legenda",
|
||||
"keyboard_shortcuts.load_more": "Evidenzia il pulsante \"Carica altro\"",
|
||||
"keyboard_shortcuts.local": "Apre la cronologia locale",
|
||||
"keyboard_shortcuts.mention": "Menziona l'autore",
|
||||
"keyboard_shortcuts.muted": "Apre l'elenco degli utenti silenziati",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Il tuo account è stato sospeso.",
|
||||
"notification.own_poll": "Il tuo sondaggio è terminato",
|
||||
"notification.poll": "Un sondaggio in cui hai votato è terminato",
|
||||
"notification.quoted_update": "{name} ha modificato un post che hai citato",
|
||||
"notification.reblog": "{name} ha rebloggato il tuo post",
|
||||
"notification.reblog.name_and_others_with_link": "{name} e <a>{count, plural, one {# altro} other {altri #}}</a> hanno condiviso il tuo post",
|
||||
"notification.relationships_severance_event": "Connessioni perse con {name}",
|
||||
|
@ -738,11 +740,18 @@
|
|||
"privacy.private.short": "Follower",
|
||||
"privacy.public.long": "Chiunque dentro e fuori Mastodon",
|
||||
"privacy.public.short": "Pubblico",
|
||||
"privacy.quote.anyone": "{visibility}, chiunque può citare",
|
||||
"privacy.quote.disabled": "{visibility}, citazioni disabilitate",
|
||||
"privacy.quote.limited": "{visibility}, citazioni limitate",
|
||||
"privacy.unlisted.additional": "Si comporta esattamente come pubblico, tranne per il fatto che il post non verrà visualizzato nei feed live o negli hashtag, nell'esplorazione o nella ricerca Mastodon, anche se hai attivato l'attivazione a livello di account.",
|
||||
"privacy.unlisted.long": "Meno fanfare algoritmiche",
|
||||
"privacy.unlisted.short": "Pubblico silenzioso",
|
||||
"privacy_policy.last_updated": "Ultimo aggiornamento {date}",
|
||||
"privacy_policy.title": "Politica sulla Privacy",
|
||||
"quote_error.poll": "Nei sondaggi non sono consentite le citazioni.",
|
||||
"quote_error.quote": "È consentita una sola citazione alla volta.",
|
||||
"quote_error.unauthorized": "Non sei autorizzato a citare questo post.",
|
||||
"quote_error.upload": "Le citazioni non sono consentite con gli allegati multimediali.",
|
||||
"recommended": "Consigliato",
|
||||
"refresh": "Ricarica",
|
||||
"regeneration_indicator.please_stand_by": "Si prega di rimanere in attesa.",
|
||||
|
@ -892,6 +901,7 @@
|
|||
"status.quote_policy_change": "Cambia chi può citare",
|
||||
"status.quote_post_author": "Citato un post di @{name}",
|
||||
"status.quote_private": "I post privati non possono essere citati",
|
||||
"status.quotes": "{count, plural, one {citazione} other {citazioni}}",
|
||||
"status.read_more": "Leggi di più",
|
||||
"status.reblog": "Reblog",
|
||||
"status.reblog_private": "Reblog con visibilità originale",
|
||||
|
@ -906,7 +916,7 @@
|
|||
"status.reply": "Rispondi",
|
||||
"status.replyAll": "Rispondi alla conversazione",
|
||||
"status.report": "Segnala @{name}",
|
||||
"status.revoke_quote": "Rimuovi la mia citazione dal post di @{name}",
|
||||
"status.revoke_quote": "Rimuovi il mio post da quello di @{name}",
|
||||
"status.sensitive_warning": "Contenuto sensibile",
|
||||
"status.share": "Condividi",
|
||||
"status.show_less_all": "Mostra meno per tutti",
|
||||
|
@ -944,6 +954,7 @@
|
|||
"upload_button.label": "Aggiungi un file immagine, video o audio",
|
||||
"upload_error.limit": "Limite di caricamento dei file superato.",
|
||||
"upload_error.poll": "Caricamento del file non consentito con i sondaggi.",
|
||||
"upload_error.quote": "Caricamento file non consentito con le citazioni.",
|
||||
"upload_form.drag_and_drop.instructions": "Per selezionare un allegato multimediale, premi Spazio o Invio. Mentre trascini, usa i tasti con le frecce per spostare l'allegato multimediale in una qualsiasi direzione. Premi di nuovo Spazio o Invio per rilasciare l'allegato multimediale nella sua nuova posizione, oppure premi Esc per annullare.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Il trascinamento è stato annullato. L'allegato multimediale {item} è stato eliminato.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "L'allegato multimediale {item} è stato eliminato.",
|
||||
|
@ -969,14 +980,15 @@
|
|||
"video.volume_up": "Alza volume",
|
||||
"visibility_modal.button_title": "Imposta la visibilità",
|
||||
"visibility_modal.header": "Visibilità e interazione",
|
||||
"visibility_modal.helper.direct_quoting": "Le menzioni private non possono essere citate.",
|
||||
"visibility_modal.helper.direct_quoting": "Le menzioni private scritte su Mastodon non possono essere citate da altri.",
|
||||
"visibility_modal.helper.privacy_editing": "La visibilità dei post pubblicati non può essere modificata.",
|
||||
"visibility_modal.helper.private_quoting": "I post riservati ai seguaci non possono essere citati.",
|
||||
"visibility_modal.helper.private_quoting": "I post scritti e riservati ai seguaci su Mastodon non possono essere citati da altri.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quando le persone ti citano, il loro post verrà nascosto anche dalle timeline di tendenza.",
|
||||
"visibility_modal.instructions": "Controlla chi può interagire con questo post. Le impostazioni globali si trovano in <link>Preferenze > Altro</link>.",
|
||||
"visibility_modal.privacy_label": "Privacy",
|
||||
"visibility_modal.quote_followers": "Solo i seguaci",
|
||||
"visibility_modal.quote_label": "Cambia chi può citare",
|
||||
"visibility_modal.quote_nobody": "Nessuno",
|
||||
"visibility_modal.quote_public": "Chiunque"
|
||||
"visibility_modal.quote_nobody": "Solo io",
|
||||
"visibility_modal.quote_public": "Chiunque",
|
||||
"visibility_modal.save": "Salva"
|
||||
}
|
||||
|
|
|
@ -721,6 +721,5 @@
|
|||
"visibility_modal.privacy_label": "Tabaḍnit",
|
||||
"visibility_modal.quote_followers": "Imeḍfaṛen kan",
|
||||
"visibility_modal.quote_label": "Beddel anwa i izemren ad k-id-yebder",
|
||||
"visibility_modal.quote_nobody": "Ula yiwen",
|
||||
"visibility_modal.quote_public": "Yal yiwen"
|
||||
}
|
||||
|
|
|
@ -482,6 +482,7 @@
|
|||
"keyboard_shortcuts.home": "홈 타임라인 열기",
|
||||
"keyboard_shortcuts.hotkey": "핫키",
|
||||
"keyboard_shortcuts.legend": "이 개요 표시",
|
||||
"keyboard_shortcuts.load_more": "\"더 보기\" 버튼에 포커스",
|
||||
"keyboard_shortcuts.local": "로컬 타임라인 열기",
|
||||
"keyboard_shortcuts.mention": "작성자에게 멘션",
|
||||
"keyboard_shortcuts.muted": "뮤트된 사용자 목록 열기",
|
||||
|
@ -661,6 +662,7 @@
|
|||
"notifications.column_settings.mention": "멘션:",
|
||||
"notifications.column_settings.poll": "설문 결과:",
|
||||
"notifications.column_settings.push": "푸시 알림",
|
||||
"notifications.column_settings.quote": "인용:",
|
||||
"notifications.column_settings.reblog": "부스트:",
|
||||
"notifications.column_settings.show": "컬럼에 표시",
|
||||
"notifications.column_settings.sound": "효과음 재생",
|
||||
|
@ -736,11 +738,15 @@
|
|||
"privacy.private.short": "팔로워",
|
||||
"privacy.public.long": "마스토돈 내외 모두",
|
||||
"privacy.public.short": "공개",
|
||||
"privacy.quote.anyone": "{visibility}, 누구나 인용 가능",
|
||||
"privacy.quote.disabled": "{visibility}, 인용 비활성화",
|
||||
"privacy.quote.limited": "{visibility}, 제한된 인용",
|
||||
"privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.",
|
||||
"privacy.unlisted.long": "더 적은 알고리즘 팡파르",
|
||||
"privacy.unlisted.short": "조용한 공개",
|
||||
"privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨",
|
||||
"privacy_policy.title": "개인정보처리방침",
|
||||
"quote_error.unauthorized": "이 글을 인용할 권한이 없습니다.",
|
||||
"recommended": "추천함",
|
||||
"refresh": "새로고침",
|
||||
"regeneration_indicator.please_stand_by": "잠시 기다려주세요.",
|
||||
|
@ -847,9 +853,11 @@
|
|||
"status.admin_account": "@{name}에 대한 중재 화면 열기",
|
||||
"status.admin_domain": "{domain}에 대한 중재 화면 열기",
|
||||
"status.admin_status": "중재 화면에서 이 게시물 열기",
|
||||
"status.all_disabled": "부스트와 인용이 비활성화되었습니다",
|
||||
"status.block": "@{name} 차단",
|
||||
"status.bookmark": "북마크",
|
||||
"status.cancel_reblog_private": "부스트 취소",
|
||||
"status.cannot_quote": "작성자가 이 게시물의 인용을 비활성화했습니다",
|
||||
"status.cannot_reblog": "이 게시물은 부스트 할 수 없습니다",
|
||||
"status.context.load_new_replies": "새 답글 보기",
|
||||
"status.context.loading": "추가 답글 확인중",
|
||||
|
@ -878,6 +886,8 @@
|
|||
"status.mute_conversation": "대화 뮤트",
|
||||
"status.open": "상세 정보 표시",
|
||||
"status.pin": "고정",
|
||||
"status.quote": "인용",
|
||||
"status.quote.cancel": "인용 취소",
|
||||
"status.quote_error.filtered": "필터에 의해 가려짐",
|
||||
"status.quote_error.not_available": "게시물 사용 불가",
|
||||
"status.quote_error.pending_approval": "게시물 대기중",
|
||||
|
@ -956,5 +966,11 @@
|
|||
"video.skip_forward": "앞으로 건너뛰기",
|
||||
"video.unmute": "음소거 해제",
|
||||
"video.volume_down": "음량 감소",
|
||||
"video.volume_up": "음량 증가"
|
||||
"video.volume_up": "음량 증가",
|
||||
"visibility_modal.button_title": "공개범위 설정",
|
||||
"visibility_modal.privacy_label": "공개범위",
|
||||
"visibility_modal.quote_followers": "팔로워 전용",
|
||||
"visibility_modal.quote_label": "누가 인용할 수 있는지",
|
||||
"visibility_modal.quote_public": "아무나",
|
||||
"visibility_modal.save": "저장"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Moderētie serveri",
|
||||
"about.contact": "Kontakts:",
|
||||
"about.default_locale": "Noklusējums",
|
||||
"about.disclaimer": "Mastodon ir bezmaksas atklātā pirmkoda programmatūra un Mastodon gGmbH preču zīme.",
|
||||
"about.domain_blocks.no_reason_available": "Iemesls nav norādīts",
|
||||
"about.domain_blocks.preamble": "Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita fediversa servera. Šie ir izņēmumi, kas veikti tieši šajā serverī.",
|
||||
|
@ -8,6 +9,7 @@
|
|||
"about.domain_blocks.silenced.title": "Ierobežotie",
|
||||
"about.domain_blocks.suspended.explanation": "Nekādi dati no šī servera netiks apstrādāti, uzglabāti vai apmainīti, padarot neiespējamu jebkādu mijiedarbību vai saziņu ar šī servera lietotājiem.",
|
||||
"about.domain_blocks.suspended.title": "Apturētie",
|
||||
"about.language_label": "Valoda",
|
||||
"about.not_available": "Šī informācija nav padarīta pieejama šajā serverī.",
|
||||
"about.powered_by": "Decentralizētu sabiedrisko tīklu darbina {mastodon}",
|
||||
"about.rules": "Servera noteikumi",
|
||||
|
@ -145,6 +147,7 @@
|
|||
"bundle_column_error.routing.body": "Pieprasīto lapu nevarēja atrast. Vai esi pārliecināts, ka URL adreses joslā ir pareizs?",
|
||||
"bundle_column_error.routing.title": "404",
|
||||
"bundle_modal_error.close": "Aizvērt",
|
||||
"bundle_modal_error.message": "Kaut kas nogāja greizi šī ekrāna ielādēšanas laikā.",
|
||||
"bundle_modal_error.retry": "Mēģināt vēlreiz",
|
||||
"closed_registrations.other_server_instructions": "Tā kā Mastodon ir decentralizēts, tu vari izveidot kontu citā serverī un joprojām mijiedarboties ar šo.",
|
||||
"closed_registrations_modal.description": "Pašlaik nav iespējams izveidot kontu {domain}, bet, lūdzu, ņem vērā, ka Tev nav nepieciešams tieši {domain} konts, lai lietotu Mastodon!",
|
||||
|
@ -213,6 +216,11 @@
|
|||
"confirmations.delete_list.confirm": "Dzēst",
|
||||
"confirmations.delete_list.message": "Vai tiešām neatgriezeniski izdzēst šo sarakstu?",
|
||||
"confirmations.delete_list.title": "Izdzēst sarakstu?",
|
||||
"confirmations.discard_draft.confirm": "Atmest un turpināt",
|
||||
"confirmations.discard_draft.edit.cancel": "Atsākt labošanu",
|
||||
"confirmations.discard_draft.post.cancel": "Atsākt melnrakstu",
|
||||
"confirmations.discard_draft.post.message": "Turpinot tiks atmests pašreiz sastādītais ieraksts.",
|
||||
"confirmations.discard_draft.post.title": "Atmest melnraksta ierakstu?",
|
||||
"confirmations.discard_edit_media.confirm": "Atmest",
|
||||
"confirmations.discard_edit_media.message": "Ir nesaglabātas izmaiņas informācijas nesēja aprakstā vai priekšskatījumā. Vēlies tās atmest tik un tā?",
|
||||
"confirmations.follow_to_list.confirm": "Sekot un pievienot sarakstam",
|
||||
|
@ -232,6 +240,9 @@
|
|||
"confirmations.remove_from_followers.confirm": "Dzēst sekotāju",
|
||||
"confirmations.remove_from_followers.message": "{name} pārstās sekot jums. Vai tiešām vēlaties turpināt?",
|
||||
"confirmations.remove_from_followers.title": "Vai dzēst sekotāju?",
|
||||
"confirmations.revoke_quote.confirm": "Noņemt ierakstu",
|
||||
"confirmations.revoke_quote.message": "Šo darbību nevar atsaukt.",
|
||||
"confirmations.revoke_quote.title": "Noņemt ierakstu?",
|
||||
"confirmations.unfollow.confirm": "Pārstāt sekot",
|
||||
"confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?",
|
||||
"confirmations.unfollow.title": "Pārtraukt sekošanu lietotājam?",
|
||||
|
@ -268,6 +279,7 @@
|
|||
"domain_pill.who_they_are": "Tā kā turi norāda, kas kāds ir un kur viņi ir atrodami, Tu vari mijiedarboties ar cilvēkiem viscaur sabiedriskajā tīklā no <button>ar ActivityPub darbinātām platformām</button>.",
|
||||
"domain_pill.who_you_are": "Tā kā Tavs turis norāda, kas Tu esi un kur atrodies, cilvēki var mijiedarboties ar Tevi viscaur sabiedriskajā tīklā no <button>ar ActivityPub darbinātām platformām</button>.",
|
||||
"domain_pill.your_handle": "Tavs turis:",
|
||||
"dropdown.empty": "Atlasīt iespēju",
|
||||
"embed.instructions": "Iekļauj šo ierakstu savā tīmekļvietnē, ievietojot zemāk redzamo kodu starpliktuvē!",
|
||||
"embed.preview": "Tas izskatīsies šādi:",
|
||||
"emoji_button.activity": "Aktivitāte",
|
||||
|
@ -317,6 +329,7 @@
|
|||
"explore.trending_statuses": "Ieraksti",
|
||||
"explore.trending_tags": "Tēmturi",
|
||||
"featured_carousel.next": "Tālāk",
|
||||
"featured_carousel.post": "Ieraksts",
|
||||
"featured_carousel.previous": "Atpakaļ",
|
||||
"featured_carousel.slide": "{index} / {total}",
|
||||
"filter_modal.added.context_mismatch_explanation": "Šī atlases kategorija neattiecas uz kontekstu, kurā esi piekļuvis šim ierakstam. Ja vēlies, lai ieraksts tiktu atlasīts arī šajā kontekstā, Tev būs jālabo atlase.",
|
||||
|
@ -335,6 +348,7 @@
|
|||
"filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu",
|
||||
"filter_modal.select_filter.title": "Atlasīt šo ierakstu",
|
||||
"filter_modal.title.status": "Atlasīt ziņu",
|
||||
"filter_warning.matches_filter": "Atbilst atlasītājam “<span>{title}</span>”",
|
||||
"filtered_notifications_banner.title": "Filtrētie paziņojumi",
|
||||
"firehose.all": "Visi",
|
||||
"firehose.local": "Šis serveris",
|
||||
|
@ -449,6 +463,8 @@
|
|||
"keyboard_shortcuts.translate": "tulkot ierakstu",
|
||||
"keyboard_shortcuts.unfocus": "Atfokusēt veidojamā teksta/meklēšanas lauku",
|
||||
"keyboard_shortcuts.up": "Pārvietoties augšup sarakstā",
|
||||
"learn_more_link.got_it": "Sapratu",
|
||||
"learn_more_link.learn_more": "Uzzināt vairāk",
|
||||
"lightbox.close": "Aizvērt",
|
||||
"lightbox.next": "Tālāk",
|
||||
"lightbox.previous": "Iepriekšējais",
|
||||
|
@ -466,6 +482,7 @@
|
|||
"lists.delete": "Izdzēst sarakstu",
|
||||
"lists.done": "Gatavs",
|
||||
"lists.edit": "Labot sarakstu",
|
||||
"lists.find_users_to_add": "Atrast lietotājus, kurus pievienot",
|
||||
"lists.list_name": "Saraksta nosaukums",
|
||||
"lists.remove_member": "Noņemt",
|
||||
"lists.replies_policy.followed": "Jebkuram sekotajam lietotājam",
|
||||
|
@ -531,6 +548,8 @@
|
|||
"notification_requests.dismiss": "Noraidīt",
|
||||
"notification_requests.edit_selection": "Labot",
|
||||
"notification_requests.exit_selection": "Gatavs",
|
||||
"notification_requests.explainer_for_limited_account": "Paziņojumi no šī konta tika atsijāti, jo pārvaldītājs ierobežoja kontu.",
|
||||
"notification_requests.explainer_for_limited_remote_account": "Paziņojumi no šī konta tika atsijāti, jo pārvaldītājs ierobežoja kontu vai tā serveri.",
|
||||
"notification_requests.notifications_from": "Paziņojumi no {name}",
|
||||
"notification_requests.title": "Atlasītie paziņojumi",
|
||||
"notification_requests.view": "Skatīt paziņojumus",
|
||||
|
@ -570,6 +589,7 @@
|
|||
"notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.",
|
||||
"notifications.policy.accept": "Pieņemt",
|
||||
"notifications.policy.drop": "Ignorēt",
|
||||
"notifications.policy.filter_limited_accounts_hint": "Servera satura pārraudzītāju ierobežots",
|
||||
"notifications.policy.filter_new_accounts_title": "Jauni konti",
|
||||
"notifications.policy.filter_not_followers_title": "Cilvēki, kuri Tev neseko",
|
||||
"notifications.policy.filter_not_following_hint": "Līdz tos pašrocīgi apstiprināsi",
|
||||
|
@ -767,6 +787,7 @@
|
|||
"subscribed_languages.target": "Mainīt abonētās valodas priekš {target}",
|
||||
"tabs_bar.home": "Sākums",
|
||||
"tabs_bar.notifications": "Paziņojumi",
|
||||
"terms_of_service.effective_as_of": "Spēkā no {date}",
|
||||
"terms_of_service.title": "Pakalpojuma izmantošanas noteikumi",
|
||||
"time_remaining.days": "{number, plural, one {Atlikusi # diena} other {Atlikušas # dienas}}",
|
||||
"time_remaining.hours": "{number, plural, one {Atlikusi # stunda} other {Atlikušas # stundas}}",
|
||||
|
@ -800,5 +821,13 @@
|
|||
"video.skip_forward": "Tīt uz priekšu",
|
||||
"video.unmute": "Ieslēgt skaņu",
|
||||
"video.volume_down": "Pagriezt klusāk",
|
||||
"video.volume_up": "Pagriezt skaļāk"
|
||||
"video.volume_up": "Pagriezt skaļāk",
|
||||
"visibility_modal.button_title": "Iestatīt redzamību",
|
||||
"visibility_modal.header": "Redzamība un mijjiedarbība",
|
||||
"visibility_modal.privacy_label": "Privātums",
|
||||
"visibility_modal.quote_followers": "Tikai sekotāji",
|
||||
"visibility_modal.quote_label": "Mainīt, kas var citēt",
|
||||
"visibility_modal.quote_nobody": "Tikai es",
|
||||
"visibility_modal.quote_public": "Ikviens",
|
||||
"visibility_modal.save": "Saglabāt"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Phah開tshù ê時間線",
|
||||
"keyboard_shortcuts.hotkey": "快速key",
|
||||
"keyboard_shortcuts.legend": "顯示tsit篇說明",
|
||||
"keyboard_shortcuts.load_more": "Kā焦點suá kàu「載入其他」ê鈕仔",
|
||||
"keyboard_shortcuts.local": "Phah開本站ê時間線",
|
||||
"keyboard_shortcuts.mention": "提起作者",
|
||||
"keyboard_shortcuts.muted": "Phah開消音ê用者列單",
|
||||
|
@ -738,11 +739,18 @@
|
|||
"privacy.private.short": "跟tuè lí ê",
|
||||
"privacy.public.long": "逐ê lâng(無論佇Mastodon以內á是以外)",
|
||||
"privacy.public.short": "公開ê",
|
||||
"privacy.quote.anyone": "{visibility},ta̍k ê lâng lóng ē當引用",
|
||||
"privacy.quote.disabled": "{visibility},停止引用PO文",
|
||||
"privacy.quote.limited": "{visibility},PO文引用受限",
|
||||
"privacy.unlisted.additional": "Tse ê行為kap公開相siâng,m̄-koh 就算lí佇口座設定phah開有關ê公開功能,PO文mā bē顯示佇即時ê動態、hashtag、探索kap Mastodon ê搜尋結果。",
|
||||
"privacy.unlisted.long": "減少演算法ê宣傳",
|
||||
"privacy.unlisted.short": "恬靜ê公開",
|
||||
"privacy_policy.last_updated": "上尾更新tī:{date}",
|
||||
"privacy_policy.title": "隱私權政策",
|
||||
"quote_error.poll": "有投票ê PO文bē當引用。",
|
||||
"quote_error.quote": "Tsi̍t改kan-ta ē當引用tsi̍t篇PO文。",
|
||||
"quote_error.unauthorized": "Lí bô權利引用tsit篇PO文。",
|
||||
"quote_error.upload": "有媒體附件ê PO文無允准引用。",
|
||||
"recommended": "推薦",
|
||||
"refresh": "Koh更新",
|
||||
"regeneration_indicator.please_stand_by": "請sió等leh。",
|
||||
|
@ -849,9 +857,11 @@
|
|||
"status.admin_account": "Phah開 @{name} ê管理界面",
|
||||
"status.admin_domain": "Phah開 {domain} ê管理界面",
|
||||
"status.admin_status": "Tī管理界面內底看tsit篇PO文",
|
||||
"status.all_disabled": "轉送kap引用停止使用",
|
||||
"status.block": "封鎖 @{name}",
|
||||
"status.bookmark": "冊籤",
|
||||
"status.cancel_reblog_private": "取消轉送",
|
||||
"status.cannot_quote": "作者有停止別lâng引用tsit篇PO文",
|
||||
"status.cannot_reblog": "Tsit篇PO文bē當轉送",
|
||||
"status.context.load_new_replies": "有新ê回應",
|
||||
"status.context.loading": "Leh檢查其他ê回應",
|
||||
|
@ -879,6 +889,8 @@
|
|||
"status.mute": "消音 @{name}",
|
||||
"status.mute_conversation": "Kā對話消音",
|
||||
"status.open": "Kā PO文展開",
|
||||
"status.quote": "引用",
|
||||
"status.quote.cancel": "取消引用",
|
||||
"status.quote_error.filtered": "Lí所設定ê過濾器kā tse khàm起來",
|
||||
"status.quote_error.not_available": "鋪文bē當看",
|
||||
"status.quote_error.pending_approval": "鋪文當咧送",
|
||||
|
@ -886,6 +898,7 @@
|
|||
"status.quote_error.pending_approval_popout.title": "Leh送引文?請sió等leh",
|
||||
"status.quote_policy_change": "改通引用ê lâng",
|
||||
"status.quote_post_author": "引用 @{name} ê PO文ah",
|
||||
"status.quote_private": "私人PO文bē當引用",
|
||||
"status.read_more": "讀詳細",
|
||||
"status.reblog": "轉送",
|
||||
"status.reblog_private": "照原PO ê通看見ê範圍轉送",
|
||||
|
@ -937,6 +950,7 @@
|
|||
"upload_button.label": "加圖片、影片á是聲音檔",
|
||||
"upload_error.limit": "超過檔案傳起去ê限制",
|
||||
"upload_error.poll": "Bô允準佇投票ê時kā檔案傳起去。",
|
||||
"upload_error.quote": "引用PO文bē當kā檔案傳起去。",
|
||||
"upload_form.drag_and_drop.instructions": "Nā beh選媒體附件,請tshi̍h空白key á是Enter key。Giú ê時,請用方向key照指定ê方向suá媒體附件。Beh khǹg媒體附件佇伊ê新位置,請koh tshi̍h空白key á是Enter key,或者tshi̍h Esc key來取消。",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Suá位取消ah,媒體附件 {item} khǹg落來ah。",
|
||||
"upload_form.drag_and_drop.on_drag_end": "媒體附件 {item} khǹg落來ah。",
|
||||
|
@ -962,14 +976,12 @@
|
|||
"video.volume_up": "變khah大聲",
|
||||
"visibility_modal.button_title": "設定通看ê程度",
|
||||
"visibility_modal.header": "通看ê程度kap互動",
|
||||
"visibility_modal.helper.direct_quoting": "私人ê提起bē當引用。",
|
||||
"visibility_modal.helper.privacy_editing": "公開ê PO文bē當改in通看ê程度。",
|
||||
"visibility_modal.helper.private_quoting": "Bē當引用kan-ta跟tuè ê通看ê PO文。",
|
||||
"visibility_modal.helper.unlisted_quoting": "若別lâng引用lí,in ê PO文mā ē tuì趨勢時間線隱藏。",
|
||||
"visibility_modal.instructions": "控制ē當kap tsit篇PO文互動ê lâng,Ē當佇 <link>偏愛ê設定>其他</link>tshuē tio̍h全地ê設定。",
|
||||
"visibility_modal.privacy_label": "隱私權",
|
||||
"visibility_modal.quote_followers": "Kan-ta hōo跟tuè ê lâng",
|
||||
"visibility_modal.quote_label": "改通引用ê lâng",
|
||||
"visibility_modal.quote_nobody": "無半位",
|
||||
"visibility_modal.quote_public": "Ta̍k ê lâng"
|
||||
"visibility_modal.quote_public": "Ta̍k ê lâng",
|
||||
"visibility_modal.save": "儲存"
|
||||
}
|
||||
|
|
|
@ -292,6 +292,7 @@
|
|||
"domain_pill.your_handle": "Jouw fediverse-adres:",
|
||||
"domain_pill.your_server": "Jouw digitale thuis, waar al jouw berichten zich bevinden. Is deze server toch niet naar jouw wens? Dan kun je op elk moment naar een andere server verhuizen en ook jouw volgers overbrengen.",
|
||||
"domain_pill.your_username": "Jouw unieke identificatie-adres op deze server. Het is mogelijk dat er gebruikers met dezelfde gebruikersnaam op verschillende servers te vinden zijn.",
|
||||
"dropdown.empty": "Selecteer een optie",
|
||||
"embed.instructions": "Embed dit bericht op jouw website door de onderstaande code te kopiëren.",
|
||||
"embed.preview": "Zo komt het eruit te zien:",
|
||||
"emoji_button.activity": "Activiteiten",
|
||||
|
@ -482,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Starttijdlijn tonen",
|
||||
"keyboard_shortcuts.hotkey": "Sneltoets",
|
||||
"keyboard_shortcuts.legend": "Deze legenda tonen",
|
||||
"keyboard_shortcuts.load_more": "\"Meer laden\"-knop focussen",
|
||||
"keyboard_shortcuts.local": "Lokale tijdlijn tonen",
|
||||
"keyboard_shortcuts.mention": "Account vermelden",
|
||||
"keyboard_shortcuts.muted": "Genegeerde gebruikers tonen",
|
||||
|
@ -618,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Jouw account is opgeschort.",
|
||||
"notification.own_poll": "Jouw peiling is beëindigd",
|
||||
"notification.poll": "Een peiling waaraan jij hebt meegedaan is beëindigd",
|
||||
"notification.quoted_update": "{name} bewerkte een door jou geciteerd bericht",
|
||||
"notification.reblog": "{name} boostte jouw bericht",
|
||||
"notification.reblog.name_and_others_with_link": "{name} en <a>{count, plural, one {# ander persoon} other {# andere personen}}</a> hebben jouw bericht geboost",
|
||||
"notification.relationships_severance_event": "Verloren verbindingen met {name}",
|
||||
|
@ -730,18 +733,25 @@
|
|||
"poll.votes": "{votes, plural, one {# stem} other {# stemmen}}",
|
||||
"poll_button.add_poll": "Peiling toevoegen",
|
||||
"poll_button.remove_poll": "Peiling verwijderen",
|
||||
"privacy.change": "Zichtbaarheid van bericht aanpassen",
|
||||
"privacy.change": "Privacy voor een bericht aanpassen",
|
||||
"privacy.direct.long": "Alleen voor mensen die specifiek in het bericht worden vermeld",
|
||||
"privacy.direct.short": "Privébericht",
|
||||
"privacy.private.long": "Alleen jouw volgers",
|
||||
"privacy.private.short": "Volgers",
|
||||
"privacy.public.long": "Iedereen op Mastodon en daarbuiten",
|
||||
"privacy.public.short": "Openbaar",
|
||||
"privacy.quote.anyone": "{visibility}, iedereen kan citeren",
|
||||
"privacy.quote.disabled": "{visibility}, citeren uitgeschakeld",
|
||||
"privacy.quote.limited": "{visibility}, citeren beperkt",
|
||||
"privacy.unlisted.additional": "Dit is vergelijkbaar met openbaar, behalve dat het bericht niet op openbare tijdlijnen, onder hashtags, verkennen of zoeken verschijnt, zelfs als je je account daarvoor hebt ingesteld.",
|
||||
"privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen",
|
||||
"privacy.unlisted.short": "Minder openbaar",
|
||||
"privacy_policy.last_updated": "Laatst bijgewerkt op {date}",
|
||||
"privacy_policy.title": "Privacybeleid",
|
||||
"quote_error.poll": "Het is niet mogelijk om polls te citeren.",
|
||||
"quote_error.quote": "Je kunt maar één bericht per keer citeren.",
|
||||
"quote_error.unauthorized": "Je bent niet gemachtigd om dit bericht te citeren.",
|
||||
"quote_error.upload": "Je kunt geen mediabijlage aan een bericht met een citaat toevoegen.",
|
||||
"recommended": "Aanbevolen",
|
||||
"refresh": "Vernieuwen",
|
||||
"regeneration_indicator.please_stand_by": "Even geduld alsjeblieft.",
|
||||
|
@ -848,9 +858,11 @@
|
|||
"status.admin_account": "Moderatie-omgeving van @{name} openen",
|
||||
"status.admin_domain": "Moderatie-omgeving van {domain} openen",
|
||||
"status.admin_status": "Dit bericht in de moderatie-omgeving tonen",
|
||||
"status.all_disabled": "Boosts en citaten zijn uitgeschakeld",
|
||||
"status.block": "@{name} blokkeren",
|
||||
"status.bookmark": "Bladwijzer toevoegen",
|
||||
"status.cancel_reblog_private": "Niet langer boosten",
|
||||
"status.cannot_quote": "Dit account heeft het citeren van dit bericht uitgeschakeld",
|
||||
"status.cannot_reblog": "Dit bericht kan niet geboost worden",
|
||||
"status.context.load_new_replies": "Nieuwe reacties beschikbaar",
|
||||
"status.context.loading": "Op nieuwe reacties aan het controleren",
|
||||
|
@ -879,12 +891,17 @@
|
|||
"status.mute_conversation": "Gesprek negeren",
|
||||
"status.open": "Volledig bericht tonen",
|
||||
"status.pin": "Aan profielpagina vastmaken",
|
||||
"status.quote": "Citeren",
|
||||
"status.quote.cancel": "Citeren annuleren",
|
||||
"status.quote_error.filtered": "Verborgen door een van je filters",
|
||||
"status.quote_error.not_available": "Bericht niet beschikbaar",
|
||||
"status.quote_error.pending_approval": "Bericht in afwachting",
|
||||
"status.quote_error.pending_approval_popout.body": "Het kan even duren voordat citaten die in de Fediverse gedeeld worden, worden weergegeven. Omdat verschillende servers niet allemaal hetzelfde protocol gebruiken.",
|
||||
"status.quote_error.pending_approval_popout.title": "Even geduld wanneer het citaat nog moet worden goedgekeurd.",
|
||||
"status.quote_policy_change": "Wijzig wie jou mag citeren",
|
||||
"status.quote_post_author": "Citeerde een bericht van @{name}",
|
||||
"status.quote_private": "Citeren van berichten aan alleen volgers is niet mogelijk",
|
||||
"status.quotes": "{count, plural, one {citaat} other {citaten}}",
|
||||
"status.read_more": "Meer lezen",
|
||||
"status.reblog": "Boosten",
|
||||
"status.reblog_private": "Boost naar oorspronkelijke ontvangers",
|
||||
|
@ -937,6 +954,7 @@
|
|||
"upload_button.label": "Afbeeldingen, een video- of een geluidsbestand toevoegen",
|
||||
"upload_error.limit": "Uploadlimiet van bestand overschreden.",
|
||||
"upload_error.poll": "Het uploaden van bestanden is bij peilingen niet toegestaan.",
|
||||
"upload_error.quote": "Je kunt geen bestand aan een bericht met een citaat toevoegen.",
|
||||
"upload_form.drag_and_drop.instructions": "Druk op spatie of enter om een mediabijlage op te pakken. Gebruik de pijltjestoetsen om de bijlage in een bepaalde richting te verplaatsen. Druk opnieuw op de spatiebalk of enter om de mediabijlage op de nieuwe positie te plaatsen, of druk op escape om te annuleren.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Slepen is geannuleerd. Mediabijlage {item} is niet verplaatst.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Mediabijlage {item} is niet verplaatst.",
|
||||
|
@ -959,5 +977,18 @@
|
|||
"video.skip_forward": "Vooruitspoelen",
|
||||
"video.unmute": "Dempen opheffen",
|
||||
"video.volume_down": "Volume omlaag",
|
||||
"video.volume_up": "Volume omhoog"
|
||||
"video.volume_up": "Volume omhoog",
|
||||
"visibility_modal.button_title": "Privacy instellen",
|
||||
"visibility_modal.header": "Zichtbaarheid en interactie",
|
||||
"visibility_modal.helper.direct_quoting": "Privéberichten afkomstig van Mastodon kunnen niet door anderen worden geciteerd.",
|
||||
"visibility_modal.helper.privacy_editing": "Het is niet mogelijk om de zichtbaarheid van geplaatste berichten te wijzigen.",
|
||||
"visibility_modal.helper.private_quoting": "Berichten aan alleen volgers afkomstig van Mastodon kunnen niet door anderen worden geciteerd.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Wanneer mensen jou citeren, verschijnt hun bericht ook niet onder trends.",
|
||||
"visibility_modal.instructions": "Bepaal wie wat met dit bericht kan doen. De globale instellingen vind je onder <link>Voorkeuren > Overig</link>.",
|
||||
"visibility_modal.privacy_label": "Privacy",
|
||||
"visibility_modal.quote_followers": "Alleen volgers",
|
||||
"visibility_modal.quote_label": "Wijzig wie jou mag citeren",
|
||||
"visibility_modal.quote_nobody": "Alleen ik",
|
||||
"visibility_modal.quote_public": "Iedereen",
|
||||
"visibility_modal.save": "Opslaan"
|
||||
}
|
||||
|
|
|
@ -292,6 +292,7 @@
|
|||
"domain_pill.your_handle": "Handtaket ditt:",
|
||||
"domain_pill.your_server": "Din digitale heim, der alle innlegga dine bur. Liker du ikkje dette? Byt til ein ny tenar når som helst og ta med fylgjarane dine òg.",
|
||||
"domain_pill.your_username": "Din unike identifikator på denne tenaren. Det er mogleg å finne brukarar med same brukarnamn på forskjellige tenarar.",
|
||||
"dropdown.empty": "Vel eit alternativ",
|
||||
"embed.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden nedanfor.",
|
||||
"embed.preview": "Slik kjem det til å sjå ut:",
|
||||
"emoji_button.activity": "Aktivitet",
|
||||
|
@ -482,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "Opne heimetidslina",
|
||||
"keyboard_shortcuts.hotkey": "Snøggtast",
|
||||
"keyboard_shortcuts.legend": "Vis denne forklaringa",
|
||||
"keyboard_shortcuts.load_more": "Fokuser på «Last meir»-knappen",
|
||||
"keyboard_shortcuts.local": "Opne lokal tidsline",
|
||||
"keyboard_shortcuts.mention": "Nemn forfattaren",
|
||||
"keyboard_shortcuts.muted": "Opne liste over målbundne brukarar",
|
||||
|
@ -618,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Kontoen din har blitt suspendert.",
|
||||
"notification.own_poll": "Rundspørjinga di er ferdig",
|
||||
"notification.poll": "Ei rundspørjing du røysta i er ferdig",
|
||||
"notification.quoted_update": "{name} redigerte eit innlegg du har sitert",
|
||||
"notification.reblog": "{name} framheva innlegget ditt",
|
||||
"notification.reblog.name_and_others_with_link": "{name} og <a>{count, plural, one {# annan} other {# andre}}</a> framheva innlegget ditt",
|
||||
"notification.relationships_severance_event": "Tapte samband med {name}",
|
||||
|
@ -737,11 +740,18 @@
|
|||
"privacy.private.short": "Fylgjarar",
|
||||
"privacy.public.long": "Kven som helst på og av Mastodon",
|
||||
"privacy.public.short": "Offentleg",
|
||||
"privacy.quote.anyone": "{visibility}, alle kan sitera",
|
||||
"privacy.quote.disabled": "{visibility}, ingen kan sitera",
|
||||
"privacy.quote.limited": "{visibility}, avgrensa sitat",
|
||||
"privacy.unlisted.additional": "Dette er akkurat som offentleg, bortsett frå at innlegga ikkje dukkar opp i direktestraumar eller merkelappar, i oppdagingar eller Mastodon-søk, sjølv om du har sagt ja til at kontoen skal vera synleg.",
|
||||
"privacy.unlisted.long": "Færre algoritmiske fanfarar",
|
||||
"privacy.unlisted.short": "Stille offentleg",
|
||||
"privacy_policy.last_updated": "Sist oppdatert {date}",
|
||||
"privacy_policy.title": "Personvernsreglar",
|
||||
"quote_error.poll": "Du kan ikkje sitera meiningsmålingar.",
|
||||
"quote_error.quote": "Det er berre lov med eitt sitat om gongen.",
|
||||
"quote_error.unauthorized": "Du har ikkje løyve til å sitera dette innlegget.",
|
||||
"quote_error.upload": "Du kan ikkje sitera medievedlegg.",
|
||||
"recommended": "Tilrådd",
|
||||
"refresh": "Oppdater",
|
||||
"regeneration_indicator.please_stand_by": "Vent litt.",
|
||||
|
@ -848,9 +858,11 @@
|
|||
"status.admin_account": "Opne moderasjonsgrensesnitt for @{name}",
|
||||
"status.admin_domain": "Opna moderatorgrensesnittet for {domain}",
|
||||
"status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet",
|
||||
"status.all_disabled": "Framhevingar og sitat er skrudde av",
|
||||
"status.block": "Blokker @{name}",
|
||||
"status.bookmark": "Set bokmerke",
|
||||
"status.cancel_reblog_private": "Opphev framheving",
|
||||
"status.cannot_quote": "Skribenten har skrudd av sitat for dette innlegget",
|
||||
"status.cannot_reblog": "Du kan ikkje framheva dette innlegget",
|
||||
"status.context.load_new_replies": "Nye svar finst",
|
||||
"status.context.loading": "Ser etter fleire svar",
|
||||
|
@ -879,12 +891,17 @@
|
|||
"status.mute_conversation": "Demp samtale",
|
||||
"status.open": "Utvid denne statusen",
|
||||
"status.pin": "Fest på profil",
|
||||
"status.quote": "Siter",
|
||||
"status.quote.cancel": "Avbryt siteringa",
|
||||
"status.quote_error.filtered": "Gøymt på grunn av eitt av filtra dine",
|
||||
"status.quote_error.not_available": "Innlegget er ikkje tilgjengeleg",
|
||||
"status.quote_error.pending_approval": "Innlegget ventar",
|
||||
"status.quote_error.pending_approval_popout.body": "Sitat frå rundt om i allheimen kan ta tid å visa, fordi ulike tenarar har ulike protokollar.",
|
||||
"status.quote_error.pending_approval_popout.title": "Ventande sitat? Ikkje stress",
|
||||
"status.quote_policy_change": "Byt kven som kan sitera",
|
||||
"status.quote_post_author": "Siterte eit innlegg av @{name}",
|
||||
"status.quote_private": "Du kan ikkje sitera private innlegg",
|
||||
"status.quotes": "{count, plural, one {sitat} other {sitat}}",
|
||||
"status.read_more": "Les meir",
|
||||
"status.reblog": "Framhev",
|
||||
"status.reblog_private": "Framhev til dei originale mottakarane",
|
||||
|
|
|
@ -292,6 +292,7 @@
|
|||
"domain_pill.your_handle": "O teu identificador:",
|
||||
"domain_pill.your_server": "A tua casa digital, onde se encontram todas as tuas publicações. Não gostas deste? Muda de servidor a qualquer momento e leva também os teus seguidores.",
|
||||
"domain_pill.your_username": "O teu identificador único neste servidor. É possível encontrares utilizadores com o mesmo nome de utilizador em diferentes servidores.",
|
||||
"dropdown.empty": "Selecione uma opção",
|
||||
"embed.instructions": "Incorpora esta publicação no teu site copiando o código abaixo.",
|
||||
"embed.preview": "Eis o aspeto que terá:",
|
||||
"emoji_button.activity": "Atividade",
|
||||
|
@ -482,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "abrir a cronologia na página inicial",
|
||||
"keyboard_shortcuts.hotkey": "Atalho",
|
||||
"keyboard_shortcuts.legend": "mostrar esta legenda",
|
||||
"keyboard_shortcuts.load_more": "Focar botão \"Carregar mais\"",
|
||||
"keyboard_shortcuts.local": "abrir a cronologia local",
|
||||
"keyboard_shortcuts.mention": "mencionar o autor",
|
||||
"keyboard_shortcuts.muted": "abrir a lista dos utilizadores ocultados",
|
||||
|
@ -737,11 +739,18 @@
|
|||
"privacy.private.short": "Seguidores",
|
||||
"privacy.public.long": "Qualquer pessoa no Mastodon ou não",
|
||||
"privacy.public.short": "Público",
|
||||
"privacy.quote.anyone": "{visibility}, qualquer pessoa pode citar",
|
||||
"privacy.quote.disabled": "{visibility}, citações desativadas",
|
||||
"privacy.quote.limited": "{visibility}, citações limitadas",
|
||||
"privacy.unlisted.additional": "Este comportamento é exatamente igual ao do público, exceto que a publicação não aparecerá em cronologias, nas etiquetas, ao explorar ou na pesquisa do Mastodon, mesmo que tenhas optado por participar em toda a tua conta.",
|
||||
"privacy.unlisted.long": "Menos fanfarras algorítmicas",
|
||||
"privacy.unlisted.short": "Público silencioso",
|
||||
"privacy_policy.last_updated": "Última atualização em {date}",
|
||||
"privacy_policy.title": "Política de privacidade",
|
||||
"quote_error.poll": "Não é permitido citar sondagens.",
|
||||
"quote_error.quote": "Apenas é permitida uma citação de cada vez.",
|
||||
"quote_error.unauthorized": "Não está autorizado a citar esta publicação.",
|
||||
"quote_error.upload": "Não é permitida a citação com anexos de multimédia.",
|
||||
"recommended": "Recomendado",
|
||||
"refresh": "Atualizar",
|
||||
"regeneration_indicator.please_stand_by": "Aguarda um momento.",
|
||||
|
@ -848,9 +857,11 @@
|
|||
"status.admin_account": "Abrir a interface de moderação para @{name}",
|
||||
"status.admin_domain": "Abrir interface de moderação para {domain}",
|
||||
"status.admin_status": "Abrir esta publicação na interface de moderação",
|
||||
"status.all_disabled": "Impulsos e citações estão desativados",
|
||||
"status.block": "Bloquear @{name}",
|
||||
"status.bookmark": "Guardar nos marcadores",
|
||||
"status.cancel_reblog_private": "Retirar impulso",
|
||||
"status.cannot_quote": "O autor desativou as citações nesta publicação",
|
||||
"status.cannot_reblog": "Esta publicação não pode ser impulsionada",
|
||||
"status.context.load_new_replies": "Novas respostas disponíveis",
|
||||
"status.context.loading": "A verificar por mais respostas",
|
||||
|
@ -879,12 +890,16 @@
|
|||
"status.mute_conversation": "Ocultar conversa",
|
||||
"status.open": "Expandir esta publicação",
|
||||
"status.pin": "Afixar no perfil",
|
||||
"status.quote": "Citação",
|
||||
"status.quote.cancel": "Cancelar citação",
|
||||
"status.quote_error.filtered": "Oculto devido a um dos seus filtros",
|
||||
"status.quote_error.not_available": "Publicação indisponível",
|
||||
"status.quote_error.pending_approval": "Publicação pendente",
|
||||
"status.quote_error.pending_approval_popout.body": "As citações partilhadas no Fediverso podem demorar algum tempo a ser exibidas, uma vez que diferentes servidores têm protocolos diferentes.",
|
||||
"status.quote_error.pending_approval_popout.title": "Citação pendente? Mantenha a calma",
|
||||
"status.quote_policy_change": "Alterar quem pode citar",
|
||||
"status.quote_post_author": "Citou uma publicação de @{name}",
|
||||
"status.quote_private": "Publicações privadas não podem ser citadas",
|
||||
"status.read_more": "Ler mais",
|
||||
"status.reblog": "Impulsionar",
|
||||
"status.reblog_private": "Impulsionar com a visibilidade original",
|
||||
|
@ -937,6 +952,7 @@
|
|||
"upload_button.label": "Adicionar imagens, um vídeo ou um ficheiro de som",
|
||||
"upload_error.limit": "Limite de envio de ficheiros excedido.",
|
||||
"upload_error.poll": "Não é permitido o envio de ficheiros em sondagens.",
|
||||
"upload_error.quote": "Carregamento de ficheiros não é permitido com citações.",
|
||||
"upload_form.drag_and_drop.instructions": "Para escolher um anexo multimédia, prima espaço ou enter. Enquanto arrasta, utilize as teclas de setas para mover o anexo multimédia em qualquer direção. Prima espaço ou enter novamente para largar o anexo multimédia na sua nova posição ou prima escape para cancelar.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "O arrastamento foi cancelado. O anexo multimédia {item} foi descartado.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "O anexo multimédia {item} foi descartado.",
|
||||
|
@ -959,5 +975,15 @@
|
|||
"video.skip_forward": "Saltar para a frente",
|
||||
"video.unmute": "Ativar som",
|
||||
"video.volume_down": "Diminuir volume",
|
||||
"video.volume_up": "Aumentar volume"
|
||||
"video.volume_up": "Aumentar volume",
|
||||
"visibility_modal.button_title": "Definir visibilidade",
|
||||
"visibility_modal.header": "Visibilidade e interação",
|
||||
"visibility_modal.helper.privacy_editing": "Publicações publicadas não podem alterar a sua visibilidade.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quando as pessoas o citarem, as publicações delas serão também ocultadas das tendências.",
|
||||
"visibility_modal.instructions": "Controle quem pode interagir com esta publicação. As configurações globais podem ser encontradas em <link>Preferências > Outros</link>.",
|
||||
"visibility_modal.privacy_label": "Privacidade",
|
||||
"visibility_modal.quote_followers": "Apenas seguidores",
|
||||
"visibility_modal.quote_label": "Altere quem pode citar",
|
||||
"visibility_modal.quote_public": "Todos",
|
||||
"visibility_modal.save": "Guardar"
|
||||
}
|
||||
|
|
|
@ -965,14 +965,12 @@
|
|||
"video.volume_up": "Volym upp",
|
||||
"visibility_modal.button_title": "Ange synlighet",
|
||||
"visibility_modal.header": "Synlighet och interaktion",
|
||||
"visibility_modal.helper.direct_quoting": "Privata omnämnanden kan inte bli citerade.",
|
||||
"visibility_modal.helper.privacy_editing": "Publicerade inlägg kan inte ändra deras synlighet.",
|
||||
"visibility_modal.helper.private_quoting": "Inlägg som endast är synliga för följare kan inte citeras.",
|
||||
"visibility_modal.helper.unlisted_quoting": "När folk citerar dig, deras inlägg kommer också att döljas från trendiga tidslinjer.",
|
||||
"visibility_modal.instructions": "Kontrollera vem som kan interagera med det här inlägget. Globala inställningar kan hittas under <link>Inställningar > Andra</link>.",
|
||||
"visibility_modal.privacy_label": "Integritet",
|
||||
"visibility_modal.quote_followers": "Endast följare",
|
||||
"visibility_modal.quote_label": "Ändra vem som kan citera",
|
||||
"visibility_modal.quote_nobody": "Ingen",
|
||||
"visibility_modal.quote_public": "Alla"
|
||||
"visibility_modal.quote_public": "Alla",
|
||||
"visibility_modal.save": "Spara"
|
||||
}
|
||||
|
|
|
@ -944,6 +944,7 @@
|
|||
"upload_button.label": "Resim, video veya ses dosyası ekleyin",
|
||||
"upload_error.limit": "Dosya yükleme sınırı aşıldı.",
|
||||
"upload_error.poll": "Anketlerde dosya yüklemesine izin verilmez.",
|
||||
"upload_error.quote": "Anketlerde dosya yüklemesine izin verilmez.",
|
||||
"upload_form.drag_and_drop.instructions": "Bir medya eklentisini taşımak için, boşluk veya enter tuşuna basın. Sürükleme sırasında medya eklentisini herhangi bir yöne hareket ettirmek için ok tuşlarını kullanın. Medya eklentisini yeni konumuna bırakmak için tekrar boşluk veya enter tuşuna basın veya işlemi iptal etmek için escape tuşuna basın.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Sürükleme iptal edildi. Medya eklentisi {item} bırakıldı.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Medya eklentisi {item} bırakıldı.",
|
||||
|
@ -969,14 +970,12 @@
|
|||
"video.volume_up": "Sesi yükselt",
|
||||
"visibility_modal.button_title": "Görünürlüğü ayarla",
|
||||
"visibility_modal.header": "Görünürlük ve etkileşim",
|
||||
"visibility_modal.helper.direct_quoting": "Özel gönderiler alıntılanamaz.",
|
||||
"visibility_modal.helper.privacy_editing": "Yayınlanan gönderilerin görünürlüğü değiştirilemez.",
|
||||
"visibility_modal.helper.private_quoting": "Sadece takipçilere özel paylaşımlar alıntılanamaz.",
|
||||
"visibility_modal.helper.unlisted_quoting": "İnsanlar sizden alıntı yaptığında, onların gönderileri de trend zaman tünellerinden gizlenecektir.",
|
||||
"visibility_modal.instructions": "Bu gönderiyle kimlerin etkileşimde bulunabileceğini kontrol edin. Genel ayarlara <link>Tercihler > Diğer</link> bölümünden ulaşabilirsiniz.",
|
||||
"visibility_modal.privacy_label": "Gizlilik",
|
||||
"visibility_modal.quote_followers": "Sadece takipçiler",
|
||||
"visibility_modal.quote_label": "Kimin alıntı yapabileceğini değiştirin",
|
||||
"visibility_modal.quote_nobody": "Kimseden",
|
||||
"visibility_modal.quote_public": "Herkesten"
|
||||
"visibility_modal.quote_public": "Herkesten",
|
||||
"visibility_modal.save": "Kaydet"
|
||||
}
|
||||
|
|
|
@ -924,6 +924,6 @@
|
|||
"visibility_modal.privacy_label": "Конфіденційність",
|
||||
"visibility_modal.quote_followers": "Тільки для підписників",
|
||||
"visibility_modal.quote_label": "Змінити хто може цитувати",
|
||||
"visibility_modal.quote_nobody": "Ніхто",
|
||||
"visibility_modal.quote_public": "Будь-хто"
|
||||
"visibility_modal.quote_public": "Будь-хто",
|
||||
"visibility_modal.save": "Зберегти"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "mở trang chủ",
|
||||
"keyboard_shortcuts.hotkey": "Phím tắt",
|
||||
"keyboard_shortcuts.legend": "hiện bảng hướng dẫn này",
|
||||
"keyboard_shortcuts.load_more": "Mở nút \"Tải thêm\"",
|
||||
"keyboard_shortcuts.local": "mở máy chủ của bạn",
|
||||
"keyboard_shortcuts.mention": "nhắc đến ai đó",
|
||||
"keyboard_shortcuts.muted": "mở danh sách người đã ẩn",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Tài khoản của bạn đã bị vô hiệu hóa.",
|
||||
"notification.own_poll": "Vốt của bạn đã kết thúc",
|
||||
"notification.poll": "Vốt mà bạn tham gia đã kết thúc",
|
||||
"notification.quoted_update": "{name} đã chỉnh sửa tút mà bạn trích dẫn",
|
||||
"notification.reblog": "{name} đăng lại tút của bạn",
|
||||
"notification.reblog.name_and_others_with_link": "{name} và <a>{count, plural, other {# người khác}}</a> đã đăng lại tút của bạn",
|
||||
"notification.relationships_severance_event": "Mất kết nối với {name}",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "Thay đổi người có thể trích dẫn",
|
||||
"status.quote_post_author": "Trích dẫn từ tút của @{name}",
|
||||
"status.quote_private": "Không thể trích dẫn nhắn riêng",
|
||||
"status.quotes": "{count, plural, other {trích dẫn}}",
|
||||
"status.read_more": "Đọc tiếp",
|
||||
"status.reblog": "Đăng lại",
|
||||
"status.reblog_private": "Đăng lại (Riêng tư)",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "Tăng âm lượng",
|
||||
"visibility_modal.button_title": "Thay đổi quyền riêng tư",
|
||||
"visibility_modal.header": "Hiển thị và tương tác",
|
||||
"visibility_modal.helper.direct_quoting": "Không thể trích dẫn nhắn riêng.",
|
||||
"visibility_modal.helper.direct_quoting": "Nhắn riêng trên Mastodon không thể được người khác trích dẫn.",
|
||||
"visibility_modal.helper.privacy_editing": "Không thể thay đổi kiểu hiển thị của tút đã đăng.",
|
||||
"visibility_modal.helper.private_quoting": "Không thể trích dẫn những tút chỉ dành cho người theo dõi.",
|
||||
"visibility_modal.helper.private_quoting": "Tút chỉ dành cho người theo dõi trên Mastodon không thể được người khác trích dẫn.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Khi ai đó trích dẫn bạn, tút của họ cũng sẽ bị ẩn khỏi bảng tin công khai.",
|
||||
"visibility_modal.instructions": "Kiểm soát những ai có thể tương tác với tút này. Cài đặt chung trong <link>Thiết lập > Khác</link>.",
|
||||
"visibility_modal.privacy_label": "Riêng tư",
|
||||
"visibility_modal.quote_followers": "Chỉ người theo dõi",
|
||||
"visibility_modal.quote_label": "Thay đổi người có thể trích dẫn",
|
||||
"visibility_modal.quote_nobody": "Không ai",
|
||||
"visibility_modal.quote_public": "Bất cứ ai"
|
||||
"visibility_modal.quote_nobody": "Chỉ tôi",
|
||||
"visibility_modal.quote_public": "Bất cứ ai",
|
||||
"visibility_modal.save": "Lưu"
|
||||
}
|
||||
|
|
|
@ -241,6 +241,7 @@
|
|||
"confirmations.remove_from_followers.message": "{name} 将停止关注您。您确定要继续吗?",
|
||||
"confirmations.remove_from_followers.title": "移除关注者?",
|
||||
"confirmations.revoke_quote.confirm": "移除嘟文",
|
||||
"confirmations.revoke_quote.message": "此操作无法撤销。",
|
||||
"confirmations.revoke_quote.title": "移除嘟文?",
|
||||
"confirmations.unfollow.confirm": "取消关注",
|
||||
"confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
|
||||
|
@ -494,6 +495,7 @@
|
|||
"keyboard_shortcuts.unfocus": "取消输入/搜索",
|
||||
"keyboard_shortcuts.up": "在列表中让光标上移",
|
||||
"learn_more_link.got_it": "明白了",
|
||||
"learn_more_link.learn_more": "了解更多",
|
||||
"lightbox.close": "关闭",
|
||||
"lightbox.next": "下一个",
|
||||
"lightbox.previous": "上一个",
|
||||
|
@ -939,5 +941,10 @@
|
|||
"video.skip_forward": "前进",
|
||||
"video.unmute": "恢复提醒",
|
||||
"video.volume_down": "音量减小",
|
||||
"video.volume_up": "提高音量"
|
||||
"video.volume_up": "提高音量",
|
||||
"visibility_modal.button_title": "设置可见性",
|
||||
"visibility_modal.privacy_label": "隐私",
|
||||
"visibility_modal.quote_label": "更改谁可以引用",
|
||||
"visibility_modal.quote_public": "任何人",
|
||||
"visibility_modal.save": "保存"
|
||||
}
|
||||
|
|
|
@ -377,6 +377,7 @@
|
|||
"keyboard_shortcuts.home": "開啟個人時間軸",
|
||||
"keyboard_shortcuts.hotkey": "快速鍵",
|
||||
"keyboard_shortcuts.legend": "顯示這個說明",
|
||||
"keyboard_shortcuts.load_more": "將焦點移至「讀取更多」按鈕",
|
||||
"keyboard_shortcuts.local": "開啟本站時間軸",
|
||||
"keyboard_shortcuts.mention": "提及作者",
|
||||
"keyboard_shortcuts.muted": "開啟靜音名單",
|
||||
|
@ -744,5 +745,6 @@
|
|||
"video.pause": "暫停",
|
||||
"video.play": "播放",
|
||||
"video.volume_down": "調低音量",
|
||||
"video.volume_up": "調高音量"
|
||||
"video.volume_up": "調高音量",
|
||||
"visibility_modal.save": "儲存"
|
||||
}
|
||||
|
|
|
@ -483,6 +483,7 @@
|
|||
"keyboard_shortcuts.home": "開啟首頁時間軸",
|
||||
"keyboard_shortcuts.hotkey": "快速鍵",
|
||||
"keyboard_shortcuts.legend": "顯示此說明選單",
|
||||
"keyboard_shortcuts.load_more": "將焦點移至「讀取更多」按鈕",
|
||||
"keyboard_shortcuts.local": "開啟本站時間軸",
|
||||
"keyboard_shortcuts.mention": "提及作者",
|
||||
"keyboard_shortcuts.muted": "開啟靜音使用者列表",
|
||||
|
@ -619,6 +620,7 @@
|
|||
"notification.moderation_warning.action_suspend": "您的帳號已被停權。",
|
||||
"notification.own_poll": "您的投票已結束",
|
||||
"notification.poll": "您曾投過的投票已經結束",
|
||||
"notification.quoted_update": "{name} 已編輯一則您曾引用之嘟文",
|
||||
"notification.reblog": "{name} 已轉嘟您的嘟文",
|
||||
"notification.reblog.name_and_others_with_link": "{name} 與<a>{count, plural, other {其他 # 個人}}</a>已轉嘟您的嘟文",
|
||||
"notification.relationships_severance_event": "與 {name} 失去連結",
|
||||
|
@ -899,6 +901,7 @@
|
|||
"status.quote_policy_change": "變更可以引用的人",
|
||||
"status.quote_post_author": "已引用 @{name} 之嘟文",
|
||||
"status.quote_private": "無法引用私人嘟文",
|
||||
"status.quotes": "{count, plural, other {# 則引用嘟文}}",
|
||||
"status.read_more": "閱讀更多",
|
||||
"status.reblog": "轉嘟",
|
||||
"status.reblog_private": "依照原嘟可見性轉嘟",
|
||||
|
@ -977,14 +980,15 @@
|
|||
"video.volume_up": "提高音量",
|
||||
"visibility_modal.button_title": "設定可見性",
|
||||
"visibility_modal.header": "可見性與互動",
|
||||
"visibility_modal.helper.direct_quoting": "無法引用私人提及。",
|
||||
"visibility_modal.helper.direct_quoting": "Mastodon 上發佈之私人提及嘟文無法被其他使用者引用。",
|
||||
"visibility_modal.helper.privacy_editing": "無法變更已發佈的嘟文之可見性。",
|
||||
"visibility_modal.helper.private_quoting": "無法引用僅追蹤者的嘟文。",
|
||||
"visibility_modal.helper.private_quoting": "Mastodon 上發佈之僅限跟隨者嘟文無法被其他使用者引用。",
|
||||
"visibility_modal.helper.unlisted_quoting": "當其他人引用您時,他們的嘟文也會自熱門時間軸隱藏。",
|
||||
"visibility_modal.instructions": "控制誰能與此嘟文互動。可在<link>偏好設定 > 其他</link>下找到全域設定。",
|
||||
"visibility_modal.privacy_label": "隱私權",
|
||||
"visibility_modal.quote_followers": "僅限跟隨者",
|
||||
"visibility_modal.quote_label": "變更可以引用的人",
|
||||
"visibility_modal.quote_nobody": "沒有人",
|
||||
"visibility_modal.quote_public": "所有人"
|
||||
"visibility_modal.quote_nobody": "僅有我",
|
||||
"visibility_modal.quote_public": "所有人",
|
||||
"visibility_modal.save": "儲存"
|
||||
}
|
||||
|
|
|
@ -39,6 +39,8 @@ export type NotificationGroupMention = BaseNotificationWithStatus<'mention'>;
|
|||
export type NotificationGroupQuote = BaseNotificationWithStatus<'quote'>;
|
||||
export type NotificationGroupPoll = BaseNotificationWithStatus<'poll'>;
|
||||
export type NotificationGroupUpdate = BaseNotificationWithStatus<'update'>;
|
||||
export type NotificationGroupQuotedUpdate =
|
||||
BaseNotificationWithStatus<'quoted_update'>;
|
||||
export type NotificationGroupFollow = BaseNotification<'follow'>;
|
||||
export type NotificationGroupFollowRequest = BaseNotification<'follow_request'>;
|
||||
export type NotificationGroupAdminSignUp = BaseNotification<'admin.sign_up'>;
|
||||
|
@ -91,6 +93,7 @@ export type NotificationGroup =
|
|||
| NotificationGroupQuote
|
||||
| NotificationGroupPoll
|
||||
| NotificationGroupUpdate
|
||||
| NotificationGroupQuotedUpdate
|
||||
| NotificationGroupFollow
|
||||
| NotificationGroupFollowRequest
|
||||
| NotificationGroupModerationWarning
|
||||
|
@ -141,7 +144,8 @@ export function createNotificationGroupFromJSON(
|
|||
case 'mention':
|
||||
case 'quote':
|
||||
case 'poll':
|
||||
case 'update': {
|
||||
case 'update':
|
||||
case 'quoted_update': {
|
||||
const { status_id: statusId, ...groupWithoutStatus } = group;
|
||||
return {
|
||||
statusId: statusId ?? undefined,
|
||||
|
@ -215,6 +219,7 @@ export function createNotificationGroupFromNotificationJSON(
|
|||
case 'quote':
|
||||
case 'poll':
|
||||
case 'update':
|
||||
case 'quoted_update':
|
||||
return {
|
||||
...group,
|
||||
type: notification.type,
|
||||
|
|
|
@ -526,8 +526,13 @@ export const composeReducer = (state = initialState, action) => {
|
|||
}
|
||||
|
||||
if (action.status.get('poll')) {
|
||||
let options = ImmutableList(action.status.get('poll').options.map(x => x.title));
|
||||
if (options.size < action.maxOptions) {
|
||||
options = options.push('');
|
||||
}
|
||||
|
||||
map.set('poll', ImmutableMap({
|
||||
options: ImmutableList(action.status.get('poll').options.map(x => x.title)),
|
||||
options: options,
|
||||
multiple: action.status.get('poll').multiple,
|
||||
expires_in: expiresInFromExpiresAt(action.status.get('poll').expires_at),
|
||||
}));
|
||||
|
@ -558,8 +563,13 @@ export const composeReducer = (state = initialState, action) => {
|
|||
}
|
||||
|
||||
if (action.status.get('poll')) {
|
||||
let options = ImmutableList(action.status.get('poll').options.map(x => x.title));
|
||||
if (options.size < action.maxOptions) {
|
||||
options = options.push('');
|
||||
}
|
||||
|
||||
map.set('poll', ImmutableMap({
|
||||
options: ImmutableList(action.status.get('poll').options.map(x => x.title)),
|
||||
options: options,
|
||||
multiple: action.status.get('poll').multiple,
|
||||
expires_in: expiresInFromExpiresAt(action.status.get('poll').expires_at),
|
||||
}));
|
||||
|
|
|
@ -28,6 +28,9 @@ import {
|
|||
PIN_SUCCESS,
|
||||
UNPIN_SUCCESS,
|
||||
} from '../actions/interactions';
|
||||
import {
|
||||
fetchQuotes
|
||||
} from '../actions/interactions_typed';
|
||||
import {
|
||||
PINNED_STATUSES_FETCH_SUCCESS,
|
||||
} from '../actions/pin_statuses';
|
||||
|
@ -40,8 +43,6 @@ import {
|
|||
TRENDS_STATUSES_EXPAND_FAIL,
|
||||
} from '../actions/trends';
|
||||
|
||||
|
||||
|
||||
const initialState = ImmutableMap({
|
||||
favourites: ImmutableMap({
|
||||
next: null,
|
||||
|
@ -63,6 +64,12 @@ const initialState = ImmutableMap({
|
|||
loaded: false,
|
||||
items: ImmutableOrderedSet(),
|
||||
}),
|
||||
quotes: ImmutableMap({
|
||||
next: null,
|
||||
loaded: false,
|
||||
items: ImmutableOrderedSet(),
|
||||
statusId: null,
|
||||
}),
|
||||
});
|
||||
|
||||
const normalizeList = (state, listType, statuses, next) => {
|
||||
|
@ -147,6 +154,13 @@ export default function statusLists(state = initialState, action) {
|
|||
case muteAccountSuccess.type:
|
||||
return state.updateIn(['trending', 'items'], ImmutableOrderedSet(), list => list.filterNot(statusId => action.payload.statuses.getIn([statusId, 'account']) === action.payload.relationship.id));
|
||||
default:
|
||||
return state;
|
||||
if (fetchQuotes.fulfilled.match(action))
|
||||
return normalizeList(state, 'quotes', action.payload.statuses, action.payload.next).set('statusId', action.meta.arg.statusId);
|
||||
else if (fetchQuotes.pending.match(action))
|
||||
return state.setIn(['quotes', 'isLoading'], true).setIn(['quotes', 'statusId'], action.meta.arg.statusId);
|
||||
else if (fetchQuotes.rejected.match(action))
|
||||
return state.setIn(['quotes', 'isLoading', false]).setIn(['quotes', 'statusId'], action.meta.arg.statusId);
|
||||
else
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,8 +90,15 @@ export default function statuses(state = initialState, action) {
|
|||
switch(action.type) {
|
||||
case STATUS_FETCH_REQUEST:
|
||||
return state.setIn([action.id, 'isLoading'], true);
|
||||
case STATUS_FETCH_FAIL:
|
||||
return state.delete(action.id);
|
||||
case STATUS_FETCH_FAIL: {
|
||||
if (action.parentQuotePostId && action.error.status === 404) {
|
||||
return state
|
||||
.delete(action.id)
|
||||
.setIn([action.parentQuotePostId, 'quote', 'state'], 'deleted')
|
||||
} else {
|
||||
return state.delete(action.id);
|
||||
}
|
||||
}
|
||||
case STATUS_IMPORT:
|
||||
return importStatus(state, action.status);
|
||||
case STATUSES_IMPORT:
|
||||
|
|
|
@ -2875,7 +2875,7 @@ a.account__display-name {
|
|||
|
||||
.reblog-button {
|
||||
&__item {
|
||||
width: 280px;
|
||||
max-width: 360px;
|
||||
|
||||
button {
|
||||
display: flex;
|
||||
|
@ -5668,9 +5668,20 @@ a.status-card {
|
|||
z-index: 9999;
|
||||
}
|
||||
|
||||
&__label.disabled {
|
||||
cursor: default;
|
||||
opacity: 0.5;
|
||||
&__label {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
|
||||
> span {
|
||||
display: block;
|
||||
font-weight: 500;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
&__button {
|
||||
|
@ -5988,17 +5999,6 @@ a.status-card {
|
|||
}
|
||||
}
|
||||
|
||||
.modal-root label {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
|
||||
> span {
|
||||
display: block;
|
||||
font-weight: 500;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.video-modal .video-player {
|
||||
max-height: 80vh;
|
||||
max-width: 100vw;
|
||||
|
|
|
@ -68,6 +68,7 @@ export const statusFactory: FactoryFunction<ApiStatusJSON> = ({
|
|||
url: 'https://example.com/status/1',
|
||||
replies_count: 0,
|
||||
reblogs_count: 0,
|
||||
quotes_count: 0,
|
||||
favorites_count: 0,
|
||||
account: accountFactory(),
|
||||
media_attachments: [],
|
||||
|
|
|
@ -77,6 +77,9 @@ class Notification < ApplicationRecord
|
|||
quote: {
|
||||
filterable: true,
|
||||
}.freeze,
|
||||
quoted_update: {
|
||||
filterable: false,
|
||||
}.freeze,
|
||||
}.freeze
|
||||
|
||||
TYPES = PROPERTIES.keys.freeze
|
||||
|
@ -89,6 +92,7 @@ class Notification < ApplicationRecord
|
|||
favourite: [favourite: :status],
|
||||
poll: [poll: :status],
|
||||
update: :status,
|
||||
quoted_update: :status,
|
||||
'admin.report': [report: :target_account],
|
||||
}.freeze
|
||||
|
||||
|
@ -120,7 +124,7 @@ class Notification < ApplicationRecord
|
|||
|
||||
def target_status
|
||||
case type
|
||||
when :status, :update
|
||||
when :status, :update, :quoted_update
|
||||
status
|
||||
when :reblog
|
||||
status&.reblog
|
||||
|
@ -172,7 +176,7 @@ class Notification < ApplicationRecord
|
|||
cached_status = cached_statuses_by_id[notification.target_status.id]
|
||||
|
||||
case notification.type
|
||||
when :status, :update
|
||||
when :status, :update, :quoted_update
|
||||
notification.status = cached_status
|
||||
when :reblog
|
||||
notification.status.reblog = cached_status
|
||||
|
@ -202,7 +206,9 @@ class Notification < ApplicationRecord
|
|||
return unless new_record?
|
||||
|
||||
case activity_type
|
||||
when 'Status', 'Follow', 'Favourite', 'FollowRequest', 'Poll', 'Report', 'Quote'
|
||||
when 'Status'
|
||||
self.from_account_id = type == :quoted_update ? activity&.quote&.quoted_account_id : activity&.account_id
|
||||
when 'Follow', 'Favourite', 'FollowRequest', 'Poll', 'Report', 'Quote'
|
||||
self.from_account_id = activity&.account_id
|
||||
when 'Mention'
|
||||
self.from_account_id = activity&.status&.account_id
|
||||
|
|
|
@ -40,6 +40,10 @@ class Quote < ApplicationRecord
|
|||
validates :approval_uri, absence: true, if: -> { quoted_account&.local? }
|
||||
validate :validate_visibility
|
||||
|
||||
after_create_commit :increment_counter_caches!
|
||||
after_destroy_commit :decrement_counter_caches!
|
||||
after_update_commit :update_counter_caches!
|
||||
|
||||
def accept!
|
||||
update!(state: :accepted)
|
||||
end
|
||||
|
@ -84,4 +88,27 @@ class Quote < ApplicationRecord
|
|||
def set_activity_uri
|
||||
self.activity_uri = [ActivityPub::TagManager.instance.uri_for(account), '/quote_requests/', SecureRandom.uuid].join
|
||||
end
|
||||
|
||||
def increment_counter_caches!
|
||||
return unless accepted?
|
||||
|
||||
quoted_status&.increment_count!(:quotes_count)
|
||||
end
|
||||
|
||||
def decrement_counter_caches!
|
||||
return unless accepted?
|
||||
|
||||
quoted_status&.decrement_count!(:quotes_count)
|
||||
end
|
||||
|
||||
def update_counter_caches!
|
||||
return if legacy? || !state_previously_changed?
|
||||
|
||||
if accepted?
|
||||
quoted_status&.increment_count!(:quotes_count)
|
||||
else
|
||||
# TODO: are there cases where this would not be correct?
|
||||
quoted_status&.decrement_count!(:quotes_count)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -301,6 +301,10 @@ class Status < ApplicationRecord
|
|||
status_stat&.favourites_count || 0
|
||||
end
|
||||
|
||||
def quotes_count
|
||||
status_stat&.quotes_count || 0
|
||||
end
|
||||
|
||||
# Reblogs count received from an external instance
|
||||
def untrusted_reblogs_count
|
||||
status_stat&.untrusted_reblogs_count unless local?
|
||||
|
|
|
@ -5,14 +5,15 @@
|
|||
# Table name: status_stats
|
||||
#
|
||||
# id :bigint(8) not null, primary key
|
||||
# status_id :bigint(8) not null
|
||||
# replies_count :bigint(8) default(0), not null
|
||||
# reblogs_count :bigint(8) default(0), not null
|
||||
# favourites_count :bigint(8) default(0), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# quotes_count :bigint(8) default(0), not null
|
||||
# reblogs_count :bigint(8) default(0), not null
|
||||
# replies_count :bigint(8) default(0), not null
|
||||
# untrusted_favourites_count :bigint(8)
|
||||
# untrusted_reblogs_count :bigint(8)
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# status_id :bigint(8) not null
|
||||
#
|
||||
|
||||
class StatusStat < ApplicationRecord
|
||||
|
@ -34,6 +35,10 @@ class StatusStat < ApplicationRecord
|
|||
[attributes['favourites_count'], 0].max
|
||||
end
|
||||
|
||||
def quotes_count
|
||||
[attributes['quotes_count'], 0].max
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def clamp_untrusted_counts
|
||||
|
|
|
@ -24,7 +24,7 @@ class REST::NotificationGroupSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def status_type?
|
||||
[:favourite, :reblog, :status, :mention, :poll, :update, :quote].include?(object.type)
|
||||
[:favourite, :reblog, :status, :mention, :poll, :update, :quote, :quoted_update].include?(object.type)
|
||||
end
|
||||
|
||||
def report_type?
|
||||
|
|
|
@ -21,7 +21,7 @@ class REST::NotificationSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def status_type?
|
||||
[:favourite, :reblog, :status, :mention, :poll, :update, :quote].include?(object.type)
|
||||
[:favourite, :reblog, :status, :mention, :poll, :update, :quoted_update, :quote].include?(object.type)
|
||||
end
|
||||
|
||||
def report_type?
|
||||
|
|
|
@ -8,7 +8,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
|
|||
attributes :id, :created_at, :in_reply_to_id, :in_reply_to_account_id,
|
||||
:sensitive, :spoiler_text, :visibility, :language,
|
||||
:uri, :url, :replies_count, :reblogs_count,
|
||||
:favourites_count, :edited_at
|
||||
:favourites_count, :quotes_count, :edited_at
|
||||
|
||||
attribute :favourited, if: :current_user?
|
||||
attribute :reblogged, if: :current_user?
|
||||
|
@ -99,6 +99,10 @@ class REST::StatusSerializer < ActiveModel::Serializer
|
|||
object.untrusted_favourites_count || relationships&.attributes_map&.dig(object.id, :favourites_count) || object.favourites_count
|
||||
end
|
||||
|
||||
def quotes_count
|
||||
relationships&.attributes_map&.dig(object.id, :quotes_count) || object.quotes_count
|
||||
end
|
||||
|
||||
def favourited
|
||||
if relationships
|
||||
relationships.favourites_map[object.id] || false
|
||||
|
|
|
@ -8,6 +8,6 @@ class ActivityPub::PrepareFollowersSynchronizationService < BaseService
|
|||
|
||||
return if params['collectionId'] != @account.followers_url || non_matching_uri_hosts?(@account.uri, params['url']) || @account.local_followers_hash == params['digest']
|
||||
|
||||
ActivityPub::FollowersSynchronizationWorker.perform_async(@account.id, params['url'])
|
||||
ActivityPub::FollowersSynchronizationWorker.perform_async(@account.id, params['url'], params['digest'])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,13 +6,15 @@ class ActivityPub::SynchronizeFollowersService < BaseService
|
|||
|
||||
MAX_COLLECTION_PAGES = 10
|
||||
|
||||
def call(account, partial_collection_url)
|
||||
def call(account, partial_collection_url, expected_digest = nil)
|
||||
@account = account
|
||||
@expected_followers_ids = []
|
||||
@digest = [expected_digest].pack('H*') if expected_digest.present?
|
||||
|
||||
return unless process_collection!(partial_collection_url)
|
||||
|
||||
remove_unexpected_local_followers!
|
||||
# Only remove followers if the digests match, as it is a destructive operation
|
||||
remove_unexpected_local_followers! if expected_digest.blank? || @digest == "\x00" * 32
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -21,6 +23,8 @@ class ActivityPub::SynchronizeFollowersService < BaseService
|
|||
page_expected_followers = extract_local_followers(items)
|
||||
@expected_followers_ids.concat(page_expected_followers.pluck(:id))
|
||||
|
||||
items.each { |uri| Xorcist.xor!(@digest, Digest::SHA256.digest(uri)) } if @digest.present?
|
||||
|
||||
handle_unexpected_outgoing_follows!(page_expected_followers)
|
||||
end
|
||||
|
||||
|
|
|
@ -99,6 +99,12 @@ class FanOutOnWriteService < BaseService
|
|||
[account.id, @status.id, 'Status', 'update']
|
||||
end
|
||||
end
|
||||
|
||||
@status.quotes.accepted.find_in_batches do |quotes|
|
||||
LocalNotificationWorker.push_bulk(quotes) do |quote|
|
||||
[quote.account_id, quote.status_id, 'Status', 'quoted_update']
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def deliver_to_all_followers!
|
||||
|
|
|
@ -8,6 +8,7 @@ class NotifyService < BaseService
|
|||
admin.report
|
||||
admin.sign_up
|
||||
update
|
||||
quoted_update
|
||||
poll
|
||||
status
|
||||
moderation_warning
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- content_for :page_title do
|
||||
= t('admin.domain_blocks.edit')
|
||||
|
||||
= simple_form_for @domain_block, url: admin_domain_block_path(@domain_block), method: :put do |form|
|
||||
= simple_form_for @domain_block, url: admin_domain_block_path(@domain_block) do |form|
|
||||
= render 'shared/error_messages', object: @domain_block
|
||||
|
||||
= render form
|
||||
|
|
|
@ -30,8 +30,7 @@
|
|||
%button.button= t('admin.accounts.search')
|
||||
= link_to t('admin.accounts.reset'), admin_reports_path, class: 'button button--dangerous'
|
||||
|
||||
- @reports.group_by(&:target_account_id).each_value do |reports|
|
||||
- target_account = reports.first.target_account
|
||||
- @reports.group_by(&:target_account).each do |target_account, reports|
|
||||
.report-card
|
||||
.report-card__profile
|
||||
= account_link_to target_account, '', path: admin_account_path(target_account.id)
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
- account_url = local_assigns[:admin] ? admin_account_path(account.id) : ActivityPub::TagManager.instance.url_for(account)
|
||||
- compact ||= false
|
||||
-# locals: (account:, compact: false)
|
||||
|
||||
.card.h-card
|
||||
= link_to account_url, target: '_blank', rel: 'noopener' do
|
||||
= link_to ActivityPub::TagManager.instance.url_for(account), target: '_blank', rel: 'noopener' do
|
||||
- unless compact
|
||||
.card__img
|
||||
= image_tag account.header.url, alt: ''
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
- accounts = hashtag.statuses.public_visibility.joins(:account).merge(Account.without_suspended.without_silenced).includes(:account).limit(3).map(&:account)
|
||||
|
||||
%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
|
||||
%tr
|
||||
%td.email-mini-wrapper-td
|
||||
|
@ -13,7 +11,7 @@
|
|||
%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
|
||||
%tr
|
||||
%td.email-mini-hashtag-img-td
|
||||
- accounts.each do |account|
|
||||
- recent_tag_users(hashtag).each do |account|
|
||||
%span.email-mini-hashtag-img-span
|
||||
= image_tag full_asset_url(account.avatar.url), alt: '', width: 16, height: 16
|
||||
%td
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
= render_captcha
|
||||
|
||||
%p.lead= t('auth.captcha_confirmation.help_html', email: mail_to(Setting.site_contact_email, nil))
|
||||
%p.lead= t('auth.captcha_confirmation.help_html', email: mail_to(Setting.site_contact_email))
|
||||
|
||||
.actions
|
||||
= form.button t('challenge.confirm'),
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
= f.button :button, t('auth.login'), type: :submit
|
||||
|
||||
- if Setting.site_contact_email.present?
|
||||
%p.hint.subtle-hint= t('users.otp_lost_help_html', email: mail_to(Setting.site_contact_email, nil))
|
||||
%p.hint.subtle-hint= t('users.otp_lost_help_html', email: mail_to(Setting.site_contact_email))
|
||||
|
||||
- if webauthn_enabled?
|
||||
.form-footer
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
- content_for :page_title do
|
||||
= t('filters.edit.title')
|
||||
|
||||
= simple_form_for @filter, url: filter_path(@filter), method: :put do |f|
|
||||
= simple_form_for @filter, url: filter_path(@filter) do |f|
|
||||
= render 'filter_fields', f: f
|
||||
|
||||
.actions
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
= vite_react_refresh_tag
|
||||
= vite_polyfills_tag
|
||||
-# Needed for the wicg-inert polyfill. It needs to be on it's own <style> tag, with this `id`
|
||||
= vite_stylesheet_tag 'styles/entrypoints/inert.scss', media: 'all', id: 'inert-style'
|
||||
= vite_stylesheet_tag 'styles/entrypoints/inert.scss', media: 'all', id: 'inert-style', crossorigin: 'anonymous'
|
||||
= vite_typescript_tag 'common.ts', crossorigin: 'anonymous'
|
||||
|
||||
= vite_preload_file_tag "mastodon/locales/#{I18n.locale}.json"
|
||||
|
|
|
@ -17,38 +17,36 @@
|
|||
|
||||
%h4= t 'preferences.posting_defaults'
|
||||
|
||||
.fields-row
|
||||
.fields-group.fields-row__column.fields-row__column-6
|
||||
= ff.input :default_privacy,
|
||||
collection: Status.selectable_visibilities,
|
||||
selected: current_user.setting_default_privacy,
|
||||
hint: false,
|
||||
include_blank: false,
|
||||
label_method: ->(visibility) { safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') },
|
||||
label: I18n.t('simple_form.labels.defaults.setting_default_privacy'),
|
||||
required: false,
|
||||
wrapper: :with_label
|
||||
.fields-group
|
||||
= ff.input :default_privacy,
|
||||
collection: Status.selectable_visibilities,
|
||||
selected: current_user.setting_default_privacy,
|
||||
hint: false,
|
||||
include_blank: false,
|
||||
label_method: ->(visibility) { safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') },
|
||||
label: I18n.t('simple_form.labels.defaults.setting_default_privacy'),
|
||||
required: false,
|
||||
wrapper: :with_label
|
||||
|
||||
.fields-group.fields-row__column.fields-row__column-6
|
||||
= ff.input :default_language,
|
||||
collection: [nil] + filterable_languages,
|
||||
hint: false,
|
||||
include_blank: false,
|
||||
label_method: ->(locale) { locale.nil? ? I18n.t('statuses.default_language') : native_locale_name(locale) },
|
||||
label: I18n.t('simple_form.labels.defaults.setting_default_language'),
|
||||
required: false,
|
||||
wrapper: :with_label
|
||||
.fields-group
|
||||
= ff.input :default_quote_policy,
|
||||
collection: %w(public followers nobody),
|
||||
include_blank: false,
|
||||
label_method: ->(policy) { I18n.t("statuses.quote_policies.#{policy}") },
|
||||
label: I18n.t('simple_form.labels.defaults.setting_default_quote_policy'),
|
||||
hint: I18n.t('simple_form.hints.defaults.setting_default_quote_policy'),
|
||||
required: false,
|
||||
wrapper: :with_label
|
||||
|
||||
.fields-row
|
||||
.fields-group.fields-row__column.fields-row__column-6
|
||||
= ff.input :default_quote_policy,
|
||||
collection: %w(public followers nobody),
|
||||
include_blank: false,
|
||||
label_method: ->(policy) { I18n.t("statuses.quote_policies.#{policy}") },
|
||||
label: I18n.t('simple_form.labels.defaults.setting_default_quote_policy'),
|
||||
hint: I18n.t('simple_form.hints.defaults.setting_default_quote_policy'),
|
||||
required: false,
|
||||
wrapper: :with_label
|
||||
.fields-group
|
||||
= ff.input :default_language,
|
||||
collection: [nil] + filterable_languages,
|
||||
hint: false,
|
||||
include_blank: false,
|
||||
label_method: ->(locale) { locale.nil? ? I18n.t('statuses.default_language') : native_locale_name(locale) },
|
||||
label: I18n.t('simple_form.labels.defaults.setting_default_language'),
|
||||
required: false,
|
||||
wrapper: :with_label
|
||||
|
||||
.fields-group
|
||||
= ff.input :default_sensitive,
|
||||
|
|
|
@ -5,10 +5,10 @@ class ActivityPub::FollowersSynchronizationWorker
|
|||
|
||||
sidekiq_options queue: 'push', lock: :until_executed
|
||||
|
||||
def perform(account_id, url)
|
||||
def perform(account_id, url, expected_digest = nil)
|
||||
@account = Account.find_by(id: account_id)
|
||||
return true if @account.nil?
|
||||
|
||||
ActivityPub::SynchronizeFollowersService.new.call(@account, url)
|
||||
ActivityPub::SynchronizeFollowersService.new.call(@account, url, expected_digest)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -17,6 +17,8 @@ class LocalNotificationWorker
|
|||
# should replace the previous ones.
|
||||
if type == 'update'
|
||||
Notification.where(account: receiver, activity: activity, type: 'update').in_batches.delete_all
|
||||
elsif type == 'quoted_update'
|
||||
Notification.where(account: receiver, activity: activity, type: 'quoted_update').in_batches.delete_all
|
||||
elsif Notification.where(account: receiver, activity: activity, type: type).any?
|
||||
return
|
||||
end
|
||||
|
|
|
@ -314,7 +314,6 @@ an:
|
|||
title: Emojis personalizaus
|
||||
uncategorized: Sin clasificar
|
||||
unlist: No listau
|
||||
unlisted: Sin listar
|
||||
update_failed_msg: No se podió actualizar ixe emoji
|
||||
updated_msg: Emoji actualizau con exito!
|
||||
upload: Puyar
|
||||
|
@ -1413,9 +1412,7 @@ an:
|
|||
private: Nomás amostrar a seguidores
|
||||
private_long: Nomás amostrar a las tuyas seguidores
|
||||
public: Publico
|
||||
public_long: Totz pueden veyer
|
||||
unlisted: Publico, pero no amostrar en a historia federada
|
||||
unlisted_long: Totz pueden veyer, pero no ye listau en as linias de tiempo publicas
|
||||
statuses_cleanup:
|
||||
enabled: Borrar automaticament publicacions antigas
|
||||
enabled_hint: Elimina automaticament las tuyas publicacions una vegada que aconsigan un branquil de tiempo especificau, de no estar que coincidan con bella d'as excepcions detalladas debaixo
|
||||
|
|
|
@ -373,7 +373,6 @@ ar:
|
|||
title: الإيموجي الخاصة
|
||||
uncategorized: غير مصنّف
|
||||
unlist: تنحية مِن القائمة
|
||||
unlisted: غير مدرج
|
||||
update_failed_msg: تعذرت عملية تحديث ذاك الإيموجي
|
||||
updated_msg: تم تحديث الإيموجي بنجاح!
|
||||
upload: رفع
|
||||
|
@ -2046,16 +2045,12 @@ ar:
|
|||
limit: لقد بلغت الحد الأقصى للمنشورات المثبتة
|
||||
ownership: لا يمكن تثبيت منشور نشره شخص آخر
|
||||
reblog: لا يمكن تثبيت إعادة نشر
|
||||
quote_policies:
|
||||
public: الجميع
|
||||
title: '%{name}: "%{quote}"'
|
||||
visibilities:
|
||||
private: لمتابِعيك فقط
|
||||
private_long: اعرضه لمتابعيك فقط
|
||||
public: للعامة
|
||||
public_long: يمكن للجميع رؤية منشوراتك
|
||||
unlisted: غير مُدرَج
|
||||
unlisted_long: يُمكن لأيٍ كان رُؤيتَه و لكن لن يُعرَض على الخيوط العامة
|
||||
statuses_cleanup:
|
||||
enabled: حذف المنشورات القديمة تلقائياً
|
||||
enabled_hint: حذف منشوراتك تلقائياً بمجرد أن تصل إلى عتبة عمرية محددة، إلا إذا كانت مطابقة لأحد الاستثناءات أدناه
|
||||
|
|
|
@ -813,8 +813,6 @@ ast:
|
|||
visibilities:
|
||||
private: Namás siguidores
|
||||
private_long: Namás los ven los perfiles siguidores
|
||||
public_long: Tol mundu pue velos
|
||||
unlisted_long: Tol mundu pue velos, mas nun apaecen nes llinies de tiempu públiques
|
||||
statuses_cleanup:
|
||||
exceptions: Esceiciones
|
||||
interaction_exceptions: Esceiciones basaes nes interaiciones
|
||||
|
|
|
@ -283,14 +283,9 @@ az:
|
|||
default_language: İnterfeys dili ilə eyni
|
||||
pin_errors:
|
||||
reblog: Təkrar paylaşım, sancıla bilməz
|
||||
quote_policies:
|
||||
followers: Yalnız izləyiciləriniz
|
||||
public: Hər kəs
|
||||
visibilities:
|
||||
private: Yalnız izləyicilər
|
||||
private_long: Yalnız izləyicilər görə bilər
|
||||
public_long: Hər kəs görə bilər
|
||||
unlisted_long: Hər kəs görə bilər, ancaq hər kəsə açıq zaman xətlərində sadalanmır
|
||||
statuses_cleanup:
|
||||
enabled: Köhnə göndərişləri avtomatik sil
|
||||
enabled_hint: Aşağıdakı istisnalardan heç birinə uyuşmadığı müddətcə, göndərişləriniz qeyd edilmiş yaş həddinə çatdıqda avtomatik silinir
|
||||
|
|
|
@ -373,7 +373,6 @@ be:
|
|||
title: Адвольныя эмодзі
|
||||
uncategorized: Без катэгорыі
|
||||
unlist: Прыбраць
|
||||
unlisted: Не ў стужках
|
||||
update_failed_msg: Немагчыма абнавіць гэта эмодзі
|
||||
updated_msg: Смайлік паспяхова абноўлены!
|
||||
upload: Запампаваць
|
||||
|
@ -1994,18 +1993,13 @@ be:
|
|||
limit: Вы ўжо замацавалі максімальную колькасць допісаў
|
||||
ownership: Немагчыма замацаваць чужы допіс
|
||||
reblog: Немагчыма замацаваць пашырэнне
|
||||
quote_policies:
|
||||
followers: Толькі Вашыя падпісчыкі
|
||||
nobody: Ніхто
|
||||
public: Усе
|
||||
title: '%{name}: "%{quote}"'
|
||||
visibilities:
|
||||
direct: Прыватнае згадванне
|
||||
private: Для падпісчыкаў
|
||||
private_long: Паказваць толькі падпісчыкам
|
||||
public: Публічны
|
||||
public_long: Усе могуць бачыць
|
||||
unlisted: Не ў спісе
|
||||
unlisted_long: Усе могуць пабачыць гэты допіс, але ён не паказваецца ў публічных стужках
|
||||
statuses_cleanup:
|
||||
enabled: Аўтаматычна выдаляць старыя допісы
|
||||
enabled_hint: Аўтаматычна выдаляць вашыя допісы, калі яны дасягаюць вызначанага тэрміну, акрамя наступных выпадкаў
|
||||
|
|
|
@ -359,7 +359,6 @@ bg:
|
|||
title: Потребителски емоджита
|
||||
uncategorized: Некатегоризирано
|
||||
unlist: Премахване от списъка
|
||||
unlisted: Извънсписъчно
|
||||
update_failed_msg: Не може да се обнови това емоджи
|
||||
updated_msg: Успешно осъвременено емоджи!
|
||||
upload: Качване
|
||||
|
@ -1892,18 +1891,12 @@ bg:
|
|||
limit: Вече сте закачили максималния брой публикации
|
||||
ownership: Публикация на някого другиго не може да бъде закачена
|
||||
reblog: Раздуване не може да бъде закачано
|
||||
quote_policies:
|
||||
followers: Само последователите ви
|
||||
nobody: Никого
|
||||
public: Всеки
|
||||
title: "%{name}: „%{quote}“"
|
||||
visibilities:
|
||||
private: Покажи само на последователите си
|
||||
private_long: Видими само за последователи
|
||||
public: Публично
|
||||
public_long: Всеки ги вижда
|
||||
unlisted: Публично, но не показвай в публичния канал
|
||||
unlisted_long: Всеки ги вижда, но са скрити от публичните хронологии
|
||||
statuses_cleanup:
|
||||
enabled: Автоматично изтриване на стари публикации
|
||||
enabled_hint: От само себе си трие публикациите ви, щом достигнат указания възрастов праг, освен ако не съвпаднат с някое от изключенията долу
|
||||
|
|
|
@ -183,7 +183,6 @@ bn:
|
|||
title: স্বনির্ধারিত ইমোজিগুলি
|
||||
uncategorized: শ্রেণীবিহীন
|
||||
unlist: তালিকামুক্ত
|
||||
unlisted: তালিকামুক্ত
|
||||
update_failed_msg: সেই ইমোজি আপডেট করতে পারেনি
|
||||
updated_msg: ইমোজি সফলভাবে আপডেট হয়েছে!
|
||||
upload: আপলোড
|
||||
|
|
|
@ -564,8 +564,6 @@ br:
|
|||
quoted_status_not_found: War a seblant, n'eus ket eus an embannadenn emaoc'h o klask menegiñ.
|
||||
pin_errors:
|
||||
ownership: N'hallit ket spilhennañ embannadurioù ar re all
|
||||
quote_policies:
|
||||
public: Pep den
|
||||
visibilities:
|
||||
public: Publik
|
||||
statuses_cleanup:
|
||||
|
|
|
@ -361,7 +361,6 @@ ca:
|
|||
title: Emojis personalitzats
|
||||
uncategorized: Sense categoria
|
||||
unlist: No llistat
|
||||
unlisted: Sense classificar
|
||||
update_failed_msg: No s'ha pogut actualitzar aquest emoji
|
||||
updated_msg: Emoji s'ha actualitzat correctament!
|
||||
upload: Carrega
|
||||
|
@ -1881,18 +1880,13 @@ ca:
|
|||
limit: Ja has fixat el màxim nombre de tuts
|
||||
ownership: No es pot fixar el tut d'algú altre
|
||||
reblog: No es pot fixar un impuls
|
||||
quote_policies:
|
||||
followers: Només els vostres seguidors
|
||||
nobody: Ningú
|
||||
public: Tothom
|
||||
title: '%{name}: "%{quote}"'
|
||||
visibilities:
|
||||
direct: Menció privada
|
||||
private: Només seguidors
|
||||
private_long: Mostra només als seguidors
|
||||
public: Públic
|
||||
public_long: Tothom pot veure-ho
|
||||
unlisted: No llistat
|
||||
unlisted_long: Tothom ho pot veure, però no es mostra en les línies de temps públiques
|
||||
statuses_cleanup:
|
||||
enabled: Esborra automàticament tuts antics
|
||||
enabled_hint: Suprimeix automàticament els teus tuts quan arribin a un llindar d’edat especificat, tret que coincideixin amb una de les excepcions següents
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user