mirror of
https://github.com/mastodon/mastodon.git
synced 2025-09-07 18:31:07 +00:00
Compare commits
1 Commits
3a7d1eb7c7
...
d17c91665a
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d17c91665a |
|
@ -1,21 +1,17 @@
|
||||||
---
|
---
|
||||||
Metrics/AbcSize:
|
Metrics/AbcSize:
|
||||||
Enabled: false
|
Exclude:
|
||||||
|
- lib/mastodon/cli/*.rb
|
||||||
|
|
||||||
Metrics/BlockLength:
|
Metrics/BlockLength:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Metrics/BlockNesting:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
Metrics/ClassLength:
|
Metrics/ClassLength:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Metrics/CollectionLiteralLength:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
Metrics/CyclomaticComplexity:
|
Metrics/CyclomaticComplexity:
|
||||||
Enabled: false
|
Exclude:
|
||||||
|
- lib/mastodon/cli/*.rb
|
||||||
|
|
||||||
Metrics/MethodLength:
|
Metrics/MethodLength:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
@ -24,7 +20,4 @@ Metrics/ModuleLength:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Metrics/ParameterLists:
|
Metrics/ParameterLists:
|
||||||
Enabled: false
|
CountKeywordArgs: false
|
||||||
|
|
||||||
Metrics/PerceivedComplexity:
|
|
||||||
Enabled: false
|
|
||||||
|
|
|
@ -6,6 +6,23 @@
|
||||||
# Note that changes in the inspected code, or installation of new
|
# Note that changes in the inspected code, or installation of new
|
||||||
# versions of RuboCop, may require this file to be generated again.
|
# versions of RuboCop, may require this file to be generated again.
|
||||||
|
|
||||||
|
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
|
||||||
|
Metrics/AbcSize:
|
||||||
|
Max: 82
|
||||||
|
|
||||||
|
# Configuration parameters: CountBlocks, CountModifierForms, Max.
|
||||||
|
Metrics/BlockNesting:
|
||||||
|
Exclude:
|
||||||
|
- 'lib/tasks/mastodon.rake'
|
||||||
|
|
||||||
|
# Configuration parameters: AllowedMethods, AllowedPatterns.
|
||||||
|
Metrics/CyclomaticComplexity:
|
||||||
|
Max: 25
|
||||||
|
|
||||||
|
# Configuration parameters: AllowedMethods, AllowedPatterns.
|
||||||
|
Metrics/PerceivedComplexity:
|
||||||
|
Max: 27
|
||||||
|
|
||||||
# This cop supports safe autocorrection (--autocorrect).
|
# This cop supports safe autocorrection (--autocorrect).
|
||||||
# Configuration parameters: AllowedVars, DefaultToNil.
|
# Configuration parameters: AllowedVars, DefaultToNil.
|
||||||
Style/FetchEnvVar:
|
Style/FetchEnvVar:
|
||||||
|
|
2
Gemfile
2
Gemfile
|
@ -88,7 +88,7 @@ gem 'sidekiq-scheduler', '~> 6.0'
|
||||||
gem 'sidekiq-unique-jobs', '> 8'
|
gem 'sidekiq-unique-jobs', '> 8'
|
||||||
gem 'simple_form', '~> 5.2'
|
gem 'simple_form', '~> 5.2'
|
||||||
gem 'simple-navigation', '~> 4.4'
|
gem 'simple-navigation', '~> 4.4'
|
||||||
gem 'stoplight', github: 'ClearlyClaire/stoplight', ref: 'f13e0c0d5e6d34af8d3cfc888871caa84237db42'
|
gem 'stoplight'
|
||||||
gem 'strong_migrations'
|
gem 'strong_migrations'
|
||||||
gem 'tty-prompt', '~> 0.23', require: false
|
gem 'tty-prompt', '~> 0.23', require: false
|
||||||
gem 'twitter-text', '~> 3.1.0'
|
gem 'twitter-text', '~> 3.1.0'
|
||||||
|
|
16
Gemfile.lock
16
Gemfile.lock
|
@ -1,11 +1,3 @@
|
||||||
GIT
|
|
||||||
remote: https://github.com/ClearlyClaire/stoplight.git
|
|
||||||
revision: f13e0c0d5e6d34af8d3cfc888871caa84237db42
|
|
||||||
ref: f13e0c0d5e6d34af8d3cfc888871caa84237db42
|
|
||||||
specs:
|
|
||||||
stoplight (5.3.1)
|
|
||||||
zeitwerk
|
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
remote: https://github.com/mastodon/webpush.git
|
remote: https://github.com/mastodon/webpush.git
|
||||||
revision: 9631ac63045cfabddacc69fc06e919b4c13eb913
|
revision: 9631ac63045cfabddacc69fc06e919b4c13eb913
|
||||||
|
@ -814,10 +806,10 @@ GEM
|
||||||
ruby-saml (1.18.1)
|
ruby-saml (1.18.1)
|
||||||
nokogiri (>= 1.13.10)
|
nokogiri (>= 1.13.10)
|
||||||
rexml
|
rexml
|
||||||
ruby-vips (2.2.5)
|
ruby-vips (2.2.4)
|
||||||
ffi (~> 1.12)
|
ffi (~> 1.12)
|
||||||
logger
|
logger
|
||||||
rubyzip (3.0.2)
|
rubyzip (3.0.1)
|
||||||
rufus-scheduler (3.9.2)
|
rufus-scheduler (3.9.2)
|
||||||
fugit (~> 1.1, >= 1.11.1)
|
fugit (~> 1.1, >= 1.11.1)
|
||||||
safety_net_attestation (0.4.0)
|
safety_net_attestation (0.4.0)
|
||||||
|
@ -861,6 +853,8 @@ GEM
|
||||||
stackprof (0.2.27)
|
stackprof (0.2.27)
|
||||||
starry (0.2.0)
|
starry (0.2.0)
|
||||||
base64
|
base64
|
||||||
|
stoplight (5.3.1)
|
||||||
|
zeitwerk
|
||||||
stringio (3.1.7)
|
stringio (3.1.7)
|
||||||
strong_migrations (2.5.0)
|
strong_migrations (2.5.0)
|
||||||
activerecord (>= 7.1)
|
activerecord (>= 7.1)
|
||||||
|
@ -1092,7 +1086,7 @@ DEPENDENCIES
|
||||||
simplecov (~> 0.22)
|
simplecov (~> 0.22)
|
||||||
simplecov-lcov (~> 0.8)
|
simplecov-lcov (~> 0.8)
|
||||||
stackprof
|
stackprof
|
||||||
stoplight!
|
stoplight
|
||||||
strong_migrations
|
strong_migrations
|
||||||
test-prof
|
test-prof
|
||||||
thor (~> 1.2)
|
thor (~> 1.2)
|
||||||
|
|
|
@ -48,7 +48,6 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController
|
||||||
default_privacy: source_params.fetch(:privacy, @account.user.setting_default_privacy),
|
default_privacy: source_params.fetch(:privacy, @account.user.setting_default_privacy),
|
||||||
default_sensitive: source_params.fetch(:sensitive, @account.user.setting_default_sensitive),
|
default_sensitive: source_params.fetch(:sensitive, @account.user.setting_default_sensitive),
|
||||||
default_language: source_params.fetch(:language, @account.user.setting_default_language),
|
default_language: source_params.fetch(:language, @account.user.setting_default_language),
|
||||||
default_quote_policy: source_params.fetch(:quote_policy, @account.user.setting_default_quote_policy),
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -102,16 +102,6 @@ module ApplicationHelper
|
||||||
policy(record).public_send(:"#{action}?")
|
policy(record).public_send(:"#{action}?")
|
||||||
end
|
end
|
||||||
|
|
||||||
def conditional_link_to(condition, name, options = {}, html_options = {}, &block)
|
|
||||||
if condition && !current_page?(block_given? ? name : options)
|
|
||||||
link_to(name, options, html_options, &block)
|
|
||||||
elsif block_given?
|
|
||||||
content_tag(:span, options, html_options, &block)
|
|
||||||
else
|
|
||||||
content_tag(:span, name, html_options)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def material_symbol(icon, attributes = {})
|
def material_symbol(icon, attributes = {})
|
||||||
safe_join(
|
safe_join(
|
||||||
[
|
[
|
||||||
|
@ -243,10 +233,6 @@ module ApplicationHelper
|
||||||
tag.input(type: :text, maxlength: 999, spellcheck: false, readonly: true, **options)
|
tag.input(type: :text, maxlength: 999, spellcheck: false, readonly: true, **options)
|
||||||
end
|
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)
|
def recent_tag_usage(tag)
|
||||||
people = tag.history.aggregate(2.days.ago.to_date..Time.zone.today).accounts
|
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
|
I18n.t 'user_mailer.welcome.hashtags_recent_count', people: number_with_delimiter(people), count: people
|
||||||
|
|
|
@ -84,7 +84,6 @@ export const COMPOSE_FOCUS = 'COMPOSE_FOCUS';
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
uploadErrorLimit: { id: 'upload_error.limit', defaultMessage: 'File upload limit exceeded.' },
|
uploadErrorLimit: { id: 'upload_error.limit', defaultMessage: 'File upload limit exceeded.' },
|
||||||
uploadErrorPoll: { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' },
|
uploadErrorPoll: { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' },
|
||||||
uploadQuote: { id: 'upload_error.quote', defaultMessage: 'File upload not allowed with quotes.' },
|
|
||||||
open: { id: 'compose.published.open', defaultMessage: 'Open' },
|
open: { id: 'compose.published.open', defaultMessage: 'Open' },
|
||||||
published: { id: 'compose.published.body', defaultMessage: 'Post published.' },
|
published: { id: 'compose.published.body', defaultMessage: 'Post published.' },
|
||||||
saved: { id: 'compose.saved.body', defaultMessage: 'Post saved.' },
|
saved: { id: 'compose.saved.body', defaultMessage: 'Post saved.' },
|
||||||
|
@ -97,17 +96,12 @@ export const ensureComposeIsVisible = (getState) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
export function setComposeToStatus(status, text, spoiler_text) {
|
export function setComposeToStatus(status, text, spoiler_text) {
|
||||||
return (dispatch, getState) => {
|
return{
|
||||||
const maxOptions = getState().server.getIn(['server', 'configuration', 'polls', 'max_options']);
|
|
||||||
|
|
||||||
dispatch({
|
|
||||||
type: COMPOSE_SET_STATUS,
|
type: COMPOSE_SET_STATUS,
|
||||||
status,
|
status,
|
||||||
text,
|
text,
|
||||||
spoiler_text,
|
spoiler_text,
|
||||||
maxOptions,
|
};
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function changeCompose(text) {
|
export function changeCompose(text) {
|
||||||
|
@ -152,7 +146,7 @@ export function resetCompose() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export const focusCompose = (defaultText = '') => (dispatch, getState) => {
|
export const focusCompose = (defaultText) => (dispatch, getState) => {
|
||||||
dispatch({
|
dispatch({
|
||||||
type: COMPOSE_FOCUS,
|
type: COMPOSE_FOCUS,
|
||||||
defaultText,
|
defaultText,
|
||||||
|
@ -221,7 +215,6 @@ export function submitCompose(successCallback) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const visibility = getState().getIn(['compose', 'privacy']);
|
|
||||||
api().request({
|
api().request({
|
||||||
url: statusId === null ? '/api/v1/statuses' : `/api/v1/statuses/${statusId}`,
|
url: statusId === null ? '/api/v1/statuses' : `/api/v1/statuses/${statusId}`,
|
||||||
method: statusId === null ? 'post' : 'put',
|
method: statusId === null ? 'post' : 'put',
|
||||||
|
@ -232,11 +225,11 @@ export function submitCompose(successCallback) {
|
||||||
media_attributes,
|
media_attributes,
|
||||||
sensitive: getState().getIn(['compose', 'sensitive']),
|
sensitive: getState().getIn(['compose', 'sensitive']),
|
||||||
spoiler_text: getState().getIn(['compose', 'spoiler']) ? getState().getIn(['compose', 'spoiler_text'], '') : '',
|
spoiler_text: getState().getIn(['compose', 'spoiler']) ? getState().getIn(['compose', 'spoiler_text'], '') : '',
|
||||||
visibility: visibility,
|
visibility: getState().getIn(['compose', 'privacy']),
|
||||||
poll: getState().getIn(['compose', 'poll'], null),
|
poll: getState().getIn(['compose', 'poll'], null),
|
||||||
language: getState().getIn(['compose', 'language']),
|
language: getState().getIn(['compose', 'language']),
|
||||||
quoted_status_id: getState().getIn(['compose', 'quoted_status_id']),
|
quoted_status_id: getState().getIn(['compose', 'quoted_status_id']),
|
||||||
quote_approval_policy: visibility === 'private' || visibility === 'direct' ? 'nobody' : getState().getIn(['compose', 'quote_policy']),
|
quote_approval_policy: getState().getIn(['compose', 'quote_policy']),
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey']),
|
'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey']),
|
||||||
|
@ -310,11 +303,6 @@ export function submitComposeFail(error) {
|
||||||
|
|
||||||
export function uploadCompose(files) {
|
export function uploadCompose(files) {
|
||||||
return function (dispatch, getState) {
|
return function (dispatch, getState) {
|
||||||
// Exit if there's a quote.
|
|
||||||
if (getState().compose.get('quoted_status_id')) {
|
|
||||||
dispatch(showAlert({ message: messages.uploadQuote }));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const uploadLimit = getState().getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments']);
|
const uploadLimit = getState().getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments']);
|
||||||
const media = getState().getIn(['compose', 'media_attachments']);
|
const media = getState().getIn(['compose', 'media_attachments']);
|
||||||
const pending = getState().getIn(['compose', 'pending_media_attachments']);
|
const pending = getState().getIn(['compose', 'pending_media_attachments']);
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import { defineMessages } from 'react-intl';
|
|
||||||
|
|
||||||
import { createAction } from '@reduxjs/toolkit';
|
import { createAction } from '@reduxjs/toolkit';
|
||||||
import type { List as ImmutableList, Map as ImmutableMap } from 'immutable';
|
import type { List as ImmutableList, Map as ImmutableMap } from 'immutable';
|
||||||
|
|
||||||
|
@ -14,27 +12,7 @@ import {
|
||||||
import type { ApiQuotePolicy } from '../api_types/quotes';
|
import type { ApiQuotePolicy } from '../api_types/quotes';
|
||||||
import type { Status } from '../models/status';
|
import type { Status } from '../models/status';
|
||||||
|
|
||||||
import { showAlert } from './alerts';
|
import { ensureComposeIsVisible } from './compose';
|
||||||
import { focusCompose } from './compose';
|
|
||||||
|
|
||||||
const messages = defineMessages({
|
|
||||||
quoteErrorUpload: {
|
|
||||||
id: 'quote_error.upload',
|
|
||||||
defaultMessage: 'Quoting is not allowed with media attachments.',
|
|
||||||
},
|
|
||||||
quoteErrorPoll: {
|
|
||||||
id: 'quote_error.poll',
|
|
||||||
defaultMessage: 'Quoting is not allowed with polls.',
|
|
||||||
},
|
|
||||||
quoteErrorQuote: {
|
|
||||||
id: 'quote_error.quote',
|
|
||||||
defaultMessage: 'Only one quote at a time is allowed.',
|
|
||||||
},
|
|
||||||
quoteErrorUnauthorized: {
|
|
||||||
id: 'quote_error.unauthorized',
|
|
||||||
defaultMessage: 'You are not authorized to quote this post.',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
type SimulatedMediaAttachmentJSON = ApiMediaAttachmentJSON & {
|
type SimulatedMediaAttachmentJSON = ApiMediaAttachmentJSON & {
|
||||||
unattached?: boolean;
|
unattached?: boolean;
|
||||||
|
@ -100,40 +78,11 @@ export const changeUploadCompose = createDataLoadingThunk(
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
export const quoteCompose = createAppThunk(
|
|
||||||
'compose/quoteComposeStatus',
|
|
||||||
(status: Status, { dispatch }) => {
|
|
||||||
dispatch(focusCompose());
|
|
||||||
return status;
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
export const quoteComposeByStatus = createAppThunk(
|
export const quoteComposeByStatus = createAppThunk(
|
||||||
(status: Status, { dispatch, getState }) => {
|
'compose/quoteComposeStatus',
|
||||||
const composeState = getState().compose;
|
(status: Status, { getState }) => {
|
||||||
const mediaAttachments = composeState.get('media_attachments');
|
ensureComposeIsVisible(getState);
|
||||||
|
return status;
|
||||||
if (composeState.get('poll')) {
|
|
||||||
dispatch(showAlert({ message: messages.quoteErrorPoll }));
|
|
||||||
} else if (
|
|
||||||
composeState.get('is_uploading') ||
|
|
||||||
(mediaAttachments &&
|
|
||||||
typeof mediaAttachments !== 'string' &&
|
|
||||||
typeof mediaAttachments !== 'number' &&
|
|
||||||
typeof mediaAttachments !== 'boolean' &&
|
|
||||||
mediaAttachments.size !== 0)
|
|
||||||
) {
|
|
||||||
dispatch(showAlert({ message: messages.quoteErrorUpload }));
|
|
||||||
} else if (composeState.get('quoted_status_id')) {
|
|
||||||
dispatch(showAlert({ message: messages.quoteErrorQuote }));
|
|
||||||
} else if (
|
|
||||||
status.getIn(['quote_approval', 'current_user']) !== 'automatic' &&
|
|
||||||
status.getIn(['quote_approval', 'current_user']) !== 'manual'
|
|
||||||
) {
|
|
||||||
dispatch(showAlert({ message: messages.quoteErrorUnauthorized }));
|
|
||||||
} else {
|
|
||||||
dispatch(quoteCompose(status));
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -148,6 +97,6 @@ export const quoteComposeById = createAppThunk(
|
||||||
|
|
||||||
export const quoteComposeCancel = createAction('compose/quoteComposeCancel');
|
export const quoteComposeCancel = createAction('compose/quoteComposeCancel');
|
||||||
|
|
||||||
export const setComposeQuotePolicy = createAction<ApiQuotePolicy>(
|
export const setQuotePolicy = createAction<ApiQuotePolicy>(
|
||||||
'compose/setQuotePolicy',
|
'compose/setQuotePolicy',
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,12 +2,11 @@ import {
|
||||||
apiReblog,
|
apiReblog,
|
||||||
apiUnreblog,
|
apiUnreblog,
|
||||||
apiRevokeQuote,
|
apiRevokeQuote,
|
||||||
apiGetQuotes,
|
|
||||||
} from 'mastodon/api/interactions';
|
} from 'mastodon/api/interactions';
|
||||||
import type { StatusVisibility } from 'mastodon/models/status';
|
import type { StatusVisibility } from 'mastodon/models/status';
|
||||||
import { createDataLoadingThunk } from 'mastodon/store/typed_functions';
|
import { createDataLoadingThunk } from 'mastodon/store/typed_functions';
|
||||||
|
|
||||||
import { importFetchedStatus, importFetchedStatuses } from './importer';
|
import { importFetchedStatus } from './importer';
|
||||||
|
|
||||||
export const reblog = createDataLoadingThunk(
|
export const reblog = createDataLoadingThunk(
|
||||||
'status/reblog',
|
'status/reblog',
|
||||||
|
@ -54,19 +53,3 @@ export const revokeQuote = createDataLoadingThunk(
|
||||||
return discardLoadData;
|
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,20 +30,9 @@ import { importFetchedAccounts, importFetchedStatuses } from './importer';
|
||||||
import { NOTIFICATIONS_FILTER_SET } from './notifications';
|
import { NOTIFICATIONS_FILTER_SET } from './notifications';
|
||||||
import { saveSettings } from './settings';
|
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) {
|
function excludeAllTypesExcept(filter: string) {
|
||||||
return allNotificationTypes.filter(
|
return allNotificationTypes.filter(
|
||||||
(item) => notificationTypeForQuickFilter(item) !== filter,
|
(item) => item !== filter && !(item === 'quote' && filter === 'mention'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,17 +157,16 @@ export const processNewNotificationForGroups = createAppAsyncThunk(
|
||||||
|
|
||||||
const showInColumn =
|
const showInColumn =
|
||||||
activeFilter === 'all'
|
activeFilter === 'all'
|
||||||
? notificationShows[notificationTypeForFilter(notification.type)] !==
|
? notificationShows[notification.type] !== false
|
||||||
false
|
: activeFilter === notification.type ||
|
||||||
: activeFilter === notificationTypeForQuickFilter(notification.type);
|
(activeFilter === 'mention' && notification.type === 'quote');
|
||||||
|
|
||||||
if (!showInColumn) return;
|
if (!showInColumn) return;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(notification.type === 'mention' ||
|
(notification.type === 'mention' ||
|
||||||
notification.type === 'quote' ||
|
|
||||||
notification.type === 'update' ||
|
notification.type === 'update' ||
|
||||||
notification.type === 'quoted_update') &&
|
notification.type === 'quote') &&
|
||||||
notification.status?.filtered
|
notification.status?.filtered
|
||||||
) {
|
) {
|
||||||
const filters = notification.status.filtered.filter((result) =>
|
const filters = notification.status.filtered.filter((result) =>
|
||||||
|
|
|
@ -31,7 +31,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
|
||||||
|
|
||||||
let filtered = false;
|
let filtered = false;
|
||||||
|
|
||||||
if (['mention', 'quote', 'status'].includes(notification.type) && notification.status.filtered) {
|
if (['mention', 'status', 'quote'].includes(notification.type) && notification.status.filtered) {
|
||||||
const filters = notification.status.filtered.filter(result => result.filter.context.includes('notifications'));
|
const filters = notification.status.filtered.filter(result => result.filter.context.includes('notifications'));
|
||||||
|
|
||||||
if (filters.some(result => result.filter.filter_action === 'hide')) {
|
if (filters.some(result => result.filter.filter_action === 'hide')) {
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
import { defineMessages } from 'react-intl';
|
|
||||||
|
|
||||||
import { browserHistory } from 'mastodon/components/router';
|
import { browserHistory } from 'mastodon/components/router';
|
||||||
|
|
||||||
import api from '../api';
|
import api from '../api';
|
||||||
|
|
||||||
import { showAlert } from './alerts';
|
|
||||||
import { ensureComposeIsVisible, setComposeToStatus } from './compose';
|
import { ensureComposeIsVisible, setComposeToStatus } from './compose';
|
||||||
import { importFetchedStatus, importFetchedAccount } from './importer';
|
import { importFetchedStatus, importFetchedStatuses, importFetchedAccount } from './importer';
|
||||||
import { fetchContext } from './statuses_typed';
|
import { fetchContext } from './statuses_typed';
|
||||||
import { deleteFromTimelines } from './timelines';
|
import { deleteFromTimelines } from './timelines';
|
||||||
|
|
||||||
|
@ -43,10 +40,6 @@ export const STATUS_TRANSLATE_SUCCESS = 'STATUS_TRANSLATE_SUCCESS';
|
||||||
export const STATUS_TRANSLATE_FAIL = 'STATUS_TRANSLATE_FAIL';
|
export const STATUS_TRANSLATE_FAIL = 'STATUS_TRANSLATE_FAIL';
|
||||||
export const STATUS_TRANSLATE_UNDO = 'STATUS_TRANSLATE_UNDO';
|
export const STATUS_TRANSLATE_UNDO = 'STATUS_TRANSLATE_UNDO';
|
||||||
|
|
||||||
const messages = defineMessages({
|
|
||||||
deleteSuccess: { id: 'status.delete.success', defaultMessage: 'Post deleted' },
|
|
||||||
});
|
|
||||||
|
|
||||||
export function fetchStatusRequest(id, skipLoading) {
|
export function fetchStatusRequest(id, skipLoading) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_FETCH_REQUEST,
|
type: STATUS_FETCH_REQUEST,
|
||||||
|
@ -55,18 +48,7 @@ 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) => {
|
return (dispatch, getState) => {
|
||||||
const skipLoading = !forceFetch && getState().getIn(['statuses', id], null) !== null;
|
const skipLoading = !forceFetch && getState().getIn(['statuses', id], null) !== null;
|
||||||
|
|
||||||
|
@ -84,7 +66,7 @@ export function fetchStatus(id, {
|
||||||
dispatch(importFetchedStatus(response.data));
|
dispatch(importFetchedStatus(response.data));
|
||||||
dispatch(fetchStatusSuccess(skipLoading));
|
dispatch(fetchStatusSuccess(skipLoading));
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
dispatch(fetchStatusFail(id, error, skipLoading, parentQuotePostId));
|
dispatch(fetchStatusFail(id, error, skipLoading));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -96,27 +78,21 @@ export function fetchStatusSuccess(skipLoading) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function fetchStatusFail(id, error, skipLoading, parentQuotePostId) {
|
export function fetchStatusFail(id, error, skipLoading) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_FETCH_FAIL,
|
type: STATUS_FETCH_FAIL,
|
||||||
id,
|
id,
|
||||||
error,
|
error,
|
||||||
parentQuotePostId,
|
|
||||||
skipLoading,
|
skipLoading,
|
||||||
skipAlert: true,
|
skipAlert: true,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function redraft(status, raw_text) {
|
export function redraft(status, raw_text) {
|
||||||
return (dispatch, getState) => {
|
return {
|
||||||
const maxOptions = getState().server.getIn(['server', 'configuration', 'polls', 'max_options']);
|
|
||||||
|
|
||||||
dispatch({
|
|
||||||
type: REDRAFT,
|
type: REDRAFT,
|
||||||
status,
|
status,
|
||||||
raw_text,
|
raw_text,
|
||||||
maxOptions,
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +137,7 @@ export function deleteStatus(id, withRedraft = false) {
|
||||||
|
|
||||||
dispatch(deleteStatusRequest(id));
|
dispatch(deleteStatusRequest(id));
|
||||||
|
|
||||||
return api().delete(`/api/v1/statuses/${id}`, { params: { delete_media: !withRedraft } }).then(response => {
|
api().delete(`/api/v1/statuses/${id}`, { params: { delete_media: !withRedraft } }).then(response => {
|
||||||
dispatch(deleteStatusSuccess(id));
|
dispatch(deleteStatusSuccess(id));
|
||||||
dispatch(deleteFromTimelines(id));
|
dispatch(deleteFromTimelines(id));
|
||||||
dispatch(importFetchedAccount(response.data.account));
|
dispatch(importFetchedAccount(response.data.account));
|
||||||
|
@ -169,14 +145,9 @@ export function deleteStatus(id, withRedraft = false) {
|
||||||
if (withRedraft) {
|
if (withRedraft) {
|
||||||
dispatch(redraft(status, response.data.text));
|
dispatch(redraft(status, response.data.text));
|
||||||
ensureComposeIsVisible(getState);
|
ensureComposeIsVisible(getState);
|
||||||
} else {
|
|
||||||
dispatch(showAlert({ message: messages.deleteSuccess }));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return response;
|
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
dispatch(deleteStatusFail(id, error));
|
dispatch(deleteStatusFail(id, error));
|
||||||
throw error;
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,28 +1,15 @@
|
||||||
import api, { apiRequestPost, getLinks } from 'mastodon/api';
|
import { apiRequestPost } from 'mastodon/api';
|
||||||
import type { ApiStatusJSON } from 'mastodon/api_types/statuses';
|
import type { Status, StatusVisibility } from 'mastodon/models/status';
|
||||||
import type { StatusVisibility } from 'mastodon/models/status';
|
|
||||||
|
|
||||||
export const apiReblog = (statusId: string, visibility: StatusVisibility) =>
|
export const apiReblog = (statusId: string, visibility: StatusVisibility) =>
|
||||||
apiRequestPost<{ reblog: ApiStatusJSON }>(`v1/statuses/${statusId}/reblog`, {
|
apiRequestPost<{ reblog: Status }>(`v1/statuses/${statusId}/reblog`, {
|
||||||
visibility,
|
visibility,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const apiUnreblog = (statusId: string) =>
|
export const apiUnreblog = (statusId: string) =>
|
||||||
apiRequestPost<ApiStatusJSON>(`v1/statuses/${statusId}/unreblog`);
|
apiRequestPost<Status>(`v1/statuses/${statusId}/unreblog`);
|
||||||
|
|
||||||
export const apiRevokeQuote = (quotedStatusId: string, statusId: string) =>
|
export const apiRevokeQuote = (quotedStatusId: string, statusId: string) =>
|
||||||
apiRequestPost<ApiStatusJSON>(
|
apiRequestPost<Status>(
|
||||||
`v1/statuses/${quotedStatusId}/quotes/${statusId}/revoke`,
|
`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';
|
import type { ApiStatusJSON } from './statuses';
|
||||||
|
|
||||||
// See app/model/notification.rb
|
// See app/model/notification.rb
|
||||||
export const allNotificationTypes: NotificationType[] = [
|
export const allNotificationTypes = [
|
||||||
'follow',
|
'follow',
|
||||||
'follow_request',
|
'follow_request',
|
||||||
'favourite',
|
'favourite',
|
||||||
|
@ -31,8 +31,7 @@ export type NotificationWithStatusType =
|
||||||
| 'mention'
|
| 'mention'
|
||||||
| 'quote'
|
| 'quote'
|
||||||
| 'poll'
|
| 'poll'
|
||||||
| 'update'
|
| 'update';
|
||||||
| 'quoted_update';
|
|
||||||
|
|
||||||
export type NotificationType =
|
export type NotificationType =
|
||||||
| NotificationWithStatusType
|
| NotificationWithStatusType
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
import type { ApiStatusJSON } from './statuses';
|
import type { ApiStatusJSON } from './statuses';
|
||||||
|
|
||||||
export type ApiQuoteState = 'accepted' | 'pending' | 'revoked' | 'unauthorized';
|
export type ApiQuoteState = 'accepted' | 'pending' | 'revoked' | 'unauthorized';
|
||||||
export type ApiQuotePolicy =
|
export type ApiQuotePolicy = 'public' | 'followers' | 'nobody' | 'unknown';
|
||||||
| 'public'
|
|
||||||
| 'followers'
|
|
||||||
| 'nobody'
|
|
||||||
| 'unsupported_policy';
|
|
||||||
export type ApiUserQuotePolicy = 'automatic' | 'manual' | 'denied' | 'unknown';
|
|
||||||
|
|
||||||
interface ApiQuoteEmptyJSON {
|
interface ApiQuoteEmptyJSON {
|
||||||
state: Exclude<ApiQuoteState, 'accepted'>;
|
state: Exclude<ApiQuoteState, 'accepted'>;
|
||||||
|
@ -30,7 +25,7 @@ export type ApiQuoteJSON = ApiQuoteAcceptedJSON | ApiQuoteEmptyJSON;
|
||||||
export interface ApiQuotePolicyJSON {
|
export interface ApiQuotePolicyJSON {
|
||||||
automatic: ApiQuotePolicy[];
|
automatic: ApiQuotePolicy[];
|
||||||
manual: ApiQuotePolicy[];
|
manual: ApiQuotePolicy[];
|
||||||
current_user: ApiUserQuotePolicy;
|
current_user: ApiQuotePolicy;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isQuotePolicy(policy: string): policy is ApiQuotePolicy {
|
export function isQuotePolicy(policy: string): policy is ApiQuotePolicy {
|
||||||
|
|
|
@ -96,7 +96,6 @@ export interface ApiStatusJSON {
|
||||||
replies_count: number;
|
replies_count: number;
|
||||||
reblogs_count: number;
|
reblogs_count: number;
|
||||||
favorites_count: number;
|
favorites_count: number;
|
||||||
quotes_count: number;
|
|
||||||
edited_at?: string;
|
edited_at?: string;
|
||||||
|
|
||||||
favorited?: boolean;
|
favorited?: boolean;
|
||||||
|
@ -134,9 +133,3 @@ export interface ApiStatusSourceJSON {
|
||||||
text: string;
|
text: string;
|
||||||
spoiler_text: string;
|
spoiler_text: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isStatusVisibility(
|
|
||||||
visibility: string,
|
|
||||||
): visibility is StatusVisibility {
|
|
||||||
return ['public', 'unlisted', 'private', 'direct'].includes(visibility);
|
|
||||||
}
|
|
||||||
|
|
|
@ -41,16 +41,13 @@ import { IconButton } from './icon_button';
|
||||||
|
|
||||||
let id = 0;
|
let id = 0;
|
||||||
|
|
||||||
export interface RenderItemFnHandlers {
|
type RenderItemFn<Item = MenuItem> = (
|
||||||
onClick: React.MouseEventHandler;
|
|
||||||
onKeyUp: React.KeyboardEventHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
export type RenderItemFn<Item = MenuItem> = (
|
|
||||||
item: Item,
|
item: Item,
|
||||||
index: number,
|
index: number,
|
||||||
handlers: RenderItemFnHandlers,
|
handlers: {
|
||||||
focusRefCallback?: (c: HTMLAnchorElement | HTMLButtonElement | null) => void,
|
onClick: (e: React.MouseEvent) => void;
|
||||||
|
onKeyUp: (e: React.KeyboardEvent) => void;
|
||||||
|
},
|
||||||
) => React.ReactNode;
|
) => React.ReactNode;
|
||||||
|
|
||||||
type ItemClickFn<Item = MenuItem> = (item: Item, index: number) => void;
|
type ItemClickFn<Item = MenuItem> = (item: Item, index: number) => void;
|
||||||
|
@ -176,7 +173,7 @@ export const DropdownMenu = <Item = MenuItem,>({
|
||||||
onItemClick(item, i);
|
onItemClick(item, i);
|
||||||
} else if (isActionItem(item)) {
|
} else if (isActionItem(item)) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
item.action(e);
|
item.action();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[onClose, onItemClick, items],
|
[onClose, onItemClick, items],
|
||||||
|
@ -280,15 +277,10 @@ export const DropdownMenu = <Item = MenuItem,>({
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
{items.map((option, i) =>
|
{items.map((option, i) =>
|
||||||
renderItemMethod(
|
renderItemMethod(option, i, {
|
||||||
option,
|
|
||||||
i,
|
|
||||||
{
|
|
||||||
onClick: handleItemClick,
|
onClick: handleItemClick,
|
||||||
onKeyUp: handleItemKeyUp,
|
onKeyUp: handleItemKeyUp,
|
||||||
},
|
}),
|
||||||
i === 0 ? handleFocusedItemRef : undefined,
|
|
||||||
),
|
|
||||||
)}
|
)}
|
||||||
</ul>
|
</ul>
|
||||||
)}
|
)}
|
||||||
|
@ -315,9 +307,7 @@ interface DropdownProps<Item = MenuItem> {
|
||||||
forceDropdown?: boolean;
|
forceDropdown?: boolean;
|
||||||
renderItem?: RenderItemFn<Item>;
|
renderItem?: RenderItemFn<Item>;
|
||||||
renderHeader?: RenderHeaderFn<Item>;
|
renderHeader?: RenderHeaderFn<Item>;
|
||||||
onOpen?: // Must use a union type for the full function as a union with void is not allowed.
|
onOpen?: () => void;
|
||||||
| ((event: React.MouseEvent | React.KeyboardEvent) => void)
|
|
||||||
| ((event: React.MouseEvent | React.KeyboardEvent) => boolean);
|
|
||||||
onItemClick?: ItemClickFn<Item>;
|
onItemClick?: ItemClickFn<Item>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -386,7 +376,7 @@ export const Dropdown = <Item = MenuItem,>({
|
||||||
onItemClick(item, i);
|
onItemClick(item, i);
|
||||||
} else if (isActionItem(item)) {
|
} else if (isActionItem(item)) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
item.action(e);
|
item.action();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[handleClose, onItemClick, items],
|
[handleClose, onItemClick, items],
|
||||||
|
@ -399,10 +389,7 @@ export const Dropdown = <Item = MenuItem,>({
|
||||||
if (open) {
|
if (open) {
|
||||||
handleClose();
|
handleClose();
|
||||||
} else {
|
} else {
|
||||||
const allow = onOpen?.(e);
|
onOpen?.();
|
||||||
if (allow === false) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (prefetchAccountId) {
|
if (prefetchAccountId) {
|
||||||
dispatch(fetchRelationships([prefetchAccountId]));
|
dispatch(fetchRelationships([prefetchAccountId]));
|
||||||
|
|
|
@ -98,13 +98,13 @@ export const DropdownSelector: React.FC<Props> = ({
|
||||||
break;
|
break;
|
||||||
case 'Tab':
|
case 'Tab':
|
||||||
if (e.shiftKey) {
|
if (e.shiftKey) {
|
||||||
element =
|
|
||||||
nodeRef.current?.children[index - 1] ??
|
|
||||||
nodeRef.current?.lastElementChild;
|
|
||||||
} else {
|
|
||||||
element =
|
element =
|
||||||
nodeRef.current?.children[index + 1] ??
|
nodeRef.current?.children[index + 1] ??
|
||||||
nodeRef.current?.firstElementChild;
|
nodeRef.current?.firstElementChild;
|
||||||
|
} else {
|
||||||
|
element =
|
||||||
|
nodeRef.current?.children[index - 1] ??
|
||||||
|
nodeRef.current?.lastElementChild;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'Home':
|
case 'Home':
|
||||||
|
|
|
@ -7,7 +7,11 @@ import { normalizeKey, isKeyboardEvent } from './utils';
|
||||||
* the hotkey with a higher priority is selected. All others
|
* the hotkey with a higher priority is selected. All others
|
||||||
* are ignored.
|
* are ignored.
|
||||||
*/
|
*/
|
||||||
const hotkeyPriority = { singleKey: 0, combo: 1, sequence: 2 } as const;
|
const hotkeyPriority = {
|
||||||
|
singleKey: 0,
|
||||||
|
combo: 1,
|
||||||
|
sequence: 2,
|
||||||
|
} as const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This type of function receives a keyboard event and an array of
|
* This type of function receives a keyboard event and an array of
|
||||||
|
@ -101,16 +105,14 @@ const hotkeyMatcherMap = {
|
||||||
new: just('n'),
|
new: just('n'),
|
||||||
forceNew: optionPlus('n'),
|
forceNew: optionPlus('n'),
|
||||||
focusColumn: any('1', '2', '3', '4', '5', '6', '7', '8', '9'),
|
focusColumn: any('1', '2', '3', '4', '5', '6', '7', '8', '9'),
|
||||||
focusLoadMore: just('l'),
|
|
||||||
reply: just('r'),
|
reply: just('r'),
|
||||||
favourite: just('f'),
|
favourite: just('f'),
|
||||||
boost: just('b'),
|
boost: just('b'),
|
||||||
quote: just('q'),
|
|
||||||
mention: just('m'),
|
mention: just('m'),
|
||||||
open: any('enter', 'o'),
|
open: any('enter', 'o'),
|
||||||
openProfile: just('p'),
|
openProfile: just('p'),
|
||||||
moveDown: just('j'),
|
moveDown: any('down', 'j'),
|
||||||
moveUp: just('k'),
|
moveUp: any('up', 'k'),
|
||||||
toggleHidden: just('x'),
|
toggleHidden: just('x'),
|
||||||
toggleSensitive: just('h'),
|
toggleSensitive: just('h'),
|
||||||
toggleComposeSpoilers: optionPlus('x'),
|
toggleComposeSpoilers: optionPlus('x'),
|
||||||
|
|
|
@ -96,7 +96,6 @@ class Status extends ImmutablePureComponent {
|
||||||
onReply: PropTypes.func,
|
onReply: PropTypes.func,
|
||||||
onFavourite: PropTypes.func,
|
onFavourite: PropTypes.func,
|
||||||
onReblog: PropTypes.func,
|
onReblog: PropTypes.func,
|
||||||
onQuote: PropTypes.func,
|
|
||||||
onDelete: PropTypes.func,
|
onDelete: PropTypes.func,
|
||||||
onDirect: PropTypes.func,
|
onDirect: PropTypes.func,
|
||||||
onMention: PropTypes.func,
|
onMention: PropTypes.func,
|
||||||
|
@ -111,10 +110,11 @@ class Status extends ImmutablePureComponent {
|
||||||
onToggleCollapsed: PropTypes.func,
|
onToggleCollapsed: PropTypes.func,
|
||||||
onTranslate: PropTypes.func,
|
onTranslate: PropTypes.func,
|
||||||
onInteractionModal: PropTypes.func,
|
onInteractionModal: PropTypes.func,
|
||||||
onQuoteCancel: PropTypes.func,
|
|
||||||
muted: PropTypes.bool,
|
muted: PropTypes.bool,
|
||||||
hidden: PropTypes.bool,
|
hidden: PropTypes.bool,
|
||||||
unread: PropTypes.bool,
|
unread: PropTypes.bool,
|
||||||
|
onMoveUp: PropTypes.func,
|
||||||
|
onMoveDown: PropTypes.func,
|
||||||
showThread: PropTypes.bool,
|
showThread: PropTypes.bool,
|
||||||
isQuotedPost: PropTypes.bool,
|
isQuotedPost: PropTypes.bool,
|
||||||
getScrollPosition: PropTypes.func,
|
getScrollPosition: PropTypes.func,
|
||||||
|
@ -277,10 +277,6 @@ class Status extends ImmutablePureComponent {
|
||||||
this.props.onReblog(this._properStatus(), e);
|
this.props.onReblog(this._properStatus(), e);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleHotkeyQuote = () => {
|
|
||||||
this.props.onQuote(this._properStatus());
|
|
||||||
};
|
|
||||||
|
|
||||||
handleHotkeyMention = e => {
|
handleHotkeyMention = e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.props.onMention(this._properStatus().get('account'));
|
this.props.onMention(this._properStatus().get('account'));
|
||||||
|
@ -331,6 +327,14 @@ class Status extends ImmutablePureComponent {
|
||||||
history.push(`/@${status.getIn(['account', 'acct'])}`);
|
history.push(`/@${status.getIn(['account', 'acct'])}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
handleHotkeyMoveUp = e => {
|
||||||
|
this.props.onMoveUp?.(this.props.status.get('id'), this.node.getAttribute('data-featured'));
|
||||||
|
};
|
||||||
|
|
||||||
|
handleHotkeyMoveDown = e => {
|
||||||
|
this.props.onMoveDown?.(this.props.status.get('id'), this.node.getAttribute('data-featured'));
|
||||||
|
};
|
||||||
|
|
||||||
handleHotkeyToggleHidden = () => {
|
handleHotkeyToggleHidden = () => {
|
||||||
const { onToggleHidden } = this.props;
|
const { onToggleHidden } = this.props;
|
||||||
const status = this._properStatus();
|
const status = this._properStatus();
|
||||||
|
@ -391,10 +395,11 @@ class Status extends ImmutablePureComponent {
|
||||||
reply: this.handleHotkeyReply,
|
reply: this.handleHotkeyReply,
|
||||||
favourite: this.handleHotkeyFavourite,
|
favourite: this.handleHotkeyFavourite,
|
||||||
boost: this.handleHotkeyBoost,
|
boost: this.handleHotkeyBoost,
|
||||||
quote: this.handleHotkeyQuote,
|
|
||||||
mention: this.handleHotkeyMention,
|
mention: this.handleHotkeyMention,
|
||||||
open: this.handleHotkeyOpen,
|
open: this.handleHotkeyOpen,
|
||||||
openProfile: this.handleHotkeyOpenProfile,
|
openProfile: this.handleHotkeyOpenProfile,
|
||||||
|
moveUp: this.handleHotkeyMoveUp,
|
||||||
|
moveDown: this.handleHotkeyMoveDown,
|
||||||
toggleHidden: this.handleHotkeyToggleHidden,
|
toggleHidden: this.handleHotkeyToggleHidden,
|
||||||
toggleSensitive: this.handleHotkeyToggleSensitive,
|
toggleSensitive: this.handleHotkeyToggleSensitive,
|
||||||
openMedia: this.handleHotkeyOpenMedia,
|
openMedia: this.handleHotkeyOpenMedia,
|
||||||
|
@ -578,7 +583,7 @@ class Status extends ImmutablePureComponent {
|
||||||
<DisplayName account={status.get('account')} />
|
<DisplayName account={status.get('account')} />
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
{isQuotedPost && !!this.props.onQuoteCancel && (
|
{this.props.contextType === 'compose' && isQuotedPost && (
|
||||||
<IconButton
|
<IconButton
|
||||||
onClick={this.handleQuoteCancel}
|
onClick={this.handleQuoteCancel}
|
||||||
className='status__quote-cancel'
|
className='status__quote-cancel'
|
||||||
|
|
|
@ -1,89 +0,0 @@
|
||||||
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
||||||
|
|
||||||
import type { StatusVisibility } from '@/mastodon/api_types/statuses';
|
|
||||||
import { statusFactoryState } from '@/testing/factories';
|
|
||||||
|
|
||||||
import { LegacyReblogButton, StatusReblogButton } from './reblog_button';
|
|
||||||
|
|
||||||
interface StoryProps {
|
|
||||||
visibility: StatusVisibility;
|
|
||||||
quoteAllowed: boolean;
|
|
||||||
alreadyBoosted: boolean;
|
|
||||||
reblogCount: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
const meta = {
|
|
||||||
title: 'Components/Status/ReblogButton',
|
|
||||||
args: {
|
|
||||||
visibility: 'public',
|
|
||||||
quoteAllowed: true,
|
|
||||||
alreadyBoosted: false,
|
|
||||||
reblogCount: 0,
|
|
||||||
},
|
|
||||||
argTypes: {
|
|
||||||
visibility: {
|
|
||||||
name: 'Visibility',
|
|
||||||
control: { type: 'select' },
|
|
||||||
options: ['public', 'unlisted', 'private', 'direct'],
|
|
||||||
},
|
|
||||||
reblogCount: {
|
|
||||||
name: 'Boost Count',
|
|
||||||
description: 'More than 0 will show the counter',
|
|
||||||
},
|
|
||||||
quoteAllowed: {
|
|
||||||
name: 'Quotes allowed',
|
|
||||||
},
|
|
||||||
alreadyBoosted: {
|
|
||||||
name: 'Already boosted',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
render: (args) => (
|
|
||||||
<StatusReblogButton
|
|
||||||
status={argsToStatus(args)}
|
|
||||||
counters={args.reblogCount > 0}
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
} satisfies Meta<StoryProps>;
|
|
||||||
|
|
||||||
export default meta;
|
|
||||||
|
|
||||||
function argsToStatus({
|
|
||||||
reblogCount,
|
|
||||||
visibility,
|
|
||||||
quoteAllowed,
|
|
||||||
alreadyBoosted,
|
|
||||||
}: StoryProps) {
|
|
||||||
return statusFactoryState({
|
|
||||||
reblogs_count: reblogCount,
|
|
||||||
visibility,
|
|
||||||
reblogged: alreadyBoosted,
|
|
||||||
quote_approval: {
|
|
||||||
automatic: [],
|
|
||||||
manual: [],
|
|
||||||
current_user: quoteAllowed ? 'automatic' : 'denied',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
type Story = StoryObj<typeof meta>;
|
|
||||||
|
|
||||||
export const Default: Story = {};
|
|
||||||
|
|
||||||
export const Mine: Story = {
|
|
||||||
parameters: {
|
|
||||||
state: {
|
|
||||||
meta: {
|
|
||||||
me: '1',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
export const Legacy: Story = {
|
|
||||||
render: (args) => (
|
|
||||||
<LegacyReblogButton
|
|
||||||
status={argsToStatus(args)}
|
|
||||||
counters={args.reblogCount > 0}
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
};
|
|
|
@ -1,425 +0,0 @@
|
||||||
import { useCallback, useMemo } from 'react';
|
|
||||||
import type {
|
|
||||||
FC,
|
|
||||||
KeyboardEvent,
|
|
||||||
MouseEvent,
|
|
||||||
MouseEventHandler,
|
|
||||||
SVGProps,
|
|
||||||
} from 'react';
|
|
||||||
|
|
||||||
import type { MessageDescriptor } from 'react-intl';
|
|
||||||
import { defineMessages, useIntl } from 'react-intl';
|
|
||||||
|
|
||||||
import classNames from 'classnames';
|
|
||||||
|
|
||||||
import { quoteComposeById } from '@/mastodon/actions/compose_typed';
|
|
||||||
import { toggleReblog } from '@/mastodon/actions/interactions';
|
|
||||||
import { openModal } from '@/mastodon/actions/modal';
|
|
||||||
import type { ActionMenuItem } from '@/mastodon/models/dropdown_menu';
|
|
||||||
import type { Status, StatusVisibility } from '@/mastodon/models/status';
|
|
||||||
import {
|
|
||||||
createAppSelector,
|
|
||||||
useAppDispatch,
|
|
||||||
useAppSelector,
|
|
||||||
} from '@/mastodon/store';
|
|
||||||
import { isFeatureEnabled } from '@/mastodon/utils/environment';
|
|
||||||
import FormatQuote from '@/material-icons/400-24px/format_quote.svg?react';
|
|
||||||
import FormatQuoteOff from '@/material-icons/400-24px/format_quote_off.svg?react';
|
|
||||||
import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react';
|
|
||||||
import RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react';
|
|
||||||
import RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react';
|
|
||||||
import RepeatPrivateIcon from '@/svg-icons/repeat_private.svg?react';
|
|
||||||
import RepeatPrivateActiveIcon from '@/svg-icons/repeat_private_active.svg?react';
|
|
||||||
|
|
||||||
import type { RenderItemFn, RenderItemFnHandlers } from '../dropdown_menu';
|
|
||||||
import { Dropdown } from '../dropdown_menu';
|
|
||||||
import { Icon } from '../icon';
|
|
||||||
import { IconButton } from '../icon_button';
|
|
||||||
|
|
||||||
const messages = defineMessages({
|
|
||||||
all_disabled: {
|
|
||||||
id: 'status.all_disabled',
|
|
||||||
defaultMessage: 'Boosts and quotes are disabled',
|
|
||||||
},
|
|
||||||
quote: { id: 'status.quote', defaultMessage: 'Quote' },
|
|
||||||
quote_cannot: {
|
|
||||||
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',
|
|
||||||
},
|
|
||||||
reblog: { id: 'status.reblog', defaultMessage: 'Boost' },
|
|
||||||
reblog_or_quote: {
|
|
||||||
id: 'status.reblog_or_quote',
|
|
||||||
defaultMessage: 'Boost or quote',
|
|
||||||
},
|
|
||||||
reblog_cancel: {
|
|
||||||
id: 'status.cancel_reblog_private',
|
|
||||||
defaultMessage: 'Unboost',
|
|
||||||
},
|
|
||||||
reblog_private: {
|
|
||||||
id: 'status.reblog_private',
|
|
||||||
defaultMessage: 'Boost with original visibility',
|
|
||||||
},
|
|
||||||
reblog_cannot: {
|
|
||||||
id: 'status.cannot_reblog',
|
|
||||||
defaultMessage: 'This post cannot be boosted',
|
|
||||||
},
|
|
||||||
request_quote: {
|
|
||||||
id: 'status.request_quote',
|
|
||||||
defaultMessage: 'Request to quote',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
interface ReblogButtonProps {
|
|
||||||
status: Status;
|
|
||||||
counters?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const StatusReblogButton: FC<ReblogButtonProps> = ({
|
|
||||||
status,
|
|
||||||
counters,
|
|
||||||
}) => {
|
|
||||||
const intl = useIntl();
|
|
||||||
|
|
||||||
const statusState = useAppSelector((state) =>
|
|
||||||
selectStatusState(state, status),
|
|
||||||
);
|
|
||||||
const {
|
|
||||||
isLoggedIn,
|
|
||||||
isReblogged,
|
|
||||||
isReblogAllowed,
|
|
||||||
isQuoteAutomaticallyAccepted,
|
|
||||||
isQuoteManuallyAccepted,
|
|
||||||
} = statusState;
|
|
||||||
const { iconComponent } = useMemo(
|
|
||||||
() => reblogIconText(statusState),
|
|
||||||
[statusState],
|
|
||||||
);
|
|
||||||
const disabled =
|
|
||||||
!isQuoteAutomaticallyAccepted &&
|
|
||||||
!isQuoteManuallyAccepted &&
|
|
||||||
!isReblogAllowed;
|
|
||||||
|
|
||||||
const dispatch = useAppDispatch();
|
|
||||||
const statusId = status.get('id') as string;
|
|
||||||
const items: ActionMenuItem[] = useMemo(
|
|
||||||
() => [
|
|
||||||
{
|
|
||||||
text: 'reblog',
|
|
||||||
action: (event) => {
|
|
||||||
if (isLoggedIn) {
|
|
||||||
dispatch(toggleReblog(statusId, event.shiftKey));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'quote',
|
|
||||||
action: () => {
|
|
||||||
if (isLoggedIn) {
|
|
||||||
dispatch(quoteComposeById(statusId));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[dispatch, isLoggedIn, statusId],
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleDropdownOpen = useCallback(
|
|
||||||
(event: MouseEvent | KeyboardEvent) => {
|
|
||||||
if (!isLoggedIn) {
|
|
||||||
dispatch(
|
|
||||||
openModal({
|
|
||||||
modalType: 'INTERACTION',
|
|
||||||
modalProps: {
|
|
||||||
type: 'reblog',
|
|
||||||
accountId: status.getIn(['account', 'id']),
|
|
||||||
url: status.get('uri'),
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
} else if (event.shiftKey) {
|
|
||||||
dispatch(toggleReblog(status.get('id'), true));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
[dispatch, isLoggedIn, status],
|
|
||||||
);
|
|
||||||
|
|
||||||
const renderMenuItem: RenderItemFn<ActionMenuItem> = useCallback(
|
|
||||||
(item, index, handlers, focusRefCallback) => (
|
|
||||||
<ReblogMenuItem
|
|
||||||
status={status}
|
|
||||||
index={index}
|
|
||||||
item={item}
|
|
||||||
handlers={handlers}
|
|
||||||
key={`${item.text}-${index}`}
|
|
||||||
focusRefCallback={focusRefCallback}
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
[status],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Dropdown
|
|
||||||
items={items}
|
|
||||||
renderItem={renderMenuItem}
|
|
||||||
onOpen={handleDropdownOpen}
|
|
||||||
disabled={disabled}
|
|
||||||
>
|
|
||||||
<IconButton
|
|
||||||
title={intl.formatMessage(
|
|
||||||
!disabled ? messages.reblog_or_quote : messages.all_disabled,
|
|
||||||
)}
|
|
||||||
icon='retweet'
|
|
||||||
iconComponent={iconComponent}
|
|
||||||
counter={
|
|
||||||
counters
|
|
||||||
? (status.get('reblogs_count') as number) +
|
|
||||||
(status.get('quotes_count') as number)
|
|
||||||
: undefined
|
|
||||||
}
|
|
||||||
active={isReblogged}
|
|
||||||
/>
|
|
||||||
</Dropdown>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
interface ReblogMenuItemProps {
|
|
||||||
status: Status;
|
|
||||||
item: ActionMenuItem;
|
|
||||||
index: number;
|
|
||||||
handlers: RenderItemFnHandlers;
|
|
||||||
focusRefCallback?: (c: HTMLAnchorElement | HTMLButtonElement | null) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
const ReblogMenuItem: FC<ReblogMenuItemProps> = ({
|
|
||||||
status,
|
|
||||||
index,
|
|
||||||
item: { text },
|
|
||||||
handlers,
|
|
||||||
focusRefCallback,
|
|
||||||
}) => {
|
|
||||||
const intl = useIntl();
|
|
||||||
const statusState = useAppSelector((state) =>
|
|
||||||
selectStatusState(state, status),
|
|
||||||
);
|
|
||||||
const { title, meta, iconComponent, disabled } = useMemo(
|
|
||||||
() =>
|
|
||||||
text === 'quote'
|
|
||||||
? quoteIconText(statusState)
|
|
||||||
: reblogIconText(statusState),
|
|
||||||
[statusState, text],
|
|
||||||
);
|
|
||||||
const active = useMemo(
|
|
||||||
() => text === 'reblog' && !!status.get('reblogged'),
|
|
||||||
[status, text],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<li
|
|
||||||
className={classNames('dropdown-menu__item reblog-button__item', {
|
|
||||||
disabled,
|
|
||||||
active,
|
|
||||||
})}
|
|
||||||
key={`${text}-${index}`}
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
{...handlers}
|
|
||||||
title={intl.formatMessage(title)}
|
|
||||||
ref={focusRefCallback}
|
|
||||||
disabled={disabled}
|
|
||||||
data-index={index}
|
|
||||||
>
|
|
||||||
<Icon
|
|
||||||
id={text === 'quote' ? 'quote' : 'retweet'}
|
|
||||||
icon={iconComponent}
|
|
||||||
/>
|
|
||||||
<div>
|
|
||||||
{intl.formatMessage(title)}
|
|
||||||
{meta && (
|
|
||||||
<span className='reblog-button__meta'>
|
|
||||||
{intl.formatMessage(meta)}
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Legacy helpers
|
|
||||||
|
|
||||||
// Switch between the legacy and new reblog button based on feature flag.
|
|
||||||
export const ReblogButton: FC<ReblogButtonProps> = (props) => {
|
|
||||||
if (isFeatureEnabled('outgoing_quotes')) {
|
|
||||||
return <StatusReblogButton {...props} />;
|
|
||||||
}
|
|
||||||
return <LegacyReblogButton {...props} />;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const LegacyReblogButton: FC<ReblogButtonProps> = ({
|
|
||||||
status,
|
|
||||||
counters,
|
|
||||||
}) => {
|
|
||||||
const intl = useIntl();
|
|
||||||
const statusState = useAppSelector((state) =>
|
|
||||||
selectStatusState(state, status),
|
|
||||||
);
|
|
||||||
|
|
||||||
const { title, meta, iconComponent, disabled } = useMemo(
|
|
||||||
() => reblogIconText(statusState),
|
|
||||||
[statusState],
|
|
||||||
);
|
|
||||||
|
|
||||||
const dispatch = useAppDispatch();
|
|
||||||
const handleClick: MouseEventHandler = useCallback(
|
|
||||||
(event) => {
|
|
||||||
if (statusState.isLoggedIn) {
|
|
||||||
dispatch(toggleReblog(status.get('id') as string, event.shiftKey));
|
|
||||||
} else {
|
|
||||||
dispatch(
|
|
||||||
openModal({
|
|
||||||
modalType: 'INTERACTION',
|
|
||||||
modalProps: {
|
|
||||||
type: 'reblog',
|
|
||||||
accountId: status.getIn(['account', 'id']),
|
|
||||||
url: status.get('uri'),
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[dispatch, status, statusState.isLoggedIn],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<IconButton
|
|
||||||
disabled={disabled}
|
|
||||||
active={!!status.get('reblogged')}
|
|
||||||
title={intl.formatMessage(meta ?? title)}
|
|
||||||
icon='retweet'
|
|
||||||
iconComponent={iconComponent}
|
|
||||||
onClick={!disabled ? handleClick : undefined}
|
|
||||||
counter={
|
|
||||||
counters
|
|
||||||
? (status.get('reblogs_count') as number) +
|
|
||||||
(status.get('quotes_count') as number)
|
|
||||||
: undefined
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Helpers for copy and state for status.
|
|
||||||
const selectStatusState = createAppSelector(
|
|
||||||
[
|
|
||||||
(state) => state.meta.get('me') as string | undefined,
|
|
||||||
(_, status: Status) => status,
|
|
||||||
],
|
|
||||||
(userId, status) => {
|
|
||||||
const isPublic = ['public', 'unlisted'].includes(
|
|
||||||
status.get('visibility') as StatusVisibility,
|
|
||||||
);
|
|
||||||
const isMineAndPrivate =
|
|
||||||
userId === status.getIn(['account', 'id']) &&
|
|
||||||
status.get('visibility') === 'private';
|
|
||||||
return {
|
|
||||||
isLoggedIn: !!userId,
|
|
||||||
isPublic,
|
|
||||||
isMine: userId === status.getIn(['account', 'id']),
|
|
||||||
isPrivateReblog:
|
|
||||||
userId === status.getIn(['account', 'id']) &&
|
|
||||||
status.get('visibility') === 'private',
|
|
||||||
isReblogged: !!status.get('reblogged'),
|
|
||||||
isReblogAllowed: isPublic || isMineAndPrivate,
|
|
||||||
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',
|
|
||||||
};
|
|
||||||
},
|
|
||||||
);
|
|
||||||
type StatusState = ReturnType<typeof selectStatusState>;
|
|
||||||
|
|
||||||
interface IconText {
|
|
||||||
title: MessageDescriptor;
|
|
||||||
meta?: MessageDescriptor;
|
|
||||||
iconComponent: FC<SVGProps<SVGSVGElement>>;
|
|
||||||
disabled?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
function reblogIconText({
|
|
||||||
isPublic,
|
|
||||||
isPrivateReblog,
|
|
||||||
isReblogged,
|
|
||||||
}: StatusState): IconText {
|
|
||||||
if (isReblogged) {
|
|
||||||
return {
|
|
||||||
title: messages.reblog_cancel,
|
|
||||||
iconComponent: isPublic ? RepeatActiveIcon : RepeatPrivateActiveIcon,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
const iconText: IconText = {
|
|
||||||
title: messages.reblog,
|
|
||||||
iconComponent: RepeatIcon,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (isPrivateReblog) {
|
|
||||||
iconText.meta = messages.reblog_private;
|
|
||||||
iconText.iconComponent = RepeatPrivateIcon;
|
|
||||||
} else if (!isPublic) {
|
|
||||||
iconText.meta = messages.reblog_cannot;
|
|
||||||
iconText.iconComponent = RepeatDisabledIcon;
|
|
||||||
iconText.disabled = true;
|
|
||||||
}
|
|
||||||
return iconText;
|
|
||||||
}
|
|
||||||
|
|
||||||
function quoteIconText({
|
|
||||||
isMine,
|
|
||||||
isQuoteAutomaticallyAccepted,
|
|
||||||
isQuoteManuallyAccepted,
|
|
||||||
isQuoteFollowersOnly,
|
|
||||||
isPublic,
|
|
||||||
}: StatusState): IconText {
|
|
||||||
const iconText: IconText = {
|
|
||||||
title: messages.quote,
|
|
||||||
iconComponent: FormatQuote,
|
|
||||||
};
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
|
@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
|
||||||
|
|
||||||
import { defineMessages, injectIntl } from 'react-intl';
|
import { defineMessages, injectIntl } from 'react-intl';
|
||||||
|
|
||||||
|
import classNames from 'classnames';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
|
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
|
@ -11,10 +12,15 @@ import { connect } from 'react-redux';
|
||||||
import BookmarkIcon from '@/material-icons/400-24px/bookmark-fill.svg?react';
|
import BookmarkIcon from '@/material-icons/400-24px/bookmark-fill.svg?react';
|
||||||
import BookmarkBorderIcon from '@/material-icons/400-24px/bookmark.svg?react';
|
import BookmarkBorderIcon from '@/material-icons/400-24px/bookmark.svg?react';
|
||||||
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
|
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
|
||||||
|
import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react';
|
||||||
import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
|
import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
|
||||||
import ReplyAllIcon from '@/material-icons/400-24px/reply_all.svg?react';
|
import ReplyAllIcon from '@/material-icons/400-24px/reply_all.svg?react';
|
||||||
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
|
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
|
||||||
import StarBorderIcon from '@/material-icons/400-24px/star.svg?react';
|
import StarBorderIcon from '@/material-icons/400-24px/star.svg?react';
|
||||||
|
import RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react';
|
||||||
|
import RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react';
|
||||||
|
import RepeatPrivateIcon from '@/svg-icons/repeat_private.svg?react';
|
||||||
|
import RepeatPrivateActiveIcon from '@/svg-icons/repeat_private_active.svg?react';
|
||||||
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
||||||
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
|
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
|
||||||
import { WithRouterPropTypes } from 'mastodon/utils/react_router';
|
import { WithRouterPropTypes } from 'mastodon/utils/react_router';
|
||||||
|
@ -24,7 +30,6 @@ import { me } from '../initial_state';
|
||||||
|
|
||||||
import { IconButton } from './icon_button';
|
import { IconButton } from './icon_button';
|
||||||
import { isFeatureEnabled } from '../utils/environment';
|
import { isFeatureEnabled } from '../utils/environment';
|
||||||
import { ReblogButton } from './status/reblog_button';
|
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
delete: { id: 'status.delete', defaultMessage: 'Delete' },
|
delete: { id: 'status.delete', defaultMessage: 'Delete' },
|
||||||
|
@ -38,6 +43,10 @@ const messages = defineMessages({
|
||||||
share: { id: 'status.share', defaultMessage: 'Share' },
|
share: { id: 'status.share', defaultMessage: 'Share' },
|
||||||
more: { id: 'status.more', defaultMessage: 'More' },
|
more: { id: 'status.more', defaultMessage: 'More' },
|
||||||
replyAll: { id: 'status.replyAll', defaultMessage: 'Reply to thread' },
|
replyAll: { id: 'status.replyAll', defaultMessage: 'Reply to thread' },
|
||||||
|
reblog: { id: 'status.reblog', defaultMessage: 'Boost' },
|
||||||
|
reblog_private: { id: 'status.reblog_private', defaultMessage: 'Boost with original visibility' },
|
||||||
|
cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
|
||||||
|
cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
|
||||||
favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
|
favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
|
||||||
removeFavourite: { id: 'status.remove_favourite', defaultMessage: 'Remove from favorites' },
|
removeFavourite: { id: 'status.remove_favourite', defaultMessage: 'Remove from favorites' },
|
||||||
bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },
|
bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },
|
||||||
|
@ -76,9 +85,10 @@ class StatusActionBar extends ImmutablePureComponent {
|
||||||
identity: identityContextPropShape,
|
identity: identityContextPropShape,
|
||||||
status: ImmutablePropTypes.map.isRequired,
|
status: ImmutablePropTypes.map.isRequired,
|
||||||
relationship: ImmutablePropTypes.record,
|
relationship: ImmutablePropTypes.record,
|
||||||
quotedAccountId: PropTypes.string,
|
quotedAccountId: ImmutablePropTypes.string,
|
||||||
onReply: PropTypes.func,
|
onReply: PropTypes.func,
|
||||||
onFavourite: PropTypes.func,
|
onFavourite: PropTypes.func,
|
||||||
|
onReblog: PropTypes.func,
|
||||||
onDelete: PropTypes.func,
|
onDelete: PropTypes.func,
|
||||||
onRevokeQuote: PropTypes.func,
|
onRevokeQuote: PropTypes.func,
|
||||||
onQuotePolicyChange: PropTypes.func,
|
onQuotePolicyChange: PropTypes.func,
|
||||||
|
@ -142,6 +152,16 @@ class StatusActionBar extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
handleReblogClick = e => {
|
||||||
|
const { signedIn } = this.props.identity;
|
||||||
|
|
||||||
|
if (signedIn) {
|
||||||
|
this.props.onReblog(this.props.status, e);
|
||||||
|
} else {
|
||||||
|
this.props.onInteractionModal('reblog', this.props.status);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
handleBookmarkClick = () => {
|
handleBookmarkClick = () => {
|
||||||
this.props.onBookmark(this.props.status);
|
this.props.onBookmark(this.props.status);
|
||||||
};
|
};
|
||||||
|
@ -357,6 +377,25 @@ class StatusActionBar extends ImmutablePureComponent {
|
||||||
replyTitle = intl.formatMessage(messages.replyAll);
|
replyTitle = intl.formatMessage(messages.replyAll);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const reblogPrivate = status.getIn(['account', 'id']) === me && status.get('visibility') === 'private';
|
||||||
|
|
||||||
|
let reblogTitle, reblogIconComponent;
|
||||||
|
|
||||||
|
if (status.get('reblogged')) {
|
||||||
|
reblogTitle = intl.formatMessage(messages.cancel_reblog_private);
|
||||||
|
reblogIconComponent = publicStatus ? RepeatActiveIcon : RepeatPrivateActiveIcon;
|
||||||
|
} else if (publicStatus) {
|
||||||
|
reblogTitle = intl.formatMessage(messages.reblog);
|
||||||
|
reblogIconComponent = RepeatIcon;
|
||||||
|
} else if (reblogPrivate) {
|
||||||
|
reblogTitle = intl.formatMessage(messages.reblog_private);
|
||||||
|
reblogIconComponent = RepeatPrivateIcon;
|
||||||
|
} else {
|
||||||
|
reblogTitle = intl.formatMessage(messages.cannot_reblog);
|
||||||
|
reblogIconComponent = RepeatDisabledIcon;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const bookmarkTitle = intl.formatMessage(status.get('bookmarked') ? messages.removeBookmark : messages.bookmark);
|
const bookmarkTitle = intl.formatMessage(status.get('bookmarked') ? messages.removeBookmark : messages.bookmark);
|
||||||
const favouriteTitle = intl.formatMessage(status.get('favourited') ? messages.removeFavourite : messages.favourite);
|
const favouriteTitle = intl.formatMessage(status.get('favourited') ? messages.removeFavourite : messages.favourite);
|
||||||
const isReply = status.get('in_reply_to_account_id') === status.getIn(['account', 'id']);
|
const isReply = status.get('in_reply_to_account_id') === status.getIn(['account', 'id']);
|
||||||
|
@ -367,7 +406,7 @@ class StatusActionBar extends ImmutablePureComponent {
|
||||||
<IconButton className='status__action-bar__button' title={replyTitle} icon={isReply ? 'reply' : replyIcon} iconComponent={isReply ? ReplyIcon : replyIconComponent} onClick={this.handleReplyClick} counter={status.get('replies_count')} />
|
<IconButton className='status__action-bar__button' title={replyTitle} icon={isReply ? 'reply' : replyIcon} iconComponent={isReply ? ReplyIcon : replyIconComponent} onClick={this.handleReplyClick} counter={status.get('replies_count')} />
|
||||||
</div>
|
</div>
|
||||||
<div className='status__action-bar__button-wrapper'>
|
<div className='status__action-bar__button-wrapper'>
|
||||||
<ReblogButton status={status} counters={withCounters} />
|
<IconButton className={classNames('status__action-bar__button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} counter={withCounters ? status.get('reblogs_count') : undefined} />
|
||||||
</div>
|
</div>
|
||||||
<div className='status__action-bar__button-wrapper'>
|
<div className='status__action-bar__button-wrapper'>
|
||||||
<IconButton className='status__action-bar__button star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} counter={withCounters ? status.get('favourites_count') : undefined} />
|
<IconButton className='status__action-bar__button star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} counter={withCounters ? status.get('favourites_count') : undefined} />
|
||||||
|
|
|
@ -14,7 +14,6 @@ import { StatusQuoteManager } from '../components/status_quoted';
|
||||||
import { LoadGap } from './load_gap';
|
import { LoadGap } from './load_gap';
|
||||||
import ScrollableList from './scrollable_list';
|
import ScrollableList from './scrollable_list';
|
||||||
|
|
||||||
|
|
||||||
export default class StatusList extends ImmutablePureComponent {
|
export default class StatusList extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -41,6 +40,84 @@ export default class StatusList extends ImmutablePureComponent {
|
||||||
trackScroll: true,
|
trackScroll: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
this.columnHeaderHeight = this.node?.node
|
||||||
|
? parseFloat(
|
||||||
|
getComputedStyle(this.node.node).getPropertyValue('--column-header-height')
|
||||||
|
) || 0
|
||||||
|
: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
getFeaturedStatusCount = () => {
|
||||||
|
return this.props.featuredStatusIds ? this.props.featuredStatusIds.size : 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
getCurrentStatusIndex = (id, featured) => {
|
||||||
|
if (featured) {
|
||||||
|
return this.props.featuredStatusIds.indexOf(id);
|
||||||
|
} else {
|
||||||
|
return this.props.statusIds.indexOf(id) + this.getFeaturedStatusCount();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
handleMoveUp = (id, featured) => {
|
||||||
|
const index = this.getCurrentStatusIndex(id, featured);
|
||||||
|
this._selectChild(id, index, -1);
|
||||||
|
};
|
||||||
|
|
||||||
|
handleMoveDown = (id, featured) => {
|
||||||
|
const index = this.getCurrentStatusIndex(id, featured);
|
||||||
|
this._selectChild(id, index, 1);
|
||||||
|
};
|
||||||
|
|
||||||
|
_selectChild = (id, index, direction) => {
|
||||||
|
const listContainer = this.node?.node;
|
||||||
|
let listItem = listContainer?.querySelector(
|
||||||
|
// :nth-child uses 1-based indexing
|
||||||
|
`.item-list > :nth-child(${index + 1 + direction})`
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!listItem) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If selected container element is empty, we skip it
|
||||||
|
if (listItem.matches(':empty')) {
|
||||||
|
this._selectChild(id, index + direction, direction);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the list item is a post
|
||||||
|
let targetElement = listItem.querySelector('.focusable');
|
||||||
|
|
||||||
|
// Otherwise, check if the item contains follow suggestions or
|
||||||
|
// is a 'load more' button.
|
||||||
|
if (
|
||||||
|
!targetElement && (
|
||||||
|
listItem.querySelector('.inline-follow-suggestions') ||
|
||||||
|
listItem.matches('.load-more')
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
targetElement = listItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (targetElement) {
|
||||||
|
const elementRect = targetElement.getBoundingClientRect();
|
||||||
|
|
||||||
|
const isFullyVisible =
|
||||||
|
elementRect.top >= this.columnHeaderHeight &&
|
||||||
|
elementRect.bottom <= window.innerHeight;
|
||||||
|
|
||||||
|
if (!isFullyVisible) {
|
||||||
|
targetElement.scrollIntoView({
|
||||||
|
block: direction === 1 ? 'start' : 'center',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
targetElement.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
handleLoadOlder = debounce(() => {
|
handleLoadOlder = debounce(() => {
|
||||||
const { statusIds, lastId, onLoadMore } = this.props;
|
const { statusIds, lastId, onLoadMore } = this.props;
|
||||||
onLoadMore(lastId || (statusIds.size > 0 ? statusIds.last() : undefined));
|
onLoadMore(lastId || (statusIds.size > 0 ? statusIds.last() : undefined));
|
||||||
|
@ -81,6 +158,8 @@ export default class StatusList extends ImmutablePureComponent {
|
||||||
<StatusQuoteManager
|
<StatusQuoteManager
|
||||||
key={statusId}
|
key={statusId}
|
||||||
id={statusId}
|
id={statusId}
|
||||||
|
onMoveUp={this.handleMoveUp}
|
||||||
|
onMoveDown={this.handleMoveDown}
|
||||||
contextType={timelineId}
|
contextType={timelineId}
|
||||||
scrollKey={this.props.scrollKey}
|
scrollKey={this.props.scrollKey}
|
||||||
showThread
|
showThread
|
||||||
|
@ -97,6 +176,8 @@ export default class StatusList extends ImmutablePureComponent {
|
||||||
key={`f-${statusId}`}
|
key={`f-${statusId}`}
|
||||||
id={statusId}
|
id={statusId}
|
||||||
featured
|
featured
|
||||||
|
onMoveUp={this.handleMoveUp}
|
||||||
|
onMoveDown={this.handleMoveDown}
|
||||||
contextType={timelineId}
|
contextType={timelineId}
|
||||||
showThread
|
showThread
|
||||||
withCounters={this.props.withCounters}
|
withCounters={this.props.withCounters}
|
||||||
|
@ -110,4 +191,5 @@ export default class StatusList extends ImmutablePureComponent {
|
||||||
</ScrollableList>
|
</ScrollableList>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,9 @@ 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 accountId = status.get('account') as string;
|
||||||
const account = useAppSelector((state) =>
|
const account = useAppSelector((state) =>
|
||||||
accountId ? state.accounts.get(accountId) : undefined,
|
accountId ? state.accounts.get(accountId) : undefined,
|
||||||
|
@ -61,47 +63,24 @@ type GetStatusSelector = (
|
||||||
props: { id?: string | null; contextType?: string },
|
props: { id?: string | null; contextType?: string },
|
||||||
) => Status | null;
|
) => Status | null;
|
||||||
|
|
||||||
interface QuotedStatusProps {
|
export const QuotedStatus: React.FC<{
|
||||||
quote: QuoteMap;
|
quote: QuoteMap;
|
||||||
contextType?: string;
|
contextType?: string;
|
||||||
parentQuotePostId?: string | null;
|
|
||||||
variant?: 'full' | 'link';
|
variant?: 'full' | 'link';
|
||||||
nestingLevel?: number;
|
nestingLevel?: number;
|
||||||
onQuoteCancel?: () => void; // Used for composer.
|
}> = ({ quote, contextType, nestingLevel = 1, variant = 'full' }) => {
|
||||||
}
|
|
||||||
|
|
||||||
export const QuotedStatus: React.FC<QuotedStatusProps> = ({
|
|
||||||
quote,
|
|
||||||
contextType,
|
|
||||||
parentQuotePostId,
|
|
||||||
nestingLevel = 1,
|
|
||||||
variant = 'full',
|
|
||||||
onQuoteCancel,
|
|
||||||
}) => {
|
|
||||||
const dispatch = useAppDispatch();
|
const dispatch = useAppDispatch();
|
||||||
const quoteState = useAppSelector((state) =>
|
|
||||||
parentQuotePostId
|
|
||||||
? state.statuses.getIn([parentQuotePostId, 'quote', 'state'])
|
|
||||||
: quote.get('state'),
|
|
||||||
);
|
|
||||||
|
|
||||||
const quotedStatusId = quote.get('quoted_status');
|
const quotedStatusId = quote.get('quoted_status');
|
||||||
|
const quoteState = quote.get('state');
|
||||||
const status = useAppSelector((state) =>
|
const status = useAppSelector((state) =>
|
||||||
quotedStatusId ? state.statuses.get(quotedStatusId) : undefined,
|
quotedStatusId ? state.statuses.get(quotedStatusId) : undefined,
|
||||||
);
|
);
|
||||||
|
|
||||||
const shouldLoadQuote = !status?.get('isLoading') && quoteState !== 'deleted';
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (shouldLoadQuote && quotedStatusId) {
|
if (!status && quotedStatusId) {
|
||||||
dispatch(
|
dispatch(fetchStatus(quotedStatusId));
|
||||||
fetchStatus(quotedStatusId, {
|
|
||||||
parentQuotePostId,
|
|
||||||
alsoFetchContext: false,
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}, [shouldLoadQuote, quotedStatusId, parentQuotePostId, dispatch]);
|
}, [status, quotedStatusId, dispatch]);
|
||||||
|
|
||||||
// In order to find out whether the quoted post should be completely hidden
|
// 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`.
|
// due to a matching filter, we run it through the selector used by `status_container`.
|
||||||
|
@ -181,12 +160,10 @@ export const QuotedStatus: React.FC<QuotedStatusProps> = ({
|
||||||
id={quotedStatusId}
|
id={quotedStatusId}
|
||||||
contextType={contextType}
|
contextType={contextType}
|
||||||
avatarSize={32}
|
avatarSize={32}
|
||||||
onQuoteCancel={onQuoteCancel}
|
|
||||||
>
|
>
|
||||||
{canRenderChildQuote && (
|
{canRenderChildQuote && (
|
||||||
<QuotedStatus
|
<QuotedStatus
|
||||||
quote={childQuote}
|
quote={childQuote}
|
||||||
parentQuotePostId={quotedStatusId}
|
|
||||||
contextType={contextType}
|
contextType={contextType}
|
||||||
variant={
|
variant={
|
||||||
nestingLevel === MAX_QUOTE_POSTS_NESTING_LEVEL ? 'link' : 'full'
|
nestingLevel === MAX_QUOTE_POSTS_NESTING_LEVEL ? 'link' : 'full'
|
||||||
|
@ -222,11 +199,7 @@ export const StatusQuoteManager = (props: StatusQuoteManagerProps) => {
|
||||||
if (quote) {
|
if (quote) {
|
||||||
return (
|
return (
|
||||||
<StatusContainer {...props}>
|
<StatusContainer {...props}>
|
||||||
<QuotedStatus
|
<QuotedStatus quote={quote} contextType={props.contextType} />
|
||||||
quote={quote}
|
|
||||||
parentQuotePostId={status?.get('id') as string}
|
|
||||||
contextType={props.contextType}
|
|
||||||
/>
|
|
||||||
</StatusContainer>
|
</StatusContainer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@ import {
|
||||||
mentionCompose,
|
mentionCompose,
|
||||||
directCompose,
|
directCompose,
|
||||||
} from '../actions/compose';
|
} from '../actions/compose';
|
||||||
import { quoteComposeById } from '../actions/compose_typed';
|
|
||||||
import {
|
import {
|
||||||
initDomainBlockModal,
|
initDomainBlockModal,
|
||||||
unblockDomain,
|
unblockDomain,
|
||||||
|
@ -42,12 +41,10 @@ import {
|
||||||
translateStatus,
|
translateStatus,
|
||||||
undoStatusTranslation,
|
undoStatusTranslation,
|
||||||
} from '../actions/statuses';
|
} from '../actions/statuses';
|
||||||
import { setStatusQuotePolicy } from '../actions/statuses_typed';
|
|
||||||
import Status from '../components/status';
|
import Status from '../components/status';
|
||||||
import { deleteModal } from '../initial_state';
|
import { deleteModal } from '../initial_state';
|
||||||
import { makeGetStatus, makeGetPictureInPicture } from '../selectors';
|
import { makeGetStatus, makeGetPictureInPicture } from '../selectors';
|
||||||
|
import { quoteComposeCancel } from '../actions/compose_typed';
|
||||||
import { isFeatureEnabled } from 'mastodon/utils/environment';
|
|
||||||
|
|
||||||
const makeMapStateToProps = () => {
|
const makeMapStateToProps = () => {
|
||||||
const getStatus = makeGetStatus();
|
const getStatus = makeGetStatus();
|
||||||
|
@ -80,12 +77,6 @@ const mapDispatchToProps = (dispatch, { contextType }) => ({
|
||||||
dispatch(toggleReblog(status.get('id'), e.shiftKey));
|
dispatch(toggleReblog(status.get('id'), e.shiftKey));
|
||||||
},
|
},
|
||||||
|
|
||||||
onQuote (status) {
|
|
||||||
if (isFeatureEnabled('outgoing_quotes')) {
|
|
||||||
dispatch(quoteComposeById(status.get('id')));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onFavourite (status) {
|
onFavourite (status) {
|
||||||
dispatch(toggleFavourite(status.get('id')));
|
dispatch(toggleFavourite(status.get('id')));
|
||||||
},
|
},
|
||||||
|
@ -117,13 +108,13 @@ const mapDispatchToProps = (dispatch, { contextType }) => ({
|
||||||
if (!deleteModal) {
|
if (!deleteModal) {
|
||||||
dispatch(deleteStatus(status.get('id'), withRedraft));
|
dispatch(deleteStatus(status.get('id'), withRedraft));
|
||||||
} else {
|
} else {
|
||||||
dispatch(openModal({
|
dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } }));
|
||||||
modalType: 'CONFIRM_DELETE_STATUS',
|
|
||||||
modalProps: {
|
|
||||||
statusId: status.get('id'),
|
|
||||||
withRedraft
|
|
||||||
}
|
}
|
||||||
}));
|
},
|
||||||
|
|
||||||
|
onQuoteCancel() {
|
||||||
|
if (contextType === 'compose') {
|
||||||
|
dispatch(quoteComposeCancel());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -132,13 +123,7 @@ const mapDispatchToProps = (dispatch, { contextType }) => ({
|
||||||
},
|
},
|
||||||
|
|
||||||
onQuotePolicyChange(status) {
|
onQuotePolicyChange(status) {
|
||||||
const statusId = status.get('id');
|
dispatch(openModal({ modalType: 'COMPOSE_PRIVACY', modalProps: { statusId: status.get('id') } }));
|
||||||
const handleChange = (_, quotePolicy) => {
|
|
||||||
dispatch(
|
|
||||||
setStatusQuotePolicy({ policy: quotePolicy, statusId }),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
dispatch(openModal({ modalType: 'COMPOSE_PRIVACY', modalProps: { statusId, onChange: handleChange } }));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onEdit (status) {
|
onEdit (status) {
|
||||||
|
|
|
@ -15,8 +15,10 @@ import { missingAltTextModal } from 'mastodon/initial_state';
|
||||||
import AutosuggestInput from 'mastodon/components/autosuggest_input';
|
import AutosuggestInput from 'mastodon/components/autosuggest_input';
|
||||||
import AutosuggestTextarea from 'mastodon/components/autosuggest_textarea';
|
import AutosuggestTextarea from 'mastodon/components/autosuggest_textarea';
|
||||||
import { Button } from 'mastodon/components/button';
|
import { Button } from 'mastodon/components/button';
|
||||||
|
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
|
||||||
import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container';
|
import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container';
|
||||||
import PollButtonContainer from '../containers/poll_button_container';
|
import PollButtonContainer from '../containers/poll_button_container';
|
||||||
|
import PrivacyDropdownContainer from '../containers/privacy_dropdown_container';
|
||||||
import SpoilerButtonContainer from '../containers/spoiler_button_container';
|
import SpoilerButtonContainer from '../containers/spoiler_button_container';
|
||||||
import UploadButtonContainer from '../containers/upload_button_container';
|
import UploadButtonContainer from '../containers/upload_button_container';
|
||||||
import { countableText } from '../util/counter';
|
import { countableText } from '../util/counter';
|
||||||
|
@ -30,7 +32,6 @@ import { ReplyIndicator } from './reply_indicator';
|
||||||
import { UploadForm } from './upload_form';
|
import { UploadForm } from './upload_form';
|
||||||
import { Warning } from './warning';
|
import { Warning } from './warning';
|
||||||
import { ComposeQuotedStatus } from './quoted_post';
|
import { ComposeQuotedStatus } from './quoted_post';
|
||||||
import { VisibilityButton } from './visibility_button';
|
|
||||||
|
|
||||||
const allowedAroundShortCode = '><\u0085\u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\u0009\u000a\u000b\u000c\u000d';
|
const allowedAroundShortCode = '><\u0085\u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\u0009\u000a\u000b\u000c\u000d';
|
||||||
|
|
||||||
|
@ -258,11 +259,6 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
<div className={classNames('compose-form__highlightable', { active: highlighted })} ref={this.setRef}>
|
<div className={classNames('compose-form__highlightable', { active: highlighted })} ref={this.setRef}>
|
||||||
<EditIndicator />
|
<EditIndicator />
|
||||||
|
|
||||||
<div className='compose-form__dropdowns'>
|
|
||||||
<VisibilityButton disabled={this.props.isEditing} />
|
|
||||||
<LanguageDropdown />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{this.props.spoiler && (
|
{this.props.spoiler && (
|
||||||
<div className='spoiler-input'>
|
<div className='spoiler-input'>
|
||||||
<div className='spoiler-input__border' />
|
<div className='spoiler-input__border' />
|
||||||
|
@ -289,6 +285,11 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
<div className='compose-form__dropdowns'>
|
||||||
|
<PrivacyDropdownContainer disabled={this.props.isEditing} />
|
||||||
|
<LanguageDropdown />
|
||||||
|
</div>
|
||||||
|
|
||||||
<AutosuggestTextarea
|
<AutosuggestTextarea
|
||||||
ref={this.textareaRef}
|
ref={this.textareaRef}
|
||||||
placeholder={intl.formatMessage(messages.placeholder)}
|
placeholder={intl.formatMessage(messages.placeholder)}
|
||||||
|
|
|
@ -1,17 +1,15 @@
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useMemo } from 'react';
|
||||||
import type { FC } from 'react';
|
import type { FC } from 'react';
|
||||||
|
|
||||||
import { Map } from 'immutable';
|
import { Map } from 'immutable';
|
||||||
|
|
||||||
import { quoteComposeCancel } from '@/mastodon/actions/compose_typed';
|
|
||||||
import { QuotedStatus } from '@/mastodon/components/status_quoted';
|
import { QuotedStatus } from '@/mastodon/components/status_quoted';
|
||||||
import { useAppDispatch, useAppSelector } from '@/mastodon/store';
|
import { useAppSelector } from '@/mastodon/store';
|
||||||
|
|
||||||
export const ComposeQuotedStatus: FC = () => {
|
export const ComposeQuotedStatus: FC = () => {
|
||||||
const quotedStatusId = useAppSelector(
|
const quotedStatusId = useAppSelector(
|
||||||
(state) => state.compose.get('quoted_status_id') as string | null,
|
(state) => state.compose.get('quoted_status_id') as string | null,
|
||||||
);
|
);
|
||||||
const isEditing = useAppSelector((state) => !!state.compose.get('id'));
|
|
||||||
const quote = useMemo(
|
const quote = useMemo(
|
||||||
() =>
|
() =>
|
||||||
quotedStatusId
|
quotedStatusId
|
||||||
|
@ -22,17 +20,8 @@ export const ComposeQuotedStatus: FC = () => {
|
||||||
: null,
|
: null,
|
||||||
[quotedStatusId],
|
[quotedStatusId],
|
||||||
);
|
);
|
||||||
const dispatch = useAppDispatch();
|
|
||||||
const handleQuoteCancel = useCallback(() => {
|
|
||||||
dispatch(quoteComposeCancel());
|
|
||||||
}, [dispatch]);
|
|
||||||
if (!quote) {
|
if (!quote) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return (
|
return <QuotedStatus quote={quote} contextType='compose' />;
|
||||||
<QuotedStatus
|
|
||||||
quote={quote}
|
|
||||||
onQuoteCancel={!isEditing ? handleQuoteCancel : undefined}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,148 +0,0 @@
|
||||||
import { useCallback, useMemo } from 'react';
|
|
||||||
import type { FC } from 'react';
|
|
||||||
|
|
||||||
import { defineMessages, useIntl } from 'react-intl';
|
|
||||||
|
|
||||||
import classNames from 'classnames';
|
|
||||||
|
|
||||||
import { changeComposeVisibility } from '@/mastodon/actions/compose';
|
|
||||||
import { setComposeQuotePolicy } from '@/mastodon/actions/compose_typed';
|
|
||||||
import { openModal } from '@/mastodon/actions/modal';
|
|
||||||
import type { ApiQuotePolicy } from '@/mastodon/api_types/quotes';
|
|
||||||
import type { StatusVisibility } from '@/mastodon/api_types/statuses';
|
|
||||||
import { Icon } from '@/mastodon/components/icon';
|
|
||||||
import { useAppSelector, useAppDispatch } from '@/mastodon/store';
|
|
||||||
import { isFeatureEnabled } from '@/mastodon/utils/environment';
|
|
||||||
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
|
|
||||||
import LockIcon from '@/material-icons/400-24px/lock.svg?react';
|
|
||||||
import PublicIcon from '@/material-icons/400-24px/public.svg?react';
|
|
||||||
import QuietTimeIcon from '@/material-icons/400-24px/quiet_time.svg?react';
|
|
||||||
|
|
||||||
import type { VisibilityModalCallback } from '../../ui/components/visibility_modal';
|
|
||||||
import PrivacyDropdownContainer from '../containers/privacy_dropdown_container';
|
|
||||||
|
|
||||||
import { messages as privacyMessages } from './privacy_dropdown';
|
|
||||||
|
|
||||||
const messages = defineMessages({
|
|
||||||
anyone_quote: {
|
|
||||||
id: 'privacy.quote.anyone',
|
|
||||||
defaultMessage: '{visibility}, anyone can quote',
|
|
||||||
},
|
|
||||||
limited_quote: {
|
|
||||||
id: 'privacy.quote.limited',
|
|
||||||
defaultMessage: '{visibility}, quotes limited',
|
|
||||||
},
|
|
||||||
disabled_quote: {
|
|
||||||
id: 'privacy.quote.disabled',
|
|
||||||
defaultMessage: '{visibility}, quotes disabled',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
interface PrivacyDropdownProps {
|
|
||||||
disabled?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const VisibilityButton: FC<PrivacyDropdownProps> = (props) => {
|
|
||||||
if (!isFeatureEnabled('outgoing_quotes')) {
|
|
||||||
return <PrivacyDropdownContainer {...props} />;
|
|
||||||
}
|
|
||||||
return <PrivacyModalButton {...props} />;
|
|
||||||
};
|
|
||||||
|
|
||||||
const visibilityOptions = {
|
|
||||||
public: {
|
|
||||||
icon: 'globe',
|
|
||||||
iconComponent: PublicIcon,
|
|
||||||
value: 'public',
|
|
||||||
text: privacyMessages.public_short,
|
|
||||||
},
|
|
||||||
unlisted: {
|
|
||||||
icon: 'unlock',
|
|
||||||
iconComponent: QuietTimeIcon,
|
|
||||||
value: 'unlisted',
|
|
||||||
text: privacyMessages.unlisted_short,
|
|
||||||
},
|
|
||||||
private: {
|
|
||||||
icon: 'lock',
|
|
||||||
iconComponent: LockIcon,
|
|
||||||
value: 'private',
|
|
||||||
text: privacyMessages.private_short,
|
|
||||||
},
|
|
||||||
direct: {
|
|
||||||
icon: 'at',
|
|
||||||
iconComponent: AlternateEmailIcon,
|
|
||||||
value: 'direct',
|
|
||||||
text: privacyMessages.direct_short,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const PrivacyModalButton: FC<PrivacyDropdownProps> = ({ disabled = false }) => {
|
|
||||||
const intl = useIntl();
|
|
||||||
|
|
||||||
const { visibility, quotePolicy } = useAppSelector((state) => ({
|
|
||||||
visibility: state.compose.get('privacy') as StatusVisibility,
|
|
||||||
quotePolicy: state.compose.get('quote_policy') as ApiQuotePolicy,
|
|
||||||
}));
|
|
||||||
|
|
||||||
const { icon, iconComponent } = useMemo(() => {
|
|
||||||
const option = visibilityOptions[visibility];
|
|
||||||
return { icon: option.icon, iconComponent: option.iconComponent };
|
|
||||||
}, [visibility]);
|
|
||||||
const text = useMemo(() => {
|
|
||||||
const visibilityText = intl.formatMessage(
|
|
||||||
visibilityOptions[visibility].text,
|
|
||||||
);
|
|
||||||
if (visibility === 'private' || visibility === 'direct') {
|
|
||||||
return visibilityText;
|
|
||||||
}
|
|
||||||
if (quotePolicy === 'nobody') {
|
|
||||||
return intl.formatMessage(messages.disabled_quote, {
|
|
||||||
visibility: visibilityText,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (quotePolicy !== 'public') {
|
|
||||||
return intl.formatMessage(messages.limited_quote, {
|
|
||||||
visibility: visibilityText,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return intl.formatMessage(messages.anyone_quote, {
|
|
||||||
visibility: visibilityText,
|
|
||||||
});
|
|
||||||
}, [quotePolicy, visibility, intl]);
|
|
||||||
|
|
||||||
const dispatch = useAppDispatch();
|
|
||||||
|
|
||||||
const handleChange: VisibilityModalCallback = useCallback(
|
|
||||||
(newVisibility, newQuotePolicy) => {
|
|
||||||
if (newVisibility !== visibility) {
|
|
||||||
dispatch(changeComposeVisibility(newVisibility));
|
|
||||||
}
|
|
||||||
if (newQuotePolicy !== quotePolicy) {
|
|
||||||
dispatch(setComposeQuotePolicy(newQuotePolicy));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[dispatch, quotePolicy, visibility],
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleOpen = useCallback(() => {
|
|
||||||
dispatch(
|
|
||||||
openModal({
|
|
||||||
modalType: 'COMPOSE_PRIVACY',
|
|
||||||
modalProps: { onChange: handleChange },
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
}, [dispatch, handleChange]);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<button
|
|
||||||
type='button'
|
|
||||||
title={intl.formatMessage(privacyMessages.change_privacy)}
|
|
||||||
onClick={handleOpen}
|
|
||||||
disabled={disabled}
|
|
||||||
className={classNames('dropdown-button')}
|
|
||||||
>
|
|
||||||
<Icon id={icon} icon={iconComponent} />
|
|
||||||
<span className='dropdown-button__label'>{text}</span>
|
|
||||||
</button>
|
|
||||||
);
|
|
||||||
};
|
|
|
@ -45,7 +45,7 @@ const getAccounts = createSelector(
|
||||||
|
|
||||||
const getStatus = makeGetStatus();
|
const getStatus = makeGetStatus();
|
||||||
|
|
||||||
export const Conversation = ({ conversation, scrollKey }) => {
|
export const Conversation = ({ conversation, scrollKey, onMoveUp, onMoveDown }) => {
|
||||||
const id = conversation.get('id');
|
const id = conversation.get('id');
|
||||||
const unread = conversation.get('unread');
|
const unread = conversation.get('unread');
|
||||||
const lastStatusId = conversation.get('last_status');
|
const lastStatusId = conversation.get('last_status');
|
||||||
|
@ -110,6 +110,14 @@ export const Conversation = ({ conversation, scrollKey }) => {
|
||||||
dispatch(deleteConversation(id));
|
dispatch(deleteConversation(id));
|
||||||
}, [dispatch, id]);
|
}, [dispatch, id]);
|
||||||
|
|
||||||
|
const handleHotkeyMoveUp = useCallback(() => {
|
||||||
|
onMoveUp(id);
|
||||||
|
}, [id, onMoveUp]);
|
||||||
|
|
||||||
|
const handleHotkeyMoveDown = useCallback(() => {
|
||||||
|
onMoveDown(id);
|
||||||
|
}, [id, onMoveDown]);
|
||||||
|
|
||||||
const handleConversationMute = useCallback(() => {
|
const handleConversationMute = useCallback(() => {
|
||||||
if (lastStatus.get('muted')) {
|
if (lastStatus.get('muted')) {
|
||||||
dispatch(unmuteStatus(lastStatus.get('id')));
|
dispatch(unmuteStatus(lastStatus.get('id')));
|
||||||
|
@ -153,6 +161,8 @@ export const Conversation = ({ conversation, scrollKey }) => {
|
||||||
const handlers = {
|
const handlers = {
|
||||||
reply: handleReply,
|
reply: handleReply,
|
||||||
open: handleClick,
|
open: handleClick,
|
||||||
|
moveUp: handleHotkeyMoveUp,
|
||||||
|
moveDown: handleHotkeyMoveDown,
|
||||||
toggleHidden: handleShowMore,
|
toggleHidden: handleShowMore,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -214,4 +224,6 @@ export const Conversation = ({ conversation, scrollKey }) => {
|
||||||
Conversation.propTypes = {
|
Conversation.propTypes = {
|
||||||
conversation: ImmutablePropTypes.map.isRequired,
|
conversation: ImmutablePropTypes.map.isRequired,
|
||||||
scrollKey: PropTypes.string,
|
scrollKey: PropTypes.string,
|
||||||
|
onMoveUp: PropTypes.func,
|
||||||
|
onMoveDown: PropTypes.func,
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,6 +10,20 @@ import ScrollableList from 'mastodon/components/scrollable_list';
|
||||||
|
|
||||||
import { Conversation } from './conversation';
|
import { Conversation } from './conversation';
|
||||||
|
|
||||||
|
const focusChild = (node, index, alignTop) => {
|
||||||
|
const element = node.querySelector(`article:nth-of-type(${index + 1}) .focusable`);
|
||||||
|
|
||||||
|
if (element) {
|
||||||
|
if (alignTop && node.scrollTop > element.offsetTop) {
|
||||||
|
element.scrollIntoView(true);
|
||||||
|
} else if (!alignTop && node.scrollTop + node.clientHeight < element.offsetTop + element.offsetHeight) {
|
||||||
|
element.scrollIntoView(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
element.focus();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export const ConversationsList = ({ scrollKey, ...other }) => {
|
export const ConversationsList = ({ scrollKey, ...other }) => {
|
||||||
const listRef = useRef();
|
const listRef = useRef();
|
||||||
const conversations = useSelector(state => state.getIn(['conversations', 'items']));
|
const conversations = useSelector(state => state.getIn(['conversations', 'items']));
|
||||||
|
@ -18,6 +32,16 @@ export const ConversationsList = ({ scrollKey, ...other }) => {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const lastStatusId = conversations.last()?.get('last_status');
|
const lastStatusId = conversations.last()?.get('last_status');
|
||||||
|
|
||||||
|
const handleMoveUp = useCallback(id => {
|
||||||
|
const elementIndex = conversations.findIndex(x => x.get('id') === id) - 1;
|
||||||
|
focusChild(listRef.current.node, elementIndex, true);
|
||||||
|
}, [listRef, conversations]);
|
||||||
|
|
||||||
|
const handleMoveDown = useCallback(id => {
|
||||||
|
const elementIndex = conversations.findIndex(x => x.get('id') === id) + 1;
|
||||||
|
focusChild(listRef.current.node, elementIndex, false);
|
||||||
|
}, [listRef, conversations]);
|
||||||
|
|
||||||
const debouncedLoadMore = useMemo(() => debounce(id => {
|
const debouncedLoadMore = useMemo(() => debounce(id => {
|
||||||
dispatch(expandConversations({ maxId: id }));
|
dispatch(expandConversations({ maxId: id }));
|
||||||
}, 300, { leading: true }), [dispatch]);
|
}, 300, { leading: true }), [dispatch]);
|
||||||
|
@ -34,6 +58,8 @@ export const ConversationsList = ({ scrollKey, ...other }) => {
|
||||||
<Conversation
|
<Conversation
|
||||||
key={item.get('id')}
|
key={item.get('id')}
|
||||||
conversation={item}
|
conversation={item}
|
||||||
|
onMoveUp={handleMoveUp}
|
||||||
|
onMoveDown={handleMoveDown}
|
||||||
scrollKey={scrollKey}
|
scrollKey={scrollKey}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { useEffect, useCallback, useRef, useState, useId } from 'react';
|
import { useEffect, useCallback, useRef, useState } from 'react';
|
||||||
|
|
||||||
import { FormattedMessage, useIntl, defineMessages } from 'react-intl';
|
import { FormattedMessage, useIntl, defineMessages } from 'react-intl';
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ import { DisplayName } from 'mastodon/components/display_name';
|
||||||
import { FollowButton } from 'mastodon/components/follow_button';
|
import { FollowButton } from 'mastodon/components/follow_button';
|
||||||
import { Icon } from 'mastodon/components/icon';
|
import { Icon } from 'mastodon/components/icon';
|
||||||
import { IconButton } from 'mastodon/components/icon_button';
|
import { IconButton } from 'mastodon/components/icon_button';
|
||||||
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
|
|
||||||
import { VerifiedBadge } from 'mastodon/components/verified_badge';
|
import { VerifiedBadge } from 'mastodon/components/verified_badge';
|
||||||
import { domain } from 'mastodon/initial_state';
|
import { domain } from 'mastodon/initial_state';
|
||||||
import { useAppDispatch, useAppSelector } from 'mastodon/store';
|
import { useAppDispatch, useAppSelector } from 'mastodon/store';
|
||||||
|
@ -57,7 +56,9 @@ const messages = defineMessages({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const Source: React.FC<{ id: ApiSuggestionSourceJSON }> = ({ id }) => {
|
const Source: React.FC<{
|
||||||
|
id: ApiSuggestionSourceJSON;
|
||||||
|
}> = ({ id }) => {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
|
|
||||||
let label, hint;
|
let label, hint;
|
||||||
|
@ -167,11 +168,10 @@ const Card: React.FC<{
|
||||||
|
|
||||||
const DISMISSIBLE_ID = 'home/follow-suggestions';
|
const DISMISSIBLE_ID = 'home/follow-suggestions';
|
||||||
|
|
||||||
export const InlineFollowSuggestions: React.FC<{ hidden?: boolean }> = ({
|
export const InlineFollowSuggestions: React.FC<{
|
||||||
hidden,
|
hidden?: boolean;
|
||||||
}) => {
|
}> = ({ hidden }) => {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const uniqueId = useId();
|
|
||||||
const dispatch = useAppDispatch();
|
const dispatch = useAppDispatch();
|
||||||
const suggestions = useAppSelector((state) => state.suggestions.items);
|
const suggestions = useAppSelector((state) => state.suggestions.items);
|
||||||
const isLoading = useAppSelector((state) => state.suggestions.isLoading);
|
const isLoading = useAppSelector((state) => state.suggestions.isLoading);
|
||||||
|
@ -257,14 +257,9 @@ export const InlineFollowSuggestions: React.FC<{ hidden?: boolean }> = ({
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div className='inline-follow-suggestions'>
|
||||||
role='group'
|
|
||||||
aria-labelledby={uniqueId}
|
|
||||||
className='inline-follow-suggestions focusable'
|
|
||||||
tabIndex={-1}
|
|
||||||
>
|
|
||||||
<div className='inline-follow-suggestions__header'>
|
<div className='inline-follow-suggestions__header'>
|
||||||
<h3 id={uniqueId}>
|
<h3>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
id='follow_suggestions.who_to_follow'
|
id='follow_suggestions.who_to_follow'
|
||||||
defaultMessage='Who to follow'
|
defaultMessage='Who to follow'
|
||||||
|
@ -293,17 +288,13 @@ export const InlineFollowSuggestions: React.FC<{ hidden?: boolean }> = ({
|
||||||
ref={bodyRef}
|
ref={bodyRef}
|
||||||
onScroll={handleScroll}
|
onScroll={handleScroll}
|
||||||
>
|
>
|
||||||
{isLoading ? (
|
{suggestions.map((suggestion) => (
|
||||||
<LoadingIndicator />
|
|
||||||
) : (
|
|
||||||
suggestions.map((suggestion) => (
|
|
||||||
<Card
|
<Card
|
||||||
key={suggestion.account_id}
|
key={suggestion.account_id}
|
||||||
id={suggestion.account_id}
|
id={suggestion.account_id}
|
||||||
sources={suggestion.sources}
|
sources={suggestion.sources}
|
||||||
/>
|
/>
|
||||||
))
|
))}
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{canScrollLeft && (
|
{canScrollLeft && (
|
||||||
|
|
|
@ -9,7 +9,6 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
import InfoIcon from '@/material-icons/400-24px/info.svg?react';
|
import InfoIcon from '@/material-icons/400-24px/info.svg?react';
|
||||||
import Column from 'mastodon/components/column';
|
import Column from 'mastodon/components/column';
|
||||||
import ColumnHeader from 'mastodon/components/column_header';
|
import ColumnHeader from 'mastodon/components/column_header';
|
||||||
import { isFeatureEnabled } from 'mastodon/utils/environment';
|
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' },
|
heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' },
|
||||||
|
@ -63,12 +62,6 @@ class KeyboardShortcuts extends ImmutablePureComponent {
|
||||||
<td><kbd>b</kbd></td>
|
<td><kbd>b</kbd></td>
|
||||||
<td><FormattedMessage id='keyboard_shortcuts.boost' defaultMessage='to boost' /></td>
|
<td><FormattedMessage id='keyboard_shortcuts.boost' defaultMessage='to boost' /></td>
|
||||||
</tr>
|
</tr>
|
||||||
{isFeatureEnabled('outgoing_quotes') && (
|
|
||||||
<tr>
|
|
||||||
<td><kbd>q</kbd></td>
|
|
||||||
<td><FormattedMessage id='keyboard_shortcuts.quote' defaultMessage='Quote post' /></td>
|
|
||||||
</tr>
|
|
||||||
)}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><kbd>enter</kbd>, <kbd>o</kbd></td>
|
<td><kbd>enter</kbd>, <kbd>o</kbd></td>
|
||||||
<td><FormattedMessage id='keyboard_shortcuts.enter' defaultMessage='to open status' /></td>
|
<td><FormattedMessage id='keyboard_shortcuts.enter' defaultMessage='to open status' /></td>
|
||||||
|
@ -90,17 +83,13 @@ class KeyboardShortcuts extends ImmutablePureComponent {
|
||||||
<td><FormattedMessage id='keyboard_shortcuts.toggle_sensitivity' defaultMessage='to show/hide media' /></td>
|
<td><FormattedMessage id='keyboard_shortcuts.toggle_sensitivity' defaultMessage='to show/hide media' /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><kbd>k</kbd></td>
|
<td><kbd>up</kbd>, <kbd>k</kbd></td>
|
||||||
<td><FormattedMessage id='keyboard_shortcuts.up' defaultMessage='to move up in the list' /></td>
|
<td><FormattedMessage id='keyboard_shortcuts.up' defaultMessage='to move up in the list' /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><kbd>j</kbd></td>
|
<td><kbd>down</kbd>, <kbd>j</kbd></td>
|
||||||
<td><FormattedMessage id='keyboard_shortcuts.down' defaultMessage='to move down in the list' /></td>
|
<td><FormattedMessage id='keyboard_shortcuts.down' defaultMessage='to move down in the list' /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td><kbd>l</kbd></td>
|
|
||||||
<td><FormattedMessage id='keyboard_shortcuts.load_more' defaultMessage='Focus "Load more" button' /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><kbd>1</kbd>-<kbd>9</kbd></td>
|
<td><kbd>1</kbd>-<kbd>9</kbd></td>
|
||||||
<td><FormattedMessage id='keyboard_shortcuts.column' defaultMessage='to focus a status in one of the columns' /></td>
|
<td><FormattedMessage id='keyboard_shortcuts.column' defaultMessage='to focus a status in one of the columns' /></td>
|
||||||
|
|
|
@ -38,7 +38,6 @@ const messages = defineMessages({
|
||||||
reblog: { id: 'notification.reblog', defaultMessage: '{name} boosted your post' },
|
reblog: { id: 'notification.reblog', defaultMessage: '{name} boosted your post' },
|
||||||
status: { id: 'notification.status', defaultMessage: '{name} just posted' },
|
status: { id: 'notification.status', defaultMessage: '{name} just posted' },
|
||||||
update: { id: 'notification.update', defaultMessage: '{name} edited a post' },
|
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' },
|
adminSignUp: { id: 'notification.admin.sign_up', defaultMessage: '{name} signed up' },
|
||||||
adminReport: { id: 'notification.admin.report', defaultMessage: '{name} reported {target}' },
|
adminReport: { id: 'notification.admin.report', defaultMessage: '{name} reported {target}' },
|
||||||
relationshipsSevered: { id: 'notification.relationships_severance_event', defaultMessage: 'Lost connections with {name}' },
|
relationshipsSevered: { id: 'notification.relationships_severance_event', defaultMessage: 'Lost connections with {name}' },
|
||||||
|
@ -58,6 +57,8 @@ class Notification extends ImmutablePureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
notification: ImmutablePropTypes.map.isRequired,
|
notification: ImmutablePropTypes.map.isRequired,
|
||||||
hidden: PropTypes.bool,
|
hidden: PropTypes.bool,
|
||||||
|
onMoveUp: PropTypes.func.isRequired,
|
||||||
|
onMoveDown: PropTypes.func.isRequired,
|
||||||
onMention: PropTypes.func.isRequired,
|
onMention: PropTypes.func.isRequired,
|
||||||
onFavourite: PropTypes.func.isRequired,
|
onFavourite: PropTypes.func.isRequired,
|
||||||
onReblog: PropTypes.func.isRequired,
|
onReblog: PropTypes.func.isRequired,
|
||||||
|
@ -72,6 +73,16 @@ class Notification extends ImmutablePureComponent {
|
||||||
...WithRouterPropTypes,
|
...WithRouterPropTypes,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
handleMoveUp = () => {
|
||||||
|
const { notification, onMoveUp } = this.props;
|
||||||
|
onMoveUp(notification.get('id'));
|
||||||
|
};
|
||||||
|
|
||||||
|
handleMoveDown = () => {
|
||||||
|
const { notification, onMoveDown } = this.props;
|
||||||
|
onMoveDown(notification.get('id'));
|
||||||
|
};
|
||||||
|
|
||||||
handleOpen = () => {
|
handleOpen = () => {
|
||||||
const { notification } = this.props;
|
const { notification } = this.props;
|
||||||
|
|
||||||
|
@ -117,6 +128,8 @@ class Notification extends ImmutablePureComponent {
|
||||||
mention: this.handleMention,
|
mention: this.handleMention,
|
||||||
open: this.handleOpen,
|
open: this.handleOpen,
|
||||||
openProfile: this.handleOpenProfile,
|
openProfile: this.handleOpenProfile,
|
||||||
|
moveUp: this.handleMoveUp,
|
||||||
|
moveDown: this.handleMoveDown,
|
||||||
toggleHidden: this.handleHotkeyToggleHidden,
|
toggleHidden: this.handleHotkeyToggleHidden,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -167,6 +180,8 @@ class Notification extends ImmutablePureComponent {
|
||||||
id={notification.get('status')}
|
id={notification.get('status')}
|
||||||
withDismiss
|
withDismiss
|
||||||
hidden={this.props.hidden}
|
hidden={this.props.hidden}
|
||||||
|
onMoveDown={this.handleMoveDown}
|
||||||
|
onMoveUp={this.handleMoveUp}
|
||||||
contextType='notifications'
|
contextType='notifications'
|
||||||
getScrollPosition={this.props.getScrollPosition}
|
getScrollPosition={this.props.getScrollPosition}
|
||||||
updateScrollBottom={this.props.updateScrollBottom}
|
updateScrollBottom={this.props.updateScrollBottom}
|
||||||
|
@ -337,41 +352,6 @@ 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) {
|
renderPoll (notification, account) {
|
||||||
const { intl, unread, status } = this.props;
|
const { intl, unread, status } = this.props;
|
||||||
const ownPoll = me === account.get('id');
|
const ownPoll = me === account.get('id');
|
||||||
|
@ -528,8 +508,6 @@ class Notification extends ImmutablePureComponent {
|
||||||
return this.renderStatus(notification, link);
|
return this.renderStatus(notification, link);
|
||||||
case 'update':
|
case 'update':
|
||||||
return this.renderUpdate(notification, link);
|
return this.renderUpdate(notification, link);
|
||||||
case 'quoted_update':
|
|
||||||
return this.renderQuotedUpdate(notification, link);
|
|
||||||
case 'poll':
|
case 'poll':
|
||||||
return this.renderPoll(notification, account);
|
return this.renderPoll(notification, account);
|
||||||
case 'severed_relationships':
|
case 'severed_relationships':
|
||||||
|
|
|
@ -31,6 +31,21 @@ const messages = defineMessages({
|
||||||
dismiss: { id: 'notification_requests.dismiss', defaultMessage: 'Dismiss' },
|
dismiss: { id: 'notification_requests.dismiss', defaultMessage: 'Dismiss' },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const selectChild = (ref, index, alignTop) => {
|
||||||
|
const container = ref.current.node;
|
||||||
|
const element = container.querySelector(`article:nth-of-type(${index + 1}) .focusable`);
|
||||||
|
|
||||||
|
if (element) {
|
||||||
|
if (alignTop && container.scrollTop > element.offsetTop) {
|
||||||
|
element.scrollIntoView(true);
|
||||||
|
} else if (!alignTop && container.scrollTop + container.clientHeight < element.offsetTop + element.offsetHeight) {
|
||||||
|
element.scrollIntoView(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
element.focus();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export const NotificationRequest = ({ multiColumn, params: { id } }) => {
|
export const NotificationRequest = ({ multiColumn, params: { id } }) => {
|
||||||
const columnRef = useRef();
|
const columnRef = useRef();
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
|
@ -59,6 +74,16 @@ export const NotificationRequest = ({ multiColumn, params: { id } }) => {
|
||||||
dispatch(acceptNotificationRequest({ id }));
|
dispatch(acceptNotificationRequest({ id }));
|
||||||
}, [dispatch, id]);
|
}, [dispatch, id]);
|
||||||
|
|
||||||
|
const handleMoveUp = useCallback(id => {
|
||||||
|
const elementIndex = notifications.findIndex(item => item !== null && item.get('id') === id) - 1;
|
||||||
|
selectChild(columnRef, elementIndex, true);
|
||||||
|
}, [columnRef, notifications]);
|
||||||
|
|
||||||
|
const handleMoveDown = useCallback(id => {
|
||||||
|
const elementIndex = notifications.findIndex(item => item !== null && item.get('id') === id) + 1;
|
||||||
|
selectChild(columnRef, elementIndex, false);
|
||||||
|
}, [columnRef, notifications]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
dispatch(fetchNotificationRequest({ id }));
|
dispatch(fetchNotificationRequest({ id }));
|
||||||
}, [dispatch, id]);
|
}, [dispatch, id]);
|
||||||
|
@ -121,6 +146,8 @@ export const NotificationRequest = ({ multiColumn, params: { id } }) => {
|
||||||
key={item.get('id')}
|
key={item.get('id')}
|
||||||
notification={item}
|
notification={item}
|
||||||
accountId={item.get('account')}
|
accountId={item.get('account')}
|
||||||
|
onMoveUp={handleMoveUp}
|
||||||
|
onMoveDown={handleMoveDown}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</ScrollableList>
|
</ScrollableList>
|
||||||
|
|
|
@ -16,7 +16,6 @@ import { NotificationMention } from './notification_mention';
|
||||||
import { NotificationModerationWarning } from './notification_moderation_warning';
|
import { NotificationModerationWarning } from './notification_moderation_warning';
|
||||||
import { NotificationPoll } from './notification_poll';
|
import { NotificationPoll } from './notification_poll';
|
||||||
import { NotificationQuote } from './notification_quote';
|
import { NotificationQuote } from './notification_quote';
|
||||||
import { NotificationQuotedUpdate } from './notification_quoted_update';
|
|
||||||
import { NotificationReblog } from './notification_reblog';
|
import { NotificationReblog } from './notification_reblog';
|
||||||
import { NotificationSeveredRelationships } from './notification_severed_relationships';
|
import { NotificationSeveredRelationships } from './notification_severed_relationships';
|
||||||
import { NotificationStatus } from './notification_status';
|
import { NotificationStatus } from './notification_status';
|
||||||
|
@ -25,7 +24,9 @@ import { NotificationUpdate } from './notification_update';
|
||||||
export const NotificationGroup: React.FC<{
|
export const NotificationGroup: React.FC<{
|
||||||
notificationGroupId: NotificationGroupModel['group_key'];
|
notificationGroupId: NotificationGroupModel['group_key'];
|
||||||
unread: boolean;
|
unread: boolean;
|
||||||
}> = ({ notificationGroupId, unread }) => {
|
onMoveUp: (groupId: string) => void;
|
||||||
|
onMoveDown: (groupId: string) => void;
|
||||||
|
}> = ({ notificationGroupId, unread, onMoveUp, onMoveDown }) => {
|
||||||
const notificationGroup = useAppSelector((state) =>
|
const notificationGroup = useAppSelector((state) =>
|
||||||
state.notificationGroups.groups.find(
|
state.notificationGroups.groups.find(
|
||||||
(item) => item.type !== 'gap' && item.group_key === notificationGroupId,
|
(item) => item.type !== 'gap' && item.group_key === notificationGroupId,
|
||||||
|
@ -41,6 +42,14 @@ export const NotificationGroup: React.FC<{
|
||||||
|
|
||||||
const handlers = useMemo(
|
const handlers = useMemo(
|
||||||
() => ({
|
() => ({
|
||||||
|
moveUp: () => {
|
||||||
|
onMoveUp(notificationGroupId);
|
||||||
|
},
|
||||||
|
|
||||||
|
moveDown: () => {
|
||||||
|
onMoveDown(notificationGroupId);
|
||||||
|
},
|
||||||
|
|
||||||
openProfile: () => {
|
openProfile: () => {
|
||||||
if (accountId) dispatch(navigateToProfile(accountId));
|
if (accountId) dispatch(navigateToProfile(accountId));
|
||||||
},
|
},
|
||||||
|
@ -49,7 +58,7 @@ export const NotificationGroup: React.FC<{
|
||||||
if (accountId) dispatch(mentionComposeById(accountId));
|
if (accountId) dispatch(mentionComposeById(accountId));
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
[dispatch, accountId],
|
[dispatch, notificationGroupId, accountId, onMoveUp, onMoveDown],
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!notificationGroup || notificationGroup.type === 'gap') return null;
|
if (!notificationGroup || notificationGroup.type === 'gap') return null;
|
||||||
|
@ -116,14 +125,6 @@ export const NotificationGroup: React.FC<{
|
||||||
<NotificationUpdate unread={unread} notification={notificationGroup} />
|
<NotificationUpdate unread={unread} notification={notificationGroup} />
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 'quoted_update':
|
|
||||||
content = (
|
|
||||||
<NotificationQuotedUpdate
|
|
||||||
unread={unread}
|
|
||||||
notification={notificationGroup}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
case 'admin.sign_up':
|
case 'admin.sign_up':
|
||||||
content = (
|
content = (
|
||||||
<NotificationAdminSignUp
|
<NotificationAdminSignUp
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
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}
|
|
||||||
/>
|
|
||||||
);
|
|
|
@ -99,6 +99,29 @@ export const Notifications: React.FC<{
|
||||||
|
|
||||||
const columnRef = useRef<ColumnRef>(null);
|
const columnRef = useRef<ColumnRef>(null);
|
||||||
|
|
||||||
|
const selectChild = useCallback((index: number, alignTop: boolean) => {
|
||||||
|
const container = columnRef.current?.node as HTMLElement | undefined;
|
||||||
|
|
||||||
|
if (!container) return;
|
||||||
|
|
||||||
|
const element = container.querySelector<HTMLElement>(
|
||||||
|
`article:nth-of-type(${index + 1}) .focusable`,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (element) {
|
||||||
|
if (alignTop && container.scrollTop > element.offsetTop) {
|
||||||
|
element.scrollIntoView(true);
|
||||||
|
} else if (
|
||||||
|
!alignTop &&
|
||||||
|
container.scrollTop + container.clientHeight <
|
||||||
|
element.offsetTop + element.offsetHeight
|
||||||
|
) {
|
||||||
|
element.scrollIntoView(false);
|
||||||
|
}
|
||||||
|
element.focus();
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
// Keep track of mounted components for unread notification handling
|
// Keep track of mounted components for unread notification handling
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
void dispatch(mountNotifications());
|
void dispatch(mountNotifications());
|
||||||
|
@ -164,6 +187,28 @@ export const Notifications: React.FC<{
|
||||||
columnRef.current?.scrollTop();
|
columnRef.current?.scrollTop();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
const handleMoveUp = useCallback(
|
||||||
|
(id: string) => {
|
||||||
|
const elementIndex =
|
||||||
|
notifications.findIndex(
|
||||||
|
(item) => item.type !== 'gap' && item.group_key === id,
|
||||||
|
) - 1;
|
||||||
|
selectChild(elementIndex, true);
|
||||||
|
},
|
||||||
|
[notifications, selectChild],
|
||||||
|
);
|
||||||
|
|
||||||
|
const handleMoveDown = useCallback(
|
||||||
|
(id: string) => {
|
||||||
|
const elementIndex =
|
||||||
|
notifications.findIndex(
|
||||||
|
(item) => item.type !== 'gap' && item.group_key === id,
|
||||||
|
) + 1;
|
||||||
|
selectChild(elementIndex, false);
|
||||||
|
},
|
||||||
|
[notifications, selectChild],
|
||||||
|
);
|
||||||
|
|
||||||
const handleMarkAsRead = useCallback(() => {
|
const handleMarkAsRead = useCallback(() => {
|
||||||
dispatch(markNotificationsAsRead());
|
dispatch(markNotificationsAsRead());
|
||||||
void dispatch(submitMarkers({ immediate: true }));
|
void dispatch(submitMarkers({ immediate: true }));
|
||||||
|
@ -196,6 +241,8 @@ export const Notifications: React.FC<{
|
||||||
<NotificationGroup
|
<NotificationGroup
|
||||||
key={item.group_key}
|
key={item.group_key}
|
||||||
notificationGroupId={item.group_key}
|
notificationGroupId={item.group_key}
|
||||||
|
onMoveUp={handleMoveUp}
|
||||||
|
onMoveDown={handleMoveDown}
|
||||||
unread={
|
unread={
|
||||||
lastReadId !== '0' &&
|
lastReadId !== '0' &&
|
||||||
!!item.page_max_id &&
|
!!item.page_max_id &&
|
||||||
|
@ -204,7 +251,15 @@ export const Notifications: React.FC<{
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}, [notifications, isLoading, hasMore, lastReadId, handleLoadGap]);
|
}, [
|
||||||
|
notifications,
|
||||||
|
isLoading,
|
||||||
|
hasMore,
|
||||||
|
lastReadId,
|
||||||
|
handleLoadGap,
|
||||||
|
handleMoveUp,
|
||||||
|
handleMoveDown,
|
||||||
|
]);
|
||||||
|
|
||||||
const prepend = (
|
const prepend = (
|
||||||
<>
|
<>
|
||||||
|
|
|
@ -233,10 +233,7 @@ export const Footer: React.FC<{
|
||||||
icon='retweet'
|
icon='retweet'
|
||||||
iconComponent={reblogIconComponent}
|
iconComponent={reblogIconComponent}
|
||||||
onClick={handleReblogClick}
|
onClick={handleReblogClick}
|
||||||
counter={
|
counter={status.get('reblogs_count') as number}
|
||||||
(status.get('reblogs_count') as number) +
|
|
||||||
(status.get('quotes_count') as number)
|
|
||||||
}
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<IconButton
|
<IconButton
|
||||||
|
|
|
@ -1,113 +0,0 @@
|
||||||
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();
|
const dispatchRenderSignal = useRenderSignal();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
dispatch(fetchStatus(id, { alsoFetchContext: false }));
|
dispatch(fetchStatus(id, false, false));
|
||||||
}, [dispatch, id]);
|
}, [dispatch, id]);
|
||||||
|
|
||||||
const handleToggleHidden = useCallback(() => {
|
const handleToggleHidden = useCallback(() => {
|
||||||
|
|
|
@ -3,16 +3,23 @@ import { PureComponent } from 'react';
|
||||||
|
|
||||||
import { defineMessages, injectIntl } from 'react-intl';
|
import { defineMessages, injectIntl } from 'react-intl';
|
||||||
|
|
||||||
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
import BookmarkIcon from '@/material-icons/400-24px/bookmark-fill.svg?react';
|
import BookmarkIcon from '@/material-icons/400-24px/bookmark-fill.svg?react';
|
||||||
import BookmarkBorderIcon from '@/material-icons/400-24px/bookmark.svg?react';
|
import BookmarkBorderIcon from '@/material-icons/400-24px/bookmark.svg?react';
|
||||||
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
|
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
|
||||||
|
import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react';
|
||||||
import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
|
import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
|
||||||
import ReplyAllIcon from '@/material-icons/400-24px/reply_all.svg?react';
|
import ReplyAllIcon from '@/material-icons/400-24px/reply_all.svg?react';
|
||||||
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
|
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
|
||||||
import StarBorderIcon from '@/material-icons/400-24px/star.svg?react';
|
import StarBorderIcon from '@/material-icons/400-24px/star.svg?react';
|
||||||
|
import RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react';
|
||||||
|
import RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react';
|
||||||
|
import RepeatPrivateIcon from '@/svg-icons/repeat_private.svg?react';
|
||||||
|
import RepeatPrivateActiveIcon from '@/svg-icons/repeat_private_active.svg?react';
|
||||||
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
||||||
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
|
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
|
||||||
|
|
||||||
|
@ -20,7 +27,6 @@ import { IconButton } from '../../../components/icon_button';
|
||||||
import { Dropdown } from 'mastodon/components/dropdown_menu';
|
import { Dropdown } from 'mastodon/components/dropdown_menu';
|
||||||
import { me } from '../../../initial_state';
|
import { me } from '../../../initial_state';
|
||||||
import { isFeatureEnabled } from '@/mastodon/utils/environment';
|
import { isFeatureEnabled } from '@/mastodon/utils/environment';
|
||||||
import { ReblogButton } from '@/mastodon/components/status/reblog_button';
|
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
delete: { id: 'status.delete', defaultMessage: 'Delete' },
|
delete: { id: 'status.delete', defaultMessage: 'Delete' },
|
||||||
|
@ -29,6 +35,10 @@ const messages = defineMessages({
|
||||||
direct: { id: 'status.direct', defaultMessage: 'Privately mention @{name}' },
|
direct: { id: 'status.direct', defaultMessage: 'Privately mention @{name}' },
|
||||||
mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' },
|
mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' },
|
||||||
reply: { id: 'status.reply', defaultMessage: 'Reply' },
|
reply: { id: 'status.reply', defaultMessage: 'Reply' },
|
||||||
|
reblog: { id: 'status.reblog', defaultMessage: 'Boost' },
|
||||||
|
reblog_private: { id: 'status.reblog_private', defaultMessage: 'Boost with original visibility' },
|
||||||
|
cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
|
||||||
|
cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
|
||||||
favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
|
favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
|
||||||
removeFavourite: { id: 'status.remove_favourite', defaultMessage: 'Remove from favorites' },
|
removeFavourite: { id: 'status.remove_favourite', defaultMessage: 'Remove from favorites' },
|
||||||
bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },
|
bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },
|
||||||
|
@ -303,15 +313,31 @@ class ActionBar extends PureComponent {
|
||||||
replyIconComponent = ReplyAllIcon;
|
replyIconComponent = ReplyAllIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const reblogPrivate = status.getIn(['account', 'id']) === me && status.get('visibility') === 'private';
|
||||||
|
|
||||||
|
let reblogTitle, reblogIconComponent;
|
||||||
|
|
||||||
|
if (status.get('reblogged')) {
|
||||||
|
reblogTitle = intl.formatMessage(messages.cancel_reblog_private);
|
||||||
|
reblogIconComponent = publicStatus ? RepeatActiveIcon : RepeatPrivateActiveIcon;
|
||||||
|
} else if (publicStatus) {
|
||||||
|
reblogTitle = intl.formatMessage(messages.reblog);
|
||||||
|
reblogIconComponent = RepeatIcon;
|
||||||
|
} else if (reblogPrivate) {
|
||||||
|
reblogTitle = intl.formatMessage(messages.reblog_private);
|
||||||
|
reblogIconComponent = RepeatPrivateIcon;
|
||||||
|
} else {
|
||||||
|
reblogTitle = intl.formatMessage(messages.cannot_reblog);
|
||||||
|
reblogIconComponent = RepeatDisabledIcon;
|
||||||
|
}
|
||||||
|
|
||||||
const bookmarkTitle = intl.formatMessage(status.get('bookmarked') ? messages.removeBookmark : messages.bookmark);
|
const bookmarkTitle = intl.formatMessage(status.get('bookmarked') ? messages.removeBookmark : messages.bookmark);
|
||||||
const favouriteTitle = intl.formatMessage(status.get('favourited') ? messages.removeFavourite : messages.favourite);
|
const favouriteTitle = intl.formatMessage(status.get('favourited') ? messages.removeFavourite : messages.favourite);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='detailed-status__action-bar'>
|
<div className='detailed-status__action-bar'>
|
||||||
<div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} iconComponent={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? ReplyIcon : replyIconComponent} onClick={this.handleReplyClick} /></div>
|
<div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} iconComponent={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? ReplyIcon : replyIconComponent} onClick={this.handleReplyClick} /></div>
|
||||||
<div className='detailed-status__button'>
|
<div className='detailed-status__button'><IconButton className={classNames({ reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} /></div>
|
||||||
<ReblogButton status={status} />
|
|
||||||
</div>
|
|
||||||
<div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} /></div>
|
<div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} /></div>
|
||||||
<div className='detailed-status__button'><IconButton className='bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={bookmarkTitle} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} /></div>
|
<div className='detailed-status__button'><IconButton className='bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={bookmarkTitle} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} /></div>
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@ import { VisibilityIcon } from 'mastodon/components/visibility_icon';
|
||||||
import { Audio } from 'mastodon/features/audio';
|
import { Audio } from 'mastodon/features/audio';
|
||||||
import scheduleIdleTask from 'mastodon/features/ui/util/schedule_idle_task';
|
import scheduleIdleTask from 'mastodon/features/ui/util/schedule_idle_task';
|
||||||
import { Video } from 'mastodon/features/video';
|
import { Video } from 'mastodon/features/video';
|
||||||
import { me } from 'mastodon/initial_state';
|
|
||||||
|
|
||||||
import Card from './card';
|
import Card from './card';
|
||||||
|
|
||||||
|
@ -128,7 +127,6 @@ export const DetailedStatus: React.FC<{
|
||||||
let media;
|
let media;
|
||||||
let applicationLink;
|
let applicationLink;
|
||||||
let reblogLink;
|
let reblogLink;
|
||||||
let quotesLink;
|
|
||||||
let attachmentAspectRatio;
|
let attachmentAspectRatio;
|
||||||
|
|
||||||
if (properStatus.get('media_attachments').getIn([0, 'type']) === 'video') {
|
if (properStatus.get('media_attachments').getIn([0, 'type']) === 'video') {
|
||||||
|
@ -281,39 +279,6 @@ 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 = (
|
const favouriteLink = (
|
||||||
<Link
|
<Link
|
||||||
to={`/@${status.getIn(['account', 'acct'])}/${status.get('id')}/favourites`}
|
to={`/@${status.getIn(['account', 'acct'])}/${status.get('id')}/favourites`}
|
||||||
|
@ -416,10 +381,7 @@ export const DetailedStatus: React.FC<{
|
||||||
{hashtagBar}
|
{hashtagBar}
|
||||||
|
|
||||||
{status.get('quote') && (
|
{status.get('quote') && (
|
||||||
<QuotedStatus
|
<QuotedStatus quote={status.get('quote')} />
|
||||||
quote={status.get('quote')}
|
|
||||||
parentQuotePostId={status.get('id')}
|
|
||||||
/>
|
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
@ -458,8 +420,6 @@ export const DetailedStatus: React.FC<{
|
||||||
<div className='detailed-status__meta__line'>
|
<div className='detailed-status__meta__line'>
|
||||||
{reblogLink}
|
{reblogLink}
|
||||||
{reblogLink && <>·</>}
|
{reblogLink && <>·</>}
|
||||||
{quotesLink}
|
|
||||||
{quotesLink && <>·</>}
|
|
||||||
{favouriteLink}
|
{favouriteLink}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
import { defineMessages, injectIntl } from 'react-intl';
|
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { Helmet } from 'react-helmet';
|
import { Helmet } from 'react-helmet';
|
||||||
|
@ -15,6 +15,7 @@ import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?reac
|
||||||
import { Hotkeys } from 'mastodon/components/hotkeys';
|
import { Hotkeys } from 'mastodon/components/hotkeys';
|
||||||
import { Icon } from 'mastodon/components/icon';
|
import { Icon } from 'mastodon/components/icon';
|
||||||
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
|
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
|
||||||
|
import { TimelineHint } from 'mastodon/components/timeline_hint';
|
||||||
import ScrollContainer from 'mastodon/containers/scroll_container';
|
import ScrollContainer from 'mastodon/containers/scroll_container';
|
||||||
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
|
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
|
||||||
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
||||||
|
@ -56,7 +57,6 @@ import {
|
||||||
translateStatus,
|
translateStatus,
|
||||||
undoStatusTranslation,
|
undoStatusTranslation,
|
||||||
} from '../../actions/statuses';
|
} from '../../actions/statuses';
|
||||||
import { setStatusQuotePolicy } from '../../actions/statuses_typed';
|
|
||||||
import ColumnHeader from '../../components/column_header';
|
import ColumnHeader from '../../components/column_header';
|
||||||
import { textForScreenReader, defaultMediaVisibility } from '../../components/status';
|
import { textForScreenReader, defaultMediaVisibility } from '../../components/status';
|
||||||
import { StatusQuoteManager } from '../../components/status_quoted';
|
import { StatusQuoteManager } from '../../components/status_quoted';
|
||||||
|
@ -69,7 +69,6 @@ import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from
|
||||||
import ActionBar from './components/action_bar';
|
import ActionBar from './components/action_bar';
|
||||||
import { DetailedStatus } from './components/detailed_status';
|
import { DetailedStatus } from './components/detailed_status';
|
||||||
import { RefreshController } from './components/refresh_controller';
|
import { RefreshController } from './components/refresh_controller';
|
||||||
import { quoteComposeById } from '@/mastodon/actions/compose_typed';
|
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' },
|
revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' },
|
||||||
|
@ -251,31 +250,12 @@ class Status extends ImmutablePureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
handleDeleteClick = (status, withRedraft = false) => {
|
handleDeleteClick = (status, withRedraft = false) => {
|
||||||
const { dispatch, history } = this.props;
|
const { dispatch } = this.props;
|
||||||
|
|
||||||
const handleDeleteSuccess = () => {
|
|
||||||
history.push('/');
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!deleteModal) {
|
if (!deleteModal) {
|
||||||
dispatch(deleteStatus(status.get('id'), withRedraft))
|
dispatch(deleteStatus(status.get('id'), withRedraft));
|
||||||
.then(() => {
|
|
||||||
if (!withRedraft) {
|
|
||||||
handleDeleteSuccess();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
// Error handling - could show error message
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
dispatch(openModal({
|
dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } }));
|
||||||
modalType: 'CONFIRM_DELETE_STATUS',
|
|
||||||
modalProps: {
|
|
||||||
statusId: status.get('id'),
|
|
||||||
withRedraft,
|
|
||||||
onDeleteSuccess: handleDeleteSuccess
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -286,14 +266,8 @@ class Status extends ImmutablePureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
handleQuotePolicyChange = (status) => {
|
handleQuotePolicyChange = (status) => {
|
||||||
const statusId = status.get('id');
|
|
||||||
const { dispatch } = this.props;
|
const { dispatch } = this.props;
|
||||||
const handleChange = (_, quotePolicy) => {
|
dispatch(openModal({ modalType: 'COMPOSE_PRIVACY', modalProps: { statusId: status.get('id') } }));
|
||||||
dispatch(
|
|
||||||
setStatusQuotePolicy({ policy: quotePolicy, statusId }),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
dispatch(openModal({ modalType: 'COMPOSE_PRIVACY', modalProps: { statusId, onChange: handleChange } }));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
handleEditClick = (status) => {
|
handleEditClick = (status) => {
|
||||||
|
@ -416,6 +390,15 @@ class Status extends ImmutablePureComponent {
|
||||||
this.props.dispatch(unblockDomain(domain));
|
this.props.dispatch(unblockDomain(domain));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
handleHotkeyMoveUp = () => {
|
||||||
|
this.handleMoveUp(this.props.status.get('id'));
|
||||||
|
};
|
||||||
|
|
||||||
|
handleHotkeyMoveDown = () => {
|
||||||
|
this.handleMoveDown(this.props.status.get('id'));
|
||||||
|
};
|
||||||
|
|
||||||
handleHotkeyReply = e => {
|
handleHotkeyReply = e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.handleReplyClick(this.props.status);
|
this.handleReplyClick(this.props.status);
|
||||||
|
@ -429,10 +412,6 @@ class Status extends ImmutablePureComponent {
|
||||||
this.handleReblogClick(this.props.status);
|
this.handleReblogClick(this.props.status);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleHotkeyQuote = () => {
|
|
||||||
this.props.dispatch(quoteComposeById(this.props.status.get('id')));
|
|
||||||
};
|
|
||||||
|
|
||||||
handleHotkeyMention = e => {
|
handleHotkeyMention = e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.handleMentionClick(this.props.status.get('account'));
|
this.handleMentionClick(this.props.status.get('account'));
|
||||||
|
@ -454,6 +433,54 @@ class Status extends ImmutablePureComponent {
|
||||||
this.handleTranslate(this.props.status);
|
this.handleTranslate(this.props.status);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
handleMoveUp = id => {
|
||||||
|
const { status, ancestorsIds, descendantsIds } = this.props;
|
||||||
|
|
||||||
|
if (id === status.get('id')) {
|
||||||
|
this._selectChild(ancestorsIds.length - 1, true);
|
||||||
|
} else {
|
||||||
|
let index = ancestorsIds.indexOf(id);
|
||||||
|
|
||||||
|
if (index === -1) {
|
||||||
|
index = descendantsIds.indexOf(id);
|
||||||
|
this._selectChild(ancestorsIds.length + index, true);
|
||||||
|
} else {
|
||||||
|
this._selectChild(index - 1, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
handleMoveDown = id => {
|
||||||
|
const { status, ancestorsIds, descendantsIds } = this.props;
|
||||||
|
|
||||||
|
if (id === status.get('id')) {
|
||||||
|
this._selectChild(ancestorsIds.length + 1, false);
|
||||||
|
} else {
|
||||||
|
let index = ancestorsIds.indexOf(id);
|
||||||
|
|
||||||
|
if (index === -1) {
|
||||||
|
index = descendantsIds.indexOf(id);
|
||||||
|
this._selectChild(ancestorsIds.length + index + 2, false);
|
||||||
|
} else {
|
||||||
|
this._selectChild(index + 1, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
_selectChild (index, align_top) {
|
||||||
|
const container = this.node;
|
||||||
|
const element = container.querySelectorAll('.focusable')[index];
|
||||||
|
|
||||||
|
if (element) {
|
||||||
|
if (align_top && container.scrollTop > element.offsetTop) {
|
||||||
|
element.scrollIntoView(true);
|
||||||
|
} else if (!align_top && container.scrollTop + container.clientHeight < element.offsetTop + element.offsetHeight) {
|
||||||
|
element.scrollIntoView(false);
|
||||||
|
}
|
||||||
|
element.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
renderChildren (list, ancestors) {
|
renderChildren (list, ancestors) {
|
||||||
const { params: { statusId } } = this.props;
|
const { params: { statusId } } = this.props;
|
||||||
|
|
||||||
|
@ -461,6 +488,8 @@ class Status extends ImmutablePureComponent {
|
||||||
<StatusQuoteManager
|
<StatusQuoteManager
|
||||||
key={id}
|
key={id}
|
||||||
id={id}
|
id={id}
|
||||||
|
onMoveUp={this.handleMoveUp}
|
||||||
|
onMoveDown={this.handleMoveDown}
|
||||||
contextType='thread'
|
contextType='thread'
|
||||||
previousId={i > 0 ? list[i - 1] : undefined}
|
previousId={i > 0 ? list[i - 1] : undefined}
|
||||||
nextId={list[i + 1] || (ancestors && statusId)}
|
nextId={list[i + 1] || (ancestors && statusId)}
|
||||||
|
@ -567,10 +596,11 @@ class Status extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
const handlers = {
|
const handlers = {
|
||||||
|
moveUp: this.handleHotkeyMoveUp,
|
||||||
|
moveDown: this.handleHotkeyMoveDown,
|
||||||
reply: this.handleHotkeyReply,
|
reply: this.handleHotkeyReply,
|
||||||
favourite: this.handleHotkeyFavourite,
|
favourite: this.handleHotkeyFavourite,
|
||||||
boost: this.handleHotkeyBoost,
|
boost: this.handleHotkeyBoost,
|
||||||
quote: this.handleHotkeyQuote,
|
|
||||||
mention: this.handleHotkeyMention,
|
mention: this.handleHotkeyMention,
|
||||||
openProfile: this.handleHotkeyOpenProfile,
|
openProfile: this.handleHotkeyOpenProfile,
|
||||||
toggleHidden: this.handleHotkeyToggleHidden,
|
toggleHidden: this.handleHotkeyToggleHidden,
|
||||||
|
@ -590,7 +620,7 @@ class Status extends ImmutablePureComponent {
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ScrollContainer scrollKey='thread' shouldUpdateScroll={this.shouldUpdateScroll}>
|
<ScrollContainer scrollKey='thread' shouldUpdateScroll={this.shouldUpdateScroll}>
|
||||||
<div className={classNames('scrollable item-list', { fullscreen })} ref={this.setContainerRef}>
|
<div className={classNames('scrollable', { fullscreen })} ref={this.setContainerRef}>
|
||||||
{ancestors}
|
{ancestors}
|
||||||
|
|
||||||
<Hotkeys handlers={handlers}>
|
<Hotkeys handlers={handlers}>
|
||||||
|
|
|
@ -40,23 +40,14 @@ export const ConfirmDeleteStatusModal: React.FC<
|
||||||
{
|
{
|
||||||
statusId: string;
|
statusId: string;
|
||||||
withRedraft: boolean;
|
withRedraft: boolean;
|
||||||
onDeleteSuccess?: () => void;
|
|
||||||
} & BaseConfirmationModalProps
|
} & BaseConfirmationModalProps
|
||||||
> = ({ statusId, withRedraft, onClose, onDeleteSuccess }) => {
|
> = ({ statusId, withRedraft, onClose }) => {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const dispatch = useAppDispatch();
|
const dispatch = useAppDispatch();
|
||||||
|
|
||||||
const onConfirm = useCallback(() => {
|
const onConfirm = useCallback(() => {
|
||||||
void dispatch(deleteStatus(statusId, withRedraft))
|
dispatch(deleteStatus(statusId, withRedraft));
|
||||||
.then(() => {
|
}, [dispatch, statusId, withRedraft]);
|
||||||
onDeleteSuccess?.();
|
|
||||||
onClose();
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
// Error handling - still close modal
|
|
||||||
onClose();
|
|
||||||
});
|
|
||||||
}, [dispatch, statusId, withRedraft, onDeleteSuccess, onClose]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ConfirmationModal
|
<ConfirmationModal
|
||||||
|
|
|
@ -38,7 +38,7 @@ class FilterModal extends ImmutablePureComponent {
|
||||||
|
|
||||||
handleSuccess = () => {
|
handleSuccess = () => {
|
||||||
const { dispatch, statusId } = this.props;
|
const { dispatch, statusId } = this.props;
|
||||||
dispatch(fetchStatus(statusId, {forceFetch: true}));
|
dispatch(fetchStatus(statusId, true));
|
||||||
this.setState({ isSubmitting: false, isSubmitted: true, step: 'submitted' });
|
this.setState({ isSubmitting: false, isSubmitted: true, step: 'submitted' });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
import { forwardRef, useCallback, useId, useMemo, useState } from 'react';
|
import { forwardRef, useCallback, useId, useMemo } from 'react';
|
||||||
import type { FC } from 'react';
|
import type { FC } from 'react';
|
||||||
|
|
||||||
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
|
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { changeComposeVisibility } from '@/mastodon/actions/compose';
|
||||||
|
import { setStatusQuotePolicy } from '@/mastodon/actions/statuses_typed';
|
||||||
import type { ApiQuotePolicy } from '@/mastodon/api_types/quotes';
|
import type { ApiQuotePolicy } from '@/mastodon/api_types/quotes';
|
||||||
import { isQuotePolicy } from '@/mastodon/api_types/quotes';
|
import { isQuotePolicy } from '@/mastodon/api_types/quotes';
|
||||||
import { isStatusVisibility } from '@/mastodon/api_types/statuses';
|
|
||||||
import type { StatusVisibility } from '@/mastodon/api_types/statuses';
|
import type { StatusVisibility } from '@/mastodon/api_types/statuses';
|
||||||
import { Button } from '@/mastodon/components/button';
|
|
||||||
import { Dropdown } from '@/mastodon/components/dropdown';
|
import { Dropdown } from '@/mastodon/components/dropdown';
|
||||||
import type { SelectItem } from '@/mastodon/components/dropdown_selector';
|
import type { SelectItem } from '@/mastodon/components/dropdown_selector';
|
||||||
import { IconButton } from '@/mastodon/components/icon_button';
|
import { IconButton } from '@/mastodon/components/icon_button';
|
||||||
import { messages as privacyMessages } from '@/mastodon/features/compose/components/privacy_dropdown';
|
import { messages as privacyMessages } from '@/mastodon/features/compose/components/privacy_dropdown';
|
||||||
import { createAppSelector, useAppSelector } from '@/mastodon/store';
|
import {
|
||||||
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
|
createAppSelector,
|
||||||
|
useAppDispatch,
|
||||||
|
useAppSelector,
|
||||||
|
} from '@/mastodon/store';
|
||||||
import CloseIcon from '@/material-icons/400-24px/close.svg?react';
|
import CloseIcon from '@/material-icons/400-24px/close.svg?react';
|
||||||
import LockIcon from '@/material-icons/400-24px/lock.svg?react';
|
|
||||||
import PublicIcon from '@/material-icons/400-24px/public.svg?react';
|
|
||||||
import QuietTimeIcon from '@/material-icons/400-24px/quiet_time.svg?react';
|
|
||||||
|
|
||||||
import type { BaseConfirmationModalProps } from './confirmation_modals/confirmation_modal';
|
import type { BaseConfirmationModalProps } from './confirmation_modals/confirmation_modal';
|
||||||
|
|
||||||
|
@ -39,30 +39,17 @@ const messages = defineMessages({
|
||||||
},
|
},
|
||||||
quoteNobody: {
|
quoteNobody: {
|
||||||
id: 'visibility_modal.quote_nobody',
|
id: 'visibility_modal.quote_nobody',
|
||||||
defaultMessage: 'Just me',
|
defaultMessage: 'No one',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export type VisibilityModalCallback = (
|
|
||||||
visibility: StatusVisibility,
|
|
||||||
quotePolicy: ApiQuotePolicy,
|
|
||||||
) => void;
|
|
||||||
|
|
||||||
interface VisibilityModalProps extends BaseConfirmationModalProps {
|
interface VisibilityModalProps extends BaseConfirmationModalProps {
|
||||||
statusId?: string;
|
statusId: string;
|
||||||
onChange: VisibilityModalCallback;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectStatusPolicy = createAppSelector(
|
const selectStatusPolicy = createAppSelector(
|
||||||
[
|
[(state) => state.statuses, (_state, statusId: string) => statusId],
|
||||||
(state) => state.statuses,
|
(statuses, statusId) => {
|
||||||
(_state, statusId?: string) => statusId,
|
|
||||||
(state) => state.compose.get('quote_policy') as ApiQuotePolicy,
|
|
||||||
],
|
|
||||||
(statuses, statusId, composeQuotePolicy) => {
|
|
||||||
if (!statusId) {
|
|
||||||
return composeQuotePolicy;
|
|
||||||
}
|
|
||||||
const status = statuses.get(statusId);
|
const status = statuses.get(statusId);
|
||||||
if (!status) {
|
if (!status) {
|
||||||
return 'public';
|
return 'public';
|
||||||
|
@ -91,25 +78,23 @@ const selectStatusPolicy = createAppSelector(
|
||||||
|
|
||||||
export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
({ onClose, onChange, statusId }, _ref) => {
|
({ onClose, statusId }, ref) => {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const currentVisibility = useAppSelector((state) =>
|
const currentVisibility = useAppSelector(
|
||||||
statusId
|
(state) =>
|
||||||
? ((state.statuses.getIn([statusId, 'visibility'], 'public') as
|
(state.statuses.getIn([statusId, 'visibility'], 'public') as
|
||||||
| StatusVisibility
|
| StatusVisibility
|
||||||
| undefined) ?? 'public')
|
| undefined) ?? 'public',
|
||||||
: (state.compose.get('privacy') as StatusVisibility),
|
|
||||||
);
|
);
|
||||||
const currentQuotePolicy = useAppSelector((state) =>
|
const currentQuotePolicy = useAppSelector((state) =>
|
||||||
selectStatusPolicy(state, statusId),
|
selectStatusPolicy(state, statusId),
|
||||||
);
|
);
|
||||||
|
|
||||||
const [visibility, setVisibility] = useState(currentVisibility);
|
|
||||||
const [quotePolicy, setQuotePolicy] = useState(currentQuotePolicy);
|
|
||||||
|
|
||||||
const disableVisibility = !!statusId;
|
|
||||||
const disableQuotePolicy =
|
const disableQuotePolicy =
|
||||||
visibility === 'private' || visibility === 'direct';
|
currentVisibility === 'private' || currentVisibility === 'direct';
|
||||||
|
const isSaving = useAppSelector(
|
||||||
|
(state) =>
|
||||||
|
state.statuses.getIn([statusId, 'isSavingQuotePolicy']) === true,
|
||||||
|
);
|
||||||
|
|
||||||
const visibilityItems = useMemo<SelectItem<StatusVisibility>[]>(
|
const visibilityItems = useMemo<SelectItem<StatusVisibility>[]>(
|
||||||
() => [
|
() => [
|
||||||
|
@ -117,30 +102,21 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||||
value: 'public',
|
value: 'public',
|
||||||
text: intl.formatMessage(privacyMessages.public_short),
|
text: intl.formatMessage(privacyMessages.public_short),
|
||||||
meta: intl.formatMessage(privacyMessages.public_long),
|
meta: intl.formatMessage(privacyMessages.public_long),
|
||||||
icon: 'globe',
|
|
||||||
iconComponent: PublicIcon,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'unlisted',
|
value: 'unlisted',
|
||||||
text: intl.formatMessage(privacyMessages.unlisted_short),
|
text: intl.formatMessage(privacyMessages.unlisted_short),
|
||||||
meta: intl.formatMessage(privacyMessages.unlisted_long),
|
meta: intl.formatMessage(privacyMessages.unlisted_long),
|
||||||
extra: intl.formatMessage(privacyMessages.unlisted_extra),
|
|
||||||
icon: 'unlock',
|
|
||||||
iconComponent: QuietTimeIcon,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'private',
|
value: 'private',
|
||||||
text: intl.formatMessage(privacyMessages.private_short),
|
text: intl.formatMessage(privacyMessages.private_short),
|
||||||
meta: intl.formatMessage(privacyMessages.private_long),
|
meta: intl.formatMessage(privacyMessages.private_long),
|
||||||
icon: 'lock',
|
|
||||||
iconComponent: LockIcon,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'direct',
|
value: 'direct',
|
||||||
text: intl.formatMessage(privacyMessages.direct_short),
|
text: intl.formatMessage(privacyMessages.direct_short),
|
||||||
meta: intl.formatMessage(privacyMessages.direct_long),
|
meta: intl.formatMessage(privacyMessages.direct_long),
|
||||||
icon: 'at',
|
|
||||||
iconComponent: AlternateEmailIcon,
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
[intl],
|
[intl],
|
||||||
|
@ -157,20 +133,25 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||||
[intl],
|
[intl],
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleVisibilityChange = useCallback((value: string) => {
|
const dispatch = useAppDispatch();
|
||||||
if (isStatusVisibility(value)) {
|
const handleVisibilityChange = useCallback(
|
||||||
setVisibility(value);
|
(value: string) => {
|
||||||
|
// Published statuses cannot change visibility.
|
||||||
|
if (statusId) {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}, []);
|
dispatch(changeComposeVisibility(value));
|
||||||
const handleQuotePolicyChange = useCallback((value: string) => {
|
},
|
||||||
if (isQuotePolicy(value)) {
|
[dispatch, statusId],
|
||||||
setQuotePolicy(value);
|
);
|
||||||
|
const handleQuotePolicyChange = useCallback(
|
||||||
|
(value: string) => {
|
||||||
|
if (isQuotePolicy(value) && !disableQuotePolicy) {
|
||||||
|
void dispatch(setStatusQuotePolicy({ policy: value, statusId }));
|
||||||
}
|
}
|
||||||
}, []);
|
},
|
||||||
const handleSave = useCallback(() => {
|
[disableQuotePolicy, dispatch, statusId],
|
||||||
onChange(visibility, quotePolicy);
|
);
|
||||||
onClose();
|
|
||||||
}, [onChange, onClose, visibility, quotePolicy]);
|
|
||||||
|
|
||||||
const privacyDropdownId = useId();
|
const privacyDropdownId = useId();
|
||||||
const quoteDropdownId = useId();
|
const quoteDropdownId = useId();
|
||||||
|
@ -211,7 +192,7 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||||
<label
|
<label
|
||||||
htmlFor={privacyDropdownId}
|
htmlFor={privacyDropdownId}
|
||||||
className={classNames('visibility-dropdown__label', {
|
className={classNames('visibility-dropdown__label', {
|
||||||
disabled: disableVisibility,
|
disabled: isSaving || !!statusId,
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
|
@ -222,10 +203,10 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||||
<Dropdown
|
<Dropdown
|
||||||
items={visibilityItems}
|
items={visibilityItems}
|
||||||
classPrefix='visibility-dropdown'
|
classPrefix='visibility-dropdown'
|
||||||
current={visibility}
|
current={currentVisibility}
|
||||||
onChange={handleVisibilityChange}
|
onChange={handleVisibilityChange}
|
||||||
title={intl.formatMessage(privacyMessages.change_privacy)}
|
title={intl.formatMessage(privacyMessages.change_privacy)}
|
||||||
disabled={disableVisibility}
|
disabled={isSaving || !!statusId}
|
||||||
id={privacyDropdownId}
|
id={privacyDropdownId}
|
||||||
/>
|
/>
|
||||||
{!!statusId && (
|
{!!statusId && (
|
||||||
|
@ -241,7 +222,7 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||||
<label
|
<label
|
||||||
htmlFor={quoteDropdownId}
|
htmlFor={quoteDropdownId}
|
||||||
className={classNames('visibility-dropdown__label', {
|
className={classNames('visibility-dropdown__label', {
|
||||||
disabled: disableQuotePolicy,
|
disabled: disableQuotePolicy || isSaving,
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
|
@ -253,28 +234,17 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||||
items={quoteItems}
|
items={quoteItems}
|
||||||
onChange={handleQuotePolicyChange}
|
onChange={handleQuotePolicyChange}
|
||||||
classPrefix='visibility-dropdown'
|
classPrefix='visibility-dropdown'
|
||||||
current={disableQuotePolicy ? 'nobody' : quotePolicy}
|
current={currentQuotePolicy}
|
||||||
title={intl.formatMessage(messages.buttonTitle)}
|
title={intl.formatMessage(messages.buttonTitle)}
|
||||||
disabled={disableQuotePolicy}
|
disabled={disableQuotePolicy || isSaving}
|
||||||
id={quoteDropdownId}
|
id={quoteDropdownId}
|
||||||
/>
|
/>
|
||||||
<QuotePolicyHelper policy={quotePolicy} visibility={visibility} />
|
<QuotePolicyHelper
|
||||||
|
policy={currentQuotePolicy}
|
||||||
|
visibility={currentVisibility}
|
||||||
|
/>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div className='dialog-modal__content__actions'>
|
|
||||||
<Button onClick={onClose} secondary>
|
|
||||||
<FormattedMessage
|
|
||||||
id='confirmation_modal.cancel'
|
|
||||||
defaultMessage='Cancel'
|
|
||||||
/>
|
|
||||||
</Button>
|
|
||||||
<Button onClick={handleSave}>
|
|
||||||
<FormattedMessage
|
|
||||||
id='visibility_modal.save'
|
|
||||||
defaultMessage='Save'
|
|
||||||
/>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -302,7 +272,7 @@ const QuotePolicyHelper: FC<{
|
||||||
<p className='visibility-dropdown__helper'>
|
<p className='visibility-dropdown__helper'>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
id='visibility_modal.helper.private_quoting'
|
id='visibility_modal.helper.private_quoting'
|
||||||
defaultMessage="Follower-only posts authored on Mastodon can't be quoted by others."
|
defaultMessage="Follower-only posts can't be quoted."
|
||||||
/>
|
/>
|
||||||
</p>
|
</p>
|
||||||
);
|
);
|
||||||
|
@ -313,7 +283,7 @@ const QuotePolicyHelper: FC<{
|
||||||
<p className='visibility-dropdown__helper'>
|
<p className='visibility-dropdown__helper'>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
id='visibility_modal.helper.direct_quoting'
|
id='visibility_modal.helper.direct_quoting'
|
||||||
defaultMessage="Private mentions authored on Mastodon can't be quoted by others."
|
defaultMessage="Private mentions can't be quoted."
|
||||||
/>
|
/>
|
||||||
</p>
|
</p>
|
||||||
);
|
);
|
||||||
|
|
|
@ -75,10 +75,8 @@ import {
|
||||||
PrivacyPolicy,
|
PrivacyPolicy,
|
||||||
TermsOfService,
|
TermsOfService,
|
||||||
AccountFeatured,
|
AccountFeatured,
|
||||||
Quotes,
|
|
||||||
} from './util/async-components';
|
} from './util/async-components';
|
||||||
import { ColumnsContextProvider } from './util/columns_context';
|
import { ColumnsContextProvider } from './util/columns_context';
|
||||||
import { focusColumn, getFocusedItemIndex, focusItemSibling } from './util/focusUtils';
|
|
||||||
import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers';
|
import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers';
|
||||||
|
|
||||||
// Dummy import, to make sure that <Status /> ends up in the application bundle.
|
// Dummy import, to make sure that <Status /> ends up in the application bundle.
|
||||||
|
@ -210,7 +208,6 @@ class SwitchingColumnsArea extends PureComponent {
|
||||||
<WrappedRoute path='/@:acct/:statusId' exact component={Status} content={children} />
|
<WrappedRoute path='/@:acct/:statusId' exact component={Status} content={children} />
|
||||||
<WrappedRoute path='/@:acct/:statusId/reblogs' component={Reblogs} content={children} />
|
<WrappedRoute path='/@:acct/:statusId/reblogs' component={Reblogs} content={children} />
|
||||||
<WrappedRoute path='/@:acct/:statusId/favourites' component={Favourites} 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 */}
|
{/* Legacy routes, cannot be easily factored with other routes because they share a param name */}
|
||||||
<WrappedRoute path='/timelines/tag/:id' component={HashtagTimeline} content={children} />
|
<WrappedRoute path='/timelines/tag/:id' component={HashtagTimeline} content={children} />
|
||||||
|
@ -449,34 +446,20 @@ class UI extends PureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
handleHotkeyFocusColumn = e => {
|
handleHotkeyFocusColumn = e => {
|
||||||
focusColumn({index: e.key * 1});
|
const index = (e.key * 1) + 1; // First child is drawer, skip that
|
||||||
};
|
const column = this.node.querySelector(`.column:nth-child(${index})`);
|
||||||
|
if (!column) return;
|
||||||
|
const container = column.querySelector('.scrollable');
|
||||||
|
|
||||||
handleHotkeyLoadMore = () => {
|
if (container) {
|
||||||
document.querySelector('.load-more')?.focus();
|
const status = container.querySelector('.focusable');
|
||||||
};
|
|
||||||
|
|
||||||
handleMoveUp = () => {
|
if (status) {
|
||||||
const currentItemIndex = getFocusedItemIndex();
|
if (container.scrollTop > status.offsetTop) {
|
||||||
if (currentItemIndex === -1) {
|
status.scrollIntoView(true);
|
||||||
focusColumn({
|
}
|
||||||
index: 1,
|
status.focus();
|
||||||
focusItem: 'first-visible',
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
focusItemSibling(currentItemIndex, -1);
|
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
handleMoveDown = () => {
|
|
||||||
const currentItemIndex = getFocusedItemIndex();
|
|
||||||
if (currentItemIndex === -1) {
|
|
||||||
focusColumn({
|
|
||||||
index: 1,
|
|
||||||
focusItem: 'first-visible',
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
focusItemSibling(currentItemIndex, 1);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -559,9 +542,6 @@ class UI extends PureComponent {
|
||||||
forceNew: this.handleHotkeyForceNew,
|
forceNew: this.handleHotkeyForceNew,
|
||||||
toggleComposeSpoilers: this.handleHotkeyToggleComposeSpoilers,
|
toggleComposeSpoilers: this.handleHotkeyToggleComposeSpoilers,
|
||||||
focusColumn: this.handleHotkeyFocusColumn,
|
focusColumn: this.handleHotkeyFocusColumn,
|
||||||
focusLoadMore: this.handleHotkeyLoadMore,
|
|
||||||
moveDown: this.handleMoveDown,
|
|
||||||
moveUp: this.handleMoveUp,
|
|
||||||
back: this.handleHotkeyBack,
|
back: this.handleHotkeyBack,
|
||||||
goToHome: this.handleHotkeyGoToHome,
|
goToHome: this.handleHotkeyGoToHome,
|
||||||
goToNotifications: this.handleHotkeyGoToNotifications,
|
goToNotifications: this.handleHotkeyGoToNotifications,
|
||||||
|
|
|
@ -86,10 +86,6 @@ export function Favourites () {
|
||||||
return import('../../favourites');
|
return import('../../favourites');
|
||||||
}
|
}
|
||||||
|
|
||||||
export function Quotes () {
|
|
||||||
return import('../../quotes');
|
|
||||||
}
|
|
||||||
|
|
||||||
export function FollowRequests () {
|
export function FollowRequests () {
|
||||||
return import('../../follow_requests');
|
return import('../../follow_requests');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,132 +0,0 @@
|
||||||
import initialState from '@/mastodon/initial_state';
|
|
||||||
|
|
||||||
interface FocusColumnOptions {
|
|
||||||
index?: number;
|
|
||||||
focusItem?: 'first' | 'first-visible';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Move focus to the column of the passed index (1-based).
|
|
||||||
* Can either focus the topmost item or the first one in the viewport
|
|
||||||
*/
|
|
||||||
export function focusColumn({
|
|
||||||
index = 1,
|
|
||||||
focusItem = 'first',
|
|
||||||
}: FocusColumnOptions = {}) {
|
|
||||||
// Skip the leftmost drawer in multi-column mode
|
|
||||||
const indexOffset = initialState?.meta.advanced_layout ? 1 : 0;
|
|
||||||
|
|
||||||
const column = document.querySelector(
|
|
||||||
`.column:nth-child(${index + indexOffset})`,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!column) return;
|
|
||||||
|
|
||||||
const container = column.querySelector('.scrollable');
|
|
||||||
|
|
||||||
if (!container) return;
|
|
||||||
|
|
||||||
let itemToFocus: HTMLElement | null = null;
|
|
||||||
|
|
||||||
if (focusItem === 'first-visible') {
|
|
||||||
const focusableItems = Array.from(
|
|
||||||
container.querySelectorAll<HTMLElement>(
|
|
||||||
'.focusable:not(.status__quote .focusable)',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
const viewportHeight =
|
|
||||||
window.innerHeight || document.documentElement.clientHeight;
|
|
||||||
|
|
||||||
// Find first item visible in the viewport
|
|
||||||
itemToFocus =
|
|
||||||
focusableItems.find((item) => {
|
|
||||||
const { top } = item.getBoundingClientRect();
|
|
||||||
return top >= 0 && top < viewportHeight;
|
|
||||||
}) ?? null;
|
|
||||||
} else {
|
|
||||||
itemToFocus = container.querySelector('.focusable');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (itemToFocus) {
|
|
||||||
if (container.scrollTop > itemToFocus.offsetTop) {
|
|
||||||
itemToFocus.scrollIntoView(true);
|
|
||||||
}
|
|
||||||
itemToFocus.focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the index of the currently focused item in one of our item lists
|
|
||||||
*/
|
|
||||||
export function getFocusedItemIndex() {
|
|
||||||
const focusedElement = document.activeElement;
|
|
||||||
const itemList = focusedElement?.closest('.item-list');
|
|
||||||
|
|
||||||
if (!focusedElement || !itemList) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
let focusedItem: HTMLElement | null = null;
|
|
||||||
if (focusedElement.parentElement === itemList) {
|
|
||||||
focusedItem = focusedElement as HTMLElement;
|
|
||||||
} else {
|
|
||||||
focusedItem = focusedElement.closest('.item-list > *');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!focusedItem) return -1;
|
|
||||||
|
|
||||||
const items = Array.from(itemList.children);
|
|
||||||
return items.indexOf(focusedItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Focus the item next to the one with the provided index
|
|
||||||
*/
|
|
||||||
export function focusItemSibling(
|
|
||||||
index: number,
|
|
||||||
direction: 1 | -1,
|
|
||||||
scrollThreshold = 62,
|
|
||||||
) {
|
|
||||||
const focusedElement = document.activeElement;
|
|
||||||
const itemList = focusedElement?.closest('.item-list');
|
|
||||||
|
|
||||||
const siblingItem = itemList?.querySelector<HTMLElement>(
|
|
||||||
// :nth-child uses 1-based indexing
|
|
||||||
`.item-list > :nth-child(${index + 1 + direction})`,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!siblingItem) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If sibling element is empty, we skip it
|
|
||||||
if (siblingItem.matches(':empty')) {
|
|
||||||
focusItemSibling(index + direction, direction);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if the sibling is a post or a 'follow suggestions' widget
|
|
||||||
let targetElement = siblingItem.querySelector<HTMLElement>('.focusable');
|
|
||||||
|
|
||||||
// Otherwise, check if the item is a 'load more' button.
|
|
||||||
if (!targetElement && siblingItem.matches('.load-more')) {
|
|
||||||
targetElement = siblingItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetElement) {
|
|
||||||
const elementRect = targetElement.getBoundingClientRect();
|
|
||||||
|
|
||||||
const isFullyVisible =
|
|
||||||
elementRect.top >= scrollThreshold &&
|
|
||||||
elementRect.bottom <= window.innerHeight;
|
|
||||||
|
|
||||||
if (!isFullyVisible) {
|
|
||||||
targetElement.scrollIntoView({
|
|
||||||
block: direction === 1 ? 'start' : 'center',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
targetElement.focus();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -946,11 +946,14 @@
|
||||||
"video.volume_up": "Həcmi artır",
|
"video.volume_up": "Həcmi artır",
|
||||||
"visibility_modal.button_title": "Görünməni ayarla",
|
"visibility_modal.button_title": "Görünməni ayarla",
|
||||||
"visibility_modal.header": "Görünmə və qarşılıqlı əlaqə",
|
"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.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.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.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.privacy_label": "Gizlilik",
|
||||||
"visibility_modal.quote_followers": "Yalnız izləyicilər",
|
"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_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"
|
"visibility_modal.quote_public": "Hər kəs"
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Адкрыць хатнюю храналагічную стужку",
|
"keyboard_shortcuts.home": "Адкрыць хатнюю храналагічную стужку",
|
||||||
"keyboard_shortcuts.hotkey": "Спалучэнне клавіш",
|
"keyboard_shortcuts.hotkey": "Спалучэнне клавіш",
|
||||||
"keyboard_shortcuts.legend": "Паказаць легенду",
|
"keyboard_shortcuts.legend": "Паказаць легенду",
|
||||||
"keyboard_shortcuts.load_more": "Навесці на кнопку \"Загрузіць болей\"",
|
|
||||||
"keyboard_shortcuts.local": "Адкрыць хатнюю храналагічную стужку",
|
"keyboard_shortcuts.local": "Адкрыць хатнюю храналагічную стужку",
|
||||||
"keyboard_shortcuts.mention": "Згадаць аўтара",
|
"keyboard_shortcuts.mention": "Згадаць аўтара",
|
||||||
"keyboard_shortcuts.muted": "Адкрыць спіс ігнараваных карыстальнікаў",
|
"keyboard_shortcuts.muted": "Адкрыць спіс ігнараваных карыстальнікаў",
|
||||||
|
@ -620,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Ваш уліковы запіс быў заблакіраваны.",
|
"notification.moderation_warning.action_suspend": "Ваш уліковы запіс быў заблакіраваны.",
|
||||||
"notification.own_poll": "Ваша апытанне скончылася",
|
"notification.own_poll": "Ваша апытанне скончылася",
|
||||||
"notification.poll": "Апытанне, дзе Вы прынялі ўдзел, скончылася",
|
"notification.poll": "Апытанне, дзе Вы прынялі ўдзел, скончылася",
|
||||||
"notification.quoted_update": "{name} адрэдагаваў(-ла) допіс, які Вы цытавалі",
|
|
||||||
"notification.reblog": "{name} пашырыў ваш допіс",
|
"notification.reblog": "{name} пашырыў ваш допіс",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} і <a>{count, plural, one {# іншы} many {# іншых} other {# іншых}}</a> пашырылі ваш допіс",
|
"notification.reblog.name_and_others_with_link": "{name} і <a>{count, plural, one {# іншы} many {# іншых} other {# іншых}}</a> пашырылі ваш допіс",
|
||||||
"notification.relationships_severance_event": "Страціў сувязь з {name}",
|
"notification.relationships_severance_event": "Страціў сувязь з {name}",
|
||||||
|
@ -740,18 +738,11 @@
|
||||||
"privacy.private.short": "Падпісчыкі",
|
"privacy.private.short": "Падпісчыкі",
|
||||||
"privacy.public.long": "Усе, хто ёсць і каго няма ў Mastodon",
|
"privacy.public.long": "Усе, хто ёсць і каго няма ў Mastodon",
|
||||||
"privacy.public.short": "Публічны",
|
"privacy.public.short": "Публічны",
|
||||||
"privacy.quote.anyone": "{visibility}, усе могуць цытаваць",
|
|
||||||
"privacy.quote.disabled": "{visibility}, цытаты адключаныя",
|
|
||||||
"privacy.quote.limited": "{visibility}, абмежаваныя цытаты",
|
|
||||||
"privacy.unlisted.additional": "Паводзіць сябе гэтак жа, як і публічны, за выключэннем таго, што допіс не будзе адлюстроўвацца ў жывой стужцы, хэштэгах, аглядзе або ў пошуку Mastodon, нават калі Вы ўключылі бачнасць у пошуку ў наладах.",
|
"privacy.unlisted.additional": "Паводзіць сябе гэтак жа, як і публічны, за выключэннем таго, што допіс не будзе адлюстроўвацца ў жывой стужцы, хэштэгах, аглядзе або ў пошуку Mastodon, нават калі Вы ўключылі бачнасць у пошуку ў наладах.",
|
||||||
"privacy.unlisted.long": "Менш фанфар ад алгарытмаў",
|
"privacy.unlisted.long": "Менш фанфар ад алгарытмаў",
|
||||||
"privacy.unlisted.short": "Ціхі публічны",
|
"privacy.unlisted.short": "Ціхі публічны",
|
||||||
"privacy_policy.last_updated": "Адноўлена {date}",
|
"privacy_policy.last_updated": "Адноўлена {date}",
|
||||||
"privacy_policy.title": "Палітыка канфідэнцыйнасці",
|
"privacy_policy.title": "Палітыка канфідэнцыйнасці",
|
||||||
"quote_error.poll": "Нельга цытаваць з апытаннямі.",
|
|
||||||
"quote_error.quote": "За раз дазволена рабіць толькі адну цытату.",
|
|
||||||
"quote_error.unauthorized": "Вы не ўвайшлі, каб цытаваць гэты допіс.",
|
|
||||||
"quote_error.upload": "Нельга цытаваць з медыя далучэннямі.",
|
|
||||||
"recommended": "Рэкамендаванае",
|
"recommended": "Рэкамендаванае",
|
||||||
"refresh": "Абнавiць",
|
"refresh": "Абнавiць",
|
||||||
"regeneration_indicator.please_stand_by": "Пачакайце.",
|
"regeneration_indicator.please_stand_by": "Пачакайце.",
|
||||||
|
@ -845,24 +836,22 @@
|
||||||
"search_results.see_all": "Праглядзець усе",
|
"search_results.see_all": "Праглядзець усе",
|
||||||
"search_results.statuses": "Допісы",
|
"search_results.statuses": "Допісы",
|
||||||
"search_results.title": "Шукаць \"{q}\"",
|
"search_results.title": "Шукаць \"{q}\"",
|
||||||
"server_banner.about_active_users": "Людзі, якія карысталіся гэтым серверам на працягу апошніх 30 дзён (штомесячна актыўныя карыстальнікі)",
|
"server_banner.about_active_users": "Людзі, якія карыстаюцца гэтым сервера на працягу апошніх 30 дзён (Штомесячна Актыўныя Карыстальнікі)",
|
||||||
"server_banner.active_users": "актыўныя карыстальнікі",
|
"server_banner.active_users": "актыўныя карыстальнікі",
|
||||||
"server_banner.administered_by": "Адміністратар:",
|
"server_banner.administered_by": "Адміністратар:",
|
||||||
"server_banner.is_one_of_many": "{domain} - гэта адзін з многіх незалежных сервераў Mastodon, які Вы можаце выкарыстоўваць для ўдзелу ў федэральным сусвеце.",
|
"server_banner.is_one_of_many": "{domain} - гэта адзін з многіх незалежных сервераў Mastodon, які Вы можаце выкарыстоўваць для ўдзелу ў федэральным сусвеце.",
|
||||||
"server_banner.server_stats": "Статыстыка сервера:",
|
"server_banner.server_stats": "Статыстыка сервера:",
|
||||||
"sign_in_banner.create_account": "Стварыць уліковы запіс",
|
"sign_in_banner.create_account": "Стварыць уліковы запіс",
|
||||||
"sign_in_banner.follow_anyone": "Падпісвайцеся на каго захочаце ва ўсім федэральным сусвеце і глядзіце ўсё ў храналагічным парадку. Ніякіх алгарытмаў, рэкламы або клікбэйту.",
|
"sign_in_banner.follow_anyone": "Падпісвайцеся на каго захочаце ва ўсім федэральным сусвеце і глядзіце ўсё ў храналагічным парадку. Ніякіх алгарытмаў, рэкламы або клікбэйту.",
|
||||||
"sign_in_banner.mastodon_is": "Mastodon - найлепшы спосаб быць у курсе ўсяго, што адбываецца.",
|
"sign_in_banner.mastodon_is": "Mastodon - лепшы спосаб быць у курсе ўсяго, што адбываецца.",
|
||||||
"sign_in_banner.sign_in": "Увайсці",
|
"sign_in_banner.sign_in": "Увайсці",
|
||||||
"sign_in_banner.sso_redirect": "Уваход ці рэгістрацыя",
|
"sign_in_banner.sso_redirect": "Уваход ці рэгістрацыя",
|
||||||
"status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}",
|
"status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}",
|
||||||
"status.admin_domain": "Адкрыць інтэрфейс мадэратара для {domain}",
|
"status.admin_domain": "Адкрыць інтэрфейс мадэратара для {domain}",
|
||||||
"status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі",
|
"status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі",
|
||||||
"status.all_disabled": "Пашырэнні і цытаванні адключаны",
|
|
||||||
"status.block": "Заблакаваць @{name}",
|
"status.block": "Заблакаваць @{name}",
|
||||||
"status.bookmark": "Дадаць закладку",
|
"status.bookmark": "Дадаць закладку",
|
||||||
"status.cancel_reblog_private": "Прыбраць",
|
"status.cancel_reblog_private": "Прыбраць",
|
||||||
"status.cannot_quote": "Аўтар допісу адключыў цытаванне",
|
|
||||||
"status.cannot_reblog": "Гэты допіс нельга пашырыць",
|
"status.cannot_reblog": "Гэты допіс нельга пашырыць",
|
||||||
"status.context.load_new_replies": "Даступныя новыя адказы",
|
"status.context.load_new_replies": "Даступныя новыя адказы",
|
||||||
"status.context.loading": "Правяраюцца новыя адказы",
|
"status.context.loading": "Правяраюцца новыя адказы",
|
||||||
|
@ -891,20 +880,13 @@
|
||||||
"status.mute_conversation": "Ігнараваць размову",
|
"status.mute_conversation": "Ігнараваць размову",
|
||||||
"status.open": "Разгарнуць гэты допіс",
|
"status.open": "Разгарнуць гэты допіс",
|
||||||
"status.pin": "Замацаваць у профілі",
|
"status.pin": "Замацаваць у профілі",
|
||||||
"status.quote": "Цытаваць",
|
|
||||||
"status.quote.cancel": "Адмяніць цытаванне",
|
|
||||||
"status.quote_error.filtered": "Схавана адным з Вашых фільтраў",
|
"status.quote_error.filtered": "Схавана адным з Вашых фільтраў",
|
||||||
"status.quote_error.not_available": "Допіс недаступны",
|
"status.quote_error.not_available": "Допіс недаступны",
|
||||||
"status.quote_error.pending_approval": "Допіс чакае пацвярджэння",
|
"status.quote_error.pending_approval": "Допіс чакае пацвярджэння",
|
||||||
"status.quote_error.pending_approval_popout.body": "Допісы, якія былі цытаваныя паміж серверамі Fediverse, могуць доўга загружацца, паколькі розныя серверы маюць розныя пратаколы.",
|
"status.quote_error.pending_approval_popout.body": "Допісы, якія былі цытаваныя паміж серверамі Fediverse, могуць доўга загружацца, паколькі розныя серверы маюць розныя пратаколы.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Цытаваны допіс чакае пацвярджэння? Захоўвайце спакой",
|
"status.quote_error.pending_approval_popout.title": "Цытаваны допіс чакае пацвярджэння? Захоўвайце спакой",
|
||||||
"status.quote_followers_only": "Толькі падпісчыкі могуць цытаваць гэты допіс",
|
|
||||||
"status.quote_manual_review": "Аўтар зробіць агляд уручную",
|
|
||||||
"status.quote_policy_change": "Змяніць, хто можа цытаваць",
|
"status.quote_policy_change": "Змяніць, хто можа цытаваць",
|
||||||
"status.quote_post_author": "Цытаваў допіс @{name}",
|
"status.quote_post_author": "Цытаваў допіс @{name}",
|
||||||
"status.quote_private": "Прыватныя допісы нельга цытаваць",
|
|
||||||
"status.quotes": "{count, plural,one {цытата} few {цытаты} other {цытат}}",
|
|
||||||
"status.quotes.empty": "Яшчэ ніхто не цытаваў гэты допіс. Калі гэта адбудзецца, то Вы пабачыце гэта тут.",
|
|
||||||
"status.read_more": "Чытаць болей",
|
"status.read_more": "Чытаць болей",
|
||||||
"status.reblog": "Пашырыць",
|
"status.reblog": "Пашырыць",
|
||||||
"status.reblog_private": "Пашырыць з першапачатковай бачнасцю",
|
"status.reblog_private": "Пашырыць з першапачатковай бачнасцю",
|
||||||
|
@ -919,7 +901,6 @@
|
||||||
"status.reply": "Адказаць",
|
"status.reply": "Адказаць",
|
||||||
"status.replyAll": "Адказаць у ланцугу",
|
"status.replyAll": "Адказаць у ланцугу",
|
||||||
"status.report": "Паскардзіцца на @{name}",
|
"status.report": "Паскардзіцца на @{name}",
|
||||||
"status.request_quote": "Даслаць запыт на цытаванне",
|
|
||||||
"status.revoke_quote": "Выдаліць мой допіс з допісу @{name}",
|
"status.revoke_quote": "Выдаліць мой допіс з допісу @{name}",
|
||||||
"status.sensitive_warning": "Уражвальны змест",
|
"status.sensitive_warning": "Уражвальны змест",
|
||||||
"status.share": "Абагуліць",
|
"status.share": "Абагуліць",
|
||||||
|
@ -958,7 +939,6 @@
|
||||||
"upload_button.label": "Дадаць выяву, відэа- ці аўдыяфайл",
|
"upload_button.label": "Дадаць выяву, відэа- ці аўдыяфайл",
|
||||||
"upload_error.limit": "Перавышана колькасць файлаў.",
|
"upload_error.limit": "Перавышана колькасць файлаў.",
|
||||||
"upload_error.poll": "Немагчыма прымацаваць файл да апытання.",
|
"upload_error.poll": "Немагчыма прымацаваць файл да апытання.",
|
||||||
"upload_error.quote": "Нельга запампоўваць файл пры цытаванні.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Каб абраць медыя ўлажэнне, націсніце прабел ці Enter. Падчас перасоўвання выкарыстоўвайце кнопкі са стрэлкамі, каб пасунуць медыя далучэнне ў любым напрамку. Націсніце прабел ці Enter зноў, каб перасунуць медыя далучэнне ў новае месца, або Escape для адмены.",
|
"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_cancel": "Перасоўванне адмененае. Медыя ўлажэнне {item} на месцы.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Медыя ўлажэнне {item} на месцы.",
|
"upload_form.drag_and_drop.on_drag_end": "Медыя ўлажэнне {item} на месцы.",
|
||||||
|
@ -984,15 +964,14 @@
|
||||||
"video.volume_up": "Павялічыць гучнасць",
|
"video.volume_up": "Павялічыць гучнасць",
|
||||||
"visibility_modal.button_title": "Вызначыць бачнасць",
|
"visibility_modal.button_title": "Вызначыць бачнасць",
|
||||||
"visibility_modal.header": "Бачнасць і ўзаемадзеянне",
|
"visibility_modal.header": "Бачнасць і ўзаемадзеянне",
|
||||||
"visibility_modal.helper.direct_quoting": "Прыватныя згадванні, створаныя на Mastodon, нельга цытаваць іншым людзям.",
|
"visibility_modal.helper.direct_quoting": "Прыватныя згадванні нельга цытаваць.",
|
||||||
"visibility_modal.helper.privacy_editing": "Апублікаваным допісам нельга змяняць бачнасць.",
|
"visibility_modal.helper.privacy_editing": "Апублікаваным допісам нельга змяняць бачнасць.",
|
||||||
"visibility_modal.helper.private_quoting": "Допісы для падпісчыкаў, створаныя на Mastodon, нельга цытаваць іншым людзям.",
|
"visibility_modal.helper.private_quoting": "Допісы для падпісчыкаў нельга цытаваць.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "Калі людзі працытуюць Вас, іх допіс таксама будзе схаваны ад стужкі трэндаў.",
|
"visibility_modal.helper.unlisted_quoting": "Калі людзі працытуюць Вас, іх допіс таксама будзе схаваны ад стужкі трэндаў.",
|
||||||
"visibility_modal.instructions": "Кантралюйце, хто можа ўзаемадзейнічаць з Вашым допісам. Глабальныя налады можна знайсці ў <link>Налады > Іншае</link>.",
|
"visibility_modal.instructions": "Кантралюйце, хто можа ўзаемадзейнічаць з Вашым допісам. Глабальныя налады можна знайсці ў <link>Налады > Іншае</link>.",
|
||||||
"visibility_modal.privacy_label": "Прыватнасць",
|
"visibility_modal.privacy_label": "Прыватнасць",
|
||||||
"visibility_modal.quote_followers": "Толькі падпісчыкі",
|
"visibility_modal.quote_followers": "Толькі падпісчыкі",
|
||||||
"visibility_modal.quote_label": "Змяніць, хто можа цытаваць",
|
"visibility_modal.quote_label": "Змяніць, хто можа цытаваць",
|
||||||
"visibility_modal.quote_nobody": "Толькі я",
|
"visibility_modal.quote_nobody": "Ніхто",
|
||||||
"visibility_modal.quote_public": "Усе",
|
"visibility_modal.quote_public": "Усе"
|
||||||
"visibility_modal.save": "Захаваць"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -952,10 +952,12 @@
|
||||||
"video.volume_up": "Увеличаване на звука",
|
"video.volume_up": "Увеличаване на звука",
|
||||||
"visibility_modal.button_title": "Задаване на видимост",
|
"visibility_modal.button_title": "Задаване на видимост",
|
||||||
"visibility_modal.header": "Видимост и взаимодействие",
|
"visibility_modal.header": "Видимост и взаимодействие",
|
||||||
|
"visibility_modal.helper.direct_quoting": "Частни споменавания не може да се цитират.",
|
||||||
"visibility_modal.helper.privacy_editing": "Публикуваните публикации не може да променят видимостта си.",
|
"visibility_modal.helper.privacy_editing": "Публикуваните публикации не може да променят видимостта си.",
|
||||||
"visibility_modal.instructions": "Управлявайте кой може да взаимодейства с тази публикация. Глобалните настройки може да се намерят под <link>Предпочитания> Друго</link>.",
|
"visibility_modal.instructions": "Управлявайте кой може да взаимодейства с тази публикация. Глобалните настройки може да се намерят под <link>Предпочитания> Друго</link>.",
|
||||||
"visibility_modal.privacy_label": "Поверителност",
|
"visibility_modal.privacy_label": "Поверителност",
|
||||||
"visibility_modal.quote_followers": "Само последователи",
|
"visibility_modal.quote_followers": "Само последователи",
|
||||||
"visibility_modal.quote_label": "Промяна кой може да цитира",
|
"visibility_modal.quote_label": "Промяна кой може да цитира",
|
||||||
|
"visibility_modal.quote_nobody": "Никого",
|
||||||
"visibility_modal.quote_public": "Някой"
|
"visibility_modal.quote_public": "Някой"
|
||||||
}
|
}
|
||||||
|
|
|
@ -640,5 +640,6 @@
|
||||||
"video.play": "Lenn",
|
"video.play": "Lenn",
|
||||||
"visibility_modal.privacy_label": "Prevezded",
|
"visibility_modal.privacy_label": "Prevezded",
|
||||||
"visibility_modal.quote_followers": "Tud koumanantet hepken",
|
"visibility_modal.quote_followers": "Tud koumanantet hepken",
|
||||||
|
"visibility_modal.quote_nobody": "Den ebet",
|
||||||
"visibility_modal.quote_public": "Pep den"
|
"visibility_modal.quote_public": "Pep den"
|
||||||
}
|
}
|
||||||
|
|
|
@ -848,11 +848,9 @@
|
||||||
"status.admin_account": "Obre la interfície de moderació per a @{name}",
|
"status.admin_account": "Obre la interfície de moderació per a @{name}",
|
||||||
"status.admin_domain": "Obre la interfície de moderació per a @{domain}",
|
"status.admin_domain": "Obre la interfície de moderació per a @{domain}",
|
||||||
"status.admin_status": "Obre aquest tut a la interfície de moderació",
|
"status.admin_status": "Obre aquest tut a la interfície de moderació",
|
||||||
"status.all_disabled": "S'han deshabilitat impulsos i cites",
|
|
||||||
"status.block": "Bloca @{name}",
|
"status.block": "Bloca @{name}",
|
||||||
"status.bookmark": "Marca",
|
"status.bookmark": "Marca",
|
||||||
"status.cancel_reblog_private": "Desfés l'impuls",
|
"status.cancel_reblog_private": "Desfés l'impuls",
|
||||||
"status.cannot_quote": "L'autor no permet que se citi aquesta publicació",
|
|
||||||
"status.cannot_reblog": "No es pot impulsar aquest tut",
|
"status.cannot_reblog": "No es pot impulsar aquest tut",
|
||||||
"status.context.load_new_replies": "Hi ha respostes noves",
|
"status.context.load_new_replies": "Hi ha respostes noves",
|
||||||
"status.context.loading": "Comprovació de més respostes",
|
"status.context.loading": "Comprovació de més respostes",
|
||||||
|
@ -881,7 +879,6 @@
|
||||||
"status.mute_conversation": "Silencia la conversa",
|
"status.mute_conversation": "Silencia la conversa",
|
||||||
"status.open": "Amplia el tut",
|
"status.open": "Amplia el tut",
|
||||||
"status.pin": "Fixa en el perfil",
|
"status.pin": "Fixa en el perfil",
|
||||||
"status.quote": "Cita",
|
|
||||||
"status.quote.cancel": "Canceŀlar la citació",
|
"status.quote.cancel": "Canceŀlar la citació",
|
||||||
"status.quote_error.filtered": "No es mostra a causa d'un dels vostres filtres",
|
"status.quote_error.filtered": "No es mostra a causa d'un dels vostres filtres",
|
||||||
"status.quote_error.not_available": "Publicació no disponible",
|
"status.quote_error.not_available": "Publicació no disponible",
|
||||||
|
@ -890,7 +887,6 @@
|
||||||
"status.quote_error.pending_approval_popout.title": "Publicació pendent? Mantinguem la calma",
|
"status.quote_error.pending_approval_popout.title": "Publicació pendent? Mantinguem la calma",
|
||||||
"status.quote_policy_change": "Canvieu qui us pot citar",
|
"status.quote_policy_change": "Canvieu qui us pot citar",
|
||||||
"status.quote_post_author": "S'ha citat una publicació de @{name}",
|
"status.quote_post_author": "S'ha citat una publicació de @{name}",
|
||||||
"status.quote_private": "No es poden citar les publicacions privades",
|
|
||||||
"status.read_more": "Més informació",
|
"status.read_more": "Més informació",
|
||||||
"status.reblog": "Impulsa",
|
"status.reblog": "Impulsa",
|
||||||
"status.reblog_private": "Impulsa amb la visibilitat original",
|
"status.reblog_private": "Impulsa amb la visibilitat original",
|
||||||
|
@ -968,12 +964,14 @@
|
||||||
"video.volume_up": "Apuja el volum",
|
"video.volume_up": "Apuja el volum",
|
||||||
"visibility_modal.button_title": "Establiu la visibilitat",
|
"visibility_modal.button_title": "Establiu la visibilitat",
|
||||||
"visibility_modal.header": "Visibilitat i interacció",
|
"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.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.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.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.privacy_label": "Privacitat",
|
||||||
"visibility_modal.quote_followers": "Només seguidors",
|
"visibility_modal.quote_followers": "Només seguidors",
|
||||||
"visibility_modal.quote_label": "Canvieu qui us pot citar",
|
"visibility_modal.quote_label": "Canvieu qui us pot citar",
|
||||||
"visibility_modal.quote_public": "Qualsevol",
|
"visibility_modal.quote_nobody": "Ningú",
|
||||||
"visibility_modal.save": "Desa"
|
"visibility_modal.quote_public": "Qualsevol"
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Otevřít domovskou časovou osu",
|
"keyboard_shortcuts.home": "Otevřít domovskou časovou osu",
|
||||||
"keyboard_shortcuts.hotkey": "Klávesová zkratka",
|
"keyboard_shortcuts.hotkey": "Klávesová zkratka",
|
||||||
"keyboard_shortcuts.legend": "Zobrazit tuto legendu",
|
"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.local": "Otevřít místní časovou osu",
|
||||||
"keyboard_shortcuts.mention": "Zmínit autora",
|
"keyboard_shortcuts.mention": "Zmínit autora",
|
||||||
"keyboard_shortcuts.muted": "Otevřít seznam skrytých uživatelů",
|
"keyboard_shortcuts.muted": "Otevřít seznam skrytých uživatelů",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Otevřít média",
|
"keyboard_shortcuts.open_media": "Otevřít média",
|
||||||
"keyboard_shortcuts.pinned": "Otevřít seznam připnutých příspěvků",
|
"keyboard_shortcuts.pinned": "Otevřít seznam připnutých příspěvků",
|
||||||
"keyboard_shortcuts.profile": "Otevřít autorův profil",
|
"keyboard_shortcuts.profile": "Otevřít autorův profil",
|
||||||
"keyboard_shortcuts.quote": "Citovat příspěvek",
|
|
||||||
"keyboard_shortcuts.reply": "Odpovědět na příspěvek",
|
"keyboard_shortcuts.reply": "Odpovědět na příspěvek",
|
||||||
"keyboard_shortcuts.requests": "Otevřít seznam žádostí o sledování",
|
"keyboard_shortcuts.requests": "Otevřít seznam žádostí o sledování",
|
||||||
"keyboard_shortcuts.search": "Zaměřit se na vyhledávací lištu",
|
"keyboard_shortcuts.search": "Zaměřit se na vyhledávací lištu",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Váš účet byl pozastaven.",
|
"notification.moderation_warning.action_suspend": "Váš účet byl pozastaven.",
|
||||||
"notification.own_poll": "Vaše anketa skončila",
|
"notification.own_poll": "Vaše anketa skončila",
|
||||||
"notification.poll": "Anketa, ve které jste hlasovali, skončila",
|
"notification.poll": "Anketa, ve které jste hlasovali, skončila",
|
||||||
"notification.quoted_update": "{name} upravili příspěvek, který jste citovali",
|
|
||||||
"notification.reblog": "Uživatel {name} boostnul váš příspěvek",
|
"notification.reblog": "Uživatel {name} boostnul váš příspěvek",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} a {count, plural, one {<a># další</a> boostnul} few {<a># další</a> boostnuli} other {<a># dalších</a> boostnulo}} Váš příspěvek",
|
"notification.reblog.name_and_others_with_link": "{name} a {count, plural, one {<a># další</a> boostnul} few {<a># další</a> boostnuli} other {<a># dalších</a> boostnulo}} Váš příspěvek",
|
||||||
"notification.relationships_severance_event": "Kontakt ztracen s {name}",
|
"notification.relationships_severance_event": "Kontakt ztracen s {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Sledující",
|
"privacy.private.short": "Sledující",
|
||||||
"privacy.public.long": "Kdokoliv na Mastodonu i mimo něj",
|
"privacy.public.long": "Kdokoliv na Mastodonu i mimo něj",
|
||||||
"privacy.public.short": "Veřejné",
|
"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.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.long": "Méně algoritmických fanfár",
|
||||||
"privacy.unlisted.short": "Ztišené veřejné",
|
"privacy.unlisted.short": "Ztišené veřejné",
|
||||||
"privacy_policy.last_updated": "Naposledy aktualizováno {date}",
|
"privacy_policy.last_updated": "Naposledy aktualizováno {date}",
|
||||||
"privacy_policy.title": "Zásady ochrany osobních údajů",
|
"privacy_policy.title": "Zásady ochrany osobních údajů",
|
||||||
"quote_error.poll": "Citování není u dotazníků povoleno.",
|
|
||||||
"quote_error.quote": "Je povoleno citovat pouze jednou.",
|
|
||||||
"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",
|
"recommended": "Doporučeno",
|
||||||
"refresh": "Obnovit",
|
"refresh": "Obnovit",
|
||||||
"regeneration_indicator.please_stand_by": "Počkej prosím.",
|
"regeneration_indicator.please_stand_by": "Počkej prosím.",
|
||||||
|
@ -859,11 +849,9 @@
|
||||||
"status.admin_account": "Otevřít moderátorské rozhraní pro @{name}",
|
"status.admin_account": "Otevřít moderátorské rozhraní pro @{name}",
|
||||||
"status.admin_domain": "Otevřít moderátorské rozhraní pro {domain}",
|
"status.admin_domain": "Otevřít moderátorské rozhraní pro {domain}",
|
||||||
"status.admin_status": "Otevřít tento příspěvek v moderátorském rozhraní",
|
"status.admin_status": "Otevřít tento příspěvek v moderátorském rozhraní",
|
||||||
"status.all_disabled": "Boosty a citace jsou zakázány",
|
|
||||||
"status.block": "Blokovat @{name}",
|
"status.block": "Blokovat @{name}",
|
||||||
"status.bookmark": "Přidat do záložek",
|
"status.bookmark": "Přidat do záložek",
|
||||||
"status.cancel_reblog_private": "Zrušit boostnutí",
|
"status.cancel_reblog_private": "Zrušit boostnutí",
|
||||||
"status.cannot_quote": "Autor zakázal citování tohoto příspěvku",
|
|
||||||
"status.cannot_reblog": "Tento příspěvek nemůže být boostnutý",
|
"status.cannot_reblog": "Tento příspěvek nemůže být boostnutý",
|
||||||
"status.context.load_new_replies": "K dispozici jsou nové odpovědi",
|
"status.context.load_new_replies": "K dispozici jsou nové odpovědi",
|
||||||
"status.context.loading": "Hledání dalších odpovědí",
|
"status.context.loading": "Hledání dalších odpovědí",
|
||||||
|
@ -892,23 +880,15 @@
|
||||||
"status.mute_conversation": "Skrýt konverzaci",
|
"status.mute_conversation": "Skrýt konverzaci",
|
||||||
"status.open": "Rozbalit tento příspěvek",
|
"status.open": "Rozbalit tento příspěvek",
|
||||||
"status.pin": "Připnout na profil",
|
"status.pin": "Připnout na profil",
|
||||||
"status.quote": "Citovat",
|
|
||||||
"status.quote.cancel": "Zrušit citování",
|
|
||||||
"status.quote_error.filtered": "Skryté kvůli jednomu z vašich filtrů",
|
"status.quote_error.filtered": "Skryté kvůli jednomu z vašich filtrů",
|
||||||
"status.quote_error.not_available": "Příspěvek není dostupný",
|
"status.quote_error.not_available": "Příspěvek není dostupný",
|
||||||
"status.quote_error.pending_approval": "Příspěvek čeká na schválení",
|
"status.quote_error.pending_approval": "Příspěvek čeká na schválení",
|
||||||
"status.quote_error.pending_approval_popout.body": "Zobrazení citátů sdílených napříč Fediversem může chvíli trvat, protože různé servery používají různé protokoly.",
|
"status.quote_error.pending_approval_popout.body": "Zobrazení citátů sdílených napříč Fediversem může chvíli trvat, protože různé servery používají různé protokoly.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Příspěvek čeká na schválení? Buďte klidní",
|
"status.quote_error.pending_approval_popout.title": "Příspěvek čeká na schválení? Buďte klidní",
|
||||||
"status.quote_followers_only": "Pouze moji sledující mohou citovat tento příspěvek",
|
|
||||||
"status.quote_manual_review": "Autor provede manuální kontrolu",
|
|
||||||
"status.quote_policy_change": "Změňte, kdo může citovat",
|
"status.quote_policy_change": "Změňte, kdo může citovat",
|
||||||
"status.quote_post_author": "Citovali příspěvek od @{name}",
|
"status.quote_post_author": "Citovali příspěvek od @{name}",
|
||||||
"status.quote_private": "Soukromé příspěvky nelze citovat",
|
|
||||||
"status.quotes": "{count, plural, one {citace} few {citace} other {citací}}",
|
|
||||||
"status.quotes.empty": "Tento příspěvek zatím nikdo necitoval. Pokud tak někdo učiní, uvidíte to zde.",
|
|
||||||
"status.read_more": "Číst více",
|
"status.read_more": "Číst více",
|
||||||
"status.reblog": "Boostnout",
|
"status.reblog": "Boostnout",
|
||||||
"status.reblog_or_quote": "Boostnout nebo citovat",
|
|
||||||
"status.reblog_private": "Boostnout s původní viditelností",
|
"status.reblog_private": "Boostnout s původní viditelností",
|
||||||
"status.reblogged_by": "Uživatel {name} boostnul",
|
"status.reblogged_by": "Uživatel {name} boostnul",
|
||||||
"status.reblogs": "{count, plural, one {boost} few {boosty} many {boostů} other {boostů}}",
|
"status.reblogs": "{count, plural, one {boost} few {boosty} many {boostů} other {boostů}}",
|
||||||
|
@ -921,7 +901,6 @@
|
||||||
"status.reply": "Odpovědět",
|
"status.reply": "Odpovědět",
|
||||||
"status.replyAll": "Odpovědět na vlákno",
|
"status.replyAll": "Odpovědět na vlákno",
|
||||||
"status.report": "Nahlásit @{name}",
|
"status.report": "Nahlásit @{name}",
|
||||||
"status.request_quote": "Požádat o možnost citovat",
|
|
||||||
"status.revoke_quote": "Odstranit můj příspěvek z příspěvku @{name}",
|
"status.revoke_quote": "Odstranit můj příspěvek z příspěvku @{name}",
|
||||||
"status.sensitive_warning": "Citlivý obsah",
|
"status.sensitive_warning": "Citlivý obsah",
|
||||||
"status.share": "Sdílet",
|
"status.share": "Sdílet",
|
||||||
|
@ -960,7 +939,6 @@
|
||||||
"upload_button.label": "Přidat obrázky, video nebo audio soubor",
|
"upload_button.label": "Přidat obrázky, video nebo audio soubor",
|
||||||
"upload_error.limit": "Byl překročen limit nahraných 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.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.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_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.",
|
"upload_form.drag_and_drop.on_drag_end": "Příloha {item} byla vrácena.",
|
||||||
|
@ -986,15 +964,14 @@
|
||||||
"video.volume_up": "Zvýšit hlasitost",
|
"video.volume_up": "Zvýšit hlasitost",
|
||||||
"visibility_modal.button_title": "Nastavit viditelnost",
|
"visibility_modal.button_title": "Nastavit viditelnost",
|
||||||
"visibility_modal.header": "Viditelnost a interakce",
|
"visibility_modal.header": "Viditelnost a interakce",
|
||||||
"visibility_modal.helper.direct_quoting": "Soukromé zmínky, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.",
|
"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.privacy_editing": "Publikované příspěvky nemohou změnit svou viditelnost.",
|
||||||
"visibility_modal.helper.private_quoting": "Příspěvky pouze pro sledující, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.",
|
"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.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.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.privacy_label": "Soukromí",
|
||||||
"visibility_modal.quote_followers": "Pouze sledující",
|
"visibility_modal.quote_followers": "Pouze sledující",
|
||||||
"visibility_modal.quote_label": "Změňte, kdo může citovat",
|
"visibility_modal.quote_label": "Změňte, kdo může citovat",
|
||||||
"visibility_modal.quote_nobody": "Jen já",
|
"visibility_modal.quote_nobody": "Nikdo",
|
||||||
"visibility_modal.quote_public": "Kdokoliv",
|
"visibility_modal.quote_public": "Kdokoliv"
|
||||||
"visibility_modal.save": "Uložit"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -964,11 +964,14 @@
|
||||||
"video.volume_up": "Lefel sain i fyny",
|
"video.volume_up": "Lefel sain i fyny",
|
||||||
"visibility_modal.button_title": "Gosod gwelededd",
|
"visibility_modal.button_title": "Gosod gwelededd",
|
||||||
"visibility_modal.header": "Gwelededd a rhyngweithio",
|
"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.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.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.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.privacy_label": "Preifatrwydd",
|
||||||
"visibility_modal.quote_followers": "Dilynwyr yn unig",
|
"visibility_modal.quote_followers": "Dilynwyr yn unig",
|
||||||
"visibility_modal.quote_label": "Newid pwy all ddyfynnu",
|
"visibility_modal.quote_label": "Newid pwy all ddyfynnu",
|
||||||
|
"visibility_modal.quote_nobody": "Neb",
|
||||||
"visibility_modal.quote_public": "Pawb"
|
"visibility_modal.quote_public": "Pawb"
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,7 +292,7 @@
|
||||||
"domain_pill.your_handle": "Dit handle:",
|
"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_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.",
|
"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 indstilling",
|
"dropdown.empty": "Vælg en indstillingsmulighed",
|
||||||
"embed.instructions": "Indlejr dette indlæg på din hjemmeside ved at kopiere nedenstående kode.",
|
"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:",
|
"embed.preview": "Sådan kommer det til at se ud:",
|
||||||
"emoji_button.activity": "Aktivitet",
|
"emoji_button.activity": "Aktivitet",
|
||||||
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Åbn hjem-tidslinje",
|
"keyboard_shortcuts.home": "Åbn hjem-tidslinje",
|
||||||
"keyboard_shortcuts.hotkey": "Hurtigtast",
|
"keyboard_shortcuts.hotkey": "Hurtigtast",
|
||||||
"keyboard_shortcuts.legend": "Vis dette symbol",
|
"keyboard_shortcuts.legend": "Vis dette symbol",
|
||||||
"keyboard_shortcuts.load_more": "Fokusér knappen \"Indlæs flere\"",
|
|
||||||
"keyboard_shortcuts.local": "Åbn lokal tidslinje",
|
"keyboard_shortcuts.local": "Åbn lokal tidslinje",
|
||||||
"keyboard_shortcuts.mention": "Omtal forfatter",
|
"keyboard_shortcuts.mention": "Omtal forfatter",
|
||||||
"keyboard_shortcuts.muted": "Åbn listen over skjulte brugere",
|
"keyboard_shortcuts.muted": "Åbn listen over skjulte brugere",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Åbn medier",
|
"keyboard_shortcuts.open_media": "Åbn medier",
|
||||||
"keyboard_shortcuts.pinned": "Åbn liste over fastgjorte indlæg",
|
"keyboard_shortcuts.pinned": "Åbn liste over fastgjorte indlæg",
|
||||||
"keyboard_shortcuts.profile": "Åbn forfatters profil",
|
"keyboard_shortcuts.profile": "Åbn forfatters profil",
|
||||||
"keyboard_shortcuts.quote": "Citer indlæg",
|
|
||||||
"keyboard_shortcuts.reply": "Besvar indlægget",
|
"keyboard_shortcuts.reply": "Besvar indlægget",
|
||||||
"keyboard_shortcuts.requests": "Åbn liste over følgeanmodninger",
|
"keyboard_shortcuts.requests": "Åbn liste over følgeanmodninger",
|
||||||
"keyboard_shortcuts.search": "Fokusér søgebjælke",
|
"keyboard_shortcuts.search": "Fokusér søgebjælke",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Din konto er suspenderet.",
|
"notification.moderation_warning.action_suspend": "Din konto er suspenderet.",
|
||||||
"notification.own_poll": "Din afstemning er afsluttet",
|
"notification.own_poll": "Din afstemning er afsluttet",
|
||||||
"notification.poll": "En afstemning, hvori du har stemt, er slut",
|
"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} 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.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}",
|
"notification.relationships_severance_event": "Mistede forbindelser med {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Følgere",
|
"privacy.private.short": "Følgere",
|
||||||
"privacy.public.long": "Alle på og udenfor Mastodon",
|
"privacy.public.long": "Alle på og udenfor Mastodon",
|
||||||
"privacy.public.short": "Offentlig",
|
"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.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.long": "Færre algoritmiske fanfarer",
|
||||||
"privacy.unlisted.short": "Offentlig (stille)",
|
"privacy.unlisted.short": "Offentlig (stille)",
|
||||||
"privacy_policy.last_updated": "Senest opdateret {date}",
|
"privacy_policy.last_updated": "Senest opdateret {date}",
|
||||||
"privacy_policy.title": "Privatlivspolitik",
|
"privacy_policy.title": "Privatlivspolitik",
|
||||||
"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",
|
"recommended": "Anbefalet",
|
||||||
"refresh": "Genindlæs",
|
"refresh": "Genindlæs",
|
||||||
"regeneration_indicator.please_stand_by": "Vent venligst.",
|
"regeneration_indicator.please_stand_by": "Vent venligst.",
|
||||||
|
@ -859,11 +849,9 @@
|
||||||
"status.admin_account": "Åbn modereringsbrugerflade for @{name}",
|
"status.admin_account": "Åbn modereringsbrugerflade for @{name}",
|
||||||
"status.admin_domain": "Åbn modereringsbrugerflade for {domain}",
|
"status.admin_domain": "Åbn modereringsbrugerflade for {domain}",
|
||||||
"status.admin_status": "Åbn dette indlæg i modereringsbrugerfladen",
|
"status.admin_status": "Åbn dette indlæg i modereringsbrugerfladen",
|
||||||
"status.all_disabled": "Fremhævelser og citater er deaktiveret",
|
|
||||||
"status.block": "Blokér @{name}",
|
"status.block": "Blokér @{name}",
|
||||||
"status.bookmark": "Bogmærk",
|
"status.bookmark": "Bogmærk",
|
||||||
"status.cancel_reblog_private": "Fjern fremhævelse",
|
"status.cancel_reblog_private": "Fjern fremhævelse",
|
||||||
"status.cannot_quote": "Forfatter har deaktiveret citering af dette indlæg",
|
|
||||||
"status.cannot_reblog": "Dette indlæg kan ikke fremhæves",
|
"status.cannot_reblog": "Dette indlæg kan ikke fremhæves",
|
||||||
"status.context.load_new_replies": "Nye svar tilgængelige",
|
"status.context.load_new_replies": "Nye svar tilgængelige",
|
||||||
"status.context.loading": "Tjekker for flere svar",
|
"status.context.loading": "Tjekker for flere svar",
|
||||||
|
@ -892,23 +880,15 @@
|
||||||
"status.mute_conversation": "Skjul samtale",
|
"status.mute_conversation": "Skjul samtale",
|
||||||
"status.open": "Udvid dette indlæg",
|
"status.open": "Udvid dette indlæg",
|
||||||
"status.pin": "Fastgør til profil",
|
"status.pin": "Fastgør til profil",
|
||||||
"status.quote": "Citér",
|
|
||||||
"status.quote.cancel": "Annullér citat",
|
|
||||||
"status.quote_error.filtered": "Skjult grundet et af filterne",
|
"status.quote_error.filtered": "Skjult grundet et af filterne",
|
||||||
"status.quote_error.not_available": "Indlæg utilgængeligt",
|
"status.quote_error.not_available": "Indlæg utilgængeligt",
|
||||||
"status.quote_error.pending_approval": "Afventende indlæg",
|
"status.quote_error.pending_approval": "Afventende indlæg",
|
||||||
"status.quote_error.pending_approval_popout.body": "Citater delt på tværs af Fediverset kan tage tid at vise, da forskellige servere har forskellige protokoller.",
|
"status.quote_error.pending_approval_popout.body": "Citater delt på tværs af Fediverset kan tage tid at vise, da forskellige servere har forskellige protokoller.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Afventende citat? Tag det roligt",
|
"status.quote_error.pending_approval_popout.title": "Afventende citat? Tag det roligt",
|
||||||
"status.quote_followers_only": "Kun følgere kan citere dette indlæg",
|
|
||||||
"status.quote_manual_review": "Forfatter vil manuelt gennemgå",
|
|
||||||
"status.quote_policy_change": "Ændr hvem der kan citere",
|
"status.quote_policy_change": "Ændr hvem der kan citere",
|
||||||
"status.quote_post_author": "Citerede et indlæg fra @{name}",
|
"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.quotes.empty": "Ingen har citeret dette indlæg endnu. Når nogen gør det, vil det blive vist her.",
|
|
||||||
"status.read_more": "Læs mere",
|
"status.read_more": "Læs mere",
|
||||||
"status.reblog": "Fremhæv",
|
"status.reblog": "Fremhæv",
|
||||||
"status.reblog_or_quote": "Fremhæv eller citer",
|
|
||||||
"status.reblog_private": "Fremhæv med oprindelig synlighed",
|
"status.reblog_private": "Fremhæv med oprindelig synlighed",
|
||||||
"status.reblogged_by": "{name} fremhævede",
|
"status.reblogged_by": "{name} fremhævede",
|
||||||
"status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}",
|
"status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}",
|
||||||
|
@ -921,7 +901,6 @@
|
||||||
"status.reply": "Besvar",
|
"status.reply": "Besvar",
|
||||||
"status.replyAll": "Svar alle",
|
"status.replyAll": "Svar alle",
|
||||||
"status.report": "Anmeld @{name}",
|
"status.report": "Anmeld @{name}",
|
||||||
"status.request_quote": "Anmod om tilladelse til at citere",
|
|
||||||
"status.revoke_quote": "Fjern eget indlæg fra @{name}s indlæg",
|
"status.revoke_quote": "Fjern eget indlæg fra @{name}s indlæg",
|
||||||
"status.sensitive_warning": "Følsomt indhold",
|
"status.sensitive_warning": "Følsomt indhold",
|
||||||
"status.share": "Del",
|
"status.share": "Del",
|
||||||
|
@ -960,7 +939,6 @@
|
||||||
"upload_button.label": "Tilføj billed-, video- eller lydfil(er)",
|
"upload_button.label": "Tilføj billed-, video- eller lydfil(er)",
|
||||||
"upload_error.limit": "Grænse for filupload nået.",
|
"upload_error.limit": "Grænse for filupload nået.",
|
||||||
"upload_error.poll": "Filupload ikke tilladt for afstemninger.",
|
"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.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_cancel": "Træk blev afbrudt. Medievedhæftningen {item} blev sluppet.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Medievedhæftningen {item} er sluppet.",
|
"upload_form.drag_and_drop.on_drag_end": "Medievedhæftningen {item} er sluppet.",
|
||||||
|
@ -986,15 +964,14 @@
|
||||||
"video.volume_up": "Lydstyrke op",
|
"video.volume_up": "Lydstyrke op",
|
||||||
"visibility_modal.button_title": "Indstil synlighed",
|
"visibility_modal.button_title": "Indstil synlighed",
|
||||||
"visibility_modal.header": "Synlighed og interaktion",
|
"visibility_modal.header": "Synlighed og interaktion",
|
||||||
"visibility_modal.helper.direct_quoting": "Private omtaler forfattet på Mastodon kan ikke citeres af andre.",
|
"visibility_modal.helper.direct_quoting": "Private omtaler kan ikke citeres.",
|
||||||
"visibility_modal.helper.privacy_editing": "Publicerede indlægs synlighed kan ikke ændres.",
|
"visibility_modal.helper.privacy_editing": "Publicerede indlægs synlighed kan ikke ændres.",
|
||||||
"visibility_modal.helper.private_quoting": "Kun-følger indlæg forfattet på Mastodon kan ikke citeres af andre.",
|
"visibility_modal.helper.private_quoting": "Indlæg kun for følgere kan ikke citeres.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "Når folk citerer dig, vil deres indlæg også blive skjult fra trendtidslinjer.",
|
"visibility_modal.helper.unlisted_quoting": "Når man citeres af andre, skjules deres indlæg også på tendenstidslinjer.",
|
||||||
"visibility_modal.instructions": "Styr, hvem der kan interagere med dette indlæg. Globale indstillinger findes under <link>Præferencer > Andet</link>.",
|
"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.privacy_label": "Fortrolighed",
|
||||||
"visibility_modal.quote_followers": "Kun følgere",
|
"visibility_modal.quote_followers": "Kun følgere",
|
||||||
"visibility_modal.quote_label": "Ændr hvem der kan citere",
|
"visibility_modal.quote_label": "Ændr hvem der kan citere",
|
||||||
"visibility_modal.quote_nobody": "Kun en selv",
|
"visibility_modal.quote_nobody": "Ingen",
|
||||||
"visibility_modal.quote_public": "Alle",
|
"visibility_modal.quote_public": "Alle"
|
||||||
"visibility_modal.save": "Gem"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Startseite öffnen",
|
"keyboard_shortcuts.home": "Startseite öffnen",
|
||||||
"keyboard_shortcuts.hotkey": "Tastenkürzel",
|
"keyboard_shortcuts.hotkey": "Tastenkürzel",
|
||||||
"keyboard_shortcuts.legend": "Tastenkombinationen anzeigen",
|
"keyboard_shortcuts.legend": "Tastenkombinationen anzeigen",
|
||||||
"keyboard_shortcuts.load_more": "Schaltfläche „Mehr laden“ fokussieren",
|
|
||||||
"keyboard_shortcuts.local": "Lokale Timeline öffnen",
|
"keyboard_shortcuts.local": "Lokale Timeline öffnen",
|
||||||
"keyboard_shortcuts.mention": "Profil erwähnen",
|
"keyboard_shortcuts.mention": "Profil erwähnen",
|
||||||
"keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
|
"keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Medieninhalt öffnen",
|
"keyboard_shortcuts.open_media": "Medieninhalt öffnen",
|
||||||
"keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen",
|
"keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen",
|
||||||
"keyboard_shortcuts.profile": "Profil aufrufen",
|
"keyboard_shortcuts.profile": "Profil aufrufen",
|
||||||
"keyboard_shortcuts.quote": "Beitrag zitieren",
|
|
||||||
"keyboard_shortcuts.reply": "Auf Beitrag antworten",
|
"keyboard_shortcuts.reply": "Auf Beitrag antworten",
|
||||||
"keyboard_shortcuts.requests": "Liste der Follower-Anfragen aufrufen",
|
"keyboard_shortcuts.requests": "Liste der Follower-Anfragen aufrufen",
|
||||||
"keyboard_shortcuts.search": "Suchleiste fokussieren",
|
"keyboard_shortcuts.search": "Suchleiste fokussieren",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Dein Konto wurde gesperrt.",
|
"notification.moderation_warning.action_suspend": "Dein Konto wurde gesperrt.",
|
||||||
"notification.own_poll": "Deine Umfrage ist beendet",
|
"notification.own_poll": "Deine Umfrage ist beendet",
|
||||||
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, 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} 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.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",
|
"notification.relationships_severance_event": "Verbindungen mit {name} verloren",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Follower",
|
"privacy.private.short": "Follower",
|
||||||
"privacy.public.long": "Alle in und außerhalb von Mastodon",
|
"privacy.public.long": "Alle in und außerhalb von Mastodon",
|
||||||
"privacy.public.short": "Öffentlich",
|
"privacy.public.short": "Öffentlich",
|
||||||
"privacy.quote.anyone": "{visibility} – alle dürfen zitieren",
|
|
||||||
"privacy.quote.disabled": "{visibility} – niemand darf zitieren",
|
|
||||||
"privacy.quote.limited": "{visibility} – eingeschränktes Zitieren",
|
|
||||||
"privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch gibt es einige Einschränkungen. Der Beitrag wird nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion auffindbar sein – selbst wenn die zugehörige Einstellung aktiviert wurde.",
|
"privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch gibt es einige Einschränkungen. Der Beitrag wird nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion auffindbar sein – selbst wenn die zugehörige Einstellung aktiviert wurde.",
|
||||||
"privacy.unlisted.long": "Weniger im Algorithmus berücksichtigt",
|
"privacy.unlisted.long": "Weniger im Algorithmus berücksichtigt",
|
||||||
"privacy.unlisted.short": "Öffentlich (still)",
|
"privacy.unlisted.short": "Öffentlich (still)",
|
||||||
"privacy_policy.last_updated": "Stand: {date}",
|
"privacy_policy.last_updated": "Stand: {date}",
|
||||||
"privacy_policy.title": "Datenschutzerklärung",
|
"privacy_policy.title": "Datenschutzerklärung",
|
||||||
"quote_error.poll": "Zitieren ist bei Umfragen nicht gestattet.",
|
|
||||||
"quote_error.quote": "Es ist jeweils nur ein Zitat zulässig.",
|
|
||||||
"quote_error.unauthorized": "Du bist nicht berechtigt, diesen Beitrag zu zitieren.",
|
|
||||||
"quote_error.upload": "Zitieren ist mit Medien-Anhängen nicht möglich.",
|
|
||||||
"recommended": "Empfohlen",
|
"recommended": "Empfohlen",
|
||||||
"refresh": "Aktualisieren",
|
"refresh": "Aktualisieren",
|
||||||
"regeneration_indicator.please_stand_by": "Bitte warten.",
|
"regeneration_indicator.please_stand_by": "Bitte warten.",
|
||||||
|
@ -859,11 +849,9 @@
|
||||||
"status.admin_account": "@{name} moderieren",
|
"status.admin_account": "@{name} moderieren",
|
||||||
"status.admin_domain": "{domain} moderieren",
|
"status.admin_domain": "{domain} moderieren",
|
||||||
"status.admin_status": "Beitrag moderieren",
|
"status.admin_status": "Beitrag moderieren",
|
||||||
"status.all_disabled": "Teilen und Zitieren von Beiträgen ist deaktiviert",
|
|
||||||
"status.block": "@{name} blockieren",
|
"status.block": "@{name} blockieren",
|
||||||
"status.bookmark": "Lesezeichen setzen",
|
"status.bookmark": "Lesezeichen setzen",
|
||||||
"status.cancel_reblog_private": "Beitrag nicht mehr teilen",
|
"status.cancel_reblog_private": "Beitrag nicht mehr teilen",
|
||||||
"status.cannot_quote": "Autor*in hat das Zitieren dieses Beitrags deaktiviert",
|
|
||||||
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
|
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
|
||||||
"status.context.load_new_replies": "Neue Antworten verfügbar",
|
"status.context.load_new_replies": "Neue Antworten verfügbar",
|
||||||
"status.context.loading": "Weitere Antworten werden abgerufen",
|
"status.context.loading": "Weitere Antworten werden abgerufen",
|
||||||
|
@ -892,23 +880,16 @@
|
||||||
"status.mute_conversation": "Unterhaltung stummschalten",
|
"status.mute_conversation": "Unterhaltung stummschalten",
|
||||||
"status.open": "Beitrag öffnen",
|
"status.open": "Beitrag öffnen",
|
||||||
"status.pin": "Im Profil anheften",
|
"status.pin": "Im Profil anheften",
|
||||||
"status.quote": "Zitieren",
|
|
||||||
"status.quote.cancel": "Zitat abbrechen",
|
"status.quote.cancel": "Zitat abbrechen",
|
||||||
"status.quote_error.filtered": "Ausgeblendet wegen eines deiner Filter",
|
"status.quote_error.filtered": "Ausgeblendet wegen eines deiner Filter",
|
||||||
"status.quote_error.not_available": "Beitrag nicht verfügbar",
|
"status.quote_error.not_available": "Beitrag nicht verfügbar",
|
||||||
"status.quote_error.pending_approval": "Beitragsveröffentlichung ausstehend",
|
"status.quote_error.pending_approval": "Beitragsveröffentlichung ausstehend",
|
||||||
"status.quote_error.pending_approval_popout.body": "Zitierte Beiträge, die im Fediverse geteilt werden, benötigen einige Zeit, bis sie überall angezeigt werden, da die verschiedenen Server unterschiedliche Protokolle nutzen.",
|
"status.quote_error.pending_approval_popout.body": "Zitierte Beiträge, die im Fediverse geteilt werden, benötigen einige Zeit, bis sie überall angezeigt werden, da die verschiedenen Server unterschiedliche Protokolle nutzen.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Zitierter Beitrag noch nicht freigegeben? Immer mit der Ruhe",
|
"status.quote_error.pending_approval_popout.title": "Zitierter Beitrag noch nicht freigegeben? Immer mit der Ruhe",
|
||||||
"status.quote_followers_only": "Nur Follower können diesen Beitrag zitieren",
|
|
||||||
"status.quote_manual_review": "Zitierte*r überprüft manuell",
|
|
||||||
"status.quote_policy_change": "Ändern, wer zitieren darf",
|
"status.quote_policy_change": "Ändern, wer zitieren darf",
|
||||||
"status.quote_post_author": "Zitierte einen Beitrag von @{name}",
|
"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.quotes.empty": "Diesen Beitrag hat bisher noch niemand zitiert. Sobald es jemand tut, wird das Profil hier erscheinen.",
|
|
||||||
"status.read_more": "Gesamten Beitrag anschauen",
|
"status.read_more": "Gesamten Beitrag anschauen",
|
||||||
"status.reblog": "Teilen",
|
"status.reblog": "Teilen",
|
||||||
"status.reblog_or_quote": "Teilen oder zitieren",
|
|
||||||
"status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen",
|
"status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen",
|
||||||
"status.reblogged_by": "{name} teilte",
|
"status.reblogged_by": "{name} teilte",
|
||||||
"status.reblogs": "{count, plural, one {Mal geteilt} other {Mal geteilt}}",
|
"status.reblogs": "{count, plural, one {Mal geteilt} other {Mal geteilt}}",
|
||||||
|
@ -921,7 +902,6 @@
|
||||||
"status.reply": "Antworten",
|
"status.reply": "Antworten",
|
||||||
"status.replyAll": "Allen antworten",
|
"status.replyAll": "Allen antworten",
|
||||||
"status.report": "@{name} melden",
|
"status.report": "@{name} melden",
|
||||||
"status.request_quote": "Anfrage zum Zitieren",
|
|
||||||
"status.revoke_quote": "Meinen zitierten Beitrag aus dem Beitrag von @{name} entfernen",
|
"status.revoke_quote": "Meinen zitierten Beitrag aus dem Beitrag von @{name} entfernen",
|
||||||
"status.sensitive_warning": "Inhaltswarnung",
|
"status.sensitive_warning": "Inhaltswarnung",
|
||||||
"status.share": "Teilen",
|
"status.share": "Teilen",
|
||||||
|
@ -960,7 +940,6 @@
|
||||||
"upload_button.label": "Bilder, Video oder Audio hinzufügen",
|
"upload_button.label": "Bilder, Video oder Audio hinzufügen",
|
||||||
"upload_error.limit": "Dateiupload-Limit überschritten.",
|
"upload_error.limit": "Dateiupload-Limit überschritten.",
|
||||||
"upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.",
|
"upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.",
|
||||||
"upload_error.quote": "Medien-Anhänge sind zusammen mit Zitaten nicht erlaubt.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Drücke zum Aufnehmen eines Medienanhangs die Eingabe- oder Leertaste. Verwende beim Ziehen die Pfeiltasten, um den Medienanhang zur gewünschten Position zu bewegen. Drücke erneut die Eingabe- oder Leertaste, um den Medienanhang an der gewünschten Position abzulegen. Mit der Escape-Taste kannst du den Vorgang abbrechen.",
|
"upload_form.drag_and_drop.instructions": "Drücke zum Aufnehmen eines Medienanhangs die Eingabe- oder Leertaste. Verwende beim Ziehen die Pfeiltasten, um den Medienanhang zur gewünschten Position zu bewegen. Drücke erneut die Eingabe- oder Leertaste, um den Medienanhang an der gewünschten Position abzulegen. Mit der Escape-Taste kannst du den Vorgang abbrechen.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Das Ziehen wurde abgebrochen und der Medienanhang {item} wurde abgelegt.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Das Ziehen wurde abgebrochen und der Medienanhang {item} wurde abgelegt.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Der Medienanhang {item} wurde abgelegt.",
|
"upload_form.drag_and_drop.on_drag_end": "Der Medienanhang {item} wurde abgelegt.",
|
||||||
|
@ -986,15 +965,14 @@
|
||||||
"video.volume_up": "Lauter",
|
"video.volume_up": "Lauter",
|
||||||
"visibility_modal.button_title": "Sichtbarkeit festlegen",
|
"visibility_modal.button_title": "Sichtbarkeit festlegen",
|
||||||
"visibility_modal.header": "Sichtbarkeit und Interaktion",
|
"visibility_modal.header": "Sichtbarkeit und Interaktion",
|
||||||
"visibility_modal.helper.direct_quoting": "Private Erwähnungen, die auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.",
|
"visibility_modal.helper.direct_quoting": "Private Erwähnungen können nicht 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.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 und auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.",
|
"visibility_modal.helper.private_quoting": "Beiträge, die nur für deine Follower bestimmt sind, können nicht 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.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.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.privacy_label": "Datenschutz",
|
||||||
"visibility_modal.quote_followers": "Nur Follower",
|
"visibility_modal.quote_followers": "Nur Follower",
|
||||||
"visibility_modal.quote_label": "Ändern, wer zitieren darf",
|
"visibility_modal.quote_label": "Ändern, wer zitieren darf",
|
||||||
"visibility_modal.quote_nobody": "Nur von mir",
|
"visibility_modal.quote_nobody": "Niemand",
|
||||||
"visibility_modal.quote_public": "Alle",
|
"visibility_modal.quote_public": "Alle"
|
||||||
"visibility_modal.save": "Speichern"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Άνοιγμα ροής αρχικής σελίδας",
|
"keyboard_shortcuts.home": "Άνοιγμα ροής αρχικής σελίδας",
|
||||||
"keyboard_shortcuts.hotkey": "Συντόμευση",
|
"keyboard_shortcuts.hotkey": "Συντόμευση",
|
||||||
"keyboard_shortcuts.legend": "Εμφάνιση αυτού του οδηγού",
|
"keyboard_shortcuts.legend": "Εμφάνιση αυτού του οδηγού",
|
||||||
"keyboard_shortcuts.load_more": "Εστίαση στο κουμπί \"Φόρτωση περισσότερων\"",
|
|
||||||
"keyboard_shortcuts.local": "Άνοιγμα τοπικής ροής",
|
"keyboard_shortcuts.local": "Άνοιγμα τοπικής ροής",
|
||||||
"keyboard_shortcuts.mention": "Επισήμανση συγγραφέα",
|
"keyboard_shortcuts.mention": "Επισήμανση συγγραφέα",
|
||||||
"keyboard_shortcuts.muted": "Άνοιγμα λίστας αποσιωπημένων χρηστών",
|
"keyboard_shortcuts.muted": "Άνοιγμα λίστας αποσιωπημένων χρηστών",
|
||||||
|
@ -739,18 +738,11 @@
|
||||||
"privacy.private.short": "Ακόλουθοι",
|
"privacy.private.short": "Ακόλουθοι",
|
||||||
"privacy.public.long": "Όλοι εντός και εκτός του Mastodon",
|
"privacy.public.long": "Όλοι εντός και εκτός του Mastodon",
|
||||||
"privacy.public.short": "Δημόσιο",
|
"privacy.public.short": "Δημόσιο",
|
||||||
"privacy.quote.anyone": "{visibility}, ο καθένας μπορεί να παραθέσει",
|
|
||||||
"privacy.quote.disabled": "{visibility}, παραθέσεις απενεργοποιημένες",
|
|
||||||
"privacy.quote.limited": "{visibility}, παραθέσεις περιορισμένες",
|
|
||||||
"privacy.unlisted.additional": "Αυτό συμπεριφέρεται ακριβώς όπως το δημόσιο, εκτός από το ότι η ανάρτηση δεν θα εμφανιστεί σε ζωντανές ροές ή ετικέτες, εξερεύνηση ή αναζήτηση στο Mastodon, ακόμη και αν το έχεις επιλέξει για τον λογαριασμό σου.",
|
"privacy.unlisted.additional": "Αυτό συμπεριφέρεται ακριβώς όπως το δημόσιο, εκτός από το ότι η ανάρτηση δεν θα εμφανιστεί σε ζωντανές ροές ή ετικέτες, εξερεύνηση ή αναζήτηση στο Mastodon, ακόμη και αν το έχεις επιλέξει για τον λογαριασμό σου.",
|
||||||
"privacy.unlisted.long": "Λιγότερα αλγοριθμικά κόλπα",
|
"privacy.unlisted.long": "Λιγότερα αλγοριθμικά κόλπα",
|
||||||
"privacy.unlisted.short": "Ήσυχα δημόσια",
|
"privacy.unlisted.short": "Ήσυχα δημόσια",
|
||||||
"privacy_policy.last_updated": "Τελευταία ενημέρωση {date}",
|
"privacy_policy.last_updated": "Τελευταία ενημέρωση {date}",
|
||||||
"privacy_policy.title": "Πολιτική Απορρήτου",
|
"privacy_policy.title": "Πολιτική Απορρήτου",
|
||||||
"quote_error.poll": "Η παράθεση δεν επιτρέπεται με δημοσκοπήσεις.",
|
|
||||||
"quote_error.quote": "Επιτρέπεται μόνο μία παράθεση τη φορά.",
|
|
||||||
"quote_error.unauthorized": "Δεν είστε εξουσιοδοτημένοι να παραθέσετε αυτή την ανάρτηση.",
|
|
||||||
"quote_error.upload": "Η παράθεση δεν επιτρέπεται με συνημμένα πολυμέσων.",
|
|
||||||
"recommended": "Προτεινόμενα",
|
"recommended": "Προτεινόμενα",
|
||||||
"refresh": "Ανανέωση",
|
"refresh": "Ανανέωση",
|
||||||
"regeneration_indicator.please_stand_by": "Παρακαλούμε περίμενε.",
|
"regeneration_indicator.please_stand_by": "Παρακαλούμε περίμενε.",
|
||||||
|
@ -857,11 +849,9 @@
|
||||||
"status.admin_account": "Άνοιγμα διεπαφής συντονισμού για τον/την @{name}",
|
"status.admin_account": "Άνοιγμα διεπαφής συντονισμού για τον/την @{name}",
|
||||||
"status.admin_domain": "Άνοιγμα λειτουργίας διαμεσολάβησης για {domain}",
|
"status.admin_domain": "Άνοιγμα λειτουργίας διαμεσολάβησης για {domain}",
|
||||||
"status.admin_status": "Άνοιγμα αυτής της ανάρτησης σε διεπαφή συντονισμού",
|
"status.admin_status": "Άνοιγμα αυτής της ανάρτησης σε διεπαφή συντονισμού",
|
||||||
"status.all_disabled": "Ενισχύσεις και παραθέσεις είναι απενεργοποιημένες",
|
|
||||||
"status.block": "Αποκλεισμός @{name}",
|
"status.block": "Αποκλεισμός @{name}",
|
||||||
"status.bookmark": "Σελιδοδείκτης",
|
"status.bookmark": "Σελιδοδείκτης",
|
||||||
"status.cancel_reblog_private": "Ακύρωση ενίσχυσης",
|
"status.cancel_reblog_private": "Ακύρωση ενίσχυσης",
|
||||||
"status.cannot_quote": "Ο συντάκτης έχει απενεργοποιήσει την παράθεση σε αυτή την ανάρτηση",
|
|
||||||
"status.cannot_reblog": "Αυτή η ανάρτηση δεν μπορεί να ενισχυθεί",
|
"status.cannot_reblog": "Αυτή η ανάρτηση δεν μπορεί να ενισχυθεί",
|
||||||
"status.context.load_new_replies": "Νέες απαντήσεις διαθέσιμες",
|
"status.context.load_new_replies": "Νέες απαντήσεις διαθέσιμες",
|
||||||
"status.context.loading": "Γίνεται έλεγχος για περισσότερες απαντήσεις",
|
"status.context.loading": "Γίνεται έλεγχος για περισσότερες απαντήσεις",
|
||||||
|
@ -890,8 +880,6 @@
|
||||||
"status.mute_conversation": "Σίγαση συνομιλίας",
|
"status.mute_conversation": "Σίγαση συνομιλίας",
|
||||||
"status.open": "Επέκταση ανάρτησης",
|
"status.open": "Επέκταση ανάρτησης",
|
||||||
"status.pin": "Καρφίτσωσε στο προφίλ",
|
"status.pin": "Καρφίτσωσε στο προφίλ",
|
||||||
"status.quote": "Παράθεση",
|
|
||||||
"status.quote.cancel": "Ακύρωση παράθεσης",
|
|
||||||
"status.quote_error.filtered": "Κρυφό λόγω ενός από τα φίλτρα σου",
|
"status.quote_error.filtered": "Κρυφό λόγω ενός από τα φίλτρα σου",
|
||||||
"status.quote_error.not_available": "Ανάρτηση μη διαθέσιμη",
|
"status.quote_error.not_available": "Ανάρτηση μη διαθέσιμη",
|
||||||
"status.quote_error.pending_approval": "Ανάρτηση σε αναμονή",
|
"status.quote_error.pending_approval": "Ανάρτηση σε αναμονή",
|
||||||
|
@ -899,7 +887,6 @@
|
||||||
"status.quote_error.pending_approval_popout.title": "Παράθεση σε εκκρεμότητα; Μείνετε ψύχραιμοι",
|
"status.quote_error.pending_approval_popout.title": "Παράθεση σε εκκρεμότητα; Μείνετε ψύχραιμοι",
|
||||||
"status.quote_policy_change": "Αλλάξτε ποιός μπορεί να κάνει παράθεση",
|
"status.quote_policy_change": "Αλλάξτε ποιός μπορεί να κάνει παράθεση",
|
||||||
"status.quote_post_author": "Παρατίθεται μια ανάρτηση από @{name}",
|
"status.quote_post_author": "Παρατίθεται μια ανάρτηση από @{name}",
|
||||||
"status.quote_private": "Ιδιωτικές αναρτήσεις δεν μπορούν να παρατεθούν",
|
|
||||||
"status.read_more": "Διάβασε περισότερα",
|
"status.read_more": "Διάβασε περισότερα",
|
||||||
"status.reblog": "Ενίσχυση",
|
"status.reblog": "Ενίσχυση",
|
||||||
"status.reblog_private": "Ενίσχυση με αρχική ορατότητα",
|
"status.reblog_private": "Ενίσχυση με αρχική ορατότητα",
|
||||||
|
@ -952,7 +939,6 @@
|
||||||
"upload_button.label": "Πρόσθεσε εικόνες, ένα βίντεο ή ένα αρχείο ήχου",
|
"upload_button.label": "Πρόσθεσε εικόνες, ένα βίντεο ή ένα αρχείο ήχου",
|
||||||
"upload_error.limit": "Υπέρβαση ορίου μεγέθους ανεβασμένων αρχείων.",
|
"upload_error.limit": "Υπέρβαση ορίου μεγέθους ανεβασμένων αρχείων.",
|
||||||
"upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
|
"upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
|
||||||
"upload_error.quote": "Δεν επιτρέπεται η μεταφόρτωση αρχείου με παραθέσεις.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Για να επιλέξετε ένα συνημμένο αρχείο πολυμέσων, πατήστε το Space ή το Enter. Ενώ το σέρνετε, χρησιμοποιήστε τα πλήκτρα βέλους για να μετακινήσετε το συνημμένο αρχείο πολυμέσων προς οποιαδήποτε κατεύθυνση. Πατήστε ξανά το Space ή το Enter για να αποθέσετε το συνημμένο αρχείο πολυμέσων στη νέα του θέση ή πατήστε το Escape για ακύρωση.",
|
"upload_form.drag_and_drop.instructions": "Για να επιλέξετε ένα συνημμένο αρχείο πολυμέσων, πατήστε το Space ή το Enter. Ενώ το σέρνετε, χρησιμοποιήστε τα πλήκτρα βέλους για να μετακινήσετε το συνημμένο αρχείο πολυμέσων προς οποιαδήποτε κατεύθυνση. Πατήστε ξανά το Space ή το Enter για να αποθέσετε το συνημμένο αρχείο πολυμέσων στη νέα του θέση ή πατήστε το Escape για ακύρωση.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Η μετακίνηση ακυρώθηκε. Έγινε απόθεση του συνημμένου αρχείου πολυμέσων «{item}».",
|
"upload_form.drag_and_drop.on_drag_cancel": "Η μετακίνηση ακυρώθηκε. Έγινε απόθεση του συνημμένου αρχείου πολυμέσων «{item}».",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Έγινε απόθεση του συνημμένου αρχείου πολυμέσων «{item}».",
|
"upload_form.drag_and_drop.on_drag_end": "Έγινε απόθεση του συνημμένου αρχείου πολυμέσων «{item}».",
|
||||||
|
@ -978,12 +964,14 @@
|
||||||
"video.volume_up": "Αύξηση έντασης",
|
"video.volume_up": "Αύξηση έντασης",
|
||||||
"visibility_modal.button_title": "Ορισμός ορατότητας",
|
"visibility_modal.button_title": "Ορισμός ορατότητας",
|
||||||
"visibility_modal.header": "Ορατότητα και αλληλεπίδραση",
|
"visibility_modal.header": "Ορατότητα και αλληλεπίδραση",
|
||||||
|
"visibility_modal.helper.direct_quoting": "Ιδιωτικές επισημάνσεις δεν μπορούν να παρατεθούν.",
|
||||||
"visibility_modal.helper.privacy_editing": "Δημοσιευμένες αναρτήσεις δεν μπορούν να αλλάξουν την ορατότητά τους.",
|
"visibility_modal.helper.privacy_editing": "Δημοσιευμένες αναρτήσεις δεν μπορούν να αλλάξουν την ορατότητά τους.",
|
||||||
|
"visibility_modal.helper.private_quoting": "Οι αναρτήσεις μόνο για ακολούθους δεν μπορούν να παρατεθούν.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "Όταν οι άνθρωποι σας παραθέτουν, η ανάρτηση τους θα είναι επίσης κρυμμένη από τα δημοφιλή χρονοδιαγράμματα.",
|
"visibility_modal.helper.unlisted_quoting": "Όταν οι άνθρωποι σας παραθέτουν, η ανάρτηση τους θα είναι επίσης κρυμμένη από τα δημοφιλή χρονοδιαγράμματα.",
|
||||||
"visibility_modal.instructions": "Ελέγξτε ποιός μπορεί να αλληλεπιδράσει με αυτή την ανάρτηση. Οι καθολικές ρυθμίσεις μπορούν να βρεθούν κάτω από <link>Προτιμήσεις > Άλλα</link>.",
|
"visibility_modal.instructions": "Ελέγξτε ποιός μπορεί να αλληλεπιδράσει με αυτή την ανάρτηση. Οι καθολικές ρυθμίσεις μπορούν να βρεθούν κάτω από <link>Προτιμήσεις > Άλλα</link>.",
|
||||||
"visibility_modal.privacy_label": "Απόρρητο",
|
"visibility_modal.privacy_label": "Απόρρητο",
|
||||||
"visibility_modal.quote_followers": "Μόνο ακόλουθοι",
|
"visibility_modal.quote_followers": "Μόνο ακόλουθοι",
|
||||||
"visibility_modal.quote_label": "Αλλάξτε ποιός μπορεί να κάνει παράθεση",
|
"visibility_modal.quote_label": "Αλλάξτε ποιός μπορεί να κάνει παράθεση",
|
||||||
"visibility_modal.quote_public": "Οποιοσδήποτε",
|
"visibility_modal.quote_nobody": "Κανένας",
|
||||||
"visibility_modal.save": "Αποθήκευση"
|
"visibility_modal.quote_public": "Οποιοσδήποτε"
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Open home timeline",
|
"keyboard_shortcuts.home": "Open home timeline",
|
||||||
"keyboard_shortcuts.hotkey": "Hotkey",
|
"keyboard_shortcuts.hotkey": "Hotkey",
|
||||||
"keyboard_shortcuts.legend": "Display this legend",
|
"keyboard_shortcuts.legend": "Display this legend",
|
||||||
"keyboard_shortcuts.load_more": "Focus \"Load more\" button",
|
|
||||||
"keyboard_shortcuts.local": "Open local timeline",
|
"keyboard_shortcuts.local": "Open local timeline",
|
||||||
"keyboard_shortcuts.mention": "Mention author",
|
"keyboard_shortcuts.mention": "Mention author",
|
||||||
"keyboard_shortcuts.muted": "Open muted users list",
|
"keyboard_shortcuts.muted": "Open muted users list",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Open media",
|
"keyboard_shortcuts.open_media": "Open media",
|
||||||
"keyboard_shortcuts.pinned": "Open pinned posts list",
|
"keyboard_shortcuts.pinned": "Open pinned posts list",
|
||||||
"keyboard_shortcuts.profile": "Open author's profile",
|
"keyboard_shortcuts.profile": "Open author's profile",
|
||||||
"keyboard_shortcuts.quote": "Quote post",
|
|
||||||
"keyboard_shortcuts.reply": "Reply to post",
|
"keyboard_shortcuts.reply": "Reply to post",
|
||||||
"keyboard_shortcuts.requests": "Open follow requests list",
|
"keyboard_shortcuts.requests": "Open follow requests list",
|
||||||
"keyboard_shortcuts.search": "Focus search bar",
|
"keyboard_shortcuts.search": "Focus search bar",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Your account has been suspended.",
|
"notification.moderation_warning.action_suspend": "Your account has been suspended.",
|
||||||
"notification.own_poll": "Your poll has ended",
|
"notification.own_poll": "Your poll has ended",
|
||||||
"notification.poll": "A poll you voted in 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} boosted your post",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} and <a>{count, plural, one {# other} other {# others}}</a> 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}",
|
"notification.relationships_severance_event": "Lost connections with {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Followers",
|
"privacy.private.short": "Followers",
|
||||||
"privacy.public.long": "Anyone on and off Mastodon",
|
"privacy.public.long": "Anyone on and off Mastodon",
|
||||||
"privacy.public.short": "Public",
|
"privacy.public.short": "Public",
|
||||||
"privacy.quote.anyone": "{visibility}, anyone can quote",
|
|
||||||
"privacy.quote.disabled": "{visibility}, quotes disabled",
|
|
||||||
"privacy.quote.limited": "{visibility}, quotes limited",
|
|
||||||
"privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.",
|
"privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.",
|
||||||
"privacy.unlisted.long": "Fewer algorithmic fanfares",
|
"privacy.unlisted.long": "Fewer algorithmic fanfares",
|
||||||
"privacy.unlisted.short": "Quiet public",
|
"privacy.unlisted.short": "Quiet public",
|
||||||
"privacy_policy.last_updated": "Last updated {date}",
|
"privacy_policy.last_updated": "Last updated {date}",
|
||||||
"privacy_policy.title": "Privacy Policy",
|
"privacy_policy.title": "Privacy Policy",
|
||||||
"quote_error.poll": "Quoting is not allowed with polls.",
|
|
||||||
"quote_error.quote": "Only one quote at a time is allowed.",
|
|
||||||
"quote_error.unauthorized": "You are not authorized to quote this post.",
|
|
||||||
"quote_error.upload": "Quoting is not allowed with media attachments.",
|
|
||||||
"recommended": "Recommended",
|
"recommended": "Recommended",
|
||||||
"refresh": "Refresh",
|
"refresh": "Refresh",
|
||||||
"regeneration_indicator.please_stand_by": "Please stand by.",
|
"regeneration_indicator.please_stand_by": "Please stand by.",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "Open moderation interface for @{name}",
|
"status.admin_account": "Open moderation interface for @{name}",
|
||||||
"status.admin_domain": "Open moderation interface for {domain}",
|
"status.admin_domain": "Open moderation interface for {domain}",
|
||||||
"status.admin_status": "Open this post in the moderation interface",
|
"status.admin_status": "Open this post in the moderation interface",
|
||||||
"status.all_disabled": "Boosts and quotes are disabled",
|
|
||||||
"status.block": "Block @{name}",
|
"status.block": "Block @{name}",
|
||||||
"status.bookmark": "Bookmark",
|
"status.bookmark": "Bookmark",
|
||||||
"status.cancel_reblog_private": "Unboost",
|
"status.cancel_reblog_private": "Unboost",
|
||||||
"status.cannot_quote": "Author has disabled quoting on this post",
|
|
||||||
"status.cannot_reblog": "This post cannot be boosted",
|
"status.cannot_reblog": "This post cannot be boosted",
|
||||||
"status.context.load_new_replies": "New replies available",
|
"status.context.load_new_replies": "New replies available",
|
||||||
"status.context.loading": "Checking for more replies",
|
"status.context.loading": "Checking for more replies",
|
||||||
"status.continued_thread": "Continued thread",
|
"status.continued_thread": "Continued thread",
|
||||||
"status.copy": "Copy link to post",
|
"status.copy": "Copy link to post",
|
||||||
"status.delete": "Delete",
|
"status.delete": "Delete",
|
||||||
"status.delete.success": "Post deleted",
|
|
||||||
"status.detailed_status": "Detailed conversation view",
|
"status.detailed_status": "Detailed conversation view",
|
||||||
"status.direct": "Privately mention @{name}",
|
"status.direct": "Privately mention @{name}",
|
||||||
"status.direct_indicator": "Private mention",
|
"status.direct_indicator": "Private mention",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "Mute conversation",
|
"status.mute_conversation": "Mute conversation",
|
||||||
"status.open": "Expand this post",
|
"status.open": "Expand this post",
|
||||||
"status.pin": "Pin on profile",
|
"status.pin": "Pin on profile",
|
||||||
"status.quote": "Quote",
|
|
||||||
"status.quote.cancel": "Cancel quote",
|
"status.quote.cancel": "Cancel quote",
|
||||||
"status.quote_error.filtered": "Hidden due to one of your filters",
|
"status.quote_error.filtered": "Hidden due to one of your filters",
|
||||||
"status.quote_error.not_available": "Post unavailable",
|
"status.quote_error.not_available": "Post unavailable",
|
||||||
"status.quote_error.pending_approval": "Post pending",
|
"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.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_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_policy_change": "Change who can quote",
|
||||||
"status.quote_post_author": "Quoted a post by @{name}",
|
"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.read_more": "Read more",
|
||||||
"status.reblog": "Boost",
|
"status.reblog": "Boost",
|
||||||
"status.reblog_or_quote": "Boost or quote",
|
|
||||||
"status.reblog_private": "Boost with original visibility",
|
"status.reblog_private": "Boost with original visibility",
|
||||||
"status.reblogged_by": "{name} boosted",
|
"status.reblogged_by": "{name} boosted",
|
||||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "Reply",
|
"status.reply": "Reply",
|
||||||
"status.replyAll": "Reply to thread",
|
"status.replyAll": "Reply to thread",
|
||||||
"status.report": "Report @{name}",
|
"status.report": "Report @{name}",
|
||||||
"status.request_quote": "Request to quote",
|
|
||||||
"status.revoke_quote": "Remove my post from @{name}’s post",
|
"status.revoke_quote": "Remove my post from @{name}’s post",
|
||||||
"status.sensitive_warning": "Sensitive content",
|
"status.sensitive_warning": "Sensitive content",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "Add images, a video or an audio file",
|
"upload_button.label": "Add images, a video or an audio file",
|
||||||
"upload_error.limit": "File upload limit exceeded.",
|
"upload_error.limit": "File upload limit exceeded.",
|
||||||
"upload_error.poll": "File upload not allowed with polls.",
|
"upload_error.poll": "File upload not allowed with polls.",
|
||||||
"upload_error.quote": "File upload not allowed with quotes.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "To pick up a media attachment, press space or enter. While dragging, use the arrow keys to move the media attachment in any given direction. Press space or enter again to drop the media attachment in its new position, or press escape to cancel.",
|
"upload_form.drag_and_drop.instructions": "To pick up a media attachment, press space or enter. While dragging, use the arrow keys to move the media attachment in any given direction. Press space or enter again to drop the media attachment in its new position, or press escape to cancel.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Dragging was cancelled. Media attachment {item} was dropped.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Dragging was cancelled. Media attachment {item} was dropped.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Media attachment {item} was dropped.",
|
"upload_form.drag_and_drop.on_drag_end": "Media attachment {item} was dropped.",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "Volume up",
|
"video.volume_up": "Volume up",
|
||||||
"visibility_modal.button_title": "Set visibility",
|
"visibility_modal.button_title": "Set visibility",
|
||||||
"visibility_modal.header": "Visibility and interaction",
|
"visibility_modal.header": "Visibility and interaction",
|
||||||
"visibility_modal.helper.direct_quoting": "Private mentions authored on Mastodon can't be quoted by others.",
|
"visibility_modal.helper.direct_quoting": "Private mentions can't be quoted.",
|
||||||
"visibility_modal.helper.privacy_editing": "Published posts cannot change their visibility.",
|
"visibility_modal.helper.privacy_editing": "Published posts cannot change their visibility.",
|
||||||
"visibility_modal.helper.private_quoting": "Follower-only posts authored on Mastodon can't be quoted by others.",
|
"visibility_modal.helper.private_quoting": "Follower-only posts can't be quoted.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "When people quote you, their post will also be hidden from trending timelines.",
|
"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.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.privacy_label": "Privacy",
|
||||||
"visibility_modal.quote_followers": "Followers only",
|
"visibility_modal.quote_followers": "Followers only",
|
||||||
"visibility_modal.quote_label": "Change who can quote",
|
"visibility_modal.quote_label": "Change who can quote",
|
||||||
"visibility_modal.quote_nobody": "Just me",
|
"visibility_modal.quote_nobody": "No one",
|
||||||
"visibility_modal.quote_public": "Anyone",
|
"visibility_modal.quote_public": "Anyone"
|
||||||
"visibility_modal.save": "Save"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -568,8 +568,6 @@
|
||||||
"navigation_bar.preferences": "Preferoj",
|
"navigation_bar.preferences": "Preferoj",
|
||||||
"navigation_bar.privacy_and_reach": "Privateco kaj atingo",
|
"navigation_bar.privacy_and_reach": "Privateco kaj atingo",
|
||||||
"navigation_bar.search": "Serĉi",
|
"navigation_bar.search": "Serĉi",
|
||||||
"navigation_panel.expand_followed_tags": "Malfermi la menuon de sekvataj haŝetikedoj",
|
|
||||||
"navigation_panel.expand_lists": "Malfermi la listmenuon",
|
|
||||||
"not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.",
|
"not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.",
|
||||||
"notification.admin.report": "{name} raportis {target}",
|
"notification.admin.report": "{name} raportis {target}",
|
||||||
"notification.admin.report_account": "{name} raportis {count, plural, one {afiŝon} other {# afiŝojn}} de {target} por {category}",
|
"notification.admin.report_account": "{name} raportis {count, plural, one {afiŝon} other {# afiŝojn}} de {target} por {category}",
|
||||||
|
@ -606,7 +604,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Via konto estas malakceptita.",
|
"notification.moderation_warning.action_suspend": "Via konto estas malakceptita.",
|
||||||
"notification.own_poll": "Via balotenketo finiĝitis",
|
"notification.own_poll": "Via balotenketo finiĝitis",
|
||||||
"notification.poll": "Balotenketo, en kiu vi voĉdonis, finiĝis",
|
"notification.poll": "Balotenketo, en kiu vi voĉdonis, finiĝis",
|
||||||
"notification.quoted_update": "{name} redaktis afiŝon, kiun vi citis",
|
|
||||||
"notification.reblog": "{name} diskonigis vian afiŝon",
|
"notification.reblog": "{name} diskonigis vian afiŝon",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} kaj <a>{count, plural, one {# alia} other {# aliaj}}</a> diskonigis vian afiŝon",
|
"notification.reblog.name_and_others_with_link": "{name} kaj <a>{count, plural, one {# alia} other {# aliaj}}</a> diskonigis vian afiŝon",
|
||||||
"notification.relationships_severance_event": "Perditaj konektoj kun {name}",
|
"notification.relationships_severance_event": "Perditaj konektoj kun {name}",
|
||||||
|
@ -726,14 +723,11 @@
|
||||||
"privacy.private.short": "Sekvantoj",
|
"privacy.private.short": "Sekvantoj",
|
||||||
"privacy.public.long": "Ĉiujn ajn ĉe kaj ekster Mastodon",
|
"privacy.public.long": "Ĉiujn ajn ĉe kaj ekster Mastodon",
|
||||||
"privacy.public.short": "Publika",
|
"privacy.public.short": "Publika",
|
||||||
"privacy.quote.anyone": "{visibility}, iu ajn povas citi",
|
|
||||||
"privacy.unlisted.additional": "Ĉi tio kondutas ekzakte kiel publika, krom ke la afiŝo ne aperos en vivaj fluoj aŭ kradvortoj, esploro aŭ Mastodon-serĉo, eĉ se vi estas enskribita en la tuta konto.",
|
"privacy.unlisted.additional": "Ĉi tio kondutas ekzakte kiel publika, krom ke la afiŝo ne aperos en vivaj fluoj aŭ kradvortoj, esploro aŭ Mastodon-serĉo, eĉ se vi estas enskribita en la tuta konto.",
|
||||||
"privacy.unlisted.long": "Malpli algoritmaj fanfaroj",
|
"privacy.unlisted.long": "Malpli algoritmaj fanfaroj",
|
||||||
"privacy.unlisted.short": "Diskrete publika",
|
"privacy.unlisted.short": "Diskrete publika",
|
||||||
"privacy_policy.last_updated": "Laste ĝisdatigita en {date}",
|
"privacy_policy.last_updated": "Laste ĝisdatigita en {date}",
|
||||||
"privacy_policy.title": "Politiko de privateco",
|
"privacy_policy.title": "Politiko de privateco",
|
||||||
"quote_error.quote": "Nur unu citaĵo samtempe estas permesita.",
|
|
||||||
"quote_error.unauthorized": "Vi ne rajtas citi tiun ĉi afiŝon.",
|
|
||||||
"recommended": "Rekomendita",
|
"recommended": "Rekomendita",
|
||||||
"refresh": "Refreŝigu",
|
"refresh": "Refreŝigu",
|
||||||
"regeneration_indicator.please_stand_by": "Bonvolu atendi.",
|
"regeneration_indicator.please_stand_by": "Bonvolu atendi.",
|
||||||
|
@ -843,14 +837,12 @@
|
||||||
"status.block": "Bloki @{name}",
|
"status.block": "Bloki @{name}",
|
||||||
"status.bookmark": "Aldoni al la legosignoj",
|
"status.bookmark": "Aldoni al la legosignoj",
|
||||||
"status.cancel_reblog_private": "Ne plu diskonigi",
|
"status.cancel_reblog_private": "Ne plu diskonigi",
|
||||||
"status.cannot_quote": "La aŭtoro malŝaltis citadon en ĉi tiu afiŝo",
|
|
||||||
"status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi",
|
"status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi",
|
||||||
"status.context.load_new_replies": "Disponeblaj novaj respondoj",
|
"status.context.load_new_replies": "Disponeblaj novaj respondoj",
|
||||||
"status.context.loading": "Serĉante pliajn respondojn",
|
"status.context.loading": "Serĉante pliajn respondojn",
|
||||||
"status.continued_thread": "Daŭrigis fadenon",
|
"status.continued_thread": "Daŭrigis fadenon",
|
||||||
"status.copy": "Kopii la ligilon al la afiŝo",
|
"status.copy": "Kopii la ligilon al la afiŝo",
|
||||||
"status.delete": "Forigi",
|
"status.delete": "Forigi",
|
||||||
"status.delete.success": "Afiŝo forigita",
|
|
||||||
"status.detailed_status": "Detala konversacia vido",
|
"status.detailed_status": "Detala konversacia vido",
|
||||||
"status.direct": "Private mencii @{name}",
|
"status.direct": "Private mencii @{name}",
|
||||||
"status.direct_indicator": "Privata mencio",
|
"status.direct_indicator": "Privata mencio",
|
||||||
|
@ -873,19 +865,9 @@
|
||||||
"status.mute_conversation": "Silentigi konversacion",
|
"status.mute_conversation": "Silentigi konversacion",
|
||||||
"status.open": "Pligrandigu ĉi tiun afiŝon",
|
"status.open": "Pligrandigu ĉi tiun afiŝon",
|
||||||
"status.pin": "Alpingli al la profilo",
|
"status.pin": "Alpingli al la profilo",
|
||||||
"status.quote": "Citaĵo",
|
|
||||||
"status.quote.cancel": "Nuligi citaĵon",
|
|
||||||
"status.quote_error.filtered": "Kaŝita pro unu el viaj filtriloj",
|
|
||||||
"status.quote_error.not_available": "Afiŝo ne disponebla",
|
"status.quote_error.not_available": "Afiŝo ne disponebla",
|
||||||
"status.quote_error.pending_approval": "Pritraktata afiŝo",
|
"status.quote_error.pending_approval": "Pritraktata afiŝo",
|
||||||
"status.quote_error.pending_approval_popout.body": "Citaĵoj diskonigitaj tra la Fediverso povas bezoni tempon por montriĝi, ĉar malsamaj serviloj havas malsamajn protokolojn.",
|
|
||||||
"status.quote_error.pending_approval_popout.title": "Ĉu pritraktata citaĵo? Restu trankvila",
|
"status.quote_error.pending_approval_popout.title": "Ĉu pritraktata citaĵo? Restu trankvila",
|
||||||
"status.quote_followers_only": "Nur sekvantoj rajtas citi tiun ĉi afiŝon",
|
|
||||||
"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.quotes.empty": "Neniu citis ĉi tiun afiŝon ankoraŭ. Kiam iu faros tion, ĝi aperos ĉi tie.",
|
|
||||||
"status.read_more": "Legi pli",
|
"status.read_more": "Legi pli",
|
||||||
"status.reblog": "Diskonigi",
|
"status.reblog": "Diskonigi",
|
||||||
"status.reblog_private": "Diskonigi kun la sama videbleco",
|
"status.reblog_private": "Diskonigi kun la sama videbleco",
|
||||||
|
@ -900,7 +882,6 @@
|
||||||
"status.reply": "Respondi",
|
"status.reply": "Respondi",
|
||||||
"status.replyAll": "Respondi al la fadeno",
|
"status.replyAll": "Respondi al la fadeno",
|
||||||
"status.report": "Raporti @{name}",
|
"status.report": "Raporti @{name}",
|
||||||
"status.revoke_quote": "Forigu mian afiŝon el la afiŝo de @{name}",
|
|
||||||
"status.sensitive_warning": "Tikla enhavo",
|
"status.sensitive_warning": "Tikla enhavo",
|
||||||
"status.share": "Kundividi",
|
"status.share": "Kundividi",
|
||||||
"status.show_less_all": "Montri malpli ĉiun",
|
"status.show_less_all": "Montri malpli ĉiun",
|
||||||
|
@ -938,7 +919,6 @@
|
||||||
"upload_button.label": "Aldonu bildojn, filmeton aŭ sondosieron",
|
"upload_button.label": "Aldonu bildojn, filmeton aŭ sondosieron",
|
||||||
"upload_error.limit": "Limo de dosiera alŝutado transpasita.",
|
"upload_error.limit": "Limo de dosiera alŝutado transpasita.",
|
||||||
"upload_error.poll": "Alŝuto de dosiero ne permesita kun balotenketo.",
|
"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.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_cancel": "Trenado estis nuligita. Amaskomunikila aldonaĵo {item} estis forigita.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Amaskomunikila aldonaĵo {item} estis forigita.",
|
"upload_form.drag_and_drop.on_drag_end": "Amaskomunikila aldonaĵo {item} estis forigita.",
|
||||||
|
@ -964,12 +944,13 @@
|
||||||
"video.volume_up": "Laŭteco pliigi",
|
"video.volume_up": "Laŭteco pliigi",
|
||||||
"visibility_modal.button_title": "Agordu videblon",
|
"visibility_modal.button_title": "Agordu videblon",
|
||||||
"visibility_modal.header": "Videblo kaj interago",
|
"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.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.helper.unlisted_quoting": "Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj.",
|
||||||
"visibility_modal.privacy_label": "Privateco",
|
"visibility_modal.privacy_label": "Privateco",
|
||||||
"visibility_modal.quote_followers": "Nur sekvantoj",
|
"visibility_modal.quote_followers": "Nur sekvantoj",
|
||||||
"visibility_modal.quote_label": "Ŝanĝi kiu povas citi",
|
"visibility_modal.quote_label": "Ŝanĝi kiu povas citi",
|
||||||
"visibility_modal.quote_nobody": "Nur mi",
|
"visibility_modal.quote_nobody": "Neniu",
|
||||||
"visibility_modal.quote_public": "Iu ajn",
|
"visibility_modal.quote_public": "Iu ajn"
|
||||||
"visibility_modal.save": "Konservi"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Abrir línea temporal principal",
|
"keyboard_shortcuts.home": "Abrir línea temporal principal",
|
||||||
"keyboard_shortcuts.hotkey": "Atajo",
|
"keyboard_shortcuts.hotkey": "Atajo",
|
||||||
"keyboard_shortcuts.legend": "Mostrar este texto",
|
"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.local": "Abrirlínea temporal local",
|
||||||
"keyboard_shortcuts.mention": "Mencionar al autor",
|
"keyboard_shortcuts.mention": "Mencionar al autor",
|
||||||
"keyboard_shortcuts.muted": "Abrir lista de usuarios silenciados",
|
"keyboard_shortcuts.muted": "Abrir lista de usuarios silenciados",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Abrir archivos de medios",
|
"keyboard_shortcuts.open_media": "Abrir archivos de medios",
|
||||||
"keyboard_shortcuts.pinned": "Abrir lista de mensajes fijados",
|
"keyboard_shortcuts.pinned": "Abrir lista de mensajes fijados",
|
||||||
"keyboard_shortcuts.profile": "Abrir perfil del autor",
|
"keyboard_shortcuts.profile": "Abrir perfil del autor",
|
||||||
"keyboard_shortcuts.quote": "Citar mensaje",
|
|
||||||
"keyboard_shortcuts.reply": "Responder al mensaje",
|
"keyboard_shortcuts.reply": "Responder al mensaje",
|
||||||
"keyboard_shortcuts.requests": "Abrir lista de solicitudes de seguimiento",
|
"keyboard_shortcuts.requests": "Abrir lista de solicitudes de seguimiento",
|
||||||
"keyboard_shortcuts.search": "Enfocar barra de búsqueda",
|
"keyboard_shortcuts.search": "Enfocar barra de búsqueda",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Tu cuenta fue suspendida.",
|
"notification.moderation_warning.action_suspend": "Tu cuenta fue suspendida.",
|
||||||
"notification.own_poll": "Tu encuesta finalizó",
|
"notification.own_poll": "Tu encuesta finalizó",
|
||||||
"notification.poll": "Finalizó una encuesta en la que votaste",
|
"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} 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.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}",
|
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Seguidores",
|
"privacy.private.short": "Seguidores",
|
||||||
"privacy.public.long": "Cualquier persona dentro y fuera de Mastodon",
|
"privacy.public.long": "Cualquier persona dentro y fuera de Mastodon",
|
||||||
"privacy.public.short": "Público",
|
"privacy.public.short": "Público",
|
||||||
"privacy.quote.anyone": "{visibility}, todos pueden citar",
|
"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.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 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.long": "Menos fanfarrias algorítmicas",
|
||||||
"privacy.unlisted.short": "Público silencioso",
|
"privacy.unlisted.short": "Público silencioso",
|
||||||
"privacy_policy.last_updated": "Última actualización: {date}",
|
"privacy_policy.last_updated": "Última actualización: {date}",
|
||||||
"privacy_policy.title": "Política de privacidad",
|
"privacy_policy.title": "Política de privacidad",
|
||||||
"quote_error.poll": "No se permite citar encuestas.",
|
|
||||||
"quote_error.quote": "Solo se permite una cita a la vez.",
|
|
||||||
"quote_error.unauthorized": "No tenés autorización para citar este mensaje.",
|
|
||||||
"quote_error.upload": "No se permite citar con archivos multimedia.",
|
|
||||||
"recommended": "Opción recomendada",
|
"recommended": "Opción recomendada",
|
||||||
"refresh": "Refrescar",
|
"refresh": "Refrescar",
|
||||||
"regeneration_indicator.please_stand_by": "Esperá, por favor.",
|
"regeneration_indicator.please_stand_by": "Esperá, por favor.",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "Abrir interface de moderación para @{name}",
|
"status.admin_account": "Abrir interface de moderación para @{name}",
|
||||||
"status.admin_domain": "Abrir interface de moderación para {domain}",
|
"status.admin_domain": "Abrir interface de moderación para {domain}",
|
||||||
"status.admin_status": "Abrir este mensaje en la interface de moderación",
|
"status.admin_status": "Abrir este mensaje en la interface de moderación",
|
||||||
"status.all_disabled": "Las adhesiones y citas están deshabilitadas",
|
|
||||||
"status.block": "Bloquear a @{name}",
|
"status.block": "Bloquear a @{name}",
|
||||||
"status.bookmark": "Marcar",
|
"status.bookmark": "Marcar",
|
||||||
"status.cancel_reblog_private": "Quitar adhesión",
|
"status.cancel_reblog_private": "Quitar adhesión",
|
||||||
"status.cannot_quote": "El autor deshabilitó las citas en este mensaje",
|
|
||||||
"status.cannot_reblog": "No se puede adherir a este mensaje",
|
"status.cannot_reblog": "No se puede adherir a este mensaje",
|
||||||
"status.context.load_new_replies": "Hay nuevas respuestas",
|
"status.context.load_new_replies": "Hay nuevas respuestas",
|
||||||
"status.context.loading": "Buscando más respuestas",
|
"status.context.loading": "Buscando más respuestas",
|
||||||
"status.continued_thread": "Continuación de hilo",
|
"status.continued_thread": "Continuación de hilo",
|
||||||
"status.copy": "Copiar enlace al mensaje",
|
"status.copy": "Copiar enlace al mensaje",
|
||||||
"status.delete": "Eliminar",
|
"status.delete": "Eliminar",
|
||||||
"status.delete.success": "Mensaje eliminado",
|
|
||||||
"status.detailed_status": "Vista de conversación detallada",
|
"status.detailed_status": "Vista de conversación detallada",
|
||||||
"status.direct": "Mención privada a @{name}",
|
"status.direct": "Mención privada a @{name}",
|
||||||
"status.direct_indicator": "Mención privada",
|
"status.direct_indicator": "Mención privada",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "Silenciar conversación",
|
"status.mute_conversation": "Silenciar conversación",
|
||||||
"status.open": "Expandir este mensaje",
|
"status.open": "Expandir este mensaje",
|
||||||
"status.pin": "Fijar en el perfil",
|
"status.pin": "Fijar en el perfil",
|
||||||
"status.quote": "Citar",
|
|
||||||
"status.quote.cancel": "Cancelar cita",
|
"status.quote.cancel": "Cancelar cita",
|
||||||
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
|
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
|
||||||
"status.quote_error.not_available": "Mensaje no disponible",
|
"status.quote_error.not_available": "Mensaje no disponible",
|
||||||
"status.quote_error.pending_approval": "Mensaje pendiente",
|
"status.quote_error.pending_approval": "Mensaje pendiente",
|
||||||
"status.quote_error.pending_approval_popout.body": "Las citas compartidas a través del Fediverso pueden tardar en mostrarse, ya que diferentes servidores tienen diferentes protocolos.",
|
"status.quote_error.pending_approval_popout.body": "Las citas compartidas a través del Fediverso pueden tardar en mostrarse, ya que diferentes servidores tienen diferentes protocolos.",
|
||||||
"status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Esperá un momento",
|
"status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Esperá un momento",
|
||||||
"status.quote_followers_only": "Solo los seguidores pueden citar este mensaje",
|
|
||||||
"status.quote_manual_review": "El autor revisará manualmente",
|
|
||||||
"status.quote_policy_change": "Cambiá quién puede citar",
|
"status.quote_policy_change": "Cambiá quién puede citar",
|
||||||
"status.quote_post_author": "Se citó un mensaje de @{name}",
|
"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.quotes.empty": "Todavía nadie citó este mensaje. Cuando alguien lo haga, se mostrará acá.",
|
|
||||||
"status.read_more": "Leé más",
|
"status.read_more": "Leé más",
|
||||||
"status.reblog": "Adherir",
|
"status.reblog": "Adherir",
|
||||||
"status.reblog_or_quote": "Adherir o citar",
|
|
||||||
"status.reblog_private": "Adherir a la audiencia original",
|
"status.reblog_private": "Adherir a la audiencia original",
|
||||||
"status.reblogged_by": "{name} adhirió",
|
"status.reblogged_by": "{name} adhirió",
|
||||||
"status.reblogs": "{count, plural, one {adhesión} other {adhesiones}}",
|
"status.reblogs": "{count, plural, one {adhesión} other {adhesiones}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "Responder",
|
"status.reply": "Responder",
|
||||||
"status.replyAll": "Responder al hilo",
|
"status.replyAll": "Responder al hilo",
|
||||||
"status.report": "Denunciar a @{name}",
|
"status.report": "Denunciar a @{name}",
|
||||||
"status.request_quote": "Solicitud para citar",
|
|
||||||
"status.revoke_quote": "Eliminar mi mensaje de la cita de @{name}",
|
"status.revoke_quote": "Eliminar mi mensaje de la cita de @{name}",
|
||||||
"status.sensitive_warning": "Contenido sensible",
|
"status.sensitive_warning": "Contenido sensible",
|
||||||
"status.share": "Compartir",
|
"status.share": "Compartir",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "Agregá imágenes, o un archivo de audio o video",
|
"upload_button.label": "Agregá imágenes, o un archivo de audio o video",
|
||||||
"upload_error.limit": "Se excedió el límite de subida de archivos.",
|
"upload_error.limit": "Se excedió el límite de subida de archivos.",
|
||||||
"upload_error.poll": "No se permite la subida de archivos en encuestas.",
|
"upload_error.poll": "No se permite la subida de archivos en encuestas.",
|
||||||
"upload_error.quote": "No se permite subir archivos con citas.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Para recoger un archivo multimedia, pulsá la barra espaciadora o la tecla Enter. Mientras arrastrás, usá las teclas de flecha para mover el archivo multimedia en cualquier dirección. Volvé a pulsar la barra espaciadora o la tecla Enter para soltar el archivo multimedia en su nueva posición, o pulsá la tecla Escape para cancelar.",
|
"upload_form.drag_and_drop.instructions": "Para recoger un archivo multimedia, pulsá la barra espaciadora o la tecla Enter. Mientras arrastrás, usá las teclas de flecha para mover el archivo multimedia en cualquier dirección. Volvé a pulsar la barra espaciadora o la tecla Enter para soltar el archivo multimedia en su nueva posición, o pulsá la tecla Escape para cancelar.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Se canceló el arrastre. Se eliminó el archivo adjunto {item}.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Se canceló el arrastre. Se eliminó el archivo adjunto {item}.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} fue soltado.",
|
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} fue soltado.",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "Subir volumen",
|
"video.volume_up": "Subir volumen",
|
||||||
"visibility_modal.button_title": "Establecer visibilidad",
|
"visibility_modal.button_title": "Establecer visibilidad",
|
||||||
"visibility_modal.header": "Visibilidad e interacción",
|
"visibility_modal.header": "Visibilidad e interacción",
|
||||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas redactadas en Mastodon no pueden ser citadas por otras cuentas.",
|
"visibility_modal.helper.direct_quoting": "No se pueden citar las menciones privadas.",
|
||||||
"visibility_modal.helper.privacy_editing": "No se puede cambiar la visibilidad a los mensajes ya enviados.",
|
"visibility_modal.helper.privacy_editing": "No se puede cambiar la visibilidad a los mensajes ya enviados.",
|
||||||
"visibility_modal.helper.private_quoting": "Los mensajes solo para seguidores redactados en Mastodon no pueden ser citados por otras cuentas.",
|
"visibility_modal.helper.private_quoting": "No se pueden citar los mensajes destinados solo a seguidores.",
|
||||||
"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.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.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.privacy_label": "Privacidad",
|
||||||
"visibility_modal.quote_followers": "Solo para seguidores",
|
"visibility_modal.quote_followers": "Solo para seguidores",
|
||||||
"visibility_modal.quote_label": "Cambiá quién puede citar",
|
"visibility_modal.quote_label": "Cambiá quién puede citar",
|
||||||
"visibility_modal.quote_nobody": "Solo yo",
|
"visibility_modal.quote_nobody": "Ninguna cuenta",
|
||||||
"visibility_modal.quote_public": "Cualquier cuenta",
|
"visibility_modal.quote_public": "Cualquier cuenta"
|
||||||
"visibility_modal.save": "Guardar"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Abrir cronología principal",
|
"keyboard_shortcuts.home": "Abrir cronología principal",
|
||||||
"keyboard_shortcuts.hotkey": "Tecla de acceso rápido",
|
"keyboard_shortcuts.hotkey": "Tecla de acceso rápido",
|
||||||
"keyboard_shortcuts.legend": "Mostrar esta leyenda",
|
"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.local": "Abrir cronología local",
|
||||||
"keyboard_shortcuts.mention": "Mencionar al autor",
|
"keyboard_shortcuts.mention": "Mencionar al autor",
|
||||||
"keyboard_shortcuts.muted": "Abrir la lista de usuarios silenciados",
|
"keyboard_shortcuts.muted": "Abrir la lista de usuarios silenciados",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Abrir multimedia",
|
"keyboard_shortcuts.open_media": "Abrir multimedia",
|
||||||
"keyboard_shortcuts.pinned": "Abrir la lista de publicaciones fijadas",
|
"keyboard_shortcuts.pinned": "Abrir la lista de publicaciones fijadas",
|
||||||
"keyboard_shortcuts.profile": "Abrir perfil del autor",
|
"keyboard_shortcuts.profile": "Abrir perfil del autor",
|
||||||
"keyboard_shortcuts.quote": "Citar publicación",
|
|
||||||
"keyboard_shortcuts.reply": "Responder a la publicación",
|
"keyboard_shortcuts.reply": "Responder a la publicación",
|
||||||
"keyboard_shortcuts.requests": "Abrir lista de solicitudes de seguimiento",
|
"keyboard_shortcuts.requests": "Abrir lista de solicitudes de seguimiento",
|
||||||
"keyboard_shortcuts.search": "Enfocar la barra de búsqueda",
|
"keyboard_shortcuts.search": "Enfocar la barra de búsqueda",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Tu cuenta ha sido suspendida.",
|
"notification.moderation_warning.action_suspend": "Tu cuenta ha sido suspendida.",
|
||||||
"notification.own_poll": "Tu encuesta ha terminado",
|
"notification.own_poll": "Tu encuesta ha terminado",
|
||||||
"notification.poll": "Una encuesta en la que has votado 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} 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.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}",
|
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Seguidores",
|
"privacy.private.short": "Seguidores",
|
||||||
"privacy.public.long": "Cualquiera dentro y fuera de Mastodon",
|
"privacy.public.long": "Cualquiera dentro y fuera de Mastodon",
|
||||||
"privacy.public.short": "Público",
|
"privacy.public.short": "Público",
|
||||||
"privacy.quote.anyone": "{visibility}, cualquiera puede citar",
|
|
||||||
"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.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.long": "Menos fanfares algorítmicos",
|
||||||
"privacy.unlisted.short": "Público silencioso",
|
"privacy.unlisted.short": "Público silencioso",
|
||||||
"privacy_policy.last_updated": "Actualizado por última vez {date}",
|
"privacy_policy.last_updated": "Actualizado por última vez {date}",
|
||||||
"privacy_policy.title": "Política de Privacidad",
|
"privacy_policy.title": "Política de Privacidad",
|
||||||
"quote_error.poll": "No se permite citar encuestas.",
|
|
||||||
"quote_error.quote": "Solo se permite una cita a la vez.",
|
|
||||||
"quote_error.unauthorized": "No estás autorizado a citar esta publicación.",
|
|
||||||
"quote_error.upload": "No se permite citar con archivos multimedia.",
|
|
||||||
"recommended": "Recomendado",
|
"recommended": "Recomendado",
|
||||||
"refresh": "Actualizar",
|
"refresh": "Actualizar",
|
||||||
"regeneration_indicator.please_stand_by": "Espera, por favor.",
|
"regeneration_indicator.please_stand_by": "Espera, por favor.",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "Abrir interfaz de moderación para @{name}",
|
"status.admin_account": "Abrir interfaz de moderación para @{name}",
|
||||||
"status.admin_domain": "Abrir interfaz de moderación para {domain}",
|
"status.admin_domain": "Abrir interfaz de moderación para {domain}",
|
||||||
"status.admin_status": "Abrir este estado en la interfaz de moderación",
|
"status.admin_status": "Abrir este estado en la interfaz de moderación",
|
||||||
"status.all_disabled": "Los impulsos y las citas están desactivadas",
|
|
||||||
"status.block": "Bloquear a @{name}",
|
"status.block": "Bloquear a @{name}",
|
||||||
"status.bookmark": "Añadir marcador",
|
"status.bookmark": "Añadir marcador",
|
||||||
"status.cancel_reblog_private": "Deshacer impulso",
|
"status.cancel_reblog_private": "Deshacer impulso",
|
||||||
"status.cannot_quote": "El autor ha desactivado las citas de esta publicación",
|
|
||||||
"status.cannot_reblog": "Esta publicación no puede ser impulsada",
|
"status.cannot_reblog": "Esta publicación no puede ser impulsada",
|
||||||
"status.context.load_new_replies": "Nuevas respuestas disponibles",
|
"status.context.load_new_replies": "Nuevas respuestas disponibles",
|
||||||
"status.context.loading": "Comprobando si hay más respuestas",
|
"status.context.loading": "Comprobando si hay más respuestas",
|
||||||
"status.continued_thread": "Hilo continuado",
|
"status.continued_thread": "Hilo continuado",
|
||||||
"status.copy": "Copiar enlace al estado",
|
"status.copy": "Copiar enlace al estado",
|
||||||
"status.delete": "Borrar",
|
"status.delete": "Borrar",
|
||||||
"status.delete.success": "Publicación eliminada",
|
|
||||||
"status.detailed_status": "Vista de conversación detallada",
|
"status.detailed_status": "Vista de conversación detallada",
|
||||||
"status.direct": "Mención privada @{name}",
|
"status.direct": "Mención privada @{name}",
|
||||||
"status.direct_indicator": "Mención privada",
|
"status.direct_indicator": "Mención privada",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "Silenciar conversación",
|
"status.mute_conversation": "Silenciar conversación",
|
||||||
"status.open": "Expandir estado",
|
"status.open": "Expandir estado",
|
||||||
"status.pin": "Fijar",
|
"status.pin": "Fijar",
|
||||||
"status.quote": "Cita",
|
|
||||||
"status.quote.cancel": "Cancelar cita",
|
"status.quote.cancel": "Cancelar cita",
|
||||||
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
|
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
|
||||||
"status.quote_error.not_available": "Publicación no disponible",
|
"status.quote_error.not_available": "Publicación no disponible",
|
||||||
"status.quote_error.pending_approval": "Publicación pendiente",
|
"status.quote_error.pending_approval": "Publicación pendiente",
|
||||||
"status.quote_error.pending_approval_popout.body": "Las citas compartidas en el Fediverso pueden tardar en mostrarse, ya que cada servidor tiene un protocolo diferente.",
|
"status.quote_error.pending_approval_popout.body": "Las citas compartidas en el Fediverso pueden tardar en mostrarse, ya que cada servidor tiene un protocolo diferente.",
|
||||||
"status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Mantén la calma",
|
"status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Mantén la calma",
|
||||||
"status.quote_followers_only": "Solo los seguidores pueden citar esta publicación",
|
|
||||||
"status.quote_manual_review": "El autor la revisará manualmente",
|
|
||||||
"status.quote_policy_change": "Cambia quién puede citarte",
|
"status.quote_policy_change": "Cambia quién puede citarte",
|
||||||
"status.quote_post_author": "Ha citado una publicación de @{name}",
|
"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.quotes.empty": "Nadie ha citado esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.",
|
|
||||||
"status.read_more": "Leer más",
|
"status.read_more": "Leer más",
|
||||||
"status.reblog": "Impulsar",
|
"status.reblog": "Impulsar",
|
||||||
"status.reblog_or_quote": "Impulsar o citar",
|
|
||||||
"status.reblog_private": "Implusar a la audiencia original",
|
"status.reblog_private": "Implusar a la audiencia original",
|
||||||
"status.reblogged_by": "Impulsado por {name}",
|
"status.reblogged_by": "Impulsado por {name}",
|
||||||
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
|
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "Responder",
|
"status.reply": "Responder",
|
||||||
"status.replyAll": "Responder al hilo",
|
"status.replyAll": "Responder al hilo",
|
||||||
"status.report": "Reportar @{name}",
|
"status.report": "Reportar @{name}",
|
||||||
"status.request_quote": "Solicitud de citación",
|
|
||||||
"status.revoke_quote": "Eliminar mi publicación de la cita de @{name}",
|
"status.revoke_quote": "Eliminar mi publicación de la cita de @{name}",
|
||||||
"status.sensitive_warning": "Contenido sensible",
|
"status.sensitive_warning": "Contenido sensible",
|
||||||
"status.share": "Compartir",
|
"status.share": "Compartir",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
"upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||||
"upload_error.limit": "Límite de subida de archivos excedido.",
|
"upload_error.limit": "Límite de subida de archivos excedido.",
|
||||||
"upload_error.poll": "No se permite subir archivos con las encuestas.",
|
"upload_error.poll": "No se permite subir archivos con las encuestas.",
|
||||||
"upload_error.quote": "No se permite subir archivos a las citas.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Para recoger un archivo adjunto, pulsa la barra espaciadora o la tecla Intro. Mientras arrastras, usa las teclas de flecha para mover el archivo adjunto en cualquier dirección. Vuelve a pulsar la barra espaciadora o la tecla Intro para soltar el archivo adjunto en su nueva posición, o pulsa la tecla Escape para cancelar.",
|
"upload_form.drag_and_drop.instructions": "Para recoger un archivo adjunto, pulsa la barra espaciadora o la tecla Intro. Mientras arrastras, usa las teclas de flecha para mover el archivo adjunto en cualquier dirección. Vuelve a pulsar la barra espaciadora o la tecla Intro para soltar el archivo adjunto en su nueva posición, o pulsa la tecla Escape para cancelar.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Arrastre cancelado. El archivo adjunto {item} fue eliminado.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Arrastre cancelado. El archivo adjunto {item} fue eliminado.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} fue eliminado.",
|
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} fue eliminado.",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "Subir el volumen",
|
"video.volume_up": "Subir el volumen",
|
||||||
"visibility_modal.button_title": "Establece la visibilidad",
|
"visibility_modal.button_title": "Establece la visibilidad",
|
||||||
"visibility_modal.header": "Visibilidad e interacción",
|
"visibility_modal.header": "Visibilidad e interacción",
|
||||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas creadas en Mastodon no pueden ser citadas por otros.",
|
"visibility_modal.helper.direct_quoting": "Las menciones privadas no pueden citarse.",
|
||||||
"visibility_modal.helper.privacy_editing": "Las publicaciones ya enviadas no pueden cambiar su visibilidad.",
|
"visibility_modal.helper.privacy_editing": "Las publicaciones ya enviadas no pueden cambiar su visibilidad.",
|
||||||
"visibility_modal.helper.private_quoting": "Las publicaciones solo para seguidores creadas en Mastodon no pueden ser citadas por otros.",
|
"visibility_modal.helper.private_quoting": "Las publicaciones para seguidores no pueden citarse.",
|
||||||
"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.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.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.privacy_label": "Privacidad",
|
||||||
"visibility_modal.quote_followers": "Solo seguidores",
|
"visibility_modal.quote_followers": "Solo seguidores",
|
||||||
"visibility_modal.quote_label": "Cambia quién puede citarte",
|
"visibility_modal.quote_label": "Cambia quién puede citarte",
|
||||||
"visibility_modal.quote_nobody": "Solo yo",
|
"visibility_modal.quote_nobody": "Nadie",
|
||||||
"visibility_modal.quote_public": "Cualquiera",
|
"visibility_modal.quote_public": "Cualquiera"
|
||||||
"visibility_modal.save": "Guardar"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Abrir cronología principal",
|
"keyboard_shortcuts.home": "Abrir cronología principal",
|
||||||
"keyboard_shortcuts.hotkey": "Tecla rápida",
|
"keyboard_shortcuts.hotkey": "Tecla rápida",
|
||||||
"keyboard_shortcuts.legend": "Mostrar esta leyenda",
|
"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.local": "Abrir cronología local",
|
||||||
"keyboard_shortcuts.mention": "Mencionar autor",
|
"keyboard_shortcuts.mention": "Mencionar autor",
|
||||||
"keyboard_shortcuts.muted": "Abrir lista de usuarios silenciados",
|
"keyboard_shortcuts.muted": "Abrir lista de usuarios silenciados",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Abrir multimedia",
|
"keyboard_shortcuts.open_media": "Abrir multimedia",
|
||||||
"keyboard_shortcuts.pinned": "Abrir la lista de publicaciones destacadas",
|
"keyboard_shortcuts.pinned": "Abrir la lista de publicaciones destacadas",
|
||||||
"keyboard_shortcuts.profile": "Abrir perfil del autor",
|
"keyboard_shortcuts.profile": "Abrir perfil del autor",
|
||||||
"keyboard_shortcuts.quote": "Citar publicación",
|
|
||||||
"keyboard_shortcuts.reply": "Responder a una publicación",
|
"keyboard_shortcuts.reply": "Responder a una publicación",
|
||||||
"keyboard_shortcuts.requests": "Abrir lista de solicitudes de seguimiento",
|
"keyboard_shortcuts.requests": "Abrir lista de solicitudes de seguimiento",
|
||||||
"keyboard_shortcuts.search": "Focalizar barra de búsqueda",
|
"keyboard_shortcuts.search": "Focalizar barra de búsqueda",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Tu cuenta ha sido suspendida.",
|
"notification.moderation_warning.action_suspend": "Tu cuenta ha sido suspendida.",
|
||||||
"notification.own_poll": "Tu encuesta ha terminado",
|
"notification.own_poll": "Tu encuesta ha terminado",
|
||||||
"notification.poll": "Una 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} 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.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}",
|
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Seguidores",
|
"privacy.private.short": "Seguidores",
|
||||||
"privacy.public.long": "Visible por todo el mundo, dentro y fuera de Mastodon",
|
"privacy.public.long": "Visible por todo el mundo, dentro y fuera de Mastodon",
|
||||||
"privacy.public.short": "Pública",
|
"privacy.public.short": "Pública",
|
||||||
"privacy.quote.anyone": "{visibility}, cualquiera puede citar",
|
|
||||||
"privacy.quote.disabled": "{visibility}, citas deshabilitadas",
|
|
||||||
"privacy.quote.limited": "{visibility}, citas limitadas",
|
|
||||||
"privacy.unlisted.additional": "Se comporta exactamente igual que la visibilidad pública, excepto que la publicación no aparecerá en las cronologías públicas o en las etiquetas, la sección de Explorar o la búsqueda de Mastodon, incluso si has habilitado la opción de búsqueda en tu perfil.",
|
"privacy.unlisted.additional": "Se comporta exactamente igual que la visibilidad pública, excepto que la publicación no aparecerá en las cronologías públicas o en las etiquetas, la sección de Explorar o la búsqueda de Mastodon, incluso si has habilitado la opción de búsqueda en tu perfil.",
|
||||||
"privacy.unlisted.long": "Sin algoritmos de descubrimiento",
|
"privacy.unlisted.long": "Sin algoritmos de descubrimiento",
|
||||||
"privacy.unlisted.short": "Pública silenciosa",
|
"privacy.unlisted.short": "Pública silenciosa",
|
||||||
"privacy_policy.last_updated": "Actualizado por última vez {date}",
|
"privacy_policy.last_updated": "Actualizado por última vez {date}",
|
||||||
"privacy_policy.title": "Política de Privacidad",
|
"privacy_policy.title": "Política de Privacidad",
|
||||||
"quote_error.poll": "No es posible 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.upload": "No se permite citar con archivos multimedia.",
|
|
||||||
"recommended": "Recomendado",
|
"recommended": "Recomendado",
|
||||||
"refresh": "Actualizar",
|
"refresh": "Actualizar",
|
||||||
"regeneration_indicator.please_stand_by": "Espera, por favor.",
|
"regeneration_indicator.please_stand_by": "Espera, por favor.",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "Abrir interfaz de moderación para @{name}",
|
"status.admin_account": "Abrir interfaz de moderación para @{name}",
|
||||||
"status.admin_domain": "Abrir interfaz de moderación para {domain}",
|
"status.admin_domain": "Abrir interfaz de moderación para {domain}",
|
||||||
"status.admin_status": "Abrir esta publicación en la interfaz de moderación",
|
"status.admin_status": "Abrir esta publicación en la interfaz de moderación",
|
||||||
"status.all_disabled": "Los impulsos y las citas están deshabilitados",
|
|
||||||
"status.block": "Bloquear a @{name}",
|
"status.block": "Bloquear a @{name}",
|
||||||
"status.bookmark": "Añadir marcador",
|
"status.bookmark": "Añadir marcador",
|
||||||
"status.cancel_reblog_private": "Deshacer impulso",
|
"status.cancel_reblog_private": "Deshacer impulso",
|
||||||
"status.cannot_quote": "El autor ha deshabilitado las citas en esta publicación",
|
|
||||||
"status.cannot_reblog": "Esta publicación no se puede impulsar",
|
"status.cannot_reblog": "Esta publicación no se puede impulsar",
|
||||||
"status.context.load_new_replies": "Hay nuevas respuestas",
|
"status.context.load_new_replies": "Hay nuevas respuestas",
|
||||||
"status.context.loading": "Buscando más respuestas",
|
"status.context.loading": "Buscando más respuestas",
|
||||||
"status.continued_thread": "Continuó el hilo",
|
"status.continued_thread": "Continuó el hilo",
|
||||||
"status.copy": "Copiar enlace a la publicación",
|
"status.copy": "Copiar enlace a la publicación",
|
||||||
"status.delete": "Borrar",
|
"status.delete": "Borrar",
|
||||||
"status.delete.success": "Publicación eliminada",
|
|
||||||
"status.detailed_status": "Vista de conversación detallada",
|
"status.detailed_status": "Vista de conversación detallada",
|
||||||
"status.direct": "Mención privada @{name}",
|
"status.direct": "Mención privada @{name}",
|
||||||
"status.direct_indicator": "Mención privada",
|
"status.direct_indicator": "Mención privada",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "Silenciar conversación",
|
"status.mute_conversation": "Silenciar conversación",
|
||||||
"status.open": "Expandir publicación",
|
"status.open": "Expandir publicación",
|
||||||
"status.pin": "Fijar",
|
"status.pin": "Fijar",
|
||||||
"status.quote": "Cita",
|
|
||||||
"status.quote.cancel": "Cancelar cita",
|
"status.quote.cancel": "Cancelar cita",
|
||||||
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
|
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
|
||||||
"status.quote_error.not_available": "Publicación no disponible",
|
"status.quote_error.not_available": "Publicación no disponible",
|
||||||
"status.quote_error.pending_approval": "Publicación pendiente",
|
"status.quote_error.pending_approval": "Publicación pendiente",
|
||||||
"status.quote_error.pending_approval_popout.body": "Las citas compartidas a través del Fediverso pueden tardar en mostrarse, ya que los diferentes servidores tienen diferentes protocolos.",
|
"status.quote_error.pending_approval_popout.body": "Las citas compartidas a través del Fediverso pueden tardar en mostrarse, ya que los diferentes servidores tienen diferentes protocolos.",
|
||||||
"status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Mantén la calma",
|
"status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Mantén la calma",
|
||||||
"status.quote_followers_only": "Solo los seguidores pueden citar esta publicación",
|
|
||||||
"status.quote_manual_review": "El autor revisará manualmente",
|
|
||||||
"status.quote_policy_change": "Cambia quién puede citarte",
|
"status.quote_policy_change": "Cambia quién puede citarte",
|
||||||
"status.quote_post_author": "Ha citado una publicación de @{name}",
|
"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.quotes.empty": "Nadie ha citado esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.",
|
|
||||||
"status.read_more": "Leer más",
|
"status.read_more": "Leer más",
|
||||||
"status.reblog": "Impulsar",
|
"status.reblog": "Impulsar",
|
||||||
"status.reblog_or_quote": "Impulsar o citar",
|
|
||||||
"status.reblog_private": "Impulsar a la audiencia original",
|
"status.reblog_private": "Impulsar a la audiencia original",
|
||||||
"status.reblogged_by": "Impulsado por {name}",
|
"status.reblogged_by": "Impulsado por {name}",
|
||||||
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
|
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "Responder",
|
"status.reply": "Responder",
|
||||||
"status.replyAll": "Responder al hilo",
|
"status.replyAll": "Responder al hilo",
|
||||||
"status.report": "Reportar a @{name}",
|
"status.report": "Reportar a @{name}",
|
||||||
"status.request_quote": "Solicitud de citación",
|
|
||||||
"status.revoke_quote": "Eliminar mi publicación de la cita de {name}",
|
"status.revoke_quote": "Eliminar mi publicación de la cita de {name}",
|
||||||
"status.sensitive_warning": "Contenido sensible",
|
"status.sensitive_warning": "Contenido sensible",
|
||||||
"status.share": "Compartir",
|
"status.share": "Compartir",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "Añadir imágenes, un fichero de vídeo o de audio",
|
"upload_button.label": "Añadir imágenes, un fichero de vídeo o de audio",
|
||||||
"upload_error.limit": "Límite de subida de archivos excedido.",
|
"upload_error.limit": "Límite de subida de archivos excedido.",
|
||||||
"upload_error.poll": "No se permite la subida de archivos con encuestas.",
|
"upload_error.poll": "No se permite la subida de archivos con encuestas.",
|
||||||
"upload_error.quote": "No se permite subir archivos a las citas.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Para recoger un archivo multimedia, pulsa la barra espaciadora o la tecla Enter. Mientras arrastras, utiliza las teclas de flecha para mover el archivo multimedia en cualquier dirección. Vuelve a pulsar la barra espaciadora o la tecla Enter para soltar el archivo multimedia en su nueva posición, o pulsa Escape para cancelar.",
|
"upload_form.drag_and_drop.instructions": "Para recoger un archivo multimedia, pulsa la barra espaciadora o la tecla Enter. Mientras arrastras, utiliza las teclas de flecha para mover el archivo multimedia en cualquier dirección. Vuelve a pulsar la barra espaciadora o la tecla Enter para soltar el archivo multimedia en su nueva posición, o pulsa Escape para cancelar.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Se canceló el arrastre. Se eliminó el archivo adjunto {item}.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Se canceló el arrastre. Se eliminó el archivo adjunto {item}.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} ha sido eliminado.",
|
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} ha sido eliminado.",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "Subir volumen",
|
"video.volume_up": "Subir volumen",
|
||||||
"visibility_modal.button_title": "Configura la visibilidad",
|
"visibility_modal.button_title": "Configura la visibilidad",
|
||||||
"visibility_modal.header": "Visibilidad e interacciones",
|
"visibility_modal.header": "Visibilidad e interacciones",
|
||||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas publicadas en Mastodon no pueden ser citadas por otros usuarios.",
|
"visibility_modal.helper.direct_quoting": "Las menciones privadas no se pueden citar.",
|
||||||
"visibility_modal.helper.privacy_editing": "Una vez publicada, no se puede cambiar su visibilidad.",
|
"visibility_modal.helper.privacy_editing": "Las publicaciones no pueden cambiar su visibilidad.",
|
||||||
"visibility_modal.helper.private_quoting": "Las publicaciones solo para seguidores hechas en Mastodon no pueden ser citadas por otros usuarios.",
|
"visibility_modal.helper.private_quoting": "Las publicaciones para seguidores no pueden citarse.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "Cuando la gente te cite, su publicación tampoco se mostrará en las cronologías públicas.",
|
"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.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.privacy_label": "Privacidad",
|
||||||
"visibility_modal.quote_followers": "Sólo seguidores",
|
"visibility_modal.quote_followers": "Sólo seguidores",
|
||||||
"visibility_modal.quote_label": "Cambia quién puede citarte",
|
"visibility_modal.quote_label": "Cambia quién puede citarte",
|
||||||
"visibility_modal.quote_nobody": "Solo yo",
|
"visibility_modal.quote_nobody": "Nadie",
|
||||||
"visibility_modal.quote_public": "Cualquiera",
|
"visibility_modal.quote_public": "Cualquiera"
|
||||||
"visibility_modal.save": "Guardar"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,9 +245,6 @@
|
||||||
"confirmations.remove_from_followers.confirm": "Eemalda jälgija",
|
"confirmations.remove_from_followers.confirm": "Eemalda jälgija",
|
||||||
"confirmations.remove_from_followers.message": "{name} lõpetab sellega sinu jälgimise. Kas oled kindel, et soovid jätkata?",
|
"confirmations.remove_from_followers.message": "{name} lõpetab sellega sinu jälgimise. Kas oled kindel, et soovid jätkata?",
|
||||||
"confirmations.remove_from_followers.title": "Kas eemaldame jälgija?",
|
"confirmations.remove_from_followers.title": "Kas eemaldame jälgija?",
|
||||||
"confirmations.revoke_quote.confirm": "Eemalda postitus",
|
|
||||||
"confirmations.revoke_quote.message": "Seda tegevust ei saa tagasi pöörata.",
|
|
||||||
"confirmations.revoke_quote.title": "Kas eemaldame postituse?",
|
|
||||||
"confirmations.unfollow.confirm": "Ära jälgi",
|
"confirmations.unfollow.confirm": "Ära jälgi",
|
||||||
"confirmations.unfollow.message": "Oled kindel, et ei soovi rohkem jälgida kasutajat {name}?",
|
"confirmations.unfollow.message": "Oled kindel, et ei soovi rohkem jälgida kasutajat {name}?",
|
||||||
"confirmations.unfollow.title": "Ei jälgi enam kasutajat?",
|
"confirmations.unfollow.title": "Ei jälgi enam kasutajat?",
|
||||||
|
@ -292,7 +289,6 @@
|
||||||
"domain_pill.your_handle": "Sinu tunnus:",
|
"domain_pill.your_handle": "Sinu tunnus:",
|
||||||
"domain_pill.your_server": "Sinu digitaalne kodu, kus on kõik sinu postitused. Sulle ei meeldi see? Vaheta mistahes ajal serverit ja võta jälgijad ka.",
|
"domain_pill.your_server": "Sinu digitaalne kodu, kus on kõik sinu postitused. Sulle ei meeldi see? Vaheta mistahes ajal serverit ja võta jälgijad ka.",
|
||||||
"domain_pill.your_username": "Sinu unikaalne identifikaator siin serveris. On võimalik, et leiad teistes serverites samasuguse kasutajanimega kasutajaid.",
|
"domain_pill.your_username": "Sinu unikaalne identifikaator siin serveris. On võimalik, et leiad teistes serverites samasuguse kasutajanimega kasutajaid.",
|
||||||
"dropdown.empty": "Vali üks variantidest",
|
|
||||||
"embed.instructions": "Lisa see postitus oma veebilehele, kopeerides alloleva koodi.",
|
"embed.instructions": "Lisa see postitus oma veebilehele, kopeerides alloleva koodi.",
|
||||||
"embed.preview": "Nii näeb see välja:",
|
"embed.preview": "Nii näeb see välja:",
|
||||||
"emoji_button.activity": "Tegevus",
|
"emoji_button.activity": "Tegevus",
|
||||||
|
@ -483,7 +479,6 @@
|
||||||
"keyboard_shortcuts.home": "Ava kodu ajajoon",
|
"keyboard_shortcuts.home": "Ava kodu ajajoon",
|
||||||
"keyboard_shortcuts.hotkey": "Kiirklahv",
|
"keyboard_shortcuts.hotkey": "Kiirklahv",
|
||||||
"keyboard_shortcuts.legend": "Kuva see legend",
|
"keyboard_shortcuts.legend": "Kuva see legend",
|
||||||
"keyboard_shortcuts.load_more": "Fookus „Laadi veel“ nupule",
|
|
||||||
"keyboard_shortcuts.local": "Ava kohalik ajajoon",
|
"keyboard_shortcuts.local": "Ava kohalik ajajoon",
|
||||||
"keyboard_shortcuts.mention": "Maini autorit",
|
"keyboard_shortcuts.mention": "Maini autorit",
|
||||||
"keyboard_shortcuts.muted": "Ava vaigistatud kasutajate loetelu",
|
"keyboard_shortcuts.muted": "Ava vaigistatud kasutajate loetelu",
|
||||||
|
@ -605,7 +600,6 @@
|
||||||
"notification.label.mention": "Mainimine",
|
"notification.label.mention": "Mainimine",
|
||||||
"notification.label.private_mention": "Privaatne mainimine",
|
"notification.label.private_mention": "Privaatne mainimine",
|
||||||
"notification.label.private_reply": "Privaatne vastus",
|
"notification.label.private_reply": "Privaatne vastus",
|
||||||
"notification.label.quote": "{name} tsiteeris sinu postitust",
|
|
||||||
"notification.label.reply": "Vastus",
|
"notification.label.reply": "Vastus",
|
||||||
"notification.mention": "Mainimine",
|
"notification.mention": "Mainimine",
|
||||||
"notification.mentioned_you": "{name} mainis sind",
|
"notification.mentioned_you": "{name} mainis sind",
|
||||||
|
@ -620,7 +614,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Su konto on peatatud.",
|
"notification.moderation_warning.action_suspend": "Su konto on peatatud.",
|
||||||
"notification.own_poll": "Su küsitlus on lõppenud",
|
"notification.own_poll": "Su küsitlus on lõppenud",
|
||||||
"notification.poll": "Hääletus, millel osalesid, 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} jagas edasi postitust",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} ja <a>{count, plural, one {# veel} other {# teist}}</a> jagas su 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}",
|
"notification.relationships_severance_event": "Kadunud ühendus kasutajaga {name}",
|
||||||
|
@ -664,7 +657,6 @@
|
||||||
"notifications.column_settings.mention": "Mainimised:",
|
"notifications.column_settings.mention": "Mainimised:",
|
||||||
"notifications.column_settings.poll": "Küsitluse tulemused:",
|
"notifications.column_settings.poll": "Küsitluse tulemused:",
|
||||||
"notifications.column_settings.push": "Push teated",
|
"notifications.column_settings.push": "Push teated",
|
||||||
"notifications.column_settings.quote": "Tsitaadid:",
|
|
||||||
"notifications.column_settings.reblog": "Jagamised:",
|
"notifications.column_settings.reblog": "Jagamised:",
|
||||||
"notifications.column_settings.show": "Kuva tulbas",
|
"notifications.column_settings.show": "Kuva tulbas",
|
||||||
"notifications.column_settings.sound": "Mängi heli",
|
"notifications.column_settings.sound": "Mängi heli",
|
||||||
|
@ -740,18 +732,11 @@
|
||||||
"privacy.private.short": "Jälgijad",
|
"privacy.private.short": "Jälgijad",
|
||||||
"privacy.public.long": "Nii kasutajad kui mittekasutajad",
|
"privacy.public.long": "Nii kasutajad kui mittekasutajad",
|
||||||
"privacy.public.short": "Avalik",
|
"privacy.public.short": "Avalik",
|
||||||
"privacy.quote.anyone": "{visibility}, kõik võivad tsiteerida",
|
|
||||||
"privacy.quote.disabled": "{visibility}, tsiteerimine pole lubatud",
|
|
||||||
"privacy.quote.limited": "{visibility}, tsiteerimine on piiratud",
|
|
||||||
"privacy.unlisted.additional": "See on olemuselt küll avalik, aga postitus ei ilmu voogudes ega märksõnades, lehitsedes ega Mastodoni otsingus, isegi kui konto on seadistustes avalik.",
|
"privacy.unlisted.additional": "See on olemuselt küll avalik, aga postitus ei ilmu voogudes ega märksõnades, lehitsedes ega Mastodoni otsingus, isegi kui konto on seadistustes avalik.",
|
||||||
"privacy.unlisted.long": "Vähem algoritmilisi teavitusi",
|
"privacy.unlisted.long": "Vähem algoritmilisi teavitusi",
|
||||||
"privacy.unlisted.short": "Vaikselt avalik",
|
"privacy.unlisted.short": "Vaikselt avalik",
|
||||||
"privacy_policy.last_updated": "Viimati uuendatud {date}",
|
"privacy_policy.last_updated": "Viimati uuendatud {date}",
|
||||||
"privacy_policy.title": "Isikuandmete kaitse",
|
"privacy_policy.title": "Isikuandmete kaitse",
|
||||||
"quote_error.poll": "Tsiteerimine pole küsitlustes lubatud.",
|
|
||||||
"quote_error.quote": "Korraga on lubatud vaid üks tsitaat.",
|
|
||||||
"quote_error.unauthorized": "Sul pole õigust seda postitust tsiteerida.",
|
|
||||||
"quote_error.upload": "Tsiteerimine pole manuste puhul lubatud.",
|
|
||||||
"recommended": "Soovitatud",
|
"recommended": "Soovitatud",
|
||||||
"refresh": "Värskenda",
|
"refresh": "Värskenda",
|
||||||
"regeneration_indicator.please_stand_by": "Palun oota.",
|
"regeneration_indicator.please_stand_by": "Palun oota.",
|
||||||
|
@ -858,11 +843,9 @@
|
||||||
"status.admin_account": "Ava @{name} moderaatorivaates",
|
"status.admin_account": "Ava @{name} moderaatorivaates",
|
||||||
"status.admin_domain": "Ava {domain} modeereerimisliides",
|
"status.admin_domain": "Ava {domain} modeereerimisliides",
|
||||||
"status.admin_status": "Ava postitus moderaatorivaates",
|
"status.admin_status": "Ava postitus moderaatorivaates",
|
||||||
"status.all_disabled": "Hooandmine ja tsiteerimine pole lubatud",
|
|
||||||
"status.block": "Blokeeri @{name}",
|
"status.block": "Blokeeri @{name}",
|
||||||
"status.bookmark": "Järjehoidja",
|
"status.bookmark": "Järjehoidja",
|
||||||
"status.cancel_reblog_private": "Lõpeta jagamine",
|
"status.cancel_reblog_private": "Lõpeta jagamine",
|
||||||
"status.cannot_quote": "Autor ei luba selle postituse tsiteerimist",
|
|
||||||
"status.cannot_reblog": "Seda postitust ei saa jagada",
|
"status.cannot_reblog": "Seda postitust ei saa jagada",
|
||||||
"status.context.load_new_replies": "Leidub uusi vastuseid",
|
"status.context.load_new_replies": "Leidub uusi vastuseid",
|
||||||
"status.context.loading": "Kontrollin täiendavate vastuste olemasolu",
|
"status.context.loading": "Kontrollin täiendavate vastuste olemasolu",
|
||||||
|
@ -881,7 +864,7 @@
|
||||||
"status.filter": "Filtreeri seda postitust",
|
"status.filter": "Filtreeri seda postitust",
|
||||||
"status.history.created": "{name} lõi {date}",
|
"status.history.created": "{name} lõi {date}",
|
||||||
"status.history.edited": "{name} muutis {date}",
|
"status.history.edited": "{name} muutis {date}",
|
||||||
"status.load_more": "Laadi veel",
|
"status.load_more": "Lae rohkem",
|
||||||
"status.media.open": "Avamiseks klõpsa",
|
"status.media.open": "Avamiseks klõpsa",
|
||||||
"status.media.show": "Näitamiseks klõpsa",
|
"status.media.show": "Näitamiseks klõpsa",
|
||||||
"status.media_hidden": "Meedia peidetud",
|
"status.media_hidden": "Meedia peidetud",
|
||||||
|
@ -891,17 +874,12 @@
|
||||||
"status.mute_conversation": "Vaigista vestlus",
|
"status.mute_conversation": "Vaigista vestlus",
|
||||||
"status.open": "Laienda postitus",
|
"status.open": "Laienda postitus",
|
||||||
"status.pin": "Kinnita profiilile",
|
"status.pin": "Kinnita profiilile",
|
||||||
"status.quote": "Tsiteeri",
|
|
||||||
"status.quote.cancel": "Katkesta tsiteerimine",
|
|
||||||
"status.quote_error.filtered": "Peidetud mõne kasutatud filtri tõttu",
|
"status.quote_error.filtered": "Peidetud mõne kasutatud filtri tõttu",
|
||||||
"status.quote_error.not_available": "Postitus pole saadaval",
|
"status.quote_error.not_available": "Postitus pole saadaval",
|
||||||
"status.quote_error.pending_approval": "Postitus on ootel",
|
"status.quote_error.pending_approval": "Postitus on ootel",
|
||||||
"status.quote_error.pending_approval_popout.body": "Kuna erinevates serverites on erinevad reeglid, siis üle Födiversumi jagatud tsitaatide kuvamine võib võtta aega.",
|
"status.quote_error.pending_approval_popout.body": "Kuna erinevates serverites on erinevad reeglid, siis üle Födiversumi jagatud tsitaatide kuvamine võib võtta aega.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Tsiteerimine on ootel? Palun jää rahulikuks",
|
"status.quote_error.pending_approval_popout.title": "Tsiteerimine on ootel? Palun jää rahulikuks",
|
||||||
"status.quote_policy_change": "Muuda neid, kes võivad tsiteerida",
|
|
||||||
"status.quote_post_author": "Tsiteeris kasutaja @{name} postitust",
|
"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.read_more": "Loe veel",
|
||||||
"status.reblog": "Jaga",
|
"status.reblog": "Jaga",
|
||||||
"status.reblog_private": "Jaga algse nähtavusega",
|
"status.reblog_private": "Jaga algse nähtavusega",
|
||||||
|
@ -916,7 +894,6 @@
|
||||||
"status.reply": "Vasta",
|
"status.reply": "Vasta",
|
||||||
"status.replyAll": "Vasta lõimele",
|
"status.replyAll": "Vasta lõimele",
|
||||||
"status.report": "Raporteeri @{name}",
|
"status.report": "Raporteeri @{name}",
|
||||||
"status.revoke_quote": "Eemalda minu tsitaat postituses, mille tegi @{name}",
|
|
||||||
"status.sensitive_warning": "Tundlik sisu",
|
"status.sensitive_warning": "Tundlik sisu",
|
||||||
"status.share": "Jaga",
|
"status.share": "Jaga",
|
||||||
"status.show_less_all": "Peida kogu tundlik sisu",
|
"status.show_less_all": "Peida kogu tundlik sisu",
|
||||||
|
@ -950,12 +927,11 @@
|
||||||
"units.short.billion": "{count} mld",
|
"units.short.billion": "{count} mld",
|
||||||
"units.short.million": "{count} mln",
|
"units.short.million": "{count} mln",
|
||||||
"units.short.thousand": "{count} tuh",
|
"units.short.thousand": "{count} tuh",
|
||||||
"upload_area.title": "Lohista ja aseta üleslaadimiseks",
|
"upload_area.title": "Lohista & aseta üleslaadimiseks",
|
||||||
"upload_button.label": "Lisa pilte, üks video- või helifail",
|
"upload_button.label": "Lisa meedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||||
"upload_error.limit": "Faili üleslaadimise piir ületatud.",
|
"upload_error.limit": "Faili üleslaadimise limiit ületatud.",
|
||||||
"upload_error.poll": "Küsitlustes pole faili üleslaadimine lubatud.",
|
"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_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_end": "Manus {item} on asetatud.",
|
||||||
"upload_form.drag_and_drop.on_drag_over": "Manus {item} on liigutatud.",
|
"upload_form.drag_and_drop.on_drag_over": "Manus {item} on liigutatud.",
|
||||||
|
@ -965,7 +941,7 @@
|
||||||
"upload_progress.processing": "Töötlen…",
|
"upload_progress.processing": "Töötlen…",
|
||||||
"username.taken": "See kasutajanimi on juba kasutusel. Proovi teist",
|
"username.taken": "See kasutajanimi on juba kasutusel. Proovi teist",
|
||||||
"video.close": "Sulge video",
|
"video.close": "Sulge video",
|
||||||
"video.download": "Laadi fail alla",
|
"video.download": "Faili allalaadimine",
|
||||||
"video.exit_fullscreen": "Välju täisekraanist",
|
"video.exit_fullscreen": "Välju täisekraanist",
|
||||||
"video.expand": "Suurenda video",
|
"video.expand": "Suurenda video",
|
||||||
"video.fullscreen": "Täisekraan",
|
"video.fullscreen": "Täisekraan",
|
||||||
|
@ -977,18 +953,5 @@
|
||||||
"video.skip_forward": "Keri edasi",
|
"video.skip_forward": "Keri edasi",
|
||||||
"video.unmute": "Lõpeta vaigistamine",
|
"video.unmute": "Lõpeta vaigistamine",
|
||||||
"video.volume_down": "Heli vaiksemaks",
|
"video.volume_down": "Heli vaiksemaks",
|
||||||
"video.volume_up": "Heli valjemaks",
|
"video.volume_up": "Heli valjemaks"
|
||||||
"visibility_modal.button_title": "Muuda nähtavust",
|
|
||||||
"visibility_modal.header": "Nähtavus ja kasutus",
|
|
||||||
"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": "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": "Ainult mina",
|
|
||||||
"visibility_modal.quote_public": "Kõik",
|
|
||||||
"visibility_modal.save": "Salvesta"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
"account.followers": "پیگیرندگان",
|
"account.followers": "پیگیرندگان",
|
||||||
"account.followers.empty": "هنوز کسی پیگیر این کاربر نیست.",
|
"account.followers.empty": "هنوز کسی پیگیر این کاربر نیست.",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} پیگیرنده} other {{counter} پیگیرنده}}",
|
"account.followers_counter": "{count, plural, one {{counter} پیگیرنده} other {{counter} پیگیرنده}}",
|
||||||
"account.followers_you_know_counter": "{counter} نفر را میشناسید",
|
"account.followers_you_know_counter": "{counter} را میشناسید",
|
||||||
"account.following": "پی میگیرید",
|
"account.following": "پی میگیرید",
|
||||||
"account.following_counter": "{count, plural, one {{counter} پیگرفته} other {{counter} پیگرفته}}",
|
"account.following_counter": "{count, plural, one {{counter} پیگرفته} other {{counter} پیگرفته}}",
|
||||||
"account.follows.empty": "این کاربر هنوز پیگیر کسی نیست.",
|
"account.follows.empty": "این کاربر هنوز پیگیر کسی نیست.",
|
||||||
|
@ -880,8 +880,6 @@
|
||||||
"status.mute_conversation": "خموشاندن گفتوگو",
|
"status.mute_conversation": "خموشاندن گفتوگو",
|
||||||
"status.open": "گسترش این فرسته",
|
"status.open": "گسترش این فرسته",
|
||||||
"status.pin": "سنجاق به نمایه",
|
"status.pin": "سنجاق به نمایه",
|
||||||
"status.quote": "نقلقول",
|
|
||||||
"status.quote.cancel": "لغو نقل",
|
|
||||||
"status.quote_error.filtered": "نهفته بنا بر یکی از پالایههایتان",
|
"status.quote_error.filtered": "نهفته بنا بر یکی از پالایههایتان",
|
||||||
"status.quote_error.not_available": "فرسته در دسترس نیست",
|
"status.quote_error.not_available": "فرسته در دسترس نیست",
|
||||||
"status.quote_error.pending_approval": "فرسته منتظر",
|
"status.quote_error.pending_approval": "فرسته منتظر",
|
||||||
|
@ -966,11 +964,14 @@
|
||||||
"video.volume_up": "افزایش حجم صدا",
|
"video.volume_up": "افزایش حجم صدا",
|
||||||
"visibility_modal.button_title": "تنظیم نمایانی",
|
"visibility_modal.button_title": "تنظیم نمایانی",
|
||||||
"visibility_modal.header": "نمایانی و برهمکنش",
|
"visibility_modal.header": "نمایانی و برهمکنش",
|
||||||
|
"visibility_modal.helper.direct_quoting": "نامبریهای خصوصی قابل نقل نیستند.",
|
||||||
"visibility_modal.helper.privacy_editing": "نمیتوان نمایانی فرستههای منتشر شده را تغییر داد.",
|
"visibility_modal.helper.privacy_editing": "نمیتوان نمایانی فرستههای منتشر شده را تغییر داد.",
|
||||||
|
"visibility_modal.helper.private_quoting": "فرستههای فقط برای پیگیرندگان نمیتوانند نقل شوند.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "هنگامی که افراد نقلتان میکنند فرستهشان هم از خطزمانیهای داغ پنهان خواهد بود.",
|
"visibility_modal.helper.unlisted_quoting": "هنگامی که افراد نقلتان میکنند فرستهشان هم از خطزمانیهای داغ پنهان خواهد بود.",
|
||||||
"visibility_modal.instructions": "واپایش کسانی که میتوانند با این فرسته برهمکنش داشته باشند. تنظیمات سراسری میتواند در <link>ترجیحات > دیگر</link> پیدا شود.",
|
"visibility_modal.instructions": "واپایش کسانی که میتوانند با این فرسته برهمکنش داشته باشند. تنظیمات سراسری میتواند در <link>ترجیحات > دیگر</link> پیدا شود.",
|
||||||
"visibility_modal.privacy_label": "محرمانگی",
|
"visibility_modal.privacy_label": "محرمانگی",
|
||||||
"visibility_modal.quote_followers": "فقط پیگیرندگان",
|
"visibility_modal.quote_followers": "فقط پیگیرندگان",
|
||||||
"visibility_modal.quote_label": "تغییر کسانی که میتوانند نقل کنند",
|
"visibility_modal.quote_label": "تغییر کسانی که میتوانند نقل کنند",
|
||||||
|
"visibility_modal.quote_nobody": "هیچکس",
|
||||||
"visibility_modal.quote_public": "هرکسی"
|
"visibility_modal.quote_public": "هرکسی"
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Avaa kotiaikajana",
|
"keyboard_shortcuts.home": "Avaa kotiaikajana",
|
||||||
"keyboard_shortcuts.hotkey": "Pikanäppäin",
|
"keyboard_shortcuts.hotkey": "Pikanäppäin",
|
||||||
"keyboard_shortcuts.legend": "Näytä tämä ohje",
|
"keyboard_shortcuts.legend": "Näytä tämä ohje",
|
||||||
"keyboard_shortcuts.load_more": "Kohdista ”Lataa lisää” -painikkeeseen",
|
|
||||||
"keyboard_shortcuts.local": "Avaa paikallinen aikajana",
|
"keyboard_shortcuts.local": "Avaa paikallinen aikajana",
|
||||||
"keyboard_shortcuts.mention": "Mainitse tekijä",
|
"keyboard_shortcuts.mention": "Mainitse tekijä",
|
||||||
"keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo",
|
"keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Avaa media",
|
"keyboard_shortcuts.open_media": "Avaa media",
|
||||||
"keyboard_shortcuts.pinned": "Avaa kiinnitettyjen julkaisujen luettelo",
|
"keyboard_shortcuts.pinned": "Avaa kiinnitettyjen julkaisujen luettelo",
|
||||||
"keyboard_shortcuts.profile": "Avaa tekijän profiili",
|
"keyboard_shortcuts.profile": "Avaa tekijän profiili",
|
||||||
"keyboard_shortcuts.quote": "Lainaa julkaisua",
|
|
||||||
"keyboard_shortcuts.reply": "Vastaa julkaisuun",
|
"keyboard_shortcuts.reply": "Vastaa julkaisuun",
|
||||||
"keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo",
|
"keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo",
|
||||||
"keyboard_shortcuts.search": "Kohdista hakukenttään",
|
"keyboard_shortcuts.search": "Kohdista hakukenttään",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Tilisi on jäädytetty.",
|
"notification.moderation_warning.action_suspend": "Tilisi on jäädytetty.",
|
||||||
"notification.own_poll": "Äänestyksesi on päättynyt",
|
"notification.own_poll": "Äänestyksesi on päättynyt",
|
||||||
"notification.poll": "Äänestys, johon osallistuit, 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} tehosti julkaisuasi",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} ja <a>{count, plural, one {# muu} other {# muuta}}</a> tehostivat 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}",
|
"notification.relationships_severance_event": "Menetettiin yhteydet palvelimeen {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Seuraajat",
|
"privacy.private.short": "Seuraajat",
|
||||||
"privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella",
|
"privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella",
|
||||||
"privacy.public.short": "Julkinen",
|
"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.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.long": "Vähemmän algoritmiperusteista sisältöä",
|
||||||
"privacy.unlisted.short": "Vaivihkaisesti julkinen",
|
"privacy.unlisted.short": "Vaivihkaisesti julkinen",
|
||||||
"privacy_policy.last_updated": "Päivitetty viimeksi {date}",
|
"privacy_policy.last_updated": "Päivitetty viimeksi {date}",
|
||||||
"privacy_policy.title": "Tietosuojakäytäntö",
|
"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",
|
"recommended": "Suositellaan",
|
||||||
"refresh": "Päivitä",
|
"refresh": "Päivitä",
|
||||||
"regeneration_indicator.please_stand_by": "Ole valmiina.",
|
"regeneration_indicator.please_stand_by": "Ole valmiina.",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "Avaa tilin @{name} moderointinäkymä",
|
"status.admin_account": "Avaa tilin @{name} moderointinäkymä",
|
||||||
"status.admin_domain": "Avaa palvelimen {domain} moderointinäkymä",
|
"status.admin_domain": "Avaa palvelimen {domain} moderointinäkymä",
|
||||||
"status.admin_status": "Avaa julkaisu moderointinäkymässä",
|
"status.admin_status": "Avaa julkaisu moderointinäkymässä",
|
||||||
"status.all_disabled": "Tehostukset ja lainaukset ovat poissa käytöstä",
|
|
||||||
"status.block": "Estä @{name}",
|
"status.block": "Estä @{name}",
|
||||||
"status.bookmark": "Lisää kirjanmerkki",
|
"status.bookmark": "Lisää kirjanmerkki",
|
||||||
"status.cancel_reblog_private": "Peru tehostus",
|
"status.cancel_reblog_private": "Peru tehostus",
|
||||||
"status.cannot_quote": "Julkaisun tekijä on poistanut lainaamisen käytöstä",
|
|
||||||
"status.cannot_reblog": "Tätä julkaisua ei voi tehostaa",
|
"status.cannot_reblog": "Tätä julkaisua ei voi tehostaa",
|
||||||
"status.context.load_new_replies": "Uusia vastauksia saatavilla",
|
"status.context.load_new_replies": "Uusia vastauksia saatavilla",
|
||||||
"status.context.loading": "Tarkistetaan lisävastauksia",
|
"status.context.loading": "Tarkistetaan lisävastauksia",
|
||||||
"status.continued_thread": "Jatkoi ketjua",
|
"status.continued_thread": "Jatkoi ketjua",
|
||||||
"status.copy": "Kopioi linkki julkaisuun",
|
"status.copy": "Kopioi linkki julkaisuun",
|
||||||
"status.delete": "Poista",
|
"status.delete": "Poista",
|
||||||
"status.delete.success": "Julkaisu poistettu",
|
|
||||||
"status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
|
"status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
|
||||||
"status.direct": "Mainitse @{name} yksityisesti",
|
"status.direct": "Mainitse @{name} yksityisesti",
|
||||||
"status.direct_indicator": "Yksityismaininta",
|
"status.direct_indicator": "Yksityismaininta",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "Mykistä keskustelu",
|
"status.mute_conversation": "Mykistä keskustelu",
|
||||||
"status.open": "Laajenna julkaisu",
|
"status.open": "Laajenna julkaisu",
|
||||||
"status.pin": "Kiinnitä profiiliin",
|
"status.pin": "Kiinnitä profiiliin",
|
||||||
"status.quote": "Lainaa",
|
|
||||||
"status.quote.cancel": "Peruuta lainaus",
|
"status.quote.cancel": "Peruuta lainaus",
|
||||||
"status.quote_error.filtered": "Piilotettu jonkin asettamasi suodattimen takia",
|
"status.quote_error.filtered": "Piilotettu jonkin asettamasi suodattimen takia",
|
||||||
"status.quote_error.not_available": "Julkaisu ei saatavilla",
|
"status.quote_error.not_available": "Julkaisu ei saatavilla",
|
||||||
"status.quote_error.pending_approval": "Julkaisu odottaa",
|
"status.quote_error.pending_approval": "Julkaisu odottaa",
|
||||||
"status.quote_error.pending_approval_popout.body": "Saattaa viedä jonkin ainaa ennen kuin fediversumin kautta jaetut julkaisut tulevat näkyviin, sillä eri palvelimet käyttävät eri protokollia.",
|
"status.quote_error.pending_approval_popout.body": "Saattaa viedä jonkin ainaa ennen kuin fediversumin kautta jaetut julkaisut tulevat näkyviin, sillä eri palvelimet käyttävät eri protokollia.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Odottava lainaus? Pysy rauhallisena",
|
"status.quote_error.pending_approval_popout.title": "Odottava lainaus? Pysy rauhallisena",
|
||||||
"status.quote_followers_only": "Vain seuraajat voivat lainata tätä julkaisua",
|
|
||||||
"status.quote_manual_review": "Tekijä arvioi pyynnön manuaalisesti",
|
|
||||||
"status.quote_policy_change": "Vaihda, kuka voi lainata",
|
"status.quote_policy_change": "Vaihda, kuka voi lainata",
|
||||||
"status.quote_post_author": "Lainaa käyttäjän @{name} julkaisua",
|
"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.quotes.empty": "Kukaan ei ole vielä lainannut tätä julkaisua. Kun joku tekee niin, se tulee tähän näkyviin.",
|
|
||||||
"status.read_more": "Näytä enemmän",
|
"status.read_more": "Näytä enemmän",
|
||||||
"status.reblog": "Tehosta",
|
"status.reblog": "Tehosta",
|
||||||
"status.reblog_or_quote": "Tehosta tai lainaa",
|
|
||||||
"status.reblog_private": "Tehosta alkuperäiselle yleisölle",
|
"status.reblog_private": "Tehosta alkuperäiselle yleisölle",
|
||||||
"status.reblogged_by": "{name} tehosti",
|
"status.reblogged_by": "{name} tehosti",
|
||||||
"status.reblogs": "{count, plural, one {tehostus} other {tehostusta}}",
|
"status.reblogs": "{count, plural, one {tehostus} other {tehostusta}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "Vastaa",
|
"status.reply": "Vastaa",
|
||||||
"status.replyAll": "Vastaa ketjuun",
|
"status.replyAll": "Vastaa ketjuun",
|
||||||
"status.report": "Raportoi @{name}",
|
"status.report": "Raportoi @{name}",
|
||||||
"status.request_quote": "Pyydä lupaa lainata",
|
|
||||||
"status.revoke_quote": "Poista julkaisuni käyttäjän @{name} julkaisusta",
|
"status.revoke_quote": "Poista julkaisuni käyttäjän @{name} julkaisusta",
|
||||||
"status.sensitive_warning": "Arkaluonteista sisältöä",
|
"status.sensitive_warning": "Arkaluonteista sisältöä",
|
||||||
"status.share": "Jaa",
|
"status.share": "Jaa",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "Lisää kuvia, video tai äänitiedosto",
|
"upload_button.label": "Lisää kuvia, video tai äänitiedosto",
|
||||||
"upload_error.limit": "Tiedostolähetysten rajoitus ylitetty.",
|
"upload_error.limit": "Tiedostolähetysten rajoitus ylitetty.",
|
||||||
"upload_error.poll": "Tiedostojen lisääminen äänestysten oheen ei ole sallittua.",
|
"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.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_cancel": "Veto peruttiin. Medialiitettä {item} ei siirretty.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Medialiite {item} pudotettiin.",
|
"upload_form.drag_and_drop.on_drag_end": "Medialiite {item} pudotettiin.",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "Lisää äänenvoimakkuutta",
|
"video.volume_up": "Lisää äänenvoimakkuutta",
|
||||||
"visibility_modal.button_title": "Aseta näkyvyys",
|
"visibility_modal.button_title": "Aseta näkyvyys",
|
||||||
"visibility_modal.header": "Näkyvyys ja vuorovaikutus",
|
"visibility_modal.header": "Näkyvyys ja vuorovaikutus",
|
||||||
"visibility_modal.helper.direct_quoting": "Muut eivät voi lainata Mastodonissa kirjoitettuja yksityismainintoja.",
|
"visibility_modal.helper.direct_quoting": "Yksityismainintoja ei voi lainata.",
|
||||||
"visibility_modal.helper.privacy_editing": "Lähetettyjen julkaisujen näkyvyyttä ei voi vaihtaa.",
|
"visibility_modal.helper.privacy_editing": "Lähetettyjen julkaisujen näkyvyyttä ei voi vaihtaa.",
|
||||||
"visibility_modal.helper.private_quoting": "Muut eivät voi lainata Mastodonissa kirjoitettuja, vain seuraajille tarkoitettuja julkaisuja.",
|
"visibility_modal.helper.private_quoting": "Vain seuraajille tarkoitettuja julkaisuja ei voi lainata.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "Kun ihmiset lainaavat sinua, myös heidän julkaisunsa piilotetaan suosittujen julkaisujen aikajanoilta.",
|
"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.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.privacy_label": "Yksityisyys",
|
||||||
"visibility_modal.quote_followers": "Vain seuraajat",
|
"visibility_modal.quote_followers": "Vain seuraajat",
|
||||||
"visibility_modal.quote_label": "Vaihda, kuka voi lainata",
|
"visibility_modal.quote_label": "Vaihda, kuka voi lainata",
|
||||||
"visibility_modal.quote_nobody": "Vain minä",
|
"visibility_modal.quote_nobody": "Ei kukaan",
|
||||||
"visibility_modal.quote_public": "Kuka tahansa",
|
"visibility_modal.quote_public": "Kuka tahansa"
|
||||||
"visibility_modal.save": "Tallenna"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,9 +26,6 @@
|
||||||
"account.edit_profile": "Baguhin ang profile",
|
"account.edit_profile": "Baguhin ang profile",
|
||||||
"account.enable_notifications": "Ipaalam sa akin kapag nag-post si @{name}",
|
"account.enable_notifications": "Ipaalam sa akin kapag nag-post si @{name}",
|
||||||
"account.endorse": "I-tampok sa profile",
|
"account.endorse": "I-tampok sa profile",
|
||||||
"account.familiar_followers_many": "Sinusundan nina {name1}, {name2}, at {othersCount, plural, one {# iba pa na kilala mo} other {# na iba pa na kilala mo}}",
|
|
||||||
"account.familiar_followers_one": "Sinusindan ni/ng {name1}",
|
|
||||||
"account.familiar_followers_two": "Sinusindan nina {name1} at {name2}",
|
|
||||||
"account.featured": "Itinatampok",
|
"account.featured": "Itinatampok",
|
||||||
"account.featured_tags.last_status_at": "Huling post noong {date}",
|
"account.featured_tags.last_status_at": "Huling post noong {date}",
|
||||||
"account.featured_tags.last_status_never": "Walang mga post",
|
"account.featured_tags.last_status_never": "Walang mga post",
|
||||||
|
@ -37,11 +34,9 @@
|
||||||
"account.followers": "Mga tagasunod",
|
"account.followers": "Mga tagasunod",
|
||||||
"account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.",
|
"account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} tagasunod} other {{counter} tagasunod}}",
|
"account.followers_counter": "{count, plural, one {{counter} tagasunod} other {{counter} tagasunod}}",
|
||||||
"account.followers_you_know_counter": "{counter} (na) kilala mo",
|
|
||||||
"account.following": "Sinusundan",
|
"account.following": "Sinusundan",
|
||||||
"account.following_counter": "{count, plural, one {{counter} sinusundan} other {{counter} sinusundan}}",
|
"account.following_counter": "{count, plural, one {{counter} sinusundan} other {{counter} sinusundan}}",
|
||||||
"account.follows.empty": "Wala pang sinusundan ang tagagamit na ito.",
|
"account.follows.empty": "Wala pang sinusundan ang tagagamit na ito.",
|
||||||
"account.follows_you": "Sinusundan ka",
|
|
||||||
"account.go_to_profile": "Pumunta sa profile",
|
"account.go_to_profile": "Pumunta sa profile",
|
||||||
"account.hide_reblogs": "Itago ang mga pagpapalakas mula sa {name}",
|
"account.hide_reblogs": "Itago ang mga pagpapalakas mula sa {name}",
|
||||||
"account.in_memoriam": "Sa Alaala Ni.",
|
"account.in_memoriam": "Sa Alaala Ni.",
|
||||||
|
@ -132,14 +127,12 @@
|
||||||
"compose_form.reply": "Tumugon",
|
"compose_form.reply": "Tumugon",
|
||||||
"compose_form.spoiler.marked": "Tanggalin ang babala sa nilalaman",
|
"compose_form.spoiler.marked": "Tanggalin ang babala sa nilalaman",
|
||||||
"compose_form.spoiler.unmarked": "Idagdag 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",
|
"confirmation_modal.cancel": "Pagpaliban",
|
||||||
"confirmations.block.confirm": "Harangan",
|
"confirmations.block.confirm": "Harangan",
|
||||||
"confirmations.delete.message": "Sigurado ka bang gusto mong burahin ang post na ito?",
|
"confirmations.delete.message": "Sigurado ka bang gusto mong burahin ang post na ito?",
|
||||||
"confirmations.delete_list.confirm": "Tanggalin",
|
"confirmations.delete_list.confirm": "Tanggalin",
|
||||||
"confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?",
|
"confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?",
|
||||||
"confirmations.discard_edit_media.confirm": "Ipagpaliban",
|
"confirmations.discard_edit_media.confirm": "Ipagpaliban",
|
||||||
"content_warning.hide": "Itago ang post",
|
|
||||||
"content_warning.show_more": "Magpakita ng higit pa",
|
"content_warning.show_more": "Magpakita ng higit pa",
|
||||||
"conversation.mark_as_read": "Markahan bilang nabasa na",
|
"conversation.mark_as_read": "Markahan bilang nabasa na",
|
||||||
"conversation.open": "Tingnan ang pag-uusap",
|
"conversation.open": "Tingnan ang pag-uusap",
|
||||||
|
@ -262,8 +255,6 @@
|
||||||
"notification.mentioned_you": "Binanggit ka ni {name}",
|
"notification.mentioned_you": "Binanggit ka ni {name}",
|
||||||
"notification.moderation-warning.learn_more": "Matuto nang higit pa",
|
"notification.moderation-warning.learn_more": "Matuto nang higit pa",
|
||||||
"notification.moderation_warning": "Mayroong kang natanggap na babala sa pagtitimpi",
|
"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.relationships_severance_event.learn_more": "Matuto nang higit pa",
|
||||||
"notification_requests.accept": "Tanggapin",
|
"notification_requests.accept": "Tanggapin",
|
||||||
"notification_requests.maximize": "Palakihin",
|
"notification_requests.maximize": "Palakihin",
|
||||||
|
@ -351,7 +342,6 @@
|
||||||
"search_results.see_all": "Ipakita lahat",
|
"search_results.see_all": "Ipakita lahat",
|
||||||
"server_banner.server_stats": "Katayuan ng serbiro:",
|
"server_banner.server_stats": "Katayuan ng serbiro:",
|
||||||
"status.block": "Harangan si @{name}",
|
"status.block": "Harangan si @{name}",
|
||||||
"status.cannot_reblog": "Hindi maaring mapalakas ang post na ito",
|
|
||||||
"status.delete": "Tanggalin",
|
"status.delete": "Tanggalin",
|
||||||
"status.direct": "Palihim na banggitin si/ang @{name}",
|
"status.direct": "Palihim na banggitin si/ang @{name}",
|
||||||
"status.direct_indicator": "Palihim na banggit",
|
"status.direct_indicator": "Palihim na banggit",
|
||||||
|
@ -364,7 +354,6 @@
|
||||||
"status.mention": "Banggitin ang/si @{name}",
|
"status.mention": "Banggitin ang/si @{name}",
|
||||||
"status.more": "Higit pa",
|
"status.more": "Higit pa",
|
||||||
"status.read_more": "Basahin ang 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.reblogs.empty": "Wala pang nagpalakas ng post na ito. Kung may sinumang nagpalakas, makikita sila rito.",
|
||||||
"status.remove_favourite": "Tanggalin sa mga paborito",
|
"status.remove_favourite": "Tanggalin sa mga paborito",
|
||||||
"status.reply": "Tumugon",
|
"status.reply": "Tumugon",
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Lat heimatíðarlinju upp",
|
"keyboard_shortcuts.home": "Lat heimatíðarlinju upp",
|
||||||
"keyboard_shortcuts.hotkey": "Snarknappur",
|
"keyboard_shortcuts.hotkey": "Snarknappur",
|
||||||
"keyboard_shortcuts.legend": "Vís henda tekstin",
|
"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.local": "Lat lokala tíðarlinju upp",
|
||||||
"keyboard_shortcuts.mention": "Nevn rithøvund",
|
"keyboard_shortcuts.mention": "Nevn rithøvund",
|
||||||
"keyboard_shortcuts.muted": "Lat upp lista við doyvdum brúkarum",
|
"keyboard_shortcuts.muted": "Lat upp lista við doyvdum brúkarum",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Lat miðlar upp",
|
"keyboard_shortcuts.open_media": "Lat miðlar upp",
|
||||||
"keyboard_shortcuts.pinned": "Lat lista yvir festar postar upp",
|
"keyboard_shortcuts.pinned": "Lat lista yvir festar postar upp",
|
||||||
"keyboard_shortcuts.profile": "Lat vangan hjá høvundinum upp",
|
"keyboard_shortcuts.profile": "Lat vangan hjá høvundinum upp",
|
||||||
"keyboard_shortcuts.quote": "Sitera post",
|
|
||||||
"keyboard_shortcuts.reply": "Svara posti",
|
"keyboard_shortcuts.reply": "Svara posti",
|
||||||
"keyboard_shortcuts.requests": "Lat lista við fylgjaraumbønum upp",
|
"keyboard_shortcuts.requests": "Lat lista við fylgjaraumbønum upp",
|
||||||
"keyboard_shortcuts.search": "Fá leitibjálka í miðdepilin",
|
"keyboard_shortcuts.search": "Fá leitibjálka í miðdepilin",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Konta tín er ógildað.",
|
"notification.moderation_warning.action_suspend": "Konta tín er ógildað.",
|
||||||
"notification.own_poll": "Tín atkvøðugreiðsla er endað",
|
"notification.own_poll": "Tín atkvøðugreiðsla er endað",
|
||||||
"notification.poll": "Ein atkvøðugreiðsla, har tú atkvøddi, 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} 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.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}",
|
"notification.relationships_severance_event": "Mist sambond við {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Fylgjarar",
|
"privacy.private.short": "Fylgjarar",
|
||||||
"privacy.public.long": "Øll í og uttanfyri Mastodon",
|
"privacy.public.long": "Øll í og uttanfyri Mastodon",
|
||||||
"privacy.public.short": "Alment",
|
"privacy.public.short": "Alment",
|
||||||
"privacy.quote.anyone": "{visibility}, øll kunnu sitera",
|
|
||||||
"privacy.quote.disabled": "{visibility}, siteringar óvirknar",
|
|
||||||
"privacy.quote.limited": "{visibility}, siteringar avmarkaðar",
|
|
||||||
"privacy.unlisted.additional": "Hetta er júst sum almenn, tó verður posturin ikki vístur í samtíðarrásum ella frámerkjum, rannsakan ella Mastodon leitingum, sjálvt um valið er galdandi fyri alla kontuna.",
|
"privacy.unlisted.additional": "Hetta er júst sum almenn, tó verður posturin ikki vístur í samtíðarrásum ella frámerkjum, rannsakan ella Mastodon leitingum, sjálvt um valið er galdandi fyri alla kontuna.",
|
||||||
"privacy.unlisted.long": "Færri algoritmiskar fanfarur",
|
"privacy.unlisted.long": "Færri algoritmiskar fanfarur",
|
||||||
"privacy.unlisted.short": "Stillur almenningur",
|
"privacy.unlisted.short": "Stillur almenningur",
|
||||||
"privacy_policy.last_updated": "Seinast dagført {date}",
|
"privacy_policy.last_updated": "Seinast dagført {date}",
|
||||||
"privacy_policy.title": "Privatlívspolitikkur",
|
"privacy_policy.title": "Privatlívspolitikkur",
|
||||||
"quote_error.poll": "Tað er ikki loyvt at sitera spurnarkanningar.",
|
|
||||||
"quote_error.quote": "Bara ein sitering er loyvd í senn.",
|
|
||||||
"quote_error.unauthorized": "Tú hevur ikki rættindi at sitera hendan postin.",
|
|
||||||
"quote_error.upload": "Sitering er ikki loyvd um miðlar eru viðheftir.",
|
|
||||||
"recommended": "Viðmælt",
|
"recommended": "Viðmælt",
|
||||||
"refresh": "Endurles",
|
"refresh": "Endurles",
|
||||||
"regeneration_indicator.please_stand_by": "Bíða við.",
|
"regeneration_indicator.please_stand_by": "Bíða við.",
|
||||||
|
@ -859,11 +849,9 @@
|
||||||
"status.admin_account": "Lat kjakleiðaramarkamót upp fyri @{name}",
|
"status.admin_account": "Lat kjakleiðaramarkamót upp fyri @{name}",
|
||||||
"status.admin_domain": "Lat umsjónarmarkamót upp fyri {domain}",
|
"status.admin_domain": "Lat umsjónarmarkamót upp fyri {domain}",
|
||||||
"status.admin_status": "Lat hendan postin upp í kjakleiðaramarkamótinum",
|
"status.admin_status": "Lat hendan postin upp í kjakleiðaramarkamótinum",
|
||||||
"status.all_disabled": "Stimbranir og sitatir eru gjørd óvirkin",
|
|
||||||
"status.block": "Blokera @{name}",
|
"status.block": "Blokera @{name}",
|
||||||
"status.bookmark": "Goym",
|
"status.bookmark": "Goym",
|
||||||
"status.cancel_reblog_private": "Strika stimbran",
|
"status.cancel_reblog_private": "Strika stimbran",
|
||||||
"status.cannot_quote": "Høvundurin hevur gjørt sitering óvirkna fyri hendan postin",
|
|
||||||
"status.cannot_reblog": "Tað ber ikki til at stimbra hendan postin",
|
"status.cannot_reblog": "Tað ber ikki til at stimbra hendan postin",
|
||||||
"status.context.load_new_replies": "Nýggj svar tøk",
|
"status.context.load_new_replies": "Nýggj svar tøk",
|
||||||
"status.context.loading": "Kanni um tað eru fleiri svar",
|
"status.context.loading": "Kanni um tað eru fleiri svar",
|
||||||
|
@ -892,22 +880,16 @@
|
||||||
"status.mute_conversation": "Doyv samrøðu",
|
"status.mute_conversation": "Doyv samrøðu",
|
||||||
"status.open": "Víðka henda postin",
|
"status.open": "Víðka henda postin",
|
||||||
"status.pin": "Ger fastan í vangan",
|
"status.pin": "Ger fastan í vangan",
|
||||||
"status.quote": "Sitat",
|
|
||||||
"status.quote.cancel": "Ógilda sitat",
|
"status.quote.cancel": "Ógilda sitat",
|
||||||
"status.quote_error.filtered": "Eitt av tínum filtrum fjalir hetta",
|
"status.quote_error.filtered": "Eitt av tínum filtrum fjalir hetta",
|
||||||
"status.quote_error.not_available": "Postur ikki tøkur",
|
"status.quote_error.not_available": "Postur ikki tøkur",
|
||||||
"status.quote_error.pending_approval": "Postur bíðar",
|
"status.quote_error.pending_approval": "Postur bíðar",
|
||||||
"status.quote_error.pending_approval_popout.body": "Sitatir, sum eru deild tvørtur um fediversið, kunnu taka nakað av tíð at vísast, tí ymiskir ambætarar hava ymiskar protokollir.",
|
"status.quote_error.pending_approval_popout.body": "Sitatir, sum eru deild tvørtur um fediversið, kunnu taka nakað av tíð at vísast, tí ymiskir ambætarar hava ymiskar protokollir.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Bíðar eftir sitati? Tak tað róligt",
|
"status.quote_error.pending_approval_popout.title": "Bíðar eftir sitati? Tak tað róligt",
|
||||||
"status.quote_followers_only": "Bara fylgjarar kunnu sitera hendan postin",
|
|
||||||
"status.quote_manual_review": "Høvundurin fer at eftirkanna manuelt",
|
|
||||||
"status.quote_policy_change": "Broyt hvør kann sitera",
|
"status.quote_policy_change": "Broyt hvør kann sitera",
|
||||||
"status.quote_post_author": "Siteraði ein post hjá @{name}",
|
"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.read_more": "Les meira",
|
||||||
"status.reblog": "Stimbra",
|
"status.reblog": "Stimbra",
|
||||||
"status.reblog_or_quote": "Stimbra ella sitera",
|
|
||||||
"status.reblog_private": "Stimbra við upprunasýni",
|
"status.reblog_private": "Stimbra við upprunasýni",
|
||||||
"status.reblogged_by": "{name} stimbrað",
|
"status.reblogged_by": "{name} stimbrað",
|
||||||
"status.reblogs": "{count, plural, one {stimbran} other {stimbranir}}",
|
"status.reblogs": "{count, plural, one {stimbran} other {stimbranir}}",
|
||||||
|
@ -920,7 +902,6 @@
|
||||||
"status.reply": "Svara",
|
"status.reply": "Svara",
|
||||||
"status.replyAll": "Svara tráðnum",
|
"status.replyAll": "Svara tráðnum",
|
||||||
"status.report": "Melda @{name}",
|
"status.report": "Melda @{name}",
|
||||||
"status.request_quote": "Fyrispurningur um at sitera",
|
|
||||||
"status.revoke_quote": "Strika postin hjá mær frá postinum hjá @{name}",
|
"status.revoke_quote": "Strika postin hjá mær frá postinum hjá @{name}",
|
||||||
"status.sensitive_warning": "Viðkvæmt tilfar",
|
"status.sensitive_warning": "Viðkvæmt tilfar",
|
||||||
"status.share": "Deil",
|
"status.share": "Deil",
|
||||||
|
@ -959,7 +940,6 @@
|
||||||
"upload_button.label": "Legg myndir, sjónfílu ella ljóðfílu afturat",
|
"upload_button.label": "Legg myndir, sjónfílu ella ljóðfílu afturat",
|
||||||
"upload_error.limit": "Farið er um markið fyri fíluuppsending.",
|
"upload_error.limit": "Farið er um markið fyri fíluuppsending.",
|
||||||
"upload_error.poll": "Ikki loyvt at leggja fílur upp í spurnarkanningum.",
|
"upload_error.poll": "Ikki loyvt at leggja fílur upp í spurnarkanningum.",
|
||||||
"upload_error.quote": "Ikki loyvt at leggja fílur upp við siteringum.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Fyri at heinta eitt miðlaviðfesti, trýst á millumrúm ella returknapp. Meðan tú dregur, brúka pílarnar fyri at flyta miðaviðfesti í einhvønn rætning. Trýst á millumrúm ella returknapp aftur fyri at sleppa miðlaviðfestinum í nýggja staðnum ella trýst á esc-knappin fyri at angra.",
|
"upload_form.drag_and_drop.instructions": "Fyri at heinta eitt miðlaviðfesti, trýst á millumrúm ella returknapp. Meðan tú dregur, brúka pílarnar fyri at flyta miðaviðfesti í einhvønn rætning. Trýst á millumrúm ella returknapp aftur fyri at sleppa miðlaviðfestinum í nýggja staðnum ella trýst á esc-knappin fyri at angra.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Draging varð steðgað. Miðlaviðfestið {item} varð slept.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Draging varð steðgað. Miðlaviðfestið {item} varð slept.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Miðlaviðfestið {item} var slept.",
|
"upload_form.drag_and_drop.on_drag_end": "Miðlaviðfestið {item} var slept.",
|
||||||
|
@ -985,15 +965,14 @@
|
||||||
"video.volume_up": "Øk um ljóðstyrki",
|
"video.volume_up": "Øk um ljóðstyrki",
|
||||||
"visibility_modal.button_title": "Set sýni",
|
"visibility_modal.button_title": "Set sýni",
|
||||||
"visibility_modal.header": "Sýni og samvirkni",
|
"visibility_modal.header": "Sýni og samvirkni",
|
||||||
"visibility_modal.helper.direct_quoting": "Privatar umrøður, sum eru skrivaðar á Mastodon, kunnu ikki siterast av øðrum.",
|
"visibility_modal.helper.direct_quoting": "Privatar umrøður kunnu ikki siterast.",
|
||||||
"visibility_modal.helper.privacy_editing": "Útgivnir postar kunnnu ikki broyta sýni.",
|
"visibility_modal.helper.privacy_editing": "Útgivnir postar kunnnu ikki broyta sýni.",
|
||||||
"visibility_modal.helper.private_quoting": "Postar, sum einans eru fyri fylgjarar á Mastodon, kunnu ikki siterast av øðrum.",
|
"visibility_modal.helper.private_quoting": "Postar, sum einans eru fyri fylgjarar, kunnu ikki siterast.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "Tá fólk sitera teg, so vera teirra postar eisini fjaldir frá tíðarlinjum við ráki.",
|
"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.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.privacy_label": "Privatlív",
|
||||||
"visibility_modal.quote_followers": "Einans fylgjarar",
|
"visibility_modal.quote_followers": "Einans fylgjarar",
|
||||||
"visibility_modal.quote_label": "Broyt hvør kann sitera",
|
"visibility_modal.quote_label": "Broyt hvør kann sitera",
|
||||||
"visibility_modal.quote_nobody": "Bara eg",
|
"visibility_modal.quote_nobody": "Eingin",
|
||||||
"visibility_modal.quote_public": "Ein og hvør",
|
"visibility_modal.quote_public": "Ein og hvør"
|
||||||
"visibility_modal.save": "Goym"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,9 +245,6 @@
|
||||||
"confirmations.remove_from_followers.confirm": "Supprimer l'abonné·e",
|
"confirmations.remove_from_followers.confirm": "Supprimer l'abonné·e",
|
||||||
"confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Êtes-vous sûr de vouloir continuer ?",
|
"confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Êtes-vous sûr de vouloir continuer ?",
|
||||||
"confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?",
|
"confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?",
|
||||||
"confirmations.revoke_quote.confirm": "Retirer la publication",
|
|
||||||
"confirmations.revoke_quote.message": "Cette action ne peut pas être annulée.",
|
|
||||||
"confirmations.revoke_quote.title": "Retirer la publication ?",
|
|
||||||
"confirmations.unfollow.confirm": "Ne plus suivre",
|
"confirmations.unfollow.confirm": "Ne plus suivre",
|
||||||
"confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name}?",
|
"confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name}?",
|
||||||
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
|
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
|
||||||
|
@ -292,7 +289,6 @@
|
||||||
"domain_pill.your_handle": "Votre identifiant :",
|
"domain_pill.your_handle": "Votre identifiant :",
|
||||||
"domain_pill.your_server": "Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.",
|
"domain_pill.your_server": "Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.",
|
||||||
"domain_pill.your_username": "Votre identifiant unique sur ce serveur. Il est possible de rencontrer des utilisateur·rice·s ayant le même nom d'utilisateur sur différents serveurs.",
|
"domain_pill.your_username": "Votre identifiant unique sur ce serveur. Il est possible de rencontrer des utilisateur·rice·s ayant le même nom d'utilisateur sur différents serveurs.",
|
||||||
"dropdown.empty": "Sélectionner une option",
|
|
||||||
"embed.instructions": "Intégrez cette publication à votre site en copiant le code ci-dessous.",
|
"embed.instructions": "Intégrez cette publication à votre site en copiant le code ci-dessous.",
|
||||||
"embed.preview": "Voici comment il apparaîtra:",
|
"embed.preview": "Voici comment il apparaîtra:",
|
||||||
"emoji_button.activity": "Activité",
|
"emoji_button.activity": "Activité",
|
||||||
|
@ -501,8 +497,6 @@
|
||||||
"keyboard_shortcuts.translate": "traduire un message",
|
"keyboard_shortcuts.translate": "traduire un message",
|
||||||
"keyboard_shortcuts.unfocus": "Ne plus se concentrer sur la zone de rédaction/barre de recherche",
|
"keyboard_shortcuts.unfocus": "Ne plus se concentrer sur la zone de rédaction/barre de recherche",
|
||||||
"keyboard_shortcuts.up": "Monter dans la liste",
|
"keyboard_shortcuts.up": "Monter dans la liste",
|
||||||
"learn_more_link.got_it": "Compris",
|
|
||||||
"learn_more_link.learn_more": "En savoir plus",
|
|
||||||
"lightbox.close": "Fermer",
|
"lightbox.close": "Fermer",
|
||||||
"lightbox.next": "Suivant",
|
"lightbox.next": "Suivant",
|
||||||
"lightbox.previous": "Précédent",
|
"lightbox.previous": "Précédent",
|
||||||
|
@ -736,7 +730,6 @@
|
||||||
"privacy.unlisted.short": "Public discret",
|
"privacy.unlisted.short": "Public discret",
|
||||||
"privacy_policy.last_updated": "Dernière mise à jour {date}",
|
"privacy_policy.last_updated": "Dernière mise à jour {date}",
|
||||||
"privacy_policy.title": "Politique de confidentialité",
|
"privacy_policy.title": "Politique de confidentialité",
|
||||||
"quote_error.unauthorized": "Vous n'êtes pas autorisé⋅e à citer cette publication.",
|
|
||||||
"recommended": "Recommandé",
|
"recommended": "Recommandé",
|
||||||
"refresh": "Actualiser",
|
"refresh": "Actualiser",
|
||||||
"regeneration_indicator.please_stand_by": "Veuillez patienter.",
|
"regeneration_indicator.please_stand_by": "Veuillez patienter.",
|
||||||
|
@ -805,7 +798,6 @@
|
||||||
"report_notification.categories.violation": "Infraction aux règles du serveur",
|
"report_notification.categories.violation": "Infraction aux règles du serveur",
|
||||||
"report_notification.categories.violation_sentence": "infraction de règle",
|
"report_notification.categories.violation_sentence": "infraction de règle",
|
||||||
"report_notification.open": "Ouvrir le signalement",
|
"report_notification.open": "Ouvrir le signalement",
|
||||||
"search.clear": "Effacer la recherche",
|
|
||||||
"search.no_recent_searches": "Aucune recherche récente",
|
"search.no_recent_searches": "Aucune recherche récente",
|
||||||
"search.placeholder": "Rechercher",
|
"search.placeholder": "Rechercher",
|
||||||
"search.quick_action.account_search": "Profils correspondant à {x}",
|
"search.quick_action.account_search": "Profils correspondant à {x}",
|
||||||
|
@ -847,7 +839,6 @@
|
||||||
"status.bookmark": "Ajouter aux signets",
|
"status.bookmark": "Ajouter aux signets",
|
||||||
"status.cancel_reblog_private": "Débooster",
|
"status.cancel_reblog_private": "Débooster",
|
||||||
"status.cannot_reblog": "Cette publication ne peut pas être boostée",
|
"status.cannot_reblog": "Cette publication ne peut pas être boostée",
|
||||||
"status.context.load_new_replies": "Nouvelles réponses disponibles",
|
|
||||||
"status.continued_thread": "Suite du fil",
|
"status.continued_thread": "Suite du fil",
|
||||||
"status.copy": "Copier un lien vers cette publication",
|
"status.copy": "Copier un lien vers cette publication",
|
||||||
"status.delete": "Supprimer",
|
"status.delete": "Supprimer",
|
||||||
|
@ -873,13 +864,6 @@
|
||||||
"status.mute_conversation": "Masquer la conversation",
|
"status.mute_conversation": "Masquer la conversation",
|
||||||
"status.open": "Afficher la publication entière",
|
"status.open": "Afficher la publication entière",
|
||||||
"status.pin": "Épingler sur profil",
|
"status.pin": "Épingler sur profil",
|
||||||
"status.quote": "Citation",
|
|
||||||
"status.quote.cancel": "Annuler la citation",
|
|
||||||
"status.quote_error.not_available": "Publication non disponible",
|
|
||||||
"status.quote_error.pending_approval": "Publication en attente",
|
|
||||||
"status.quote_error.pending_approval_popout.title": "Publication en attente ? Restez calme",
|
|
||||||
"status.quote_policy_change": "Changer qui peut vous citer",
|
|
||||||
"status.quote_private": "Les publications privées ne peuvent pas être citées",
|
|
||||||
"status.read_more": "En savoir plus",
|
"status.read_more": "En savoir plus",
|
||||||
"status.reblog": "Booster",
|
"status.reblog": "Booster",
|
||||||
"status.reblog_private": "Booster avec visibilité originale",
|
"status.reblog_private": "Booster avec visibilité originale",
|
||||||
|
@ -949,13 +933,7 @@
|
||||||
"video.mute": "Couper le son",
|
"video.mute": "Couper le son",
|
||||||
"video.pause": "Pause",
|
"video.pause": "Pause",
|
||||||
"video.play": "Lecture",
|
"video.play": "Lecture",
|
||||||
"video.skip_backward": "Revenir en arrière",
|
|
||||||
"video.unmute": "Rétablir le son",
|
"video.unmute": "Rétablir le son",
|
||||||
"video.volume_down": "Baisser le volume",
|
"video.volume_down": "Baisser le volume",
|
||||||
"video.volume_up": "Augmenter le volume",
|
"video.volume_up": "Augmenter le volume"
|
||||||
"visibility_modal.button_title": "Définir la visibilité",
|
|
||||||
"visibility_modal.header": "Visibilité et interactions",
|
|
||||||
"visibility_modal.privacy_label": "Vie privée",
|
|
||||||
"visibility_modal.quote_public": "Tout le monde",
|
|
||||||
"visibility_modal.save": "Sauvegarder"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,9 +245,6 @@
|
||||||
"confirmations.remove_from_followers.confirm": "Supprimer l'abonné·e",
|
"confirmations.remove_from_followers.confirm": "Supprimer l'abonné·e",
|
||||||
"confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Êtes-vous sûr de vouloir continuer ?",
|
"confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Êtes-vous sûr de vouloir continuer ?",
|
||||||
"confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?",
|
"confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?",
|
||||||
"confirmations.revoke_quote.confirm": "Retirer la publication",
|
|
||||||
"confirmations.revoke_quote.message": "Cette action ne peut pas être annulée.",
|
|
||||||
"confirmations.revoke_quote.title": "Retirer la publication ?",
|
|
||||||
"confirmations.unfollow.confirm": "Ne plus suivre",
|
"confirmations.unfollow.confirm": "Ne plus suivre",
|
||||||
"confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name} ?",
|
"confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name} ?",
|
||||||
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
|
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
|
||||||
|
@ -292,7 +289,6 @@
|
||||||
"domain_pill.your_handle": "Votre identifiant :",
|
"domain_pill.your_handle": "Votre identifiant :",
|
||||||
"domain_pill.your_server": "Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.",
|
"domain_pill.your_server": "Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.",
|
||||||
"domain_pill.your_username": "Votre identifiant unique sur ce serveur. Il est possible de rencontrer des utilisateur·rice·s ayant le même nom d'utilisateur sur différents serveurs.",
|
"domain_pill.your_username": "Votre identifiant unique sur ce serveur. Il est possible de rencontrer des utilisateur·rice·s ayant le même nom d'utilisateur sur différents serveurs.",
|
||||||
"dropdown.empty": "Sélectionner une option",
|
|
||||||
"embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.",
|
"embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.",
|
||||||
"embed.preview": "Il apparaîtra comme cela :",
|
"embed.preview": "Il apparaîtra comme cela :",
|
||||||
"emoji_button.activity": "Activités",
|
"emoji_button.activity": "Activités",
|
||||||
|
@ -501,8 +497,6 @@
|
||||||
"keyboard_shortcuts.translate": "traduire un message",
|
"keyboard_shortcuts.translate": "traduire un message",
|
||||||
"keyboard_shortcuts.unfocus": "Quitter la zone de rédaction/barre de recherche",
|
"keyboard_shortcuts.unfocus": "Quitter la zone de rédaction/barre de recherche",
|
||||||
"keyboard_shortcuts.up": "Monter dans la liste",
|
"keyboard_shortcuts.up": "Monter dans la liste",
|
||||||
"learn_more_link.got_it": "Compris",
|
|
||||||
"learn_more_link.learn_more": "En savoir plus",
|
|
||||||
"lightbox.close": "Fermer",
|
"lightbox.close": "Fermer",
|
||||||
"lightbox.next": "Suivant",
|
"lightbox.next": "Suivant",
|
||||||
"lightbox.previous": "Précédent",
|
"lightbox.previous": "Précédent",
|
||||||
|
@ -736,7 +730,6 @@
|
||||||
"privacy.unlisted.short": "Public discret",
|
"privacy.unlisted.short": "Public discret",
|
||||||
"privacy_policy.last_updated": "Dernière mise à jour {date}",
|
"privacy_policy.last_updated": "Dernière mise à jour {date}",
|
||||||
"privacy_policy.title": "Politique de confidentialité",
|
"privacy_policy.title": "Politique de confidentialité",
|
||||||
"quote_error.unauthorized": "Vous n'êtes pas autorisé⋅e à citer cette publication.",
|
|
||||||
"recommended": "Recommandé",
|
"recommended": "Recommandé",
|
||||||
"refresh": "Actualiser",
|
"refresh": "Actualiser",
|
||||||
"regeneration_indicator.please_stand_by": "Veuillez patienter.",
|
"regeneration_indicator.please_stand_by": "Veuillez patienter.",
|
||||||
|
@ -805,7 +798,6 @@
|
||||||
"report_notification.categories.violation": "Infraction aux règles du serveur",
|
"report_notification.categories.violation": "Infraction aux règles du serveur",
|
||||||
"report_notification.categories.violation_sentence": "infraction de règle",
|
"report_notification.categories.violation_sentence": "infraction de règle",
|
||||||
"report_notification.open": "Ouvrir le signalement",
|
"report_notification.open": "Ouvrir le signalement",
|
||||||
"search.clear": "Effacer la recherche",
|
|
||||||
"search.no_recent_searches": "Aucune recherche récente",
|
"search.no_recent_searches": "Aucune recherche récente",
|
||||||
"search.placeholder": "Rechercher",
|
"search.placeholder": "Rechercher",
|
||||||
"search.quick_action.account_search": "Profils correspondant à {x}",
|
"search.quick_action.account_search": "Profils correspondant à {x}",
|
||||||
|
@ -847,7 +839,6 @@
|
||||||
"status.bookmark": "Ajouter aux marque-pages",
|
"status.bookmark": "Ajouter aux marque-pages",
|
||||||
"status.cancel_reblog_private": "Annuler le partage",
|
"status.cancel_reblog_private": "Annuler le partage",
|
||||||
"status.cannot_reblog": "Ce message ne peut pas être partagé",
|
"status.cannot_reblog": "Ce message ne peut pas être partagé",
|
||||||
"status.context.load_new_replies": "Nouvelles réponses disponibles",
|
|
||||||
"status.continued_thread": "Suite du fil",
|
"status.continued_thread": "Suite du fil",
|
||||||
"status.copy": "Copier le lien vers le message",
|
"status.copy": "Copier le lien vers le message",
|
||||||
"status.delete": "Supprimer",
|
"status.delete": "Supprimer",
|
||||||
|
@ -873,13 +864,6 @@
|
||||||
"status.mute_conversation": "Masquer la conversation",
|
"status.mute_conversation": "Masquer la conversation",
|
||||||
"status.open": "Afficher le message entier",
|
"status.open": "Afficher le message entier",
|
||||||
"status.pin": "Épingler sur le profil",
|
"status.pin": "Épingler sur le profil",
|
||||||
"status.quote": "Citation",
|
|
||||||
"status.quote.cancel": "Annuler la citation",
|
|
||||||
"status.quote_error.not_available": "Publication non disponible",
|
|
||||||
"status.quote_error.pending_approval": "Publication en attente",
|
|
||||||
"status.quote_error.pending_approval_popout.title": "Publication en attente ? Restez calme",
|
|
||||||
"status.quote_policy_change": "Changer qui peut vous citer",
|
|
||||||
"status.quote_private": "Les publications privées ne peuvent pas être citées",
|
|
||||||
"status.read_more": "En savoir plus",
|
"status.read_more": "En savoir plus",
|
||||||
"status.reblog": "Partager",
|
"status.reblog": "Partager",
|
||||||
"status.reblog_private": "Partager à l’audience originale",
|
"status.reblog_private": "Partager à l’audience originale",
|
||||||
|
@ -949,13 +933,7 @@
|
||||||
"video.mute": "Couper le son",
|
"video.mute": "Couper le son",
|
||||||
"video.pause": "Pause",
|
"video.pause": "Pause",
|
||||||
"video.play": "Lecture",
|
"video.play": "Lecture",
|
||||||
"video.skip_backward": "Revenir en arrière",
|
|
||||||
"video.unmute": "Rétablir le son",
|
"video.unmute": "Rétablir le son",
|
||||||
"video.volume_down": "Baisser le volume",
|
"video.volume_down": "Baisser le volume",
|
||||||
"video.volume_up": "Augmenter le volume",
|
"video.volume_up": "Augmenter le volume"
|
||||||
"visibility_modal.button_title": "Définir la visibilité",
|
|
||||||
"visibility_modal.header": "Visibilité et interactions",
|
|
||||||
"visibility_modal.privacy_label": "Vie privée",
|
|
||||||
"visibility_modal.quote_public": "Tout le monde",
|
|
||||||
"visibility_modal.save": "Sauvegarder"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Oscail amlíne bhaile",
|
"keyboard_shortcuts.home": "Oscail amlíne bhaile",
|
||||||
"keyboard_shortcuts.hotkey": "Eochair aicearra",
|
"keyboard_shortcuts.hotkey": "Eochair aicearra",
|
||||||
"keyboard_shortcuts.legend": "Taispeáin an finscéal seo",
|
"keyboard_shortcuts.legend": "Taispeáin an finscéal seo",
|
||||||
"keyboard_shortcuts.load_more": "Dírigh ar an gcnaipe \"Lódáil níos mó\"",
|
|
||||||
"keyboard_shortcuts.local": "Oscail an amlíne áitiúil",
|
"keyboard_shortcuts.local": "Oscail an amlíne áitiúil",
|
||||||
"keyboard_shortcuts.mention": "Luaigh údar",
|
"keyboard_shortcuts.mention": "Luaigh údar",
|
||||||
"keyboard_shortcuts.muted": "Oscail liosta na n-úsáideoirí balbhaithe",
|
"keyboard_shortcuts.muted": "Oscail liosta na n-úsáideoirí balbhaithe",
|
||||||
|
@ -620,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Cuireadh do chuntas ar fionraí.",
|
"notification.moderation_warning.action_suspend": "Cuireadh do chuntas ar fionraí.",
|
||||||
"notification.own_poll": "Tá do suirbhé críochnaithe",
|
"notification.own_poll": "Tá do suirbhé críochnaithe",
|
||||||
"notification.poll": "Tá deireadh le vótaíocht inar vótáil tú",
|
"notification.poll": "Tá deireadh le vótaíocht inar vótáil tú",
|
||||||
"notification.quoted_update": "Chuir {name} post in eagar a luaigh tú",
|
|
||||||
"notification.reblog": "Mhol {name} do phostáil",
|
"notification.reblog": "Mhol {name} do phostáil",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} agus <a>{count, plural, one {# duine eile} other {# daoine eile}}</a> a chuir borradh faoi do phost",
|
"notification.reblog.name_and_others_with_link": "{name} agus <a>{count, plural, one {# duine eile} other {# daoine eile}}</a> a chuir borradh faoi do phost",
|
||||||
"notification.relationships_severance_event": "Cailleadh naisc le {name}",
|
"notification.relationships_severance_event": "Cailleadh naisc le {name}",
|
||||||
|
@ -740,18 +738,11 @@
|
||||||
"privacy.private.short": "Leantóirí",
|
"privacy.private.short": "Leantóirí",
|
||||||
"privacy.public.long": "Duine ar bith ar agus amach Mastodon",
|
"privacy.public.long": "Duine ar bith ar agus amach Mastodon",
|
||||||
"privacy.public.short": "Poiblí",
|
"privacy.public.short": "Poiblí",
|
||||||
"privacy.quote.anyone": "{visibility}, is féidir le duine ar bith lua",
|
|
||||||
"privacy.quote.disabled": "{visibility}, comharthaí athfhriotail díchumasaithe",
|
|
||||||
"privacy.quote.limited": "{visibility}, luachana teoranta",
|
|
||||||
"privacy.unlisted.additional": "Iompraíonn sé seo díreach mar a bheadh poiblí, ach amháin ní bheidh an postáil le feiceáil i bhfothaí beo nó i hashtags, in iniúchadh nó i gcuardach Mastodon, fiú má tá tú liostáilte ar fud an chuntais.",
|
"privacy.unlisted.additional": "Iompraíonn sé seo díreach mar a bheadh poiblí, ach amháin ní bheidh an postáil le feiceáil i bhfothaí beo nó i hashtags, in iniúchadh nó i gcuardach Mastodon, fiú má tá tú liostáilte ar fud an chuntais.",
|
||||||
"privacy.unlisted.long": "Níos lú fanfarraí algarthacha",
|
"privacy.unlisted.long": "Níos lú fanfarraí algarthacha",
|
||||||
"privacy.unlisted.short": "Poiblí ciúin",
|
"privacy.unlisted.short": "Poiblí ciúin",
|
||||||
"privacy_policy.last_updated": "Nuashonraithe {date}",
|
"privacy_policy.last_updated": "Nuashonraithe {date}",
|
||||||
"privacy_policy.title": "Polasaí príobháideachais",
|
"privacy_policy.title": "Polasaí príobháideachais",
|
||||||
"quote_error.poll": "Ní cheadaítear lua le pobalbhreitheanna.",
|
|
||||||
"quote_error.quote": "Ní cheadaítear ach luachan amháin ag an am.",
|
|
||||||
"quote_error.unauthorized": "Níl údarás agat an post seo a lua.",
|
|
||||||
"quote_error.upload": "Ní cheadaítear lua a dhéanamh le ceangaltáin sna meáin.",
|
|
||||||
"recommended": "Molta",
|
"recommended": "Molta",
|
||||||
"refresh": "Athnuaigh",
|
"refresh": "Athnuaigh",
|
||||||
"regeneration_indicator.please_stand_by": "Fan i do sheasamh, le do thoil.",
|
"regeneration_indicator.please_stand_by": "Fan i do sheasamh, le do thoil.",
|
||||||
|
@ -858,11 +849,9 @@
|
||||||
"status.admin_account": "Oscail comhéadan modhnóireachta do @{name}",
|
"status.admin_account": "Oscail comhéadan modhnóireachta do @{name}",
|
||||||
"status.admin_domain": "Oscail comhéadan modhnóireachta le haghaidh {domain}",
|
"status.admin_domain": "Oscail comhéadan modhnóireachta le haghaidh {domain}",
|
||||||
"status.admin_status": "Oscail an postáil seo sa chomhéadan modhnóireachta",
|
"status.admin_status": "Oscail an postáil seo sa chomhéadan modhnóireachta",
|
||||||
"status.all_disabled": "Tá borradh agus luachana díchumasaithe",
|
|
||||||
"status.block": "Bac @{name}",
|
"status.block": "Bac @{name}",
|
||||||
"status.bookmark": "Leabharmharcanna",
|
"status.bookmark": "Leabharmharcanna",
|
||||||
"status.cancel_reblog_private": "Dímhol",
|
"status.cancel_reblog_private": "Dímhol",
|
||||||
"status.cannot_quote": "Tá an t-údar tar éis lua a dhíchumasú ar an bpost seo",
|
|
||||||
"status.cannot_reblog": "Ní féidir an phostáil seo a mholadh",
|
"status.cannot_reblog": "Ní féidir an phostáil seo a mholadh",
|
||||||
"status.context.load_new_replies": "Freagraí nua ar fáil",
|
"status.context.load_new_replies": "Freagraí nua ar fáil",
|
||||||
"status.context.loading": "Ag seiceáil le haghaidh tuilleadh freagraí",
|
"status.context.loading": "Ag seiceáil le haghaidh tuilleadh freagraí",
|
||||||
|
@ -891,20 +880,13 @@
|
||||||
"status.mute_conversation": "Balbhaigh comhrá",
|
"status.mute_conversation": "Balbhaigh comhrá",
|
||||||
"status.open": "Leathnaigh an post seo",
|
"status.open": "Leathnaigh an post seo",
|
||||||
"status.pin": "Pionnáil ar do phróifíl",
|
"status.pin": "Pionnáil ar do phróifíl",
|
||||||
"status.quote": "Luachan",
|
|
||||||
"status.quote.cancel": "Cealaigh an luachan",
|
|
||||||
"status.quote_error.filtered": "I bhfolach mar gheall ar cheann de do scagairí",
|
"status.quote_error.filtered": "I bhfolach mar gheall ar cheann de do scagairí",
|
||||||
"status.quote_error.not_available": "Níl an postáil ar fáil",
|
"status.quote_error.not_available": "Níl an postáil ar fáil",
|
||||||
"status.quote_error.pending_approval": "Post ar feitheamh",
|
"status.quote_error.pending_approval": "Post ar feitheamh",
|
||||||
"status.quote_error.pending_approval_popout.body": "D’fhéadfadh sé go dtógfadh sé tamall le Sleachta a roinntear ar fud Fediverse a thaispeáint, toisc go mbíonn prótacail éagsúla ag freastalaithe éagsúla.",
|
"status.quote_error.pending_approval_popout.body": "D’fhéadfadh sé go dtógfadh sé tamall le Sleachta a roinntear ar fud Fediverse a thaispeáint, toisc go mbíonn prótacail éagsúla ag freastalaithe éagsúla.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Ag fanacht le luachan? Fan socair",
|
"status.quote_error.pending_approval_popout.title": "Ag fanacht le luachan? Fan socair",
|
||||||
"status.quote_followers_only": "Ní féidir ach le leantóirí an post seo a lua",
|
|
||||||
"status.quote_manual_review": "Déanfaidh an t-údar athbhreithniú de láimh",
|
|
||||||
"status.quote_policy_change": "Athraigh cé a fhéadann luachan a thabhairt",
|
"status.quote_policy_change": "Athraigh cé a fhéadann luachan a thabhairt",
|
||||||
"status.quote_post_author": "Luaigh mé post le @{name}",
|
"status.quote_post_author": "Luaigh mé post le @{name}",
|
||||||
"status.quote_private": "Ní féidir poist phríobháideacha a lua",
|
|
||||||
"status.quotes": "{count, plural, one {sliocht} few {sliocht} other {sliocht}}",
|
|
||||||
"status.quotes.empty": "Níl an post seo luaite ag aon duine go fóill. Nuair a dhéanann duine é, taispeánfar anseo é.",
|
|
||||||
"status.read_more": "Léan a thuilleadh",
|
"status.read_more": "Léan a thuilleadh",
|
||||||
"status.reblog": "Treisiú",
|
"status.reblog": "Treisiú",
|
||||||
"status.reblog_private": "Mol le léargas bunúsach",
|
"status.reblog_private": "Mol le léargas bunúsach",
|
||||||
|
@ -919,7 +901,6 @@
|
||||||
"status.reply": "Freagair",
|
"status.reply": "Freagair",
|
||||||
"status.replyAll": "Freagair le snáithe",
|
"status.replyAll": "Freagair le snáithe",
|
||||||
"status.report": "Tuairiscigh @{name}",
|
"status.report": "Tuairiscigh @{name}",
|
||||||
"status.request_quote": "Iarratas ar luachan",
|
|
||||||
"status.revoke_quote": "Bain mo phost ó phost @{name}",
|
"status.revoke_quote": "Bain mo phost ó phost @{name}",
|
||||||
"status.sensitive_warning": "Ábhar íogair",
|
"status.sensitive_warning": "Ábhar íogair",
|
||||||
"status.share": "Comhroinn",
|
"status.share": "Comhroinn",
|
||||||
|
@ -958,7 +939,6 @@
|
||||||
"upload_button.label": "Cuir íomhánna, físeán nó comhad fuaime leis",
|
"upload_button.label": "Cuir íomhánna, físeán nó comhad fuaime leis",
|
||||||
"upload_error.limit": "Sáraíodh an teorainn uaslódála comhaid.",
|
"upload_error.limit": "Sáraíodh an teorainn uaslódála comhaid.",
|
||||||
"upload_error.poll": "Ní cheadaítear uaslódáil comhad le pobalbhreith.",
|
"upload_error.poll": "Ní cheadaítear uaslódáil comhad le pobalbhreith.",
|
||||||
"upload_error.quote": "Ní cheadaítear uaslódáil comhaid le comharthaí athfhriotail.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Chun ceangaltán meán a phiocadh suas, brúigh spás nó cuir isteach. Agus tú ag tarraingt, bain úsáid as na heochracha saigheada chun an ceangaltán meán a bhogadh i dtreo ar bith. Brúigh spás nó cuir isteach arís chun an ceangaltán meán a scaoileadh ina phost nua, nó brúigh éalú chun cealú.",
|
"upload_form.drag_and_drop.instructions": "Chun ceangaltán meán a phiocadh suas, brúigh spás nó cuir isteach. Agus tú ag tarraingt, bain úsáid as na heochracha saigheada chun an ceangaltán meán a bhogadh i dtreo ar bith. Brúigh spás nó cuir isteach arís chun an ceangaltán meán a scaoileadh ina phost nua, nó brúigh éalú chun cealú.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Cuireadh an tarraingt ar ceal. Scaoileadh ceangaltán meán {item}.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Cuireadh an tarraingt ar ceal. Scaoileadh ceangaltán meán {item}.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Scaoileadh ceangaltán meán {item}.",
|
"upload_form.drag_and_drop.on_drag_end": "Scaoileadh ceangaltán meán {item}.",
|
||||||
|
@ -984,15 +964,14 @@
|
||||||
"video.volume_up": "Toirt suas",
|
"video.volume_up": "Toirt suas",
|
||||||
"visibility_modal.button_title": "Socraigh infheictheacht",
|
"visibility_modal.button_title": "Socraigh infheictheacht",
|
||||||
"visibility_modal.header": "Infheictheacht agus idirghníomhaíocht",
|
"visibility_modal.header": "Infheictheacht agus idirghníomhaíocht",
|
||||||
"visibility_modal.helper.direct_quoting": "Ní féidir le daoine eile tráchtanna príobháideacha a scríobhadh ar Mastodon a lua.",
|
"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.privacy_editing": "Ní féidir infheictheacht postálacha foilsithe a athrú.",
|
||||||
"visibility_modal.helper.private_quoting": "Ní féidir le daoine eile poist atá scríofa ar Mastodon agus atá dírithe ar leanúna amháin a lua.",
|
"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.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.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.privacy_label": "Príobháideacht",
|
||||||
"visibility_modal.quote_followers": "Leantóirí amháin",
|
"visibility_modal.quote_followers": "Leantóirí amháin",
|
||||||
"visibility_modal.quote_label": "Athraigh cé a fhéadann luachan a thabhairt",
|
"visibility_modal.quote_label": "Athraigh cé a fhéadann luachan a thabhairt",
|
||||||
"visibility_modal.quote_nobody": "Mise amháin",
|
"visibility_modal.quote_nobody": "Níl aon duine",
|
||||||
"visibility_modal.quote_public": "Aon duine",
|
"visibility_modal.quote_public": "Aon duine"
|
||||||
"visibility_modal.save": "Sábháil"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Para abrir a cronoloxía inicial",
|
"keyboard_shortcuts.home": "Para abrir a cronoloxía inicial",
|
||||||
"keyboard_shortcuts.hotkey": "Tecla de atallo",
|
"keyboard_shortcuts.hotkey": "Tecla de atallo",
|
||||||
"keyboard_shortcuts.legend": "Para amosar esta lenda",
|
"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.local": "Para abrir a cronoloxía local",
|
||||||
"keyboard_shortcuts.mention": "Para mencionar a autora",
|
"keyboard_shortcuts.mention": "Para mencionar a autora",
|
||||||
"keyboard_shortcuts.muted": "Abrir lista de usuarias acaladas",
|
"keyboard_shortcuts.muted": "Abrir lista de usuarias acaladas",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Para abrir o contido multimedia",
|
"keyboard_shortcuts.open_media": "Para abrir o contido multimedia",
|
||||||
"keyboard_shortcuts.pinned": "Para abrir a listaxe das publicacións fixadas",
|
"keyboard_shortcuts.pinned": "Para abrir a listaxe das publicacións fixadas",
|
||||||
"keyboard_shortcuts.profile": "Para abrir o perfil da autora",
|
"keyboard_shortcuts.profile": "Para abrir o perfil da autora",
|
||||||
"keyboard_shortcuts.quote": "Citar publicación",
|
|
||||||
"keyboard_shortcuts.reply": "Para responder",
|
"keyboard_shortcuts.reply": "Para responder",
|
||||||
"keyboard_shortcuts.requests": "Para abrir a listaxe das peticións de seguimento",
|
"keyboard_shortcuts.requests": "Para abrir a listaxe das peticións de seguimento",
|
||||||
"keyboard_shortcuts.search": "Por cursor na caixa de busca",
|
"keyboard_shortcuts.search": "Por cursor na caixa de busca",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "A túa conta foi suspendida.",
|
"notification.moderation_warning.action_suspend": "A túa conta foi suspendida.",
|
||||||
"notification.own_poll": "A túa enquisa rematou",
|
"notification.own_poll": "A túa enquisa rematou",
|
||||||
"notification.poll": "Rematou a enquisa na que votaches",
|
"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} 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.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}",
|
"notification.relationships_severance_event": "Relacións perdidas con {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Seguidoras",
|
"privacy.private.short": "Seguidoras",
|
||||||
"privacy.public.long": "Para todas dentro e fóra de Mastodon",
|
"privacy.public.long": "Para todas dentro e fóra de Mastodon",
|
||||||
"privacy.public.short": "Público",
|
"privacy.public.short": "Público",
|
||||||
"privacy.quote.anyone": "{visibility}, calquera pode citar",
|
|
||||||
"privacy.quote.disabled": "{visibility}, citas desactivadas",
|
|
||||||
"privacy.quote.limited": "{visibility}, citas limitadas",
|
|
||||||
"privacy.unlisted.additional": "Do mesmo xeito que público, menos que a publicación non aparecerá nas cronoloxías en directo ou nos cancelos, en descubrir ou nas buscas de Mastodon, incluso se estivese establecido nas opcións xerais da conta.",
|
"privacy.unlisted.additional": "Do mesmo xeito que público, menos que a publicación non aparecerá nas cronoloxías en directo ou nos cancelos, en descubrir ou nas buscas de Mastodon, incluso se estivese establecido nas opcións xerais da conta.",
|
||||||
"privacy.unlisted.long": "Menor implicación dos algoritmos",
|
"privacy.unlisted.long": "Menor implicación dos algoritmos",
|
||||||
"privacy.unlisted.short": "Público limitado",
|
"privacy.unlisted.short": "Público limitado",
|
||||||
"privacy_policy.last_updated": "Actualizado por última vez no {date}",
|
"privacy_policy.last_updated": "Actualizado por última vez no {date}",
|
||||||
"privacy_policy.title": "Política de Privacidade",
|
"privacy_policy.title": "Política de Privacidade",
|
||||||
"quote_error.poll": "Non se permite citar as enquisas.",
|
|
||||||
"quote_error.quote": "Só se permite citar unha vez.",
|
|
||||||
"quote_error.unauthorized": "Non tes permiso para citar esta publicación.",
|
|
||||||
"quote_error.upload": "As citas non están permitidas para anexos multimedia.",
|
|
||||||
"recommended": "Aconsellable",
|
"recommended": "Aconsellable",
|
||||||
"refresh": "Actualizar",
|
"refresh": "Actualizar",
|
||||||
"regeneration_indicator.please_stand_by": "Por favor, agarda.",
|
"regeneration_indicator.please_stand_by": "Por favor, agarda.",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "Abrir interface de moderación para @{name}",
|
"status.admin_account": "Abrir interface de moderación para @{name}",
|
||||||
"status.admin_domain": "Abrir interface de moderación para {domain}",
|
"status.admin_domain": "Abrir interface de moderación para {domain}",
|
||||||
"status.admin_status": "Abrir esta publicación na interface de moderación",
|
"status.admin_status": "Abrir esta publicación na interface de moderación",
|
||||||
"status.all_disabled": "As promocións e citas están desactivadas",
|
|
||||||
"status.block": "Bloquear a @{name}",
|
"status.block": "Bloquear a @{name}",
|
||||||
"status.bookmark": "Marcar",
|
"status.bookmark": "Marcar",
|
||||||
"status.cancel_reblog_private": "Desfacer compartido",
|
"status.cancel_reblog_private": "Desfacer compartido",
|
||||||
"status.cannot_quote": "A persoa autora desactivou as citas desta publicación",
|
|
||||||
"status.cannot_reblog": "Esta publicación non pode ser promovida",
|
"status.cannot_reblog": "Esta publicación non pode ser promovida",
|
||||||
"status.context.load_new_replies": "Non hai respostas dispoñibles",
|
"status.context.load_new_replies": "Non hai respostas dispoñibles",
|
||||||
"status.context.loading": "Mirando se hai máis respostas",
|
"status.context.loading": "Mirando se hai máis respostas",
|
||||||
"status.continued_thread": "Continua co fío",
|
"status.continued_thread": "Continua co fío",
|
||||||
"status.copy": "Copiar ligazón á publicación",
|
"status.copy": "Copiar ligazón á publicación",
|
||||||
"status.delete": "Eliminar",
|
"status.delete": "Eliminar",
|
||||||
"status.delete.success": "Publicación eliminada",
|
|
||||||
"status.detailed_status": "Vista detallada da conversa",
|
"status.detailed_status": "Vista detallada da conversa",
|
||||||
"status.direct": "Mencionar de xeito privado a @{name}",
|
"status.direct": "Mencionar de xeito privado a @{name}",
|
||||||
"status.direct_indicator": "Mención privada",
|
"status.direct_indicator": "Mención privada",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "Silenciar conversa",
|
"status.mute_conversation": "Silenciar conversa",
|
||||||
"status.open": "Estender esta publicación",
|
"status.open": "Estender esta publicación",
|
||||||
"status.pin": "Fixar no perfil",
|
"status.pin": "Fixar no perfil",
|
||||||
"status.quote": "Citar",
|
|
||||||
"status.quote.cancel": "Cancelar a cita",
|
"status.quote.cancel": "Cancelar a cita",
|
||||||
"status.quote_error.filtered": "Oculto debido a un dos teus filtros",
|
"status.quote_error.filtered": "Oculto debido a un dos teus filtros",
|
||||||
"status.quote_error.not_available": "Publicación non dispoñible",
|
"status.quote_error.not_available": "Publicación non dispoñible",
|
||||||
"status.quote_error.pending_approval": "Publicación pendente",
|
"status.quote_error.pending_approval": "Publicación pendente",
|
||||||
"status.quote_error.pending_approval_popout.body": "As citas compartidas no Fediverso poderían tardar en mostrarse, xa que os diferentes servidores teñen diferentes protocolos.",
|
"status.quote_error.pending_approval_popout.body": "As citas compartidas no Fediverso poderían tardar en mostrarse, xa que os diferentes servidores teñen diferentes protocolos.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Cita pendente? Non te apures",
|
"status.quote_error.pending_approval_popout.title": "Cita pendente? Non te apures",
|
||||||
"status.quote_followers_only": "Só as seguidoras poden citar esta publicación",
|
|
||||||
"status.quote_manual_review": "A autora revisará manualmente",
|
|
||||||
"status.quote_policy_change": "Cambia quen pode citarte",
|
"status.quote_policy_change": "Cambia quen pode citarte",
|
||||||
"status.quote_post_author": "Citou unha publicación de @{name}",
|
"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.quotes.empty": "Aínda ninguén citou esta publicación. Cando alguén o faga aparecerá aquí.",
|
|
||||||
"status.read_more": "Ler máis",
|
"status.read_more": "Ler máis",
|
||||||
"status.reblog": "Promover",
|
"status.reblog": "Promover",
|
||||||
"status.reblog_or_quote": "Promover ou citar",
|
|
||||||
"status.reblog_private": "Compartir coa audiencia orixinal",
|
"status.reblog_private": "Compartir coa audiencia orixinal",
|
||||||
"status.reblogged_by": "{name} promoveu",
|
"status.reblogged_by": "{name} promoveu",
|
||||||
"status.reblogs": "{count, plural, one {promoción} other {promocións}}",
|
"status.reblogs": "{count, plural, one {promoción} other {promocións}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "Responder",
|
"status.reply": "Responder",
|
||||||
"status.replyAll": "Responder ao tema",
|
"status.replyAll": "Responder ao tema",
|
||||||
"status.report": "Denunciar @{name}",
|
"status.report": "Denunciar @{name}",
|
||||||
"status.request_quote": "Solicitar a citación",
|
|
||||||
"status.revoke_quote": "Retirar a miña publicación da cita de @{name}",
|
"status.revoke_quote": "Retirar a miña publicación da cita de @{name}",
|
||||||
"status.sensitive_warning": "Contido sensíbel",
|
"status.sensitive_warning": "Contido sensíbel",
|
||||||
"status.share": "Compartir",
|
"status.share": "Compartir",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "Engadir imaxes, un vídeo ou ficheiro de audio",
|
"upload_button.label": "Engadir imaxes, un vídeo ou ficheiro de audio",
|
||||||
"upload_error.limit": "Límite máximo do ficheiro a subir excedido.",
|
"upload_error.limit": "Límite máximo do ficheiro a subir excedido.",
|
||||||
"upload_error.poll": "Non se poden subir ficheiros nas enquisas.",
|
"upload_error.poll": "Non se poden subir ficheiros nas enquisas.",
|
||||||
"upload_error.quote": "Non se permite subir ficheiros ao citar.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Preme en Espazo ou Enter para escoller un anexo multimedia. Ao arrastrar usa as teclas de frecha para mover o anexo en todas direccións.Preme Espazo ou Enter outra vez para soltalo na súa nova posición, ou preme Escape para desbotar.",
|
"upload_form.drag_and_drop.instructions": "Preme en Espazo ou Enter para escoller un anexo multimedia. Ao arrastrar usa as teclas de frecha para mover o anexo en todas direccións.Preme Espazo ou Enter outra vez para soltalo na súa nova posición, ou preme Escape para desbotar.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Cancelouse o movemento. O anexo {item} soltouse.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Cancelouse o movemento. O anexo {item} soltouse.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Soltouse o anexo multimedia {item}.",
|
"upload_form.drag_and_drop.on_drag_end": "Soltouse o anexo multimedia {item}.",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "Subir volume",
|
"video.volume_up": "Subir volume",
|
||||||
"visibility_modal.button_title": "Establece a visibilidade",
|
"visibility_modal.button_title": "Establece a visibilidade",
|
||||||
"visibility_modal.header": "Visibilidade e interaccións",
|
"visibility_modal.header": "Visibilidade e interaccións",
|
||||||
"visibility_modal.helper.direct_quoting": "As mencións privadas creadas con Mastodon non poden ser citadas.",
|
"visibility_modal.helper.direct_quoting": "A mencións privadas non se poden citar.",
|
||||||
"visibility_modal.helper.privacy_editing": "Non se pode cambiar a visibilidade das publicacións xa publicadas.",
|
"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 creadas con Mastodon non poden ser citadas.",
|
"visibility_modal.helper.private_quoting": "As publicacións só para seguidoras non se poden citar.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "Cando alguén te cite, a súa publicación non aparecerá nas cronoloxías de popularidade.",
|
"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.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.privacy_label": "Privacidade",
|
||||||
"visibility_modal.quote_followers": "Só para seguidoras",
|
"visibility_modal.quote_followers": "Só para seguidoras",
|
||||||
"visibility_modal.quote_label": "Cambia quen pode citarte",
|
"visibility_modal.quote_label": "Cambia quen pode citarte",
|
||||||
"visibility_modal.quote_nobody": "Só para min",
|
"visibility_modal.quote_nobody": "Ninguén",
|
||||||
"visibility_modal.quote_public": "Calquera",
|
"visibility_modal.quote_public": "Calquera"
|
||||||
"visibility_modal.save": "Gardar"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "פתיחת ציר זמן אישי",
|
"keyboard_shortcuts.home": "פתיחת ציר זמן אישי",
|
||||||
"keyboard_shortcuts.hotkey": "מקש קיצור",
|
"keyboard_shortcuts.hotkey": "מקש קיצור",
|
||||||
"keyboard_shortcuts.legend": "הצגת מקרא",
|
"keyboard_shortcuts.legend": "הצגת מקרא",
|
||||||
"keyboard_shortcuts.load_more": "התמקדות בכפתור \"טען עוד\"",
|
|
||||||
"keyboard_shortcuts.local": "פתיחת ציר זמן קהילתי",
|
"keyboard_shortcuts.local": "פתיחת ציר זמן קהילתי",
|
||||||
"keyboard_shortcuts.mention": "לאזכר את המחבר.ת",
|
"keyboard_shortcuts.mention": "לאזכר את המחבר.ת",
|
||||||
"keyboard_shortcuts.muted": "פתיחת רשימת משתמשים מושתקים",
|
"keyboard_shortcuts.muted": "פתיחת רשימת משתמשים מושתקים",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "פתיחת מדיה",
|
"keyboard_shortcuts.open_media": "פתיחת מדיה",
|
||||||
"keyboard_shortcuts.pinned": "פתיחת הודעה נעוצות",
|
"keyboard_shortcuts.pinned": "פתיחת הודעה נעוצות",
|
||||||
"keyboard_shortcuts.profile": "פתח את פרופיל המשתמש",
|
"keyboard_shortcuts.profile": "פתח את פרופיל המשתמש",
|
||||||
"keyboard_shortcuts.quote": "לצטט ההודעה",
|
|
||||||
"keyboard_shortcuts.reply": "תגובה להודעה",
|
"keyboard_shortcuts.reply": "תגובה להודעה",
|
||||||
"keyboard_shortcuts.requests": "פתיחת רשימת בקשות מעקב",
|
"keyboard_shortcuts.requests": "פתיחת רשימת בקשות מעקב",
|
||||||
"keyboard_shortcuts.search": "להתמקד בחלון החיפוש",
|
"keyboard_shortcuts.search": "להתמקד בחלון החיפוש",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "חשבונך הושעה.",
|
"notification.moderation_warning.action_suspend": "חשבונך הושעה.",
|
||||||
"notification.own_poll": "הסקר שלך הסתיים",
|
"notification.own_poll": "הסקר שלך הסתיים",
|
||||||
"notification.poll": "סקר שהצבעת בו הסתיים",
|
"notification.poll": "סקר שהצבעת בו הסתיים",
|
||||||
"notification.quoted_update": "{name} ערך הודעה שהשתמשת בה בציטוט",
|
|
||||||
"notification.reblog": "הודעתך הודהדה על ידי {name}",
|
"notification.reblog": "הודעתך הודהדה על ידי {name}",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} ועוד <a>{count, plural,one {אחד נוסף}other {# נוספים}}</a> הדהדו את הודעתך",
|
"notification.reblog.name_and_others_with_link": "{name} ועוד <a>{count, plural,one {אחד נוסף}other {# נוספים}}</a> הדהדו את הודעתך",
|
||||||
"notification.relationships_severance_event": "אבד הקשר עם {name}",
|
"notification.relationships_severance_event": "אבד הקשר עם {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "עוקבים",
|
"privacy.private.short": "עוקבים",
|
||||||
"privacy.public.long": "כל הגולשים, מחוברים למסטודון או לא",
|
"privacy.public.long": "כל הגולשים, מחוברים למסטודון או לא",
|
||||||
"privacy.public.short": "פומבי",
|
"privacy.public.short": "פומבי",
|
||||||
"privacy.quote.anyone": "{visibility}, הציטוט מותר לכל",
|
|
||||||
"privacy.quote.disabled": "{visibility}, האפשרות לציטוט מכובה",
|
|
||||||
"privacy.quote.limited": "{visibility}, האפשרות לציטוט מוגבלת",
|
|
||||||
"privacy.unlisted.additional": "ההתנהגות דומה להודעה ציבורית, מלבד שההודעה לא תופיע בפיד החי המקומי או בתגיות, תגליות או חיפוש מסטודון, אפילו אם ביקשת שהחשבון כולו יהיה פומבי.",
|
"privacy.unlisted.additional": "ההתנהגות דומה להודעה ציבורית, מלבד שההודעה לא תופיע בפיד החי המקומי או בתגיות, תגליות או חיפוש מסטודון, אפילו אם ביקשת שהחשבון כולו יהיה פומבי.",
|
||||||
"privacy.unlisted.long": "פחות חשיפה לאלגוריתמים",
|
"privacy.unlisted.long": "פחות חשיפה לאלגוריתמים",
|
||||||
"privacy.unlisted.short": "ציבורי שקט",
|
"privacy.unlisted.short": "ציבורי שקט",
|
||||||
"privacy_policy.last_updated": "עודכן לאחרונה {date}",
|
"privacy_policy.last_updated": "עודכן לאחרונה {date}",
|
||||||
"privacy_policy.title": "מדיניות פרטיות",
|
"privacy_policy.title": "מדיניות פרטיות",
|
||||||
"quote_error.poll": "לא ניתן לכלול משאל כאשר מחברים הודעת ציטוט.",
|
|
||||||
"quote_error.quote": "רק ציטוט אחד מותר בכל הודעה.",
|
|
||||||
"quote_error.unauthorized": "אין לך הרשאה לצטט את ההודעה הזו.",
|
|
||||||
"quote_error.upload": "ציטוט הכולל מדיה אינו אפשרי.",
|
|
||||||
"recommended": "מומלץ",
|
"recommended": "מומלץ",
|
||||||
"refresh": "רענון",
|
"refresh": "רענון",
|
||||||
"regeneration_indicator.please_stand_by": "נא להמתין.",
|
"regeneration_indicator.please_stand_by": "נא להמתין.",
|
||||||
|
@ -859,11 +849,9 @@
|
||||||
"status.admin_account": "פתח/י ממשק פיקוח דיון עבור @{name}",
|
"status.admin_account": "פתח/י ממשק פיקוח דיון עבור @{name}",
|
||||||
"status.admin_domain": "פתיחת ממשק פיקוח דיון עבור {domain}",
|
"status.admin_domain": "פתיחת ממשק פיקוח דיון עבור {domain}",
|
||||||
"status.admin_status": "לפתוח הודעה זו במסך ניהול הדיונים",
|
"status.admin_status": "לפתוח הודעה זו במסך ניהול הדיונים",
|
||||||
"status.all_disabled": "הדהודים וציטוטים כובו",
|
|
||||||
"status.block": "חסימת @{name}",
|
"status.block": "חסימת @{name}",
|
||||||
"status.bookmark": "סימניה",
|
"status.bookmark": "סימניה",
|
||||||
"status.cancel_reblog_private": "הסרת הדהוד",
|
"status.cancel_reblog_private": "הסרת הדהוד",
|
||||||
"status.cannot_quote": "יוצר\\ת ההודעה חסמו את האפשרות לצטט אותה",
|
|
||||||
"status.cannot_reblog": "לא ניתן להדהד חצרוץ זה",
|
"status.cannot_reblog": "לא ניתן להדהד חצרוץ זה",
|
||||||
"status.context.load_new_replies": "הגיעו תגובות חדשות",
|
"status.context.load_new_replies": "הגיעו תגובות חדשות",
|
||||||
"status.context.loading": "מחפש תגובות חדשות",
|
"status.context.loading": "מחפש תגובות חדשות",
|
||||||
|
@ -882,7 +870,7 @@
|
||||||
"status.filter": "סנן הודעה זו",
|
"status.filter": "סנן הודעה זו",
|
||||||
"status.history.created": "{name} יצר/ה {date}",
|
"status.history.created": "{name} יצר/ה {date}",
|
||||||
"status.history.edited": "{name} ערך/ה {date}",
|
"status.history.edited": "{name} ערך/ה {date}",
|
||||||
"status.load_more": "טען עוד",
|
"status.load_more": "עוד",
|
||||||
"status.media.open": "לחץ לפתיחה",
|
"status.media.open": "לחץ לפתיחה",
|
||||||
"status.media.show": "לחץ להצגה",
|
"status.media.show": "לחץ להצגה",
|
||||||
"status.media_hidden": "מדיה מוסתרת",
|
"status.media_hidden": "מדיה מוסתרת",
|
||||||
|
@ -892,23 +880,16 @@
|
||||||
"status.mute_conversation": "השתקת שיחה",
|
"status.mute_conversation": "השתקת שיחה",
|
||||||
"status.open": "הרחבת הודעה זו",
|
"status.open": "הרחבת הודעה זו",
|
||||||
"status.pin": "הצמדה לפרופיל שלי",
|
"status.pin": "הצמדה לפרופיל שלי",
|
||||||
"status.quote": "ציטוט",
|
|
||||||
"status.quote.cancel": "ביטול הודעת ציטוט",
|
"status.quote.cancel": "ביטול הודעת ציטוט",
|
||||||
"status.quote_error.filtered": "מוסתר בהתאם לסננים שלך",
|
"status.quote_error.filtered": "מוסתר בהתאם לסננים שלך",
|
||||||
"status.quote_error.not_available": "ההודעה לא זמינה",
|
"status.quote_error.not_available": "ההודעה לא זמינה",
|
||||||
"status.quote_error.pending_approval": "ההודעה בהמתנה לאישור",
|
"status.quote_error.pending_approval": "ההודעה בהמתנה לאישור",
|
||||||
"status.quote_error.pending_approval_popout.body": "ציטוטים ששותפו בפדיוורס עשויים להתפרסם אחרי עיכוב קל, כיוון ששרתים שונים משתמשים בפרוטוקולים שונים.",
|
"status.quote_error.pending_approval_popout.body": "ציטוטים ששותפו בפדיוורס עשויים להתפרסם אחרי עיכוב קל, כיוון ששרתים שונים משתמשים בפרוטוקולים שונים.",
|
||||||
"status.quote_error.pending_approval_popout.title": "ההודעה בהמתנה? המתינו ברוגע",
|
"status.quote_error.pending_approval_popout.title": "ההודעה בהמתנה? המתינו ברוגע",
|
||||||
"status.quote_followers_only": "רק עוקביך יוכלו לצטט את ההודעה",
|
|
||||||
"status.quote_manual_review": "מחבר.ת ההודעה יחזרו אליך אחרי בדיקה",
|
|
||||||
"status.quote_policy_change": "הגדרת הרשאה לציטוט הודעותיך",
|
"status.quote_policy_change": "הגדרת הרשאה לציטוט הודעותיך",
|
||||||
"status.quote_post_author": "ההודעה צוטטה על ידי @{name}",
|
"status.quote_post_author": "ההודעה צוטטה על ידי @{name}",
|
||||||
"status.quote_private": "הודעות פרטיות לא ניתנות לציטוט",
|
|
||||||
"status.quotes": "{count, plural,one {ציטוט}other {ציטוטים}}",
|
|
||||||
"status.quotes.empty": "עוד לא ציטטו את ההודעה הזו. כאשר זה יקרה, הציטוטים יופיעו כאן.",
|
|
||||||
"status.read_more": "לקרוא עוד",
|
"status.read_more": "לקרוא עוד",
|
||||||
"status.reblog": "הדהוד",
|
"status.reblog": "הדהוד",
|
||||||
"status.reblog_or_quote": "להדהד או לצטט",
|
|
||||||
"status.reblog_private": "להדהד ברמת הנראות המקורית",
|
"status.reblog_private": "להדהד ברמת הנראות המקורית",
|
||||||
"status.reblogged_by": "{name} הידהד/ה:",
|
"status.reblogged_by": "{name} הידהד/ה:",
|
||||||
"status.reblogs": "{count, plural, one {הדהוד אחד} two {שני הדהודים} other {# הדהודים}}",
|
"status.reblogs": "{count, plural, one {הדהוד אחד} two {שני הדהודים} other {# הדהודים}}",
|
||||||
|
@ -921,7 +902,6 @@
|
||||||
"status.reply": "תגובה",
|
"status.reply": "תגובה",
|
||||||
"status.replyAll": "תגובה לשרשור",
|
"status.replyAll": "תגובה לשרשור",
|
||||||
"status.report": "דיווח על @{name}",
|
"status.report": "דיווח על @{name}",
|
||||||
"status.request_quote": "הגשת בקשה להרשות ציטוט",
|
|
||||||
"status.revoke_quote": "הסירו את הודעתי מההודעה של @{name}",
|
"status.revoke_quote": "הסירו את הודעתי מההודעה של @{name}",
|
||||||
"status.sensitive_warning": "תוכן רגיש",
|
"status.sensitive_warning": "תוכן רגיש",
|
||||||
"status.share": "שיתוף",
|
"status.share": "שיתוף",
|
||||||
|
@ -960,7 +940,6 @@
|
||||||
"upload_button.label": "הוספת מדיה",
|
"upload_button.label": "הוספת מדיה",
|
||||||
"upload_error.limit": "קובץ להעלאה חורג מנפח מותר.",
|
"upload_error.limit": "קובץ להעלאה חורג מנפח מותר.",
|
||||||
"upload_error.poll": "לא ניתן להעלות קובץ עם סקר.",
|
"upload_error.poll": "לא ניתן להעלות קובץ עם סקר.",
|
||||||
"upload_error.quote": "לא ניתן להעלות קובץ כאשר מחברים הודעת ציטוט.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "כדי לבחור קובץ מוצמד, יש ללחוץ על מקש רווח או אנטר. בעת הגרירה, השתמשו במקשי החיצים כדי להזיז את הקובץ המוצמד בכל כיוון. לחצו רווח או אנטר בשנית כדי לעזוב את הקובץ במקומו החדש, או לחצו אסקייפ לביטול.",
|
"upload_form.drag_and_drop.instructions": "כדי לבחור קובץ מוצמד, יש ללחוץ על מקש רווח או אנטר. בעת הגרירה, השתמשו במקשי החיצים כדי להזיז את הקובץ המוצמד בכל כיוון. לחצו רווח או אנטר בשנית כדי לעזוב את הקובץ במקומו החדש, או לחצו אסקייפ לביטול.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "הגרירה בוטלה. קובץ המדיה {item} נעזב.",
|
"upload_form.drag_and_drop.on_drag_cancel": "הגרירה בוטלה. קובץ המדיה {item} נעזב.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "קובץ המדיה {item} נעזב.",
|
"upload_form.drag_and_drop.on_drag_end": "קובץ המדיה {item} נעזב.",
|
||||||
|
@ -986,15 +965,14 @@
|
||||||
"video.volume_up": "הגברת עוצמת שמע",
|
"video.volume_up": "הגברת עוצמת שמע",
|
||||||
"visibility_modal.button_title": "בחירת רמת חשיפה",
|
"visibility_modal.button_title": "בחירת רמת חשיפה",
|
||||||
"visibility_modal.header": "חשיפה והידוּד (אינטראקציה)",
|
"visibility_modal.header": "חשיפה והידוּד (אינטראקציה)",
|
||||||
"visibility_modal.helper.direct_quoting": "איזכורים פרטיים שנוצרו במסטודון חסומים מציטוט על ידי אחרים.",
|
"visibility_modal.helper.direct_quoting": "הודעות פרטיות לא ניתנות לציטוט.",
|
||||||
"visibility_modal.helper.privacy_editing": "לא ניתן לשנות את דרגת החשיפה של הודעות שפורסמו.",
|
"visibility_modal.helper.privacy_editing": "לא ניתן לשנות את דרגת החשיפה של הודעות שפורסמו.",
|
||||||
"visibility_modal.helper.private_quoting": "הודעות לעוקבים־בלבד שנוצרו במסטודון חסומות מציטוט על ידי אחרים.",
|
"visibility_modal.helper.private_quoting": "לא ניתן לצטט הודעות שחשופות לעוקבים בלבד.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "כאשר אחרים מצטטים אותך, ההודעות שלהם יוסתרו גם מ\"נושאים חמים\".",
|
"visibility_modal.helper.unlisted_quoting": "כאשר אחרים מצטטים אותך, ההודעות שלהם יוסתרו גם מ\"נושאים חמים\".",
|
||||||
"visibility_modal.instructions": "שליטה בהרשאה להידוּד (תגובות וציטוטים) עם הודעה זו. הגדרות ברירת המחדל ניתן למצוא תחת <link>העדפות > אחרים</link>.",
|
"visibility_modal.instructions": "שליטה בהרשאה להידוּד (תגובות וציטוטים) עם הודעה זו. הגדרות ברירת המחדל ניתן למצוא תחת <link>העדפות > אחרים</link>.",
|
||||||
"visibility_modal.privacy_label": "פרטיות",
|
"visibility_modal.privacy_label": "פרטיות",
|
||||||
"visibility_modal.quote_followers": "לעוקבים בלבד",
|
"visibility_modal.quote_followers": "לעוקבים בלבד",
|
||||||
"visibility_modal.quote_label": "הגדרת הרשאה לציטוט הודעותיך",
|
"visibility_modal.quote_label": "הגדרת הרשאה לציטוט הודעותיך",
|
||||||
"visibility_modal.quote_nobody": "רק אני",
|
"visibility_modal.quote_nobody": "אף אחד",
|
||||||
"visibility_modal.quote_public": "כולם",
|
"visibility_modal.quote_public": "כולם"
|
||||||
"visibility_modal.save": "שמירה"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Saját idővonal megnyitása",
|
"keyboard_shortcuts.home": "Saját idővonal megnyitása",
|
||||||
"keyboard_shortcuts.hotkey": "Gyorsbillentyű",
|
"keyboard_shortcuts.hotkey": "Gyorsbillentyű",
|
||||||
"keyboard_shortcuts.legend": "Jelmagyarázat megjelenítése",
|
"keyboard_shortcuts.legend": "Jelmagyarázat megjelenítése",
|
||||||
"keyboard_shortcuts.load_more": "Fókuszálás a „Több betöltése” gombra",
|
|
||||||
"keyboard_shortcuts.local": "Helyi idővonal megnyitása",
|
"keyboard_shortcuts.local": "Helyi idővonal megnyitása",
|
||||||
"keyboard_shortcuts.mention": "Szerző megemlítése",
|
"keyboard_shortcuts.mention": "Szerző megemlítése",
|
||||||
"keyboard_shortcuts.muted": "Némított felhasználók listájának megnyitása",
|
"keyboard_shortcuts.muted": "Némított felhasználók listájának megnyitása",
|
||||||
|
@ -620,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "A fiókod felfüggesztésre került.",
|
"notification.moderation_warning.action_suspend": "A fiókod felfüggesztésre került.",
|
||||||
"notification.own_poll": "A szavazásod véget ért",
|
"notification.own_poll": "A szavazásod véget ért",
|
||||||
"notification.poll": "Véget ért egy szavazás, melyben részt vettél",
|
"notification.poll": "Véget ért egy szavazás, melyben részt vettél",
|
||||||
"notification.quoted_update": "{name} szerkesztett egy bejegyzést, melyet idéztél",
|
|
||||||
"notification.reblog": "{name} megtolta a bejegyzésedet",
|
"notification.reblog": "{name} megtolta a bejegyzésedet",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} és <a>{count, plural, one {# másik} other {# másik}}</a> megtolta a bejegyzésedet",
|
"notification.reblog.name_and_others_with_link": "{name} és <a>{count, plural, one {# másik} other {# másik}}</a> megtolta a bejegyzésedet",
|
||||||
"notification.relationships_severance_event": "Elvesztek a kapcsolatok vele: {name}",
|
"notification.relationships_severance_event": "Elvesztek a kapcsolatok vele: {name}",
|
||||||
|
@ -740,18 +738,11 @@
|
||||||
"privacy.private.short": "Követők",
|
"privacy.private.short": "Követők",
|
||||||
"privacy.public.long": "Bárki a Mastodonon és azon kívül",
|
"privacy.public.long": "Bárki a Mastodonon és azon kívül",
|
||||||
"privacy.public.short": "Nyilvános",
|
"privacy.public.short": "Nyilvános",
|
||||||
"privacy.quote.anyone": "{visibility}, bárki idézheti",
|
|
||||||
"privacy.quote.disabled": "{visibility}, idézés letiltva",
|
|
||||||
"privacy.quote.limited": "{visibility}, idézés korlátozva",
|
|
||||||
"privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírfolyamokban, hashtagekben, felfedezésben vagy a Mastodonos keresésben, még akkor sem, ha ezt az egész fiókra engedélyezted.",
|
"privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírfolyamokban, hashtagekben, felfedezésben vagy a Mastodonos keresésben, még akkor sem, ha ezt az egész fiókra engedélyezted.",
|
||||||
"privacy.unlisted.long": "Kevesebb algoritmikus fanfár",
|
"privacy.unlisted.long": "Kevesebb algoritmikus fanfár",
|
||||||
"privacy.unlisted.short": "Csendes nyilvános",
|
"privacy.unlisted.short": "Csendes nyilvános",
|
||||||
"privacy_policy.last_updated": "Utoljára frissítve: {date}",
|
"privacy_policy.last_updated": "Utoljára frissítve: {date}",
|
||||||
"privacy_policy.title": "Adatvédelmi szabályzat",
|
"privacy_policy.title": "Adatvédelmi szabályzat",
|
||||||
"quote_error.poll": "Az idézés szavazások esetén nincs engedélyezve.",
|
|
||||||
"quote_error.quote": "Egyszerre csak egy idézet van engedélyezve.",
|
|
||||||
"quote_error.unauthorized": "Nem idézheted ezt a bejegyzést.",
|
|
||||||
"quote_error.upload": "Az idézés médiamellékletek esetén nem engedélyezett.",
|
|
||||||
"recommended": "Ajánlott",
|
"recommended": "Ajánlott",
|
||||||
"refresh": "Frissítés",
|
"refresh": "Frissítés",
|
||||||
"regeneration_indicator.please_stand_by": "Kis türelmet.",
|
"regeneration_indicator.please_stand_by": "Kis türelmet.",
|
||||||
|
@ -858,11 +849,9 @@
|
||||||
"status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz",
|
"status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz",
|
||||||
"status.admin_domain": "Moderációs felület megnyitása {domain} esetében",
|
"status.admin_domain": "Moderációs felület megnyitása {domain} esetében",
|
||||||
"status.admin_status": "Bejegyzés megnyitása a moderációs felületen",
|
"status.admin_status": "Bejegyzés megnyitása a moderációs felületen",
|
||||||
"status.all_disabled": "A megtolások és idézések tiltva vannak",
|
|
||||||
"status.block": "@{name} letiltása",
|
"status.block": "@{name} letiltása",
|
||||||
"status.bookmark": "Könyvjelzőzés",
|
"status.bookmark": "Könyvjelzőzés",
|
||||||
"status.cancel_reblog_private": "Megtolás visszavonása",
|
"status.cancel_reblog_private": "Megtolás visszavonása",
|
||||||
"status.cannot_quote": "A szerző letiltotta az idézést ennél a bejegyzésnél",
|
|
||||||
"status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni",
|
"status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni",
|
||||||
"status.context.load_new_replies": "Új válaszok érhetőek el",
|
"status.context.load_new_replies": "Új válaszok érhetőek el",
|
||||||
"status.context.loading": "További válaszok keresése",
|
"status.context.loading": "További válaszok keresése",
|
||||||
|
@ -891,20 +880,13 @@
|
||||||
"status.mute_conversation": "Beszélgetés némítása",
|
"status.mute_conversation": "Beszélgetés némítása",
|
||||||
"status.open": "Bejegyzés kibontása",
|
"status.open": "Bejegyzés kibontása",
|
||||||
"status.pin": "Kitűzés a profilodra",
|
"status.pin": "Kitűzés a profilodra",
|
||||||
"status.quote": "Idézés",
|
|
||||||
"status.quote.cancel": "Idézés elvetése",
|
|
||||||
"status.quote_error.filtered": "A szűrőid miatt rejtett",
|
"status.quote_error.filtered": "A szűrőid miatt rejtett",
|
||||||
"status.quote_error.not_available": "A bejegyzés nem érhető el",
|
"status.quote_error.not_available": "A bejegyzés nem érhető el",
|
||||||
"status.quote_error.pending_approval": "A bejegyzés függőben van",
|
"status.quote_error.pending_approval": "A bejegyzés függőben van",
|
||||||
"status.quote_error.pending_approval_popout.body": "A Födiverzumon keresztül megosztott idézetek megjelenítése eltarthat egy darabig, mivel a különböző kiszolgálók különböző protokollokat használnak.",
|
"status.quote_error.pending_approval_popout.body": "A Födiverzumon keresztül megosztott idézetek megjelenítése eltarthat egy darabig, mivel a különböző kiszolgálók különböző protokollokat használnak.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Függőben lévő idézet? Maradj nyugodt.",
|
"status.quote_error.pending_approval_popout.title": "Függőben lévő idézet? Maradj nyugodt.",
|
||||||
"status.quote_followers_only": "Csak a követők idézhetik ezt a bejegyzést",
|
|
||||||
"status.quote_manual_review": "A szerző kézileg fogja jóváhagyni",
|
|
||||||
"status.quote_policy_change": "Módosítás, hogy kik idézhetnek",
|
"status.quote_policy_change": "Módosítás, hogy kik idézhetnek",
|
||||||
"status.quote_post_author": "Idézte @{name} bejegyzését",
|
"status.quote_post_author": "Idézte @{name} bejegyzését",
|
||||||
"status.quote_private": "A privát bejegyzések nem idézhetőek",
|
|
||||||
"status.quotes": "{count, plural, one {idézés} other {idézés}}",
|
|
||||||
"status.quotes.empty": "Senki sem idézte még ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.",
|
|
||||||
"status.read_more": "Bővebben",
|
"status.read_more": "Bővebben",
|
||||||
"status.reblog": "Megtolás",
|
"status.reblog": "Megtolás",
|
||||||
"status.reblog_private": "Megtolás az eredeti közönségnek",
|
"status.reblog_private": "Megtolás az eredeti közönségnek",
|
||||||
|
@ -919,7 +901,6 @@
|
||||||
"status.reply": "Válasz",
|
"status.reply": "Válasz",
|
||||||
"status.replyAll": "Válasz a beszélgetésre",
|
"status.replyAll": "Válasz a beszélgetésre",
|
||||||
"status.report": "@{name} bejelentése",
|
"status.report": "@{name} bejelentése",
|
||||||
"status.request_quote": "Idézés kérése",
|
|
||||||
"status.revoke_quote": "Saját bejegyzés eltávolítása @{name} bejegyzéséből",
|
"status.revoke_quote": "Saját bejegyzés eltávolítása @{name} bejegyzéséből",
|
||||||
"status.sensitive_warning": "Kényes tartalom",
|
"status.sensitive_warning": "Kényes tartalom",
|
||||||
"status.share": "Megosztás",
|
"status.share": "Megosztás",
|
||||||
|
@ -958,7 +939,6 @@
|
||||||
"upload_button.label": "Képek, videó vagy audiófájl hozzáadása",
|
"upload_button.label": "Képek, videó vagy audiófájl hozzáadása",
|
||||||
"upload_error.limit": "A fájlfeltöltési korlát elérésre került.",
|
"upload_error.limit": "A fájlfeltöltési korlát elérésre került.",
|
||||||
"upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
|
"upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
|
||||||
"upload_error.quote": "Idézésnél nem lehet fájlt feltölteni.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Egy médiamelléklet kiválasztásához nyomj Szóközt vagy Entert. Húzás közben használd a nyílgombokat a médiamelléklet adott irányba történő mozgatásához. A médiamelléklet új pozícióba helyezéséhez nyomd meg a Szóközt vagy az Entert, vagy a megszakításhoz nyomd meg az Esc gombot.",
|
"upload_form.drag_and_drop.instructions": "Egy médiamelléklet kiválasztásához nyomj Szóközt vagy Entert. Húzás közben használd a nyílgombokat a médiamelléklet adott irányba történő mozgatásához. A médiamelléklet új pozícióba helyezéséhez nyomd meg a Szóközt vagy az Entert, vagy a megszakításhoz nyomd meg az Esc gombot.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Az áthúzás megszakítva. A(z) {item} médiamelléklet el lett dobva.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Az áthúzás megszakítva. A(z) {item} médiamelléklet el lett dobva.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "A(z) {item} médiamelléklet el lett dobva.",
|
"upload_form.drag_and_drop.on_drag_end": "A(z) {item} médiamelléklet el lett dobva.",
|
||||||
|
@ -984,15 +964,14 @@
|
||||||
"video.volume_up": "Hangerő fel",
|
"video.volume_up": "Hangerő fel",
|
||||||
"visibility_modal.button_title": "Láthatóság beállítása",
|
"visibility_modal.button_title": "Láthatóság beállítása",
|
||||||
"visibility_modal.header": "Láthatóság és interakció",
|
"visibility_modal.header": "Láthatóság és interakció",
|
||||||
"visibility_modal.helper.direct_quoting": "A Mastodonon készült privát említéseket mások nem idézhetik.",
|
"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.privacy_editing": "A közzétett bejegyzések láthatósága nem módosítható.",
|
||||||
"visibility_modal.helper.private_quoting": "A Mastodonon írt, csak követőknek szóló bejegyzéseket mások nem idézhetik.",
|
"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.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.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.privacy_label": "Adatvédelem",
|
||||||
"visibility_modal.quote_followers": "Csak követőknek",
|
"visibility_modal.quote_followers": "Csak követőknek",
|
||||||
"visibility_modal.quote_label": "Módosítás, hogy kik idézhetnek",
|
"visibility_modal.quote_label": "Módosítás, hogy kik idézhetnek",
|
||||||
"visibility_modal.quote_nobody": "Csak én",
|
"visibility_modal.quote_nobody": "Senki",
|
||||||
"visibility_modal.quote_public": "Bárki",
|
"visibility_modal.quote_public": "Bárki"
|
||||||
"visibility_modal.save": "Mentés"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "Servitores moderate",
|
"about.blocks": "Servitores moderate",
|
||||||
"about.contact": "Contacto:",
|
"about.contact": "Contacto:",
|
||||||
"about.default_locale": "Default",
|
|
||||||
"about.disclaimer": "Mastodon es software libere, de codice aperte, e un marca de Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon es software libere, de codice aperte, e un marca de Mastodon gGmbH.",
|
||||||
"about.domain_blocks.no_reason_available": "Ration non disponibile",
|
"about.domain_blocks.no_reason_available": "Ration non disponibile",
|
||||||
"about.domain_blocks.preamble": "Mastodon generalmente permitte vider le contento de, e interager con, usatores de qualcunque altere servitor in le fediverso. Istes es le exceptiones que ha essite facite sur iste servitor particular.",
|
"about.domain_blocks.preamble": "Mastodon generalmente permitte vider le contento de, e interager con, usatores de qualcunque altere servitor in le fediverso. Istes es le exceptiones que ha essite facite sur iste servitor particular.",
|
||||||
|
@ -9,7 +8,6 @@
|
||||||
"about.domain_blocks.silenced.title": "Limitate",
|
"about.domain_blocks.silenced.title": "Limitate",
|
||||||
"about.domain_blocks.suspended.explanation": "Nulle datos de iste servitor essera processate, immagazinate o excambiate, rendente omne interaction o communication con usatores de iste servitor impossibile.",
|
"about.domain_blocks.suspended.explanation": "Nulle datos de iste servitor essera processate, immagazinate o excambiate, rendente omne interaction o communication con usatores de iste servitor impossibile.",
|
||||||
"about.domain_blocks.suspended.title": "Suspendite",
|
"about.domain_blocks.suspended.title": "Suspendite",
|
||||||
"about.language_label": "Lingua",
|
|
||||||
"about.not_available": "Iste information non ha essite rendite disponibile sur iste servitor.",
|
"about.not_available": "Iste information non ha essite rendite disponibile sur iste servitor.",
|
||||||
"about.powered_by": "Rete social decentralisate, actionate per {mastodon}",
|
"about.powered_by": "Rete social decentralisate, actionate per {mastodon}",
|
||||||
"about.rules": "Regulas del servitor",
|
"about.rules": "Regulas del servitor",
|
||||||
|
@ -43,7 +41,6 @@
|
||||||
"account.followers": "Sequitores",
|
"account.followers": "Sequitores",
|
||||||
"account.followers.empty": "Necuno seque ancora iste usator.",
|
"account.followers.empty": "Necuno seque ancora iste usator.",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} sequitor} other {{counter} sequitores}}",
|
"account.followers_counter": "{count, plural, one {{counter} sequitor} other {{counter} sequitores}}",
|
||||||
"account.followers_you_know_counter": "{counter} que tu cognosce",
|
|
||||||
"account.following": "Sequente",
|
"account.following": "Sequente",
|
||||||
"account.following_counter": "{count, plural, one {{counter} sequite} other {{counter} sequites}}",
|
"account.following_counter": "{count, plural, one {{counter} sequite} other {{counter} sequites}}",
|
||||||
"account.follows.empty": "Iste usator non seque ancora alcuno.",
|
"account.follows.empty": "Iste usator non seque ancora alcuno.",
|
||||||
|
@ -219,13 +216,6 @@
|
||||||
"confirmations.delete_list.confirm": "Deler",
|
"confirmations.delete_list.confirm": "Deler",
|
||||||
"confirmations.delete_list.message": "Es tu secur que tu vole deler permanentemente iste lista?",
|
"confirmations.delete_list.message": "Es tu secur que tu vole deler permanentemente iste lista?",
|
||||||
"confirmations.delete_list.title": "Deler lista?",
|
"confirmations.delete_list.title": "Deler lista?",
|
||||||
"confirmations.discard_draft.confirm": "Discartar e continuar",
|
|
||||||
"confirmations.discard_draft.edit.cancel": "Reprender le modification",
|
|
||||||
"confirmations.discard_draft.edit.message": "Si tu continua, tu perdera tote le modificatione que tu ha apportate al message que tu modifica in iste momento.",
|
|
||||||
"confirmations.discard_draft.edit.title": "Discartar le modificationes de tu message?",
|
|
||||||
"confirmations.discard_draft.post.cancel": "Retornar al esbosso",
|
|
||||||
"confirmations.discard_draft.post.message": "Si tu continua, tu perdera le message que tu compone in iste momento.",
|
|
||||||
"confirmations.discard_draft.post.title": "Discartar tu esbosso de message?",
|
|
||||||
"confirmations.discard_edit_media.confirm": "Abandonar",
|
"confirmations.discard_edit_media.confirm": "Abandonar",
|
||||||
"confirmations.discard_edit_media.message": "Tu ha cambiamentos non salvate in le description o previsualisation del objecto multimedial. Abandonar los?",
|
"confirmations.discard_edit_media.message": "Tu ha cambiamentos non salvate in le description o previsualisation del objecto multimedial. Abandonar los?",
|
||||||
"confirmations.follow_to_list.confirm": "Sequer e adder al lista",
|
"confirmations.follow_to_list.confirm": "Sequer e adder al lista",
|
||||||
|
@ -245,9 +235,6 @@
|
||||||
"confirmations.remove_from_followers.confirm": "Remover sequitor",
|
"confirmations.remove_from_followers.confirm": "Remover sequitor",
|
||||||
"confirmations.remove_from_followers.message": "{name} non plus te sequera. Es tu secur de voler continuar?",
|
"confirmations.remove_from_followers.message": "{name} non plus te sequera. Es tu secur de voler continuar?",
|
||||||
"confirmations.remove_from_followers.title": "Remover sequitor?",
|
"confirmations.remove_from_followers.title": "Remover sequitor?",
|
||||||
"confirmations.revoke_quote.confirm": "Remover message",
|
|
||||||
"confirmations.revoke_quote.message": "Iste action non pote esser disfacite.",
|
|
||||||
"confirmations.revoke_quote.title": "Remover message?",
|
|
||||||
"confirmations.unfollow.confirm": "Non plus sequer",
|
"confirmations.unfollow.confirm": "Non plus sequer",
|
||||||
"confirmations.unfollow.message": "Es tu secur que tu vole cessar de sequer {name}?",
|
"confirmations.unfollow.message": "Es tu secur que tu vole cessar de sequer {name}?",
|
||||||
"confirmations.unfollow.title": "Cessar de sequer le usator?",
|
"confirmations.unfollow.title": "Cessar de sequer le usator?",
|
||||||
|
@ -292,7 +279,6 @@
|
||||||
"domain_pill.your_handle": "Tu pseudonymo:",
|
"domain_pill.your_handle": "Tu pseudonymo:",
|
||||||
"domain_pill.your_server": "Tu casa digital, ubi vive tote tu messages. Non te place? Cambia de servitor a omne momento e porta tu sequitores con te.",
|
"domain_pill.your_server": "Tu casa digital, ubi vive tote tu messages. Non te place? Cambia de servitor a omne momento e porta tu sequitores con te.",
|
||||||
"domain_pill.your_username": "Tu identificator unic sur iste servitor. Es possibile trovar usatores con le mesme nomine de usator sur servitores differente.",
|
"domain_pill.your_username": "Tu identificator unic sur iste servitor. Es possibile trovar usatores con le mesme nomine de usator sur servitores differente.",
|
||||||
"dropdown.empty": "Selige un option",
|
|
||||||
"embed.instructions": "Incorpora iste message sur tu sito web con le codice sequente.",
|
"embed.instructions": "Incorpora iste message sur tu sito web con le codice sequente.",
|
||||||
"embed.preview": "Ecce como illlo parera:",
|
"embed.preview": "Ecce como illlo parera:",
|
||||||
"emoji_button.activity": "Activitate",
|
"emoji_button.activity": "Activitate",
|
||||||
|
@ -310,8 +296,6 @@
|
||||||
"emoji_button.search_results": "Resultatos de recerca",
|
"emoji_button.search_results": "Resultatos de recerca",
|
||||||
"emoji_button.symbols": "Symbolos",
|
"emoji_button.symbols": "Symbolos",
|
||||||
"emoji_button.travel": "Viages e locos",
|
"emoji_button.travel": "Viages e locos",
|
||||||
"empty_column.account_featured.me": "Tu non ha ancora mittite alcun cosa in evidentia. Sapeva tu que tu pote mitter in evidentia sur tu profilo le hashtags que tu usa le plus e mesmo le contos de tu amicos?",
|
|
||||||
"empty_column.account_featured.other": "{acct} non ha ancora mittite alcun cosa in evidentia. Sapeva tu que tu pote mitter in evidentia sur tu profilo le hashtags que tu usa le plus e mesmo le contos de tu amicos?",
|
|
||||||
"empty_column.account_featured_other.unknown": "Iste conto non ha ancora mittite alcun cosa in evidentia.",
|
"empty_column.account_featured_other.unknown": "Iste conto non ha ancora mittite alcun cosa in evidentia.",
|
||||||
"empty_column.account_hides_collections": "Le usator non ha rendite iste information disponibile",
|
"empty_column.account_hides_collections": "Le usator non ha rendite iste information disponibile",
|
||||||
"empty_column.account_suspended": "Conto suspendite",
|
"empty_column.account_suspended": "Conto suspendite",
|
||||||
|
@ -341,15 +325,9 @@
|
||||||
"errors.unexpected_crash.copy_stacktrace": "Copiar le traciamento del pila al area de transferentia",
|
"errors.unexpected_crash.copy_stacktrace": "Copiar le traciamento del pila al area de transferentia",
|
||||||
"errors.unexpected_crash.report_issue": "Reportar problema",
|
"errors.unexpected_crash.report_issue": "Reportar problema",
|
||||||
"explore.suggested_follows": "Personas",
|
"explore.suggested_follows": "Personas",
|
||||||
"explore.title": "In tendentia",
|
|
||||||
"explore.trending_links": "Novas",
|
"explore.trending_links": "Novas",
|
||||||
"explore.trending_statuses": "Messages",
|
"explore.trending_statuses": "Messages",
|
||||||
"explore.trending_tags": "Hashtags",
|
"explore.trending_tags": "Hashtags",
|
||||||
"featured_carousel.header": "{count, plural, one {Message fixate} other {Messages fixate}}",
|
|
||||||
"featured_carousel.next": "Sequente",
|
|
||||||
"featured_carousel.post": "Message",
|
|
||||||
"featured_carousel.previous": "Precedente",
|
|
||||||
"featured_carousel.slide": "{index} de {total}",
|
|
||||||
"filter_modal.added.context_mismatch_explanation": "Iste categoria de filtros non se applica al contexto in le qual tu ha accedite a iste message. Pro filtrar le message in iste contexto tamben, modifica le filtro.",
|
"filter_modal.added.context_mismatch_explanation": "Iste categoria de filtros non se applica al contexto in le qual tu ha accedite a iste message. Pro filtrar le message in iste contexto tamben, modifica le filtro.",
|
||||||
"filter_modal.added.context_mismatch_title": "Contexto incoherente!",
|
"filter_modal.added.context_mismatch_title": "Contexto incoherente!",
|
||||||
"filter_modal.added.expired_explanation": "Iste categoria de filtros ha expirate. Tu debe modificar le data de expiration pro applicar lo.",
|
"filter_modal.added.expired_explanation": "Iste categoria de filtros ha expirate. Tu debe modificar le data de expiration pro applicar lo.",
|
||||||
|
@ -402,8 +380,6 @@
|
||||||
"generic.saved": "Salvate",
|
"generic.saved": "Salvate",
|
||||||
"getting_started.heading": "Prime passos",
|
"getting_started.heading": "Prime passos",
|
||||||
"hashtag.admin_moderation": "Aperir le interfacie de moderation pro #{name}",
|
"hashtag.admin_moderation": "Aperir le interfacie de moderation pro #{name}",
|
||||||
"hashtag.browse": "Percurrer messages in #{hashtag}",
|
|
||||||
"hashtag.browse_from_account": "Percurrer le messages de @{name} in #{hashtag}",
|
|
||||||
"hashtag.column_header.tag_mode.all": "e {additional}",
|
"hashtag.column_header.tag_mode.all": "e {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
||||||
|
@ -428,7 +404,6 @@
|
||||||
"hints.profiles.see_more_followers": "Vider plus de sequitores sur {domain}",
|
"hints.profiles.see_more_followers": "Vider plus de sequitores sur {domain}",
|
||||||
"hints.profiles.see_more_follows": "Vider plus de sequites sur {domain}",
|
"hints.profiles.see_more_follows": "Vider plus de sequites sur {domain}",
|
||||||
"hints.profiles.see_more_posts": "Vider plus de messages sur {domain}",
|
"hints.profiles.see_more_posts": "Vider plus de messages sur {domain}",
|
||||||
"home.column_settings.show_quotes": "Monstrar citationes",
|
|
||||||
"home.column_settings.show_reblogs": "Monstrar impulsos",
|
"home.column_settings.show_reblogs": "Monstrar impulsos",
|
||||||
"home.column_settings.show_replies": "Monstrar responsas",
|
"home.column_settings.show_replies": "Monstrar responsas",
|
||||||
"home.hide_announcements": "Celar annuncios",
|
"home.hide_announcements": "Celar annuncios",
|
||||||
|
@ -483,7 +458,6 @@
|
||||||
"keyboard_shortcuts.home": "Aperir le chronologia de initio",
|
"keyboard_shortcuts.home": "Aperir le chronologia de initio",
|
||||||
"keyboard_shortcuts.hotkey": "Clave accelerator",
|
"keyboard_shortcuts.hotkey": "Clave accelerator",
|
||||||
"keyboard_shortcuts.legend": "Monstrar iste legenda",
|
"keyboard_shortcuts.legend": "Monstrar iste legenda",
|
||||||
"keyboard_shortcuts.load_more": "Focalisar le button “Cargar plus”",
|
|
||||||
"keyboard_shortcuts.local": "Aperir le chronologia local",
|
"keyboard_shortcuts.local": "Aperir le chronologia local",
|
||||||
"keyboard_shortcuts.mention": "Mentionar le autor",
|
"keyboard_shortcuts.mention": "Mentionar le autor",
|
||||||
"keyboard_shortcuts.muted": "Aperir lista de usatores silentiate",
|
"keyboard_shortcuts.muted": "Aperir lista de usatores silentiate",
|
||||||
|
@ -503,8 +477,6 @@
|
||||||
"keyboard_shortcuts.translate": "a traducer un message",
|
"keyboard_shortcuts.translate": "a traducer un message",
|
||||||
"keyboard_shortcuts.unfocus": "Disfocalisar le area de composition de texto/de recerca",
|
"keyboard_shortcuts.unfocus": "Disfocalisar le area de composition de texto/de recerca",
|
||||||
"keyboard_shortcuts.up": "Displaciar in alto in le lista",
|
"keyboard_shortcuts.up": "Displaciar in alto in le lista",
|
||||||
"learn_more_link.got_it": "Comprendite",
|
|
||||||
"learn_more_link.learn_more": "Pro saper plus",
|
|
||||||
"lightbox.close": "Clauder",
|
"lightbox.close": "Clauder",
|
||||||
"lightbox.next": "Sequente",
|
"lightbox.next": "Sequente",
|
||||||
"lightbox.previous": "Precedente",
|
"lightbox.previous": "Precedente",
|
||||||
|
@ -554,10 +526,8 @@
|
||||||
"mute_modal.you_wont_see_mentions": "Tu non videra le messages que mentiona iste persona.",
|
"mute_modal.you_wont_see_mentions": "Tu non videra le messages que mentiona iste persona.",
|
||||||
"mute_modal.you_wont_see_posts": "Iste persona pote totevia vider tu messages, ma tu non videra le sues.",
|
"mute_modal.you_wont_see_posts": "Iste persona pote totevia vider tu messages, ma tu non videra le sues.",
|
||||||
"navigation_bar.about": "A proposito",
|
"navigation_bar.about": "A proposito",
|
||||||
"navigation_bar.account_settings": "Contrasigno e securitate",
|
|
||||||
"navigation_bar.administration": "Administration",
|
"navigation_bar.administration": "Administration",
|
||||||
"navigation_bar.advanced_interface": "Aperir in le interfacie web avantiate",
|
"navigation_bar.advanced_interface": "Aperir in le interfacie web avantiate",
|
||||||
"navigation_bar.automated_deletion": "Deletion automatic del message",
|
|
||||||
"navigation_bar.blocks": "Usatores blocate",
|
"navigation_bar.blocks": "Usatores blocate",
|
||||||
"navigation_bar.bookmarks": "Marcapaginas",
|
"navigation_bar.bookmarks": "Marcapaginas",
|
||||||
"navigation_bar.direct": "Mentiones private",
|
"navigation_bar.direct": "Mentiones private",
|
||||||
|
@ -567,23 +537,13 @@
|
||||||
"navigation_bar.follow_requests": "Requestas de sequimento",
|
"navigation_bar.follow_requests": "Requestas de sequimento",
|
||||||
"navigation_bar.followed_tags": "Hashtags sequite",
|
"navigation_bar.followed_tags": "Hashtags sequite",
|
||||||
"navigation_bar.follows_and_followers": "Sequites e sequitores",
|
"navigation_bar.follows_and_followers": "Sequites e sequitores",
|
||||||
"navigation_bar.import_export": "Importar e exportar",
|
|
||||||
"navigation_bar.lists": "Listas",
|
"navigation_bar.lists": "Listas",
|
||||||
"navigation_bar.live_feed_local": "Canal in directo (local)",
|
|
||||||
"navigation_bar.live_feed_public": "Canal in directo (public)",
|
|
||||||
"navigation_bar.logout": "Clauder session",
|
"navigation_bar.logout": "Clauder session",
|
||||||
"navigation_bar.moderation": "Moderation",
|
"navigation_bar.moderation": "Moderation",
|
||||||
"navigation_bar.more": "Plus",
|
|
||||||
"navigation_bar.mutes": "Usatores silentiate",
|
"navigation_bar.mutes": "Usatores silentiate",
|
||||||
"navigation_bar.opened_in_classic_interface": "Messages, contos e altere paginas specific es aperite per predefinition in le interfacie web classic.",
|
"navigation_bar.opened_in_classic_interface": "Messages, contos e altere paginas specific es aperite per predefinition in le interfacie web classic.",
|
||||||
"navigation_bar.preferences": "Preferentias",
|
"navigation_bar.preferences": "Preferentias",
|
||||||
"navigation_bar.privacy_and_reach": "Confidentialitate e portata",
|
|
||||||
"navigation_bar.search": "Cercar",
|
"navigation_bar.search": "Cercar",
|
||||||
"navigation_bar.search_trends": "Cercar / In tendentia",
|
|
||||||
"navigation_panel.collapse_followed_tags": "Contraher le menu de hashtags sequite",
|
|
||||||
"navigation_panel.collapse_lists": "Contraher le menu de listas",
|
|
||||||
"navigation_panel.expand_followed_tags": "Expander le menu de hashtags sequite",
|
|
||||||
"navigation_panel.expand_lists": "Expander le menu de listas",
|
|
||||||
"not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.",
|
"not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.",
|
||||||
"notification.admin.report": "{name} ha reportate {target}",
|
"notification.admin.report": "{name} ha reportate {target}",
|
||||||
"notification.admin.report_account": "{name} ha reportate {count, plural, one {un message} other {# messages}} de {target} per {category}",
|
"notification.admin.report_account": "{name} ha reportate {count, plural, one {un message} other {# messages}} de {target} per {category}",
|
||||||
|
@ -605,7 +565,6 @@
|
||||||
"notification.label.mention": "Mention",
|
"notification.label.mention": "Mention",
|
||||||
"notification.label.private_mention": "Mention private",
|
"notification.label.private_mention": "Mention private",
|
||||||
"notification.label.private_reply": "Responsa private",
|
"notification.label.private_reply": "Responsa private",
|
||||||
"notification.label.quote": "{name} ha citate tu message",
|
|
||||||
"notification.label.reply": "Responder",
|
"notification.label.reply": "Responder",
|
||||||
"notification.mention": "Mention",
|
"notification.mention": "Mention",
|
||||||
"notification.mentioned_you": "{name} te ha mentionate",
|
"notification.mentioned_you": "{name} te ha mentionate",
|
||||||
|
@ -620,7 +579,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Tu conto ha essite suspendite.",
|
"notification.moderation_warning.action_suspend": "Tu conto ha essite suspendite.",
|
||||||
"notification.own_poll": "Tu sondage ha finite",
|
"notification.own_poll": "Tu sondage ha finite",
|
||||||
"notification.poll": "Un sondage in le qual tu ha votate 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} 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.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}",
|
"notification.relationships_severance_event": "Connexiones perdite con {name}",
|
||||||
|
@ -664,7 +622,6 @@
|
||||||
"notifications.column_settings.mention": "Mentiones:",
|
"notifications.column_settings.mention": "Mentiones:",
|
||||||
"notifications.column_settings.poll": "Resultatos del sondage:",
|
"notifications.column_settings.poll": "Resultatos del sondage:",
|
||||||
"notifications.column_settings.push": "Notificationes push",
|
"notifications.column_settings.push": "Notificationes push",
|
||||||
"notifications.column_settings.quote": "Citationes:",
|
|
||||||
"notifications.column_settings.reblog": "Impulsos:",
|
"notifications.column_settings.reblog": "Impulsos:",
|
||||||
"notifications.column_settings.show": "Monstrar in columna",
|
"notifications.column_settings.show": "Monstrar in columna",
|
||||||
"notifications.column_settings.sound": "Reproducer sono",
|
"notifications.column_settings.sound": "Reproducer sono",
|
||||||
|
@ -740,18 +697,11 @@
|
||||||
"privacy.private.short": "Sequitores",
|
"privacy.private.short": "Sequitores",
|
||||||
"privacy.public.long": "Quicunque, sur Mastodon o non",
|
"privacy.public.long": "Quicunque, sur Mastodon o non",
|
||||||
"privacy.public.short": "Public",
|
"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.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.long": "Minus fanfares algorithmic",
|
||||||
"privacy.unlisted.short": "Public, non listate",
|
"privacy.unlisted.short": "Public, non listate",
|
||||||
"privacy_policy.last_updated": "Ultime actualisation {date}",
|
"privacy_policy.last_updated": "Ultime actualisation {date}",
|
||||||
"privacy_policy.title": "Politica de confidentialitate",
|
"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",
|
"recommended": "Recommendate",
|
||||||
"refresh": "Refrescar",
|
"refresh": "Refrescar",
|
||||||
"regeneration_indicator.please_stand_by": "Un momento, per favor.",
|
"regeneration_indicator.please_stand_by": "Un momento, per favor.",
|
||||||
|
@ -820,7 +770,6 @@
|
||||||
"report_notification.categories.violation": "Violation del regulas",
|
"report_notification.categories.violation": "Violation del regulas",
|
||||||
"report_notification.categories.violation_sentence": "violation del regulas",
|
"report_notification.categories.violation_sentence": "violation del regulas",
|
||||||
"report_notification.open": "Aperir reporto",
|
"report_notification.open": "Aperir reporto",
|
||||||
"search.clear": "Rader le recerca",
|
|
||||||
"search.no_recent_searches": "Nulle recercas recente",
|
"search.no_recent_searches": "Nulle recercas recente",
|
||||||
"search.placeholder": "Cercar",
|
"search.placeholder": "Cercar",
|
||||||
"search.quick_action.account_search": "Profilos correspondente a {x}",
|
"search.quick_action.account_search": "Profilos correspondente a {x}",
|
||||||
|
@ -858,14 +807,10 @@
|
||||||
"status.admin_account": "Aperir le interfacie de moderation pro @{name}",
|
"status.admin_account": "Aperir le interfacie de moderation pro @{name}",
|
||||||
"status.admin_domain": "Aperir le interfacie de moderation pro {domain}",
|
"status.admin_domain": "Aperir le interfacie de moderation pro {domain}",
|
||||||
"status.admin_status": "Aperir iste message in le interfacie de moderation",
|
"status.admin_status": "Aperir iste message in le interfacie de moderation",
|
||||||
"status.all_disabled": "Impulso e citation es disactivate",
|
|
||||||
"status.block": "Blocar @{name}",
|
"status.block": "Blocar @{name}",
|
||||||
"status.bookmark": "Adder al marcapaginas",
|
"status.bookmark": "Adder al marcapaginas",
|
||||||
"status.cancel_reblog_private": "Disfacer impulso",
|
"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.cannot_reblog": "Iste message non pote esser impulsate",
|
||||||
"status.context.load_new_replies": "Nove responsas disponibile",
|
|
||||||
"status.context.loading": "Cercante plus responsas",
|
|
||||||
"status.continued_thread": "Continuation del discussion",
|
"status.continued_thread": "Continuation del discussion",
|
||||||
"status.copy": "Copiar ligamine a message",
|
"status.copy": "Copiar ligamine a message",
|
||||||
"status.delete": "Deler",
|
"status.delete": "Deler",
|
||||||
|
@ -891,17 +836,6 @@
|
||||||
"status.mute_conversation": "Silentiar conversation",
|
"status.mute_conversation": "Silentiar conversation",
|
||||||
"status.open": "Expander iste message",
|
"status.open": "Expander iste message",
|
||||||
"status.pin": "Fixar sur profilo",
|
"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",
|
|
||||||
"status.quote_error.pending_approval": "Message pendente",
|
|
||||||
"status.quote_error.pending_approval_popout.body": "Le citationes distribuite a transverso le Fediverso pote tardar in apparer, perque differente servitores ha differente protocollos.",
|
|
||||||
"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.read_more": "Leger plus",
|
||||||
"status.reblog": "Impulsar",
|
"status.reblog": "Impulsar",
|
||||||
"status.reblog_private": "Impulsar con visibilitate original",
|
"status.reblog_private": "Impulsar con visibilitate original",
|
||||||
|
@ -911,12 +845,11 @@
|
||||||
"status.redraft": "Deler e reconciper",
|
"status.redraft": "Deler e reconciper",
|
||||||
"status.remove_bookmark": "Remover marcapagina",
|
"status.remove_bookmark": "Remover marcapagina",
|
||||||
"status.remove_favourite": "Remover del favoritos",
|
"status.remove_favourite": "Remover del favoritos",
|
||||||
"status.replied_in_thread": "Responsa in discussion",
|
"status.replied_in_thread": "Respondite in le discussion",
|
||||||
"status.replied_to": "Responsa a {name}",
|
"status.replied_to": "Respondite a {name}",
|
||||||
"status.reply": "Responder",
|
"status.reply": "Responder",
|
||||||
"status.replyAll": "Responder al discussion",
|
"status.replyAll": "Responder al discussion",
|
||||||
"status.report": "Reportar @{name}",
|
"status.report": "Reportar @{name}",
|
||||||
"status.revoke_quote": "Remover mi message del message de @{name}",
|
|
||||||
"status.sensitive_warning": "Contento sensibile",
|
"status.sensitive_warning": "Contento sensibile",
|
||||||
"status.share": "Compartir",
|
"status.share": "Compartir",
|
||||||
"status.show_less_all": "Monstrar minus pro totes",
|
"status.show_less_all": "Monstrar minus pro totes",
|
||||||
|
@ -932,13 +865,9 @@
|
||||||
"subscribed_languages.save": "Salvar le cambiamentos",
|
"subscribed_languages.save": "Salvar le cambiamentos",
|
||||||
"subscribed_languages.target": "Cambiar le linguas subscribite pro {target}",
|
"subscribed_languages.target": "Cambiar le linguas subscribite pro {target}",
|
||||||
"tabs_bar.home": "Initio",
|
"tabs_bar.home": "Initio",
|
||||||
"tabs_bar.menu": "Menu",
|
|
||||||
"tabs_bar.notifications": "Notificationes",
|
"tabs_bar.notifications": "Notificationes",
|
||||||
"tabs_bar.publish": "Nove message",
|
|
||||||
"tabs_bar.search": "Cercar",
|
|
||||||
"terms_of_service.effective_as_of": "In vigor a partir de {date}",
|
"terms_of_service.effective_as_of": "In vigor a partir de {date}",
|
||||||
"terms_of_service.title": "Conditiones de servicio",
|
"terms_of_service.title": "Conditiones de servicio",
|
||||||
"terms_of_service.upcoming_changes_on": "Cambiamentos a venir le {date}",
|
|
||||||
"time_remaining.days": "{number, plural, one {# die} other {# dies}} restante",
|
"time_remaining.days": "{number, plural, one {# die} other {# dies}} restante",
|
||||||
"time_remaining.hours": "{number, plural, one {# hora} other {# horas}} restante",
|
"time_remaining.hours": "{number, plural, one {# hora} other {# horas}} restante",
|
||||||
"time_remaining.minutes": "{number, plural, one {# minuta} other {# minutas}} restante",
|
"time_remaining.minutes": "{number, plural, one {# minuta} other {# minutas}} restante",
|
||||||
|
@ -946,7 +875,7 @@
|
||||||
"time_remaining.seconds": "{number, plural, one {# secunda} other {# secundas}} restante",
|
"time_remaining.seconds": "{number, plural, one {# secunda} other {# secundas}} restante",
|
||||||
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} in le passate {days, plural, one {die} other {{days} dies}}",
|
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} in le passate {days, plural, one {die} other {{days} dies}}",
|
||||||
"trends.trending_now": "Ora in tendentias",
|
"trends.trending_now": "Ora in tendentias",
|
||||||
"ui.beforeunload": "Tu esbosso essera perdite si tu exi de Mastodon.",
|
"ui.beforeunload": "Tu esbosso essera predite si tu exi de Mastodon.",
|
||||||
"units.short.billion": "{count}B",
|
"units.short.billion": "{count}B",
|
||||||
"units.short.million": "{count}M",
|
"units.short.million": "{count}M",
|
||||||
"units.short.thousand": "{count}K",
|
"units.short.thousand": "{count}K",
|
||||||
|
@ -954,7 +883,6 @@
|
||||||
"upload_button.label": "Adde imagines, un video o un file de audio",
|
"upload_button.label": "Adde imagines, un video o un file de audio",
|
||||||
"upload_error.limit": "Limite de incargamento de files excedite.",
|
"upload_error.limit": "Limite de incargamento de files excedite.",
|
||||||
"upload_error.poll": "Incargamento de files non permittite con sondages.",
|
"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.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_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.",
|
"upload_form.drag_and_drop.on_drag_end": "Le annexo multimedial {item} ha essite deponite.",
|
||||||
|
@ -974,21 +902,7 @@
|
||||||
"video.pause": "Pausa",
|
"video.pause": "Pausa",
|
||||||
"video.play": "Reproducer",
|
"video.play": "Reproducer",
|
||||||
"video.skip_backward": "Saltar a retro",
|
"video.skip_backward": "Saltar a retro",
|
||||||
"video.skip_forward": "Avantiar",
|
|
||||||
"video.unmute": "Non plus silentiar",
|
"video.unmute": "Non plus silentiar",
|
||||||
"video.volume_down": "Abassar le volumine",
|
"video.volume_down": "Abassar le volumine",
|
||||||
"video.volume_up": "Augmentar le volumine",
|
"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 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 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": "Solo io",
|
|
||||||
"visibility_modal.quote_public": "Omnes",
|
|
||||||
"visibility_modal.save": "Salvar"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Opna heimatímalínu",
|
"keyboard_shortcuts.home": "Opna heimatímalínu",
|
||||||
"keyboard_shortcuts.hotkey": "Flýtilykill",
|
"keyboard_shortcuts.hotkey": "Flýtilykill",
|
||||||
"keyboard_shortcuts.legend": "Birta þessa skýringu",
|
"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.local": "Opna staðværa tímalínu",
|
||||||
"keyboard_shortcuts.mention": "Minnast á höfund",
|
"keyboard_shortcuts.mention": "Minnast á höfund",
|
||||||
"keyboard_shortcuts.muted": "Opna lista yfir þaggaða notendur",
|
"keyboard_shortcuts.muted": "Opna lista yfir þaggaða notendur",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Opna margmiðlunargögn",
|
"keyboard_shortcuts.open_media": "Opna margmiðlunargögn",
|
||||||
"keyboard_shortcuts.pinned": "Opna lista yfir festar færslur",
|
"keyboard_shortcuts.pinned": "Opna lista yfir festar færslur",
|
||||||
"keyboard_shortcuts.profile": "Opna notandasnið höfundar",
|
"keyboard_shortcuts.profile": "Opna notandasnið höfundar",
|
||||||
"keyboard_shortcuts.quote": "Vitna í færslu",
|
|
||||||
"keyboard_shortcuts.reply": "Svara færslu",
|
"keyboard_shortcuts.reply": "Svara færslu",
|
||||||
"keyboard_shortcuts.requests": "Opna lista yfir fylgjendabeiðnir",
|
"keyboard_shortcuts.requests": "Opna lista yfir fylgjendabeiðnir",
|
||||||
"keyboard_shortcuts.search": "Setja virkni í leitarreit",
|
"keyboard_shortcuts.search": "Setja virkni í leitarreit",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Notandaaðgangurinn þinn hefur verið settur í frysti.",
|
"notification.moderation_warning.action_suspend": "Notandaaðgangurinn þinn hefur verið settur í frysti.",
|
||||||
"notification.own_poll": "Könnuninni þinni er lokið",
|
"notification.own_poll": "Könnuninni þinni er lokið",
|
||||||
"notification.poll": "Könnun sem þú greiddir atkvæði í 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} 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.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}",
|
"notification.relationships_severance_event": "Missti tengingar við {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Fylgjendur",
|
"privacy.private.short": "Fylgjendur",
|
||||||
"privacy.public.long": "Hver sem er, á og utan Mastodon",
|
"privacy.public.long": "Hver sem er, á og utan Mastodon",
|
||||||
"privacy.public.short": "Opinbert",
|
"privacy.public.short": "Opinbert",
|
||||||
"privacy.quote.anyone": "{visibility}, hver sem er getur vitnað í færslu",
|
|
||||||
"privacy.quote.disabled": "{visibility}, tilvitnanir eru óvirkar",
|
|
||||||
"privacy.quote.limited": "{visibility}, tilvitnanir eru takmarkaðar",
|
|
||||||
"privacy.unlisted.additional": "Þetta hegðar sér eins og opinber færsla, fyrir utan að færslan birtist ekki í beinum streymum eða myllumerkjum, né heldur í Mastodon-leitum jafnvel þótt þú hafir valið að falla undir slíkt í notandasniðinu þínu.",
|
"privacy.unlisted.additional": "Þetta hegðar sér eins og opinber færsla, fyrir utan að færslan birtist ekki í beinum streymum eða myllumerkjum, né heldur í Mastodon-leitum jafnvel þótt þú hafir valið að falla undir slíkt í notandasniðinu þínu.",
|
||||||
"privacy.unlisted.long": "Minni stælar í reikniritum",
|
"privacy.unlisted.long": "Minni stælar í reikniritum",
|
||||||
"privacy.unlisted.short": "Hljóðlátt opinbert",
|
"privacy.unlisted.short": "Hljóðlátt opinbert",
|
||||||
"privacy_policy.last_updated": "Síðast uppfært {date}",
|
"privacy_policy.last_updated": "Síðast uppfært {date}",
|
||||||
"privacy_policy.title": "Persónuverndarstefna",
|
"privacy_policy.title": "Persónuverndarstefna",
|
||||||
"quote_error.poll": "Ekki er leyft að vitna í kannanir.",
|
|
||||||
"quote_error.quote": "Einungis ein tilvitnun er leyfð í einu.",
|
|
||||||
"quote_error.unauthorized": "Þú hefur ekki heimild til að vitna í þessa færslu.",
|
|
||||||
"quote_error.upload": "Ekki er leyft að vitna í myndviðhengi.",
|
|
||||||
"recommended": "Mælt með",
|
"recommended": "Mælt með",
|
||||||
"refresh": "Endurlesa",
|
"refresh": "Endurlesa",
|
||||||
"regeneration_indicator.please_stand_by": "Hinkraðu við.",
|
"regeneration_indicator.please_stand_by": "Hinkraðu við.",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "Opna umsjónarviðmót fyrir @{name}",
|
"status.admin_account": "Opna umsjónarviðmót fyrir @{name}",
|
||||||
"status.admin_domain": "Opna umsjónarviðmót fyrir @{domain}",
|
"status.admin_domain": "Opna umsjónarviðmót fyrir @{domain}",
|
||||||
"status.admin_status": "Opna þessa færslu í umsjónarviðmótinu",
|
"status.admin_status": "Opna þessa færslu í umsjónarviðmótinu",
|
||||||
"status.all_disabled": "Endurbirtingar og tilvitnanir eru óvirkar",
|
|
||||||
"status.block": "Útiloka @{name}",
|
"status.block": "Útiloka @{name}",
|
||||||
"status.bookmark": "Bókamerki",
|
"status.bookmark": "Bókamerki",
|
||||||
"status.cancel_reblog_private": "Taka úr endurbirtingu",
|
"status.cancel_reblog_private": "Taka úr endurbirtingu",
|
||||||
"status.cannot_quote": "Höfundurinn hefur gert tilvitnanir óvirkar fyrir þessa færslu",
|
|
||||||
"status.cannot_reblog": "Þessa færslu er ekki hægt að endurbirta",
|
"status.cannot_reblog": "Þessa færslu er ekki hægt að endurbirta",
|
||||||
"status.context.load_new_replies": "Ný svör hafa borist",
|
"status.context.load_new_replies": "Ný svör hafa borist",
|
||||||
"status.context.loading": "Athuga með fleiri svör",
|
"status.context.loading": "Athuga með fleiri svör",
|
||||||
"status.continued_thread": "Hélt samtali áfram",
|
"status.continued_thread": "Hélt samtali áfram",
|
||||||
"status.copy": "Afrita tengil í færslu",
|
"status.copy": "Afrita tengil í færslu",
|
||||||
"status.delete": "Eyða",
|
"status.delete": "Eyða",
|
||||||
"status.delete.success": "Færslu eytt",
|
|
||||||
"status.detailed_status": "Nákvæm spjallþráðasýn",
|
"status.detailed_status": "Nákvæm spjallþráðasýn",
|
||||||
"status.direct": "Einkaspjall við @{name}",
|
"status.direct": "Einkaspjall við @{name}",
|
||||||
"status.direct_indicator": "Einkaspjall",
|
"status.direct_indicator": "Einkaspjall",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "Þagga niður í samtali",
|
"status.mute_conversation": "Þagga niður í samtali",
|
||||||
"status.open": "Opna þessa færslu",
|
"status.open": "Opna þessa færslu",
|
||||||
"status.pin": "Festa á notandasnið",
|
"status.pin": "Festa á notandasnið",
|
||||||
"status.quote": "Tilvitnun",
|
|
||||||
"status.quote.cancel": "Hætta við tilvitnun",
|
"status.quote.cancel": "Hætta við tilvitnun",
|
||||||
"status.quote_error.filtered": "Falið vegna einnar síu sem er virk",
|
"status.quote_error.filtered": "Falið vegna einnar síu sem er virk",
|
||||||
"status.quote_error.not_available": "Færsla ekki tiltæk",
|
"status.quote_error.not_available": "Færsla ekki tiltæk",
|
||||||
"status.quote_error.pending_approval": "Færsla í bið",
|
"status.quote_error.pending_approval": "Færsla í bið",
|
||||||
"status.quote_error.pending_approval_popout.body": "Tilvitnanir sem deilt er út um samfélagsnetið geta þurft nokkurn tíma áður en þær birtast, því mismunandi netþjónar geta haft mismunandi samskiptareglur.",
|
"status.quote_error.pending_approval_popout.body": "Tilvitnanir sem deilt er út um samfélagsnetið geta þurft nokkurn tíma áður en þær birtast, því mismunandi netþjónar geta haft mismunandi samskiptareglur.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Færsla í bið? Verum róleg",
|
"status.quote_error.pending_approval_popout.title": "Færsla í bið? Verum róleg",
|
||||||
"status.quote_followers_only": "Einungis fylgjendur geta vitnað í þessa færslu",
|
|
||||||
"status.quote_manual_review": "Höfundur mun yfirfara handvirkt",
|
|
||||||
"status.quote_policy_change": "Breyttu því hver getur tilvitnað",
|
"status.quote_policy_change": "Breyttu því hver getur tilvitnað",
|
||||||
"status.quote_post_author": "Vitnaði í færslu frá @{name}",
|
"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.quotes.empty": "Enginn hefur ennþá vitnað í þessa færslu. Þegar einhver gerir það, mun það birtast hér.",
|
|
||||||
"status.read_more": "Lesa meira",
|
"status.read_more": "Lesa meira",
|
||||||
"status.reblog": "Endurbirting",
|
"status.reblog": "Endurbirting",
|
||||||
"status.reblog_or_quote": "Endurbirta eða vitna í færslu",
|
|
||||||
"status.reblog_private": "Endurbirta til upphaflegra lesenda",
|
"status.reblog_private": "Endurbirta til upphaflegra lesenda",
|
||||||
"status.reblogged_by": "{name} endurbirti",
|
"status.reblogged_by": "{name} endurbirti",
|
||||||
"status.reblogs": "{count, plural, one {endurbirting} other {endurbirtingar}}",
|
"status.reblogs": "{count, plural, one {endurbirting} other {endurbirtingar}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "Svara",
|
"status.reply": "Svara",
|
||||||
"status.replyAll": "Svara þræði",
|
"status.replyAll": "Svara þræði",
|
||||||
"status.report": "Kæra @{name}",
|
"status.report": "Kæra @{name}",
|
||||||
"status.request_quote": "Beiðni um tilvitnun",
|
|
||||||
"status.revoke_quote": "Fjarlægja færsluna mína úr færslu frá @{name}",
|
"status.revoke_quote": "Fjarlægja færsluna mína úr færslu frá @{name}",
|
||||||
"status.sensitive_warning": "Viðkvæmt efni",
|
"status.sensitive_warning": "Viðkvæmt efni",
|
||||||
"status.share": "Deila",
|
"status.share": "Deila",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "Bæta við myndum, myndskeiði eða hljóðskrá",
|
"upload_button.label": "Bæta við myndum, myndskeiði eða hljóðskrá",
|
||||||
"upload_error.limit": "Fór yfir takmörk á innsendingum skráa.",
|
"upload_error.limit": "Fór yfir takmörk á innsendingum skráa.",
|
||||||
"upload_error.poll": "Innsending skráa er ekki leyfð í könnunum.",
|
"upload_error.poll": "Innsending skráa er ekki leyfð í könnunum.",
|
||||||
"upload_error.quote": "Innsending skráa er ekki leyfð í tilvitnunum.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Til að taka í myndefnisviðhengi skaltu ýta á bilslána eða Enter. Til að draga geturðu notað örvalyklana til að færa viðhengið í samsvarandi áttir. Ýttu aftur á bilslána eða Enter til að sleppa viðhenginu á nýja staðinn, eða ýttu á Escape til að hætta við.",
|
"upload_form.drag_and_drop.instructions": "Til að taka í myndefnisviðhengi skaltu ýta á bilslána eða Enter. Til að draga geturðu notað örvalyklana til að færa viðhengið í samsvarandi áttir. Ýttu aftur á bilslána eða Enter til að sleppa viðhenginu á nýja staðinn, eða ýttu á Escape til að hætta við.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Hætt var við að draga. Myndefnisviðhenginu {item} var sleppt.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Hætt var við að draga. Myndefnisviðhenginu {item} var sleppt.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Myndefnisviðhenginu {item} var sleppt.",
|
"upload_form.drag_and_drop.on_drag_end": "Myndefnisviðhenginu {item} var sleppt.",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "Hækka hljóðstyrk",
|
"video.volume_up": "Hækka hljóðstyrk",
|
||||||
"visibility_modal.button_title": "Stilla sýnileika",
|
"visibility_modal.button_title": "Stilla sýnileika",
|
||||||
"visibility_modal.header": "Sýnileiki og gagnvirkni",
|
"visibility_modal.header": "Sýnileiki og gagnvirkni",
|
||||||
"visibility_modal.helper.direct_quoting": "Ekki er hægt að vitna í einkaspjall sem skrifað er á Mastodon.",
|
"visibility_modal.helper.direct_quoting": "Ekki er hægt að vitna í einkaspjall.",
|
||||||
"visibility_modal.helper.privacy_editing": "Ekki er hægt að breyta sýnileika birtra færslna.",
|
"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 einungis til fylgjenda sem skrifaðar eru á Mastodon.",
|
"visibility_modal.helper.private_quoting": "Ekki er hægt að vitna í færslur sem eingöngu eru til fylgjenda.",
|
||||||
"visibility_modal.helper.unlisted_quoting": "Þegar fólk vitnar í þig verða færslurnar þeirr einnig faldar á vinsældatímalínum.",
|
"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.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.privacy_label": "Persónuvernd",
|
||||||
"visibility_modal.quote_followers": "Einungis fylgjendur",
|
"visibility_modal.quote_followers": "Einungis fylgjendur",
|
||||||
"visibility_modal.quote_label": "Breyttu því hver getur tilvitnað",
|
"visibility_modal.quote_label": "Breyttu því hver getur tilvitnað",
|
||||||
"visibility_modal.quote_nobody": "Bara ég",
|
"visibility_modal.quote_nobody": "Enginn",
|
||||||
"visibility_modal.quote_public": "Hver sem er",
|
"visibility_modal.quote_public": "Hver sem er"
|
||||||
"visibility_modal.save": "Vista"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,9 +245,6 @@
|
||||||
"confirmations.remove_from_followers.confirm": "Rimuovi il seguace",
|
"confirmations.remove_from_followers.confirm": "Rimuovi il seguace",
|
||||||
"confirmations.remove_from_followers.message": "{name} smetterà di seguirti. Si è sicuri di voler procedere?",
|
"confirmations.remove_from_followers.message": "{name} smetterà di seguirti. Si è sicuri di voler procedere?",
|
||||||
"confirmations.remove_from_followers.title": "Rimuovi il seguace?",
|
"confirmations.remove_from_followers.title": "Rimuovi il seguace?",
|
||||||
"confirmations.revoke_quote.confirm": "Elimina il post",
|
|
||||||
"confirmations.revoke_quote.message": "Questa azione non può essere annullata.",
|
|
||||||
"confirmations.revoke_quote.title": "Rimuovere il post?",
|
|
||||||
"confirmations.unfollow.confirm": "Smetti di seguire",
|
"confirmations.unfollow.confirm": "Smetti di seguire",
|
||||||
"confirmations.unfollow.message": "Sei sicuro di voler smettere di seguire {name}?",
|
"confirmations.unfollow.message": "Sei sicuro di voler smettere di seguire {name}?",
|
||||||
"confirmations.unfollow.title": "Smettere di seguire l'utente?",
|
"confirmations.unfollow.title": "Smettere di seguire l'utente?",
|
||||||
|
@ -292,7 +289,6 @@
|
||||||
"domain_pill.your_handle": "Il tuo nome univoco:",
|
"domain_pill.your_handle": "Il tuo nome univoco:",
|
||||||
"domain_pill.your_server": "La tua casa digitale, dove vivono tutti i tuoi post. Non ti piace questa? Cambia server in qualsiasi momento e porta con te anche i tuoi seguaci.",
|
"domain_pill.your_server": "La tua casa digitale, dove vivono tutti i tuoi post. Non ti piace questa? Cambia server in qualsiasi momento e porta con te anche i tuoi seguaci.",
|
||||||
"domain_pill.your_username": "Il tuo identificatore univoco su questo server. È possibile trovare utenti con lo stesso nome utente su server diversi.",
|
"domain_pill.your_username": "Il tuo identificatore univoco su questo server. È possibile trovare utenti con lo stesso nome utente su server diversi.",
|
||||||
"dropdown.empty": "Seleziona un'opzione",
|
|
||||||
"embed.instructions": "Incorpora questo post sul tuo sito web, copiando il seguente codice.",
|
"embed.instructions": "Incorpora questo post sul tuo sito web, copiando il seguente codice.",
|
||||||
"embed.preview": "Ecco come apparirà:",
|
"embed.preview": "Ecco come apparirà:",
|
||||||
"emoji_button.activity": "Attività",
|
"emoji_button.activity": "Attività",
|
||||||
|
@ -483,7 +479,6 @@
|
||||||
"keyboard_shortcuts.home": "Apre la cronologia domestica",
|
"keyboard_shortcuts.home": "Apre la cronologia domestica",
|
||||||
"keyboard_shortcuts.hotkey": "Tasto di scelta rapida",
|
"keyboard_shortcuts.hotkey": "Tasto di scelta rapida",
|
||||||
"keyboard_shortcuts.legend": "Mostra questa legenda",
|
"keyboard_shortcuts.legend": "Mostra questa legenda",
|
||||||
"keyboard_shortcuts.load_more": "Evidenzia il pulsante \"Carica altro\"",
|
|
||||||
"keyboard_shortcuts.local": "Apre la cronologia locale",
|
"keyboard_shortcuts.local": "Apre la cronologia locale",
|
||||||
"keyboard_shortcuts.mention": "Menziona l'autore",
|
"keyboard_shortcuts.mention": "Menziona l'autore",
|
||||||
"keyboard_shortcuts.muted": "Apre l'elenco degli utenti silenziati",
|
"keyboard_shortcuts.muted": "Apre l'elenco degli utenti silenziati",
|
||||||
|
@ -620,7 +615,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Il tuo account è stato sospeso.",
|
"notification.moderation_warning.action_suspend": "Il tuo account è stato sospeso.",
|
||||||
"notification.own_poll": "Il tuo sondaggio è terminato",
|
"notification.own_poll": "Il tuo sondaggio è terminato",
|
||||||
"notification.poll": "Un sondaggio in cui hai votato è 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} 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.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}",
|
"notification.relationships_severance_event": "Connessioni perse con {name}",
|
||||||
|
@ -740,18 +734,11 @@
|
||||||
"privacy.private.short": "Follower",
|
"privacy.private.short": "Follower",
|
||||||
"privacy.public.long": "Chiunque dentro e fuori Mastodon",
|
"privacy.public.long": "Chiunque dentro e fuori Mastodon",
|
||||||
"privacy.public.short": "Pubblico",
|
"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.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.long": "Meno fanfare algoritmiche",
|
||||||
"privacy.unlisted.short": "Pubblico silenzioso",
|
"privacy.unlisted.short": "Pubblico silenzioso",
|
||||||
"privacy_policy.last_updated": "Ultimo aggiornamento {date}",
|
"privacy_policy.last_updated": "Ultimo aggiornamento {date}",
|
||||||
"privacy_policy.title": "Politica sulla Privacy",
|
"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",
|
"recommended": "Consigliato",
|
||||||
"refresh": "Ricarica",
|
"refresh": "Ricarica",
|
||||||
"regeneration_indicator.please_stand_by": "Si prega di rimanere in attesa.",
|
"regeneration_indicator.please_stand_by": "Si prega di rimanere in attesa.",
|
||||||
|
@ -858,11 +845,9 @@
|
||||||
"status.admin_account": "Apri interfaccia di moderazione per @{name}",
|
"status.admin_account": "Apri interfaccia di moderazione per @{name}",
|
||||||
"status.admin_domain": "Apri l'interfaccia di moderazione per {domain}",
|
"status.admin_domain": "Apri l'interfaccia di moderazione per {domain}",
|
||||||
"status.admin_status": "Apri questo post nell'interfaccia di moderazione",
|
"status.admin_status": "Apri questo post nell'interfaccia di moderazione",
|
||||||
"status.all_disabled": "Condivisioni e citazioni sono disabilitate",
|
|
||||||
"status.block": "Blocca @{name}",
|
"status.block": "Blocca @{name}",
|
||||||
"status.bookmark": "Aggiungi segnalibro",
|
"status.bookmark": "Aggiungi segnalibro",
|
||||||
"status.cancel_reblog_private": "Annulla reblog",
|
"status.cancel_reblog_private": "Annulla reblog",
|
||||||
"status.cannot_quote": "L'autore ha disabilitato le citazioni su questo post",
|
|
||||||
"status.cannot_reblog": "Questo post non può essere condiviso",
|
"status.cannot_reblog": "Questo post non può essere condiviso",
|
||||||
"status.context.load_new_replies": "Nuove risposte disponibili",
|
"status.context.load_new_replies": "Nuove risposte disponibili",
|
||||||
"status.context.loading": "Controllo per altre risposte",
|
"status.context.loading": "Controllo per altre risposte",
|
||||||
|
@ -891,17 +876,12 @@
|
||||||
"status.mute_conversation": "Silenzia conversazione",
|
"status.mute_conversation": "Silenzia conversazione",
|
||||||
"status.open": "Espandi questo post",
|
"status.open": "Espandi questo post",
|
||||||
"status.pin": "Fissa in cima sul profilo",
|
"status.pin": "Fissa in cima sul profilo",
|
||||||
"status.quote": "Cita",
|
|
||||||
"status.quote.cancel": "Annulla la citazione",
|
|
||||||
"status.quote_error.filtered": "Nascosto a causa di uno dei tuoi filtri",
|
"status.quote_error.filtered": "Nascosto a causa di uno dei tuoi filtri",
|
||||||
"status.quote_error.not_available": "Post non disponibile",
|
"status.quote_error.not_available": "Post non disponibile",
|
||||||
"status.quote_error.pending_approval": "Post in attesa",
|
"status.quote_error.pending_approval": "Post in attesa",
|
||||||
"status.quote_error.pending_approval_popout.body": "Le citazioni condivise in tutto il Fediverso possono richiedere del tempo per la visualizzazione, poiché server diversi hanno protocolli diversi.",
|
"status.quote_error.pending_approval_popout.body": "Le citazioni condivise in tutto il Fediverso possono richiedere del tempo per la visualizzazione, poiché server diversi hanno protocolli diversi.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Citazione in attesa? Resta calmo",
|
"status.quote_error.pending_approval_popout.title": "Citazione in attesa? Resta calmo",
|
||||||
"status.quote_policy_change": "Cambia chi può citare",
|
|
||||||
"status.quote_post_author": "Citato un post di @{name}",
|
"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.read_more": "Leggi di più",
|
||||||
"status.reblog": "Reblog",
|
"status.reblog": "Reblog",
|
||||||
"status.reblog_private": "Reblog con visibilità originale",
|
"status.reblog_private": "Reblog con visibilità originale",
|
||||||
|
@ -916,7 +896,6 @@
|
||||||
"status.reply": "Rispondi",
|
"status.reply": "Rispondi",
|
||||||
"status.replyAll": "Rispondi alla conversazione",
|
"status.replyAll": "Rispondi alla conversazione",
|
||||||
"status.report": "Segnala @{name}",
|
"status.report": "Segnala @{name}",
|
||||||
"status.revoke_quote": "Rimuovi il mio post da quello di @{name}",
|
|
||||||
"status.sensitive_warning": "Contenuto sensibile",
|
"status.sensitive_warning": "Contenuto sensibile",
|
||||||
"status.share": "Condividi",
|
"status.share": "Condividi",
|
||||||
"status.show_less_all": "Mostra meno per tutti",
|
"status.show_less_all": "Mostra meno per tutti",
|
||||||
|
@ -954,7 +933,6 @@
|
||||||
"upload_button.label": "Aggiungi un file immagine, video o audio",
|
"upload_button.label": "Aggiungi un file immagine, video o audio",
|
||||||
"upload_error.limit": "Limite di caricamento dei file superato.",
|
"upload_error.limit": "Limite di caricamento dei file superato.",
|
||||||
"upload_error.poll": "Caricamento del file non consentito con i sondaggi.",
|
"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.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_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.",
|
"upload_form.drag_and_drop.on_drag_end": "L'allegato multimediale {item} è stato eliminato.",
|
||||||
|
@ -977,18 +955,5 @@
|
||||||
"video.skip_forward": "Vai avanti",
|
"video.skip_forward": "Vai avanti",
|
||||||
"video.unmute": "Muta",
|
"video.unmute": "Muta",
|
||||||
"video.volume_down": "Abbassa volume",
|
"video.volume_down": "Abbassa volume",
|
||||||
"video.volume_up": "Alza volume",
|
"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 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 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": "Solo io",
|
|
||||||
"visibility_modal.quote_public": "Chiunque",
|
|
||||||
"visibility_modal.save": "Salva"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -218,7 +218,6 @@
|
||||||
"domain_pill.who_you_are": "Imi isulay-ik·im yeqqar-d anwa i d kečč·kemmi d wanda i telliḍ, zemren medden ad myigwen yid-k·m deg web anmetti yebnan s <button>tɣeṛɣaṛ yemmugen s ActivityPub</button>.",
|
"domain_pill.who_you_are": "Imi isulay-ik·im yeqqar-d anwa i d kečč·kemmi d wanda i telliḍ, zemren medden ad myigwen yid-k·m deg web anmetti yebnan s <button>tɣeṛɣaṛ yemmugen s ActivityPub</button>.",
|
||||||
"domain_pill.your_handle": "Asulay-ik·im:",
|
"domain_pill.your_handle": "Asulay-ik·im:",
|
||||||
"domain_pill.your_server": "D axxam-inek·inem umḍin, anda i zedɣent akk tsuffaɣ-ik·im. Ur k·m-yeεǧib ara wa? Ssenfel-d iqeddacen melmi i ak·m-yehwa, awi-d daɣen ineḍfaren-ik·im yid-k·m.",
|
"domain_pill.your_server": "D axxam-inek·inem umḍin, anda i zedɣent akk tsuffaɣ-ik·im. Ur k·m-yeεǧib ara wa? Ssenfel-d iqeddacen melmi i ak·m-yehwa, awi-d daɣen ineḍfaren-ik·im yid-k·m.",
|
||||||
"dropdown.empty": "Fren taxtiṛit",
|
|
||||||
"embed.instructions": "Ẓẓu addad-agi deg usmel-inek·inem s wenɣal n tangalt yellan sdaw-agi.",
|
"embed.instructions": "Ẓẓu addad-agi deg usmel-inek·inem s wenɣal n tangalt yellan sdaw-agi.",
|
||||||
"embed.preview": "Akka ara d-iban:",
|
"embed.preview": "Akka ara d-iban:",
|
||||||
"emoji_button.activity": "Aqeddic",
|
"emoji_button.activity": "Aqeddic",
|
||||||
|
@ -316,7 +315,6 @@
|
||||||
"hashtag.follow": "Ḍfeṛ ahacṭag",
|
"hashtag.follow": "Ḍfeṛ ahacṭag",
|
||||||
"hashtag.mute": "Sgugem #{hashtag}",
|
"hashtag.mute": "Sgugem #{hashtag}",
|
||||||
"hashtags.and_other": "…d {count, plural, one {}other {# nniḍen}}",
|
"hashtags.and_other": "…d {count, plural, one {}other {# nniḍen}}",
|
||||||
"hints.profiles.see_more_posts": "Wali ugar n tsuffaɣ ɣef {domain}",
|
|
||||||
"home.column_settings.show_quotes": "Sken-d tibdarin",
|
"home.column_settings.show_quotes": "Sken-d tibdarin",
|
||||||
"home.column_settings.show_reblogs": "Ssken-d beṭṭu",
|
"home.column_settings.show_reblogs": "Ssken-d beṭṭu",
|
||||||
"home.column_settings.show_replies": "Ssken-d tiririyin",
|
"home.column_settings.show_replies": "Ssken-d tiririyin",
|
||||||
|
@ -324,7 +322,6 @@
|
||||||
"home.pending_critical_update.body": "Ma ulac aɣilif, leqqem aqeddac-ik Mastodon akken kan tzemreḍ !",
|
"home.pending_critical_update.body": "Ma ulac aɣilif, leqqem aqeddac-ik Mastodon akken kan tzemreḍ !",
|
||||||
"home.pending_critical_update.link": "Wali ileqman",
|
"home.pending_critical_update.link": "Wali ileqman",
|
||||||
"home.show_announcements": "Ssken-d ulɣuyen",
|
"home.show_announcements": "Ssken-d ulɣuyen",
|
||||||
"ignore_notifications_modal.ignore": "Ttu ilɣa",
|
|
||||||
"info_button.label": "Tallelt",
|
"info_button.label": "Tallelt",
|
||||||
"interaction_modal.action.favourite": "I wakken ad tkemmleḍ, yessefk ad d-tḥemmleḍ seg umiḍan-ik·im.",
|
"interaction_modal.action.favourite": "I wakken ad tkemmleḍ, yessefk ad d-tḥemmleḍ seg umiḍan-ik·im.",
|
||||||
"interaction_modal.action.follow": "I wakken ad tkemmleḍ, yessefk ad d-tḍefreḍ seg umiḍan-ik·im.",
|
"interaction_modal.action.follow": "I wakken ad tkemmleḍ, yessefk ad d-tḍefreḍ seg umiḍan-ik·im.",
|
||||||
|
@ -392,7 +389,6 @@
|
||||||
"lists.delete": "Kkes tabdart",
|
"lists.delete": "Kkes tabdart",
|
||||||
"lists.done": "Immed",
|
"lists.done": "Immed",
|
||||||
"lists.edit": "Ẓreg tabdart",
|
"lists.edit": "Ẓreg tabdart",
|
||||||
"lists.find_users_to_add": "Af-d iseqdacen ara ternuḍ",
|
|
||||||
"lists.list_name": "Isem n tebdart",
|
"lists.list_name": "Isem n tebdart",
|
||||||
"lists.new_list_name": "Isem n tebdart tamaynut",
|
"lists.new_list_name": "Isem n tebdart tamaynut",
|
||||||
"lists.no_lists_yet": "Ulac tibdarin akka tura.",
|
"lists.no_lists_yet": "Ulac tibdarin akka tura.",
|
||||||
|
@ -416,7 +412,6 @@
|
||||||
"mute_modal.you_wont_see_mentions": "Ur tezmireḍ ara ad twaliḍ tisuffaɣ anda d-yettwabdar.",
|
"mute_modal.you_wont_see_mentions": "Ur tezmireḍ ara ad twaliḍ tisuffaɣ anda d-yettwabdar.",
|
||||||
"mute_modal.you_wont_see_posts": "Yezmer ad yettwali tisuffaɣ-ik·im, maca ur tettwaliḍ ara tidak-is.",
|
"mute_modal.you_wont_see_posts": "Yezmer ad yettwali tisuffaɣ-ik·im, maca ur tettwaliḍ ara tidak-is.",
|
||||||
"navigation_bar.about": "Ɣef",
|
"navigation_bar.about": "Ɣef",
|
||||||
"navigation_bar.account_settings": "Awal n uɛeddi akked tɣellist",
|
|
||||||
"navigation_bar.administration": "Tadbelt",
|
"navigation_bar.administration": "Tadbelt",
|
||||||
"navigation_bar.advanced_interface": "Ldi deg ugrudem n web leqqayen",
|
"navigation_bar.advanced_interface": "Ldi deg ugrudem n web leqqayen",
|
||||||
"navigation_bar.blocks": "Iseqdacen yettusḥebsen",
|
"navigation_bar.blocks": "Iseqdacen yettusḥebsen",
|
||||||
|
@ -454,7 +449,6 @@
|
||||||
"notification.label.private_reply": "Tiririt tusligt",
|
"notification.label.private_reply": "Tiririt tusligt",
|
||||||
"notification.label.reply": "Tiririt",
|
"notification.label.reply": "Tiririt",
|
||||||
"notification.mention": "Abdar",
|
"notification.mention": "Abdar",
|
||||||
"notification.mentioned_you": "{name} yebder-ik·em-id",
|
|
||||||
"notification.moderation-warning.learn_more": "Issin ugar",
|
"notification.moderation-warning.learn_more": "Issin ugar",
|
||||||
"notification.moderation_warning.action_suspend": "Yettwaseḥbes umiḍan-ik.",
|
"notification.moderation_warning.action_suspend": "Yettwaseḥbes umiḍan-ik.",
|
||||||
"notification.own_poll": "Tafrant-ik·im tfuk",
|
"notification.own_poll": "Tafrant-ik·im tfuk",
|
||||||
|
@ -467,10 +461,8 @@
|
||||||
"notification_requests.exit_selection": "Immed",
|
"notification_requests.exit_selection": "Immed",
|
||||||
"notification_requests.notifications_from": "Ilɣa sɣur {name}",
|
"notification_requests.notifications_from": "Ilɣa sɣur {name}",
|
||||||
"notification_requests.title": "Ilɣa yettwasizdgen",
|
"notification_requests.title": "Ilɣa yettwasizdgen",
|
||||||
"notification_requests.view": "Wali ilɣa",
|
|
||||||
"notifications.clear": "Sfeḍ ilɣa",
|
"notifications.clear": "Sfeḍ ilɣa",
|
||||||
"notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk ilɣa-inek·em i lebda?",
|
"notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk ilɣa-inek·em i lebda?",
|
||||||
"notifications.clear_title": "Sfeḍ ilɣa?",
|
|
||||||
"notifications.column_settings.admin.report": "Ineqqisen imaynuten:",
|
"notifications.column_settings.admin.report": "Ineqqisen imaynuten:",
|
||||||
"notifications.column_settings.alert": "Ilɣa n tnarit",
|
"notifications.column_settings.alert": "Ilɣa n tnarit",
|
||||||
"notifications.column_settings.favourite": "Imenyafen:",
|
"notifications.column_settings.favourite": "Imenyafen:",
|
||||||
|
@ -656,8 +648,6 @@
|
||||||
"status.mute_conversation": "Sgugem adiwenni",
|
"status.mute_conversation": "Sgugem adiwenni",
|
||||||
"status.open": "Semɣeṛ tasuffeɣt-ayi",
|
"status.open": "Semɣeṛ tasuffeɣt-ayi",
|
||||||
"status.pin": "Senteḍ-itt deg umaɣnu",
|
"status.pin": "Senteḍ-itt deg umaɣnu",
|
||||||
"status.quote": "Tanebdurt",
|
|
||||||
"status.quote.cancel": "Semmet tanebdurt",
|
|
||||||
"status.quote_post_author": "Yebder-d tasuffeɣt sɣur @{name}",
|
"status.quote_post_author": "Yebder-d tasuffeɣt sɣur @{name}",
|
||||||
"status.read_more": "Issin ugar",
|
"status.read_more": "Issin ugar",
|
||||||
"status.reblog": "Bḍu",
|
"status.reblog": "Bḍu",
|
||||||
|
@ -717,9 +707,5 @@
|
||||||
"video.mute": "Sgugem",
|
"video.mute": "Sgugem",
|
||||||
"video.pause": "Sgunfu",
|
"video.pause": "Sgunfu",
|
||||||
"video.play": "Seddu",
|
"video.play": "Seddu",
|
||||||
"video.unmute": "Kkes asgugem",
|
"video.unmute": "Kkes asgugem"
|
||||||
"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_public": "Yal yiwen"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
"account.mute_short": "뮤트",
|
"account.mute_short": "뮤트",
|
||||||
"account.muted": "뮤트됨",
|
"account.muted": "뮤트됨",
|
||||||
"account.muting": "뮤트함",
|
"account.muting": "뮤트함",
|
||||||
"account.mutual": "서로 팔로우",
|
"account.mutual": "서로 팔로우 중입니다",
|
||||||
"account.no_bio": "제공된 설명이 없습니다.",
|
"account.no_bio": "제공된 설명이 없습니다.",
|
||||||
"account.open_original_page": "원본 페이지 열기",
|
"account.open_original_page": "원본 페이지 열기",
|
||||||
"account.posts": "게시물",
|
"account.posts": "게시물",
|
||||||
|
@ -482,7 +482,6 @@
|
||||||
"keyboard_shortcuts.home": "홈 타임라인 열기",
|
"keyboard_shortcuts.home": "홈 타임라인 열기",
|
||||||
"keyboard_shortcuts.hotkey": "핫키",
|
"keyboard_shortcuts.hotkey": "핫키",
|
||||||
"keyboard_shortcuts.legend": "이 개요 표시",
|
"keyboard_shortcuts.legend": "이 개요 표시",
|
||||||
"keyboard_shortcuts.load_more": "\"더 보기\" 버튼에 포커스",
|
|
||||||
"keyboard_shortcuts.local": "로컬 타임라인 열기",
|
"keyboard_shortcuts.local": "로컬 타임라인 열기",
|
||||||
"keyboard_shortcuts.mention": "작성자에게 멘션",
|
"keyboard_shortcuts.mention": "작성자에게 멘션",
|
||||||
"keyboard_shortcuts.muted": "뮤트된 사용자 목록 열기",
|
"keyboard_shortcuts.muted": "뮤트된 사용자 목록 열기",
|
||||||
|
@ -662,7 +661,6 @@
|
||||||
"notifications.column_settings.mention": "멘션:",
|
"notifications.column_settings.mention": "멘션:",
|
||||||
"notifications.column_settings.poll": "설문 결과:",
|
"notifications.column_settings.poll": "설문 결과:",
|
||||||
"notifications.column_settings.push": "푸시 알림",
|
"notifications.column_settings.push": "푸시 알림",
|
||||||
"notifications.column_settings.quote": "인용:",
|
|
||||||
"notifications.column_settings.reblog": "부스트:",
|
"notifications.column_settings.reblog": "부스트:",
|
||||||
"notifications.column_settings.show": "컬럼에 표시",
|
"notifications.column_settings.show": "컬럼에 표시",
|
||||||
"notifications.column_settings.sound": "효과음 재생",
|
"notifications.column_settings.sound": "효과음 재생",
|
||||||
|
@ -738,15 +736,11 @@
|
||||||
"privacy.private.short": "팔로워",
|
"privacy.private.short": "팔로워",
|
||||||
"privacy.public.long": "마스토돈 내외 모두",
|
"privacy.public.long": "마스토돈 내외 모두",
|
||||||
"privacy.public.short": "공개",
|
"privacy.public.short": "공개",
|
||||||
"privacy.quote.anyone": "{visibility}, 누구나 인용 가능",
|
|
||||||
"privacy.quote.disabled": "{visibility}, 인용 비활성화",
|
|
||||||
"privacy.quote.limited": "{visibility}, 제한된 인용",
|
|
||||||
"privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.",
|
"privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.",
|
||||||
"privacy.unlisted.long": "더 적은 알고리즘 팡파르",
|
"privacy.unlisted.long": "더 적은 알고리즘 팡파르",
|
||||||
"privacy.unlisted.short": "조용한 공개",
|
"privacy.unlisted.short": "조용한 공개",
|
||||||
"privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨",
|
"privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨",
|
||||||
"privacy_policy.title": "개인정보처리방침",
|
"privacy_policy.title": "개인정보처리방침",
|
||||||
"quote_error.unauthorized": "이 글을 인용할 권한이 없습니다.",
|
|
||||||
"recommended": "추천함",
|
"recommended": "추천함",
|
||||||
"refresh": "새로고침",
|
"refresh": "새로고침",
|
||||||
"regeneration_indicator.please_stand_by": "잠시 기다려주세요.",
|
"regeneration_indicator.please_stand_by": "잠시 기다려주세요.",
|
||||||
|
@ -853,11 +847,9 @@
|
||||||
"status.admin_account": "@{name}에 대한 중재 화면 열기",
|
"status.admin_account": "@{name}에 대한 중재 화면 열기",
|
||||||
"status.admin_domain": "{domain}에 대한 중재 화면 열기",
|
"status.admin_domain": "{domain}에 대한 중재 화면 열기",
|
||||||
"status.admin_status": "중재 화면에서 이 게시물 열기",
|
"status.admin_status": "중재 화면에서 이 게시물 열기",
|
||||||
"status.all_disabled": "부스트와 인용이 비활성화되었습니다",
|
|
||||||
"status.block": "@{name} 차단",
|
"status.block": "@{name} 차단",
|
||||||
"status.bookmark": "북마크",
|
"status.bookmark": "북마크",
|
||||||
"status.cancel_reblog_private": "부스트 취소",
|
"status.cancel_reblog_private": "부스트 취소",
|
||||||
"status.cannot_quote": "작성자가 이 게시물의 인용을 비활성화했습니다",
|
|
||||||
"status.cannot_reblog": "이 게시물은 부스트 할 수 없습니다",
|
"status.cannot_reblog": "이 게시물은 부스트 할 수 없습니다",
|
||||||
"status.context.load_new_replies": "새 답글 보기",
|
"status.context.load_new_replies": "새 답글 보기",
|
||||||
"status.context.loading": "추가 답글 확인중",
|
"status.context.loading": "추가 답글 확인중",
|
||||||
|
@ -886,8 +878,6 @@
|
||||||
"status.mute_conversation": "대화 뮤트",
|
"status.mute_conversation": "대화 뮤트",
|
||||||
"status.open": "상세 정보 표시",
|
"status.open": "상세 정보 표시",
|
||||||
"status.pin": "고정",
|
"status.pin": "고정",
|
||||||
"status.quote": "인용",
|
|
||||||
"status.quote.cancel": "인용 취소",
|
|
||||||
"status.quote_error.filtered": "필터에 의해 가려짐",
|
"status.quote_error.filtered": "필터에 의해 가려짐",
|
||||||
"status.quote_error.not_available": "게시물 사용 불가",
|
"status.quote_error.not_available": "게시물 사용 불가",
|
||||||
"status.quote_error.pending_approval": "게시물 대기중",
|
"status.quote_error.pending_approval": "게시물 대기중",
|
||||||
|
@ -966,12 +956,5 @@
|
||||||
"video.skip_forward": "앞으로 건너뛰기",
|
"video.skip_forward": "앞으로 건너뛰기",
|
||||||
"video.unmute": "음소거 해제",
|
"video.unmute": "음소거 해제",
|
||||||
"video.volume_down": "음량 감소",
|
"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_nobody": "나에게만",
|
|
||||||
"visibility_modal.quote_public": "아무나",
|
|
||||||
"visibility_modal.save": "저장"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "Moderētie serveri",
|
"about.blocks": "Moderētie serveri",
|
||||||
"about.contact": "Kontakts:",
|
"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.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.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ī.",
|
"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ī.",
|
||||||
|
@ -9,7 +8,6 @@
|
||||||
"about.domain_blocks.silenced.title": "Ierobežotie",
|
"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.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.domain_blocks.suspended.title": "Apturētie",
|
||||||
"about.language_label": "Valoda",
|
|
||||||
"about.not_available": "Šī informācija nav padarīta pieejama šajā serverī.",
|
"about.not_available": "Šī informācija nav padarīta pieejama šajā serverī.",
|
||||||
"about.powered_by": "Decentralizētu sabiedrisko tīklu darbina {mastodon}",
|
"about.powered_by": "Decentralizētu sabiedrisko tīklu darbina {mastodon}",
|
||||||
"about.rules": "Servera noteikumi",
|
"about.rules": "Servera noteikumi",
|
||||||
|
@ -147,7 +145,6 @@
|
||||||
"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.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_column_error.routing.title": "404",
|
||||||
"bundle_modal_error.close": "Aizvērt",
|
"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",
|
"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.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!",
|
"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!",
|
||||||
|
@ -216,11 +213,6 @@
|
||||||
"confirmations.delete_list.confirm": "Dzēst",
|
"confirmations.delete_list.confirm": "Dzēst",
|
||||||
"confirmations.delete_list.message": "Vai tiešām neatgriezeniski izdzēst šo sarakstu?",
|
"confirmations.delete_list.message": "Vai tiešām neatgriezeniski izdzēst šo sarakstu?",
|
||||||
"confirmations.delete_list.title": "Izdzēst 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.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.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",
|
"confirmations.follow_to_list.confirm": "Sekot un pievienot sarakstam",
|
||||||
|
@ -240,9 +232,6 @@
|
||||||
"confirmations.remove_from_followers.confirm": "Dzēst sekotāju",
|
"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.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.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.confirm": "Pārstāt sekot",
|
||||||
"confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?",
|
"confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?",
|
||||||
"confirmations.unfollow.title": "Pārtraukt sekošanu lietotājam?",
|
"confirmations.unfollow.title": "Pārtraukt sekošanu lietotājam?",
|
||||||
|
@ -279,7 +268,6 @@
|
||||||
"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_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.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:",
|
"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.instructions": "Iekļauj šo ierakstu savā tīmekļvietnē, ievietojot zemāk redzamo kodu starpliktuvē!",
|
||||||
"embed.preview": "Tas izskatīsies šādi:",
|
"embed.preview": "Tas izskatīsies šādi:",
|
||||||
"emoji_button.activity": "Aktivitāte",
|
"emoji_button.activity": "Aktivitāte",
|
||||||
|
@ -329,7 +317,6 @@
|
||||||
"explore.trending_statuses": "Ieraksti",
|
"explore.trending_statuses": "Ieraksti",
|
||||||
"explore.trending_tags": "Tēmturi",
|
"explore.trending_tags": "Tēmturi",
|
||||||
"featured_carousel.next": "Tālāk",
|
"featured_carousel.next": "Tālāk",
|
||||||
"featured_carousel.post": "Ieraksts",
|
|
||||||
"featured_carousel.previous": "Atpakaļ",
|
"featured_carousel.previous": "Atpakaļ",
|
||||||
"featured_carousel.slide": "{index} / {total}",
|
"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.",
|
"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.",
|
||||||
|
@ -348,7 +335,6 @@
|
||||||
"filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu",
|
"filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu",
|
||||||
"filter_modal.select_filter.title": "Atlasīt šo ierakstu",
|
"filter_modal.select_filter.title": "Atlasīt šo ierakstu",
|
||||||
"filter_modal.title.status": "Atlasīt ziņu",
|
"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",
|
"filtered_notifications_banner.title": "Filtrētie paziņojumi",
|
||||||
"firehose.all": "Visi",
|
"firehose.all": "Visi",
|
||||||
"firehose.local": "Šis serveris",
|
"firehose.local": "Šis serveris",
|
||||||
|
@ -463,8 +449,6 @@
|
||||||
"keyboard_shortcuts.translate": "tulkot ierakstu",
|
"keyboard_shortcuts.translate": "tulkot ierakstu",
|
||||||
"keyboard_shortcuts.unfocus": "Atfokusēt veidojamā teksta/meklēšanas lauku",
|
"keyboard_shortcuts.unfocus": "Atfokusēt veidojamā teksta/meklēšanas lauku",
|
||||||
"keyboard_shortcuts.up": "Pārvietoties augšup sarakstā",
|
"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.close": "Aizvērt",
|
||||||
"lightbox.next": "Tālāk",
|
"lightbox.next": "Tālāk",
|
||||||
"lightbox.previous": "Iepriekšējais",
|
"lightbox.previous": "Iepriekšējais",
|
||||||
|
@ -482,7 +466,6 @@
|
||||||
"lists.delete": "Izdzēst sarakstu",
|
"lists.delete": "Izdzēst sarakstu",
|
||||||
"lists.done": "Gatavs",
|
"lists.done": "Gatavs",
|
||||||
"lists.edit": "Labot sarakstu",
|
"lists.edit": "Labot sarakstu",
|
||||||
"lists.find_users_to_add": "Atrast lietotājus, kurus pievienot",
|
|
||||||
"lists.list_name": "Saraksta nosaukums",
|
"lists.list_name": "Saraksta nosaukums",
|
||||||
"lists.remove_member": "Noņemt",
|
"lists.remove_member": "Noņemt",
|
||||||
"lists.replies_policy.followed": "Jebkuram sekotajam lietotājam",
|
"lists.replies_policy.followed": "Jebkuram sekotajam lietotājam",
|
||||||
|
@ -548,8 +531,6 @@
|
||||||
"notification_requests.dismiss": "Noraidīt",
|
"notification_requests.dismiss": "Noraidīt",
|
||||||
"notification_requests.edit_selection": "Labot",
|
"notification_requests.edit_selection": "Labot",
|
||||||
"notification_requests.exit_selection": "Gatavs",
|
"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.notifications_from": "Paziņojumi no {name}",
|
||||||
"notification_requests.title": "Atlasītie paziņojumi",
|
"notification_requests.title": "Atlasītie paziņojumi",
|
||||||
"notification_requests.view": "Skatīt paziņojumus",
|
"notification_requests.view": "Skatīt paziņojumus",
|
||||||
|
@ -589,7 +570,6 @@
|
||||||
"notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.",
|
"notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.",
|
||||||
"notifications.policy.accept": "Pieņemt",
|
"notifications.policy.accept": "Pieņemt",
|
||||||
"notifications.policy.drop": "Ignorēt",
|
"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_new_accounts_title": "Jauni konti",
|
||||||
"notifications.policy.filter_not_followers_title": "Cilvēki, kuri Tev neseko",
|
"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",
|
"notifications.policy.filter_not_following_hint": "Līdz tos pašrocīgi apstiprināsi",
|
||||||
|
@ -787,7 +767,6 @@
|
||||||
"subscribed_languages.target": "Mainīt abonētās valodas priekš {target}",
|
"subscribed_languages.target": "Mainīt abonētās valodas priekš {target}",
|
||||||
"tabs_bar.home": "Sākums",
|
"tabs_bar.home": "Sākums",
|
||||||
"tabs_bar.notifications": "Paziņojumi",
|
"tabs_bar.notifications": "Paziņojumi",
|
||||||
"terms_of_service.effective_as_of": "Spēkā no {date}",
|
|
||||||
"terms_of_service.title": "Pakalpojuma izmantošanas noteikumi",
|
"terms_of_service.title": "Pakalpojuma izmantošanas noteikumi",
|
||||||
"time_remaining.days": "{number, plural, one {Atlikusi # diena} other {Atlikušas # dienas}}",
|
"time_remaining.days": "{number, plural, one {Atlikusi # diena} other {Atlikušas # dienas}}",
|
||||||
"time_remaining.hours": "{number, plural, one {Atlikusi # stunda} other {Atlikušas # stundas}}",
|
"time_remaining.hours": "{number, plural, one {Atlikusi # stunda} other {Atlikušas # stundas}}",
|
||||||
|
@ -821,13 +800,5 @@
|
||||||
"video.skip_forward": "Tīt uz priekšu",
|
"video.skip_forward": "Tīt uz priekšu",
|
||||||
"video.unmute": "Ieslēgt skaņu",
|
"video.unmute": "Ieslēgt skaņu",
|
||||||
"video.volume_down": "Pagriezt klusāk",
|
"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,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "Phah開tshù ê時間線",
|
"keyboard_shortcuts.home": "Phah開tshù ê時間線",
|
||||||
"keyboard_shortcuts.hotkey": "快速key",
|
"keyboard_shortcuts.hotkey": "快速key",
|
||||||
"keyboard_shortcuts.legend": "顯示tsit篇說明",
|
"keyboard_shortcuts.legend": "顯示tsit篇說明",
|
||||||
"keyboard_shortcuts.load_more": "Kā焦點suá kàu「載入其他」ê鈕仔",
|
|
||||||
"keyboard_shortcuts.local": "Phah開本站ê時間線",
|
"keyboard_shortcuts.local": "Phah開本站ê時間線",
|
||||||
"keyboard_shortcuts.mention": "提起作者",
|
"keyboard_shortcuts.mention": "提起作者",
|
||||||
"keyboard_shortcuts.muted": "Phah開消音ê用者列單",
|
"keyboard_shortcuts.muted": "Phah開消音ê用者列單",
|
||||||
|
@ -739,18 +738,11 @@
|
||||||
"privacy.private.short": "跟tuè lí ê",
|
"privacy.private.short": "跟tuè lí ê",
|
||||||
"privacy.public.long": "逐ê lâng(無論佇Mastodon以內á是以外)",
|
"privacy.public.long": "逐ê lâng(無論佇Mastodon以內á是以外)",
|
||||||
"privacy.public.short": "公開ê",
|
"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.additional": "Tse ê行為kap公開相siâng,m̄-koh 就算lí佇口座設定phah開有關ê公開功能,PO文mā bē顯示佇即時ê動態、hashtag、探索kap Mastodon ê搜尋結果。",
|
||||||
"privacy.unlisted.long": "減少演算法ê宣傳",
|
"privacy.unlisted.long": "減少演算法ê宣傳",
|
||||||
"privacy.unlisted.short": "恬靜ê公開",
|
"privacy.unlisted.short": "恬靜ê公開",
|
||||||
"privacy_policy.last_updated": "上尾更新tī:{date}",
|
"privacy_policy.last_updated": "上尾更新tī:{date}",
|
||||||
"privacy_policy.title": "隱私權政策",
|
"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": "推薦",
|
"recommended": "推薦",
|
||||||
"refresh": "Koh更新",
|
"refresh": "Koh更新",
|
||||||
"regeneration_indicator.please_stand_by": "請sió等leh。",
|
"regeneration_indicator.please_stand_by": "請sió等leh。",
|
||||||
|
@ -857,11 +849,9 @@
|
||||||
"status.admin_account": "Phah開 @{name} ê管理界面",
|
"status.admin_account": "Phah開 @{name} ê管理界面",
|
||||||
"status.admin_domain": "Phah開 {domain} ê管理界面",
|
"status.admin_domain": "Phah開 {domain} ê管理界面",
|
||||||
"status.admin_status": "Tī管理界面內底看tsit篇PO文",
|
"status.admin_status": "Tī管理界面內底看tsit篇PO文",
|
||||||
"status.all_disabled": "轉送kap引用停止使用",
|
|
||||||
"status.block": "封鎖 @{name}",
|
"status.block": "封鎖 @{name}",
|
||||||
"status.bookmark": "冊籤",
|
"status.bookmark": "冊籤",
|
||||||
"status.cancel_reblog_private": "取消轉送",
|
"status.cancel_reblog_private": "取消轉送",
|
||||||
"status.cannot_quote": "作者有停止別lâng引用tsit篇PO文",
|
|
||||||
"status.cannot_reblog": "Tsit篇PO文bē當轉送",
|
"status.cannot_reblog": "Tsit篇PO文bē當轉送",
|
||||||
"status.context.load_new_replies": "有新ê回應",
|
"status.context.load_new_replies": "有新ê回應",
|
||||||
"status.context.loading": "Leh檢查其他ê回應",
|
"status.context.loading": "Leh檢查其他ê回應",
|
||||||
|
@ -889,8 +879,6 @@
|
||||||
"status.mute": "消音 @{name}",
|
"status.mute": "消音 @{name}",
|
||||||
"status.mute_conversation": "Kā對話消音",
|
"status.mute_conversation": "Kā對話消音",
|
||||||
"status.open": "Kā PO文展開",
|
"status.open": "Kā PO文展開",
|
||||||
"status.quote": "引用",
|
|
||||||
"status.quote.cancel": "取消引用",
|
|
||||||
"status.quote_error.filtered": "Lí所設定ê過濾器kā tse khàm起來",
|
"status.quote_error.filtered": "Lí所設定ê過濾器kā tse khàm起來",
|
||||||
"status.quote_error.not_available": "鋪文bē當看",
|
"status.quote_error.not_available": "鋪文bē當看",
|
||||||
"status.quote_error.pending_approval": "鋪文當咧送",
|
"status.quote_error.pending_approval": "鋪文當咧送",
|
||||||
|
@ -898,7 +886,6 @@
|
||||||
"status.quote_error.pending_approval_popout.title": "Leh送引文?請sió等leh",
|
"status.quote_error.pending_approval_popout.title": "Leh送引文?請sió等leh",
|
||||||
"status.quote_policy_change": "改通引用ê lâng",
|
"status.quote_policy_change": "改通引用ê lâng",
|
||||||
"status.quote_post_author": "引用 @{name} ê PO文ah",
|
"status.quote_post_author": "引用 @{name} ê PO文ah",
|
||||||
"status.quote_private": "私人PO文bē當引用",
|
|
||||||
"status.read_more": "讀詳細",
|
"status.read_more": "讀詳細",
|
||||||
"status.reblog": "轉送",
|
"status.reblog": "轉送",
|
||||||
"status.reblog_private": "照原PO ê通看見ê範圍轉送",
|
"status.reblog_private": "照原PO ê通看見ê範圍轉送",
|
||||||
|
@ -950,7 +937,6 @@
|
||||||
"upload_button.label": "加圖片、影片á是聲音檔",
|
"upload_button.label": "加圖片、影片á是聲音檔",
|
||||||
"upload_error.limit": "超過檔案傳起去ê限制",
|
"upload_error.limit": "超過檔案傳起去ê限制",
|
||||||
"upload_error.poll": "Bô允準佇投票ê時kā檔案傳起去。",
|
"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.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_cancel": "Suá位取消ah,媒體附件 {item} khǹg落來ah。",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "媒體附件 {item} khǹg落來ah。",
|
"upload_form.drag_and_drop.on_drag_end": "媒體附件 {item} khǹg落來ah。",
|
||||||
|
@ -976,12 +962,14 @@
|
||||||
"video.volume_up": "變khah大聲",
|
"video.volume_up": "變khah大聲",
|
||||||
"visibility_modal.button_title": "設定通看ê程度",
|
"visibility_modal.button_title": "設定通看ê程度",
|
||||||
"visibility_modal.header": "通看ê程度kap互動",
|
"visibility_modal.header": "通看ê程度kap互動",
|
||||||
|
"visibility_modal.helper.direct_quoting": "私人ê提起bē當引用。",
|
||||||
"visibility_modal.helper.privacy_editing": "公開ê PO文bē當改in通看ê程度。",
|
"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.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.instructions": "控制ē當kap tsit篇PO文互動ê lâng,Ē當佇 <link>偏愛ê設定>其他</link>tshuē tio̍h全地ê設定。",
|
||||||
"visibility_modal.privacy_label": "隱私權",
|
"visibility_modal.privacy_label": "隱私權",
|
||||||
"visibility_modal.quote_followers": "Kan-ta hōo跟tuè ê lâng",
|
"visibility_modal.quote_followers": "Kan-ta hōo跟tuè ê lâng",
|
||||||
"visibility_modal.quote_label": "改通引用ê lâng",
|
"visibility_modal.quote_label": "改通引用ê lâng",
|
||||||
"visibility_modal.quote_public": "Ta̍k ê lâng",
|
"visibility_modal.quote_nobody": "無半位",
|
||||||
"visibility_modal.save": "儲存"
|
"visibility_modal.quote_public": "Ta̍k ê lâng"
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,14 +23,11 @@
|
||||||
"account.edit_profile": "प्रोफाइल सम्पादन गर्नुहोस्",
|
"account.edit_profile": "प्रोफाइल सम्पादन गर्नुहोस्",
|
||||||
"account.enable_notifications": "@{name} ले पोस्ट गर्दा मलाई सूचित गर्नुहोस्",
|
"account.enable_notifications": "@{name} ले पोस्ट गर्दा मलाई सूचित गर्नुहोस्",
|
||||||
"account.endorse": "प्रोफाइलमा फिचर गर्नुहोस्",
|
"account.endorse": "प्रोफाइलमा फिचर गर्नुहोस्",
|
||||||
"account.featured": "फिचर गरिएको",
|
|
||||||
"account.featured.accounts": "प्रोफाइलहरू",
|
|
||||||
"account.featured.hashtags": "ह्यासट्यागहरू",
|
|
||||||
"account.featured_tags.last_status_never": "कुनै पोस्ट छैन",
|
"account.featured_tags.last_status_never": "कुनै पोस्ट छैन",
|
||||||
"account.follow": "फलो गर्नुहोस",
|
"account.follow": "फलो गर्नुहोस",
|
||||||
"account.follow_back": "फलो ब्याक गर्नुहोस्",
|
"account.follow_back": "फलो ब्याक गर्नुहोस्",
|
||||||
"account.followers": "फलोअरहरु",
|
"account.followers": "फलोअरहरु",
|
||||||
"account.followers.empty": "यस प्रयोगकर्तालाई अहिलेसम्म कसैले फलो गरेको छैन।",
|
"account.followers.empty": "यस प्रयोगकर्तालाई अहिलेसम्म कसैले फलो गर्दैन।",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} फलोअर} other {{counter} फलोअरहरू}}",
|
"account.followers_counter": "{count, plural, one {{counter} फलोअर} other {{counter} फलोअरहरू}}",
|
||||||
"account.following": "फलो गर्दै",
|
"account.following": "फलो गर्दै",
|
||||||
"account.following_counter": "{count, plural, one {{counter} फलो गर्दै} other {{counter} फलो गर्दै}}",
|
"account.following_counter": "{count, plural, one {{counter} फलो गर्दै} other {{counter} फलो गर्दै}}",
|
||||||
|
@ -45,7 +42,6 @@
|
||||||
"account.mute_notifications_short": "सूचनाहरू म्यूट गर्नुहोस्",
|
"account.mute_notifications_short": "सूचनाहरू म्यूट गर्नुहोस्",
|
||||||
"account.mute_short": "म्युट",
|
"account.mute_short": "म्युट",
|
||||||
"account.muted": "म्युट गरिएको",
|
"account.muted": "म्युट गरिएको",
|
||||||
"account.mutual": "तपाईंहरु एकअर्कालाई फलो गर्नुहुन्छ",
|
|
||||||
"account.no_bio": "कुनै विवरण प्रदान गरिएको छैन।",
|
"account.no_bio": "कुनै विवरण प्रदान गरिएको छैन।",
|
||||||
"account.posts": "पोस्टहरू",
|
"account.posts": "पोस्टहरू",
|
||||||
"account.posts_with_replies": "पोस्ट र जवाफहरू",
|
"account.posts_with_replies": "पोस्ट र जवाफहरू",
|
||||||
|
@ -57,7 +53,6 @@
|
||||||
"account.statuses_counter": "{count, plural, one {{counter} पोस्ट} other {{counter} पोस्टहरू}}",
|
"account.statuses_counter": "{count, plural, one {{counter} पोस्ट} other {{counter} पोस्टहरू}}",
|
||||||
"account.unblock": "@{name} लाई अनब्लक गर्नुहोस्",
|
"account.unblock": "@{name} लाई अनब्लक गर्नुहोस्",
|
||||||
"account.unblock_domain": "{domain} डोमेनलाई अनब्लक गर्नुहोस्",
|
"account.unblock_domain": "{domain} डोमेनलाई अनब्लक गर्नुहोस्",
|
||||||
"account.unblock_domain_short": "अनब्लक गर्नुहोस्",
|
|
||||||
"account.unblock_short": "अनब्लक गर्नुहोस्",
|
"account.unblock_short": "अनब्लक गर्नुहोस्",
|
||||||
"account.unendorse": "प्रोफाइलमा फिचर नगर्नुहोस्",
|
"account.unendorse": "प्रोफाइलमा फिचर नगर्नुहोस्",
|
||||||
"account.unfollow": "अनफलो गर्नुहोस्",
|
"account.unfollow": "अनफलो गर्नुहोस्",
|
||||||
|
@ -69,7 +64,6 @@
|
||||||
"admin.dashboard.retention.cohort_size": "नयाँ प्रयोगकर्ताहरू",
|
"admin.dashboard.retention.cohort_size": "नयाँ प्रयोगकर्ताहरू",
|
||||||
"alert.rate_limited.message": "कृपया {retry_time, time, medium} पछि पुन: प्रयास गर्नुहोस्।",
|
"alert.rate_limited.message": "कृपया {retry_time, time, medium} पछि पुन: प्रयास गर्नुहोस्।",
|
||||||
"alert.unexpected.message": "एउटा अनपेक्षित त्रुटि भयो।",
|
"alert.unexpected.message": "एउटा अनपेक्षित त्रुटि भयो।",
|
||||||
"alt_text_modal.cancel": "रद्द गर्नुहोस्",
|
|
||||||
"announcement.announcement": "घोषणा",
|
"announcement.announcement": "घोषणा",
|
||||||
"annual_report.summary.followers.followers": "फलोअरहरु",
|
"annual_report.summary.followers.followers": "फलोअरहरु",
|
||||||
"annual_report.summary.highlighted_post.by_reblogs": "सबैभन्दा बढि बूस्ट गरिएको पोस्ट",
|
"annual_report.summary.highlighted_post.by_reblogs": "सबैभन्दा बढि बूस्ट गरिएको पोस्ट",
|
||||||
|
@ -162,13 +156,8 @@
|
||||||
"notification_requests.confirm_accept_multiple.title": "सूचना अनुरोधहरू स्वीकार गर्ने?",
|
"notification_requests.confirm_accept_multiple.title": "सूचना अनुरोधहरू स्वीकार गर्ने?",
|
||||||
"notification_requests.confirm_dismiss_multiple.title": "सूचना अनुरोधहरू खारेज गर्ने?",
|
"notification_requests.confirm_dismiss_multiple.title": "सूचना अनुरोधहरू खारेज गर्ने?",
|
||||||
"notifications.clear_title": "सूचनाहरू खाली गर्ने?",
|
"notifications.clear_title": "सूचनाहरू खाली गर्ने?",
|
||||||
"notifications.column_settings.follow": "नयाँ फलोअरहरु:",
|
|
||||||
"notifications.column_settings.follow_request": "नयाँ फलोअर अनुरोधहरु",
|
|
||||||
"notifications.column_settings.reblog": "बूस्टहरू:",
|
"notifications.column_settings.reblog": "बूस्टहरू:",
|
||||||
"notifications.filter.boosts": "बूस्टहरू",
|
"notifications.filter.boosts": "बूस्टहरू",
|
||||||
"privacy.private.long": "मात्र तपाईंको फलोअरहरु",
|
|
||||||
"privacy.private.short": "फलोअरहरु",
|
|
||||||
"reply_indicator.cancel": "रद्द गर्नुहोस्",
|
|
||||||
"report.comment.title": "के हामीले थाहा पाउनुपर्ने अरू केही छ जस्तो लाग्छ?",
|
"report.comment.title": "के हामीले थाहा पाउनुपर्ने अरू केही छ जस्तो लाग्छ?",
|
||||||
"report.forward_hint": "यो खाता अर्को सर्भरबाट हो। त्यहाँ पनि रिपोर्टको गुमनाम प्रतिलिपि पठाउने हो?",
|
"report.forward_hint": "यो खाता अर्को सर्भरबाट हो। त्यहाँ पनि रिपोर्टको गुमनाम प्रतिलिपि पठाउने हो?",
|
||||||
"report.rules.title": "कुन नियमहरू उल्लङ्घन भइरहेका छन्?",
|
"report.rules.title": "कुन नियमहरू उल्लङ्घन भइरहेका छन्?",
|
||||||
|
@ -183,6 +172,5 @@
|
||||||
"status.reblog": "बूस्ट गर्नुहोस्",
|
"status.reblog": "बूस्ट गर्नुहोस्",
|
||||||
"status.reblogged_by": "{name} ले बूस्ट गर्नुभएको",
|
"status.reblogged_by": "{name} ले बूस्ट गर्नुभएको",
|
||||||
"status.reblogs": "{count, plural, one {बूस्ट} other {बूस्टहरू}}",
|
"status.reblogs": "{count, plural, one {बूस्ट} other {बूस्टहरू}}",
|
||||||
"status.unmute_conversation": "कुराकानी अनम्यूट गर्नुहोस्",
|
"status.unmute_conversation": "कुराकानी अनम्यूट गर्नुहोस्"
|
||||||
"visibility_modal.quote_followers": "फलोअरहरु मात्र"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,7 +292,6 @@
|
||||||
"domain_pill.your_handle": "Jouw fediverse-adres:",
|
"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_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.",
|
"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.instructions": "Embed dit bericht op jouw website door de onderstaande code te kopiëren.",
|
||||||
"embed.preview": "Zo komt het eruit te zien:",
|
"embed.preview": "Zo komt het eruit te zien:",
|
||||||
"emoji_button.activity": "Activiteiten",
|
"emoji_button.activity": "Activiteiten",
|
||||||
|
@ -483,7 +482,6 @@
|
||||||
"keyboard_shortcuts.home": "Starttijdlijn tonen",
|
"keyboard_shortcuts.home": "Starttijdlijn tonen",
|
||||||
"keyboard_shortcuts.hotkey": "Sneltoets",
|
"keyboard_shortcuts.hotkey": "Sneltoets",
|
||||||
"keyboard_shortcuts.legend": "Deze legenda tonen",
|
"keyboard_shortcuts.legend": "Deze legenda tonen",
|
||||||
"keyboard_shortcuts.load_more": "\"Meer laden\"-knop focussen",
|
|
||||||
"keyboard_shortcuts.local": "Lokale tijdlijn tonen",
|
"keyboard_shortcuts.local": "Lokale tijdlijn tonen",
|
||||||
"keyboard_shortcuts.mention": "Account vermelden",
|
"keyboard_shortcuts.mention": "Account vermelden",
|
||||||
"keyboard_shortcuts.muted": "Genegeerde gebruikers tonen",
|
"keyboard_shortcuts.muted": "Genegeerde gebruikers tonen",
|
||||||
|
@ -492,7 +490,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Media openen",
|
"keyboard_shortcuts.open_media": "Media openen",
|
||||||
"keyboard_shortcuts.pinned": "Jouw vastgemaakte berichten tonen",
|
"keyboard_shortcuts.pinned": "Jouw vastgemaakte berichten tonen",
|
||||||
"keyboard_shortcuts.profile": "Gebruikersprofiel auteur openen",
|
"keyboard_shortcuts.profile": "Gebruikersprofiel auteur openen",
|
||||||
"keyboard_shortcuts.quote": "Bericht citeren",
|
|
||||||
"keyboard_shortcuts.reply": "Reageren",
|
"keyboard_shortcuts.reply": "Reageren",
|
||||||
"keyboard_shortcuts.requests": "Jouw volgverzoeken tonen",
|
"keyboard_shortcuts.requests": "Jouw volgverzoeken tonen",
|
||||||
"keyboard_shortcuts.search": "Zoekveld focussen",
|
"keyboard_shortcuts.search": "Zoekveld focussen",
|
||||||
|
@ -621,7 +618,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Jouw account is opgeschort.",
|
"notification.moderation_warning.action_suspend": "Jouw account is opgeschort.",
|
||||||
"notification.own_poll": "Jouw peiling is beëindigd",
|
"notification.own_poll": "Jouw peiling is beëindigd",
|
||||||
"notification.poll": "Een peiling waaraan jij hebt meegedaan 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} 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.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}",
|
"notification.relationships_severance_event": "Verloren verbindingen met {name}",
|
||||||
|
@ -734,25 +730,18 @@
|
||||||
"poll.votes": "{votes, plural, one {# stem} other {# stemmen}}",
|
"poll.votes": "{votes, plural, one {# stem} other {# stemmen}}",
|
||||||
"poll_button.add_poll": "Peiling toevoegen",
|
"poll_button.add_poll": "Peiling toevoegen",
|
||||||
"poll_button.remove_poll": "Peiling verwijderen",
|
"poll_button.remove_poll": "Peiling verwijderen",
|
||||||
"privacy.change": "Privacy voor een bericht aanpassen",
|
"privacy.change": "Zichtbaarheid van bericht aanpassen",
|
||||||
"privacy.direct.long": "Alleen voor mensen die specifiek in het bericht worden vermeld",
|
"privacy.direct.long": "Alleen voor mensen die specifiek in het bericht worden vermeld",
|
||||||
"privacy.direct.short": "Privébericht",
|
"privacy.direct.short": "Privébericht",
|
||||||
"privacy.private.long": "Alleen jouw volgers",
|
"privacy.private.long": "Alleen jouw volgers",
|
||||||
"privacy.private.short": "Volgers",
|
"privacy.private.short": "Volgers",
|
||||||
"privacy.public.long": "Iedereen op Mastodon en daarbuiten",
|
"privacy.public.long": "Iedereen op Mastodon en daarbuiten",
|
||||||
"privacy.public.short": "Openbaar",
|
"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.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.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen",
|
||||||
"privacy.unlisted.short": "Minder openbaar",
|
"privacy.unlisted.short": "Minder openbaar",
|
||||||
"privacy_policy.last_updated": "Laatst bijgewerkt op {date}",
|
"privacy_policy.last_updated": "Laatst bijgewerkt op {date}",
|
||||||
"privacy_policy.title": "Privacybeleid",
|
"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",
|
"recommended": "Aanbevolen",
|
||||||
"refresh": "Vernieuwen",
|
"refresh": "Vernieuwen",
|
||||||
"regeneration_indicator.please_stand_by": "Even geduld alsjeblieft.",
|
"regeneration_indicator.please_stand_by": "Even geduld alsjeblieft.",
|
||||||
|
@ -859,11 +848,9 @@
|
||||||
"status.admin_account": "Moderatie-omgeving van @{name} openen",
|
"status.admin_account": "Moderatie-omgeving van @{name} openen",
|
||||||
"status.admin_domain": "Moderatie-omgeving van {domain} openen",
|
"status.admin_domain": "Moderatie-omgeving van {domain} openen",
|
||||||
"status.admin_status": "Dit bericht in de moderatie-omgeving tonen",
|
"status.admin_status": "Dit bericht in de moderatie-omgeving tonen",
|
||||||
"status.all_disabled": "Boosts en citaten zijn uitgeschakeld",
|
|
||||||
"status.block": "@{name} blokkeren",
|
"status.block": "@{name} blokkeren",
|
||||||
"status.bookmark": "Bladwijzer toevoegen",
|
"status.bookmark": "Bladwijzer toevoegen",
|
||||||
"status.cancel_reblog_private": "Niet langer boosten",
|
"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.cannot_reblog": "Dit bericht kan niet geboost worden",
|
||||||
"status.context.load_new_replies": "Nieuwe reacties beschikbaar",
|
"status.context.load_new_replies": "Nieuwe reacties beschikbaar",
|
||||||
"status.context.loading": "Op nieuwe reacties aan het controleren",
|
"status.context.loading": "Op nieuwe reacties aan het controleren",
|
||||||
|
@ -892,23 +879,14 @@
|
||||||
"status.mute_conversation": "Gesprek negeren",
|
"status.mute_conversation": "Gesprek negeren",
|
||||||
"status.open": "Volledig bericht tonen",
|
"status.open": "Volledig bericht tonen",
|
||||||
"status.pin": "Aan profielpagina vastmaken",
|
"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.filtered": "Verborgen door een van je filters",
|
||||||
"status.quote_error.not_available": "Bericht niet beschikbaar",
|
"status.quote_error.not_available": "Bericht niet beschikbaar",
|
||||||
"status.quote_error.pending_approval": "Bericht in afwachting",
|
"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.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_error.pending_approval_popout.title": "Even geduld wanneer het citaat nog moet worden goedgekeurd.",
|
||||||
"status.quote_followers_only": "Alleen volgers mogen dit bericht citeren",
|
|
||||||
"status.quote_manual_review": "De auteur gaat het handmatig beoordelen",
|
|
||||||
"status.quote_policy_change": "Wijzig wie jou mag citeren",
|
|
||||||
"status.quote_post_author": "Citeerde een bericht van @{name}",
|
"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.quotes.empty": "Niemand heeft dit bericht nog geciteerd. Wanneer iemand dat doet, wordt dat hier getoond.",
|
|
||||||
"status.read_more": "Meer lezen",
|
"status.read_more": "Meer lezen",
|
||||||
"status.reblog": "Boosten",
|
"status.reblog": "Boosten",
|
||||||
"status.reblog_or_quote": "Boosten of citeren",
|
|
||||||
"status.reblog_private": "Boost naar oorspronkelijke ontvangers",
|
"status.reblog_private": "Boost naar oorspronkelijke ontvangers",
|
||||||
"status.reblogged_by": "{name} boostte",
|
"status.reblogged_by": "{name} boostte",
|
||||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||||
|
@ -921,7 +899,6 @@
|
||||||
"status.reply": "Reageren",
|
"status.reply": "Reageren",
|
||||||
"status.replyAll": "Op iedereen reageren",
|
"status.replyAll": "Op iedereen reageren",
|
||||||
"status.report": "@{name} rapporteren",
|
"status.report": "@{name} rapporteren",
|
||||||
"status.request_quote": "Verzoek om te citeren",
|
|
||||||
"status.revoke_quote": "Mijn bericht uit het bericht van @{name} verwijderen",
|
"status.revoke_quote": "Mijn bericht uit het bericht van @{name} verwijderen",
|
||||||
"status.sensitive_warning": "Gevoelige inhoud",
|
"status.sensitive_warning": "Gevoelige inhoud",
|
||||||
"status.share": "Delen",
|
"status.share": "Delen",
|
||||||
|
@ -960,7 +937,6 @@
|
||||||
"upload_button.label": "Afbeeldingen, een video- of een geluidsbestand toevoegen",
|
"upload_button.label": "Afbeeldingen, een video- of een geluidsbestand toevoegen",
|
||||||
"upload_error.limit": "Uploadlimiet van bestand overschreden.",
|
"upload_error.limit": "Uploadlimiet van bestand overschreden.",
|
||||||
"upload_error.poll": "Het uploaden van bestanden is bij peilingen niet toegestaan.",
|
"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.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_cancel": "Slepen is geannuleerd. Mediabijlage {item} is niet verplaatst.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Mediabijlage {item} is niet verplaatst.",
|
"upload_form.drag_and_drop.on_drag_end": "Mediabijlage {item} is niet verplaatst.",
|
||||||
|
@ -983,18 +959,5 @@
|
||||||
"video.skip_forward": "Vooruitspoelen",
|
"video.skip_forward": "Vooruitspoelen",
|
||||||
"video.unmute": "Dempen opheffen",
|
"video.unmute": "Dempen opheffen",
|
||||||
"video.volume_down": "Volume omlaag",
|
"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,7 +292,6 @@
|
||||||
"domain_pill.your_handle": "Handtaket ditt:",
|
"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_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.",
|
"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.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden nedanfor.",
|
||||||
"embed.preview": "Slik kjem det til å sjå ut:",
|
"embed.preview": "Slik kjem det til å sjå ut:",
|
||||||
"emoji_button.activity": "Aktivitet",
|
"emoji_button.activity": "Aktivitet",
|
||||||
|
@ -483,7 +482,6 @@
|
||||||
"keyboard_shortcuts.home": "Opne heimetidslina",
|
"keyboard_shortcuts.home": "Opne heimetidslina",
|
||||||
"keyboard_shortcuts.hotkey": "Snøggtast",
|
"keyboard_shortcuts.hotkey": "Snøggtast",
|
||||||
"keyboard_shortcuts.legend": "Vis denne forklaringa",
|
"keyboard_shortcuts.legend": "Vis denne forklaringa",
|
||||||
"keyboard_shortcuts.load_more": "Fokuser på «Last meir»-knappen",
|
|
||||||
"keyboard_shortcuts.local": "Opne lokal tidsline",
|
"keyboard_shortcuts.local": "Opne lokal tidsline",
|
||||||
"keyboard_shortcuts.mention": "Nemn forfattaren",
|
"keyboard_shortcuts.mention": "Nemn forfattaren",
|
||||||
"keyboard_shortcuts.muted": "Opne liste over målbundne brukarar",
|
"keyboard_shortcuts.muted": "Opne liste over målbundne brukarar",
|
||||||
|
@ -596,8 +594,8 @@
|
||||||
"notification.annual_report.view": "Sjå #Året ditt",
|
"notification.annual_report.view": "Sjå #Året ditt",
|
||||||
"notification.favourite": "{name} markerte innlegget ditt som favoritt",
|
"notification.favourite": "{name} markerte innlegget ditt som favoritt",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} og <a>{count, plural, one {# annan} other {# andre}}</a> favorittmerka innlegget ditt",
|
"notification.favourite.name_and_others_with_link": "{name} og <a>{count, plural, one {# annan} other {# andre}}</a> favorittmerka innlegget ditt",
|
||||||
"notification.favourite_pm": "{name} favorittmerka den private omtalen din",
|
"notification.favourite_pm": "{name} favorittmerka den private nemninga di",
|
||||||
"notification.favourite_pm.name_and_others_with_link": "{name} og <a>{count, plural, one {# annan} other {# andre}}</a> favorittmerka den private omtalen din",
|
"notification.favourite_pm.name_and_others_with_link": "{name} og <a>{count, plural, one {# annan} other {# andre}}</a> favorittmerka den private nemninga di",
|
||||||
"notification.follow": "{name} fylgde deg",
|
"notification.follow": "{name} fylgde deg",
|
||||||
"notification.follow.name_and_others": "{name} og <a>{count, plural, one {# annan} other {# andre}}</a> fylgde deg",
|
"notification.follow.name_and_others": "{name} og <a>{count, plural, one {# annan} other {# andre}}</a> fylgde deg",
|
||||||
"notification.follow_request": "{name} har bedt om å fylgja deg",
|
"notification.follow_request": "{name} har bedt om å fylgja deg",
|
||||||
|
@ -620,7 +618,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Kontoen din har blitt suspendert.",
|
"notification.moderation_warning.action_suspend": "Kontoen din har blitt suspendert.",
|
||||||
"notification.own_poll": "Rundspørjinga di er ferdig",
|
"notification.own_poll": "Rundspørjinga di er ferdig",
|
||||||
"notification.poll": "Ei rundspørjing du røysta i 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} framheva innlegget ditt",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} og <a>{count, plural, one {# annan} other {# andre}}</a> 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}",
|
"notification.relationships_severance_event": "Tapte samband med {name}",
|
||||||
|
@ -661,7 +658,7 @@
|
||||||
"notifications.column_settings.follow": "Nye fylgjarar:",
|
"notifications.column_settings.follow": "Nye fylgjarar:",
|
||||||
"notifications.column_settings.follow_request": "Ny fylgjarførespurnader:",
|
"notifications.column_settings.follow_request": "Ny fylgjarførespurnader:",
|
||||||
"notifications.column_settings.group": "Gruppe",
|
"notifications.column_settings.group": "Gruppe",
|
||||||
"notifications.column_settings.mention": "Omtalar:",
|
"notifications.column_settings.mention": "Omtaler:",
|
||||||
"notifications.column_settings.poll": "Røysteresultat:",
|
"notifications.column_settings.poll": "Røysteresultat:",
|
||||||
"notifications.column_settings.push": "Pushvarsel",
|
"notifications.column_settings.push": "Pushvarsel",
|
||||||
"notifications.column_settings.quote": "Sitat:",
|
"notifications.column_settings.quote": "Sitat:",
|
||||||
|
@ -699,8 +696,8 @@
|
||||||
"notifications.policy.filter_not_followers_title": "Folk som ikkje fylgjer deg",
|
"notifications.policy.filter_not_followers_title": "Folk som ikkje fylgjer deg",
|
||||||
"notifications.policy.filter_not_following_hint": "Til du godkjenner dei manuelt",
|
"notifications.policy.filter_not_following_hint": "Til du godkjenner dei manuelt",
|
||||||
"notifications.policy.filter_not_following_title": "Folk du ikkje fylgjer",
|
"notifications.policy.filter_not_following_title": "Folk du ikkje fylgjer",
|
||||||
"notifications.policy.filter_private_mentions_hint": "Filtrert viss det ikkje er eit svar på dine eigne omtalar eller viss du fylgjer avsendaren",
|
"notifications.policy.filter_private_mentions_hint": "Filtrert viss det ikkje er eit svar på dine eigne omtaler eller viss du fylgjer avsendaren",
|
||||||
"notifications.policy.filter_private_mentions_title": "Masseutsende private omtalar",
|
"notifications.policy.filter_private_mentions_title": "Masseutsende private omtaler",
|
||||||
"notifications.policy.title": "Handter varsel frå…",
|
"notifications.policy.title": "Handter varsel frå…",
|
||||||
"notifications_permission_banner.enable": "Skru på skrivebordsvarsel",
|
"notifications_permission_banner.enable": "Skru på skrivebordsvarsel",
|
||||||
"notifications_permission_banner.how_to_control": "Aktiver skrivebordsvarsel for å få varsel når Mastodon ikkje er open. Du kan nøye bestemme kva samhandlingar som skal føre til skrivebordsvarsel gjennom {icon}-knappen ovanfor etter at varsel er aktivert.",
|
"notifications_permission_banner.how_to_control": "Aktiver skrivebordsvarsel for å få varsel når Mastodon ikkje er open. Du kan nøye bestemme kva samhandlingar som skal føre til skrivebordsvarsel gjennom {icon}-knappen ovanfor etter at varsel er aktivert.",
|
||||||
|
@ -740,18 +737,11 @@
|
||||||
"privacy.private.short": "Fylgjarar",
|
"privacy.private.short": "Fylgjarar",
|
||||||
"privacy.public.long": "Kven som helst på og av Mastodon",
|
"privacy.public.long": "Kven som helst på og av Mastodon",
|
||||||
"privacy.public.short": "Offentleg",
|
"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.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.long": "Færre algoritmiske fanfarar",
|
||||||
"privacy.unlisted.short": "Stille offentleg",
|
"privacy.unlisted.short": "Stille offentleg",
|
||||||
"privacy_policy.last_updated": "Sist oppdatert {date}",
|
"privacy_policy.last_updated": "Sist oppdatert {date}",
|
||||||
"privacy_policy.title": "Personvernsreglar",
|
"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",
|
"recommended": "Tilrådd",
|
||||||
"refresh": "Oppdater",
|
"refresh": "Oppdater",
|
||||||
"regeneration_indicator.please_stand_by": "Vent litt.",
|
"regeneration_indicator.please_stand_by": "Vent litt.",
|
||||||
|
@ -858,11 +848,9 @@
|
||||||
"status.admin_account": "Opne moderasjonsgrensesnitt for @{name}",
|
"status.admin_account": "Opne moderasjonsgrensesnitt for @{name}",
|
||||||
"status.admin_domain": "Opna moderatorgrensesnittet for {domain}",
|
"status.admin_domain": "Opna moderatorgrensesnittet for {domain}",
|
||||||
"status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet",
|
"status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet",
|
||||||
"status.all_disabled": "Framhevingar og sitat er skrudde av",
|
|
||||||
"status.block": "Blokker @{name}",
|
"status.block": "Blokker @{name}",
|
||||||
"status.bookmark": "Set bokmerke",
|
"status.bookmark": "Set bokmerke",
|
||||||
"status.cancel_reblog_private": "Opphev framheving",
|
"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.cannot_reblog": "Du kan ikkje framheva dette innlegget",
|
||||||
"status.context.load_new_replies": "Nye svar finst",
|
"status.context.load_new_replies": "Nye svar finst",
|
||||||
"status.context.loading": "Ser etter fleire svar",
|
"status.context.loading": "Ser etter fleire svar",
|
||||||
|
@ -891,17 +879,12 @@
|
||||||
"status.mute_conversation": "Demp samtale",
|
"status.mute_conversation": "Demp samtale",
|
||||||
"status.open": "Utvid denne statusen",
|
"status.open": "Utvid denne statusen",
|
||||||
"status.pin": "Fest på profil",
|
"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.filtered": "Gøymt på grunn av eitt av filtra dine",
|
||||||
"status.quote_error.not_available": "Innlegget er ikkje tilgjengeleg",
|
"status.quote_error.not_available": "Innlegget er ikkje tilgjengeleg",
|
||||||
"status.quote_error.pending_approval": "Innlegget ventar",
|
"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.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_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_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.read_more": "Les meir",
|
||||||
"status.reblog": "Framhev",
|
"status.reblog": "Framhev",
|
||||||
"status.reblog_private": "Framhev til dei originale mottakarane",
|
"status.reblog_private": "Framhev til dei originale mottakarane",
|
||||||
|
@ -954,7 +937,6 @@
|
||||||
"upload_button.label": "Legg til medium",
|
"upload_button.label": "Legg til medium",
|
||||||
"upload_error.limit": "Du har gått over opplastingsgrensa.",
|
"upload_error.limit": "Du har gått over opplastingsgrensa.",
|
||||||
"upload_error.poll": "Filopplasting er ikkje lov for rundspørjingar.",
|
"upload_error.poll": "Filopplasting er ikkje lov for rundspørjingar.",
|
||||||
"upload_error.quote": "Filopplasting er ikkje lov med sitat.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "For å plukka opp eit medievedlegg, trykkjer du på mellomrom eller enter. Når du dreg, brukar du piltastane for å flytta vedlegget i den retninga du vil. Deretter trykkjer du mellomrom eller enter att for å sleppa vedlegget på den nye plassen, eller trykk escape for å avbryta.",
|
"upload_form.drag_and_drop.instructions": "For å plukka opp eit medievedlegg, trykkjer du på mellomrom eller enter. Når du dreg, brukar du piltastane for å flytta vedlegget i den retninga du vil. Deretter trykkjer du mellomrom eller enter att for å sleppa vedlegget på den nye plassen, eller trykk escape for å avbryta.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Du avbraut draginga. Medievedlegget {item} vart sleppt.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Du avbraut draginga. Medievedlegget {item} vart sleppt.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Medeivedlegget {item} vart sleppt.",
|
"upload_form.drag_and_drop.on_drag_end": "Medeivedlegget {item} vart sleppt.",
|
||||||
|
@ -977,18 +959,5 @@
|
||||||
"video.skip_forward": "Hopp framover",
|
"video.skip_forward": "Hopp framover",
|
||||||
"video.unmute": "Opphev demping",
|
"video.unmute": "Opphev demping",
|
||||||
"video.volume_down": "Volum ned",
|
"video.volume_down": "Volum ned",
|
||||||
"video.volume_up": "Volum opp",
|
"video.volume_up": "Volum opp"
|
||||||
"visibility_modal.button_title": "Vel vising",
|
|
||||||
"visibility_modal.header": "Vising og samhandling",
|
|
||||||
"visibility_modal.helper.direct_quoting": "Private omtalar som er skrivne på Mastodon kan ikkje siterast av andre.",
|
|
||||||
"visibility_modal.helper.privacy_editing": "Du kan ikkje endra vising på publiserte innlegg.",
|
|
||||||
"visibility_modal.helper.private_quoting": "Innlegg som er skrivne på Mastodon og berre for fylgjarar kan ikkje siterast av andre.",
|
|
||||||
"visibility_modal.helper.unlisted_quoting": "Når folk siterer deg, vil innlegget deira ikkje syna på populære tidsliner.",
|
|
||||||
"visibility_modal.instructions": "Kontroller kven som kan samhandla med dette innlegget. Innstillingane finn du under <link>Innstillingar > Anna</link>.",
|
|
||||||
"visibility_modal.privacy_label": "Personvern",
|
|
||||||
"visibility_modal.quote_followers": "Berre fylgjarar",
|
|
||||||
"visibility_modal.quote_label": "Endre kven som kan sitera",
|
|
||||||
"visibility_modal.quote_nobody": "Berre eg",
|
|
||||||
"visibility_modal.quote_public": "Allle",
|
|
||||||
"visibility_modal.save": "Lagre"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,7 +292,6 @@
|
||||||
"domain_pill.your_handle": "O teu identificador:",
|
"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_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.",
|
"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.instructions": "Incorpora esta publicação no teu site copiando o código abaixo.",
|
||||||
"embed.preview": "Eis o aspeto que terá:",
|
"embed.preview": "Eis o aspeto que terá:",
|
||||||
"emoji_button.activity": "Atividade",
|
"emoji_button.activity": "Atividade",
|
||||||
|
@ -483,7 +482,6 @@
|
||||||
"keyboard_shortcuts.home": "abrir a cronologia na página inicial",
|
"keyboard_shortcuts.home": "abrir a cronologia na página inicial",
|
||||||
"keyboard_shortcuts.hotkey": "Atalho",
|
"keyboard_shortcuts.hotkey": "Atalho",
|
||||||
"keyboard_shortcuts.legend": "mostrar esta legenda",
|
"keyboard_shortcuts.legend": "mostrar esta legenda",
|
||||||
"keyboard_shortcuts.load_more": "Focar botão \"Carregar mais\"",
|
|
||||||
"keyboard_shortcuts.local": "abrir a cronologia local",
|
"keyboard_shortcuts.local": "abrir a cronologia local",
|
||||||
"keyboard_shortcuts.mention": "mencionar o autor",
|
"keyboard_shortcuts.mention": "mencionar o autor",
|
||||||
"keyboard_shortcuts.muted": "abrir a lista dos utilizadores ocultados",
|
"keyboard_shortcuts.muted": "abrir a lista dos utilizadores ocultados",
|
||||||
|
@ -620,7 +618,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "A tua conta foi suspensa.",
|
"notification.moderation_warning.action_suspend": "A tua conta foi suspensa.",
|
||||||
"notification.own_poll": "A tua sondagem terminou",
|
"notification.own_poll": "A tua sondagem terminou",
|
||||||
"notification.poll": "Terminou uma sondagem em que votaste",
|
"notification.poll": "Terminou uma sondagem em que votaste",
|
||||||
"notification.quoted_update": "{name} editou uma publicação que citou",
|
|
||||||
"notification.reblog": "{name} impulsionou a tua publicação",
|
"notification.reblog": "{name} impulsionou a tua publicação",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} e <a>{count, plural, one {# outro} other {# outros}}</a> impulsionaram a tua publicação",
|
"notification.reblog.name_and_others_with_link": "{name} e <a>{count, plural, one {# outro} other {# outros}}</a> impulsionaram a tua publicação",
|
||||||
"notification.relationships_severance_event": "Perdeu as ligações com {name}",
|
"notification.relationships_severance_event": "Perdeu as ligações com {name}",
|
||||||
|
@ -740,18 +737,11 @@
|
||||||
"privacy.private.short": "Seguidores",
|
"privacy.private.short": "Seguidores",
|
||||||
"privacy.public.long": "Qualquer pessoa no Mastodon ou não",
|
"privacy.public.long": "Qualquer pessoa no Mastodon ou não",
|
||||||
"privacy.public.short": "Público",
|
"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.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.long": "Menos fanfarras algorítmicas",
|
||||||
"privacy.unlisted.short": "Público silencioso",
|
"privacy.unlisted.short": "Público silencioso",
|
||||||
"privacy_policy.last_updated": "Última atualização em {date}",
|
"privacy_policy.last_updated": "Última atualização em {date}",
|
||||||
"privacy_policy.title": "Política de privacidade",
|
"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",
|
"recommended": "Recomendado",
|
||||||
"refresh": "Atualizar",
|
"refresh": "Atualizar",
|
||||||
"regeneration_indicator.please_stand_by": "Aguarda um momento.",
|
"regeneration_indicator.please_stand_by": "Aguarda um momento.",
|
||||||
|
@ -858,11 +848,9 @@
|
||||||
"status.admin_account": "Abrir a interface de moderação para @{name}",
|
"status.admin_account": "Abrir a interface de moderação para @{name}",
|
||||||
"status.admin_domain": "Abrir interface de moderação para {domain}",
|
"status.admin_domain": "Abrir interface de moderação para {domain}",
|
||||||
"status.admin_status": "Abrir esta publicação na interface de moderação",
|
"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.block": "Bloquear @{name}",
|
||||||
"status.bookmark": "Guardar nos marcadores",
|
"status.bookmark": "Guardar nos marcadores",
|
||||||
"status.cancel_reblog_private": "Retirar impulso",
|
"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.cannot_reblog": "Esta publicação não pode ser impulsionada",
|
||||||
"status.context.load_new_replies": "Novas respostas disponíveis",
|
"status.context.load_new_replies": "Novas respostas disponíveis",
|
||||||
"status.context.loading": "A verificar por mais respostas",
|
"status.context.loading": "A verificar por mais respostas",
|
||||||
|
@ -891,20 +879,12 @@
|
||||||
"status.mute_conversation": "Ocultar conversa",
|
"status.mute_conversation": "Ocultar conversa",
|
||||||
"status.open": "Expandir esta publicação",
|
"status.open": "Expandir esta publicação",
|
||||||
"status.pin": "Afixar no perfil",
|
"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.filtered": "Oculto devido a um dos seus filtros",
|
||||||
"status.quote_error.not_available": "Publicação indisponível",
|
"status.quote_error.not_available": "Publicação indisponível",
|
||||||
"status.quote_error.pending_approval": "Publicação pendente",
|
"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.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_error.pending_approval_popout.title": "Citação pendente? Mantenha a calma",
|
||||||
"status.quote_followers_only": "Apenas seguidores podem citar esta publicação",
|
|
||||||
"status.quote_manual_review": "O autor vai proceder a uma revisão manual",
|
|
||||||
"status.quote_policy_change": "Alterar quem pode citar",
|
|
||||||
"status.quote_post_author": "Citou uma publicação de @{name}",
|
"status.quote_post_author": "Citou uma publicação de @{name}",
|
||||||
"status.quote_private": "Publicações privadas não podem ser citadas",
|
|
||||||
"status.quotes": "{count, plural, one {citação} other {citações}}",
|
|
||||||
"status.quotes.empty": "Ainda ninguém citou esta publicação. Quando alguém o fizer, aparecerá aqui.",
|
|
||||||
"status.read_more": "Ler mais",
|
"status.read_more": "Ler mais",
|
||||||
"status.reblog": "Impulsionar",
|
"status.reblog": "Impulsionar",
|
||||||
"status.reblog_private": "Impulsionar com a visibilidade original",
|
"status.reblog_private": "Impulsionar com a visibilidade original",
|
||||||
|
@ -919,7 +899,6 @@
|
||||||
"status.reply": "Responder",
|
"status.reply": "Responder",
|
||||||
"status.replyAll": "Responder à conversa",
|
"status.replyAll": "Responder à conversa",
|
||||||
"status.report": "Denunciar @{name}",
|
"status.report": "Denunciar @{name}",
|
||||||
"status.request_quote": "Pedir para citar",
|
|
||||||
"status.revoke_quote": "Remover a minha publicação da publicação de @{name}",
|
"status.revoke_quote": "Remover a minha publicação da publicação de @{name}",
|
||||||
"status.sensitive_warning": "Conteúdo sensível",
|
"status.sensitive_warning": "Conteúdo sensível",
|
||||||
"status.share": "Partilhar",
|
"status.share": "Partilhar",
|
||||||
|
@ -958,7 +937,6 @@
|
||||||
"upload_button.label": "Adicionar imagens, um vídeo ou um ficheiro de som",
|
"upload_button.label": "Adicionar imagens, um vídeo ou um ficheiro de som",
|
||||||
"upload_error.limit": "Limite de envio de ficheiros excedido.",
|
"upload_error.limit": "Limite de envio de ficheiros excedido.",
|
||||||
"upload_error.poll": "Não é permitido o envio de ficheiros em sondagens.",
|
"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.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_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.",
|
"upload_form.drag_and_drop.on_drag_end": "O anexo multimédia {item} foi descartado.",
|
||||||
|
@ -981,18 +959,5 @@
|
||||||
"video.skip_forward": "Saltar para a frente",
|
"video.skip_forward": "Saltar para a frente",
|
||||||
"video.unmute": "Ativar som",
|
"video.unmute": "Ativar som",
|
||||||
"video.volume_down": "Diminuir volume",
|
"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.direct_quoting": "As menções privadas criadas no Mastodon não podem ser citadas por outras pessoas.",
|
|
||||||
"visibility_modal.helper.privacy_editing": "Publicações publicadas não podem alterar a sua visibilidade.",
|
|
||||||
"visibility_modal.helper.private_quoting": "As publicações apenas para seguidores criadas no Mastodon não podem ser citadas por outras pessoas.",
|
|
||||||
"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_nobody": "Apenas eu",
|
|
||||||
"visibility_modal.quote_public": "Todos",
|
|
||||||
"visibility_modal.save": "Guardar"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -350,14 +350,14 @@
|
||||||
"featured_carousel.previous": "Предыдущий",
|
"featured_carousel.previous": "Предыдущий",
|
||||||
"featured_carousel.slide": "{index} из {total}",
|
"featured_carousel.slide": "{index} из {total}",
|
||||||
"filter_modal.added.context_mismatch_explanation": "Этот фильтр не применяется в том контексте, в котором вы видели этот пост. Если вы хотите, чтобы пост был отфильтрован в текущем контексте, необходимо редактировать фильтр.",
|
"filter_modal.added.context_mismatch_explanation": "Этот фильтр не применяется в том контексте, в котором вы видели этот пост. Если вы хотите, чтобы пост был отфильтрован в текущем контексте, необходимо редактировать фильтр.",
|
||||||
"filter_modal.added.context_mismatch_title": "Несоответствие контекста",
|
"filter_modal.added.context_mismatch_title": "Несоответствие контекста!",
|
||||||
"filter_modal.added.expired_explanation": "Этот фильтр истёк. Чтобы он был применён, вам нужно изменить срок действия фильтра.",
|
"filter_modal.added.expired_explanation": "Этот фильтр истёк. Чтобы он был применён, вам нужно изменить срок действия фильтра.",
|
||||||
"filter_modal.added.expired_title": "Истёкший фильтр",
|
"filter_modal.added.expired_title": "Истёкший фильтр!",
|
||||||
"filter_modal.added.review_and_configure": "Для просмотра или редактирования этого фильтра перейдите в {settings_link}.",
|
"filter_modal.added.review_and_configure": "Для просмотра или редактирования этого фильтра перейдите в {settings_link}.",
|
||||||
"filter_modal.added.review_and_configure_title": "Настройки фильтра",
|
"filter_modal.added.review_and_configure_title": "Настройки фильтра",
|
||||||
"filter_modal.added.settings_link": "настройки",
|
"filter_modal.added.settings_link": "настройки",
|
||||||
"filter_modal.added.short_explanation": "Этот пост был добавлен к фильтру «{title}».",
|
"filter_modal.added.short_explanation": "Этот пост был добавлен к фильтру «{title}».",
|
||||||
"filter_modal.added.title": "Фильтр добавлен",
|
"filter_modal.added.title": "Фильтр добавлен!",
|
||||||
"filter_modal.select_filter.context_mismatch": "не применяется в этом контексте",
|
"filter_modal.select_filter.context_mismatch": "не применяется в этом контексте",
|
||||||
"filter_modal.select_filter.expired": "истёкший",
|
"filter_modal.select_filter.expired": "истёкший",
|
||||||
"filter_modal.select_filter.prompt_new": "Новый фильтр: {name}",
|
"filter_modal.select_filter.prompt_new": "Новый фильтр: {name}",
|
||||||
|
@ -433,7 +433,7 @@
|
||||||
"home.hide_announcements": "Скрыть объявления",
|
"home.hide_announcements": "Скрыть объявления",
|
||||||
"home.pending_critical_update.body": "Пожалуйста, обновите свой сервер Mastodon как можно скорее!",
|
"home.pending_critical_update.body": "Пожалуйста, обновите свой сервер Mastodon как можно скорее!",
|
||||||
"home.pending_critical_update.link": "Посмотреть обновления",
|
"home.pending_critical_update.link": "Посмотреть обновления",
|
||||||
"home.pending_critical_update.title": "Доступно критическое обновление безопасности",
|
"home.pending_critical_update.title": "Доступно критическое обновление безопасности!",
|
||||||
"home.show_announcements": "Показать объявления",
|
"home.show_announcements": "Показать объявления",
|
||||||
"ignore_notifications_modal.disclaimer": "Mastodon не может сообщить пользователям, что вы игнорируете их уведомления. Игнорирование уведомлений не остановит отправку самих сообщений.",
|
"ignore_notifications_modal.disclaimer": "Mastodon не может сообщить пользователям, что вы игнорируете их уведомления. Игнорирование уведомлений не остановит отправку самих сообщений.",
|
||||||
"ignore_notifications_modal.filter_instead": "Фильтровать",
|
"ignore_notifications_modal.filter_instead": "Фильтровать",
|
||||||
|
@ -590,7 +590,7 @@
|
||||||
"notification.admin.report_statuses_other": "{name} пожаловался (-лась) на {target}",
|
"notification.admin.report_statuses_other": "{name} пожаловался (-лась) на {target}",
|
||||||
"notification.admin.sign_up": "{name} зарегистрировался (-лась) на сервере",
|
"notification.admin.sign_up": "{name} зарегистрировался (-лась) на сервере",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} и ещё {count, plural, one {# пользователь} few {# пользователя} other {# пользователей}} зарегистрировались на сервере",
|
"notification.admin.sign_up.name_and_others": "{name} и ещё {count, plural, one {# пользователь} few {# пользователя} other {# пользователей}} зарегистрировались на сервере",
|
||||||
"notification.annual_report.message": "#Wrapstodon за {year} год ждёт вас! Откройте для себя итоги и памятные моменты этого года в Mastodon.",
|
"notification.annual_report.message": "#Wrapstodon за {year} год ждёт вас! Откройте для себя итоги и памятные моменты этого года в Mastodon!",
|
||||||
"notification.annual_report.view": "Перейти к #Wrapstodon",
|
"notification.annual_report.view": "Перейти к #Wrapstodon",
|
||||||
"notification.favourite": "{name} добавил(а) ваш пост в избранное",
|
"notification.favourite": "{name} добавил(а) ваш пост в избранное",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} и ещё <a>{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}</a> добавили ваш пост в избранное",
|
"notification.favourite.name_and_others_with_link": "{name} и ещё <a>{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}</a> добавили ваш пост в избранное",
|
||||||
|
@ -861,7 +861,7 @@
|
||||||
"status.direct": "Упомянуть @{name} лично",
|
"status.direct": "Упомянуть @{name} лично",
|
||||||
"status.direct_indicator": "Личное упоминание",
|
"status.direct_indicator": "Личное упоминание",
|
||||||
"status.edit": "Редактировать",
|
"status.edit": "Редактировать",
|
||||||
"status.edited": "Последнее изменение: {date}",
|
"status.edited": "Дата последнего изменения: {date}",
|
||||||
"status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}",
|
"status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}",
|
||||||
"status.embed": "Встроить на свой сайт",
|
"status.embed": "Встроить на свой сайт",
|
||||||
"status.favourite": "Добавить в избранное",
|
"status.favourite": "Добавить в избранное",
|
||||||
|
|
|
@ -246,7 +246,6 @@
|
||||||
"confirmations.remove_from_followers.message": "{name} kommer att sluta följa dig. Är du säker på att du vill fortsätta?",
|
"confirmations.remove_from_followers.message": "{name} kommer att sluta följa dig. Är du säker på att du vill fortsätta?",
|
||||||
"confirmations.remove_from_followers.title": "Ta bort följare?",
|
"confirmations.remove_from_followers.title": "Ta bort följare?",
|
||||||
"confirmations.revoke_quote.confirm": "Ta bort inlägg",
|
"confirmations.revoke_quote.confirm": "Ta bort inlägg",
|
||||||
"confirmations.revoke_quote.message": "Denna åtgärd kan inte ångras.",
|
|
||||||
"confirmations.revoke_quote.title": "Ta bort inlägg?",
|
"confirmations.revoke_quote.title": "Ta bort inlägg?",
|
||||||
"confirmations.unfollow.confirm": "Avfölj",
|
"confirmations.unfollow.confirm": "Avfölj",
|
||||||
"confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?",
|
"confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?",
|
||||||
|
@ -604,7 +603,6 @@
|
||||||
"notification.label.mention": "Nämn",
|
"notification.label.mention": "Nämn",
|
||||||
"notification.label.private_mention": "Privat omnämnande",
|
"notification.label.private_mention": "Privat omnämnande",
|
||||||
"notification.label.private_reply": "Privata svar",
|
"notification.label.private_reply": "Privata svar",
|
||||||
"notification.label.quote": "{name} citerade ditt inlägg",
|
|
||||||
"notification.label.reply": "Svar",
|
"notification.label.reply": "Svar",
|
||||||
"notification.mention": "Nämn",
|
"notification.mention": "Nämn",
|
||||||
"notification.mentioned_you": "{name} nämnde dig",
|
"notification.mentioned_you": "{name} nämnde dig",
|
||||||
|
@ -662,7 +660,6 @@
|
||||||
"notifications.column_settings.mention": "Omnämningar:",
|
"notifications.column_settings.mention": "Omnämningar:",
|
||||||
"notifications.column_settings.poll": "Omröstningsresultat:",
|
"notifications.column_settings.poll": "Omröstningsresultat:",
|
||||||
"notifications.column_settings.push": "Push-aviseringar",
|
"notifications.column_settings.push": "Push-aviseringar",
|
||||||
"notifications.column_settings.quote": "Citerat:",
|
|
||||||
"notifications.column_settings.reblog": "Boostar:",
|
"notifications.column_settings.reblog": "Boostar:",
|
||||||
"notifications.column_settings.show": "Visa i kolumnen",
|
"notifications.column_settings.show": "Visa i kolumnen",
|
||||||
"notifications.column_settings.sound": "Spela upp ljud",
|
"notifications.column_settings.sound": "Spela upp ljud",
|
||||||
|
@ -880,14 +877,8 @@
|
||||||
"status.mute_conversation": "Tysta konversation",
|
"status.mute_conversation": "Tysta konversation",
|
||||||
"status.open": "Utvidga detta inlägg",
|
"status.open": "Utvidga detta inlägg",
|
||||||
"status.pin": "Fäst i profil",
|
"status.pin": "Fäst i profil",
|
||||||
"status.quote.cancel": "Återkalla citering",
|
|
||||||
"status.quote_error.filtered": "Dolt på grund av ett av dina filter",
|
"status.quote_error.filtered": "Dolt på grund av ett av dina filter",
|
||||||
"status.quote_error.not_available": "Inlägg ej tillgängligt",
|
"status.quote_error.not_available": "Inlägg ej tillgängligt",
|
||||||
"status.quote_error.pending_approval": "Väntande inlägg",
|
|
||||||
"status.quote_error.pending_approval_popout.body": "Citat som delas över Fediverse kan ta tid att visa, eftersom olika servrar har olika protokoll.",
|
|
||||||
"status.quote_error.pending_approval_popout.title": "Väntande citat? Förbli lugn",
|
|
||||||
"status.quote_policy_change": "Ändra vem som kan citera",
|
|
||||||
"status.quote_post_author": "Citerade ett inlägg av @{name}",
|
|
||||||
"status.read_more": "Läs mer",
|
"status.read_more": "Läs mer",
|
||||||
"status.reblog": "Boosta",
|
"status.reblog": "Boosta",
|
||||||
"status.reblog_private": "Boosta med ursprunglig synlighet",
|
"status.reblog_private": "Boosta med ursprunglig synlighet",
|
||||||
|
@ -902,7 +893,6 @@
|
||||||
"status.reply": "Svara",
|
"status.reply": "Svara",
|
||||||
"status.replyAll": "Svara på tråden",
|
"status.replyAll": "Svara på tråden",
|
||||||
"status.report": "Rapportera @{name}",
|
"status.report": "Rapportera @{name}",
|
||||||
"status.revoke_quote": "Ta bort mitt inlägg från @{name}s inlägg",
|
|
||||||
"status.sensitive_warning": "Känsligt innehåll",
|
"status.sensitive_warning": "Känsligt innehåll",
|
||||||
"status.share": "Dela",
|
"status.share": "Dela",
|
||||||
"status.show_less_all": "Visa mindre för alla",
|
"status.show_less_all": "Visa mindre för alla",
|
||||||
|
@ -963,14 +953,9 @@
|
||||||
"video.unmute": "Avtysta",
|
"video.unmute": "Avtysta",
|
||||||
"video.volume_down": "Volym ned",
|
"video.volume_down": "Volym ned",
|
||||||
"video.volume_up": "Volym upp",
|
"video.volume_up": "Volym upp",
|
||||||
"visibility_modal.button_title": "Ange synlighet",
|
|
||||||
"visibility_modal.header": "Synlighet och interaktion",
|
"visibility_modal.header": "Synlighet och interaktion",
|
||||||
"visibility_modal.helper.privacy_editing": "Publicerade inlägg kan inte ändra deras synlighet.",
|
|
||||||
"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.privacy_label": "Integritet",
|
||||||
"visibility_modal.quote_followers": "Endast följare",
|
"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"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,7 +292,6 @@
|
||||||
"domain_pill.your_handle": "Tanıtıcınız:",
|
"domain_pill.your_handle": "Tanıtıcınız:",
|
||||||
"domain_pill.your_server": "Dijital anasayfanız, tüm gönderilerinizin yaşadığı yerdir. Bunu beğenmediniz mi? İstediğiniz zaman sunucularınızı değiştirin ve takipçilerinizi de getirin.",
|
"domain_pill.your_server": "Dijital anasayfanız, tüm gönderilerinizin yaşadığı yerdir. Bunu beğenmediniz mi? İstediğiniz zaman sunucularınızı değiştirin ve takipçilerinizi de getirin.",
|
||||||
"domain_pill.your_username": "Bu sunucudaki tekil tanımlayıcınız. Farklı sunucularda aynı kullanıcı adına sahip kullanıcıları bulmak mümkündür.",
|
"domain_pill.your_username": "Bu sunucudaki tekil tanımlayıcınız. Farklı sunucularda aynı kullanıcı adına sahip kullanıcıları bulmak mümkündür.",
|
||||||
"dropdown.empty": "Bir seçenek seçin",
|
|
||||||
"embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.",
|
"embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.",
|
||||||
"embed.preview": "İşte nasıl görüneceği:",
|
"embed.preview": "İşte nasıl görüneceği:",
|
||||||
"emoji_button.activity": "Aktivite",
|
"emoji_button.activity": "Aktivite",
|
||||||
|
@ -483,7 +482,6 @@
|
||||||
"keyboard_shortcuts.home": "Ana akışı aç",
|
"keyboard_shortcuts.home": "Ana akışı aç",
|
||||||
"keyboard_shortcuts.hotkey": "Kısayol tuşu",
|
"keyboard_shortcuts.hotkey": "Kısayol tuşu",
|
||||||
"keyboard_shortcuts.legend": "Bu efsaneyi görüntülemek için",
|
"keyboard_shortcuts.legend": "Bu efsaneyi görüntülemek için",
|
||||||
"keyboard_shortcuts.load_more": "\"Daha fazlası\" düğmesine odaklan",
|
|
||||||
"keyboard_shortcuts.local": "Yerel akışı aç",
|
"keyboard_shortcuts.local": "Yerel akışı aç",
|
||||||
"keyboard_shortcuts.mention": "Yazana değinmek için",
|
"keyboard_shortcuts.mention": "Yazana değinmek için",
|
||||||
"keyboard_shortcuts.muted": "Sessize alınmış kullanıcı listesini açmak için",
|
"keyboard_shortcuts.muted": "Sessize alınmış kullanıcı listesini açmak için",
|
||||||
|
@ -620,7 +618,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Hesabınız askıya alındı.",
|
"notification.moderation_warning.action_suspend": "Hesabınız askıya alındı.",
|
||||||
"notification.own_poll": "Anketiniz sona erdi",
|
"notification.own_poll": "Anketiniz sona erdi",
|
||||||
"notification.poll": "Oy verdiğiniz bir anket sona erdi",
|
"notification.poll": "Oy verdiğiniz bir anket sona erdi",
|
||||||
"notification.quoted_update": "{name} alıntıladığınız bir gönderiyi düzenledi",
|
|
||||||
"notification.reblog": "{name} gönderini yeniden paylaştı",
|
"notification.reblog": "{name} gönderini yeniden paylaştı",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} ve <a>{count, plural, one {# diğer kişi} other {# diğer kişi}}</a> gönderinizi yeniden paylaştı",
|
"notification.reblog.name_and_others_with_link": "{name} ve <a>{count, plural, one {# diğer kişi} other {# diğer kişi}}</a> gönderinizi yeniden paylaştı",
|
||||||
"notification.relationships_severance_event": "{name} ile bağlantılar koptu",
|
"notification.relationships_severance_event": "{name} ile bağlantılar koptu",
|
||||||
|
@ -740,18 +737,11 @@
|
||||||
"privacy.private.short": "Takipçiler",
|
"privacy.private.short": "Takipçiler",
|
||||||
"privacy.public.long": "Mastodon'da olan olmayan herkes",
|
"privacy.public.long": "Mastodon'da olan olmayan herkes",
|
||||||
"privacy.public.short": "Herkese açık",
|
"privacy.public.short": "Herkese açık",
|
||||||
"privacy.quote.anyone": "{visibility}, herkes alıntılayabilir",
|
|
||||||
"privacy.quote.disabled": "{visibility}, alıntı yapılamaz",
|
|
||||||
"privacy.quote.limited": "{visibility}, sınırlı alıntı",
|
|
||||||
"privacy.unlisted.additional": "Bu neredeyse herkese açık gibi çalışır, tek farkı gönderi canlı akışlarda veya etiketlerde, keşfette, veya Mastodon aramasında gözükmez, hesap çapında öyle seçmiş olsanız bile.",
|
"privacy.unlisted.additional": "Bu neredeyse herkese açık gibi çalışır, tek farkı gönderi canlı akışlarda veya etiketlerde, keşfette, veya Mastodon aramasında gözükmez, hesap çapında öyle seçmiş olsanız bile.",
|
||||||
"privacy.unlisted.long": "Daha az algoritmik tantana",
|
"privacy.unlisted.long": "Daha az algoritmik tantana",
|
||||||
"privacy.unlisted.short": "Sessizce herkese açık",
|
"privacy.unlisted.short": "Sessizce herkese açık",
|
||||||
"privacy_policy.last_updated": "Son güncelleme {date}",
|
"privacy_policy.last_updated": "Son güncelleme {date}",
|
||||||
"privacy_policy.title": "Gizlilik Politikası",
|
"privacy_policy.title": "Gizlilik Politikası",
|
||||||
"quote_error.poll": "Anketlerde alıntıya izin verilmez.",
|
|
||||||
"quote_error.quote": "Bir seferde tek bir alıntıya izin var.",
|
|
||||||
"quote_error.unauthorized": "Bu gönderiyi alıntılamaya yetkiniz yok.",
|
|
||||||
"quote_error.upload": "Medya eklentilerini alıntılamaya izin yok.",
|
|
||||||
"recommended": "Önerilen",
|
"recommended": "Önerilen",
|
||||||
"refresh": "Yenile",
|
"refresh": "Yenile",
|
||||||
"regeneration_indicator.please_stand_by": "Lütfen bekleyin.",
|
"regeneration_indicator.please_stand_by": "Lütfen bekleyin.",
|
||||||
|
@ -858,11 +848,9 @@
|
||||||
"status.admin_account": "@{name} için denetim arayüzünü açın",
|
"status.admin_account": "@{name} için denetim arayüzünü açın",
|
||||||
"status.admin_domain": "{domain} için denetim arayüzünü açın",
|
"status.admin_domain": "{domain} için denetim arayüzünü açın",
|
||||||
"status.admin_status": "Denetim arayüzünde bu gönderiyi açın",
|
"status.admin_status": "Denetim arayüzünde bu gönderiyi açın",
|
||||||
"status.all_disabled": "Yükseltmeler ve alıntılar devre dışı bırakıldı",
|
|
||||||
"status.block": "@{name} adlı kişiyi engelle",
|
"status.block": "@{name} adlı kişiyi engelle",
|
||||||
"status.bookmark": "Yer işareti ekle",
|
"status.bookmark": "Yer işareti ekle",
|
||||||
"status.cancel_reblog_private": "Yeniden paylaşımı geri al",
|
"status.cancel_reblog_private": "Yeniden paylaşımı geri al",
|
||||||
"status.cannot_quote": "Yazar bu gönderide alıntılamayı devre dışı bıraktı",
|
|
||||||
"status.cannot_reblog": "Bu gönderi yeniden paylaşılamaz",
|
"status.cannot_reblog": "Bu gönderi yeniden paylaşılamaz",
|
||||||
"status.context.load_new_replies": "Yeni yanıtlar mevcut",
|
"status.context.load_new_replies": "Yeni yanıtlar mevcut",
|
||||||
"status.context.loading": "Daha fazla yanıt için kontrol ediliyor",
|
"status.context.loading": "Daha fazla yanıt için kontrol ediliyor",
|
||||||
|
@ -891,20 +879,12 @@
|
||||||
"status.mute_conversation": "Sohbeti sessize al",
|
"status.mute_conversation": "Sohbeti sessize al",
|
||||||
"status.open": "Bu gönderiyi genişlet",
|
"status.open": "Bu gönderiyi genişlet",
|
||||||
"status.pin": "Profile sabitle",
|
"status.pin": "Profile sabitle",
|
||||||
"status.quote": "Teklif",
|
|
||||||
"status.quote.cancel": "Teklifi iptal et",
|
|
||||||
"status.quote_error.filtered": "Bazı filtrelerinizden dolayı gizlenmiştir",
|
"status.quote_error.filtered": "Bazı filtrelerinizden dolayı gizlenmiştir",
|
||||||
"status.quote_error.not_available": "Gönderi kullanılamıyor",
|
"status.quote_error.not_available": "Gönderi kullanılamıyor",
|
||||||
"status.quote_error.pending_approval": "Gönderi beklemede",
|
"status.quote_error.pending_approval": "Gönderi beklemede",
|
||||||
"status.quote_error.pending_approval_popout.body": "Fediverse genelinde paylaşılan alıntıların görüntülenmesi zaman alabilir, çünkü farklı sunucuların farklı protokolleri vardır.",
|
"status.quote_error.pending_approval_popout.body": "Fediverse genelinde paylaşılan alıntıların görüntülenmesi zaman alabilir, çünkü farklı sunucuların farklı protokolleri vardır.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Bekleyen bir teklif mi var? Sakin olun.",
|
"status.quote_error.pending_approval_popout.title": "Bekleyen bir teklif mi var? Sakin olun.",
|
||||||
"status.quote_followers_only": "Sadece takipçiler bu gönderiyi alıntılayabilir",
|
|
||||||
"status.quote_manual_review": "Yazar manuel olarak gözden geçirecek",
|
|
||||||
"status.quote_policy_change": "Kimin alıntı yapabileceğini değiştirin",
|
|
||||||
"status.quote_post_author": "@{name} adlı kullanıcının bir gönderisini alıntıladı",
|
"status.quote_post_author": "@{name} adlı kullanıcının bir gönderisini alıntıladı",
|
||||||
"status.quote_private": "Özel gönderiler alıntılanamaz",
|
|
||||||
"status.quotes": "{count, plural, one {# alıntı} other {# alıntı}}",
|
|
||||||
"status.quotes.empty": "Henüz hiç kimse bu gönderiyi alıntılamadı. Herhangi bir kullanıcı alıntıladığında burada görüntülenecek.",
|
|
||||||
"status.read_more": "Devamını okuyun",
|
"status.read_more": "Devamını okuyun",
|
||||||
"status.reblog": "Yeniden paylaş",
|
"status.reblog": "Yeniden paylaş",
|
||||||
"status.reblog_private": "Özgün görünürlük ile yeniden paylaş",
|
"status.reblog_private": "Özgün görünürlük ile yeniden paylaş",
|
||||||
|
@ -919,7 +899,6 @@
|
||||||
"status.reply": "Yanıtla",
|
"status.reply": "Yanıtla",
|
||||||
"status.replyAll": "Konuyu yanıtla",
|
"status.replyAll": "Konuyu yanıtla",
|
||||||
"status.report": "@{name} adlı kişiyi bildir",
|
"status.report": "@{name} adlı kişiyi bildir",
|
||||||
"status.request_quote": "Alıntılamayı iste",
|
|
||||||
"status.revoke_quote": "@{name}'nin gönderisinden benim gönderimi kaldır",
|
"status.revoke_quote": "@{name}'nin gönderisinden benim gönderimi kaldır",
|
||||||
"status.sensitive_warning": "Hassas içerik",
|
"status.sensitive_warning": "Hassas içerik",
|
||||||
"status.share": "Paylaş",
|
"status.share": "Paylaş",
|
||||||
|
@ -958,7 +937,6 @@
|
||||||
"upload_button.label": "Resim, video veya ses dosyası ekleyin",
|
"upload_button.label": "Resim, video veya ses dosyası ekleyin",
|
||||||
"upload_error.limit": "Dosya yükleme sınırı aşıldı.",
|
"upload_error.limit": "Dosya yükleme sınırı aşıldı.",
|
||||||
"upload_error.poll": "Anketlerde dosya yüklemesine izin verilmez.",
|
"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.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_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ı.",
|
"upload_form.drag_and_drop.on_drag_end": "Medya eklentisi {item} bırakıldı.",
|
||||||
|
@ -981,18 +959,5 @@
|
||||||
"video.skip_forward": "İleriye atla",
|
"video.skip_forward": "İleriye atla",
|
||||||
"video.unmute": "Sesi aç",
|
"video.unmute": "Sesi aç",
|
||||||
"video.volume_down": "Sesi kıs",
|
"video.volume_down": "Sesi kıs",
|
||||||
"video.volume_up": "Sesi yükselt",
|
"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": "Mastodon'da özel değiniler başkaları tarafından alıntılanamaz.",
|
|
||||||
"visibility_modal.helper.privacy_editing": "Yayınlanan gönderilerin görünürlüğü değiştirilemez.",
|
|
||||||
"visibility_modal.helper.private_quoting": "Mastodon'da sadece takipçilere yönelik gönderiler başkaları tarafından 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": "Sadece ben",
|
|
||||||
"visibility_modal.quote_public": "Herkesten",
|
|
||||||
"visibility_modal.save": "Kaydet"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -462,7 +462,6 @@
|
||||||
"keyboard_shortcuts.open_media": "Відкрити медіа",
|
"keyboard_shortcuts.open_media": "Відкрити медіа",
|
||||||
"keyboard_shortcuts.pinned": "Відкрити список закріплених дописів",
|
"keyboard_shortcuts.pinned": "Відкрити список закріплених дописів",
|
||||||
"keyboard_shortcuts.profile": "Відкрити профіль автора",
|
"keyboard_shortcuts.profile": "Відкрити профіль автора",
|
||||||
"keyboard_shortcuts.quote": "Цитувати пост",
|
|
||||||
"keyboard_shortcuts.reply": "Відповісти",
|
"keyboard_shortcuts.reply": "Відповісти",
|
||||||
"keyboard_shortcuts.requests": "Відкрити список охочих підписатися",
|
"keyboard_shortcuts.requests": "Відкрити список охочих підписатися",
|
||||||
"keyboard_shortcuts.search": "Сфокусуватися на пошуку",
|
"keyboard_shortcuts.search": "Сфокусуватися на пошуку",
|
||||||
|
@ -925,6 +924,6 @@
|
||||||
"visibility_modal.privacy_label": "Конфіденційність",
|
"visibility_modal.privacy_label": "Конфіденційність",
|
||||||
"visibility_modal.quote_followers": "Тільки для підписників",
|
"visibility_modal.quote_followers": "Тільки для підписників",
|
||||||
"visibility_modal.quote_label": "Змінити хто може цитувати",
|
"visibility_modal.quote_label": "Змінити хто може цитувати",
|
||||||
"visibility_modal.quote_public": "Будь-хто",
|
"visibility_modal.quote_nobody": "Ніхто",
|
||||||
"visibility_modal.save": "Зберегти"
|
"visibility_modal.quote_public": "Будь-хто"
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "mở trang chủ",
|
"keyboard_shortcuts.home": "mở trang chủ",
|
||||||
"keyboard_shortcuts.hotkey": "Phím tắt",
|
"keyboard_shortcuts.hotkey": "Phím tắt",
|
||||||
"keyboard_shortcuts.legend": "hiện bảng hướng dẫn này",
|
"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.local": "mở máy chủ của bạn",
|
||||||
"keyboard_shortcuts.mention": "nhắc đến ai đó",
|
"keyboard_shortcuts.mention": "nhắc đến ai đó",
|
||||||
"keyboard_shortcuts.muted": "mở danh sách người đã ẩn",
|
"keyboard_shortcuts.muted": "mở danh sách người đã ẩn",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "mở ảnh hoặc video",
|
"keyboard_shortcuts.open_media": "mở ảnh hoặc video",
|
||||||
"keyboard_shortcuts.pinned": "mở những tút đã ghim",
|
"keyboard_shortcuts.pinned": "mở những tút đã ghim",
|
||||||
"keyboard_shortcuts.profile": "mở trang của người đăng tút",
|
"keyboard_shortcuts.profile": "mở trang của người đăng tút",
|
||||||
"keyboard_shortcuts.quote": "Trích dẫn tút",
|
|
||||||
"keyboard_shortcuts.reply": "trả lời",
|
"keyboard_shortcuts.reply": "trả lời",
|
||||||
"keyboard_shortcuts.requests": "mở danh sách yêu cầu theo dõi",
|
"keyboard_shortcuts.requests": "mở danh sách yêu cầu theo dõi",
|
||||||
"keyboard_shortcuts.search": "mở tìm kiếm",
|
"keyboard_shortcuts.search": "mở tìm kiếm",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "Tài khoản của bạn đã bị vô hiệu hóa.",
|
"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.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.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} đă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.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}",
|
"notification.relationships_severance_event": "Mất kết nối với {name}",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "Người theo dõi",
|
"privacy.private.short": "Người theo dõi",
|
||||||
"privacy.public.long": "Bất cứ ai",
|
"privacy.public.long": "Bất cứ ai",
|
||||||
"privacy.public.short": "Công khai",
|
"privacy.public.short": "Công khai",
|
||||||
"privacy.quote.anyone": "{visibility}, mọi người có thể trích dẫn",
|
|
||||||
"privacy.quote.disabled": "{visibility}, tắt trích dẫn",
|
|
||||||
"privacy.quote.limited": "{visibility}, hạn chế trích dẫn",
|
|
||||||
"privacy.unlisted.additional": "Công khai, nhưng tút sẽ không hiện trong bảng tin, hashtag, khám phá hoặc tìm kiếm Mastodon, kể cả trong cài đặt tài khoản bạn chọn cho phép.",
|
"privacy.unlisted.additional": "Công khai, nhưng tút sẽ không hiện trong bảng tin, hashtag, khám phá hoặc tìm kiếm Mastodon, kể cả trong cài đặt tài khoản bạn chọn cho phép.",
|
||||||
"privacy.unlisted.long": "Ít hướng thuật toán hơn",
|
"privacy.unlisted.long": "Ít hướng thuật toán hơn",
|
||||||
"privacy.unlisted.short": "Hạn chế",
|
"privacy.unlisted.short": "Hạn chế",
|
||||||
"privacy_policy.last_updated": "Cập nhật lần cuối {date}",
|
"privacy_policy.last_updated": "Cập nhật lần cuối {date}",
|
||||||
"privacy_policy.title": "Chính sách bảo mật",
|
"privacy_policy.title": "Chính sách bảo mật",
|
||||||
"quote_error.poll": "Không thể trích dẫn vốt.",
|
|
||||||
"quote_error.quote": "Chỉ được trích dẫn một lần.",
|
|
||||||
"quote_error.unauthorized": "Bạn không được cấp quyền trích dẫn tút này.",
|
|
||||||
"quote_error.upload": "Không thể trích dẫn với media đính kèm.",
|
|
||||||
"recommended": "Đề xuất",
|
"recommended": "Đề xuất",
|
||||||
"refresh": "Làm mới",
|
"refresh": "Làm mới",
|
||||||
"regeneration_indicator.please_stand_by": "Hãy chờ đã.",
|
"regeneration_indicator.please_stand_by": "Hãy chờ đã.",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "Mở giao diện quản trị @{name}",
|
"status.admin_account": "Mở giao diện quản trị @{name}",
|
||||||
"status.admin_domain": "Mở giao diện quản trị @{domain}",
|
"status.admin_domain": "Mở giao diện quản trị @{domain}",
|
||||||
"status.admin_status": "Mở tút này trong giao diện quản trị",
|
"status.admin_status": "Mở tút này trong giao diện quản trị",
|
||||||
"status.all_disabled": "Đăng lại và trích dẫn bị tắt",
|
|
||||||
"status.block": "Chặn @{name}",
|
"status.block": "Chặn @{name}",
|
||||||
"status.bookmark": "Lưu",
|
"status.bookmark": "Lưu",
|
||||||
"status.cancel_reblog_private": "Bỏ đăng lại",
|
"status.cancel_reblog_private": "Bỏ đăng lại",
|
||||||
"status.cannot_quote": "Tác giả không cho phép trích dẫn tút này",
|
|
||||||
"status.cannot_reblog": "Không thể đăng lại tút này",
|
"status.cannot_reblog": "Không thể đăng lại tút này",
|
||||||
"status.context.load_new_replies": "Có những trả lời mới",
|
"status.context.load_new_replies": "Có những trả lời mới",
|
||||||
"status.context.loading": "Kiểm tra nhiều trả lời hơn",
|
"status.context.loading": "Kiểm tra nhiều trả lời hơn",
|
||||||
"status.continued_thread": "Tiếp tục chủ đề",
|
"status.continued_thread": "Tiếp tục chủ đề",
|
||||||
"status.copy": "Sao chép URL",
|
"status.copy": "Sao chép URL",
|
||||||
"status.delete": "Xóa",
|
"status.delete": "Xóa",
|
||||||
"status.delete.success": "Tút đã bị xoá",
|
|
||||||
"status.detailed_status": "Xem chi tiết thêm",
|
"status.detailed_status": "Xem chi tiết thêm",
|
||||||
"status.direct": "Nhắn riêng @{name}",
|
"status.direct": "Nhắn riêng @{name}",
|
||||||
"status.direct_indicator": "Nhắn riêng",
|
"status.direct_indicator": "Nhắn riêng",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "Tắt thông báo",
|
"status.mute_conversation": "Tắt thông báo",
|
||||||
"status.open": "Mở tút",
|
"status.open": "Mở tút",
|
||||||
"status.pin": "Ghim lên hồ sơ",
|
"status.pin": "Ghim lên hồ sơ",
|
||||||
"status.quote": "Trích dẫn",
|
|
||||||
"status.quote.cancel": "Bỏ trích dẫn",
|
"status.quote.cancel": "Bỏ trích dẫn",
|
||||||
"status.quote_error.filtered": "Bị ẩn vì một bộ lọc của bạn",
|
"status.quote_error.filtered": "Bị ẩn vì một bộ lọc của bạn",
|
||||||
"status.quote_error.not_available": "Tút không khả dụng",
|
"status.quote_error.not_available": "Tút không khả dụng",
|
||||||
"status.quote_error.pending_approval": "Tút đang chờ duyệt",
|
"status.quote_error.pending_approval": "Tút đang chờ duyệt",
|
||||||
"status.quote_error.pending_approval_popout.body": "Các trích dẫn được chia sẻ trên Fediverse có thể mất thời gian để hiển thị vì các máy chủ khác nhau có giao thức khác nhau.",
|
"status.quote_error.pending_approval_popout.body": "Các trích dẫn được chia sẻ trên Fediverse có thể mất thời gian để hiển thị vì các máy chủ khác nhau có giao thức khác nhau.",
|
||||||
"status.quote_error.pending_approval_popout.title": "Đang chờ trích dẫn? Hãy bình tĩnh",
|
"status.quote_error.pending_approval_popout.title": "Đang chờ trích dẫn? Hãy bình tĩnh",
|
||||||
"status.quote_followers_only": "Chỉ người theo dõi tôi có thể trích dẫn tút này",
|
|
||||||
"status.quote_manual_review": "Người đăng sẽ duyệt thủ công",
|
|
||||||
"status.quote_policy_change": "Thay đổi người có thể trích dẫn",
|
"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_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.quotes.empty": "Tút này chưa có ai trích dẫn. Nếu có, nó sẽ hiển thị ở đây.",
|
|
||||||
"status.read_more": "Đọc tiếp",
|
"status.read_more": "Đọc tiếp",
|
||||||
"status.reblog": "Đăng lại",
|
"status.reblog": "Đăng lại",
|
||||||
"status.reblog_or_quote": "Đăng lại hoặc trích dẫn",
|
|
||||||
"status.reblog_private": "Đăng lại (Riêng tư)",
|
"status.reblog_private": "Đăng lại (Riêng tư)",
|
||||||
"status.reblogged_by": "{name} đăng lại",
|
"status.reblogged_by": "{name} đăng lại",
|
||||||
"status.reblogs": "{count, plural, other {đăng lại}}",
|
"status.reblogs": "{count, plural, other {đăng lại}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "Trả lời",
|
"status.reply": "Trả lời",
|
||||||
"status.replyAll": "Trả lời",
|
"status.replyAll": "Trả lời",
|
||||||
"status.report": "Báo cáo @{name}",
|
"status.report": "Báo cáo @{name}",
|
||||||
"status.request_quote": "Yêu cầu trích dẫn",
|
|
||||||
"status.revoke_quote": "Gỡ tút của tôi khỏi trích dẫn của @{name}",
|
"status.revoke_quote": "Gỡ tút của tôi khỏi trích dẫn của @{name}",
|
||||||
"status.sensitive_warning": "Nhạy cảm",
|
"status.sensitive_warning": "Nhạy cảm",
|
||||||
"status.share": "Chia sẻ",
|
"status.share": "Chia sẻ",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "Thêm media (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
"upload_button.label": "Thêm media (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||||
"upload_error.limit": "Tập tin tải lên vượt quá giới hạn cho phép.",
|
"upload_error.limit": "Tập tin tải lên vượt quá giới hạn cho phép.",
|
||||||
"upload_error.poll": "Không cho phép đính kèm tập tin.",
|
"upload_error.poll": "Không cho phép đính kèm tập tin.",
|
||||||
"upload_error.quote": "Không cho phép đính kèm tập tin với trích dẫn.",
|
|
||||||
"upload_form.drag_and_drop.instructions": "Để chọn tập tin đính kèm, hãy nhấn phím cách hoặc phím Enter. Trong khi kéo, sử dụng các phím mũi tên để di chuyển tập tin đính kèm theo bất kỳ hướng nào. Nhấn phím cách hoặc phím Enter một lần nữa để thả tập tin đính kèm vào vị trí mới hoặc nhấn phím thoát để hủy.",
|
"upload_form.drag_and_drop.instructions": "Để chọn tập tin đính kèm, hãy nhấn phím cách hoặc phím Enter. Trong khi kéo, sử dụng các phím mũi tên để di chuyển tập tin đính kèm theo bất kỳ hướng nào. Nhấn phím cách hoặc phím Enter một lần nữa để thả tập tin đính kèm vào vị trí mới hoặc nhấn phím thoát để hủy.",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "Kéo thả đã bị hủy bỏ. Tập tin đính kèm {item} bị bỏ qua.",
|
"upload_form.drag_and_drop.on_drag_cancel": "Kéo thả đã bị hủy bỏ. Tập tin đính kèm {item} bị bỏ qua.",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "Tập tin đính kèm {item} bị bỏ qua.",
|
"upload_form.drag_and_drop.on_drag_end": "Tập tin đính kèm {item} bị bỏ qua.",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "Tăng âm lượng",
|
"video.volume_up": "Tăng âm lượng",
|
||||||
"visibility_modal.button_title": "Thay đổi quyền riêng tư",
|
"visibility_modal.button_title": "Thay đổi quyền riêng tư",
|
||||||
"visibility_modal.header": "Hiển thị và tương tác",
|
"visibility_modal.header": "Hiển thị và tương tác",
|
||||||
"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.direct_quoting": "Không thể trích dẫn nhắn riêng.",
|
||||||
"visibility_modal.helper.privacy_editing": "Không thể thay đổi kiểu hiển thị của tút đã đăng.",
|
"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": "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.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.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.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.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.privacy_label": "Riêng tư",
|
||||||
"visibility_modal.quote_followers": "Chỉ người theo dõi",
|
"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_label": "Thay đổi người có thể trích dẫn",
|
||||||
"visibility_modal.quote_nobody": "Chỉ tôi",
|
"visibility_modal.quote_nobody": "Không ai",
|
||||||
"visibility_modal.quote_public": "Bất cứ ai",
|
"visibility_modal.quote_public": "Bất cứ ai"
|
||||||
"visibility_modal.save": "Lưu"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
"account.edit_profile": "修改个人资料",
|
"account.edit_profile": "修改个人资料",
|
||||||
"account.enable_notifications": "当 @{name} 发布嘟文时通知我",
|
"account.enable_notifications": "当 @{name} 发布嘟文时通知我",
|
||||||
"account.endorse": "在个人资料中推荐此用户",
|
"account.endorse": "在个人资料中推荐此用户",
|
||||||
"account.familiar_followers_many": "被 {name1}、{name2}、及 {othersCount, plural, other {其他你认识的 # 人}} 关注",
|
|
||||||
"account.familiar_followers_one": "{name1} 关注了此账号",
|
"account.familiar_followers_one": "{name1} 关注了此账号",
|
||||||
"account.familiar_followers_two": "{name1} 和 {name2} 关注了此账号",
|
"account.familiar_followers_two": "{name1} 和 {name2} 关注了此账号",
|
||||||
"account.featured": "精选",
|
"account.featured": "精选",
|
||||||
|
@ -221,11 +220,7 @@
|
||||||
"confirmations.delete_list.title": "确定要删除列表?",
|
"confirmations.delete_list.title": "确定要删除列表?",
|
||||||
"confirmations.discard_draft.confirm": "放弃并继续",
|
"confirmations.discard_draft.confirm": "放弃并继续",
|
||||||
"confirmations.discard_draft.edit.cancel": "恢复编辑",
|
"confirmations.discard_draft.edit.cancel": "恢复编辑",
|
||||||
"confirmations.discard_draft.edit.message": "继续将丢弃您对您正在编辑的嘟文所作的任何更改。",
|
|
||||||
"confirmations.discard_draft.edit.title": "是否丢弃您对嘟文的更改?",
|
|
||||||
"confirmations.discard_draft.post.cancel": "恢复草稿",
|
"confirmations.discard_draft.post.cancel": "恢复草稿",
|
||||||
"confirmations.discard_draft.post.message": "继续将丢弃您正在编辑的嘟文。",
|
|
||||||
"confirmations.discard_draft.post.title": "丢弃您的嘟文草稿?",
|
|
||||||
"confirmations.discard_edit_media.confirm": "丢弃",
|
"confirmations.discard_edit_media.confirm": "丢弃",
|
||||||
"confirmations.discard_edit_media.message": "你还有未保存的媒体描述或预览修改,仍要丢弃吗?",
|
"confirmations.discard_edit_media.message": "你还有未保存的媒体描述或预览修改,仍要丢弃吗?",
|
||||||
"confirmations.follow_to_list.confirm": "关注并添加到列表",
|
"confirmations.follow_to_list.confirm": "关注并添加到列表",
|
||||||
|
@ -246,7 +241,6 @@
|
||||||
"confirmations.remove_from_followers.message": "{name} 将停止关注您。您确定要继续吗?",
|
"confirmations.remove_from_followers.message": "{name} 将停止关注您。您确定要继续吗?",
|
||||||
"confirmations.remove_from_followers.title": "移除关注者?",
|
"confirmations.remove_from_followers.title": "移除关注者?",
|
||||||
"confirmations.revoke_quote.confirm": "移除嘟文",
|
"confirmations.revoke_quote.confirm": "移除嘟文",
|
||||||
"confirmations.revoke_quote.message": "此操作无法撤销。",
|
|
||||||
"confirmations.revoke_quote.title": "移除嘟文?",
|
"confirmations.revoke_quote.title": "移除嘟文?",
|
||||||
"confirmations.unfollow.confirm": "取消关注",
|
"confirmations.unfollow.confirm": "取消关注",
|
||||||
"confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
|
"confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
|
||||||
|
@ -292,7 +286,6 @@
|
||||||
"domain_pill.your_handle": "你的用户名:",
|
"domain_pill.your_handle": "你的用户名:",
|
||||||
"domain_pill.your_server": "你的数字家园,你的所有嘟文都在此存储。不喜欢这里吗?你可以随时迁移到其它服务器,并带上你的关注者。",
|
"domain_pill.your_server": "你的数字家园,你的所有嘟文都在此存储。不喜欢这里吗?你可以随时迁移到其它服务器,并带上你的关注者。",
|
||||||
"domain_pill.your_username": "你在此服务器上的唯一标识。不同服务器上可能存在相同用户名的用户。",
|
"domain_pill.your_username": "你在此服务器上的唯一标识。不同服务器上可能存在相同用户名的用户。",
|
||||||
"dropdown.empty": "选项",
|
|
||||||
"embed.instructions": "复制下列代码以在你的网站中嵌入此嘟文。",
|
"embed.instructions": "复制下列代码以在你的网站中嵌入此嘟文。",
|
||||||
"embed.preview": "这是它的预览效果:",
|
"embed.preview": "这是它的预览效果:",
|
||||||
"emoji_button.activity": "活动",
|
"emoji_button.activity": "活动",
|
||||||
|
@ -345,7 +338,6 @@
|
||||||
"explore.trending_links": "新闻",
|
"explore.trending_links": "新闻",
|
||||||
"explore.trending_statuses": "嘟文",
|
"explore.trending_statuses": "嘟文",
|
||||||
"explore.trending_tags": "话题",
|
"explore.trending_tags": "话题",
|
||||||
"featured_carousel.header": "{count, plural, other {# 条置顶嘟文}}",
|
|
||||||
"featured_carousel.next": "下一步",
|
"featured_carousel.next": "下一步",
|
||||||
"featured_carousel.post": "发嘟",
|
"featured_carousel.post": "发嘟",
|
||||||
"featured_carousel.previous": "上一步",
|
"featured_carousel.previous": "上一步",
|
||||||
|
@ -403,7 +395,6 @@
|
||||||
"getting_started.heading": "开始使用",
|
"getting_started.heading": "开始使用",
|
||||||
"hashtag.admin_moderation": "打开 #{name} 的管理界面",
|
"hashtag.admin_moderation": "打开 #{name} 的管理界面",
|
||||||
"hashtag.browse": "浏览#{hashtag}中的贴子",
|
"hashtag.browse": "浏览#{hashtag}中的贴子",
|
||||||
"hashtag.browse_from_account": "浏览#{hashtag}中来自@{name}的贴子",
|
|
||||||
"hashtag.column_header.tag_mode.all": "以及 {additional}",
|
"hashtag.column_header.tag_mode.all": "以及 {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "或是 {additional}",
|
"hashtag.column_header.tag_mode.any": "或是 {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "而不用 {additional}",
|
"hashtag.column_header.tag_mode.none": "而不用 {additional}",
|
||||||
|
@ -483,7 +474,6 @@
|
||||||
"keyboard_shortcuts.home": "打开主页时间线",
|
"keyboard_shortcuts.home": "打开主页时间线",
|
||||||
"keyboard_shortcuts.hotkey": "快捷键",
|
"keyboard_shortcuts.hotkey": "快捷键",
|
||||||
"keyboard_shortcuts.legend": "显示此列表",
|
"keyboard_shortcuts.legend": "显示此列表",
|
||||||
"keyboard_shortcuts.load_more": "将焦点移至“加载更多”按钮",
|
|
||||||
"keyboard_shortcuts.local": "打开本站时间线",
|
"keyboard_shortcuts.local": "打开本站时间线",
|
||||||
"keyboard_shortcuts.mention": "提及嘟文作者",
|
"keyboard_shortcuts.mention": "提及嘟文作者",
|
||||||
"keyboard_shortcuts.muted": "打开隐藏用户列表",
|
"keyboard_shortcuts.muted": "打开隐藏用户列表",
|
||||||
|
@ -492,7 +482,6 @@
|
||||||
"keyboard_shortcuts.open_media": "打开媒体",
|
"keyboard_shortcuts.open_media": "打开媒体",
|
||||||
"keyboard_shortcuts.pinned": "打开置顶嘟文列表",
|
"keyboard_shortcuts.pinned": "打开置顶嘟文列表",
|
||||||
"keyboard_shortcuts.profile": "打开作者的个人资料",
|
"keyboard_shortcuts.profile": "打开作者的个人资料",
|
||||||
"keyboard_shortcuts.quote": "引用嘟文",
|
|
||||||
"keyboard_shortcuts.reply": "回复嘟文",
|
"keyboard_shortcuts.reply": "回复嘟文",
|
||||||
"keyboard_shortcuts.requests": "打开关注请求列表",
|
"keyboard_shortcuts.requests": "打开关注请求列表",
|
||||||
"keyboard_shortcuts.search": "选中搜索框",
|
"keyboard_shortcuts.search": "选中搜索框",
|
||||||
|
@ -505,7 +494,6 @@
|
||||||
"keyboard_shortcuts.unfocus": "取消输入/搜索",
|
"keyboard_shortcuts.unfocus": "取消输入/搜索",
|
||||||
"keyboard_shortcuts.up": "在列表中让光标上移",
|
"keyboard_shortcuts.up": "在列表中让光标上移",
|
||||||
"learn_more_link.got_it": "明白了",
|
"learn_more_link.got_it": "明白了",
|
||||||
"learn_more_link.learn_more": "了解更多",
|
|
||||||
"lightbox.close": "关闭",
|
"lightbox.close": "关闭",
|
||||||
"lightbox.next": "下一个",
|
"lightbox.next": "下一个",
|
||||||
"lightbox.previous": "上一个",
|
"lightbox.previous": "上一个",
|
||||||
|
@ -570,8 +558,6 @@
|
||||||
"navigation_bar.follows_and_followers": "关注与关注者",
|
"navigation_bar.follows_and_followers": "关注与关注者",
|
||||||
"navigation_bar.import_export": "导入与导出",
|
"navigation_bar.import_export": "导入与导出",
|
||||||
"navigation_bar.lists": "列表",
|
"navigation_bar.lists": "列表",
|
||||||
"navigation_bar.live_feed_local": "实时动态(本站)",
|
|
||||||
"navigation_bar.live_feed_public": "实时动态(公开)",
|
|
||||||
"navigation_bar.logout": "退出登录",
|
"navigation_bar.logout": "退出登录",
|
||||||
"navigation_bar.moderation": "审核",
|
"navigation_bar.moderation": "审核",
|
||||||
"navigation_bar.more": "更多",
|
"navigation_bar.more": "更多",
|
||||||
|
@ -581,9 +567,7 @@
|
||||||
"navigation_bar.privacy_and_reach": "隐私与可达性",
|
"navigation_bar.privacy_and_reach": "隐私与可达性",
|
||||||
"navigation_bar.search": "搜索",
|
"navigation_bar.search": "搜索",
|
||||||
"navigation_bar.search_trends": "搜索/热门趋势",
|
"navigation_bar.search_trends": "搜索/热门趋势",
|
||||||
"navigation_panel.collapse_followed_tags": "收起已关注话题菜单",
|
|
||||||
"navigation_panel.collapse_lists": "收起菜单列表",
|
"navigation_panel.collapse_lists": "收起菜单列表",
|
||||||
"navigation_panel.expand_followed_tags": "展开已关注话题菜单",
|
|
||||||
"navigation_panel.expand_lists": "展开菜单列表",
|
"navigation_panel.expand_lists": "展开菜单列表",
|
||||||
"not_signed_in_indicator.not_signed_in": "你需要登录才能访问此资源。",
|
"not_signed_in_indicator.not_signed_in": "你需要登录才能访问此资源。",
|
||||||
"notification.admin.report": "{name} 举报了 {target}",
|
"notification.admin.report": "{name} 举报了 {target}",
|
||||||
|
@ -606,7 +590,6 @@
|
||||||
"notification.label.mention": "提及",
|
"notification.label.mention": "提及",
|
||||||
"notification.label.private_mention": "私下提及",
|
"notification.label.private_mention": "私下提及",
|
||||||
"notification.label.private_reply": "私人回复",
|
"notification.label.private_reply": "私人回复",
|
||||||
"notification.label.quote": "{name} 引用了你的嘟文",
|
|
||||||
"notification.label.reply": "回复",
|
"notification.label.reply": "回复",
|
||||||
"notification.mention": "提及",
|
"notification.mention": "提及",
|
||||||
"notification.mentioned_you": "{name} 提到了你",
|
"notification.mentioned_you": "{name} 提到了你",
|
||||||
|
@ -621,7 +604,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "你的账号已被封禁。",
|
"notification.moderation_warning.action_suspend": "你的账号已被封禁。",
|
||||||
"notification.own_poll": "你的投票已经结束",
|
"notification.own_poll": "你的投票已经结束",
|
||||||
"notification.poll": "你参与的一项投票已结束",
|
"notification.poll": "你参与的一项投票已结束",
|
||||||
"notification.quoted_update": "{name} 编辑了一条你之前引用过的嘟文",
|
|
||||||
"notification.reblog": "{name} 转发了你的嘟文",
|
"notification.reblog": "{name} 转发了你的嘟文",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} 和 <a>{count, plural, other {另外 # 人}}</a> 转嘟了你的嘟文",
|
"notification.reblog.name_and_others_with_link": "{name} 和 <a>{count, plural, other {另外 # 人}}</a> 转嘟了你的嘟文",
|
||||||
"notification.relationships_severance_event": "与 {name} 的联系已断开",
|
"notification.relationships_severance_event": "与 {name} 的联系已断开",
|
||||||
|
@ -665,7 +647,6 @@
|
||||||
"notifications.column_settings.mention": "提及:",
|
"notifications.column_settings.mention": "提及:",
|
||||||
"notifications.column_settings.poll": "投票结果:",
|
"notifications.column_settings.poll": "投票结果:",
|
||||||
"notifications.column_settings.push": "推送通知",
|
"notifications.column_settings.push": "推送通知",
|
||||||
"notifications.column_settings.quote": "引用嘟文:",
|
|
||||||
"notifications.column_settings.reblog": "转嘟:",
|
"notifications.column_settings.reblog": "转嘟:",
|
||||||
"notifications.column_settings.show": "在通知栏显示",
|
"notifications.column_settings.show": "在通知栏显示",
|
||||||
"notifications.column_settings.sound": "播放音效",
|
"notifications.column_settings.sound": "播放音效",
|
||||||
|
@ -741,18 +722,11 @@
|
||||||
"privacy.private.short": "关注者",
|
"privacy.private.short": "关注者",
|
||||||
"privacy.public.long": "所有 Mastodon 内外的人",
|
"privacy.public.long": "所有 Mastodon 内外的人",
|
||||||
"privacy.public.short": "公开",
|
"privacy.public.short": "公开",
|
||||||
"privacy.quote.anyone": "{visibility},任何人都能引用",
|
|
||||||
"privacy.quote.disabled": "{visibility},禁用嘟文引用",
|
|
||||||
"privacy.quote.limited": "{visibility},嘟文引用受限",
|
|
||||||
"privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。",
|
"privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。",
|
||||||
"privacy.unlisted.long": "减少算法影响",
|
"privacy.unlisted.long": "减少算法影响",
|
||||||
"privacy.unlisted.short": "悄悄公开",
|
"privacy.unlisted.short": "悄悄公开",
|
||||||
"privacy_policy.last_updated": "最近更新于 {date}",
|
"privacy_policy.last_updated": "最近更新于 {date}",
|
||||||
"privacy_policy.title": "隐私政策",
|
"privacy_policy.title": "隐私政策",
|
||||||
"quote_error.poll": "不允许引用投票嘟文。",
|
|
||||||
"quote_error.quote": "一次只能引用一条嘟文。",
|
|
||||||
"quote_error.unauthorized": "你没有权限引用此嘟文。",
|
|
||||||
"quote_error.upload": "不允许引用有媒体附件的嘟文。",
|
|
||||||
"recommended": "推荐",
|
"recommended": "推荐",
|
||||||
"refresh": "刷新",
|
"refresh": "刷新",
|
||||||
"regeneration_indicator.please_stand_by": "请稍候。",
|
"regeneration_indicator.please_stand_by": "请稍候。",
|
||||||
|
@ -859,18 +833,15 @@
|
||||||
"status.admin_account": "打开 @{name} 的管理界面",
|
"status.admin_account": "打开 @{name} 的管理界面",
|
||||||
"status.admin_domain": "打开 {domain} 的管理界面",
|
"status.admin_domain": "打开 {domain} 的管理界面",
|
||||||
"status.admin_status": "在管理界面查看此嘟文",
|
"status.admin_status": "在管理界面查看此嘟文",
|
||||||
"status.all_disabled": "已禁用转嘟与引用",
|
|
||||||
"status.block": "屏蔽 @{name}",
|
"status.block": "屏蔽 @{name}",
|
||||||
"status.bookmark": "添加到书签",
|
"status.bookmark": "添加到书签",
|
||||||
"status.cancel_reblog_private": "取消转嘟",
|
"status.cancel_reblog_private": "取消转嘟",
|
||||||
"status.cannot_quote": "作者已禁用此嘟文的引用功能",
|
|
||||||
"status.cannot_reblog": "不能转嘟这条嘟文",
|
"status.cannot_reblog": "不能转嘟这条嘟文",
|
||||||
"status.context.load_new_replies": "有新回复",
|
"status.context.load_new_replies": "有新回复",
|
||||||
"status.context.loading": "正在检查更多回复",
|
"status.context.loading": "正在检查更多回复",
|
||||||
"status.continued_thread": "上接嘟文串",
|
"status.continued_thread": "上接嘟文串",
|
||||||
"status.copy": "复制嘟文链接",
|
"status.copy": "复制嘟文链接",
|
||||||
"status.delete": "删除",
|
"status.delete": "删除",
|
||||||
"status.delete.success": "嘟文已删除",
|
|
||||||
"status.detailed_status": "对话详情",
|
"status.detailed_status": "对话详情",
|
||||||
"status.direct": "私下提及 @{name}",
|
"status.direct": "私下提及 @{name}",
|
||||||
"status.direct_indicator": "私下提及",
|
"status.direct_indicator": "私下提及",
|
||||||
|
@ -893,23 +864,10 @@
|
||||||
"status.mute_conversation": "关闭此对话的通知",
|
"status.mute_conversation": "关闭此对话的通知",
|
||||||
"status.open": "展开嘟文",
|
"status.open": "展开嘟文",
|
||||||
"status.pin": "在个人资料页面置顶",
|
"status.pin": "在个人资料页面置顶",
|
||||||
"status.quote": "引用",
|
|
||||||
"status.quote.cancel": "取消引用",
|
"status.quote.cancel": "取消引用",
|
||||||
"status.quote_error.filtered": "已根据你的筛选器过滤",
|
"status.quote_error.filtered": "已根据你的筛选器过滤",
|
||||||
"status.quote_error.not_available": "嘟文不可用",
|
|
||||||
"status.quote_error.pending_approval": "嘟文待发布",
|
|
||||||
"status.quote_error.pending_approval_popout.body": "由于不同服务器间使用的协议不同,联邦宇宙间引用嘟文的显示可能会有延迟。",
|
|
||||||
"status.quote_error.pending_approval_popout.title": "引用嘟文还没发布?别着急,请耐心等待",
|
|
||||||
"status.quote_followers_only": "只有关注者才能引用这篇嘟文",
|
|
||||||
"status.quote_manual_review": "嘟文作者将人工审核",
|
|
||||||
"status.quote_policy_change": "更改谁可以引用",
|
|
||||||
"status.quote_post_author": "引用了 @{name} 的嘟文",
|
|
||||||
"status.quote_private": "不能引用私人嘟文",
|
|
||||||
"status.quotes": "{count, plural, other {引用嘟文}}",
|
|
||||||
"status.quotes.empty": "还没有人引用过此条嘟文。引用此嘟文的人会显示在这里。",
|
|
||||||
"status.read_more": "查看更多",
|
"status.read_more": "查看更多",
|
||||||
"status.reblog": "转嘟",
|
"status.reblog": "转嘟",
|
||||||
"status.reblog_or_quote": "转嘟或引用",
|
|
||||||
"status.reblog_private": "以相同可见性转嘟",
|
"status.reblog_private": "以相同可见性转嘟",
|
||||||
"status.reblogged_by": "{name} 转嘟了",
|
"status.reblogged_by": "{name} 转嘟了",
|
||||||
"status.reblogs": "{count, plural, other {次转嘟}}",
|
"status.reblogs": "{count, plural, other {次转嘟}}",
|
||||||
|
@ -922,8 +880,6 @@
|
||||||
"status.reply": "回复",
|
"status.reply": "回复",
|
||||||
"status.replyAll": "回复此嘟文串",
|
"status.replyAll": "回复此嘟文串",
|
||||||
"status.report": "举报 @{name}",
|
"status.report": "举报 @{name}",
|
||||||
"status.request_quote": "请求引用",
|
|
||||||
"status.revoke_quote": "将我的嘟文从 @{name} 的嘟文中删除",
|
|
||||||
"status.sensitive_warning": "敏感内容",
|
"status.sensitive_warning": "敏感内容",
|
||||||
"status.share": "分享",
|
"status.share": "分享",
|
||||||
"status.show_less_all": "全部折叠",
|
"status.show_less_all": "全部折叠",
|
||||||
|
@ -961,7 +917,6 @@
|
||||||
"upload_button.label": "上传图片、视频或音频",
|
"upload_button.label": "上传图片、视频或音频",
|
||||||
"upload_error.limit": "文件大小超过限制。",
|
"upload_error.limit": "文件大小超过限制。",
|
||||||
"upload_error.poll": "投票中不允许上传文件。",
|
"upload_error.poll": "投票中不允许上传文件。",
|
||||||
"upload_error.quote": "引用中不允许上传文件。",
|
|
||||||
"upload_form.drag_and_drop.instructions": "要选中某个媒体附件,请按空格键或回车键。在拖拽时,使用方向键将媒体附件移动到任何给定方向。再次按空格键或回车键可将媒体附件放置在新位置,或按 Esc 键取消。",
|
"upload_form.drag_and_drop.instructions": "要选中某个媒体附件,请按空格键或回车键。在拖拽时,使用方向键将媒体附件移动到任何给定方向。再次按空格键或回车键可将媒体附件放置在新位置,或按 Esc 键取消。",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "拖拽已终止。媒体附件 {item} 已被丢弃。",
|
"upload_form.drag_and_drop.on_drag_cancel": "拖拽已终止。媒体附件 {item} 已被丢弃。",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "媒体附件 {item} 已被丢弃。",
|
"upload_form.drag_and_drop.on_drag_end": "媒体附件 {item} 已被丢弃。",
|
||||||
|
@ -984,18 +939,5 @@
|
||||||
"video.skip_forward": "前进",
|
"video.skip_forward": "前进",
|
||||||
"video.unmute": "恢复提醒",
|
"video.unmute": "恢复提醒",
|
||||||
"video.volume_down": "音量减小",
|
"video.volume_down": "音量减小",
|
||||||
"video.volume_up": "提高音量",
|
"video.volume_up": "提高音量"
|
||||||
"visibility_modal.button_title": "设置可见性",
|
|
||||||
"visibility_modal.header": "可见性和互动",
|
|
||||||
"visibility_modal.helper.direct_quoting": "Mastodon上发布的私下提及无法被他人引用。",
|
|
||||||
"visibility_modal.helper.privacy_editing": "已发布的嘟文无法改变可见性。",
|
|
||||||
"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.save": "保存"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -377,7 +377,6 @@
|
||||||
"keyboard_shortcuts.home": "開啟個人時間軸",
|
"keyboard_shortcuts.home": "開啟個人時間軸",
|
||||||
"keyboard_shortcuts.hotkey": "快速鍵",
|
"keyboard_shortcuts.hotkey": "快速鍵",
|
||||||
"keyboard_shortcuts.legend": "顯示這個說明",
|
"keyboard_shortcuts.legend": "顯示這個說明",
|
||||||
"keyboard_shortcuts.load_more": "將焦點移至「讀取更多」按鈕",
|
|
||||||
"keyboard_shortcuts.local": "開啟本站時間軸",
|
"keyboard_shortcuts.local": "開啟本站時間軸",
|
||||||
"keyboard_shortcuts.mention": "提及作者",
|
"keyboard_shortcuts.mention": "提及作者",
|
||||||
"keyboard_shortcuts.muted": "開啟靜音名單",
|
"keyboard_shortcuts.muted": "開啟靜音名單",
|
||||||
|
@ -745,6 +744,5 @@
|
||||||
"video.pause": "暫停",
|
"video.pause": "暫停",
|
||||||
"video.play": "播放",
|
"video.play": "播放",
|
||||||
"video.volume_down": "調低音量",
|
"video.volume_down": "調低音量",
|
||||||
"video.volume_up": "調高音量",
|
"video.volume_up": "調高音量"
|
||||||
"visibility_modal.save": "儲存"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,7 +483,6 @@
|
||||||
"keyboard_shortcuts.home": "開啟首頁時間軸",
|
"keyboard_shortcuts.home": "開啟首頁時間軸",
|
||||||
"keyboard_shortcuts.hotkey": "快速鍵",
|
"keyboard_shortcuts.hotkey": "快速鍵",
|
||||||
"keyboard_shortcuts.legend": "顯示此說明選單",
|
"keyboard_shortcuts.legend": "顯示此說明選單",
|
||||||
"keyboard_shortcuts.load_more": "將焦點移至「讀取更多」按鈕",
|
|
||||||
"keyboard_shortcuts.local": "開啟本站時間軸",
|
"keyboard_shortcuts.local": "開啟本站時間軸",
|
||||||
"keyboard_shortcuts.mention": "提及作者",
|
"keyboard_shortcuts.mention": "提及作者",
|
||||||
"keyboard_shortcuts.muted": "開啟靜音使用者列表",
|
"keyboard_shortcuts.muted": "開啟靜音使用者列表",
|
||||||
|
@ -492,7 +491,6 @@
|
||||||
"keyboard_shortcuts.open_media": "開啟媒體",
|
"keyboard_shortcuts.open_media": "開啟媒體",
|
||||||
"keyboard_shortcuts.pinned": "開啟釘選的嘟文列表",
|
"keyboard_shortcuts.pinned": "開啟釘選的嘟文列表",
|
||||||
"keyboard_shortcuts.profile": "開啟作者的個人檔案頁面",
|
"keyboard_shortcuts.profile": "開啟作者的個人檔案頁面",
|
||||||
"keyboard_shortcuts.quote": "引用嘟文",
|
|
||||||
"keyboard_shortcuts.reply": "回應嘟文",
|
"keyboard_shortcuts.reply": "回應嘟文",
|
||||||
"keyboard_shortcuts.requests": "開啟跟隨請求列表",
|
"keyboard_shortcuts.requests": "開啟跟隨請求列表",
|
||||||
"keyboard_shortcuts.search": "將游標移至搜尋框",
|
"keyboard_shortcuts.search": "將游標移至搜尋框",
|
||||||
|
@ -621,7 +619,6 @@
|
||||||
"notification.moderation_warning.action_suspend": "您的帳號已被停權。",
|
"notification.moderation_warning.action_suspend": "您的帳號已被停權。",
|
||||||
"notification.own_poll": "您的投票已結束",
|
"notification.own_poll": "您的投票已結束",
|
||||||
"notification.poll": "您曾投過的投票已經結束",
|
"notification.poll": "您曾投過的投票已經結束",
|
||||||
"notification.quoted_update": "{name} 已編輯一則您曾引用之嘟文",
|
|
||||||
"notification.reblog": "{name} 已轉嘟您的嘟文",
|
"notification.reblog": "{name} 已轉嘟您的嘟文",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} 與<a>{count, plural, other {其他 # 個人}}</a>已轉嘟您的嘟文",
|
"notification.reblog.name_and_others_with_link": "{name} 與<a>{count, plural, other {其他 # 個人}}</a>已轉嘟您的嘟文",
|
||||||
"notification.relationships_severance_event": "與 {name} 失去連結",
|
"notification.relationships_severance_event": "與 {name} 失去連結",
|
||||||
|
@ -741,18 +738,11 @@
|
||||||
"privacy.private.short": "跟隨者",
|
"privacy.private.short": "跟隨者",
|
||||||
"privacy.public.long": "所有人 (無論在 Mastodon 上與否)",
|
"privacy.public.long": "所有人 (無論在 Mastodon 上與否)",
|
||||||
"privacy.public.short": "公開",
|
"privacy.public.short": "公開",
|
||||||
"privacy.quote.anyone": "{visibility},任何人皆可引用",
|
|
||||||
"privacy.quote.disabled": "{visibility},停用引用嘟文",
|
|
||||||
"privacy.quote.limited": "{visibility},受限的引用嘟文",
|
|
||||||
"privacy.unlisted.additional": "此與公開嘟文完全相同,但嘟文不會出現於即時內容或主題標籤、探索、及 Mastodon 搜尋中,即使您在帳戶設定中選擇加入。",
|
"privacy.unlisted.additional": "此與公開嘟文完全相同,但嘟文不會出現於即時內容或主題標籤、探索、及 Mastodon 搜尋中,即使您在帳戶設定中選擇加入。",
|
||||||
"privacy.unlisted.long": "悄然無聲",
|
"privacy.unlisted.long": "悄然無聲",
|
||||||
"privacy.unlisted.short": "不公開",
|
"privacy.unlisted.short": "不公開",
|
||||||
"privacy_policy.last_updated": "最後更新:{date}",
|
"privacy_policy.last_updated": "最後更新:{date}",
|
||||||
"privacy_policy.title": "隱私權政策",
|
"privacy_policy.title": "隱私權政策",
|
||||||
"quote_error.poll": "無法引用投票嘟文。",
|
|
||||||
"quote_error.quote": "一次僅能引用一則嘟文。",
|
|
||||||
"quote_error.unauthorized": "您不被授權允許引用此嘟文。",
|
|
||||||
"quote_error.upload": "無法引用多媒體內容嘟文。",
|
|
||||||
"recommended": "推薦設定",
|
"recommended": "推薦設定",
|
||||||
"refresh": "重新整理",
|
"refresh": "重新整理",
|
||||||
"regeneration_indicator.please_stand_by": "請稍候。",
|
"regeneration_indicator.please_stand_by": "請稍候。",
|
||||||
|
@ -859,18 +849,15 @@
|
||||||
"status.admin_account": "開啟 @{name} 的管理介面",
|
"status.admin_account": "開啟 @{name} 的管理介面",
|
||||||
"status.admin_domain": "開啟 {domain} 的管理介面",
|
"status.admin_domain": "開啟 {domain} 的管理介面",
|
||||||
"status.admin_status": "於管理介面開啟此嘟文",
|
"status.admin_status": "於管理介面開啟此嘟文",
|
||||||
"status.all_disabled": "已停用轉嘟與引用",
|
|
||||||
"status.block": "封鎖 @{name}",
|
"status.block": "封鎖 @{name}",
|
||||||
"status.bookmark": "書籤",
|
"status.bookmark": "書籤",
|
||||||
"status.cancel_reblog_private": "取消轉嘟",
|
"status.cancel_reblog_private": "取消轉嘟",
|
||||||
"status.cannot_quote": "作者已停用引用此嘟文",
|
|
||||||
"status.cannot_reblog": "這則嘟文無法被轉嘟",
|
"status.cannot_reblog": "這則嘟文無法被轉嘟",
|
||||||
"status.context.load_new_replies": "有新回嘟",
|
"status.context.load_new_replies": "有新回嘟",
|
||||||
"status.context.loading": "正在檢查更多回嘟",
|
"status.context.loading": "正在檢查更多回嘟",
|
||||||
"status.continued_thread": "接續討論串",
|
"status.continued_thread": "接續討論串",
|
||||||
"status.copy": "複製嘟文連結",
|
"status.copy": "複製嘟文連結",
|
||||||
"status.delete": "刪除",
|
"status.delete": "刪除",
|
||||||
"status.delete.success": "已刪除嘟文",
|
|
||||||
"status.detailed_status": "詳細的對話內容",
|
"status.detailed_status": "詳細的對話內容",
|
||||||
"status.direct": "私訊 @{name}",
|
"status.direct": "私訊 @{name}",
|
||||||
"status.direct_indicator": "私訊",
|
"status.direct_indicator": "私訊",
|
||||||
|
@ -893,23 +880,16 @@
|
||||||
"status.mute_conversation": "靜音對話",
|
"status.mute_conversation": "靜音對話",
|
||||||
"status.open": "展開此嘟文",
|
"status.open": "展開此嘟文",
|
||||||
"status.pin": "釘選至個人檔案頁面",
|
"status.pin": "釘選至個人檔案頁面",
|
||||||
"status.quote": "引用",
|
|
||||||
"status.quote.cancel": "取消引用嘟文",
|
"status.quote.cancel": "取消引用嘟文",
|
||||||
"status.quote_error.filtered": "由於您的過濾器,該嘟文被隱藏",
|
"status.quote_error.filtered": "由於您的過濾器,該嘟文被隱藏",
|
||||||
"status.quote_error.not_available": "無法取得該嘟文",
|
"status.quote_error.not_available": "無法取得該嘟文",
|
||||||
"status.quote_error.pending_approval": "嘟文正在發送中",
|
"status.quote_error.pending_approval": "嘟文正在發送中",
|
||||||
"status.quote_error.pending_approval_popout.body": "因為伺服器間可能運行不同協定,顯示聯邦宇宙間之引用嘟文會有些許延遲。",
|
"status.quote_error.pending_approval_popout.body": "因為伺服器間可能運行不同協定,顯示聯邦宇宙間之引用嘟文會有些許延遲。",
|
||||||
"status.quote_error.pending_approval_popout.title": "引用嘟文正在發送中?別著急,請稍候片刻",
|
"status.quote_error.pending_approval_popout.title": "引用嘟文正在發送中?別著急,請稍候片刻",
|
||||||
"status.quote_followers_only": "只有我的跟隨者能引用此嘟文",
|
|
||||||
"status.quote_manual_review": "嘟文作者將人工審閱",
|
|
||||||
"status.quote_policy_change": "變更可以引用的人",
|
"status.quote_policy_change": "變更可以引用的人",
|
||||||
"status.quote_post_author": "已引用 @{name} 之嘟文",
|
"status.quote_post_author": "已引用 @{name} 之嘟文",
|
||||||
"status.quote_private": "無法引用私人嘟文",
|
|
||||||
"status.quotes": "{count, plural, other {# 則引用嘟文}}",
|
|
||||||
"status.quotes.empty": "目前尚無人引用此嘟文。當有人引用時,它將於此顯示。",
|
|
||||||
"status.read_more": "閱讀更多",
|
"status.read_more": "閱讀更多",
|
||||||
"status.reblog": "轉嘟",
|
"status.reblog": "轉嘟",
|
||||||
"status.reblog_or_quote": "轉嘟或引用",
|
|
||||||
"status.reblog_private": "依照原嘟可見性轉嘟",
|
"status.reblog_private": "依照原嘟可見性轉嘟",
|
||||||
"status.reblogged_by": "{name} 已轉嘟",
|
"status.reblogged_by": "{name} 已轉嘟",
|
||||||
"status.reblogs": "{count, plural, other {則轉嘟}}",
|
"status.reblogs": "{count, plural, other {則轉嘟}}",
|
||||||
|
@ -922,7 +902,6 @@
|
||||||
"status.reply": "回覆",
|
"status.reply": "回覆",
|
||||||
"status.replyAll": "回覆討論串",
|
"status.replyAll": "回覆討論串",
|
||||||
"status.report": "檢舉 @{name}",
|
"status.report": "檢舉 @{name}",
|
||||||
"status.request_quote": "要求引用嘟文",
|
|
||||||
"status.revoke_quote": "將我的嘟文自 @{name} 之嘟文中移除",
|
"status.revoke_quote": "將我的嘟文自 @{name} 之嘟文中移除",
|
||||||
"status.sensitive_warning": "敏感內容",
|
"status.sensitive_warning": "敏感內容",
|
||||||
"status.share": "分享",
|
"status.share": "分享",
|
||||||
|
@ -961,7 +940,6 @@
|
||||||
"upload_button.label": "上傳圖片、影片、或者音訊檔案",
|
"upload_button.label": "上傳圖片、影片、或者音訊檔案",
|
||||||
"upload_error.limit": "已達到檔案上傳限制。",
|
"upload_error.limit": "已達到檔案上傳限制。",
|
||||||
"upload_error.poll": "不允許於投票時上傳檔案。",
|
"upload_error.poll": "不允許於投票時上傳檔案。",
|
||||||
"upload_error.quote": "引用嘟文無法上傳檔案。",
|
|
||||||
"upload_form.drag_and_drop.instructions": "請按空白鍵或 Enter 鍵取多媒體附加檔案。使用方向鍵移動多媒體附加檔案。按下空白鍵或 Enter 鍵於新位置放置多媒體附加檔案,或按下 ESC 鍵取消。",
|
"upload_form.drag_and_drop.instructions": "請按空白鍵或 Enter 鍵取多媒體附加檔案。使用方向鍵移動多媒體附加檔案。按下空白鍵或 Enter 鍵於新位置放置多媒體附加檔案,或按下 ESC 鍵取消。",
|
||||||
"upload_form.drag_and_drop.on_drag_cancel": "移動已取消。多媒體附加檔案 {item} 已被放置。",
|
"upload_form.drag_and_drop.on_drag_cancel": "移動已取消。多媒體附加檔案 {item} 已被放置。",
|
||||||
"upload_form.drag_and_drop.on_drag_end": "多媒體附加檔案 {item} 已被放置。",
|
"upload_form.drag_and_drop.on_drag_end": "多媒體附加檔案 {item} 已被放置。",
|
||||||
|
@ -987,15 +965,14 @@
|
||||||
"video.volume_up": "提高音量",
|
"video.volume_up": "提高音量",
|
||||||
"visibility_modal.button_title": "設定可見性",
|
"visibility_modal.button_title": "設定可見性",
|
||||||
"visibility_modal.header": "可見性與互動",
|
"visibility_modal.header": "可見性與互動",
|
||||||
"visibility_modal.helper.direct_quoting": "Mastodon 上發佈之私人提及嘟文無法被其他使用者引用。",
|
"visibility_modal.helper.direct_quoting": "無法引用私人提及。",
|
||||||
"visibility_modal.helper.privacy_editing": "無法變更已發佈的嘟文之可見性。",
|
"visibility_modal.helper.privacy_editing": "無法變更已發佈的嘟文之可見性。",
|
||||||
"visibility_modal.helper.private_quoting": "Mastodon 上發佈之僅限跟隨者嘟文無法被其他使用者引用。",
|
"visibility_modal.helper.private_quoting": "無法引用僅追蹤者的嘟文。",
|
||||||
"visibility_modal.helper.unlisted_quoting": "當其他人引用您時,他們的嘟文也會自熱門時間軸隱藏。",
|
"visibility_modal.helper.unlisted_quoting": "當其他人引用您時,他們的嘟文也會自熱門時間軸隱藏。",
|
||||||
"visibility_modal.instructions": "控制誰能與此嘟文互動。可在<link>偏好設定 > 其他</link>下找到全域設定。",
|
"visibility_modal.instructions": "控制誰能與此嘟文互動。可在<link>偏好設定 > 其他</link>下找到全域設定。",
|
||||||
"visibility_modal.privacy_label": "隱私權",
|
"visibility_modal.privacy_label": "隱私權",
|
||||||
"visibility_modal.quote_followers": "僅限跟隨者",
|
"visibility_modal.quote_followers": "僅限跟隨者",
|
||||||
"visibility_modal.quote_label": "變更可以引用的人",
|
"visibility_modal.quote_label": "變更可以引用的人",
|
||||||
"visibility_modal.quote_nobody": "僅有我",
|
"visibility_modal.quote_nobody": "沒有人",
|
||||||
"visibility_modal.quote_public": "所有人",
|
"visibility_modal.quote_public": "所有人"
|
||||||
"visibility_modal.save": "儲存"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
import type { KeyboardEvent, MouseEvent, TouchEvent } from 'react';
|
|
||||||
|
|
||||||
interface BaseMenuItem {
|
interface BaseMenuItem {
|
||||||
text: string;
|
text: string;
|
||||||
dangerous?: boolean;
|
dangerous?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ActionMenuItem extends BaseMenuItem {
|
export interface ActionMenuItem extends BaseMenuItem {
|
||||||
action: (event: MouseEvent | KeyboardEvent | TouchEvent) => void;
|
action: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface LinkMenuItem extends BaseMenuItem {
|
export interface LinkMenuItem extends BaseMenuItem {
|
||||||
|
|
|
@ -39,8 +39,6 @@ export type NotificationGroupMention = BaseNotificationWithStatus<'mention'>;
|
||||||
export type NotificationGroupQuote = BaseNotificationWithStatus<'quote'>;
|
export type NotificationGroupQuote = BaseNotificationWithStatus<'quote'>;
|
||||||
export type NotificationGroupPoll = BaseNotificationWithStatus<'poll'>;
|
export type NotificationGroupPoll = BaseNotificationWithStatus<'poll'>;
|
||||||
export type NotificationGroupUpdate = BaseNotificationWithStatus<'update'>;
|
export type NotificationGroupUpdate = BaseNotificationWithStatus<'update'>;
|
||||||
export type NotificationGroupQuotedUpdate =
|
|
||||||
BaseNotificationWithStatus<'quoted_update'>;
|
|
||||||
export type NotificationGroupFollow = BaseNotification<'follow'>;
|
export type NotificationGroupFollow = BaseNotification<'follow'>;
|
||||||
export type NotificationGroupFollowRequest = BaseNotification<'follow_request'>;
|
export type NotificationGroupFollowRequest = BaseNotification<'follow_request'>;
|
||||||
export type NotificationGroupAdminSignUp = BaseNotification<'admin.sign_up'>;
|
export type NotificationGroupAdminSignUp = BaseNotification<'admin.sign_up'>;
|
||||||
|
@ -93,7 +91,6 @@ export type NotificationGroup =
|
||||||
| NotificationGroupQuote
|
| NotificationGroupQuote
|
||||||
| NotificationGroupPoll
|
| NotificationGroupPoll
|
||||||
| NotificationGroupUpdate
|
| NotificationGroupUpdate
|
||||||
| NotificationGroupQuotedUpdate
|
|
||||||
| NotificationGroupFollow
|
| NotificationGroupFollow
|
||||||
| NotificationGroupFollowRequest
|
| NotificationGroupFollowRequest
|
||||||
| NotificationGroupModerationWarning
|
| NotificationGroupModerationWarning
|
||||||
|
@ -144,8 +141,7 @@ export function createNotificationGroupFromJSON(
|
||||||
case 'mention':
|
case 'mention':
|
||||||
case 'quote':
|
case 'quote':
|
||||||
case 'poll':
|
case 'poll':
|
||||||
case 'update':
|
case 'update': {
|
||||||
case 'quoted_update': {
|
|
||||||
const { status_id: statusId, ...groupWithoutStatus } = group;
|
const { status_id: statusId, ...groupWithoutStatus } = group;
|
||||||
return {
|
return {
|
||||||
statusId: statusId ?? undefined,
|
statusId: statusId ?? undefined,
|
||||||
|
@ -219,7 +215,6 @@ export function createNotificationGroupFromNotificationJSON(
|
||||||
case 'quote':
|
case 'quote':
|
||||||
case 'poll':
|
case 'poll':
|
||||||
case 'update':
|
case 'update':
|
||||||
case 'quoted_update':
|
|
||||||
return {
|
return {
|
||||||
...group,
|
...group,
|
||||||
type: notification.type,
|
type: notification.type,
|
||||||
|
|
|
@ -2,9 +2,9 @@ import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrde
|
||||||
|
|
||||||
import {
|
import {
|
||||||
changeUploadCompose,
|
changeUploadCompose,
|
||||||
quoteCompose,
|
quoteComposeByStatus,
|
||||||
quoteComposeCancel,
|
quoteComposeCancel,
|
||||||
setComposeQuotePolicy,
|
setQuotePolicy,
|
||||||
} from 'mastodon/actions/compose_typed';
|
} from 'mastodon/actions/compose_typed';
|
||||||
import { timelineDelete } from 'mastodon/actions/timelines_typed';
|
import { timelineDelete } from 'mastodon/actions/timelines_typed';
|
||||||
|
|
||||||
|
@ -329,15 +329,22 @@ export const composeReducer = (state = initialState, action) => {
|
||||||
return state.set('is_changing_upload', true);
|
return state.set('is_changing_upload', true);
|
||||||
} else if (changeUploadCompose.rejected.match(action)) {
|
} else if (changeUploadCompose.rejected.match(action)) {
|
||||||
return state.set('is_changing_upload', false);
|
return state.set('is_changing_upload', false);
|
||||||
} else if (quoteCompose.match(action)) {
|
} else if (quoteComposeByStatus.match(action)) {
|
||||||
const status = action.payload;
|
const status = action.payload;
|
||||||
|
if (
|
||||||
|
status.getIn(['quote_approval', 'current_user']) === 'automatic' &&
|
||||||
|
state.get('media_attachments').size === 0 &&
|
||||||
|
!state.get('is_uploading') &&
|
||||||
|
!state.get('poll')
|
||||||
|
) {
|
||||||
return state
|
return state
|
||||||
.set('quoted_status_id', status.get('id'))
|
.set('quoted_status_id', status.get('id'))
|
||||||
.set('spoiler', status.get('sensitive'))
|
.set('spoiler', status.get('sensitive'))
|
||||||
.set('spoiler_text', status.get('spoiler_text'));
|
.set('spoiler_text', status.get('spoiler_text'));
|
||||||
|
}
|
||||||
} else if (quoteComposeCancel.match(action)) {
|
} else if (quoteComposeCancel.match(action)) {
|
||||||
return state.set('quoted_status_id', null);
|
return state.set('quoted_status_id', null);
|
||||||
} else if (setComposeQuotePolicy.match(action)) {
|
} else if (setQuotePolicy.match(action)) {
|
||||||
return state.set('quote_policy', action.payload);
|
return state.set('quote_policy', action.payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,7 +520,6 @@ export const composeReducer = (state = initialState, action) => {
|
||||||
map.set('sensitive', action.status.get('sensitive'));
|
map.set('sensitive', action.status.get('sensitive'));
|
||||||
map.set('language', action.status.get('language'));
|
map.set('language', action.status.get('language'));
|
||||||
map.set('id', null);
|
map.set('id', null);
|
||||||
map.set('quoted_status_id', action.status.getIn(['quote', 'quoted_status']));
|
|
||||||
// Mastodon-authored posts can be expected to have at most one automatic approval policy
|
// Mastodon-authored posts can be expected to have at most one automatic approval policy
|
||||||
map.set('quote_policy', action.status.getIn(['quote_approval', 'automatic', 0]) || 'nobody');
|
map.set('quote_policy', action.status.getIn(['quote_approval', 'automatic', 0]) || 'nobody');
|
||||||
|
|
||||||
|
@ -526,13 +532,8 @@ export const composeReducer = (state = initialState, action) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (action.status.get('poll')) {
|
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({
|
map.set('poll', ImmutableMap({
|
||||||
options: options,
|
options: ImmutableList(action.status.get('poll').options.map(x => x.title)),
|
||||||
multiple: action.status.get('poll').multiple,
|
multiple: action.status.get('poll').multiple,
|
||||||
expires_in: expiresInFromExpiresAt(action.status.get('poll').expires_at),
|
expires_in: expiresInFromExpiresAt(action.status.get('poll').expires_at),
|
||||||
}));
|
}));
|
||||||
|
@ -550,7 +551,6 @@ export const composeReducer = (state = initialState, action) => {
|
||||||
map.set('idempotencyKey', uuid());
|
map.set('idempotencyKey', uuid());
|
||||||
map.set('sensitive', action.status.get('sensitive'));
|
map.set('sensitive', action.status.get('sensitive'));
|
||||||
map.set('language', action.status.get('language'));
|
map.set('language', action.status.get('language'));
|
||||||
map.set('quoted_status_id', action.status.getIn(['quote', 'quoted_status']));
|
|
||||||
// Mastodon-authored posts can be expected to have at most one automatic approval policy
|
// Mastodon-authored posts can be expected to have at most one automatic approval policy
|
||||||
map.set('quote_policy', action.status.getIn(['quote_approval', 'automatic', 0]) || 'nobody');
|
map.set('quote_policy', action.status.getIn(['quote_approval', 'automatic', 0]) || 'nobody');
|
||||||
|
|
||||||
|
@ -563,13 +563,8 @@ export const composeReducer = (state = initialState, action) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (action.status.get('poll')) {
|
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({
|
map.set('poll', ImmutableMap({
|
||||||
options: options,
|
options: ImmutableList(action.status.get('poll').options.map(x => x.title)),
|
||||||
multiple: action.status.get('poll').multiple,
|
multiple: action.status.get('poll').multiple,
|
||||||
expires_in: expiresInFromExpiresAt(action.status.get('poll').expires_at),
|
expires_in: expiresInFromExpiresAt(action.status.get('poll').expires_at),
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -28,9 +28,6 @@ import {
|
||||||
PIN_SUCCESS,
|
PIN_SUCCESS,
|
||||||
UNPIN_SUCCESS,
|
UNPIN_SUCCESS,
|
||||||
} from '../actions/interactions';
|
} from '../actions/interactions';
|
||||||
import {
|
|
||||||
fetchQuotes
|
|
||||||
} from '../actions/interactions_typed';
|
|
||||||
import {
|
import {
|
||||||
PINNED_STATUSES_FETCH_SUCCESS,
|
PINNED_STATUSES_FETCH_SUCCESS,
|
||||||
} from '../actions/pin_statuses';
|
} from '../actions/pin_statuses';
|
||||||
|
@ -43,6 +40,8 @@ import {
|
||||||
TRENDS_STATUSES_EXPAND_FAIL,
|
TRENDS_STATUSES_EXPAND_FAIL,
|
||||||
} from '../actions/trends';
|
} from '../actions/trends';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const initialState = ImmutableMap({
|
const initialState = ImmutableMap({
|
||||||
favourites: ImmutableMap({
|
favourites: ImmutableMap({
|
||||||
next: null,
|
next: null,
|
||||||
|
@ -64,12 +63,6 @@ const initialState = ImmutableMap({
|
||||||
loaded: false,
|
loaded: false,
|
||||||
items: ImmutableOrderedSet(),
|
items: ImmutableOrderedSet(),
|
||||||
}),
|
}),
|
||||||
quotes: ImmutableMap({
|
|
||||||
next: null,
|
|
||||||
loaded: false,
|
|
||||||
items: ImmutableOrderedSet(),
|
|
||||||
statusId: null,
|
|
||||||
}),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const normalizeList = (state, listType, statuses, next) => {
|
const normalizeList = (state, listType, statuses, next) => {
|
||||||
|
@ -154,13 +147,6 @@ export default function statusLists(state = initialState, action) {
|
||||||
case muteAccountSuccess.type:
|
case muteAccountSuccess.type:
|
||||||
return state.updateIn(['trending', 'items'], ImmutableOrderedSet(), list => list.filterNot(statusId => action.payload.statuses.getIn([statusId, 'account']) === action.payload.relationship.id));
|
return state.updateIn(['trending', 'items'], ImmutableOrderedSet(), list => list.filterNot(statusId => action.payload.statuses.getIn([statusId, 'account']) === action.payload.relationship.id));
|
||||||
default:
|
default:
|
||||||
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;
|
return state;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,15 +90,8 @@ export default function statuses(state = initialState, action) {
|
||||||
switch(action.type) {
|
switch(action.type) {
|
||||||
case STATUS_FETCH_REQUEST:
|
case STATUS_FETCH_REQUEST:
|
||||||
return state.setIn([action.id, 'isLoading'], true);
|
return state.setIn([action.id, 'isLoading'], true);
|
||||||
case STATUS_FETCH_FAIL: {
|
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);
|
return state.delete(action.id);
|
||||||
}
|
|
||||||
}
|
|
||||||
case STATUS_IMPORT:
|
case STATUS_IMPORT:
|
||||||
return importStatus(state, action.status);
|
return importStatus(state, action.status);
|
||||||
case STATUSES_IMPORT:
|
case STATUSES_IMPORT:
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user