mirror of
https://git.kescher.at/CatCatNya/catstodon.git
synced 2024-11-22 16:28:08 +01:00
Merge pull request #2806 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to c8b9e60ec1
This commit is contained in:
commit
241d76075c
88 changed files with 1361 additions and 711 deletions
|
@ -211,7 +211,7 @@ FROM build AS ffmpeg
|
||||||
|
|
||||||
# ffmpeg version to compile, change with [--build-arg FFMPEG_VERSION="7.0.x"]
|
# ffmpeg version to compile, change with [--build-arg FFMPEG_VERSION="7.0.x"]
|
||||||
# renovate: datasource=repology depName=ffmpeg packageName=openpkg_current/ffmpeg
|
# renovate: datasource=repology depName=ffmpeg packageName=openpkg_current/ffmpeg
|
||||||
ARG FFMPEG_VERSION=7.0.1
|
ARG FFMPEG_VERSION=7.0.2
|
||||||
# ffmpeg download URL, change with [--build-arg FFMPEG_URL="https://ffmpeg.org/releases"]
|
# ffmpeg download URL, change with [--build-arg FFMPEG_URL="https://ffmpeg.org/releases"]
|
||||||
ARG FFMPEG_URL=https://ffmpeg.org/releases
|
ARG FFMPEG_URL=https://ffmpeg.org/releases
|
||||||
|
|
||||||
|
|
2
Gemfile
2
Gemfile
|
@ -16,7 +16,7 @@ gem 'pghero'
|
||||||
|
|
||||||
gem 'aws-sdk-s3', '~> 1.123', require: false
|
gem 'aws-sdk-s3', '~> 1.123', require: false
|
||||||
gem 'blurhash', '~> 0.1'
|
gem 'blurhash', '~> 0.1'
|
||||||
gem 'fog-core', '<= 2.4.0'
|
gem 'fog-core', '<= 2.5.0'
|
||||||
gem 'fog-openstack', '~> 1.0', require: false
|
gem 'fog-openstack', '~> 1.0', require: false
|
||||||
gem 'kt-paperclip', '~> 7.2'
|
gem 'kt-paperclip', '~> 7.2'
|
||||||
gem 'md-paperclip-azure', '~> 2.2', require: false
|
gem 'md-paperclip-azure', '~> 2.2', require: false
|
||||||
|
|
22
Gemfile.lock
22
Gemfile.lock
|
@ -100,8 +100,8 @@ GEM
|
||||||
attr_required (1.0.2)
|
attr_required (1.0.2)
|
||||||
awrence (1.2.1)
|
awrence (1.2.1)
|
||||||
aws-eventstream (1.3.0)
|
aws-eventstream (1.3.0)
|
||||||
aws-partitions (1.950.0)
|
aws-partitions (1.961.0)
|
||||||
aws-sdk-core (3.201.0)
|
aws-sdk-core (3.201.3)
|
||||||
aws-eventstream (~> 1, >= 1.3.0)
|
aws-eventstream (~> 1, >= 1.3.0)
|
||||||
aws-partitions (~> 1, >= 1.651.0)
|
aws-partitions (~> 1, >= 1.651.0)
|
||||||
aws-sigv4 (~> 1.8)
|
aws-sigv4 (~> 1.8)
|
||||||
|
@ -109,11 +109,11 @@ GEM
|
||||||
aws-sdk-kms (1.88.0)
|
aws-sdk-kms (1.88.0)
|
||||||
aws-sdk-core (~> 3, >= 3.201.0)
|
aws-sdk-core (~> 3, >= 3.201.0)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sdk-s3 (1.156.0)
|
aws-sdk-s3 (1.157.0)
|
||||||
aws-sdk-core (~> 3, >= 3.201.0)
|
aws-sdk-core (~> 3, >= 3.201.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sigv4 (1.8.0)
|
aws-sigv4 (1.9.1)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
azure-storage-blob (2.0.3)
|
azure-storage-blob (2.0.3)
|
||||||
azure-storage-common (~> 2.0)
|
azure-storage-common (~> 2.0)
|
||||||
|
@ -135,7 +135,7 @@ GEM
|
||||||
binding_of_caller (1.0.1)
|
binding_of_caller (1.0.1)
|
||||||
debug_inspector (>= 1.2.0)
|
debug_inspector (>= 1.2.0)
|
||||||
blurhash (0.1.7)
|
blurhash (0.1.7)
|
||||||
bootsnap (1.18.3)
|
bootsnap (1.18.4)
|
||||||
msgpack (~> 1.2)
|
msgpack (~> 1.2)
|
||||||
brakeman (6.1.2)
|
brakeman (6.1.2)
|
||||||
racc
|
racc
|
||||||
|
@ -229,7 +229,7 @@ GEM
|
||||||
erubi (1.13.0)
|
erubi (1.13.0)
|
||||||
et-orbi (1.2.11)
|
et-orbi (1.2.11)
|
||||||
tzinfo
|
tzinfo
|
||||||
excon (0.110.0)
|
excon (0.111.0)
|
||||||
fabrication (2.31.0)
|
fabrication (2.31.0)
|
||||||
faker (3.4.2)
|
faker (3.4.2)
|
||||||
i18n (>= 1.8.11, < 2)
|
i18n (>= 1.8.11, < 2)
|
||||||
|
@ -269,7 +269,7 @@ GEM
|
||||||
flatware-rspec (2.3.2)
|
flatware-rspec (2.3.2)
|
||||||
flatware (= 2.3.2)
|
flatware (= 2.3.2)
|
||||||
rspec (>= 3.6)
|
rspec (>= 3.6)
|
||||||
fog-core (2.4.0)
|
fog-core (2.5.0)
|
||||||
builder
|
builder
|
||||||
excon (~> 0.71)
|
excon (~> 0.71)
|
||||||
formatador (>= 0.2, < 2.0)
|
formatador (>= 0.2, < 2.0)
|
||||||
|
@ -429,7 +429,7 @@ GEM
|
||||||
memory_profiler (1.0.2)
|
memory_profiler (1.0.2)
|
||||||
mime-types (3.5.2)
|
mime-types (3.5.2)
|
||||||
mime-types-data (~> 3.2015)
|
mime-types-data (~> 3.2015)
|
||||||
mime-types-data (3.2024.0604)
|
mime-types-data (3.2024.0702)
|
||||||
mini_mime (1.1.5)
|
mini_mime (1.1.5)
|
||||||
mini_portile2 (2.8.7)
|
mini_portile2 (2.8.7)
|
||||||
minitest (5.24.1)
|
minitest (5.24.1)
|
||||||
|
@ -758,7 +758,7 @@ GEM
|
||||||
rack (>= 1.1)
|
rack (>= 1.1)
|
||||||
rubocop (>= 1.33.0, < 2.0)
|
rubocop (>= 1.33.0, < 2.0)
|
||||||
rubocop-ast (>= 1.31.1, < 2.0)
|
rubocop-ast (>= 1.31.1, < 2.0)
|
||||||
rubocop-rspec (3.0.3)
|
rubocop-rspec (3.0.4)
|
||||||
rubocop (~> 1.61)
|
rubocop (~> 1.61)
|
||||||
rubocop-rspec_rails (2.30.0)
|
rubocop-rspec_rails (2.30.0)
|
||||||
rubocop (~> 1.61)
|
rubocop (~> 1.61)
|
||||||
|
@ -796,7 +796,7 @@ GEM
|
||||||
redis (>= 4.5.0, < 5)
|
redis (>= 4.5.0, < 5)
|
||||||
sidekiq-bulk (0.2.0)
|
sidekiq-bulk (0.2.0)
|
||||||
sidekiq
|
sidekiq
|
||||||
sidekiq-scheduler (5.0.5)
|
sidekiq-scheduler (5.0.6)
|
||||||
rufus-scheduler (~> 3.2)
|
rufus-scheduler (~> 3.2)
|
||||||
sidekiq (>= 6, < 8)
|
sidekiq (>= 6, < 8)
|
||||||
tilt (>= 1.4.0, < 3)
|
tilt (>= 1.4.0, < 3)
|
||||||
|
@ -945,7 +945,7 @@ DEPENDENCIES
|
||||||
fast_blank (~> 1.0)
|
fast_blank (~> 1.0)
|
||||||
fastimage
|
fastimage
|
||||||
flatware-rspec
|
flatware-rspec
|
||||||
fog-core (<= 2.4.0)
|
fog-core (<= 2.5.0)
|
||||||
fog-openstack (~> 1.0)
|
fog-openstack (~> 1.0)
|
||||||
fuubar (~> 2.5)
|
fuubar (~> 2.5)
|
||||||
haml-rails (~> 2.0)
|
haml-rails (~> 2.0)
|
||||||
|
|
|
@ -16,10 +16,10 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
|
||||||
@group_metadata = load_group_metadata
|
@group_metadata = load_group_metadata
|
||||||
@grouped_notifications = load_grouped_notifications
|
@grouped_notifications = load_grouped_notifications
|
||||||
@relationships = StatusRelationshipsPresenter.new(target_statuses_from_notifications, current_user&.account_id)
|
@relationships = StatusRelationshipsPresenter.new(target_statuses_from_notifications, current_user&.account_id)
|
||||||
@sample_accounts = @grouped_notifications.flat_map(&:sample_accounts)
|
@presenter = GroupedNotificationsPresenter.new(@grouped_notifications, expand_accounts: expand_accounts_param)
|
||||||
|
|
||||||
# Preload associations to avoid N+1s
|
# Preload associations to avoid N+1s
|
||||||
ActiveRecord::Associations::Preloader.new(records: @sample_accounts, associations: [:account_stat, { user: :role }]).call
|
ActiveRecord::Associations::Preloader.new(records: @presenter.accounts, associations: [:account_stat, { user: :role }]).call
|
||||||
end
|
end
|
||||||
|
|
||||||
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#index rendering') do |span|
|
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#index rendering') do |span|
|
||||||
|
@ -27,14 +27,14 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
|
||||||
|
|
||||||
span.add_attributes(
|
span.add_attributes(
|
||||||
'app.notification_grouping.count' => @grouped_notifications.size,
|
'app.notification_grouping.count' => @grouped_notifications.size,
|
||||||
'app.notification_grouping.sample_account.count' => @sample_accounts.size,
|
'app.notification_grouping.account.count' => @presenter.accounts.size,
|
||||||
'app.notification_grouping.sample_account.unique_count' => @sample_accounts.pluck(:id).uniq.size,
|
'app.notification_grouping.partial_account.count' => @presenter.partial_accounts.size,
|
||||||
'app.notification_grouping.status.count' => statuses.size,
|
'app.notification_grouping.status.count' => statuses.size,
|
||||||
'app.notification_grouping.status.unique_count' => statuses.uniq.size
|
'app.notification_grouping.status.unique_count' => statuses.uniq.size,
|
||||||
|
'app.notification_grouping.expand_accounts_param' => expand_accounts_param
|
||||||
)
|
)
|
||||||
|
|
||||||
presenter = GroupedNotificationsPresenter.new(@grouped_notifications)
|
render json: @presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, group_metadata: @group_metadata, expand_accounts: expand_accounts_param
|
||||||
render json: presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, group_metadata: @group_metadata
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -131,4 +131,15 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
|
||||||
def pagination_params(core_params)
|
def pagination_params(core_params)
|
||||||
params.slice(:limit, :types, :exclude_types, :include_filtered).permit(:limit, :include_filtered, types: [], exclude_types: []).merge(core_params)
|
params.slice(:limit, :types, :exclude_types, :include_filtered).permit(:limit, :include_filtered, types: [], exclude_types: []).merge(core_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def expand_accounts_param
|
||||||
|
case params[:expand_accounts]
|
||||||
|
when nil, 'full'
|
||||||
|
'full'
|
||||||
|
when 'partial_avatars'
|
||||||
|
'partial_avatars'
|
||||||
|
else
|
||||||
|
raise Mastodon::InvalidParameterError, "Invalid value for 'expand_accounts': '#{params[:expand_accounts]}', allowed values are 'full' and 'partial_avatars'"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -431,6 +431,42 @@ Rails.delegate(document, 'img.custom-emoji', 'mouseout', ({ target }) => {
|
||||||
target.src = target.dataset.static;
|
target.src = target.dataset.static;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const setInputDisabled = (
|
||||||
|
input: HTMLInputElement | HTMLSelectElement,
|
||||||
|
disabled: boolean,
|
||||||
|
) => {
|
||||||
|
input.disabled = disabled;
|
||||||
|
|
||||||
|
const wrapper = input.closest('.with_label');
|
||||||
|
if (wrapper) {
|
||||||
|
wrapper.classList.toggle('disabled', input.disabled);
|
||||||
|
|
||||||
|
const hidden =
|
||||||
|
input.type === 'checkbox' &&
|
||||||
|
wrapper.querySelector<HTMLInputElement>('input[type=hidden][value="0"]');
|
||||||
|
if (hidden) {
|
||||||
|
hidden.disabled = input.disabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Rails.delegate(
|
||||||
|
document,
|
||||||
|
'#account_statuses_cleanup_policy_enabled',
|
||||||
|
'change',
|
||||||
|
({ target }) => {
|
||||||
|
if (!(target instanceof HTMLInputElement) || !target.form) return;
|
||||||
|
|
||||||
|
target.form
|
||||||
|
.querySelectorAll<
|
||||||
|
HTMLInputElement | HTMLSelectElement
|
||||||
|
>('input:not([type=hidden], #account_statuses_cleanup_policy_enabled), select')
|
||||||
|
.forEach((input) => {
|
||||||
|
setInputDisabled(input, !target.checked);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
// Empty the honeypot fields in JS in case something like an extension
|
// Empty the honeypot fields in JS in case something like an extension
|
||||||
// automatically filled them.
|
// automatically filled them.
|
||||||
Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => {
|
Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => {
|
||||||
|
|
|
@ -106,7 +106,7 @@ const Account = ({ size = 46, account, onFollow, onBlock, onMute, onMuteNotifica
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
} else if (defaultAction === 'mute') {
|
} else if (defaultAction === 'mute') {
|
||||||
buttons = <Button title={intl.formatMessage(messages.mute)} onClick={handleMute} />;
|
buttons = <Button text={intl.formatMessage(messages.mute)} onClick={handleMute} />;
|
||||||
} else if (defaultAction === 'block') {
|
} else if (defaultAction === 'block') {
|
||||||
buttons = <Button text={intl.formatMessage(messages.block)} onClick={handleBlock} />;
|
buttons = <Button text={intl.formatMessage(messages.block)} onClick={handleBlock} />;
|
||||||
} else if (!account.get('suspended') && !account.get('moved') || following) {
|
} else if (!account.get('suspended') && !account.get('moved') || following) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { useEffect, forwardRef } from 'react';
|
import { useEffect, forwardRef } from 'react';
|
||||||
|
|
||||||
|
import { FormattedMessage } from 'react-intl';
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import { fetchAccount } from 'flavours/glitch/actions/accounts';
|
import { fetchAccount } from 'flavours/glitch/actions/accounts';
|
||||||
|
@ -25,6 +27,11 @@ export const HoverCardAccount = forwardRef<
|
||||||
accountId ? state.accounts.get(accountId) : undefined,
|
accountId ? state.accounts.get(accountId) : undefined,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const note = useAppSelector(
|
||||||
|
(state) =>
|
||||||
|
state.relationships.getIn([accountId, 'note']) as string | undefined,
|
||||||
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (accountId && !account) {
|
if (accountId && !account) {
|
||||||
dispatch(fetchAccount(accountId));
|
dispatch(fetchAccount(accountId));
|
||||||
|
@ -57,6 +64,17 @@ export const HoverCardAccount = forwardRef<
|
||||||
className='hover-card__bio'
|
className='hover-card__bio'
|
||||||
/>
|
/>
|
||||||
<AccountFields fields={account.fields} limit={2} />
|
<AccountFields fields={account.fields} limit={2} />
|
||||||
|
{note && note.length > 0 && (
|
||||||
|
<dl className='hover-card__note'>
|
||||||
|
<dt className='hover-card__note-label'>
|
||||||
|
<FormattedMessage
|
||||||
|
id='account.account_note_header'
|
||||||
|
defaultMessage='Personal note'
|
||||||
|
/>
|
||||||
|
</dt>
|
||||||
|
<dd>{note}</dd>
|
||||||
|
</dl>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='hover-card__number'>
|
<div className='hover-card__number'>
|
||||||
|
|
|
@ -431,6 +431,42 @@ Rails.delegate(document, 'img.custom-emoji', 'mouseout', ({ target }) => {
|
||||||
target.src = target.dataset.static;
|
target.src = target.dataset.static;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const setInputDisabled = (
|
||||||
|
input: HTMLInputElement | HTMLSelectElement,
|
||||||
|
disabled: boolean,
|
||||||
|
) => {
|
||||||
|
input.disabled = disabled;
|
||||||
|
|
||||||
|
const wrapper = input.closest('.with_label');
|
||||||
|
if (wrapper) {
|
||||||
|
wrapper.classList.toggle('disabled', input.disabled);
|
||||||
|
|
||||||
|
const hidden =
|
||||||
|
input.type === 'checkbox' &&
|
||||||
|
wrapper.querySelector<HTMLInputElement>('input[type=hidden][value="0"]');
|
||||||
|
if (hidden) {
|
||||||
|
hidden.disabled = input.disabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Rails.delegate(
|
||||||
|
document,
|
||||||
|
'#account_statuses_cleanup_policy_enabled',
|
||||||
|
'change',
|
||||||
|
({ target }) => {
|
||||||
|
if (!(target instanceof HTMLInputElement) || !target.form) return;
|
||||||
|
|
||||||
|
target.form
|
||||||
|
.querySelectorAll<
|
||||||
|
HTMLInputElement | HTMLSelectElement
|
||||||
|
>('input:not([type=hidden], #account_statuses_cleanup_policy_enabled), select')
|
||||||
|
.forEach((input) => {
|
||||||
|
setInputDisabled(input, !target.checked);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
// Empty the honeypot fields in JS in case something like an extension
|
// Empty the honeypot fields in JS in case something like an extension
|
||||||
// automatically filled them.
|
// automatically filled them.
|
||||||
Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => {
|
Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => {
|
||||||
|
|
|
@ -151,7 +151,7 @@ class AccountNote extends ImmutablePureComponent {
|
||||||
return (
|
return (
|
||||||
<div className='account__header__account-note'>
|
<div className='account__header__account-note'>
|
||||||
<label htmlFor={`account-note-${account.get('id')}`}>
|
<label htmlFor={`account-note-${account.get('id')}`}>
|
||||||
<FormattedMessage id='account.account_note_header' defaultMessage='Note' /> <InlineAlert show={saved} />
|
<FormattedMessage id='account.account_note_header' defaultMessage='Personal note' /> <InlineAlert show={saved} />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<Textarea
|
<Textarea
|
||||||
|
|
|
@ -44,7 +44,7 @@ const ColumnSettings = () => {
|
||||||
settingPath={['minimizeFilteredBanner']}
|
settingPath={['minimizeFilteredBanner']}
|
||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
label={
|
label={
|
||||||
<FormattedMessage id='notification_requests.minimize_banner' defaultMessage='Minimize filtred notifications banner' />
|
<FormattedMessage id='notification_requests.minimize_banner' defaultMessage='Minimize filtered notifications banner' />
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
|
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
|
||||||
|
|
||||||
|
import { blockAccountSuccess, muteAccountSuccess } from 'flavours/glitch/actions/accounts';
|
||||||
import {
|
import {
|
||||||
NOTIFICATION_REQUESTS_EXPAND_REQUEST,
|
NOTIFICATION_REQUESTS_EXPAND_REQUEST,
|
||||||
NOTIFICATION_REQUESTS_EXPAND_SUCCESS,
|
NOTIFICATION_REQUESTS_EXPAND_SUCCESS,
|
||||||
|
@ -51,6 +52,14 @@ const removeRequest = (state, id) => {
|
||||||
return state.update('items', list => list.filterNot(item => item.get('id') === id));
|
return state.update('items', list => list.filterNot(item => item.get('id') === id));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const removeRequestByAccount = (state, account_id) => {
|
||||||
|
if (state.getIn(['current', 'item', 'account']) === account_id) {
|
||||||
|
state = state.setIn(['current', 'removed'], true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return state.update('items', list => list.filterNot(item => item.get('account') === account_id));
|
||||||
|
};
|
||||||
|
|
||||||
export const notificationRequestsReducer = (state = initialState, action) => {
|
export const notificationRequestsReducer = (state = initialState, action) => {
|
||||||
switch(action.type) {
|
switch(action.type) {
|
||||||
case NOTIFICATION_REQUESTS_FETCH_SUCCESS:
|
case NOTIFICATION_REQUESTS_FETCH_SUCCESS:
|
||||||
|
@ -74,6 +83,10 @@ export const notificationRequestsReducer = (state = initialState, action) => {
|
||||||
case NOTIFICATION_REQUEST_ACCEPT_REQUEST:
|
case NOTIFICATION_REQUEST_ACCEPT_REQUEST:
|
||||||
case NOTIFICATION_REQUEST_DISMISS_REQUEST:
|
case NOTIFICATION_REQUEST_DISMISS_REQUEST:
|
||||||
return removeRequest(state, action.id);
|
return removeRequest(state, action.id);
|
||||||
|
case blockAccountSuccess.type:
|
||||||
|
return removeRequestByAccount(state, action.payload.relationship.id);
|
||||||
|
case muteAccountSuccess.type:
|
||||||
|
return action.payload.relationship.muting_notifications ? removeRequestByAccount(state, action.payload.relationship.id) : state;
|
||||||
case NOTIFICATION_REQUEST_FETCH_REQUEST:
|
case NOTIFICATION_REQUEST_FETCH_REQUEST:
|
||||||
return state.set('current', initialState.get('current').set('isLoading', true));
|
return state.set('current', initialState.get('current').set('isLoading', true));
|
||||||
case NOTIFICATION_REQUEST_FETCH_SUCCESS:
|
case NOTIFICATION_REQUEST_FETCH_SUCCESS:
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
|
import type { GetThunkAPI } from '@reduxjs/toolkit';
|
||||||
import { createAsyncThunk } from '@reduxjs/toolkit';
|
import { createAsyncThunk } from '@reduxjs/toolkit';
|
||||||
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
||||||
import { useDispatch, useSelector } from 'react-redux';
|
import { useDispatch, useSelector } from 'react-redux';
|
||||||
|
|
||||||
import type { BaseThunkAPI } from '@reduxjs/toolkit/dist/createAsyncThunk';
|
|
||||||
|
|
||||||
import type { AppDispatch, RootState } from './store';
|
import type { AppDispatch, RootState } from './store';
|
||||||
|
|
||||||
export const useAppDispatch = useDispatch.withTypes<AppDispatch>();
|
export const useAppDispatch = useDispatch.withTypes<AppDispatch>();
|
||||||
|
@ -25,29 +24,20 @@ export const createAppAsyncThunk = createAsyncThunk.withTypes<{
|
||||||
rejectValue: AsyncThunkRejectValue;
|
rejectValue: AsyncThunkRejectValue;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
type AppThunkApi = Pick<
|
interface AppThunkConfig {
|
||||||
BaseThunkAPI<
|
|
||||||
RootState,
|
|
||||||
unknown,
|
|
||||||
AppDispatch,
|
|
||||||
AsyncThunkRejectValue,
|
|
||||||
AppMeta,
|
|
||||||
AppMeta
|
|
||||||
>,
|
|
||||||
'getState' | 'dispatch'
|
|
||||||
>;
|
|
||||||
|
|
||||||
interface AppThunkOptions {
|
|
||||||
skipLoading?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
const createBaseAsyncThunk = createAsyncThunk.withTypes<{
|
|
||||||
state: RootState;
|
state: RootState;
|
||||||
dispatch: AppDispatch;
|
dispatch: AppDispatch;
|
||||||
rejectValue: AsyncThunkRejectValue;
|
rejectValue: AsyncThunkRejectValue;
|
||||||
fulfilledMeta: AppMeta;
|
fulfilledMeta: AppMeta;
|
||||||
rejectedMeta: AppMeta;
|
rejectedMeta: AppMeta;
|
||||||
}>();
|
}
|
||||||
|
type AppThunkApi = Pick<GetThunkAPI<AppThunkConfig>, 'getState' | 'dispatch'>;
|
||||||
|
|
||||||
|
interface AppThunkOptions {
|
||||||
|
skipLoading?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
const createBaseAsyncThunk = createAsyncThunk.withTypes<AppThunkConfig>();
|
||||||
|
|
||||||
export function createThunk<Arg = void, Returned = void>(
|
export function createThunk<Arg = void, Returned = void>(
|
||||||
name: string,
|
name: string,
|
||||||
|
|
|
@ -3268,6 +3268,11 @@ $ui-header-logo-wordmark-width: 99px;
|
||||||
.explore__search-header {
|
.explore__search-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.explore__search-results {
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-with-badge {
|
.icon-with-badge {
|
||||||
|
@ -7906,7 +7911,7 @@ img.modal-warning {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|
||||||
@media screen and (max-width: $no-gap-breakpoint) {
|
@media screen and (max-width: $no-gap-breakpoint - 1px) {
|
||||||
border-right: 0;
|
border-right: 0;
|
||||||
border-left: 0;
|
border-left: 0;
|
||||||
}
|
}
|
||||||
|
@ -8627,16 +8632,17 @@ noscript {
|
||||||
.verified {
|
.verified {
|
||||||
border: 1px solid rgba($valid-value-color, 0.5);
|
border: 1px solid rgba($valid-value-color, 0.5);
|
||||||
margin-top: -1px;
|
margin-top: -1px;
|
||||||
|
margin-inline: -1px;
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
border-top-left-radius: 4px;
|
border-top-left-radius: 4px;
|
||||||
border-top-right-radius: 4px;
|
border-top-right-radius: 4px;
|
||||||
margin-top: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
border-bottom-left-radius: 4px;
|
border-bottom-left-radius: 4px;
|
||||||
border-bottom-right-radius: 4px;
|
border-bottom-right-radius: 4px;
|
||||||
|
margin-bottom: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
dt,
|
dt,
|
||||||
|
@ -11171,6 +11177,25 @@ noscript {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&__note {
|
||||||
|
&-label {
|
||||||
|
color: $dark-text-color;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
white-space: pre-line;
|
||||||
|
color: $secondary-text-color;
|
||||||
|
overflow: hidden;
|
||||||
|
line-clamp: 3; // Not yet supported in browers
|
||||||
|
display: -webkit-box; // The next 3 properties are needed
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.display-name {
|
.display-name {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
|
|
|
@ -106,7 +106,7 @@ const Account = ({ size = 46, account, onFollow, onBlock, onMute, onMuteNotifica
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
} else if (defaultAction === 'mute') {
|
} else if (defaultAction === 'mute') {
|
||||||
buttons = <Button title={intl.formatMessage(messages.mute)} onClick={handleMute} />;
|
buttons = <Button text={intl.formatMessage(messages.mute)} onClick={handleMute} />;
|
||||||
} else if (defaultAction === 'block') {
|
} else if (defaultAction === 'block') {
|
||||||
buttons = <Button text={intl.formatMessage(messages.block)} onClick={handleBlock} />;
|
buttons = <Button text={intl.formatMessage(messages.block)} onClick={handleBlock} />;
|
||||||
} else if (!account.get('suspended') && !account.get('moved') || following) {
|
} else if (!account.get('suspended') && !account.get('moved') || following) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { useEffect, forwardRef } from 'react';
|
import { useEffect, forwardRef } from 'react';
|
||||||
|
|
||||||
|
import { FormattedMessage } from 'react-intl';
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
|
@ -25,6 +27,11 @@ export const HoverCardAccount = forwardRef<
|
||||||
accountId ? state.accounts.get(accountId) : undefined,
|
accountId ? state.accounts.get(accountId) : undefined,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const note = useAppSelector(
|
||||||
|
(state) =>
|
||||||
|
state.relationships.getIn([accountId, 'note']) as string | undefined,
|
||||||
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (accountId && !account) {
|
if (accountId && !account) {
|
||||||
dispatch(fetchAccount(accountId));
|
dispatch(fetchAccount(accountId));
|
||||||
|
@ -53,6 +60,17 @@ export const HoverCardAccount = forwardRef<
|
||||||
className='hover-card__bio'
|
className='hover-card__bio'
|
||||||
/>
|
/>
|
||||||
<AccountFields fields={account.fields} limit={2} />
|
<AccountFields fields={account.fields} limit={2} />
|
||||||
|
{note && note.length > 0 && (
|
||||||
|
<dl className='hover-card__note'>
|
||||||
|
<dt className='hover-card__note-label'>
|
||||||
|
<FormattedMessage
|
||||||
|
id='account.account_note_header'
|
||||||
|
defaultMessage='Personal note'
|
||||||
|
/>
|
||||||
|
</dt>
|
||||||
|
<dd>{note}</dd>
|
||||||
|
</dl>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='hover-card__number'>
|
<div className='hover-card__number'>
|
||||||
|
|
|
@ -151,7 +151,7 @@ class AccountNote extends ImmutablePureComponent {
|
||||||
return (
|
return (
|
||||||
<div className='account__header__account-note'>
|
<div className='account__header__account-note'>
|
||||||
<label htmlFor={`account-note-${account.get('id')}`}>
|
<label htmlFor={`account-note-${account.get('id')}`}>
|
||||||
<FormattedMessage id='account.account_note_header' defaultMessage='Note' /> <InlineAlert show={saved} />
|
<FormattedMessage id='account.account_note_header' defaultMessage='Personal note' /> <InlineAlert show={saved} />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<Textarea
|
<Textarea
|
||||||
|
|
|
@ -44,7 +44,7 @@ const ColumnSettings = () => {
|
||||||
settingPath={['minimizeFilteredBanner']}
|
settingPath={['minimizeFilteredBanner']}
|
||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
label={
|
label={
|
||||||
<FormattedMessage id='notification_requests.minimize_banner' defaultMessage='Minimize filtred notifications banner' />
|
<FormattedMessage id='notification_requests.minimize_banner' defaultMessage='Minimize filtered notifications banner' />
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -171,21 +171,28 @@
|
||||||
"confirmations.block.confirm": "Заблакіраваць",
|
"confirmations.block.confirm": "Заблакіраваць",
|
||||||
"confirmations.delete.confirm": "Выдаліць",
|
"confirmations.delete.confirm": "Выдаліць",
|
||||||
"confirmations.delete.message": "Вы ўпэўненыя, што хочаце выдаліць гэты допіс?",
|
"confirmations.delete.message": "Вы ўпэўненыя, што хочаце выдаліць гэты допіс?",
|
||||||
|
"confirmations.delete.title": "Выдаліць допіс?",
|
||||||
"confirmations.delete_list.confirm": "Выдаліць",
|
"confirmations.delete_list.confirm": "Выдаліць",
|
||||||
"confirmations.delete_list.message": "Вы ўпэўненыя, што хочаце беззваротна выдаліць гэты чарнавік?",
|
"confirmations.delete_list.message": "Вы ўпэўненыя, што хочаце беззваротна выдаліць гэты чарнавік?",
|
||||||
|
"confirmations.delete_list.title": "Выдаліць спіс?",
|
||||||
"confirmations.discard_edit_media.confirm": "Адмяніць",
|
"confirmations.discard_edit_media.confirm": "Адмяніць",
|
||||||
"confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?",
|
"confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?",
|
||||||
"confirmations.edit.confirm": "Рэдагаваць",
|
"confirmations.edit.confirm": "Рэдагаваць",
|
||||||
"confirmations.edit.message": "Калі вы зменіце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
|
"confirmations.edit.message": "Калі вы зменіце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
|
||||||
|
"confirmations.edit.title": "Замяніць допіс?",
|
||||||
"confirmations.logout.confirm": "Выйсці",
|
"confirmations.logout.confirm": "Выйсці",
|
||||||
"confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?",
|
"confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?",
|
||||||
|
"confirmations.logout.title": "Выйсці?",
|
||||||
"confirmations.mute.confirm": "Ігнараваць",
|
"confirmations.mute.confirm": "Ігнараваць",
|
||||||
"confirmations.redraft.confirm": "Выдаліць і перапісаць",
|
"confirmations.redraft.confirm": "Выдаліць і перапісаць",
|
||||||
"confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.",
|
"confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.",
|
||||||
|
"confirmations.redraft.title": "Выдаліць і перапісаць допіс?",
|
||||||
"confirmations.reply.confirm": "Адказаць",
|
"confirmations.reply.confirm": "Адказаць",
|
||||||
"confirmations.reply.message": "Калі вы адкажаце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
|
"confirmations.reply.message": "Калі вы адкажаце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
|
||||||
|
"confirmations.reply.title": "Замяніць допіс?",
|
||||||
"confirmations.unfollow.confirm": "Адпісацца",
|
"confirmations.unfollow.confirm": "Адпісацца",
|
||||||
"confirmations.unfollow.message": "Вы ўпэўненыя, што хочаце адпісацца ад {name}?",
|
"confirmations.unfollow.message": "Вы ўпэўненыя, што хочаце адпісацца ад {name}?",
|
||||||
|
"confirmations.unfollow.title": "Адпісацца ад карыстальніка?",
|
||||||
"conversation.delete": "Выдаліць размову",
|
"conversation.delete": "Выдаліць размову",
|
||||||
"conversation.mark_as_read": "Адзначыць прачытаным",
|
"conversation.mark_as_read": "Адзначыць прачытаным",
|
||||||
"conversation.open": "Прагледзець размову",
|
"conversation.open": "Прагледзець размову",
|
||||||
|
@ -293,6 +300,7 @@
|
||||||
"filter_modal.select_filter.subtitle": "Скарыстайцеся існуючай катэгорыяй або стварыце новую",
|
"filter_modal.select_filter.subtitle": "Скарыстайцеся існуючай катэгорыяй або стварыце новую",
|
||||||
"filter_modal.select_filter.title": "Фільтраваць гэты допіс",
|
"filter_modal.select_filter.title": "Фільтраваць гэты допіс",
|
||||||
"filter_modal.title.status": "Фільтраваць допіс",
|
"filter_modal.title.status": "Фільтраваць допіс",
|
||||||
|
"filtered_notifications_banner.pending_requests": "Ад {count, plural, =0 {# людзей якіх} one {# чалавека якіх} few {# чалавек якіх} many {# людзей якіх} other {# чалавека якіх}} вы магчыма ведаеце",
|
||||||
"filtered_notifications_banner.title": "Адфільтраваныя апавяшчэнні",
|
"filtered_notifications_banner.title": "Адфільтраваныя апавяшчэнні",
|
||||||
"firehose.all": "Усе",
|
"firehose.all": "Усе",
|
||||||
"firehose.local": "Гэты сервер",
|
"firehose.local": "Гэты сервер",
|
||||||
|
@ -341,7 +349,7 @@
|
||||||
"hashtag.follow": "Падпісацца на хэштэг",
|
"hashtag.follow": "Падпісацца на хэштэг",
|
||||||
"hashtag.unfollow": "Адпісацца ад хэштэга",
|
"hashtag.unfollow": "Адпісацца ад хэштэга",
|
||||||
"hashtags.and_other": "…і яшчэ {count, plural, other {#}}",
|
"hashtags.and_other": "…і яшчэ {count, plural, other {#}}",
|
||||||
"home.column_settings.show_reblogs": "Паказаць пашырэнні",
|
"home.column_settings.show_reblogs": "Паказваць пашырэнні",
|
||||||
"home.column_settings.show_replies": "Паказваць адказы",
|
"home.column_settings.show_replies": "Паказваць адказы",
|
||||||
"home.hide_announcements": "Схаваць аб'явы",
|
"home.hide_announcements": "Схаваць аб'явы",
|
||||||
"home.pending_critical_update.body": "Калі ласка, абнавіце свой сервер Mastodon як мага хутчэй!",
|
"home.pending_critical_update.body": "Калі ласка, абнавіце свой сервер Mastodon як мага хутчэй!",
|
||||||
|
@ -437,6 +445,8 @@
|
||||||
"mute_modal.title": "Ігнараваць карыстальніка?",
|
"mute_modal.title": "Ігнараваць карыстальніка?",
|
||||||
"mute_modal.you_wont_see_mentions": "Вы не ўбачыце паведамленняў са згадваннем карыстальніка.",
|
"mute_modal.you_wont_see_mentions": "Вы не ўбачыце паведамленняў са згадваннем карыстальніка.",
|
||||||
"mute_modal.you_wont_see_posts": "Карыстальнік па-ранейшаму будзе бачыць вашыя паведамленні, але вы не будзеце паведамленні карыстальніка.",
|
"mute_modal.you_wont_see_posts": "Карыстальнік па-ранейшаму будзе бачыць вашыя паведамленні, але вы не будзеце паведамленні карыстальніка.",
|
||||||
|
"name_and_others": "{name} і {count, plural, one {# іншы} many {# іншых} other {# іншых}}",
|
||||||
|
"name_and_others_with_link": "{name} і <a>{count, plural, one {# іншы} many {# іншых} other {# іншых}}</a>",
|
||||||
"navigation_bar.about": "Пра нас",
|
"navigation_bar.about": "Пра нас",
|
||||||
"navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе",
|
"navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе",
|
||||||
"navigation_bar.blocks": "Заблакіраваныя карыстальнікі",
|
"navigation_bar.blocks": "Заблакіраваныя карыстальнікі",
|
||||||
|
@ -464,6 +474,10 @@
|
||||||
"navigation_bar.security": "Бяспека",
|
"navigation_bar.security": "Бяспека",
|
||||||
"not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.",
|
"not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.",
|
||||||
"notification.admin.report": "{name} паскардзіўся на {target}",
|
"notification.admin.report": "{name} паскардзіўся на {target}",
|
||||||
|
"notification.admin.report_account": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target} з прычыны {category}",
|
||||||
|
"notification.admin.report_account_other": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target}",
|
||||||
|
"notification.admin.report_statuses": "{name} паскардзіўся на {target} з прычыны {category}",
|
||||||
|
"notification.admin.report_statuses_other": "{name} паскардзіўся на {target}",
|
||||||
"notification.admin.sign_up": "{name} зарэгістраваўся",
|
"notification.admin.sign_up": "{name} зарэгістраваўся",
|
||||||
"notification.favourite": "Ваш допіс упадабаны {name}",
|
"notification.favourite": "Ваш допіс упадабаны {name}",
|
||||||
"notification.follow": "{name} падпісаўся на вас",
|
"notification.follow": "{name} падпісаўся на вас",
|
||||||
|
@ -479,6 +493,8 @@
|
||||||
"notification.moderation_warning.action_silence": "Ваш уліковы запіс быў абмежаваны.",
|
"notification.moderation_warning.action_silence": "Ваш уліковы запіс быў абмежаваны.",
|
||||||
"notification.moderation_warning.action_suspend": "Ваш уліковы запіс быў прыпынены.",
|
"notification.moderation_warning.action_suspend": "Ваш уліковы запіс быў прыпынены.",
|
||||||
"notification.own_poll": "Ваша апытанне скончылася",
|
"notification.own_poll": "Ваша апытанне скончылася",
|
||||||
|
"notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася",
|
||||||
|
"notification.private_mention": "{name} згадаў вас асабіста",
|
||||||
"notification.reblog": "{name} пашырыў ваш допіс",
|
"notification.reblog": "{name} пашырыў ваш допіс",
|
||||||
"notification.relationships_severance_event": "Страціў сувязь з {name}",
|
"notification.relationships_severance_event": "Страціў сувязь з {name}",
|
||||||
"notification.relationships_severance_event.account_suspension": "Адміністратар з {from} прыпыніў працу {target}, што азначае, што вы больш не можаце атрымліваць ад іх абнаўлення ці ўзаемадзейнічаць з імі.",
|
"notification.relationships_severance_event.account_suspension": "Адміністратар з {from} прыпыніў працу {target}, што азначае, што вы больш не можаце атрымліваць ад іх абнаўлення ці ўзаемадзейнічаць з імі.",
|
||||||
|
@ -489,13 +505,18 @@
|
||||||
"notification.update": "Допіс {name} адрэдагаваны",
|
"notification.update": "Допіс {name} адрэдагаваны",
|
||||||
"notification_requests.accept": "Прыняць",
|
"notification_requests.accept": "Прыняць",
|
||||||
"notification_requests.dismiss": "Адхіліць",
|
"notification_requests.dismiss": "Адхіліць",
|
||||||
|
"notification_requests.maximize": "Разгарнуць",
|
||||||
|
"notification_requests.minimize_banner": "Згарнуць банер адфільтраваных апавяшчэнняў",
|
||||||
"notification_requests.notifications_from": "Апавяшчэнні ад {name}",
|
"notification_requests.notifications_from": "Апавяшчэнні ад {name}",
|
||||||
"notification_requests.title": "Адфільтраваныя апавяшчэнні",
|
"notification_requests.title": "Адфільтраваныя апавяшчэнні",
|
||||||
"notifications.clear": "Ачысціць апавяшчэнні",
|
"notifications.clear": "Ачысціць апавяшчэнні",
|
||||||
"notifications.clear_confirmation": "Вы ўпэўнены, што жадаеце назаўсёды сцерці ўсё паведамленні?",
|
"notifications.clear_confirmation": "Вы ўпэўнены, што жадаеце назаўсёды сцерці ўсё паведамленні?",
|
||||||
|
"notifications.clear_title": "Ачысціць апавяшчэнні?",
|
||||||
"notifications.column_settings.admin.report": "Новыя скаргі:",
|
"notifications.column_settings.admin.report": "Новыя скаргі:",
|
||||||
"notifications.column_settings.admin.sign_up": "Новыя ўваходы:",
|
"notifications.column_settings.admin.sign_up": "Новыя ўваходы:",
|
||||||
"notifications.column_settings.alert": "Апавяшчэнні на працоўным стале",
|
"notifications.column_settings.alert": "Апавяшчэнні на працоўным стале",
|
||||||
|
"notifications.column_settings.beta.category": "Эксперыментальныя функцыі",
|
||||||
|
"notifications.column_settings.beta.grouping": "Групаваць апавяшчэннi",
|
||||||
"notifications.column_settings.favourite": "Упадабанае:",
|
"notifications.column_settings.favourite": "Упадабанае:",
|
||||||
"notifications.column_settings.filter_bar.advanced": "Паказаць усе катэгорыі",
|
"notifications.column_settings.filter_bar.advanced": "Паказаць усе катэгорыі",
|
||||||
"notifications.column_settings.filter_bar.category": "Панэль хуткай фільтрацыі",
|
"notifications.column_settings.filter_bar.category": "Панэль хуткай фільтрацыі",
|
||||||
|
@ -659,9 +680,13 @@
|
||||||
"report.unfollow_explanation": "Вы падпісаныя на гэты ўліковы запіс. Каб не бачыць допісы з яго ў вашай стужцы, адпішыцеся.",
|
"report.unfollow_explanation": "Вы падпісаныя на гэты ўліковы запіс. Каб не бачыць допісы з яго ў вашай стужцы, адпішыцеся.",
|
||||||
"report_notification.attached_statuses": "{count, plural, one {{count} допіс прымацаваны} few {{count} допісы прымацаваны} many {{count} допісаў прымацавана} other {{count} допісу прымацавана}}",
|
"report_notification.attached_statuses": "{count, plural, one {{count} допіс прымацаваны} few {{count} допісы прымацаваны} many {{count} допісаў прымацавана} other {{count} допісу прымацавана}}",
|
||||||
"report_notification.categories.legal": "Права",
|
"report_notification.categories.legal": "Права",
|
||||||
|
"report_notification.categories.legal_sentence": "нелегальнае змесціва",
|
||||||
"report_notification.categories.other": "Іншае",
|
"report_notification.categories.other": "Іншае",
|
||||||
|
"report_notification.categories.other_sentence": "іншае",
|
||||||
"report_notification.categories.spam": "Спам",
|
"report_notification.categories.spam": "Спам",
|
||||||
|
"report_notification.categories.spam_sentence": "спам",
|
||||||
"report_notification.categories.violation": "Парушэнне правілаў",
|
"report_notification.categories.violation": "Парушэнне правілаў",
|
||||||
|
"report_notification.categories.violation_sentence": "парушэнне правілаў",
|
||||||
"report_notification.open": "Адкрыць скаргу",
|
"report_notification.open": "Адкрыць скаргу",
|
||||||
"search.no_recent_searches": "Гісторыя пошуку пустая",
|
"search.no_recent_searches": "Гісторыя пошуку пустая",
|
||||||
"search.placeholder": "Пошук",
|
"search.placeholder": "Пошук",
|
||||||
|
@ -689,8 +714,11 @@
|
||||||
"server_banner.about_active_users": "Людзі, якія карыстаюцца гэтым сервера на працягу апошніх 30 дзён (Штомесячна Актыўныя Карыстальнікі)",
|
"server_banner.about_active_users": "Людзі, якія карыстаюцца гэтым сервера на працягу апошніх 30 дзён (Штомесячна Актыўныя Карыстальнікі)",
|
||||||
"server_banner.active_users": "актыўныя карыстальнікі",
|
"server_banner.active_users": "актыўныя карыстальнікі",
|
||||||
"server_banner.administered_by": "Адміністратар:",
|
"server_banner.administered_by": "Адміністратар:",
|
||||||
|
"server_banner.is_one_of_many": "{domain} - гэта адзін з многіх незалежных сервераў Mastodon, якія вы можаце выкарыстоўваць для ўдзелу ў fediverse.",
|
||||||
"server_banner.server_stats": "Статыстыка сервера:",
|
"server_banner.server_stats": "Статыстыка сервера:",
|
||||||
"sign_in_banner.create_account": "Стварыць уліковы запіс",
|
"sign_in_banner.create_account": "Стварыць уліковы запіс",
|
||||||
|
"sign_in_banner.follow_anyone": "Сачыце за кім заўгодна ва ўсім fediverse і глядзіце ўсё ў храналагічным парадку. Ніякіх алгарытмаў, рэкламы або клікбэйту.",
|
||||||
|
"sign_in_banner.mastodon_is": "Mastodon - лепшы спосаб быць у курсе ўсяго, што адбываецца.",
|
||||||
"sign_in_banner.sign_in": "Увайсці",
|
"sign_in_banner.sign_in": "Увайсці",
|
||||||
"sign_in_banner.sso_redirect": "Уваход ці рэгістрацыя",
|
"sign_in_banner.sso_redirect": "Уваход ці рэгістрацыя",
|
||||||
"status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}",
|
"status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}",
|
||||||
|
@ -765,8 +793,8 @@
|
||||||
"time_remaining.seconds": "{number, plural, one {засталася # секунда} few {засталося # секунды} many {засталося # секунд} other {засталося # секунды}}",
|
"time_remaining.seconds": "{number, plural, one {засталася # секунда} few {засталося # секунды} many {засталося # секунд} other {засталося # секунды}}",
|
||||||
"timeline_hint.remote_resource_not_displayed": "{resource} з іншых сервераў не адлюстроўваецца.",
|
"timeline_hint.remote_resource_not_displayed": "{resource} з іншых сервераў не адлюстроўваецца.",
|
||||||
"timeline_hint.resources.followers": "Падпісчыкі",
|
"timeline_hint.resources.followers": "Падпісчыкі",
|
||||||
"timeline_hint.resources.follows": "Падпісаны на",
|
"timeline_hint.resources.follows": "Падпіскі",
|
||||||
"timeline_hint.resources.statuses": "Старэйшыя допісы",
|
"timeline_hint.resources.statuses": "Старыя допісы",
|
||||||
"trends.counter_by_accounts": "{count, plural, one {{counter} чалавек} few {{counter} чалавекі} many {{counter} людзей} other {{counter} чалавек}} за {days, plural, one {{days} апошні дзень} few {{days} апошнія дні} many {{days} апошніх дзён} other {{days} апошніх дзён}}",
|
"trends.counter_by_accounts": "{count, plural, one {{counter} чалавек} few {{counter} чалавекі} many {{counter} людзей} other {{counter} чалавек}} за {days, plural, one {{days} апошні дзень} few {{days} апошнія дні} many {{days} апошніх дзён} other {{days} апошніх дзён}}",
|
||||||
"trends.trending_now": "Актуальнае",
|
"trends.trending_now": "Актуальнае",
|
||||||
"ui.beforeunload": "Ваш чарнавік знішчыцца калі вы пакінеце Mastodon.",
|
"ui.beforeunload": "Ваш чарнавік знішчыцца калі вы пакінеце Mastodon.",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} промени публикация",
|
"notification.update": "{name} промени публикация",
|
||||||
"notification_requests.accept": "Приемам",
|
"notification_requests.accept": "Приемам",
|
||||||
"notification_requests.dismiss": "Отхвърлям",
|
"notification_requests.dismiss": "Отхвърлям",
|
||||||
|
"notification_requests.maximize": "Максимизиране",
|
||||||
|
"notification_requests.minimize_banner": "Минимизиране на банера за филтрирани известия",
|
||||||
"notification_requests.notifications_from": "Известия от {name}",
|
"notification_requests.notifications_from": "Известия от {name}",
|
||||||
"notification_requests.title": "Филтрирани известия",
|
"notification_requests.title": "Филтрирани известия",
|
||||||
"notifications.clear": "Изчистване на известията",
|
"notifications.clear": "Изчистване на известията",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} ha editat un tut",
|
"notification.update": "{name} ha editat un tut",
|
||||||
"notification_requests.accept": "Accepta",
|
"notification_requests.accept": "Accepta",
|
||||||
"notification_requests.dismiss": "Ignora",
|
"notification_requests.dismiss": "Ignora",
|
||||||
|
"notification_requests.maximize": "Maximitza",
|
||||||
|
"notification_requests.minimize_banner": "Minimitza el bàner de notificacions filtrades",
|
||||||
"notification_requests.notifications_from": "Notificacions de {name}",
|
"notification_requests.notifications_from": "Notificacions de {name}",
|
||||||
"notification_requests.title": "Notificacions filtrades",
|
"notification_requests.title": "Notificacions filtrades",
|
||||||
"notifications.clear": "Esborra les notificacions",
|
"notifications.clear": "Esborra les notificacions",
|
||||||
|
|
|
@ -171,21 +171,28 @@
|
||||||
"confirmations.block.confirm": "Blokovat",
|
"confirmations.block.confirm": "Blokovat",
|
||||||
"confirmations.delete.confirm": "Smazat",
|
"confirmations.delete.confirm": "Smazat",
|
||||||
"confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?",
|
"confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?",
|
||||||
|
"confirmations.delete.title": "Smazat příspěvek?",
|
||||||
"confirmations.delete_list.confirm": "Smazat",
|
"confirmations.delete_list.confirm": "Smazat",
|
||||||
"confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?",
|
"confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?",
|
||||||
|
"confirmations.delete_list.title": "Smazat seznam?",
|
||||||
"confirmations.discard_edit_media.confirm": "Zahodit",
|
"confirmations.discard_edit_media.confirm": "Zahodit",
|
||||||
"confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?",
|
"confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?",
|
||||||
"confirmations.edit.confirm": "Upravit",
|
"confirmations.edit.confirm": "Upravit",
|
||||||
"confirmations.edit.message": "Editovat teď znamená přepsání zprávy, kterou právě tvoříte. Opravdu chcete pokračovat?",
|
"confirmations.edit.message": "Editovat teď znamená přepsání zprávy, kterou právě tvoříte. Opravdu chcete pokračovat?",
|
||||||
|
"confirmations.edit.title": "Přepsat příspěvek?",
|
||||||
"confirmations.logout.confirm": "Odhlásit se",
|
"confirmations.logout.confirm": "Odhlásit se",
|
||||||
"confirmations.logout.message": "Opravdu se chcete odhlásit?",
|
"confirmations.logout.message": "Opravdu se chcete odhlásit?",
|
||||||
|
"confirmations.logout.title": "Odhlásit se?",
|
||||||
"confirmations.mute.confirm": "Skrýt",
|
"confirmations.mute.confirm": "Skrýt",
|
||||||
"confirmations.redraft.confirm": "Smazat a přepsat",
|
"confirmations.redraft.confirm": "Smazat a přepsat",
|
||||||
"confirmations.redraft.message": "Jste si jistí, že chcete odstranit tento příspěvek a vytvořit z něj koncept? Oblíbené a boosty budou ztraceny a odpovědi na původní příspěvek ztratí kontext.",
|
"confirmations.redraft.message": "Jste si jistí, že chcete odstranit tento příspěvek a vytvořit z něj koncept? Oblíbené a boosty budou ztraceny a odpovědi na původní příspěvek ztratí kontext.",
|
||||||
|
"confirmations.redraft.title": "Smazat a přepracovat příspěvek na koncept?",
|
||||||
"confirmations.reply.confirm": "Odpovědět",
|
"confirmations.reply.confirm": "Odpovědět",
|
||||||
"confirmations.reply.message": "Odpověď přepíše vaši rozepsanou zprávu. Opravdu chcete pokračovat?",
|
"confirmations.reply.message": "Odpověď přepíše vaši rozepsanou zprávu. Opravdu chcete pokračovat?",
|
||||||
|
"confirmations.reply.title": "Přepsat příspěvek?",
|
||||||
"confirmations.unfollow.confirm": "Přestat sledovat",
|
"confirmations.unfollow.confirm": "Přestat sledovat",
|
||||||
"confirmations.unfollow.message": "Opravdu chcete {name} přestat sledovat?",
|
"confirmations.unfollow.message": "Opravdu chcete {name} přestat sledovat?",
|
||||||
|
"confirmations.unfollow.title": "Přestat sledovat uživatele?",
|
||||||
"conversation.delete": "Smazat konverzaci",
|
"conversation.delete": "Smazat konverzaci",
|
||||||
"conversation.mark_as_read": "Označit jako přečtené",
|
"conversation.mark_as_read": "Označit jako přečtené",
|
||||||
"conversation.open": "Zobrazit konverzaci",
|
"conversation.open": "Zobrazit konverzaci",
|
||||||
|
@ -479,6 +486,7 @@
|
||||||
"notification.moderation_warning.action_silence": "Váš účet byl omezen.",
|
"notification.moderation_warning.action_silence": "Váš účet byl omezen.",
|
||||||
"notification.moderation_warning.action_suspend": "Váš účet byl pozastaven.",
|
"notification.moderation_warning.action_suspend": "Váš účet byl pozastaven.",
|
||||||
"notification.own_poll": "Vaše anketa skončila",
|
"notification.own_poll": "Vaše anketa skončila",
|
||||||
|
"notification.poll": "Anketa, ve které jste hlasovali, skončila",
|
||||||
"notification.reblog": "Uživatel {name} boostnul váš příspěvek",
|
"notification.reblog": "Uživatel {name} boostnul váš příspěvek",
|
||||||
"notification.relationships_severance_event": "Kontakt ztracen s {name}",
|
"notification.relationships_severance_event": "Kontakt ztracen s {name}",
|
||||||
"notification.relationships_severance_event.account_suspension": "Administrátor z {from} pozastavil {target}, což znamená, že již od nich nemůžete přijímat aktualizace nebo s nimi interagovat.",
|
"notification.relationships_severance_event.account_suspension": "Administrátor z {from} pozastavil {target}, což znamená, že již od nich nemůžete přijímat aktualizace nebo s nimi interagovat.",
|
||||||
|
@ -489,13 +497,17 @@
|
||||||
"notification.update": "Uživatel {name} upravil příspěvek",
|
"notification.update": "Uživatel {name} upravil příspěvek",
|
||||||
"notification_requests.accept": "Přijmout",
|
"notification_requests.accept": "Přijmout",
|
||||||
"notification_requests.dismiss": "Zamítnout",
|
"notification_requests.dismiss": "Zamítnout",
|
||||||
|
"notification_requests.maximize": "Maximalizovat",
|
||||||
|
"notification_requests.minimize_banner": "Minimalizovat banner filtrovaných oznámení",
|
||||||
"notification_requests.notifications_from": "Oznámení od {name}",
|
"notification_requests.notifications_from": "Oznámení od {name}",
|
||||||
"notification_requests.title": "Vyfiltrovaná oznámení",
|
"notification_requests.title": "Vyfiltrovaná oznámení",
|
||||||
"notifications.clear": "Vyčistit oznámení",
|
"notifications.clear": "Vyčistit oznámení",
|
||||||
"notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?",
|
"notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?",
|
||||||
|
"notifications.clear_title": "Vyčistit oznámení?",
|
||||||
"notifications.column_settings.admin.report": "Nová hlášení:",
|
"notifications.column_settings.admin.report": "Nová hlášení:",
|
||||||
"notifications.column_settings.admin.sign_up": "Nové registrace:",
|
"notifications.column_settings.admin.sign_up": "Nové registrace:",
|
||||||
"notifications.column_settings.alert": "Oznámení na počítači",
|
"notifications.column_settings.alert": "Oznámení na počítači",
|
||||||
|
"notifications.column_settings.beta.category": "Experimentální funkce",
|
||||||
"notifications.column_settings.favourite": "Oblíbené:",
|
"notifications.column_settings.favourite": "Oblíbené:",
|
||||||
"notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie",
|
"notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie",
|
||||||
"notifications.column_settings.filter_bar.category": "Panel rychlého filtrování",
|
"notifications.column_settings.filter_bar.category": "Panel rychlého filtrování",
|
||||||
|
@ -659,9 +671,13 @@
|
||||||
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
|
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
|
||||||
"report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
|
"report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
|
||||||
"report_notification.categories.legal": "Právní ustanovení",
|
"report_notification.categories.legal": "Právní ustanovení",
|
||||||
|
"report_notification.categories.legal_sentence": "nezákonný obsah",
|
||||||
"report_notification.categories.other": "Ostatní",
|
"report_notification.categories.other": "Ostatní",
|
||||||
|
"report_notification.categories.other_sentence": "další",
|
||||||
"report_notification.categories.spam": "Spam",
|
"report_notification.categories.spam": "Spam",
|
||||||
|
"report_notification.categories.spam_sentence": "spam",
|
||||||
"report_notification.categories.violation": "Porušení pravidla",
|
"report_notification.categories.violation": "Porušení pravidla",
|
||||||
|
"report_notification.categories.violation_sentence": "porušení pravidla",
|
||||||
"report_notification.open": "Otevřít hlášení",
|
"report_notification.open": "Otevřít hlášení",
|
||||||
"search.no_recent_searches": "Žádná nedávná vyhledávání",
|
"search.no_recent_searches": "Žádná nedávná vyhledávání",
|
||||||
"search.placeholder": "Hledat",
|
"search.placeholder": "Hledat",
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"about.contact": "Cysylltwch â:",
|
"about.contact": "Cysylltwch â:",
|
||||||
"about.disclaimer": "Mae Mastodon yn feddalwedd cod agored rhydd ac o dan hawlfraint Mastodon gGmbH.",
|
"about.disclaimer": "Mae Mastodon yn feddalwedd cod agored rhydd ac o dan hawlfraint Mastodon gGmbH.",
|
||||||
"about.domain_blocks.no_reason_available": "Nid yw'r rheswm ar gael",
|
"about.domain_blocks.no_reason_available": "Nid yw'r rheswm ar gael",
|
||||||
"about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
|
"about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffedysawd a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
|
||||||
"about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.",
|
"about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.",
|
||||||
"about.domain_blocks.silenced.title": "Cyfyngedig",
|
"about.domain_blocks.silenced.title": "Cyfyngedig",
|
||||||
"about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
|
"about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
|
||||||
|
@ -503,6 +503,7 @@
|
||||||
"notification.update": "Golygodd {name} bostiad",
|
"notification.update": "Golygodd {name} bostiad",
|
||||||
"notification_requests.accept": "Derbyn",
|
"notification_requests.accept": "Derbyn",
|
||||||
"notification_requests.dismiss": "Cau",
|
"notification_requests.dismiss": "Cau",
|
||||||
|
"notification_requests.maximize": "Mwyhau",
|
||||||
"notification_requests.notifications_from": "Hysbysiadau gan {name}",
|
"notification_requests.notifications_from": "Hysbysiadau gan {name}",
|
||||||
"notification_requests.title": "Hysbysiadau wedi'u hidlo",
|
"notification_requests.title": "Hysbysiadau wedi'u hidlo",
|
||||||
"notifications.clear": "Clirio hysbysiadau",
|
"notifications.clear": "Clirio hysbysiadau",
|
||||||
|
@ -710,8 +711,11 @@
|
||||||
"server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)",
|
"server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)",
|
||||||
"server_banner.active_users": "defnyddwyr gweithredol",
|
"server_banner.active_users": "defnyddwyr gweithredol",
|
||||||
"server_banner.administered_by": "Gweinyddir gan:",
|
"server_banner.administered_by": "Gweinyddir gan:",
|
||||||
|
"server_banner.is_one_of_many": "Mae {domain} yn un o'r nifer o weinyddion Mastodon annibynnol y gallwch eu defnyddio i gymryd rhan yn y ffedysawd.",
|
||||||
"server_banner.server_stats": "Ystadegau'r gweinydd:",
|
"server_banner.server_stats": "Ystadegau'r gweinydd:",
|
||||||
"sign_in_banner.create_account": "Creu cyfrif",
|
"sign_in_banner.create_account": "Creu cyfrif",
|
||||||
|
"sign_in_banner.follow_anyone": "Dilynwch unrhyw un ar draws y ffedysawd a gweld y cyfan mewn trefn gronolegol. Dim algorithmau, hysbysebion, na straeon er mwyn cliciadau yn y golwg.",
|
||||||
|
"sign_in_banner.mastodon_is": "Mastodon yw'r ffordd orau o gadw i fyny â'r hyn sy'n digwydd.",
|
||||||
"sign_in_banner.sign_in": "Mewngofnodi",
|
"sign_in_banner.sign_in": "Mewngofnodi",
|
||||||
"sign_in_banner.sso_redirect": "Mewngofnodi neu Gofrestru",
|
"sign_in_banner.sso_redirect": "Mewngofnodi neu Gofrestru",
|
||||||
"status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}",
|
"status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} redigerede et indlæg",
|
"notification.update": "{name} redigerede et indlæg",
|
||||||
"notification_requests.accept": "Acceptér",
|
"notification_requests.accept": "Acceptér",
|
||||||
"notification_requests.dismiss": "Afvis",
|
"notification_requests.dismiss": "Afvis",
|
||||||
|
"notification_requests.maximize": "Maksimér",
|
||||||
|
"notification_requests.minimize_banner": "Minimér filtrerede notifikationsbanner",
|
||||||
"notification_requests.notifications_from": "Notifikationer fra {name}",
|
"notification_requests.notifications_from": "Notifikationer fra {name}",
|
||||||
"notification_requests.title": "Filtrerede notifikationer",
|
"notification_requests.title": "Filtrerede notifikationer",
|
||||||
"notifications.clear": "Ryd notifikationer",
|
"notifications.clear": "Ryd notifikationer",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} bearbeitete einen Beitrag",
|
"notification.update": "{name} bearbeitete einen Beitrag",
|
||||||
"notification_requests.accept": "Akzeptieren",
|
"notification_requests.accept": "Akzeptieren",
|
||||||
"notification_requests.dismiss": "Ablehnen",
|
"notification_requests.dismiss": "Ablehnen",
|
||||||
|
"notification_requests.maximize": "Maximieren",
|
||||||
|
"notification_requests.minimize_banner": "Banner für gefilterte Benachrichtigungen minimieren",
|
||||||
"notification_requests.notifications_from": "Benachrichtigungen von {name}",
|
"notification_requests.notifications_from": "Benachrichtigungen von {name}",
|
||||||
"notification_requests.title": "Gefilterte Benachrichtigungen",
|
"notification_requests.title": "Gefilterte Benachrichtigungen",
|
||||||
"notifications.clear": "Benachrichtigungen löschen",
|
"notifications.clear": "Benachrichtigungen löschen",
|
||||||
|
@ -687,7 +689,7 @@
|
||||||
"report_notification.categories.violation_sentence": "Regelverletzung",
|
"report_notification.categories.violation_sentence": "Regelverletzung",
|
||||||
"report_notification.open": "Meldung öffnen",
|
"report_notification.open": "Meldung öffnen",
|
||||||
"search.no_recent_searches": "Keine früheren Suchanfragen",
|
"search.no_recent_searches": "Keine früheren Suchanfragen",
|
||||||
"search.placeholder": "Suche",
|
"search.placeholder": "Suchen",
|
||||||
"search.quick_action.account_search": "Profile passend zu {x}",
|
"search.quick_action.account_search": "Profile passend zu {x}",
|
||||||
"search.quick_action.go_to_account": "Profil {x} aufrufen",
|
"search.quick_action.go_to_account": "Profil {x} aufrufen",
|
||||||
"search.quick_action.go_to_hashtag": "Hashtag {x} aufrufen",
|
"search.quick_action.go_to_hashtag": "Hashtag {x} aufrufen",
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"about.not_available": "This information has not been made available on this server.",
|
"about.not_available": "This information has not been made available on this server.",
|
||||||
"about.powered_by": "Decentralized social media powered by {mastodon}",
|
"about.powered_by": "Decentralized social media powered by {mastodon}",
|
||||||
"about.rules": "Server rules",
|
"about.rules": "Server rules",
|
||||||
"account.account_note_header": "Note",
|
"account.account_note_header": "Personal note",
|
||||||
"account.add_or_remove_from_list": "Add or Remove from lists",
|
"account.add_or_remove_from_list": "Add or Remove from lists",
|
||||||
"account.badges.bot": "Automated",
|
"account.badges.bot": "Automated",
|
||||||
"account.badges.group": "Group",
|
"account.badges.group": "Group",
|
||||||
|
@ -506,7 +506,7 @@
|
||||||
"notification_requests.accept": "Accept",
|
"notification_requests.accept": "Accept",
|
||||||
"notification_requests.dismiss": "Dismiss",
|
"notification_requests.dismiss": "Dismiss",
|
||||||
"notification_requests.maximize": "Maximize",
|
"notification_requests.maximize": "Maximize",
|
||||||
"notification_requests.minimize_banner": "Minimize filtred notifications banner",
|
"notification_requests.minimize_banner": "Minimize filtered notifications banner",
|
||||||
"notification_requests.notifications_from": "Notifications from {name}",
|
"notification_requests.notifications_from": "Notifications from {name}",
|
||||||
"notification_requests.title": "Filtered notifications",
|
"notification_requests.title": "Filtered notifications",
|
||||||
"notifications.clear": "Clear notifications",
|
"notifications.clear": "Clear notifications",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} editó un mensaje",
|
"notification.update": "{name} editó un mensaje",
|
||||||
"notification_requests.accept": "Aceptar",
|
"notification_requests.accept": "Aceptar",
|
||||||
"notification_requests.dismiss": "Descartar",
|
"notification_requests.dismiss": "Descartar",
|
||||||
|
"notification_requests.maximize": "Maximizar",
|
||||||
|
"notification_requests.minimize_banner": "Minimizar la barra de notificaciones filtradas",
|
||||||
"notification_requests.notifications_from": "Notificaciones de {name}",
|
"notification_requests.notifications_from": "Notificaciones de {name}",
|
||||||
"notification_requests.title": "Notificaciones filtradas",
|
"notification_requests.title": "Notificaciones filtradas",
|
||||||
"notifications.clear": "Limpiar notificaciones",
|
"notifications.clear": "Limpiar notificaciones",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} editó una publicación",
|
"notification.update": "{name} editó una publicación",
|
||||||
"notification_requests.accept": "Aceptar",
|
"notification_requests.accept": "Aceptar",
|
||||||
"notification_requests.dismiss": "Descartar",
|
"notification_requests.dismiss": "Descartar",
|
||||||
|
"notification_requests.maximize": "Maximizar",
|
||||||
|
"notification_requests.minimize_banner": "Minimizar banner de notificaciones filtradas",
|
||||||
"notification_requests.notifications_from": "Notificaciones de {name}",
|
"notification_requests.notifications_from": "Notificaciones de {name}",
|
||||||
"notification_requests.title": "Notificaciones filtradas",
|
"notification_requests.title": "Notificaciones filtradas",
|
||||||
"notifications.clear": "Limpiar notificaciones",
|
"notifications.clear": "Limpiar notificaciones",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} editó una publicación",
|
"notification.update": "{name} editó una publicación",
|
||||||
"notification_requests.accept": "Aceptar",
|
"notification_requests.accept": "Aceptar",
|
||||||
"notification_requests.dismiss": "Descartar",
|
"notification_requests.dismiss": "Descartar",
|
||||||
|
"notification_requests.maximize": "Maximizar",
|
||||||
|
"notification_requests.minimize_banner": "Minimizar banner de notificaciones filtradas",
|
||||||
"notification_requests.notifications_from": "Notificaciones de {name}",
|
"notification_requests.notifications_from": "Notificaciones de {name}",
|
||||||
"notification_requests.title": "Notificaciones filtradas",
|
"notification_requests.title": "Notificaciones filtradas",
|
||||||
"notifications.clear": "Limpiar notificaciones",
|
"notifications.clear": "Limpiar notificaciones",
|
||||||
|
|
|
@ -86,6 +86,10 @@
|
||||||
"announcement.announcement": "اعلامیه",
|
"announcement.announcement": "اعلامیه",
|
||||||
"attachments_list.unprocessed": "(پردازش نشده)",
|
"attachments_list.unprocessed": "(پردازش نشده)",
|
||||||
"audio.hide": "نهفتن صدا",
|
"audio.hide": "نهفتن صدا",
|
||||||
|
"block_modal.show_less": "نمایش کمتر",
|
||||||
|
"block_modal.show_more": "نمایش بیشتر",
|
||||||
|
"block_modal.title": "انسداد کاربر؟",
|
||||||
|
"block_modal.you_wont_see_mentions": "فرستههایی که از اون نام برده را نخواهید دید.",
|
||||||
"boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
|
"boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
|
||||||
"bundle_column_error.copy_stacktrace": "رونوشت از گزارش خطا",
|
"bundle_column_error.copy_stacktrace": "رونوشت از گزارش خطا",
|
||||||
"bundle_column_error.error.body": "صفحهٔ درخواستی نتوانست پرداخت شود. ممکن است به خاطر اشکالی در کدمان یا مشکل سازگاری مرورگر باشد.",
|
"bundle_column_error.error.body": "صفحهٔ درخواستی نتوانست پرداخت شود. ممکن است به خاطر اشکالی در کدمان یا مشکل سازگاری مرورگر باشد.",
|
||||||
|
@ -160,21 +164,28 @@
|
||||||
"confirmations.block.confirm": "انسداد",
|
"confirmations.block.confirm": "انسداد",
|
||||||
"confirmations.delete.confirm": "حذف",
|
"confirmations.delete.confirm": "حذف",
|
||||||
"confirmations.delete.message": "آیا مطمئنید که میخواهید این فرسته را حذف کنید؟",
|
"confirmations.delete.message": "آیا مطمئنید که میخواهید این فرسته را حذف کنید؟",
|
||||||
|
"confirmations.delete.title": "حذف فرسته؟",
|
||||||
"confirmations.delete_list.confirm": "حذف",
|
"confirmations.delete_list.confirm": "حذف",
|
||||||
"confirmations.delete_list.message": "مطمئنید میخواهید این سیاهه را برای همیشه حذف کنید؟",
|
"confirmations.delete_list.message": "مطمئنید میخواهید این سیاهه را برای همیشه حذف کنید؟",
|
||||||
|
"confirmations.delete_list.title": "حذف سیاهه؟",
|
||||||
"confirmations.discard_edit_media.confirm": "دور انداختن",
|
"confirmations.discard_edit_media.confirm": "دور انداختن",
|
||||||
"confirmations.discard_edit_media.message": "تغییرات ذخیره نشدهای در توضیحات یا پیشنمایش رسانه دارید. همگی نادیده گرفته شوند؟",
|
"confirmations.discard_edit_media.message": "تغییرات ذخیره نشدهای در توضیحات یا پیشنمایش رسانه دارید. همگی نادیده گرفته شوند؟",
|
||||||
"confirmations.edit.confirm": "ویرایش",
|
"confirmations.edit.confirm": "ویرایش",
|
||||||
"confirmations.edit.message": "در صورت ویرایش، پیامی که در حال نوشتنش بودید از بین خواهد رفت. میخواهید ادامه دهید؟",
|
"confirmations.edit.message": "در صورت ویرایش، پیامی که در حال نوشتنش بودید از بین خواهد رفت. میخواهید ادامه دهید؟",
|
||||||
|
"confirmations.edit.title": "رونویسی فرسته؟",
|
||||||
"confirmations.logout.confirm": "خروج از حساب",
|
"confirmations.logout.confirm": "خروج از حساب",
|
||||||
"confirmations.logout.message": "مطمئنید میخواهید خارج شوید؟",
|
"confirmations.logout.message": "مطمئنید میخواهید خارج شوید؟",
|
||||||
|
"confirmations.logout.title": "خروج؟",
|
||||||
"confirmations.mute.confirm": "خموش",
|
"confirmations.mute.confirm": "خموش",
|
||||||
"confirmations.redraft.confirm": "حذف و بازنویسی",
|
"confirmations.redraft.confirm": "حذف و بازنویسی",
|
||||||
"confirmations.redraft.message": "مطمئنید که میخواهید این فرسته را حذف کنید و از نو بنویسید؟ با این کار تقویتها و پسندهایش از دست رفته و پاسخها به آن بیمرجع میشود.",
|
"confirmations.redraft.message": "مطمئنید که میخواهید این فرسته را حذف کنید و از نو بنویسید؟ با این کار تقویتها و پسندهایش از دست رفته و پاسخها به آن بیمرجع میشود.",
|
||||||
|
"confirmations.redraft.title": "حذف و پیشنویسی دوبارهٔ فرسته؟",
|
||||||
"confirmations.reply.confirm": "پاسخ",
|
"confirmations.reply.confirm": "پاسخ",
|
||||||
"confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. میخواهید ادامه دهید؟",
|
"confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. میخواهید ادامه دهید؟",
|
||||||
|
"confirmations.reply.title": "رونویسی فرسته؟",
|
||||||
"confirmations.unfollow.confirm": "پینگرفتن",
|
"confirmations.unfollow.confirm": "پینگرفتن",
|
||||||
"confirmations.unfollow.message": "مطمئنید که میخواهید به پیگیری از {name} پایان دهید؟",
|
"confirmations.unfollow.message": "مطمئنید که میخواهید به پیگیری از {name} پایان دهید؟",
|
||||||
|
"confirmations.unfollow.title": "ناپیگیری کاربر؟",
|
||||||
"conversation.delete": "حذف گفتگو",
|
"conversation.delete": "حذف گفتگو",
|
||||||
"conversation.mark_as_read": "علامتگذاری به عنوان خوانده شده",
|
"conversation.mark_as_read": "علامتگذاری به عنوان خوانده شده",
|
||||||
"conversation.open": "دیدن گفتگو",
|
"conversation.open": "دیدن گفتگو",
|
||||||
|
@ -194,6 +205,10 @@
|
||||||
"dismissable_banner.explore_statuses": "هماکنون این فرستهها از این کارساز و دیگر کارسازهای شبکهٔ نامتمرکز داغ شدهاند.",
|
"dismissable_banner.explore_statuses": "هماکنون این فرستهها از این کارساز و دیگر کارسازهای شبکهٔ نامتمرکز داغ شدهاند.",
|
||||||
"dismissable_banner.explore_tags": "هماکنون این برچسبها بین افراد این کارساز و دیگر کارسازهای شبکهٔ نامتمرکز داغ شدهاند.",
|
"dismissable_banner.explore_tags": "هماکنون این برچسبها بین افراد این کارساز و دیگر کارسازهای شبکهٔ نامتمرکز داغ شدهاند.",
|
||||||
"dismissable_banner.public_timeline": "اینها جدیدترین فرستههای عمومی از افرادی روی وب اجتماعیند که اعضای {domain} پی میگیرندشان.",
|
"dismissable_banner.public_timeline": "اینها جدیدترین فرستههای عمومی از افرادی روی وب اجتماعیند که اعضای {domain} پی میگیرندشان.",
|
||||||
|
"domain_block_modal.block": "انسداد کارساز",
|
||||||
|
"domain_block_modal.title": "انسداد دامنه؟",
|
||||||
|
"domain_pill.server": "کارساز",
|
||||||
|
"domain_pill.username": "نام کاربری",
|
||||||
"embed.instructions": "جاسازی این فرسته روی پایگاهتان با رونوشت کردن کد زیر.",
|
"embed.instructions": "جاسازی این فرسته روی پایگاهتان با رونوشت کردن کد زیر.",
|
||||||
"embed.preview": "این گونه دیده خواهد شد:",
|
"embed.preview": "این گونه دیده خواهد شد:",
|
||||||
"emoji_button.activity": "فعالیت",
|
"emoji_button.activity": "فعالیت",
|
||||||
|
@ -388,6 +403,8 @@
|
||||||
"loading_indicator.label": "در حال بارگذاری…",
|
"loading_indicator.label": "در حال بارگذاری…",
|
||||||
"media_gallery.toggle_visible": "{number, plural, one {نهفتن تصویر} other {نهفتن تصاویر}}",
|
"media_gallery.toggle_visible": "{number, plural, one {نهفتن تصویر} other {نهفتن تصاویر}}",
|
||||||
"moved_to_account_banner.text": "حسابتان {disabledAccount} اکنون از کار افتاده؛ چرا که به {movedToAccount} منتقل شدید.",
|
"moved_to_account_banner.text": "حسابتان {disabledAccount} اکنون از کار افتاده؛ چرا که به {movedToAccount} منتقل شدید.",
|
||||||
|
"mute_modal.show_options": "نمایش گزینهها",
|
||||||
|
"mute_modal.title": "خموشی کاربر؟",
|
||||||
"navigation_bar.about": "درباره",
|
"navigation_bar.about": "درباره",
|
||||||
"navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته",
|
"navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته",
|
||||||
"navigation_bar.blocks": "کاربران مسدود شده",
|
"navigation_bar.blocks": "کاربران مسدود شده",
|
||||||
|
@ -420,15 +437,21 @@
|
||||||
"notification.follow": "{name} پیگیرتان شد",
|
"notification.follow": "{name} پیگیرتان شد",
|
||||||
"notification.follow_request": "{name} درخواست پیگیریتان را داد",
|
"notification.follow_request": "{name} درخواست پیگیریتان را داد",
|
||||||
"notification.mention": "{name} به شما اشاره کرد",
|
"notification.mention": "{name} به شما اشاره کرد",
|
||||||
|
"notification.moderation-warning.learn_more": "بیشتر بدانید",
|
||||||
"notification.own_poll": "نظرسنجیتان پایان یافت",
|
"notification.own_poll": "نظرسنجیتان پایان یافت",
|
||||||
"notification.reblog": "{name} فرستهتان را تقویت کرد",
|
"notification.reblog": "{name} فرستهتان را تقویت کرد",
|
||||||
|
"notification.relationships_severance_event.learn_more": "بیشتر بدانید",
|
||||||
"notification.status": "{name} چیزی فرستاد",
|
"notification.status": "{name} چیزی فرستاد",
|
||||||
"notification.update": "{name} فرستهای را ویرایش کرد",
|
"notification.update": "{name} فرستهای را ویرایش کرد",
|
||||||
|
"notification_requests.accept": "پذیرش",
|
||||||
|
"notification_requests.dismiss": "دورانداختن",
|
||||||
|
"notification_requests.maximize": "بیشنه",
|
||||||
"notifications.clear": "پاکسازی آگاهیها",
|
"notifications.clear": "پاکسازی آگاهیها",
|
||||||
"notifications.clear_confirmation": "مطمئنید میخواهید همهٔ آگاهیهایتان را برای همیشه پاک کنید؟",
|
"notifications.clear_confirmation": "مطمئنید میخواهید همهٔ آگاهیهایتان را برای همیشه پاک کنید؟",
|
||||||
"notifications.column_settings.admin.report": "گزارشهای جدید:",
|
"notifications.column_settings.admin.report": "گزارشهای جدید:",
|
||||||
"notifications.column_settings.admin.sign_up": "ثبت نامهای جدید:",
|
"notifications.column_settings.admin.sign_up": "ثبت نامهای جدید:",
|
||||||
"notifications.column_settings.alert": "آگاهیهای میزکار",
|
"notifications.column_settings.alert": "آگاهیهای میزکار",
|
||||||
|
"notifications.column_settings.beta.category": "ویژگیهای آزمایشی",
|
||||||
"notifications.column_settings.favourite": "برگزیدهها:",
|
"notifications.column_settings.favourite": "برگزیدهها:",
|
||||||
"notifications.column_settings.follow": "پیگیرندگان جدید:",
|
"notifications.column_settings.follow": "پیگیرندگان جدید:",
|
||||||
"notifications.column_settings.follow_request": "درخواستهای جدید پیگیری:",
|
"notifications.column_settings.follow_request": "درخواستهای جدید پیگیری:",
|
||||||
|
@ -583,8 +606,11 @@
|
||||||
"report.unfollow_explanation": "شما این حساب را پیگرفتهاید، برای اینکه دیگر فرستههایش را در خوراک خانهتان نبینید؛ آن را پینگیرید.",
|
"report.unfollow_explanation": "شما این حساب را پیگرفتهاید، برای اینکه دیگر فرستههایش را در خوراک خانهتان نبینید؛ آن را پینگیرید.",
|
||||||
"report_notification.attached_statuses": "{count, plural, one {{count} فرسته} other {{count} فرسته}} پیوست شده",
|
"report_notification.attached_statuses": "{count, plural, one {{count} فرسته} other {{count} فرسته}} پیوست شده",
|
||||||
"report_notification.categories.legal": "قانونی",
|
"report_notification.categories.legal": "قانونی",
|
||||||
|
"report_notification.categories.legal_sentence": "محتوای غیرقانونی",
|
||||||
"report_notification.categories.other": "دیگر",
|
"report_notification.categories.other": "دیگر",
|
||||||
|
"report_notification.categories.other_sentence": "دیگر",
|
||||||
"report_notification.categories.spam": "هرزنامه",
|
"report_notification.categories.spam": "هرزنامه",
|
||||||
|
"report_notification.categories.spam_sentence": "هرزنامه",
|
||||||
"report_notification.categories.violation": "تخطّی از قانون",
|
"report_notification.categories.violation": "تخطّی از قانون",
|
||||||
"report_notification.open": "گشودن گزارش",
|
"report_notification.open": "گشودن گزارش",
|
||||||
"search.no_recent_searches": "جستوجوی اخیری نیست",
|
"search.no_recent_searches": "جستوجوی اخیری نیست",
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"about.contact": "Yhteydenotto:",
|
"about.contact": "Yhteydenotto:",
|
||||||
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
|
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
|
||||||
"about.domain_blocks.no_reason_available": "Syy ei ole tiedossa",
|
"about.domain_blocks.no_reason_available": "Syy ei ole tiedossa",
|
||||||
"about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä, ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.",
|
"about.domain_blocks.preamble": "Mastodonin avulla voi yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.",
|
||||||
"about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.",
|
"about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.",
|
||||||
"about.domain_blocks.silenced.title": "Rajoitettu",
|
"about.domain_blocks.silenced.title": "Rajoitettu",
|
||||||
"about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta eikä vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.",
|
"about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta eikä vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.",
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
"account.endorse": "Suosittele profiilissasi",
|
"account.endorse": "Suosittele profiilissasi",
|
||||||
"account.featured_tags.last_status_at": "Viimeisin julkaisu {date}",
|
"account.featured_tags.last_status_at": "Viimeisin julkaisu {date}",
|
||||||
"account.featured_tags.last_status_never": "Ei julkaisuja",
|
"account.featured_tags.last_status_never": "Ei julkaisuja",
|
||||||
"account.featured_tags.title": "Käyttäjän {name} esille nostamat aihetunnisteet",
|
"account.featured_tags.title": "Käyttäjän {name} suosittelemat aihetunnisteet",
|
||||||
"account.follow": "Seuraa",
|
"account.follow": "Seuraa",
|
||||||
"account.follow_back": "Seuraa takaisin",
|
"account.follow_back": "Seuraa takaisin",
|
||||||
"account.followers": "Seuraajat",
|
"account.followers": "Seuraajat",
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
"community.column_settings.media_only": "Vain media",
|
"community.column_settings.media_only": "Vain media",
|
||||||
"community.column_settings.remote_only": "Vain etätilit",
|
"community.column_settings.remote_only": "Vain etätilit",
|
||||||
"compose.language.change": "Vaihda kieli",
|
"compose.language.change": "Vaihda kieli",
|
||||||
"compose.language.search": "Hae kieliä...",
|
"compose.language.search": "Hae kieliä…",
|
||||||
"compose.published.body": "Julkaisu lähetetty.",
|
"compose.published.body": "Julkaisu lähetetty.",
|
||||||
"compose.published.open": "Avaa",
|
"compose.published.open": "Avaa",
|
||||||
"compose.saved.body": "Julkaisu tallennettu.",
|
"compose.saved.body": "Julkaisu tallennettu.",
|
||||||
|
@ -228,8 +228,8 @@
|
||||||
"domain_pill.their_username": "Hänen yksilöllinen tunnisteensa omalla palvelimellaan. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.",
|
"domain_pill.their_username": "Hänen yksilöllinen tunnisteensa omalla palvelimellaan. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.",
|
||||||
"domain_pill.username": "Käyttäjänimi",
|
"domain_pill.username": "Käyttäjänimi",
|
||||||
"domain_pill.whats_in_a_handle": "Mitä käyttäjätunnuksessa on?",
|
"domain_pill.whats_in_a_handle": "Mitä käyttäjätunnuksessa on?",
|
||||||
"domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa ihmisten kanssa kaikkialla sosiaalisessa verkossa, joka koostuu <button>ActivityPub-pohjaisista alustoista</button>.",
|
"domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa käyttäjien kanssa kaikkialla sosiaalisessa verkossa, joka koostuu <button>ActivityPub-pohjaisista alustoista</button>.",
|
||||||
"domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, ihmiset voivat olla vaikutuksessa kanssasi kaikkialla sosiaalisessa verkossa, joka koostuu <button>ActivityPub-pohjaisista alustoista</button>.",
|
"domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, käyttäjät voivat olla vaikutuksessa kanssasi kaikkialla sosiaalisessa verkossa, joka koostuu <button>ActivityPub-pohjaisista alustoista</button>.",
|
||||||
"domain_pill.your_handle": "Käyttäjätunnuksesi:",
|
"domain_pill.your_handle": "Käyttäjätunnuksesi:",
|
||||||
"domain_pill.your_server": "Digitaalinen kotisi, jossa kaikki julkaisusi sijaitsevat. Etkö pidä tästä? Siirry palvelimelta toiselle milloin tahansa ja tuo myös seuraajasi mukanasi.",
|
"domain_pill.your_server": "Digitaalinen kotisi, jossa kaikki julkaisusi sijaitsevat. Etkö pidä tästä? Siirry palvelimelta toiselle milloin tahansa ja tuo myös seuraajasi mukanasi.",
|
||||||
"domain_pill.your_username": "Yksilöllinen tunnisteesi tällä palvelimella. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.",
|
"domain_pill.your_username": "Yksilöllinen tunnisteesi tällä palvelimella. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.",
|
||||||
|
@ -246,7 +246,7 @@
|
||||||
"emoji_button.objects": "Esineet",
|
"emoji_button.objects": "Esineet",
|
||||||
"emoji_button.people": "Ihmiset",
|
"emoji_button.people": "Ihmiset",
|
||||||
"emoji_button.recent": "Usein käytetyt",
|
"emoji_button.recent": "Usein käytetyt",
|
||||||
"emoji_button.search": "Hae...",
|
"emoji_button.search": "Hae…",
|
||||||
"emoji_button.search_results": "Hakutulokset",
|
"emoji_button.search_results": "Hakutulokset",
|
||||||
"emoji_button.symbols": "Symbolit",
|
"emoji_button.symbols": "Symbolit",
|
||||||
"emoji_button.travel": "Matkailu ja paikat",
|
"emoji_button.travel": "Matkailu ja paikat",
|
||||||
|
@ -279,7 +279,7 @@
|
||||||
"errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle",
|
"errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle",
|
||||||
"errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
|
"errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
|
||||||
"explore.search_results": "Hakutulokset",
|
"explore.search_results": "Hakutulokset",
|
||||||
"explore.suggested_follows": "Henkilöt",
|
"explore.suggested_follows": "Käyttäjät",
|
||||||
"explore.title": "Selaa",
|
"explore.title": "Selaa",
|
||||||
"explore.trending_links": "Uutiset",
|
"explore.trending_links": "Uutiset",
|
||||||
"explore.trending_statuses": "Julkaisut",
|
"explore.trending_statuses": "Julkaisut",
|
||||||
|
@ -381,7 +381,7 @@
|
||||||
"keyboard_shortcuts.compose": "Kohdista kirjoituskenttään",
|
"keyboard_shortcuts.compose": "Kohdista kirjoituskenttään",
|
||||||
"keyboard_shortcuts.description": "Kuvaus",
|
"keyboard_shortcuts.description": "Kuvaus",
|
||||||
"keyboard_shortcuts.direct": "Avaa yksityismainintojen sarake",
|
"keyboard_shortcuts.direct": "Avaa yksityismainintojen sarake",
|
||||||
"keyboard_shortcuts.down": "Siirry listassa alaspäin",
|
"keyboard_shortcuts.down": "Siirry luettelossa eteenpäin",
|
||||||
"keyboard_shortcuts.enter": "Avaa julkaisu",
|
"keyboard_shortcuts.enter": "Avaa julkaisu",
|
||||||
"keyboard_shortcuts.favourite": "Lisää julkaisu suosikkeihin",
|
"keyboard_shortcuts.favourite": "Lisää julkaisu suosikkeihin",
|
||||||
"keyboard_shortcuts.favourites": "Avaa suosikkiluettelo",
|
"keyboard_shortcuts.favourites": "Avaa suosikkiluettelo",
|
||||||
|
@ -401,13 +401,13 @@
|
||||||
"keyboard_shortcuts.reply": "Vastaa julkaisuun",
|
"keyboard_shortcuts.reply": "Vastaa julkaisuun",
|
||||||
"keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo",
|
"keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo",
|
||||||
"keyboard_shortcuts.search": "Kohdista hakukenttään",
|
"keyboard_shortcuts.search": "Kohdista hakukenttään",
|
||||||
"keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä",
|
"keyboard_shortcuts.spoilers": "Näytä tai piilota sisältövaroituskenttä",
|
||||||
"keyboard_shortcuts.start": "Avaa Näin pääset alkuun -sarake",
|
"keyboard_shortcuts.start": "Avaa Näin pääset alkuun -sarake",
|
||||||
"keyboard_shortcuts.toggle_hidden": "Näytä/piilota sisältövaroituksella merkitty teksti",
|
"keyboard_shortcuts.toggle_hidden": "Näytä tai piilota sisältövaroituksella merkitty teksti",
|
||||||
"keyboard_shortcuts.toggle_sensitivity": "Näytä/piilota media",
|
"keyboard_shortcuts.toggle_sensitivity": "Näytä tai piilota media",
|
||||||
"keyboard_shortcuts.toot": "Luo uusi julkaisu",
|
"keyboard_shortcuts.toot": "Luo uusi julkaisu",
|
||||||
"keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä",
|
"keyboard_shortcuts.unfocus": "Poistu kirjoitus- tai hakukentästä",
|
||||||
"keyboard_shortcuts.up": "Siirry listassa ylöspäin",
|
"keyboard_shortcuts.up": "Siirry luettelossa taaksepäin",
|
||||||
"lightbox.close": "Sulje",
|
"lightbox.close": "Sulje",
|
||||||
"lightbox.compress": "Tiivis kuvankatselunäkymä",
|
"lightbox.compress": "Tiivis kuvankatselunäkymä",
|
||||||
"lightbox.expand": "Laajennettu kuvankatselunäkymä",
|
"lightbox.expand": "Laajennettu kuvankatselunäkymä",
|
||||||
|
@ -415,7 +415,7 @@
|
||||||
"lightbox.previous": "Edellinen",
|
"lightbox.previous": "Edellinen",
|
||||||
"limited_account_hint.action": "Näytä profiili joka tapauksessa",
|
"limited_account_hint.action": "Näytä profiili joka tapauksessa",
|
||||||
"limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.",
|
"limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.",
|
||||||
"link_preview.author": "Julkaissut {name}",
|
"link_preview.author": "Tehnyt {name}",
|
||||||
"link_preview.more_from_author": "Lisää tekijältä {name}",
|
"link_preview.more_from_author": "Lisää tekijältä {name}",
|
||||||
"link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
|
"link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
|
||||||
"lists.account.add": "Lisää listalle",
|
"lists.account.add": "Lisää listalle",
|
||||||
|
@ -453,7 +453,7 @@
|
||||||
"navigation_bar.bookmarks": "Kirjanmerkit",
|
"navigation_bar.bookmarks": "Kirjanmerkit",
|
||||||
"navigation_bar.community_timeline": "Paikallinen aikajana",
|
"navigation_bar.community_timeline": "Paikallinen aikajana",
|
||||||
"navigation_bar.compose": "Luo uusi julkaisu",
|
"navigation_bar.compose": "Luo uusi julkaisu",
|
||||||
"navigation_bar.direct": "Yksityiset maininnat",
|
"navigation_bar.direct": "Yksityismaininnat",
|
||||||
"navigation_bar.discover": "Löydä uutta",
|
"navigation_bar.discover": "Löydä uutta",
|
||||||
"navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
|
"navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
|
||||||
"navigation_bar.explore": "Selaa",
|
"navigation_bar.explore": "Selaa",
|
||||||
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} muokkasi julkaisua",
|
"notification.update": "{name} muokkasi julkaisua",
|
||||||
"notification_requests.accept": "Hyväksy",
|
"notification_requests.accept": "Hyväksy",
|
||||||
"notification_requests.dismiss": "Hylkää",
|
"notification_requests.dismiss": "Hylkää",
|
||||||
|
"notification_requests.maximize": "Suurenna",
|
||||||
|
"notification_requests.minimize_banner": "Pienennä suodatettujen ilmoitusten palkki",
|
||||||
"notification_requests.notifications_from": "Ilmoitukset käyttäjältä {name}",
|
"notification_requests.notifications_from": "Ilmoitukset käyttäjältä {name}",
|
||||||
"notification_requests.title": "Suodatetut ilmoitukset",
|
"notification_requests.title": "Suodatetut ilmoitukset",
|
||||||
"notifications.clear": "Tyhjennä ilmoitukset",
|
"notifications.clear": "Tyhjennä ilmoitukset",
|
||||||
|
@ -581,7 +583,7 @@
|
||||||
"onboarding.start.lead": "Uusi Mastodon-tilisi on nyt valmiina käyttöön. Kyseessä on ainutlaatuinen, hajautettu sosiaalisen median alusta, jolla sinä itse – algoritmin sijaan – määrität käyttökokemuksesi. Näin hyödyt Mastodonista eniten:",
|
"onboarding.start.lead": "Uusi Mastodon-tilisi on nyt valmiina käyttöön. Kyseessä on ainutlaatuinen, hajautettu sosiaalisen median alusta, jolla sinä itse – algoritmin sijaan – määrität käyttökokemuksesi. Näin hyödyt Mastodonista eniten:",
|
||||||
"onboarding.start.skip": "Haluatko hypätä suoraan eteenpäin ilman alkuunpääsyohjeistuksia?",
|
"onboarding.start.skip": "Haluatko hypätä suoraan eteenpäin ilman alkuunpääsyohjeistuksia?",
|
||||||
"onboarding.start.title": "Olet tehnyt sen!",
|
"onboarding.start.title": "Olet tehnyt sen!",
|
||||||
"onboarding.steps.follow_people.body": "Mastodon perustuu sinua kiinnostavien henkilöjen julkaisujen seuraamiseen.",
|
"onboarding.steps.follow_people.body": "Mastodonissa on kyse kiinnostavien käyttäjien seuraamisesta.",
|
||||||
"onboarding.steps.follow_people.title": "Mukauta kotisyötettäsi",
|
"onboarding.steps.follow_people.title": "Mukauta kotisyötettäsi",
|
||||||
"onboarding.steps.publish_status.body": "Tervehdi maailmaa sanoin, kuvin tai äänestyksin {emoji}",
|
"onboarding.steps.publish_status.body": "Tervehdi maailmaa sanoin, kuvin tai äänestyksin {emoji}",
|
||||||
"onboarding.steps.publish_status.title": "Laadi ensimmäinen julkaisusi",
|
"onboarding.steps.publish_status.title": "Laadi ensimmäinen julkaisusi",
|
||||||
|
@ -596,10 +598,10 @@
|
||||||
"password_confirmation.exceeds_maxlength": "Salasanan vahvistus ylittää salasanan enimmäispituuden",
|
"password_confirmation.exceeds_maxlength": "Salasanan vahvistus ylittää salasanan enimmäispituuden",
|
||||||
"password_confirmation.mismatching": "Salasanan vahvistus ei täsmää",
|
"password_confirmation.mismatching": "Salasanan vahvistus ei täsmää",
|
||||||
"picture_in_picture.restore": "Laita se takaisin",
|
"picture_in_picture.restore": "Laita se takaisin",
|
||||||
"poll.closed": "Suljettu",
|
"poll.closed": "Päättynyt",
|
||||||
"poll.refresh": "Päivitä",
|
"poll.refresh": "Päivitä",
|
||||||
"poll.reveal": "Näytä tulokset",
|
"poll.reveal": "Näytä tulokset",
|
||||||
"poll.total_people": "{count, plural, one {# henkilö} other {# henkilöä}}",
|
"poll.total_people": "{count, plural, one {# käyttäjä} other {# käyttäjää}}",
|
||||||
"poll.total_votes": "{count, plural, one {# ääni} other {# ääntä}}",
|
"poll.total_votes": "{count, plural, one {# ääni} other {# ääntä}}",
|
||||||
"poll.vote": "Äänestä",
|
"poll.vote": "Äänestä",
|
||||||
"poll.voted": "Äänestit tätä vastausta",
|
"poll.voted": "Äänestit tätä vastausta",
|
||||||
|
@ -608,7 +610,7 @@
|
||||||
"poll_button.remove_poll": "Poista äänestys",
|
"poll_button.remove_poll": "Poista äänestys",
|
||||||
"privacy.change": "Muuta julkaisun näkyvyyttä",
|
"privacy.change": "Muuta julkaisun näkyvyyttä",
|
||||||
"privacy.direct.long": "Kaikki tässä julkaisussa mainitut",
|
"privacy.direct.long": "Kaikki tässä julkaisussa mainitut",
|
||||||
"privacy.direct.short": "Tietyt henkilöt",
|
"privacy.direct.short": "Tietyt käyttäjät",
|
||||||
"privacy.private.long": "Vain seuraajasi",
|
"privacy.private.long": "Vain seuraajasi",
|
||||||
"privacy.private.short": "Seuraajat",
|
"privacy.private.short": "Seuraajat",
|
||||||
"privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella",
|
"privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella",
|
||||||
|
@ -730,7 +732,7 @@
|
||||||
"status.delete": "Poista",
|
"status.delete": "Poista",
|
||||||
"status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
|
"status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
|
||||||
"status.direct": "Mainitse @{name} yksityisesti",
|
"status.direct": "Mainitse @{name} yksityisesti",
|
||||||
"status.direct_indicator": "Yksityinen maininta",
|
"status.direct_indicator": "Yksityismaininta",
|
||||||
"status.edit": "Muokkaa",
|
"status.edit": "Muokkaa",
|
||||||
"status.edited": "Viimeksi muokattu {date}",
|
"status.edited": "Viimeksi muokattu {date}",
|
||||||
"status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}",
|
"status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}",
|
||||||
|
@ -781,7 +783,7 @@
|
||||||
"status.unpin": "Irrota profiilista",
|
"status.unpin": "Irrota profiilista",
|
||||||
"subscribed_languages.lead": "Vain valituilla kielillä kirjoitetut julkaisut näkyvät koti- ja lista-aikajanoillasi muutoksen jälkeen. Älä valitse mitään, jos haluat nähdä julkaisuja kaikilla kielillä.",
|
"subscribed_languages.lead": "Vain valituilla kielillä kirjoitetut julkaisut näkyvät koti- ja lista-aikajanoillasi muutoksen jälkeen. Älä valitse mitään, jos haluat nähdä julkaisuja kaikilla kielillä.",
|
||||||
"subscribed_languages.save": "Tallenna muutokset",
|
"subscribed_languages.save": "Tallenna muutokset",
|
||||||
"subscribed_languages.target": "Vaihda tilatut kielet {target}",
|
"subscribed_languages.target": "Vaihda tilattuja kieliä käyttäjältä {target}",
|
||||||
"tabs_bar.home": "Koti",
|
"tabs_bar.home": "Koti",
|
||||||
"tabs_bar.notifications": "Ilmoitukset",
|
"tabs_bar.notifications": "Ilmoitukset",
|
||||||
"time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä",
|
"time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä",
|
||||||
|
@ -793,7 +795,7 @@
|
||||||
"timeline_hint.resources.followers": "seuraajat",
|
"timeline_hint.resources.followers": "seuraajat",
|
||||||
"timeline_hint.resources.follows": "seuratut",
|
"timeline_hint.resources.follows": "seuratut",
|
||||||
"timeline_hint.resources.statuses": "vanhemmat julkaisut",
|
"timeline_hint.resources.statuses": "vanhemmat julkaisut",
|
||||||
"trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} {days, plural, one {viime päivänä} other {viimeisenä {days} päivänä}}",
|
"trends.counter_by_accounts": "{count, plural, one {{counter} käyttäjä} other {{counter} käyttäjää}} {days, plural, one {viime päivänä} other {viimeisenä {days} päivänä}}",
|
||||||
"trends.trending_now": "Suosittua nyt",
|
"trends.trending_now": "Suosittua nyt",
|
||||||
"ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
|
"ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
|
||||||
"units.short.billion": "{count} mrd.",
|
"units.short.billion": "{count} mrd.",
|
||||||
|
@ -818,7 +820,7 @@
|
||||||
"upload_modal.hint": "Napsauta tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.",
|
"upload_modal.hint": "Napsauta tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.",
|
||||||
"upload_modal.preparing_ocr": "Valmistellaan tekstintunnistusta…",
|
"upload_modal.preparing_ocr": "Valmistellaan tekstintunnistusta…",
|
||||||
"upload_modal.preview_label": "Esikatselu ({ratio})",
|
"upload_modal.preview_label": "Esikatselu ({ratio})",
|
||||||
"upload_progress.label": "Lähetetään...",
|
"upload_progress.label": "Lähetetään…",
|
||||||
"upload_progress.processing": "Käsitellään…",
|
"upload_progress.processing": "Käsitellään…",
|
||||||
"username.taken": "Tämä käyttäjänimi on jo käytössä. Kokeile toista",
|
"username.taken": "Tämä käyttäjänimi on jo käytössä. Kokeile toista",
|
||||||
"video.close": "Sulje video",
|
"video.close": "Sulje video",
|
||||||
|
|
|
@ -505,6 +505,7 @@
|
||||||
"notification.update": "{name} rættaði ein post",
|
"notification.update": "{name} rættaði ein post",
|
||||||
"notification_requests.accept": "Góðtak",
|
"notification_requests.accept": "Góðtak",
|
||||||
"notification_requests.dismiss": "Avvís",
|
"notification_requests.dismiss": "Avvís",
|
||||||
|
"notification_requests.maximize": "Mesta",
|
||||||
"notification_requests.notifications_from": "Fráboðanir frá {name}",
|
"notification_requests.notifications_from": "Fráboðanir frá {name}",
|
||||||
"notification_requests.title": "Sáldaðar fráboðanir",
|
"notification_requests.title": "Sáldaðar fráboðanir",
|
||||||
"notifications.clear": "Rudda fráboðanir",
|
"notifications.clear": "Rudda fráboðanir",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} editou unha publicación",
|
"notification.update": "{name} editou unha publicación",
|
||||||
"notification_requests.accept": "Aceptar",
|
"notification_requests.accept": "Aceptar",
|
||||||
"notification_requests.dismiss": "Desbotar",
|
"notification_requests.dismiss": "Desbotar",
|
||||||
|
"notification_requests.maximize": "Maximizar",
|
||||||
|
"notification_requests.minimize_banner": "Minimizar o anuncio de notificacións filtradas",
|
||||||
"notification_requests.notifications_from": "Notificacións de {name}",
|
"notification_requests.notifications_from": "Notificacións de {name}",
|
||||||
"notification_requests.title": "Notificacións filtradas",
|
"notification_requests.title": "Notificacións filtradas",
|
||||||
"notifications.clear": "Limpar notificacións",
|
"notifications.clear": "Limpar notificacións",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} ערכו הודעה",
|
"notification.update": "{name} ערכו הודעה",
|
||||||
"notification_requests.accept": "לקבל",
|
"notification_requests.accept": "לקבל",
|
||||||
"notification_requests.dismiss": "לבטל",
|
"notification_requests.dismiss": "לבטל",
|
||||||
|
"notification_requests.maximize": "הגדלה למקסימום",
|
||||||
|
"notification_requests.minimize_banner": "להקטין את כותרת ההודעות המפולטרות",
|
||||||
"notification_requests.notifications_from": "התראות מ־ {name}",
|
"notification_requests.notifications_from": "התראות מ־ {name}",
|
||||||
"notification_requests.title": "התראות מסוננות",
|
"notification_requests.title": "התראות מסוננות",
|
||||||
"notifications.clear": "הסרת התראות",
|
"notifications.clear": "הסרת התראות",
|
||||||
|
|
|
@ -160,7 +160,7 @@
|
||||||
"compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra",
|
"compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra",
|
||||||
"compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra",
|
"compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra",
|
||||||
"compose_form.poll.type": "Stílus",
|
"compose_form.poll.type": "Stílus",
|
||||||
"compose_form.publish": "Bejegyzés",
|
"compose_form.publish": "Közzététel",
|
||||||
"compose_form.publish_form": "Új bejegyzés",
|
"compose_form.publish_form": "Új bejegyzés",
|
||||||
"compose_form.reply": "Válasz",
|
"compose_form.reply": "Válasz",
|
||||||
"compose_form.save_changes": "Frissítés",
|
"compose_form.save_changes": "Frissítés",
|
||||||
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} szerkesztett egy bejegyzést",
|
"notification.update": "{name} szerkesztett egy bejegyzést",
|
||||||
"notification_requests.accept": "Elfogadás",
|
"notification_requests.accept": "Elfogadás",
|
||||||
"notification_requests.dismiss": "Elvetés",
|
"notification_requests.dismiss": "Elvetés",
|
||||||
|
"notification_requests.maximize": "Maximalizálás",
|
||||||
|
"notification_requests.minimize_banner": "Szűrt értesítések sávjának minimalizálása",
|
||||||
"notification_requests.notifications_from": "{name} értesítései",
|
"notification_requests.notifications_from": "{name} értesítései",
|
||||||
"notification_requests.title": "Szűrt értesítések",
|
"notification_requests.title": "Szűrt értesítések",
|
||||||
"notifications.clear": "Értesítések törlése",
|
"notifications.clear": "Értesítések törlése",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} breytti færslu",
|
"notification.update": "{name} breytti færslu",
|
||||||
"notification_requests.accept": "Samþykkja",
|
"notification_requests.accept": "Samþykkja",
|
||||||
"notification_requests.dismiss": "Afgreiða",
|
"notification_requests.dismiss": "Afgreiða",
|
||||||
|
"notification_requests.maximize": "Hámarka",
|
||||||
|
"notification_requests.minimize_banner": "Minnka borða með síuðum tilkynningum",
|
||||||
"notification_requests.notifications_from": "Tilkynningar frá {name}",
|
"notification_requests.notifications_from": "Tilkynningar frá {name}",
|
||||||
"notification_requests.title": "Síaðar tilkynningar",
|
"notification_requests.title": "Síaðar tilkynningar",
|
||||||
"notifications.clear": "Hreinsa tilkynningar",
|
"notifications.clear": "Hreinsa tilkynningar",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} ha modificato un post",
|
"notification.update": "{name} ha modificato un post",
|
||||||
"notification_requests.accept": "Accetta",
|
"notification_requests.accept": "Accetta",
|
||||||
"notification_requests.dismiss": "Ignora",
|
"notification_requests.dismiss": "Ignora",
|
||||||
|
"notification_requests.maximize": "Ingrandisci",
|
||||||
|
"notification_requests.minimize_banner": "Minimizza il banner delle notifiche filtrate",
|
||||||
"notification_requests.notifications_from": "Notifiche da {name}",
|
"notification_requests.notifications_from": "Notifiche da {name}",
|
||||||
"notification_requests.title": "Notifiche filtrate",
|
"notification_requests.title": "Notifiche filtrate",
|
||||||
"notifications.clear": "Cancella le notifiche",
|
"notifications.clear": "Cancella le notifiche",
|
||||||
|
|
|
@ -293,6 +293,7 @@
|
||||||
"filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します",
|
"filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します",
|
||||||
"filter_modal.select_filter.title": "この投稿をフィルターする",
|
"filter_modal.select_filter.title": "この投稿をフィルターする",
|
||||||
"filter_modal.title.status": "投稿をフィルターする",
|
"filter_modal.title.status": "投稿をフィルターする",
|
||||||
|
"filtered_notifications_banner.pending_requests": "{count, plural, =0 {すべて完了しました} other {#人の通知がブロックされています}}",
|
||||||
"filtered_notifications_banner.title": "保留中の通知",
|
"filtered_notifications_banner.title": "保留中の通知",
|
||||||
"firehose.all": "すべて",
|
"firehose.all": "すべて",
|
||||||
"firehose.local": "このサーバー",
|
"firehose.local": "このサーバー",
|
||||||
|
@ -489,6 +490,7 @@
|
||||||
"notification.update": "{name}さんが投稿を編集しました",
|
"notification.update": "{name}さんが投稿を編集しました",
|
||||||
"notification_requests.accept": "受け入れる",
|
"notification_requests.accept": "受け入れる",
|
||||||
"notification_requests.dismiss": "無視",
|
"notification_requests.dismiss": "無視",
|
||||||
|
"notification_requests.minimize_banner": "「保留中の通知」のバナーを最小化する",
|
||||||
"notification_requests.notifications_from": "{name}からの通知",
|
"notification_requests.notifications_from": "{name}からの通知",
|
||||||
"notification_requests.title": "保留中の通知",
|
"notification_requests.title": "保留中の通知",
|
||||||
"notifications.clear": "通知を消去",
|
"notifications.clear": "通知を消去",
|
||||||
|
|
|
@ -804,7 +804,7 @@
|
||||||
"upload_error.limit": "파일 업로드 제한에 도달했습니다.",
|
"upload_error.limit": "파일 업로드 제한에 도달했습니다.",
|
||||||
"upload_error.poll": "파일 업로드는 설문과 함께 쓸 수 없습니다.",
|
"upload_error.poll": "파일 업로드는 설문과 함께 쓸 수 없습니다.",
|
||||||
"upload_form.audio_description": "청각 장애인을 위한 설명",
|
"upload_form.audio_description": "청각 장애인을 위한 설명",
|
||||||
"upload_form.description": "시각장애인을 위한 설명",
|
"upload_form.description": "시각장애인이나 저시력자를 위한 설명",
|
||||||
"upload_form.edit": "수정",
|
"upload_form.edit": "수정",
|
||||||
"upload_form.thumbnail": "썸네일 변경",
|
"upload_form.thumbnail": "썸네일 변경",
|
||||||
"upload_form.video_description": "청각, 시각 장애인을 위한 설명",
|
"upload_form.video_description": "청각, 시각 장애인을 위한 설명",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} heeft een bericht bewerkt",
|
"notification.update": "{name} heeft een bericht bewerkt",
|
||||||
"notification_requests.accept": "Accepteren",
|
"notification_requests.accept": "Accepteren",
|
||||||
"notification_requests.dismiss": "Afwijzen",
|
"notification_requests.dismiss": "Afwijzen",
|
||||||
|
"notification_requests.maximize": "Maximaliseer",
|
||||||
|
"notification_requests.minimize_banner": "Banner met gefilterde meldingen minimaliseren",
|
||||||
"notification_requests.notifications_from": "Meldingen van {name}",
|
"notification_requests.notifications_from": "Meldingen van {name}",
|
||||||
"notification_requests.title": "Gefilterde meldingen",
|
"notification_requests.title": "Gefilterde meldingen",
|
||||||
"notifications.clear": "Meldingen verwijderen",
|
"notifications.clear": "Meldingen verwijderen",
|
||||||
|
|
|
@ -29,6 +29,9 @@
|
||||||
"account.follows.empty": "ਇਹ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਕਿਸੇ ਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।",
|
"account.follows.empty": "ਇਹ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਕਿਸੇ ਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।",
|
||||||
"account.go_to_profile": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਜਾਓ",
|
"account.go_to_profile": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਜਾਓ",
|
||||||
"account.media": "ਮੀਡੀਆ",
|
"account.media": "ਮੀਡੀਆ",
|
||||||
|
"account.mute": "{name} ਨੂੰ ਮੌਨ ਕਰੋ",
|
||||||
|
"account.mute_notifications_short": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਮੌਨ ਕਰੋ",
|
||||||
|
"account.mute_short": "ਮੌਨ ਕਰੋ",
|
||||||
"account.muted": "ਮੌਨ ਕੀਤੀਆਂ",
|
"account.muted": "ਮੌਨ ਕੀਤੀਆਂ",
|
||||||
"account.mutual": "ਸਾਂਝੇ",
|
"account.mutual": "ਸਾਂਝੇ",
|
||||||
"account.no_bio": "ਕੋਈ ਵਰਣਨ ਨਹੀਂ ਦਿੱਤਾ।",
|
"account.no_bio": "ਕੋਈ ਵਰਣਨ ਨਹੀਂ ਦਿੱਤਾ।",
|
||||||
|
|
|
@ -504,6 +504,8 @@
|
||||||
"notification.update": "{name} edytował(a) post",
|
"notification.update": "{name} edytował(a) post",
|
||||||
"notification_requests.accept": "Akceptuj",
|
"notification_requests.accept": "Akceptuj",
|
||||||
"notification_requests.dismiss": "Odrzuć",
|
"notification_requests.dismiss": "Odrzuć",
|
||||||
|
"notification_requests.maximize": "Zmaksymalizuj",
|
||||||
|
"notification_requests.minimize_banner": "Zminimalizuj baner powiadomień filtrowanych",
|
||||||
"notification_requests.notifications_from": "Powiadomienia od {name}",
|
"notification_requests.notifications_from": "Powiadomienia od {name}",
|
||||||
"notification_requests.title": "Powiadomienia filtrowane",
|
"notification_requests.title": "Powiadomienia filtrowane",
|
||||||
"notifications.clear": "Wyczyść powiadomienia",
|
"notifications.clear": "Wyczyść powiadomienia",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} editou uma publicação",
|
"notification.update": "{name} editou uma publicação",
|
||||||
"notification_requests.accept": "Aceitar",
|
"notification_requests.accept": "Aceitar",
|
||||||
"notification_requests.dismiss": "Descartar",
|
"notification_requests.dismiss": "Descartar",
|
||||||
|
"notification_requests.maximize": "Maximizar",
|
||||||
|
"notification_requests.minimize_banner": "Minimizar o cabeçalho das notificações filtradas",
|
||||||
"notification_requests.notifications_from": "Notificações de {name}",
|
"notification_requests.notifications_from": "Notificações de {name}",
|
||||||
"notification_requests.title": "Notificações filtradas",
|
"notification_requests.title": "Notificações filtradas",
|
||||||
"notifications.clear": "Limpar notificações",
|
"notifications.clear": "Limpar notificações",
|
||||||
|
|
|
@ -129,6 +129,7 @@
|
||||||
"compose.language.change": "Поміняти язык",
|
"compose.language.change": "Поміняти язык",
|
||||||
"compose.language.search": "Глядати языкы...",
|
"compose.language.search": "Глядати языкы...",
|
||||||
"compose.published.body": "Пост опубликованый.",
|
"compose.published.body": "Пост опубликованый.",
|
||||||
|
"compose.published.open": "Удкрыти",
|
||||||
"compose.saved.body": "Пост усокоченый.",
|
"compose.saved.body": "Пост усокоченый.",
|
||||||
"compose_form.direct_message_warning_learn_more": "Читайте бульше",
|
"compose_form.direct_message_warning_learn_more": "Читайте бульше",
|
||||||
"compose_form.encryption_warning": "Публикації на Mastodon не шіфрувут ся. Не шырьте чутливу інформацію через Mastodon.",
|
"compose_form.encryption_warning": "Публикації на Mastodon не шіфрувут ся. Не шырьте чутливу інформацію через Mastodon.",
|
||||||
|
|
|
@ -215,6 +215,7 @@
|
||||||
"domain_block_modal.title": "Blokovať doménu?",
|
"domain_block_modal.title": "Blokovať doménu?",
|
||||||
"domain_block_modal.you_will_lose_followers": "Všetci tvoji nasledovatelia z tohto servera budú odstránení.",
|
"domain_block_modal.you_will_lose_followers": "Všetci tvoji nasledovatelia z tohto servera budú odstránení.",
|
||||||
"domain_block_modal.you_wont_see_posts": "Neuvidíš príspevky, ani oboznámenia od užívateľov na tomto serveri.",
|
"domain_block_modal.you_wont_see_posts": "Neuvidíš príspevky, ani oboznámenia od užívateľov na tomto serveri.",
|
||||||
|
"domain_pill.activitypub_like_language": "ActivityPub je ako jazyk, ktorým Mastodon hovorí s ostatnými sociálnymi sieťami.",
|
||||||
"domain_pill.server": "Server",
|
"domain_pill.server": "Server",
|
||||||
"domain_pill.their_server": "Ich digitálny domov, kde žijú všetky ich príspevky.",
|
"domain_pill.their_server": "Ich digitálny domov, kde žijú všetky ich príspevky.",
|
||||||
"domain_pill.username": "Používateľské meno",
|
"domain_pill.username": "Používateľské meno",
|
||||||
|
@ -449,12 +450,14 @@
|
||||||
"navigation_bar.security": "Zabezpečenie",
|
"navigation_bar.security": "Zabezpečenie",
|
||||||
"not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, prihláste sa.",
|
"not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, prihláste sa.",
|
||||||
"notification.admin.report": "Účet {name} nahlásil {target}",
|
"notification.admin.report": "Účet {name} nahlásil {target}",
|
||||||
|
"notification.admin.report_statuses_other": "{name} nahlásil/a {target}",
|
||||||
"notification.admin.sign_up": "Nová registráciu účtu {name}",
|
"notification.admin.sign_up": "Nová registráciu účtu {name}",
|
||||||
"notification.favourite": "{name} hviezdičkuje váš príspevok",
|
"notification.favourite": "{name} hviezdičkuje váš príspevok",
|
||||||
"notification.follow": "{name} vás sleduje",
|
"notification.follow": "{name} vás sleduje",
|
||||||
"notification.follow_request": "{name} vás žiada sledovať",
|
"notification.follow_request": "{name} vás žiada sledovať",
|
||||||
"notification.mention": "{name} vás spomína",
|
"notification.mention": "{name} vás spomína",
|
||||||
"notification.moderation-warning.learn_more": "Zisti viac",
|
"notification.moderation-warning.learn_more": "Zisti viac",
|
||||||
|
"notification.moderation_warning.action_delete_statuses": "Niektoré z tvojich príspevkov boli odstránené.",
|
||||||
"notification.moderation_warning.action_disable": "Tvoj účet bol vypnutý.",
|
"notification.moderation_warning.action_disable": "Tvoj účet bol vypnutý.",
|
||||||
"notification.moderation_warning.action_silence": "Tvoj účet bol obmedzený.",
|
"notification.moderation_warning.action_silence": "Tvoj účet bol obmedzený.",
|
||||||
"notification.moderation_warning.action_suspend": "Tvoj účet bol pozastavený.",
|
"notification.moderation_warning.action_suspend": "Tvoj účet bol pozastavený.",
|
||||||
|
@ -471,6 +474,7 @@
|
||||||
"notification_requests.title": "Filtrované oboznámenia",
|
"notification_requests.title": "Filtrované oboznámenia",
|
||||||
"notifications.clear": "Vyčistiť upozornenia",
|
"notifications.clear": "Vyčistiť upozornenia",
|
||||||
"notifications.clear_confirmation": "Určite chcete nenávratne odstrániť všetky svoje upozornenia?",
|
"notifications.clear_confirmation": "Určite chcete nenávratne odstrániť všetky svoje upozornenia?",
|
||||||
|
"notifications.clear_title": "Vyčistiť upozornenia?",
|
||||||
"notifications.column_settings.admin.report": "Nové hlásenia:",
|
"notifications.column_settings.admin.report": "Nové hlásenia:",
|
||||||
"notifications.column_settings.admin.sign_up": "Nové registrácie:",
|
"notifications.column_settings.admin.sign_up": "Nové registrácie:",
|
||||||
"notifications.column_settings.alert": "Upozornenia na ploche",
|
"notifications.column_settings.alert": "Upozornenia na ploche",
|
||||||
|
@ -632,9 +636,12 @@
|
||||||
"report.unfollow_explanation": "Tento účet sledujete. Ak už nechcete vidieť jeho príspevky vo svojom domovskom kanáli, prestaňte ho sledovať.",
|
"report.unfollow_explanation": "Tento účet sledujete. Ak už nechcete vidieť jeho príspevky vo svojom domovskom kanáli, prestaňte ho sledovať.",
|
||||||
"report_notification.attached_statuses": "{count, plural, one {{count} príspevok} few {{count} príspevky} other {{count} príspevkov}} ako príloha",
|
"report_notification.attached_statuses": "{count, plural, one {{count} príspevok} few {{count} príspevky} other {{count} príspevkov}} ako príloha",
|
||||||
"report_notification.categories.legal": "Právne",
|
"report_notification.categories.legal": "Právne",
|
||||||
|
"report_notification.categories.legal_sentence": "nelegálny obsah",
|
||||||
"report_notification.categories.other": "Ostatné",
|
"report_notification.categories.other": "Ostatné",
|
||||||
|
"report_notification.categories.other_sentence": "ostatné",
|
||||||
"report_notification.categories.spam": "Spam",
|
"report_notification.categories.spam": "Spam",
|
||||||
"report_notification.categories.violation": "Porušenie pravidla",
|
"report_notification.categories.violation": "Porušenie pravidla",
|
||||||
|
"report_notification.categories.violation_sentence": "porušenie pravidla",
|
||||||
"report_notification.open": "Otvoriť hlásenie",
|
"report_notification.open": "Otvoriť hlásenie",
|
||||||
"search.no_recent_searches": "Žiadne nedávne vyhľadávania",
|
"search.no_recent_searches": "Žiadne nedávne vyhľadávania",
|
||||||
"search.placeholder": "Hľadať",
|
"search.placeholder": "Hľadať",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} përpunoi një postim",
|
"notification.update": "{name} përpunoi një postim",
|
||||||
"notification_requests.accept": "Pranoje",
|
"notification_requests.accept": "Pranoje",
|
||||||
"notification_requests.dismiss": "Hidhe tej",
|
"notification_requests.dismiss": "Hidhe tej",
|
||||||
|
"notification_requests.maximize": "Maksimizoje",
|
||||||
|
"notification_requests.minimize_banner": "Minimizo banderolë njoftimesh të filtruara",
|
||||||
"notification_requests.notifications_from": "Njoftime prej {name}",
|
"notification_requests.notifications_from": "Njoftime prej {name}",
|
||||||
"notification_requests.title": "Njoftime të filtruar",
|
"notification_requests.title": "Njoftime të filtruar",
|
||||||
"notifications.clear": "Spastroji njoftimet",
|
"notifications.clear": "Spastroji njoftimet",
|
||||||
|
|
|
@ -300,6 +300,7 @@
|
||||||
"filter_modal.select_filter.subtitle": "Mevcut bir kategoriyi kullan veya yeni bir tane oluştur",
|
"filter_modal.select_filter.subtitle": "Mevcut bir kategoriyi kullan veya yeni bir tane oluştur",
|
||||||
"filter_modal.select_filter.title": "Bu gönderiyi süzgeçle",
|
"filter_modal.select_filter.title": "Bu gönderiyi süzgeçle",
|
||||||
"filter_modal.title.status": "Bir gönderi süzgeçle",
|
"filter_modal.title.status": "Bir gönderi süzgeçle",
|
||||||
|
"filtered_notifications_banner.pending_requests": "Bildiğiniz {count, plural, =0 {hiç kimseden} one {bir kişiden} other {# kişiden}}",
|
||||||
"filtered_notifications_banner.title": "Filtrelenmiş bildirimler",
|
"filtered_notifications_banner.title": "Filtrelenmiş bildirimler",
|
||||||
"firehose.all": "Tümü",
|
"firehose.all": "Tümü",
|
||||||
"firehose.local": "Bu sunucu",
|
"firehose.local": "Bu sunucu",
|
||||||
|
@ -504,6 +505,8 @@
|
||||||
"notification.update": "{name} bir gönderiyi düzenledi",
|
"notification.update": "{name} bir gönderiyi düzenledi",
|
||||||
"notification_requests.accept": "Onayla",
|
"notification_requests.accept": "Onayla",
|
||||||
"notification_requests.dismiss": "Yoksay",
|
"notification_requests.dismiss": "Yoksay",
|
||||||
|
"notification_requests.maximize": "Büyüt",
|
||||||
|
"notification_requests.minimize_banner": "Filtrelenmiş bildirimler başlığını küçült",
|
||||||
"notification_requests.notifications_from": "{name} bildirimleri",
|
"notification_requests.notifications_from": "{name} bildirimleri",
|
||||||
"notification_requests.title": "Filtrelenmiş bildirimler",
|
"notification_requests.title": "Filtrelenmiş bildirimler",
|
||||||
"notifications.clear": "Bildirimleri temizle",
|
"notifications.clear": "Bildirimleri temizle",
|
||||||
|
|
|
@ -300,6 +300,7 @@
|
||||||
"filter_modal.select_filter.subtitle": "Використати наявну категорію або створити нову",
|
"filter_modal.select_filter.subtitle": "Використати наявну категорію або створити нову",
|
||||||
"filter_modal.select_filter.title": "Фільтрувати цей допис",
|
"filter_modal.select_filter.title": "Фільтрувати цей допис",
|
||||||
"filter_modal.title.status": "Фільтрувати допис",
|
"filter_modal.title.status": "Фільтрувати допис",
|
||||||
|
"filtered_notifications_banner.pending_requests": "Від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати",
|
||||||
"filtered_notifications_banner.title": "Відфільтровані сповіщення",
|
"filtered_notifications_banner.title": "Відфільтровані сповіщення",
|
||||||
"firehose.all": "Всі",
|
"firehose.all": "Всі",
|
||||||
"firehose.local": "Цей сервер",
|
"firehose.local": "Цей сервер",
|
||||||
|
@ -473,10 +474,10 @@
|
||||||
"navigation_bar.security": "Безпека",
|
"navigation_bar.security": "Безпека",
|
||||||
"not_signed_in_indicator.not_signed_in": "Ви повинні увійти, щоб отримати доступ до цього ресурсу.",
|
"not_signed_in_indicator.not_signed_in": "Ви повинні увійти, щоб отримати доступ до цього ресурсу.",
|
||||||
"notification.admin.report": "Скарга від {name} на {target}",
|
"notification.admin.report": "Скарга від {name} на {target}",
|
||||||
"notification.admin.report_account": "{name} повідомив(ла) про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target} в категорії {category}",
|
"notification.admin.report_account": "{name} повідомляє про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target} в категорії {category}",
|
||||||
"notification.admin.report_account_other": "{name} повідомив(ла) про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target}",
|
"notification.admin.report_account_other": "{name} повідомляє про {count, plural, one {один допис} few {# дописи} many {# дописів} other {# дописів}} від {target}",
|
||||||
"notification.admin.report_statuses": "{name} повідомив(ла) про {target} в категорії {category}",
|
"notification.admin.report_statuses": "{name} повідомляє про {target} в категорії {category}",
|
||||||
"notification.admin.report_statuses_other": "{name} повідомив(ла) про {target}",
|
"notification.admin.report_statuses_other": "{name} повідомляє про {target}",
|
||||||
"notification.admin.sign_up": "{name} приєдналися",
|
"notification.admin.sign_up": "{name} приєдналися",
|
||||||
"notification.favourite": "Ваш допис сподобався {name}",
|
"notification.favourite": "Ваш допис сподобався {name}",
|
||||||
"notification.follow": "{name} підписалися на вас",
|
"notification.follow": "{name} підписалися на вас",
|
||||||
|
@ -493,7 +494,7 @@
|
||||||
"notification.moderation_warning.action_suspend": "Ваш обліковий запис було заблоковано.",
|
"notification.moderation_warning.action_suspend": "Ваш обліковий запис було заблоковано.",
|
||||||
"notification.own_poll": "Ваше опитування завершилося",
|
"notification.own_poll": "Ваше опитування завершилося",
|
||||||
"notification.poll": "Опитування, в якому ви проголосували, завершено",
|
"notification.poll": "Опитування, в якому ви проголосували, завершено",
|
||||||
"notification.private_mention": "{name} приватно згадав(ла) вас",
|
"notification.private_mention": "{name} приватно згадує вас",
|
||||||
"notification.reblog": "{name} поширює ваш допис",
|
"notification.reblog": "{name} поширює ваш допис",
|
||||||
"notification.relationships_severance_event": "Втрачено з'єднання з {name}",
|
"notification.relationships_severance_event": "Втрачено з'єднання з {name}",
|
||||||
"notification.relationships_severance_event.account_suspension": "Адміністратор з {from} призупинив {target}, що означає, що ви більше не можете отримувати оновлення від них або взаємодіяти з ними.",
|
"notification.relationships_severance_event.account_suspension": "Адміністратор з {from} призупинив {target}, що означає, що ви більше не можете отримувати оновлення від них або взаємодіяти з ними.",
|
||||||
|
@ -504,6 +505,8 @@
|
||||||
"notification.update": "{name} змінює допис",
|
"notification.update": "{name} змінює допис",
|
||||||
"notification_requests.accept": "Прийняти",
|
"notification_requests.accept": "Прийняти",
|
||||||
"notification_requests.dismiss": "Відхилити",
|
"notification_requests.dismiss": "Відхилити",
|
||||||
|
"notification_requests.maximize": "Розгорнути",
|
||||||
|
"notification_requests.minimize_banner": "Мінімізувати відфільтрований банер сповіщень",
|
||||||
"notification_requests.notifications_from": "Сповіщення від {name}",
|
"notification_requests.notifications_from": "Сповіщення від {name}",
|
||||||
"notification_requests.title": "Відфільтровані сповіщення",
|
"notification_requests.title": "Відфільтровані сповіщення",
|
||||||
"notifications.clear": "Очистити сповіщення",
|
"notifications.clear": "Очистити сповіщення",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} đã sửa tút",
|
"notification.update": "{name} đã sửa tút",
|
||||||
"notification_requests.accept": "Chấp nhận",
|
"notification_requests.accept": "Chấp nhận",
|
||||||
"notification_requests.dismiss": "Bỏ qua",
|
"notification_requests.dismiss": "Bỏ qua",
|
||||||
|
"notification_requests.maximize": "Tối đa",
|
||||||
|
"notification_requests.minimize_banner": "Tinh giản banner lọc thông báo",
|
||||||
"notification_requests.notifications_from": "Thông báo từ {name}",
|
"notification_requests.notifications_from": "Thông báo từ {name}",
|
||||||
"notification_requests.title": "Thông báo đã lọc",
|
"notification_requests.title": "Thông báo đã lọc",
|
||||||
"notifications.clear": "Xóa hết thông báo",
|
"notifications.clear": "Xóa hết thông báo",
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "受限服务器",
|
"about.blocks": "被限制的服务器",
|
||||||
"about.contact": "联系方式:",
|
"about.contact": "联系方式:",
|
||||||
"about.disclaimer": "Mastodon 是自由的开源软件,商标由 Mastodon gGmbH 持有。",
|
"about.disclaimer": "Mastodon 是自由的开源软件,商标由 Mastodon gGmbH 持有。",
|
||||||
"about.domain_blocks.no_reason_available": "原因不可用",
|
"about.domain_blocks.no_reason_available": "原因不可用",
|
||||||
"about.domain_blocks.preamble": "通常来说,在 Mastodon 上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但其中一些在本服务器上被设置为例外。",
|
"about.domain_blocks.preamble": "通常来说,在 Mastodon 上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但其中一些在本服务器上被设置为例外。",
|
||||||
"about.domain_blocks.silenced.explanation": "除非明确地搜索并关注对方,否则你不会看到来自此服务器的用户信息与内容。",
|
"about.domain_blocks.silenced.explanation": "除非明确地搜索并关注对方,否则你不会看到来自此服务器的用户信息与内容。",
|
||||||
"about.domain_blocks.silenced.title": "访问受限",
|
"about.domain_blocks.silenced.title": "已隐藏",
|
||||||
"about.domain_blocks.suspended.explanation": "不处理、存储或交换来自本服务器的任何数据,不可能与本服务器上的用户进行任何交互或通信。",
|
"about.domain_blocks.suspended.explanation": "此服务器的数据将不会被处理、存储或者交换,本站也将无法和来自此服务器的用户互动或者交流。",
|
||||||
"about.domain_blocks.suspended.title": "已封禁",
|
"about.domain_blocks.suspended.title": "已封禁",
|
||||||
"about.not_available": "此信息在当前服务器尚不可用。",
|
"about.not_available": "此信息在当前服务器尚不可用。",
|
||||||
"about.powered_by": "由 {mastodon} 驱动的去中心化社交媒体",
|
"about.powered_by": "由 {mastodon} 驱动的去中心化社交媒体",
|
||||||
|
@ -81,7 +81,7 @@
|
||||||
"admin.impact_report.instance_accounts": "将要删除的账户资料",
|
"admin.impact_report.instance_accounts": "将要删除的账户资料",
|
||||||
"admin.impact_report.instance_followers": "本实例用户即将丢失的关注者",
|
"admin.impact_report.instance_followers": "本实例用户即将丢失的关注者",
|
||||||
"admin.impact_report.instance_follows": "对方实例用户将会丢失的关注者",
|
"admin.impact_report.instance_follows": "对方实例用户将会丢失的关注者",
|
||||||
"admin.impact_report.title": "权重一览",
|
"admin.impact_report.title": "影响摘要",
|
||||||
"alert.rate_limited.message": "请在 {retry_time, time, medium} 后重试。",
|
"alert.rate_limited.message": "请在 {retry_time, time, medium} 后重试。",
|
||||||
"alert.rate_limited.title": "频率受限",
|
"alert.rate_limited.title": "频率受限",
|
||||||
"alert.unexpected.message": "发生了意外错误。",
|
"alert.unexpected.message": "发生了意外错误。",
|
||||||
|
@ -91,10 +91,10 @@
|
||||||
"audio.hide": "隐藏音频",
|
"audio.hide": "隐藏音频",
|
||||||
"block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重您的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。",
|
"block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重您的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。",
|
||||||
"block_modal.show_less": "隐藏",
|
"block_modal.show_less": "隐藏",
|
||||||
"block_modal.show_more": "展开",
|
"block_modal.show_more": "显示更多",
|
||||||
"block_modal.they_cant_mention": "他们不能提及或关注你。",
|
"block_modal.they_cant_mention": "他们不能提及或关注你。",
|
||||||
"block_modal.they_cant_see_posts": "嘟文将被设置为互相不可见。",
|
"block_modal.they_cant_see_posts": "他们看不到你的嘟文,你也看不到他们的嘟文。",
|
||||||
"block_modal.they_will_know": "他们将会获知他们被屏蔽。",
|
"block_modal.they_will_know": "他们将能看到他们被屏蔽。",
|
||||||
"block_modal.title": "屏蔽该用户?",
|
"block_modal.title": "屏蔽该用户?",
|
||||||
"block_modal.you_wont_see_mentions": "你将无法看到提及他们的嘟文。",
|
"block_modal.you_wont_see_mentions": "你将无法看到提及他们的嘟文。",
|
||||||
"boost_modal.combo": "下次按住 {combo} 即可跳过此提示",
|
"boost_modal.combo": "下次按住 {combo} 即可跳过此提示",
|
||||||
|
@ -171,28 +171,28 @@
|
||||||
"confirmations.block.confirm": "屏蔽",
|
"confirmations.block.confirm": "屏蔽",
|
||||||
"confirmations.delete.confirm": "删除",
|
"confirmations.delete.confirm": "删除",
|
||||||
"confirmations.delete.message": "你确定要删除这条嘟文吗?",
|
"confirmations.delete.message": "你确定要删除这条嘟文吗?",
|
||||||
"confirmations.delete.title": "删除嘟文?",
|
"confirmations.delete.title": "确认删除嘟文?",
|
||||||
"confirmations.delete_list.confirm": "删除",
|
"confirmations.delete_list.confirm": "删除",
|
||||||
"confirmations.delete_list.message": "确定永久删除这个列表吗?",
|
"confirmations.delete_list.message": "确定永久删除这个列表吗?",
|
||||||
"confirmations.delete_list.title": "删除列表?",
|
"confirmations.delete_list.title": "确认删除列表?",
|
||||||
"confirmations.discard_edit_media.confirm": "丢弃",
|
"confirmations.discard_edit_media.confirm": "丢弃",
|
||||||
"confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍要丢弃吗?",
|
"confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍要丢弃吗?",
|
||||||
"confirmations.edit.confirm": "编辑",
|
"confirmations.edit.confirm": "编辑",
|
||||||
"confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?",
|
"confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?",
|
||||||
"confirmations.edit.title": "覆盖嘟文?",
|
"confirmations.edit.title": "确认覆盖嘟文?",
|
||||||
"confirmations.logout.confirm": "退出登录",
|
"confirmations.logout.confirm": "退出登录",
|
||||||
"confirmations.logout.message": "确定要退出登录吗?",
|
"confirmations.logout.message": "确定要退出登录吗?",
|
||||||
"confirmations.logout.title": "退出登录?",
|
"confirmations.logout.title": "是否退出登录?",
|
||||||
"confirmations.mute.confirm": "隐藏",
|
"confirmations.mute.confirm": "隐藏",
|
||||||
"confirmations.redraft.confirm": "删除并重新编辑",
|
"confirmations.redraft.confirm": "删除并重新编辑",
|
||||||
"confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。",
|
"confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。",
|
||||||
"confirmations.redraft.title": "删除并重新嘟文?",
|
"confirmations.redraft.title": "是否删除并重新编辑嘟文?",
|
||||||
"confirmations.reply.confirm": "回复",
|
"confirmations.reply.confirm": "回复",
|
||||||
"confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?",
|
"confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?",
|
||||||
"confirmations.reply.title": "覆盖嘟文?",
|
"confirmations.reply.title": "确认覆盖嘟文?",
|
||||||
"confirmations.unfollow.confirm": "取消关注",
|
"confirmations.unfollow.confirm": "取消关注",
|
||||||
"confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
|
"confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
|
||||||
"confirmations.unfollow.title": "取消关注用户?",
|
"confirmations.unfollow.title": "是否取消关注用户?",
|
||||||
"conversation.delete": "删除对话",
|
"conversation.delete": "删除对话",
|
||||||
"conversation.mark_as_read": "标记为已读",
|
"conversation.mark_as_read": "标记为已读",
|
||||||
"conversation.open": "查看对话",
|
"conversation.open": "查看对话",
|
||||||
|
@ -505,11 +505,13 @@
|
||||||
"notification.update": "{name} 编辑了嘟文",
|
"notification.update": "{name} 编辑了嘟文",
|
||||||
"notification_requests.accept": "接受",
|
"notification_requests.accept": "接受",
|
||||||
"notification_requests.dismiss": "拒绝",
|
"notification_requests.dismiss": "拒绝",
|
||||||
|
"notification_requests.maximize": "最大化",
|
||||||
|
"notification_requests.minimize_banner": "最小化被过滤通知的横幅",
|
||||||
"notification_requests.notifications_from": "来自 {name} 的通知",
|
"notification_requests.notifications_from": "来自 {name} 的通知",
|
||||||
"notification_requests.title": "通知(已过滤)",
|
"notification_requests.title": "通知(已过滤)",
|
||||||
"notifications.clear": "清空通知列表",
|
"notifications.clear": "清空通知列表",
|
||||||
"notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
|
"notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
|
||||||
"notifications.clear_title": "清空通知?",
|
"notifications.clear_title": "是否清空通知?",
|
||||||
"notifications.column_settings.admin.report": "新举报:",
|
"notifications.column_settings.admin.report": "新举报:",
|
||||||
"notifications.column_settings.admin.sign_up": "新注册:",
|
"notifications.column_settings.admin.sign_up": "新注册:",
|
||||||
"notifications.column_settings.alert": "桌面通知",
|
"notifications.column_settings.alert": "桌面通知",
|
||||||
|
|
|
@ -505,6 +505,8 @@
|
||||||
"notification.update": "{name} 已編輯嘟文",
|
"notification.update": "{name} 已編輯嘟文",
|
||||||
"notification_requests.accept": "接受",
|
"notification_requests.accept": "接受",
|
||||||
"notification_requests.dismiss": "關閉",
|
"notification_requests.dismiss": "關閉",
|
||||||
|
"notification_requests.maximize": "最大化",
|
||||||
|
"notification_requests.minimize_banner": "最小化已過濾通知橫幅",
|
||||||
"notification_requests.notifications_from": "來自 {name} 之通知",
|
"notification_requests.notifications_from": "來自 {name} 之通知",
|
||||||
"notification_requests.title": "已過濾之通知",
|
"notification_requests.title": "已過濾之通知",
|
||||||
"notifications.clear": "清除通知",
|
"notifications.clear": "清除通知",
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
|
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
|
||||||
|
|
||||||
|
import { blockAccountSuccess, muteAccountSuccess } from 'mastodon/actions/accounts';
|
||||||
import {
|
import {
|
||||||
NOTIFICATION_REQUESTS_EXPAND_REQUEST,
|
NOTIFICATION_REQUESTS_EXPAND_REQUEST,
|
||||||
NOTIFICATION_REQUESTS_EXPAND_SUCCESS,
|
NOTIFICATION_REQUESTS_EXPAND_SUCCESS,
|
||||||
|
@ -51,6 +52,14 @@ const removeRequest = (state, id) => {
|
||||||
return state.update('items', list => list.filterNot(item => item.get('id') === id));
|
return state.update('items', list => list.filterNot(item => item.get('id') === id));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const removeRequestByAccount = (state, account_id) => {
|
||||||
|
if (state.getIn(['current', 'item', 'account']) === account_id) {
|
||||||
|
state = state.setIn(['current', 'removed'], true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return state.update('items', list => list.filterNot(item => item.get('account') === account_id));
|
||||||
|
};
|
||||||
|
|
||||||
export const notificationRequestsReducer = (state = initialState, action) => {
|
export const notificationRequestsReducer = (state = initialState, action) => {
|
||||||
switch(action.type) {
|
switch(action.type) {
|
||||||
case NOTIFICATION_REQUESTS_FETCH_SUCCESS:
|
case NOTIFICATION_REQUESTS_FETCH_SUCCESS:
|
||||||
|
@ -74,6 +83,10 @@ export const notificationRequestsReducer = (state = initialState, action) => {
|
||||||
case NOTIFICATION_REQUEST_ACCEPT_REQUEST:
|
case NOTIFICATION_REQUEST_ACCEPT_REQUEST:
|
||||||
case NOTIFICATION_REQUEST_DISMISS_REQUEST:
|
case NOTIFICATION_REQUEST_DISMISS_REQUEST:
|
||||||
return removeRequest(state, action.id);
|
return removeRequest(state, action.id);
|
||||||
|
case blockAccountSuccess.type:
|
||||||
|
return removeRequestByAccount(state, action.payload.relationship.id);
|
||||||
|
case muteAccountSuccess.type:
|
||||||
|
return action.payload.relationship.muting_notifications ? removeRequestByAccount(state, action.payload.relationship.id) : state;
|
||||||
case NOTIFICATION_REQUEST_FETCH_REQUEST:
|
case NOTIFICATION_REQUEST_FETCH_REQUEST:
|
||||||
return state.set('current', initialState.get('current').set('isLoading', true));
|
return state.set('current', initialState.get('current').set('isLoading', true));
|
||||||
case NOTIFICATION_REQUEST_FETCH_SUCCESS:
|
case NOTIFICATION_REQUEST_FETCH_SUCCESS:
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
|
import type { GetThunkAPI } from '@reduxjs/toolkit';
|
||||||
import { createAsyncThunk } from '@reduxjs/toolkit';
|
import { createAsyncThunk } from '@reduxjs/toolkit';
|
||||||
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
||||||
import { useDispatch, useSelector } from 'react-redux';
|
import { useDispatch, useSelector } from 'react-redux';
|
||||||
|
|
||||||
import type { BaseThunkAPI } from '@reduxjs/toolkit/dist/createAsyncThunk';
|
|
||||||
|
|
||||||
import type { AppDispatch, RootState } from './store';
|
import type { AppDispatch, RootState } from './store';
|
||||||
|
|
||||||
export const useAppDispatch = useDispatch.withTypes<AppDispatch>();
|
export const useAppDispatch = useDispatch.withTypes<AppDispatch>();
|
||||||
|
@ -25,29 +24,20 @@ export const createAppAsyncThunk = createAsyncThunk.withTypes<{
|
||||||
rejectValue: AsyncThunkRejectValue;
|
rejectValue: AsyncThunkRejectValue;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
type AppThunkApi = Pick<
|
interface AppThunkConfig {
|
||||||
BaseThunkAPI<
|
|
||||||
RootState,
|
|
||||||
unknown,
|
|
||||||
AppDispatch,
|
|
||||||
AsyncThunkRejectValue,
|
|
||||||
AppMeta,
|
|
||||||
AppMeta
|
|
||||||
>,
|
|
||||||
'getState' | 'dispatch'
|
|
||||||
>;
|
|
||||||
|
|
||||||
interface AppThunkOptions {
|
|
||||||
skipLoading?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
const createBaseAsyncThunk = createAsyncThunk.withTypes<{
|
|
||||||
state: RootState;
|
state: RootState;
|
||||||
dispatch: AppDispatch;
|
dispatch: AppDispatch;
|
||||||
rejectValue: AsyncThunkRejectValue;
|
rejectValue: AsyncThunkRejectValue;
|
||||||
fulfilledMeta: AppMeta;
|
fulfilledMeta: AppMeta;
|
||||||
rejectedMeta: AppMeta;
|
rejectedMeta: AppMeta;
|
||||||
}>();
|
}
|
||||||
|
type AppThunkApi = Pick<GetThunkAPI<AppThunkConfig>, 'getState' | 'dispatch'>;
|
||||||
|
|
||||||
|
interface AppThunkOptions {
|
||||||
|
skipLoading?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
const createBaseAsyncThunk = createAsyncThunk.withTypes<AppThunkConfig>();
|
||||||
|
|
||||||
export function createThunk<Arg = void, Returned = void>(
|
export function createThunk<Arg = void, Returned = void>(
|
||||||
name: string,
|
name: string,
|
||||||
|
|
|
@ -3086,6 +3086,11 @@ $ui-header-logo-wordmark-width: 99px;
|
||||||
.explore__search-header {
|
.explore__search-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.explore__search-results {
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-with-badge {
|
.icon-with-badge {
|
||||||
|
@ -7354,7 +7359,7 @@ a.status-card {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|
||||||
@media screen and (max-width: $no-gap-breakpoint) {
|
@media screen and (max-width: $no-gap-breakpoint - 1px) {
|
||||||
border-right: 0;
|
border-right: 0;
|
||||||
border-left: 0;
|
border-left: 0;
|
||||||
}
|
}
|
||||||
|
@ -8076,16 +8081,17 @@ noscript {
|
||||||
.verified {
|
.verified {
|
||||||
border: 1px solid rgba($valid-value-color, 0.5);
|
border: 1px solid rgba($valid-value-color, 0.5);
|
||||||
margin-top: -1px;
|
margin-top: -1px;
|
||||||
|
margin-inline: -1px;
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
border-top-left-radius: 4px;
|
border-top-left-radius: 4px;
|
||||||
border-top-right-radius: 4px;
|
border-top-right-radius: 4px;
|
||||||
margin-top: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
border-bottom-left-radius: 4px;
|
border-bottom-left-radius: 4px;
|
||||||
border-bottom-right-radius: 4px;
|
border-bottom-right-radius: 4px;
|
||||||
|
margin-bottom: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
dt,
|
dt,
|
||||||
|
@ -10622,6 +10628,25 @@ noscript {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&__note {
|
||||||
|
&-label {
|
||||||
|
color: $dark-text-color;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
white-space: pre-line;
|
||||||
|
color: $secondary-text-color;
|
||||||
|
overflow: hidden;
|
||||||
|
line-clamp: 3; // Not yet supported in browers
|
||||||
|
display: -webkit-box; // The next 3 properties are needed
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.display-name {
|
.display-name {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
|
|
|
@ -101,7 +101,9 @@ class LinkDetailsExtractor
|
||||||
end
|
end
|
||||||
|
|
||||||
def json
|
def json
|
||||||
@json ||= root_array(Oj.load(@data)).compact.find { |obj| SUPPORTED_TYPES.include?(obj['@type']) } || {}
|
@json ||= root_array(Oj.load(@data))
|
||||||
|
.map { |node| JSON::LD::API.compact(node, 'https://schema.org') }
|
||||||
|
.find { |node| SUPPORTED_TYPES.include?(node['type']) } || {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -234,13 +234,17 @@ class Request
|
||||||
end
|
end
|
||||||
|
|
||||||
def body_with_limit(limit = 1.megabyte)
|
def body_with_limit(limit = 1.megabyte)
|
||||||
raise Mastodon::LengthValidationError if content_length.present? && content_length > limit
|
require_limit_not_exceeded!(limit)
|
||||||
|
|
||||||
contents = truncated_body(limit)
|
contents = truncated_body(limit)
|
||||||
raise Mastodon::LengthValidationError if contents.bytesize > limit
|
raise Mastodon::LengthValidationError, "Body size exceeds limit of #{limit}" if contents.bytesize > limit
|
||||||
|
|
||||||
contents
|
contents
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def require_limit_not_exceeded!(limit)
|
||||||
|
raise Mastodon::LengthValidationError, "Content-Length #{content_length} exceeds limit of #{limit}" if content_length.present? && content_length > limit
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if ::HTTP::Response.methods.include?(:body_with_limit) && !Rails.env.production?
|
if ::HTTP::Response.methods.include?(:body_with_limit) && !Rails.env.production?
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class GroupedNotificationsPresenter < ActiveModelSerializers::Model
|
class GroupedNotificationsPresenter < ActiveModelSerializers::Model
|
||||||
def initialize(grouped_notifications)
|
def initialize(grouped_notifications, options = {})
|
||||||
super()
|
super()
|
||||||
|
|
||||||
@grouped_notifications = grouped_notifications
|
@grouped_notifications = grouped_notifications
|
||||||
|
@options = options
|
||||||
end
|
end
|
||||||
|
|
||||||
def notification_groups
|
def notification_groups
|
||||||
|
@ -16,6 +17,28 @@ class GroupedNotificationsPresenter < ActiveModelSerializers::Model
|
||||||
end
|
end
|
||||||
|
|
||||||
def accounts
|
def accounts
|
||||||
@grouped_notifications.flat_map(&:sample_accounts).uniq(&:id)
|
@accounts ||= begin
|
||||||
|
if partial_avatars?
|
||||||
|
@grouped_notifications.map { |group| group.sample_accounts.first }.uniq(&:id)
|
||||||
|
else
|
||||||
|
@grouped_notifications.flat_map(&:sample_accounts).uniq(&:id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def partial_accounts
|
||||||
|
@partial_accounts ||= begin
|
||||||
|
if partial_avatars?
|
||||||
|
@grouped_notifications.flat_map { |group| group.sample_accounts[1...] }.uniq(&:id).filter { |account| accounts.exclude?(account) }
|
||||||
|
else
|
||||||
|
[]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def partial_avatars?
|
||||||
|
@options[:expand_accounts] == 'partial_avatars'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,22 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class REST::DedupNotificationGroupSerializer < ActiveModel::Serializer
|
class REST::DedupNotificationGroupSerializer < ActiveModel::Serializer
|
||||||
|
class PartialAccountSerializer < REST::AccountSerializer
|
||||||
|
# This is a hack to reset ActiveModel::Serializer internals and only expose the attributes
|
||||||
|
# we care about.
|
||||||
|
self._attributes_data = {}
|
||||||
|
self._reflections = []
|
||||||
|
self._links = []
|
||||||
|
|
||||||
|
attributes :id, :acct, :locked, :bot, :url, :avatar, :avatar_static
|
||||||
|
end
|
||||||
|
|
||||||
has_many :accounts, serializer: REST::AccountSerializer
|
has_many :accounts, serializer: REST::AccountSerializer
|
||||||
|
has_many :partial_accounts, serializer: PartialAccountSerializer, if: :return_partial_accounts?
|
||||||
has_many :statuses, serializer: REST::StatusSerializer
|
has_many :statuses, serializer: REST::StatusSerializer
|
||||||
has_many :notification_groups, serializer: REST::NotificationGroupSerializer
|
has_many :notification_groups, serializer: REST::NotificationGroupSerializer
|
||||||
|
|
||||||
|
def return_partial_accounts?
|
||||||
|
instance_options[:expand_accounts] == 'partial_avatars'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,6 +7,7 @@ class AfterBlockService < BaseService
|
||||||
|
|
||||||
clear_home_feed!
|
clear_home_feed!
|
||||||
clear_list_feeds!
|
clear_list_feeds!
|
||||||
|
clear_notification_requests!
|
||||||
clear_notifications!
|
clear_notifications!
|
||||||
clear_conversations!
|
clear_conversations!
|
||||||
end
|
end
|
||||||
|
@ -28,4 +29,8 @@ class AfterBlockService < BaseService
|
||||||
def clear_notifications!
|
def clear_notifications!
|
||||||
Notification.where(account: @account).where(from_account: @target_account).in_batches.delete_all
|
Notification.where(account: @account).where(from_account: @target_account).in_batches.delete_all
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def clear_notification_requests!
|
||||||
|
NotificationRequest.where(account: @account, from_account: @target_account).destroy_all
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
wrapper: :with_label
|
wrapper: :with_label
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :min_status_age,
|
= f.input :min_status_age,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i),
|
collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i),
|
||||||
hint: false,
|
hint: false,
|
||||||
include_blank: false,
|
include_blank: false,
|
||||||
|
@ -28,11 +29,13 @@
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :keep_pinned,
|
= f.input :keep_pinned,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
hint: t('statuses_cleanup.keep_pinned_hint'),
|
hint: t('statuses_cleanup.keep_pinned_hint'),
|
||||||
label: t('statuses_cleanup.keep_pinned'),
|
label: t('statuses_cleanup.keep_pinned'),
|
||||||
wrapper: :with_label
|
wrapper: :with_label
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :keep_direct,
|
= f.input :keep_direct,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
hint: t('statuses_cleanup.keep_direct_hint'),
|
hint: t('statuses_cleanup.keep_direct_hint'),
|
||||||
label: t('statuses_cleanup.keep_direct'),
|
label: t('statuses_cleanup.keep_direct'),
|
||||||
wrapper: :with_label
|
wrapper: :with_label
|
||||||
|
@ -40,11 +43,13 @@
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :keep_self_fav,
|
= f.input :keep_self_fav,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
hint: t('statuses_cleanup.keep_self_fav_hint'),
|
hint: t('statuses_cleanup.keep_self_fav_hint'),
|
||||||
label: t('statuses_cleanup.keep_self_fav'),
|
label: t('statuses_cleanup.keep_self_fav'),
|
||||||
wrapper: :with_label
|
wrapper: :with_label
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :keep_self_bookmark,
|
= f.input :keep_self_bookmark,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
hint: t('statuses_cleanup.keep_self_bookmark_hint'),
|
hint: t('statuses_cleanup.keep_self_bookmark_hint'),
|
||||||
label: t('statuses_cleanup.keep_self_bookmark'),
|
label: t('statuses_cleanup.keep_self_bookmark'),
|
||||||
wrapper: :with_label
|
wrapper: :with_label
|
||||||
|
@ -52,11 +57,13 @@
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :keep_polls,
|
= f.input :keep_polls,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
hint: t('statuses_cleanup.keep_polls_hint'),
|
hint: t('statuses_cleanup.keep_polls_hint'),
|
||||||
label: t('statuses_cleanup.keep_polls'),
|
label: t('statuses_cleanup.keep_polls'),
|
||||||
wrapper: :with_label
|
wrapper: :with_label
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :keep_media,
|
= f.input :keep_media,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
hint: t('statuses_cleanup.keep_media_hint'),
|
hint: t('statuses_cleanup.keep_media_hint'),
|
||||||
label: t('statuses_cleanup.keep_media'),
|
label: t('statuses_cleanup.keep_media'),
|
||||||
wrapper: :with_label
|
wrapper: :with_label
|
||||||
|
@ -66,12 +73,14 @@
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :min_favs,
|
= f.input :min_favs,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
hint: t('statuses_cleanup.min_favs_hint'),
|
hint: t('statuses_cleanup.min_favs_hint'),
|
||||||
input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') },
|
input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') },
|
||||||
label: t('statuses_cleanup.min_favs'),
|
label: t('statuses_cleanup.min_favs'),
|
||||||
wrapper: :with_label
|
wrapper: :with_label
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :min_reblogs,
|
= f.input :min_reblogs,
|
||||||
|
disabled: !@policy.enabled?,
|
||||||
hint: t('statuses_cleanup.min_reblogs_hint'),
|
hint: t('statuses_cleanup.min_reblogs_hint'),
|
||||||
input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') },
|
input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') },
|
||||||
label: t('statuses_cleanup.min_reblogs'),
|
label: t('statuses_cleanup.min_reblogs'),
|
||||||
|
|
|
@ -232,6 +232,7 @@ be:
|
||||||
update_custom_emoji: Абнавіць адвольныя эмодзі
|
update_custom_emoji: Абнавіць адвольныя эмодзі
|
||||||
update_domain_block: Актуалізаваць блакіроўку дамена
|
update_domain_block: Актуалізаваць блакіроўку дамена
|
||||||
update_ip_block: Абнавіць IP правіла
|
update_ip_block: Абнавіць IP правіла
|
||||||
|
update_report: Абнавіць скаргу
|
||||||
update_status: Абнавіць допіс
|
update_status: Абнавіць допіс
|
||||||
update_user_role: Абнавіць ролю
|
update_user_role: Абнавіць ролю
|
||||||
actions:
|
actions:
|
||||||
|
@ -299,6 +300,7 @@ be:
|
||||||
filter_by_action: Фільтраваць па дзеянню
|
filter_by_action: Фільтраваць па дзеянню
|
||||||
filter_by_user: Адфільтраваць па карыстальніку
|
filter_by_user: Адфільтраваць па карыстальніку
|
||||||
title: Аўдыт
|
title: Аўдыт
|
||||||
|
unavailable_instance: "(імя дамена недаступнае)"
|
||||||
announcements:
|
announcements:
|
||||||
destroyed_msg: Аб'ява паспяхова выдалена!
|
destroyed_msg: Аб'ява паспяхова выдалена!
|
||||||
edit:
|
edit:
|
||||||
|
@ -485,6 +487,9 @@ be:
|
||||||
title: Рэкамендацыі падпісак
|
title: Рэкамендацыі падпісак
|
||||||
unsuppress: Аднавіць рэкамендацыі падпісак
|
unsuppress: Аднавіць рэкамендацыі падпісак
|
||||||
instances:
|
instances:
|
||||||
|
audit_log:
|
||||||
|
title: Нядаўнія журналы аўдыту
|
||||||
|
view_all: Праглядзець поўныя журналы аўдыту
|
||||||
availability:
|
availability:
|
||||||
description_html:
|
description_html:
|
||||||
few: Калі дастаўка на дамен не атрымоўваецца праз <strong>%{count} іншыя дні</strong>, далейшыя спробы дастаўкі не будуць зроблены, пакуль не будзе атрымана дастаўка <em>з</em> дамена.
|
few: Калі дастаўка на дамен не атрымоўваецца праз <strong>%{count} іншыя дні</strong>, далейшыя спробы дастаўкі не будуць зроблены, пакуль не будзе атрымана дастаўка <em>з</em> дамена.
|
||||||
|
@ -661,6 +666,7 @@ be:
|
||||||
report: 'Скарга #%{id}'
|
report: 'Скарга #%{id}'
|
||||||
reported_account: Уліковы запіс парушальніка
|
reported_account: Уліковы запіс парушальніка
|
||||||
reported_by: Адпраўнік скаргі
|
reported_by: Адпраўнік скаргі
|
||||||
|
reported_with_application: Паведамлена праз праграму
|
||||||
resolved: Вырашана
|
resolved: Вырашана
|
||||||
resolved_msg: Скарга была паспяхова вырашана!
|
resolved_msg: Скарга была паспяхова вырашана!
|
||||||
skip_to_actions: Прапусціць дзеянні
|
skip_to_actions: Прапусціць дзеянні
|
||||||
|
@ -907,7 +913,23 @@ be:
|
||||||
action: Для падрабязнасцей націсніце тут
|
action: Для падрабязнасцей націсніце тут
|
||||||
message_html: "<strong>Ваша сховішча не наладжана. Прыватнасць карыстальнікаў пад пагрозай.</strong>"
|
message_html: "<strong>Ваша сховішча не наладжана. Прыватнасць карыстальнікаў пад пагрозай.</strong>"
|
||||||
tags:
|
tags:
|
||||||
|
moderation:
|
||||||
|
not_trendable: Не ў трэндзе
|
||||||
|
not_usable: Непрыгодныя
|
||||||
|
pending_review: Чакае праверкі
|
||||||
|
review_requested: Патрабуюць прагледжвання
|
||||||
|
reviewed: Прагледжаныя
|
||||||
|
title: Стан
|
||||||
|
trendable: У трэндзе
|
||||||
|
unreviewed: Непрагледжаныя
|
||||||
|
usable: Прыгодныя
|
||||||
|
name: Назва
|
||||||
|
newest: Спачатку новыя
|
||||||
|
oldest: Спачатку старыя
|
||||||
|
reset: Скінуць
|
||||||
review: Стан праверкі
|
review: Стан праверкі
|
||||||
|
search: Пошук
|
||||||
|
title: Хэштэгі
|
||||||
updated_msg: Налады хэштэгаў паспяхова змененыя
|
updated_msg: Налады хэштэгаў паспяхова змененыя
|
||||||
title: Адміністрацыя
|
title: Адміністрацыя
|
||||||
trends:
|
trends:
|
||||||
|
|
|
@ -232,6 +232,7 @@ cs:
|
||||||
update_custom_emoji: Aktualizovat vlastní emoji
|
update_custom_emoji: Aktualizovat vlastní emoji
|
||||||
update_domain_block: Změnit blokaci domény
|
update_domain_block: Změnit blokaci domény
|
||||||
update_ip_block: Aktualizovat pravidlo IP
|
update_ip_block: Aktualizovat pravidlo IP
|
||||||
|
update_report: Upravit hlášení
|
||||||
update_status: Aktualizovat Příspěvek
|
update_status: Aktualizovat Příspěvek
|
||||||
update_user_role: Aktualizovat roli
|
update_user_role: Aktualizovat roli
|
||||||
actions:
|
actions:
|
||||||
|
@ -486,6 +487,9 @@ cs:
|
||||||
title: Doporučená sledování
|
title: Doporučená sledování
|
||||||
unsuppress: Obnovit doporučení sledování
|
unsuppress: Obnovit doporučení sledování
|
||||||
instances:
|
instances:
|
||||||
|
audit_log:
|
||||||
|
title: Nedávné protokoly auditu
|
||||||
|
view_all: Zobrazit úplné protokoly auditu
|
||||||
availability:
|
availability:
|
||||||
description_html:
|
description_html:
|
||||||
few: Pokud doručování na doménu selže ve <strong>%{count} různých dnech</strong>, nebudou činěny žádné další pokusy o doručení, dokud nedorazí doručení <em>od</em> domény.
|
few: Pokud doručování na doménu selže ve <strong>%{count} různých dnech</strong>, nebudou činěny žádné další pokusy o doručení, dokud nedorazí doručení <em>od</em> domény.
|
||||||
|
@ -662,6 +666,7 @@ cs:
|
||||||
report: 'Hlášení #%{id}'
|
report: 'Hlášení #%{id}'
|
||||||
reported_account: Nahlášený účet
|
reported_account: Nahlášený účet
|
||||||
reported_by: Nahlášeno uživatelem
|
reported_by: Nahlášeno uživatelem
|
||||||
|
reported_with_application: Nahlášeno aplikací
|
||||||
resolved: Vyřešeno
|
resolved: Vyřešeno
|
||||||
resolved_msg: Hlášení úspěšně vyřešeno!
|
resolved_msg: Hlášení úspěšně vyřešeno!
|
||||||
skip_to_actions: Přeskočit k akcím
|
skip_to_actions: Přeskočit k akcím
|
||||||
|
@ -908,7 +913,23 @@ cs:
|
||||||
action: Pro více informací se podívejte zde
|
action: Pro více informací se podívejte zde
|
||||||
message_html: "<strong>Váš object storage je špatně nakonfigurován. Soukromí vašich uživatelů je ohroženo.</strong>"
|
message_html: "<strong>Váš object storage je špatně nakonfigurován. Soukromí vašich uživatelů je ohroženo.</strong>"
|
||||||
tags:
|
tags:
|
||||||
|
moderation:
|
||||||
|
not_trendable: Netrendovatelné
|
||||||
|
not_usable: Nepoužitelné
|
||||||
|
pending_review: Čeká na posouzení
|
||||||
|
review_requested: Posouzení vyžádáno
|
||||||
|
reviewed: Posouzené
|
||||||
|
title: Stav
|
||||||
|
trendable: Trendovatelné
|
||||||
|
unreviewed: Neposouzené
|
||||||
|
usable: Použitelné
|
||||||
|
name: Název
|
||||||
|
newest: Nejnovější
|
||||||
|
oldest: Nejstarší
|
||||||
|
reset: Resetovat
|
||||||
review: Stav posouzení
|
review: Stav posouzení
|
||||||
|
search: Hledat
|
||||||
|
title: Hashtagy
|
||||||
updated_msg: Nastavení hashtagů bylo úspěšně aktualizováno
|
updated_msg: Nastavení hashtagů bylo úspěšně aktualizováno
|
||||||
title: Administrace
|
title: Administrace
|
||||||
trends:
|
trends:
|
||||||
|
|
|
@ -17,11 +17,11 @@ cy:
|
||||||
zero: Dilynwyr
|
zero: Dilynwyr
|
||||||
following: Yn dilyn
|
following: Yn dilyn
|
||||||
instance_actor_flash: Mae'r cyfrif hwn yn actor rhithwir sy'n cael ei ddefnyddio i gynrychioli'r gweinydd ei hun ac nid unrhyw ddefnyddiwr unigol. Fe'i defnyddir at ddibenion ffederasiwn ac ni ddylid ei atal.
|
instance_actor_flash: Mae'r cyfrif hwn yn actor rhithwir sy'n cael ei ddefnyddio i gynrychioli'r gweinydd ei hun ac nid unrhyw ddefnyddiwr unigol. Fe'i defnyddir at ddibenion ffederasiwn ac ni ddylid ei atal.
|
||||||
last_active: y diweddaraf
|
last_active: gweithgar ddiwethaf
|
||||||
link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date}
|
link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date}
|
||||||
nothing_here: Does dim byd yma!
|
nothing_here: Does dim byd yma!
|
||||||
pin_errors:
|
pin_errors:
|
||||||
following: Rhaid i chi fod yn dilyn yn barod y person rydych am ei gymeradwyo
|
following: Rhaid i chi fod yn dilyn y person rydych am ei gymeradwyo, yn barod.
|
||||||
posts:
|
posts:
|
||||||
few: Postiadau
|
few: Postiadau
|
||||||
many: Postiadau
|
many: Postiadau
|
||||||
|
@ -503,6 +503,9 @@ cy:
|
||||||
title: Dilyn yr argymhellion
|
title: Dilyn yr argymhellion
|
||||||
unsuppress: Adfer argymhelliad dilyn
|
unsuppress: Adfer argymhelliad dilyn
|
||||||
instances:
|
instances:
|
||||||
|
audit_log:
|
||||||
|
title: Cofnodion Archwilio Diweddar
|
||||||
|
view_all: Gweld y cofnodion archwilio llawn
|
||||||
availability:
|
availability:
|
||||||
description_html:
|
description_html:
|
||||||
few: Os bydd anfon i'r parth yn methu ar <strong>%{count} o ddiwrnodau gwahanol</strong> heb lwyddo, ni fydd unrhyw ymdrechion dosbarthu pellach yn cael eu gwneud oni bai y bydd danfoniad yn cael ei dderbyn <em>o'r</em> parth.
|
few: Os bydd anfon i'r parth yn methu ar <strong>%{count} o ddiwrnodau gwahanol</strong> heb lwyddo, ni fydd unrhyw ymdrechion dosbarthu pellach yn cael eu gwneud oni bai y bydd danfoniad yn cael ei dderbyn <em>o'r</em> parth.
|
||||||
|
@ -938,7 +941,23 @@ cy:
|
||||||
action: Ewch yma am fwy o wybodaeth
|
action: Ewch yma am fwy o wybodaeth
|
||||||
message_html: "<strong>Mae eich storfa gwrthrychau wedi'i cham ffurfweddu. Mae preifatrwydd eich defnyddwyr mewn perygl.</strong>"
|
message_html: "<strong>Mae eich storfa gwrthrychau wedi'i cham ffurfweddu. Mae preifatrwydd eich defnyddwyr mewn perygl.</strong>"
|
||||||
tags:
|
tags:
|
||||||
|
moderation:
|
||||||
|
not_trendable: Ddim yn dueddol
|
||||||
|
not_usable: Ddim yn ddefnyddiadwy
|
||||||
|
pending_review: O dan ystyriaeth
|
||||||
|
review_requested: Gofynnwyd am adolygiad
|
||||||
|
reviewed: Adolygwyd
|
||||||
|
title: Statws
|
||||||
|
trendable: Tueddadwy
|
||||||
|
unreviewed: Heb ei adolygu
|
||||||
|
usable: Defnyddiadwy
|
||||||
|
name: Enw
|
||||||
|
newest: Mwyaf newydd
|
||||||
|
oldest: Hynaf
|
||||||
|
reset: Ailosod
|
||||||
review: Adolygu statws
|
review: Adolygu statws
|
||||||
|
search: Chwilio
|
||||||
|
title: Hashnodau
|
||||||
updated_msg: Gosodiadau hashnodau wedi'i diweddaru'n llwyddiannus
|
updated_msg: Gosodiadau hashnodau wedi'i diweddaru'n llwyddiannus
|
||||||
title: Gweinyddiaeth
|
title: Gweinyddiaeth
|
||||||
trends:
|
trends:
|
||||||
|
|
|
@ -642,6 +642,7 @@ da:
|
||||||
report: 'Anmeldelse #%{id}'
|
report: 'Anmeldelse #%{id}'
|
||||||
reported_account: Anmeldt konto
|
reported_account: Anmeldt konto
|
||||||
reported_by: Anmeldt af
|
reported_by: Anmeldt af
|
||||||
|
reported_with_application: Rapporteret via applikation
|
||||||
resolved: Løst
|
resolved: Løst
|
||||||
resolved_msg: Anmeldelse løst!
|
resolved_msg: Anmeldelse løst!
|
||||||
skip_to_actions: Overspring til foranstaltninger
|
skip_to_actions: Overspring til foranstaltninger
|
||||||
|
@ -887,8 +888,8 @@ da:
|
||||||
moderation:
|
moderation:
|
||||||
not_trendable: Ikke trendegnet
|
not_trendable: Ikke trendegnet
|
||||||
not_usable: Ikke brugbar
|
not_usable: Ikke brugbar
|
||||||
pending_review: Afventer revision
|
pending_review: Afventer gennemgang
|
||||||
review_requested: Revision anmodet
|
review_requested: Gennemgang ønsket
|
||||||
reviewed: Revideret
|
reviewed: Revideret
|
||||||
title: Status
|
title: Status
|
||||||
trendable: Trendegnet
|
trendable: Trendegnet
|
||||||
|
@ -898,7 +899,7 @@ da:
|
||||||
newest: Seneste
|
newest: Seneste
|
||||||
oldest: Ældste
|
oldest: Ældste
|
||||||
reset: Nulstil
|
reset: Nulstil
|
||||||
review: Revisionsstatus
|
review: Gennmgangsstatus
|
||||||
search: Søg
|
search: Søg
|
||||||
title: Hashtags
|
title: Hashtags
|
||||||
updated_msg: Hashtag-indstillinger opdateret
|
updated_msg: Hashtag-indstillinger opdateret
|
||||||
|
@ -923,7 +924,7 @@ da:
|
||||||
usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
|
usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
|
||||||
not_allowed_to_trend: Ikke tilladt at trende
|
not_allowed_to_trend: Ikke tilladt at trende
|
||||||
only_allowed: Kun tilladte
|
only_allowed: Kun tilladte
|
||||||
pending_review: Afventer revision
|
pending_review: Afventer gennemgang
|
||||||
preview_card_providers:
|
preview_card_providers:
|
||||||
allowed: Links fra denne udgiver kan trende
|
allowed: Links fra denne udgiver kan trende
|
||||||
description_html: Disse er domæner, hvorfra links ofte deles på serveren. Links vil ikke trende offentligt, medmindre man har godkendt domænet for linket. Godkendelse/afvisning indbefatter underdomæner.
|
description_html: Disse er domæner, hvorfra links ofte deles på serveren. Links vil ikke trende offentligt, medmindre man har godkendt domænet for linket. Godkendelse/afvisning indbefatter underdomæner.
|
||||||
|
@ -1023,14 +1024,14 @@ da:
|
||||||
body: Nye Mastodon-versioner er udgivet. Opgradering bør overvejes!
|
body: Nye Mastodon-versioner er udgivet. Opgradering bør overvejes!
|
||||||
subject: Nye Mastodon-versioner er tilgængelige til %{instance}!
|
subject: Nye Mastodon-versioner er tilgængelige til %{instance}!
|
||||||
new_trends:
|
new_trends:
|
||||||
body: 'Flg. emner kræver revision, inden de kan vises offentligt:'
|
body: 'Flg. emner kræver gennemgang, inden de kan vises offentligt:'
|
||||||
new_trending_links:
|
new_trending_links:
|
||||||
title: Populære links
|
title: Populære links
|
||||||
new_trending_statuses:
|
new_trending_statuses:
|
||||||
title: Populære opslag
|
title: Populære opslag
|
||||||
new_trending_tags:
|
new_trending_tags:
|
||||||
title: Populære hashtags
|
title: Populære hashtags
|
||||||
subject: Nye tendenser klar til revision på %{instance}
|
subject: Nye tendenser klar til gennemgang på %{instance}
|
||||||
aliases:
|
aliases:
|
||||||
add_new: Opret alias
|
add_new: Opret alias
|
||||||
created_msg: Nyt alias oprettet. Du kan nu påbegynde flytningen fra den gamle konto.
|
created_msg: Nyt alias oprettet. Du kan nu påbegynde flytningen fra den gamle konto.
|
||||||
|
|
|
@ -1130,7 +1130,7 @@ de:
|
||||||
new_confirmation_instructions_sent: In wenigen Minuten wirst du eine neue E-Mail mit dem Bestätigungslink erhalten!
|
new_confirmation_instructions_sent: In wenigen Minuten wirst du eine neue E-Mail mit dem Bestätigungslink erhalten!
|
||||||
title: Überprüfe dein E-Mail-Postfach
|
title: Überprüfe dein E-Mail-Postfach
|
||||||
sign_in:
|
sign_in:
|
||||||
preamble_html: Melde dich mit deinen Zugangsdaten für <strong>%{domain}</strong> an. Solltest du dein Konto auf einem anderen Server registriert haben, ist eine Anmeldung hier nicht möglich.
|
preamble_html: Melde dich mit deinen Zugangsdaten für <strong>%{domain}</strong> an. Falls dein Konto auf einem anderen Server erstellt wurde, ist eine Anmeldung hier nicht möglich.
|
||||||
title: Bei %{domain} anmelden
|
title: Bei %{domain} anmelden
|
||||||
sign_up:
|
sign_up:
|
||||||
manual_review: Registrierungen für den Server %{domain} werden manuell durch unsere Moderator*innen überprüft. Um uns dabei zu unterstützen, schreibe etwas über dich und sage uns, weshalb du ein Konto auf %{domain} anlegen möchtest.
|
manual_review: Registrierungen für den Server %{domain} werden manuell durch unsere Moderator*innen überprüft. Um uns dabei zu unterstützen, schreibe etwas über dich und sage uns, weshalb du ein Konto auf %{domain} anlegen möchtest.
|
||||||
|
|
|
@ -83,6 +83,7 @@ be:
|
||||||
access_denied: Уласнік рэсурсу або сэрвер аўтарызацыі адхіліў ваш запыт.
|
access_denied: Уласнік рэсурсу або сэрвер аўтарызацыі адхіліў ваш запыт.
|
||||||
credential_flow_not_configured: Resource Owner Password Credentials flow не прайшоў з-за таго, што ўласцівасць Doorkeeper.configure.resource_owner_from_credentials была не вызначана.
|
credential_flow_not_configured: Resource Owner Password Credentials flow не прайшоў з-за таго, што ўласцівасць Doorkeeper.configure.resource_owner_from_credentials была не вызначана.
|
||||||
invalid_client: Збой аўтэнтыфікацыі кліента з-за невядомага кліента, адсутнасці аўтэнтыфікацыі кліента або метаду аўтэнтыфікацыі, які не падтрымліваецца.
|
invalid_client: Збой аўтэнтыфікацыі кліента з-за невядомага кліента, адсутнасці аўтэнтыфікацыі кліента або метаду аўтэнтыфікацыі, які не падтрымліваецца.
|
||||||
|
invalid_code_challenge_method: Метад праверкі кода павінен быць S256, просты тэкст не падтрымліваецца.
|
||||||
invalid_grant: Прадастаўлены дазвол на аўтарызацыю несапраўдны, пратэрмінованы, быў адкліканы, не адпавядае URI перанакіравання, які выкарыстоўваецца ў запыце аўтарызацыі або быў выдадзены іншаму кліенту.
|
invalid_grant: Прадастаўлены дазвол на аўтарызацыю несапраўдны, пратэрмінованы, быў адкліканы, не адпавядае URI перанакіравання, які выкарыстоўваецца ў запыце аўтарызацыі або быў выдадзены іншаму кліенту.
|
||||||
invalid_redirect_uri: Прадстаўлены URI перанакіравання не сапраўдны.
|
invalid_redirect_uri: Прадстаўлены URI перанакіравання не сапраўдны.
|
||||||
invalid_request:
|
invalid_request:
|
||||||
|
|
|
@ -20,7 +20,7 @@ hu:
|
||||||
applications:
|
applications:
|
||||||
buttons:
|
buttons:
|
||||||
authorize: Hitelesítés
|
authorize: Hitelesítés
|
||||||
cancel: Mégsem
|
cancel: Mégse
|
||||||
destroy: Törlés
|
destroy: Törlés
|
||||||
edit: Szerkesztés
|
edit: Szerkesztés
|
||||||
submit: Elküldés
|
submit: Elküldés
|
||||||
|
@ -51,20 +51,20 @@ hu:
|
||||||
application_id: Ügyfélkulcs
|
application_id: Ügyfélkulcs
|
||||||
callback_urls: Visszahívási URL-ek
|
callback_urls: Visszahívási URL-ek
|
||||||
scopes: Hatáskörök
|
scopes: Hatáskörök
|
||||||
secret: Ügyfél titkos kulcs
|
secret: Ügyféltitok
|
||||||
title: 'Alkalmazás: %{name}'
|
title: 'Alkalmazás: %{name}'
|
||||||
authorizations:
|
authorizations:
|
||||||
buttons:
|
buttons:
|
||||||
authorize: Hitelesítés
|
authorize: Engedélyezés
|
||||||
deny: Tiltás
|
deny: Tiltás
|
||||||
error:
|
error:
|
||||||
title: Hiba történt
|
title: Hiba történt
|
||||||
new:
|
new:
|
||||||
prompt_html: "%{client_name} szeretné elérni a fiókodat. Ez egy harmadik féltől származó alkalmazás. <strong>Ha nem bízol meg benne, ne addj felhatalmazást neki.</strong>"
|
prompt_html: "%{client_name} szeretné elérni a fiókodat. Ez egy harmadik féltől származó alkalmazás. <strong>Ha nem bízol meg benne, ne addj felhatalmazást neki.</strong>"
|
||||||
review_permissions: Jogosultságok áttekintése
|
review_permissions: Jogosultságok áttekintése
|
||||||
title: Hitelesítés szükséges
|
title: Engedélyezés szükséges
|
||||||
show:
|
show:
|
||||||
title: Másold le ezt az engedélyező kódot és írd be az alkalmazásba.
|
title: Másold le ezt az engedélyezési kódot és írd be az alkalmazásba.
|
||||||
authorized_applications:
|
authorized_applications:
|
||||||
buttons:
|
buttons:
|
||||||
revoke: Visszavonás
|
revoke: Visszavonás
|
||||||
|
@ -83,6 +83,7 @@ hu:
|
||||||
access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést.
|
access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést.
|
||||||
credential_flow_not_configured: Az erőforrás tulajdonos jelszóadatainak átadása megszakadt, mert a Doorkeeper.configure.resource_owner_from_credentials beállítatlan.
|
credential_flow_not_configured: Az erőforrás tulajdonos jelszóadatainak átadása megszakadt, mert a Doorkeeper.configure.resource_owner_from_credentials beállítatlan.
|
||||||
invalid_client: A kliens hitelesítése megszakadt, mert ismeretlen a kliens, a kliens nem küldött hitelesítést, vagy a hitelesítés módja nem támogatott.
|
invalid_client: A kliens hitelesítése megszakadt, mert ismeretlen a kliens, a kliens nem küldött hitelesítést, vagy a hitelesítés módja nem támogatott.
|
||||||
|
invalid_code_challenge_method: A kódkihívási módszernek S256-nak kell lennie, az egyszerű kód nem támogatott.
|
||||||
invalid_grant: A biztosított hitelesítés érvénytelen, lejárt, visszavont, vagy nem egyezik a hitelesítési kérésben használt URI-val, vagy más kliensnek címezték.
|
invalid_grant: A biztosított hitelesítés érvénytelen, lejárt, visszavont, vagy nem egyezik a hitelesítési kérésben használt URI-val, vagy más kliensnek címezték.
|
||||||
invalid_redirect_uri: Az átirányító URI nem valós.
|
invalid_redirect_uri: Az átirányító URI nem valós.
|
||||||
invalid_request:
|
invalid_request:
|
||||||
|
|
|
@ -17,7 +17,7 @@ fi:
|
||||||
link_verified_on: Tämän linkin omistus on tarkastettu %{date}
|
link_verified_on: Tämän linkin omistus on tarkastettu %{date}
|
||||||
nothing_here: Täällä ei ole mitään!
|
nothing_here: Täällä ei ole mitään!
|
||||||
pin_errors:
|
pin_errors:
|
||||||
following: Sinun täytyy seurata henkilöä jota haluat tukea
|
following: Sinun täytyy seurata käyttäjää, jota haluat tukea
|
||||||
posts:
|
posts:
|
||||||
one: Julkaisu
|
one: Julkaisu
|
||||||
other: viestiä
|
other: viestiä
|
||||||
|
@ -632,7 +632,7 @@ fi:
|
||||||
create_and_resolve: Ratkaise ja lisää muistiinpano
|
create_and_resolve: Ratkaise ja lisää muistiinpano
|
||||||
create_and_unresolve: Avaa uudelleen ja lisää muistiinpano
|
create_and_unresolve: Avaa uudelleen ja lisää muistiinpano
|
||||||
delete: Poista
|
delete: Poista
|
||||||
placeholder: Kuvaile tehtyjä toimia tai lisää muita käyttäjään liittyviä merkintöjä...
|
placeholder: Kuvaile tehtyjä toimia tai lisää muita käyttäjään liittyviä merkintöjä…
|
||||||
title: Muistiinpanot
|
title: Muistiinpanot
|
||||||
notes_description_html: Tarkastele ja jätä muistiinpanoja muille moderaattoreille ja itsellesi tulevaisuuteen
|
notes_description_html: Tarkastele ja jätä muistiinpanoja muille moderaattoreille ja itsellesi tulevaisuuteen
|
||||||
processed_msg: Raportin nro %{id} käsittely onnistui
|
processed_msg: Raportin nro %{id} käsittely onnistui
|
||||||
|
@ -771,7 +771,7 @@ fi:
|
||||||
public_timelines: Julkiset aikajanat
|
public_timelines: Julkiset aikajanat
|
||||||
publish_discovered_servers: Julkaise löydetyt palvelimet
|
publish_discovered_servers: Julkaise löydetyt palvelimet
|
||||||
publish_statistics: Julkaise tilastot
|
publish_statistics: Julkaise tilastot
|
||||||
title: Löydettävyys
|
title: Löytäminen
|
||||||
trends: Trendit
|
trends: Trendit
|
||||||
domain_blocks:
|
domain_blocks:
|
||||||
all: Kaikille
|
all: Kaikille
|
||||||
|
@ -838,7 +838,7 @@ fi:
|
||||||
delete_statuses: "%{name} poisti käyttäjän %{target} julkaisut"
|
delete_statuses: "%{name} poisti käyttäjän %{target} julkaisut"
|
||||||
disable: "%{name} jäädytti %{target} tilin"
|
disable: "%{name} jäädytti %{target} tilin"
|
||||||
mark_statuses_as_sensitive: "%{name} merkitsi käyttäjän %{target} julkaisut arkaluonteisiksi"
|
mark_statuses_as_sensitive: "%{name} merkitsi käyttäjän %{target} julkaisut arkaluonteisiksi"
|
||||||
none: "%{name} lähetti varoituksen henkilölle %{target}"
|
none: "%{name} lähetti varoituksen käyttäjälle %{target}"
|
||||||
sensitive: "%{name} merkitsi käyttäjän %{target} tilin arkaluonteiseksi"
|
sensitive: "%{name} merkitsi käyttäjän %{target} tilin arkaluonteiseksi"
|
||||||
silence: "%{name} rajoitti käyttäjän %{target} tiliä"
|
silence: "%{name} rajoitti käyttäjän %{target} tiliä"
|
||||||
suspend: "%{name} jäädytti käyttäjän %{target} tilin"
|
suspend: "%{name} jäädytti käyttäjän %{target} tilin"
|
||||||
|
@ -918,8 +918,8 @@ fi:
|
||||||
publishers:
|
publishers:
|
||||||
no_publisher_selected: Julkaisijoita ei muutettu, koska yhtään ei ollut valittuna
|
no_publisher_selected: Julkaisijoita ei muutettu, koska yhtään ei ollut valittuna
|
||||||
shared_by_over_week:
|
shared_by_over_week:
|
||||||
one: Jakanut yksi henkilö viimeisen viikon aikana
|
one: Jakanut yksi käyttäjä viimeisen viikon aikana
|
||||||
other: Jakanut %{count} henkilöä viimeisen viikon aikana
|
other: Jakanut %{count} käyttäjää viimeisen viikon aikana
|
||||||
title: Suositut linkit
|
title: Suositut linkit
|
||||||
usage_comparison: Jaettu tänään %{today} kertaa verrattuna eilisen %{yesterday} kertaan
|
usage_comparison: Jaettu tänään %{today} kertaa verrattuna eilisen %{yesterday} kertaan
|
||||||
not_allowed_to_trend: Ei saa trendata
|
not_allowed_to_trend: Ei saa trendata
|
||||||
|
@ -951,7 +951,7 @@ fi:
|
||||||
tag_servers_dimension: Suosituimmat palvelimet
|
tag_servers_dimension: Suosituimmat palvelimet
|
||||||
tag_servers_measure: eri palvelimet
|
tag_servers_measure: eri palvelimet
|
||||||
tag_uses_measure: käyttökerrat yhteensä
|
tag_uses_measure: käyttökerrat yhteensä
|
||||||
description_html: Nämä aihetunnisteet näkyvät parhaillaan monissa julkaisuissa, jotka palvelimesi näkee. Tämä luettelo voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten juuri nyt. Mitkään aihetunnisteet ei näy julkisesti ennen kuin hyväksyt ne.
|
description_html: Nämä aihetunnisteet näkyvät parhaillaan monissa julkaisuissa, jotka palvelimesi näkee. Tämä luettelo voi auttaa käyttäjiäsi selvittämään, mistä puhutaan eniten juuri nyt. Mitkään aihetunnisteet ei näy julkisesti ennen kuin hyväksyt ne.
|
||||||
listable: Voi ehdottaa
|
listable: Voi ehdottaa
|
||||||
no_tag_selected: Tunnisteita ei muutettu, koska yhtään ei ollut valittuna
|
no_tag_selected: Tunnisteita ei muutettu, koska yhtään ei ollut valittuna
|
||||||
not_listable: Ei ehdoteta
|
not_listable: Ei ehdoteta
|
||||||
|
@ -964,8 +964,8 @@ fi:
|
||||||
usable: Voi käyttää
|
usable: Voi käyttää
|
||||||
usage_comparison: Käytetty tänään %{today} kertaa, verrattuna elisen %{yesterday} kertaan
|
usage_comparison: Käytetty tänään %{today} kertaa, verrattuna elisen %{yesterday} kertaan
|
||||||
used_by_over_week:
|
used_by_over_week:
|
||||||
one: Käyttänyt yksi henkilö viimeisen viikon aikana
|
one: Käyttänyt yksi käyttäjä viimeisen viikon aikana
|
||||||
other: Käyttänyt %{count} henkilöä viimeisen viikon aikana
|
other: Käyttänyt %{count} käyttäjää viimeisen viikon aikana
|
||||||
title: Trendit
|
title: Trendit
|
||||||
trending: Trendaus
|
trending: Trendaus
|
||||||
warning_presets:
|
warning_presets:
|
||||||
|
@ -1043,8 +1043,8 @@ fi:
|
||||||
advanced_web_interface: Edistynyt selainkäyttöliittymä
|
advanced_web_interface: Edistynyt selainkäyttöliittymä
|
||||||
advanced_web_interface_hint: 'Jos haluat hyödyntää näytön koko leveyttä, edistyneen selainkäyttöliittymän avulla voit määrittää useita erilaisia sarakkeita, niin näet kerralla niin paljon tietoa kuin haluat: kotisyöte, ilmoitukset, yleinen aikajana, mikä tahansa määrä listoja ja aihetunnisteita.'
|
advanced_web_interface_hint: 'Jos haluat hyödyntää näytön koko leveyttä, edistyneen selainkäyttöliittymän avulla voit määrittää useita erilaisia sarakkeita, niin näet kerralla niin paljon tietoa kuin haluat: kotisyöte, ilmoitukset, yleinen aikajana, mikä tahansa määrä listoja ja aihetunnisteita.'
|
||||||
animations_and_accessibility: Animaatiot ja saavutettavuus
|
animations_and_accessibility: Animaatiot ja saavutettavuus
|
||||||
confirmation_dialogs: Vahvistusvalinnat
|
confirmation_dialogs: Vahvistusikkunat
|
||||||
discovery: Löydettävyys
|
discovery: Löytäminen
|
||||||
localization:
|
localization:
|
||||||
body: Mastodonin ovat kääntäneet vapaaehtoiset.
|
body: Mastodonin ovat kääntäneet vapaaehtoiset.
|
||||||
guide_link: https://crowdin.com/project/mastodon
|
guide_link: https://crowdin.com/project/mastodon
|
||||||
|
@ -1092,7 +1092,7 @@ fi:
|
||||||
dont_have_your_security_key: Eikö sinulla ole suojausavainta?
|
dont_have_your_security_key: Eikö sinulla ole suojausavainta?
|
||||||
forgot_password: Unohditko salasanasi?
|
forgot_password: Unohditko salasanasi?
|
||||||
invalid_reset_password_token: Salasanan palautustunnus on virheellinen tai vanhentunut. Pyydä uusi.
|
invalid_reset_password_token: Salasanan palautustunnus on virheellinen tai vanhentunut. Pyydä uusi.
|
||||||
link_to_otp: Syötä puhelimesi kaksivaiheisen todennuksen koodi tai palautuskoodi
|
link_to_otp: Syötä kaksivaiheisen todennuksen tunnusluku puhelimestasi tai palautuskoodi
|
||||||
link_to_webauth: Käytä suojausavaintasi
|
link_to_webauth: Käytä suojausavaintasi
|
||||||
log_in_with: Kirjaudu käyttäen
|
log_in_with: Kirjaudu käyttäen
|
||||||
login: Kirjaudu sisään
|
login: Kirjaudu sisään
|
||||||
|
@ -1134,7 +1134,7 @@ fi:
|
||||||
title: Kirjaudu palvelimelle %{domain}
|
title: Kirjaudu palvelimelle %{domain}
|
||||||
sign_up:
|
sign_up:
|
||||||
manual_review: Palvelimen %{domain} ylläpito tarkastaa rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja siitä, miksi haluat luoda käyttäjätilin palvelimelle %{domain}.
|
manual_review: Palvelimen %{domain} ylläpito tarkastaa rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja siitä, miksi haluat luoda käyttäjätilin palvelimelle %{domain}.
|
||||||
preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia henkilöitä riippumatta siitä, missä heidän tilinsä on.
|
preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia käyttäjiä riippumatta siitä, missä heidän tilinsä on.
|
||||||
title: Otetaan %{domain} käyttöösi.
|
title: Otetaan %{domain} käyttöösi.
|
||||||
status:
|
status:
|
||||||
account_status: Tilin tila
|
account_status: Tilin tila
|
||||||
|
@ -1224,7 +1224,7 @@ fi:
|
||||||
invalid_domain: ei ole kelvollinen verkkotunnus
|
invalid_domain: ei ole kelvollinen verkkotunnus
|
||||||
edit_profile:
|
edit_profile:
|
||||||
basic_information: Perustiedot
|
basic_information: Perustiedot
|
||||||
hint_html: "<strong>Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä.</strong> Ihmiset seuraavat sinua takaisin ja ovat kanssasi vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva."
|
hint_html: "<strong>Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä.</strong> Sinua seurataan takaisin ja kanssasi ollaan vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva."
|
||||||
other: Muut
|
other: Muut
|
||||||
errors:
|
errors:
|
||||||
'400': Lähettämäsi pyyntö oli virheellinen tai muotoiltu virheellisesti.
|
'400': Lähettämäsi pyyntö oli virheellinen tai muotoiltu virheellisesti.
|
||||||
|
@ -1249,7 +1249,7 @@ fi:
|
||||||
date: Päiväys
|
date: Päiväys
|
||||||
download: Lataa arkisto
|
download: Lataa arkisto
|
||||||
hint_html: Voit pyytää arkistoa omista <strong>julkaisuista ja mediasta</strong>. Viedyt tiedot ovat ActivityPub-muodossa, ja ne voi lukea millä tahansa yhteensopivalla ohjelmalla. Voit pyytää arkistoa 7 päivän välein.
|
hint_html: Voit pyytää arkistoa omista <strong>julkaisuista ja mediasta</strong>. Viedyt tiedot ovat ActivityPub-muodossa, ja ne voi lukea millä tahansa yhteensopivalla ohjelmalla. Voit pyytää arkistoa 7 päivän välein.
|
||||||
in_progress: Arkistoa kootaan...
|
in_progress: Arkistoa kootaan…
|
||||||
request: Pyydä arkisto
|
request: Pyydä arkisto
|
||||||
size: Koko
|
size: Koko
|
||||||
blocks: Estot
|
blocks: Estot
|
||||||
|
@ -1262,8 +1262,8 @@ fi:
|
||||||
featured_tags:
|
featured_tags:
|
||||||
add_new: Lisää uusi
|
add_new: Lisää uusi
|
||||||
errors:
|
errors:
|
||||||
limit: Olet nostanut esille jo enimmäismäärän aihetunnisteita
|
limit: Suosittelet jo aihetunnisteiden enimmäismäärää
|
||||||
hint_html: "<strong>Nosta tärkeimmät aihetunnisteesi esille profiilissasi.</strong> Erinomainen työkalu, jolla pidät kirjaa luovista teoksistasi ja pitkäaikaisista projekteistasi. Esille nostamasi aihetunnisteet ovat näyttävällä paikalla profiilissasi ja mahdollistavat nopean pääsyn julkaisuihisi."
|
hint_html: "<strong>Suosittele tärkeimpiä aihetunnisteitasi profiilissasi.</strong> Erinomainen työkalu, jolla pidät kirjaa luovista teoksistasi ja pitkäaikaisista projekteistasi. Suosittelemasi aihetunnisteet ovat näyttävällä paikalla profiilissasi ja mahdollistavat nopean pääsyn julkaisuihisi."
|
||||||
filters:
|
filters:
|
||||||
contexts:
|
contexts:
|
||||||
account: Profiilit
|
account: Profiilit
|
||||||
|
@ -1359,7 +1359,7 @@ fi:
|
||||||
following_html: Olet aikeissa <strong>seurata</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>.
|
following_html: Olet aikeissa <strong>seurata</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>.
|
||||||
lists_html: Olet aikeissa lisätä <strong>listoihisi</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>. Uusia listoja luodaan, jos sopivaa kohdelistaa ei ole olemassa.
|
lists_html: Olet aikeissa lisätä <strong>listoihisi</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>. Uusia listoja luodaan, jos sopivaa kohdelistaa ei ole olemassa.
|
||||||
muting_html: Olet aikeissa <strong>mykistää</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>.
|
muting_html: Olet aikeissa <strong>mykistää</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>.
|
||||||
preface: Voit tuoda toiselta palvelimelta viemiäsi tietoja, kuten seuraamiesi tai estämiesi henkilöiden luettelon.
|
preface: Voit tuoda toiselta palvelimelta viemiäsi tietoja, kuten seuraamiesi tai estämiesi käyttäjien luettelon.
|
||||||
recent_imports: Viimeksi tuotu
|
recent_imports: Viimeksi tuotu
|
||||||
states:
|
states:
|
||||||
finished: Valmis
|
finished: Valmis
|
||||||
|
@ -1386,7 +1386,7 @@ fi:
|
||||||
domain_blocking: Verkkotunnusten estoluettelo
|
domain_blocking: Verkkotunnusten estoluettelo
|
||||||
following: Seurattujen luettelo
|
following: Seurattujen luettelo
|
||||||
lists: Listat
|
lists: Listat
|
||||||
muting: Mykistettyjen luettelo
|
muting: Mykistysluettelo
|
||||||
upload: Lähetä
|
upload: Lähetä
|
||||||
invites:
|
invites:
|
||||||
delete: Poista käytöstä
|
delete: Poista käytöstä
|
||||||
|
@ -1480,7 +1480,7 @@ fi:
|
||||||
title: Moderointi
|
title: Moderointi
|
||||||
move_handler:
|
move_handler:
|
||||||
carry_blocks_over_text: Tämä käyttäjä siirtyi paikasta %{acct}, jonka olit estänyt.
|
carry_blocks_over_text: Tämä käyttäjä siirtyi paikasta %{acct}, jonka olit estänyt.
|
||||||
carry_mutes_over_text: Tämä käyttäjä siirtyi tililtä %{acct}, jonka olet mykistänyt.
|
carry_mutes_over_text: Tämä käyttäjä muutti tilistä %{acct}, jonka olet mykistänyt.
|
||||||
copy_account_note_text: 'Tämä käyttäjä siirtyi tililtä %{acct}. Nämä olivat muistiinpanosi hänestä:'
|
copy_account_note_text: 'Tämä käyttäjä siirtyi tililtä %{acct}. Nämä olivat muistiinpanosi hänestä:'
|
||||||
navigation:
|
navigation:
|
||||||
toggle_menu: Avaa/sulje valikko
|
toggle_menu: Avaa/sulje valikko
|
||||||
|
@ -1569,7 +1569,7 @@ fi:
|
||||||
reach: Tavoittavuus
|
reach: Tavoittavuus
|
||||||
reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seurantasuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen?
|
reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seurantasuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen?
|
||||||
search: Haku
|
search: Haku
|
||||||
search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että ihmiset löytävät sinut julkisten julkaisujesi perusteella? Haluatko, että ihmiset Mastodonin ulkopuolella löytävät profiilisi tehdessään hakuja verkossa? Otathan huomioon, ettei julkisten tietojen täyttä kaikista hakukoneista poisjäämistä voi taata.
|
search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että sinut löydetään julkisten julkaisujesi perusteella? Haluatko, että Mastodonin ulkopuoliset ihmiset löytävät profiilisi tehdessään hakuja verkossa? Otathan huomioon, ettei julkisten tietojen täyttä kaikista hakukoneista poisjäämistä voi taata.
|
||||||
title: Yksityisyys ja tavoittavuus
|
title: Yksityisyys ja tavoittavuus
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
title: Tietosuojakäytäntö
|
title: Tietosuojakäytäntö
|
||||||
|
@ -1675,16 +1675,16 @@ fi:
|
||||||
development: Kehitys
|
development: Kehitys
|
||||||
edit_profile: Muokkaa profiilia
|
edit_profile: Muokkaa profiilia
|
||||||
export: Vie tietoja
|
export: Vie tietoja
|
||||||
featured_tags: Esille nostetut aihetunnisteet
|
featured_tags: Suositellut aihetunnisteet
|
||||||
import: Tuo tietoja
|
import: Tuo tietoja
|
||||||
import_and_export: Tuonti ja vienti
|
import_and_export: Tuonti ja vienti
|
||||||
migrate: Tilin muutto toisaalle
|
migrate: Tilin muutto toisaalle
|
||||||
notifications: Sähköposti-ilmoitukset
|
notifications: Sähköposti-ilmoitukset
|
||||||
preferences: Ominaisuudet
|
preferences: Asetukset
|
||||||
profile: Julkinen profiili
|
profile: Julkinen profiili
|
||||||
relationships: Seuratut ja seuraajat
|
relationships: Seuratut ja seuraajat
|
||||||
severed_relationships: Katkenneet seurantasuhteet
|
severed_relationships: Katkenneet suhteet
|
||||||
statuses_cleanup: Autom. julkaisujen poisto
|
statuses_cleanup: Julkaisujen automaattipoisto
|
||||||
strikes: Moderointivaroitukset
|
strikes: Moderointivaroitukset
|
||||||
two_factor_authentication: Kaksivaiheinen todennus
|
two_factor_authentication: Kaksivaiheinen todennus
|
||||||
webauthn_authentication: Suojausavaimet
|
webauthn_authentication: Suojausavaimet
|
||||||
|
@ -1729,8 +1729,8 @@ fi:
|
||||||
reblog: Tehostusta ei voi kiinnittää
|
reblog: Tehostusta ei voi kiinnittää
|
||||||
poll:
|
poll:
|
||||||
total_people:
|
total_people:
|
||||||
one: "%{count} henkilö"
|
one: "%{count} käyttäjä"
|
||||||
other: "%{count} henkilöä"
|
other: "%{count} käyttäjää"
|
||||||
total_votes:
|
total_votes:
|
||||||
one: "%{count} ääni"
|
one: "%{count} ääni"
|
||||||
other: "%{count} ääntä"
|
other: "%{count} ääntä"
|
||||||
|
@ -1750,7 +1750,7 @@ fi:
|
||||||
enabled: Poista vanhat julkaisut automaattisesti
|
enabled: Poista vanhat julkaisut automaattisesti
|
||||||
enabled_hint: Poistaa julkaisusi automaattisesti, kun ne saavuttavat valitun ikäkynnyksen, ellei jokin alla olevista poikkeuksista tule kyseeseen
|
enabled_hint: Poistaa julkaisusi automaattisesti, kun ne saavuttavat valitun ikäkynnyksen, ellei jokin alla olevista poikkeuksista tule kyseeseen
|
||||||
exceptions: Poikkeukset
|
exceptions: Poikkeukset
|
||||||
explanation: Koska julkaisujen poistaminen on raskas toimi, se tapahtuu hitaasti ajan mittaan, kun palvelin ei ole muutoin ruuhkainen. Siksi viestejäsi voi poistua vasta tovi sen jälkeen, kun ne ovat saavuttaneet ikäkynnyksen.
|
explanation: Koska julkaisujen poistaminen on raskas toimi, se tapahtuu hitaasti aikaa myöten silloin kun palvelin ei ole muutoin ruuhkainen. Siksi viestejäsi voi poistua vasta tovi sen jälkeen kun ne ovat ylittäneet ikäkynnyksen.
|
||||||
ignore_favs: Ohita suosikit
|
ignore_favs: Ohita suosikit
|
||||||
ignore_reblogs: Ohita tehostukset
|
ignore_reblogs: Ohita tehostukset
|
||||||
interaction_exceptions: Vuorovaikutuksiin perustuvat poikkeukset
|
interaction_exceptions: Vuorovaikutuksiin perustuvat poikkeukset
|
||||||
|
@ -1857,7 +1857,7 @@ fi:
|
||||||
explanation:
|
explanation:
|
||||||
delete_statuses: Joidenkin julkaisuistasi on havaittu rikkovan ainakin yhtä yhteisön sääntöä, joten palvelimen %{instance} moderaattorit ovat poistaneet ne.
|
delete_statuses: Joidenkin julkaisuistasi on havaittu rikkovan ainakin yhtä yhteisön sääntöä, joten palvelimen %{instance} moderaattorit ovat poistaneet ne.
|
||||||
disable: Et voi enää käyttää tiliäsi, mutta profiilisi ja muut tiedot pysyvät muuttumattomina. Voit pyytää varmuuskopiota tiedoistasi, vaihtaa tilin asetuksia tai poistaa tilisi.
|
disable: Et voi enää käyttää tiliäsi, mutta profiilisi ja muut tiedot pysyvät muuttumattomina. Voit pyytää varmuuskopiota tiedoistasi, vaihtaa tilin asetuksia tai poistaa tilisi.
|
||||||
mark_statuses_as_sensitive: Palvelimen %{instance} moderaattorit ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että ihmisten täytyy napauttaa mediaa ennen kuin sen esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi, kun julkaiset tulevaisuudessa.
|
mark_statuses_as_sensitive: Palvelimen %{instance} moderaattorit ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että mediaa täytyy napauttaa ennen kuin sen esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi, kun julkaiset tulevaisuudessa.
|
||||||
sensitive: Tästä lähtien kaikki lähetetyt mediatiedostot merkitään arkaluonteisiksi ja piilotetaan napsautusvaroituksen taakse.
|
sensitive: Tästä lähtien kaikki lähetetyt mediatiedostot merkitään arkaluonteisiksi ja piilotetaan napsautusvaroituksen taakse.
|
||||||
silence: Voit edelleen käyttää tiliäsi, mutta vain sinua jo seuraavat käyttäjät näkevät julkaisusi tällä palvelimella ja sinut voidaan sulkea pois eri löytämisominaisuuksista. Toiset voivat kuitenkin edelleen seurata sinua manuaalisesti.
|
silence: Voit edelleen käyttää tiliäsi, mutta vain sinua jo seuraavat käyttäjät näkevät julkaisusi tällä palvelimella ja sinut voidaan sulkea pois eri löytämisominaisuuksista. Toiset voivat kuitenkin edelleen seurata sinua manuaalisesti.
|
||||||
suspend: Et voi enää käyttää tiliäsi, eivätkä profiilisi ja muut tiedot ole enää käytettävissä. Voit silti kirjautua sisään pyytääksesi tietojesi varmuuskopiota, kunnes tiedot on poistettu kokonaan noin 30 päivän kuluttua. Säilytämme kuitenkin joitain perustietoja, jotka estävät sinua kiertämästä jäädytystä.
|
suspend: Et voi enää käyttää tiliäsi, eivätkä profiilisi ja muut tiedot ole enää käytettävissä. Voit silti kirjautua sisään pyytääksesi tietojesi varmuuskopiota, kunnes tiedot on poistettu kokonaan noin 30 päivän kuluttua. Säilytämme kuitenkin joitain perustietoja, jotka estävät sinua kiertämästä jäädytystä.
|
||||||
|
@ -1900,14 +1900,14 @@ fi:
|
||||||
feature_moderation: Mastodon palauttaa päätöksenteon käsiisi. Jokainen palvelin luo omat sääntönsä ja määräyksensä, joita valvotaan paikallisesti eikä ylhäältä alas kuten kaupallisessa sosiaalisessa mediassa, mikä tekee siitä joustavimman vastaamaan eri ihmisryhmien tarpeisiin. Liity palvelimelle, jonka säännöt sopivat sinulle, tai ylläpidä omaa palvelinta.
|
feature_moderation: Mastodon palauttaa päätöksenteon käsiisi. Jokainen palvelin luo omat sääntönsä ja määräyksensä, joita valvotaan paikallisesti eikä ylhäältä alas kuten kaupallisessa sosiaalisessa mediassa, mikä tekee siitä joustavimman vastaamaan eri ihmisryhmien tarpeisiin. Liity palvelimelle, jonka säännöt sopivat sinulle, tai ylläpidä omaa palvelinta.
|
||||||
feature_moderation_title: Moderointi juuri kuten sen pitäisi olla
|
feature_moderation_title: Moderointi juuri kuten sen pitäisi olla
|
||||||
follow_action: Seuraa
|
follow_action: Seuraa
|
||||||
follow_step: Mastodonissa on kyse kiinnostavien ihmisten seuraamisesta.
|
follow_step: Mastodonissa on kyse kiinnostavien käyttäjien seuraamisesta.
|
||||||
follow_title: Mukauta kotisyötettäsi
|
follow_title: Mukauta kotisyötettäsi
|
||||||
follows_subtitle: Seuraa tunnettuja tilejä
|
follows_subtitle: Seuraa tunnettuja tilejä
|
||||||
follows_title: Seurantaehdotuksia
|
follows_title: Seurantaehdotuksia
|
||||||
follows_view_more: Näytä lisää seurattavia henkilöitä
|
follows_view_more: Näytä lisää seurattavia käyttäjiä
|
||||||
hashtags_recent_count:
|
hashtags_recent_count:
|
||||||
one: "%{people} henkilö viimeisenä 2 päivänä"
|
one: "%{people} käyttäjä viimeisenä 2 päivänä"
|
||||||
other: "%{people} henkilöä viimeisenä 2 päivänä"
|
other: "%{people} käyttäjää viimeisenä 2 päivänä"
|
||||||
hashtags_subtitle: Tutki, mikä on ollut suosittua viimeisenä 2 päivänä
|
hashtags_subtitle: Tutki, mikä on ollut suosittua viimeisenä 2 päivänä
|
||||||
hashtags_title: Suositut aihetunnisteet
|
hashtags_title: Suositut aihetunnisteet
|
||||||
hashtags_view_more: Näytä lisää suosittuja aihetunnisteita
|
hashtags_view_more: Näytä lisää suosittuja aihetunnisteita
|
||||||
|
@ -1921,9 +1921,9 @@ fi:
|
||||||
subject: Tervetuloa Mastodoniin
|
subject: Tervetuloa Mastodoniin
|
||||||
title: Tervetuloa mukaan, %{name}!
|
title: Tervetuloa mukaan, %{name}!
|
||||||
users:
|
users:
|
||||||
follow_limit_reached: Et voi seurata yli %{limit} henkilöä
|
follow_limit_reached: Et voi seurata yli %{limit} käyttäjää
|
||||||
go_to_sso_account_settings: Avaa identiteettitarjoajasi tiliasetukset
|
go_to_sso_account_settings: Avaa identiteettitarjoajasi tiliasetukset
|
||||||
invalid_otp_token: Virheellinen kaksivaiheisen todentamisen koodi
|
invalid_otp_token: Virheellinen kaksivaiheisen todennuksen koodi
|
||||||
otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyden osoitteeseen %{email}
|
otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyden osoitteeseen %{email}
|
||||||
rate_limited: Liian monta todennusyritystä – yritä uudelleen myöhemmin.
|
rate_limited: Liian monta todennusyritystä – yritä uudelleen myöhemmin.
|
||||||
seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä.
|
seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä.
|
||||||
|
|
|
@ -882,6 +882,9 @@ ia:
|
||||||
action: Consulta hic pro plus information
|
action: Consulta hic pro plus information
|
||||||
message_html: "<strong>Tu immagazinage de objectos es mal configurate. Le confidentialitate de tu usatores es in risco.</strong>"
|
message_html: "<strong>Tu immagazinage de objectos es mal configurate. Le confidentialitate de tu usatores es in risco.</strong>"
|
||||||
tags:
|
tags:
|
||||||
|
moderation:
|
||||||
|
pending_review: Attende revision
|
||||||
|
title: Stato
|
||||||
name: Nomine
|
name: Nomine
|
||||||
review: Revide le stato
|
review: Revide le stato
|
||||||
search: Cercar
|
search: Cercar
|
||||||
|
|
|
@ -211,6 +211,7 @@ be:
|
||||||
setting_default_privacy: Прыватнасць допісаў
|
setting_default_privacy: Прыватнасць допісаў
|
||||||
setting_default_sensitive: Заўсёды пазначаць кантэнт як далікатны
|
setting_default_sensitive: Заўсёды пазначаць кантэнт як далікатны
|
||||||
setting_delete_modal: Паказваць акно пацвярджэння перад выдаленнем допісу
|
setting_delete_modal: Паказваць акно пацвярджэння перад выдаленнем допісу
|
||||||
|
setting_disable_hover_cards: Адключыць перадпрагляд профілю пры навядзенні
|
||||||
setting_disable_swiping: Адключыць прагортванні
|
setting_disable_swiping: Адключыць прагортванні
|
||||||
setting_display_media: Адлюстраванне медыя
|
setting_display_media: Адлюстраванне медыя
|
||||||
setting_display_media_default: Перадвызначана
|
setting_display_media_default: Перадвызначана
|
||||||
|
@ -242,11 +243,13 @@ be:
|
||||||
warn: Схаваць з папярэджаннем
|
warn: Схаваць з папярэджаннем
|
||||||
form_admin_settings:
|
form_admin_settings:
|
||||||
activity_api_enabled: Апублікаваць зводную статыстыку аб актыўнасці карыстальнікаў API
|
activity_api_enabled: Апублікаваць зводную статыстыку аб актыўнасці карыстальнікаў API
|
||||||
|
app_icon: Значок праграмы
|
||||||
backups_retention_period: Працягласць захавання архіву карыстальніка
|
backups_retention_period: Працягласць захавання архіву карыстальніка
|
||||||
bootstrap_timeline_accounts: Заўсёды раіць гэтыя ўліковыя запісы новым карыстальнікам
|
bootstrap_timeline_accounts: Заўсёды раіць гэтыя ўліковыя запісы новым карыстальнікам
|
||||||
closed_registrations_message: Уласнае паведамленне, калі рэгістрацыя немагчымая
|
closed_registrations_message: Уласнае паведамленне, калі рэгістрацыя немагчымая
|
||||||
content_cache_retention_period: Перыяд захоўвання выдаленага змесціва
|
content_cache_retention_period: Перыяд захоўвання выдаленага змесціва
|
||||||
custom_css: CSS карыстальніка
|
custom_css: CSS карыстальніка
|
||||||
|
favicon: Значок сайта
|
||||||
mascot: Уласны маскот(спадчына)
|
mascot: Уласны маскот(спадчына)
|
||||||
media_cache_retention_period: Працягласць захавання кэшу для медыя
|
media_cache_retention_period: Працягласць захавання кэшу для медыя
|
||||||
peers_api_enabled: Апублікаваць спіс знойдзеных сервераў у API
|
peers_api_enabled: Апублікаваць спіс знойдзеных сервераў у API
|
||||||
|
@ -311,6 +314,7 @@ be:
|
||||||
listable: Дазволіць паказ хэштэгу ў пошуку і ў каталозе профіляў
|
listable: Дазволіць паказ хэштэгу ў пошуку і ў каталозе профіляў
|
||||||
name: Хэштэг
|
name: Хэштэг
|
||||||
trendable: Дазволіць паказ гэтага хэштэга ў трэндах
|
trendable: Дазволіць паказ гэтага хэштэга ў трэндах
|
||||||
|
usable: Дазволіць допісам выкарыстоўваць гэты хэштэг лакальна
|
||||||
user:
|
user:
|
||||||
role: Роля
|
role: Роля
|
||||||
time_zone: Часавы пояс
|
time_zone: Часавы пояс
|
||||||
|
|
|
@ -242,11 +242,13 @@ cs:
|
||||||
warn: Skrýt s varováním
|
warn: Skrýt s varováním
|
||||||
form_admin_settings:
|
form_admin_settings:
|
||||||
activity_api_enabled: Zveřejnit souhrnné statistiky o aktivitě uživatele v API
|
activity_api_enabled: Zveřejnit souhrnné statistiky o aktivitě uživatele v API
|
||||||
|
app_icon: Ikona aplikace
|
||||||
backups_retention_period: Doba uchovávání archivu uživatelů
|
backups_retention_period: Doba uchovávání archivu uživatelů
|
||||||
bootstrap_timeline_accounts: Vždy doporučovat tyto účty novým uživatelům
|
bootstrap_timeline_accounts: Vždy doporučovat tyto účty novým uživatelům
|
||||||
closed_registrations_message: Vlastní zpráva, když přihlášení není k dispozici
|
closed_registrations_message: Vlastní zpráva, když přihlášení není k dispozici
|
||||||
content_cache_retention_period: Doba uchovávání vzdáleného obsahu
|
content_cache_retention_period: Doba uchovávání vzdáleného obsahu
|
||||||
custom_css: Vlastní CSS
|
custom_css: Vlastní CSS
|
||||||
|
favicon: Favicon
|
||||||
mascot: Vlastní maskot (zastaralé)
|
mascot: Vlastní maskot (zastaralé)
|
||||||
media_cache_retention_period: Doba uchovávání mezipaměti médií
|
media_cache_retention_period: Doba uchovávání mezipaměti médií
|
||||||
peers_api_enabled: Zveřejnit seznam nalezených serverů v API
|
peers_api_enabled: Zveřejnit seznam nalezených serverů v API
|
||||||
|
|
|
@ -314,6 +314,7 @@ cy:
|
||||||
listable: Caniatáu i'r hashnod hwn ymddangos mewn chwiliadau ac awgrymiadau
|
listable: Caniatáu i'r hashnod hwn ymddangos mewn chwiliadau ac awgrymiadau
|
||||||
name: Hashnod
|
name: Hashnod
|
||||||
trendable: Caniatáu i'r hashnod hwn ymddangos o dan bynciau llosg
|
trendable: Caniatáu i'r hashnod hwn ymddangos o dan bynciau llosg
|
||||||
|
usable: Caniatáu i bostiadau ddefnyddio'r hashnod hwn yn lleol
|
||||||
user:
|
user:
|
||||||
role: Rôl
|
role: Rôl
|
||||||
time_zone: Cylchfa amser
|
time_zone: Cylchfa amser
|
||||||
|
|
|
@ -314,7 +314,7 @@ es-MX:
|
||||||
listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil
|
listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil
|
||||||
name: Etiqueta
|
name: Etiqueta
|
||||||
trendable: Permitir que esta etiqueta aparezca bajo tendencias
|
trendable: Permitir que esta etiqueta aparezca bajo tendencias
|
||||||
usable: Permitir a las publicacions usar esta etiqueta localmente
|
usable: Permitir a las publicaciones usar esta etiqueta localmente
|
||||||
user:
|
user:
|
||||||
role: Rol
|
role: Rol
|
||||||
time_zone: Zona horaria
|
time_zone: Zona horaria
|
||||||
|
|
|
@ -314,7 +314,7 @@ es:
|
||||||
listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil
|
listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil
|
||||||
name: Etiqueta
|
name: Etiqueta
|
||||||
trendable: Permitir que esta etiqueta aparezca bajo tendencias
|
trendable: Permitir que esta etiqueta aparezca bajo tendencias
|
||||||
usable: Permitir a las publicacions usar esta etiqueta localmente
|
usable: Permitir a las publicaciones usar esta etiqueta localmente
|
||||||
user:
|
user:
|
||||||
role: Rol
|
role: Rol
|
||||||
time_zone: Zona horaria
|
time_zone: Zona horaria
|
||||||
|
|
|
@ -6,7 +6,7 @@ fi:
|
||||||
discoverable: Julkisia julkaisujasi ja profiiliasi voidaan pitää esillä tai suositella Mastodonin eri alueilla ja profiiliasi voidaan ehdottaa toisille käyttäjille.
|
discoverable: Julkisia julkaisujasi ja profiiliasi voidaan pitää esillä tai suositella Mastodonin eri alueilla ja profiiliasi voidaan ehdottaa toisille käyttäjille.
|
||||||
display_name: Koko nimesi tai lempinimesi.
|
display_name: Koko nimesi tai lempinimesi.
|
||||||
fields: Verkkosivustosi, pronominisi, ikäsi ja mitä ikinä haluatkaan ilmoittaa.
|
fields: Verkkosivustosi, pronominisi, ikäsi ja mitä ikinä haluatkaan ilmoittaa.
|
||||||
indexable: Julkiset julkaisusi voivat näkyä hakutuloksissa Mastodonissa. Ihmiset, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta.
|
indexable: Julkiset julkaisusi voivat näkyä Mastodonin hakutuloksissa. Käyttäjät, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta.
|
||||||
note: 'Voit @mainita muita käyttäjiä tai #aihetunnisteita.'
|
note: 'Voit @mainita muita käyttäjiä tai #aihetunnisteita.'
|
||||||
show_collections: Käyttäjät voivat selata seurattujasi ja seuraajiasi. Käyttäjät, joita seuraat, näkevät joka tapauksessa, että seuraat heitä.
|
show_collections: Käyttäjät voivat selata seurattujasi ja seuraajiasi. Käyttäjät, joita seuraat, näkevät joka tapauksessa, että seuraat heitä.
|
||||||
unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntääsi. Poista valinta, jos haluat tarkistaa sekä hyväksyä tai hylätä vastaanottamasi seurantapyynnöt.
|
unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntääsi. Poista valinta, jos haluat tarkistaa sekä hyväksyä tai hylätä vastaanottamasi seurantapyynnöt.
|
||||||
|
@ -38,7 +38,7 @@ fi:
|
||||||
appeal:
|
appeal:
|
||||||
text: Voit valittaa varoituksesta vain kerran
|
text: Voit valittaa varoituksesta vain kerran
|
||||||
defaults:
|
defaults:
|
||||||
autofollow: Henkilöt, jotka rekisteröityvät kutsun kautta, seuraavat sinua automaattisesti
|
autofollow: Kutsun kautta rekisteröityvät käyttäjät seuraavat sinua automaattisesti
|
||||||
avatar: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
|
avatar: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
|
||||||
bot: Ilmaise muille, että tili suorittaa enimmäkseen automaattisia toimia eikä sitä valvota
|
bot: Ilmaise muille, että tili suorittaa enimmäkseen automaattisia toimia eikä sitä valvota
|
||||||
context: Ainakin yksi konteksti, jossa suodattimen pitäisi olla voimassa
|
context: Ainakin yksi konteksti, jossa suodattimen pitäisi olla voimassa
|
||||||
|
@ -49,14 +49,14 @@ fi:
|
||||||
header: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
|
header: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
|
||||||
inbox_url: Kopioi URL-osoite haluamasi välittäjän etusivulta
|
inbox_url: Kopioi URL-osoite haluamasi välittäjän etusivulta
|
||||||
irreversible: Suodatetut julkaisut katoavat peruuttamattomasti, vaikka suodatin poistettaisiin myöhemmin
|
irreversible: Suodatetut julkaisut katoavat peruuttamattomasti, vaikka suodatin poistettaisiin myöhemmin
|
||||||
locale: Käyttöliittymän, sähköpostien ja puskuilmoitusten kieli
|
locale: Käyttöliittymän, sähköpostiviestien ja puskuilmoitusten kieli
|
||||||
password: Käytä vähintään 8:aa merkkiä
|
password: Käytä vähintään 8:aa merkkiä
|
||||||
phrase: Täsmää riippumatta tekstin aakkoslajista tai julkaisun sisältövaroituksesta
|
phrase: Täsmää riippumatta tekstin aakkoslajista tai julkaisun sisältövaroituksesta
|
||||||
scopes: Mihin ohjelmointirajapintoihin sovelluksella on pääsy. Jos valitset ylätason käyttöoikeuden, sinun ei tarvitse valita yksittäisiä.
|
scopes: Mihin ohjelmointirajapintoihin sovelluksella on pääsy. Jos valitset ylätason käyttöoikeuden, sinun ei tarvitse valita yksittäisiä.
|
||||||
setting_aggregate_reblogs: Älä näytä uusia tehostuksia julkaisuille, joita on äskettäin tehostettu (koskee vain juuri vastaanotettuja tehostuksia)
|
setting_aggregate_reblogs: Älä näytä uusia tehostuksia julkaisuille, joita on äskettäin tehostettu (koskee vain juuri vastaanotettuja tehostuksia)
|
||||||
setting_always_send_emails: Yleensä sähköposti-ilmoituksia ei lähetetä, kun käytät Mastodonia aktiivisesti
|
setting_always_send_emails: Yleensä sähköposti-ilmoituksia ei lähetetä, kun käytät Mastodonia aktiivisesti
|
||||||
setting_default_sensitive: Arkaluonteinen media piilotetaan oletusarvoisesti, ja se voidaan näyttää yhdellä napsautuksella
|
setting_default_sensitive: Arkaluonteinen media piilotetaan oletusarvoisesti, ja se voidaan näyttää yhdellä napsautuksella
|
||||||
setting_display_media_default: Piilota arkaluonteiseksi merkitty media
|
setting_display_media_default: Piilota arkaluonteiseksi merkitty mediasisältö
|
||||||
setting_display_media_hide_all: Piilota mediasisältö aina
|
setting_display_media_hide_all: Piilota mediasisältö aina
|
||||||
setting_display_media_show_all: Näytä mediasisältö aina
|
setting_display_media_show_all: Näytä mediasisältö aina
|
||||||
setting_use_blurhash: Liukuvärit perustuvat piilotettujen kuvien väreihin mutta sumentavat yksityiskohdat
|
setting_use_blurhash: Liukuvärit perustuvat piilotettujen kuvien väreihin mutta sumentavat yksityiskohdat
|
||||||
|
@ -89,12 +89,12 @@ fi:
|
||||||
peers_api_enabled: Luettelo verkkotunnuksista, jotka tämä palvelin on kohdannut fediversumissa. Se ei kerro, federoitko tietyn palvelimen kanssa, vaan että palvelimesi on ylipäätään tietoinen siitä. Tätä tietoa käytetään palveluissa, jotka keräävät tilastoja federoinnista yleisellä tasolla.
|
peers_api_enabled: Luettelo verkkotunnuksista, jotka tämä palvelin on kohdannut fediversumissa. Se ei kerro, federoitko tietyn palvelimen kanssa, vaan että palvelimesi on ylipäätään tietoinen siitä. Tätä tietoa käytetään palveluissa, jotka keräävät tilastoja federoinnista yleisellä tasolla.
|
||||||
profile_directory: Profiilihakemisto luetteloi kaikki käyttäjät, jotka ovat valinneet olla löydettävissä.
|
profile_directory: Profiilihakemisto luetteloi kaikki käyttäjät, jotka ovat valinneet olla löydettävissä.
|
||||||
require_invite_text: Kun rekisteröityminen vaatii manuaalisen hyväksynnän, tee ”Miksi haluat liittyä?” -tekstikentästä pakollinen vapaaehtoisen sijaan
|
require_invite_text: Kun rekisteröityminen vaatii manuaalisen hyväksynnän, tee ”Miksi haluat liittyä?” -tekstikentästä pakollinen vapaaehtoisen sijaan
|
||||||
site_contact_email: Miten ihmiset voivat tavoittaa sinut oikeus- tai tukikysymyksissä.
|
site_contact_email: Miten sinut voi tavoittaa oikeus- tai tukikysymyksissä.
|
||||||
site_contact_username: Miten ihmiset voivat tavoittaa sinut Mastodonissa.
|
site_contact_username: Miten sinut voi tavoittaa Mastodonissa.
|
||||||
site_extended_description: Kaikki lisätiedot, jotka voivat olla hyödyllisiä kävijöille ja käyttäjille. Voidaan jäsentää Markdown-syntaksilla.
|
site_extended_description: Kaikki lisätiedot, jotka voivat olla hyödyllisiä kävijöille ja käyttäjille. Voidaan jäsentää Markdown-syntaksilla.
|
||||||
site_short_description: Lyhyt kuvaus, joka auttaa yksilöimään palvelimesi. Kuka sitä johtaa, ja keille se on tarkoitettu?
|
site_short_description: Lyhyt kuvaus, joka auttaa yksilöimään palvelimesi. Kuka sitä johtaa, ja keille se on tarkoitettu?
|
||||||
site_terms: Käytä omaa tietosuojakäytäntöä tai jätä tyhjäksi, jos haluat käyttää oletusta. Voidaan jäsentää Markdown-syntaksilla.
|
site_terms: Käytä omaa tietosuojakäytäntöä tai jätä tyhjäksi, jos haluat käyttää oletusta. Voidaan jäsentää Markdown-syntaksilla.
|
||||||
site_title: Miten ihmiset voivat viitata palvelimeesi sen verkkotunnuksen lisäksi.
|
site_title: Miten palvelimeesi voi viitata sen verkkotunnuksen lisäksi.
|
||||||
status_page_url: URL-osoite sivulle, josta tämän palvelimen tilan voi ongelmatilanteissa tarkistaa
|
status_page_url: URL-osoite sivulle, josta tämän palvelimen tilan voi ongelmatilanteissa tarkistaa
|
||||||
theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät.
|
theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät.
|
||||||
thumbnail: Noin 2:1 kuva näkyy palvelimen tietojen ohessa.
|
thumbnail: Noin 2:1 kuva näkyy palvelimen tietojen ohessa.
|
||||||
|
@ -121,7 +121,7 @@ fi:
|
||||||
hint: Vapaaehtoinen. Anna yksityiskohtaisempia tietoja säännöstä
|
hint: Vapaaehtoinen. Anna yksityiskohtaisempia tietoja säännöstä
|
||||||
text: Kuvaile sääntöä tai edellytystä palvelimesi käyttäjille. Suosi tiivistä, yksinkertaista ilmaisua
|
text: Kuvaile sääntöä tai edellytystä palvelimesi käyttäjille. Suosi tiivistä, yksinkertaista ilmaisua
|
||||||
sessions:
|
sessions:
|
||||||
otp: 'Näppäile mobiilisovelluksessa näkyvä kaksivaiheisen todennuksen tunnusluku, tai käytä tarvittaessa palautuskoodia:'
|
otp: 'Näppäile mobiilisovelluksessa näkyvä kaksivaiheisen todennuksen tunnusluku tai käytä tarvittaessa palautuskoodia:'
|
||||||
webauthn: Jos kyseessä on USB-avain, muista laittaa se paikalleen ja tarvittaessa napauttaa sitä.
|
webauthn: Jos kyseessä on USB-avain, muista laittaa se paikalleen ja tarvittaessa napauttaa sitä.
|
||||||
settings:
|
settings:
|
||||||
indexable: Profiilisi voi näkyä Googlen, Bingin ja muiden hakukoneiden hakutuloksissa.
|
indexable: Profiilisi voi näkyä Googlen, Bingin ja muiden hakukoneiden hakutuloksissa.
|
||||||
|
@ -135,7 +135,7 @@ fi:
|
||||||
color: Väri, jota käytetään roolille kaikkialla käyttöliittymässä, RGB-heksadesimaalimuodossa
|
color: Väri, jota käytetään roolille kaikkialla käyttöliittymässä, RGB-heksadesimaalimuodossa
|
||||||
highlighted: Tämä tekee roolista julkisesti näkyvän
|
highlighted: Tämä tekee roolista julkisesti näkyvän
|
||||||
name: Roolin julkinen nimi, jos rooli on asetettu näytettäväksi merkkinä
|
name: Roolin julkinen nimi, jos rooli on asetettu näytettäväksi merkkinä
|
||||||
permissions_as_keys: Käyttäjillä, joilla on tämä rooli, on käyttöoikeus...
|
permissions_as_keys: Käyttäjillä, joilla on tämä rooli, on käyttöoikeus…
|
||||||
position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimia voidaan suorittaa vain rooleilla, joiden prioriteetti on pienempi
|
position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimia voidaan suorittaa vain rooleilla, joiden prioriteetti on pienempi
|
||||||
webhook:
|
webhook:
|
||||||
events: Valitse lähetettävät tapahtumat
|
events: Valitse lähetettävät tapahtumat
|
||||||
|
@ -213,7 +213,7 @@ fi:
|
||||||
setting_delete_modal: Kysy vahvistusta ennen julkaisun poistamista
|
setting_delete_modal: Kysy vahvistusta ennen julkaisun poistamista
|
||||||
setting_disable_hover_cards: Poista käytöstä profiilin esikatselu osoitettaessa
|
setting_disable_hover_cards: Poista käytöstä profiilin esikatselu osoitettaessa
|
||||||
setting_disable_swiping: Poista pyyhkäisyeleet käytöstä
|
setting_disable_swiping: Poista pyyhkäisyeleet käytöstä
|
||||||
setting_display_media: Median näyttäminen
|
setting_display_media: Median näkyminen
|
||||||
setting_display_media_default: Oletus
|
setting_display_media_default: Oletus
|
||||||
setting_display_media_hide_all: Piilota kaikki
|
setting_display_media_hide_all: Piilota kaikki
|
||||||
setting_display_media_show_all: Näytä kaikki
|
setting_display_media_show_all: Näytä kaikki
|
||||||
|
@ -224,7 +224,7 @@ fi:
|
||||||
setting_theme: Sivuston teema
|
setting_theme: Sivuston teema
|
||||||
setting_trends: Näytä päivän trendit
|
setting_trends: Näytä päivän trendit
|
||||||
setting_unfollow_modal: Kysy vahvistusta ennen seuraamisen lopettamista
|
setting_unfollow_modal: Kysy vahvistusta ennen seuraamisen lopettamista
|
||||||
setting_use_blurhash: Käytä värikästä liukusävytystä piilotetulle medialle
|
setting_use_blurhash: Käytä värikästä liukusävytystä piilotetulle mediasisällölle
|
||||||
setting_use_pending_items: Hidas tila
|
setting_use_pending_items: Hidas tila
|
||||||
severity: Vakavuus
|
severity: Vakavuus
|
||||||
sign_in_token_attempt: Turvakoodi
|
sign_in_token_attempt: Turvakoodi
|
||||||
|
@ -294,7 +294,7 @@ fi:
|
||||||
follow: Joku seurasi sinua
|
follow: Joku seurasi sinua
|
||||||
follow_request: Joku pyysi lupaa seurata sinua
|
follow_request: Joku pyysi lupaa seurata sinua
|
||||||
mention: Joku mainitsi sinut
|
mention: Joku mainitsi sinut
|
||||||
pending_account: Uusi tili tarvitsee tarkistuksen
|
pending_account: Uusi tili tarvitsee tarkastuksen
|
||||||
reblog: Joku tehosti julkaisuasi
|
reblog: Joku tehosti julkaisuasi
|
||||||
report: Uusi raportti lähetettiin
|
report: Uusi raportti lähetettiin
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -15,7 +15,7 @@ sk:
|
||||||
type_html: Vyber si, čo urobiť s účtom <strong>%{acct}</strong>
|
type_html: Vyber si, čo urobiť s účtom <strong>%{acct}</strong>
|
||||||
warning_preset_id: Voliteľné. Stále môžeš vložiť vlastný text na samý koniec predlohy
|
warning_preset_id: Voliteľné. Stále môžeš vložiť vlastný text na samý koniec predlohy
|
||||||
defaults:
|
defaults:
|
||||||
autofollow: Ľudia ktorí sa zaregistrujú prostredníctvom pozvánky, ťa budú inheď následovať
|
autofollow: Ľudia ktorí sa zaregistrujú prostredníctvom pozvánky, ťa budú inheď nasledovať
|
||||||
avatar: WEBP, PNG, GIF, alebo JPG. Najviac %{size}. Bude zmenšený na %{dimensions}px
|
avatar: WEBP, PNG, GIF, alebo JPG. Najviac %{size}. Bude zmenšený na %{dimensions}px
|
||||||
bot: Tento účet vykonáva hlavne automatizované akcie, a je pravdepodobne nespravovaný
|
bot: Tento účet vykonáva hlavne automatizované akcie, a je pravdepodobne nespravovaný
|
||||||
context: Jedno, alebo viac kritérií, v ktorých má byť filtrovanie uplatnené
|
context: Jedno, alebo viac kritérií, v ktorých má byť filtrovanie uplatnené
|
||||||
|
|
|
@ -314,6 +314,7 @@ tr:
|
||||||
listable: Bu etiketin aramalarda ve profil dizininde görünmesine izin ver
|
listable: Bu etiketin aramalarda ve profil dizininde görünmesine izin ver
|
||||||
name: Etiket
|
name: Etiket
|
||||||
trendable: Bu etiketin gündem altında görünmesine izin ver
|
trendable: Bu etiketin gündem altında görünmesine izin ver
|
||||||
|
usable: Gönderilerin yerelde bu etiketi kullanmasına izin ver
|
||||||
user:
|
user:
|
||||||
role: Rol
|
role: Rol
|
||||||
time_zone: Zaman dilimi
|
time_zone: Zaman dilimi
|
||||||
|
|
|
@ -77,13 +77,13 @@ uk:
|
||||||
warn: Сховати відфільтрований вміст за попередженням, у якому вказано заголовок фільтра
|
warn: Сховати відфільтрований вміст за попередженням, у якому вказано заголовок фільтра
|
||||||
form_admin_settings:
|
form_admin_settings:
|
||||||
activity_api_enabled: Кількість локальних опублікованих дописів, активних і нових користувачів у тижневих розрізах
|
activity_api_enabled: Кількість локальних опублікованих дописів, активних і нових користувачів у тижневих розрізах
|
||||||
app_icon: WEBP, PNG, GIF або JPG. Замінює іконку програми за замовчуванням на мобільних пристроях на власну іконку.
|
app_icon: WEBP, PNG, GIF або JPG. Замінює типову піктограму застосунку на мобільних пристроях на власну.
|
||||||
backups_retention_period: Користувачі мають можливість створювати архіви своїх дописів, щоб завантажити їх пізніше. Якщо встановлено додатне значення, ці архіви будуть автоматично видалені з вашого сховища через вказану кількість днів.
|
backups_retention_period: Користувачі мають можливість створювати архіви своїх дописів, щоб завантажити їх пізніше. Якщо встановлено додатне значення, ці архіви будуть автоматично видалені з вашого сховища через вказану кількість днів.
|
||||||
bootstrap_timeline_accounts: Ці облікові записи будуть закріплені в топі пропозицій для нових користувачів.
|
bootstrap_timeline_accounts: Ці облікові записи будуть закріплені в топі пропозицій для нових користувачів.
|
||||||
closed_registrations_message: Показується, коли реєстрація закрита
|
closed_registrations_message: Показується, коли реєстрація закрита
|
||||||
content_cache_retention_period: Усі дописи з інших серверів (включно з коментарями та відповідями) будуть видалені через певну кількість днів, незважаючи на будь-яку локальну взаємодію користувачів з цими дописами. Сюди входять дописи, які локальний користувач позначив як закладки або вибране. Приватні згадки між користувачами з різних інстанцій також будуть втрачені і не підлягатимуть відновленню. Використання цього параметра призначено для екземплярів спеціального призначення і порушує багато очікувань користувачів, якщо його застосовано для загального використання.
|
content_cache_retention_period: Усі дописи з інших серверів (включно з коментарями та відповідями) будуть видалені через певну кількість днів, незважаючи на будь-яку локальну взаємодію користувачів з цими дописами. Сюди входять дописи, які локальний користувач позначив як закладки або вибране. Приватні згадки між користувачами з різних інстанцій також будуть втрачені і не підлягатимуть відновленню. Використання цього параметра призначено для екземплярів спеціального призначення і порушує багато очікувань користувачів, якщо його застосовано для загального використання.
|
||||||
custom_css: Ви можете застосувати користувацькі стилі у вебверсії Mastodon.
|
custom_css: Ви можете застосувати користувацькі стилі у вебверсії Mastodon.
|
||||||
favicon: WEBP, PNG, GIF або JPG. Замінює стандартну піктограму Mastodon на власну піктограму.
|
favicon: WEBP, PNG, GIF або JPG. Замінює стандартну піктограму Mastodon на власну.
|
||||||
mascot: Змінює ілюстрацію в розширеному вебінтерфейсі.
|
mascot: Змінює ілюстрацію в розширеному вебінтерфейсі.
|
||||||
media_cache_retention_period: Медіафайли з дописів віддалених користувачів кешуються на вашому сервері. Якщо встановлено додатне значення, медіа буде видалено через вказану кількість днів. Якщо медіа-дані будуть запитані після видалення, вони будуть завантажені повторно, якщо вихідний вміст все ще доступний. Через обмеження на частоту опитування карток попереднього перегляду посилань на сторонніх сайтах, рекомендується встановити це значення не менше 14 днів, інакше картки попереднього перегляду посилань не будуть оновлюватися на вимогу раніше цього часу.
|
media_cache_retention_period: Медіафайли з дописів віддалених користувачів кешуються на вашому сервері. Якщо встановлено додатне значення, медіа буде видалено через вказану кількість днів. Якщо медіа-дані будуть запитані після видалення, вони будуть завантажені повторно, якщо вихідний вміст все ще доступний. Через обмеження на частоту опитування карток попереднього перегляду посилань на сторонніх сайтах, рекомендується встановити це значення не менше 14 днів, інакше картки попереднього перегляду посилань не будуть оновлюватися на вимогу раніше цього часу.
|
||||||
peers_api_enabled: Список доменів імен цього сервера з'явився у федівсесвіті. Сюди не входять дані чи ви пов'язані федерацією з цим сервером, а лише відомості, що вашому серверу відомо про нього. Його використовують служби, які збирають загальну статистику про федерації.
|
peers_api_enabled: Список доменів імен цього сервера з'явився у федівсесвіті. Сюди не входять дані чи ви пов'язані федерацією з цим сервером, а лише відомості, що вашому серверу відомо про нього. Його використовують служби, які збирають загальну статистику про федерації.
|
||||||
|
@ -243,13 +243,13 @@ uk:
|
||||||
warn: Сховати за попередженням
|
warn: Сховати за попередженням
|
||||||
form_admin_settings:
|
form_admin_settings:
|
||||||
activity_api_enabled: Публікація агрегованої статистики про активність користувачів
|
activity_api_enabled: Публікація агрегованої статистики про активність користувачів
|
||||||
app_icon: Значок застосунку
|
app_icon: Піктограма застосунку
|
||||||
backups_retention_period: Період утримання архіву користувача
|
backups_retention_period: Період утримання архіву користувача
|
||||||
bootstrap_timeline_accounts: Завжди рекомендувати новим користувачам ці облікові записи
|
bootstrap_timeline_accounts: Завжди рекомендувати новим користувачам ці облікові записи
|
||||||
closed_registrations_message: Показуване повідомлення, якщо реєстрація недоступна
|
closed_registrations_message: Показуване повідомлення, якщо реєстрація недоступна
|
||||||
content_cache_retention_period: Період збереження віддаленого вмісту
|
content_cache_retention_period: Період збереження віддаленого вмісту
|
||||||
custom_css: Користувацький CSS
|
custom_css: Користувацький CSS
|
||||||
favicon: Значок сайту
|
favicon: Піктограма сайту
|
||||||
mascot: Користувацький символ (застарілий)
|
mascot: Користувацький символ (застарілий)
|
||||||
media_cache_retention_period: Період збереження кешу медіа
|
media_cache_retention_period: Період збереження кешу медіа
|
||||||
peers_api_enabled: Опублікувати список знайдених серверів у API
|
peers_api_enabled: Опублікувати список знайдених серверів у API
|
||||||
|
|
|
@ -19,7 +19,7 @@ sk:
|
||||||
link_verified_on: Vlastníctvo tohto odkazu bolo skontrolované %{date}
|
link_verified_on: Vlastníctvo tohto odkazu bolo skontrolované %{date}
|
||||||
nothing_here: Nič tu nie je!
|
nothing_here: Nič tu nie je!
|
||||||
pin_errors:
|
pin_errors:
|
||||||
following: Musíš už následovať toho človeka, ktorého si praješ zviditeľniť
|
following: Už musíš nasledovať toho človeka, ktorého si praješ zviditeľniť
|
||||||
posts:
|
posts:
|
||||||
few: Príspevky
|
few: Príspevky
|
||||||
many: Príspevkov
|
many: Príspevkov
|
||||||
|
@ -837,7 +837,7 @@ sk:
|
||||||
description:
|
description:
|
||||||
prefix_invited_by_user: "@%{name} ťa pozýva na tento Mastodon server!"
|
prefix_invited_by_user: "@%{name} ťa pozýva na tento Mastodon server!"
|
||||||
prefix_sign_up: Zaregistruj sa na Mastodone už dnes!
|
prefix_sign_up: Zaregistruj sa na Mastodone už dnes!
|
||||||
suffix: S pomocou účtu budeš môcť nasledovať ľudí, posielať príspevky, a vymieňať si správy s užívateľmi na hocijakom Mastodon serveri, ale aj na iných serveroch!
|
suffix: S účtom budeš môcť nasledovať ľudí, posielať príspevky, a vymieňať si správy s užívateľmi z hocijakého Mastodon servera a viac!
|
||||||
dont_have_your_security_key: Nemáš svoj bezpečnostný kľúč?
|
dont_have_your_security_key: Nemáš svoj bezpečnostný kľúč?
|
||||||
forgot_password: Zabudnuté heslo?
|
forgot_password: Zabudnuté heslo?
|
||||||
invalid_reset_password_token: Token na obnovu hesla vypršal. Prosím vypítaj si nový.
|
invalid_reset_password_token: Token na obnovu hesla vypršal. Prosím vypítaj si nový.
|
||||||
|
@ -1129,7 +1129,7 @@ sk:
|
||||||
title: Nový sledovateľ
|
title: Nový sledovateľ
|
||||||
follow_request:
|
follow_request:
|
||||||
action: Spravuj žiadosti o sledovanie
|
action: Spravuj žiadosti o sledovanie
|
||||||
body: "%{name} žiada povolenie ťa následovať"
|
body: "%{name} si žiada ťa nasledovať"
|
||||||
subject: "%{name} ťa žiadá o možnosť sledovania"
|
subject: "%{name} ťa žiadá o možnosť sledovania"
|
||||||
title: Nová žiadosť o následovanie
|
title: Nová žiadosť o následovanie
|
||||||
mention:
|
mention:
|
||||||
|
@ -1408,7 +1408,7 @@ sk:
|
||||||
subject: Vitaj na Mastodone
|
subject: Vitaj na Mastodone
|
||||||
title: Vitaj na palube, %{name}!
|
title: Vitaj na palube, %{name}!
|
||||||
users:
|
users:
|
||||||
follow_limit_reached: Nemôžeš následovať viac ako %{limit} ľudí
|
follow_limit_reached: Nemôžeš nasledovať viac ako %{limit} ľudí
|
||||||
invalid_otp_token: Neplatný kód pre dvojfaktorovú autentikáciu
|
invalid_otp_token: Neplatný kód pre dvojfaktorovú autentikáciu
|
||||||
otp_lost_help_html: Pokiaľ si stratil/a prístup k obom, môžeš dať vedieť %{email}
|
otp_lost_help_html: Pokiaľ si stratil/a prístup k obom, môžeš dať vedieť %{email}
|
||||||
rate_limited: Príliš veľa pokusov o overenie, skús to znova neskôr.
|
rate_limited: Príliš veľa pokusov o overenie, skús to znova neskôr.
|
||||||
|
|
|
@ -885,7 +885,23 @@ tr:
|
||||||
action: Daha fazla bilgi için buraya göz atın
|
action: Daha fazla bilgi için buraya göz atın
|
||||||
message_html: "<strong>Nesne depolamanız hatalı yapılandırılmış. Kullanıcılarınızın gizliliği tehlikede.</strong>"
|
message_html: "<strong>Nesne depolamanız hatalı yapılandırılmış. Kullanıcılarınızın gizliliği tehlikede.</strong>"
|
||||||
tags:
|
tags:
|
||||||
|
moderation:
|
||||||
|
not_trendable: Öne çıkarılamaz
|
||||||
|
not_usable: Kullanılamaz
|
||||||
|
pending_review: İnceleme bekliyor
|
||||||
|
review_requested: İnceleme istendi
|
||||||
|
reviewed: İncelendi
|
||||||
|
title: Durum
|
||||||
|
trendable: Öne çıkarılabilir
|
||||||
|
unreviewed: İncelenmemiş
|
||||||
|
usable: Kullanılabilir
|
||||||
|
name: Ad
|
||||||
|
newest: En yeni
|
||||||
|
oldest: En eski
|
||||||
|
reset: Sıfırla
|
||||||
review: Durumu gözden geçir
|
review: Durumu gözden geçir
|
||||||
|
search: Ara
|
||||||
|
title: Etiketler
|
||||||
updated_msg: Etiket ayarları başarıyla güncellendi
|
updated_msg: Etiket ayarları başarıyla güncellendi
|
||||||
title: Yönetim
|
title: Yönetim
|
||||||
trends:
|
trends:
|
||||||
|
|
|
@ -292,7 +292,7 @@ uk:
|
||||||
update_custom_emoji_html: "%{name} оновлює емодзі %{target}"
|
update_custom_emoji_html: "%{name} оновлює емодзі %{target}"
|
||||||
update_domain_block_html: "%{name} оновлює блокування домену для %{target}"
|
update_domain_block_html: "%{name} оновлює блокування домену для %{target}"
|
||||||
update_ip_block_html: "%{name} змінює правило для IP %{target}"
|
update_ip_block_html: "%{name} змінює правило для IP %{target}"
|
||||||
update_report_html: "%{name} оновлений звіт %{target}"
|
update_report_html: "%{name} оновлює звіт %{target}"
|
||||||
update_status_html: "%{name} оновлює допис %{target}"
|
update_status_html: "%{name} оновлює допис %{target}"
|
||||||
update_user_role_html: "%{name} змінює роль %{target}"
|
update_user_role_html: "%{name} змінює роль %{target}"
|
||||||
deleted_account: видалений обліковий запис
|
deleted_account: видалений обліковий запис
|
||||||
|
|
|
@ -16,6 +16,8 @@ module Paperclip
|
||||||
private
|
private
|
||||||
|
|
||||||
def cache_current_values
|
def cache_current_values
|
||||||
|
@target.response.require_limit_not_exceeded!(@target.limit)
|
||||||
|
|
||||||
@original_filename = truncated_filename
|
@original_filename = truncated_filename
|
||||||
@tempfile = copy_to_tempfile(@target)
|
@tempfile = copy_to_tempfile(@target)
|
||||||
@content_type = ContentTypeDetector.new(@tempfile.path).detect
|
@content_type = ContentTypeDetector.new(@tempfile.path).detect
|
||||||
|
@ -27,16 +29,15 @@ module Paperclip
|
||||||
|
|
||||||
source.response.body.each do |chunk|
|
source.response.body.each do |chunk|
|
||||||
bytes_read += chunk.bytesize
|
bytes_read += chunk.bytesize
|
||||||
|
raise Mastodon::LengthValidationError, "Body size exceeds limit of #{source.limit}" if bytes_read > source.limit
|
||||||
|
|
||||||
destination.write(chunk)
|
destination.write(chunk)
|
||||||
chunk.clear
|
chunk.clear
|
||||||
|
|
||||||
raise Mastodon::LengthValidationError if bytes_read > source.limit
|
|
||||||
end
|
end
|
||||||
|
|
||||||
destination.rewind
|
destination.rewind
|
||||||
destination
|
destination
|
||||||
rescue Mastodon::LengthValidationError
|
rescue
|
||||||
destination.close(true)
|
destination.close(true)
|
||||||
raise
|
raise
|
||||||
ensure
|
ensure
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@mastodon/mastodon",
|
"name": "@mastodon/mastodon",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"packageManager": "yarn@4.3.1",
|
"packageManager": "yarn@4.4.0",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
},
|
},
|
||||||
|
@ -90,7 +90,7 @@
|
||||||
"path-complete-extname": "^1.0.0",
|
"path-complete-extname": "^1.0.0",
|
||||||
"postcss": "^8.4.24",
|
"postcss": "^8.4.24",
|
||||||
"postcss-loader": "^4.3.0",
|
"postcss-loader": "^4.3.0",
|
||||||
"postcss-preset-env": "^9.5.2",
|
"postcss-preset-env": "^10.0.0",
|
||||||
"prop-types": "^15.8.1",
|
"prop-types": "^15.8.1",
|
||||||
"punycode": "^2.3.0",
|
"punycode": "^2.3.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
|
|
|
@ -79,6 +79,16 @@ RSpec.describe LinkDetailsExtractor do
|
||||||
},
|
},
|
||||||
}.to_json
|
}.to_json
|
||||||
end
|
end
|
||||||
|
let(:html) { <<~HTML }
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<script type="application/ld+json">
|
||||||
|
#{ld_json}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
HTML
|
||||||
|
|
||||||
shared_examples 'structured data' do
|
shared_examples 'structured data' do
|
||||||
it 'extracts the expected values from structured data' do
|
it 'extracts the expected values from structured data' do
|
||||||
|
@ -224,21 +234,27 @@ RSpec.describe LinkDetailsExtractor do
|
||||||
},
|
},
|
||||||
}.to_json
|
}.to_json
|
||||||
end
|
end
|
||||||
let(:html) { <<~HTML }
|
|
||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<script type="application/ld+json">
|
|
||||||
#{ld_json}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
HTML
|
|
||||||
|
|
||||||
it 'joins author names' do
|
it 'joins author names' do
|
||||||
expect(subject.author_name).to eq 'Author 1, Author 2'
|
expect(subject.author_name).to eq 'Author 1, Author 2'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with named graph' do
|
||||||
|
let(:ld_json) do
|
||||||
|
{
|
||||||
|
'@context' => 'https://schema.org',
|
||||||
|
'@graph' => [
|
||||||
|
'@type' => 'NewsArticle',
|
||||||
|
'headline' => "What's in a name",
|
||||||
|
],
|
||||||
|
}.to_json
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'descends into @graph node' do
|
||||||
|
expect(subject.title).to eq "What's in a name"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when Open Graph protocol data is present' do
|
context 'when Open Graph protocol data is present' do
|
||||||
|
|
93
spec/lib/paperclip/response_with_limit_adapter_spec.rb
Normal file
93
spec/lib/paperclip/response_with_limit_adapter_spec.rb
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe Paperclip::ResponseWithLimitAdapter do
|
||||||
|
subject { described_class.new(response_with_limit) }
|
||||||
|
|
||||||
|
before { stub_request(:get, url).to_return(headers: headers, body: body) }
|
||||||
|
|
||||||
|
let(:response_with_limit) { ResponseWithLimit.new(response, 50.kilobytes) }
|
||||||
|
let(:response) { Request.new(:get, url).perform(&:itself) }
|
||||||
|
let(:url) { 'https://example.com/dir/foo.png' }
|
||||||
|
let(:headers) { nil }
|
||||||
|
let(:body) { attachment_fixture('600x400.jpeg').binmode.read }
|
||||||
|
|
||||||
|
it 'writes temporary file' do
|
||||||
|
expect(subject.tempfile.read).to eq body
|
||||||
|
expect(subject.size).to eq body.bytesize
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with Content-Disposition header' do
|
||||||
|
let(:headers) { { 'Content-Disposition' => 'attachment; filename="bar.png"' } }
|
||||||
|
|
||||||
|
it 'uses filename from header' do
|
||||||
|
expect(subject.original_filename).to eq 'bar.png'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'detects MIME type from content' do
|
||||||
|
expect(subject.content_type).to eq 'image/jpeg'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'without Content-Disposition header' do
|
||||||
|
it 'uses filename from path' do
|
||||||
|
expect(subject.original_filename).to eq 'foo.png'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'detects MIME type from content' do
|
||||||
|
expect(subject.content_type).to eq 'image/jpeg'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'without filename in path' do
|
||||||
|
let(:url) { 'https://example.com/' }
|
||||||
|
|
||||||
|
it 'falls back to "data"' do
|
||||||
|
expect(subject.original_filename).to eq 'data'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'detects MIME type from content' do
|
||||||
|
expect(subject.content_type).to eq 'image/jpeg'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with very long filename' do
|
||||||
|
let(:url) { 'https://example.com/abcdefghijklmnopqrstuvwxyz.0123456789' }
|
||||||
|
|
||||||
|
it 'truncates the filename' do
|
||||||
|
expect(subject.original_filename).to eq 'abcdefghijklmnopqrst.0123'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when response size exceeds limit' do
|
||||||
|
context 'with Content-Length header' do
|
||||||
|
let(:headers) { { 'Content-Length' => 5.megabytes } }
|
||||||
|
|
||||||
|
it 'raises without reading the body' do
|
||||||
|
allow(response).to receive(:body).and_call_original
|
||||||
|
|
||||||
|
expect { subject }.to raise_error(Mastodon::LengthValidationError, 'Content-Length 5242880 exceeds limit of 51200')
|
||||||
|
|
||||||
|
expect(response).to_not have_received(:body)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'without Content-Length header' do
|
||||||
|
let(:body) { SecureRandom.random_bytes(1.megabyte) }
|
||||||
|
|
||||||
|
it 'raises while reading the body' do
|
||||||
|
expect { subject }.to raise_error(Mastodon::LengthValidationError, 'Body size exceeds limit of 51200')
|
||||||
|
expect(response.content_length).to be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when response times out' do
|
||||||
|
it 'raises' do
|
||||||
|
allow(response.body.connection).to receive(:readpartial).and_raise(HTTP::TimeoutError)
|
||||||
|
|
||||||
|
expect { subject }.to raise_error(HTTP::TimeoutError)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -100,7 +100,7 @@ describe Request do
|
||||||
describe "response's body_with_limit method" do
|
describe "response's body_with_limit method" do
|
||||||
it 'rejects body more than 1 megabyte by default' do
|
it 'rejects body more than 1 megabyte by default' do
|
||||||
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes))
|
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes))
|
||||||
expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
|
expect { subject.perform(&:body_with_limit) }.to raise_error(Mastodon::LengthValidationError, 'Body size exceeds limit of 1048576')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'accepts body less than 1 megabyte by default' do
|
it 'accepts body less than 1 megabyte by default' do
|
||||||
|
@ -110,17 +110,17 @@ describe Request do
|
||||||
|
|
||||||
it 'rejects body by given size' do
|
it 'rejects body by given size' do
|
||||||
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.kilobytes))
|
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.kilobytes))
|
||||||
expect { subject.perform { |response| response.body_with_limit(1.kilobyte) } }.to raise_error Mastodon::LengthValidationError
|
expect { subject.perform { |response| response.body_with_limit(1.kilobyte) } }.to raise_error(Mastodon::LengthValidationError, 'Body size exceeds limit of 1024')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'rejects too large chunked body' do
|
it 'rejects too large chunked body' do
|
||||||
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Transfer-Encoding' => 'chunked' })
|
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Transfer-Encoding' => 'chunked' })
|
||||||
expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
|
expect { subject.perform(&:body_with_limit) }.to raise_error(Mastodon::LengthValidationError, 'Body size exceeds limit of 1048576')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'rejects too large monolithic body' do
|
it 'rejects too large monolithic body' do
|
||||||
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Content-Length' => 2.megabytes })
|
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Content-Length' => 2.megabytes })
|
||||||
expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
|
expect { subject.perform(&:body_with_limit) }.to raise_error(Mastodon::LengthValidationError, 'Content-Length 2097152 exceeds limit of 1048576')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'truncates large monolithic body' do
|
it 'truncates large monolithic body' do
|
||||||
|
|
|
@ -160,6 +160,36 @@ RSpec.describe 'Notifications' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when requesting stripped-down accounts' do
|
||||||
|
let(:params) { { expand_accounts: 'partial_avatars' } }
|
||||||
|
|
||||||
|
let(:recent_account) { Fabricate(:account) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
FavouriteService.new.call(recent_account, user.account.statuses.first)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns an account in "partial_accounts", with the expected keys', :aggregate_failures do
|
||||||
|
subject
|
||||||
|
|
||||||
|
expect(response).to have_http_status(200)
|
||||||
|
expect(body_as_json[:partial_accounts].size).to be > 0
|
||||||
|
expect(body_as_json[:partial_accounts][0].keys).to contain_exactly(:acct, :avatar, :avatar_static, :bot, :id, :locked, :url)
|
||||||
|
expect(body_as_json[:partial_accounts].pluck(:id)).to_not include(recent_account.id.to_s)
|
||||||
|
expect(body_as_json[:accounts].pluck(:id)).to include(recent_account.id.to_s)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when passing an invalid value for "expand_accounts"' do
|
||||||
|
let(:params) { { expand_accounts: 'unknown_foobar' } }
|
||||||
|
|
||||||
|
it 'returns http bad request' do
|
||||||
|
subject
|
||||||
|
|
||||||
|
expect(response).to have_http_status(400)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def body_json_types
|
def body_json_types
|
||||||
body_as_json[:notification_groups].pluck(:type)
|
body_as_json[:notification_groups].pluck(:type)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@mastodon/streaming",
|
"name": "@mastodon/streaming",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"packageManager": "yarn@4.3.1",
|
"packageManager": "yarn@4.4.0",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue