mirror of
https://github.com/mastodon/mastodon.git
synced 2025-12-17 09:33:16 +00:00
Merge branch 'main' into feature/require-mfa-by-admin
This commit is contained in:
commit
26081d66fd
|
|
@ -1,6 +1,6 @@
|
|||
# This configuration was generated by
|
||||
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-offense-counts --no-auto-gen-timestamp`
|
||||
# using RuboCop version 1.77.0.
|
||||
# using RuboCop version 1.79.0.
|
||||
# The point is for the user to remove these configuration records
|
||||
# one by one as the offenses are removed from the code base.
|
||||
# Note that changes in the inspected code, or installation of new
|
||||
|
|
|
|||
20
CHANGELOG.md
20
CHANGELOG.md
|
|
@ -2,6 +2,26 @@
|
|||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [4.4.2] - 2025-07-23
|
||||
|
||||
### Security
|
||||
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix menu not clickable in Firefox (#35390 and #35414 by @diondiondion)
|
||||
- Add `lang` attribute to current composer language in alt text modal (#35412 by @diondiondion)
|
||||
- Fix quote posts styling on notifications page (#35411 by @diondiondion)
|
||||
- Improve a11y of custom select menus in notifications settings (#35403 by @diondiondion)
|
||||
- Fix selected item in poll select menus is unreadable in Firefox (#35402 by @diondiondion)
|
||||
- Update age limit wording (#35387 by @diondiondion)
|
||||
- Fix support for quote verification in implicit status updates (#35384 by @ClearlyClaire)
|
||||
- Improve `Dropdown` component accessibility (#35373 by @diondiondion)
|
||||
- Fix processing some incoming quotes failing because of missing JSON-LD context (#35354 and #35380 by @ClearlyClaire)
|
||||
- Make bio hashtags open the local page instead of the remote instance (#35349 by @ChaosExAnima)
|
||||
- Fix styling of external log-in button (#35320 by @ClearlyClaire)
|
||||
|
||||
## [4.4.1] - 2025-07-09
|
||||
|
||||
### Fixed
|
||||
|
|
|
|||
10
Gemfile.lock
10
Gemfile.lock
|
|
@ -287,7 +287,7 @@ GEM
|
|||
activesupport (>= 5.1)
|
||||
haml (>= 4.0.6)
|
||||
railties (>= 5.1)
|
||||
haml_lint (0.65.0)
|
||||
haml_lint (0.65.1)
|
||||
haml (>= 5.0)
|
||||
parallel (~> 1.10)
|
||||
rainbow
|
||||
|
|
@ -315,7 +315,7 @@ GEM
|
|||
http_accept_language (2.1.1)
|
||||
httpclient (2.9.0)
|
||||
mutex_m
|
||||
httplog (1.7.1)
|
||||
httplog (1.7.2)
|
||||
rack (>= 2.0)
|
||||
rainbow (>= 2.0.0)
|
||||
i18n (1.14.7)
|
||||
|
|
@ -765,7 +765,7 @@ GEM
|
|||
rspec-mocks (~> 3.0)
|
||||
sidekiq (>= 5, < 9)
|
||||
rspec-support (3.13.4)
|
||||
rubocop (1.78.0)
|
||||
rubocop (1.79.0)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (~> 3.17.0.2)
|
||||
lint_roller (~> 1.1.0)
|
||||
|
|
@ -773,8 +773,9 @@ GEM
|
|||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 2.9.3, < 3.0)
|
||||
rubocop-ast (>= 1.45.1, < 2.0)
|
||||
rubocop-ast (>= 1.46.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
tsort (>= 0.2.0)
|
||||
unicode-display_width (>= 2.4.0, < 4.0)
|
||||
rubocop-ast (1.46.0)
|
||||
parser (>= 3.3.7.2)
|
||||
|
|
@ -880,6 +881,7 @@ GEM
|
|||
bindata (~> 2.4)
|
||||
openssl (> 2.0)
|
||||
openssl-signature_algorithm (~> 1.0)
|
||||
tsort (0.2.0)
|
||||
tty-color (0.6.0)
|
||||
tty-cursor (0.7.1)
|
||||
tty-prompt (0.23.1)
|
||||
|
|
|
|||
|
|
@ -19,15 +19,13 @@ module Admin
|
|||
|
||||
log_action :resend, @user
|
||||
|
||||
flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success')
|
||||
redirect_to admin_accounts_path
|
||||
redirect_to admin_accounts_path, notice: t('admin.accounts.resend_confirmation.success')
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def redirect_confirmed_user
|
||||
flash[:error] = I18n.t('admin.accounts.resend_confirmation.already_confirmed')
|
||||
redirect_to admin_accounts_path
|
||||
redirect_to admin_accounts_path, flash: { error: t('admin.accounts.resend_confirmation.already_confirmed') }
|
||||
end
|
||||
|
||||
def user_confirmed?
|
||||
|
|
|
|||
|
|
@ -14,8 +14,7 @@ module Admin
|
|||
@admin_settings = Form::AdminSettings.new(settings_params)
|
||||
|
||||
if @admin_settings.save
|
||||
flash[:notice] = I18n.t('generic.changes_saved_msg')
|
||||
redirect_to after_update_redirect_path
|
||||
redirect_to after_update_redirect_path, notice: t('generic.changes_saved_msg')
|
||||
else
|
||||
render :show
|
||||
end
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
class Api::V1::Admin::TagsController < Api::BaseController
|
||||
include Authorization
|
||||
|
||||
before_action -> { authorize_if_got_token! :'admin:read' }, only: [:index, :show]
|
||||
before_action -> { authorize_if_got_token! :'admin:write' }, only: :update
|
||||
|
||||
|
|
|
|||
|
|
@ -16,16 +16,7 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController
|
|||
def create
|
||||
with_redis_lock("push_subscription:#{current_user.id}") do
|
||||
destroy_web_push_subscriptions!
|
||||
|
||||
@push_subscription = Web::PushSubscription.create!(
|
||||
endpoint: subscription_params[:endpoint],
|
||||
key_p256dh: subscription_params[:keys][:p256dh],
|
||||
key_auth: subscription_params[:keys][:auth],
|
||||
standard: subscription_params[:standard] || false,
|
||||
data: data_params,
|
||||
user_id: current_user.id,
|
||||
access_token_id: doorkeeper_token.id
|
||||
)
|
||||
@push_subscription = Web::PushSubscription.create!(web_push_subscription_params)
|
||||
end
|
||||
|
||||
render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer
|
||||
|
|
@ -55,6 +46,18 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController
|
|||
not_found if @push_subscription.nil?
|
||||
end
|
||||
|
||||
def web_push_subscription_params
|
||||
{
|
||||
access_token_id: doorkeeper_token.id,
|
||||
data: data_params,
|
||||
endpoint: subscription_params[:endpoint],
|
||||
key_auth: subscription_params[:keys][:auth],
|
||||
key_p256dh: subscription_params[:keys][:p256dh],
|
||||
standard: subscription_params[:standard] || false,
|
||||
user_id: current_user.id,
|
||||
}
|
||||
end
|
||||
|
||||
def subscription_params
|
||||
params.expect(subscription: [:endpoint, :standard, keys: [:auth, :p256dh]])
|
||||
end
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ class Api::V1::StatusesController < Api::BaseController
|
|||
before_action :set_statuses, only: [:index]
|
||||
before_action :set_status, only: [:show, :context]
|
||||
before_action :set_thread, only: [:create]
|
||||
before_action :set_quoted_status, only: [:create]
|
||||
before_action :check_statuses_limit, only: [:index]
|
||||
|
||||
override_rate_limit_headers :create, family: :statuses
|
||||
|
|
@ -76,6 +77,7 @@ class Api::V1::StatusesController < Api::BaseController
|
|||
current_user.account,
|
||||
text: status_params[:status],
|
||||
thread: @thread,
|
||||
quoted_status: @quoted_status,
|
||||
media_ids: status_params[:media_ids],
|
||||
sensitive: status_params[:sensitive],
|
||||
spoiler_text: status_params[:spoiler_text],
|
||||
|
|
@ -147,6 +149,16 @@ class Api::V1::StatusesController < Api::BaseController
|
|||
render json: { error: I18n.t('statuses.errors.in_reply_not_found') }, status: 404
|
||||
end
|
||||
|
||||
def set_quoted_status
|
||||
return unless Mastodon::Feature.outgoing_quotes_enabled?
|
||||
|
||||
@quoted_status = Status.find(status_params[:quoted_status_id]) if status_params[:quoted_status_id].present?
|
||||
authorize(@quoted_status, :quote?) if @quoted_status.present?
|
||||
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
|
||||
# TODO: distinguish between non-existing and non-quotable posts
|
||||
render json: { error: I18n.t('statuses.errors.quoted_status_not_found') }, status: 404
|
||||
end
|
||||
|
||||
def check_statuses_limit
|
||||
raise(Mastodon::ValidationError) if status_ids.size > DEFAULT_STATUSES_LIMIT
|
||||
end
|
||||
|
|
@ -163,6 +175,7 @@ class Api::V1::StatusesController < Api::BaseController
|
|||
params.permit(
|
||||
:status,
|
||||
:in_reply_to_id,
|
||||
:quoted_status_id,
|
||||
:sensitive,
|
||||
:spoiler_text,
|
||||
:visibility,
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class Api::Web::PushSubscriptionsController < Api::Web::BaseController
|
|||
{
|
||||
policy: 'all',
|
||||
alerts: Notification::TYPES.index_with { alerts_enabled },
|
||||
}
|
||||
}.deep_stringify_keys
|
||||
end
|
||||
|
||||
def alerts_enabled
|
||||
|
|
|
|||
|
|
@ -19,8 +19,7 @@ class Auth::PasswordsController < Devise::PasswordsController
|
|||
private
|
||||
|
||||
def redirect_invalid_reset_token
|
||||
flash[:error] = I18n.t('auth.invalid_reset_password_token')
|
||||
redirect_to new_password_path(resource_name)
|
||||
redirect_to new_password_path(resource_name), flash: { error: t('auth.invalid_reset_password_token') }
|
||||
end
|
||||
|
||||
def reset_password_token_is_valid?
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@ class Settings::SessionsController < Settings::BaseController
|
|||
|
||||
def destroy
|
||||
@session.destroy!
|
||||
flash[:notice] = I18n.t('sessions.revoke_success')
|
||||
redirect_to edit_user_registration_path
|
||||
redirect_to edit_user_registration_path, notice: t('sessions.revoke_success')
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
|||
|
|
@ -86,13 +86,11 @@ module Settings
|
|||
private
|
||||
|
||||
def redirect_invalid_otp
|
||||
flash[:error] = t('webauthn_credentials.otp_required')
|
||||
redirect_to settings_two_factor_authentication_methods_path
|
||||
redirect_to settings_two_factor_authentication_methods_path, flash: { error: t('webauthn_credentials.otp_required') }
|
||||
end
|
||||
|
||||
def redirect_invalid_webauthn
|
||||
flash[:error] = t('webauthn_credentials.not_enabled')
|
||||
redirect_to settings_two_factor_authentication_methods_path
|
||||
redirect_to settings_two_factor_authentication_methods_path, flash: { error: t('webauthn_credentials.not_enabled') }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@ module HomeHelper
|
|||
end
|
||||
end
|
||||
|
||||
def custom_field_classes(field)
|
||||
if field.verified?
|
||||
def field_verified_class(verified)
|
||||
if verified
|
||||
'verified'
|
||||
else
|
||||
'emojify'
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ import { useCallback } from 'react';
|
|||
import { useLinks } from 'mastodon/hooks/useLinks';
|
||||
|
||||
import { EmojiHTML } from '../features/emoji/emoji_html';
|
||||
import { isFeatureEnabled } from '../initial_state';
|
||||
import { useAppSelector } from '../store';
|
||||
import { isModernEmojiEnabled } from '../utils/environment';
|
||||
|
||||
interface AccountBioProps {
|
||||
className: string;
|
||||
|
|
@ -32,9 +32,7 @@ export const AccountBio: React.FC<AccountBioProps> = ({
|
|||
if (!account) {
|
||||
return '';
|
||||
}
|
||||
return isFeatureEnabled('modern_emojis')
|
||||
? account.note
|
||||
: account.note_emojified;
|
||||
return isModernEmojiEnabled() ? account.note : account.note_emojified;
|
||||
});
|
||||
const extraEmojis = useAppSelector((state) => {
|
||||
const account = state.accounts.get(accountId);
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ export const GIFV = forwardRef<HTMLVideoElement, Props>(
|
|||
role='button'
|
||||
tabIndex={0}
|
||||
aria-label={alt}
|
||||
title={alt}
|
||||
lang={lang}
|
||||
onClick={handleClick}
|
||||
/>
|
||||
|
|
@ -49,7 +48,6 @@ export const GIFV = forwardRef<HTMLVideoElement, Props>(
|
|||
role='button'
|
||||
tabIndex={0}
|
||||
aria-label={alt}
|
||||
title={alt}
|
||||
lang={lang}
|
||||
width={width}
|
||||
height={height}
|
||||
|
|
|
|||
|
|
@ -13,8 +13,9 @@ import ChevronRightIcon from '@/material-icons/400-24px/chevron_right.svg?react'
|
|||
import { Icon } from 'mastodon/components/icon';
|
||||
import { Poll } from 'mastodon/components/poll';
|
||||
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
||||
import { autoPlayGif, isFeatureEnabled, languages as preloadedLanguages } from 'mastodon/initial_state';
|
||||
import { autoPlayGif, languages as preloadedLanguages } from 'mastodon/initial_state';
|
||||
import { EmojiHTML } from '../features/emoji/emoji_html';
|
||||
import { isModernEmojiEnabled } from '../utils/environment';
|
||||
|
||||
const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top)
|
||||
|
||||
|
|
@ -24,7 +25,7 @@ const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top)
|
|||
* @returns {string}
|
||||
*/
|
||||
export function getStatusContent(status) {
|
||||
if (isFeatureEnabled('modern_emojis')) {
|
||||
if (isModernEmojiEnabled()) {
|
||||
return status.getIn(['translation', 'content']) || status.get('content');
|
||||
}
|
||||
return status.getIn(['translation', 'contentHtml']) || status.get('contentHtml');
|
||||
|
|
|
|||
|
|
@ -41,9 +41,11 @@ export default class StatusList extends ImmutablePureComponent {
|
|||
};
|
||||
|
||||
componentDidMount() {
|
||||
this.columnHeaderHeight = parseFloat(
|
||||
getComputedStyle(this.node.node).getPropertyValue('--column-header-height')
|
||||
) || 0;
|
||||
this.columnHeaderHeight = this.node?.node
|
||||
? parseFloat(
|
||||
getComputedStyle(this.node.node).getPropertyValue('--column-header-height')
|
||||
) || 0
|
||||
: 0;
|
||||
}
|
||||
|
||||
getFeaturedStatusCount = () => {
|
||||
|
|
@ -69,8 +71,8 @@ export default class StatusList extends ImmutablePureComponent {
|
|||
};
|
||||
|
||||
_selectChild = (id, index, direction) => {
|
||||
const listContainer = this.node.node;
|
||||
let listItem = listContainer.querySelector(
|
||||
const listContainer = this.node?.node;
|
||||
let listItem = listContainer?.querySelector(
|
||||
// :nth-child uses 1-based indexing
|
||||
`.item-list > :nth-child(${index + 1 + direction})`
|
||||
);
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import type { List as ImmutableList } from 'immutable';
|
|||
import { isList } from 'immutable';
|
||||
|
||||
import type { ApiCustomEmojiJSON } from '@/mastodon/api_types/custom_emoji';
|
||||
import { isFeatureEnabled } from '@/mastodon/initial_state';
|
||||
import type { CustomEmoji } from '@/mastodon/models/custom_emoji';
|
||||
import { isModernEmojiEnabled } from '@/mastodon/utils/environment';
|
||||
|
||||
import { useEmojiAppState } from './hooks';
|
||||
import { emojifyElement } from './render';
|
||||
|
|
@ -25,7 +25,7 @@ export const EmojiHTML: React.FC<EmojiHTMLProps> = ({
|
|||
extraEmojis,
|
||||
...props
|
||||
}) => {
|
||||
if (isFeatureEnabled('modern_emojis')) {
|
||||
if (isModernEmojiEnabled()) {
|
||||
return (
|
||||
<ModernEmojiHTML
|
||||
htmlString={htmlString}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import initialState from '@/mastodon/initial_state';
|
||||
import { loadWorker } from '@/mastodon/utils/workers';
|
||||
|
||||
import { toSupportedLocale } from './locale';
|
||||
|
||||
|
|
@ -9,9 +10,8 @@ let worker: Worker | null = null;
|
|||
export async function initializeEmoji() {
|
||||
if (!worker && 'Worker' in window) {
|
||||
try {
|
||||
worker = new Worker(new URL('./worker', import.meta.url), {
|
||||
worker = loadWorker(new URL('./worker', import.meta.url), {
|
||||
type: 'module',
|
||||
credentials: 'omit',
|
||||
});
|
||||
} catch (err) {
|
||||
console.warn('Error creating web worker:', err);
|
||||
|
|
|
|||
|
|
@ -36,15 +36,16 @@ async function fetchAndCheckEtag<ResultType extends object[]>(
|
|||
): Promise<ResultType | null> {
|
||||
const locale = toSupportedLocaleOrCustom(localeOrCustom);
|
||||
|
||||
let uri: string;
|
||||
// Use location.origin as this script may be loaded from a CDN domain.
|
||||
const url = new URL(location.origin);
|
||||
if (locale === 'custom') {
|
||||
uri = '/api/v1/custom_emojis';
|
||||
url.pathname = '/api/v1/custom_emojis';
|
||||
} else {
|
||||
uri = `/packs${isDevelopment() ? '-dev' : ''}/emoji/${locale}.json`;
|
||||
url.pathname = `/packs${isDevelopment() ? '-dev' : ''}/emoji/${locale}.json`;
|
||||
}
|
||||
|
||||
const oldEtag = await loadLatestEtag(locale);
|
||||
const response = await fetch(uri, {
|
||||
const response = await fetch(url, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'If-None-Match': oldEtag ?? '', // Send the old ETag to check for modifications
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import { openModal } from 'mastodon/actions/modal';
|
|||
import { IconButton } from 'mastodon/components/icon_button';
|
||||
import { useIdentity } from 'mastodon/identity_context';
|
||||
import { me } from 'mastodon/initial_state';
|
||||
import type { Account } from 'mastodon/models/account';
|
||||
import type { Status } from 'mastodon/models/status';
|
||||
import { makeGetStatus } from 'mastodon/selectors';
|
||||
import type { RootState } from 'mastodon/store';
|
||||
|
|
@ -66,10 +67,7 @@ export const Footer: React.FC<{
|
|||
const dispatch = useAppDispatch();
|
||||
const getStatus = useMemo(() => makeGetStatus(), []) as GetStatusSelector;
|
||||
const status = useAppSelector((state) => getStatus(state, { id: statusId }));
|
||||
const accountId = status?.get('account') as string | undefined;
|
||||
const account = useAppSelector((state) =>
|
||||
accountId ? state.accounts.get(accountId) : undefined,
|
||||
);
|
||||
const account = status?.get('account') as Account | undefined;
|
||||
const askReplyConfirmation = useAppSelector(
|
||||
(state) => (state.compose.get('text') as string).trim().length !== 0,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -306,10 +306,8 @@ export const ZoomableImage: React.FC<ZoomableImageProps> = ({
|
|||
|
||||
<animated.img
|
||||
style={{ transform }}
|
||||
role='presentation'
|
||||
ref={imageRef}
|
||||
alt={alt}
|
||||
title={alt}
|
||||
lang={lang}
|
||||
src={src}
|
||||
width={width}
|
||||
|
|
|
|||
|
|
@ -142,12 +142,4 @@ export function getAccessToken() {
|
|||
return getMeta('access_token');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} feature
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isFeatureEnabled(feature) {
|
||||
return initialState?.features?.includes(feature) || false;
|
||||
}
|
||||
|
||||
export default initialState;
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "عرض المزيد من المتابعين على {domain}",
|
||||
"hints.profiles.see_more_follows": "اطلع على المزيد من المتابعين على {domain}",
|
||||
"hints.profiles.see_more_posts": "عرض المزيد من المنشورات من {domain}",
|
||||
"hints.threads.replies_may_be_missing": "قد تكون الردود الواردة من الخوادم الأخرى غائبة.",
|
||||
"hints.threads.see_more": "اطلع على المزيد من الردود على {domain}",
|
||||
"home.column_settings.show_quotes": "إظهار الاقتباسات",
|
||||
"home.column_settings.show_reblogs": "اعرض المعاد نشرها",
|
||||
"home.column_settings.show_replies": "اعرض الردود",
|
||||
|
|
|
|||
|
|
@ -266,7 +266,6 @@
|
|||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}",
|
||||
"hashtag.follow": "Siguir a la etiqueta",
|
||||
"hashtag.unfollow": "Dexar de siguir a la etiqueta",
|
||||
"hints.threads.replies_may_be_missing": "Ye posible que falten les rempuestes d'otros sirvidores.",
|
||||
"home.column_settings.show_reblogs": "Amosar los artículos compartíos",
|
||||
"home.column_settings.show_replies": "Amosar les rempuestes",
|
||||
"home.pending_critical_update.body": "¡Anueva'l sirvidor de Mastodon namás que puedas!",
|
||||
|
|
|
|||
|
|
@ -404,8 +404,6 @@
|
|||
"hints.profiles.see_more_followers": "Глядзець больш падпісаных на {domain}",
|
||||
"hints.profiles.see_more_follows": "Глядзець больш падпісак на {domain}",
|
||||
"hints.profiles.see_more_posts": "Глядзець больш допісаў на {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Адказы з іншых сервераў могуць адсутнічаць.",
|
||||
"hints.threads.see_more": "Глядзіце больш адказаў на {domain}",
|
||||
"home.column_settings.show_quotes": "Паказаць цытаты",
|
||||
"home.column_settings.show_reblogs": "Паказваць пашырэнні",
|
||||
"home.column_settings.show_replies": "Паказваць адказы",
|
||||
|
|
|
|||
|
|
@ -419,8 +419,6 @@
|
|||
"hints.profiles.see_more_followers": "Преглед на още последователи на {domain}",
|
||||
"hints.profiles.see_more_follows": "Преглед на още последвания на {domain}",
|
||||
"hints.profiles.see_more_posts": "Преглед на още публикации на {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.",
|
||||
"hints.threads.see_more": "Преглед на още отговори на {domain}",
|
||||
"home.column_settings.show_quotes": "Показване на цитираното",
|
||||
"home.column_settings.show_reblogs": "Показване на подсилванията",
|
||||
"home.column_settings.show_replies": "Показване на отговорите",
|
||||
|
|
|
|||
|
|
@ -558,6 +558,8 @@
|
|||
"status.bookmark": "Ouzhpennañ d'ar sinedoù",
|
||||
"status.cancel_reblog_private": "Nac'hañ ar skignadenn",
|
||||
"status.cannot_reblog": "Ar c'hannad-se na c'hall ket bezañ skignet",
|
||||
"status.context.load_new_replies": "Respontoù nevez zo",
|
||||
"status.context.loading": "O kerc'hat muioc'h a respontoù",
|
||||
"status.copy": "Eilañ liamm ar c'hannad",
|
||||
"status.delete": "Dilemel",
|
||||
"status.detailed_status": "Gwel kaozeadenn munudek",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Vegeu més seguidors a {domain}",
|
||||
"hints.profiles.see_more_follows": "Vegeu més seguiments a {domain}",
|
||||
"hints.profiles.see_more_posts": "Vegeu més publicacions a {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Es poden haver perdut respostes d'altres servidors.",
|
||||
"hints.threads.see_more": "Vegeu més respostes a {domain}",
|
||||
"home.column_settings.show_quotes": "Mostrar les cites",
|
||||
"home.column_settings.show_reblogs": "Mostra els impulsos",
|
||||
"home.column_settings.show_replies": "Mostra les respostes",
|
||||
|
|
@ -846,6 +844,8 @@
|
|||
"status.bookmark": "Marca",
|
||||
"status.cancel_reblog_private": "Desfés l'impuls",
|
||||
"status.cannot_reblog": "No es pot impulsar aquest tut",
|
||||
"status.context.load_new_replies": "Hi ha respostes noves",
|
||||
"status.context.loading": "Comprovació de més respostes",
|
||||
"status.continued_thread": "Continuació del fil",
|
||||
"status.copy": "Copia l'enllaç al tut",
|
||||
"status.delete": "Elimina",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Zobrazit více sledujících na {domain}",
|
||||
"hints.profiles.see_more_follows": "Zobrazit další sledování na {domain}",
|
||||
"hints.profiles.see_more_posts": "Zobrazit další příspěvky na {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Odpovědi z jiných serverů mohou chybět.",
|
||||
"hints.threads.see_more": "Zobrazit další odpovědi na {domain}",
|
||||
"home.column_settings.show_quotes": "Zobrazit citace",
|
||||
"home.column_settings.show_reblogs": "Zobrazit boosty",
|
||||
"home.column_settings.show_replies": "Zobrazit odpovědi",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Přidat do záložek",
|
||||
"status.cancel_reblog_private": "Zrušit 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.loading": "Hledání dalších odpovědí",
|
||||
"status.continued_thread": "Pokračuje ve vlákně",
|
||||
"status.copy": "Zkopírovat odkaz na příspěvek",
|
||||
"status.delete": "Smazat",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Gweld mwy o ddilynwyr ar {domain}",
|
||||
"hints.profiles.see_more_follows": "Gweld mwy o 'yn dilyn' ar {domain}",
|
||||
"hints.profiles.see_more_posts": "Gweld mwy o bostiadau ar {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Mae'n bosibl y bydd ymatebion gan weinyddion eraill ar goll.",
|
||||
"hints.threads.see_more": "Gweld mwy o ymatebion ar {domain}",
|
||||
"home.column_settings.show_quotes": "Dangos dyfyniadau",
|
||||
"home.column_settings.show_reblogs": "Dangos hybiau",
|
||||
"home.column_settings.show_replies": "Dangos ymatebion",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Se flere følgere på {domain}",
|
||||
"hints.profiles.see_more_follows": "Se flere fulgte på {domain}",
|
||||
"hints.profiles.see_more_posts": "Se flere indlæg på {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Der kan mangle svar fra andre servere.",
|
||||
"hints.threads.see_more": "Se flere svar på {domain}",
|
||||
"home.column_settings.show_quotes": "Vis citater",
|
||||
"home.column_settings.show_reblogs": "Vis fremhævelser",
|
||||
"home.column_settings.show_replies": "Vis svar",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Bogmærk",
|
||||
"status.cancel_reblog_private": "Fjern fremhævelse",
|
||||
"status.cannot_reblog": "Dette indlæg kan ikke fremhæves",
|
||||
"status.context.load_new_replies": "Nye svar tilgængelige",
|
||||
"status.context.loading": "Tjekker for flere svar",
|
||||
"status.continued_thread": "Fortsat tråd",
|
||||
"status.copy": "Kopiér link til indlæg",
|
||||
"status.delete": "Slet",
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
"about.domain_blocks.no_reason_available": "Grund unbekannt",
|
||||
"about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediverse zu sehen und mit ihnen zu interagieren. Für diesen Server gibt es aber ein paar Ausnahmen.",
|
||||
"about.domain_blocks.silenced.explanation": "Standardmäßig werden von diesem Server keine Inhalte oder Profile angezeigt. Du kannst die Profile und Inhalte aber dennoch sehen, wenn du explizit nach diesen suchst oder diesen folgst.",
|
||||
"about.domain_blocks.silenced.title": "Stummgeschaltet",
|
||||
"about.domain_blocks.silenced.title": "Ausgeblendet",
|
||||
"about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, sodass eine Interaktion oder Kommunikation mit Nutzer*innen dieses Servers nicht möglich ist.",
|
||||
"about.domain_blocks.suspended.title": "Gesperrt",
|
||||
"about.language_label": "Sprache",
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
"account.followers": "Follower",
|
||||
"account.followers.empty": "Diesem Profil folgt noch niemand.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}",
|
||||
"account.followers_you_know_counter": "{counter} bekannt",
|
||||
"account.followers_you_know_counter": "{counter} Follower kennst Du",
|
||||
"account.following": "Folge ich",
|
||||
"account.following_counter": "{count, plural, one {{counter} Folge ich} other {{counter} Folge ich}}",
|
||||
"account.follows.empty": "Dieses Profil folgt noch niemandem.",
|
||||
|
|
@ -63,7 +63,7 @@
|
|||
"account.mute_short": "Stummschalten",
|
||||
"account.muted": "Stummgeschaltet",
|
||||
"account.muting": "Stummgeschaltet",
|
||||
"account.mutual": "Ihr folgt einander",
|
||||
"account.mutual": "Ihr folgt euch",
|
||||
"account.no_bio": "Keine Beschreibung verfügbar.",
|
||||
"account.open_original_page": "Ursprüngliche Seite öffnen",
|
||||
"account.posts": "Beiträge",
|
||||
|
|
@ -225,7 +225,7 @@
|
|||
"confirmations.discard_draft.edit.title": "Änderungen an diesem Beitrag verwerfen?",
|
||||
"confirmations.discard_draft.post.cancel": "Entwurf fortsetzen",
|
||||
"confirmations.discard_draft.post.message": "Beim Fortfahren wird der gerade verfasste Beitrag verworfen.",
|
||||
"confirmations.discard_draft.post.title": "Beitragsentwurf verwerfen?",
|
||||
"confirmations.discard_draft.post.title": "Entwurf verwerfen?",
|
||||
"confirmations.discard_edit_media.confirm": "Verwerfen",
|
||||
"confirmations.discard_edit_media.message": "Du hast Änderungen an der Medienbeschreibung oder -vorschau vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?",
|
||||
"confirmations.follow_to_list.confirm": "Folgen und zur Liste hinzufügen",
|
||||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Weitere Follower auf {domain} ansehen",
|
||||
"hints.profiles.see_more_follows": "Weitere gefolgte Profile auf {domain} ansehen",
|
||||
"hints.profiles.see_more_posts": "Weitere Beiträge auf {domain} ansehen",
|
||||
"hints.threads.replies_may_be_missing": "Möglicherweise werden nicht alle Antworten von anderen Servern angezeigt.",
|
||||
"hints.threads.see_more": "Weitere Antworten auf {domain} ansehen",
|
||||
"home.column_settings.show_quotes": "Zitierte Beiträge anzeigen",
|
||||
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
|
||||
"home.column_settings.show_replies": "Antworten anzeigen",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Lesezeichen setzen",
|
||||
"status.cancel_reblog_private": "Beitrag nicht mehr teilen",
|
||||
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
|
||||
"status.context.load_new_replies": "Neue Antworten verfügbar",
|
||||
"status.context.loading": "Weitere Antworten werden abgerufen",
|
||||
"status.continued_thread": "Fortgeführter Thread",
|
||||
"status.copy": "Link zum Beitrag kopieren",
|
||||
"status.delete": "Beitrag löschen",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Δες περισσότερους ακόλουθους στο {domain}",
|
||||
"hints.profiles.see_more_follows": "Δες περισσότερα άτομα που ακολουθούνται στο {domain}",
|
||||
"hints.profiles.see_more_posts": "Δες περισσότερες αναρτήσεις στο {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Απαντήσεις από άλλους διακομιστές μπορεί να λείπουν.",
|
||||
"hints.threads.see_more": "Δες περισσότερες απαντήσεις στο {domain}",
|
||||
"home.column_settings.show_quotes": "Εμφάνιση παραθεμάτων",
|
||||
"home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
|
||||
"home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
|
||||
|
|
@ -614,7 +612,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Ο λογαριασμός σου έχει ανασταλεί.",
|
||||
"notification.own_poll": "Η δημοσκόπησή σου έληξε",
|
||||
"notification.poll": "Μία ψηφοφορία στην οποία συμμετείχες έχει τελειώσει",
|
||||
"notification.reblog": "Ο/Η {name} ενίσχυσε τη δημοσίευσή σου",
|
||||
"notification.reblog": "Ο/Η {name} ενίσχυσε την ανάρτηση σου",
|
||||
"notification.reblog.name_and_others_with_link": "{name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> ενίσχυσαν την ανάρτησή σου",
|
||||
"notification.relationships_severance_event": "Χάθηκε η σύνδεση με το {name}",
|
||||
"notification.relationships_severance_event.account_suspension": "Ένας διαχειριστής από το {from} ανέστειλε το {target}, πράγμα που σημαίνει ότι δεν μπορείς πλέον να λαμβάνεις ενημερώσεις από αυτούς ή να αλληλεπιδράς μαζί τους.",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Σελιδοδείκτης",
|
||||
"status.cancel_reblog_private": "Ακύρωση ενίσχυσης",
|
||||
"status.cannot_reblog": "Αυτή η ανάρτηση δεν μπορεί να ενισχυθεί",
|
||||
"status.context.load_new_replies": "Νέες απαντήσεις διαθέσιμες",
|
||||
"status.context.loading": "Γίνεται έλεγχος για περισσότερες απαντήσεις",
|
||||
"status.continued_thread": "Συνεχιζόμενο νήματος",
|
||||
"status.copy": "Αντιγραφή συνδέσμου ανάρτησης",
|
||||
"status.delete": "Διαγραφή",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "See more followers on {domain}",
|
||||
"hints.profiles.see_more_follows": "See more follows on {domain}",
|
||||
"hints.profiles.see_more_posts": "See more posts on {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Replies from other servers may be missing.",
|
||||
"hints.threads.see_more": "See more replies on {domain}",
|
||||
"home.column_settings.show_quotes": "Show quotes",
|
||||
"home.column_settings.show_reblogs": "Show boosts",
|
||||
"home.column_settings.show_replies": "Show replies",
|
||||
|
|
@ -614,7 +612,7 @@
|
|||
"notification.moderation_warning.action_suspend": "Your account has been suspended.",
|
||||
"notification.own_poll": "Your poll has ended",
|
||||
"notification.poll": "A poll you voted in has ended",
|
||||
"notification.reblog": "{name} boosted your status",
|
||||
"notification.reblog": "{name} boosted your post",
|
||||
"notification.reblog.name_and_others_with_link": "{name} and <a>{count, plural, one {# other} other {# others}}</a> boosted your post",
|
||||
"notification.relationships_severance_event": "Lost connections with {name}",
|
||||
"notification.relationships_severance_event.account_suspension": "An admin from {from} has suspended {target}, which means you can no longer receive updates from them or interact with them.",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Reguligitaj serviloj",
|
||||
"about.contact": "Kontakto:",
|
||||
"about.default_locale": "기본",
|
||||
"about.default_locale": "Defaŭlta",
|
||||
"about.disclaimer": "Mastodon estas libera, malfermitkoda programo kaj varmarko de la firmao Mastodon gGmbH.",
|
||||
"about.domain_blocks.no_reason_available": "Kialo ne disponeblas",
|
||||
"about.domain_blocks.preamble": "Mastodon ĝenerale rajtigas vidi la enhavojn de uzantoj el aliaj serviloj en la fediverso, kaj komuniki kun ili. Jen la limigoj deciditaj de tiu ĉi servilo mem.",
|
||||
|
|
@ -331,6 +331,7 @@
|
|||
"featured_carousel.next": "Antaŭen",
|
||||
"featured_carousel.post": "Afiŝi",
|
||||
"featured_carousel.previous": "Malantaŭen",
|
||||
"featured_carousel.slide": "{index} de {total}",
|
||||
"filter_modal.added.context_mismatch_explanation": "Ĉi tiu filtrilkategorio ne kongruas kun la kunteksto en kiu vi akcesis ĉi tiun afiŝon. Se vi volas ke la afiŝo estas ankaŭ filtrita en ĉi tiu kunteksto, vi devus redakti la filtrilon.",
|
||||
"filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!",
|
||||
"filter_modal.added.expired_explanation": "Ĉi tiu filtrilkategorio eksvalidiĝis, vu bezonos ŝanĝi la eksvaliddaton por ĝi.",
|
||||
|
|
@ -409,8 +410,7 @@
|
|||
"hints.profiles.see_more_followers": "Vidi pli da sekvantoj sur {domain}",
|
||||
"hints.profiles.see_more_follows": "Vidi pli da sekvatoj sur {domain}",
|
||||
"hints.profiles.see_more_posts": "Vidi pli da afiŝoj sur {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Respondoj de aliaj serviloj eble mankas.",
|
||||
"hints.threads.see_more": "Vidi pli da respondoj sur {domain}",
|
||||
"home.column_settings.show_quotes": "Montri citaĵojn",
|
||||
"home.column_settings.show_reblogs": "Montri diskonigojn",
|
||||
"home.column_settings.show_replies": "Montri respondojn",
|
||||
"home.hide_announcements": "Kaŝi la anoncojn",
|
||||
|
|
@ -533,8 +533,10 @@
|
|||
"mute_modal.you_wont_see_mentions": "Vi ne vidos afiŝojn, kiuj mencias ilin.",
|
||||
"mute_modal.you_wont_see_posts": "Ili ankoraŭ povas vidi viajn afiŝojn, sed vi ne vidos iliajn.",
|
||||
"navigation_bar.about": "Pri",
|
||||
"navigation_bar.account_settings": "Pasvorto kaj sekureco",
|
||||
"navigation_bar.administration": "Administrado",
|
||||
"navigation_bar.advanced_interface": "Malfermi altnivelan retpaĝan interfacon",
|
||||
"navigation_bar.automated_deletion": "Aŭtomata forigo de afiŝoj",
|
||||
"navigation_bar.blocks": "Blokitaj uzantoj",
|
||||
"navigation_bar.bookmarks": "Legosignoj",
|
||||
"navigation_bar.direct": "Privataj mencioj",
|
||||
|
|
@ -544,6 +546,7 @@
|
|||
"navigation_bar.follow_requests": "Petoj de sekvado",
|
||||
"navigation_bar.followed_tags": "Sekvataj kradvortoj",
|
||||
"navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj",
|
||||
"navigation_bar.import_export": "Importo kaj eksporto",
|
||||
"navigation_bar.lists": "Listoj",
|
||||
"navigation_bar.logout": "Elsaluti",
|
||||
"navigation_bar.moderation": "Modereco",
|
||||
|
|
@ -551,6 +554,7 @@
|
|||
"navigation_bar.mutes": "Silentigitaj uzantoj",
|
||||
"navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.",
|
||||
"navigation_bar.preferences": "Preferoj",
|
||||
"navigation_bar.privacy_and_reach": "Privateco kaj atingo",
|
||||
"navigation_bar.search": "Serĉi",
|
||||
"not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.",
|
||||
"notification.admin.report": "{name} raportis {target}",
|
||||
|
|
@ -787,7 +791,7 @@
|
|||
"search.quick_action.open_url": "Malfermi URL en Mastodono",
|
||||
"search.quick_action.status_search": "Afiŝoj kiuj konformas kun {x}",
|
||||
"search.search_or_paste": "Serĉu aŭ algluu URL-on",
|
||||
"search_popout.full_text_search_disabled_message": "Ne havebla sur {domain}.",
|
||||
"search_popout.full_text_search_disabled_message": "Ne disponebla sur {domain}.",
|
||||
"search_popout.full_text_search_logged_out_message": "Disponebla nur kiam ensalutinte.",
|
||||
"search_popout.language_code": "ISO-lingva kodo",
|
||||
"search_popout.options": "Serĉaj opcioj",
|
||||
|
|
@ -820,6 +824,8 @@
|
|||
"status.bookmark": "Aldoni al la legosignoj",
|
||||
"status.cancel_reblog_private": "Ne plu diskonigi",
|
||||
"status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi",
|
||||
"status.context.load_new_replies": "Disponeblaj novaj respondoj",
|
||||
"status.context.loading": "Serĉante pliajn respondojn",
|
||||
"status.continued_thread": "Daŭrigis fadenon",
|
||||
"status.copy": "Kopii la ligilon al la afiŝo",
|
||||
"status.delete": "Forigi",
|
||||
|
|
@ -845,6 +851,9 @@
|
|||
"status.mute_conversation": "Silentigi konversacion",
|
||||
"status.open": "Pligrandigu ĉi tiun afiŝon",
|
||||
"status.pin": "Alpingli al la profilo",
|
||||
"status.quote_error.not_found": "Ĉi tiu afiŝo ne povas esti montrata.",
|
||||
"status.quote_error.rejected": "Ĉi tiu afiŝo ne povas esti montrata ĉar la originala aŭtoro ne permesas ĝian citadon.",
|
||||
"status.quote_error.removed": "Ĉi tiu afiŝo estis forigita de ĝia aŭtoro.",
|
||||
"status.read_more": "Legi pli",
|
||||
"status.reblog": "Diskonigi",
|
||||
"status.reblog_private": "Diskonigi kun la sama videbleco",
|
||||
|
|
@ -876,6 +885,7 @@
|
|||
"tabs_bar.home": "Hejmo",
|
||||
"tabs_bar.menu": "Menuo",
|
||||
"tabs_bar.notifications": "Sciigoj",
|
||||
"tabs_bar.publish": "Nova afiŝo",
|
||||
"tabs_bar.search": "Serĉi",
|
||||
"terms_of_service.effective_as_of": "Ĝi ekvalidas de {date}",
|
||||
"terms_of_service.title": "Kondiĉoj de uzado",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Ver más seguidores en {domain}",
|
||||
"hints.profiles.see_more_follows": "Ver más seguimientos en {domain}",
|
||||
"hints.profiles.see_more_posts": "Ver más mensajes en {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Es posible que falten respuestas de otros servidores.",
|
||||
"hints.threads.see_more": "Ver más respuestas en {domain}",
|
||||
"home.column_settings.show_quotes": "Mostrar citas",
|
||||
"home.column_settings.show_reblogs": "Mostrar adhesiones",
|
||||
"home.column_settings.show_replies": "Mostrar respuestas",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Marcar",
|
||||
"status.cancel_reblog_private": "Quitar adhesión",
|
||||
"status.cannot_reblog": "No se puede adherir a este mensaje",
|
||||
"status.context.load_new_replies": "Hay nuevas respuestas",
|
||||
"status.context.loading": "Buscando más respuestas",
|
||||
"status.continued_thread": "Continuación de hilo",
|
||||
"status.copy": "Copiar enlace al mensaje",
|
||||
"status.delete": "Eliminar",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Ver más seguidores en {domain}",
|
||||
"hints.profiles.see_more_follows": "Ver más perfiles seguidos en {domain}",
|
||||
"hints.profiles.see_more_posts": "Ver más publicaciones en {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Puede que no se muestren algunas respuestas de otros servidores.",
|
||||
"hints.threads.see_more": "Ver más respuestas en {domain}",
|
||||
"home.column_settings.show_quotes": "Mostrar citas",
|
||||
"home.column_settings.show_reblogs": "Mostrar impulsos",
|
||||
"home.column_settings.show_replies": "Mostrar respuestas",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Añadir marcador",
|
||||
"status.cancel_reblog_private": "Deshacer impulso",
|
||||
"status.cannot_reblog": "Esta publicación no puede ser impulsada",
|
||||
"status.context.load_new_replies": "Nuevas respuestas disponibles",
|
||||
"status.context.loading": "Comprobando si hay más respuestas",
|
||||
"status.continued_thread": "Hilo continuado",
|
||||
"status.copy": "Copiar enlace al estado",
|
||||
"status.delete": "Borrar",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Ver más seguidores en {domain}",
|
||||
"hints.profiles.see_more_follows": "Ver más perfiles seguidos en {domain}",
|
||||
"hints.profiles.see_more_posts": "Ver más publicaciones en {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Puede que no se muestren algunas respuestas de otros servidores.",
|
||||
"hints.threads.see_more": "Ver más respuestas en {domain}",
|
||||
"home.column_settings.show_quotes": "Mostrar citas",
|
||||
"home.column_settings.show_reblogs": "Mostrar impulsos",
|
||||
"home.column_settings.show_replies": "Mostrar respuestas",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Añadir marcador",
|
||||
"status.cancel_reblog_private": "Deshacer impulso",
|
||||
"status.cannot_reblog": "Esta publicación no se puede impulsar",
|
||||
"status.context.load_new_replies": "Hay nuevas respuestas",
|
||||
"status.context.loading": "Buscando más respuestas",
|
||||
"status.continued_thread": "Continuó el hilo",
|
||||
"status.copy": "Copiar enlace a la publicación",
|
||||
"status.delete": "Borrar",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Vaata rohkem jälgijaid kohas {domain}",
|
||||
"hints.profiles.see_more_follows": "Vaata rohkem jälgitavaid kohas {domain}",
|
||||
"hints.profiles.see_more_posts": "Vaata rohkem postitusi kohas {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Vastuseid teistest serveritest võib olla puudu.",
|
||||
"hints.threads.see_more": "Vaata rohkem vastuseid kohas {domain}",
|
||||
"home.column_settings.show_quotes": "Näita tsiteeritut",
|
||||
"home.column_settings.show_reblogs": "Näita jagamisi",
|
||||
"home.column_settings.show_replies": "Näita vastuseid",
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
"account.edit_profile": "Editatu profila",
|
||||
"account.enable_notifications": "Jakinarazi @{name} erabiltzaileak argitaratzean",
|
||||
"account.endorse": "Nabarmendu profilean",
|
||||
"account.familiar_followers_many": "Jarraitzaileak: {name1}, {name2} eta beste {othersCount, plural, one {ezagun bat} other {# ezagun}}",
|
||||
"account.familiar_followers_one": "{name1}-k jarraitzen du",
|
||||
"account.familiar_followers_two": "{name1}-k eta {name2}-k jarraitzen dute",
|
||||
"account.featured": "Gailenak",
|
||||
|
|
@ -118,6 +119,8 @@
|
|||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "traola erabiliena",
|
||||
"annual_report.summary.most_used_hashtag.none": "Bat ere ez",
|
||||
"annual_report.summary.new_posts.new_posts": "bidalketa berriak",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Horrek jartzen zaitu top </topLabel> <percentage> </percentage>(e)an <bottomLabel> {domain} erabiltzaileen artean </bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Bernieri ez diogu ezer esango ;)..",
|
||||
"annual_report.summary.thanks": "Eskerrik asko Mastodonen parte izateagatik!",
|
||||
"attachments_list.unprocessed": "(prozesatu gabe)",
|
||||
"audio.hide": "Ezkutatu audioa",
|
||||
|
|
@ -216,6 +219,7 @@
|
|||
"confirmations.discard_draft.edit.message": "Jarraitzeak editatzen ari zaren mezuan egindako aldaketak baztertuko ditu.",
|
||||
"confirmations.discard_draft.edit.title": "Baztertu zure argitalpenari egindako aldaketak?",
|
||||
"confirmations.discard_draft.post.cancel": "Zirriborroa berrekin",
|
||||
"confirmations.discard_draft.post.message": "Jarraituz gero, idazten ari zaren sarrera bertan behera geratuko da.",
|
||||
"confirmations.discard_draft.post.title": "Zure argitalpenaren zirriborroa baztertu nahi duzu?",
|
||||
"confirmations.discard_edit_media.confirm": "Baztertu",
|
||||
"confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?",
|
||||
|
|
@ -413,8 +417,6 @@
|
|||
"hints.profiles.see_more_followers": "Ikusi jarraitzaile gehiago {domain}-(e)n",
|
||||
"hints.profiles.see_more_follows": "Ikusi jarraitzaile gehiago {domain}-(e)n",
|
||||
"hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n",
|
||||
"hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.",
|
||||
"hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n",
|
||||
"home.column_settings.show_quotes": "Erakutsi aipamenak",
|
||||
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
|
||||
"home.column_settings.show_replies": "Erakutsi erantzunak",
|
||||
|
|
@ -435,6 +437,7 @@
|
|||
"ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?",
|
||||
"ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?",
|
||||
"info_button.label": "Laguntza",
|
||||
"info_button.what_is_alt_text": "<h1>Zer da Alt testua?</h1><p>Alt testuak irudiak deskribatzeko aukera ematen du, ikusmen-urritasunak, banda-zabalera txikiko konexioak edo testuinguru gehigarria nahi duten pertsonentzat.</p><p>Alt testu argi, zehatz eta objektiboen bidez, guztion irisgarritasuna eta ulermena hobetu ditzakezu.</p><ul><li>Hartu elementu garrantzitsuenak</li><li>Laburbildu irudietako testua</li><li>Erabili esaldien egitura erregularra</li><li>Baztertu informazio erredundantea.</li><li>Enfokatu joeretan eta funtsezko elementuetan irudi konplexuetan (diagrametan edo mapetan, adibidez)</li></ul>",
|
||||
"interaction_modal.action.favourite": "Jarraitzeko, zure kontutik atsegindu behar duzu.",
|
||||
"interaction_modal.action.follow": "Jarraitzeko zure kontutik jarraitu behar duzu.",
|
||||
"interaction_modal.action.reply": "Jarraitzeko zure kontutik erantzun behar duzu.",
|
||||
|
|
@ -903,6 +906,7 @@
|
|||
"video.hide": "Ezkutatu bideoa",
|
||||
"video.pause": "Pausatu",
|
||||
"video.play": "Jo",
|
||||
"video.skip_forward": "Jauzi aurrerantz",
|
||||
"video.unmute": "Soinua ezarri",
|
||||
"video.volume_down": "Bolumena jaitsi",
|
||||
"video.volume_up": "Bolumena Igo"
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "دیدن پیگیرندگان بیشتر روی {domain}",
|
||||
"hints.profiles.see_more_follows": "دیدن پیگرفتههای بیشتر روی {domain}",
|
||||
"hints.profiles.see_more_posts": "دیدن فرستههای بیشتر روی {domain}",
|
||||
"hints.threads.replies_may_be_missing": "شاید پاسخها از دیگر کارسازها نباشند.",
|
||||
"hints.threads.see_more": "دیدن پاسخهای بیشتر روی {domain}",
|
||||
"home.column_settings.show_quotes": "نمایش نقلقولها",
|
||||
"home.column_settings.show_reblogs": "نمایش تقویتها",
|
||||
"home.column_settings.show_replies": "نمایش پاسخها",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Näytä lisää seuraajia palvelimella {domain}",
|
||||
"hints.profiles.see_more_follows": "Näytä lisää seurattavia palvelimella {domain}",
|
||||
"hints.profiles.see_more_posts": "Näytä lisää julkaisuja palvelimella {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Muiden palvelinten vastauksia saattaa puuttua.",
|
||||
"hints.threads.see_more": "Näytä lisää vastauksia palvelimella {domain}",
|
||||
"home.column_settings.show_quotes": "Näytä lainaukset",
|
||||
"home.column_settings.show_reblogs": "Näytä tehostukset",
|
||||
"home.column_settings.show_replies": "Näytä vastaukset",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Lisää kirjanmerkki",
|
||||
"status.cancel_reblog_private": "Peru tehostus",
|
||||
"status.cannot_reblog": "Tätä julkaisua ei voi tehostaa",
|
||||
"status.context.load_new_replies": "Uusia vastauksia saatavilla",
|
||||
"status.context.loading": "Tarkistetaan lisävastauksia",
|
||||
"status.continued_thread": "Jatkoi ketjua",
|
||||
"status.copy": "Kopioi linkki julkaisuun",
|
||||
"status.delete": "Poista",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Sí fleiri fylgjarar á {domain}",
|
||||
"hints.profiles.see_more_follows": "Sí fleiri, ið viðkomandi fylgir, á {domain}",
|
||||
"hints.profiles.see_more_posts": "Sí fleiri postar á {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Svar frá øðrum ambætarum mangla møguliga.",
|
||||
"hints.threads.see_more": "Sí fleiri svar á {domain}",
|
||||
"home.column_settings.show_quotes": "Vís siteringar",
|
||||
"home.column_settings.show_reblogs": "Vís lyft",
|
||||
"home.column_settings.show_replies": "Vís svar",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Goym",
|
||||
"status.cancel_reblog_private": "Strika stimbran",
|
||||
"status.cannot_reblog": "Tað ber ikki til at stimbra hendan postin",
|
||||
"status.context.load_new_replies": "Nýggj svar tøk",
|
||||
"status.context.loading": "Kanni um tað eru fleiri svar",
|
||||
"status.continued_thread": "Framhaldandi tráður",
|
||||
"status.copy": "Kopiera leinki til postin",
|
||||
"status.delete": "Strika",
|
||||
|
|
|
|||
|
|
@ -423,8 +423,6 @@
|
|||
"hints.profiles.see_more_followers": "Afficher plus d'abonné·e·s sur {domain}",
|
||||
"hints.profiles.see_more_follows": "Afficher plus d'abonné·e·s sur {domain}",
|
||||
"hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
|
||||
"hints.threads.see_more": "Afficher plus de réponses sur {domain}",
|
||||
"home.column_settings.show_quotes": "Afficher les citations",
|
||||
"home.column_settings.show_reblogs": "Afficher boosts",
|
||||
"home.column_settings.show_replies": "Afficher réponses",
|
||||
|
|
|
|||
|
|
@ -423,8 +423,6 @@
|
|||
"hints.profiles.see_more_followers": "Afficher plus d'abonné·e·s sur {domain}",
|
||||
"hints.profiles.see_more_follows": "Afficher plus d'abonné·e·s sur {domain}",
|
||||
"hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
|
||||
"hints.threads.see_more": "Afficher plus de réponses sur {domain}",
|
||||
"home.column_settings.show_quotes": "Afficher les citations",
|
||||
"home.column_settings.show_reblogs": "Afficher les partages",
|
||||
"home.column_settings.show_replies": "Afficher les réponses",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Besjoch mear folgers op {domain}",
|
||||
"hints.profiles.see_more_follows": "Besjoch mear folge accounts op {domain}",
|
||||
"hints.profiles.see_more_posts": "Besjoch mear berjochten op {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Antwurden fan oare servers kinne ûntbrekke.",
|
||||
"hints.threads.see_more": "Besjoch mear reaksjes op {domain}",
|
||||
"home.column_settings.show_quotes": "Sitaten toane",
|
||||
"home.column_settings.show_reblogs": "Boosts toane",
|
||||
"home.column_settings.show_replies": "Reaksjes toane",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Féach ar a thuilleadh leantóirí ar {domain}",
|
||||
"hints.profiles.see_more_follows": "Féach tuilleadh seo a leanas ar {domain}",
|
||||
"hints.profiles.see_more_posts": "Féach ar a thuilleadh postálacha ar {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Seans go bhfuil freagraí ó fhreastalaithe eile in easnamh.",
|
||||
"hints.threads.see_more": "Féach ar a thuilleadh freagraí ar {domain}",
|
||||
"home.column_settings.show_quotes": "Taispeáin Sleachta",
|
||||
"home.column_settings.show_reblogs": "Taispeáin moltaí",
|
||||
"home.column_settings.show_replies": "Taispeán freagraí",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Leabharmharcanna",
|
||||
"status.cancel_reblog_private": "Dímhol",
|
||||
"status.cannot_reblog": "Ní féidir an phostáil seo a mholadh",
|
||||
"status.context.load_new_replies": "Freagraí nua ar fáil",
|
||||
"status.context.loading": "Ag seiceáil le haghaidh tuilleadh freagraí",
|
||||
"status.continued_thread": "Snáithe ar lean",
|
||||
"status.copy": "Cóipeáil an nasc chuig an bpostáil",
|
||||
"status.delete": "Scrios",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Faic barrachd luchd-leantainn air {domain}",
|
||||
"hints.profiles.see_more_follows": "Faic barrachd a tha 'gan leantainn air {domain}",
|
||||
"hints.profiles.see_more_posts": "Faic barrachd phostaichean air {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Dh’fhaoidte gu bheil freagairtean o fhrithealaichean eile a dhìth.",
|
||||
"hints.threads.see_more": "Faic barrachd fhreagairtean air {domain}",
|
||||
"home.column_settings.show_quotes": "Seall luaidhean",
|
||||
"home.column_settings.show_reblogs": "Seall na brosnachaidhean",
|
||||
"home.column_settings.show_replies": "Seall na freagairtean",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Mira máis seguidoras en {domain}",
|
||||
"hints.profiles.see_more_follows": "Mira máis seguimentos en {domain}",
|
||||
"hints.profiles.see_more_posts": "Mira máis publicacións en {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Poderían faltar respostas desde outros servidores.",
|
||||
"hints.threads.see_more": "Mira máis respostas en {domain}",
|
||||
"home.column_settings.show_quotes": "Mostrar citas",
|
||||
"home.column_settings.show_reblogs": "Amosar compartidos",
|
||||
"home.column_settings.show_replies": "Amosar respostas",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Marcar",
|
||||
"status.cancel_reblog_private": "Desfacer compartido",
|
||||
"status.cannot_reblog": "Esta publicación non pode ser promovida",
|
||||
"status.context.load_new_replies": "Non hai respostas dispoñibles",
|
||||
"status.context.loading": "Mirando se hai máis respostas",
|
||||
"status.continued_thread": "Continua co fío",
|
||||
"status.copy": "Copiar ligazón á publicación",
|
||||
"status.delete": "Eliminar",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "צפיה בעוד עוקבים משרת {domain}",
|
||||
"hints.profiles.see_more_follows": "צפיה בעוד נעקבים בשרת {domain}",
|
||||
"hints.profiles.see_more_posts": "צפיה בעוד פרסומים בשרת {domain}",
|
||||
"hints.threads.replies_may_be_missing": "תגובות משרתים אחרים עלולות להיות חסרות.",
|
||||
"hints.threads.see_more": "צפיה בעוד תגובות משרת {domain}",
|
||||
"home.column_settings.show_quotes": "הצגת ציטוטים",
|
||||
"home.column_settings.show_reblogs": "הצגת הדהודים",
|
||||
"home.column_settings.show_replies": "הצגת תגובות",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "סימניה",
|
||||
"status.cancel_reblog_private": "הסרת הדהוד",
|
||||
"status.cannot_reblog": "לא ניתן להדהד חצרוץ זה",
|
||||
"status.context.load_new_replies": "הגיעו תגובות חדשות",
|
||||
"status.context.loading": "מחפש תגובות חדשות",
|
||||
"status.continued_thread": "שרשור מתמשך",
|
||||
"status.copy": "העתק/י קישור להודעה זו",
|
||||
"status.delete": "מחיקה",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "További követők megtekintése itt: {domain}",
|
||||
"hints.profiles.see_more_follows": "További követések megtekintése itt: {domain}",
|
||||
"hints.profiles.see_more_posts": "További bejegyzések megtekintése itt: {domain}",
|
||||
"hints.threads.replies_may_be_missing": "A más kiszolgálókról érkező válaszok lehet, hogy hiányoznak.",
|
||||
"hints.threads.see_more": "További válaszok megtekintése itt: {domain}",
|
||||
"home.column_settings.show_quotes": "Idézetek megjelenítése",
|
||||
"home.column_settings.show_reblogs": "Megtolások megjelenítése",
|
||||
"home.column_settings.show_replies": "Válaszok megjelenítése",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Könyvjelzőzés",
|
||||
"status.cancel_reblog_private": "Megtolás visszavonása",
|
||||
"status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni",
|
||||
"status.context.load_new_replies": "Új válaszok érhetőek el",
|
||||
"status.context.loading": "További válaszok keresése",
|
||||
"status.continued_thread": "Folytatott szál",
|
||||
"status.copy": "Link másolása bejegyzésbe",
|
||||
"status.delete": "Törlés",
|
||||
|
|
|
|||
|
|
@ -404,8 +404,6 @@
|
|||
"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_posts": "Vider plus de messages sur {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Responsas de altere servitores pote mancar.",
|
||||
"hints.threads.see_more": "Vider plus de responsas sur {domain}",
|
||||
"home.column_settings.show_reblogs": "Monstrar impulsos",
|
||||
"home.column_settings.show_replies": "Monstrar responsas",
|
||||
"home.hide_announcements": "Celar annuncios",
|
||||
|
|
|
|||
|
|
@ -383,8 +383,6 @@
|
|||
"hints.profiles.see_more_followers": "Vidar plu multa sequanti sur {domain}",
|
||||
"hints.profiles.see_more_follows": "Vidar plu multa sequati sur {domain}",
|
||||
"hints.profiles.see_more_posts": "Vidar plu multa posti sur {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Respondi de altra servili forsan ne esas hike.",
|
||||
"hints.threads.see_more": "Vidar plu multa demandi sur {domain}",
|
||||
"home.column_settings.show_reblogs": "Montrar repeti",
|
||||
"home.column_settings.show_replies": "Montrar respondi",
|
||||
"home.hide_announcements": "Celez anunci",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Sjá fleiri fylgjendur á {domain}",
|
||||
"hints.profiles.see_more_follows": "Sjá fleiri sem þú fylgist með á {domain}",
|
||||
"hints.profiles.see_more_posts": "Sjá fleiri færslur á {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Svör af öðrum netþjónum gæti vantað.",
|
||||
"hints.threads.see_more": "Sjá fleiri svör á {domain}",
|
||||
"home.column_settings.show_quotes": "Birta tilvitnanir",
|
||||
"home.column_settings.show_reblogs": "Sýna endurbirtingar",
|
||||
"home.column_settings.show_replies": "Birta svör",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Bókamerki",
|
||||
"status.cancel_reblog_private": "Taka úr endurbirtingu",
|
||||
"status.cannot_reblog": "Þessa færslu er ekki hægt að endurbirta",
|
||||
"status.context.load_new_replies": "Ný svör hafa borist",
|
||||
"status.context.loading": "Athuga með fleiri svör",
|
||||
"status.continued_thread": "Hélt samtali áfram",
|
||||
"status.copy": "Afrita tengil í færslu",
|
||||
"status.delete": "Eyða",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Vedi altri seguaci su {domain}",
|
||||
"hints.profiles.see_more_follows": "Vedi altri profili seguiti su {domain}",
|
||||
"hints.profiles.see_more_posts": "Vedi altri post su {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Le risposte da altri server potrebbero essere mancanti.",
|
||||
"hints.threads.see_more": "Vedi altre risposte su {domain}",
|
||||
"home.column_settings.show_quotes": "Mostra le citazioni",
|
||||
"home.column_settings.show_reblogs": "Mostra reblog",
|
||||
"home.column_settings.show_replies": "Mostra risposte",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Aggiungi segnalibro",
|
||||
"status.cancel_reblog_private": "Annulla reblog",
|
||||
"status.cannot_reblog": "Questo post non può essere condiviso",
|
||||
"status.context.load_new_replies": "Nuove risposte disponibili",
|
||||
"status.context.loading": "Controllo per altre risposte",
|
||||
"status.continued_thread": "Discussione continua",
|
||||
"status.copy": "Copia link al post",
|
||||
"status.delete": "Elimina",
|
||||
|
|
|
|||
|
|
@ -423,8 +423,6 @@
|
|||
"hints.profiles.see_more_followers": "{domain} で正確な情報を見る",
|
||||
"hints.profiles.see_more_follows": "{domain} で正確な情報を見る",
|
||||
"hints.profiles.see_more_posts": "{domain} でその他の投稿を見る",
|
||||
"hints.threads.replies_may_be_missing": "リモートの返信は表示されない場合があります。",
|
||||
"hints.threads.see_more": "{domain} でその他の返信を見る",
|
||||
"home.column_settings.show_quotes": "引用を表示",
|
||||
"home.column_settings.show_reblogs": "ブースト表示",
|
||||
"home.column_settings.show_replies": "返信表示",
|
||||
|
|
|
|||
|
|
@ -297,8 +297,6 @@
|
|||
"hashtag.follow": "Ḍfeṛ ahacṭag",
|
||||
"hashtag.mute": "Sgugem #{hashtag}",
|
||||
"hashtags.and_other": "…d {count, plural, one {}other {# nniḍen}}",
|
||||
"hints.threads.replies_may_be_missing": "Tiririyin d-yusan deg iqeddacen nniḍen, yezmer ur d-ddant ara.",
|
||||
"hints.threads.see_more": "Wali ugar n tririt deg {domain}",
|
||||
"home.column_settings.show_reblogs": "Ssken-d beṭṭu",
|
||||
"home.column_settings.show_replies": "Ssken-d tiririyin",
|
||||
"home.hide_announcements": "Ffer ulɣuyen",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Модерацияланған серверлер",
|
||||
"about.contact": "Байланыс:",
|
||||
"about.default_locale": "Әдепкі",
|
||||
"about.disclaimer": "Mastodon деген тегін, бастапқы коды ашық бағдарламалық жасақтама және Mastodon gGmbH-тің сауда маркасы.",
|
||||
"about.domain_blocks.no_reason_available": "Себеп қолжетімсіз",
|
||||
"about.domain_blocks.preamble": "Mastodon әдетте сізге Fediverse'тің кез келген серверінің қолданушыларының контентін көріп, олармен байланысуға мүмкіндік береді. Осы белгілі серверде жасалған ережеден тыс жағдайлар міне.",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "{domain}에서 더 많은 팔로워 보기",
|
||||
"hints.profiles.see_more_follows": "{domain}에서 더 많은 팔로우 보기",
|
||||
"hints.profiles.see_more_posts": "{domain}에서 더 많은 게시물 보기",
|
||||
"hints.threads.replies_may_be_missing": "다른 서버의 답글은 일부 누락되었을 수 있습니다.",
|
||||
"hints.threads.see_more": "{domain}에서 더 많은 답글 보기",
|
||||
"home.column_settings.show_quotes": "인용 보기",
|
||||
"home.column_settings.show_reblogs": "부스트 표시",
|
||||
"home.column_settings.show_replies": "답글 표시",
|
||||
|
|
|
|||
|
|
@ -272,7 +272,6 @@
|
|||
"hashtag.column_settings.tag_toggle": "Ji bo vê stûnê hin pêvekan tevlî bike",
|
||||
"hashtag.follow": "Hashtagê bişopîne",
|
||||
"hashtag.unfollow": "Hashtagê neşopîne",
|
||||
"hints.threads.replies_may_be_missing": "Beriv ji rajekarên din dibe ku wendayî bin.",
|
||||
"home.column_settings.show_reblogs": "Bilindkirinan nîşan bike",
|
||||
"home.column_settings.show_replies": "Bersivan nîşan bide",
|
||||
"home.hide_announcements": "Reklaman veşêre",
|
||||
|
|
|
|||
|
|
@ -368,8 +368,6 @@
|
|||
"hints.profiles.see_more_followers": "Ve mas suivantes en {domain}",
|
||||
"hints.profiles.see_more_follows": "Ve mas segidos en {domain}",
|
||||
"hints.profiles.see_more_posts": "Ve mas puvlikasyones en {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Puede mankar repuestas de otros sirvidores.",
|
||||
"hints.threads.see_more": "Ve mas repuestas en {domain}",
|
||||
"home.column_settings.show_reblogs": "Amostra repartajasyones",
|
||||
"home.column_settings.show_replies": "Amostra repuestas",
|
||||
"home.hide_announcements": "Eskonde pregones",
|
||||
|
|
|
|||
|
|
@ -396,8 +396,6 @@
|
|||
"hints.profiles.see_more_followers": "Žiūrėti daugiau sekėjų serveryje {domain}",
|
||||
"hints.profiles.see_more_follows": "Žiūrėti daugiau sekimų serveryje {domain}",
|
||||
"hints.profiles.see_more_posts": "Žiūrėti daugiau įrašų serveryje {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Atsakymai iš kitų serverių gali būti nepateikti.",
|
||||
"hints.threads.see_more": "Žiūrėti daugiau atsakymų serveryje {domain}",
|
||||
"home.column_settings.show_reblogs": "Rodyti pakėlimus",
|
||||
"home.column_settings.show_replies": "Rodyti atsakymus",
|
||||
"home.hide_announcements": "Slėpti skelbimus",
|
||||
|
|
|
|||
|
|
@ -386,8 +386,6 @@
|
|||
"hints.profiles.see_more_followers": "Skatīt vairāk sekotāju {domain}",
|
||||
"hints.profiles.see_more_follows": "Skatīt vairāk sekojumu {domain}",
|
||||
"hints.profiles.see_more_posts": "Skatīt vairāk ierakstu {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Var trūkt atbilžu no citiem serveriem.",
|
||||
"hints.threads.see_more": "Skatīt vairāk atbilžu {domain}",
|
||||
"home.column_settings.show_quotes": "Rādīt citātus",
|
||||
"home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus",
|
||||
"home.column_settings.show_replies": "Rādīt atbildes",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "佇 {domain} 看koh khah tsē跟tuè lí ê",
|
||||
"hints.profiles.see_more_follows": "佇 {domain} 看koh khah tsē lí跟tuè ê",
|
||||
"hints.profiles.see_more_posts": "佇 {domain} 看koh khah tsē ê PO文",
|
||||
"hints.threads.replies_may_be_missing": "Tuì其他ê服侍器來ê回應可能有phah m̄見。",
|
||||
"hints.threads.see_more": "佇 {domain} 看koh khah tsē ê回應",
|
||||
"home.column_settings.show_quotes": "顯示引用",
|
||||
"home.column_settings.show_reblogs": "顯示轉PO",
|
||||
"home.column_settings.show_replies": "顯示回應",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Bekijk meer volgers op {domain}",
|
||||
"hints.profiles.see_more_follows": "Bekijk meer gevolgde accounts op {domain}",
|
||||
"hints.profiles.see_more_posts": "Bekijk meer berichten op {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Antwoorden van andere servers kunnen ontbreken.",
|
||||
"hints.threads.see_more": "Bekijk meer reacties op {domain}",
|
||||
"home.column_settings.show_quotes": "Citaten tonen",
|
||||
"home.column_settings.show_reblogs": "Boosts tonen",
|
||||
"home.column_settings.show_replies": "Reacties tonen",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Bladwijzer toevoegen",
|
||||
"status.cancel_reblog_private": "Niet langer boosten",
|
||||
"status.cannot_reblog": "Dit bericht kan niet geboost worden",
|
||||
"status.context.load_new_replies": "Nieuwe reacties beschikbaar",
|
||||
"status.context.loading": "Op nieuwe reacties aan het controleren",
|
||||
"status.continued_thread": "Vervolg van gesprek",
|
||||
"status.copy": "Link naar bericht kopiëren",
|
||||
"status.delete": "Verwijderen",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Sjå fleire fylgjarar på {domain}",
|
||||
"hints.profiles.see_more_follows": "Sjå fleire fylgjer på {domain}",
|
||||
"hints.profiles.see_more_posts": "Sjå fleire innlegg på {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Svar frå andre tenarar manglar kanskje.",
|
||||
"hints.threads.see_more": "Sjå fleire svar på {domain}",
|
||||
"home.column_settings.show_quotes": "Vis sitat",
|
||||
"home.column_settings.show_reblogs": "Vis framhevingar",
|
||||
"home.column_settings.show_replies": "Vis svar",
|
||||
|
|
|
|||
|
|
@ -417,8 +417,6 @@
|
|||
"hints.profiles.see_more_followers": "Se flere følgere på {domain}",
|
||||
"hints.profiles.see_more_follows": "Se flere som følger på {domain}",
|
||||
"hints.profiles.see_more_posts": "Se flere innlegg på {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Svar fra andre servere mangler kanskje.",
|
||||
"hints.threads.see_more": "Se flere svar på {domain}",
|
||||
"home.column_settings.show_quotes": "Vis sitater",
|
||||
"home.column_settings.show_reblogs": "Vis fremhevinger",
|
||||
"home.column_settings.show_replies": "Vis svar",
|
||||
|
|
|
|||
|
|
@ -276,7 +276,6 @@
|
|||
"hints.profiles.see_more_followers": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋਅਰ ਵੇਖੋ",
|
||||
"hints.profiles.see_more_follows": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋ ਨੂੰ ਵੇਖੋ",
|
||||
"hints.profiles.see_more_posts": "{domain} ਉੱਤੇ ਹੋਰ ਪੋਸਟਾਂ ਨੂੰ ਵੇਖੋ",
|
||||
"hints.threads.see_more": "{domain} ਤੋਂ ਹੋਰ ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ",
|
||||
"home.column_settings.show_reblogs": "ਬੂਸਟਾਂ ਨੂੰ ਵੇਖੋ",
|
||||
"home.column_settings.show_replies": "ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ",
|
||||
"home.hide_announcements": "ਐਲਾਨਾਂ ਨੂੰ ਓਹਲੇ ਕਰੋ",
|
||||
|
|
|
|||
|
|
@ -383,8 +383,6 @@
|
|||
"hints.profiles.see_more_followers": "Zobacz więcej obserwujących na {domain}",
|
||||
"hints.profiles.see_more_follows": "Zobacz więcej obserwowanych na {domain}",
|
||||
"hints.profiles.see_more_posts": "Zobacz więcej wpisów na {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Komentarze z innych serwerów mogą być niewidoczne.",
|
||||
"hints.threads.see_more": "Zobacz więcej komentarzy na {domain}",
|
||||
"home.column_settings.show_reblogs": "Pokazuj podbicia",
|
||||
"home.column_settings.show_replies": "Pokazuj odpowiedzi",
|
||||
"home.hide_announcements": "Ukryj ogłoszenia",
|
||||
|
|
|
|||
|
|
@ -414,8 +414,6 @@
|
|||
"hints.profiles.see_more_followers": "Ver mais seguidores no {domain}",
|
||||
"hints.profiles.see_more_follows": "Ver mais seguidores no {domain}",
|
||||
"hints.profiles.see_more_posts": "Ver mais publicações em {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Respostas de outros servidores podem estar faltando.",
|
||||
"hints.threads.see_more": "Ver mais respostas no {domain}",
|
||||
"home.column_settings.show_reblogs": "Mostrar boosts",
|
||||
"home.column_settings.show_replies": "Mostrar respostas",
|
||||
"home.hide_announcements": "Ocultar comunicados",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Ver mais seguidores em {domain}",
|
||||
"hints.profiles.see_more_follows": "Ver mais perfis seguidos em {domain}",
|
||||
"hints.profiles.see_more_posts": "Ver mais publicações em {domain}",
|
||||
"hints.threads.replies_may_be_missing": "É possível que não estejam a ser mostradas todas as respostas de outros servidores.",
|
||||
"hints.threads.see_more": "Ver mais respostas em {domain}",
|
||||
"home.column_settings.show_quotes": "Mostrar citações",
|
||||
"home.column_settings.show_reblogs": "Mostrar impulsos",
|
||||
"home.column_settings.show_replies": "Mostrar respostas",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Guardar nos marcadores",
|
||||
"status.cancel_reblog_private": "Retirar impulso",
|
||||
"status.cannot_reblog": "Esta publicação não pode ser impulsionada",
|
||||
"status.context.load_new_replies": "Novas respostas disponíveis",
|
||||
"status.context.loading": "A verificar por mais respostas",
|
||||
"status.continued_thread": "Continuação da conversa",
|
||||
"status.copy": "Copiar hiperligação da publicação",
|
||||
"status.delete": "Eliminar",
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
"account.followers_counter": "{count, plural, one {{counter} подписчик} few {{counter} подписчика} other {{counter} подписчиков}}",
|
||||
"account.followers_you_know_counter": "{count, plural, one {{counter} ваш знакомый} other {{counter} ваших знакомых}}",
|
||||
"account.following": "Подписки",
|
||||
"account.following_counter": "{count, plural, one {# подписка} many {# подписок} other {# подписки}}",
|
||||
"account.following_counter": "{count, plural, one {{counter} подписка} few {{counter} подписки} many {{counter} подписок} other {{counter} подписок}}",
|
||||
"account.follows.empty": "Этот пользователь пока ни на кого не подписался.",
|
||||
"account.follows_you": "Подписан(а) на вас",
|
||||
"account.go_to_profile": "Перейти к профилю",
|
||||
|
|
@ -273,7 +273,7 @@
|
|||
"domain_block_modal.they_cant_follow": "Пользователи с этого сервера не смогут подписаться на вас.",
|
||||
"domain_block_modal.they_wont_know": "Пользователи с этого сервера не будут знать, что вы их блокируете.",
|
||||
"domain_block_modal.title": "Заблокировать домен?",
|
||||
"domain_block_modal.you_will_lose_num_followers": "Вы потеряете {followersCount, plural, one {{followersCountDisplay} подписчика} few {{followersCountDisplay} подписчика} other {{followersCountDisplay} подписчиков}} и {followingCount, plural, one {{followingCountDisplay} подписку} few {{followingCountDisplay} подписки} other {{followingCountDisplay} подписок}}.",
|
||||
"domain_block_modal.you_will_lose_num_followers": "Вы потеряете {followersCount, plural, one {{followersCountDisplay} подписчика} few {{followersCountDisplay} подписчиков} other {{followersCountDisplay} подписчиков}} и {followingCount, plural, one {{followingCountDisplay} подписку} few {{followingCountDisplay} подписки} other {{followingCountDisplay} подписок}}.",
|
||||
"domain_block_modal.you_will_lose_relationships": "Вы потеряете все подписки и всех подписчиков с этого сервера.",
|
||||
"domain_block_modal.you_wont_see_posts": "Вы не будете видеть посты и уведомления от пользователей с этого сервера.",
|
||||
"domain_pill.activitypub_lets_connect": "Благодаря ему вы можете связываться и взаимодействовать не только с пользователями Mastodon, но и с пользователями других платформ.",
|
||||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Перейдите на {domain}, чтобы увидеть всех подписчиков",
|
||||
"hints.profiles.see_more_follows": "Перейдите на {domain}, чтобы увидеть все подписки",
|
||||
"hints.profiles.see_more_posts": "Перейдите на {domain}, чтобы увидеть все посты",
|
||||
"hints.threads.replies_may_be_missing": "Некоторые ответы с других серверов могут здесь отсутствовать.",
|
||||
"hints.threads.see_more": "Перейдите на {domain}, чтобы увидеть все ответы",
|
||||
"home.column_settings.show_quotes": "Показывать цитирования",
|
||||
"home.column_settings.show_reblogs": "Показывать продвижения",
|
||||
"home.column_settings.show_replies": "Показывать ответы",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Serbidores moderados",
|
||||
"about.contact": "Cuntatu:",
|
||||
"about.default_locale": "Predefinidu",
|
||||
"about.disclaimer": "Mastodon est software de còdighe lìberu e unu màrchiu de Mastodon gGmbH.",
|
||||
"about.domain_blocks.no_reason_available": "Peruna resone a disponimentu",
|
||||
"about.domain_blocks.preamble": "Mastodon ti permitit de bìdere su cuntenutu de utentes de cale si siat àteru serbidore de su fediversu. Custas sunt etzetziones fatas in custu serbidore ispetzìficu.",
|
||||
|
|
@ -8,6 +9,7 @@
|
|||
"about.domain_blocks.silenced.title": "Limitadu",
|
||||
"about.domain_blocks.suspended.explanation": "Perunu datu de custu serbidore at a èssere protzessadu, immagasinadu o cuncambiadu; est impossìbile duncas cale si siat interatzione o comunicatzione cun is utentes de custu serbidore.",
|
||||
"about.domain_blocks.suspended.title": "Suspèndidu",
|
||||
"about.language_label": "Idioma",
|
||||
"about.not_available": "Custa informatzione no est istada posta a disponimentu in custu serbidore.",
|
||||
"about.powered_by": "Rete sotziale detzentralizada impulsada dae {mastodon}",
|
||||
"about.rules": "Règulas de su serbidore",
|
||||
|
|
@ -19,13 +21,21 @@
|
|||
"account.block_domain": "Bloca su domìniu {domain}",
|
||||
"account.block_short": "Bloca",
|
||||
"account.blocked": "Blocadu",
|
||||
"account.blocking": "Blocadu",
|
||||
"account.cancel_follow_request": "Annulla sa sighidura",
|
||||
"account.copy": "Còpia su ligòngiu a su profilu",
|
||||
"account.direct": "Mèntova a @{name} in privadu",
|
||||
"account.disable_notifications": "Non mi notìfiches prus cando @{name} pùblichet messàgios",
|
||||
"account.domain_blocking": "Blocamus su domìniu",
|
||||
"account.edit_profile": "Modìfica profilu",
|
||||
"account.enable_notifications": "Notìfica·mi cando @{name} pùblicat messàgios",
|
||||
"account.endorse": "Cussìgia in su profilu tuo",
|
||||
"account.familiar_followers_many": "Sighidu dae {name1}, {name2} e {othersCount, plural,one {un'àtera persone chi connosches} other {àteras # persones chi connosches}}",
|
||||
"account.familiar_followers_one": "Sighidu dae {name1}",
|
||||
"account.familiar_followers_two": "Sighidu dae {name1} e {name2}",
|
||||
"account.featured": "In evidèntzia",
|
||||
"account.featured.accounts": "Profilos",
|
||||
"account.featured.hashtags": "Etichetas",
|
||||
"account.featured_tags.last_status_at": "Ùrtima publicatzione in su {date}",
|
||||
"account.featured_tags.last_status_never": "Peruna publicatzione",
|
||||
"account.follow": "Sighi",
|
||||
|
|
@ -33,9 +43,11 @@
|
|||
"account.followers": "Sighiduras",
|
||||
"account.followers.empty": "Nemos sighit ancora custa persone.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} sighidura} other {{counter} sighiduras}}",
|
||||
"account.followers_you_know_counter": "{counter} chi connosches",
|
||||
"account.following": "Sighende",
|
||||
"account.following_counter": "{count, plural, one {sighende a {counter}} other {sighende a {counter}}}",
|
||||
"account.follows.empty": "Custa persone non sighit ancora a nemos.",
|
||||
"account.follows_you": "Ti sighit",
|
||||
"account.go_to_profile": "Bae a su profilu",
|
||||
"account.hide_reblogs": "Cua is cumpartziduras de @{name}",
|
||||
"account.in_memoriam": "In memoriam.",
|
||||
|
|
@ -50,18 +62,22 @@
|
|||
"account.mute_notifications_short": "Pone is notìficas a sa muda",
|
||||
"account.mute_short": "A sa muda",
|
||||
"account.muted": "A sa muda",
|
||||
"account.muting": "A sa muda",
|
||||
"account.no_bio": "Peruna descritzione frunida.",
|
||||
"account.open_original_page": "Aberi sa pàgina originale",
|
||||
"account.posts": "Publicatziones",
|
||||
"account.posts_with_replies": "Publicatziones e rispostas",
|
||||
"account.remove_from_followers": "Cantzella a {name} dae is sighiduras",
|
||||
"account.report": "Signala @{name}",
|
||||
"account.requested": "Abetende s'aprovatzione. Incarca pro annullare sa rechesta de sighidura",
|
||||
"account.requested_follow": "{name} at dimandadu de ti sighire",
|
||||
"account.requests_to_follow_you": "Rechestas de sighidura",
|
||||
"account.share": "Cumpartzi su profilu de @{name}",
|
||||
"account.show_reblogs": "Ammustra is cumpartziduras de @{name}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}",
|
||||
"account.unblock": "Isbloca a @{name}",
|
||||
"account.unblock_domain": "Isbloca su domìniu {domain}",
|
||||
"account.unblock_domain_short": "Isbloca",
|
||||
"account.unblock_short": "Isbloca",
|
||||
"account.unendorse": "Non cussiges in su profilu",
|
||||
"account.unfollow": "Non sigas prus",
|
||||
|
|
@ -83,7 +99,22 @@
|
|||
"alert.unexpected.message": "Ddoe est istada una faddina.",
|
||||
"alert.unexpected.title": "Oh!",
|
||||
"alt_text_badge.title": "Testu alternativu",
|
||||
"alt_text_modal.add_alt_text": "Agiunghe testu alternativu",
|
||||
"alt_text_modal.add_text_from_image": "Agiunghe testu dae un'immàgine",
|
||||
"alt_text_modal.cancel": "Annulla",
|
||||
"alt_text_modal.change_thumbnail": "Càmbia sa miniadura",
|
||||
"alt_text_modal.done": "Fatu",
|
||||
"announcement.announcement": "Annùntziu",
|
||||
"annual_report.summary.archetype.booster": "Semper a s'ùrtima",
|
||||
"annual_report.summary.followers.followers": "sighiduras",
|
||||
"annual_report.summary.followers.total": "{count} totale",
|
||||
"annual_report.summary.highlighted_post.possessive": "de {name}",
|
||||
"annual_report.summary.most_used_app.most_used_app": "aplicatzione prus impreada",
|
||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "eticheta prus impreada",
|
||||
"annual_report.summary.most_used_hashtag.none": "Peruna",
|
||||
"annual_report.summary.new_posts.new_posts": "publicatziones noas",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "No dd'amus a nàrrere a Bernie.",
|
||||
"annual_report.summary.thanks": "Gràtzias de èssere parte de Mastodon!",
|
||||
"attachments_list.unprocessed": "(non protzessadu)",
|
||||
"audio.hide": "Cua s'àudio",
|
||||
"block_modal.remote_users_caveat": "Amus a pedire a su serbidore {domain} de rispetare sa detzisione tua. Nointames custu, su rispetu no est garantidu ca unos cantos serbidores diant pòdere gestire is blocos de manera diferente. Is publicatzione pùblicas diant pòdere ancora èssere visìbiles a is utentes chi no ant fatu s'atzessu.",
|
||||
|
|
@ -107,6 +138,7 @@
|
|||
"bundle_column_error.routing.body": "Impossìbile agatare sa pàgina rechesta. Seguru chi s'URL in sa barra de indiritzos est curretu?",
|
||||
"bundle_column_error.routing.title": "404",
|
||||
"bundle_modal_error.close": "Serra",
|
||||
"bundle_modal_error.message": "Faddina in su carrigamentu de custu ischermu.",
|
||||
"bundle_modal_error.retry": "Torra·bi a proare",
|
||||
"closed_registrations.other_server_instructions": "Dae chi Mastodon est detzentralizadu, podes creare unu contu in un'àteru serbidore e interagire cun custu.",
|
||||
"closed_registrations_modal.description": "Sa creatzione de contos in {domain} no est possìbile in custu momentu, però tene in cunsideru chi non tenes bisòngiu de unu contu ispetzìficu in {domain} pro impreare Mastodon.",
|
||||
|
|
@ -116,13 +148,16 @@
|
|||
"column.blocks": "Persones blocadas",
|
||||
"column.bookmarks": "Sinnalibros",
|
||||
"column.community": "Lìnia de tempus locale",
|
||||
"column.create_list": "Crea una lista",
|
||||
"column.direct": "Mentziones privadas",
|
||||
"column.directory": "Nàviga in is profilos",
|
||||
"column.domain_blocks": "Domìnios blocados",
|
||||
"column.edit_list": "Modifica sa lista",
|
||||
"column.favourites": "Preferidos",
|
||||
"column.firehose": "Publicatziones in direta",
|
||||
"column.follow_requests": "Rechestas de sighidura",
|
||||
"column.home": "Printzipale",
|
||||
"column.list_members": "Gesti is persones de sa lista",
|
||||
"column.lists": "Listas",
|
||||
"column.mutes": "Persones a sa muda",
|
||||
"column.notifications": "Notìficas",
|
||||
|
|
@ -135,6 +170,7 @@
|
|||
"column_header.pin": "Apica",
|
||||
"column_header.show_settings": "Ammustra is cunfiguratziones",
|
||||
"column_header.unpin": "Boga dae pitzu",
|
||||
"column_search.cancel": "Annulla",
|
||||
"community.column_settings.local_only": "Isceti locale",
|
||||
"community.column_settings.media_only": "Isceti multimediale",
|
||||
"community.column_settings.remote_only": "Isceti remotu",
|
||||
|
|
@ -152,6 +188,7 @@
|
|||
"compose_form.poll.duration": "Longària de su sondàgiu",
|
||||
"compose_form.poll.multiple": "Sèberu mùltiplu",
|
||||
"compose_form.poll.option_placeholder": "Optzione {number}",
|
||||
"compose_form.poll.single": "Sèberu ùnicu",
|
||||
"compose_form.poll.switch_to_multiple": "Muda su sondàgiu pro permìtere multi-optziones",
|
||||
"compose_form.poll.switch_to_single": "Muda su sondàgiu pro permìtere un'optzione isceti",
|
||||
"compose_form.poll.type": "Istile",
|
||||
|
|
@ -169,6 +206,8 @@
|
|||
"confirmations.delete_list.confirm": "Cantzella",
|
||||
"confirmations.delete_list.message": "Seguru chi boles cantzellare custa lista in manera permanente?",
|
||||
"confirmations.delete_list.title": "Cantzellare sa lista?",
|
||||
"confirmations.discard_draft.confirm": "Iscarta e sighi",
|
||||
"confirmations.discard_draft.edit.cancel": "Sighi cun s'editzione",
|
||||
"confirmations.discard_edit_media.confirm": "Iscarta",
|
||||
"confirmations.discard_edit_media.message": "Tenes modìficas non sarvadas a is descritziones o a is anteprimas de is cuntenutos, ddas boles iscartare su matessi?",
|
||||
"confirmations.logout.confirm": "Essi·nche",
|
||||
|
|
@ -256,6 +295,7 @@
|
|||
"explore.trending_links": "Noas",
|
||||
"explore.trending_statuses": "Publicatziones",
|
||||
"explore.trending_tags": "Etichetas",
|
||||
"featured_carousel.slide": "{index} de {total}",
|
||||
"filter_modal.added.context_mismatch_title": "Su cuntestu non currispondet.",
|
||||
"filter_modal.added.expired_title": "Filtru iscadidu.",
|
||||
"filter_modal.added.review_and_configure_title": "Cunfiguratziones de filtru",
|
||||
|
|
@ -294,8 +334,12 @@
|
|||
"footer.privacy_policy": "Polìtica de riservadesa",
|
||||
"footer.source_code": "Ammustra su còdighe de orìgine",
|
||||
"footer.status": "Istadu",
|
||||
"footer.terms_of_service": "Cunditziones de su servìtziu",
|
||||
"generic.saved": "Sarvadu",
|
||||
"getting_started.heading": "Comente cumintzare",
|
||||
"hashtag.admin_moderation": "Aberi s'interfache de moderatzione pro #{name}",
|
||||
"hashtag.browse": "Nàviga in is publicatziones de #{hashtag}",
|
||||
"hashtag.browse_from_account": "Nàviga in is publicatziones de @{name} in #{hashtag}",
|
||||
"hashtag.column_header.tag_mode.all": "e {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "sena {additional}",
|
||||
|
|
@ -308,13 +352,14 @@
|
|||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} partetzipante} other {{counter} partetzipantes}}",
|
||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}",
|
||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}} oe",
|
||||
"hashtag.feature": "In evidèntzia in su profilu",
|
||||
"hashtag.follow": "Sighi su hashtag",
|
||||
"hashtag.mute": "Pone #{hashtag} a sa muda",
|
||||
"hashtag.unfeature": "No ddu pòngias in evidèntzia in su profilu",
|
||||
"hashtag.unfollow": "Non sigas prus s'eticheta",
|
||||
"hashtags.and_other": "… e {count, plural, one {un'àteru} other {àteros #}}",
|
||||
"hints.profiles.posts_may_be_missing": "Podet èssere chi ammanchent tzertas publicatziones de custu profilu.",
|
||||
"hints.profiles.see_more_posts": "Bide prus publicatziones a {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Podet èssere chi ammanchent rispostas dae àteros serbidores.",
|
||||
"hints.threads.see_more": "Bide prus rispostas a {domain}",
|
||||
"home.column_settings.show_reblogs": "Ammustra is cumpartziduras",
|
||||
"home.column_settings.show_replies": "Ammustra rispostas",
|
||||
"home.hide_announcements": "Cua annùntzios",
|
||||
|
|
@ -326,9 +371,14 @@
|
|||
"ignore_notifications_modal.filter_instead": "Opuru filtra",
|
||||
"ignore_notifications_modal.filter_to_act_users": "As a pòdere ancora atzetare, refudare o sinnalare a utentes",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "Filtrare agiudat a evitare possìbiles confusiones",
|
||||
"info_button.label": "Agiudu",
|
||||
"interaction_modal.go": "Sighi",
|
||||
"interaction_modal.no_account_yet": "Non tenes galu perunu contu?",
|
||||
"interaction_modal.on_another_server": "In un'àteru serbidore",
|
||||
"interaction_modal.on_this_server": "In custu serbidore",
|
||||
"interaction_modal.title.follow": "Sighi a {name}",
|
||||
"interaction_modal.title.reply": "Risponde a sa publicatzione de {name}",
|
||||
"interaction_modal.username_prompt": "Pro es., {example}",
|
||||
"intervals.full.days": "{number, plural, one {# die} other {# dies}}",
|
||||
"intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}",
|
||||
|
|
@ -341,6 +391,7 @@
|
|||
"keyboard_shortcuts.direct": "pro abèrrere sa colunna de mèntovos privados",
|
||||
"keyboard_shortcuts.down": "Move in bàsciu in sa lista",
|
||||
"keyboard_shortcuts.enter": "Aberi una publicatzione",
|
||||
"keyboard_shortcuts.favourite": "Publicatzione preferida",
|
||||
"keyboard_shortcuts.favourites": "Aberi sa lista de preferidos",
|
||||
"keyboard_shortcuts.federated": "Aberi sa lìnia de tempus federada",
|
||||
"keyboard_shortcuts.heading": "Incurtzaduras de tecladu",
|
||||
|
|
@ -363,18 +414,25 @@
|
|||
"keyboard_shortcuts.toggle_hidden": "Ammustra o cua su testu de is AC",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "Ammustra/cua elementos multimediales",
|
||||
"keyboard_shortcuts.toot": "Cumintza a iscrìere una publicatzione noa",
|
||||
"keyboard_shortcuts.translate": "pro tradùere una publicatzione",
|
||||
"keyboard_shortcuts.unfocus": "Essi de s'àrea de cumpositzione de testu o de chirca",
|
||||
"keyboard_shortcuts.up": "Move in susu in sa lista",
|
||||
"lightbox.close": "Serra",
|
||||
"lightbox.next": "Imbeniente",
|
||||
"lightbox.previous": "Pretzedente",
|
||||
"lightbox.zoom_in": "Ismànnia finas a sa mannària atuale",
|
||||
"limited_account_hint.title": "Custu profilu est istadu cuadu dae sa moderatzione de {domain}.",
|
||||
"link_preview.author": "Dae {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}",
|
||||
"lists.delete": "Cantzella sa lista",
|
||||
"lists.edit": "Modìfica sa lista",
|
||||
"lists.remove_member": "Cantzella",
|
||||
"lists.replies_policy.followed": "Cale si siat persone chi sighis",
|
||||
"lists.replies_policy.list": "Persones de sa lista",
|
||||
"lists.replies_policy.none": "Nemos",
|
||||
"lists.save": "Sarva",
|
||||
"lists.search": "Chirca",
|
||||
"lists.show_replies_to": "Include rispostas dae gente de sa lista a",
|
||||
"load_pending": "{count, plural, one {# elementu nou} other {# elementos noos}}",
|
||||
"loading_indicator.label": "Carrighende…",
|
||||
"media_gallery.hide": "Cua",
|
||||
|
|
@ -389,8 +447,10 @@
|
|||
"mute_modal.you_wont_see_mentions": "No as a bìdere is publicatziones chi mèntovent a custa persone.",
|
||||
"mute_modal.you_wont_see_posts": "At a pòdere bìdere is publicatziones tuas, però tue no as a bìdere cussas suas.",
|
||||
"navigation_bar.about": "Informatziones",
|
||||
"navigation_bar.account_settings": "Crae e seguresa",
|
||||
"navigation_bar.administration": "Amministratzione",
|
||||
"navigation_bar.advanced_interface": "Aberi s'interfache web avantzada",
|
||||
"navigation_bar.automated_deletion": "Cantzelladura automàtica de publicatziones",
|
||||
"navigation_bar.blocks": "Persones blocadas",
|
||||
"navigation_bar.bookmarks": "Sinnalibros",
|
||||
"navigation_bar.direct": "Mentziones privadas",
|
||||
|
|
@ -400,13 +460,18 @@
|
|||
"navigation_bar.follow_requests": "Rechestas de sighidura",
|
||||
"navigation_bar.followed_tags": "Etichetas sighidas",
|
||||
"navigation_bar.follows_and_followers": "Gente chi sighis e sighiduras",
|
||||
"navigation_bar.import_export": "Importatzione e esportatzione",
|
||||
"navigation_bar.lists": "Listas",
|
||||
"navigation_bar.live_feed_local": "Canale in direta (locale)",
|
||||
"navigation_bar.live_feed_public": "Canale in direta (pùblicu)",
|
||||
"navigation_bar.logout": "Essi",
|
||||
"navigation_bar.moderation": "Moderatzione",
|
||||
"navigation_bar.more": "Àteru",
|
||||
"navigation_bar.mutes": "Persones a sa muda",
|
||||
"navigation_bar.opened_in_classic_interface": "Publicatziones, contos e àteras pàginas ispetzìficas sunt abertas in manera predefinida in s'interfache web clàssica.",
|
||||
"navigation_bar.preferences": "Preferèntzias",
|
||||
"navigation_bar.search": "Chirca",
|
||||
"navigation_bar.search_trends": "Chirca / in tendèntzia",
|
||||
"not_signed_in_indicator.not_signed_in": "Ti depes identificare pro atzèdere a custa resursa.",
|
||||
"notification.admin.report": "{name} at sinnaladu a {target}",
|
||||
"notification.admin.report_account": "{name} at sinnaladu {count, plural, one {una publicatzione} other {# publicatziones}} dae {target} pro {category}",
|
||||
|
|
@ -463,15 +528,19 @@
|
|||
"notification_requests.minimize_banner": "Mìnima su bànner de notìficas filtradas",
|
||||
"notification_requests.notifications_from": "Notìficas dae {name}",
|
||||
"notification_requests.title": "Notìficas filtradas",
|
||||
"notification_requests.view": "Mustra notìficas",
|
||||
"notifications.clear": "Lìmpia notìficas",
|
||||
"notifications.clear_confirmation": "Seguru chi boles isboidare in manera permanente totu is notìficas tuas?",
|
||||
"notifications.clear_title": "Boles cantzellare is notìficas?",
|
||||
"notifications.column_settings.admin.report": "Informes noos:",
|
||||
"notifications.column_settings.admin.sign_up": "Registros noos:",
|
||||
"notifications.column_settings.alert": "Notìficas de iscrivania",
|
||||
"notifications.column_settings.favourite": "Preferidos:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Ammustra totu is categorias",
|
||||
"notifications.column_settings.filter_bar.category": "Barra de filtru lestru",
|
||||
"notifications.column_settings.follow": "Sighiduras noas:",
|
||||
"notifications.column_settings.follow_request": "Rechestas noas de sighidura:",
|
||||
"notifications.column_settings.group": "Grupu",
|
||||
"notifications.column_settings.mention": "Mèntovos:",
|
||||
"notifications.column_settings.poll": "Resurtados de su sondàgiu:",
|
||||
"notifications.column_settings.push": "Notìficas push",
|
||||
|
|
@ -495,6 +564,8 @@
|
|||
"notifications.permission_denied": "Is notìficas de iscrivania non sunt a disponimentu pro neghe de rechestas de permissu chi sunt istadas dennegadas in antis",
|
||||
"notifications.permission_denied_alert": "Is notìficas de iscrivania non podent èssere abilitadas, ca su permissu de su navigadore est istadu dennegadu in antis",
|
||||
"notifications.permission_required": "Is notìficas de iscrivania no sunt a disponimentu ca ammancat su permissu rechèdidu.",
|
||||
"notifications.policy.accept": "Atzeta",
|
||||
"notifications.policy.accept_hint": "Mustra in is notìficas",
|
||||
"notifications.policy.filter_new_accounts.hint": "Creadu {days, plural, one {erisero} other {in is ùrtimas # dies}}",
|
||||
"notifications.policy.filter_new_accounts_title": "Contos noos",
|
||||
"notifications.policy.filter_not_followers_title": "Gente chi non ti sighit",
|
||||
|
|
@ -503,8 +574,15 @@
|
|||
"notifications_permission_banner.enable": "Abilita is notìficas de iscrivania",
|
||||
"notifications_permission_banner.how_to_control": "Pro retzire notìficas cando Mastodon no est abertu, abilita is notìficas de iscrivania. Podes controllare cun pretzisione is castas de interatziones chi ingendrant notìficas de iscrivania pro mèdiu de su butone {icon} in subra, cando sunt abilitadas.",
|
||||
"notifications_permission_banner.title": "Non ti perdas mai nudda",
|
||||
"onboarding.follows.back": "A coa",
|
||||
"onboarding.follows.done": "Fatu",
|
||||
"onboarding.follows.search": "Chirca",
|
||||
"onboarding.follows.title": "Sighi a gente pro cumintzare",
|
||||
"onboarding.profile.display_name": "Nòmine visìbile",
|
||||
"onboarding.profile.note": "Biografia",
|
||||
"onboarding.profile.save_and_continue": "Sarva e sighi",
|
||||
"onboarding.profile.title": "Cunfiguratzione de profilu",
|
||||
"onboarding.profile.upload_avatar": "Càrriga una fotografia de profilu",
|
||||
"picture_in_picture.restore": "Torra·ddu a ue fiat",
|
||||
"poll.closed": "Serradu",
|
||||
"poll.refresh": "Atualiza",
|
||||
|
|
@ -599,6 +677,7 @@
|
|||
"search_results.hashtags": "Etichetas",
|
||||
"search_results.see_all": "Bide totu",
|
||||
"search_results.statuses": "Publicatziones",
|
||||
"search_results.title": "Chirca \"{q}\"",
|
||||
"server_banner.about_active_users": "Gente chi at impreadu custu serbidore is ùrtimas 30 dies (Utentes cun Atividade a su Mese)",
|
||||
"server_banner.active_users": "utentes ativos",
|
||||
"server_banner.administered_by": "Amministradu dae:",
|
||||
|
|
|
|||
|
|
@ -406,8 +406,6 @@
|
|||
"hints.profiles.see_more_followers": "{domain}හි තවත් අනුගාමිකයින් බලන්න",
|
||||
"hints.profiles.see_more_follows": "{domain}හි තවත් පහත ඒවා බලන්න.",
|
||||
"hints.profiles.see_more_posts": "{domain}හි තවත් සටහන් බලන්න",
|
||||
"hints.threads.replies_may_be_missing": "අනෙකුත් සේවාදායකයන්ගෙන් ලැබෙන පිළිතුරු අස්ථානගත වී තිබිය හැක.",
|
||||
"hints.threads.see_more": "{domain}හි තවත් පිළිතුරු බලන්න.",
|
||||
"home.column_settings.show_reblogs": "බූස්ට් පෙන්වන්න",
|
||||
"home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න",
|
||||
"home.hide_announcements": "නිවේදන සඟවන්න",
|
||||
|
|
|
|||
|
|
@ -365,8 +365,6 @@
|
|||
"hints.profiles.see_more_followers": "Pozri viac nasledovateľov na {domain}",
|
||||
"hints.profiles.see_more_follows": "Pozri viac nasledovateľov na {domain}",
|
||||
"hints.profiles.see_more_posts": "Pozri viac príspevkov na {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Odpovede z ostatných serverov môžu chýbať.",
|
||||
"hints.threads.see_more": "Pozri viac odpovedí na {domain}",
|
||||
"home.column_settings.show_reblogs": "Zobraziť zdieľania",
|
||||
"home.column_settings.show_replies": "Zobraziť odpovede",
|
||||
"home.hide_announcements": "Skryť oznámenia",
|
||||
|
|
|
|||
|
|
@ -383,8 +383,6 @@
|
|||
"hints.profiles.see_more_followers": "Pokaži več sledilcev na {domain}",
|
||||
"hints.profiles.see_more_follows": "Pokaži več sledenih ljudi na zbirališču {domain}",
|
||||
"hints.profiles.see_more_posts": "Pokaži več objav na {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Odgovori z drugih strežnikov morda manjkajo.",
|
||||
"hints.threads.see_more": "Pokaži več odgovorov na {domain}",
|
||||
"home.column_settings.show_reblogs": "Pokaži izpostavitve",
|
||||
"home.column_settings.show_replies": "Pokaži odgovore",
|
||||
"home.hide_announcements": "Skrij obvestila",
|
||||
|
|
|
|||
|
|
@ -419,8 +419,6 @@
|
|||
"hints.profiles.see_more_followers": "Shihni më tepër ndjekës në {domain}",
|
||||
"hints.profiles.see_more_follows": "Shihni më tepër ndjekje në {domain}",
|
||||
"hints.profiles.see_more_posts": "Shihni më tepër postime në {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Mund të mungojnë përgjigje nga shërbyes të tjerë.",
|
||||
"hints.threads.see_more": "Shihni më tepër përgjigje në {domain}",
|
||||
"home.column_settings.show_quotes": "Shfaq thonjëza",
|
||||
"home.column_settings.show_reblogs": "Shfaq përforcime",
|
||||
"home.column_settings.show_replies": "Shfaq përgjigje",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Se fler följare på {domain}",
|
||||
"hints.profiles.see_more_follows": "Se fler följare på {domain}",
|
||||
"hints.profiles.see_more_posts": "Se fler inlägg på {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Det kan saknas svar från andra servrar.",
|
||||
"hints.threads.see_more": "Se fler svar på {domain}",
|
||||
"home.column_settings.show_quotes": "Visa citat",
|
||||
"home.column_settings.show_reblogs": "Visa boostar",
|
||||
"home.column_settings.show_replies": "Visa svar",
|
||||
|
|
|
|||
|
|
@ -397,8 +397,6 @@
|
|||
"hints.profiles.see_more_followers": "ดูผู้ติดตามเพิ่มเติมใน {domain}",
|
||||
"hints.profiles.see_more_follows": "ดูการติดตามเพิ่มเติมใน {domain}",
|
||||
"hints.profiles.see_more_posts": "ดูโพสต์เพิ่มเติมใน {domain}",
|
||||
"hints.threads.replies_may_be_missing": "การตอบกลับจากเซิร์ฟเวอร์อื่น ๆ อาจขาดหายไป",
|
||||
"hints.threads.see_more": "ดูการตอบกลับเพิ่มเติมใน {domain}",
|
||||
"home.column_settings.show_reblogs": "แสดงการดัน",
|
||||
"home.column_settings.show_replies": "แสดงการตอบกลับ",
|
||||
"home.hide_announcements": "ซ่อนประกาศ",
|
||||
|
|
|
|||
|
|
@ -371,8 +371,6 @@
|
|||
"hints.profiles.see_more_followers": "o lukin e jan ni lon ma {domain}: ona li kute e jan ni.",
|
||||
"hints.profiles.see_more_follows": "o lukin e jan ni lon ma {domain}: jan ni li kute e ona.",
|
||||
"hints.profiles.see_more_posts": "o lukin e toki ante lon ma {domain}",
|
||||
"hints.threads.replies_may_be_missing": "toki pi ma ante li weka lon ken.",
|
||||
"hints.threads.see_more": "o lukin e toki ante lon ma {domain}",
|
||||
"home.column_settings.show_reblogs": "o lukin e pana toki",
|
||||
"home.hide_announcements": "o lukin ala e toki lawa suli",
|
||||
"home.pending_critical_update.body": "o sin e ilo Mastodon lon tenpo lili a!",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "{domain} adresinde daha fazla takipçi gör",
|
||||
"hints.profiles.see_more_follows": "{domain} adresinde daha fazla takip edilen gör",
|
||||
"hints.profiles.see_more_posts": "{domain} adresinde daha fazla gönderi gör",
|
||||
"hints.threads.replies_may_be_missing": "Diğer sunuculardan yanıtlar eksik olabilir.",
|
||||
"hints.threads.see_more": "{domain} adresinde daha fazla yanıt gör",
|
||||
"home.column_settings.show_quotes": "Alıntıları göster",
|
||||
"home.column_settings.show_reblogs": "Yeniden paylaşımları göster",
|
||||
"home.column_settings.show_replies": "Yanıtları göster",
|
||||
|
|
|
|||
|
|
@ -395,8 +395,6 @@
|
|||
"hints.profiles.see_more_followers": "Переглянути більше підписників на {domain}",
|
||||
"hints.profiles.see_more_follows": "Переглянути більше підписок на {domain}",
|
||||
"hints.profiles.see_more_posts": "Переглянути більше дописів на {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Відповіді з інших серверів можуть бути не показані.",
|
||||
"hints.threads.see_more": "Переглянути більше відповідей на {domain}",
|
||||
"home.column_settings.show_reblogs": "Показувати поширення",
|
||||
"home.column_settings.show_replies": "Показувати відповіді",
|
||||
"home.hide_announcements": "Приховати оголошення",
|
||||
|
|
@ -817,6 +815,8 @@
|
|||
"status.bookmark": "Додати до закладок",
|
||||
"status.cancel_reblog_private": "Скасувати поширення",
|
||||
"status.cannot_reblog": "Цей допис не може бути поширений",
|
||||
"status.context.load_new_replies": "Доступні нові відповіді",
|
||||
"status.context.loading": "Перевірка додаткових відповідей",
|
||||
"status.continued_thread": "Продовження у потоці",
|
||||
"status.copy": "Копіювати посилання на допис",
|
||||
"status.delete": "Видалити",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "Xem thêm người theo dõi ở {domain}",
|
||||
"hints.profiles.see_more_follows": "Xem thêm người mà người này theo dõi ở {domain}",
|
||||
"hints.profiles.see_more_posts": "Xem thêm tút ở {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Những trả lời từ máy chủ khác có thể không đầy đủ.",
|
||||
"hints.threads.see_more": "Xem thêm ở {domain}",
|
||||
"home.column_settings.show_quotes": "Hiện những trích dẫn",
|
||||
"home.column_settings.show_reblogs": "Hiện những lượt đăng lại",
|
||||
"home.column_settings.show_replies": "Hiện những tút dạng trả lời",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "Lưu",
|
||||
"status.cancel_reblog_private": "Bỏ đăng lại",
|
||||
"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.loading": "Kiểm tra nhiều trả lời hơn",
|
||||
"status.continued_thread": "Tiếp tục chủ đề",
|
||||
"status.copy": "Sao chép URL",
|
||||
"status.delete": "Xóa",
|
||||
|
|
|
|||
|
|
@ -412,8 +412,6 @@
|
|||
"hints.profiles.see_more_followers": "在 {domain} 查看更多关注者",
|
||||
"hints.profiles.see_more_follows": "在 {domain} 查看更多关注",
|
||||
"hints.profiles.see_more_posts": "在 {domain} 查看更多嘟文",
|
||||
"hints.threads.replies_may_be_missing": "来自其它实例的回复可能没有完全显示。",
|
||||
"hints.threads.see_more": "在 {domain} 查看更多回复",
|
||||
"home.column_settings.show_quotes": "显示引用",
|
||||
"home.column_settings.show_reblogs": "显示转嘟",
|
||||
"home.column_settings.show_replies": "显示回复",
|
||||
|
|
|
|||
|
|
@ -424,8 +424,6 @@
|
|||
"hints.profiles.see_more_followers": "於 {domain} 檢視更多跟隨者",
|
||||
"hints.profiles.see_more_follows": "於 {domain} 檢視更多正在跟隨",
|
||||
"hints.profiles.see_more_posts": "於 {domain} 檢視更多嘟文",
|
||||
"hints.threads.replies_may_be_missing": "來自其他站點之回覆或有缺失。",
|
||||
"hints.threads.see_more": "於 {domain} 檢視更多回覆",
|
||||
"home.column_settings.show_quotes": "顯示引用嘟文",
|
||||
"home.column_settings.show_reblogs": "顯示轉嘟",
|
||||
"home.column_settings.show_replies": "顯示回覆",
|
||||
|
|
@ -847,6 +845,8 @@
|
|||
"status.bookmark": "書籤",
|
||||
"status.cancel_reblog_private": "取消轉嘟",
|
||||
"status.cannot_reblog": "這則嘟文無法被轉嘟",
|
||||
"status.context.load_new_replies": "有新回嘟",
|
||||
"status.context.loading": "正在檢查更多回嘟",
|
||||
"status.continued_thread": "接續討論串",
|
||||
"status.copy": "複製嘟文連結",
|
||||
"status.delete": "刪除",
|
||||
|
|
|
|||
|
|
@ -4,12 +4,16 @@ import { Globals } from '@react-spring/web';
|
|||
|
||||
import { setupBrowserNotifications } from 'mastodon/actions/notifications';
|
||||
import Mastodon from 'mastodon/containers/mastodon';
|
||||
import { isFeatureEnabled, me, reduceMotion } from 'mastodon/initial_state';
|
||||
import { me, reduceMotion } from 'mastodon/initial_state';
|
||||
import * as perf from 'mastodon/performance';
|
||||
import ready from 'mastodon/ready';
|
||||
import { store } from 'mastodon/store';
|
||||
|
||||
import { isProduction, isDevelopment } from './utils/environment';
|
||||
import {
|
||||
isProduction,
|
||||
isDevelopment,
|
||||
isModernEmojiEnabled,
|
||||
} from './utils/environment';
|
||||
|
||||
function main() {
|
||||
perf.start('main()');
|
||||
|
|
@ -29,7 +33,7 @@ function main() {
|
|||
});
|
||||
}
|
||||
|
||||
if (isFeatureEnabled('modern_emojis')) {
|
||||
if (isModernEmojiEnabled()) {
|
||||
const { initializeEmoji } = await import('@/mastodon/features/emoji');
|
||||
await initializeEmoji();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
import initialState from '../initial_state';
|
||||
|
||||
export function isDevelopment() {
|
||||
if (typeof process !== 'undefined')
|
||||
return process.env.NODE_ENV === 'development';
|
||||
|
|
@ -9,3 +11,13 @@ export function isProduction() {
|
|||
return process.env.NODE_ENV === 'production';
|
||||
else return import.meta.env.PROD;
|
||||
}
|
||||
|
||||
export type Features = 'modern_emojis';
|
||||
|
||||
export function isFeatureEnabled(feature: Features) {
|
||||
return initialState?.features.includes(feature) ?? false;
|
||||
}
|
||||
|
||||
export function isModernEmojiEnabled() {
|
||||
return isFeatureEnabled('modern_emojis') && isDevelopment();
|
||||
}
|
||||
|
|
|
|||
29
app/javascript/mastodon/utils/workers.ts
Normal file
29
app/javascript/mastodon/utils/workers.ts
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/**
|
||||
* Loads Web Worker that is compatible with cross-origin scripts for CDNs.
|
||||
*
|
||||
* Returns null if the environment doesn't support web workers.
|
||||
*/
|
||||
export function loadWorker(url: string | URL, options: WorkerOptions = {}) {
|
||||
if (!('Worker' in window)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
// Check if the script origin and the window origin are the same.
|
||||
const scriptUrl = new URL(import.meta.url);
|
||||
if (location.origin === scriptUrl.origin) {
|
||||
// Not cross-origin, can just load normally.
|
||||
return new Worker(url, options);
|
||||
}
|
||||
} catch (err) {
|
||||
// In case the URL parsing fails.
|
||||
console.warn('Error instantiating Worker:', err);
|
||||
}
|
||||
|
||||
// Import the worker script from a same-origin Blob.
|
||||
const contents = `import ${JSON.stringify(url)};`;
|
||||
const blob = URL.createObjectURL(
|
||||
new Blob([contents], { type: 'text/javascript' }),
|
||||
);
|
||||
return new Worker(blob, options);
|
||||
}
|
||||
|
|
@ -116,6 +116,20 @@ class ActivityPub::Activity
|
|||
fetch_remote_original_status
|
||||
end
|
||||
|
||||
def quote_from_request_json(json)
|
||||
quoted_status_uri = value_or_id(json['object'])
|
||||
quoting_status_uri = value_or_id(json['instrument'])
|
||||
return if quoting_status_uri.nil? || quoted_status_uri.nil?
|
||||
|
||||
quoting_status = status_from_uri(quoting_status_uri)
|
||||
return unless quoting_status.present? && quoting_status.quote.present?
|
||||
|
||||
quoted_status = status_from_uri(quoted_status_uri)
|
||||
return unless quoted_status.present? && quoted_status.account == @account && quoting_status.quote.quoted_status == quoted_status
|
||||
|
||||
quoting_status.quote
|
||||
end
|
||||
|
||||
def dereference_object!
|
||||
return unless @object.is_a?(String)
|
||||
|
||||
|
|
@ -143,6 +157,10 @@ class ActivityPub::Activity
|
|||
@follow_request_from_object ||= FollowRequest.find_by(target_account: @account, uri: object_uri) unless object_uri.nil?
|
||||
end
|
||||
|
||||
def quote_request_from_object
|
||||
@quote_request_from_object ||= Quote.find_by(quoted_account: @account, activity_uri: object_uri) unless object_uri.nil?
|
||||
end
|
||||
|
||||
def follow_from_object
|
||||
@follow_from_object ||= ::Follow.find_by(target_account: @account, uri: object_uri) unless object_uri.nil?
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,10 +4,13 @@ class ActivityPub::Activity::Accept < ActivityPub::Activity
|
|||
def perform
|
||||
return accept_follow_for_relay if relay_follow?
|
||||
return accept_follow!(follow_request_from_object) unless follow_request_from_object.nil?
|
||||
return accept_quote!(quote_request_from_object) unless quote_request_from_object.nil?
|
||||
|
||||
case @object['type']
|
||||
when 'Follow'
|
||||
accept_embedded_follow
|
||||
when 'QuoteRequest'
|
||||
accept_embedded_quote_request
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -31,6 +34,29 @@ class ActivityPub::Activity::Accept < ActivityPub::Activity
|
|||
RemoteAccountRefreshWorker.perform_async(request.target_account_id) if is_first_follow
|
||||
end
|
||||
|
||||
def accept_embedded_quote_request
|
||||
approval_uri = value_or_id(first_of_value(@json['result']))
|
||||
return if approval_uri.nil?
|
||||
|
||||
quote = quote_from_request_json(@object)
|
||||
return unless quote.present? && quote.status.local?
|
||||
|
||||
accept_quote!(quote)
|
||||
end
|
||||
|
||||
def accept_quote!(quote)
|
||||
approval_uri = value_or_id(first_of_value(@json['result']))
|
||||
return if unsupported_uri_scheme?(approval_uri) || quote.quoted_account != @account || !quote.status.local?
|
||||
|
||||
# NOTE: we are not going through `ActivityPub::VerifyQuoteService` as the `Accept` is as authoritative
|
||||
# as the stamp, but this means we are not checking the stamp, which may lead to inconsistencies
|
||||
# in case of an implementation bug
|
||||
quote.update!(state: :accepted, approval_uri: approval_uri)
|
||||
|
||||
DistributionWorker.perform_async(quote.status_id, { 'update' => true })
|
||||
ActivityPub::StatusUpdateDistributionWorker.perform_async(quote.status_id, { 'updated_at' => Time.now.utc.iso8601 })
|
||||
end
|
||||
|
||||
def accept_follow_for_relay
|
||||
relay.update!(state: :accepted)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,10 +5,13 @@ class ActivityPub::Activity::Reject < ActivityPub::Activity
|
|||
return reject_follow_for_relay if relay_follow?
|
||||
return follow_request_from_object.reject! unless follow_request_from_object.nil?
|
||||
return UnfollowService.new.call(follow_from_object.account, @account) unless follow_from_object.nil?
|
||||
return reject_quote!(quote_request_from_object) unless quote_request_from_object.nil?
|
||||
|
||||
case @object['type']
|
||||
when 'Follow'
|
||||
reject_embedded_follow
|
||||
when 'QuoteRequest'
|
||||
reject_embedded_quote_request
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -29,6 +32,20 @@ class ActivityPub::Activity::Reject < ActivityPub::Activity
|
|||
relay.update!(state: :rejected)
|
||||
end
|
||||
|
||||
def reject_embedded_quote_request
|
||||
quote = quote_from_request_json(@object)
|
||||
return unless quote.present? && quote.status.local?
|
||||
|
||||
reject_quote!(quoting_status.quote)
|
||||
end
|
||||
|
||||
def reject_quote!(quote)
|
||||
return unless quote.quoted_account == @account && quote.status.local?
|
||||
|
||||
# TODO: broadcast an update?
|
||||
quote.reject!
|
||||
end
|
||||
|
||||
def relay
|
||||
@relay ||= Relay.find_by(follow_activity_id: object_uri) unless object_uri.nil?
|
||||
end
|
||||
|
|
|
|||
|
|
@ -12,9 +12,7 @@ module ActivityPub::CaseTransform
|
|||
when Hash then value.deep_transform_keys! { |key| camel_lower(key) }
|
||||
when Symbol then camel_lower(value.to_s).to_sym
|
||||
when String
|
||||
camel_lower_cache[value] ||= if value.start_with?('_:')
|
||||
"_:#{value.delete_prefix('_:').underscore.camelize(:lower)}"
|
||||
elsif LanguagesHelper::ISO_639_1_REGIONAL.key?(value.to_sym)
|
||||
camel_lower_cache[value] ||= if value.start_with?('_misskey') || LanguagesHelper::ISO_639_1_REGIONAL.key?(value.to_sym)
|
||||
value
|
||||
else
|
||||
value.underscore.camelize(:lower)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,9 @@ class EmojiFormatter
|
|||
i += 1
|
||||
|
||||
if inside_shortname && text[i] == ':'
|
||||
inside_shortname = false
|
||||
# https://github.com/rubocop/rubocop/issues/14383
|
||||
# False positive in line below, remove disable when resolved
|
||||
inside_shortname = false # rubocop:disable Lint/UselessAssignment
|
||||
shortcode = text[(shortname_start_index + 1)..(i - 1)]
|
||||
char_after = text[i + 1]
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@ class StatusCacheHydrator
|
|||
payload[:bookmarked] = Bookmark.exists?(account_id: account_id, status_id: status.id)
|
||||
payload[:pinned] = StatusPin.exists?(account_id: account_id, status_id: status.id) if status.account_id == account_id
|
||||
payload[:filtered] = mapped_applied_custom_filter(account_id, status)
|
||||
# TODO: performance optimization by not loading `Account` twice
|
||||
payload[:quote_approval][:current_user] = status.quote_policy_for_account(Account.find_by(id: account_id)) if payload[:quote_approval]
|
||||
payload[:quote] = hydrate_quote_payload(payload[:quote], status.quote, account_id, nested:) if payload[:quote]
|
||||
end
|
||||
|
||||
|
|
|
|||
63
app/models/concerns/status/interaction_policy_concern.rb
Normal file
63
app/models/concerns/status/interaction_policy_concern.rb
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Status::InteractionPolicyConcern
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
QUOTE_APPROVAL_POLICY_FLAGS = {
|
||||
unknown: (1 << 0),
|
||||
public: (1 << 1),
|
||||
followers: (1 << 2),
|
||||
followed: (1 << 3),
|
||||
}.freeze
|
||||
|
||||
def quote_policy_as_keys(kind)
|
||||
case kind
|
||||
when :automatic
|
||||
policy = quote_approval_policy >> 16
|
||||
when :manual
|
||||
policy = quote_approval_policy & 0xFFFF
|
||||
end
|
||||
|
||||
QUOTE_APPROVAL_POLICY_FLAGS.keys.select { |key| policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[key]) }.map(&:to_s)
|
||||
end
|
||||
|
||||
# Returns `:automatic`, `:manual`, `:unknown` or `:denied`
|
||||
def quote_policy_for_account(other_account, preloaded_relations: {})
|
||||
return :denied if other_account.nil?
|
||||
|
||||
following_author = nil
|
||||
|
||||
# Post author is always allowed to quote themselves
|
||||
return :automatic if account_id == other_account.id
|
||||
|
||||
automatic_policy = quote_approval_policy >> 16
|
||||
manual_policy = quote_approval_policy & 0xFFFF
|
||||
|
||||
# Checking for public policy first because it's less expensive than looking at mentions
|
||||
return :automatic if automatic_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:public])
|
||||
|
||||
# Mentioned users are always allowed to quote
|
||||
if active_mentions.loaded?
|
||||
return :automatic if active_mentions.any? { |mention| mention.account_id == other_account.id }
|
||||
elsif active_mentions.exists?(account: other_account)
|
||||
return :automatic
|
||||
end
|
||||
|
||||
if automatic_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:followers])
|
||||
following_author = preloaded_relations[:following] ? preloaded_relations[:following][account_id] : other_account.following?(account) if following_author.nil?
|
||||
return :automatic if following_author
|
||||
end
|
||||
|
||||
# We don't know we are allowed by the automatic policy, considering the manual one
|
||||
return :manual if manual_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:public])
|
||||
|
||||
if manual_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:followers])
|
||||
following_author = preloaded_relations[:following] ? preloaded_relations[:following][account_id] : other_account.following?(account) if following_author.nil?
|
||||
return :manual if following_author
|
||||
end
|
||||
|
||||
return :unknown if (automatic_policy | manual_policy).anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:unknown])
|
||||
|
||||
:denied
|
||||
end
|
||||
end
|
||||
|
|
@ -43,16 +43,10 @@ class Status < ApplicationRecord
|
|||
include Status::SnapshotConcern
|
||||
include Status::ThreadingConcern
|
||||
include Status::Visibility
|
||||
include Status::InteractionPolicyConcern
|
||||
|
||||
MEDIA_ATTACHMENTS_LIMIT = 4
|
||||
|
||||
QUOTE_APPROVAL_POLICY_FLAGS = {
|
||||
unknown: (1 << 0),
|
||||
public: (1 << 1),
|
||||
followers: (1 << 2),
|
||||
followed: (1 << 3),
|
||||
}.freeze
|
||||
|
||||
rate_limit by: :account, family: :statuses
|
||||
|
||||
self.discard_column = :deleted_at
|
||||
|
|
|
|||
|
|
@ -90,14 +90,28 @@ class Trends::Statuses < Trends::Base
|
|||
|
||||
def eligible?(status)
|
||||
status.created_at.past? &&
|
||||
status.public_visibility? &&
|
||||
status.account.discoverable? &&
|
||||
!status.account.silenced? &&
|
||||
!status.account.sensitized? &&
|
||||
status.spoiler_text.blank? &&
|
||||
!status.sensitive? &&
|
||||
opted_into_trends?(status) &&
|
||||
!sensitive_content?(status) &&
|
||||
!status.reply? &&
|
||||
valid_locale?(status.language)
|
||||
valid_locale?(status.language) &&
|
||||
(status.quote.nil? || trendable_quote?(status.quote))
|
||||
end
|
||||
|
||||
def opted_into_trends?(status)
|
||||
status.public_visibility? &&
|
||||
status.account.discoverable? &&
|
||||
!status.account.silenced?
|
||||
end
|
||||
|
||||
def sensitive_content?(status)
|
||||
status.account.sensitized? || status.spoiler_text.present? || status.sensitive?
|
||||
end
|
||||
|
||||
def trendable_quote?(quote)
|
||||
quote.acceptable? &&
|
||||
quote.quoted_status.present? &&
|
||||
opted_into_trends?(quote.quoted_status) &&
|
||||
!sensitive_content?(quote.quoted_status)
|
||||
end
|
||||
|
||||
def calculate_scores(statuses, at_time)
|
||||
|
|
|
|||
|
|
@ -19,6 +19,11 @@ class StatusPolicy < ApplicationPolicy
|
|||
end
|
||||
end
|
||||
|
||||
# This is about requesting a quote post, not validating it
|
||||
def quote?
|
||||
record.quote_policy_for_account(current_account, preloaded_relations: @preloaded_relations) != :denied
|
||||
end
|
||||
|
||||
def reblog?
|
||||
!requires_mention? && (!private? || owned?) && show? && !blocking_author?
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
class ActivityPub::NoteSerializer < ActivityPub::Serializer
|
||||
include FormattingHelper
|
||||
|
||||
context_extensions :atom_uri, :conversation, :sensitive, :voters_count
|
||||
context_extensions :atom_uri, :conversation, :sensitive, :voters_count, :quotes
|
||||
|
||||
attributes :id, :type, :summary,
|
||||
:in_reply_to, :published, :url,
|
||||
|
|
@ -30,6 +30,11 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer
|
|||
|
||||
attribute :voters_count, if: :poll_and_voters_count?
|
||||
|
||||
attribute :quote, if: :quote?
|
||||
attribute :quote, key: :_misskey_quote, if: :quote?
|
||||
attribute :quote, key: :quote_uri, if: :quote?
|
||||
attribute :quote_authorization, if: :quote_authorization?
|
||||
|
||||
def id
|
||||
ActivityPub::TagManager.instance.uri_for(object)
|
||||
end
|
||||
|
|
@ -194,6 +199,24 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer
|
|||
object.preloadable_poll&.voters_count
|
||||
end
|
||||
|
||||
def quote?
|
||||
object.quote&.present?
|
||||
end
|
||||
|
||||
def quote_authorization?
|
||||
object.quote&.approval_uri.present?
|
||||
end
|
||||
|
||||
def quote
|
||||
# TODO: handle inlining self-quotes
|
||||
ActivityPub::TagManager.instance.uri_for(object.quote.quoted_status)
|
||||
end
|
||||
|
||||
def quote_authorization
|
||||
# TODO: approval of local quotes may work differently, perhaps?
|
||||
object.quote.approval_uri
|
||||
end
|
||||
|
||||
class MediaAttachmentSerializer < ActivityPub::Serializer
|
||||
context_extensions :blurhash, :focal_point
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user